@dyrected/admin 2.5.28 → 2.5.30

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/dist/index.mjs CHANGED
@@ -1,17 +1,16 @@
1
1
  import * as React$1 from "react";
2
- import React, { Component, StrictMode, createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
2
+ import React, { Component, StrictMode, createContext, createElement, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
3
3
  import { createRoot } from "react-dom/client";
4
4
  import { HashRouter, Link, MemoryRouter, Route, Routes, useLocation, useNavigate, useParams, useSearchParams } from "react-router-dom";
5
5
  import { QueryClient, QueryClientProvider, useInfiniteQuery, useMutation, useQueries, useQuery, useQueryClient } from "@tanstack/react-query";
6
- import { createClient, generateAIPrompt, generateFreshSetupPrompt } from "@dyrected/sdk";
6
+ import { createClient } from "@dyrected/sdk";
7
7
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
8
- import * as Icons from "lucide-react";
9
- import { AlertCircle, AlignCenter, AlignLeft, AlignRight, Archive, ArrowDown, ArrowLeft, ArrowRight, ArrowUp, Bold, Braces, Calendar, Check, CheckCircle2, ChevronDown, ChevronDownIcon, ChevronLeft, ChevronLeftIcon, ChevronRight, ChevronRightIcon, ChevronUp, ChevronsUpDown, Circle, Clock, Clock3, Code, Copy, Database, ExternalLink, Eye, EyeOff, FileDown, FileIcon, FileText, Filter, Globe, GripVertical, Heading1, Heading2, Image as Image$1, Info, Italic, KeyRound, Layers, LayoutDashboard, Library, Link as Link$1, List, ListOrdered, Loader2, Lock, LogOut, Mail, Menu, Monitor, MoreHorizontal, PanelLeftClose, PanelLeftOpen, Pencil, Plus, Quote, RotateCcw, Save, Scissors, Search, Settings, Settings2, Share2, Shield, ShieldCheck, Smartphone, Sparkles, Strikethrough, Table, Terminal, Trash2, Underline, Upload, UploadCloud, Users, Video, Volume2, X } from "lucide-react";
8
+ import { AlertCircle, AlignCenter, AlignLeft, AlignRight, Archive, ArrowDown, ArrowLeft, ArrowRight, ArrowUp, ArrowUpRight, Bold, BookOpen, Braces, Calendar, Check, CheckCircle, CheckCircle2, ChevronDown, ChevronDownIcon, ChevronLeft, ChevronLeftIcon, ChevronRight, ChevronRightIcon, ChevronUp, ChevronsUpDown, Circle, Clock, Clock3, Code, Code2, Compass, Copy, Database, ExternalLink, Eye, EyeOff, FileDown, FileIcon, FileText, Filter, Globe, GripVertical, Heading1, Heading2, Image as Image$1, Info, Italic, KeyRound, Layers, LayoutDashboard, Library, Link as Link$1, List, ListOrdered, Loader2, Lock, LogOut, Mail, Menu, Monitor, MoreHorizontal, PanelLeftClose, PanelLeftOpen, Pencil, Plus, Quote, RotateCcw, Save, Scissors, Search, Settings, Settings2, Share2, Shield, ShieldCheck, Smartphone, Sparkles, Strikethrough, Table, Trash2, Underline, Upload, UploadCloud, Users, Video, Volume2, X, XCircle, icons } from "lucide-react";
10
9
  import { clsx } from "clsx";
11
10
  import { extendTailwindMerge } from "tailwind-merge";
11
+ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
12
12
  import { Slot } from "@radix-ui/react-slot";
13
13
  import { cva } from "class-variance-authority";
14
- import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
15
14
  import { Toaster, toast } from "sonner";
16
15
  import * as PopoverPrimitive from "@radix-ui/react-popover";
17
16
  import * as SelectPrimitive from "@radix-ui/react-select";
@@ -193,6 +192,14 @@ function getMediaUrl(val, baseUrl) {
193
192
  return prependBase(`/api/media/${targetUrl}`);
194
193
  }
195
194
  //#endregion
195
+ //#region src/lib/admin-icons.ts
196
+ function isAdminIconName(value) {
197
+ return typeof value === "string" && Object.prototype.hasOwnProperty.call(icons, value);
198
+ }
199
+ function resolveAdminIcon(value, fallback) {
200
+ return isAdminIconName(value) ? icons[value] : fallback;
201
+ }
202
+ //#endregion
196
203
  //#region src/components/layout/branding-provider.tsx
197
204
  /**
198
205
  * Converts a color value (hex, named, or raw HSL string) to the raw HSL
@@ -290,6 +297,79 @@ function BrandingProvider({ children }) {
290
297
  ]), children] });
291
298
  }
292
299
  //#endregion
300
+ //#region src/components/ui/dropdown-menu.tsx
301
+ var DropdownMenu = DropdownMenuPrimitive.Root;
302
+ var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
303
+ var DropdownMenuSubTrigger = React$1.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(DropdownMenuPrimitive.SubTrigger, {
304
+ ref,
305
+ className: cn("dy-flex dy-cursor-default dy-select-none dy-items-center dy-gap-2 dy-rounded-sm dy-px-2 dy-py-1.5 dy-text-sm dy-outline-none focus:dy-bg-accent data-[state=open]:dy-bg-accent [&_svg]:dy-pointer-events-none [&_svg]:dy-size-4 [&_svg]:dy-shrink-0", inset && "dy-pl-8", className),
306
+ ...props,
307
+ children: [children, /* @__PURE__ */ jsx(ChevronRight, { className: "dy-ml-auto" })]
308
+ }));
309
+ DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
310
+ var DropdownMenuSubContent = React$1.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.SubContent, {
311
+ ref,
312
+ className: cn("dy-z-50 dy-min-w-[8rem] dy-overflow-hidden dy-rounded-md dy-border dy-bg-popover dy-p-1 dy-text-popover-foreground dy-shadow-lg data-[state=open]:dy-animate-in data-[state=closed]:dy-animate-out data-[state=closed]:dy-fade-out-0 data-[state=open]:dy-fade-in-0 data-[state=closed]:dy-zoom-out-95 data-[state=open]:dy-zoom-in-95 data-[side=bottom]:dy-slide-in-from-top-2 data-[side=left]:dy-slide-in-from-right-2 data-[side=right]:dy-slide-in-from-left-2 data-[side=top]:dy-slide-in-from-bottom-2 dy-origin-[--radix-dropdown-menu-content-transform-origin]", className),
313
+ ...props
314
+ }));
315
+ DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
316
+ var DropdownMenuContent = React$1.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx("div", {
317
+ className: "dy-admin-ui",
318
+ children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.Content, {
319
+ ref,
320
+ sideOffset,
321
+ className: cn("dy-z-50 dy-max-h-[var(--radix-dropdown-menu-content-available-height)] dy-min-w-[8rem] dy-overflow-y-auto dy-overflow-x-hidden dy-rounded-md dy-border dy-bg-popover dy-p-1 dy-text-popover-foreground dy-shadow-md data-[state=open]:dy-animate-in data-[state=closed]:dy-animate-out data-[state=closed]:dy-fade-out-0 data-[state=open]:dy-fade-in-0 data-[state=closed]:dy-zoom-out-95 data-[state=open]:dy-zoom-in-95 data-[side=bottom]:dy-slide-in-from-top-2 data-[side=left]:dy-slide-in-from-right-2 data-[side=right]:dy-slide-in-from-left-2 data-[side=top]:dy-slide-in-from-bottom-2 dy-origin-[--radix-dropdown-menu-content-transform-origin]", className),
322
+ ...props
323
+ })
324
+ }) }));
325
+ DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
326
+ var DropdownMenuItem = React$1.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Item, {
327
+ ref,
328
+ className: cn("dy-relative dy-flex dy-cursor-default dy-select-none dy-items-center dy-gap-2 dy-rounded-sm dy-px-2 dy-py-1.5 dy-text-sm dy-outline-none dy-transition-colors focus:dy-bg-accent focus:dy-text-accent-foreground data-[disabled]:dy-pointer-events-none data-[disabled]:dy-opacity-50 [&_svg]:dy-pointer-events-none [&_svg]:dy-size-4 [&_svg]:dy-shrink-0", inset && "dy-pl-8", className),
329
+ ...props
330
+ }));
331
+ DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
332
+ var DropdownMenuCheckboxItem = React$1.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(DropdownMenuPrimitive.CheckboxItem, {
333
+ ref,
334
+ className: cn("dy-relative dy-flex dy-cursor-default dy-select-none dy-items-center dy-rounded-sm dy-py-1.5 dy-pl-8 dy-pr-2 dy-text-sm dy-outline-none dy-transition-colors focus:dy-bg-accent focus:dy-text-accent-foreground data-[disabled]:dy-pointer-events-none data-[disabled]:dy-opacity-50", className),
335
+ checked,
336
+ ...props,
337
+ children: [/* @__PURE__ */ jsx("span", {
338
+ className: "dy-absolute dy-left-2 dy-flex dy-h-3.5 dy-w-3.5 dy-items-center dy-justify-center",
339
+ children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "dy-h-4 dy-w-4" }) })
340
+ }), children]
341
+ }));
342
+ DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
343
+ var DropdownMenuRadioItem = React$1.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DropdownMenuPrimitive.RadioItem, {
344
+ ref,
345
+ className: cn("dy-relative dy-flex dy-cursor-default dy-select-none dy-items-center dy-rounded-sm dy-py-1.5 dy-pl-8 dy-pr-2 dy-text-sm dy-outline-none dy-transition-colors focus:dy-bg-accent focus:dy-text-accent-foreground data-[disabled]:dy-pointer-events-none data-[disabled]:dy-opacity-50", className),
346
+ ...props,
347
+ children: [/* @__PURE__ */ jsx("span", {
348
+ className: "dy-absolute dy-left-2 dy-flex dy-h-3.5 dy-w-3.5 dy-items-center dy-justify-center",
349
+ children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { className: "dy-h-2 dy-w-2 dy-fill-current" }) })
350
+ }), children]
351
+ }));
352
+ DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
353
+ var DropdownMenuLabel = React$1.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Label, {
354
+ ref,
355
+ className: cn("dy-px-2 dy-py-1.5 dy-text-sm dy-font-semibold", inset && "dy-pl-8", className),
356
+ ...props
357
+ }));
358
+ DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
359
+ var DropdownMenuSeparator = React$1.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Separator, {
360
+ ref,
361
+ className: cn("dy--mx-1 dy-my-1 dy-h-px dy-bg-muted", className),
362
+ ...props
363
+ }));
364
+ DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
365
+ var DropdownMenuShortcut = ({ className, ...props }) => {
366
+ return /* @__PURE__ */ jsx("span", {
367
+ className: cn("dy-ml-auto dy-text-xs dy-tracking-widest dy-opacity-60", className),
368
+ ...props
369
+ });
370
+ };
371
+ DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
372
+ //#endregion
293
373
  //#region src/assets/dyrected.svg
294
374
  var dyrected_default = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='75%20408%20880%20200'%20width='1024'%20height='320'%3e%3cpath%20d='M0%200%20C80.77777778%200%2080.77777778%200%20104.25%2016.25%20C110.41149028%2022.41149028%20115.8130796%2029.84774381%20119%2038%20C119.37125%2038.93457031%20119.7425%2039.86914062%20120.125%2040.83203125%20C125.97853191%2057.96580693%20124.38837118%2076.7725057%20116.9375%2093.0625%20C109.56325726%20107.53398146%2097.58992255%20116.7156145%2082.375%20121.875%20C71.26222779%20125.44607062%2060.56671647%20126.28755488%2048.92578125%20126.1953125%20C47.67873413%20126.19329834%2046.43168701%20126.19128418%2045.14685059%20126.18920898%20C40.53536241%20126.17882812%2035.9239271%20126.15090625%2031.3125%20126.125%20C20.979375%20126.08375%2010.64625%20126.0425%200%20126%20C0%2084.42%200%2042.84%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(94,437)'/%3e%3cpath%20d='M0%200%20C2.71975521%200.35943901%203.84341638%200.83999752%205.7890625%202.828125%20C6.39492188%203.62734375%207.00078125%204.4265625%207.625%205.25%20C8.3159375%206.14847656%209.006875%207.04695313%209.71875%207.97265625%20C10.4715625%208.97167969%2011.224375%209.97070312%2012%2011%20C13.27334297%2012.66801941%2014.55020731%2014.33328608%2015.828125%2015.99780273%20C16.68920631%2017.1197048%2017.54859726%2018.24290639%2018.40625%2019.36743164%20C20.72359821%2022.39401514%2023.10162467%2025.33084868%2025.625%2028.1875%20C28%2031%2028%2031%2028%2033%20C24.04%2033%2020.08%2033%2016%2033%20C16%2036.96%2016%2040.92%2016%2045%20C23.92%2045%2031.84%2045%2040%2045%20C40%2052.26%2040%2059.52%2040%2067%20C32.08%2067%2024.16%2067%2016%2067%20C16.05110565%2073.01513491%2016.11411805%2079.02770699%2016.20751953%2085.04199219%20C16.23569066%2087.08650395%2016.25692435%2089.13112384%2016.27099609%2091.17578125%20C16.29247887%2094.12035322%2016.3391569%2097.06363041%2016.390625%20100.0078125%20C16.39185364%20100.9174173%2016.39308228%20101.82702209%2016.39434814%20102.76419067%20C16.52453003%20108.44478815%2017.27045802%20111.64305028%2021%20116%20C25.45146778%20118.22573389%2031.49130269%20117.61284521%2036.22265625%20116.45703125%20C43.02192732%20113.57781706%2047.39900966%20107.25297069%2051.15625%20101.109375%20C56.12293503%2093.05732503%2066.02505874%2086.96170223%2075%2084.4375%20C75.99%2084.2209375%2075.99%2084.2209375%2077%2084%20C77.76934372%2083.82831802%2078.53868744%2083.65663605%2079.3313446%2083.47975159%20C81.85956507%2083.02524638%2084.13490112%2082.87925324%2086.69848633%2082.88647461%20C88.0493206%2082.88658791%2088.0493206%2082.88658791%2089.42744446%2082.88670349%20C90.3859581%2082.89186478%2091.34447174%2082.89702606%2092.33203125%2082.90234375%20C93.32377853%2082.9037587%2094.31552582%2082.90517365%2095.33732605%2082.90663147%20C98.49574843%2082.91221582%20101.65409915%2082.92476548%20104.8125%2082.9375%20C106.95768127%2082.94251702%20109.10286365%2082.94707958%20111.24804688%2082.95117188%20C116.49872224%2082.96218012%20121.749356%2082.9789027%20127%2083%20C126.41627107%2081.40206803%20125.81844039%2079.8092836%20125.21484375%2078.21875%20C124.88347412%2077.33123047%20124.55210449%2076.44371094%20124.21069336%2075.52929688%20C121.96215073%2070.83179705%20118.27353717%2068.10625131%20113.671875%2065.8671875%20C107.40145998%2063.8320528%2099.62475654%2063.83565488%2093.5625%2066.5625%20C90.74762291%2068.18758368%2089.23412527%2069.92734346%2087.375%2072.5625%20C83.79694231%2077.15174791%2079.16997757%2077.25826651%2073.6875%2078.1875%20C67.93513917%2079.45496934%2063.11247292%2082.15885793%2058%2085%20C56.67024353%2085.67377293%2055.33832199%2086.34340541%2054%2087%20C54.53283313%2074.23864658%2059.85622582%2063.62873005%2069.125%2054.8125%20C79.48783101%2046.05739319%2090.98874912%2042.60318009%20104.3125%2042.6875%20C105.24167236%2042.69313965%20106.17084473%2042.6987793%20107.12817383%2042.70458984%20C120.80891332%2042.94676927%20132.08138441%2047.30179809%20142%2057%20C150.69408674%2067.01964256%20154.41434505%2078.42703622%20154.12890625%2091.5%20C154.11960083%2092.32242188%20154.11029541%2093.14484375%20154.10070801%2093.9921875%20C154.07669258%2095.99492902%20154.03971288%2097.99750824%20154%20100%20C153.20788116%20100.00142502%20152.41576233%20100.00285004%20151.59963989%20100.00431824%20C144.09719277%20100.0222236%20136.5954255%20100.06405798%20129.09327888%20100.13209057%20C125.23723861%20100.16623308%20121.38158914%20100.19145048%20117.52539062%20100.19555664%20C113.79674299%20100.1998673%20110.06897502%20100.22855506%20106.34060287%20100.27343178%20C104.9254661%20100.2863193%20103.51022356%20100.29074578%20102.09503555%20100.28615379%20C90.97909255%20100.25851196%2082.24496399%20102.13674731%2074%20110%20C72.693186%20111.68664002%2071.44412084%20113.4192826%2070.25%20115.1875%20C60.98713546%20128.13484969%2049.31550166%20137.60492408%2033.359375%20140.6015625%20C22.09111259%20141.93803083%2011.94495066%20141.67673859%201.8125%20136.3125%20C-6.21093351%20129.71545467%20-11.15550672%20122.32419258%20-13%20112%20C-13.25198192%20108.45441218%20-13.23420464%20104.92803422%20-13.1953125%20101.375%20C-13.1924826%20100.38749756%20-13.18965271%2099.39999512%20-13.18673706%2098.38256836%20C-13.1756182%2095.25491785%20-13.15052916%2092.12756272%20-13.125%2089%20C-13.11495948%2086.86849374%20-13.10583551%2084.73698296%20-13.09765625%2082.60546875%20C-13.07570607%2077.4035335%20-13.04123391%2072.20181669%20-13%2067%20C-17.95%2067%20-22.9%2067%20-28%2067%20C-28%2059.74%20-28%2052.48%20-28%2045%20C-25.11584117%2043.55792059%20-22.58278472%2043.90605113%20-19.375%2043.9375%20C-18.18648437%2043.94652344%20-16.99796875%2043.95554687%20-15.7734375%2043.96484375%20C-14.85820313%2043.97644531%20-13.94296875%2043.98804688%20-13%2044%20C-13%2040.37%20-13%2036.74%20-13%2033%20C-16.63%2033%20-20.26%2033%20-24%2033%20C-22.47026072%2029.1756518%20-21.7364866%2027.36138218%20-19.27734375%2024.43359375%20C-18.74262451%2023.78841797%20-18.20790527%2023.14324219%20-17.65698242%2022.47851562%20C-16.80583862%2021.46821289%20-16.80583862%2021.46821289%20-15.9375%2020.4375%20C-10.41141017%2013.76832013%20-5.12012996%206.98560367%200%200%20Z%20'%20fill='%23B6FF2E'%20transform='translate(660,423)'/%3e%3cpath%20d='M0%200%20C9.57%200%2019.14%200%2029%200%20C29.59839035%2022.9781895%2028.74526871%2040.62390375%2012.65625%2058.3359375%20C11%2060%2011%2060%208.4375%2062%20C5.46025693%2064.44286611%203.51309236%2067.23700629%201.33203125%2070.390625%20C0.89246094%2070.92171875%200.45289063%2071.4528125%200%2072%20C-0.66%2072%20-1.32%2072%20-2%2072%20C-2.93987733%2070.55661697%20-3.87796552%2069.11202069%20-4.8046875%2067.66015625%20C-8.25891165%2062.86262271%20-12.44079328%2060.54083019%20-18%2059%20C-25.38567118%2058.11965024%20-31.79640485%2058.30895235%20-38.12890625%2062.45703125%20C-43.93075089%2067.24143341%20-46.08004443%2072.64035542%20-47%2080%20C-47.62384022%2087.86038675%20-46.29060096%2095.4983732%20-41.375%20101.875%20C-36.78559554%20106.66837799%20-31.1204383%20109.16020416%20-24.5%20109.4375%20C-17.63097442%20109.06652475%20-10.76252345%20107.03884639%20-5.6171875%20102.3203125%20C-2.88904376%2098.40601931%20-1.66280214%2093.9535236%20-0.1809082%2089.45141602%20C3.35486261%2078.72166264%208.74872668%2071.79757179%2016.88671875%2064.08325195%20C20.82961215%2060.32870988%2023.90074122%2056.47544342%2027%2052%20C27.33%2052%2027.66%2052%2028%2052%20C28%2078.4%2028%20104.8%2028%20132%20C19.42%20132%2010.84%20132%202%20132%20C2%20128.37%202%20124.74%202%20121%20C1.34%20121%200.68%20121%200%20121%20C-0.495%20122.485%20-0.495%20122.485%20-1%20124%20C-12.73711711%20132.94256542%20-25.06338231%20134.43156199%20-39.3125%20132.56640625%20C-51.92494538%20129.92239101%20-62.18469132%20122.09849232%20-69.1875%20111.4375%20C-76.64035884%2098.17021241%20-78.4709381%2082.69085036%20-74.375%2068.0625%20C-69.54605076%2054.5211808%20-61.09321667%2044.22524607%20-48%2038%20C-41.32156484%2035.17823273%20-35.2722462%2034.50746377%20-28.0625%2034.5625%20C-27.13759766%2034.54251953%20-26.21269531%2034.52253906%20-25.25976562%2034.50195312%20C-15.04309922%2034.50911267%20-8.83524108%2037.47063244%20-1%2044%20C-0.67%2029.48%20-0.34%2014.96%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(902,431)'/%3e%3cpath%20d='M0%200%20C1.98755052%201.41100915%203.72130576%202.89802373%205.484375%204.578125%20C6.38349609%205.34576172%206.38349609%205.34576172%207.30078125%206.12890625%20C15.92373572%2013.93240069%2020.74453573%2025.07362429%2021.484375%2036.578125%20C21.60509121%2040.91384903%2021.70071786%2045.24490485%2021.484375%2049.578125%20C20.484375%2050.578125%2020.484375%2050.578125%2017.63072205%2050.69837952%20C16.35387039%2050.69615891%2015.07701874%2050.69393829%2013.76147461%2050.69165039%20C13.0590715%2050.69179642%2012.3566684%2050.69194244%2011.63298035%2050.6920929%20C9.30086222%2050.69139372%206.968823%2050.68360117%204.63671875%2050.67578125%20C3.02389062%2050.67391708%201.41106193%2050.67249318%20-0.20176697%2050.67149353%20C-4.45477857%2050.66766823%20-8.70775624%2050.65783785%20-12.96075439%2050.64678955%20C-17.2973993%2050.63657569%20-21.63404967%2050.63199596%20-25.97070312%2050.62695312%20C-34.48569269%2050.61621559%20-43.00065463%2050.59913903%20-51.515625%2050.578125%20C-50.76310085%2052.01068418%20-50.00072966%2053.43807287%20-49.234375%2054.86328125%20C-48.81091797%2055.65871338%20-48.38746094%2056.45414551%20-47.95117188%2057.27368164%20C-44.77728619%2062.36863181%20-40.24267716%2065.83885608%20-34.515625%2067.578125%20C-24.44648111%2068.75306138%20-13.88210791%2068.97920567%20-5.515625%2062.578125%20C-4.49191978%2061.60240597%20-3.48336669%2060.60937474%20-2.515625%2059.578125%20C0.41667693%2060.89933328%202.47102399%2062.32450697%204.71875%2064.6171875%20C5.29238281%2065.19726562%205.86601562%2065.77734375%206.45703125%2066.375%20C7.04355469%2066.97828125%207.63007813%2067.5815625%208.234375%2068.203125%20C8.83636719%2068.81414062%209.43835938%2069.42515625%2010.05859375%2070.0546875%20C11.53842805%2071.55801124%2013.01202176%2073.06747356%2014.484375%2074.578125%20C6.88082899%2084.58279081%20-3.31152864%2089.39611981%20-15.515625%2091.578125%20C-19.0759833%2091.8143607%20-22.63564692%2091.80900924%20-26.203125%2091.828125%20C-27.61754883%2091.8590625%20-27.61754883%2091.8590625%20-29.06054688%2091.890625%20C-43.17549414%2091.96823296%20-55.10728015%2086.56442315%20-65.26171875%2076.88671875%20C-75.61516851%2066.28205877%20-79.89439154%2053.46530582%20-79.73046875%2038.73046875%20C-78.80311822%2025.12370731%20-72.27652509%2013.81184063%20-62.515625%204.578125%20C-45.29287927%20-9.47756591%20-19.26149726%20-10.88693323%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(493.515625,472.421875)'/%3e%3cpath%20d='M0%200%20C9.57%200%2019.14%200%2029%200%20C31.88545714%206.3480057%2034.74623297%2012.64267461%2037.375%2019.08984375%20C37.66681152%2019.80048477%2037.95862305%2020.51112579%2038.25927734%2021.24330139%20C39.17479456%2023.47391024%2040.08751229%2025.70565039%2041%2027.9375%20C41.60917627%2029.42390959%2042.2185503%2030.91023814%2042.828125%2032.39648438%20C43.27551025%2033.48759018%2043.27551025%2033.48759018%2043.73193359%2034.60073853%20C44.32289018%2036.04103366%2044.91435386%2037.48112086%2045.50634766%2038.92098999%20C46.83058613%2042.14243669%2048.14705044%2045.36608605%2049.4453125%2048.59814453%20C49.87585938%2049.6601709%2050.30640625%2050.72219727%2050.75%2051.81640625%20C51.11609375%2052.7297876%2051.4821875%2053.64316895%2051.859375%2054.58422852%20C52.99948383%2056.99890679%2054.32194326%2058.93105971%2056%2061%20C63.85224401%2042.59935141%2063.85224401%2042.59935141%2071.375%2024.0625%20C74.61034321%2015.88404588%2078.06515289%207.86969422%2082%200%20C90.91%200%2099.82%200%20109%200%20C105.62156917%2011.2614361%20105.62156917%2011.2614361%20103.94921875%2015.33203125%20C103.57990234%2016.23373047%20103.21058594%2017.13542969%20102.83007812%2018.06445312%20C102.45302734%2018.97130859%20102.07597656%2019.87816406%20101.6875%2020.8125%20C101.13932617%2022.15538086%20101.13932617%2022.15538086%20100.58007812%2023.52539062%20C98.52888864%2028.50280206%2096.36531611%2033.41002468%2094.08984375%2038.2890625%20C91.12034683%2044.67044212%2088.37355778%2051.13053761%2085.67678833%2057.63122559%20C84.27693812%2061.00305678%2082.86621358%2064.37034217%2081.45703125%2067.73828125%20C81.17043137%2068.42368988%2080.88383148%2069.10909851%2080.58854675%2069.8152771%20C77.59723903%2076.96761949%2074.59243132%2084.11392962%2071.5625%2091.25%20C71.09118652%2092.37220947%2070.61987305%2093.49441895%2070.13427734%2094.65063477%20C64.14372759%20108.71158026%2057.88097216%20122.54500294%2043.26171875%20129.16015625%20C32.99566383%20132.97224918%2018.99532524%20132.39132855%209%20128%20C6.27254605%20126.74842163%203.64641133%20125.4212209%201%20124%20C1.6411928%20121.09325931%202.56662682%20118.57468666%203.84765625%20115.890625%20C4.38422852%20114.75947266%204.38422852%20114.75947266%204.93164062%20113.60546875%20C5.30482422%20112.82816406%205.67800781%20112.05085937%206.0625%20111.25%20C6.62807617%20110.06083984%206.62807617%20110.06083984%207.20507812%20108.84765625%20C8.13345839%20106.89688254%209.06629544%20104.94823094%2010%20103%20C12.57030771%20104.02467879%2015.13501673%20105.05651863%2017.6875%20106.125%20C23.13926051%20107.56508768%2028.53393046%20107.91137353%2033.875%20105.9375%20C36.67992585%20103.3800676%2038.90092755%20100.67546954%2040%2097%20C39.51255272%2092.02739581%2037.81323979%2087.84336435%2035.75390625%2083.34765625%20C35.42739075%2082.61970352%2035.10087524%2081.89175079%2034.76446533%2081.14173889%20C34.06574374%2079.58604999%2033.36386031%2078.03177798%2032.65908813%2076.4788208%20C31.54929238%2074.03339714%2030.44768068%2071.58443912%2029.34838867%2069.13427734%20C28.24699442%2066.67954634%2027.14520032%2064.22500817%2026.04084778%2061.77160645%20C22.05427867%2052.9145598%2018.19057599%2044.00588863%2014.33935547%2035.08935547%20C13.03927819%2032.09059902%2011.73151205%2029.09532776%2010.42124939%2026.10101318%20C9.20378396%2023.3178069%207.98924352%2020.53332878%206.7749939%2017.74871826%20C6.17859872%2016.3828194%205.58097738%2015.01745522%204.98208618%2013.65264893%20C4.14875742%2011.75295298%203.31997874%209.85133284%202.4921875%207.94921875%20C2.01120605%206.84924561%201.53022461%205.74927246%201.03466797%204.6159668%20C0%202%200%202%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(224,467)'/%3e%3cpath%20d='M0%200%20C4.6456294%203.80490916%208.23887006%207.95463812%2010.84375%2013.40234375%20C10.84375%2014.06234375%2010.84375%2014.72234375%2010.84375%2015.40234375%20C0.44875%2020.84734375%200.44875%2020.84734375%20-10.15625%2026.40234375%20C-15.15625%2022.40234375%20-15.15625%2022.40234375%20-17.59375%2019.83984375%20C-23.69448695%2014.03670372%20-29.49135908%2013.8685058%20-37.5859375%2014.05859375%20C-44.66458696%2014.74012674%20-48.35592604%2018.17840756%20-52.89453125%2023.42578125%20C-57.35750661%2030.4173154%20-57.05559365%2039.03898526%20-55.7265625%2046.96484375%20C-53.69407611%2054.19146201%20-49.25238278%2059.49703127%20-42.90625%2063.40234375%20C-35.21481566%2065.45339291%20-27.19943303%2065.45458604%20-20.15625%2061.40234375%20C-17.38502725%2059.04807876%20-17.38502725%2059.04807876%20-15.15625%2056.40234375%20C-13.82291667%2055.06901042%20-12.48958333%2053.73567708%20-11.15625%2052.40234375%20C-3.48829498%2054.74171986%203.61512274%2057.95003181%2010.84375%2061.40234375%20C9.71301894%2068.83286216%205.25630274%2073.41753074%20-0.15625%2078.40234375%20C-14.27515309%2088.65893292%20-29.58374274%2090.22229359%20-46.59375%2087.94140625%20C-59.50522416%2084.75107107%20-71.47879005%2076.68814229%20-78.59375%2065.40234375%20C-85.12640699%2053.53652894%20-87.70329542%2038.76522142%20-84.28515625%2025.4921875%20C-81.80476638%2018.01848819%20-78.48663047%2012.17115378%20-73.15625%206.40234375%20C-72.35574219%205.46648437%20-72.35574219%205.46648437%20-71.5390625%204.51171875%20C-54.14361329%20-14.63159857%20-19.9950983%20-14.8152087%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(612.15625,475.59765625)'/%3e%3cpath%20d='M0%200%20C0.92917236%200.00563965%201.85834473%200.0112793%202.81567383%200.01708984%20C16.49641332%200.25926927%2027.76888441%204.61429809%2037.6875%2014.3125%20C46.38158674%2024.33214256%2050.10184505%2035.73953622%2049.81640625%2048.8125%20C49.80710083%2049.63492188%2049.79779541%2050.45734375%2049.78820801%2051.3046875%20C49.76419258%2053.30742902%2049.72721288%2055.31000824%2049.6875%2057.3125%20C48.89538116%2057.31392502%2048.10326233%2057.31535004%2047.28713989%2057.31681824%20C39.78469277%2057.3347236%2032.2829255%2057.37655798%2024.78077888%2057.44459057%20C20.92473861%2057.47873308%2017.06908914%2057.50395048%2013.21289062%2057.50805664%20C9.48424299%2057.5123673%205.75647502%2057.54105506%202.02810287%2057.58593178%20C0.6129661%2057.5988193%20-0.80227644%2057.60324578%20-2.21746445%2057.59865379%20C-13.33340745%2057.57101196%20-22.06753601%2059.44924731%20-30.3125%2067.3125%20C-31.619314%2068.99914002%20-32.86837916%2070.7317826%20-34.0625%2072.5%20C-39.27138551%2079.83175205%20-44.31888353%2086.93254032%20-53.3125%2089.3125%20C-59.27605196%2089.97511688%20-63.4418563%2088.64128375%20-68.3125%2085.3125%20C-71.47815211%2082.38915707%20-73.44158139%2079.56624985%20-74.3125%2075.3125%20C-73.64863281%2075.07015625%20-72.98476563%2074.8278125%20-72.30078125%2074.578125%20C-70.97626953%2074.07539062%20-70.97626953%2074.07539062%20-69.625%2073.5625%20C-68.31982422%2073.07523438%20-68.31982422%2073.07523438%20-66.98828125%2072.578125%20C-61.914668%2070.17834297%20-58.99832299%2067.14164616%20-55.97827148%2062.4387207%20C-49.17329509%2051.85146005%20-39.91704612%2044.06974446%20-27.3125%2041.3125%20C-26.54315628%2041.14081802%20-25.77381256%2040.96913605%20-24.9811554%2040.79225159%20C-22.45293493%2040.33774638%20-20.17759888%2040.19175324%20-17.61401367%2040.19897461%20C-16.2631794%2040.19908791%20-16.2631794%2040.19908791%20-14.88505554%2040.19920349%20C-13.44728508%2040.20694542%20-13.44728508%2040.20694542%20-11.98046875%2040.21484375%20C-10.49284782%2040.21696617%20-10.49284782%2040.21696617%20-8.97517395%2040.21913147%20C-5.81675157%2040.22471582%20-2.65840085%2040.23726548%200.5%2040.25%20C2.64518127%2040.25501702%204.79036365%2040.25957958%206.93554688%2040.26367188%20C12.18622224%2040.27468012%2017.436856%2040.2914027%2022.6875%2040.3125%20C22.10377107%2038.71456803%2021.50594039%2037.1217836%2020.90234375%2035.53125%20C20.57097412%2034.64373047%2020.23960449%2033.75621094%2019.89819336%2032.84179688%20C17.64965073%2028.14429705%2013.96103717%2025.41875131%209.359375%2023.1796875%20C3.08895998%2021.1445528%20-4.68774346%2021.14815488%20-10.75%2023.875%20C-13.56487709%2025.50008368%20-15.07837473%2027.23984346%20-16.9375%2029.875%20C-20.51555769%2034.46424791%20-25.14252243%2034.57076651%20-30.625%2035.5%20C-36.37736083%2036.76746934%20-41.20002708%2039.47135793%20-46.3125%2042.3125%20C-47.64225647%2042.98627293%20-48.97417801%2043.65590541%20-50.3125%2044.3125%20C-49.77966687%2031.55114658%20-44.45627418%2020.94123005%20-35.1875%2012.125%20C-24.82466899%203.36989319%20-13.32375088%20-0.08431991%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(764.3125,465.6875)'/%3e%3cpath%20d='M0%200%20C44.84375%200%2044.84375%200%2055%2010%20C63.50692661%2020.10567615%2066.02395277%2031.00367642%2065%2044%20C63.92164324%2052.75980221%2059.27536689%2061.86408571%2053%2068%20C36.90761972%2079.76525518%2020.54677762%2076%200%2076%20C0%2050.92%200%2025.84%200%200%20Z%20'%20fill='%23FFFFFF'%20transform='translate(123,462)'/%3e%3cpath%20d='M0%200%20C0%208.58%200%2017.16%200%2026%20C-2.475%2026.0825%20-4.95%2026.165%20-7.5%2026.25%20C-15.58592043%2026.68028387%20-20.78770187%2028.00185508%20-26.8125%2033.625%20C-32.18698591%2040.84882192%20-32.45755497%2050.04763218%20-32.51171875%2058.6953125%20C-32.52966995%2059.76876923%20-32.54762115%2060.84222595%20-32.56611633%2061.94821167%20C-32.61983039%2065.34043577%20-32.65398988%2068.73252235%20-32.6875%2072.125%20C-32.72070741%2074.44012315%20-32.75520018%2076.75522823%20-32.79101562%2079.0703125%20C-32.87792806%2084.71355721%20-32.93833073%2090.35619859%20-33%2096%20C-42.24%2096%20-51.48%2096%20-61%2096%20C-61.11629021%2091.57321943%20-61.21532635%2087.15195899%20-61.2746582%2082.72485352%20C-61.29944483%2081.22662179%20-61.33328586%2079.72850609%20-61.37719727%2078.23071289%20C-61.84659218%2061.77980184%20-58.18723461%2049.29745852%20-47.64160156%2036.32958984%20C-46.11388537%2034.44998397%20-44.58793536%2032.56895731%20-43.0625%2030.6875%20C-42.54276611%2030.05078369%20-42.02303223%2029.41406738%20-41.48754883%2028.75805664%20C-38.17466035%2024.64362091%20-35.32555694%2020.47816771%20-32.625%2015.9375%20C-27.24219449%206.99173768%20-23.75743907%203.76906718%20-13.609375%200.6640625%20C-10%200%20-10%200%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(406,466)'/%3e%3cpath%20d='M0%200%20C5.66129431%204.69766975%2010.85228904%209.74723372%2016%2015%20C11.92304775%2022.70385133%204.05433775%2027.16606635%20-4%2030%20C-19.29250715%2034.53548448%20-36.16315756%2033.34402642%20-50.4140625%2026.31640625%20C-58.66486514%2021.8238732%20-58.66486514%2021.8238732%20-59.77929688%2019.08422852%20C-60%2017%20-60%2017%20-57.796875%2013.87109375%20C-56.79405635%2012.71532531%20-55.77778517%2011.57112409%20-54.75%2010.4375%20C-54.24597656%209.86064453%20-53.74195313%209.28378906%20-53.22265625%208.68945312%20C-50.89341628%206.03925489%20-48.51068548%203.47978615%20-46%201%20C-42.31120701%202.80247839%20-38.77349917%204.8276212%20-35.21875%206.87890625%20C-27.51820571%2010.76985028%20-18.90673806%209.19207078%20-10.88671875%207.06640625%20C-6.60864698%205.48600897%20-3.35300014%203.04728542%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(791,532)'/%3e%3cpath%20d='M0%200%20C4.56326885%202.95860288%208.00828055%206.6679148%209.9375%2011.8125%20C9.9375%2013.4625%209.9375%2015.1125%209.9375%2016.8125%20C-4.9125%2016.8125%20-19.7625%2016.8125%20-35.0625%2016.8125%20C-33.85907282%209.59193695%20-31.77484523%205.59340843%20-25.8984375%201.19140625%20C-17.83251928%20-3.44583989%20-8.3946856%20-4.34922034%200%200%20Z%20'%20fill='%23FFFFFF'%20transform='translate(477.0625,489.1875)'/%3e%3cpath%20d='M0%200%20C2.71975521%200.35943901%203.84341638%200.83999752%205.7890625%202.828125%20C6.39492188%203.62734375%207.00078125%204.4265625%207.625%205.25%20C8.3159375%206.14847656%209.006875%207.04695313%209.71875%207.97265625%20C10.4715625%208.97167969%2011.224375%209.97070312%2012%2011%20C13.27334297%2012.66801941%2014.55020731%2014.33328608%2015.828125%2015.99780273%20C16.68920631%2017.1197048%2017.54859726%2018.24290639%2018.40625%2019.36743164%20C20.72359821%2022.39401514%2023.10162467%2025.33084868%2025.625%2028.1875%20C28%2031%2028%2031%2028%2033%20C24.04%2033%2020.08%2033%2016%2033%20C16%2036.96%2016%2040.92%2016%2045%20C15.01%2044.505%2015.01%2044.505%2014%2044%20C13.5859375%2041.27734375%2013.5859375%2041.27734375%2013.375%2037.9375%20C13.30023437%2036.83277344%2013.22546875%2035.72804688%2013.1484375%2034.58984375%20C13.09945312%2033.73519531%2013.05046875%2032.88054687%2013%2032%20C14.134375%2031.54625%2015.26875%2031.0925%2016.4375%2030.625%20C20.04721692%2029.42904194%2020.04721692%2029.42904194%2021%2027%20C20.34%2027%2019.68%2027%2019%2027%20C18.608125%2025.9275%2018.21625%2024.855%2017.8125%2023.75%20C16.27259896%2020.08533167%2014.21849461%2018.3486312%2011%2016%20C11%2015.34%2011%2014.68%2011%2014%20C10.34%2014%209.68%2014%209%2014%20C7.4921875%2012.25%207.4921875%2012.25%205.875%2010%20C5.33617187%209.2575%204.79734375%208.515%204.2421875%207.75%20C3.83226562%207.1725%203.42234375%206.595%203%206%20C-3.93710167%209.15322803%20-9.63269943%2014.06474733%20-12.375%2021.25%20C-12.63023437%2022.05953125%20-12.88546875%2022.8690625%20-13.1484375%2023.703125%20C-14.07536523%2026.20327869%20-15.31553255%2027.94852568%20-17%2030%20C-15.02%2030.33%20-13.04%2030.66%20-11%2031%20C-9.51119807%2035.4664058%20-9.31090749%2039.30056546%20-11.09765625%2043.70703125%20C-13%2046%20-13%2046%20-16.13671875%2046.48828125%20C-19.42447917%2046.32552083%20-22.71223958%2046.16276042%20-26%2046%20C-26%2052.27%20-26%2058.54%20-26%2065%20C-24.1025%2064.95875%20-22.205%2064.9175%20-20.25%2064.875%20C-16.10895658%2064.78497732%20-13.61590012%2065.02831107%20-10%2067%20C-9.98786972%2067.91628929%20-9.98786972%2067.91628929%20-9.97549438%2068.85108948%20C-9.88922875%2075.22686062%20-9.78971604%2081.60232871%20-9.68261719%2087.9777832%20C-9.644408%2090.35500995%20-9.60954125%2092.73229292%20-9.578125%2095.10961914%20C-9.53229961%2098.53291881%20-9.47433332%20101.95583411%20-9.4140625%20105.37890625%20C-9.40251129%20106.43646622%20-9.39096008%20107.49402618%20-9.37905884%20108.58363342%20C-9.26966133%20114.09218328%20-8.82932532%20118.79123684%20-7%20124%20C-6.34%20124%20-5.68%20124%20-5%20124%20C-4.9071875%20124.928125%20-4.9071875%20124.928125%20-4.8125%20125.875%20C-4.19124685%20128.2501999%20-4.19124685%20128.2501999%20-1.625%20129.0625%20C-0.75875%20129.371875%200.1075%20129.68125%201%20130%20C2.6875%20131.5625%202.6875%20131.5625%204%20133%20C4.66%20133.33%205.32%20133.66%206%20134%20C6.625%20136.0625%206.625%20136.0625%207%20138%20C0.64042919%20136.72808584%20-3.00409013%20132.83266023%20-7%20128%20C-12.40978943%20119.7580267%20-13.30059906%20110.99356957%20-13.1953125%20101.375%20C-13.1924826%20100.38749756%20-13.18965271%2099.39999512%20-13.18673706%2098.38256836%20C-13.1756182%2095.25491785%20-13.15052916%2092.12756272%20-13.125%2089%20C-13.11495948%2086.86849374%20-13.10583551%2084.73698296%20-13.09765625%2082.60546875%20C-13.07570607%2077.4035335%20-13.04123391%2072.20181669%20-13%2067%20C-17.95%2067%20-22.9%2067%20-28%2067%20C-28%2059.74%20-28%2052.48%20-28%2045%20C-25.11584117%2043.55792059%20-22.58278472%2043.90605113%20-19.375%2043.9375%20C-18.18648437%2043.94652344%20-16.99796875%2043.95554687%20-15.7734375%2043.96484375%20C-14.85820313%2043.97644531%20-13.94296875%2043.98804688%20-13%2044%20C-13%2040.37%20-13%2036.74%20-13%2033%20C-16.63%2033%20-20.26%2033%20-24%2033%20C-22.47026072%2029.1756518%20-21.7364866%2027.36138218%20-19.27734375%2024.43359375%20C-18.74262451%2023.78841797%20-18.20790527%2023.14324219%20-17.65698242%2022.47851562%20C-16.80583862%2021.46821289%20-16.80583862%2021.46821289%20-15.9375%2020.4375%20C-10.41141017%2013.76832013%20-5.12012996%206.98560367%200%200%20Z%20'%20fill='%23C7FF57'%20transform='translate(660,423)'/%3e%3cpath%20d='M0%200%20C0.68078561%2010.15126993%20-6.26162995%2018.50517827%20-12.625%2025.8125%20C-13.10155029%2026.35165039%20-13.57810059%2026.89080078%20-14.0690918%2027.44628906%20C-17.57519453%2031.41656971%20-20.32199043%2035.44738374%20-23%2040%20C-23.33%2040%20-23.66%2040%20-24%2040%20C-24%2027.13%20-24%2014.26%20-24%201%20C-20.225625%200.835%20-16.45125%200.67%20-12.5625%200.5%20C-11.37084229%200.44779297%20-10.17918457%200.39558594%20-8.95141602%200.34179688%20C-7.55427368%200.28088867%20-7.55427368%200.28088867%20-6.12890625%200.21875%20C-5.17056885%200.17685547%20-4.21223145%200.13496094%20-3.22485352%200.09179688%20C-1%200%20-1%200%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(369,467)'/%3e%3cpath%20d='M0%200%20C2.00720923%200.28674418%204.0085944%200.61866701%206%201%20C6.495%202.485%206.495%202.485%207%204%20C7.66%204%208.32%204%209%204%20C9.495%205.98%209.495%205.98%2010%208%20C10.66%208%2011.32%208%2012%208%20C12.474375%208.639375%2012.94875%209.27875%2013.4375%209.9375%20C14.9091365%2012.28372963%2014.9091365%2012.28372963%2018%2013%20C18.495%2015.97%2018.495%2015.97%2019%2019%20C19.66%2019%2020.32%2019%2021%2019%20C22.0625%2020.8125%2022.0625%2020.8125%2023%2023%20C22.505%2024.485%2022.505%2024.485%2022%2026%20C21.3709375%2025.17757813%2020.741875%2024.35515625%2020.09375%2023.5078125%20C17.8531051%2020.58200082%2015.60149285%2017.6647905%2013.34716797%2014.74951172%20C12.10990021%2013.14272289%2010.88443769%2011.52686179%209.66015625%209.91015625%20C8.96792969%209.01167969%208.27570312%208.11320312%207.5625%207.1875%20C6.63630859%205.97126953%206.63630859%205.97126953%205.69140625%204.73046875%20C5.13324219%204.15941406%204.57507813%203.58835937%204%203%20C3.01%203%202.02%203%201%203%20C-1.1667738%205.33134682%20-1.1667738%205.33134682%20-3.375%208.4375%20C-4.25611385%209.62008724%20-5.13764692%2010.80236221%20-6.01953125%2011.984375%20C-6.49342285%2012.62568359%20-6.96731445%2013.26699219%20-7.45556641%2013.92773438%20C-9.12007314%2016.16110984%20-10.81214938%2018.37132519%20-12.51171875%2020.578125%20C-13.10098145%2021.34326416%20-13.69024414%2022.10840332%20-14.29736328%2022.89672852%20C-15.46363033%2024.41029473%20-16.62997013%2025.92380488%20-17.79638672%2027.43725586%20C-18.32893066%2028.13214111%20-18.86147461%2028.82702637%20-19.41015625%2029.54296875%20C-19.88590088%2030.16196045%20-20.36164551%2030.78095215%20-20.85180664%2031.41870117%20C-22.07331217%2033.0102519%20-22.07331217%2033.0102519%20-23%2035%20C-19.37%2035%20-15.74%2035%20-12%2035%20C-12%2038.63%20-12%2042.26%20-12%2046%20C-16.95%2046.33%20-21.9%2046.66%20-27%2047%20C-27%2054.26%20-27%2061.52%20-27%2069%20C-22.05%2069%20-17.1%2069%20-12%2069%20C-11.98541748%2070.31081543%20-11.97083496%2071.62163086%20-11.95581055%2072.97216797%20C-11.89747545%2077.87396394%20-11.82024648%2082.77531735%20-11.73754883%2087.67675781%20C-11.70446426%2089.7909421%20-11.67638204%2091.90521123%20-11.65356445%2094.01953125%20C-11.61971392%2097.07328159%20-11.56738455%20100.12626594%20-11.51171875%20103.1796875%20C-11.50532883%20104.11239471%20-11.4989389%20105.04510193%20-11.49235535%20106.006073%20C-11.26437364%20116.37399184%20-8.63724873%20126.05256773%20-1.3671875%20133.72265625%20C6.92807918%20141.29255208%2016.09690889%20142.40300166%2027.015625%20142.2109375%20C37.64372477%20141.64827339%2045.9753421%20138.49041118%2055%20133%20C55.66%20132.67%2056.32%20132.34%2057%20132%20C56.17631135%20135.60363786%2054.73164913%20137.5598772%2051.8125%20139.6875%20C43.36448472%20144.51927852%2032.57412865%20144.15231016%2023.0625%20144.25%20C22.03491577%20144.2641394%2022.03491577%20144.2641394%2020.98657227%20144.27856445%20C16.010662%20144.24659412%2011.7517971%20143.33793617%207%20142%20C6.67%20142.66%206.34%20143.32%206%20144%20C6%20143.34%206%20142.68%206%20142%20C5.2575%20141.731875%204.515%20141.46375%203.75%20141.1875%20C1.10938051%20140.04723249%20-0.85552844%20138.90619694%20-3%20137%20C-3%20136.34%20-3%20135.68%20-3%20135%20C-4.32%20134.67%20-5.64%20134.34%20-7%20134%20C-7.495%20132.02%20-7.495%20132.02%20-8%20130%20C-8.66%20130%20-9.32%20130%20-10%20130%20C-13.3917714%20117.17092103%20-13.35377076%20104.75435973%20-13.1875%2091.5625%20C-13.17241597%2089.4629003%20-13.15873419%2087.36329003%20-13.14648438%2085.26367188%20C-13.1137965%2080.17551518%20-13.0622224%2075.0878777%20-13%2070%20C-17.95%2070%20-22.9%2070%20-28%2070%20C-29.81226714%2066.37546571%20-29.18470181%2062.11521368%20-29.1875%2058.125%20C-29.19974609%2057.21363281%20-29.21199219%2056.30226563%20-29.22460938%2055.36328125%20C-29.22654297%2054.48285156%20-29.22847656%2053.60242188%20-29.23046875%2052.6953125%20C-29.23457764%2051.89109863%20-29.23868652%2051.08688477%20-29.24291992%2050.25830078%20C-28.96966064%2047.71795063%20-28.41516433%2046.12497675%20-27%2044%20C-24.1796875%2043.390625%20-24.1796875%2043.390625%20-20.875%2043.25%20C-19.77929688%2043.19328125%20-18.68359375%2043.1365625%20-17.5546875%2043.078125%20C-16.71164062%2043.05234375%20-15.86859375%2043.0265625%20-15%2043%20C-14.505%2040.03%20-14.505%2040.03%20-14%2037%20C-14.721875%2037.20625%20-15.44375%2037.4125%20-16.1875%2037.625%20C-19.54297056%2038.07239607%20-21.11604375%2037.76241771%20-24%2036%20C-24.875%2033.7421875%20-24.875%2033.7421875%20-25%2031%20C-23.453125%2028.359375%20-23.453125%2028.359375%20-21.25%2025.75%20C-20.53328125%2024.87859375%20-19.8165625%2024.0071875%20-19.078125%2023.109375%20C-17%2021%20-17%2021%20-14%2020%20C-14%2019.34%20-14%2018.68%20-14%2018%20C-13.34%2018%20-12.68%2018%20-12%2018%20C-12%2017.01%20-12%2016.02%20-12%2015%20C-11.34%2015%20-10.68%2015%20-10%2015%20C-9.938125%2014.46375%20-9.87625%2013.9275%20-9.8125%2013.375%20C-8.59964736%209.82973843%20-6.55389074%207.7407608%20-4%205%20C-3.34%205%20-2.68%205%20-2%205%20C-1.855625%204.360625%20-1.71125%203.72125%20-1.5625%203.0625%20C-1%201%20-1%201%200%200%20Z%20'%20fill='%23F2FFD9'%20transform='translate(659,421)'/%3e%3cpath%20d='M0%200%20C7.92%200%2015.84%200%2024%200%20C24%207.26%2024%2014.52%2024%2022%20C16.08%2022%208.16%2022%200%2022%20C0.05110565%2028.01513491%200.11411805%2034.02770699%200.20751953%2040.04199219%20C0.23569066%2042.08650395%200.25692435%2044.13112384%200.27099609%2046.17578125%20C0.29247887%2049.12035322%200.3391569%2052.06363041%200.390625%2055.0078125%20C0.39185364%2055.9174173%200.39308228%2056.82702209%200.39434814%2057.76419067%20C0.52424586%2063.4323883%201.24752639%2066.66904733%205%2071%20C7.15616421%2071.84067552%207.15616421%2071.84067552%209.4375%2071.875%20C13.59953049%2072.52786753%2013.59953049%2072.52786753%2015.484375%2074.75%20C16.28446347%2076.16314328%2017.06211601%2077.58923329%2017.81640625%2079.02734375%20C20.15058208%2082.91763679%2023.83300287%2084.61100096%2028%2086%20C29.72795352%2086.06802967%2031.45835365%2086.08495645%2033.1875%2086.0625%20C34.08855469%2086.05347656%2034.98960937%2086.04445313%2035.91796875%2086.03515625%20C36.60503906%2086.02355469%2037.29210937%2086.01195312%2038%2086%20C28.4198669%2094.94145756%2015.04998512%2096.35397366%202.5546875%2096.203125%20C-1.58388881%2095.96663493%20-5.07173198%2095.28269976%20-9%2094%20C-6.13129876%2093.17066175%20-3.67877335%2092.90857069%20-0.69921875%2093.0078125%20C0.51991211%2093.03294922%200.51991211%2093.03294922%201.76367188%2093.05859375%20C3.45140273%2093.10256528%205.13894568%2093.15453885%206.82617188%2093.21484375%20C12.36551383%2093.31102806%2016.06333211%2092.5449489%2021%2090%20C21%2089.01%2021%2088.02%2021%2087%20C19.5459375%2086.0409375%2019.5459375%2086.0409375%2018.0625%2085.0625%20C15%2083%2015%2083%2014.125%2080.75%20C14.08375%2080.1725%2014.0425%2079.595%2014%2079%20C13.34%2079%2012.68%2079%2012%2079%20C12%2078.34%2012%2077.68%2012%2077%20C11.278125%2076.896875%2010.55625%2076.79375%209.8125%2076.6875%20C5.46614904%2075.62505865%202.79905402%2074.21337832%200.3125%2070.4375%20C-0.120625%2069.633125%20-0.55375%2068.82875%20-1%2068%20C-1.66%2067.34%20-2.32%2066.68%20-3%2066%20C-4.56682324%2055.65896659%20-4.02187183%2044.9749078%20-3.6875%2034.5625%20C-3.65293701%2033.35924072%20-3.61837402%2032.15598145%20-3.58276367%2030.91625977%20C-3.53869385%2029.79018311%20-3.49462402%2028.66410645%20-3.44921875%2027.50390625%20C-3.41143311%2026.49142822%20-3.37364746%2025.4789502%20-3.3347168%2024.43579102%20C-3%2022%20-3%2022%20-1%2020%20C1.15478516%2019.68115234%201.15478516%2019.68115234%203.7890625%2019.5859375%20C5.20058594%2019.52792969%205.20058594%2019.52792969%206.640625%2019.46875%20C7.62546875%2019.4378125%208.6103125%2019.406875%209.625%2019.375%20C11.11386719%2019.31699219%2011.11386719%2019.31699219%2012.6328125%2019.2578125%20C15.08835385%2019.1633686%2017.5438841%2019.07780125%2020%2019%20C19.98839844%2018.18015625%2019.97679687%2017.3603125%2019.96484375%2016.515625%20C19.95582031%2015.43796875%2019.94679688%2014.3603125%2019.9375%2013.25%20C19.92589844%2012.18265625%2019.91429687%2011.1153125%2019.90234375%2010.015625%20C19.98489913%207.46631499%2020.25382442%205.42066409%2021%203%20C20.01966797%203.29197266%2020.01966797%203.29197266%2019.01953125%203.58984375%20C15.00486508%204.13517357%2011.62136988%203.38864783%207.6875%202.5625%20C6.94693359%202.41490234%206.20636719%202.26730469%205.44335938%202.11523438%20C3.62718357%201.75199921%201.81333589%201.37715682%200%201%20C0%200.67%200%200.34%200%200%20Z%20'%20fill='%239BE600'%20transform='translate(676,468)'/%3e%3cpath%20d='M0%200%20C3%203%203%203%203.2578125%205.3046875%20C3.21398437%206.15289062%203.17015625%207.00109375%203.125%207.875%20C3.00502835%2011.46371724%203.2754511%2014.48076247%204%2018%20C3.60976365%2021.31700894%202.61164065%2022.93522445%200%2025%20C-2.36010742%2025.34057617%20-2.36010742%2025.34057617%20-5.10546875%2025.29296875%20C-6.08837891%2025.28330078%20-7.07128906%2025.27363281%20-8.08398438%2025.26367188%20C-9.10814453%2025.23853516%20-10.13230469%2025.21339844%20-11.1875%2025.1875%20C-12.22326172%2025.17396484%20-13.25902344%2025.16042969%20-14.32617188%2025.14648438%20C-16.88463699%2025.11111389%20-19.4420578%2025.06175544%20-22%2025%20C-21.93433838%2025.60046143%20-21.86867676%2026.20092285%20-21.80102539%2026.81958008%20C-20.93290834%2035.43139683%20-20.67409758%2044.04154841%20-20.4375%2052.6875%20C-20.39418922%2054.17904546%20-20.35057152%2055.67058205%20-20.30664062%2057.16210938%20C-20.20089527%2060.77464429%20-20.09928034%2064.38728094%20-20%2068%20C-19.05898438%2068.29648437%20-18.11796875%2068.59296875%20-17.1484375%2068.8984375%20C-14.2055568%2069.92808062%20-12.3554191%2071.00695307%20-10%2073%20C-14.03645882%2073.31658501%20-16.32333195%2073.4210379%20-19.8125%2071.25%20C-23.0830854%2067.88596931%20-24.25459399%2065.28097814%20-24.22705078%2060.59863281%20C-24.22689972%2059.7380426%20-24.22674866%2058.87745239%20-24.22659302%2057.99078369%20C-24.21627045%2057.07085632%20-24.20594788%2056.15092896%20-24.1953125%2055.203125%20C-24.1924826%2054.25435486%20-24.18965271%2053.30558472%20-24.18673706%2052.32806396%20C-24.17555448%2049.30191361%20-24.1504533%2046.2760607%20-24.125%2043.25%20C-24.11496772%2041.19661886%20-24.1058423%2039.14323308%20-24.09765625%2037.08984375%20C-24.07732418%2032.05968942%20-24.03817166%2027.03017714%20-24%2022%20C-16.08%2022%20-8.16%2022%200%2022%20C0%2014.74%200%207.48%200%200%20Z%20'%20fill='%23E8FFC2'%20transform='translate(700,468)'/%3e%3cpath%20d='M0%200%20C4.62%200%209.24%200%2014%200%20C14.01458252%201.31081543%2014.02916504%202.62163086%2014.04418945%203.97216797%20C14.10252455%208.87396394%2014.17975352%2013.77531735%2014.26245117%2018.67675781%20C14.29553574%2020.7909421%2014.32361796%2022.90521123%2014.34643555%2025.01953125%20C14.38028608%2028.07328159%2014.43261545%2031.12626594%2014.48828125%2034.1796875%20C14.49467117%2035.11239471%2014.5010611%2036.04510193%2014.50764465%2037.006073%20C14.73562636%2047.37399184%2017.36275127%2057.05256773%2024.6328125%2064.72265625%20C32.92807918%2072.29255208%2042.09690889%2073.40300166%2053.015625%2073.2109375%20C63.64372477%2072.64827339%2071.9753421%2069.49041118%2081%2064%20C81.66%2063.67%2082.32%2063.34%2083%2063%20C82.17631135%2066.60363786%2080.73164913%2068.5598772%2077.8125%2070.6875%20C69.36448472%2075.51927852%2058.57412865%2075.15231016%2049.0625%2075.25%20C48.03491577%2075.2641394%2048.03491577%2075.2641394%2046.98657227%2075.27856445%20C42.010662%2075.24659412%2037.7517971%2074.33793617%2033%2073%20C32.67%2073.66%2032.34%2074.32%2032%2075%20C32%2074.34%2032%2073.68%2032%2073%20C31.2575%2072.731875%2030.515%2072.46375%2029.75%2072.1875%20C27.10938051%2071.04723249%2025.14447156%2069.90619694%2023%2068%20C23%2067.34%2023%2066.68%2023%2066%20C21.68%2065.67%2020.36%2065.34%2019%2065%20C18.67%2063.68%2018.34%2062.36%2018%2061%20C17.34%2061%2016.68%2061%2016%2061%20C12.6082286%2048.17092103%2012.64622924%2035.75435973%2012.8125%2022.5625%20C12.82758403%2020.4629003%2012.84126581%2018.36329003%2012.85351562%2016.26367188%20C12.8862035%2011.17551518%2012.9377776%206.0878777%2013%201%20C8.71%201%204.42%201%200%201%20C0%200.67%200%200.34%200%200%20Z%20'%20fill='%23E8FFC2'%20transform='translate(633,490)'/%3e%3cpath%20d='M0%200%20C0.81434143%202.85160391%201.11881242%205.36626131%201.09765625%208.328125%20C1.09443359%209.12734375%201.09121094%209.9265625%201.08789062%2010.75%20C1.07951172%2011.575%201.07113281%2012.4%201.0625%2013.25%20C1.05798828%2014.09046875%201.05347656%2014.9309375%201.04882812%2015.796875%20C1.03707961%2017.86461401%201.01914522%2019.93231624%201%2022%20C1.99%2022%202.98%2022%204%2022%20C4%2028.27%204%2034.54%204%2041%20C-5.24%2041%20-14.48%2041%20-24%2041%20C-24%2040.67%20-24%2040.34%20-24%2040%20C-22.35%2040%20-20.7%2040%20-19%2040%20C-19%2028.12%20-19%2016.24%20-19%204%20C-18.34%203.67%20-17.68%203.34%20-17%203%20C-17%2015.21%20-17%2027.42%20-17%2040%20C-11.72%2040%20-6.44%2040%20-1%2040%20C-1.00523682%2038.82381104%20-1.01047363%2037.64762207%20-1.01586914%2036.43579102%20C-1.03391663%2032.08797969%20-1.04543108%2027.7401717%20-1.05493164%2023.39233398%20C-1.05997244%2021.5075627%20-1.06680498%2019.62279535%20-1.07543945%2017.73803711%20C-1.08751617%2015.03498364%20-1.09323068%2012.33198169%20-1.09765625%209.62890625%20C-1.10281754%208.78099014%20-1.10797882%207.93307404%20-1.11329651%207.0594635%20C-1.11349195%205.03928932%20-1.06206211%203.01922066%20-1%201%20C-0.67%200.67%20-0.34%200.34%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(369,521)'/%3e%3cpath%20d='M0%200%20C7.92%200%2015.84%200%2024%200%20C24%207.26%2024%2014.52%2024%2022%20C11.625%2022.495%2011.625%2022.495%20-1%2023%20C-1.33%2036.2%20-1.66%2049.4%20-2%2063%20C-2.33%2063%20-2.66%2063%20-3%2063%20C-4.13448821%2053.55756734%20-4.00188302%2044.23836711%20-3.6875%2034.75%20C-3.65277588%2033.53530029%20-3.61805176%2032.32060059%20-3.58227539%2031.0690918%20C-3.5383667%2029.92738525%20-3.49445801%2028.78567871%20-3.44921875%2027.609375%20C-3.41143311%2026.57780273%20-3.37364746%2025.54623047%20-3.3347168%2024.48339844%20C-3%2022%20-3%2022%20-1%2020%20C1.15478516%2019.68115234%201.15478516%2019.68115234%203.7890625%2019.5859375%20C5.20058594%2019.52792969%205.20058594%2019.52792969%206.640625%2019.46875%20C7.62546875%2019.4378125%208.6103125%2019.406875%209.625%2019.375%20C11.11386719%2019.31699219%2011.11386719%2019.31699219%2012.6328125%2019.2578125%20C15.08835385%2019.1633686%2017.5438841%2019.07780125%2020%2019%20C19.98839844%2018.18015625%2019.97679687%2017.3603125%2019.96484375%2016.515625%20C19.95582031%2015.43796875%2019.94679688%2014.3603125%2019.9375%2013.25%20C19.92589844%2012.18265625%2019.91429687%2011.1153125%2019.90234375%2010.015625%20C19.98489913%207.46631499%2020.25382442%205.42066409%2021%203%20C20.01966797%203.29197266%2020.01966797%203.29197266%2019.01953125%203.58984375%20C15.00486508%204.13517357%2011.62136988%203.38864783%207.6875%202.5625%20C6.94693359%202.41490234%206.20636719%202.26730469%205.44335938%202.11523438%20C3.62718357%201.75199921%201.81333589%201.37715682%200%201%20C0%200.67%200%200.34%200%200%20Z%20'%20fill='%23A7EA18'%20transform='translate(676,468)'/%3e%3cpath%20d='M0%200%20C1.98%200%203.96%200%206%200%20C6.96345149%205.39532832%206.9764649%2010.29708307%206.5625%2015.75%20C6.15134315%2021.36947121%206.15134315%2021.36947121%206%2027%20C4.94140625%2029.04296875%204.94140625%2029.04296875%203.5625%2031.1875%20C2.88380859%2032.26064453%202.88380859%2032.26064453%202.19140625%2033.35546875%20C1.79824219%2033.89816406%201.40507812%2034.44085938%201%2035%20C0.67%2035%200.34%2035%200%2035%20C0%2023.45%200%2011.9%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(345,472)'/%3e%3cpath%20d='M0%200%20C0.33%200%200.66%200%201%200%20C1%2025.74%201%2051.48%201%2078%20C0.01%2077.67%20-0.98%2077.34%20-2%2077%20C-1.83734146%2076.29841263%20-1.67468292%2075.59682526%20-1.50709534%2074.87397766%20C-0.97453003%2071.8556482%20-0.87991379%2069.08025882%20-0.88647461%2066.01635742%20C-0.88655014%2064.83551071%20-0.88662567%2063.654664%20-0.88670349%2062.43803406%20C-0.89186478%2061.17328751%20-0.89702606%2059.90854095%20-0.90234375%2058.60546875%20C-0.9037587%2057.30297684%20-0.90517365%2056.00048492%20-0.90663147%2054.65852356%20C-0.91043645%2051.20783546%20-0.92024936%2047.75718992%20-0.93133545%2044.30651855%20C-0.94159311%2040.78052343%20-0.9461384%2037.25452139%20-0.95117188%2033.72851562%20C-0.96187356%2026.81899301%20-0.97892557%2019.90949855%20-1%2013%20C-1.99%2012.67%20-2.98%2012.34%20-4%2012%20C-3.649375%2011.236875%20-3.29875%2010.47375%20-2.9375%209.6875%20C-1.67639116%206.95240621%20-1.67639116%206.95240621%20-3%204%20C-1.625%201.8125%20-1.625%201.8125%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(929,483)'/%3e%3cpath%20d='M0%200%20C0.66%200.33%201.32%200.66%202%201%20C3.78043103%208.12172411%203%2015.65909482%203%2023%20C-16.47%2023%20-35.94%2023%20-56%2023%20C-56%2022.67%20-56%2022.34%20-56%2022%20C-28.775%2021.505%20-28.775%2021.505%20-1%2021%20C-1.66%2018.03%20-2.32%2015.06%20-3%2012%20C-2.70676058%207.60140869%20-1.82135506%204.00698114%200%200%20Z%20'%20fill='%2312003B'%20transform='translate(811,500)'/%3e%3cpath%20d='M0%200%20C10.89%200%2021.78%200%2033%200%20C32%202%2032%202%2028.9375%203.125%20C27.968125%203.41375%2026.99875%203.7025%2026%204%20C26%204.33%2026%204.66%2026%205%20C22.9166866%205.02911321%2019.83340875%205.04683682%2016.75%205.0625%20C15.87730469%205.07087891%2015.00460938%205.07925781%2014.10546875%205.08789062%20C13.26113281%205.09111328%2012.41679687%205.09433594%2011.546875%205.09765625%20C10.38430176%205.10551147%2010.38430176%205.10551147%209.19824219%205.11352539%20C6.99642569%204.99981541%205.11528675%204.60281778%203%204%20C2.2575%203.814375%201.515%203.62875%200.75%203.4375%20C0.1725%203.293125%20-0.405%203.14875%20-1%203%20C-0.67%202.01%20-0.34%201.02%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(127,456)'/%3e%3cpath%20d='M0%200%20C0.33%200%200.66%200%201%200%20C1.00808685%200.61085953%201.01617371%201.22171906%201.02450562%201.85108948%20C1.11077125%208.22686062%201.21028396%2014.60232871%201.31738281%2020.9777832%20C1.355592%2023.35500995%201.39045875%2025.73229292%201.421875%2028.10961914%20C1.46770039%2031.53291881%201.52566668%2034.95583411%201.5859375%2038.37890625%20C1.60326431%2039.9652462%201.60326431%2039.9652462%201.62094116%2041.58363342%20C1.73033867%2047.09218328%202.17067468%2051.79123684%204%2057%20C4.66%2057%205.32%2057%206%2057%20C6.061875%2057.61875%206.12375%2058.2375%206.1875%2058.875%20C6.80875315%2061.2501999%206.80875315%2061.2501999%209.375%2062.0625%20C10.24125%2062.371875%2011.1075%2062.68125%2012%2063%20C13.6875%2064.5625%2013.6875%2064.5625%2015%2066%20C15.66%2066.33%2016.32%2066.66%2017%2067%20C17.625%2069.0625%2017.625%2069.0625%2018%2071%20C11.64674292%2069.72934858%207.98595005%2065.83583279%204%2061%20C-0.20320088%2054.43626224%20-1.13694835%2048.50999461%20-1.09375%2040.75%20C-1.09016479%2040.05398682%20-1.08657959%2039.35797363%20-1.08288574%2038.64086914%20C-1.02339219%2030.75687156%20-0.77025329%2022.87906229%20-0.5%2015%20C-0.4515835%2013.53125787%20-0.40340556%2012.06250786%20-0.35546875%2010.59375%20C-0.23971031%207.06240545%20-0.12078988%203.53117647%200%200%20Z%20'%20fill='%23A7EA18'%20transform='translate(649,490)'/%3e%3cpath%20d='M0%200%20C6.93%200%2013.86%200%2021%200%20C21%200.66%2021%201.32%2021%202%20C23.475%202.99%2023.475%202.99%2026%204%20C26%204.33%2026%204.66%2026%205%20C14.78%205%203.56%205%20-8%205%20C-4%203%20-4%203%20-1%202%20C-0.67%201.34%20-0.34%200.68%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(132,539)'/%3e%3cpath%20d='M0%200%20C0.33%200%200.66%200%201%200%20C1.0093457%201.27117676%201.01869141%202.54235352%201.02832031%203.85205078%20C1.0682865%208.58238362%201.13406414%2013.31207062%201.20751953%2018.04199219%20C1.23569066%2020.08650395%201.25692435%2022.13112384%201.27099609%2024.17578125%20C1.29247887%2027.12035322%201.3391569%2030.06363041%201.390625%2033.0078125%20C1.39246796%2034.3722197%201.39246796%2034.3722197%201.39434814%2035.76419067%20C1.52438447%2041.4384366%202.24925859%2044.66233702%206%2049%20C8.30476633%2050.12133721%208.30476633%2050.12133721%2010.75%2050.375%20C11.54921875%2050.50648438%2012.3484375%2050.63796875%2013.171875%2050.7734375%20C13.77515625%2050.84820313%2014.3784375%2050.92296875%2015%2051%20C15%2051.33%2015%2051.66%2015%2052%20C13.22992286%2052.08114106%2011.45877902%2052.13925505%209.6875%2052.1875%20C8.70136719%2052.22230469%207.71523438%2052.25710938%206.69921875%2052.29296875%20C4%2052%204%2052%202.20703125%2050.67578125%20C1%2049%201%2049%200%2046%20C-0.66%2045.34%20-1.32%2044.68%20-2%2044%20C-2.20927429%2042.1337738%20-2.20927429%2042.1337738%20-2.15112305%2039.84155273%20C-2.13417892%2038.98403915%20-2.1172348%2038.12652557%20-2.09977722%2037.24302673%20C-2.07071793%2036.31591385%20-2.04165863%2035.38880096%20-2.01171875%2034.43359375%20C-1.98906448%2033.48436539%20-1.96641022%2032.53513702%20-1.94306946%2031.55714417%20C-1.8930653%2029.54879358%20-1.83809315%2027.54056154%20-1.77856445%2025.5324707%20C-1.68777846%2022.4469639%20-1.61311485%2019.36138491%20-1.54101562%2016.27539062%20C-1.49053325%2014.32810014%20-1.43913222%2012.38083321%20-1.38671875%2010.43359375%20C-1.36373215%209.50445663%20-1.34074554%208.57531952%20-1.31706238%207.61802673%20C-1.29066177%206.76366531%20-1.26426117%205.90930389%20-1.23706055%205.02905273%20C-1.21548386%204.27341537%20-1.19390717%203.51777802%20-1.17167664%202.73924255%20C-1%201%20-1%201%200%200%20Z%20'%20fill='%23C7FF57'%20transform='translate(675,490)'/%3e%3cpath%20d='M0%200%20C0.33%200%200.66%200%201%200%20C1%2014.85%201%2029.7%201%2045%20C-1%2043%20-1%2043%20-1.125%2040.72265625%20C-1.04178877%2038.95181718%20-0.95845579%2037.18098382%20-0.875%2035.41015625%20C-0.80800597%2032.73455911%20-0.80800597%2032.73455911%20-3%2030%20C-2.505%2028.515%20-2.505%2028.515%20-2%2027%20C-2.31050297%2025.32892945%20-2.64717051%2023.66264856%20-3%2022%20C-3.09035285%2020.00160753%20-3.13010313%2018.00042747%20-3.125%2016%20C-3.12757813%2014.989375%20-3.13015625%2013.97875%20-3.1328125%2012.9375%20C-3.00826727%2010.18285256%20-2.62110865%207.68161197%20-2%205%20C-1.34%205%20-0.68%205%200%205%20C0%203.35%200%201.7%200%200%20Z%20'%20fill='%23FFFFFF'%20transform='translate(901,431)'/%3e%3cpath%20d='M0%200%20C2.57069617%203.85604425%202.35065056%207.12746343%202.4140625%2011.60546875%20C2.43342865%2012.44467361%202.4527948%2013.28387848%202.4727478%2014.14851379%20C2.53251213%2016.82807258%202.57891612%2019.5076744%202.625%2022.1875%20C2.6631827%2024.00457599%202.70223461%2025.82163394%202.7421875%2027.63867188%20C2.83821103%2032.09230132%202.92225359%2036.54601551%203%2041%20C3.94101562%2041.29648437%204.88203125%2041.59296875%205.8515625%2041.8984375%20C8.7944432%2042.92808062%2010.6445809%2044.00695307%2013%2046%20C8.86001651%2046.32470459%206.66000999%2046.4304413%203.125%2044.125%20C0.12481839%2041.12481839%200.01401021%2040.48116775%20-0.11352539%2036.10107422%20C-0.11336671%2034.418937%20-0.10769737%2032.73679475%20-0.09765625%2031.0546875%20C-0.0962413%2030.1696756%20-0.09482635%2029.2846637%20-0.09336853%2028.37283325%20C-0.0877614%2025.54018809%20-0.07520771%2022.70762136%20-0.0625%2019.875%20C-0.05748592%2017.95703239%20-0.05292285%2016.03906354%20-0.04882812%2014.12109375%20C-0.03778966%209.41403218%20-0.02052025%204.7070294%200%200%20Z%20'%20fill='%23F2FFD9'%20transform='translate(677,495)'/%3e%3cpath%20d='M0%200%20C0.82200425%206.24723226%20-2.07448606%2010.71317837%20-5%2016%20C-6.95100616%2014.37586398%20-7.92782782%2013.56206818%20-8.2578125%2010.9921875%20C-8.21398437%2010.29351562%20-8.17015625%209.59484375%20-8.125%208.875%20C-8.08375%207.59625%20-8.0425%206.3175%20-8%205%20C-8.98267859%203.79438816%20-8.98267859%203.79438816%20-10.84765625%203.90234375%20C-12.8984375%203.93489583%20-14.94921875%203.96744792%20-17%204%20C-17%203.01%20-17%202.02%20-17%201%20C-14.3541898%200.832959%20-11.70835369%200.66634934%20-9.0625%200.5%20C-8.30775391%200.45230469%20-7.55300781%200.40460938%20-6.77539062%200.35546875%20C-1.11328125%200%20-1.11328125%200%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(369,467)'/%3e%3cpath%20d='M0%200%20C4.29%200%208.58%200%2013%200%20C13.02505615%201.34747314%2013.0501123%202.69494629%2013.07592773%204.08325195%20C13.17000223%209.07602678%2013.27022294%2014.06866249%2013.37231445%2019.0612793%20C13.41566313%2021.2233556%2013.45733825%2023.38546613%2013.49731445%2025.54760742%20C13.55501844%2028.65293702%2013.61871272%2031.75809436%2013.68359375%2034.86328125%20C13.70030624%2035.83211746%2013.71701874%2036.80095367%2013.73423767%2037.79914856%20C13.75418289%2038.6998558%2013.77412811%2039.60056305%2013.79467773%2040.52856445%20C13.81022202%2041.32132278%2013.8257663%2042.11408112%2013.84178162%2042.93086243%20C13.93081226%2045.19739774%2013.93081226%2045.19739774%2015%2048%20C15.12781786%2050.67394964%2015.04391871%2053.32095857%2015%2056%20C14.67%2056%2014.34%2056%2014%2056%20C13.29066112%2053.54623548%2012.60781467%2051.08945724%2011.9375%2048.625%20C11.73833984%2047.94566406%2011.53917969%2047.26632812%2011.33398438%2046.56640625%20C10.04560625%2041.72933752%2010.02964032%2037.78697173%2010.67358398%2032.84228516%20C11.33901124%2027.04804123%2011.37950304%2021.20090331%2011.5625%2015.375%20C11.60568359%2014.08464844%2011.64886719%2012.79429687%2011.69335938%2011.46484375%20C11.79852148%208.30998067%2011.90066604%205.15505105%2012%202%20C11.25363281%202.17402344%2010.50726562%202.34804688%209.73828125%202.52734375%20C6.30488867%203.11998355%203.41085419%202.60191545%200%202%20C0%201.34%200%200.68%200%200%20Z%20'%20fill='%23F2FFD9'%20transform='translate(633,491)'/%3e%3cpath%20d='M0%200%20C7.26%200%2014.52%200%2022%200%20C21.34%200.66%2020.68%201.32%2020%202%20C20.33%202.66%2020.66%203.32%2021%204%20C14.73%204%208.46%204%202%204%20C2%206.64%202%209.28%202%2012%20C1.34%2012.66%200.68%2013.32%200%2014%20C0.01160156%2013.30132812%200.02320313%2012.60265625%200.03515625%2011.8828125%20C0.04417969%2010.97273438%200.05320313%2010.06265625%200.0625%209.125%20C0.07410156%208.22007812%200.08570313%207.31515625%200.09765625%206.3828125%20C0.16249257%203.9831415%200.16249257%203.9831415%20-1%202%20C-0.67%201.34%20-0.34%200.68%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(230,468)'/%3e%3cpath%20d='M0%200%20C3.26587942%200.14550948%206.38789358%200.49324673%209.5625%201.3125%20C9.2325%202.3025%208.9025%203.2925%208.5625%204.3125%20C9.2225%204.6425%209.8825%204.9725%2010.5625%205.3125%20C9.5625%206.3125%209.5625%206.3125%206.87866211%206.42602539%20C5.71085205%206.42078857%204.54304199%206.41555176%203.33984375%206.41015625%20C2.07978516%206.40693359%200.81972656%206.40371094%20-0.47851562%206.40039062%20C-1.81901109%206.39203403%20-3.15950588%206.38356907%20-4.5%206.375%20C-5.84439942%206.3699866%20-7.1888006%206.36542342%20-8.53320312%206.36132812%20C-11.83467941%206.34949488%20-15.13606803%206.33300971%20-18.4375%206.3125%20C-15.4375%204.3125%20-15.4375%204.3125%20-12%204.4375%20C-8.38721028%204.72990718%20-8.38721028%204.72990718%20-6.5625%202.3125%20C-4.04895307%20-0.05319123%20-3.34014743%200.01650814%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(584.4375,465.6875)'/%3e%3cpath%20d='M0%200%20C1.32%200%202.64%200%204%200%20C4%200.66%204%201.32%204%202%20C4.73605469%201.855625%205.47210937%201.71125%206.23046875%201.5625%20C7.20628906%201.376875%208.18210937%201.19125%209.1875%201%20C10.15042969%200.814375%2011.11335937%200.62875%2012.10546875%200.4375%20C18.83937824%20-0.58031088%2018.83937824%20-0.58031088%2022%201%20C22.99%200.67%2023.98%200.34%2025%200%20C25.33%200.33%2025.66%200.66%2026%201%20C27.99964982%201.08758003%2030.0023611%201.10696576%2032.00390625%201.09765625%20C33.82631836%201.09282227%2033.82631836%201.09282227%2035.68554688%201.08789062%20C36.96494141%201.07951172%2038.24433594%201.07113281%2039.5625%201.0625%20C41.48739258%201.05573242%2041.48739258%201.05573242%2043.45117188%201.04882812%20C46.63416022%201.03699545%2049.81705762%201.02051068%2053%201%20C53.495%201.99%2053.495%201.99%2054%203%20C36.18%203%2018.36%203%200%203%20C0%202.01%200%201.02%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(731,509)'/%3e%3cpath%20d='M0%200%20C3.3%200%206.6%200%2010%200%20C10%200.33%2010%200.66%2010%201%20C7.69%201.33%205.38%201.66%203%202%20C3%204.64%203%207.28%203%2010%20C3.66%209.67%204.32%209.34%205%209%20C6.44848582%208.91657841%207.90070869%208.89267139%209.3515625%208.90234375%20C10.20234375%208.90556641%2011.053125%208.90878906%2011.9296875%208.91210938%20C12.81914063%208.92048828%2013.70859375%208.92886719%2014.625%208.9375%20C15.5221875%208.94201172%2016.419375%208.94652344%2017.34375%208.95117188%20C19.56256648%208.96297409%2021.78125018%208.97943845%2024%209%20C24%209.99%2024%2010.98%2024%2012%20C16.08%2012%208.16%2012%200%2012%20C0%208.04%200%204.08%200%200%20Z%20'%20fill='%23E8FFC2'%20transform='translate(676,456)'/%3e%3cpath%20d='M0%200%20C0.33%200%200.66%200%201%200%20C1.02893932%203.62498334%201.04677792%207.24993713%201.0625%2010.875%20C1.07087891%2011.90753906%201.07925781%2012.94007813%201.08789062%2014.00390625%20C1.09111328%2014.99003906%201.09433594%2015.97617187%201.09765625%2016.9921875%20C1.10289307%2017.90339355%201.10812988%2018.81459961%201.11352539%2019.75341797%20C1%2022%201%2022%200%2024%20C-0.99%2023.67%20-1.98%2023.34%20-3%2023%20C-5.01862148%2017.75866703%20-4.98056566%2010.73616357%20-3.10546875%205.50390625%20C-2.15670432%203.62314001%20-1.08879621%201.80331872%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(831,508)'/%3e%3cpath%20d='M0%200%20C1.98%200%203.96%200%206%200%20C5.67%200.99%205.34%201.98%205%203%20C5.99%203.33%206.98%203.66%208%204%20C7.34%204%206.68%204%206%204%20C6.66%205.65%207.32%207.3%208%209%20C9.65%208.67%2011.3%208.34%2013%208%20C13.33%209.32%2013.66%2010.64%2014%2012%20C16.31%2012%2018.62%2012%2021%2012%20C21%2011.34%2021%2010.68%2021%2010%20C21.66%2010%2022.32%2010%2023%2010%20C23.33%2010.99%2023.66%2011.98%2024%2013%20C18.94576102%2014.68474633%2014.71544468%2014.58019314%209.875%2012.375%20C5.29909504%209.86935884%201.9168134%206.67991608%200.1875%201.625%20C0.125625%201.08875%200.06375%200.5525%200%200%20Z%20'%20fill='%236F9300'%20transform='translate(690,541)'/%3e%3cpath%20d='M0%200%20C6.93%200.33%2013.86%200.66%2021%201%20C20.34%201.66%2019.68%202.32%2019%203%20C19.33%203.66%2019.66%204.32%2020%205%20C17.10410348%205.02706445%2014.20846205%205.04687029%2011.3125%205.0625%20C10.08756836%205.07506836%2010.08756836%205.07506836%208.83789062%205.08789062%20C4.75500916%205.10442051%200.98348293%205.03035098%20-3%204%20C-2.34%203.67%20-1.68%203.34%20-1%203%20C-0.67%202.01%20-0.34%201.02%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(241,593)'/%3e%3cpath%20d='M0%200%20C0.33%200%200.66%200%201%200%20C1%208.25%201%2016.5%201%2025%20C0.34%2025%20-0.32%2025%20-1%2025%20C-3.52775351%2021.20836973%20-3.22443035%2018.19125969%20-3.125%2013.8125%20C-3.11597656%2013.06291016%20-3.10695312%2012.31332031%20-3.09765625%2011.54101562%20C-3.07412578%209.69387346%20-3.03825561%207.84689588%20-3%206%20C-2.67%206%20-2.34%206%20-2%206%20C-1.34%204.02%20-0.68%202.04%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(191,487)'/%3e%3cpath%20d='M0%200%20C0.66%200.66%201.32%201.32%202%202%20C1.525625%202.845625%201.05125%203.69125%200.5625%204.5625%20C-1.69167803%209.67126796%20-1.51097377%2015.18235336%20-1.69140625%2020.671875%20C-2%2024%20-2%2024%20-4%2027%20C-4.39387788%2029.32387947%20-4.73486085%2031.65793749%20-5%2034%20C-5.33%2034%20-5.66%2034%20-6%2034%20C-6.52846015%2021.74266038%20-5.86678537%2011.12575063%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(832,489)'/%3e%3cpath%20d='M0%200%20C0.98742187%200.16242187%201.97484375%200.32484375%202.9921875%200.4921875%20C7.03537925%201.06688527%2011.04640663%201.15126811%2015.125%201.125%20C15.858396%201.12306641%2016.59179199%201.12113281%2017.34741211%201.11914062%20C23.93030125%201.06771738%2030.4468302%200.63822175%2037%200%20C33.42278921%202.9386979%2031.63341748%203.18911908%2027%203%20C22.9008693%203.63063549%2018.97489026%204.83091463%2015%206%20C15%205.34%2015%204.68%2015%204%20C13.02%204.66%2011.04%205.32%209%206%20C8.67%205.34%208.34%204.68%208%204%20C6.8553125%204.12375%206.8553125%204.12375%205.6875%204.25%20C3%204%203%204%201.1875%202%20C0.5996875%201.01%200.5996875%201.01%200%200%20Z%20'%20fill='%23F2FFD9'%20transform='translate(667,563)'/%3e%3cpath%20d='M0%200%20C-1.70577342%200.65256456%20-3.41476089%201.29673041%20-5.125%201.9375%20C-6.07632813%202.29714844%20-7.02765625%202.65679688%20-8.0078125%203.02734375%20C-18.08362171%206.30263943%20-29.94180625%206.28430816%20-40%203%20C-37.09031691%202.16087482%20-34.5469594%201.89148572%20-31.5234375%201.9375%20C-30.27046875%201.94910156%20-30.27046875%201.94910156%20-28.9921875%201.9609375%20C-28.12851562%201.97382812%20-27.26484375%201.98671875%20-26.375%202%20C-24.65370809%202.0254629%20-22.93234349%202.04651171%20-21.2109375%202.0625%20C-20.45087402%202.07410156%20-19.69081055%202.08570313%20-18.90771484%202.09765625%20C-16.91256704%202.12332635%20-16.91256704%202.12332635%20-15%201%20C-12.70190464%200.69130062%20-10.40279871%200.49116352%20-8.09375%200.28125%20C-1.8556701%20-0.55670103%20-1.8556701%20-0.55670103%200%200%20Z%20'%20fill='%23C7FF57'%20transform='translate(707,559)'/%3e%3cpath%20d='M0%200%20C9.57%200%2019.14%200%2029%200%20C29%200.33%2029%200.66%2029%201%20C21.41%201%2013.82%201%206%201%20C6.33%202.32%206.66%203.64%207%205%20C6.87890625%207.359375%206.87890625%207.359375%206.5625%209.75%20C6.46066406%2010.54921875%206.35882813%2011.3484375%206.25390625%2012.171875%20C6.12822266%2013.07679688%206.12822266%2013.07679688%206%2014%20C4.31821339%2011.47732009%203.09893258%209.18908177%201.875%206.4375%20C1.52179688%205.65246094%201.16859375%204.86742187%200.8046875%204.05859375%20C0%202%200%202%200%200%20Z%20'%20fill='%2312003B'%20transform='translate(224,467)'/%3e%3cpath%20d='M0%200%20C0.33%200%200.66%200%201%200%20C1%207.59%201%2015.18%201%2023%20C0.01%2023%20-0.98%2023%20-2%2023%20C-3.53887884%208.19349005%20-3.53887884%208.19349005%20-1%201%20C-0.67%200.67%20-0.34%200.34%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(372,520)'/%3e%3cpath%20d='M0%200%20C6.93%200%2013.86%200%2021%200%20C19.02%200.99%2019.02%200.99%2017%202%20C16.37609375%202.53238281%2015.7521875%203.06476563%2015.109375%203.61328125%20C12.34672115%205.42947035%2010.52244363%205.30437299%207.25%205.1875%20C5.77273438%205.14689453%205.77273438%205.14689453%204.265625%205.10546875%20C3.14414062%205.05326172%203.14414062%205.05326172%202%205%20C2.33%204.01%202.66%203.02%203%202%20C2.01%201.34%201.02%200.68%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(454,466)'/%3e%3cpath%20d='M0%200%20C0.33%200%200.66%200%201%200%20C1%202.97%201%205.94%201%209%20C2.32451172%208.87431641%202.32451172%208.87431641%203.67578125%208.74609375%20C11.27709596%208.10108423%2018.43413122%207.99636435%2026%209%20C26%209.66%2026%2010.32%2026%2011%20C17.42%2011%208.84%2011%200%2011%20C0%207.37%200%203.74%200%200%20Z%20'%20fill='%2312003B'%20transform='translate(904,552)'/%3e%3cpath%20d='M0%200%20C1.28132812%200.00902344%202.56265625%200.01804687%203.8828125%200.02734375%20C4.87023437%200.03894531%205.85765625%200.05054688%206.875%200.0625%20C6.875%200.7225%206.875%201.3825%206.875%202.0625%20C7.535%202.3925%208.195%202.7225%208.875%203.0625%20C7.875%204.0625%207.875%204.0625%204.27734375%204.16015625%20C2.78903133%204.1534822%201.30073568%204.14152183%20-0.1875%204.125%20C-0.94611328%204.12048828%20-1.70472656%204.11597656%20-2.48632812%204.11132812%20C-4.36591871%204.0995068%20-6.24546899%204.08157078%20-8.125%204.0625%20C-8.455%203.0725%20-8.785%202.0825%20-9.125%201.0625%20C-6.12186252%20-0.43906874%20-3.33432478%20-0.03031204%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(874.125,559.9375)'/%3e%3cpath%20d='M0%200%20C0.33%200%200.66%200%201%200%20C1%202.97%201%205.94%201%209%20C3.31%209%205.62%209%208%209%20C6.47291037%2012.43595166%204.40072955%2015.11912454%202%2018%20C1.01%2017.67%200.02%2017.34%20-1%2017%20C-0.67%2011.39%20-0.34%205.78%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(351,479)'/%3e%3cpath%20d='M0%200%20C6.6%200%2013.2%200%2020%200%20C20%200.99%2020%201.98%2020%203%20C15.38%203.33%2010.76%203.66%206%204%20C6%203.67%206%203.34%206%203%20C3.03%202.505%203.03%202.505%200%202%20C0%201.34%200%200.68%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(384,488)'/%3e%3cpath%20d='M0%200%20C14.7664042%20-0.22834646%2014.7664042%20-0.22834646%2022%201%20C23%202%2023%202%2023.09765625%204.50390625%20C23.08605469%205.51324219%2023.07445312%206.52257812%2023.0625%207.5625%20C23.05347656%208.57441406%2023.04445313%209.58632813%2023.03515625%2010.62890625%20C23.02355469%2011.41136719%2023.01195312%2012.19382812%2023%2013%20C22.67%2013%2022.34%2013%2022%2013%20C21.505%208.05%2021.505%208.05%2021%203%20C20.01966797%203.29197266%2020.01966797%203.29197266%2019.01953125%203.58984375%20C15.00486508%204.13517357%2011.62136988%203.38864783%207.6875%202.5625%20C6.94693359%202.41490234%206.20636719%202.26730469%205.44335938%202.11523438%20C3.62718357%201.75199921%201.81333589%201.37715682%200%201%20C0%200.67%200%200.34%200%200%20Z%20'%20fill='%23B6FF2E'%20transform='translate(676,468)'/%3e%3cpath%20d='M0%200%20C5.61%200.33%2011.22%200.66%2017%201%20C14%204%2014%204%2010.64453125%204.29296875%20C9.37996094%204.25816406%208.11539063%204.22335937%206.8125%204.1875%20C5.54019531%204.16042969%204.26789062%204.13335938%202.95703125%204.10546875%20C1.98121094%204.07066406%201.00539063%204.03585937%200%204%20C0%202.68%200%201.36%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(569,540)'/%3e%3cpath%20d='M0%200%20C6.27%200%2012.54%200%2019%200%20C18.01%200.495%2018.01%200.495%2017%201%20C17%201.66%2017%202.32%2017%203%20C11.39%203%205.78%203%200%203%20C0%202.01%200%201.02%200%200%20Z%20'%20fill='%23F0E9FF'%20transform='translate(761,523)'/%3e%3cpath%20d='M0%200%20C0.33%200%200.66%200%201%200%20C1.33%209.24%201.66%2018.48%202%2028%20C2.99%2028.33%203.98%2028.66%205%2029%20C3.69593116%2031.01920337%202.36176581%2033.01924973%201%2035%20C0.67%2035%200.34%2035%200%2035%20C0%2023.45%200%2011.9%200%200%20Z%20'%20fill='%2312003B'%20transform='translate(345,472)'/%3e%3cpath%20d='M0%200%20C0%201.65%200%203.3%200%205%20C-1.134375%205.28875%20-2.26875%205.5775%20-3.4375%205.875%20C-4.613125%206.24625%20-5.78875%206.6175%20-7%207%20C-8.2981424%209.2236068%20-8.2981424%209.2236068%20-8%2013%20C-8.66%2013%20-9.32%2013%20-10%2013%20C-11%2010.4375%20-11%2010.4375%20-11%207%20C-7.98890645%203.33845177%20-4.8796426%200%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(736,475)'/%3e%3cpath%20d='M0%200%20C0.66%200%201.32%200%202%200%20C2%200.66%202%201.32%202%202%20C3.36125%202.37125%203.36125%202.37125%204.75%202.75%20C8.13493865%204.05189948%209.60793414%205.35164137%2012%208%20C12.66%208.33%2013.32%208.66%2014%209%20C14.625%2011.0625%2014.625%2011.0625%2015%2013%20C8.7298413%2011.74596826%204.95911962%207.77173128%201%203%20C0.67%202.01%200.34%201.02%200%200%20Z%20'%20fill='%23C7FF57'%20transform='translate(652,548)'/%3e%3cpath%20d='M0%200%20C0.33%200%200.66%200%201%200%20C1%204.62%201%209.24%201%2014%20C0.01%2014.495%200.01%2014.495%20-1%2015%20C-1%2014.01%20-1%2013.02%20-1%2012%20C-1.99%2012%20-2.98%2012%20-4%2012%20C-3.53439347%207.25081338%20-2.83067342%203.89217595%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(287,513)'/%3e%3cpath%20d='M0%200%20C2.4375%200.8125%202.4375%200.8125%205%202%20C5.33%202.99%205.66%203.98%206%205%20C7.49985609%206.66710346%207.49985609%206.66710346%209%208%20C5.68585212%2012.10954337%203.12159208%2012.43093421%20-2%2013%20C-2.66%2013.66%20-3.32%2014.32%20-4%2015%20C-3.67%2013.35%20-3.34%2011.7%20-3%2010%20C1.455%209.505%201.455%209.505%206%209%20C5.566875%208.43410156%205.13375%207.86820312%204.6875%207.28515625%20C3.8521875%206.18494141%203.8521875%206.18494141%203%205.0625%20C2.1646875%203.96615234%202.1646875%203.96615234%201.3125%202.84765625%20C0%201%200%201%200%200%20Z%20'%20fill='%23F2FFD9'%20transform='translate(682,447)'/%3e%3cpath%20d='M0%200%20C2.31%200%204.62%200%207%200%20C6.67%201.32%206.34%202.64%206%204%20C-1.26%204%20-8.52%204%20-16%204%20C-16%203.67%20-16%203.34%20-16%203%20C-11.05%203%20-6.1%203%20-1%203%20C-0.67%202.01%20-0.34%201.02%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(472,560)'/%3e%3cpath%20d='M0%200%20C3.63%200%207.26%200%2011%200%20C9%204%209%204%207.25%204.8125%20C4.36824559%205.0526462%201.82252185%204.57733402%20-1%204%20C-0.67%202.68%20-0.34%201.36%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(449,506)'/%3e%3cpath%20d='M0%200%20C3.3%200.33%206.6%200.66%2010%201%20C10.33%202.32%2010.66%203.64%2011%205%20C9.58376784%205.05447047%208.16691809%205.09300508%206.75%205.125%20C5.96109375%205.14820313%205.1721875%205.17140625%204.359375%205.1953125%20C1.79268059%204.9828378%200.2083933%204.28654105%20-2%203%20C-1.34%202.01%20-0.68%201.02%200%200%20Z%20'%20fill='%23F0E9FF'%20transform='translate(760,537)'/%3e%3cpath%20d='M0%200%20C0.66%200.33%201.32%200.66%202%201%20C1.67%201.99%201.34%202.98%201%204%20C1.74765625%203.97679687%202.4953125%203.95359375%203.265625%203.9296875%20C4.25046875%203.91164063%205.2353125%203.89359375%206.25%203.875%20C7.22453125%203.85179687%208.1990625%203.82859375%209.203125%203.8046875%20C12%204%2012%204%2016%206%20C9.73%206%203.46%206%20-3%206%20C-3%204.68%20-3%203.36%20-3%202%20C-2.01%202%20-1.02%202%200%202%20C0%201.34%200%200.68%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(447,506)'/%3e%3cpath%20d='M0%200%20C0.33%200%200.66%200%201%200%20C1.22212255%202.74951693%201.42815588%205.49865612%201.625%208.25%20C1.68945312%209.02730469%201.75390625%209.80460937%201.8203125%2010.60546875%20C2.30707097%2017.72431144%202.30707097%2017.72431144%200%2021%20C-0.86860031%2016.51223172%20-1.13464852%2012.25607233%20-1.125%207.6875%20C-1.12757813%206.45386719%20-1.13015625%205.22023438%20-1.1328125%203.94921875%20C-1%201%20-1%201%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(553,496)'/%3e%3cpath%20d='M0%200%20C0%201.65%200%203.3%200%205%20C-3.63%205%20-7.26%205%20-11%205%20C-11.33%204.34%20-11.66%203.68%20-12%203%20C-10.75336669%202.49166409%20-9.50250613%201.99368855%20-8.25%201.5%20C-7.55390625%201.2215625%20-6.8578125%200.943125%20-6.140625%200.65625%20C-4%200%20-4%200%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(454,467)'/%3e%3cpath%20d='M0%200%20C0.98613281%200.03480469%201.97226562%200.06960938%202.98828125%200.10546875%20C3.98214844%200.13253906%204.97601563%200.15960937%206%200.1875%20C7.13888672%200.23970703%207.13888672%200.23970703%208.30078125%200.29296875%20C8.63078125%201.28296875%208.96078125%202.27296875%209.30078125%203.29296875%20C4.35078125%203.29296875%20-0.59921875%203.29296875%20-5.69921875%203.29296875%20C-2.69921875%200.29296875%20-2.69921875%200.29296875%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(461.69921875,559.70703125)'/%3e%3cpath%20d='M0%200%20C0.56203125%200.30679688%201.1240625%200.61359375%201.703125%200.9296875%20C4.06346934%202.02957585%206.20465562%202.60095851%208.75%203.125%20C9.54921875%203.29257812%2010.3484375%203.46015625%2011.171875%203.6328125%20C11.77515625%203.75398437%2012.3784375%203.87515625%2013%204%20C13%204.66%2013%205.32%2013%206%20C8.126739%207.5912689%204.19209404%208.21192221%20-1%208%20C0.32%207.34%201.64%206.68%203%206%20C2.690625%205.38125%202.38125%204.7625%202.0625%204.125%20C1.375%202.75%200.6875%201.375%200%200%20Z%20'%20fill='%23A7EA18'%20transform='translate(695,552)'/%3e%3cpath%20d='M0%200%20C-0.99%201.485%20-0.99%201.485%20-2%203%20C-4.8984375%203.36328125%20-4.8984375%203.36328125%20-8.375%203.3125%20C-9.51710938%203.30863281%20-10.65921875%203.30476562%20-11.8359375%203.30078125%20C-14.80057739%203.01895746%20-16.49947121%202.54589341%20-19%201%20C-12.65758005%20-0.15316726%20-6.43311296%20-0.09507063%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(884,541)'/%3e%3cpath%20d='M0%200%20C1.58323688%20-0.027193%203.16661062%20-0.04648306%204.75%20-0.0625%20C6.07257812%20-0.07990234%206.07257812%20-0.07990234%207.421875%20-0.09765625%20C9.7818838%20-0.00826198%2011.74498524%200.33087179%2014%201%20C14%201.66%2014%202.32%2014%203%20C9.05%203%204.1%203%20-1%203%20C-0.67%202.01%20-0.34%201.02%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(581,560)'/%3e%3cpath%20d='M0%200%20C0%200.99%200%201.98%200%203%20C-5.28%203%20-10.56%203%20-16%203%20C-16%202.34%20-16%201.68%20-16%201%20C-10.62915894%200.31798844%20-5.41499441%20-0.11521265%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(479,541)'/%3e%3cpath%20d='M0%200%20C0.33%200%200.66%200%201%200%20C1%205.28%201%2010.56%201%2016%20C-2.37152003%2012.62847997%20-2.82142723%2011.64289204%20-3%207%20C-2.21181089%204.49988422%20-1.17946058%202.35892116%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(247,504)'/%3e%3cpath%20d='M0%200%20C0.66%200.33%201.32%200.66%202%201%20C2.08082094%202.95766281%202.13910778%204.91626728%202.1875%206.875%20C2.23970703%208.51082031%202.23970703%208.51082031%202.29296875%2010.1796875%20C2.19628906%2011.11039062%202.09960938%2012.04109375%202%2013%20C1.01%2013.66%200.02%2014.32%20-1%2015%20C-1.02685412%2012.68756208%20-1.04632841%2010.3750373%20-1.0625%208.0625%20C-1.07410156%206.77472656%20-1.08570312%205.48695313%20-1.09765625%204.16015625%20C-1%201%20-1%201%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(121,466)'/%3e%3cpath%20d='M0%200%20C0%202.97%200%205.94%200%209%20C-0.99%209.495%20-0.99%209.495%20-2%2010%20C-3.32%206.7%20-4.64%203.4%20-6%200%20C-2%20-1%20-2%20-1%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(254,523)'/%3e%3cpath%20d='M0%200%20C2.64%200.33%205.28%200.66%208%201%20C7.34%202.32%206.68%203.64%206%205%20C3.69%205%201.38%205%20-1%205%20C-0.67%203.35%20-0.34%201.7%200%200%20Z%20'%20fill='%23F0E9FF'%20transform='translate(880,489)'/%3e%3cpath%20d='M0%200%20C1.953125%200.390625%203.90625%200.78125%205.859375%201.171875%20C5.859375%202.161875%205.859375%203.151875%205.859375%204.171875%20C1.899375%204.171875%20-2.060625%204.171875%20-6.140625%204.171875%20C-2.140625%200.171875%20-2.140625%200.171875%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(780.140625,467.828125)'/%3e%3cpath%20d='M0%200%20C0.598125%200.20625%201.19625%200.4125%201.8125%200.625%20C0.8225%200.955%20-0.1675%201.285%20-1.1875%201.625%20C-1.5175%205.915%20-1.8475%2010.205%20-2.1875%2014.625%20C-2.8475%2014.295%20-3.5075%2013.965%20-4.1875%2013.625%20C-4.6015625%2010.90234375%20-4.6015625%2010.90234375%20-4.8125%207.5625%20C-4.88726563%206.45777344%20-4.96203125%205.35304688%20-5.0390625%204.21484375%20C-5.08804688%203.36019531%20-5.13703125%202.50554687%20-5.1875%201.625%20C-2.1875%20-0.375%20-2.1875%20-0.375%200%200%20Z%20'%20fill='%23C7FF57'%20transform='translate(678.1875,453.375)'/%3e%3cpath%20d='M0%200%20C3%203.75%203%203.75%203%206%20C0.03%206%20-2.94%206%20-6%206%20C-5.67%204.68%20-5.34%203.36%20-5%202%20C-2.4375%200.75%20-2.4375%200.75%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(743,538)'/%3e%3cpath%20d='M0%200%20C3.63%200%207.26%200%2011%200%20C9.515%201.98%209.515%201.98%208%204%20C4.8125%204.25%204.8125%204.25%202%204%20C1.34%202.68%200.68%201.36%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(473,506)'/%3e%3cpath%20d='M0%200%20C0.33%200%200.66%200%201%200%20C2.62227918%205.43940666%203.3864587%209.33862697%202%2015%20C1.01%2015.495%201.01%2015.495%200%2016%20C0%2013.36%200%2010.72%200%208%20C-0.66%207.67%20-1.32%207.34%20-2%207%20C-1.125%202.25%20-1.125%202.25%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(294,496)'/%3e%3cpath%20d='M0%200%20C1.134375%200.020625%202.26875%200.04125%203.4375%200.0625%20C4.0975%202.0425%204.7575%204.0225%205.4375%206.0625%20C4.4475%206.7225%203.4575%207.3825%202.4375%208.0625%20C0.10416667%205.72916667%20-2.22916667%203.39583333%20-4.5625%201.0625%20C-3.5625%200.0625%20-3.5625%200.0625%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(594.5625,489.9375)'/%3e%3cpath%20d='M0%200%20C0%200.33%200%200.66%200%201%20C-2.31%201%20-4.62%201%20-7%201%20C-7%201.66%20-7%202.32%20-7%203%20C-7.99%203%20-8.98%203%20-10%203%20C-10%203.66%20-10%204.32%20-10%205%20C-11.65%205%20-13.3%205%20-15%205%20C-15%204.34%20-15%203.68%20-15%203%20C-15.66%202.67%20-16.32%202.34%20-17%202%20C-11.19233704%200.4943096%20-6.0018137%20-0.21824777%200%200%20Z%20'%20fill='%2312003B'%20transform='translate(750,506)'/%3e%3cpath%20d='M0%200%20C0.33%200%200.66%200%201%200%20C1%203.63%201%207.26%201%2011%20C0.34%209.68%20-0.32%208.36%20-1%207%20C-2.32%207.33%20-3.64%207.66%20-5%208%20C-4.67%206.35%20-4.34%204.7%20-4%203%20C-3.01%203%20-2.02%203%20-1%203%20C-0.67%202.01%20-0.34%201.02%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(303,481)'/%3e%3cpath%20d='M0%200%20C4.62%200%209.24%200%2014%200%20C14%200.66%2014%201.32%2014%202%20C11%203%2011%203%208.625%202.4375%20C5.45352412%201.90892069%203.84890119%202.61624799%201%204%20C0.67%202.68%200.34%201.36%200%200%20Z%20'%20fill='%2394D600'%20transform='translate(634,469)'/%3e%3cpath%20d='M0%200%20C0.33%200%200.66%200%201%200%20C1%202.64%201%205.28%201%208%20C-5.27%207.67%20-11.54%207.34%20-18%207%20C-18%206.67%20-18%206.34%20-18%206%20C-9.585%205.505%20-9.585%205.505%20-1%205%20C-0.67%203.35%20-0.34%201.7%200%200%20Z%20'%20fill='%23F0E9FF'%20transform='translate(931,557)'/%3e%3cpath%20d='M0%200%20C0.66%200.33%201.32%200.66%202%201%20C1.34%203.31%200.68%205.62%200%208%20C-0.99%208%20-1.98%208%20-3%208%20C-3%205.69%20-3%203.38%20-3%201%20C-2.01%200.67%20-1.02%200.34%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(621,536)'/%3e%3cpath%20d='M0%200%20C0.33%200%200.66%200%201%200%20C1.66%202.97%202.32%205.94%203%209%20C-0.96%209%20-4.92%209%20-9%209%20C-8.67%208.34%20-8.34%207.68%20-8%207%20C-5.69%207%20-3.38%207%20-1%207%20C-0.67%204.69%20-0.34%202.38%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(808,513)'/%3e%3cpath%20d='M0%200%20C0%203.73675706%20-1.26051811%205.72174568%20-3%209%20C-3.391875%209.78375%20-3.78375%2010.5675%20-4.1875%2011.375%20C-4.455625%2011.91125%20-4.72375%2012.4475%20-5%2013%20C-5.99%2013%20-6.98%2013%20-8%2013%20C-7.51294002%208.6164602%20-6.21626567%206.93247752%20-3%204%20C-1.97676564%202.68441297%20-0.96873032%201.35622245%200%200%20Z%20'%20fill='%23A7EA18'%20transform='translate(648,441)'/%3e%3cpath%20d='M0%200%20C0.66%200.33%201.32%200.66%202%201%20C2.36923077%206.53846154%202.36923077%206.53846154%200.5%208.875%20C-0.2425%209.431875%20-0.2425%209.431875%20-1%2010%20C-1.66%209.67%20-2.32%209.34%20-3%209%20C-2.30058404%205.85262818%20-1.23921302%202.97411124%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(228,582)'/%3e%3cpath%20d='M0%200%20C0.66%200%201.32%200%202%200%20C2.125%205.75%202.125%205.75%201%208%20C0.34%208%20-0.32%208%20-1%208%20C-1.33%208.99%20-1.66%209.98%20-2%2011%20C-3.13643966%207.59068103%20-2.86747764%206.99664544%20-1.5625%203.8125%20C-1.13130859%202.73935547%20-1.13130859%202.73935547%20-0.69140625%201.64453125%20C-0.46324219%201.10183594%20-0.23507812%200.55914063%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(350,514)'/%3e%3cpath%20d='M0%200%20C3.3%200%206.6%200%2010%200%20C10.33%201.32%2010.66%202.64%2011%204%20C9.35%204%207.7%204%206%204%20C6%203.67%206%203.34%206%203%20C3.03%202.505%203.03%202.505%200%202%20C0%201.34%200%200.68%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(384,488)'/%3e%3cpath%20d='M0%200%20C0.845625%200.804375%201.69125%201.60875%202.5625%202.4375%20C5.8515158%205.21628662%208.68629604%205.74117776%2013%206%20C13%206.33%2013%206.66%2013%207%20C11.20866022%207.05391993%209.41686101%207.09275571%207.625%207.125%20C6.62726562%207.14820313%205.62953125%207.17140625%204.6015625%207.1953125%20C2%207%202%207%200%205%20C-0.125%202.375%20-0.125%202.375%200%200%20Z%20'%20fill='%23DFFF99'%20transform='translate(677,535)'/%3e%3cpath%20d='M0%200%20C0.33%201.65%200.66%203.3%201%205%20C-1.97%205%20-4.94%205%20-8%205%20C-3%200%20-3%200%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(175,531)'/%3e%3cpath%20d='M0%200%20C2.97%200%205.94%200%209%200%20C9.33%200.66%209.66%201.32%2010%202%20C3.71428571%204.42857143%203.71428571%204.42857143%200%203%20C0%202.01%200%201.02%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(739,522)'/%3e%3cpath%20d='M0%200%20C0.66%200%201.32%200%202%200%20C2.33%203.63%202.66%207.26%203%2011%20C2.01%2011%201.02%2011%200%2011%20C0%207.37%200%203.74%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(304,520)'/%3e%3cpath%20d='M0%200%20C0%200.66%200%201.32%200%202%20C-4.95%202%20-9.9%202%20-15%202%20C-11.5998228%200.2999114%20-9.96676075%20-0.32111638%20-6.375%20-0.6875%20C-5.21097656%20-0.81705078%20-5.21097656%20-0.81705078%20-4.0234375%20-0.94921875%20C-2%20-1%20-2%20-1%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(507,520)'/%3e%3cpath%20d='M0%200%20C0.33%200%200.66%200%201%200%20C1.33%202.97%201.66%205.94%202%209%20C1.01%209.33%200.02%209.66%20-1%2010%20C-2.1875%207.8125%20-2.1875%207.8125%20-3%205%20C-1.6875%202.1875%20-1.6875%202.1875%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(421,489)'/%3e%3cpath%20d='M0%200%20C0.66%200%201.32%200%202%200%20C2%203.96%202%207.92%202%2012%20C1.01%2011.67%200.02%2011.34%20-1%2011%20C-0.67%207.37%20-0.34%203.74%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(238,488)'/%3e%3cpath%20d='M0%200%20C1.32%200%202.64%200%204%200%20C4%200.99%204%201.98%204%203%20C4.66%203%205.32%203%206%203%20C7.0625%204.8125%207.0625%204.8125%208%207%20C7.67%207.99%207.34%208.98%207%2010%20C5.83043409%208.52312468%204.66441854%207.04343707%203.5%205.5625%20C2.8503125%204.73878906%202.200625%203.91507812%201.53125%203.06640625%20C0%201%200%201%200%200%20Z%20'%20fill='%23E8FFC2'%20transform='translate(674,437)'/%3e%3cpath%20d='M0%200%20C3.23739279%201.6186964%204.42244771%204.84489543%206%208%20C2.31245243%207.50168276%200.39509338%206.89932357%20-2%204%20C-1.34%202.68%20-0.68%201.36%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(230,587)'/%3e%3cpath%20d='M0%200%20C0.33%200%200.66%200%201%200%20C1%203.3%201%206.6%201%2010%20C0.01%2010.495%200.01%2010.495%20-1%2011%20C-2.1875%208.3125%20-2.1875%208.3125%20-3%205%20C-1.6875%202.125%20-1.6875%202.125%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(533,527)'/%3e%3cpath%20d='M0%200%20C0.33%200%200.66%200%201%200%20C1.22151549%201.79008467%201.42682213%203.58218162%201.625%205.375%20C1.74101563%206.37273438%201.85703125%207.37046875%201.9765625%208.3984375%20C1.98429688%209.25695312%201.99203125%2010.11546875%202%2011%20C1.34%2011.66%200.68%2012.32%200%2013%20C-0.66%2010.03%20-1.32%207.06%20-2%204%20C-1.34%204%20-0.68%204%200%204%20C0%202.68%200%201.36%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(554,513)'/%3e%3cpath%20d='M0%200%20C0.33%200.66%200.66%201.32%201%202%20C-3.51718381%203.36884358%20-6.58774263%202.47075246%20-11%201%20C-6.78915963%20-1.80722691%20-4.88445782%20-0.94537893%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(399,468)'/%3e%3cpath%20d='M0%200%20C-0.66%200.66%20-1.32%201.32%20-2%202%20C-1.34%202.66%20-0.68%203.32%200%204%20C-3.96%203.67%20-7.92%203.34%20-12%203%20C-7.27030266%20-0.54727301%20-5.56673301%20-1.35407019%200%200%20Z%20'%20fill='%23F0E9FF'%20transform='translate(167,435)'/%3e%3cpath%20d='M0%200%20C0.33%200.66%200.66%201.32%201%202%20C0.0625%204.625%200.0625%204.625%20-1%207%20C-1.33%206.34%20-1.66%205.68%20-2%205%20C-4.32156597%204.59270772%20-6.6568787%204.25561323%20-9%204%20C-9%203.67%20-9%203.34%20-9%203%20C-6.03%202.01%20-3.06%201.02%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(891,537)'/%3e%3cpath%20d='M0%200%20C0.66%200%201.32%200%202%200%20C2%202.31%202%204.62%202%207%20C2.66%207%203.32%207%204%207%20C4%207.99%204%208.98%204%2010%20C2.68%2010%201.36%2010%200%2010%20C0%206.7%200%203.4%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(296,537)'/%3e%3cpath%20d='M0%200%20C1.7074998%201.28062485%203.37373596%202.61767557%205%204%20C5%204.66%205%205.32%205%206%20C1.04%206%20-2.92%206%20-7%206%20C-7%205.67%20-7%205.34%20-7%205%20C-3.535%204.505%20-3.535%204.505%200%204%20C0%202.68%200%201.36%200%200%20Z%20'%20fill='%23DFFF99'%20transform='translate(683,450)'/%3e%3cpath%20d='M0%200%20C5.94%200.99%205.94%200.99%2012%202%20C12%202.66%2012%203.32%2012%204%20C10.56416999%204.10836453%209.1259798%204.18576167%207.6875%204.25%20C6.48673828%204.31960938%206.48673828%204.31960938%205.26171875%204.390625%20C3%204%203%204%200%200%20Z%20'%20fill='%23F2FFD9'%20transform='translate(667,563)'/%3e%3cpath%20d='M0%200%20C1.65%200%203.3%200%205%200%20C5.33%201.98%205.66%203.96%206%206%20C3.69%205.01%201.38%204.02%20-1%203%20C-0.67%202.01%20-0.34%201.02%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(848,554)'/%3e%3cpath%20d='M0%200%20C3%204%203%204%204%207%20C0.25%2010%200.25%2010%20-2%2010%20C-1.34%206.7%20-0.68%203.4%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(187,506)'/%3e%3cpath%20d='M0%200%20C1.9451%202.91765%202.45276317%204.62537285%203%208%20C1.02%208.99%201.02%208.99%20-1%2010%20C-0.67%206.7%20-0.34%203.4%200%200%20Z%20'%20fill='%2312003B'%20transform='translate(715,500)'/%3e%3cpath%20d='M0%200%20C2.9375%201.1875%202.9375%201.1875%203.9375%203.1875%20C1.02267222%203.99717438%20-0.52363217%204.40595993%20-3.375%203.25%20C-3.931875%202.899375%20-4.48875%202.54875%20-5.0625%202.1875%20C-5.0625%201.5275%20-5.0625%200.8675%20-5.0625%200.1875%20C-3.0625%20-0.8125%20-3.0625%20-0.8125%200%200%20Z%20'%20fill='%23F0E9FF'%20transform='translate(606.0625,467.8125)'/%3e%3cpath%20d='M0%200%20C0.5625%201.9375%200.5625%201.9375%201%204%20C0%205%200%205%20-3.0625%205.0625%20C-4.031875%205.041875%20-5.00125%205.02125%20-6%205%20C-6.33%204.34%20-6.66%203.68%20-7%203%20C-4.69%202.01%20-2.38%201.02%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(485,537)'/%3e%3cpath%20d='M0%200%20C0.99%200.33%201.98%200.66%203%201%20C2.01%203.97%201.02%206.94%200%2010%20C-0.33%2010%20-0.66%2010%20-1%2010%20C-1.125%202.25%20-1.125%202.25%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(322,486)'/%3e%3cpath%20d='M0%200%20C1.65%200%203.3%200%205%200%20C5%200.99%205%201.98%205%203%20C3.35%203.66%201.7%204.32%200%205%20C0%203.35%200%201.7%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(738,552)'/%3e%3cpath%20d='M0%200%20C0.91007813%200.00902344%201.82015625%200.01804687%202.7578125%200.02734375%20C3.45648438%200.03894531%204.15515625%200.05054688%204.875%200.0625%20C5.205%200.7225%205.535%201.3825%205.875%202.0625%20C4.82699219%202.15337891%204.82699219%202.15337891%203.7578125%202.24609375%20C2.84773437%202.32988281%201.93765625%202.41367187%201%202.5%20C0.09507812%202.58121094%20-0.80984375%202.66242188%20-1.7421875%202.74609375%20C-4.13610861%202.93239285%20-4.13610861%202.93239285%20-6.125%204.0625%20C-6.455%203.0725%20-6.785%202.0825%20-7.125%201.0625%20C-4.60024538%20-0.19987731%20-2.81299534%20-0.03606404%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(128.125,458.9375)'/%3e%3cpath%20d='M0%200%20C0.66%200.33%201.32%200.66%202%201%20C0.515%204.465%200.515%204.465%20-1%208%20C-1.66%208%20-2.32%208%20-3%208%20C-3%206.02%20-3%204.04%20-3%202%20C-2.01%202%20-1.02%202%200%202%20C0%201.34%200%200.68%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(294,556)'/%3e%3cpath%20d='M0%200%20C1.51400391%200.01740234%201.51400391%200.01740234%203.05859375%200.03515625%20C4.07050781%200.04417969%205.08242188%200.05320312%206.125%200.0625%20C7.29869141%200.07990234%207.29869141%200.07990234%208.49609375%200.09765625%20C8.49609375%200.42765625%208.49609375%200.75765625%208.49609375%201.09765625%20C5.52609375%201.09765625%202.55609375%201.09765625%20-0.50390625%201.09765625%20C-0.50390625%201.75765625%20-0.50390625%202.41765625%20-0.50390625%203.09765625%20C-2.81390625%203.09765625%20-5.12390625%203.09765625%20-7.50390625%203.09765625%20C-6.86453125%202.78828125%20-6.22515625%202.47890625%20-5.56640625%202.16015625%20C-1.48563778%200.05794219%20-1.48563778%200.05794219%200%200%20Z%20'%20fill='%2312003B'%20transform='translate(463.50390625,540.90234375)'/%3e%3cpath%20d='M0%200%20C0.33%200.66%200.66%201.32%201%202%20C2.32%201.67%203.64%201.34%205%201%20C3.9024777%203.99324263%203.32317108%204.84610901%200.375%206.25%20C-0.40875%206.4975%20-1.1925%206.745%20-2%207%20C-1.34%204.69%20-0.68%202.38%200%200%20Z%20'%20fill='%23F0E9FF'%20transform='translate(306,531)'/%3e%3cpath%20d='M0%200%20C0.33%200.99%200.66%201.98%201%203%20C-0.98%204.98%20-2.96%206.96%20-5%209%20C-5.99%208.67%20-6.98%208.34%20-8%208%20C-5.33333333%205.33333333%20-2.66666667%202.66666667%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(601,528)'/%3e%3cpath%20d='M0%200%20C0.99%200%201.98%200%203%200%20C3.125%202.875%203.125%202.875%203%206%20C2.34%206.66%201.68%207.32%201%208%20C0%207%200%207%20-0.0625%203.4375%20C-0.041875%202.303125%20-0.02125%201.16875%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(272,520)'/%3e%3cpath%20d='M0%200%20C0.66%200.33%201.32%200.66%202%201%20C1.67%201.66%201.34%202.32%201%203%20C0.95977609%205.3329866%200.95679753%207.66706666%201%2010%20C0.34%2010%20-0.32%2010%20-1%2010%20C-1.9765625%203.9453125%20-1.9765625%203.9453125%20-2%202%20C-1.34%201.34%20-0.68%200.68%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(359,502)'/%3e%3cpath%20d='M0%200%20C3.63%200.66%207.26%201.32%2011%202%20C11%202.33%2011%202.66%2011%203%20C7.37%203%203.74%203%200%203%20C0%202.01%200%201.02%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(387,469)'/%3e%3cpath%20d='M0%200%20C2.31%200.33%204.62%200.66%207%201%20C6.67%201.66%206.34%202.32%206%203%20C4.35%203%202.7%203%201%203%20C1%203.99%201%204.98%201%206%20C0.01%206%20-0.98%206%20-2%206%20C-1.34%204.02%20-0.68%202.04%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(305,468)'/%3e%3cpath%20d='M0%200%20C1.65%200.33%203.3%200.66%205%201%20C5%201.99%205%202.98%205%204%20C3.35%204%201.7%204%200%204%20C0%202.68%200%201.36%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(549,552)'/%3e%3cpath%20d='M0%200%20C0.94875%200.04125%201.8975%200.0825%202.875%200.125%20C2.875%200.785%202.875%201.445%202.875%202.125%20C0.895%202.785%20-1.085%203.445%20-3.125%204.125%20C-3.785%203.465%20-4.445%202.805%20-5.125%202.125%20C-3.125%200.125%20-3.125%200.125%200%200%20Z%20'%20fill='%2312003B'%20transform='translate(181.125,553.875)'/%3e%3cpath%20d='M0%200%20C1.9375%200.3125%201.9375%200.3125%204%201%20C4.33%201.99%204.66%202.98%205%204%20C2.69%204%200.38%204%20-2%204%20C-1.34%202.68%20-0.68%201.36%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(587,540)'/%3e%3cpath%20d='M0%200%20C0%202.31%200%204.62%200%207%20C-0.99%207.495%20-0.99%207.495%20-2%208%20C-2%207.01%20-2%206.02%20-2%205%20C-2.66%205%20-3.32%205%20-4%205%20C-3.625%203.0625%20-3.625%203.0625%20-3%201%20C-1%200%20-1%200%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(185,520)'/%3e%3cpath%20d='M0%200%20C0.66%200%201.32%200%202%200%20C1.67%202.64%201.34%205.28%201%208%20C0.01%207.67%20-0.98%207.34%20-2%207%20C-1.34%207%20-0.68%207%200%207%20C0%206.01%200%205.02%200%204%20C-1.32%203.67%20-2.64%203.34%20-4%203%20C-2.68%202.67%20-1.36%202.34%200%202%20C0%201.34%200%200.68%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(616,486)'/%3e%3cpath%20d='M0%200%20C3.125%20-0.1875%203.125%20-0.1875%206%200%20C6%200.99%206%201.98%206%203%20C3.36%203%200.72%203%20-2%203%20C-1.34%202.01%20-0.68%201.02%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(842,477)'/%3e%3cpath%20d='M0%200%20C2.475%200.495%202.475%200.495%205%201%20C4.67%202.32%204.34%203.64%204%205%20C2.68%205.33%201.36%205.66%200%206%20C0%204.02%200%202.04%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(920,472)'/%3e%3cpath%20d='M0%200%20C1.65%200%203.3%200%205%200%20C5.33%200.99%205.66%201.98%206%203%20C3.69%203%201.38%203%20-1%203%20C-0.67%202.01%20-0.34%201.02%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(568,560)'/%3e%3cpath%20d='M0%200%20C3.39609044%201.19322096%205.62433927%202.28495916%208%205%20C8.66%205.66%209.32%206.32%2010%207%20C7.29068581%206.84518205%205.53415961%206.51827919%203.5546875%204.59765625%20C2.32320358%203.10228292%201.1570163%201.5537076%200%200%20Z%20'%20fill='%23A7EA18'%20transform='translate(656,551)'/%3e%3cpath%20d='M0%200%20C-3.6441774%202.4294516%20-5.71241272%202.16179575%20-10%202%20C-10%201.34%20-10%200.68%20-10%200%20C-6.33694766%20-0.74926071%20-3.57644848%20-1.2380014%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(762,542)'/%3e%3cpath%20d='M0%200%20C1.32%200%202.64%200%204%200%20C4%201.65%204%203.3%204%205%20C3.01%205%202.02%205%201%205%20C0.34%203.68%20-0.32%202.36%20-1%201%20C-0.67%200.67%20-0.34%200.34%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(780,539)'/%3e%3cpath%20d='M0%200%20C0%201.98%200%203.96%200%206%20C-0.99%206%20-1.98%206%20-3%206%20C-3.66%204.68%20-4.32%203.36%20-5%202%20C-1.125%200%20-1.125%200%200%200%20Z%20'%20fill='%23F0E9FF'%20transform='translate(611,497)'/%3e%3cpath%20d='M0%200%20C2%203%202%203%201.625%205.1875%20C1.41875%205.785625%201.2125%206.38375%201%207%20C0.01%207%20-0.98%207%20-2%207%20C-2%205.35%20-2%203.7%20-2%202%20C-1.34%202%20-0.68%202%200%202%20C0%201.34%200%200.68%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(260,485)'/%3e%3cpath%20d='M0%200%20C0.99%200.33%201.98%200.66%203%201%20C3.33%202.98%203.66%204.96%204%207%20C2.35%206.01%200.7%205.02%20-1%204%20C-0.67%202.68%20-0.34%201.36%200%200%20Z%20'%20fill='%23F0E9FF'%20transform='translate(896,467)'/%3e%3cpath%20d='M0%200%20C2.97%200%205.94%200%209%200%20C9%201.32%209%202.64%209%204%20C8.01%204%207.02%204%206%204%20C5.67%203.34%205.34%202.68%205%202%20C2.47266765%201.34444881%202.47266765%201.34444881%200%201%20C0%200.67%200%200.34%200%200%20Z%20'%20fill='%2312003B'%20transform='translate(396,466)'/%3e%3cpath%20d='M0%200%20C1.32%200.33%202.64%200.66%204%201%20C4%201.99%204%202.98%204%204%20C1.69%204.33%20-0.62%204.66%20-3%205%20C-2.01%203.35%20-1.02%201.7%200%200%20Z%20'%20fill='%23DFFF99'%20transform='translate(660,423)'/%3e%3cpath%20d='M0%200%20C1.32%200.33%202.64%200.66%204%201%20C4.33%202.65%204.66%204.3%205%206%20C4.01%206%203.02%206%202%206%20C1.34%204.02%200.68%202.04%200%200%20Z%20'%20fill='%236F9300'%20transform='translate(690,541)'/%3e%3cpath%20d='M0%200%20C1.32%200.99%202.64%201.98%204%203%20C3.67%203.66%203.34%204.32%203%205%20C1.35%205%20-0.3%205%20-2%205%20C-1.34%203.35%20-0.68%201.7%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(858,531)'/%3e%3cpath%20d='M0%200%20C0.66%200.99%201.32%201.98%202%203%20C1.67%203.99%201.34%204.98%201%206%20C-1.5625%207.1875%20-1.5625%207.1875%20-4%208%20C-2.68%205.36%20-1.36%202.72%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(373,482)'/%3e%3cpath%20d='M0%200%20C1.74959319%202.62438979%202.62068453%203.96547627%203%207%20C2.01%208.485%202.01%208.485%201%2010%20C0.34%209.67%20-0.32%209.34%20-1%209%20C-0.67%208.34%20-0.34%207.68%200%207%20C0.04022391%204.6670134%200.04320247%202.33293334%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(360,477)'/%3e%3cpath%20d='M0%200%20C0%200.66%200%201.32%200%202%20C-0.66%202%20-1.32%202%20-2%202%20C-2%202.99%20-2%203.98%20-2%205%20C-3.32%205%20-4.64%205%20-6%205%20C-5.6875%203.0625%20-5.6875%203.0625%20-5%201%20C-2%200%20-2%200%200%200%20Z%20'%20fill='%23F0E9FF'%20transform='translate(891,561)'/%3e%3cpath%20d='M0%200%20C0.33%200.66%200.66%201.32%201%202%20C0.01%203.32%20-0.98%204.64%20-2%206%20C-3.32%205.34%20-4.64%204.68%20-6%204%20C-4.02%202.68%20-2.04%201.36%200%200%20Z%20'%20fill='%23F0E9FF'%20transform='translate(715,553)'/%3e%3cpath%20d='M0%200%20C1.98%200%203.96%200%206%200%20C6.33%201.65%206.66%203.3%207%205%20C3.535%203.02%203.535%203.02%200%201%20C0%200.67%200%200.34%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(432,552)'/%3e%3cpath%20d='M0%200%20C0.66%200.33%201.32%200.66%202%201%20C1.60196439%203.88575819%201.20990931%204.82189513%20-1.0625%206.75%20C-1.701875%207.1625%20-2.34125%207.575%20-3%208%20C-1.125%201.125%20-1.125%201.125%200%200%20Z%20'%20fill='%23F0E9FF'%20transform='translate(299,549)'/%3e%3cpath%20d='M0%200%20C0.66%200.33%201.32%200.66%202%201%20C2%201.99%202%202.98%202%204%20C-1.13349732%205.04449911%20-1.98968256%204.93423645%20-5%204%20C-3.35%202.68%20-1.7%201.36%200%200%20Z%20'%20fill='%23F0E9FF'%20transform='translate(198,546)'/%3e%3cpath%20d='M0%200%20C1.32%200.33%202.64%200.66%204%201%20C4%204%204%204%202.5%205.6875%20C2.005%206.120625%201.51%206.55375%201%207%20C0.67%204.69%200.34%202.38%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(802,545)'/%3e%3cpath%20d='M0%200%20C2%201.3125%202%201.3125%204%203%20C4%203.99%204%204.98%204%206%20C2.02%205.34%200.04%204.68%20-2%204%20C-1.34%202.68%20-0.68%201.36%200%200%20Z%20'%20fill='%23F0E9FF'%20transform='translate(617,530)'/%3e%3cpath%20d='M0%200%20C2%201.8125%202%201.8125%204%204%20C4%204.99%204%205.98%204%207%20C2.68%207.33%201.36%207.66%200%208%20C0%205.36%200%202.72%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(552,520)'/%3e%3cpath%20d='M0%200%20C0.66%200.33%201.32%200.66%202%201%20C0.1875%204%200.1875%204%20-2%207%20C-2.99%207%20-3.98%207%20-5%207%20C-3.35%204.69%20-1.7%202.38%200%200%20Z%20'%20fill='%231E0259'%20transform='translate(715,519)'/%3e%3cpath%20d='M0%200%20C2.50037734%202.17424117%203.43628586%203.73045798%204%207%20C2.68%206.67%201.36%206.34%200%206%20C0%204.02%200%202.04%200%200%20Z%20'%20fill='%23F0E9FF'%20transform='translate(483,496)'/%3e%3cpath%20d='M0%200%20C0.66%200.33%201.32%200.66%202%201%20C1.67%202.98%201.34%204.96%201%207%20C0.34%206.67%20-0.32%206.34%20-1%206%20C-1.625%203.4375%20-1.625%203.4375%20-2%201%20C-1.34%200.67%20-0.68%200.34%200%200%20Z%20'%20fill='%230D0026'%20transform='translate(182,471)'/%3e%3cpath%20d='M0%200%20C0.33%201.32%200.66%202.64%201%204%20C3.31%204%205.62%204%208%204%20C8%204.33%208%204.66%208%205%20C4.7%205%201.4%205%20-2%205%20C-1.34%203.35%20-0.68%201.7%200%200%20Z%20'%20fill='%23DFFF99'%20transform='translate(638,451)'/%3e%3c/svg%3e";
295
375
  //#endregion
@@ -386,7 +466,7 @@ function SidebarInner({ schemas, isLoading, location, logout, isEmbedded, collap
386
466
  }) }),
387
467
  uploadCollections.length > 0 && /* @__PURE__ */ jsxs("div", { children: [groupLabel("Media"), uploadCollections.map((col) => /* @__PURE__ */ jsx(NavItem, {
388
468
  to: `/collections/${col.slug}`,
389
- icon: Image$1,
469
+ icon: resolveAdminIcon(col.admin?.icon, Image$1),
390
470
  label: col.labels?.plural ?? col.label ?? col.slug,
391
471
  active: location.pathname.startsWith(`/collections/${col.slug}`),
392
472
  collapsed,
@@ -429,7 +509,7 @@ function SidebarInner({ schemas, isLoading, location, logout, isEmbedded, collap
429
509
  });
430
510
  return /* @__PURE__ */ jsx(NavItem, {
431
511
  to: `/collections/${col.slug}`,
432
- icon: col.auth ? Users : Database,
512
+ icon: resolveAdminIcon(col.admin?.icon, col.auth ? Users : Database),
433
513
  label: navLabel,
434
514
  active: location.pathname.startsWith(`/collections/${col.slug}`),
435
515
  collapsed,
@@ -455,7 +535,7 @@ function SidebarInner({ schemas, isLoading, location, logout, isEmbedded, collap
455
535
  className: "dy-space-y-0.5",
456
536
  children: globals.map((glob) => /* @__PURE__ */ jsx(NavItem, {
457
537
  to: `/globals/${glob.slug}`,
458
- icon: Settings,
538
+ icon: resolveAdminIcon(glob.admin?.icon, Settings),
459
539
  label: glob.label ?? glob.slug,
460
540
  active: location.pathname === `/globals/${glob.slug}`,
461
541
  collapsed,
@@ -470,46 +550,64 @@ function SidebarInner({ schemas, isLoading, location, logout, isEmbedded, collap
470
550
  /* @__PURE__ */ jsx(NavItem, {
471
551
  to: "/setup",
472
552
  icon: Sparkles,
473
- label: "Integration Guide",
553
+ label: "Setup & Help",
474
554
  active: location.pathname === "/setup",
475
555
  collapsed,
476
556
  onClick: onNavigate
477
557
  }),
478
- !isEmbedded && user && /* @__PURE__ */ jsxs("div", {
479
- className: cn("dy-flex dy-items-center dy-gap-2 dy-px-3 dy-py-2 dy-rounded-md dy-bg-accent/40 dy-mb-1", collapsed ? "dy-justify-center dy-px-2" : ""),
480
- children: [/* @__PURE__ */ jsx("div", {
481
- className: "dy-flex dy-h-6 dy-w-6 dy-items-center dy-justify-center dy-rounded-full dy-bg-primary/10 dy-text-primary dy-font-semibold dy-text-xs dy-shrink-0",
482
- children: (user.name || user.email || "?")[0].toUpperCase()
483
- }), !collapsed && /* @__PURE__ */ jsxs("div", {
484
- className: "dy-flex dy-flex-col dy-min-w-0 dy-flex-1",
485
- children: [/* @__PURE__ */ jsx("span", {
486
- className: "dy-text-[12px] dy-font-medium dy-text-foreground dy-truncate",
487
- children: user.name || user.email
488
- }), user.name && user.email && /* @__PURE__ */ jsx("span", {
489
- className: "dy-text-[10px] dy-text-muted-foreground dy-truncate",
490
- children: user.email
491
- })]
492
- })]
493
- }),
494
- !isEmbedded && /* @__PURE__ */ jsxs("button", {
495
- onClick: logout,
496
- title: collapsed ? "Logout" : void 0,
497
- className: cn("dy-flex dy-w-full dy-items-center dy-gap-3 dy-rounded-md dy-px-3 dy-py-2 dy-text-[13px] dy-font-medium dy-text-muted-foreground dy-transition-colors hover:dy-bg-destructive/10 hover:dy-text-destructive", collapsed ? "dy-justify-center dy-px-2" : ""),
498
- children: [/* @__PURE__ */ jsx(LogOut, { className: "dy-h-[15px] dy-w-[15px] dy-shrink-0" }), !collapsed && /* @__PURE__ */ jsx("span", { children: "Logout" })]
558
+ !isEmbedded && user && /* @__PURE__ */ jsxs(DropdownMenu, { children: [/* @__PURE__ */ jsx(DropdownMenuTrigger, {
559
+ asChild: true,
560
+ children: /* @__PURE__ */ jsxs("button", {
561
+ type: "button",
562
+ title: collapsed ? user.name || user.email : void 0,
563
+ "aria-label": `Open account menu for ${user.name || user.email}`,
564
+ className: cn("dy-group dy-flex dy-w-full dy-items-center dy-gap-2.5 dy-rounded-md dy-px-2.5 dy-py-2 dy-text-left dy-transition-colors hover:dy-bg-accent/70 focus-visible:dy-outline-none focus-visible:dy-ring-2 focus-visible:dy-ring-ring", collapsed ? "dy-justify-center dy-px-2" : ""),
565
+ children: [/* @__PURE__ */ jsx("div", {
566
+ className: "dy-flex dy-h-7 dy-w-7 dy-items-center dy-justify-center dy-rounded-full dy-bg-primary/15 dy-text-primary dy-font-semibold dy-text-xs dy-shrink-0",
567
+ children: (user.name || user.email || "?")[0].toUpperCase()
568
+ }), !collapsed && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("div", {
569
+ className: "dy-flex dy-min-w-0 dy-flex-1 dy-flex-col",
570
+ children: [/* @__PURE__ */ jsx("span", {
571
+ className: "dy-truncate dy-text-[12px] dy-font-medium dy-text-foreground",
572
+ children: user.name || user.email
573
+ }), user.name && user.email && /* @__PURE__ */ jsx("span", {
574
+ className: "dy-truncate dy-text-[10px] dy-text-muted-foreground",
575
+ children: user.email
576
+ })]
577
+ }), /* @__PURE__ */ jsx(ChevronDown, { className: "dy-h-3.5 dy-w-3.5 dy-shrink-0 dy-text-muted-foreground/60 dy-transition-transform group-data-[state=open]:dy-rotate-180" })] })]
578
+ })
579
+ }), /* @__PURE__ */ jsxs(DropdownMenuContent, {
580
+ side: collapsed ? "right" : "top",
581
+ align: "end",
582
+ sideOffset: 8,
583
+ className: "dy-w-56 dy-rounded-lg dy-p-1.5 dy-shadow-xl",
584
+ children: [
585
+ /* @__PURE__ */ jsxs(DropdownMenuLabel, {
586
+ className: "dy-px-2 dy-py-2 dy-font-normal",
587
+ children: [/* @__PURE__ */ jsx("span", {
588
+ className: "dy-block dy-truncate dy-text-xs dy-font-medium dy-text-foreground",
589
+ children: user.name || user.email
590
+ }), user.name && user.email && /* @__PURE__ */ jsx("span", {
591
+ className: "dy-mt-0.5 dy-block dy-truncate dy-text-[11px] dy-text-muted-foreground",
592
+ children: user.email
593
+ })]
594
+ }),
595
+ /* @__PURE__ */ jsx(DropdownMenuSeparator, {}),
596
+ /* @__PURE__ */ jsxs(DropdownMenuItem, {
597
+ onSelect: logout,
598
+ className: "dy-cursor-pointer dy-py-2 dy-text-destructive focus:dy-bg-destructive/10 focus:dy-text-destructive",
599
+ children: [/* @__PURE__ */ jsx(LogOut, { className: "dy-h-4 dy-w-4" }), "Log out"]
600
+ })
601
+ ]
602
+ })] }),
603
+ onToggleCollapse && !isEmbedded && /* @__PURE__ */ jsx("button", {
604
+ onClick: onToggleCollapse,
605
+ className: cn("dy-group/btn dy-mt-1 dy-flex dy-h-7 dy-w-full dy-items-center dy-gap-2 dy-rounded-md dy-px-2.5 dy-text-[11px] dy-font-medium dy-text-muted-foreground/45 dy-transition-colors hover:dy-bg-accent/40 hover:dy-text-muted-foreground focus-visible:dy-outline-none focus-visible:dy-ring-2 focus-visible:dy-ring-ring", collapsed ? "dy-justify-center dy-px-2" : ""),
606
+ title: collapsed ? "Expand sidebar" : "Collapse sidebar",
607
+ "aria-label": collapsed ? "Expand sidebar" : "Collapse sidebar",
608
+ children: collapsed ? /* @__PURE__ */ jsx(PanelLeftOpen, { className: "dy-h-3.5 dy-w-3.5" }) : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(PanelLeftClose, { className: "dy-h-3.5 dy-w-3.5 dy-transition-transform dy-group-hover/btn:dy--translate-x-0.5" }), /* @__PURE__ */ jsx("span", { children: "Collapse sidebar" })] })
499
609
  })
500
610
  ]
501
- }),
502
- onToggleCollapse && !isEmbedded && /* @__PURE__ */ jsx("div", {
503
- className: "dy-mt-auto dy-p-4 dy-border-t dy-border-border/40",
504
- children: /* @__PURE__ */ jsx("button", {
505
- onClick: onToggleCollapse,
506
- className: cn("dy-w-full dy-flex dy-items-center dy-gap-3 dy-p-2.5 dy-rounded-xl dy-text-muted-foreground/60 hover:dy-text-foreground hover:dy-bg-accent/50 dy-transition-all dy-group/btn", collapsed ? "dy-justify-center" : "dy-px-3"),
507
- title: collapsed ? "Expand sidebar" : "Collapse sidebar",
508
- children: collapsed ? /* @__PURE__ */ jsx(PanelLeftOpen, { className: "dy-h-5 dy-w-5" }) : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(PanelLeftClose, { className: "dy-h-5 dy-w-5 dy-group-hover/btn:dy--translate-x-0.5 dy-transition-transform" }), /* @__PURE__ */ jsx("span", {
509
- className: "dy-text-sm dy-font-medium dy-text-[13px]",
510
- children: "Collapse Sidebar"
511
- })] })
512
- })
513
611
  })
514
612
  ]
515
613
  });
@@ -665,78 +763,31 @@ function Badge({ className, variant, ...props }) {
665
763
  });
666
764
  }
667
765
  //#endregion
668
- //#region src/components/ui/dropdown-menu.tsx
669
- var DropdownMenu = DropdownMenuPrimitive.Root;
670
- var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
671
- var DropdownMenuSubTrigger = React$1.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(DropdownMenuPrimitive.SubTrigger, {
672
- ref,
673
- className: cn("dy-flex dy-cursor-default dy-select-none dy-items-center dy-gap-2 dy-rounded-sm dy-px-2 dy-py-1.5 dy-text-sm dy-outline-none focus:dy-bg-accent data-[state=open]:dy-bg-accent [&_svg]:dy-pointer-events-none [&_svg]:dy-size-4 [&_svg]:dy-shrink-0", inset && "dy-pl-8", className),
674
- ...props,
675
- children: [children, /* @__PURE__ */ jsx(ChevronRight, { className: "dy-ml-auto" })]
676
- }));
677
- DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
678
- var DropdownMenuSubContent = React$1.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.SubContent, {
679
- ref,
680
- className: cn("dy-z-50 dy-min-w-[8rem] dy-overflow-hidden dy-rounded-md dy-border dy-bg-popover dy-p-1 dy-text-popover-foreground dy-shadow-lg data-[state=open]:dy-animate-in data-[state=closed]:dy-animate-out data-[state=closed]:dy-fade-out-0 data-[state=open]:dy-fade-in-0 data-[state=closed]:dy-zoom-out-95 data-[state=open]:dy-zoom-in-95 data-[side=bottom]:dy-slide-in-from-top-2 data-[side=left]:dy-slide-in-from-right-2 data-[side=right]:dy-slide-in-from-left-2 data-[side=top]:dy-slide-in-from-bottom-2 dy-origin-[--radix-dropdown-menu-content-transform-origin]", className),
681
- ...props
682
- }));
683
- DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
684
- var DropdownMenuContent = React$1.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx("div", {
685
- className: "dy-admin-ui",
686
- children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.Content, {
687
- ref,
688
- sideOffset,
689
- className: cn("dy-z-50 dy-max-h-[var(--radix-dropdown-menu-content-available-height)] dy-min-w-[8rem] dy-overflow-y-auto dy-overflow-x-hidden dy-rounded-md dy-border dy-bg-popover dy-p-1 dy-text-popover-foreground dy-shadow-md data-[state=open]:dy-animate-in data-[state=closed]:dy-animate-out data-[state=closed]:dy-fade-out-0 data-[state=open]:dy-fade-in-0 data-[state=closed]:dy-zoom-out-95 data-[state=open]:dy-zoom-in-95 data-[side=bottom]:dy-slide-in-from-top-2 data-[side=left]:dy-slide-in-from-right-2 data-[side=right]:dy-slide-in-from-left-2 data-[side=top]:dy-slide-in-from-bottom-2 dy-origin-[--radix-dropdown-menu-content-transform-origin]", className),
690
- ...props
691
- })
692
- }) }));
693
- DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
694
- var DropdownMenuItem = React$1.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Item, {
695
- ref,
696
- className: cn("dy-relative dy-flex dy-cursor-default dy-select-none dy-items-center dy-gap-2 dy-rounded-sm dy-px-2 dy-py-1.5 dy-text-sm dy-outline-none dy-transition-colors focus:dy-bg-accent focus:dy-text-accent-foreground data-[disabled]:dy-pointer-events-none data-[disabled]:dy-opacity-50 [&_svg]:dy-pointer-events-none [&_svg]:dy-size-4 [&_svg]:dy-shrink-0", inset && "dy-pl-8", className),
697
- ...props
698
- }));
699
- DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
700
- var DropdownMenuCheckboxItem = React$1.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(DropdownMenuPrimitive.CheckboxItem, {
701
- ref,
702
- className: cn("dy-relative dy-flex dy-cursor-default dy-select-none dy-items-center dy-rounded-sm dy-py-1.5 dy-pl-8 dy-pr-2 dy-text-sm dy-outline-none dy-transition-colors focus:dy-bg-accent focus:dy-text-accent-foreground data-[disabled]:dy-pointer-events-none data-[disabled]:dy-opacity-50", className),
703
- checked,
704
- ...props,
705
- children: [/* @__PURE__ */ jsx("span", {
706
- className: "dy-absolute dy-left-2 dy-flex dy-h-3.5 dy-w-3.5 dy-items-center dy-justify-center",
707
- children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "dy-h-4 dy-w-4" }) })
708
- }), children]
709
- }));
710
- DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
711
- var DropdownMenuRadioItem = React$1.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(DropdownMenuPrimitive.RadioItem, {
712
- ref,
713
- className: cn("dy-relative dy-flex dy-cursor-default dy-select-none dy-items-center dy-rounded-sm dy-py-1.5 dy-pl-8 dy-pr-2 dy-text-sm dy-outline-none dy-transition-colors focus:dy-bg-accent focus:dy-text-accent-foreground data-[disabled]:dy-pointer-events-none data-[disabled]:dy-opacity-50", className),
714
- ...props,
715
- children: [/* @__PURE__ */ jsx("span", {
716
- className: "dy-absolute dy-left-2 dy-flex dy-h-3.5 dy-w-3.5 dy-items-center dy-justify-center",
717
- children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { className: "dy-h-2 dy-w-2 dy-fill-current" }) })
718
- }), children]
719
- }));
720
- DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
721
- var DropdownMenuLabel = React$1.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Label, {
722
- ref,
723
- className: cn("dy-px-2 dy-py-1.5 dy-text-sm dy-font-semibold", inset && "dy-pl-8", className),
724
- ...props
725
- }));
726
- DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
727
- var DropdownMenuSeparator = React$1.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(DropdownMenuPrimitive.Separator, {
728
- ref,
729
- className: cn("dy--mx-1 dy-my-1 dy-h-px dy-bg-muted", className),
730
- ...props
731
- }));
732
- DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
733
- var DropdownMenuShortcut = ({ className, ...props }) => {
734
- return /* @__PURE__ */ jsx("span", {
735
- className: cn("dy-ml-auto dy-text-xs dy-tracking-widest dy-opacity-60", className),
736
- ...props
737
- });
766
+ //#region src/components/admin-component-slot.tsx
767
+ var AdminComponentErrorBoundary = class extends Component {
768
+ state = { hasError: false };
769
+ static getDerivedStateFromError() {
770
+ return { hasError: true };
771
+ }
772
+ componentDidCatch(error, errorInfo) {
773
+ console.error(`[Dyrected Admin] Component "${this.props.componentKey}" failed in "${this.props.slot}".`, error, errorInfo);
774
+ }
775
+ render() {
776
+ return this.state.hasError ? null : this.props.children;
777
+ }
738
778
  };
739
- DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
779
+ function AdminComponentSlot({ componentKeys, registry, slot, componentProps }) {
780
+ if (!componentKeys?.length) return null;
781
+ return componentKeys.map((componentKey) => {
782
+ const CustomComponent = registry?.[componentKey];
783
+ if (!CustomComponent) return null;
784
+ return /* @__PURE__ */ jsx(AdminComponentErrorBoundary, {
785
+ componentKey,
786
+ slot,
787
+ children: createElement(CustomComponent, componentProps)
788
+ }, `${slot}:${componentKey}`);
789
+ });
790
+ }
740
791
  //#endregion
741
792
  //#region src/pages/dashboard/dashboard.tsx
742
793
  function isVisibleCollection(collection) {
@@ -776,7 +827,7 @@ function getStatusLabel(doc) {
776
827
  return typeof status === "string" && status.trim() ? status : "Updated";
777
828
  }
778
829
  function Dashboard() {
779
- const { client } = useDyrected();
830
+ const { client, components, user } = useDyrected();
780
831
  const { data: schemas, isLoading: isLoadingSchemas } = useQuery({
781
832
  queryKey: ["schemas"],
782
833
  queryFn: () => client.getSchemas(),
@@ -836,25 +887,55 @@ function Dashboard() {
836
887
  className: "dy-flex dy-h-64 dy-items-center dy-justify-center",
837
888
  children: /* @__PURE__ */ jsx("div", { className: "dy-h-8 dy-w-8 dy-animate-spin dy-rounded-full dy-border-b-2 dy-border-primary" })
838
889
  });
839
- if (collections.length === 0 && globals.length === 0) return /* @__PURE__ */ jsx("div", {
840
- className: "dy-flex dy-h-64 dy-items-center dy-justify-center",
841
- children: /* @__PURE__ */ jsxs("div", {
842
- className: "dy-space-y-4 dy-text-center",
843
- children: [/* @__PURE__ */ jsx("p", {
844
- className: "dy-text-muted-foreground",
845
- children: "No collections configured yet."
846
- }), /* @__PURE__ */ jsx(Button, {
847
- asChild: true,
848
- children: /* @__PURE__ */ jsx(Link, {
849
- to: "/setup",
850
- children: "View Integration Guide"
890
+ const resolvedSchemas = schemas;
891
+ const dashboardComponentProps = {
892
+ client,
893
+ user,
894
+ schemas: resolvedSchemas
895
+ };
896
+ const dashboardSlots = resolvedSchemas.admin?.components;
897
+ if (collections.length === 0 && globals.length === 0) return /* @__PURE__ */ jsxs("div", {
898
+ className: "dy-space-y-6",
899
+ children: [
900
+ /* @__PURE__ */ jsx(AdminComponentSlot, {
901
+ slot: "beforeDashboard",
902
+ componentKeys: dashboardSlots?.beforeDashboard,
903
+ registry: components?.dashboard,
904
+ componentProps: dashboardComponentProps
905
+ }),
906
+ /* @__PURE__ */ jsx("div", {
907
+ className: "dy-flex dy-h-64 dy-items-center dy-justify-center",
908
+ children: /* @__PURE__ */ jsxs("div", {
909
+ className: "dy-space-y-4 dy-text-center",
910
+ children: [/* @__PURE__ */ jsx("p", {
911
+ className: "dy-text-muted-foreground",
912
+ children: "No collections configured yet."
913
+ }), /* @__PURE__ */ jsx(Button, {
914
+ asChild: true,
915
+ children: /* @__PURE__ */ jsx(Link, {
916
+ to: "/setup",
917
+ children: "Open Setup Guide"
918
+ })
919
+ })]
851
920
  })
852
- })]
853
- })
921
+ }),
922
+ /* @__PURE__ */ jsx(AdminComponentSlot, {
923
+ slot: "afterDashboard",
924
+ componentKeys: dashboardSlots?.afterDashboard,
925
+ registry: components?.dashboard,
926
+ componentProps: dashboardComponentProps
927
+ })
928
+ ]
854
929
  });
855
930
  return /* @__PURE__ */ jsxs("div", {
856
931
  className: "dy-space-y-6 dy-animate-in dy-fade-in dy-duration-500 lg:dy-space-y-8",
857
932
  children: [
933
+ /* @__PURE__ */ jsx(AdminComponentSlot, {
934
+ slot: "beforeDashboard",
935
+ componentKeys: dashboardSlots?.beforeDashboard,
936
+ registry: components?.dashboard,
937
+ componentProps: dashboardComponentProps
938
+ }),
858
939
  /* @__PURE__ */ jsx("div", {
859
940
  className: "dy-flex dy-flex-col dy-gap-4 lg:dy-flex-row lg:dy-items-end lg:dy-justify-between",
860
941
  children: /* @__PURE__ */ jsxs("div", {
@@ -1030,6 +1111,12 @@ function Dashboard() {
1030
1111
  })]
1031
1112
  })]
1032
1113
  })]
1114
+ }),
1115
+ /* @__PURE__ */ jsx(AdminComponentSlot, {
1116
+ slot: "afterDashboard",
1117
+ componentKeys: dashboardSlots?.afterDashboard,
1118
+ registry: components?.dashboard,
1119
+ componentProps: dashboardComponentProps
1033
1120
  })
1034
1121
  ]
1035
1122
  });
@@ -2024,7 +2111,7 @@ function MediaGrid({ items, baseUrl, onDelete, slug }) {
2024
2111
  //#endregion
2025
2112
  //#region src/pages/collections/list-page.tsx
2026
2113
  function CollectionListPage({ slug }) {
2027
- const { client, user } = useDyrected();
2114
+ const { client, components, user } = useDyrected();
2028
2115
  const queryClient = useQueryClient();
2029
2116
  const [page, setPage] = React$1.useState(1);
2030
2117
  const [rowSelection, setRowSelection] = React$1.useState({});
@@ -2346,10 +2433,6 @@ function CollectionListPage({ slug }) {
2346
2433
  if (!schema) return slug;
2347
2434
  return `${slug}:${(Array.isArray(schema.admin?.defaultColumns) ? schema.admin.defaultColumns : []).join(",") || "default"}`;
2348
2435
  }, [schema, slug]);
2349
- if (isLoading) return /* @__PURE__ */ jsx("div", {
2350
- className: "dy-flex dy-h-[400px] dy-items-center dy-justify-center",
2351
- children: /* @__PURE__ */ jsx("div", { className: "dy-animate-spin dy-rounded-full dy-border-4 dy-border-primary dy-border-t-transparent dy-h-8 dy-w-8" })
2352
- });
2353
2436
  if (!schema) return /* @__PURE__ */ jsxs("div", { children: ["Collection not found: ", slug] });
2354
2437
  const readAccess = schema.access?.read;
2355
2438
  let canRead = true;
@@ -2387,9 +2470,40 @@ function CollectionListPage({ slug }) {
2387
2470
  } catch (e) {
2388
2471
  console.warn("Create access eval failed:", e);
2389
2472
  }
2473
+ const collectionComponentProps = {
2474
+ client,
2475
+ user,
2476
+ collection: schema,
2477
+ collectionSlug: slug,
2478
+ response,
2479
+ documents: response?.docs || [],
2480
+ isLoading,
2481
+ pagination: {
2482
+ page,
2483
+ totalPages,
2484
+ total: response?.total ?? 0,
2485
+ hasNextPage,
2486
+ hasPrevPage
2487
+ },
2488
+ permissions: {
2489
+ canRead,
2490
+ canCreate
2491
+ },
2492
+ urls: {
2493
+ collection: `/collections/${slug}`,
2494
+ create: `/collections/${slug}/new`
2495
+ }
2496
+ };
2497
+ const collectionSlots = schema.admin?.components;
2390
2498
  if (slug === "media") return /* @__PURE__ */ jsxs("div", {
2391
2499
  className: "dy-space-y-6 dy-animate-in lg:dy-space-y-8",
2392
2500
  children: [
2501
+ /* @__PURE__ */ jsx(AdminComponentSlot, {
2502
+ slot: "beforeList",
2503
+ componentKeys: collectionSlots?.beforeList,
2504
+ registry: components?.collectionList,
2505
+ componentProps: collectionComponentProps
2506
+ }),
2393
2507
  /* @__PURE__ */ jsx(PageHeader, {
2394
2508
  title: "Media Library",
2395
2509
  description: "Manage your media assets and uploads.",
@@ -2403,12 +2517,27 @@ function CollectionListPage({ slug }) {
2403
2517
  })
2404
2518
  })
2405
2519
  }),
2406
- /* @__PURE__ */ jsx(MediaGrid, {
2520
+ /* @__PURE__ */ jsx(AdminComponentSlot, {
2521
+ slot: "beforeListTable",
2522
+ componentKeys: collectionSlots?.beforeListTable,
2523
+ registry: components?.collectionList,
2524
+ componentProps: collectionComponentProps
2525
+ }),
2526
+ isLoading ? /* @__PURE__ */ jsx("div", {
2527
+ className: "dy-flex dy-h-[400px] dy-items-center dy-justify-center",
2528
+ children: /* @__PURE__ */ jsx("div", { className: "dy-h-8 dy-w-8 dy-animate-spin dy-rounded-full dy-border-4 dy-border-primary dy-border-t-transparent" })
2529
+ }) : /* @__PURE__ */ jsx(MediaGrid, {
2407
2530
  items: response?.docs || [],
2408
2531
  baseUrl: client?.getBaseUrl() || "",
2409
2532
  onDelete: handleDelete,
2410
2533
  slug
2411
2534
  }),
2535
+ /* @__PURE__ */ jsx(AdminComponentSlot, {
2536
+ slot: "afterListTable",
2537
+ componentKeys: collectionSlots?.afterListTable,
2538
+ registry: components?.collectionList,
2539
+ componentProps: collectionComponentProps
2540
+ }),
2412
2541
  /* @__PURE__ */ jsx(Pagination, {
2413
2542
  page,
2414
2543
  totalPages,
@@ -2416,106 +2545,145 @@ function CollectionListPage({ slug }) {
2416
2545
  hasNextPage,
2417
2546
  onPageChange: setPage,
2418
2547
  className: "dy-mt-8"
2548
+ }),
2549
+ /* @__PURE__ */ jsx(AdminComponentSlot, {
2550
+ slot: "afterList",
2551
+ componentKeys: collectionSlots?.afterList,
2552
+ registry: components?.collectionList,
2553
+ componentProps: collectionComponentProps
2419
2554
  })
2420
2555
  ]
2421
2556
  });
2422
2557
  return /* @__PURE__ */ jsxs("div", {
2423
2558
  className: "dy-space-y-6 dy-animate-in lg:dy-space-y-8",
2424
- children: [/* @__PURE__ */ jsx(PageHeader, {
2425
- title: schema.labels?.plural || schema.label || schema.slug,
2426
- description: `Manage your ${schema.labels?.plural || schema.label || schema.slug} entries and update content.`,
2427
- icon: Database,
2428
- children: canCreate && /* @__PURE__ */ jsx(Link, {
2429
- to: `/collections/${slug}/new`,
2430
- className: "dy-w-full sm:dy-w-auto",
2431
- children: /* @__PURE__ */ jsxs(Button, {
2432
- className: "dy-h-9 dy-w-full dy-justify-center dy-rounded-md dy-bg-primary dy-px-4 dy-text-[11px] dy-shadow-sm dy-transition-all hover:dy-bg-primary/90 active:dy-scale-95 sm:dy-h-8 sm:dy-w-auto",
2433
- children: [
2434
- /* @__PURE__ */ jsx(Plus, { className: "dy-mr-1.5 dy-h-3 dy-w-3" }),
2435
- /* @__PURE__ */ jsx("span", {
2436
- className: "sm:dy-hidden",
2437
- children: "Add"
2438
- }),
2439
- /* @__PURE__ */ jsxs("span", {
2440
- className: "dy-hidden sm:dy-inline",
2441
- children: ["Add ", schema.labels?.singular || schema.label || schema.slug]
2442
- })
2443
- ]
2444
- })
2445
- })
2446
- }), /* @__PURE__ */ jsxs("div", {
2447
- className: "dy-min-w-0",
2448
- children: [/* @__PURE__ */ jsx(DataTable, {
2449
- columns,
2450
- data: response?.docs || [],
2451
- searchKey: schema.admin?.useAsTitle || schema.fields.find((f) => !f.admin?.hidden)?.name || "id",
2452
- onRowSelectionChange: setRowSelection,
2453
- rowSelection,
2454
- persistenceKey: columnPreferenceKey,
2455
- initialColumnVisibility,
2456
- toolbarActions: /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(FilterBuilder, {
2457
- schema,
2458
- rules,
2459
- onChange: handleRulesChange
2460
- }), /* @__PURE__ */ jsxs(Button, {
2461
- variant: "outline",
2462
- size: "sm",
2463
- className: "dy-h-9 dy-w-full dy-justify-center dy-gap-2 dy-rounded-md dy-px-3 dy-text-[11px] dy-shadow-sm dy-transition-all active:dy-scale-95 sm:dy-h-8 sm:dy-w-auto",
2464
- onClick: handleExportCsv,
2465
- disabled: exporting,
2466
- children: [
2467
- exporting ? /* @__PURE__ */ jsx("div", { className: "dy-h-3 dy-w-3 dy-animate-spin dy-rounded-full dy-border-2 dy-border-current dy-border-t-transparent" }) : /* @__PURE__ */ jsx(FileDown, { className: "dy-h-3.5 dy-w-3.5" }),
2468
- /* @__PURE__ */ jsx("span", {
2469
- className: "dy-hidden sm:dy-inline",
2470
- children: exporting ? "Exporting..." : "Export CSV"
2471
- }),
2472
- /* @__PURE__ */ jsx("span", {
2473
- className: "sm:dy-hidden",
2474
- children: exporting ? "Exporting" : "Export"
2475
- })
2476
- ]
2477
- })] }),
2478
- bulkActions: (selectedIds) => {
2479
- const deletableIds = selectedIds.filter((id) => {
2480
- const item = response?.docs?.find((d) => d.id === id);
2481
- if (!item) return false;
2482
- if (schema.auth && id === user?.id) return false;
2483
- const deleteAccess = schema.access?.delete;
2484
- let canDelete = true;
2485
- if (deleteAccess === false) canDelete = false;
2486
- else if (typeof deleteAccess === "string") try {
2487
- canDelete = jexl.evalSync(deleteAccess, {
2488
- user,
2489
- ...item
2490
- });
2491
- } catch (e) {
2492
- console.warn("Delete access eval failed:", e);
2493
- }
2494
- return canDelete;
2495
- });
2496
- return /* @__PURE__ */ jsxs(Button, {
2497
- variant: "destructive",
2498
- size: "sm",
2499
- className: "dy-h-8",
2500
- onClick: () => handleBulkDelete(deletableIds),
2501
- disabled: bulkDeleteMutation.isPending || deletableIds.length === 0,
2559
+ children: [
2560
+ /* @__PURE__ */ jsx(AdminComponentSlot, {
2561
+ slot: "beforeList",
2562
+ componentKeys: collectionSlots?.beforeList,
2563
+ registry: components?.collectionList,
2564
+ componentProps: collectionComponentProps
2565
+ }),
2566
+ /* @__PURE__ */ jsx(PageHeader, {
2567
+ title: schema.labels?.plural || schema.label || schema.slug,
2568
+ description: `Manage your ${schema.labels?.plural || schema.label || schema.slug} entries and update content.`,
2569
+ icon: Database,
2570
+ children: canCreate && /* @__PURE__ */ jsx(Link, {
2571
+ to: `/collections/${slug}/new`,
2572
+ className: "dy-w-full sm:dy-w-auto",
2573
+ children: /* @__PURE__ */ jsxs(Button, {
2574
+ className: "dy-h-9 dy-w-full dy-justify-center dy-rounded-md dy-bg-primary dy-px-4 dy-text-[11px] dy-shadow-sm dy-transition-all hover:dy-bg-primary/90 active:dy-scale-95 sm:dy-h-8 sm:dy-w-auto",
2502
2575
  children: [
2503
- /* @__PURE__ */ jsx(Trash2, { className: "dy-h-4 dy-w-4 dy-mr-2" }),
2504
- "Delete Selected (",
2505
- deletableIds.length,
2506
- ")"
2576
+ /* @__PURE__ */ jsx(Plus, { className: "dy-mr-1.5 dy-h-3 dy-w-3" }),
2577
+ /* @__PURE__ */ jsx("span", {
2578
+ className: "sm:dy-hidden",
2579
+ children: "Add"
2580
+ }),
2581
+ /* @__PURE__ */ jsxs("span", {
2582
+ className: "dy-hidden sm:dy-inline",
2583
+ children: ["Add ", schema.labels?.singular || schema.label || schema.slug]
2584
+ })
2507
2585
  ]
2508
- });
2509
- }
2510
- }, slug), /* @__PURE__ */ jsx(Pagination, {
2511
- page,
2512
- totalPages,
2513
- total: response?.total,
2514
- hasPrevPage,
2515
- hasNextPage,
2516
- onPageChange: setPage
2517
- })]
2518
- })]
2586
+ })
2587
+ })
2588
+ }),
2589
+ /* @__PURE__ */ jsx(AdminComponentSlot, {
2590
+ slot: "beforeListTable",
2591
+ componentKeys: collectionSlots?.beforeListTable,
2592
+ registry: components?.collectionList,
2593
+ componentProps: collectionComponentProps
2594
+ }),
2595
+ /* @__PURE__ */ jsxs("div", {
2596
+ className: "dy-min-w-0",
2597
+ children: [
2598
+ isLoading ? /* @__PURE__ */ jsx("div", {
2599
+ className: "dy-flex dy-h-[400px] dy-items-center dy-justify-center",
2600
+ children: /* @__PURE__ */ jsx("div", { className: "dy-h-8 dy-w-8 dy-animate-spin dy-rounded-full dy-border-4 dy-border-primary dy-border-t-transparent" })
2601
+ }) : /* @__PURE__ */ jsx(DataTable, {
2602
+ columns,
2603
+ data: response?.docs || [],
2604
+ searchKey: schema.admin?.useAsTitle || schema.fields.find((f) => !f.admin?.hidden)?.name || "id",
2605
+ onRowSelectionChange: setRowSelection,
2606
+ rowSelection,
2607
+ persistenceKey: columnPreferenceKey,
2608
+ initialColumnVisibility,
2609
+ toolbarActions: /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(FilterBuilder, {
2610
+ schema,
2611
+ rules,
2612
+ onChange: handleRulesChange
2613
+ }), /* @__PURE__ */ jsxs(Button, {
2614
+ variant: "outline",
2615
+ size: "sm",
2616
+ className: "dy-h-9 dy-w-full dy-justify-center dy-gap-2 dy-rounded-md dy-px-3 dy-text-[11px] dy-shadow-sm dy-transition-all active:dy-scale-95 sm:dy-h-8 sm:dy-w-auto",
2617
+ onClick: handleExportCsv,
2618
+ disabled: exporting,
2619
+ children: [
2620
+ exporting ? /* @__PURE__ */ jsx("div", { className: "dy-h-3 dy-w-3 dy-animate-spin dy-rounded-full dy-border-2 dy-border-current dy-border-t-transparent" }) : /* @__PURE__ */ jsx(FileDown, { className: "dy-h-3.5 dy-w-3.5" }),
2621
+ /* @__PURE__ */ jsx("span", {
2622
+ className: "dy-hidden sm:dy-inline",
2623
+ children: exporting ? "Exporting..." : "Export CSV"
2624
+ }),
2625
+ /* @__PURE__ */ jsx("span", {
2626
+ className: "sm:dy-hidden",
2627
+ children: exporting ? "Exporting" : "Export"
2628
+ })
2629
+ ]
2630
+ })] }),
2631
+ bulkActions: (selectedIds) => {
2632
+ const deletableIds = selectedIds.filter((id) => {
2633
+ const item = response?.docs?.find((d) => d.id === id);
2634
+ if (!item) return false;
2635
+ if (schema.auth && id === user?.id) return false;
2636
+ const deleteAccess = schema.access?.delete;
2637
+ let canDelete = true;
2638
+ if (deleteAccess === false) canDelete = false;
2639
+ else if (typeof deleteAccess === "string") try {
2640
+ canDelete = jexl.evalSync(deleteAccess, {
2641
+ user,
2642
+ ...item
2643
+ });
2644
+ } catch (e) {
2645
+ console.warn("Delete access eval failed:", e);
2646
+ }
2647
+ return canDelete;
2648
+ });
2649
+ return /* @__PURE__ */ jsxs(Button, {
2650
+ variant: "destructive",
2651
+ size: "sm",
2652
+ className: "dy-h-8",
2653
+ onClick: () => handleBulkDelete(deletableIds),
2654
+ disabled: bulkDeleteMutation.isPending || deletableIds.length === 0,
2655
+ children: [
2656
+ /* @__PURE__ */ jsx(Trash2, { className: "dy-h-4 dy-w-4 dy-mr-2" }),
2657
+ "Delete Selected (",
2658
+ deletableIds.length,
2659
+ ")"
2660
+ ]
2661
+ });
2662
+ }
2663
+ }, slug),
2664
+ /* @__PURE__ */ jsx(AdminComponentSlot, {
2665
+ slot: "afterListTable",
2666
+ componentKeys: collectionSlots?.afterListTable,
2667
+ registry: components?.collectionList,
2668
+ componentProps: collectionComponentProps
2669
+ }),
2670
+ /* @__PURE__ */ jsx(Pagination, {
2671
+ page,
2672
+ totalPages,
2673
+ total: response?.total,
2674
+ hasPrevPage,
2675
+ hasNextPage,
2676
+ onPageChange: setPage
2677
+ }),
2678
+ /* @__PURE__ */ jsx(AdminComponentSlot, {
2679
+ slot: "afterList",
2680
+ componentKeys: collectionSlots?.afterList,
2681
+ registry: components?.collectionList,
2682
+ componentProps: collectionComponentProps
2683
+ })
2684
+ ]
2685
+ })
2686
+ ]
2519
2687
  });
2520
2688
  }
2521
2689
  //#endregion
@@ -3562,7 +3730,7 @@ ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
3562
3730
  function MediaLibraryDialog({ collection, isOpen, onOpenChange, selectedValues, onSelect, multiple, onConfirm }) {
3563
3731
  const { client, schemas } = useDyrected();
3564
3732
  const schema = React$1.useMemo(() => schemas?.collections?.find((c) => c.slug === collection), [schemas, collection]);
3565
- const collectionLabel = React$1.useMemo(() => schema?.labels?.plural ?? schema?.label ?? (collection && collection !== "media" ? collection.charAt(0).toUpperCase() + collection.slice(1) : "Media Library"), [schema, collection]);
3733
+ const collectionLabel = React$1.useMemo(() => schema?.labels?.plural ?? schema?.labels?.singular ?? (collection && collection !== "media" ? collection.charAt(0).toUpperCase() + collection.slice(1) : "Media Library"), [schema, collection]);
3566
3734
  const [searchQuery, setSearchQuery] = React$1.useState("");
3567
3735
  const [externalUrl, setExternalUrl] = React$1.useState("");
3568
3736
  const [activeTab, setActiveTab] = React$1.useState("library");
@@ -6187,17 +6355,20 @@ var getIconCategory = (name) => {
6187
6355
  }
6188
6356
  return "others";
6189
6357
  };
6190
- var allIconNames = Object.keys(Icons).filter((key) => typeof Icons[key] === "function" && /^[A-Z]/.test(key));
6358
+ var availableIconNames = Object.keys(icons);
6359
+ function getIcon(name) {
6360
+ return icons[name];
6361
+ }
6191
6362
  function IconPicker({ schema, field, disabled }) {
6192
6363
  const [open, setOpen] = React$1.useState(false);
6193
6364
  const [search, setSearch] = React$1.useState("");
6194
6365
  const [selectedCategory, setSelectedCategory] = React$1.useState("all");
6195
6366
  const [visibleCount, setVisibleCount] = React$1.useState(100);
6196
6367
  const selectedIconName = field.value || "";
6197
- const SelectedIcon = selectedIconName ? Icons[selectedIconName] : null;
6368
+ const SelectedIcon = selectedIconName ? getIcon(selectedIconName) : void 0;
6198
6369
  const filteredIcons = React$1.useMemo(() => {
6199
- let list = allIconNames;
6200
- if (selectedCategory !== "all") list = allIconNames.filter((name) => getIconCategory(name) === selectedCategory);
6370
+ let list = availableIconNames;
6371
+ if (selectedCategory !== "all") list = availableIconNames.filter((name) => getIconCategory(name) === selectedCategory);
6201
6372
  if (search) {
6202
6373
  const q = search.toLowerCase();
6203
6374
  list = list.filter((name) => name.toLowerCase().includes(q));
@@ -6255,7 +6426,7 @@ function IconPicker({ schema, field, disabled }) {
6255
6426
  children: [/* @__PURE__ */ jsxs("div", {
6256
6427
  className: "dy-grid dy-grid-cols-7 dy-gap-1 dy-pr-3",
6257
6428
  children: [filteredIcons.slice(0, visibleCount).map((name) => {
6258
- const IconComp = Icons[name];
6429
+ const IconComp = icons[name];
6259
6430
  return /* @__PURE__ */ jsx("button", {
6260
6431
  type: "button",
6261
6432
  title: name,
@@ -7101,7 +7272,7 @@ function BlockBuilder({ schema, basePath, control, collection, documentId }) {
7101
7272
  items: fields.map((f) => f.id),
7102
7273
  strategy: verticalListSortingStrategy,
7103
7274
  children: /* @__PURE__ */ jsx("div", {
7104
- className: "dy-pt-2",
7275
+ className: "dy-pt-2 dy-space-y-4",
7105
7276
  children: fields.map((item, index) => /* @__PURE__ */ jsx(SortableBlockItem, {
7106
7277
  id: item.id,
7107
7278
  index,
@@ -8615,6 +8786,231 @@ function LivePreviewPane({ previewUrl, data, mode = "postMessage", onFieldFocus
8615
8786
  });
8616
8787
  }
8617
8788
  //#endregion
8789
+ //#region src/components/workflow/WorkflowPanel.tsx
8790
+ var STATE_COLORS = {
8791
+ success: {
8792
+ bg: "dy-bg-emerald-50 dy-border-emerald-200",
8793
+ text: "dy-text-emerald-700",
8794
+ dot: "dy-bg-emerald-500"
8795
+ },
8796
+ warning: {
8797
+ bg: "dy-bg-amber-50 dy-border-amber-200",
8798
+ text: "dy-text-amber-700",
8799
+ dot: "dy-bg-amber-500"
8800
+ },
8801
+ danger: {
8802
+ bg: "dy-bg-red-50 dy-border-red-200",
8803
+ text: "dy-text-red-700",
8804
+ dot: "dy-bg-red-500"
8805
+ },
8806
+ info: {
8807
+ bg: "dy-bg-blue-50 dy-border-blue-200",
8808
+ text: "dy-text-blue-700",
8809
+ dot: "dy-bg-blue-500"
8810
+ },
8811
+ neutral: {
8812
+ bg: "dy-bg-muted/40 dy-border-border/60",
8813
+ text: "dy-text-muted-foreground",
8814
+ dot: "dy-bg-muted-foreground/60"
8815
+ }
8816
+ };
8817
+ function stateColors(color) {
8818
+ return STATE_COLORS[color ?? "neutral"] ?? STATE_COLORS.neutral;
8819
+ }
8820
+ function StateIcon({ color }) {
8821
+ if (color === "success") return /* @__PURE__ */ jsx(CheckCircle, { className: "dy-h-3.5 dy-w-3.5" });
8822
+ if (color === "warning") return /* @__PURE__ */ jsx(Clock, { className: "dy-h-3.5 dy-w-3.5" });
8823
+ if (color === "danger") return /* @__PURE__ */ jsx(XCircle, { className: "dy-h-3.5 dy-w-3.5" });
8824
+ if (color === "info") return /* @__PURE__ */ jsx(AlertCircle, { className: "dy-h-3.5 dy-w-3.5" });
8825
+ return /* @__PURE__ */ jsx(Clock, { className: "dy-h-3.5 dy-w-3.5" });
8826
+ }
8827
+ function CommentDialog({ transitionLabel, onConfirm, onCancel, isPending }) {
8828
+ const [comment, setComment] = useState("");
8829
+ return /* @__PURE__ */ jsxs("div", {
8830
+ className: "dy-mt-3 dy-space-y-2",
8831
+ children: [
8832
+ /* @__PURE__ */ jsxs("label", {
8833
+ className: "dy-text-xs dy-font-medium dy-text-muted-foreground",
8834
+ children: ["Comment ", /* @__PURE__ */ jsx("span", {
8835
+ className: "dy-text-destructive",
8836
+ children: "*"
8837
+ })]
8838
+ }),
8839
+ /* @__PURE__ */ jsx("textarea", {
8840
+ className: "dy-w-full dy-rounded-lg dy-border dy-border-border/60 dy-bg-background dy-px-3 dy-py-2 dy-text-sm dy-text-foreground placeholder:dy-text-muted-foreground focus:dy-outline-none focus:dy-ring-2 focus:dy-ring-primary/30 dy-resize-none",
8841
+ rows: 3,
8842
+ placeholder: `Required for "${transitionLabel}"…`,
8843
+ value: comment,
8844
+ onChange: (e) => setComment(e.target.value),
8845
+ autoFocus: true
8846
+ }),
8847
+ /* @__PURE__ */ jsxs("div", {
8848
+ className: "dy-flex dy-gap-2",
8849
+ children: [/* @__PURE__ */ jsx(Button, {
8850
+ size: "sm",
8851
+ className: "dy-h-8 dy-px-3 dy-rounded-lg dy-text-xs dy-font-semibold",
8852
+ disabled: !comment.trim() || isPending,
8853
+ onClick: () => onConfirm(comment.trim()),
8854
+ children: isPending ? /* @__PURE__ */ jsx(Loader2, { className: "dy-h-3 dy-w-3 dy-animate-spin" }) : transitionLabel
8855
+ }), /* @__PURE__ */ jsx(Button, {
8856
+ size: "sm",
8857
+ variant: "ghost",
8858
+ className: "dy-h-8 dy-px-3 dy-rounded-lg dy-text-xs",
8859
+ onClick: onCancel,
8860
+ disabled: isPending,
8861
+ children: "Cancel"
8862
+ })]
8863
+ })
8864
+ ]
8865
+ });
8866
+ }
8867
+ function WorkflowPanel({ collection, documentId, workflowMeta, workflowConfig }) {
8868
+ const { client } = useDyrected();
8869
+ const queryClient = useQueryClient();
8870
+ const [showHistory, setShowHistory] = useState(false);
8871
+ const [pendingComment, setPendingComment] = useState(null);
8872
+ const currentState = workflowConfig.states.find((s) => s.name === workflowMeta.state);
8873
+ const colors = stateColors(currentState?.color);
8874
+ const available = workflowMeta.availableTransitions ?? [];
8875
+ const availableTransitions = workflowConfig.transitions.filter((t) => available.includes(t.name));
8876
+ const wfClient = client;
8877
+ const { data: historyResult, isLoading: historyLoading } = useQuery({
8878
+ queryKey: [
8879
+ "workflow-history",
8880
+ collection,
8881
+ documentId
8882
+ ],
8883
+ queryFn: () => wfClient.workflowHistory(collection, documentId, { limit: 20 }),
8884
+ enabled: showHistory && !!client
8885
+ });
8886
+ const history = historyResult?.docs ?? [];
8887
+ const transitionMutation = useMutation({
8888
+ mutationFn: ({ name, comment }) => wfClient.transition(collection, documentId, name, {
8889
+ expectedRevision: workflowMeta.revision,
8890
+ comment
8891
+ }),
8892
+ onSuccess: () => {
8893
+ setPendingComment(null);
8894
+ queryClient.invalidateQueries({ queryKey: [
8895
+ "entry",
8896
+ collection,
8897
+ documentId
8898
+ ] });
8899
+ queryClient.invalidateQueries({ queryKey: [
8900
+ "workflow-history",
8901
+ collection,
8902
+ documentId
8903
+ ] });
8904
+ toast.success("Transition applied");
8905
+ },
8906
+ onError: (err) => {
8907
+ setPendingComment(null);
8908
+ toast.error("Transition failed", { description: err.message });
8909
+ }
8910
+ });
8911
+ function handleTransitionClick(t) {
8912
+ if (t.requireComment) setPendingComment(t.name);
8913
+ else transitionMutation.mutate({ name: t.name });
8914
+ }
8915
+ return /* @__PURE__ */ jsxs("div", {
8916
+ className: "dy-rounded-2xl dy-border dy-border-border/50 dy-bg-muted/10 dy-p-4 dy-space-y-4",
8917
+ children: [
8918
+ /* @__PURE__ */ jsxs("div", {
8919
+ className: "dy-flex dy-items-center dy-justify-between",
8920
+ children: [/* @__PURE__ */ jsx("p", {
8921
+ className: "dy-text-[10px] dy-font-bold dy-uppercase dy-tracking-wider dy-text-muted-foreground/50",
8922
+ children: "Workflow"
8923
+ }), /* @__PURE__ */ jsxs("div", {
8924
+ className: cn("dy-flex dy-items-center dy-gap-1.5 dy-rounded-full dy-border dy-px-2.5 dy-py-1 dy-text-xs dy-font-semibold", colors.bg, colors.text),
8925
+ children: [/* @__PURE__ */ jsx(StateIcon, { color: currentState?.color }), currentState?.label ?? workflowMeta.state]
8926
+ })]
8927
+ }),
8928
+ /* @__PURE__ */ jsxs("div", {
8929
+ className: "dy-flex dy-gap-4 dy-text-[11px] dy-text-muted-foreground/60",
8930
+ children: [/* @__PURE__ */ jsxs("span", { children: ["Revision ", workflowMeta.revision] }), workflowMeta.publishedAt && /* @__PURE__ */ jsxs("span", { children: ["Published ", new Date(workflowMeta.publishedAt).toLocaleDateString()] })]
8931
+ }),
8932
+ availableTransitions.length > 0 && /* @__PURE__ */ jsx("div", {
8933
+ className: "dy-space-y-2",
8934
+ children: availableTransitions.map((t) => {
8935
+ const isWaiting = pendingComment === t.name;
8936
+ const isLoading = transitionMutation.isPending && transitionMutation.variables?.name === t.name;
8937
+ return /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs(Button, {
8938
+ size: "sm",
8939
+ variant: t.unpublish || t.name === "reject" ? "outline" : "default",
8940
+ className: cn("dy-w-full dy-h-9 dy-rounded-xl dy-text-xs dy-font-semibold dy-justify-start dy-gap-2", isWaiting && "dy-ring-2 dy-ring-primary/30"),
8941
+ disabled: transitionMutation.isPending,
8942
+ onClick: () => handleTransitionClick(t),
8943
+ children: [isLoading ? /* @__PURE__ */ jsx(Loader2, { className: "dy-h-3.5 dy-w-3.5 dy-animate-spin" }) : /* @__PURE__ */ jsx(StateIcon, { color: workflowConfig.states.find((s) => s.name === t.to)?.color }), t.label]
8944
+ }), isWaiting && /* @__PURE__ */ jsx(CommentDialog, {
8945
+ transitionLabel: t.label,
8946
+ isPending: transitionMutation.isPending,
8947
+ onConfirm: (comment) => transitionMutation.mutate({
8948
+ name: t.name,
8949
+ comment
8950
+ }),
8951
+ onCancel: () => setPendingComment(null)
8952
+ })] }, t.name);
8953
+ })
8954
+ }),
8955
+ available.length === 0 && /* @__PURE__ */ jsx("p", {
8956
+ className: "dy-text-xs dy-text-muted-foreground/50 dy-italic",
8957
+ children: "No transitions available from this state."
8958
+ }),
8959
+ /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsxs("button", {
8960
+ className: "dy-flex dy-items-center dy-gap-1 dy-text-[11px] dy-font-medium dy-text-muted-foreground/60 hover:dy-text-muted-foreground dy-transition-colors",
8961
+ onClick: () => setShowHistory((v) => !v),
8962
+ children: [showHistory ? /* @__PURE__ */ jsx(ChevronUp, { className: "dy-h-3 dy-w-3" }) : /* @__PURE__ */ jsx(ChevronDown, { className: "dy-h-3 dy-w-3" }), "History"]
8963
+ }), showHistory && /* @__PURE__ */ jsxs("div", {
8964
+ className: "dy-mt-2 dy-space-y-1",
8965
+ children: [
8966
+ historyLoading && /* @__PURE__ */ jsx("p", {
8967
+ className: "dy-text-xs dy-text-muted-foreground/50 dy-py-2 dy-text-center",
8968
+ children: "Loading…"
8969
+ }),
8970
+ !historyLoading && history.length === 0 && /* @__PURE__ */ jsx("p", {
8971
+ className: "dy-text-xs dy-text-muted-foreground/50 dy-italic",
8972
+ children: "No transitions yet."
8973
+ }),
8974
+ history.map((entry) => {
8975
+ const fromState = workflowConfig.states.find((s) => s.name === entry.from);
8976
+ const toState = workflowConfig.states.find((s) => s.name === entry.to);
8977
+ return /* @__PURE__ */ jsxs("div", {
8978
+ className: "dy-flex dy-flex-col dy-gap-0.5 dy-rounded-lg dy-border dy-border-border/40 dy-bg-background/50 dy-px-3 dy-py-2",
8979
+ children: [
8980
+ /* @__PURE__ */ jsxs("div", {
8981
+ className: "dy-flex dy-items-center dy-gap-1.5 dy-text-xs dy-font-medium dy-text-foreground/80",
8982
+ children: [
8983
+ /* @__PURE__ */ jsx("span", { className: cn("dy-inline-block dy-h-1.5 dy-w-1.5 dy-rounded-full", stateColors(fromState?.color).dot) }),
8984
+ fromState?.label ?? entry.from,
8985
+ /* @__PURE__ */ jsx("span", {
8986
+ className: "dy-text-muted-foreground/40",
8987
+ children: "→"
8988
+ }),
8989
+ /* @__PURE__ */ jsx("span", { className: cn("dy-inline-block dy-h-1.5 dy-w-1.5 dy-rounded-full", stateColors(toState?.color).dot) }),
8990
+ toState?.label ?? entry.to
8991
+ ]
8992
+ }),
8993
+ entry.comment && /* @__PURE__ */ jsxs("p", {
8994
+ className: "dy-text-[11px] dy-text-muted-foreground dy-italic",
8995
+ children: [
8996
+ "\"",
8997
+ entry.comment,
8998
+ "\""
8999
+ ]
9000
+ }),
9001
+ /* @__PURE__ */ jsx("p", {
9002
+ className: "dy-text-[10px] dy-text-muted-foreground/40",
9003
+ children: new Date(entry.createdAt).toLocaleString()
9004
+ })
9005
+ ]
9006
+ }, entry.id);
9007
+ })
9008
+ ]
9009
+ })] })
9010
+ ]
9011
+ });
9012
+ }
9013
+ //#endregion
8618
9014
  //#region src/pages/collections/edit-page.tsx
8619
9015
  function EditEntryPage() {
8620
9016
  const { slug, id } = useParams();
@@ -8723,6 +9119,8 @@ function EditEntryPage() {
8723
9119
  };
8724
9120
  if (!schema) return /* @__PURE__ */ jsx("div", { children: "Collection not found" });
8725
9121
  if (isEdit && isEntryLoading) return /* @__PURE__ */ jsx("div", { children: "Loading entry..." });
9122
+ const workflowConfig = schema.workflow ?? null;
9123
+ const workflowMeta = isEdit && entry ? entry._workflow ?? null : null;
8726
9124
  const hasStatus = schema?.fields.some((f) => f.name === "status");
8727
9125
  const currentStatus = entry?.status || "draft";
8728
9126
  let previewUrl = typeof schema.admin?.previewUrl === "function" ? schema.admin.previewUrl(previewData || entry, { locale: "en" }) : schema.admin?.previewUrl;
@@ -8797,250 +9195,262 @@ function EditEntryPage() {
8797
9195
  el.querySelector("input, textarea, [contenteditable], button[role=\"combobox\"]")?.focus();
8798
9196
  };
8799
9197
  return /* @__PURE__ */ jsxs("div", {
8800
- className: "dy-flex dy-h-[calc(100vh-0px)] dy-overflow-hidden dy--mt-6 dy--mb-6 dy--mx-4 lg:dy--mt-10 lg:dy--mb-10 lg:dy--mx-6",
8801
- children: [/* @__PURE__ */ jsx("div", {
8802
- className: cn("dy-flex-1 dy-overflow-y-auto dy-px-4 dy-py-6 md:dy-px-6 lg:dy-px-8 lg:dy-py-8 dy-transition-all dy-duration-500", showPreview ? "dy-max-w-2xl xl:dy-max-w-3xl" : "dy-max-w-4xl xl:dy-max-w-5xl dy-mx-auto dy-w-full"),
8803
- children: /* @__PURE__ */ jsxs("div", {
8804
- className: "dy-space-y-6",
8805
- children: [/* @__PURE__ */ jsxs("div", {
8806
- className: "dy-flex dy-items-center dy-justify-between dy-gap-4 dy-border-b dy-border-muted/20 dy-pb-4",
9198
+ className: cn("dy-flex dy--mt-6 dy--mb-6 dy--mx-4 lg:dy--mt-10 lg:dy--mb-10 lg:dy--mx-6", showPreview ? "dy-h-screen" : ""),
9199
+ children: [
9200
+ /* @__PURE__ */ jsx("div", {
9201
+ className: cn("dy-flex-1 dy-px-4 dy-py-6 md:dy-px-6 lg:dy-px-8 lg:dy-py-8 dy-transition-all dy-duration-500", showPreview ? "dy-max-w-2xl xl:dy-max-w-3xl dy-overflow-y-auto" : workflowConfig ? "dy-max-w-3xl xl:dy-max-w-4xl dy-mx-auto dy-w-full dy-overflow-y-auto" : "dy-max-w-4xl xl:dy-max-w-5xl dy-mx-auto dy-w-full dy-overflow-y-auto"),
9202
+ children: /* @__PURE__ */ jsxs("div", {
9203
+ className: "dy-space-y-6",
8807
9204
  children: [/* @__PURE__ */ jsxs("div", {
8808
- className: "dy-flex dy-items-center dy-gap-3",
8809
- children: [/* @__PURE__ */ jsx(Button, {
8810
- variant: "ghost",
8811
- size: "icon",
8812
- className: "dy-h-8 dy-w-8 dy-rounded-lg hover:dy-bg-muted dy-shrink-0",
8813
- onClick: () => navigate(`/collections/${slug}`),
8814
- children: /* @__PURE__ */ jsx(ChevronLeft, { className: "dy-h-4 dy-w-4" })
8815
- }), /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs("div", {
9205
+ className: "dy-flex dy-items-center dy-justify-between dy-gap-4 dy-border-b dy-border-muted/20 dy-pb-4",
9206
+ children: [/* @__PURE__ */ jsxs("div", {
8816
9207
  className: "dy-flex dy-items-center dy-gap-3",
8817
- children: [/* @__PURE__ */ jsx("h1", {
8818
- className: "dy-text-lg dy-font-serif dy-font-bold dy-tracking-tight dy-text-foreground dy-truncate",
8819
- children: isEdit ? `Edit ${schema.label || schema.slug}` : `New ${schema.label || schema.slug}`
8820
- }), hasStatus && /* @__PURE__ */ jsx(Badge, {
8821
- className: cn("dy-px-2 dy-py-0 dy-rounded-full dy-text-[10px] dy-font-bold dy-uppercase dy-tracking-wider", currentStatus === "published" ? "dy-bg-emerald-100 dy-text-emerald-700 dy-border-emerald-200" : "dy-bg-amber-100 dy-text-amber-700 dy-border-amber-200"),
8822
- variant: "outline",
8823
- children: currentStatus === "published" ? "Live" : "Draft"
8824
- })]
8825
- }) })]
8826
- }), /* @__PURE__ */ jsxs("div", {
8827
- className: "dy-flex dy-items-center dy-gap-1.5 dy-bg-muted/20 dy-p-1 dy-rounded-xl dy-border dy-border-muted/30 dy-shadow-sm",
8828
- children: [
8829
- schema?.auth && isEdit && isAdminUser && !isSelf && entry?.email && /* @__PURE__ */ jsx(Button, {
8830
- variant: "ghost",
8831
- size: "icon",
8832
- className: "dy-h-8 dy-w-8 dy-rounded-lg dy-text-muted-foreground hover:dy-bg-muted hover:dy-text-foreground dy-transition-all",
8833
- onClick: handleSendResetLink,
8834
- disabled: sendingReset,
8835
- title: `Send password reset link to ${entry.email}`,
8836
- children: sendingReset ? /* @__PURE__ */ jsx("div", { className: "dy-h-3.5 dy-w-3.5 dy-animate-spin dy-border-2 dy-border-current dy-border-t-transparent dy-rounded-full" }) : /* @__PURE__ */ jsx(Mail, { className: "dy-h-3.5 dy-w-3.5" })
8837
- }),
8838
- previewUrl && /* @__PURE__ */ jsx(Button, {
9208
+ children: [/* @__PURE__ */ jsx(Button, {
8839
9209
  variant: "ghost",
8840
9210
  size: "icon",
8841
- className: cn("dy-h-8 dy-w-8 dy-rounded-lg dy-transition-all", showPreview ? "dy-bg-background dy-text-primary dy-shadow-sm hover:dy-bg-background" : "dy-text-muted-foreground hover:dy-bg-muted hover:dy-text-foreground"),
8842
- onClick: () => setShowPreview(!showPreview),
8843
- title: showPreview ? "Hide Preview" : "Live Preview",
8844
- children: showPreview ? /* @__PURE__ */ jsx(EyeOff, { className: "dy-h-3.5 dy-w-3.5" }) : /* @__PURE__ */ jsx(Eye, { className: "dy-h-3.5 dy-w-3.5" })
8845
- }),
8846
- /* @__PURE__ */ jsx(Button, {
8847
- size: "icon",
8848
- className: "dy-h-8 dy-w-8 dy-rounded-lg dy-bg-primary dy-text-primary-foreground hover:dy-bg-primary/90 dy-transition-all dy-shadow-sm",
8849
- onClick: () => document.getElementById("dyrected-form-submit")?.click(),
8850
- disabled: saveMutation.isPending || (isEdit ? !canUpdate : !canCreate),
8851
- title: isEdit ? "Save Changes (⌘S)" : "Create Entry (⌘S)",
8852
- children: saveMutation.isPending ? /* @__PURE__ */ jsx("div", { className: "dy-h-3.5 dy-w-3.5 dy-animate-spin dy-border-2 dy-border-current dy-border-t-transparent dy-rounded-full" }) : /* @__PURE__ */ jsx(Save, { className: "dy-h-3.5 dy-w-3.5" })
8853
- })
8854
- ]
8855
- })]
8856
- }), /* @__PURE__ */ jsxs("div", {
8857
- className: "dy-animate-in dy-space-y-8 dy-pb-32",
8858
- children: [
8859
- !canUpdate && isEdit && /* @__PURE__ */ jsxs("div", {
8860
- className: "dy-p-4 dy-rounded-lg dy-bg-amber-50 dy-border dy-border-amber-200 dy-text-amber-800 dy-text-sm dy-flex dy-items-center dy-gap-3",
8861
- children: [/* @__PURE__ */ jsx(Archive, { className: "dy-h-4 dy-w-4" }), "You have read-only access to this collection."]
8862
- }),
8863
- schema.upload && (previewData || entry) && ((previewData || entry).filename || (previewData || entry).url) && /* @__PURE__ */ jsxs("div", {
8864
- className: "dy-p-5 dy-rounded-2xl dy-border dy-border-border/60 dy-bg-muted/10 dy-space-y-4",
8865
- children: [/* @__PURE__ */ jsx("div", {
8866
- className: "dy-flex dy-items-start dy-gap-4",
8867
- children: /* @__PURE__ */ jsxs("div", {
8868
- className: "dy-flex-1 dy-space-y-1",
8869
- children: [
8870
- /* @__PURE__ */ jsx("p", {
8871
- className: "dy-text-[10px] dy-font-bold dy-uppercase dy-tracking-widest dy-text-muted-foreground/80",
8872
- children: "Uploaded File"
8873
- }),
8874
- /* @__PURE__ */ jsx("h3", {
8875
- className: "dy-text-sm dy-font-bold dy-text-foreground dy-break-all",
8876
- children: (previewData || entry).filename
8877
- }),
8878
- /* @__PURE__ */ jsxs("p", {
8879
- className: "dy-text-xs dy-text-muted-foreground",
8880
- children: [
8881
- (previewData || entry).filesize ? `${(((previewData || entry).filesize || 0) / 1024).toFixed(1)} KB` : "N/A Size",
8882
- " • ",
8883
- (previewData || entry).mimeType || "Unknown Type"
8884
- ]
8885
- })
8886
- ]
9211
+ className: "dy-h-8 dy-w-8 dy-rounded-lg hover:dy-bg-muted dy-shrink-0",
9212
+ onClick: () => navigate(`/collections/${slug}`),
9213
+ children: /* @__PURE__ */ jsx(ChevronLeft, { className: "dy-h-4 dy-w-4" })
9214
+ }), /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsxs("div", {
9215
+ className: "dy-flex dy-items-center dy-gap-3",
9216
+ children: [/* @__PURE__ */ jsx("h1", {
9217
+ className: "dy-text-lg dy-font-serif dy-font-bold dy-tracking-tight dy-text-foreground dy-truncate",
9218
+ children: isEdit ? `Edit ${schema.label || schema.slug}` : `New ${schema.label || schema.slug}`
9219
+ }), hasStatus && !workflowConfig && /* @__PURE__ */ jsx(Badge, {
9220
+ className: cn("dy-px-2 dy-py-0 dy-rounded-full dy-text-[10px] dy-font-bold dy-uppercase dy-tracking-wider", currentStatus === "published" ? "dy-bg-emerald-100 dy-text-emerald-700 dy-border-emerald-200" : "dy-bg-amber-100 dy-text-amber-700 dy-border-amber-200"),
9221
+ variant: "outline",
9222
+ children: currentStatus === "published" ? "Live" : "Draft"
9223
+ })]
9224
+ }) })]
9225
+ }), /* @__PURE__ */ jsxs("div", {
9226
+ className: "dy-flex dy-items-center dy-gap-1.5 dy-bg-muted/20 dy-p-1 dy-rounded-xl dy-border dy-border-muted/30 dy-shadow-sm",
9227
+ children: [
9228
+ schema?.auth && isEdit && isAdminUser && !isSelf && entry?.email && /* @__PURE__ */ jsx(Button, {
9229
+ variant: "ghost",
9230
+ size: "icon",
9231
+ className: "dy-h-8 dy-w-8 dy-rounded-lg dy-text-muted-foreground hover:dy-bg-muted hover:dy-text-foreground dy-transition-all",
9232
+ onClick: handleSendResetLink,
9233
+ disabled: sendingReset,
9234
+ title: `Send password reset link to ${entry.email}`,
9235
+ children: sendingReset ? /* @__PURE__ */ jsx("div", { className: "dy-h-3.5 dy-w-3.5 dy-animate-spin dy-border-2 dy-border-current dy-border-t-transparent dy-rounded-full" }) : /* @__PURE__ */ jsx(Mail, { className: "dy-h-3.5 dy-w-3.5" })
9236
+ }),
9237
+ previewUrl && /* @__PURE__ */ jsx(Button, {
9238
+ variant: "ghost",
9239
+ size: "icon",
9240
+ className: cn("dy-h-8 dy-w-8 dy-rounded-lg dy-transition-all", showPreview ? "dy-bg-background dy-text-primary dy-shadow-sm hover:dy-bg-background" : "dy-text-muted-foreground hover:dy-bg-muted hover:dy-text-foreground"),
9241
+ onClick: () => setShowPreview(!showPreview),
9242
+ title: showPreview ? "Hide Preview" : "Live Preview",
9243
+ children: showPreview ? /* @__PURE__ */ jsx(EyeOff, { className: "dy-h-3.5 dy-w-3.5" }) : /* @__PURE__ */ jsx(Eye, { className: "dy-h-3.5 dy-w-3.5" })
9244
+ }),
9245
+ /* @__PURE__ */ jsx(Button, {
9246
+ size: "icon",
9247
+ className: "dy-h-8 dy-w-8 dy-rounded-lg dy-bg-primary dy-text-primary-foreground hover:dy-bg-primary/90 dy-transition-all dy-shadow-sm",
9248
+ onClick: () => document.getElementById("dyrected-form-submit")?.click(),
9249
+ disabled: saveMutation.isPending || (isEdit ? !canUpdate : !canCreate),
9250
+ title: isEdit ? "Save Changes (⌘S)" : "Create Entry (⌘S)",
9251
+ children: saveMutation.isPending ? /* @__PURE__ */ jsx("div", { className: "dy-h-3.5 dy-w-3.5 dy-animate-spin dy-border-2 dy-border-current dy-border-t-transparent dy-rounded-full" }) : /* @__PURE__ */ jsx(Save, { className: "dy-h-3.5 dy-w-3.5" })
8887
9252
  })
8888
- }), /* @__PURE__ */ jsx("div", {
8889
- className: "dy-rounded-xl dy-overflow-hidden dy-border dy-border-border/40 dy-bg-checkered dy-flex dy-items-center dy-justify-center dy-p-4 dy-min-h-[160px] dy-max-h-[320px] dy-relative",
8890
- children: (previewData || entry).mimeType?.startsWith("image/") ? /* @__PURE__ */ jsx("img", {
8891
- src: getMediaUrl(previewData || entry, client.getBaseUrl()),
8892
- alt: (previewData || entry).alt || (previewData || entry).filename,
8893
- className: "dy-object-contain dy-max-h-[280px] dy-rounded-lg dy-shadow-sm"
8894
- }) : (previewData || entry).mimeType?.startsWith("audio/") ? /* @__PURE__ */ jsxs("div", {
8895
- className: "dy-w-full dy-max-w-md dy-bg-card dy-p-4 dy-rounded-xl dy-border dy-border-border/60 dy-shadow-sm dy-flex dy-flex-col dy-gap-3 dy-items-center",
8896
- children: [/* @__PURE__ */ jsx("div", {
8897
- className: "dy-h-12 dy-w-12 dy-rounded-full dy-bg-primary/10 dy-flex dy-items-center dy-justify-center dy-text-primary",
8898
- children: /* @__PURE__ */ jsx(Volume2, { className: "dy-h-5 dy-w-5" })
8899
- }), /* @__PURE__ */ jsx("audio", {
9253
+ ]
9254
+ })]
9255
+ }), /* @__PURE__ */ jsxs("div", {
9256
+ className: "dy-animate-in dy-space-y-8 dy-pb-32",
9257
+ children: [
9258
+ !canUpdate && isEdit && /* @__PURE__ */ jsxs("div", {
9259
+ className: "dy-p-4 dy-rounded-lg dy-bg-amber-50 dy-border dy-border-amber-200 dy-text-amber-800 dy-text-sm dy-flex dy-items-center dy-gap-3",
9260
+ children: [/* @__PURE__ */ jsx(Archive, { className: "dy-h-4 dy-w-4" }), "You have read-only access to this collection."]
9261
+ }),
9262
+ schema.upload && (previewData || entry) && ((previewData || entry).filename || (previewData || entry).url) && /* @__PURE__ */ jsxs("div", {
9263
+ className: "dy-p-5 dy-rounded-2xl dy-border dy-border-border/60 dy-bg-muted/10 dy-space-y-4",
9264
+ children: [/* @__PURE__ */ jsx("div", {
9265
+ className: "dy-flex dy-items-start dy-gap-4",
9266
+ children: /* @__PURE__ */ jsxs("div", {
9267
+ className: "dy-flex-1 dy-space-y-1",
9268
+ children: [
9269
+ /* @__PURE__ */ jsx("p", {
9270
+ className: "dy-text-[10px] dy-font-bold dy-uppercase dy-tracking-widest dy-text-muted-foreground/80",
9271
+ children: "Uploaded File"
9272
+ }),
9273
+ /* @__PURE__ */ jsx("h3", {
9274
+ className: "dy-text-sm dy-font-bold dy-text-foreground dy-break-all",
9275
+ children: (previewData || entry).filename
9276
+ }),
9277
+ /* @__PURE__ */ jsxs("p", {
9278
+ className: "dy-text-xs dy-text-muted-foreground",
9279
+ children: [
9280
+ (previewData || entry).filesize ? `${(((previewData || entry).filesize || 0) / 1024).toFixed(1)} KB` : "N/A Size",
9281
+ " • ",
9282
+ (previewData || entry).mimeType || "Unknown Type"
9283
+ ]
9284
+ })
9285
+ ]
9286
+ })
9287
+ }), /* @__PURE__ */ jsx("div", {
9288
+ className: "dy-rounded-xl dy-overflow-hidden dy-border dy-border-border/40 dy-bg-checkered dy-flex dy-items-center dy-justify-center dy-p-4 dy-min-h-[160px] dy-max-h-[320px] dy-relative",
9289
+ children: (previewData || entry).mimeType?.startsWith("image/") ? /* @__PURE__ */ jsx("img", {
9290
+ src: getMediaUrl(previewData || entry, client.getBaseUrl()),
9291
+ alt: (previewData || entry).alt || (previewData || entry).filename,
9292
+ className: "dy-object-contain dy-max-h-[280px] dy-rounded-lg dy-shadow-sm"
9293
+ }) : (previewData || entry).mimeType?.startsWith("audio/") ? /* @__PURE__ */ jsxs("div", {
9294
+ className: "dy-w-full dy-max-w-md dy-bg-card dy-p-4 dy-rounded-xl dy-border dy-border-border/60 dy-shadow-sm dy-flex dy-flex-col dy-gap-3 dy-items-center",
9295
+ children: [/* @__PURE__ */ jsx("div", {
9296
+ className: "dy-h-12 dy-w-12 dy-rounded-full dy-bg-primary/10 dy-flex dy-items-center dy-justify-center dy-text-primary",
9297
+ children: /* @__PURE__ */ jsx(Volume2, { className: "dy-h-5 dy-w-5" })
9298
+ }), /* @__PURE__ */ jsx("audio", {
9299
+ src: getMediaUrl(previewData || entry, client.getBaseUrl()),
9300
+ controls: true,
9301
+ className: "dy-w-full"
9302
+ })]
9303
+ }) : (previewData || entry).mimeType?.startsWith("video/") ? /* @__PURE__ */ jsx("video", {
8900
9304
  src: getMediaUrl(previewData || entry, client.getBaseUrl()),
8901
9305
  controls: true,
8902
- className: "dy-w-full"
8903
- })]
8904
- }) : (previewData || entry).mimeType?.startsWith("video/") ? /* @__PURE__ */ jsx("video", {
8905
- src: getMediaUrl(previewData || entry, client.getBaseUrl()),
8906
- controls: true,
8907
- className: "dy-max-h-[280px] dy-w-full dy-rounded-lg dy-shadow-sm"
8908
- }) : /* @__PURE__ */ jsxs("div", {
8909
- className: "dy-flex dy-flex-col dy-items-center dy-gap-2 dy-p-6",
8910
- children: [/* @__PURE__ */ jsx("div", {
8911
- className: "dy-h-16 dy-w-16 dy-rounded-2xl dy-bg-primary/10 dy-flex dy-items-center dy-justify-center",
8912
- children: /* @__PURE__ */ jsx(FileIcon, { className: "dy-h-8 dy-w-8 dy-text-primary" })
8913
- }), /* @__PURE__ */ jsx("span", {
8914
- className: "dy-text-xs dy-font-medium dy-text-muted-foreground",
8915
- children: "Preview not available"
8916
- })]
8917
- })
8918
- })]
8919
- }),
8920
- (() => {
8921
- let fields = [...schema.fields];
8922
- if (schema.upload) {
8923
- const hasAlt = fields.some((f) => f.name === "alt");
8924
- const hasCaption = fields.some((f) => f.name === "caption");
8925
- const mediaFields = [];
8926
- if (!hasAlt) mediaFields.push({
8927
- name: "alt",
8928
- type: "text",
8929
- label: "Alt Text",
8930
- admin: { description: "Describe the image for accessibility/screen readers." }
9306
+ className: "dy-max-h-[280px] dy-w-full dy-rounded-lg dy-shadow-sm"
9307
+ }) : /* @__PURE__ */ jsxs("div", {
9308
+ className: "dy-flex dy-flex-col dy-items-center dy-gap-2 dy-p-6",
9309
+ children: [/* @__PURE__ */ jsx("div", {
9310
+ className: "dy-h-16 dy-w-16 dy-rounded-2xl dy-bg-primary/10 dy-flex dy-items-center dy-justify-center",
9311
+ children: /* @__PURE__ */ jsx(FileIcon, { className: "dy-h-8 dy-w-8 dy-text-primary" })
9312
+ }), /* @__PURE__ */ jsx("span", {
9313
+ className: "dy-text-xs dy-font-medium dy-text-muted-foreground",
9314
+ children: "Preview not available"
9315
+ })]
9316
+ })
9317
+ })]
9318
+ }),
9319
+ (() => {
9320
+ let fields = [...schema.fields];
9321
+ if (schema.upload) {
9322
+ const hasAlt = fields.some((f) => f.name === "alt");
9323
+ const hasCaption = fields.some((f) => f.name === "caption");
9324
+ const mediaFields = [];
9325
+ if (!hasAlt) mediaFields.push({
9326
+ name: "alt",
9327
+ type: "text",
9328
+ label: "Alt Text",
9329
+ admin: { description: "Describe the image for accessibility/screen readers." }
9330
+ });
9331
+ if (!hasCaption) mediaFields.push({
9332
+ name: "caption",
9333
+ type: "textarea",
9334
+ label: "Caption",
9335
+ admin: { description: "Add a caption/description for this media file." }
9336
+ });
9337
+ fields = [...mediaFields, ...fields];
9338
+ }
9339
+ const queryParamsDefaults = {};
9340
+ if (!isEdit) searchParams.forEach((value, key) => {
9341
+ queryParamsDefaults[key] = value;
8931
9342
  });
8932
- if (!hasCaption) mediaFields.push({
8933
- name: "caption",
8934
- type: "textarea",
8935
- label: "Caption",
8936
- admin: { description: "Add a caption/description for this media file." }
9343
+ return /* @__PURE__ */ jsx(FormEngine, {
9344
+ collection: slug,
9345
+ fields,
9346
+ defaultValues: isEdit ? entry : {
9347
+ ...queryParamsDefaults,
9348
+ ...entry
9349
+ },
9350
+ onSubmit: (data) => saveMutation.mutate(data),
9351
+ onDataChange: (newData) => setPreviewData({
9352
+ ...entry,
9353
+ ...newData
9354
+ }),
9355
+ onChange: (dirty) => setIsDirty(dirty),
9356
+ isLoading: saveMutation.isPending,
9357
+ submitLabel: isEdit ? "Save Changes" : "Create Entry",
9358
+ readOnly: isEdit ? !canUpdate : !canCreate,
9359
+ passwordChangeMode: isEdit ? passwordChangeMode : null,
9360
+ documentId: id
8937
9361
  });
8938
- fields = [...mediaFields, ...fields];
8939
- }
8940
- const queryParamsDefaults = {};
8941
- if (!isEdit) searchParams.forEach((value, key) => {
8942
- queryParamsDefaults[key] = value;
8943
- });
8944
- return /* @__PURE__ */ jsx(FormEngine, {
8945
- collection: slug,
8946
- fields,
8947
- defaultValues: isEdit ? entry : {
8948
- ...queryParamsDefaults,
8949
- ...entry
8950
- },
8951
- onSubmit: (data) => saveMutation.mutate(data),
8952
- onDataChange: (newData) => setPreviewData({
8953
- ...entry,
8954
- ...newData
8955
- }),
8956
- onChange: (dirty) => setIsDirty(dirty),
8957
- isLoading: saveMutation.isPending,
8958
- submitLabel: isEdit ? "Save Changes" : "Create Entry",
8959
- readOnly: isEdit ? !canUpdate : !canCreate,
8960
- passwordChangeMode: isEdit ? passwordChangeMode : null,
8961
- documentId: id
8962
- });
8963
- })(),
8964
- /* @__PURE__ */ jsx("button", {
8965
- id: "dyrected-form-submit",
8966
- type: "submit",
8967
- form: "dyrected-edit-form",
8968
- className: "dy-hidden"
8969
- }),
8970
- (isDirty || !isEdit) && (isEdit ? canUpdate : canCreate) && /* @__PURE__ */ jsx("div", {
8971
- className: "dy-sticky dy-bottom-0 dy-left-0 dy-right-0 dy-z-20 dy-pointer-events-none",
8972
- children: /* @__PURE__ */ jsx("div", {
8973
- className: "dy-pointer-events-auto dy-mx-auto dy-max-w-2xl dy-px-4 dy-pb-6",
9362
+ })(),
9363
+ /* @__PURE__ */ jsx("button", {
9364
+ id: "dyrected-form-submit",
9365
+ type: "submit",
9366
+ form: "dyrected-edit-form",
9367
+ className: "dy-hidden"
9368
+ }),
9369
+ (isDirty || !isEdit) && (isEdit ? canUpdate : canCreate) && /* @__PURE__ */ jsx("div", {
9370
+ className: "dy-sticky dy-bottom-0 dy-left-0 dy-right-0 dy-z-20 dy-pointer-events-none",
9371
+ children: /* @__PURE__ */ jsx("div", {
9372
+ className: "dy-pointer-events-auto dy-mx-auto dy-max-w-2xl dy-px-4 dy-pb-6",
9373
+ children: /* @__PURE__ */ jsxs("div", {
9374
+ className: "dy-flex dy-items-center dy-justify-between dy-gap-3 dy-rounded-2xl dy-border dy-border-border/50 dy-bg-background/80 dy-backdrop-blur-xl dy-px-4 dy-py-3 dy-shadow-xl dy-shadow-black/10 dy-animate-in dy-slide-in-from-bottom-2 dy-fade-in dy-duration-200",
9375
+ children: [/* @__PURE__ */ jsx("p", {
9376
+ className: "dy-text-sm dy-font-medium dy-text-muted-foreground",
9377
+ children: isEdit ? "You have unsaved changes" : `Create a new ${schema.label || schema.slug}`
9378
+ }), /* @__PURE__ */ jsx(Button, {
9379
+ size: "sm",
9380
+ className: "dy-h-9 dy-px-5 dy-rounded-xl dy-font-bold dy-bg-primary dy-text-primary-foreground hover:dy-bg-primary/90 dy-shadow-sm dy-shrink-0",
9381
+ onClick: () => document.getElementById("dyrected-form-submit")?.click(),
9382
+ disabled: saveMutation.isPending,
9383
+ children: saveMutation.isPending ? /* @__PURE__ */ jsxs("div", {
9384
+ className: "dy-flex dy-items-center dy-gap-2",
9385
+ children: [/* @__PURE__ */ jsx("div", { className: "dy-h-3.5 dy-w-3.5 dy-animate-spin dy-border-2 dy-border-current dy-border-t-transparent dy-rounded-full" }), "Saving..."]
9386
+ }) : /* @__PURE__ */ jsxs("div", {
9387
+ className: "dy-flex dy-items-center dy-gap-2",
9388
+ children: [/* @__PURE__ */ jsx(Save, { className: "dy-h-3.5 dy-w-3.5" }), isEdit ? "Save Changes" : "Create Entry"]
9389
+ })
9390
+ })]
9391
+ })
9392
+ })
9393
+ }),
9394
+ /* @__PURE__ */ jsx("div", {
9395
+ className: "dy-pt-8 dy-border-t dy-border-border/40",
8974
9396
  children: /* @__PURE__ */ jsxs("div", {
8975
- className: "dy-flex dy-items-center dy-justify-between dy-gap-3 dy-rounded-2xl dy-border dy-border-border/50 dy-bg-background/80 dy-backdrop-blur-xl dy-px-4 dy-py-3 dy-shadow-xl dy-shadow-black/10 dy-animate-in dy-slide-in-from-bottom-2 dy-fade-in dy-duration-200",
8976
- children: [/* @__PURE__ */ jsx("p", {
8977
- className: "dy-text-sm dy-font-medium dy-text-muted-foreground",
8978
- children: isEdit ? "You have unsaved changes" : `Create a new ${schema.label || schema.slug}`
8979
- }), /* @__PURE__ */ jsx(Button, {
8980
- size: "sm",
8981
- className: "dy-h-9 dy-px-5 dy-rounded-xl dy-font-bold dy-bg-primary dy-text-primary-foreground hover:dy-bg-primary/90 dy-shadow-sm dy-shrink-0",
8982
- onClick: () => document.getElementById("dyrected-form-submit")?.click(),
8983
- disabled: saveMutation.isPending,
8984
- children: saveMutation.isPending ? /* @__PURE__ */ jsxs("div", {
8985
- className: "dy-flex dy-items-center dy-gap-2",
8986
- children: [/* @__PURE__ */ jsx("div", { className: "dy-h-3.5 dy-w-3.5 dy-animate-spin dy-border-2 dy-border-current dy-border-t-transparent dy-rounded-full" }), "Saving..."]
8987
- }) : /* @__PURE__ */ jsxs("div", {
8988
- className: "dy-flex dy-items-center dy-gap-2",
8989
- children: [/* @__PURE__ */ jsx(Save, { className: "dy-h-3.5 dy-w-3.5" }), isEdit ? "Save Changes" : "Create Entry"]
8990
- })
8991
- })]
9397
+ className: "dy-flex dy-flex-wrap dy-items-center dy-gap-x-8 dy-gap-y-4",
9398
+ children: [/* @__PURE__ */ jsxs("div", {
9399
+ className: "dy-space-y-1",
9400
+ children: [/* @__PURE__ */ jsx("p", {
9401
+ className: "dy-text-[10px] dy-font-bold dy-uppercase dy-tracking-wider dy-text-muted-foreground/40 dy-text-nowrap",
9402
+ children: "Document ID"
9403
+ }), /* @__PURE__ */ jsx("code", {
9404
+ className: "dy-text-xs dy-font-mono dy-text-muted-foreground/80 dy-select-all",
9405
+ children: isEdit ? id : "Pending..."
9406
+ })]
9407
+ }), isEdit && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("div", {
9408
+ className: "dy-space-y-1",
9409
+ children: [/* @__PURE__ */ jsx("p", {
9410
+ className: "dy-text-[10px] dy-font-bold dy-uppercase dy-tracking-wider dy-text-muted-foreground/40 dy-text-nowrap",
9411
+ children: "Created At"
9412
+ }), /* @__PURE__ */ jsx("p", {
9413
+ className: "dy-text-xs dy-font-medium dy-text-muted-foreground/80",
9414
+ children: entry?.createdAt ? new Date(entry.createdAt).toLocaleString() : "N/A"
9415
+ })]
9416
+ }), /* @__PURE__ */ jsxs("div", {
9417
+ className: "dy-space-y-1",
9418
+ children: [/* @__PURE__ */ jsx("p", {
9419
+ className: "dy-text-[10px] dy-font-bold dy-uppercase dy-tracking-wider dy-text-muted-foreground/40 dy-text-nowrap",
9420
+ children: "Last Updated"
9421
+ }), /* @__PURE__ */ jsx("p", {
9422
+ className: "dy-text-xs dy-font-medium dy-text-muted-foreground/80",
9423
+ children: entry?.updatedAt ? new Date(entry.updatedAt).toLocaleString() : "N/A"
9424
+ })]
9425
+ })] })]
8992
9426
  })
8993
9427
  })
8994
- }),
8995
- /* @__PURE__ */ jsx("div", {
8996
- className: "dy-pt-8 dy-border-t dy-border-border/40",
8997
- children: /* @__PURE__ */ jsxs("div", {
8998
- className: "dy-flex dy-flex-wrap dy-items-center dy-gap-x-8 dy-gap-y-4",
8999
- children: [/* @__PURE__ */ jsxs("div", {
9000
- className: "dy-space-y-1",
9001
- children: [/* @__PURE__ */ jsx("p", {
9002
- className: "dy-text-[10px] dy-font-bold dy-uppercase dy-tracking-wider dy-text-muted-foreground/40 dy-text-nowrap",
9003
- children: "Document ID"
9004
- }), /* @__PURE__ */ jsx("code", {
9005
- className: "dy-text-xs dy-font-mono dy-text-muted-foreground/80 dy-select-all",
9006
- children: isEdit ? id : "Pending..."
9007
- })]
9008
- }), isEdit && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("div", {
9009
- className: "dy-space-y-1",
9010
- children: [/* @__PURE__ */ jsx("p", {
9011
- className: "dy-text-[10px] dy-font-bold dy-uppercase dy-tracking-wider dy-text-muted-foreground/40 dy-text-nowrap",
9012
- children: "Created At"
9013
- }), /* @__PURE__ */ jsx("p", {
9014
- className: "dy-text-xs dy-font-medium dy-text-muted-foreground/80",
9015
- children: entry?.createdAt ? new Date(entry.createdAt).toLocaleString() : "N/A"
9016
- })]
9017
- }), /* @__PURE__ */ jsxs("div", {
9018
- className: "dy-space-y-1",
9019
- children: [/* @__PURE__ */ jsx("p", {
9020
- className: "dy-text-[10px] dy-font-bold dy-uppercase dy-tracking-wider dy-text-muted-foreground/40 dy-text-nowrap",
9021
- children: "Last Updated"
9022
- }), /* @__PURE__ */ jsx("p", {
9023
- className: "dy-text-xs dy-font-medium dy-text-muted-foreground/80",
9024
- children: entry?.updatedAt ? new Date(entry.updatedAt).toLocaleString() : "N/A"
9025
- })]
9026
- })] })]
9027
- })
9028
- })
9029
- ]
9030
- })]
9031
- })
9032
- }), previewUrl && /* @__PURE__ */ jsx("div", {
9033
- className: cn("dy-hidden lg:dy-block dy-border-l dy-border-border/50 dy-bg-muted/5 dy-transition-all dy-duration-500 dy-overflow-hidden", showPreview ? "dy-flex-1 dy-opacity-100" : "dy-w-0 dy-opacity-0 dy-border-l-0"),
9034
- children: /* @__PURE__ */ jsx("div", {
9035
- className: "dy-h-full",
9036
- children: /* @__PURE__ */ jsx(LivePreviewPane, {
9037
- previewUrl,
9038
- data: previewData || entry,
9039
- mode: schema.admin?.previewMode,
9040
- onFieldFocus: handleFieldFocus
9428
+ ]
9429
+ })]
9430
+ })
9431
+ }),
9432
+ workflowConfig && isEdit && workflowMeta && !showPreview && /* @__PURE__ */ jsx("div", {
9433
+ className: "dy-hidden lg:dy-block dy-w-72 dy-shrink-0 dy-border-l dy-border-border/50 dy-bg-muted/5 dy-px-4 dy-py-8 dy-overflow-y-auto",
9434
+ children: /* @__PURE__ */ jsx(WorkflowPanel, {
9435
+ collection: slug,
9436
+ documentId: id,
9437
+ workflowMeta,
9438
+ workflowConfig
9439
+ })
9440
+ }),
9441
+ previewUrl && /* @__PURE__ */ jsx("div", {
9442
+ className: cn("dy-hidden lg:dy-block dy-border-l dy-border-border/50 dy-bg-muted/5 dy-transition-all dy-duration-500 dy-overflow-hidden", showPreview ? "dy-flex-1 dy-opacity-100" : "dy-w-0 dy-opacity-0 dy-border-l-0"),
9443
+ children: /* @__PURE__ */ jsx("div", {
9444
+ className: "dy-h-full",
9445
+ children: /* @__PURE__ */ jsx(LivePreviewPane, {
9446
+ previewUrl,
9447
+ data: previewData || entry,
9448
+ mode: schema.admin?.previewMode,
9449
+ onFieldFocus: handleFieldFocus
9450
+ })
9041
9451
  })
9042
9452
  })
9043
- })]
9453
+ ]
9044
9454
  });
9045
9455
  }
9046
9456
  //#endregion
@@ -9922,169 +10332,178 @@ function GlobalEditorPage() {
9922
10332
  }
9923
10333
  //#endregion
9924
10334
  //#region src/pages/setup/setup-prompt.tsx
9925
- function techStackToTab(ts) {
9926
- if (ts === "nextjs") return "next";
9927
- if (ts === "nuxt") return "nuxt";
9928
- if (ts === "react") return "react";
9929
- if (ts === "vue") return "vue";
9930
- return "next";
10335
+ var GUIDE_URL = "https://www.dyrected.com/guide";
10336
+ var DOCS_URL = "https://docs.dyrected.com";
10337
+ function normalizeTechStack(techStack) {
10338
+ if (!techStack) return void 0;
10339
+ if (techStack === "next") return "nextjs";
10340
+ if (techStack === "nuxtjs") return "nuxt";
10341
+ return techStack.toLowerCase();
10342
+ }
10343
+ function buildGuideUrl(config) {
10344
+ const url = new URL(GUIDE_URL);
10345
+ const stack = normalizeTechStack(config.defaultTechStack);
10346
+ url.searchParams.set("source", "admin");
10347
+ if (stack) url.searchParams.set("stack", stack);
10348
+ if (config.siteId) url.searchParams.set("siteId", config.siteId);
10349
+ if (config.baseUrl) url.searchParams.set("endpoint", config.baseUrl);
10350
+ return url.toString();
9931
10351
  }
9932
10352
  function SetupPromptUI({ config }) {
9933
- const [copied, setCopied] = useState(null);
9934
- const [isFresh, setIsFresh] = useState(false);
9935
- const [activeTab, setActiveTab] = useState(() => techStackToTab(config.defaultTechStack));
9936
- const promptText = isFresh ? generateFreshSetupPrompt(activeTab, config) : generateAIPrompt(activeTab, config);
9937
- const copyToClipboard = (text, id) => {
9938
- navigator.clipboard.writeText(text);
9939
- setCopied(id);
9940
- setTimeout(() => setCopied(null), 2e3);
9941
- };
10353
+ const guideUrl = buildGuideUrl(config);
10354
+ const stack = normalizeTechStack(config.defaultTechStack);
9942
10355
  return /* @__PURE__ */ jsxs("div", {
9943
- className: "dy-max-w-4xl dy-mx-auto dy-space-y-8 dy-py-8 dy-animate-in dy-slide-in-from-bottom-4 dy-duration-700",
9944
- children: [
9945
- /* @__PURE__ */ jsxs("div", {
9946
- className: "dy-text-center dy-space-y-4",
9947
- children: [
9948
- /* @__PURE__ */ jsxs("div", {
9949
- className: "dy-inline-flex dy-items-center dy-gap-2 dy-px-3 dy-py-1 dy-rounded-full dy-bg-primary/10 dy-text-primary dy-text-xs dy-font-bold dy-uppercase dy-tracking-wider dy-mb-2",
9950
- children: [/* @__PURE__ */ jsx(Sparkles, { className: "dy-h-3 dy-w-3" }), "Integration Guide"]
9951
- }),
9952
- /* @__PURE__ */ jsx("h1", {
9953
- className: "dy-text-2xl dy-font-semibold dy-tracking-tight lg:dy-text-5xl dy-text-foreground",
9954
- children: "Connect Your Application"
9955
- }),
9956
- /* @__PURE__ */ jsx("p", {
9957
- className: "dy-text-lg dy-text-muted-foreground dy-max-w-2xl dy-mx-auto",
9958
- children: isFresh ? "Get a conversational walkthrough to set up Dyrected from scratch." : "Use the AI prompt below to set up your frontend automatically, or follow the steps manually."
9959
- })
9960
- ]
9961
- }),
9962
- /* @__PURE__ */ jsxs("div", {
9963
- className: "dy-grid dy-gap-6",
9964
- children: [/* @__PURE__ */ jsxs("section", {
9965
- className: "dy-rounded-2xl dy-border dy-bg-card dy-overflow-hidden dy-shadow-xl",
9966
- children: [/* @__PURE__ */ jsx("div", {
9967
- className: "dy-p-4 dy-border-b dy-bg-muted/30",
9968
- children: /* @__PURE__ */ jsxs("h3", {
9969
- className: "dy-text-lg dy-font-semibold dy-flex dy-items-center dy-gap-2",
9970
- children: [/* @__PURE__ */ jsx(ShieldCheck, { className: "dy-h-5 dy-w-5 dy-text-primary" }), "Site Credentials"]
9971
- })
9972
- }), /* @__PURE__ */ jsx("div", {
9973
- className: "dy-p-4",
9974
- children: /* @__PURE__ */ jsx("div", {
9975
- className: "dy-grid dy-gap-4 sm:dy-grid-cols-2 lg:dy-grid-cols-3",
9976
- children: [
9977
- {
9978
- label: "Site ID",
9979
- value: config.siteId,
9980
- id: "siteId"
9981
- },
9982
- {
9983
- label: "API Key",
9984
- value: config.apiKey,
9985
- id: "apiKey"
9986
- },
9987
- {
9988
- label: "Base URL",
9989
- value: config.baseUrl,
9990
- id: "baseUrl"
9991
- }
9992
- ].map((item) => /* @__PURE__ */ jsxs("div", {
9993
- className: "dy-space-y-2",
9994
- children: [/* @__PURE__ */ jsx("label", {
9995
- className: "dy-text-xs dy-font-bold dy-text-muted-foreground dy-uppercase",
9996
- children: item.label
9997
- }), /* @__PURE__ */ jsxs("div", {
9998
- className: "dy-relative dy-group",
9999
- children: [/* @__PURE__ */ jsx("div", {
10000
- className: "dy-p-3 dy-pr-10 dy-rounded-lg dy-bg-muted dy-text-sm dy-font-mono dy-truncate dy-border dy-border-transparent dy-group-hover:dy-border-primary/20 dy-transition-all",
10001
- children: item.value
10002
- }), /* @__PURE__ */ jsx("button", {
10003
- onClick: () => copyToClipboard(item.value || "", item.id),
10004
- className: "dy-absolute dy-right-2 dy-top-1/2 dy--translate-y-1/2 dy-p-1.5 dy-rounded-md hover:dy-bg-background dy-transition-colors dy-text-muted-foreground",
10005
- children: copied === item.id ? /* @__PURE__ */ jsx(Check, { className: "dy-h-4 dy-w-4 dy-text-green-500" }) : /* @__PURE__ */ jsx(Copy, { className: "dy-h-4 dy-w-4" })
10006
- })]
10007
- })]
10008
- }, item.id))
10009
- })
10010
- })]
10011
- }), /* @__PURE__ */ jsxs("section", {
10012
- className: "dy-rounded-2xl dy-border dy-bg-background dy-overflow-hidden dy-shadow-xl dy-ring-1 dy-ring-primary/20",
10356
+ className: "dy-mx-auto dy-max-w-5xl dy-py-6 lg:dy-py-10",
10357
+ children: [/* @__PURE__ */ jsxs("section", {
10358
+ className: "dy-relative dy-overflow-hidden dy-rounded-[28px] dy-border dy-border-border dy-bg-card dy-text-card-foreground dy-shadow-2xl",
10359
+ children: [
10360
+ /* @__PURE__ */ jsx("div", {
10361
+ className: "dy-absolute dy-inset-y-0 dy-right-0 dy-w-1/3 dy-bg-primary",
10362
+ "aria-hidden": "true"
10363
+ }),
10364
+ /* @__PURE__ */ jsx("div", {
10365
+ className: "dy-absolute dy-inset-y-0 dy-right-[12%] dy-w-40 dy-skew-x-[-12deg] dy-bg-card",
10366
+ "aria-hidden": "true"
10367
+ }),
10368
+ /* @__PURE__ */ jsxs("div", {
10369
+ className: "dy-relative dy-grid dy-min-h-[340px] dy-gap-10 dy-p-7 sm:dy-p-10 lg:dy-grid-cols-[1.35fr_0.65fr] lg:dy-p-12",
10013
10370
  children: [/* @__PURE__ */ jsxs("div", {
10014
- className: "dy-p-6 dy-border-b dy-bg-primary/5 dy-flex dy-items-center dy-justify-between dy-gap-4 dy-flex-wrap",
10371
+ className: "dy-flex dy-flex-col dy-justify-between dy-gap-12",
10015
10372
  children: [/* @__PURE__ */ jsxs("div", {
10016
- className: "dy-space-y-3",
10017
- children: [
10018
- /* @__PURE__ */ jsxs("h3", {
10019
- className: "dy-text-lg dy-font-semibold dy-flex dy-items-center dy-gap-2",
10020
- children: [/* @__PURE__ */ jsx(Sparkles, { className: "dy-h-5 dy-w-5 dy-text-primary dy-animate-pulse" }), "AI Integration Prompt"]
10021
- }),
10022
- /* @__PURE__ */ jsx("div", {
10023
- className: "dy-flex dy-gap-2 dy-bg-muted/50 dy-p-1 dy-rounded-lg dy-w-fit",
10373
+ className: "dy-space-y-6",
10374
+ children: [/* @__PURE__ */ jsxs("div", {
10375
+ className: "dy-inline-flex dy-items-center dy-gap-2 dy-rounded-full dy-border dy-border-border dy-bg-muted/60 dy-px-3 dy-py-1.5 dy-text-[11px] dy-font-bold dy-uppercase dy-tracking-[0.14em] dy-text-muted-foreground",
10376
+ children: [/* @__PURE__ */ jsx(Sparkles, { className: "dy-h-3.5 dy-w-3.5 dy-text-primary" }), "Dyrected setup"]
10377
+ }), /* @__PURE__ */ jsxs("div", {
10378
+ className: "dy-max-w-2xl dy-space-y-4",
10379
+ children: [/* @__PURE__ */ jsx("h1", {
10380
+ className: "dy-font-serif dy-text-4xl dy-font-bold dy-leading-[0.98] dy-tracking-tight sm:dy-text-5xl lg:dy-text-6xl",
10381
+ children: "Let the guide do the heavy lifting."
10382
+ }), /* @__PURE__ */ jsx("p", {
10383
+ className: "dy-max-w-xl dy-text-base dy-leading-7 dy-text-muted-foreground sm:dy-text-lg",
10384
+ children: "Get a guided path tailored to your project, whether you are building with an AI coding tool or wiring up the SDK yourself."
10385
+ })]
10386
+ })]
10387
+ }), /* @__PURE__ */ jsxs("div", {
10388
+ className: "dy-flex dy-flex-col dy-gap-3 sm:dy-flex-row sm:dy-items-center",
10389
+ children: [/* @__PURE__ */ jsx(Button, {
10390
+ asChild: true,
10391
+ size: "lg",
10392
+ className: "dy-h-12 dy-bg-primary dy-px-6 dy-text-primary-foreground hover:dy-bg-primary/90",
10393
+ children: /* @__PURE__ */ jsxs("a", {
10394
+ href: guideUrl,
10395
+ target: "_blank",
10396
+ rel: "noopener noreferrer",
10024
10397
  children: [
10025
- "next",
10026
- "nuxt",
10027
- "react",
10028
- "vue"
10029
- ].map((tab) => /* @__PURE__ */ jsx("button", {
10030
- onClick: () => setActiveTab(tab),
10031
- className: cn("dy-px-4 dy-py-1.5 dy-rounded-md dy-text-xs dy-font-medium dy-transition-all dy-capitalize", activeTab === tab ? "dy-bg-background dy-text-foreground dy-shadow-sm" : "dy-text-muted-foreground hover:dy-text-foreground"),
10032
- children: tab === "next" ? "Next.js" : tab === "nuxt" ? "Nuxt.js" : tab
10033
- }, tab))
10034
- }),
10398
+ /* @__PURE__ */ jsx(Compass, { className: "dy-h-4 dy-w-4" }),
10399
+ "Open guided setup",
10400
+ /* @__PURE__ */ jsx(ArrowUpRight, { className: "dy-h-4 dy-w-4" })
10401
+ ]
10402
+ })
10403
+ }), /* @__PURE__ */ jsx(Button, {
10404
+ asChild: true,
10405
+ size: "lg",
10406
+ variant: "ghost",
10407
+ className: "dy-h-12 dy-text-card-foreground hover:dy-bg-muted hover:dy-text-card-foreground",
10408
+ children: /* @__PURE__ */ jsxs("a", {
10409
+ href: DOCS_URL,
10410
+ target: "_blank",
10411
+ rel: "noopener noreferrer",
10412
+ children: [/* @__PURE__ */ jsx(BookOpen, { className: "dy-h-4 dy-w-4" }), "Browse developer docs"]
10413
+ })
10414
+ })]
10415
+ })]
10416
+ }), /* @__PURE__ */ jsx("div", {
10417
+ className: "dy-relative dy-flex dy-items-end lg:dy-justify-end",
10418
+ children: /* @__PURE__ */ jsxs("div", {
10419
+ className: "dy-w-full dy-max-w-sm dy-rounded-2xl dy-border dy-border-border dy-bg-background/90 dy-p-5 dy-text-foreground dy-shadow-lg dy-backdrop-blur-sm",
10420
+ children: [
10035
10421
  /* @__PURE__ */ jsxs("div", {
10036
- className: "dy-flex dy-gap-2 dy-bg-muted/50 dy-p-1 dy-rounded-lg dy-w-fit",
10037
- children: [/* @__PURE__ */ jsx("button", {
10038
- onClick: () => setIsFresh(false),
10039
- className: cn("dy-px-4 dy-py-1.5 dy-rounded-md dy-text-xs dy-font-medium dy-transition-all", !isFresh ? "dy-bg-background dy-text-foreground dy-shadow-sm" : "dy-text-muted-foreground hover:dy-text-foreground"),
10040
- children: "Existing Project"
10041
- }), /* @__PURE__ */ jsx("button", {
10042
- onClick: () => setIsFresh(true),
10043
- className: cn("dy-px-4 dy-py-1.5 dy-rounded-md dy-text-xs dy-font-medium dy-transition-all", isFresh ? "dy-bg-background dy-text-foreground dy-shadow-sm" : "dy-text-muted-foreground hover:dy-text-foreground"),
10044
- children: "Fresh Installation"
10422
+ className: "dy-mb-5 dy-flex dy-items-center dy-justify-between",
10423
+ children: [/* @__PURE__ */ jsx("span", {
10424
+ className: "dy-text-xs dy-font-bold dy-uppercase dy-tracking-[0.12em] dy-text-muted-foreground",
10425
+ children: "Context included"
10426
+ }), /* @__PURE__ */ jsx(Code2, { className: "dy-h-4 dy-w-4 dy-text-primary" })]
10427
+ }),
10428
+ /* @__PURE__ */ jsxs("dl", {
10429
+ className: "dy-space-y-4 dy-text-sm",
10430
+ children: [/* @__PURE__ */ jsxs("div", {
10431
+ className: "dy-flex dy-items-center dy-justify-between dy-gap-4",
10432
+ children: [/* @__PURE__ */ jsx("dt", {
10433
+ className: "dy-text-muted-foreground",
10434
+ children: "Tech stack"
10435
+ }), /* @__PURE__ */ jsx("dd", {
10436
+ className: "dy-font-mono dy-font-semibold dy-text-foreground",
10437
+ children: stack ?? "Choose in guide"
10438
+ })]
10439
+ }), /* @__PURE__ */ jsxs("div", {
10440
+ className: "dy-flex dy-items-center dy-justify-between dy-gap-4",
10441
+ children: [/* @__PURE__ */ jsx("dt", {
10442
+ className: "dy-text-muted-foreground",
10443
+ children: "Site"
10444
+ }), /* @__PURE__ */ jsx("dd", {
10445
+ className: "dy-max-w-[180px] dy-truncate dy-font-mono dy-font-semibold dy-text-foreground",
10446
+ children: config.siteId || "Not provided"
10447
+ })]
10045
10448
  })]
10046
10449
  }),
10047
- /* @__PURE__ */ jsx("p", {
10048
- className: "dy-text-sm dy-text-muted-foreground",
10049
- children: "Copy and paste this into your AI developer to handle everything automatically"
10450
+ /* @__PURE__ */ jsxs("div", {
10451
+ className: "dy-mt-5 dy-flex dy-items-start dy-gap-2 dy-border-t dy-border-border dy-pt-4 dy-text-xs dy-leading-5 dy-text-muted-foreground",
10452
+ children: [/* @__PURE__ */ jsx(ShieldCheck, { className: "dy-mt-0.5 dy-h-4 dy-w-4 dy-shrink-0 dy-text-primary" }), "API keys and authentication tokens never leave this admin page."]
10050
10453
  })
10051
10454
  ]
10052
- }), /* @__PURE__ */ jsx(Button, {
10053
- onClick: () => copyToClipboard(promptText, "ai-developer"),
10054
- className: "dy-relative dy-overflow-hidden dy-group dy-shrink-0",
10055
- children: /* @__PURE__ */ jsxs("div", {
10056
- className: "dy-flex dy-items-center dy-gap-2",
10057
- children: [copied === "ai-developer" ? /* @__PURE__ */ jsx(Check, { className: "dy-h-4 dy-w-4" }) : /* @__PURE__ */ jsx(Copy, { className: "dy-h-4 dy-w-4" }), copied === "ai-developer" ? "Copied!" : "Copy Full Prompt"]
10058
- })
10059
- })]
10060
- }), /* @__PURE__ */ jsx("div", {
10061
- className: "dy-p-6 dy-bg-slate-950 dy-text-slate-300 dy-font-mono dy-text-xs dy-leading-relaxed dy-max-h-[400px] dy-overflow-y-auto dy-scrollbar-thin dy-scrollbar-thumb-white/10",
10062
- children: /* @__PURE__ */ jsx("pre", {
10063
- className: "dy-whitespace-pre-wrap",
10064
- children: promptText
10065
10455
  })
10066
10456
  })]
10067
- })]
10068
- }),
10069
- /* @__PURE__ */ jsx("div", {
10070
- className: "dy-flex dy-justify-center dy-gap-4 dy-pt-4",
10071
- children: /* @__PURE__ */ jsx(Button, {
10072
- variant: "outline",
10073
- asChild: true,
10074
- children: /* @__PURE__ */ jsxs("a", {
10075
- href: `${config.baseUrl}/api/docs`,
10076
- target: "_blank",
10077
- rel: "noopener noreferrer",
10078
- className: "dy-flex dy-items-center dy-gap-2",
10079
- children: [
10080
- /* @__PURE__ */ jsx(Terminal, { className: "dy-h-4 dy-w-4" }),
10081
- "API Documentation",
10082
- /* @__PURE__ */ jsx(ExternalLink, { className: "dy-h-3 dy-w-3" })
10083
- ]
10084
- })
10085
10457
  })
10086
- })
10087
- ]
10458
+ ]
10459
+ }), /* @__PURE__ */ jsxs("div", {
10460
+ className: "dy-grid dy-gap-4 dy-px-1 dy-pt-5 md:dy-grid-cols-2",
10461
+ children: [/* @__PURE__ */ jsxs("a", {
10462
+ href: guideUrl,
10463
+ target: "_blank",
10464
+ rel: "noopener noreferrer",
10465
+ className: "dy-group dy-flex dy-items-start dy-gap-4 dy-rounded-xl dy-border dy-bg-card dy-p-5 dy-transition-colors hover:dy-border-primary/60 hover:dy-bg-primary/[0.04] focus-visible:dy-outline-none focus-visible:dy-ring-2 focus-visible:dy-ring-ring",
10466
+ children: [
10467
+ /* @__PURE__ */ jsx("div", {
10468
+ className: "dy-rounded-lg dy-bg-primary/15 dy-p-2.5 dy-text-foreground",
10469
+ children: /* @__PURE__ */ jsx(Sparkles, { className: "dy-h-5 dy-w-5" })
10470
+ }),
10471
+ /* @__PURE__ */ jsxs("div", {
10472
+ className: "dy-min-w-0 dy-flex-1",
10473
+ children: [/* @__PURE__ */ jsx("h2", {
10474
+ className: "dy-font-semibold dy-text-card-foreground",
10475
+ children: "Building with AI?"
10476
+ }), /* @__PURE__ */ jsx("p", {
10477
+ className: "dy-mt-1 dy-text-sm dy-leading-6 dy-text-muted-foreground",
10478
+ children: "The guide gives your coding agent the right context and walks you through each decision."
10479
+ })]
10480
+ }),
10481
+ /* @__PURE__ */ jsx(ArrowUpRight, { className: "dy-h-4 dy-w-4 dy-text-muted-foreground dy-transition-transform group-hover:dy-translate-x-0.5 group-hover:dy--translate-y-0.5" })
10482
+ ]
10483
+ }), /* @__PURE__ */ jsxs("a", {
10484
+ href: DOCS_URL,
10485
+ target: "_blank",
10486
+ rel: "noopener noreferrer",
10487
+ className: "dy-group dy-flex dy-items-start dy-gap-4 dy-rounded-xl dy-border dy-bg-card dy-p-5 dy-transition-colors hover:dy-border-foreground/30 hover:dy-bg-muted/40 focus-visible:dy-outline-none focus-visible:dy-ring-2 focus-visible:dy-ring-ring",
10488
+ children: [
10489
+ /* @__PURE__ */ jsx("div", {
10490
+ className: "dy-rounded-lg dy-bg-muted dy-p-2.5 dy-text-foreground",
10491
+ children: /* @__PURE__ */ jsx(BookOpen, { className: "dy-h-5 dy-w-5" })
10492
+ }),
10493
+ /* @__PURE__ */ jsxs("div", {
10494
+ className: "dy-min-w-0 dy-flex-1",
10495
+ children: [/* @__PURE__ */ jsx("h2", {
10496
+ className: "dy-font-semibold dy-text-card-foreground",
10497
+ children: "Need implementation detail?"
10498
+ }), /* @__PURE__ */ jsx("p", {
10499
+ className: "dy-mt-1 dy-text-sm dy-leading-6 dy-text-muted-foreground",
10500
+ children: "Use the docs for SDK APIs, framework integrations, configuration, and production reference."
10501
+ })]
10502
+ }),
10503
+ /* @__PURE__ */ jsx(ArrowUpRight, { className: "dy-h-4 dy-w-4 dy-text-muted-foreground dy-transition-transform group-hover:dy-translate-x-0.5 group-hover:dy--translate-y-0.5" })
10504
+ ]
10505
+ })]
10506
+ })]
10088
10507
  });
10089
10508
  }
10090
10509
  //#endregion