@espressif/dashboard-ui-components 1.4.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/rules/dashboard-ui-consumption.md +31 -0
- package/.cursor/rules/dashboard-ui-consumption.mdc +31 -0
- package/CHANGELOG.md +197 -0
- package/README.md +1 -0
- package/dist/{chunk-TSNA6BHK.js → chunk-45DCL46L.js} +1 -1
- package/dist/{chunk-RCRU3JW2.js → chunk-6RJAKSPV.js} +3 -3
- package/dist/{chunk-KCMVLNM5.js → chunk-ABBHGIFI.js} +1 -1
- package/dist/{chunk-CPVDY4CV.js → chunk-HYSNJBDF.js} +3 -3
- package/dist/{chunk-XMEZ2BP6.js → chunk-IYMCZTJ5.js} +1054 -131
- package/dist/{chunk-7BO76CNB.js → chunk-OKB2WTX7.js} +8 -7
- package/dist/{chunk-UHRNPXO5.js → chunk-ZEQNTNMW.js} +31 -9
- package/dist/common/index.js +6 -6
- package/dist/components/index.d.ts +224 -7
- package/dist/components/index.js +4 -4
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.js +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +7 -7
- package/dist/layouts/index.js +4 -4
- package/dist/use-controlled-state-BL9NoHu8.d.ts +19 -0
- package/package.json +1 -1
- package/src/assets/illustrations/rm-data-download.svg +192 -52
- package/src/styles/colors.css +3 -2
- package/dist/use-controlled-state-Demn-VNO.d.ts +0 -9
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Card, CardHeader, CardTitle, CardDescription, CardContent, Label, Badge, Popover, PopoverTrigger, PopoverContent, resolveVariantStyles, VariantGradientUnderlay, PRESET_GRADIENT_BACKDROP, PRESET_GRADIENT_FRAME, VARIANT_GRADIENT_BACKDROP_BASE, SILVER_GRADIENT_BACKDROP, VARIANT_GRADIENT_HOVER_OVERLAY_CLASS, arbitraryGradientBackgroundImage, SilverShineOverlay, SilverMetallicBorderOverlay, buttonGroupVariants, useIsInView } from './chunk-
|
|
2
|
-
import { Button, inputLabelClassName, Input, Tooltip2, TooltipProvider, buttonVariants as buttonVariants$1, CopyButton, Link, Tooltip, TooltipTrigger, TooltipContent, HighlightItem, Slot as Slot$1, Highlight, ScrollArea, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuCheckboxItem, Sheet, SheetContent, SheetHeader, SheetTitle } from './chunk-
|
|
3
|
-
import { getStrictContext, buttonVariants, Separator, CollapsibleContent, Collapsible, CollapsibleTrigger, useIsMobile, useControlledState, Button as Button$1, Skeleton, Avatar, AvatarFallback } from './chunk-
|
|
1
|
+
import { Card, CardHeader, CardTitle, CardDescription, CardContent, Label, Badge, Popover, PopoverTrigger, PopoverContent, resolveVariantStyles, VariantGradientUnderlay, PRESET_GRADIENT_BACKDROP, PRESET_GRADIENT_FRAME, VARIANT_GRADIENT_BACKDROP_BASE, SILVER_GRADIENT_BACKDROP, VARIANT_GRADIENT_HOVER_OVERLAY_CLASS, arbitraryGradientBackgroundImage, SilverShineOverlay, SilverMetallicBorderOverlay, buttonGroupVariants, useIsInView } from './chunk-ABBHGIFI.js';
|
|
2
|
+
import { FieldLabelRow, fieldHintClassName, Button, inputLabelClassName, Input, Tooltip2, TooltipProvider, buttonVariants as buttonVariants$1, CopyButton, Link, Tooltip, TooltipTrigger, TooltipContent, HighlightItem, Slot as Slot$1, Highlight, ScrollArea, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuCheckboxItem, Sheet, SheetContent, SheetHeader, SheetTitle } from './chunk-ZEQNTNMW.js';
|
|
3
|
+
import { getStrictContext, buttonVariants, Separator, CollapsibleContent, Collapsible, CollapsibleTrigger, useIsMobile, useControlledState, Button as Button$1, Skeleton, Avatar, AvatarFallback } from './chunk-OKB2WTX7.js';
|
|
4
4
|
import { cn, resolveColor, isPresetColor } from './chunk-VU4CZ76T.js';
|
|
5
5
|
import { __commonJS, __toESM } from './chunk-TRTQSARU.js';
|
|
6
|
-
import { ChevronDown, ChevronUp, Check, Upload, X, RefreshCw, LoaderCircle, Triangle, Info, MinusIcon, ArrowLeft, ArrowRight, Search, ClockIcon, Crown, ShieldCheck, Tag as Tag$1, ChevronRight, CircleAlert, Eye, EyeOff, Circle, FileCheck, CheckCheck, TriangleAlert, CircleX, Menu, ChevronsUpDown, ChevronLeftIcon, ChevronRightIcon, ChevronDownIcon, CalendarIcon, CalendarRangeIcon, CheckIcon, ChevronLeft, Columns2, ChevronsRight, ChevronsLeft,
|
|
6
|
+
import { ChevronDown, ChevronUp, Check, Upload, X, RefreshCw, LoaderCircle, Triangle, Info, MinusIcon, ArrowLeft, ArrowRight, Search, ClockIcon, Crown, ShieldCheck, Tag as Tag$1, ChevronRight, CircleAlert, Eye, EyeOff, Circle, Braces, FileCheck, CheckCheck, TriangleAlert, CircleX, Menu, ChevronsUpDown, ChevronLeftIcon, ChevronRightIcon, ChevronDownIcon, CalendarIcon, CalendarRangeIcon, CheckIcon, XIcon, ChevronLeft, Columns2, ChevronsRight, ChevronsLeft, MoveLeft, CircleIcon, Bolt, Plus, Trash2, Clock, XCircle, CheckCircle2 } from 'lucide-react';
|
|
7
7
|
import * as React10 from 'react';
|
|
8
8
|
import React10__default, { forwardRef, useMemo, isValidElement, useRef, useState, useCallback, useLayoutEffect, useEffect, useId, Fragment as Fragment$1, Children, cloneElement, createElement } from 'react';
|
|
9
9
|
import { Switch as Switch$1, ToggleGroup as ToggleGroup$1, Dialog as Dialog$1, Accordion as Accordion$1 } from 'radix-ui';
|
|
@@ -24,7 +24,7 @@ import Autoplay from 'embla-carousel-autoplay';
|
|
|
24
24
|
import useEmblaCarousel from 'embla-carousel-react';
|
|
25
25
|
import { Command as Command$1 } from 'cmdk';
|
|
26
26
|
import { getDefaultClassNames, DayPicker } from 'react-day-picker';
|
|
27
|
-
import { format, endOfMonth, startOfMonth,
|
|
27
|
+
import { format, sub, endOfMonth, startOfMonth, endOfDay, startOfDay, endOfYear, startOfYear, endOfWeek, startOfWeek, isValid, parse, set } from 'date-fns';
|
|
28
28
|
import { useReactTable, getPaginationRowModel, getCoreRowModel, flexRender } from '@tanstack/react-table';
|
|
29
29
|
import { PreviewCard as PreviewCard$1 } from '@base-ui-components/react/preview-card';
|
|
30
30
|
import { startCase } from 'lodash-es';
|
|
@@ -16525,7 +16525,7 @@ var create_new_group_default = '<?xml version="1.0" encoding="UTF-8"?>\n<svg id=
|
|
|
16525
16525
|
var new_ota_default = '<?xml version="1.0" encoding="UTF-8"?>\n<svg id="new-ota" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95 72.9">\n <defs>\n <style>\n .cls-1 {\n fill: var(--color-muted-foreground);\n }\n\n .cls-2 {\n fill: var(--color-foreground);\n }\n </style>\n </defs>\n <path id="cloud" class="cls-2" d="M80.36,27.71c-2.1-2.61-4.41-5-8.22-4.81-.89.04-1.54-.49-1.82-1.34-.85-2.64-2.9-4.15-5.06-5.63-2.71-1.85-5.48-2.1-8.49-.88-1.59.64-1.71.45-2.88-.77-1.33-1.39-2.67-2.88-4.29-3.84-3.63-2.13-7.5-2.38-11.29-.27-2.4,1.34-4.6,2.97-6.36,5.14-.54.67-1.23,1.22-1.86,1.83-.53-.19-.69-.23-.83-.31-3.16-1.91-6.43-1.62-9.82-.67-2.48.7-3.39,2.82-4.73,4.59-.1.13-.15.29-.22.43-.41.79-1.03,1.01-1.81.58-1.42-.77-2.99-.91-4.48-.64-2.37.42-4.77.95-6.17,3.29-2.28,3.83-2.29,8-1.72,12.21.2,1.46,1.07,2.47,2.69,2.68,1.03.13,2.04.55,3.07.65,3.93.38,7.86.79,11.81.99,5.16.27,10.32.31,15.48.52.89.04,1.78.09,2.66.13,0-.34.02-.68.08-1-1.16-.05-2.31-.11-3.47-.16-3.46-.15-6.93-.26-10.39-.4-5.72-.23-11.4-.84-17.03-1.96-2.26-.45-3.35-1.59-3.77-3.99-.44-2.53-.05-4.77.7-7.1.8-2.47,2.62-3.66,5.01-3.94,2-.24,4.04-.11,5.8,1.17.19.13.44.18,1,.4.72-1.2,1.37-2.29,2.05-3.38,2.72-4.38,8.4-5.45,12.53-2.36.31.24.66.43,1.17.75.58-.6,1.09-1.19,1.66-1.72,1.8-1.72,3.48-3.61,5.45-5.1,5.98-4.55,11.82-2.02,15.67,2.27.27.3.46.66.7.98,1.11,1.51,1.16,1.54,2.97.76,5.02-2.17,9.87.68,12.14,4.25.37.59.45,1.36.66,2.05.18.59.35,1.19.51,1.75,5.51-.32,6.23.05,9.84,4.31,2.83,3.34,3.77,7.21,3.52,11.47,0,.16-.04.32-.09.47-.05.15-.14.28-.35.68-.71.05-1.57.23-2.42.16-5.97-.54-11.93.05-17.89.09-.64,0-1.31.08-1.93-.06-2.56-.58-5.15-.73-7.74-.79.22.41.38.85.49,1.31,4.11.32,8.21.79,12.36.5,2.01-.14,4.03-.03,6.05.04,3.14.11,6.28.32,9.42.42,2.61.09,3.42-.76,3.61-3.38.35-4.67-1.1-8.78-3.98-12.36Z"/>\n <g id="upload">\n <g>\n <path class="cls-2" d="M28.78,51.42c2.89.18,5.74.86,8.64.89,1.05.02,1.27.26,1.35,1.36.04.59,0,1.19,0,1.79.01,1.41-.02,2.83.04,4.25.1,2.3.25,4.6.39,6.91h-.17c0,.82.01,1.64,0,2.46-.01.9-.03,1.79-.04,2.69-.01.37-.03.85.43.89,1.48.13,2.96.23,4.44.24,1.11,0,2.22-.15,3.33-.26,1.18-.11,2.39-.14,3.54-.41,2.93-.71,3.34-.42,3-4.22-.26-2.97-.52-5.94-.78-8.9-.08-.89-.17-1.78-.22-2.67-.08-1.42-.19-2.83-.19-4.25,0-1.13.28-1.39,1.43-1.62,1.24-.24,2.5-.44,3.73-.7.58-.13,1.16-.31,1.7-.55.53-.24.64-.88.25-1.31-.35-.38-.77-.7-1.15-1.06-1.5-1.45-3.09-2.82-4.49-4.36-2.4-2.64-4.85-5.23-7.61-7.52-.67-.56-1.32-.7-2.03-.29-1.49.87-3.08,1.06-4.75.85-.92-.11-1.57.34-2.05,1.08-.24.38-.43.79-.68,1.16-1.96,2.9-3.89,5.81-5.91,8.67-.81,1.14-1.84,2.14-2.71,3.24-.24.32-.4.8-.37,1.18.01.18.56.44.88.46ZM41.93,63.44c-.05,1.85-.03,3.71-.07,5.57-.02,1.02-.3,1.58-.64,1.41-.56-.28-.55-.83-.61-1.34-.02-.15-.04-.3-.01-.45.55-3.19-.32-6.37-.16-9.56,0-1.71-.05-3.42.03-5.13.03-.63.32-1.27.59-1.86.08-.17.5-.26.76-.26.13.01.27.3.36.49.07.12.06.29.06.44-.11,3.56-.23,7.12-.31,10.69ZM44.89,37.83c.31-.59.76-.75,1.29-.41.75.47,1.52.96,2.14,1.59,2.73,2.75,5.41,5.55,8.1,8.33.16.16.39.34.39.52.01.25-.1.65-.27.72-.4.18-.86.21-1.3.27-.88.12-1.78.17-2.66.34-1.21.23-1.65.77-1.73,1.96-.02.37-.01.75.02,1.12.25,4.01.49,8.03.77,12.05.1,1.33.36,2.66.42,3.99.07,1.36-.21,1.86-1.52,2.04-1.99.25-4,.26-6.01.33-.61.02-.92-.44-.95-1.03-.06-1.34-.12-2.68-.15-4.02-.02-1.57,0-3.14,0-4.7h.13c0-2.24-.03-4.48.01-6.71.02-1.11-.03-2.23.53-3.28.16-.3.05-.89-.16-1.21-.34-.51-.93-.44-1.41-.15-1.33.83-2.79,1.01-4.3.96-.59-.02-.8-.4-.46-.89,1.23-1.78,2.5-3.52,3.72-5.31.49-.73.9-1.52,1.3-2.31.71-1.39,1.37-2.81,2.1-4.2ZM31.23,48.83c.15-.26.31-.51.48-.76,1.96-2.78,4.05-5.48,5.86-8.37,1.28-2.05,3.15-2.53,5.26-2.75.1,0,.25.27.35.42.03.04-.02.15-.05.21-1.09,2.35-1.97,4.81-3.54,6.91-1.15,1.55-2.33,3.07-3.51,4.6-.77.98-.98,1.07-1.99,1.01-.87-.12-1.68-.21-2.49-.34-.61-.11-.7-.37-.37-.93Z"/>\n <path class="cls-2" d="M31.23,48.83c.15-.26.31-.51.48-.76,1.96-2.78,4.05-5.48,5.86-8.37,1.28-2.05,3.15-2.53,5.26-2.75.1,0,.25.27.35.42.03.04-.02.15-.05.21-1.09,2.35-1.97,4.81-3.54,6.91-1.15,1.55-2.33,3.07-3.51,4.6-.77.98-.98,1.07-1.99,1.01-.87-.12-1.68-.21-2.49-.34-.61-.11-.7-.37-.37-.93Z"/>\n <path class="cls-2" d="M40.44,59.07c0-1.71-.05-3.42.03-5.13.03-.63.32-1.27.59-1.86.08-.17.5-.26.76-.26.13.01.27.3.36.49.07.12.06.29.06.44-.11,3.56-.23,7.12-.31,10.69-.05,1.85-.03,3.71-.07,5.57-.02,1.02-.3,1.58-.64,1.41-.56-.28-.55-.83-.61-1.34-.02-.15-.04-.3-.01-.45.55-3.19-.32-6.37-.16-9.56Z"/>\n <path class="cls-2" d="M23.44,35.71c-.02,1.39.28,1.75,1.62,1.88,1.11.11,2.23.16,3.35.21,1.17.05,1.66-.45,1.55-1.61-.08-.89-.28-1.77-.36-2.66-.09-.96.1-1.2,1.09-1.26,3.5-.19,7-.36,10.51-.49,4.02-.14,8.04-.22,12.07-.31.89-.03,1.79-.06,2.68-.02,1.27.06,1.36.19,1.59,1.4.18.95.37,1.9.63,2.83.35,1.29.5,1.4,1.87,1.33.9-.04,1.79-.15,2.67-.3,1.12-.18,1.56-.67,1.54-1.82-.03-2.01-.05-4.03-.27-6.03-.35-3.29-.58-3.46-3.86-3.38-2.91.07-5.81.23-8.72.34-1.41.05-2.83.05-4.25.12-2.75.15-5.5.34-8.25.52,0-.04-.01-.08-.01-.11-1.86.15-3.71.32-5.56.45-1.79.13-3.58.19-5.36.35-1.03.1-2.08.23-3.06.53-1.18.37-1.42.8-1.25,2.02.22,1.65.19,3.27-.12,4.89-.07.37-.1.75-.1,1.12ZM25.29,30.06c.05-1.2.36-1.63,1.56-1.78,1.1-.13,2.22-.03,3.34-.03v-.04c.67,0,1.34.04,2.01-.01,5.11-.4,10.22-.81,15.33-1.22.6-.04,1.19-.03,1.79-.04,3.57-.05,7.14-.1,10.71-.15.3,0,.6,0,.9,0,.69.03,1.13.43,1.22,1.08.33,2.16.23,4.31-.21,6.44-.12.61-.59.82-1.16.82s-1.13-.11-1.25-.71c-.18-.86-.22-1.76-.29-2.65-.09-1.19-.27-1.46-1.47-1.47-3.5,0-7,.06-10.5.1-1.34.01-2.68.09-4.02.02-3.58-.2-7.14.07-10.7.37-.89.08-1.79.01-2.68.07-1.37.08-2.01.84-1.9,2.19.05.59.21,1.17.23,1.77.04.9-.3,1.24-1.15,1.27-1.46.04-1.9-.34-1.89-1.79,0-1.41.06-2.83.13-4.24Z"/>\n <path class="cls-2" d="M25.16,34.3c0-1.41.06-2.83.13-4.24.05-1.2.36-1.63,1.56-1.78,1.1-.13,2.22-.03,3.34-.03v-.04c.67,0,1.34.04,2.01-.01,5.11-.4,10.22-.81,15.33-1.22.6-.04,1.19-.03,1.79-.04,3.57-.05,7.14-.1,10.71-.15.3,0,.6,0,.9,0,.69.03,1.13.43,1.22,1.08.33,2.16.23,4.31-.21,6.44-.12.61-.59.82-1.16.82s-1.13-.11-1.25-.71c-.18-.86-.22-1.76-.29-2.65-.09-1.19-.27-1.46-1.47-1.47-3.5,0-7,.06-10.5.1-1.34.01-2.68.09-4.02.02-3.58-.2-7.14.07-10.7.37-.89.08-1.79.01-2.68.07-1.37.08-2.01.84-1.9,2.19.05.59.21,1.17.23,1.77.04.9-.3,1.24-1.15,1.27-1.46.04-1.9-.34-1.89-1.79Z"/>\n </g>\n </g>\n <g id="cog-filled">\n <g>\n <path class="cls-2" d="M64.67,5.7c-.82-.1-1.34-.44-1.39-1.36.07-.08.15-.19.25-.3.83-.91.77-1.88-.19-2.64-.33-.26-.72-.49-1.12-.61-.99-.29-1.31-.43-1.79.67-.04.1-.09.22-.17.27-.23.13-.5.34-.71.29-.2-.05-.37-.35-.49-.58-.07-.14-.01-.35-.03-.53-.09-.8-.33-1.01-1.12-.88-.67.11-1.35.23-1.98.43-.43.13-.88.37-1.15.7-.13.17.11.65.21.98.26.95-.23,1.66-1.23,1.72-.37.02-.61.15-.73.51-.14.44-.3.88-.41,1.33-.29,1.19,0,1.65,1.19,1.96.13.04.29.07.4.14.4.23.44.79.08,1.08-.11.09-.25.13-.38.2-.72.41-.82.69-.29,1.33.42.51.95.96,1.47,1.37.66.52.95.47,1.55-.11.13-.12.21-.31.35-.4.21-.14.49-.32.71-.29.34.03.55.31.53.69,0,.21,0,.43,0,.65-.01.58.3.88.85.88.68,0,1.37.03,2.02-.11,1.15-.23,1.33-.65.84-1.7-.13-.29-.35-.61-.03-.87.32-.25.77-.65,1.05-.57.65.19,1.11.02,1.58-.36.49-.4.83-.88.94-1.51.06-.39.12-.78.17-1.17.11-.99.05-1.1-.95-1.22ZM64.5,8.66c-.27.64-.66.71-1.27.37-.15-.09-.31-.25-.46-.26-.22,0-.55.05-.64.19-.34.57-.69,1.04-1.4,1.23-.38.1-.31.5-.1.8.26.37.51.75.79,1.15-.73.6-1.42.52-2.1.31-.18-.05-.43-.38-.4-.54.23-1.5-.94-1.58-1.89-2-.24.36-.44.69-.67,1-.28.36-.64.46-1.03.19-.43-.29-.98-.49-1.04-1.18.19-.09.41-.15.55-.29.17-.14.41-.36.41-.53-.03-.6-.12-1.2-.25-1.78-.03-.14-.31-.27-.49-.32-1.26-.29-1.37-.46-1.05-1.7.03-.1.1-.19.19-.34.79.17,1.3-.23,1.61-.95.09-.19.21-.38.37-.52.41-.35.47-.71.26-1.23-.29-.71-.19-.86.54-1.09.57-.18,1.16-.29,1.86-.45,0,.5.03.85,0,1.18-.04.46.09.76.58.86.38.08.75.21,1.23.35.26-.39.53-.81.81-1.2.12-.17.27-.37.44-.43.73-.26,2.1.75,1.99,1.5-.03.26-.32.53-.55.72-.7.59-.71.57-.19,1.35.06.09.15.17.17.27.11.81.59,1.13,1.39,1.11.47,0,.74.29.67.77-.07.49-.12,1.01-.31,1.45Z"/>\n <path class="cls-2" d="M64.15,6.44c-.79.01-1.27-.3-1.39-1.11-.01-.09-.11-.18-.17-.27-.51-.78-.51-.77.19-1.35.23-.19.51-.46.55-.72.11-.75-1.26-1.76-1.99-1.5-.17.06-.32.27-.44.43-.29.39-.55.81-.81,1.2-.48-.14-.85-.27-1.23-.35-.49-.1-.62-.4-.58-.86.03-.33,0-.68,0-1.18-.71.16-1.3.27-1.86.45-.73.23-.83.38-.54,1.09.21.52.15.87-.26,1.23-.16.14-.29.33-.37.52-.31.72-.83,1.11-1.61.95-.09.15-.16.24-.19.34-.32,1.25-.21,1.41,1.05,1.7.19.05.47.18.49.32.13.59.23,1.19.25,1.78,0,.17-.23.39-.41.53-.15.13-.36.19-.55.29.06.69.61.89,1.04,1.18.39.27.75.17,1.03-.19.23-.31.43-.64.67-1,.95.41,2.12.5,1.89,2-.03.16.22.49.4.54.68.21,1.38.29,2.1-.31-.28-.41-.53-.78-.79-1.15-.21-.3-.28-.7.1-.8.71-.19,1.06-.66,1.4-1.23.09-.15.42-.19.64-.19.15,0,.31.17.46.26.61.35.99.27,1.27-.37.19-.45.25-.96.31-1.45.07-.48-.2-.77-.67-.77ZM59.59,8.49c-1.18,1.03-2.8.49-3.13-1.04-.05-.25-.07-.49-.1-.66,0-1.1.51-1.84,1.28-2.43.41-.31.87-.3,1.31-.11,1.58.69,1.94,3.1.64,4.23Z"/>\n <path class="cls-2" d="M58.95,4.25c-.45-.19-.9-.21-1.31.11-.77.59-1.28,1.33-1.28,2.43.03.17.05.41.1.66.33,1.52,1.95,2.06,3.13,1.04,1.31-1.13.95-3.54-.64-4.23ZM58.41,8.31c-.74-.06-1.21-.55-1.29-1.33-.01-.11,0-.21,0-.56,0-.01,0-.27.08-.51.17-.56.56-.9,1.15-.99.54-.08.87.23,1.15.63.34.5.44,1.05.29,1.64-.19.74-.72,1.16-1.37,1.11Z"/>\n </g>\n </g>\n <g id="cog-outlined">\n <g>\n <path class="cls-2" d="M6.45,48.97c.46.02.82.01,1.18.06,1.22.15,1.99-.61,1.8-1.8-.18-1.17-.15-1.24,1.07-1.39.57-.07,1.15-.07,1.77-.1.22.59.41,1.11.67,1.82.4-.33.75-.54,1-.83.4-.47.84-.51,1.32-.24.54.3,1.09.61,1.56.99.89.72.92,1.19.26,2.11-.65.89-.62,1.12.22,1.63,1,.61,1.16.87.91,1.98-.11.51-.39,1-.65,1.46-.22.38-.53.53-1.04.45-.96-.15-1.07.06-.66.99.07.15.11.31.16.44-.62.75-2.19,1.24-3.01.88-.24-.11-.4-.48-.53-.76-.45-.98-.85-1.08-1.64-.36-.72.66-.77.67-1.58.12-.54-.37-1.09-.75-1.58-1.2-.47-.42-.43-.72.11-1.08.35-.24.75-.39.6-.93-.15-.53-.52-.66-1.02-.72-1.14-.15-1.23-.29-1.14-1.44.05-.65.14-1.3.22-2.06ZM14.74,56.35c-.04-.24-.06-.41-.09-.57-.21-1.1.56-1.93,1.64-1.77.76.11,1-.04,1.13-.71.13-.69-.06-.99-.76-1.18-.27-.07-.55-.12-.78-.18-.17-.71-.33-1.35-.49-2.04.39-.35.81-.71,1.21-1.06-1.12-1.77-1.68-1.8-3.22-.19-.37-.13-.93-.15-1.18-.44-.32-.37-.39-.96-.59-1.52-.38-.04-.77-.08-1.35-.13.13.82.24,1.47.33,2.03-.62.38-1.16.61-1.57.98-.53.47-1.05.77-1.74.48-.39,1.35-.31,1.45.83,1.61.29.04.66.2.81.43.62.94.52,2.07-.17,2.93.95.84.95.85,1.88.07.56-.47,2.01-.12,2.33.56q.48,1,1.78.69Z"/>\n <path class="cls-2" d="M12.66,50.18c.86,0,1.45.74,1.44,1.8-.01,1.08-.85,1.98-1.82,1.96-.97-.03-1.91-1.05-1.91-2.09,0-1.06.84-1.68,2.29-1.67ZM12.51,51.01c-.73,0-1.2.31-1.18.8.02.55.68,1.21,1.21,1.21.47,0,.79-.35.81-.89.03-.65-.32-1.11-.84-1.11Z"/>\n </g>\n </g>\n <g id="chip">\n <g id="chip-body">\n <g>\n <path class="cls-2" d="M88.23,55.12c.13-.58.22-1.17.31-1.77.03-.18.06-.4-.21-.52-.34-.15-.68-.35-1.04-.44-1.73-.41-3.46-.8-5.2-1.18-.36-.08-.72-.15-1.08-.2-1.03-.14-2.07-.26-3.1-.38-.44-.05-.46-.06-.6.29-.26.66-.47,1.33-.6,2.03-.22,1.22-.55,2.41-.84,3.61t0,0c-.28,1.16-.56,2.33-.83,3.49-.05.2-.09.4-.08.61.02.36.14.46.56.54.63.12,1.28.22,1.91.35,1.01.21,2.02.39,3.02.66.63.17,1.25.31,1.9.39.26.03.52.07.79.12.74.12,1.47.23,2.21.36.34.06.53-.06.66-.27.06-.09.11-.19.14-.3.37-1.12.77-2.24,1.09-3.38.37-1.32.68-2.66.98-4ZM86.83,59.79c-.03.12-.09.22-.13.34-.04,0-.07,0-.1,0-.01.12-.04.24-.08.35.01,0,.03,0,.05,0-.12.76-.36,1.42-.68,2.05-.12.24-.35.28-.64.23-.65-.11-1.31-.23-1.96-.35-.1-.02-.2-.05-.29-.06-1.12-.04-2.18-.42-3.27-.65-1.23-.27-2.47-.5-3.71-.73-.55-.1-.71-.19-.64-.63.08-.51.26-1,.4-1.49.01-.04.03-.06.05-.09,0-.1.02-.2.06-.31.03-.1.07-.18.11-.27,0-.16.05-.32.11-.47-.02,0-.04-.02-.06-.03.09-.47.16-.93.26-1.39.25-1.17.56-2.33.76-3.51.11-.66.36-1.25.68-1.83.02-.04.05-.06.11-.12.19.02.4.05.61.07.36.03.72.05,1.08.07.22.01.43.01.64.05,1.39.26,2.78.49,4.16.8,1.05.23,2.08.56,3.12.85.13.03.24.1.36.16.33.15.46.36.41.66-.15.77-.28,1.55-.45,2.32-.3,1.33-.63,2.64-.95,3.97Z"/>\n <path class="cls-2" d="M83.98,60.73c-2.12-.13-4.08-.41-6.1-1.02.32-2.15.62-4.21.95-6.27.08-.54.49-.75.97-.66,1.68.31,3.35.67,5.01,1.03.53.11.91.49.81,1.05-.35,1.96-.58,3.95-1.63,5.86Z"/>\n </g>\n </g>\n <g id="chip_leg-middle" data-name="chip=leg-middle">\n <path class="cls-1" d="M81.09,69.95s-.07-.03-.09-.06l-1.98-3.22,1.01-4.25c.02-.07.09-.12.17-.1s.12.09.1.17l-.98,4.14,1.92,3.12c.04.06.02.15-.05.19-.03.02-.07.02-.1.02Z"/>\n <path class="cls-1" d="M81.41,71.86c-.61-.14-.98-.75-.84-1.36s.75-.98,1.36-.84.98.75.84,1.36-.75.98-1.36.84ZM81.78,70.32c-.24-.06-.48.09-.54.33s.09.48.33.54.48-.09.54-.33-.09-.48-.33-.54Z"/>\n </g>\n <g id="chip-leg-left">\n <path class="cls-1" d="M78.42,70.13s-.07-.03-.1-.07l-2.2-3.57,1.12-4.72c.02-.08.1-.13.18-.11s.13.1.11.18l-1.09,4.6,2.13,3.47c.04.07.02.17-.05.21-.04.02-.08.03-.12.02Z"/>\n <path class="cls-1" d="M78.54,71.87c-.61-.14-.98-.75-.84-1.36s.75-.98,1.36-.84.98.75.84,1.36-.75.98-1.36.84ZM78.91,70.34c-.24-.06-.48.09-.54.33s.09.48.33.54.48-.09.54-.33-.09-.48-.33-.54Z"/>\n </g>\n <g id="chip-leg-right">\n <path class="cls-1" d="M82.83,65.87c-.07-.02-.1-.14-.07-.27l.62-2.59c.03-.13.11-.23.18-.21s.1.14.07.27l-.62,2.59c-.03.13-.11.23-.18.21Z"/>\n <path class="cls-1" d="M82.43,68.12c-.61-.14-.98-.75-.84-1.36s.75-.98,1.36-.84.98.75.84,1.36-.75.98-1.36.84ZM82.8,66.58c-.24-.06-.48.09-.54.33s.09.48.33.54.48-.09.54-.33-.09-.48-.33-.54Z"/>\n </g>\n </g>\n <g id="arrow">\n <path class="cls-2" d="M94.99,43.03v-.5s-.05-.5-.05-.5l-.08-.99-.15-.99-.08-.49c-.03-.16-.07-.32-.11-.49l-.22-.97c-.09-.32-.19-.64-.28-.96l-.14-.48c-.05-.16-.12-.31-.17-.47l-.35-.93c-.13-.31-.28-.61-.41-.91l-.21-.45c-.07-.15-.16-.29-.23-.44l-.48-.88c-.17-.29-.36-.56-.53-.84l-.27-.42c-.09-.14-.2-.27-.29-.4l-.6-.8-.89-1.03s-.03-.03-.07-.07c-.04-.05-.11-.11-.2-.18-.17-.15-.39-.34-.61-.53-.43-.39-.9-.71-.87-.68-.79-.54-1.35-.77-.32.33.14.17.32.34.47.53.15.19.31.37.44.53.14.16.26.3.34.4.09.1.13.16.13.16l.63.72c.22.24.41.5.61.76.19.26.4.51.58.79.35.55.72,1.08,1.02,1.66.65,1.13,1.14,2.34,1.56,3.57.19.62.39,1.24.52,1.88l.11.48c.04.16.07.32.09.48l.15.96c.15,1.29.23,2.6.13,3.89-.02.65-.12,1.29-.21,1.94-.02.16-.05.32-.09.48l-.1.48c-.07.32-.13.64-.21.95-.32,1.27-.73,2.51-1.28,3.68-.28.58-.59,1.15-.94,1.69-.35.53-.76,1.03-1.2,1.48-.16.15-.31.31-.48.44l-.25.21c-.09.06-.18.12-.27.19-.01.01-.03.05-.03.06-.15.54.21.66.44.64.03,0,.04,0,.06-.02.1-.07.2-.14.3-.21l.28-.23c.19-.15.36-.32.54-.49.48-.48.91-1.02,1.29-1.58.37-.56.7-1.15.99-1.76.57-1.21.99-2.48,1.32-3.76.09-.32.15-.64.22-.97.07-.33.14-.65.2-.98l.13-.99c.02-.17.05-.33.06-.5l.03-.5.06-1v-1Z"/>\n <path class="cls-2" d="M86.9,26.88c.18-.05.44-.09.7-.1.53-.02,1.09.04,1.04.02.46.02.86.01.95-.06.09-.07-.12-.19-.85-.39-.43-.13-.98-.25-1.45-.26-.23-.01-.44,0-.6.03-.15.02-.24.05-.24.05-.05,0-.14.05-.2.08l-.21.09-.42.2.22.55.06.15.03.07.05.14c.03.1.06.19.08.29.11.41.19.85.17,1.22,0,.02.02.05.03.05.16.19.29.29.44.29.14,0,.27-.11.34-.22.02-.03.03-.04.03-.06.03-.55-.07-1.03-.19-1.5-.03-.11-.06-.22-.1-.32l-.05-.16-.03-.08h0s-.01,0,0,0c.05-.01.12-.05.21-.07Z"/>\n </g>\n</svg>';
|
|
16526
16526
|
|
|
16527
16527
|
// svg-raw:/builds/app-frameworks/esp-ui-component-library/src/assets/illustrations/rm-data-download.svg
|
|
16528
|
-
var rm_data_download_default = '<?xml version="1.0" encoding="UTF-8"?>\n<svg id="rm-data-download" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 845.67 533.92">\n <defs>\n <style>\n .st0 {\n fill: var(--color-destructive);\n }\n\n .st1 {\n fill: var(--color-error-light);\n }\n\n .st2 {\n fill: var(--color-gray);\n }\n\n .st3 {\n fill: var(--color-muted-foreground);\n }\n\n .st4 {\n fill: var(--color-card);\n }\n\n .st5 {\n fill: var(--color-muted);\n }\n\n .st6 {\n fill: var(--color-muted);\n }\n </style>\n </defs>\n <g id="rm-logo">\n <circle class="st0" cx="196.56" cy="204.3" r="8.88"/>\n <path class="st1" d="M206.56,482.35l.39-240.76c-3.35.03-6.71.05-10.06.05-1.91,0-3.82-.02-5.72-.03l-.4,241.55c5.35-.32,10.79-.62,15.78-.81Z"/>\n <path class="st1" d="M241.83,422.44l.39-178.97c-3.35.02-6.71.03-10.06.03-1.91,0-3.82-.02-5.72-.02l-.4,179.56c5.35-.24,10.79-.46,15.78-.6Z"/>\n <path class="st1" d="M277.03,361.96l.39-121.75c-3.35.01-6.71.02-10.06.02-1.91,0-3.82-.01-5.72-.02l-.4,122.15c5.35-.16,10.79-.31,15.78-.41Z"/>\n <path class="st1" d="M547.53,361.77l-286.28-.39c.03,3.35.05,6.71.05,10.06,0,1.91-.03,3.82-.04,5.72l287.22.4c-.38-5.35-.74-10.79-.96-15.78Z"/>\n <path class="st1" d="M547.41,422.43l-321.36-.39c.04,3.35.06,6.71.06,10.06,0,1.91-.03,3.82-.04,5.72l322.42.4c-.43-5.35-.83-10.79-1.08-15.78Z"/>\n <path class="st1" d="M547.29,482.55l-356.63-.39c.04,3.35.07,6.71.07,10.06,0,1.91-.03,3.82-.04,5.72l357.81.4c-.48-5.35-.92-10.79-1.2-15.78Z"/>\n <path class="st0" d="M1.45,3c1.93,0,1.93-3,0-3S-.48,3,1.45,3h0Z"/>\n <path class="st0" d="M298.29,165.07h0c-.87-28.76-24.91-51.37-53.67-50.49-27.38.84-49.44,22.73-50.48,50.11h0c-21.89,1.16-38.69,19.85-37.53,41.74,1.13,21.33,18.94,37.93,40.3,37.58h71.35c3.73-.3,7.11,2.19,7.94,5.85h0l7.35-8.63h0c1.26-1.48,1.93-3.37,1.88-5.31-.17-4.31-3.73-7.72-8.05-7.69h-80.57c-13.21.4-24.24-9.97-24.64-23.18-.4-13.21,9.97-24.24,23.18-24.64.39-.01.79-.01,1.18,0,1.44,0,2.87.13,4.29.39,2.07.38,4.22-.09,5.94-1.31,2.55-1.68,3.9-4.67,3.48-7.69-.24-1.7-.37-3.41-.37-5.12,0-20.06,16.26-36.32,36.32-36.32s36.32,16.26,36.32,36.32v1.54h0c-14.54,6.23-24.01,20.5-24.09,36.32-.04,4.39,3.47,7.99,7.86,8.06,4.36.02,7.9-3.5,7.92-7.86v-.03c-.05-13.21,10.62-23.96,23.83-24.02,13.21-.05,23.96,10.62,24.02,23.83.02,6.03-2.23,11.84-6.31,16.28l-.11.14-23.49,27.09c-2.86,3.29-2.52,8.28.77,11.14s8.28,2.52,11.14-.77h0l23.46-26.95c14.71-16.26,13.47-41.37-2.79-56.08-7.25-6.56-16.66-10.22-26.44-10.27h0s0-.01,0-.01Z"/>\n </g>\n <g id="body">\n <rect id="bezel" class="st3" x="526.77" y="310.15" width="296.41" height="203.65" rx="29.36" ry="29.36"/>\n <g id="base">\n <path id="base-2" class="st2" d="M504.29,513.81h341.38c0,11.1-9.01,20.11-20.11,20.11h-301.15c-11.1,0-20.11-9.01-20.11-20.11h0Z"/>\n <path id="trackpad" class="st5" d="M649.88,513.81h50.2v.15c0,2.95-2.4,5.35-5.35,5.35h-39.51c-2.95,0-5.35-2.4-5.35-5.35v-.15h0Z"/>\n </g>\n <g id="top">\n <g id="screen-content">\n <rect id="screen" class="st4" x="539.84" y="327.23" width="270.27" height="169.5"/>\n <g id="app">\n <rect id="header" class="st3" x="539.84" y="327.23" width="270.27" height="17.44"/>\n <g id="table">\n <rect class="st6" x="549.32" y="419.94" width="250.49" height="11.81"/>\n <rect class="st6" x="549.32" y="442.43" width="250.49" height="9.31"/>\n <rect class="st6" x="549.32" y="398.14" width="250.49" height="11.81"/>\n <rect class="st6" x="549.32" y="373.58" width="250.49" height="11.81"/>\n <rect class="st6" x="549.73" y="463.97" width="250.49" height="11.81"/>\n </g>\n </g>\n </g>\n <circle id="cam" class="st4" cx="674.98" cy="318.61" r="3.7"/>\n </g>\n </g>\n</svg>\n';
|
|
16528
|
+
var rm_data_download_default = '<?xml version="1.0" encoding="UTF-8"?>\n<svg id="rm-data-download" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 845.67 533.92">\n <!--\n RainMaker cloud (taken from the product logo) raining data into a laptop.\n\n One source, two variants (see illustration-variants.ts):\n - static: every SMIL element is stripped and `data-variant="animated"`\n groups are dropped, so the base attribute values below ARE the resting\n frame (rows visible, progress two thirds full, two records in flight).\n - animated: `data-variant="static"` groups are dropped; `<set>` elements\n hide what the animations then bring in, so nothing flashes before its\n first `begin`.\n Variant groups must not contain nested <g> elements: the selector is a\n non-greedy regex up to the first closing tag.\n\n Theme colours come from the design tokens; the cloud keeps the logo\'s own\n reds on purpose. Ids are prefixed "rmdd-" because the markup is inlined.\n -->\n <defs>\n <style>\n .rmdd-card { fill: var(--color-card); }\n .rmdd-muted { fill: var(--color-muted); }\n .rmdd-muted-fg { fill: var(--color-muted-foreground); }\n .rmdd-gray { fill: var(--color-gray); }\n .rmdd-primary { fill: var(--color-primary); }\n .rmdd-primary-light { fill: var(--color-primary-light); }\n .rmdd-flow { fill: none; stroke: var(--color-primary); stroke-width: 3; stroke-linecap: round; stroke-dasharray: 9 9; opacity: .55; }\n .rmdd-pkt-frame { fill: var(--color-card); stroke: var(--color-primary); stroke-width: 2.5; }\n </style>\n\n <linearGradient id="rmdd-cloud" x1=".83" y1="92.99" x2="512.02" y2="92.99" gradientTransform="translate(0 114.01)" gradientUnits="userSpaceOnUse">\n <stop offset="0" stop-color="#fc4c3b"/>\n <stop offset=".5" stop-color="#d43129"/>\n <stop offset="1" stop-color="#f94939"/>\n </linearGradient>\n <linearGradient id="rmdd-cloud-top" x1="340.71" y1="86.7" x2="166.21" y2="-87.76" gradientTransform="translate(0 114.01)" gradientUnits="userSpaceOnUse">\n <stop offset="0" stop-color="#d43129"/>\n <stop offset="1" stop-color="#f94939"/>\n </linearGradient>\n <linearGradient id="rmdd-cloud-band" x1="43.64" y1="194.71" x2="364.07" y2="194.71" gradientTransform="translate(0 114.01)" gradientUnits="userSpaceOnUse">\n <stop offset="0" stop-color="#d43129"/>\n <stop offset="1" stop-color="#f94939"/>\n </linearGradient>\n <linearGradient id="rmdd-cloud-sweep" x1="377.59" y1="200.5" x2="479.34" y2="200.5" gradientTransform="translate(0 114.01)" gradientUnits="userSpaceOnUse">\n <stop offset="0" stop-color="#f94939"/>\n <stop offset="1" stop-color="#d43129"/>\n </linearGradient>\n <linearGradient id="rmdd-dot" x1="130.74" y1="157.26" x2="95.26" y2="121.82" gradientTransform="translate(0 114.01)" gradientUnits="userSpaceOnUse">\n <stop offset="0" stop-color="#d43129"/>\n <stop offset=".17" stop-color="#dd372d"/>\n <stop offset=".67" stop-color="#f14436"/>\n <stop offset="1" stop-color="#f94939"/>\n </linearGradient>\n <linearGradient id="rmdd-drop" x1="0" y1="0" x2="1" y2="0">\n <stop offset="0" stop-color="#fc4c3b"/>\n <stop offset=".57" stop-color="#eb3b30"/>\n <stop offset="1" stop-color="#e5352c"/>\n </linearGradient>\n\n <!-- The three rain dashes of the logo, reused for the static logo and the falling copies. -->\n <g id="rmdd-rain">\n <path fill="url(#rmdd-drop)" d="M295.41,420.01c-12.31,0-22.29-9.99-22.29-22.31,0-5.3,1.89-10.43,5.34-14.46l46.37-54.33c7.99-9.37,22.07-10.49,31.44-2.5s10.49,22.07,2.5,31.44h0l-46.37,54.33c-4.24,4.97-10.46,7.83-16.99,7.82h0Z"/>\n <path fill="url(#rmdd-drop)" d="M195.75,420.01c-5.3,0-10.42-1.89-14.43-5.35-9.37-7.95-10.52-21.99-2.57-31.36.02-.02.03-.04.05-.06l46.42-54.33c7.75-9.57,21.79-11.05,31.36-3.3s11.05,21.79,3.3,31.36c-.24.3-.5.6-.76.89l-46.37,54.33c-4.24,4.97-10.46,7.83-16.99,7.82h0Z"/>\n <path fill="url(#rmdd-drop)" d="M96.14,420.01c-12.31,0-22.29-9.99-22.29-22.31,0-5.3,1.89-10.43,5.34-14.46l46.37-54.33c7.75-9.57,21.79-11.05,31.36-3.3s11.05,21.79,3.3,31.36c-.24.3-.5.6-.76.89l-46.37,54.33c-4.22,4.98-10.42,7.84-16.95,7.82h0Z"/>\n </g>\n\n <!-- One exported record travelling from the cloud to the laptop. -->\n <g id="rmdd-packet">\n <rect class="rmdd-pkt-frame" x="-31" y="-13" width="62" height="26" rx="7"/>\n <rect class="rmdd-primary" x="-22" y="-5" width="12" height="5" rx="2.5"/>\n <rect class="rmdd-muted-fg" x="-6" y="-5" width="27" height="5" rx="2.5"/>\n <rect class="rmdd-muted-fg" x="-22" y="3" width="17" height="4" rx="2" opacity=".6"/>\n <rect class="rmdd-muted-fg" x="0" y="3" width="15" height="4" rx="2" opacity=".6"/>\n </g>\n\n <path id="rmdd-flow-path" d="M338 178 C 440 178, 462 402, 560 402"/>\n </defs>\n\n <!-- Ground -->\n <ellipse class="rmdd-muted" cx="440" cy="526" rx="380" ry="7.5"/>\n\n <!-- RainMaker cloud, straight from the logo (viewBox 512 x 420), scaled down. -->\n <g transform="translate(48 30) scale(0.58)">\n <!-- Falling copies of the logo\'s rain, emitted continuously. -->\n <g data-variant="animated" opacity=".55">\n <use href="#rmdd-rain">\n <animateTransform attributeName="transform" type="translate" values="0 0; 0 160" dur="2.4s" begin="0s" repeatCount="indefinite"/>\n <animate attributeName="opacity" values="0;1;1;0" keyTimes="0;.12;.5;1" dur="2.4s" begin="0s" repeatCount="indefinite"/>\n </use>\n <use href="#rmdd-rain">\n <animateTransform attributeName="transform" type="translate" values="0 0; 0 160" dur="2.4s" begin="1.2s" repeatCount="indefinite"/>\n <animate attributeName="opacity" values="0;1;1;0" keyTimes="0;.12;.5;1" dur="2.4s" begin="1.2s" repeatCount="indefinite"/>\n </use>\n </g>\n\n <use href="#rmdd-rain"/>\n <circle fill="url(#rmdd-dot)" cx="113" cy="253.55" r="25.08">\n <animate attributeName="r" values="25.08;27.5;25.08" dur="2.4s" repeatCount="indefinite"/>\n </circle>\n <path fill="url(#rmdd-cloud)" d="M400.41,142.72h0C397.94,61.46,330.05-2.41,248.79.07,171.43,2.43,109.11,64.29,106.18,141.63h0C44.34,144.92-3.13,197.72.16,259.56c3.2,60.25,53.51,107.16,113.84,106.16h201.58c10.54-.84,20.1,6.2,22.43,16.52h0l20.77-24.38h0c3.57-4.17,5.45-9.51,5.3-14.99-.47-12.19-10.53-21.81-22.73-21.73H113.74c-37.31,1.14-68.47-28.18-69.61-65.49s28.18-68.47,65.49-69.61c1.11-.03,2.23-.04,3.34-.02,4.07,0,8.12.37,12.13,1.09,5.86,1.08,11.91-.25,16.78-3.69,7.2-4.74,11.02-13.2,9.82-21.73-.69-4.79-1.04-9.63-1.04-14.47,0-56.67,45.94-102.61,102.61-102.61s102.61,45.94,102.61,102.61v4.35h0c-41.09,17.61-67.82,57.91-68.06,102.61-.1,12.4,9.81,22.56,22.21,22.77,12.31.05,22.33-9.9,22.38-22.21v-.09c-.15-37.32,29.99-67.7,67.32-67.85,37.32-.15,67.7,29.99,67.85,67.32.07,17.03-6.3,33.45-17.82,45.99l-.3.39-66.37,76.54c-8.09,9.29-7.12,23.38,2.17,31.47s23.38,7.12,31.47-2.17h0l66.28-76.14c41.57-45.93,38.04-116.87-7.89-158.44-20.48-18.53-47.07-28.86-74.69-29.01h0v-.03Z"/>\n <path fill="url(#rmdd-cloud-top)" d="M253.21,20.42c71.54-.01,133.13,50.5,147.12,120.65C396.84,59.85,328.17-3.17,246.95.31c-76.06,3.26-137.08,63.98-140.73,140.02,14.27-69.82,75.72-119.95,146.99-119.91Z"/>\n <path fill="url(#rmdd-cloud-band)" d="M358.78,357.9h0c7.97-9.42,6.79-23.51-2.62-31.48-4.02-3.4-9.11-5.27-14.37-5.29H113c-37.3-.02-67.53-30.24-67.58-67.54,0-6.2.86-12.37,2.52-18.34,0,0-43.46,130.38,145.86,130.38h121.69c10.56-.84,20.12,6.22,22.43,16.56l20.86-24.3h0Z"/>\n <path fill="url(#rmdd-cloud-sweep)" d="M454.44,215.04c18.93,25.91,17,61.56-4.61,85.27l-.3.39-66.45,76.32c-8.09,9.29-7.12,23.38,2.17,31.47s23.38,7.12,31.47-2.17h0l17.38-19.99h0c88.14-101.83,20.34-171.28,20.34-171.28h0Z"/>\n </g>\n\n <!-- Connector: dashes flow from the cloud towards the laptop. -->\n <use href="#rmdd-flow-path" class="rmdd-flow">\n <animate attributeName="stroke-dashoffset" from="0" to="-18" dur="0.9s" repeatCount="indefinite"/>\n </use>\n\n <!-- Laptop -->\n <g id="rmdd-laptop">\n <rect class="rmdd-muted-fg" x="526.77" y="310.15" width="296.41" height="203.65" rx="29.36"/>\n <path class="rmdd-gray" d="M504.29,513.81h341.38c0,11.1-9.01,20.11-20.11,20.11h-301.15c-11.1,0-20.11-9.01-20.11-20.11h0Z"/>\n <path class="rmdd-muted" d="M649.88,513.81h50.2v.15c0,2.95-2.4,5.35-5.35,5.35h-39.51c-2.95,0-5.35-2.4-5.35-5.35v-.15h0Z"/>\n <circle class="rmdd-card" cx="674.98" cy="318.61" r="3.7"/>\n\n <rect class="rmdd-card" x="539.84" y="327.23" width="270.27" height="169.5"/>\n <rect class="rmdd-primary" x="539.84" y="327.23" width="270.27" height="17.44"/>\n <circle class="rmdd-card" cx="551" cy="335.95" r="2.6" opacity=".85"/>\n <circle class="rmdd-card" cx="560" cy="335.95" r="2.6" opacity=".85"/>\n <circle class="rmdd-card" cx="569" cy="335.95" r="2.6" opacity=".85"/>\n\n <!-- Table header -->\n <rect class="rmdd-muted" x="551" y="355" width="248" height="16" rx="3"/>\n <rect class="rmdd-muted-fg" x="558" y="361" width="34" height="4" rx="2"/>\n <rect class="rmdd-muted-fg" x="606" y="361" width="58" height="4" rx="2"/>\n <rect class="rmdd-muted-fg" x="682" y="361" width="42" height="4" rx="2"/>\n <rect class="rmdd-muted-fg" x="746" y="361" width="30" height="4" rx="2"/>\n\n <!--\n Rows: visible in the static frame. When animated, `set` hides them from\n t=0 and each lights up as a packet arrives (packet k lands at 3s + 1.5s * k).\n -->\n <g>\n <rect class="rmdd-primary-light" x="551" y="378" width="248" height="16" rx="3" opacity=".45"/>\n <rect class="rmdd-primary" x="558" y="384" width="34" height="4" rx="2"/>\n <rect class="rmdd-muted-fg" x="606" y="384" width="50" height="4" rx="2"/>\n <rect class="rmdd-muted-fg" x="682" y="384" width="36" height="4" rx="2"/>\n <rect class="rmdd-muted-fg" x="746" y="384" width="24" height="4" rx="2"/>\n <set attributeName="opacity" to="0" begin="0s" dur="indefinite"/>\n <animate attributeName="opacity" values="0;1;1;0" keyTimes="0;.06;.82;1" dur="4.5s" begin="3s" repeatCount="indefinite"/>\n </g>\n <g>\n <rect class="rmdd-primary-light" x="551" y="400" width="248" height="16" rx="3" opacity=".45"/>\n <rect class="rmdd-primary" x="558" y="406" width="34" height="4" rx="2"/>\n <rect class="rmdd-muted-fg" x="606" y="406" width="44" height="4" rx="2"/>\n <rect class="rmdd-muted-fg" x="682" y="406" width="40" height="4" rx="2"/>\n <rect class="rmdd-muted-fg" x="746" y="406" width="18" height="4" rx="2"/>\n <set attributeName="opacity" to="0" begin="0s" dur="indefinite"/>\n <animate attributeName="opacity" values="0;1;1;0" keyTimes="0;.06;.82;1" dur="4.5s" begin="4.5s" repeatCount="indefinite"/>\n </g>\n <g>\n <rect class="rmdd-primary-light" x="551" y="422" width="248" height="16" rx="3" opacity=".45"/>\n <rect class="rmdd-primary" x="558" y="428" width="34" height="4" rx="2"/>\n <rect class="rmdd-muted-fg" x="606" y="428" width="56" height="4" rx="2"/>\n <rect class="rmdd-muted-fg" x="682" y="428" width="30" height="4" rx="2"/>\n <rect class="rmdd-muted-fg" x="746" y="428" width="28" height="4" rx="2"/>\n <set attributeName="opacity" to="0" begin="0s" dur="indefinite"/>\n <animate attributeName="opacity" values="0;1;1;0" keyTimes="0;.06;.82;1" dur="4.5s" begin="6s" repeatCount="indefinite"/>\n </g>\n\n <!-- Download progress: two thirds full at rest, filling over the cycle when animated. -->\n <rect class="rmdd-muted" x="551" y="470" width="248" height="8" rx="4"/>\n <rect class="rmdd-primary" x="551" y="470" width="168" height="8" rx="4">\n <animate attributeName="width" values="0;248;248" keyTimes="0;.92;1" dur="4.5s" repeatCount="indefinite"/>\n </rect>\n\n <!-- Download badge -->\n <g transform="translate(786 452)">\n <circle class="rmdd-primary" r="11"/>\n <g fill="none" stroke="var(--color-primary-foreground)" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round">\n <path d="M0 -5.5 V3.5"/>\n <path d="M-3.8 0 L0 3.8 L3.8 0"/>\n <path d="M-5 6.5 H5"/>\n <animateTransform attributeName="transform" type="translate" values="0 -1.2; 0 1.2; 0 -1.2" dur="1.2s" repeatCount="indefinite"/>\n </g>\n </g>\n </g>\n\n <!-- Static frame: two records frozen part-way along the connector. -->\n <g data-variant="static">\n <use href="#rmdd-packet" x="422" y="241"/>\n <use href="#rmdd-packet" x="492" y="359"/>\n </g>\n\n <!-- Animated: three records in flight, arriving 1.5s apart. -->\n <g data-variant="animated">\n <use href="#rmdd-packet" opacity="0">\n <animateMotion dur="4.5s" begin="0s" repeatCount="indefinite" keyPoints="0;1;1" keyTimes="0;.667;1" calcMode="linear">\n <mpath href="#rmdd-flow-path"/>\n </animateMotion>\n <animate attributeName="opacity" values="0;1;1;0;0" keyTimes="0;.06;.6;.667;1" dur="4.5s" begin="0s" repeatCount="indefinite"/>\n </use>\n <use href="#rmdd-packet" opacity="0">\n <animateMotion dur="4.5s" begin="1.5s" repeatCount="indefinite" keyPoints="0;1;1" keyTimes="0;.667;1" calcMode="linear">\n <mpath href="#rmdd-flow-path"/>\n </animateMotion>\n <animate attributeName="opacity" values="0;1;1;0;0" keyTimes="0;.06;.6;.667;1" dur="4.5s" begin="1.5s" repeatCount="indefinite"/>\n </use>\n <use href="#rmdd-packet" opacity="0">\n <animateMotion dur="4.5s" begin="3s" repeatCount="indefinite" keyPoints="0;1;1" keyTimes="0;.667;1" calcMode="linear">\n <mpath href="#rmdd-flow-path"/>\n </animateMotion>\n <animate attributeName="opacity" values="0;1;1;0;0" keyTimes="0;.06;.6;.667;1" dur="4.5s" begin="3s" repeatCount="indefinite"/>\n </use>\n </g>\n</svg>\n';
|
|
16529
16529
|
|
|
16530
16530
|
// svg-raw:/builds/app-frameworks/esp-ui-component-library/src/assets/illustrations/secured-key.svg
|
|
16531
16531
|
var secured_key_default = '<?xml version="1.0" encoding="UTF-8"?>\n<svg id="secured-key" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 459.75 456.99">\n <defs>\n <style>\n .st0 {\n fill: var(--color-foreground);\n }\n\n .st1 {\n fill: var(--color-card);\n }\n\n .st2 {\n fill: var(--color-muted-foreground);\n }\n </style>\n </defs>\n <g id="shield">\n <g id="background">\n <path class="st0" d="M378.05,77.43l-22.49,170.1c-8.7,65.78-44.56,124.91-98.87,163.02l-52.54,36.87c-13.4,9.4-31.36,8.97-44.28-1.07l-45.96-35.69c-49.42-38.37-81.66-94.72-89.72-156.77L1.32,77.62C-.99,59.83,10.22,43.07,27.54,38.41L141.87,7.64c33.33-8.97,68.45-8.83,101.71.41l108.55,30.16c17.21,4.78,28.27,21.51,25.93,39.22Z"/>\n <path class="st1" d="M182.73,455.25c-8.28,0-16.55-2.71-23.48-8.1l-45.96-35.69c-24.7-19.18-45.1-42.67-60.63-69.81-15.53-27.14-25.45-56.63-29.47-87.64L.31,77.75c-2.36-18.22,9.23-35.56,26.97-40.33L141.6,6.65c33.48-9.01,68.83-8.87,102.24.41l108.55,30.16c17.6,4.89,29.06,22.23,26.67,40.34l-22.49,170.1c-8.71,65.88-44.9,125.55-99.29,163.72l-52.54,36.87c-6.66,4.67-14.34,7-22.01,7ZM191.96,2.04c-16.76,0-33.52,2.19-49.83,6.58L27.81,39.4C11.05,43.91.1,60.28,2.33,77.49l22.88,176.26c8.07,62.19,39.79,117.63,89.33,156.09l45.96,35.69c12.65,9.82,29.96,10.24,43.07,1.04l52.54-36.87c53.93-37.84,89.81-97.01,98.44-162.32l22.49-170.1c2.26-17.1-8.57-33.48-25.19-38.1l-108.55-30.16c-16.78-4.66-34.06-6.99-51.33-6.99ZM378.05,77.43h0,0Z"/>\n </g>\n <g id="foreground">\n <path class="st1" d="M396.29,79.17l-22.49,170.1c-8.7,65.78-44.56,124.91-98.87,163.02l-52.54,36.87c-13.4,9.4-31.36,8.97-44.28-1.07l-45.96-35.69c-49.42-38.37-81.66-94.72-89.72-156.77L19.56,79.36c-2.31-17.79,8.9-34.55,26.22-39.21l114.32-30.77c33.33-8.97,68.45-8.83,101.71.41l108.55,30.16c17.21,4.78,28.27,21.51,25.93,39.22Z"/>\n <path class="st0" d="M200.97,456.99c-8.28,0-16.54-2.71-23.48-8.1l-45.96-35.69c-24.7-19.18-45.1-42.67-60.63-69.81-15.53-27.14-25.45-56.63-29.47-87.64L18.55,79.49c-2.37-18.22,9.23-35.56,26.97-40.33l114.33-30.77c33.48-9.01,68.84-8.87,102.24.41l108.55,30.16c17.6,4.89,29.06,22.23,26.67,40.34l-22.49,170.1c-8.71,65.88-44.9,125.55-99.29,163.72l-52.54,36.87c-6.66,4.67-14.34,7-22.01,7ZM210.21,3.78c-16.76,0-33.52,2.19-49.83,6.58l-114.33,30.77c-16.76,4.51-27.71,20.89-25.47,38.09l22.88,176.26c8.07,62.19,39.8,117.63,89.33,156.09l45.96,35.69c12.65,9.82,29.96,10.24,43.07,1.04l52.54-36.87c53.93-37.84,89.81-97.01,98.44-162.32l22.49-170.1,1.01.13-1.01-.13c2.26-17.1-8.57-33.48-25.19-38.1l-108.55-30.16c-16.78-4.66-34.06-6.99-51.33-6.99Z"/>\n </g>\n </g>\n <path id="key" class="st2" d="M98.84,294.41c6.8,19.51,26,38.63,49.43,34.99,18.52-2.87,34.5-17.68,43.24-34.13,7.26-13.66,9.55-30.84,1.61-41.75,14.44-10.8,26.96-25.03,39.69-37.72,4.59-4.57,9.21-9.08,13.89-13.54-.11.58,0,1.2.42,1.79,5.52,7.65,12.99,14.24,19.53,21.02.77.79,2.31.9,3.23-.07,3.45-3.63,6.12-7.49,8.73-11.63.07.14.15.27.26.37.94.86,2.46,1.28,3.63.07,1.33-1.37.9-2.95.09-4.21-1.47-2.27-3.31-4.26-5.18-6.2.27-.24.54-.49.58-.54.61-.63,1.22-1.26,1.83-1.89.63-.65,1.24-1.32,1.85-1.99,1.32,2.05,3.95,3.98,5.23,5.36.64.68,2.02,1.02,2.96.34,5.89-4.28,10.74-9.83,12.78-16.71.86-.22,1.59-.87,1.7-1.89.17-1.68-.94-2.89-1.72-4.18-.46-.75-.92-1.51-1.39-2.25.73-.17,1.46-.38,2.21-.66,3.15-1.18,5.47-.06,8.11,1.32.75.39,2.01.38,2.7-.42,1.98-2.31,2.81-5.07,4.74-7.4.37-.44.38-.89.22-1.25,1.09-.89,1.64-2.43.55-3.63-3.7-4.04-7.47-7.99-11.36-11.85-1.49-1.48-4.1-4.97-6.86-6.45,2.88-3.5,5.42-7.19,7.14-11.09,2.94-6.69-2.72-9.13-8.42-8.15-10.76,1.84-21.62,12.81-29.44,20.06-11.67,10.82-22.38,22.66-33.17,34.33-12.08,13.07-25.27,24.9-38.32,37.02-6.72,6.24-13.27,12.65-19.72,19.16-16.04-11.64-38.74-12.89-58.53-2.08-21.79,11.9-29.38,35.38-22.24,55.86ZM127.82,287.93c4.06-2.79,10.77-.97,11.96,3.33.85,3.11-.47,6.94-2.87,9.47-2.24,2.37-5.08,2.91-7.88,2.73-.03-.44-.18-.87-.52-1.27-2.61-3.09-5.7-10.81-.69-14.26Z"/>\n <g id="tick-circle">\n <path class="st0" d="M423.55,19.42c.37.24.75-.31.39-.56-.83-.58-1.78-.94-2.74-1.24-.75-.24-1.73-.71-2.51-.43l-.07.33c.5.59,1.47.61,2.18.8.96.26,1.92.57,2.76,1.11Z"/>\n <path class="st0" d="M412.34,16.75c.34-.28-.1-.81-.44-.53-.34.28.1.81.44.53Z"/>\n <polygon class="st0" points="368.27 60.45 368.21 60.26 367.91 60.05 367.64 60.13 367.5 60.38 367.54 60.57 367.66 60.72 367.84 60.81 368.02 60.86 368.19 60.8 368.28 60.67 368.27 60.45"/>\n <path class="st0" d="M447.17,59.37c.08-2.17-.31-4.21-.96-6.28l-.05.02c.39,2.13.53,4.32.39,6.49-.13,2-.86,3.93-.96,5.91l.38.14c.95-1.8,1.13-4.27,1.2-6.27Z"/>\n <path class="st0" d="M368.47,62.42c-.55.46.16,1.31.71.85.55-.46-.16-1.31-.71-.85Z"/>\n <path class="st0" d="M449.03,58.97c-.28,6.1-2.63,10.3-4.94,15.7-.13.3.27.54.5.35,4.34-3.43,5.68-10.7,5.76-15.93.1-6.33-1.36-12.5-4.68-17.91l-.05.02c2.37,5.59,3.68,11.68,3.41,17.77Z"/>\n <path class="st0" d="M444.08,68.61c.23-.2-.07-.56-.3-.36-.23.2.07.56.3.36Z"/>\n <polygon class="st0" points="442.85 78.76 443 78.79 443.12 78.78 443.24 78.75 443.46 78.53 443.51 78.3 443.4 78.01 442.96 77.85 442.84 77.88 442.69 78 442.57 78.27 442.57 78.42 442.64 78.65 442.85 78.76"/>\n <path class="st0" d="M392.72,90.36c-.27-.02-.5.22-.45.49.04.25.35.45.59.31l.39-.23.17-.31-.26-.24-.44-.03Z"/>\n <path class="st0" d="M453.43,30.36c-12.43-23.53-43.73-34.39-70.13-21.97-29.34,13.8-32.64,46.32-20.42,70.74,10.15,20.29,32.54,31.34,55.08,26.4,10.16-1.69,18.65-6.53,25.22-13.23,18.05-16.62,21.19-42.73,10.25-61.93ZM422.78,101.22c-35.07,11.39-63.96-19.82-62.88-52.37.62-18.74,13.77-33.73,32.19-38.79,15.33-4.21,31.37-1.67,43.6,6.5,3.51,2.35,6.71,5.16,9.49,8.41,9.12,10.66,13.87,25.53,10.96,40.13-3.32,16.55-17.13,30.85-33.36,36.12Z"/>\n <path class="st0" d="M423.19,54.17h-.17c.3.05.6.1.9.14l-.21-.05-.53-.09Z"/>\n <path class="st0" d="M417.57,10.57c-25.19-6.85-52.38,8.9-55.51,36.24-3.12,27.35,19.73,52.97,47.37,53.17,9.88.07,19.93-3.83,28.02-9.98,7.4-5.63,13.76-14.09,16.09-22.92,3.7-14.07-2.39-30.7-11.13-40.88-6.42-7.47-15.08-12.98-24.84-15.64ZM450.54,69.05c-3.35,13.1-16.77,23.25-29.48,26.82-5.15,1.45-10.49,1.92-15.65,1.37-25.13-2.7-44.79-28.08-40.56-53.31,4.66-27.84,34.6-38.82,57.87-29.06,20.14,8.45,33.56,31.72,27.82,54.17Z"/>\n <path class="st0" d="M373.93,34.82c-2.66,1.85-3.04,5.33-3.74,8.26-.68,2.87-1.97,7.06-.28,9.72.15.23.56.14.63-.11.34-1.28.1-2.43.14-3.76.04-1.57.28-3.14.57-4.68.55-2.89.83-6.83,3.05-8.98.27-.26-.07-.66-.37-.45Z"/>\n <path class="st0" d="M371.64,55.89c-.12-.2-.29-.37-.54-.38l-.48.15-.23.45c-.02.25.1.45.28.6l.19.16c.22.17.54.17.76-.01.22-.18.28-.5.15-.75l-.12-.21Z"/>\n <path class="st0" d="M409.81,94.95c-2.75.26-5.51-.14-8.15-.9-2.03-.59-3.93-1.77-6-2.15-.39-.07-.69.49-.41.78,1.63,1.62,4.34,2.13,6.51,2.58,2.69.56,5.43.76,8.15.32.41-.07.3-.66-.11-.62Z"/>\n <path class="st0" d="M392.91,17.51l.15-.22c-5.25-3.4-12.79,4.09-16.31,7.26-9.04,8.14-11.92,20.29-10.31,32.08.09.68,1.15.64,1.2-.05.82-10.48.56-20.08,8-28.58,3.07-3.51,12.28-13.22,17.26-10.49Z"/>\n <path class="st0" d="M415.04,39.52c-4.34,1.84-7.77,4.29-11.63,6.79-1.84,1.2-4.72,4.51-7.46,3.24-1.08-.5-4.65-8.38-5.44-9.55-.35-.53-1.09-.68-1.56-.2-4.49,4.5-12.73,9.41-15.4,15.41-.29.64.06,1.24.55,1.5,1.97,4.7,5.61,8.32,8.48,12.62,2.95,4.42,5.25,9.05,8.76,13.07.64.73,2.13.59,2.54-.33,7.67-17.02,28.05-43.3,48.86-42.48.81.03.91-1.14.19-1.37-9.83-3.15-18.36-2.73-27.89,1.3ZM413.72,50.78s-.09,0-.14.01c-.41.2-.8.48-1.17.79-.12,0-.25.03-.35.14-2.77,2.95-5.94,5.74-8.87,8.71.23-.3.46-.62.69-.92,3.76-4.98,8.15-8.18,12.82-11.19-1.03.79-2.02,1.6-2.98,2.45ZM388.18,44.92s0,0,0,0c0,.3-.02.61,0,.93-.33-.03-.73.24-.59.62.31.86.67,1.69,1.04,2.53.08.36.15.72.25,1.08-.44-.5-.9-.98-1.37-1.45-.07-.77-.16-1.54-.29-2.29-.08-.48-.4-.67-.76-.68.64-.37,1.2-.6,1.71-.73ZM379.52,54.86c.2.51.41,1.01.64,1.5-.03.28-.07.56-.09.84-.43-.34-.86-.69-1.3-1.01,0,0,0,0,0,0,0,0,0,0,0,0-.05-.03-.09-.07-.14-.11-.34-.25-.73-.03-.91.29-.28-.61-.41-1.09-.31-1.34.76.08,1.48.04,2.12-.16ZM382.91,58.56c.93,1.16,1.84,2.33,2.69,3.56.29.42.54.88.83,1.31-.5-.6-1-1.2-1.53-1.77-.64-1.05-1.31-2.07-1.99-3.1ZM384.39,58.04s.04-.03.05-.04c.09.14.19.29.28.43-.11-.13-.22-.26-.33-.39ZM385.74,55.68c.41.51.79,1.05,1.13,1.61.18.53.39,1.05.64,1.58.1.2.27.33.47.41.21.42.43.84.64,1.27-.95-1.43-2.17-2.84-3.09-4.36.08-.17.15-.33.22-.5ZM388.39,55.35c-.05-.17-.09-.35-.13-.53.06.12.12.24.17.36-.01.06-.03.11-.04.16ZM389.7,57.95c.23.51.45,1.03.66,1.55-.25-.45-.5-.91-.75-1.36.03-.06.06-.13.08-.19ZM385.03,47.83c-.02.15-.03.3.05.47.03.06.05.11.08.17-.11,1.27-.22,2.56-.43,3.82-.24-.16-.46-.34-.71-.48.02-.52.04-1.04.09-1.57.23-.44.43-.88.62-1.33.1-.23.07-.46-.02-.66.11-.13.22-.27.33-.42ZM391.16,65.15c.37.54.79,1.04,1.25,1.52-.09.18-.18.35-.26.53-.32-.69-.65-1.37-.98-2.05ZM390.58,55.21c.04-.19.06-.39.1-.58.49.98,1.03,1.91,1.61,2.73.64,1.21,1.26,2.45,1.87,3.68-.11.3-.26.6-.36.91-.11.35.38.52.57.24.07-.1.15-.2.22-.3.09.17.18.35.27.52-.26.39-.5.78-.74,1.18-.84-2.96-2.11-5.7-3.54-8.38ZM391.66,52.2c-.25-.61-.48-1.23-.68-1.86-.01-.45-.03-.9-.06-1.35.21.31.42.63.63.94.48,1.33.85,2.69,1.1,4.06-.33-.6-.66-1.19-.99-1.79ZM394.94,58.37c.04-.11.11-.21.11-.33-.02-1.13-.14-2.23-.33-3.32.18.35.35.69.49,1.04,0,.02.01.03.02.05.23.6.37,1.19.35,1.74,0,.09.03.2.08.3-.18.31-.36.63-.52.95-.06-.14-.12-.28-.19-.42ZM388.85,52.06c-.05-.09-.1-.18-.16-.28.06.07.1.14.16.21,0,.02,0,.05,0,.07ZM391.07,76.22c.09-.18.14-.38.13-.61.19,0,.39-.03.56-.11-.06.23-.11.46-.17.69-.17.04-.34.05-.52.03ZM392.23,73.65c-.16-.5-.35-.99-.54-1.48.07.13.15.26.22.38.14.25.33.39.52.48-.06.21-.14.41-.2.62ZM393.44,70.02c-.26-.58-.53-1.15-.8-1.73.17-.33.35-.66.53-.98.81.27,1.69-.48,1.5-1.41-.05-.27-.13-.54-.2-.81.4-.62.81-1.24,1.24-1.85.5,0,1.04-.42.84-1-.01-.04-.03-.07-.04-.11,1.64-2.23,3.44-4.35,5.22-6.31-3.51,4.24-6.34,9.05-8.29,14.2ZM408.77,48.85c.23-.19.47-.37.7-.55-.23.18-.47.37-.7.55ZM419.22,42.44c-.59.26-1.17.53-1.74.81.58-.28,1.15-.56,1.74-.81ZM416.45,43.76c-.91.48-1.81.98-2.69,1.52.88-.54,1.77-1.05,2.69-1.52ZM413.45,45.47c-.81.51-1.59,1.05-2.37,1.6.77-.57,1.57-1.09,2.37-1.6ZM403.87,51.53c-2.67,2.68-5.48,5.83-7.89,9.22-.07-.18-.13-.36-.21-.53,2.33-3.12,5.05-6.06,8.09-8.68ZM376.52,58.06c-.38-.64-.72-1.28-1.03-1.91.01-.03.03-.05.05-.08.29.67.62,1.34.98,1.99ZM392.55,75.61c.94-2.03,1.94-4.03,3-5.99-1.14,2.53-1.94,4.9-3,5.99ZM426.68,41.87c.17-.12.15-.34.03-.45.92-.27,1.87-.5,2.83-.71-1.27.53-2.5,1.1-3.71,1.74.28-.2.57-.37.85-.58ZM433.44,39.23c-.12.04-.24.08-.36.12,0-.05,0-.09,0-.14.12,0,.24.02.36.02ZM418.81,40.85c-.16.07-.31.15-.47.22-1.76.6-3.52,1.31-5.24,2.1,1.86-.9,3.76-1.69,5.71-2.32ZM397.64,54.1c.46-.27.9-.56,1.34-.85-.58.65-1.13,1.32-1.64,2-.09-.34-.17-.67-.27-1,.19,0,.38-.04.57-.15ZM393.88,75.67c.45-1.14.96-2.28,1.54-3.41.1,0,.2-.02.26-.13,1.73-3.5,4.19-6.28,6.83-8.89-1.62,2.12-3.21,4.28-4.82,6.45-.4.53-2.38,3.98-3.81,5.98ZM431.3,39.98s0-.06,0-.09c.09,0,.18,0,.27-.01-.08.03-.18.07-.26.09,0,0,0,0-.01,0Z"/>\n </g>\n</svg>\n';
|
|
@@ -16588,6 +16588,18 @@ var illustrationRegistry = [
|
|
|
16588
16588
|
var illustrationsById = Object.fromEntries(
|
|
16589
16589
|
illustrationRegistry.map((e) => [e.id, e])
|
|
16590
16590
|
);
|
|
16591
|
+
|
|
16592
|
+
// src/components/illustration/illustration-variants.ts
|
|
16593
|
+
var STATIC_ONLY_GROUP_RE = /<g\s[^>]*data-variant="static"[^>]*>[\s\S]*?<\/g>\s*/g;
|
|
16594
|
+
var ANIMATED_ONLY_GROUP_RE = /<g\s[^>]*data-variant="animated"[^>]*>[\s\S]*?<\/g>\s*/g;
|
|
16595
|
+
var ANIMATE_MOTION_BLOCK_RE = /<animateMotion\b[^>]*>[\s\S]*?<\/animateMotion>\s*/g;
|
|
16596
|
+
var SMIL_ELEMENT_RE = /<(?:animate|animateTransform|animateMotion|set)\b[^>]*\/>\s*/g;
|
|
16597
|
+
function selectIllustrationVariant(svg, animated) {
|
|
16598
|
+
if (animated) {
|
|
16599
|
+
return svg.replace(STATIC_ONLY_GROUP_RE, "");
|
|
16600
|
+
}
|
|
16601
|
+
return svg.replace(ANIMATED_ONLY_GROUP_RE, "").replace(ANIMATE_MOTION_BLOCK_RE, "").replace(SMIL_ELEMENT_RE, "");
|
|
16602
|
+
}
|
|
16591
16603
|
function escapeAttr(value2) {
|
|
16592
16604
|
return value2.replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<");
|
|
16593
16605
|
}
|
|
@@ -16601,7 +16613,7 @@ function buildSvgHtml(svgSource, options) {
|
|
|
16601
16613
|
);
|
|
16602
16614
|
}
|
|
16603
16615
|
var Illustration = forwardRef(
|
|
16604
|
-
function Illustration2({ type, size, alt, className, ...rest }, ref) {
|
|
16616
|
+
function Illustration2({ type, size, alt, animated = false, className, ...rest }, ref) {
|
|
16605
16617
|
const entry = type in illustrationsById ? illustrationsById[type] : void 0;
|
|
16606
16618
|
const label = alt?.trim();
|
|
16607
16619
|
const decorative = !label;
|
|
@@ -16619,13 +16631,13 @@ var Illustration = forwardRef(
|
|
|
16619
16631
|
}
|
|
16620
16632
|
const html = useMemo(() => {
|
|
16621
16633
|
if (!entry) return "";
|
|
16622
|
-
return buildSvgHtml(entry.svg, {
|
|
16634
|
+
return buildSvgHtml(selectIllustrationVariant(entry.svg, animated), {
|
|
16623
16635
|
decorative,
|
|
16624
16636
|
alt: label,
|
|
16625
16637
|
pixelW,
|
|
16626
16638
|
pixelH
|
|
16627
16639
|
});
|
|
16628
|
-
}, [entry, decorative, label, pixelW, pixelH]);
|
|
16640
|
+
}, [entry, animated, decorative, label, pixelW, pixelH]);
|
|
16629
16641
|
if (!entry) return null;
|
|
16630
16642
|
const fixedSquare = size != null;
|
|
16631
16643
|
const fillParentWidth = !fixedSquare && entry.aspectRatio != null;
|
|
@@ -16813,7 +16825,9 @@ function SectionCard({
|
|
|
16813
16825
|
truncateSecondaryText = true,
|
|
16814
16826
|
actions,
|
|
16815
16827
|
allowCollapse = true,
|
|
16828
|
+
hideCollapseIcon = false,
|
|
16816
16829
|
defaultOpen = true,
|
|
16830
|
+
open: controlledOpen,
|
|
16817
16831
|
size = "default",
|
|
16818
16832
|
variant = "outline",
|
|
16819
16833
|
color = "gray",
|
|
@@ -16829,16 +16843,20 @@ function SectionCard({
|
|
|
16829
16843
|
const collapseButtonColor = variantStyles != null && isPresetColor(resolvedColor) ? resolvedColor : "gray";
|
|
16830
16844
|
const primaryClass = variantStyles != null ? cn(s.primaryTypography, variantStyles.foreground) : s.primary;
|
|
16831
16845
|
const secondaryClass = variantStyles != null ? cn(s.secondaryTypography, variantStyles.description) : s.secondary;
|
|
16832
|
-
const [
|
|
16846
|
+
const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);
|
|
16833
16847
|
useEffect(() => {
|
|
16834
|
-
|
|
16848
|
+
setUncontrolledOpen(defaultOpen);
|
|
16835
16849
|
}, [defaultOpen]);
|
|
16850
|
+
const isOpenControlled = controlledOpen !== void 0;
|
|
16851
|
+
const open = isOpenControlled ? controlledOpen : uncontrolledOpen;
|
|
16836
16852
|
const toggleLabel = typeof primaryText === "string" ? `Toggle ${primaryText}` : "Toggle section";
|
|
16837
16853
|
const hasPrimaryText = hasRenderableContent(primaryText);
|
|
16838
16854
|
const hasSecondaryText = hasRenderableContent(secondaryText);
|
|
16839
16855
|
const hasHeaderText = hasPrimaryText || hasSecondaryText;
|
|
16840
16856
|
const hasIcon = hasRenderableContent(icon);
|
|
16841
|
-
const
|
|
16857
|
+
const showCollapseIcon = allowCollapse && !hideCollapseIcon;
|
|
16858
|
+
const hasHeaderRight = hasRenderableContent(actions) || showCollapseIcon;
|
|
16859
|
+
const headerMainPad = hasHeaderRight ? s.headerTriggerPad : s.pad;
|
|
16842
16860
|
const isHeaderRequired = hasIcon || hasHeaderText || hasHeaderRight;
|
|
16843
16861
|
const hasBody = hasRenderableContent(children);
|
|
16844
16862
|
const headerMain = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -16921,7 +16939,7 @@ function SectionCard({
|
|
|
16921
16939
|
) });
|
|
16922
16940
|
const headerRight = hasHeaderRight ? /* @__PURE__ */ jsxs("div", { className: cn("flex shrink-0 items-center gap-2", s.headerRightPad), children: [
|
|
16923
16941
|
actions,
|
|
16924
|
-
|
|
16942
|
+
showCollapseIcon ? chevronButton : null
|
|
16925
16943
|
] }) : null;
|
|
16926
16944
|
const header = allowCollapse ? /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 items-center justify-between", children: [
|
|
16927
16945
|
/* @__PURE__ */ jsx(CollapsibleTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
@@ -16931,7 +16949,7 @@ function SectionCard({
|
|
|
16931
16949
|
className: cn(
|
|
16932
16950
|
"section-card-header",
|
|
16933
16951
|
"flex min-w-0 flex-1 items-center text-left rounded-md",
|
|
16934
|
-
|
|
16952
|
+
headerMainPad,
|
|
16935
16953
|
s.gap,
|
|
16936
16954
|
"cursor-pointer outline-none transition-colors hover:bg-muted/50",
|
|
16937
16955
|
"focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"
|
|
@@ -16949,7 +16967,7 @@ function SectionCard({
|
|
|
16949
16967
|
"section-card-header",
|
|
16950
16968
|
"flex min-w-0 flex-1 items-center",
|
|
16951
16969
|
s.gap,
|
|
16952
|
-
|
|
16970
|
+
headerMainPad
|
|
16953
16971
|
),
|
|
16954
16972
|
children: headerMain
|
|
16955
16973
|
}
|
|
@@ -16999,7 +17017,7 @@ function SectionCard({
|
|
|
16999
17017
|
{
|
|
17000
17018
|
open,
|
|
17001
17019
|
onOpenChange: (next) => {
|
|
17002
|
-
|
|
17020
|
+
if (!isOpenControlled) setUncontrolledOpen(next);
|
|
17003
17021
|
onOpenChange?.(next);
|
|
17004
17022
|
},
|
|
17005
17023
|
children: [
|
|
@@ -48650,32 +48668,77 @@ var Select = SelectPrimitive.Root;
|
|
|
48650
48668
|
var SelectGroup = SelectPrimitive.Group;
|
|
48651
48669
|
var SelectValue = SelectPrimitive.Value;
|
|
48652
48670
|
var triggerSizeClasses = {
|
|
48653
|
-
sm: "h-8 px-3 text-xs
|
|
48654
|
-
default: "h-10 px-3.5 py-2 text-base md:text-sm
|
|
48655
|
-
lg: "h-12 px-5 text-lg
|
|
48671
|
+
sm: "h-8 px-3 text-xs",
|
|
48672
|
+
default: "h-10 px-3.5 py-2 text-base md:text-sm",
|
|
48673
|
+
lg: "h-12 px-5 text-lg"
|
|
48656
48674
|
};
|
|
48657
|
-
var
|
|
48658
|
-
|
|
48659
|
-
{
|
|
48660
|
-
|
|
48661
|
-
|
|
48662
|
-
|
|
48663
|
-
|
|
48664
|
-
|
|
48665
|
-
|
|
48666
|
-
|
|
48667
|
-
|
|
48668
|
-
|
|
48669
|
-
|
|
48670
|
-
|
|
48675
|
+
var triggerIconClassName = "size-4 shrink-0 opacity-50";
|
|
48676
|
+
var SelectTrigger = React10.forwardRef(
|
|
48677
|
+
({
|
|
48678
|
+
className,
|
|
48679
|
+
children,
|
|
48680
|
+
size = "default",
|
|
48681
|
+
label,
|
|
48682
|
+
required,
|
|
48683
|
+
hintContent,
|
|
48684
|
+
error,
|
|
48685
|
+
errorContent,
|
|
48686
|
+
id,
|
|
48687
|
+
"aria-describedby": ariaDescribedBy,
|
|
48688
|
+
...props
|
|
48689
|
+
}, ref) => {
|
|
48690
|
+
const autoId = React10.useId();
|
|
48691
|
+
const hasEnhancedProps = label !== void 0 || required !== void 0 || hintContent !== void 0 || error !== void 0 || errorContent !== void 0;
|
|
48692
|
+
const hasError = error || !!errorContent;
|
|
48693
|
+
const triggerId = id ?? (hasEnhancedProps ? autoId : void 0);
|
|
48694
|
+
const errorId = errorContent ? `${triggerId}-error` : void 0;
|
|
48695
|
+
const describedBy = [ariaDescribedBy, errorId].filter(Boolean).join(" ") || void 0;
|
|
48696
|
+
const trigger = /* @__PURE__ */ jsxs(
|
|
48697
|
+
SelectPrimitive.Trigger,
|
|
48698
|
+
{
|
|
48699
|
+
ref,
|
|
48700
|
+
id: triggerId,
|
|
48701
|
+
"aria-required": required || void 0,
|
|
48702
|
+
"aria-invalid": hasError || void 0,
|
|
48703
|
+
"aria-describedby": describedBy,
|
|
48704
|
+
className: cn(
|
|
48705
|
+
"flex w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-background ring-offset-background transition-[box-shadow,border-color] duration-200 ease-in-out data-[placeholder]:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
|
|
48706
|
+
triggerSizeClasses[size],
|
|
48707
|
+
hasError && "border-destructive focus-visible:ring-destructive",
|
|
48708
|
+
className
|
|
48709
|
+
),
|
|
48710
|
+
...props,
|
|
48711
|
+
children: [
|
|
48712
|
+
children,
|
|
48713
|
+
/* @__PURE__ */ jsx(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
48714
|
+
ChevronDown,
|
|
48715
|
+
{
|
|
48716
|
+
"data-slot": "select-icon",
|
|
48717
|
+
className: triggerIconClassName
|
|
48718
|
+
}
|
|
48719
|
+
) })
|
|
48720
|
+
]
|
|
48721
|
+
}
|
|
48722
|
+
);
|
|
48723
|
+
if (!hasEnhancedProps) {
|
|
48724
|
+
return trigger;
|
|
48725
|
+
}
|
|
48726
|
+
return /* @__PURE__ */ jsxs("div", { className: "space-y-2 flex-1", children: [
|
|
48727
|
+
label && /* @__PURE__ */ jsx(
|
|
48728
|
+
FieldLabelRow,
|
|
48671
48729
|
{
|
|
48672
|
-
|
|
48673
|
-
|
|
48730
|
+
htmlFor: triggerId,
|
|
48731
|
+
label,
|
|
48732
|
+
required,
|
|
48733
|
+
hintContent
|
|
48674
48734
|
}
|
|
48675
|
-
)
|
|
48676
|
-
|
|
48735
|
+
),
|
|
48736
|
+
!label && hintContent && /* @__PURE__ */ jsx("span", { className: fieldHintClassName, children: hintContent }),
|
|
48737
|
+
trigger,
|
|
48738
|
+
errorContent && /* @__PURE__ */ jsx("div", { id: errorId, className: "text-sm text-destructive", children: errorContent })
|
|
48739
|
+
] });
|
|
48677
48740
|
}
|
|
48678
|
-
)
|
|
48741
|
+
);
|
|
48679
48742
|
SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
|
|
48680
48743
|
var SelectScrollUpButton = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
48681
48744
|
SelectPrimitive.ScrollUpButton,
|
|
@@ -49493,7 +49556,11 @@ var FormLabel = React10.forwardRef(({ className, ...props }, ref) => {
|
|
|
49493
49556
|
Label,
|
|
49494
49557
|
{
|
|
49495
49558
|
ref,
|
|
49496
|
-
className: cn(
|
|
49559
|
+
className: cn(
|
|
49560
|
+
"flex items-center gap-2",
|
|
49561
|
+
error && "text-destructive",
|
|
49562
|
+
className
|
|
49563
|
+
),
|
|
49497
49564
|
htmlFor: formItemId,
|
|
49498
49565
|
...props
|
|
49499
49566
|
}
|
|
@@ -52264,6 +52331,12 @@ var stateVisuals = {
|
|
|
52264
52331
|
titleClass: "text-success",
|
|
52265
52332
|
descriptionClass: "text-success/80"
|
|
52266
52333
|
},
|
|
52334
|
+
warning: {
|
|
52335
|
+
avatarColor: "warning",
|
|
52336
|
+
endIconClass: "text-warning",
|
|
52337
|
+
titleClass: "text-warning",
|
|
52338
|
+
descriptionClass: "text-warning/80"
|
|
52339
|
+
},
|
|
52267
52340
|
error: {
|
|
52268
52341
|
avatarColor: "error",
|
|
52269
52342
|
endIconClass: "text-error",
|
|
@@ -52285,6 +52358,7 @@ var stateVisuals = {
|
|
|
52285
52358
|
};
|
|
52286
52359
|
var stateSurfaceCssVar = {
|
|
52287
52360
|
success: "--color-success",
|
|
52361
|
+
warning: "--color-warning",
|
|
52288
52362
|
error: "--color-error",
|
|
52289
52363
|
in_progress: "--color-primary",
|
|
52290
52364
|
not_started: "--color-gray"
|
|
@@ -52397,6 +52471,8 @@ function StatusEndIndicator({
|
|
|
52397
52471
|
switch (state) {
|
|
52398
52472
|
case "success":
|
|
52399
52473
|
return /* @__PURE__ */ jsx(CheckCircle2, { className: cls, "aria-hidden": true });
|
|
52474
|
+
case "warning":
|
|
52475
|
+
return /* @__PURE__ */ jsx(TriangleAlert, { className: cls, "aria-hidden": true });
|
|
52400
52476
|
case "error":
|
|
52401
52477
|
return /* @__PURE__ */ jsx(XCircle, { className: cls, "aria-hidden": true });
|
|
52402
52478
|
case "in_progress":
|
|
@@ -52715,15 +52791,15 @@ var Spinner = React10.forwardRef(function Spinner2({
|
|
|
52715
52791
|
"aria-labelledby": ariaLabelledby,
|
|
52716
52792
|
...rest
|
|
52717
52793
|
}, ref) {
|
|
52718
|
-
const
|
|
52794
|
+
const resolved2 = color != null ? resolveColor(color, "text") : void 0;
|
|
52719
52795
|
const ariaLabelResolved = ariaLabelledby != null ? void 0 : ariaLabel !== void 0 ? ariaLabel : "Loading";
|
|
52720
52796
|
return /* @__PURE__ */ jsx(
|
|
52721
52797
|
LoaderCircle,
|
|
52722
52798
|
{
|
|
52723
52799
|
ref,
|
|
52724
52800
|
...rest,
|
|
52725
|
-
className: cn("animate-spin",
|
|
52726
|
-
style: { ...
|
|
52801
|
+
className: cn("animate-spin", resolved2?.className, className),
|
|
52802
|
+
style: { ...resolved2?.style, ...style },
|
|
52727
52803
|
size: size ?? "1em",
|
|
52728
52804
|
"aria-label": ariaLabelResolved,
|
|
52729
52805
|
"aria-labelledby": ariaLabelledby
|
|
@@ -55889,35 +55965,59 @@ function CalendarDayButton({
|
|
|
55889
55965
|
);
|
|
55890
55966
|
}
|
|
55891
55967
|
Calendar.displayName = "Calendar";
|
|
55892
|
-
|
|
55893
|
-
|
|
55894
|
-
|
|
55895
|
-
|
|
55896
|
-
|
|
55897
|
-
|
|
55898
|
-
|
|
55899
|
-
|
|
55900
|
-
|
|
55901
|
-
|
|
55902
|
-
|
|
55903
|
-
|
|
55904
|
-
|
|
55905
|
-
|
|
55906
|
-
|
|
55907
|
-
|
|
55908
|
-
|
|
55909
|
-
|
|
55910
|
-
|
|
55911
|
-
|
|
55912
|
-
|
|
55913
|
-
|
|
55914
|
-
|
|
55915
|
-
|
|
55968
|
+
var FIELD_ICON_SIZE = 16;
|
|
55969
|
+
function FieldEndIcons({ icon, onClear, clearLabel = "Clear", className }) {
|
|
55970
|
+
return /* @__PURE__ */ jsxs("span", { className: cn("flex items-center gap-1.5", className), children: [
|
|
55971
|
+
onClear && /* @__PURE__ */ jsx(
|
|
55972
|
+
"button",
|
|
55973
|
+
{
|
|
55974
|
+
type: "button",
|
|
55975
|
+
"aria-label": clearLabel,
|
|
55976
|
+
onClick: onClear,
|
|
55977
|
+
className: "pointer-events-auto rounded-sm text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
55978
|
+
children: /* @__PURE__ */ jsx(XIcon, { size: FIELD_ICON_SIZE, "aria-hidden": true })
|
|
55979
|
+
}
|
|
55980
|
+
),
|
|
55981
|
+
icon
|
|
55982
|
+
] });
|
|
55983
|
+
}
|
|
55984
|
+
function fieldEndPaddingClassName(hasClear, hasIcon) {
|
|
55985
|
+
if (hasClear && hasIcon) return "pe-16";
|
|
55986
|
+
if (hasClear || hasIcon) return "pe-9";
|
|
55987
|
+
return "";
|
|
55988
|
+
}
|
|
55989
|
+
function DatePicker(props) {
|
|
55990
|
+
const {
|
|
55991
|
+
value: value2,
|
|
55992
|
+
onChange,
|
|
55993
|
+
defaultValue,
|
|
55994
|
+
formatDate: formatDate2,
|
|
55995
|
+
name: name2,
|
|
55996
|
+
trigger,
|
|
55997
|
+
placeholder = "Pick a date",
|
|
55998
|
+
label,
|
|
55999
|
+
size,
|
|
56000
|
+
hideIcon = false,
|
|
56001
|
+
disabled = false,
|
|
56002
|
+
required = false,
|
|
56003
|
+
rounded = false,
|
|
56004
|
+
error,
|
|
56005
|
+
errorContent,
|
|
56006
|
+
startHelperContent,
|
|
56007
|
+
endHelperContent,
|
|
56008
|
+
hintContent,
|
|
56009
|
+
clearable = false,
|
|
56010
|
+
clearLabel = "Clear",
|
|
56011
|
+
calendarProps,
|
|
56012
|
+
open: controlledOpen,
|
|
56013
|
+
onOpenChange,
|
|
56014
|
+
className
|
|
56015
|
+
} = props;
|
|
55916
56016
|
const [uncontrolledDate, setUncontrolledDate] = useState(
|
|
55917
56017
|
defaultValue
|
|
55918
56018
|
);
|
|
55919
56019
|
const [internalOpen, setInternalOpen] = useState(false);
|
|
55920
|
-
const isControlled =
|
|
56020
|
+
const isControlled = "value" in props;
|
|
55921
56021
|
const selectedDate = isControlled ? value2 : uncontrolledDate;
|
|
55922
56022
|
const isOpenControlled = controlledOpen !== void 0;
|
|
55923
56023
|
const isOpen = isOpenControlled ? controlledOpen : internalOpen;
|
|
@@ -55930,6 +56030,12 @@ function DatePicker({
|
|
|
55930
56030
|
onChange?.(date);
|
|
55931
56031
|
setOpen(false);
|
|
55932
56032
|
};
|
|
56033
|
+
const handleClear = (event) => {
|
|
56034
|
+
event.stopPropagation();
|
|
56035
|
+
if (!isControlled) setUncontrolledDate(void 0);
|
|
56036
|
+
onChange?.(void 0);
|
|
56037
|
+
};
|
|
56038
|
+
const showClear = clearable && !disabled && selectedDate !== void 0;
|
|
55933
56039
|
const displayValue = selectedDate ? (formatDate2 ?? ((d) => format(d, "PPP")))(selectedDate) : "";
|
|
55934
56040
|
const inputTrigger = /* @__PURE__ */ jsx(
|
|
55935
56041
|
Input,
|
|
@@ -55947,8 +56053,19 @@ function DatePicker({
|
|
|
55947
56053
|
startHelperContent,
|
|
55948
56054
|
endHelperContent,
|
|
55949
56055
|
hintContent,
|
|
55950
|
-
className: cn(
|
|
55951
|
-
|
|
56056
|
+
className: cn(
|
|
56057
|
+
"cursor-pointer read-only:bg-background",
|
|
56058
|
+
fieldEndPaddingClassName(showClear, !hideIcon),
|
|
56059
|
+
!displayValue && "text-muted-foreground"
|
|
56060
|
+
),
|
|
56061
|
+
endIcon: showClear || !hideIcon ? /* @__PURE__ */ jsx(
|
|
56062
|
+
FieldEndIcons,
|
|
56063
|
+
{
|
|
56064
|
+
onClear: showClear ? handleClear : void 0,
|
|
56065
|
+
clearLabel,
|
|
56066
|
+
icon: hideIcon ? void 0 : /* @__PURE__ */ jsx(CalendarIcon, { size: FIELD_ICON_SIZE, className: "text-muted-foreground" })
|
|
56067
|
+
}
|
|
56068
|
+
) : void 0
|
|
55952
56069
|
}
|
|
55953
56070
|
);
|
|
55954
56071
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex-1", className), children: [
|
|
@@ -55966,7 +56083,7 @@ function DatePicker({
|
|
|
55966
56083
|
PopoverContent,
|
|
55967
56084
|
{
|
|
55968
56085
|
align: "start",
|
|
55969
|
-
className: "w-auto rounded-2xl p-1 shadow-lg",
|
|
56086
|
+
className: "w-auto overflow-hidden rounded-2xl p-1 shadow-lg",
|
|
55970
56087
|
children: /* @__PURE__ */ jsx(
|
|
55971
56088
|
Calendar,
|
|
55972
56089
|
{
|
|
@@ -55992,7 +56109,191 @@ function DatePicker({
|
|
|
55992
56109
|
] });
|
|
55993
56110
|
}
|
|
55994
56111
|
DatePicker.displayName = "DatePicker";
|
|
56112
|
+
var timeInputChromeClass = "appearance-none bg-background [&::-webkit-calendar-picker-indicator]:hidden [&::-webkit-calendar-picker-indicator]:appearance-none";
|
|
56113
|
+
var TimePicker = React10.forwardRef(
|
|
56114
|
+
({ hideIcon = false, className, ...props }, ref) => {
|
|
56115
|
+
return /* @__PURE__ */ jsx(
|
|
56116
|
+
Input,
|
|
56117
|
+
{
|
|
56118
|
+
ref,
|
|
56119
|
+
...props,
|
|
56120
|
+
type: "time",
|
|
56121
|
+
className: cn(timeInputChromeClass, className),
|
|
56122
|
+
endIcon: hideIcon ? void 0 : /* @__PURE__ */ jsx(ClockIcon, { size: 16, className: "text-muted-foreground" })
|
|
56123
|
+
}
|
|
56124
|
+
);
|
|
56125
|
+
}
|
|
56126
|
+
);
|
|
56127
|
+
TimePicker.displayName = "TimePicker";
|
|
56128
|
+
var TIME_RE = /^([01]\d|2[0-3]):([0-5]\d)(?::([0-5]\d))?$/;
|
|
56129
|
+
var DEFAULT_TIME = "00:00";
|
|
56130
|
+
var DEFAULT_TIME_STEP_SECONDS = 60;
|
|
56131
|
+
function isValidTimeString(time2) {
|
|
56132
|
+
return TIME_RE.test(time2);
|
|
56133
|
+
}
|
|
56134
|
+
function mergeDateAndTime(date, time2) {
|
|
56135
|
+
const match = TIME_RE.exec(time2);
|
|
56136
|
+
if (!match) return startOfDay(date);
|
|
56137
|
+
return set(startOfDay(date), {
|
|
56138
|
+
hours: Number(match[1]),
|
|
56139
|
+
minutes: Number(match[2]),
|
|
56140
|
+
seconds: match[3] === void 0 ? 0 : Number(match[3])
|
|
56141
|
+
});
|
|
56142
|
+
}
|
|
56143
|
+
function formatTimeOfDay(date, timeStep) {
|
|
56144
|
+
if (!isValid(date)) return "";
|
|
56145
|
+
return format(date, timeStep < 60 ? "HH:mm:ss" : "HH:mm");
|
|
56146
|
+
}
|
|
56147
|
+
var OPEN_KEYS = /* @__PURE__ */ new Set(["Enter", " ", "ArrowDown"]);
|
|
56148
|
+
function DateTimePicker(props) {
|
|
56149
|
+
const {
|
|
56150
|
+
value: value2,
|
|
56151
|
+
onChange,
|
|
56152
|
+
defaultValue,
|
|
56153
|
+
defaultTime = DEFAULT_TIME,
|
|
56154
|
+
timeStep = DEFAULT_TIME_STEP_SECONDS,
|
|
56155
|
+
clearable = false,
|
|
56156
|
+
clearLabel = "Clear",
|
|
56157
|
+
timeAriaLabel = "Time",
|
|
56158
|
+
formatDate: formatDate2,
|
|
56159
|
+
placeholder = "Pick date and time",
|
|
56160
|
+
label,
|
|
56161
|
+
size,
|
|
56162
|
+
hideIcon = false,
|
|
56163
|
+
disabled = false,
|
|
56164
|
+
required = false,
|
|
56165
|
+
rounded = false,
|
|
56166
|
+
error,
|
|
56167
|
+
errorContent,
|
|
56168
|
+
hintContent,
|
|
56169
|
+
calendarProps,
|
|
56170
|
+
open: controlledOpen,
|
|
56171
|
+
onOpenChange,
|
|
56172
|
+
name: name2,
|
|
56173
|
+
className
|
|
56174
|
+
} = props;
|
|
56175
|
+
const isControlled = "value" in props;
|
|
56176
|
+
const [uncontrolledValue, setUncontrolledValue] = React10.useState(defaultValue);
|
|
56177
|
+
const current = isControlled ? value2 : uncontrolledValue;
|
|
56178
|
+
const isOpenControlled = controlledOpen !== void 0;
|
|
56179
|
+
const [internalOpen, setInternalOpen] = React10.useState(false);
|
|
56180
|
+
const isOpen = isOpenControlled ? controlledOpen : internalOpen;
|
|
56181
|
+
const setOpen = (nextOpen) => {
|
|
56182
|
+
if (!isOpenControlled) setInternalOpen(nextOpen);
|
|
56183
|
+
onOpenChange?.(nextOpen);
|
|
56184
|
+
};
|
|
56185
|
+
const [draftTime, setDraftTime] = React10.useState(
|
|
56186
|
+
() => current ? formatTimeOfDay(current, timeStep) : ""
|
|
56187
|
+
);
|
|
56188
|
+
const currentMs = current?.getTime();
|
|
56189
|
+
React10.useEffect(() => {
|
|
56190
|
+
if (currentMs === void 0) return;
|
|
56191
|
+
setDraftTime(formatTimeOfDay(new Date(currentMs), timeStep));
|
|
56192
|
+
}, [currentMs, timeStep]);
|
|
56193
|
+
const commit = (next) => {
|
|
56194
|
+
if (!isControlled) setUncontrolledValue(next);
|
|
56195
|
+
onChange?.(next);
|
|
56196
|
+
};
|
|
56197
|
+
const handleDaySelect = (day) => {
|
|
56198
|
+
if (!day) {
|
|
56199
|
+
commit(void 0);
|
|
56200
|
+
return;
|
|
56201
|
+
}
|
|
56202
|
+
const time2 = isValidTimeString(draftTime) ? draftTime : defaultTime;
|
|
56203
|
+
commit(mergeDateAndTime(day, time2));
|
|
56204
|
+
};
|
|
56205
|
+
const handleTimeChange = (event) => {
|
|
56206
|
+
const nextTime = event.target.value;
|
|
56207
|
+
setDraftTime(nextTime);
|
|
56208
|
+
if (current && isValidTimeString(nextTime)) {
|
|
56209
|
+
commit(mergeDateAndTime(current, nextTime));
|
|
56210
|
+
}
|
|
56211
|
+
};
|
|
56212
|
+
const handleTimeBlur = () => {
|
|
56213
|
+
if (current && !isValidTimeString(draftTime)) {
|
|
56214
|
+
setDraftTime(formatTimeOfDay(current, timeStep));
|
|
56215
|
+
}
|
|
56216
|
+
};
|
|
56217
|
+
const handleClear = (event) => {
|
|
56218
|
+
event.stopPropagation();
|
|
56219
|
+
setDraftTime("");
|
|
56220
|
+
commit(void 0);
|
|
56221
|
+
};
|
|
56222
|
+
const handleTriggerKeyDown = (event) => {
|
|
56223
|
+
if (disabled || !OPEN_KEYS.has(event.key)) return;
|
|
56224
|
+
event.preventDefault();
|
|
56225
|
+
setOpen(true);
|
|
56226
|
+
};
|
|
56227
|
+
const displayValue = current ? (formatDate2 ?? ((d) => format(d, "PPP, p")))(current) : "";
|
|
56228
|
+
const showClear = clearable && !disabled && current !== void 0;
|
|
56229
|
+
const endIcon = /* @__PURE__ */ jsx(
|
|
56230
|
+
FieldEndIcons,
|
|
56231
|
+
{
|
|
56232
|
+
onClear: showClear ? handleClear : void 0,
|
|
56233
|
+
clearLabel,
|
|
56234
|
+
icon: hideIcon ? void 0 : /* @__PURE__ */ jsx(CalendarIcon, { size: FIELD_ICON_SIZE, className: "text-muted-foreground" })
|
|
56235
|
+
}
|
|
56236
|
+
);
|
|
56237
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("flex-1", className), children: [
|
|
56238
|
+
/* @__PURE__ */ jsxs(Popover, { open: isOpen, onOpenChange: setOpen, children: [
|
|
56239
|
+
/* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, disabled, children: /* @__PURE__ */ jsx(
|
|
56240
|
+
Input,
|
|
56241
|
+
{
|
|
56242
|
+
type: "text",
|
|
56243
|
+
readOnly: true,
|
|
56244
|
+
value: displayValue,
|
|
56245
|
+
placeholder,
|
|
56246
|
+
label,
|
|
56247
|
+
size,
|
|
56248
|
+
disabled,
|
|
56249
|
+
required,
|
|
56250
|
+
rounded,
|
|
56251
|
+
error,
|
|
56252
|
+
errorContent,
|
|
56253
|
+
hintContent,
|
|
56254
|
+
endIcon,
|
|
56255
|
+
onKeyDown: handleTriggerKeyDown,
|
|
56256
|
+
"aria-haspopup": "dialog",
|
|
56257
|
+
className: cn(
|
|
56258
|
+
"cursor-pointer read-only:bg-background",
|
|
56259
|
+
fieldEndPaddingClassName(showClear, !hideIcon),
|
|
56260
|
+
!displayValue && "text-muted-foreground"
|
|
56261
|
+
)
|
|
56262
|
+
}
|
|
56263
|
+
) }),
|
|
56264
|
+
/* @__PURE__ */ jsxs(PopoverContent, { align: "start", className: "w-auto overflow-hidden rounded-2xl p-1 shadow-lg", children: [
|
|
56265
|
+
/* @__PURE__ */ jsx(
|
|
56266
|
+
Calendar,
|
|
56267
|
+
{
|
|
56268
|
+
mode: "single",
|
|
56269
|
+
selected: current,
|
|
56270
|
+
onSelect: handleDaySelect,
|
|
56271
|
+
defaultMonth: current,
|
|
56272
|
+
showOutsideDays: true,
|
|
56273
|
+
captionLayout: "dropdown",
|
|
56274
|
+
...calendarProps
|
|
56275
|
+
}
|
|
56276
|
+
),
|
|
56277
|
+
/* @__PURE__ */ jsx("div", { className: "border-t border-border px-3 pb-3 pt-3", children: /* @__PURE__ */ jsx(
|
|
56278
|
+
TimePicker,
|
|
56279
|
+
{
|
|
56280
|
+
"aria-label": timeAriaLabel,
|
|
56281
|
+
value: draftTime,
|
|
56282
|
+
onChange: handleTimeChange,
|
|
56283
|
+
onBlur: handleTimeBlur,
|
|
56284
|
+
step: timeStep,
|
|
56285
|
+
size,
|
|
56286
|
+
disabled
|
|
56287
|
+
}
|
|
56288
|
+
) })
|
|
56289
|
+
] })
|
|
56290
|
+
] }),
|
|
56291
|
+
name2 && /* @__PURE__ */ jsx("input", { type: "hidden", name: name2, value: current?.toISOString() ?? "" })
|
|
56292
|
+
] });
|
|
56293
|
+
}
|
|
56294
|
+
DateTimePicker.displayName = "DateTimePicker";
|
|
55995
56295
|
var PRESET_IDS = [
|
|
56296
|
+
// Calendar periods
|
|
55996
56297
|
"today",
|
|
55997
56298
|
"yesterday",
|
|
55998
56299
|
"this-week",
|
|
@@ -56001,10 +56302,16 @@ var PRESET_IDS = [
|
|
|
56001
56302
|
"last-month",
|
|
56002
56303
|
"this-year",
|
|
56003
56304
|
"last-year",
|
|
56305
|
+
// Trailing ranges, shortest first. A rolling preset (ends now) precedes
|
|
56306
|
+
// the day-snapped preset of the same length.
|
|
56307
|
+
"last-1-hour",
|
|
56308
|
+
"last-24-hours",
|
|
56004
56309
|
"last-1-day",
|
|
56310
|
+
"past-7-days",
|
|
56005
56311
|
"last-7-days",
|
|
56006
56312
|
"last-14-days",
|
|
56007
56313
|
"last-15-days",
|
|
56314
|
+
"past-30-days",
|
|
56008
56315
|
"last-30-days",
|
|
56009
56316
|
"last-4-weeks",
|
|
56010
56317
|
"last-90-days",
|
|
@@ -56022,10 +56329,14 @@ var PRESET_LABELS = {
|
|
|
56022
56329
|
"last-month": "Last month",
|
|
56023
56330
|
"this-year": "This year",
|
|
56024
56331
|
"last-year": "Last year",
|
|
56332
|
+
"last-1-hour": "Last 1 hour",
|
|
56333
|
+
"last-24-hours": "Last 24 hours",
|
|
56025
56334
|
"last-1-day": "Last 1 day",
|
|
56335
|
+
"past-7-days": "Past 7 days",
|
|
56026
56336
|
"last-7-days": "Last 7 days",
|
|
56027
56337
|
"last-14-days": "Last 14 days",
|
|
56028
56338
|
"last-15-days": "Last 15 days",
|
|
56339
|
+
"past-30-days": "Past 30 days",
|
|
56029
56340
|
"last-30-days": "Last 30 days",
|
|
56030
56341
|
"last-4-weeks": "Last 4 weeks",
|
|
56031
56342
|
"last-90-days": "Last 90 days",
|
|
@@ -56034,6 +56345,12 @@ var PRESET_LABELS = {
|
|
|
56034
56345
|
"last-1-year": "Last 1 year",
|
|
56035
56346
|
"last-5-years": "Last 5 years"
|
|
56036
56347
|
};
|
|
56348
|
+
var ROLLING_PRESET_IDS = [
|
|
56349
|
+
"last-1-hour",
|
|
56350
|
+
"last-24-hours",
|
|
56351
|
+
"past-7-days",
|
|
56352
|
+
"past-30-days"
|
|
56353
|
+
];
|
|
56037
56354
|
function computeDateRange(id) {
|
|
56038
56355
|
const now = /* @__PURE__ */ new Date();
|
|
56039
56356
|
switch (id) {
|
|
@@ -56110,6 +56427,14 @@ function computeDateRange(id) {
|
|
|
56110
56427
|
return { startDate: startOfMonth(sub(now, { years: 1 })), endDate: endOfMonth(now) };
|
|
56111
56428
|
case "last-5-years":
|
|
56112
56429
|
return { startDate: startOfMonth(sub(now, { years: 5 })), endDate: endOfMonth(now) };
|
|
56430
|
+
case "last-1-hour":
|
|
56431
|
+
return { startDate: sub(now, { hours: 1 }), endDate: now };
|
|
56432
|
+
case "last-24-hours":
|
|
56433
|
+
return { startDate: sub(now, { hours: 24 }), endDate: now };
|
|
56434
|
+
case "past-7-days":
|
|
56435
|
+
return { startDate: sub(now, { days: 7 }), endDate: now };
|
|
56436
|
+
case "past-30-days":
|
|
56437
|
+
return { startDate: sub(now, { days: 30 }), endDate: now };
|
|
56113
56438
|
}
|
|
56114
56439
|
}
|
|
56115
56440
|
var DEFAULT_DATE_FORMAT = "dd MMM yyyy";
|
|
@@ -56145,6 +56470,9 @@ function DateRangePicker({
|
|
|
56145
56470
|
selectedPresetId,
|
|
56146
56471
|
selectedStartDate,
|
|
56147
56472
|
selectedEndDate,
|
|
56473
|
+
clearable = false,
|
|
56474
|
+
clearLabel = "Clear",
|
|
56475
|
+
onClear,
|
|
56148
56476
|
trigger,
|
|
56149
56477
|
placeholder = "Select date range",
|
|
56150
56478
|
label,
|
|
@@ -56286,7 +56614,12 @@ function DateRangePicker({
|
|
|
56286
56614
|
if (lockEndToToday) return;
|
|
56287
56615
|
setEndInputValue(draftRange.endDate ? format(draftRange.endDate, dateFormat) : "");
|
|
56288
56616
|
};
|
|
56617
|
+
const handleClear = () => {
|
|
56618
|
+
onClear?.();
|
|
56619
|
+
handleOpenChange(false);
|
|
56620
|
+
};
|
|
56289
56621
|
const displayValue = selectedPresetId ? resolveLabel(selectedPresetId) : "";
|
|
56622
|
+
const hasSelection = !!(selectedPresetId || selectedStartDate);
|
|
56290
56623
|
const inputTrigger = /* @__PURE__ */ jsx(
|
|
56291
56624
|
Input,
|
|
56292
56625
|
{
|
|
@@ -56382,6 +56715,22 @@ function DateRangePicker({
|
|
|
56382
56715
|
]
|
|
56383
56716
|
}
|
|
56384
56717
|
)
|
|
56718
|
+
] }),
|
|
56719
|
+
clearable && hasSelection && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
56720
|
+
/* @__PURE__ */ jsx("div", { className: "mx-1 my-1 h-px bg-border" }),
|
|
56721
|
+
/* @__PURE__ */ jsxs(
|
|
56722
|
+
"button",
|
|
56723
|
+
{
|
|
56724
|
+
type: "button",
|
|
56725
|
+
onClick: handleClear,
|
|
56726
|
+
onMouseEnter: () => setShowCalendar(false),
|
|
56727
|
+
className: "flex w-full items-center justify-between gap-6 px-3 py-1.5 text-left text-sm text-muted-foreground hover:bg-accent",
|
|
56728
|
+
children: [
|
|
56729
|
+
clearLabel,
|
|
56730
|
+
/* @__PURE__ */ jsx(XIcon, { className: "size-4 shrink-0" })
|
|
56731
|
+
]
|
|
56732
|
+
}
|
|
56733
|
+
)
|
|
56385
56734
|
] })
|
|
56386
56735
|
] }),
|
|
56387
56736
|
allowCustom && showCalendar && /* @__PURE__ */ jsx(
|
|
@@ -56468,22 +56817,6 @@ function DateRangePicker({
|
|
|
56468
56817
|
] }) });
|
|
56469
56818
|
}
|
|
56470
56819
|
DateRangePicker.displayName = "DateRangePicker";
|
|
56471
|
-
var timeInputChromeClass = "appearance-none bg-background [&::-webkit-calendar-picker-indicator]:hidden [&::-webkit-calendar-picker-indicator]:appearance-none";
|
|
56472
|
-
var TimePicker = React10.forwardRef(
|
|
56473
|
-
({ hideIcon = false, className, ...props }, ref) => {
|
|
56474
|
-
return /* @__PURE__ */ jsx(
|
|
56475
|
-
Input,
|
|
56476
|
-
{
|
|
56477
|
-
ref,
|
|
56478
|
-
...props,
|
|
56479
|
-
type: "time",
|
|
56480
|
-
className: cn(timeInputChromeClass, className),
|
|
56481
|
-
endIcon: hideIcon ? void 0 : /* @__PURE__ */ jsx(ClockIcon, { size: 16, className: "text-muted-foreground" })
|
|
56482
|
-
}
|
|
56483
|
-
);
|
|
56484
|
-
}
|
|
56485
|
-
);
|
|
56486
|
-
TimePicker.displayName = "TimePicker";
|
|
56487
56820
|
var DEFAULT_DATE_FORMAT2 = "dd/MM/yyyy HH:mm:ss";
|
|
56488
56821
|
var MS_THRESHOLD = 1e10;
|
|
56489
56822
|
var RELATIVE_TIME_OUTER_CLASSES = "underline underline-offset-5 decoration-primary/20";
|
|
@@ -56505,7 +56838,7 @@ function computeRelativeTime(ms) {
|
|
|
56505
56838
|
const years = Math.floor(months / 12);
|
|
56506
56839
|
return `${years}y ago`;
|
|
56507
56840
|
}
|
|
56508
|
-
function formatDate(date,
|
|
56841
|
+
function formatDate(date, format6) {
|
|
56509
56842
|
const pad = (n) => String(n).padStart(2, "0");
|
|
56510
56843
|
const tokens = {
|
|
56511
56844
|
dd: pad(date.getDate()),
|
|
@@ -56515,7 +56848,7 @@ function formatDate(date, format4) {
|
|
|
56515
56848
|
mm: pad(date.getMinutes()),
|
|
56516
56849
|
ss: pad(date.getSeconds())
|
|
56517
56850
|
};
|
|
56518
|
-
return
|
|
56851
|
+
return format6.replace(/yyyy|MM|dd|HH|mm|ss/g, (match) => tokens[match]);
|
|
56519
56852
|
}
|
|
56520
56853
|
function SimplifiedDate({ ts, dateFormat, className, relative = false }) {
|
|
56521
56854
|
const ms = useMemo(() => ts != null ? normalizeTimestamp(ts) : null, [ts]);
|
|
@@ -57176,17 +57509,21 @@ function DataTable({
|
|
|
57176
57509
|
() => enableRowSelection ? [selectColumn, ...columns] : columns,
|
|
57177
57510
|
[enableRowSelection, selectColumn, columns]
|
|
57178
57511
|
);
|
|
57512
|
+
const pagination = useMemo(() => ({ pageIndex: 0, pageSize }), [pageSize]);
|
|
57179
57513
|
const table = useReactTable({
|
|
57180
57514
|
data: data2,
|
|
57181
57515
|
columns: tableColumns,
|
|
57182
57516
|
state: {
|
|
57183
57517
|
columnVisibility,
|
|
57184
|
-
pagination
|
|
57185
|
-
pageIndex: 0,
|
|
57186
|
-
pageSize
|
|
57187
|
-
},
|
|
57518
|
+
pagination,
|
|
57188
57519
|
...rowSelection !== void 0 && { rowSelection }
|
|
57189
57520
|
},
|
|
57521
|
+
// With `manualPagination` unset, TanStack resets pageIndex (an internal
|
|
57522
|
+
// setState + re-render) whenever `data` changes identity. pageIndex is pinned
|
|
57523
|
+
// to 0 here, so that reset is a no-op; with consumers that pass a fresh array
|
|
57524
|
+
// each render (`data?.items ?? []`) it can loop into "Maximum update depth
|
|
57525
|
+
// exceeded".
|
|
57526
|
+
autoResetPageIndex: false,
|
|
57190
57527
|
onColumnVisibilityChange: setColumnVisibility,
|
|
57191
57528
|
enableRowSelection,
|
|
57192
57529
|
enableMultiRowSelection,
|
|
@@ -57576,8 +57913,8 @@ function DeviceIcon({ type, size = 18, color, fallback: Fallback, className }) {
|
|
|
57576
57913
|
const Matched = matchDevice(type);
|
|
57577
57914
|
const Icon2 = Matched ?? Fallback;
|
|
57578
57915
|
if (!Icon2) return null;
|
|
57579
|
-
const
|
|
57580
|
-
return /* @__PURE__ */ jsx("span", { className: cn("inline-flex",
|
|
57916
|
+
const resolved2 = color ? resolveColor(color, "text") : void 0;
|
|
57917
|
+
return /* @__PURE__ */ jsx("span", { className: cn("inline-flex", resolved2?.className, className), style: resolved2?.style, children: /* @__PURE__ */ jsx(Icon2, { size }) });
|
|
57581
57918
|
}
|
|
57582
57919
|
var userTypeBadgeRegistry = {
|
|
57583
57920
|
admin: {
|
|
@@ -57695,7 +58032,7 @@ var StatusBadge = React10.forwardRef(
|
|
|
57695
58032
|
),
|
|
57696
58033
|
children: [
|
|
57697
58034
|
isLoading ? /* @__PURE__ */ jsx(Spinner, { size: iconPx, "aria-hidden": true }) : Icon2 ? /* @__PURE__ */ jsx(Icon2, { size: iconPx, "aria-hidden": true }) : null,
|
|
57698
|
-
label
|
|
58035
|
+
/* @__PURE__ */ jsx("span", { className: "min-w-0 truncate", children: label })
|
|
57699
58036
|
]
|
|
57700
58037
|
}
|
|
57701
58038
|
) });
|
|
@@ -59754,6 +60091,8 @@ function getHighlighter() {
|
|
|
59754
60091
|
function normalizeLang(lang) {
|
|
59755
60092
|
return LANG_ALIASES[lang.toLowerCase()] ?? lang;
|
|
59756
60093
|
}
|
|
60094
|
+
|
|
60095
|
+
// src/core/animate-ui/primitives/animate/escape-html.ts
|
|
59757
60096
|
function escapeHtml(input) {
|
|
59758
60097
|
return input.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
59759
60098
|
}
|
|
@@ -59881,6 +60220,33 @@ function CodeBlock({
|
|
|
59881
60220
|
}
|
|
59882
60221
|
);
|
|
59883
60222
|
}
|
|
60223
|
+
function CodeHeader({ icon: Icon2, fileName, copyContent, copyLabel = "Copy", actions }) {
|
|
60224
|
+
const copyButton = copyContent !== void 0 && /* @__PURE__ */ jsx(
|
|
60225
|
+
CopyButton,
|
|
60226
|
+
{
|
|
60227
|
+
content: copyContent,
|
|
60228
|
+
size: "sm",
|
|
60229
|
+
variant: "ghost",
|
|
60230
|
+
"aria-label": copyLabel,
|
|
60231
|
+
title: copyLabel,
|
|
60232
|
+
className: cn(actions == null && "ml-auto", "w-auto h-auto p-2 -mr-2")
|
|
60233
|
+
}
|
|
60234
|
+
);
|
|
60235
|
+
return /* @__PURE__ */ jsxs(
|
|
60236
|
+
"div",
|
|
60237
|
+
{
|
|
60238
|
+
className: "shrink-0 gap-x-2 border-b border-border/75 dark:border-border/50 text-sm flex text-muted-foreground items-center px-4 w-full h-10 font-medium",
|
|
60239
|
+
children: [
|
|
60240
|
+
Icon2 && /* @__PURE__ */ jsx(Icon2, { className: "size-4" }),
|
|
60241
|
+
fileName,
|
|
60242
|
+
actions != null ? /* @__PURE__ */ jsxs("div", { className: "ml-auto flex items-center gap-1", children: [
|
|
60243
|
+
actions,
|
|
60244
|
+
copyButton
|
|
60245
|
+
] }) : copyButton
|
|
60246
|
+
]
|
|
60247
|
+
}
|
|
60248
|
+
);
|
|
60249
|
+
}
|
|
59884
60250
|
function Code({
|
|
59885
60251
|
className,
|
|
59886
60252
|
code,
|
|
@@ -59907,23 +60273,12 @@ function Code({
|
|
|
59907
60273
|
style: { height: height2, ...style },
|
|
59908
60274
|
...props,
|
|
59909
60275
|
children: [
|
|
59910
|
-
showHeader && /* @__PURE__ */
|
|
59911
|
-
|
|
60276
|
+
showHeader && /* @__PURE__ */ jsx(
|
|
60277
|
+
CodeHeader,
|
|
59912
60278
|
{
|
|
59913
|
-
|
|
59914
|
-
|
|
59915
|
-
|
|
59916
|
-
fileName,
|
|
59917
|
-
showCopyButton && /* @__PURE__ */ jsx(
|
|
59918
|
-
CopyButton,
|
|
59919
|
-
{
|
|
59920
|
-
content: code,
|
|
59921
|
-
size: "sm",
|
|
59922
|
-
variant: "ghost",
|
|
59923
|
-
className: "ml-auto w-auto h-auto p-2 -mr-2"
|
|
59924
|
-
}
|
|
59925
|
-
)
|
|
59926
|
-
]
|
|
60279
|
+
icon: Icon2,
|
|
60280
|
+
fileName,
|
|
60281
|
+
copyContent: showCopyButton ? code : void 0
|
|
59927
60282
|
}
|
|
59928
60283
|
),
|
|
59929
60284
|
lang && /* @__PURE__ */ jsx(
|
|
@@ -60742,14 +61097,79 @@ function DynamicList({
|
|
|
60742
61097
|
);
|
|
60743
61098
|
}) });
|
|
60744
61099
|
}
|
|
61100
|
+
function KeyValueManagerField({
|
|
61101
|
+
field,
|
|
61102
|
+
label,
|
|
61103
|
+
value: value2,
|
|
61104
|
+
meta,
|
|
61105
|
+
error,
|
|
61106
|
+
errorMessage,
|
|
61107
|
+
selectPlaceholder,
|
|
61108
|
+
onChange
|
|
61109
|
+
}) {
|
|
61110
|
+
const errorContent = error ? errorMessage : void 0;
|
|
61111
|
+
if (meta?.options) {
|
|
61112
|
+
return (
|
|
61113
|
+
// Remounted when cleared: a Radix Select can't show its placeholder again once it held a value.
|
|
61114
|
+
/* @__PURE__ */ jsxs(
|
|
61115
|
+
Select,
|
|
61116
|
+
{
|
|
61117
|
+
value: value2 || void 0,
|
|
61118
|
+
onValueChange: onChange,
|
|
61119
|
+
children: [
|
|
61120
|
+
/* @__PURE__ */ jsx(
|
|
61121
|
+
SelectTrigger,
|
|
61122
|
+
{
|
|
61123
|
+
label,
|
|
61124
|
+
size: "sm",
|
|
61125
|
+
error,
|
|
61126
|
+
errorContent,
|
|
61127
|
+
children: /* @__PURE__ */ jsx(SelectValue, { placeholder: selectPlaceholder })
|
|
61128
|
+
}
|
|
61129
|
+
),
|
|
61130
|
+
/* @__PURE__ */ jsx(SelectContent, { children: meta.options.map((option) => /* @__PURE__ */ jsx(SelectItem, { value: option, children: option }, option)) })
|
|
61131
|
+
]
|
|
61132
|
+
},
|
|
61133
|
+
value2 ? "selected" : "empty"
|
|
61134
|
+
)
|
|
61135
|
+
);
|
|
61136
|
+
}
|
|
61137
|
+
if (field === "key") {
|
|
61138
|
+
return /* @__PURE__ */ jsx(
|
|
61139
|
+
Input,
|
|
61140
|
+
{
|
|
61141
|
+
label,
|
|
61142
|
+
value: value2,
|
|
61143
|
+
charLimit: meta?.maxLength,
|
|
61144
|
+
error,
|
|
61145
|
+
size: "sm",
|
|
61146
|
+
errorContent,
|
|
61147
|
+
onChange: (e) => onChange(e.target.value)
|
|
61148
|
+
}
|
|
61149
|
+
);
|
|
61150
|
+
}
|
|
61151
|
+
return /* @__PURE__ */ jsx(
|
|
61152
|
+
Textarea,
|
|
61153
|
+
{
|
|
61154
|
+
label,
|
|
61155
|
+
value: value2,
|
|
61156
|
+
charLimit: meta?.maxLength,
|
|
61157
|
+
error,
|
|
61158
|
+
errorContent,
|
|
61159
|
+
onChange: (e) => onChange(e.target.value),
|
|
61160
|
+
size: "sm"
|
|
61161
|
+
}
|
|
61162
|
+
);
|
|
61163
|
+
}
|
|
60745
61164
|
|
|
60746
61165
|
// src/components/key-value-manager/key-value-manager.utils.ts
|
|
60747
61166
|
function validateField(value2, meta) {
|
|
60748
61167
|
if (!value2.trim()) return false;
|
|
60749
61168
|
if (meta?.maxLength != null && value2.length > meta.maxLength) return false;
|
|
61169
|
+
if (meta?.options && !meta.options.includes(value2)) return false;
|
|
60750
61170
|
if (meta?.regex) {
|
|
60751
61171
|
try {
|
|
60752
|
-
if (!new RegExp(meta.regex).test(value2)) return false;
|
|
61172
|
+
if (!new RegExp(meta.regex, meta.regexFlags).test(value2)) return false;
|
|
60753
61173
|
} catch {
|
|
60754
61174
|
}
|
|
60755
61175
|
}
|
|
@@ -60838,27 +61258,29 @@ function KeyValueManagerAddPopover({
|
|
|
60838
61258
|
) }),
|
|
60839
61259
|
/* @__PURE__ */ jsxs(PopoverContent, { align: "end", className: "w-80 space-y-4", children: [
|
|
60840
61260
|
/* @__PURE__ */ jsx(
|
|
60841
|
-
|
|
61261
|
+
KeyValueManagerField,
|
|
60842
61262
|
{
|
|
61263
|
+
field: "key",
|
|
60843
61264
|
label: labels.keyLabel,
|
|
60844
61265
|
value: draftKey,
|
|
60845
|
-
|
|
61266
|
+
meta: meta?.key,
|
|
60846
61267
|
error: keyError,
|
|
60847
|
-
|
|
60848
|
-
|
|
60849
|
-
onChange: (
|
|
61268
|
+
errorMessage: labels.keyErrorMessage,
|
|
61269
|
+
selectPlaceholder: labels.selectPlaceholder,
|
|
61270
|
+
onChange: (value2) => handleFieldChange("key", value2)
|
|
60850
61271
|
}
|
|
60851
61272
|
),
|
|
60852
61273
|
/* @__PURE__ */ jsx(
|
|
60853
|
-
|
|
61274
|
+
KeyValueManagerField,
|
|
60854
61275
|
{
|
|
61276
|
+
field: "value",
|
|
60855
61277
|
label: labels.valueLabel,
|
|
60856
61278
|
value: draftValue,
|
|
60857
|
-
|
|
61279
|
+
meta: meta?.value,
|
|
60858
61280
|
error: valueError,
|
|
60859
|
-
|
|
60860
|
-
|
|
60861
|
-
|
|
61281
|
+
errorMessage: labels.valueErrorMessage,
|
|
61282
|
+
selectPlaceholder: labels.selectPlaceholder,
|
|
61283
|
+
onChange: (value2) => handleFieldChange("value", value2)
|
|
60862
61284
|
}
|
|
60863
61285
|
),
|
|
60864
61286
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2", children: [
|
|
@@ -61021,7 +61443,8 @@ var STATIC_DEFAULT_LABELS = {
|
|
|
61021
61443
|
valueLabel: "Value",
|
|
61022
61444
|
actionLabel: "Action",
|
|
61023
61445
|
emptyItems: "No items",
|
|
61024
|
-
emptySearch: "No matches"
|
|
61446
|
+
emptySearch: "No matches",
|
|
61447
|
+
selectPlaceholder: "Select"
|
|
61025
61448
|
};
|
|
61026
61449
|
function resolveKeyValueManagerLabels(labels) {
|
|
61027
61450
|
const merged = { ...STATIC_DEFAULT_LABELS, ...labels };
|
|
@@ -61590,6 +62013,7 @@ function OverflowBadgeList({
|
|
|
61590
62013
|
icon: Icon2,
|
|
61591
62014
|
badgeColor,
|
|
61592
62015
|
badgeVariant = "outline",
|
|
62016
|
+
badgeSize = "default",
|
|
61593
62017
|
maxBadgesToShow = 1,
|
|
61594
62018
|
noneLabel,
|
|
61595
62019
|
andMoreLabel,
|
|
@@ -61603,16 +62027,15 @@ function OverflowBadgeList({
|
|
|
61603
62027
|
const hiddenCount = items.length - visibleCount;
|
|
61604
62028
|
const tooltipContent = hiddenCount > 0 ? /* @__PURE__ */ jsx("ul", { className: "max-h-48 max-w-xs list-disc space-y-1 overflow-y-auto pl-4 text-left text-sm", children: items.map((item, index2) => /* @__PURE__ */ jsx("li", { className: "break-words", children: item }, `${item}-${index2}`)) }) : null;
|
|
61605
62029
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex min-w-0 flex-wrap items-center gap-2", className), children: [
|
|
61606
|
-
visibleItems.map((item, index2) => /* @__PURE__ */
|
|
61607
|
-
|
|
62030
|
+
visibleItems.map((item, index2) => /* @__PURE__ */ jsx(
|
|
62031
|
+
StatusBadge,
|
|
61608
62032
|
{
|
|
62033
|
+
label: item,
|
|
62034
|
+
icon: index2 === 0 ? Icon2 : void 0,
|
|
61609
62035
|
variant: badgeVariant,
|
|
61610
62036
|
color: badgeColor,
|
|
61611
|
-
|
|
61612
|
-
|
|
61613
|
-
index2 === 0 && Icon2 ? /* @__PURE__ */ jsx(Icon2, { className: "h-2.5 w-2.5 shrink-0", "aria-hidden": true }) : null,
|
|
61614
|
-
/* @__PURE__ */ jsx("span", { className: "min-w-0 truncate", children: item })
|
|
61615
|
-
]
|
|
62037
|
+
size: badgeSize,
|
|
62038
|
+
className: "max-w-[12rem]"
|
|
61616
62039
|
},
|
|
61617
62040
|
`${item}-${index2}`
|
|
61618
62041
|
)),
|
|
@@ -67833,6 +68256,506 @@ var SimpleInfoCard = React10.forwardRef(
|
|
|
67833
68256
|
}
|
|
67834
68257
|
);
|
|
67835
68258
|
SimpleInfoCard.displayName = "SimpleInfoCard";
|
|
68259
|
+
|
|
68260
|
+
// src/components/code-editor/code-editor.utils.ts
|
|
68261
|
+
function getLineStart(value2, pos) {
|
|
68262
|
+
return value2.lastIndexOf("\n", pos - 1) + 1;
|
|
68263
|
+
}
|
|
68264
|
+
function getLineEnd(value2, pos) {
|
|
68265
|
+
const next = value2.indexOf("\n", pos);
|
|
68266
|
+
return next === -1 ? value2.length : next;
|
|
68267
|
+
}
|
|
68268
|
+
function getLineIndent(value2, pos) {
|
|
68269
|
+
const lineStart = getLineStart(value2, pos);
|
|
68270
|
+
return /^[ \t]*/.exec(value2.slice(lineStart, pos))[0];
|
|
68271
|
+
}
|
|
68272
|
+
function isMultiLineSelection(value2, start, end) {
|
|
68273
|
+
return value2.slice(start, end).includes("\n");
|
|
68274
|
+
}
|
|
68275
|
+
function getSelectedLineStarts(value2, start, end) {
|
|
68276
|
+
const lastPos = end > start && value2[end - 1] === "\n" ? end - 1 : end;
|
|
68277
|
+
const starts = [getLineStart(value2, start)];
|
|
68278
|
+
for (let i = value2.indexOf("\n", starts[0]); i !== -1 && i < lastPos; i = value2.indexOf("\n", i + 1)) {
|
|
68279
|
+
starts.push(i + 1);
|
|
68280
|
+
}
|
|
68281
|
+
return starts;
|
|
68282
|
+
}
|
|
68283
|
+
function insertTab(value2, start, end, tabSize) {
|
|
68284
|
+
const column = start - getLineStart(value2, start);
|
|
68285
|
+
const text2 = " ".repeat(tabSize - column % tabSize);
|
|
68286
|
+
const caret = start + text2.length;
|
|
68287
|
+
return { start, end, text: text2, selectionStart: caret, selectionEnd: caret };
|
|
68288
|
+
}
|
|
68289
|
+
function indentLines(value2, start, end, tabSize) {
|
|
68290
|
+
const lineStarts = getSelectedLineStarts(value2, start, end);
|
|
68291
|
+
const blockStart = lineStarts[0];
|
|
68292
|
+
const blockEnd = getLineEnd(value2, lineStarts[lineStarts.length - 1]);
|
|
68293
|
+
const indent = " ".repeat(tabSize);
|
|
68294
|
+
const added = lineStarts.map(
|
|
68295
|
+
(lineStart) => lineStart === getLineEnd(value2, lineStart) ? 0 : tabSize
|
|
68296
|
+
);
|
|
68297
|
+
const lines = value2.slice(blockStart, blockEnd).split("\n");
|
|
68298
|
+
const text2 = lines.map((line, i) => added[i] ? indent + line : line).join("\n");
|
|
68299
|
+
const mapOffset = (pos, keepAtLineStart) => {
|
|
68300
|
+
let shift = 0;
|
|
68301
|
+
lineStarts.forEach((lineStart, i) => {
|
|
68302
|
+
if (lineStart < pos || lineStart === pos && !keepAtLineStart) shift += added[i];
|
|
68303
|
+
});
|
|
68304
|
+
return pos + shift;
|
|
68305
|
+
};
|
|
68306
|
+
return {
|
|
68307
|
+
start: blockStart,
|
|
68308
|
+
end: blockEnd,
|
|
68309
|
+
text: text2,
|
|
68310
|
+
// A selection starting at column 0 keeps starting there, so the new indentation is selected too.
|
|
68311
|
+
selectionStart: mapOffset(start, true),
|
|
68312
|
+
selectionEnd: mapOffset(end, false)
|
|
68313
|
+
};
|
|
68314
|
+
}
|
|
68315
|
+
function outdentLines(value2, start, end, tabSize) {
|
|
68316
|
+
const lineStarts = getSelectedLineStarts(value2, start, end);
|
|
68317
|
+
const blockStart = lineStarts[0];
|
|
68318
|
+
const blockEnd = getLineEnd(value2, lineStarts[lineStarts.length - 1]);
|
|
68319
|
+
const lines = value2.slice(blockStart, blockEnd).split("\n");
|
|
68320
|
+
const removed = lines.map(
|
|
68321
|
+
(line) => line.startsWith(" ") ? 1 : Math.min(tabSize, /^ */.exec(line)[0].length)
|
|
68322
|
+
);
|
|
68323
|
+
const text2 = lines.map((line, i) => line.slice(removed[i])).join("\n");
|
|
68324
|
+
const mapOffset = (pos) => {
|
|
68325
|
+
let shift = 0;
|
|
68326
|
+
lineStarts.forEach((lineStart, i) => {
|
|
68327
|
+
if (lineStart <= pos) shift += Math.min(removed[i], pos - lineStart);
|
|
68328
|
+
});
|
|
68329
|
+
return pos - shift;
|
|
68330
|
+
};
|
|
68331
|
+
return {
|
|
68332
|
+
start: blockStart,
|
|
68333
|
+
end: blockEnd,
|
|
68334
|
+
text: text2,
|
|
68335
|
+
selectionStart: mapOffset(start),
|
|
68336
|
+
selectionEnd: mapOffset(end)
|
|
68337
|
+
};
|
|
68338
|
+
}
|
|
68339
|
+
function insertNewline(value2, start, end) {
|
|
68340
|
+
const text2 = "\n" + getLineIndent(value2, start);
|
|
68341
|
+
const caret = start + text2.length;
|
|
68342
|
+
return { start, end, text: text2, selectionStart: caret, selectionEnd: caret };
|
|
68343
|
+
}
|
|
68344
|
+
function applyTextEdit(value2, edit) {
|
|
68345
|
+
return value2.slice(0, edit.start) + edit.text + value2.slice(edit.end);
|
|
68346
|
+
}
|
|
68347
|
+
function formatJson(value2, tabSize) {
|
|
68348
|
+
return JSON.stringify(JSON.parse(value2), null, tabSize);
|
|
68349
|
+
}
|
|
68350
|
+
function getBuiltInFormatter(lang) {
|
|
68351
|
+
return lang.toLowerCase() === "json" ? formatJson : void 0;
|
|
68352
|
+
}
|
|
68353
|
+
function applyEdit(el, edit) {
|
|
68354
|
+
const current = el.value;
|
|
68355
|
+
const expected = applyTextEdit(current, edit);
|
|
68356
|
+
if (expected === current) {
|
|
68357
|
+
el.setSelectionRange(edit.selectionStart, edit.selectionEnd);
|
|
68358
|
+
return;
|
|
68359
|
+
}
|
|
68360
|
+
if (el.ownerDocument.activeElement !== el) el.focus({ preventScroll: true });
|
|
68361
|
+
el.setSelectionRange(edit.start, edit.end);
|
|
68362
|
+
let applied = false;
|
|
68363
|
+
try {
|
|
68364
|
+
applied = typeof document.execCommand === "function" && document.execCommand(edit.text ? "insertText" : "delete", false, edit.text);
|
|
68365
|
+
} catch {
|
|
68366
|
+
applied = false;
|
|
68367
|
+
}
|
|
68368
|
+
if (!applied || el.value !== expected) {
|
|
68369
|
+
if (el.value !== current) el.value = current;
|
|
68370
|
+
el.setRangeText(edit.text, edit.start, edit.end, "end");
|
|
68371
|
+
el.dispatchEvent(new Event("input", { bubbles: true }));
|
|
68372
|
+
}
|
|
68373
|
+
el.setSelectionRange(edit.selectionStart, edit.selectionEnd);
|
|
68374
|
+
}
|
|
68375
|
+
function useCodeEditorKeys({ tabSize, onKeyDown, onBlur }) {
|
|
68376
|
+
const tabReleasedRef = React10.useRef(false);
|
|
68377
|
+
const handleKeyDown = React10.useCallback(
|
|
68378
|
+
(event) => {
|
|
68379
|
+
onKeyDown?.(event);
|
|
68380
|
+
if (event.defaultPrevented) return;
|
|
68381
|
+
if (event.nativeEvent.isComposing || event.keyCode === 229) return;
|
|
68382
|
+
const el = event.currentTarget;
|
|
68383
|
+
if (el.readOnly || el.disabled) return;
|
|
68384
|
+
if (event.key === "Escape") {
|
|
68385
|
+
tabReleasedRef.current = true;
|
|
68386
|
+
return;
|
|
68387
|
+
}
|
|
68388
|
+
if (event.key === "Shift") return;
|
|
68389
|
+
const released = tabReleasedRef.current;
|
|
68390
|
+
tabReleasedRef.current = false;
|
|
68391
|
+
const { value: value2, selectionStart: start, selectionEnd: end } = el;
|
|
68392
|
+
if (event.key === "Tab") {
|
|
68393
|
+
if (released || event.altKey || event.ctrlKey || event.metaKey) return;
|
|
68394
|
+
event.preventDefault();
|
|
68395
|
+
if (event.shiftKey) {
|
|
68396
|
+
applyEdit(el, outdentLines(value2, start, end, tabSize));
|
|
68397
|
+
} else if (isMultiLineSelection(value2, start, end)) {
|
|
68398
|
+
applyEdit(el, indentLines(value2, start, end, tabSize));
|
|
68399
|
+
} else {
|
|
68400
|
+
applyEdit(el, insertTab(value2, start, end, tabSize));
|
|
68401
|
+
}
|
|
68402
|
+
return;
|
|
68403
|
+
}
|
|
68404
|
+
if (event.key === "Enter" && !event.shiftKey && !event.altKey && !event.ctrlKey && !event.metaKey) {
|
|
68405
|
+
event.preventDefault();
|
|
68406
|
+
applyEdit(el, insertNewline(value2, start, end));
|
|
68407
|
+
}
|
|
68408
|
+
},
|
|
68409
|
+
[onKeyDown, tabSize]
|
|
68410
|
+
);
|
|
68411
|
+
const handleBlur = React10.useCallback(
|
|
68412
|
+
(event) => {
|
|
68413
|
+
tabReleasedRef.current = false;
|
|
68414
|
+
onBlur?.(event);
|
|
68415
|
+
},
|
|
68416
|
+
[onBlur]
|
|
68417
|
+
);
|
|
68418
|
+
return { onKeyDown: handleKeyDown, onBlur: handleBlur };
|
|
68419
|
+
}
|
|
68420
|
+
var DEFAULT_CODE_EDITOR_THEMES = {
|
|
68421
|
+
light: "everforest-light",
|
|
68422
|
+
dark: "everforest-dark"
|
|
68423
|
+
};
|
|
68424
|
+
var PLAIN_LANGS = /* @__PURE__ */ new Set(["text", "plaintext", "txt", "plain"]);
|
|
68425
|
+
var TRAILING_LINE = "\u200B";
|
|
68426
|
+
var transformer = {
|
|
68427
|
+
// Shiki makes its `<pre>` focusable; this one sits in an `aria-hidden` layer.
|
|
68428
|
+
pre(node) {
|
|
68429
|
+
delete node.properties.tabindex;
|
|
68430
|
+
},
|
|
68431
|
+
code(node) {
|
|
68432
|
+
node.children.push({ type: "text", value: TRAILING_LINE });
|
|
68433
|
+
}
|
|
68434
|
+
};
|
|
68435
|
+
function plainHtml(value2) {
|
|
68436
|
+
return `<pre><code>${escapeHtml(value2)}${TRAILING_LINE}</code></pre>`;
|
|
68437
|
+
}
|
|
68438
|
+
var warned = /* @__PURE__ */ new Set();
|
|
68439
|
+
function warnOnce(key2, message, error) {
|
|
68440
|
+
if (warned.has(key2)) return;
|
|
68441
|
+
warned.add(key2);
|
|
68442
|
+
console.warn(`[dashboard-ui-components] ${message}`, ...error ? [error] : []);
|
|
68443
|
+
}
|
|
68444
|
+
var resolved = /* @__PURE__ */ new WeakMap();
|
|
68445
|
+
function useHighlightedHtml(value2, { lang, theme, themes, maxHighlightLength }) {
|
|
68446
|
+
const [highlighter, setHighlighter] = React10.useState(() => {
|
|
68447
|
+
const promise = getHighlighter();
|
|
68448
|
+
return resolved.get(promise) ?? null;
|
|
68449
|
+
});
|
|
68450
|
+
React10.useEffect(() => {
|
|
68451
|
+
if (highlighter) return;
|
|
68452
|
+
let active2 = true;
|
|
68453
|
+
const promise = getHighlighter();
|
|
68454
|
+
promise.then(
|
|
68455
|
+
(loaded) => {
|
|
68456
|
+
resolved.set(promise, loaded);
|
|
68457
|
+
if (active2) setHighlighter(loaded);
|
|
68458
|
+
},
|
|
68459
|
+
(error) => warnOnce("load", "Syntax highlighter failed to load; showing plain text.", error)
|
|
68460
|
+
);
|
|
68461
|
+
return () => {
|
|
68462
|
+
active2 = false;
|
|
68463
|
+
};
|
|
68464
|
+
}, [highlighter]);
|
|
68465
|
+
const deferredValue = React10.useDeferredValue(value2);
|
|
68466
|
+
const { light, dark } = themes;
|
|
68467
|
+
return React10.useMemo(() => {
|
|
68468
|
+
if (!highlighter || deferredValue.length > maxHighlightLength) {
|
|
68469
|
+
return plainHtml(deferredValue);
|
|
68470
|
+
}
|
|
68471
|
+
const normalizedLang = normalizeLang(lang);
|
|
68472
|
+
if (!PLAIN_LANGS.has(normalizedLang) && !highlighter.getLoadedLanguages().includes(normalizedLang)) {
|
|
68473
|
+
warnOnce(
|
|
68474
|
+
`lang:${lang}`,
|
|
68475
|
+
`Falling back to plain text for lang="${lang}"; not in the curated Shiki bundle.`
|
|
68476
|
+
);
|
|
68477
|
+
return plainHtml(deferredValue);
|
|
68478
|
+
}
|
|
68479
|
+
try {
|
|
68480
|
+
return highlighter.codeToHtml(deferredValue, {
|
|
68481
|
+
lang: normalizedLang,
|
|
68482
|
+
themes: { light, dark },
|
|
68483
|
+
defaultColor: theme,
|
|
68484
|
+
transformers: [transformer]
|
|
68485
|
+
});
|
|
68486
|
+
} catch (error) {
|
|
68487
|
+
warnOnce(
|
|
68488
|
+
`theme:${light}:${dark}:${lang}`,
|
|
68489
|
+
`Falling back to plain text for themes "${light}" / "${dark}" with lang="${lang}".`,
|
|
68490
|
+
error
|
|
68491
|
+
);
|
|
68492
|
+
return plainHtml(deferredValue);
|
|
68493
|
+
}
|
|
68494
|
+
}, [highlighter, deferredValue, lang, theme, light, dark, maxHighlightLength]);
|
|
68495
|
+
}
|
|
68496
|
+
var layerClassName = "col-start-1 row-start-1 m-0 box-border border-0 p-4 font-mono text-[16px] leading-normal tracking-normal [font-variant-ligatures:none] md:text-[13px]";
|
|
68497
|
+
var highlightClassName = "[&_pre]:m-0 [&_pre]:p-0 [&_pre]:!bg-transparent [&_pre]:[font:inherit] [&_pre]:[white-space:inherit] [&_pre]:[overflow-wrap:inherit] [&_code]:[font:inherit]";
|
|
68498
|
+
function observeValueWrites(node, onWrite) {
|
|
68499
|
+
const own = Object.getOwnPropertyDescriptor(node, "value");
|
|
68500
|
+
const base = own ?? Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype, "value");
|
|
68501
|
+
if (!base?.get || !base.set || own && !own.configurable) return () => {
|
|
68502
|
+
};
|
|
68503
|
+
const { get, set: set2 } = base;
|
|
68504
|
+
Object.defineProperty(node, "value", {
|
|
68505
|
+
configurable: true,
|
|
68506
|
+
enumerable: base.enumerable,
|
|
68507
|
+
get() {
|
|
68508
|
+
return get.call(this);
|
|
68509
|
+
},
|
|
68510
|
+
set(next) {
|
|
68511
|
+
set2.call(this, next);
|
|
68512
|
+
onWrite(get.call(this));
|
|
68513
|
+
}
|
|
68514
|
+
});
|
|
68515
|
+
const form = node.form;
|
|
68516
|
+
const handleReset = () => setTimeout(() => onWrite(node.value));
|
|
68517
|
+
form?.addEventListener("reset", handleReset);
|
|
68518
|
+
return () => {
|
|
68519
|
+
form?.removeEventListener("reset", handleReset);
|
|
68520
|
+
if (own) Object.defineProperty(node, "value", own);
|
|
68521
|
+
else delete node.value;
|
|
68522
|
+
};
|
|
68523
|
+
}
|
|
68524
|
+
function hasContent(node) {
|
|
68525
|
+
return node != null && node !== false && node !== "";
|
|
68526
|
+
}
|
|
68527
|
+
function toCssSize(size) {
|
|
68528
|
+
return typeof size === "number" ? `${size}px` : size;
|
|
68529
|
+
}
|
|
68530
|
+
var CodeEditor = React10.forwardRef(
|
|
68531
|
+
({
|
|
68532
|
+
className,
|
|
68533
|
+
style,
|
|
68534
|
+
lang = "json",
|
|
68535
|
+
theme = "light",
|
|
68536
|
+
themes = DEFAULT_CODE_EDITOR_THEMES,
|
|
68537
|
+
hideHeader = false,
|
|
68538
|
+
fileName,
|
|
68539
|
+
icon,
|
|
68540
|
+
copyButton = true,
|
|
68541
|
+
formatButton,
|
|
68542
|
+
formatter,
|
|
68543
|
+
onFormatError,
|
|
68544
|
+
formatLabel = "Format",
|
|
68545
|
+
copyLabel,
|
|
68546
|
+
headerActions,
|
|
68547
|
+
label,
|
|
68548
|
+
required,
|
|
68549
|
+
hintContent,
|
|
68550
|
+
error,
|
|
68551
|
+
errorContent,
|
|
68552
|
+
minHeight,
|
|
68553
|
+
maxHeight,
|
|
68554
|
+
wrap = false,
|
|
68555
|
+
tabSize = 2,
|
|
68556
|
+
maxHighlightLength = 1e4,
|
|
68557
|
+
id,
|
|
68558
|
+
value: value2,
|
|
68559
|
+
defaultValue,
|
|
68560
|
+
onChange,
|
|
68561
|
+
onKeyDown,
|
|
68562
|
+
onBlur,
|
|
68563
|
+
onScroll,
|
|
68564
|
+
disabled,
|
|
68565
|
+
readOnly,
|
|
68566
|
+
"aria-describedby": ariaDescribedBy,
|
|
68567
|
+
...textareaProps
|
|
68568
|
+
}, forwardedRef) => {
|
|
68569
|
+
const autoId = React10.useId();
|
|
68570
|
+
const textareaId = id || autoId;
|
|
68571
|
+
const errorId = `${textareaId}-error`;
|
|
68572
|
+
const hasError = error || !!errorContent;
|
|
68573
|
+
const isControlled = value2 !== void 0;
|
|
68574
|
+
const [innerValue, setInnerValue] = React10.useState(
|
|
68575
|
+
() => defaultValue == null ? "" : String(defaultValue)
|
|
68576
|
+
);
|
|
68577
|
+
const currentValue = isControlled ? String(value2 ?? "") : innerValue;
|
|
68578
|
+
const html = useHighlightedHtml(currentValue, {
|
|
68579
|
+
lang,
|
|
68580
|
+
theme,
|
|
68581
|
+
themes,
|
|
68582
|
+
maxHighlightLength
|
|
68583
|
+
});
|
|
68584
|
+
const keys = useCodeEditorKeys({ tabSize, onKeyDown, onBlur });
|
|
68585
|
+
const textareaRef = React10.useRef(null);
|
|
68586
|
+
const stopObservingRef = React10.useRef(void 0);
|
|
68587
|
+
const setTextareaRef = React10.useCallback(
|
|
68588
|
+
(node) => {
|
|
68589
|
+
textareaRef.current = node;
|
|
68590
|
+
stopObservingRef.current?.();
|
|
68591
|
+
stopObservingRef.current = void 0;
|
|
68592
|
+
if (node && !isControlled) {
|
|
68593
|
+
stopObservingRef.current = observeValueWrites(node, setInnerValue);
|
|
68594
|
+
setInnerValue(node.value);
|
|
68595
|
+
}
|
|
68596
|
+
if (typeof forwardedRef === "function") forwardedRef(node);
|
|
68597
|
+
else if (forwardedRef) forwardedRef.current = node;
|
|
68598
|
+
},
|
|
68599
|
+
[forwardedRef, isControlled]
|
|
68600
|
+
);
|
|
68601
|
+
const handleChange = (event) => {
|
|
68602
|
+
if (!isControlled) setInnerValue(event.target.value);
|
|
68603
|
+
onChange?.(event);
|
|
68604
|
+
};
|
|
68605
|
+
const handleScroll = (event) => {
|
|
68606
|
+
const el = event.currentTarget;
|
|
68607
|
+
if (el.scrollTop !== 0) el.scrollTop = 0;
|
|
68608
|
+
if (el.scrollLeft !== 0) el.scrollLeft = 0;
|
|
68609
|
+
onScroll?.(event);
|
|
68610
|
+
};
|
|
68611
|
+
const builtInFormatter = getBuiltInFormatter(lang);
|
|
68612
|
+
const format6 = formatter ?? (builtInFormatter && ((v) => builtInFormatter(v, tabSize)));
|
|
68613
|
+
const showFormatButton = formatButton !== false && format6 !== void 0;
|
|
68614
|
+
const handleFormat = () => {
|
|
68615
|
+
const el = textareaRef.current;
|
|
68616
|
+
if (!el || !format6) return;
|
|
68617
|
+
let formatted;
|
|
68618
|
+
try {
|
|
68619
|
+
formatted = format6(el.value);
|
|
68620
|
+
} catch (formatError) {
|
|
68621
|
+
onFormatError?.(formatError);
|
|
68622
|
+
return;
|
|
68623
|
+
}
|
|
68624
|
+
applyEdit(el, {
|
|
68625
|
+
start: 0,
|
|
68626
|
+
end: el.value.length,
|
|
68627
|
+
text: formatted,
|
|
68628
|
+
selectionStart: 0,
|
|
68629
|
+
selectionEnd: 0
|
|
68630
|
+
});
|
|
68631
|
+
};
|
|
68632
|
+
const describedBy = [ariaDescribedBy, errorContent ? errorId : void 0].filter(Boolean).join(" ") || void 0;
|
|
68633
|
+
const wrapClassName = wrap ? "whitespace-pre-wrap [overflow-wrap:anywhere]" : "whitespace-pre [overflow-wrap:normal]";
|
|
68634
|
+
const showHeader = !hideHeader && (hasContent(fileName) || copyButton || showFormatButton || hasContent(headerActions));
|
|
68635
|
+
const actions = hasContent(headerActions) || showFormatButton ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
68636
|
+
headerActions,
|
|
68637
|
+
showFormatButton && /* @__PURE__ */ jsx(
|
|
68638
|
+
"button",
|
|
68639
|
+
{
|
|
68640
|
+
type: "button",
|
|
68641
|
+
"data-slot": "code-editor-format",
|
|
68642
|
+
"aria-label": formatLabel,
|
|
68643
|
+
title: formatLabel,
|
|
68644
|
+
disabled: disabled || readOnly || currentValue.trim() === "",
|
|
68645
|
+
onClick: handleFormat,
|
|
68646
|
+
className: cn(buttonVariants$1({ variant: "ghost", size: "sm" }), "w-auto h-auto p-2"),
|
|
68647
|
+
children: /* @__PURE__ */ jsx(Braces, {})
|
|
68648
|
+
}
|
|
68649
|
+
)
|
|
68650
|
+
] }) : void 0;
|
|
68651
|
+
const editor = /* @__PURE__ */ jsxs(
|
|
68652
|
+
"div",
|
|
68653
|
+
{
|
|
68654
|
+
"data-slot": "code-editor",
|
|
68655
|
+
"data-disabled": disabled ? "" : void 0,
|
|
68656
|
+
className: cn(
|
|
68657
|
+
"relative flex flex-col overflow-hidden rounded-lg border bg-background ring-offset-background transition-[box-shadow,border-color] duration-200 ease-in-out",
|
|
68658
|
+
"has-[textarea:focus-visible]:ring-2 has-[textarea:focus-visible]:ring-ring has-[textarea:focus-visible]:ring-offset-2",
|
|
68659
|
+
hasError && "border-destructive has-[textarea:focus-visible]:ring-destructive",
|
|
68660
|
+
className
|
|
68661
|
+
),
|
|
68662
|
+
style,
|
|
68663
|
+
children: [
|
|
68664
|
+
showHeader && /* @__PURE__ */ jsx(
|
|
68665
|
+
CodeHeader,
|
|
68666
|
+
{
|
|
68667
|
+
icon,
|
|
68668
|
+
fileName,
|
|
68669
|
+
actions,
|
|
68670
|
+
copyContent: copyButton ? currentValue : void 0,
|
|
68671
|
+
copyLabel
|
|
68672
|
+
}
|
|
68673
|
+
),
|
|
68674
|
+
/* @__PURE__ */ jsx(
|
|
68675
|
+
"div",
|
|
68676
|
+
{
|
|
68677
|
+
className: cn(
|
|
68678
|
+
"relative min-h-0 flex-1 overflow-auto bg-accent/10",
|
|
68679
|
+
disabled && "cursor-not-allowed opacity-50"
|
|
68680
|
+
),
|
|
68681
|
+
style: { maxHeight: toCssSize(maxHeight) },
|
|
68682
|
+
children: /* @__PURE__ */ jsxs(
|
|
68683
|
+
"div",
|
|
68684
|
+
{
|
|
68685
|
+
className: cn("grid", wrap ? "w-full grid-cols-[minmax(0,1fr)]" : "w-max min-w-full"),
|
|
68686
|
+
style: { minHeight: toCssSize(minHeight), tabSize },
|
|
68687
|
+
children: [
|
|
68688
|
+
/* @__PURE__ */ jsxs("div", { "aria-hidden": true, className: cn(layerClassName, wrapClassName, "invisible"), children: [
|
|
68689
|
+
currentValue,
|
|
68690
|
+
"\u200B"
|
|
68691
|
+
] }),
|
|
68692
|
+
/* @__PURE__ */ jsx(
|
|
68693
|
+
"div",
|
|
68694
|
+
{
|
|
68695
|
+
"aria-hidden": true,
|
|
68696
|
+
className: cn(layerClassName, wrapClassName, highlightClassName, "pointer-events-none"),
|
|
68697
|
+
dangerouslySetInnerHTML: { __html: html }
|
|
68698
|
+
}
|
|
68699
|
+
),
|
|
68700
|
+
/* @__PURE__ */ jsx(
|
|
68701
|
+
"textarea",
|
|
68702
|
+
{
|
|
68703
|
+
id: textareaId,
|
|
68704
|
+
ref: setTextareaRef,
|
|
68705
|
+
value: value2,
|
|
68706
|
+
defaultValue,
|
|
68707
|
+
disabled,
|
|
68708
|
+
readOnly,
|
|
68709
|
+
required,
|
|
68710
|
+
wrap: wrap ? "soft" : "off",
|
|
68711
|
+
spellCheck: false,
|
|
68712
|
+
autoCapitalize: "off",
|
|
68713
|
+
autoComplete: "off",
|
|
68714
|
+
autoCorrect: "off",
|
|
68715
|
+
translate: "no",
|
|
68716
|
+
"data-gramm": "false",
|
|
68717
|
+
"aria-invalid": hasError || void 0,
|
|
68718
|
+
"aria-describedby": describedBy,
|
|
68719
|
+
...textareaProps,
|
|
68720
|
+
onChange: handleChange,
|
|
68721
|
+
onKeyDown: keys.onKeyDown,
|
|
68722
|
+
onBlur: keys.onBlur,
|
|
68723
|
+
onScroll: handleScroll,
|
|
68724
|
+
style: { tabSize },
|
|
68725
|
+
className: cn(
|
|
68726
|
+
layerClassName,
|
|
68727
|
+
wrapClassName,
|
|
68728
|
+
"relative z-10 h-full w-full resize-none overflow-hidden bg-transparent text-transparent caret-foreground outline-none [-webkit-text-fill-color:transparent]",
|
|
68729
|
+
"placeholder:text-muted-foreground placeholder:[-webkit-text-fill-color:var(--color-muted-foreground)] selection:bg-primary/20",
|
|
68730
|
+
"disabled:cursor-not-allowed read-only:cursor-default"
|
|
68731
|
+
)
|
|
68732
|
+
}
|
|
68733
|
+
)
|
|
68734
|
+
]
|
|
68735
|
+
}
|
|
68736
|
+
)
|
|
68737
|
+
}
|
|
68738
|
+
)
|
|
68739
|
+
]
|
|
68740
|
+
}
|
|
68741
|
+
);
|
|
68742
|
+
if (label == null && hintContent == null && errorContent == null) return editor;
|
|
68743
|
+
return /* @__PURE__ */ jsxs("div", { className: "space-y-2 flex-1", children: [
|
|
68744
|
+
label != null ? /* @__PURE__ */ jsx(
|
|
68745
|
+
FieldLabelRow,
|
|
68746
|
+
{
|
|
68747
|
+
htmlFor: textareaId,
|
|
68748
|
+
label,
|
|
68749
|
+
required,
|
|
68750
|
+
hintContent
|
|
68751
|
+
}
|
|
68752
|
+
) : hintContent != null && /* @__PURE__ */ jsx("span", { className: fieldHintClassName, children: hintContent }),
|
|
68753
|
+
editor,
|
|
68754
|
+
errorContent != null && /* @__PURE__ */ jsx("div", { id: errorId, className: "text-sm text-destructive", children: errorContent })
|
|
68755
|
+
] });
|
|
68756
|
+
}
|
|
68757
|
+
);
|
|
68758
|
+
CodeEditor.displayName = "CodeEditor";
|
|
67836
68759
|
var maxWidthClasses = {
|
|
67837
68760
|
sm: "max-w-2xl",
|
|
67838
68761
|
md: "max-w-4xl",
|
|
@@ -68013,4 +68936,4 @@ lottie-react/build/index.es.js:
|
|
|
68013
68936
|
(*! goToAndStop must be relative to the start of the current segment *)
|
|
68014
68937
|
*/
|
|
68015
68938
|
|
|
68016
|
-
export { Accordion3 as Accordion, AdvancedSearchBox, Alert, AnimatedCard, AnimatedRainmakerLogo, AreaChart, AsyncCombobox, AsyncMultiSelect, BarChart, BasicDetailsCard, CHART_CATEGORY_COLORS, CHART_SERIES_COLORS, Calendar, CalendarDayButton, Carousel2 as Carousel, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox2 as Checkbox, CircularProgress, Code, CollapsibleCard, ComposedChart, ConfirmationDialog, ContentContainer, CopiableText, DEFAULT_CHART_SERIES_COLORS, DEFAULT_PAGE_SIZE_OPTIONS, DataTable, DatePicker, DateRangePicker, DeviceIcon, Dialog2 as Dialog, DialogClose2 as DialogClose, DialogContent2 as DialogContent, DialogDescription2 as DialogDescription, DialogFooter2 as DialogFooter, DialogHeader2 as DialogHeader, DialogTitle2 as DialogTitle, DialogTrigger2 as DialogTrigger, DonutChart, DynamicList, FileInput, FileUpload, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, FullSizeError, FullscreenDialog, IconAvatar, IconTextActionCard, Illustration, InlineError, InputOTP, InputOTPSeparator, KeyValueManager, LineChart, ListDetails, LottieAnimationContainer, MarkdownContent, MonospaceContent, NavBar, OverflowBadgeList, PRESET_IDS, PRESET_LABELS, PageContainer, PageContainerSkeleton, Pagination, PopCollectionItem, PreviewCard2 as PreviewCard, PreviewCardBackdrop2 as PreviewCardBackdrop, PreviewCardPanel, PreviewCardTrigger2 as PreviewCardTrigger, ProgressBar, RadioGroup3 as RadioGroup, RequirementList, ScrollableSections, SearchBox, SectionCard, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SelectableCardList, SimpleCard, SimpleClickableCard, SimpleInfoCard, SimpleList, SimplePaginatedList, SimplifiedDate, Spinner, StatCard, StatusBadge, StatusCardList, Switch2 as Switch, TYPOGRAPHY_VARIANTS, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, TableSkeleton, Tabs2 as Tabs, TabsContent2 as TabsContent, TabsContents2 as TabsContents, TabsList2 as TabsList, TabsTrigger2 as TabsTrigger, Tag, TagInput, Textarea, TimePicker, Toast, Toaster, TogglableItemsList, ToggleGroup2 as ToggleGroup, ToggleGroupItem2 as ToggleGroupItem, TransferList, TreemapChart, Typography, UserTypeBadge, VerificationInProgress, VerticalStepper, animatedCardAnimations, animatedCardTypeKeys, buildSeriesChartConfig, computeDateRange, getChartSeriesColor, illustrationRegistry, illustrationsById, no_data_card_default, parseSvgViewBoxAspectRatio, statusBadgeSizeVariants, toast, typographyDefaultElement, typographyVariantClasses, useFormField, userTypeBadgeRegistry, userTypeBadgeSizeVariants, userTypeBadgeUserTypes };
|
|
68939
|
+
export { Accordion3 as Accordion, AdvancedSearchBox, Alert, AnimatedCard, AnimatedRainmakerLogo, AreaChart, AsyncCombobox, AsyncMultiSelect, BarChart, BasicDetailsCard, CHART_CATEGORY_COLORS, CHART_SERIES_COLORS, Calendar, CalendarDayButton, Carousel2 as Carousel, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox2 as Checkbox, CircularProgress, Code, CodeEditor, CollapsibleCard, ComposedChart, ConfirmationDialog, ContentContainer, CopiableText, DEFAULT_CHART_SERIES_COLORS, DEFAULT_PAGE_SIZE_OPTIONS, DataTable, DatePicker, DateRangePicker, DateTimePicker, DeviceIcon, Dialog2 as Dialog, DialogClose2 as DialogClose, DialogContent2 as DialogContent, DialogDescription2 as DialogDescription, DialogFooter2 as DialogFooter, DialogHeader2 as DialogHeader, DialogTitle2 as DialogTitle, DialogTrigger2 as DialogTrigger, DonutChart, DynamicList, FileInput, FileUpload, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, FullSizeError, FullscreenDialog, IconAvatar, IconTextActionCard, Illustration, InlineError, InputOTP, InputOTPSeparator, KeyValueManager, LineChart, ListDetails, LottieAnimationContainer, MarkdownContent, MonospaceContent, NavBar, OverflowBadgeList, PRESET_IDS, PRESET_LABELS, PageContainer, PageContainerSkeleton, Pagination, PopCollectionItem, PreviewCard2 as PreviewCard, PreviewCardBackdrop2 as PreviewCardBackdrop, PreviewCardPanel, PreviewCardTrigger2 as PreviewCardTrigger, ProgressBar, ROLLING_PRESET_IDS, RadioGroup3 as RadioGroup, RequirementList, ScrollableSections, SearchBox, SectionCard, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, SelectableCardList, SimpleCard, SimpleClickableCard, SimpleInfoCard, SimpleList, SimplePaginatedList, SimplifiedDate, Spinner, StatCard, StatusBadge, StatusCardList, Switch2 as Switch, TYPOGRAPHY_VARIANTS, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, TableSkeleton, Tabs2 as Tabs, TabsContent2 as TabsContent, TabsContents2 as TabsContents, TabsList2 as TabsList, TabsTrigger2 as TabsTrigger, Tag, TagInput, Textarea, TimePicker, Toast, Toaster, TogglableItemsList, ToggleGroup2 as ToggleGroup, ToggleGroupItem2 as ToggleGroupItem, TransferList, TreemapChart, Typography, UserTypeBadge, VerificationInProgress, VerticalStepper, animatedCardAnimations, animatedCardTypeKeys, buildSeriesChartConfig, computeDateRange, getChartSeriesColor, illustrationRegistry, illustrationsById, no_data_card_default, parseSvgViewBoxAspectRatio, statusBadgeSizeVariants, toast, typographyDefaultElement, typographyVariantClasses, useFormField, userTypeBadgeRegistry, userTypeBadgeSizeVariants, userTypeBadgeUserTypes };
|