@dyrected/admin 2.5.29 → 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/admin.css +242 -51
- package/dist/components/__tests__/admin-component-slot.test.d.ts +1 -0
- package/dist/components/admin-component-slot.d.ts +7 -0
- package/dist/components/forms/fields/icon-picker.d.ts +3 -0
- package/dist/components/forms/fields/icon-picker.test.d.ts +1 -0
- package/dist/components/ui/command.d.ts +6 -6
- package/dist/components/workflow/WorkflowPanel.d.ts +31 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.mjs +1032 -613
- package/dist/lib/admin-icons.d.ts +4 -0
- package/dist/lib/admin-icons.test.d.ts +1 -0
- package/dist/pages/setup/setup-prompt.d.ts +1 -0
- package/dist/pages/setup/setup-prompt.test.d.ts +1 -0
- package/dist/providers/dyrected-provider.d.ts +3 -9
- package/dist/types/admin-components.d.ts +42 -0
- package/package.json +3 -3
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
|
|
6
|
+
import { createClient } from "@dyrected/sdk";
|
|
7
7
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
-
import
|
|
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: "
|
|
553
|
+
label: "Setup & Help",
|
|
474
554
|
active: location.pathname === "/setup",
|
|
475
555
|
collapsed,
|
|
476
556
|
onClick: onNavigate
|
|
477
557
|
}),
|
|
478
|
-
!isEmbedded && user && /* @__PURE__ */ jsxs(
|
|
479
|
-
|
|
480
|
-
children:
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
className: "dy-
|
|
485
|
-
children: [/* @__PURE__ */ jsx("
|
|
486
|
-
className: "dy-text-
|
|
487
|
-
children: user.name || user.email
|
|
488
|
-
}),
|
|
489
|
-
className: "dy-
|
|
490
|
-
children:
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
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/
|
|
669
|
-
var
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
}
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
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
|
-
|
|
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
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
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(
|
|
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: [
|
|
2425
|
-
|
|
2426
|
-
|
|
2427
|
-
|
|
2428
|
-
|
|
2429
|
-
|
|
2430
|
-
|
|
2431
|
-
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
2437
|
-
|
|
2438
|
-
|
|
2439
|
-
|
|
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(
|
|
2504
|
-
|
|
2505
|
-
|
|
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
|
-
}
|
|
2511
|
-
|
|
2512
|
-
|
|
2513
|
-
|
|
2514
|
-
|
|
2515
|
-
|
|
2516
|
-
|
|
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?.
|
|
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
|
|
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 ?
|
|
6368
|
+
const SelectedIcon = selectedIconName ? getIcon(selectedIconName) : void 0;
|
|
6198
6369
|
const filteredIcons = React$1.useMemo(() => {
|
|
6199
|
-
let list =
|
|
6200
|
-
if (selectedCategory !== "all") list =
|
|
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 =
|
|
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
|
|
8801
|
-
children: [
|
|
8802
|
-
|
|
8803
|
-
|
|
8804
|
-
|
|
8805
|
-
|
|
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-
|
|
8809
|
-
children: [/* @__PURE__ */
|
|
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(
|
|
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:
|
|
8842
|
-
onClick: () =>
|
|
8843
|
-
|
|
8844
|
-
|
|
8845
|
-
|
|
8846
|
-
|
|
8847
|
-
|
|
8848
|
-
|
|
8849
|
-
|
|
8850
|
-
|
|
8851
|
-
|
|
8852
|
-
|
|
8853
|
-
|
|
8854
|
-
|
|
8855
|
-
|
|
8856
|
-
|
|
8857
|
-
|
|
8858
|
-
|
|
8859
|
-
|
|
8860
|
-
|
|
8861
|
-
|
|
8862
|
-
|
|
8863
|
-
|
|
8864
|
-
|
|
8865
|
-
|
|
8866
|
-
|
|
8867
|
-
|
|
8868
|
-
|
|
8869
|
-
|
|
8870
|
-
|
|
8871
|
-
|
|
8872
|
-
|
|
8873
|
-
|
|
8874
|
-
|
|
8875
|
-
|
|
8876
|
-
|
|
8877
|
-
|
|
8878
|
-
|
|
8879
|
-
|
|
8880
|
-
|
|
8881
|
-
|
|
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
|
-
|
|
8889
|
-
|
|
8890
|
-
|
|
8891
|
-
|
|
8892
|
-
|
|
8893
|
-
|
|
8894
|
-
|
|
8895
|
-
|
|
8896
|
-
|
|
8897
|
-
|
|
8898
|
-
|
|
8899
|
-
|
|
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
|
-
|
|
8905
|
-
|
|
8906
|
-
|
|
8907
|
-
|
|
8908
|
-
|
|
8909
|
-
|
|
8910
|
-
|
|
8911
|
-
|
|
8912
|
-
|
|
8913
|
-
|
|
8914
|
-
|
|
8915
|
-
|
|
8916
|
-
|
|
8917
|
-
|
|
8918
|
-
|
|
8919
|
-
|
|
8920
|
-
|
|
8921
|
-
|
|
8922
|
-
|
|
8923
|
-
|
|
8924
|
-
|
|
8925
|
-
|
|
8926
|
-
|
|
8927
|
-
|
|
8928
|
-
|
|
8929
|
-
|
|
8930
|
-
|
|
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
|
-
|
|
8933
|
-
|
|
8934
|
-
|
|
8935
|
-
|
|
8936
|
-
|
|
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
|
-
|
|
8939
|
-
|
|
8940
|
-
|
|
8941
|
-
|
|
8942
|
-
|
|
8943
|
-
|
|
8944
|
-
|
|
8945
|
-
|
|
8946
|
-
|
|
8947
|
-
|
|
8948
|
-
|
|
8949
|
-
|
|
8950
|
-
|
|
8951
|
-
|
|
8952
|
-
|
|
8953
|
-
|
|
8954
|
-
|
|
8955
|
-
|
|
8956
|
-
|
|
8957
|
-
|
|
8958
|
-
|
|
8959
|
-
|
|
8960
|
-
|
|
8961
|
-
|
|
8962
|
-
|
|
8963
|
-
|
|
8964
|
-
|
|
8965
|
-
|
|
8966
|
-
|
|
8967
|
-
|
|
8968
|
-
|
|
8969
|
-
|
|
8970
|
-
|
|
8971
|
-
|
|
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-
|
|
8976
|
-
children: [/* @__PURE__ */
|
|
8977
|
-
className: "dy-
|
|
8978
|
-
children:
|
|
8979
|
-
|
|
8980
|
-
|
|
8981
|
-
|
|
8982
|
-
|
|
8983
|
-
|
|
8984
|
-
|
|
8985
|
-
|
|
8986
|
-
|
|
8987
|
-
|
|
8988
|
-
className: "dy-
|
|
8989
|
-
children:
|
|
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
|
-
|
|
8996
|
-
|
|
8997
|
-
|
|
8998
|
-
|
|
8999
|
-
|
|
9000
|
-
|
|
9001
|
-
|
|
9002
|
-
|
|
9003
|
-
|
|
9004
|
-
|
|
9005
|
-
|
|
9006
|
-
|
|
9007
|
-
|
|
9008
|
-
|
|
9009
|
-
|
|
9010
|
-
|
|
9011
|
-
|
|
9012
|
-
|
|
9013
|
-
|
|
9014
|
-
|
|
9015
|
-
|
|
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
|
-
|
|
9926
|
-
|
|
9927
|
-
|
|
9928
|
-
if (
|
|
9929
|
-
if (
|
|
9930
|
-
return "
|
|
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
|
|
9934
|
-
const
|
|
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-
|
|
9944
|
-
children: [
|
|
9945
|
-
|
|
9946
|
-
|
|
9947
|
-
|
|
9948
|
-
|
|
9949
|
-
|
|
9950
|
-
|
|
9951
|
-
|
|
9952
|
-
|
|
9953
|
-
|
|
9954
|
-
|
|
9955
|
-
|
|
9956
|
-
|
|
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-
|
|
10371
|
+
className: "dy-flex dy-flex-col dy-justify-between dy-gap-12",
|
|
10015
10372
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
10016
|
-
className: "dy-space-y-
|
|
10017
|
-
children: [
|
|
10018
|
-
|
|
10019
|
-
|
|
10020
|
-
|
|
10021
|
-
|
|
10022
|
-
/* @__PURE__ */ jsx("
|
|
10023
|
-
className: "dy-
|
|
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
|
-
"
|
|
10026
|
-
"
|
|
10027
|
-
"
|
|
10028
|
-
|
|
10029
|
-
|
|
10030
|
-
|
|
10031
|
-
|
|
10032
|
-
|
|
10033
|
-
|
|
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-
|
|
10037
|
-
children: [/* @__PURE__ */ jsx("
|
|
10038
|
-
|
|
10039
|
-
|
|
10040
|
-
|
|
10041
|
-
|
|
10042
|
-
|
|
10043
|
-
|
|
10044
|
-
|
|
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__ */
|
|
10048
|
-
className: "dy-text-
|
|
10049
|
-
children: "
|
|
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
|