(
+
+ {Intl.DateTimeFormat(undefined, {
+ month: 'short',
+ }).format(new Date(date))}
+
+ ),
+ },
+ 'storage',
+ 'compute',
+ 'networking',
+ ]}
+ chart={[
+ {
+ property: [
+ {
+ property: 'storage',
+ thickness: 'small',
+ color: 'chart-qualitative-30',
+ },
+ {
+ property: 'compute',
+ thickness: 'small',
+ color: 'chart-qualitative-70',
+ },
+ {
+ property: 'networking',
+ thickness: 'small',
+ color: 'chart-qualitative-50',
+ },
+ ],
+ type: 'bars',
+ },
+ ]}
+ axis={{ x: { property: 'date' }, y: true }}
+ guide={{ y: { granularity: 'fine' } }}
+ />
+
+
+
+
+
+ >
+ )}
+
+ );
+};
diff --git a/sandbox/grommet-app/src/pages/next/MyServices.jsx b/sandbox/grommet-app/src/pages/next/MyServices.jsx
new file mode 100644
index 000000000..3cd673f77
--- /dev/null
+++ b/sandbox/grommet-app/src/pages/next/MyServices.jsx
@@ -0,0 +1,23 @@
+import { List, Box, Text } from 'grommet';
+import { DashboardCard } from '../../components';
+import services from '../../mockData/services.json';
+
+export const MyServices = () => {
+ return (
+
+
+ {datum => (
+
+ {datum.name}
+ {datum.category}
+
+ )}
+
+
+ );
+};
diff --git a/sandbox/grommet-app/src/pages/next/Notifications.jsx b/sandbox/grommet-app/src/pages/next/Notifications.jsx
new file mode 100644
index 000000000..d71329080
--- /dev/null
+++ b/sandbox/grommet-app/src/pages/next/Notifications.jsx
@@ -0,0 +1,103 @@
+import { Box, Heading, List, Text } from 'grommet';
+import {
+ StatusCritical,
+ StatusWarning,
+ StatusGood,
+ StatusCriticalSmall,
+ StatusWarningSmall,
+ StatusGoodSmall,
+ CircleInformation,
+} from 'grommet-icons';
+import { DashboardCard, NotificationMetric } from '../../components';
+import notifications from '../../mockData/notifications.json';
+import { useContext } from 'react';
+import { SkeletonContext } from '../../components';
+
+const statuses = {
+ critical: {
+ background: 'background-status-critical',
+ icon: ,
+ iconCompact: (
+
+ ),
+ label: 'Critical',
+ },
+ warning: {
+ background: 'background-status-warning',
+ icon: ,
+ iconCompact: (
+
+ ),
+ label: 'Warning',
+ },
+ ok: {
+ background: 'background-status-ok',
+ icon: ,
+ iconCompact: (
+
+ ),
+ label: 'Ok',
+ },
+ info: {
+ background: 'background-status-info',
+ icon: ,
+ iconCompact: (
+
+ ),
+ label: 'Information',
+ },
+};
+
+export const Notifications = () => {
+ const skeleton = useContext(SkeletonContext);
+ return (
+
+
+
+
+
+
+
+
+
+
+ Recents
+
+
+ {datum => (
+
+
+ {!skeleton ? statuses[datum.status].iconCompact : undefined}
+
+
+ {datum.service}
+
+
+ {datum.message}
+
+
+
+ {Intl.DateTimeFormat(undefined, {
+ timeStyle: 'short',
+ }).format(new Date(datum.createdAt))}
+
+
+
+ )}
+
+
+
+
+ );
+};
diff --git a/sandbox/grommet-app/src/pages/next/QuickActions.jsx b/sandbox/grommet-app/src/pages/next/QuickActions.jsx
new file mode 100644
index 000000000..1c2cc62b7
--- /dev/null
+++ b/sandbox/grommet-app/src/pages/next/QuickActions.jsx
@@ -0,0 +1,87 @@
+import { Anchor, Box, Button, Heading, Skeleton } from 'grommet';
+import PropTypes from 'prop-types';
+import {
+ ChapterAdd,
+ Cloud,
+ Edit,
+ MapLocation,
+ Stakeholder,
+ UserAdd,
+} from 'grommet-icons';
+import { useContext } from 'react';
+import { ThemeContext } from 'styled-components';
+import { useLoading } from '../../utils/skeleton';
+
+export const QuickActions = ({ edit = true, icons }) => {
+ const theme = useContext(ThemeContext);
+ const skeleton = useLoading(200);
+ return (
+
+
+
+ Quick Actions
+
+ {edit && (
+ }
+ kind="subtle"
+ reverse
+ />
+ )}
+
+
+ {skeleton ? (
+
+ ) : (
+ }
+ label="Add devices"
+ href="#"
+ />
+ )}
+ {skeleton ? (
+
+ ) : (
+ }
+ label="Add service subscriptions"
+ href="#"
+ />
+ )}
+ {skeleton ? (
+
+ ) : (
+ }
+ label="Add users"
+ href="#"
+ />
+ )}
+ {skeleton ? (
+
+ ) : (
+ }
+ label="Assign roles"
+ href="#"
+ />
+ )}
+ {skeleton ? (
+
+ ) : (
+ }
+ label="Create location"
+ href="#"
+ />
+ )}
+
+
+ );
+};
+
+QuickActions.propTypes = {
+ icons: PropTypes.bool,
+ edit: PropTypes.bool,
+};
diff --git a/sandbox/grommet-app/src/pages/next/Recommended.jsx b/sandbox/grommet-app/src/pages/next/Recommended.jsx
new file mode 100644
index 000000000..db6a03452
--- /dev/null
+++ b/sandbox/grommet-app/src/pages/next/Recommended.jsx
@@ -0,0 +1,47 @@
+import { Box, Heading } from 'grommet';
+import PropTypes from 'prop-types';
+import { DashboardCard } from '../../components';
+import { Tree, History, Robot } from 'grommet-icons';
+import { useContext } from 'react';
+import { SkeletonContext } from '../../components';
+
+export const Recommended = ({ inline }) => {
+ const skeleton = useContext(SkeletonContext);
+ return (
+
+
+ Recommended for you
+
+
+ }
+ subtitle="Bring DevOps features to the machine learning lifecycle."
+ level={3}
+ inline={inline}
+ hideCta={inline}
+ />
+ }
+ subtitle="Data protection as a service that’s secure & reliable."
+ level={3}
+ inline={inline}
+ hideCta={inline}
+ />
+ }
+ subtitle="Accelerate configuring, monitoring, and managing storage fabrics."
+ level={3}
+ inline={inline}
+ hideCta={inline}
+ />
+
+
+ );
+};
+
+Recommended.propTypes = {
+ inline: PropTypes.bool,
+};
diff --git a/sandbox/grommet-app/src/pages/next/SustainabilityOverview.jsx b/sandbox/grommet-app/src/pages/next/SustainabilityOverview.jsx
new file mode 100644
index 000000000..10a580954
--- /dev/null
+++ b/sandbox/grommet-app/src/pages/next/SustainabilityOverview.jsx
@@ -0,0 +1,131 @@
+import { Link } from 'react-router-dom';
+import { DataChart, Grid, Notification, Skeleton } from 'grommet';
+import { DashboardCard } from '../../components';
+import sustainability from '../../mockData/sustainability.json';
+import { Metric } from '../../components';
+import { useContext } from 'react';
+import { SkeletonContext } from '../../components';
+
+export const SustainabilityOverview = () => {
+ const skeleton = useContext(SkeletonContext);
+ return (
+
+
+ }
+ >
+
+ <>
+
+ {skeleton ? (
+
+ ) : (
+
+ )}
+ >
+ <>
+
+ {skeleton ? (
+
+ ) : (
+
+ )}
+ >
+ <>
+
+ {skeleton ? (
+
+ ) : (
+
+ )}
+ >
+
+
+
+ );
+};
diff --git a/sandbox/grommet-app/src/pages/next/UserOverview.jsx b/sandbox/grommet-app/src/pages/next/UserOverview.jsx
new file mode 100644
index 000000000..f27989539
--- /dev/null
+++ b/sandbox/grommet-app/src/pages/next/UserOverview.jsx
@@ -0,0 +1,83 @@
+import { Box, Meter, Text, Notification } from 'grommet';
+import { DashboardCard } from '../../components';
+import { Legend } from '../../components';
+import { useContext } from 'react';
+import { SkeletonContext } from '../../components';
+
+export const UserOverview = () => {
+ const skeleton = useContext(SkeletonContext);
+ return (
+
+ }
+ >
+
+
+
+
+
+
+ Total
+
+
+ 232
+
+
+
+
+
+ 163
+
+
+
+
+
+ 40
+
+
+
+
+
+ 19
+
+
+
+
+
+ );
+};
diff --git a/sandbox/grommet-app/src/pages/next/index.jsx b/sandbox/grommet-app/src/pages/next/index.jsx
new file mode 100644
index 000000000..bcd64fbe8
--- /dev/null
+++ b/sandbox/grommet-app/src/pages/next/index.jsx
@@ -0,0 +1,130 @@
+import { useContext } from 'react';
+import {
+ Box,
+ PageHeader,
+ Page,
+ PageContent,
+ Button,
+ Grid,
+ ResponsiveContext,
+} from 'grommet';
+import { Configure } from 'grommet-icons';
+import { Recommended } from './Recommended';
+import { Learn } from './Learn';
+import { QuickActions } from './QuickActions';
+import { SustainabilityOverview } from './SustainabilityOverview';
+import { Notifications } from './Notifications';
+import { BillingSummary } from './BillingSummary';
+import { RecentServices } from '../RecentServices';
+import ContentPane from '../../components/ContentPane';
+import { GetStarted } from '../GetStarted';
+import { DeviceSummary } from './DeviceSummary';
+import { UserOverview } from './UserOverview';
+import { ExpiringSubscriptions } from './ExpiringSubscriptions';
+import { MonthlyCharges } from './MonthlyCharges';
+import { SkeletonContext } from '../../components';
+import {
+ skeleton as skeletonAnimation,
+ useLoading,
+} from '../../utils/skeleton';
+
+const Divider = () => ;
+
+function Index() {
+ const size = useContext(ResponsiveContext);
+ const getStartedLoading = useLoading(250);
+ const insightsLoading = useLoading(2000);
+ const sidePanelLoading = useLoading(250);
+ return (
+
+
+
+
+ }
+ reverse
+ />
+ }
+ pad="none"
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default Index;
diff --git a/sandbox/grommet-app/src/pages/refresh/index.jsx b/sandbox/grommet-app/src/pages/refresh/index.jsx
new file mode 100644
index 000000000..3aee0da3b
--- /dev/null
+++ b/sandbox/grommet-app/src/pages/refresh/index.jsx
@@ -0,0 +1,138 @@
+import {
+ Anchor,
+ Box,
+ PageHeader,
+ Grid,
+ Page,
+ PageContent,
+ Button,
+ Heading,
+ Text,
+} from 'grommet';
+import { Link } from 'react-router-dom';
+import { Devices } from '../sustainability/Devices';
+import {
+ Down,
+ LinkNext,
+ MoreVertical,
+ Next,
+ Previous,
+ Refresh,
+ ShareRounded,
+ Sidebar,
+ VirtualMachine,
+} from 'grommet-icons';
+import ContentPane from '../../components/ContentPane';
+
+function Sustainability() {
+ return (
+
+
+
+ Private Cloud
+ } />
+
+
+
+
+
+ }
+ active
+ justify="between"
+ reverse
+ />
+
+ }
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Virtual Machines
+
+
+ }
+ parent={
+ } />
+ }
+ actions={
+
+ } />
+ } />
+ } />
+
+ }
+ />
+
+
+
+
+ }
+ label="HPE Private Cloud Las Vegas"
+ />
+ }
+ />
+
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default Sustainability;
diff --git a/sandbox/grommet-app/src/pages/sticker-sheet/index.jsx b/sandbox/grommet-app/src/pages/sticker-sheet/index.jsx
new file mode 100644
index 000000000..0d66ee156
--- /dev/null
+++ b/sandbox/grommet-app/src/pages/sticker-sheet/index.jsx
@@ -0,0 +1,505 @@
+/* eslint-disable react/jsx-key */
+import React, { useMemo } from 'react';
+import PropTypes from 'prop-types';
+import {
+ Anchor,
+ Box,
+ Button,
+ CheckBox,
+ RangeInput,
+ Menu,
+ Grommet,
+ Page,
+ Heading,
+ Tab,
+ PageContent,
+ PageHeader,
+ Text,
+ Stack,
+ ThemeContext,
+ Paragraph,
+ Accordion,
+ AccordionPanel,
+ Notification,
+ DateInput,
+ Pagination,
+ Spinner,
+ Tag,
+ Select,
+ FormField,
+ CheckBoxGroup,
+ RadioButtonGroup,
+ TextInput,
+ SelectMultiple,
+ Tabs,
+ TextArea,
+ NameValueList,
+ NameValuePair,
+ FileInput,
+ StarRating,
+ ThumbsRating,
+ DataTable,
+ Meter,
+} from 'grommet';
+import { User } from 'grommet-icons';
+import { hpe } from 'grommet-theme-hpe';
+import { current as hpeCurrent } from '../../theme';
+
+const textSizes = [
+ 'xsmall',
+ 'small',
+ 'medium',
+ 'large',
+ 'xlarge',
+ 'xxlarge',
+ '3xl',
+ '4xl',
+ '5xl',
+ '6xl',
+];
+
+const kinds = ['default', 'toolbar', 'secondary', 'primary'];
+const states = ['enabled', 'active', 'disabled'];
+const sizes = ['small', 'medium', 'large', 'xlarge'];
+
+const ModeContext = React.createContext({});
+
+const Compare = ({ children, ...rest }) => {
+ const { mode, direction } = React.useContext(ModeContext);
+
+ if (direction === 'row') {
+ return (
+
+
+ {children}
+
+
+ {children}
+
+
+ );
+ }
+
+ return (
+
+
+
+ {children}
+
+
+
+
+
+ {children}
+
+
+
+ );
+};
+
+Compare.propTypes = {
+ children: PropTypes.oneOfType([
+ PropTypes.string,
+ PropTypes.array,
+ PropTypes.element,
+ ]),
+};
+
+const StickerSheet = () => {
+ const [mode, setMode] = React.useState('Compare diffs');
+ const [direction, setDirection] = React.useState('row');
+
+ const contextValue = useMemo(() => {
+ return {
+ mode,
+ direction,
+ };
+ }, [mode, direction]);
+ return (
+
+
+
+
+
+
+
+ setDirection(e.target.checked ? 'row' : '')
+ }
+ checked={direction === 'row' ? true : false}
+ toggle
+ />
+
+
+
+
+ }
+ width="100%"
+ />
+
+ {textSizes.map(size => (
+
+
+ Anchor {size}
+
+
+ ))}
+
+
+ {textSizes.map(size => (
+
+
+ Text {size}
+
+
+ ))}
+
+
+ {['small', 'medium', 'large', 'xlarge', 'xxlarge'].map(size => (
+
+
+ Paragraph {size} with some extra text so we can see how it
+ is when it wraps
+
+
+ ))}
+
+
+ {[1, 2, 3, 4, 5, 6].map(level => (
+
+ {['small', 'medium', 'large', 'xlarge'].map(size => (
+
+
+ Heading {level} {size}
+
+
+ ))}
+
+ ))}
+
+
+ {kinds.map(kind =>
+ sizes.map(size =>
+ states.map(state => (
+
+
+
+ )),
+ ),
+ )}
+
+
+
+ } size="small" />
+
+
+ } />
+
+
+ } size="large" />
+
+
+ } size="xlarge" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ hi
+ hi
+
+
+
+ {/*
+
+ TS
+
+
+ TS
+
+
+ TS
+
+ */}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {/*
+
+ */}
+
+
+
+
+
+
+
+
+ San Francisco
+ California
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+export default StickerSheet;
diff --git a/sandbox/grommet-app/src/pages/sustainability/Devices.jsx b/sandbox/grommet-app/src/pages/sustainability/Devices.jsx
new file mode 100644
index 000000000..ca262adef
--- /dev/null
+++ b/sandbox/grommet-app/src/pages/sustainability/Devices.jsx
@@ -0,0 +1,1470 @@
+import { useState } from 'react';
+import PropTypes from 'prop-types';
+import {
+ Data,
+ DataTable,
+ Pagination,
+ Box,
+ Text,
+ Toolbar,
+ DataSearch,
+ DataSort,
+ DataFilters,
+ DataSummary,
+ DataView,
+ DataTableColumns,
+ ResponsiveContext,
+ DropButton,
+ Menu,
+} from 'grommet';
+import { More } from 'grommet-icons';
+import { useContext } from 'react';
+import { useLoading } from '../../utils/skeleton';
+import { Comfortable, Compact, Spacious } from '../../icons';
+
+const columns = [
+ {
+ property: 'serialNumber',
+ header: 'Serial number',
+ primary: true,
+ },
+ {
+ property: 'name',
+ header: 'Name',
+ render: datum => (datum.name ? datum.name : '--'),
+ },
+ {
+ property: 'type',
+ header: 'Type',
+ },
+ {
+ property: 'make',
+ header: 'Make',
+ },
+ {
+ property: 'country',
+ header: 'Country',
+ },
+ {
+ property: 'state',
+ header: 'State',
+ },
+ {
+ property: 'city',
+ header: 'City',
+ render: datum => {datum.city},
+ },
+ {
+ property: 'model',
+ header: 'Model',
+ render: datum => {datum.model},
+ size: 'medium',
+ },
+ {
+ property: 'totalEnergy',
+ header: 'Total energy',
+ units: 'kWh',
+ align: 'end',
+ render: datum => (
+ {Intl.NumberFormat().format(datum.totalEnergy)}
+ ),
+ },
+];
+
+const options = columns.map(column => ({
+ property: column.property,
+ label: column.header,
+}));
+
+const data = [
+ {
+ serialNumber: 'fg4agao01r8x5oz7f',
+ city: 'Palo Alto',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Alletra Storage MP',
+ type: 'Storage',
+ make: 'HPE',
+ country: 'USA',
+ name: 'PROD_0',
+ totalEnergy: 11677,
+ cpuUtil: 51,
+ },
+ {
+ serialNumber: 'ljyyfpc02tlgpnls3',
+ city: 'Palo Alto',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE ProLiant D 380 Gen10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 36997,
+ cpuUtil: 72,
+ },
+ {
+ serialNumber: 'erwnuo001ruh3s74q',
+ city: 'Houston',
+ state: 'California',
+ region: 'US Central',
+ model: 'HPE Synergy 12000 w/ 3x Synergy 480 Gen 10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 26790,
+ cpuUtil: 44,
+ },
+ {
+ serialNumber: 'dwjtzpc0p6rnexjs',
+ city: 'Los Angeles',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Synergy 12000 w/ 3x Synergy 480 Gen 10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 46867,
+ cpuUtil: 75,
+ },
+ {
+ serialNumber: 'dwjtzpc0tj092j29',
+ city: 'Austin',
+ state: 'California',
+ region: 'US Central',
+ model: 'HPE Alletra Storage MP',
+ type: 'Storage',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 38820,
+ cpuUtil: 63,
+ },
+ {
+ serialNumber: 'fg4agao0omfitumg',
+ city: 'Los Angeles',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE ProLiant D 380 Gen10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ name: 'PROD_5',
+ totalEnergy: 47226,
+ cpuUtil: 73,
+ },
+ {
+ serialNumber: 'fg4agao02cf6arety',
+ city: 'Los Angeles',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE ProLiant D 380 Gen10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ name: 'DEV_6_test',
+ totalEnergy: 54496,
+ cpuUtil: 36,
+ },
+ {
+ serialNumber: 'fg4agao01qe4macw7',
+ city: 'Los Angeles',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Synergy 12000 w/ 3x Synergy 480 Gen 10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 26410,
+ cpuUtil: 65,
+ },
+ {
+ serialNumber: 'ljyyfpc01u9d5etcr',
+ city: 'Los Angeles',
+ state: 'California',
+ region: 'US West',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ totalEnergy: 7542,
+ cpuUtil: 42,
+ },
+ {
+ serialNumber: 'jqspeyo029fhmklcq',
+ city: 'Houston',
+ state: 'California',
+ region: 'US Central',
+ model: 'HPE Synergy 12000 w/ 3x Synergy 480 Gen 10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ name: 'MyDevice_local',
+ totalEnergy: 36386,
+ cpuUtil: 56,
+ },
+ {
+ serialNumber: 'jqspeyo015yq2h50b',
+ city: 'Palo Alto',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Synergy 12000 w/ 3x Synergy 480 Gen 10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ name: 'PROD_10',
+ totalEnergy: 45766,
+ cpuUtil: 45,
+ },
+ {
+ serialNumber: 'fg4agao02h8juiosf',
+ city: 'Austin',
+ state: 'California',
+ region: 'US Central',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ totalEnergy: 6795,
+ cpuUtil: 69,
+ },
+ {
+ serialNumber: 'ljyyfpc033l0fal80',
+ city: 'Austin',
+ state: 'California',
+ region: 'US Central',
+ model: 'HPE Alletra Storage MP',
+ type: 'Storage',
+ make: 'HPE',
+ country: 'USA',
+ name: 'DEV_12_test',
+ totalEnergy: 13733,
+ cpuUtil: 58,
+ },
+ {
+ serialNumber: 'ljyyfpc02vu079llx',
+ city: 'Mountain View',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Alletra Storage MP',
+ type: 'Storage',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 4439,
+ cpuUtil: 15,
+ },
+ {
+ serialNumber: 'erwnuo0023apx8ykf',
+ city: 'Austin',
+ state: 'California',
+ region: 'US Central',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ totalEnergy: 24101,
+ cpuUtil: 45,
+ },
+ {
+ serialNumber: 'fg4agao01pjdri61w',
+ city: 'New York',
+ state: 'California',
+ region: 'US East',
+ model: 'HPE Alletra Storage MP',
+ type: 'Storage',
+ make: 'HPE',
+ country: 'USA',
+ name: 'PROD_15',
+ totalEnergy: 13578,
+ cpuUtil: 49,
+ },
+ {
+ serialNumber: 'fg4agao02ukw569p7',
+ city: 'Mountain View',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE ProLiant D 380 Gen10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 7578,
+ cpuUtil: 71,
+ },
+ {
+ serialNumber: 'ljyyfpc01i5bhy9y5',
+ city: 'New York',
+ state: 'California',
+ region: 'US East',
+ model: 'HPE Synergy 12000 w/ 3x Synergy 480 Gen 10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 5177,
+ cpuUtil: 40,
+ },
+ {
+ serialNumber: 'ljyyfpc01mt2kkowg',
+ city: 'Palo Alto',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Alletra Storage MP',
+ type: 'Storage',
+ make: 'HPE',
+ country: 'USA',
+ name: 'DEV_18_test',
+ totalEnergy: 37974,
+ cpuUtil: 21,
+ },
+ {
+ serialNumber: 'ljyyfpc032xr7fiym',
+ city: 'San Jose',
+ state: 'California',
+ region: 'US West',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ totalEnergy: 6615,
+ cpuUtil: 75,
+ },
+ {
+ serialNumber: 'erwnuo002su2qh7sl',
+ city: 'Los Angeles',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Alletra Storage MP',
+ type: 'Storage',
+ make: 'HPE',
+ country: 'USA',
+ name: 'PROD_20',
+ totalEnergy: 18664,
+ cpuUtil: 39,
+ },
+ {
+ serialNumber: 'fg4agao0y7vnahc7',
+ city: 'Los Angeles',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Synergy 12000 w/ 3x Synergy 480 Gen 10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 21247,
+ cpuUtil: 40,
+ },
+ {
+ serialNumber: 'dwjtzpc01mio3vvlt',
+ city: 'Los Angeles',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Synergy 12000 w/ 3x Synergy 480 Gen 10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 27810,
+ cpuUtil: 48,
+ },
+ {
+ serialNumber: 'jqspeyo023eg0dnfk',
+ city: 'Palo Alto',
+ state: 'California',
+ region: 'US West',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ totalEnergy: 31963,
+ cpuUtil: 63,
+ },
+ {
+ serialNumber: 'jqspeyo021i8p7av3',
+ city: 'Los Angeles',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Synergy 12000 w/ 3x Synergy 480 Gen 10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ name: 'DEV_24_test',
+ totalEnergy: 49808,
+ cpuUtil: 13,
+ },
+ {
+ serialNumber: 'fg4agao02lap1wyfx',
+ city: 'Mountain View',
+ state: 'California',
+ region: 'US West',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ name: 'PROD_25',
+ totalEnergy: 49454,
+ cpuUtil: 14,
+ },
+ {
+ serialNumber: 'fg4agao0rr0qp5mx',
+ city: 'Austin',
+ state: 'California',
+ region: 'US Central',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ totalEnergy: 11754,
+ cpuUtil: 15,
+ },
+ {
+ serialNumber: 'jqspeyo025r11dy47',
+ city: 'Houston',
+ state: 'California',
+ region: 'US Central',
+ model: 'HPE ProLiant D 380 Gen10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 58613,
+ cpuUtil: 33,
+ },
+ {
+ serialNumber: 'fg4agao01156u2fa6',
+ city: 'Los Angeles',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE ProLiant D 380 Gen10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 44880,
+ cpuUtil: 41,
+ },
+ {
+ serialNumber: 'jqspeyo02gixjl6nc',
+ city: 'New York',
+ state: 'California',
+ region: 'US East',
+ model: 'HPE Alletra Storage MP',
+ type: 'Storage',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 31669,
+ cpuUtil: 41,
+ },
+ {
+ serialNumber: 'dwjtzpc0kbp821tq',
+ city: 'Houston',
+ state: 'California',
+ region: 'US Central',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ name: 'PROD_30',
+ totalEnergy: 12334,
+ cpuUtil: 28,
+ },
+ {
+ serialNumber: 'jqspeyo018zcwokes',
+ city: 'San Jose',
+ state: 'California',
+ region: 'US West',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ totalEnergy: 43085,
+ cpuUtil: 67,
+ },
+ {
+ serialNumber: 'ljyyfpc019xfmtlfr',
+ city: 'Austin',
+ state: 'California',
+ region: 'US Central',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ totalEnergy: 33590,
+ cpuUtil: 72,
+ },
+ {
+ serialNumber: 'jqspeyo02t1pwq4vf',
+ city: 'Mountain View',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Synergy 12000 w/ 3x Synergy 480 Gen 10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 8855,
+ cpuUtil: 41,
+ },
+ {
+ serialNumber: 'dwjtzpc01gywd6vm3',
+ city: 'Fort Collins',
+ state: 'California',
+ region: 'US Mountain',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ totalEnergy: 43545,
+ cpuUtil: 14,
+ },
+ {
+ serialNumber: 'erwnuo0030wd5x8bk',
+ city: 'Houston',
+ state: 'California',
+ region: 'US Central',
+ model: 'HPE Alletra Storage MP',
+ type: 'Storage',
+ make: 'HPE',
+ country: 'USA',
+ name: 'PROD_35',
+ totalEnergy: 26379,
+ cpuUtil: 10,
+ },
+ {
+ serialNumber: 'jqspeyo03cxzw9hqh',
+ city: 'Fort Collins',
+ state: 'California',
+ region: 'US Mountain',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ name: 'DEV_36_test',
+ totalEnergy: 28025,
+ cpuUtil: 66,
+ },
+ {
+ serialNumber: 'erwnuo00380sakjtz',
+ city: 'Mountain View',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Synergy 12000 w/ 3x Synergy 480 Gen 10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 33686,
+ cpuUtil: 14,
+ },
+ {
+ serialNumber: 'erwnuo001pag2g80t',
+ city: 'Fort Collins',
+ state: 'California',
+ region: 'US Mountain',
+ model: 'HPE Synergy 12000 w/ 3x Synergy 480 Gen 10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 20059,
+ cpuUtil: 56,
+ },
+ {
+ serialNumber: 'ljyyfpc0183l9a89y',
+ city: 'Los Angeles',
+ state: 'California',
+ region: 'US West',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ totalEnergy: 31362,
+ cpuUtil: 62,
+ },
+ {
+ serialNumber: 'dwjtzpc013txgh3yu',
+ city: 'Mountain View',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Synergy 12000 w/ 3x Synergy 480 Gen 10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ name: 'PROD_40',
+ totalEnergy: 34988,
+ cpuUtil: 66,
+ },
+ {
+ serialNumber: 'jqspeyo02tzq272eq',
+ city: 'San Jose',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Alletra Storage MP',
+ type: 'Storage',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 25614,
+ cpuUtil: 72,
+ },
+ {
+ serialNumber: 'ljyyfpc0ls7nphbc',
+ city: 'New York',
+ state: 'California',
+ region: 'US East',
+ model: 'HPE ProLiant D 380 Gen10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ name: 'DEV_42_test',
+ totalEnergy: 29673,
+ cpuUtil: 48,
+ },
+ {
+ serialNumber: 'ljyyfpc016sn9e733',
+ city: 'Los Angeles',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE ProLiant D 380 Gen10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 10130,
+ cpuUtil: 74,
+ },
+ {
+ serialNumber: 'dwjtzpc0s4yypjjx',
+ city: 'Los Angeles',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Alletra Storage MP',
+ type: 'Storage',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 45059,
+ cpuUtil: 21,
+ },
+ {
+ serialNumber: 'erwnuo001b4hj6edg',
+ city: 'Fort Collins',
+ state: 'California',
+ region: 'US Mountain',
+ model: 'HPE Alletra Storage MP',
+ type: 'Storage',
+ make: 'HPE',
+ country: 'USA',
+ name: 'PROD_45',
+ totalEnergy: 4181,
+ cpuUtil: 34,
+ },
+ {
+ serialNumber: 'dwjtzpc0yha23okg',
+ city: 'Fort Collins',
+ state: 'California',
+ region: 'US Mountain',
+ model: 'HPE ProLiant D 380 Gen10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 28874,
+ cpuUtil: 73,
+ },
+ {
+ serialNumber: 'ljyyfpc026d6z6jmp',
+ city: 'New York',
+ state: 'California',
+ region: 'US East',
+ model: 'HPE ProLiant D 380 Gen10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 28250,
+ cpuUtil: 18,
+ },
+ {
+ serialNumber: 'fg4agao02rr8catp5',
+ city: 'Fort Collins',
+ state: 'California',
+ region: 'US Mountain',
+ model: 'HPE ProLiant D 380 Gen10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ name: 'DEV_48_test',
+ totalEnergy: 11084,
+ cpuUtil: 21,
+ },
+ {
+ serialNumber: 'fg4agao01m2fvyepf',
+ city: 'Los Angeles',
+ state: 'California',
+ region: 'US West',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ totalEnergy: 48545,
+ cpuUtil: 51,
+ },
+ {
+ serialNumber: 'fg4agao01bq8g5pjj',
+ city: 'San Jose',
+ state: 'California',
+ region: 'US West',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ name: 'PROD_50',
+ totalEnergy: 56454,
+ cpuUtil: 19,
+ },
+ {
+ serialNumber: 'ljyyfpc0hil3mp1g',
+ city: 'Los Angeles',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Synergy 12000 w/ 3x Synergy 480 Gen 10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 10630,
+ cpuUtil: 41,
+ },
+ {
+ serialNumber: 'erwnuo001sakqrpnl',
+ city: 'Houston',
+ state: 'California',
+ region: 'US Central',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ totalEnergy: 3521,
+ cpuUtil: 36,
+ },
+ {
+ serialNumber: 'jqspeyo0t29p4pmw',
+ city: 'New York',
+ state: 'California',
+ region: 'US East',
+ model: 'HPE Alletra Storage MP',
+ type: 'Storage',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 11854,
+ cpuUtil: 45,
+ },
+ {
+ serialNumber: 'fg4agao01oarlitf6',
+ city: 'Fort Collins',
+ state: 'California',
+ region: 'US Mountain',
+ model: 'HPE ProLiant D 380 Gen10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ name: 'DEV_54_test',
+ totalEnergy: 28209,
+ cpuUtil: 57,
+ },
+ {
+ serialNumber: 'dwjtzpc025oj5og46',
+ city: 'Fort Collins',
+ state: 'California',
+ region: 'US Mountain',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ name: 'PROD_55',
+ totalEnergy: 7425,
+ cpuUtil: 49,
+ },
+ {
+ serialNumber: 'erwnuo0015zh8wsn2',
+ city: 'Palo Alto',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Alletra Storage MP',
+ type: 'Storage',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 48764,
+ cpuUtil: 39,
+ },
+ {
+ serialNumber: 'jqspeyo0ggy6ftaa',
+ city: 'Austin',
+ state: 'California',
+ region: 'US Central',
+ model: 'HPE Synergy 12000 w/ 3x Synergy 480 Gen 10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 28373,
+ cpuUtil: 44,
+ },
+ {
+ serialNumber: 'fg4agao03bum8d73v',
+ city: 'Houston',
+ state: 'California',
+ region: 'US Central',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ totalEnergy: 26472,
+ cpuUtil: 56,
+ },
+ {
+ serialNumber: 'dwjtzpc02iyugxsng',
+ city: 'San Jose',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Synergy 12000 w/ 3x Synergy 480 Gen 10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 21278,
+ cpuUtil: 60,
+ },
+ {
+ serialNumber: 'jqspeyo0y4o1i77z',
+ city: 'Palo Alto',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE ProLiant D 380 Gen10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ name: 'PROD_60',
+ totalEnergy: 17517,
+ cpuUtil: 21,
+ },
+ {
+ serialNumber: 'fg4agao0hom4bsld',
+ city: 'Houston',
+ state: 'California',
+ region: 'US Central',
+ model: 'HPE Alletra Storage MP',
+ type: 'Storage',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 16544,
+ cpuUtil: 50,
+ },
+ {
+ serialNumber: 'jqspeyo02e2g8b57u',
+ city: 'Mountain View',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Synergy 12000 w/ 3x Synergy 480 Gen 10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 40984,
+ cpuUtil: 39,
+ },
+ {
+ serialNumber: 'erwnuo002rqunlm04',
+ city: 'New York',
+ state: 'California',
+ region: 'US East',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ totalEnergy: 5573,
+ cpuUtil: 54,
+ },
+ {
+ serialNumber: 'fg4agao02oo43m2rs',
+ city: 'Houston',
+ state: 'California',
+ region: 'US Central',
+ model: 'HPE Alletra Storage MP',
+ type: 'Storage',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 50650,
+ cpuUtil: 14,
+ },
+ {
+ serialNumber: 'dwjtzpc0184dj81o9',
+ city: 'Los Angeles',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Alletra Storage MP',
+ type: 'Storage',
+ make: 'HPE',
+ country: 'USA',
+ name: 'PROD_65',
+ totalEnergy: 21619,
+ cpuUtil: 71,
+ },
+ {
+ serialNumber: 'jqspeyo03e59w0n26',
+ city: 'Fort Collins',
+ state: 'California',
+ region: 'US Mountain',
+ model: 'HPE Alletra Storage MP',
+ type: 'Storage',
+ make: 'HPE',
+ country: 'USA',
+ name: 'DEV_66_test',
+ totalEnergy: 11198,
+ cpuUtil: 28,
+ },
+ {
+ serialNumber: 'dwjtzpc0160ov31si',
+ city: 'Palo Alto',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Synergy 12000 w/ 3x Synergy 480 Gen 10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 37949,
+ cpuUtil: 74,
+ },
+ {
+ serialNumber: 'erwnuo002sarjhtwd',
+ city: 'Austin',
+ state: 'California',
+ region: 'US Central',
+ model: 'HPE ProLiant D 380 Gen10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 15759,
+ cpuUtil: 62,
+ },
+ {
+ serialNumber: 'jqspeyo034nct3btw',
+ city: 'Houston',
+ state: 'California',
+ region: 'US Central',
+ model: 'HPE Alletra Storage MP',
+ type: 'Storage',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 18697,
+ cpuUtil: 46,
+ },
+ {
+ serialNumber: 'ljyyfpc028sof6g7s',
+ city: 'New York',
+ state: 'California',
+ region: 'US East',
+ model: 'HPE Alletra Storage MP',
+ type: 'Storage',
+ make: 'HPE',
+ country: 'USA',
+ name: 'PROD_70',
+ totalEnergy: 37998,
+ cpuUtil: 20,
+ },
+ {
+ serialNumber: 'erwnuo002rvtqkase',
+ city: 'Los Angeles',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Alletra Storage MP',
+ type: 'Storage',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 26827,
+ cpuUtil: 66,
+ },
+ {
+ serialNumber: 'erwnuo001ngq5jhe0',
+ city: 'Mountain View',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Alletra Storage MP',
+ type: 'Storage',
+ make: 'HPE',
+ country: 'USA',
+ name: 'DEV_72_test',
+ totalEnergy: 9329,
+ cpuUtil: 32,
+ },
+ {
+ serialNumber: 'dwjtzpc01sd1jajyn',
+ city: 'San Jose',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Alletra Storage MP',
+ type: 'Storage',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 53374,
+ cpuUtil: 69,
+ },
+ {
+ serialNumber: 'fg4agao01cvf0dy4q',
+ city: 'Palo Alto',
+ state: 'California',
+ region: 'US West',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ totalEnergy: 18248,
+ cpuUtil: 32,
+ },
+ {
+ serialNumber: 'jqspeyo01ald75it1',
+ city: 'Los Angeles',
+ state: 'California',
+ region: 'US West',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ name: 'PROD_75',
+ totalEnergy: 32848,
+ cpuUtil: 10,
+ },
+ {
+ serialNumber: 'jqspeyo01kizuiud6',
+ city: 'Austin',
+ state: 'California',
+ region: 'US Central',
+ model: 'HPE Synergy 12000 w/ 3x Synergy 480 Gen 10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 23681,
+ cpuUtil: 31,
+ },
+ {
+ serialNumber: 'ljyyfpc0ufdrh7lh',
+ city: 'San Jose',
+ state: 'California',
+ region: 'US West',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ totalEnergy: 22410,
+ cpuUtil: 13,
+ },
+ {
+ serialNumber: 'ljyyfpc01pw6tsuzr',
+ city: 'Mountain View',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Synergy 12000 w/ 3x Synergy 480 Gen 10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ name: 'DEV_78_test',
+ totalEnergy: 45665,
+ cpuUtil: 23,
+ },
+ {
+ serialNumber: 'fg4agao02o9gnvte6',
+ city: 'San Jose',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE ProLiant D 380 Gen10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 50708,
+ cpuUtil: 34,
+ },
+ {
+ serialNumber: 'erwnuo001totx0ppy',
+ city: 'San Jose',
+ state: 'California',
+ region: 'US West',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ name: 'PROD_80',
+ totalEnergy: 20950,
+ cpuUtil: 10,
+ },
+ {
+ serialNumber: 'jqspeyo021dpm7pb9',
+ city: 'Austin',
+ state: 'California',
+ region: 'US Central',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ totalEnergy: 52385,
+ cpuUtil: 14,
+ },
+ {
+ serialNumber: 'ljyyfpc01v73ey0s2',
+ city: 'New York',
+ state: 'California',
+ region: 'US East',
+ model: 'HPE Synergy 12000 w/ 3x Synergy 480 Gen 10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 56279,
+ cpuUtil: 44,
+ },
+ {
+ serialNumber: 'dwjtzpc0v4elga55',
+ city: 'Mountain View',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Alletra Storage MP',
+ type: 'Storage',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 15573,
+ cpuUtil: 19,
+ },
+ {
+ serialNumber: 'jqspeyo02zmshl9vo',
+ city: 'Los Angeles',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE ProLiant D 380 Gen10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ name: 'DEV_84_test',
+ totalEnergy: 10385,
+ cpuUtil: 74,
+ },
+ {
+ serialNumber: 'erwnuo00vep4luyx',
+ city: 'San Jose',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE ProLiant D 380 Gen10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ name: 'PROD_85',
+ totalEnergy: 31707,
+ cpuUtil: 36,
+ },
+ {
+ serialNumber: 'ljyyfpc01dd9951lj',
+ city: 'Fort Collins',
+ state: 'California',
+ region: 'US Mountain',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ totalEnergy: 54640,
+ cpuUtil: 27,
+ },
+ {
+ serialNumber: 'ljyyfpc01v6j56193',
+ city: 'San Jose',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE ProLiant D 380 Gen10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 14396,
+ cpuUtil: 53,
+ },
+ {
+ serialNumber: 'fg4agao02p7ygk01r',
+ city: 'San Jose',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Synergy 12000 w/ 3x Synergy 480 Gen 10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 26479,
+ cpuUtil: 12,
+ },
+ {
+ serialNumber: 'erwnuo001ph5mczzq',
+ city: 'Fort Collins',
+ state: 'California',
+ region: 'US Mountain',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ totalEnergy: 44088,
+ cpuUtil: 24,
+ },
+ {
+ serialNumber: 'ljyyfpc0yptxqdup',
+ city: 'Mountain View',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE Synergy 12000 w/ 3x Synergy 480 Gen 10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ name: 'PROD_90',
+ totalEnergy: 10178,
+ cpuUtil: 47,
+ },
+ {
+ serialNumber: 'jqspeyo01v7t08u86',
+ city: 'Houston',
+ state: 'California',
+ region: 'US Central',
+ model: 'HPE Synergy 12000 w/ 3x Synergy 480 Gen 10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 44084,
+ cpuUtil: 73,
+ },
+ {
+ serialNumber: 'dwjtzpc02j948b3k7',
+ city: 'Houston',
+ state: 'California',
+ region: 'US Central',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ totalEnergy: 13110,
+ cpuUtil: 21,
+ },
+ {
+ serialNumber: 'fg4agao0nasbwzph',
+ city: 'Los Angeles',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE ProLiant D 380 Gen10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 52876,
+ cpuUtil: 21,
+ },
+ {
+ serialNumber: 'erwnuo001avl6i8mq',
+ city: 'Palo Alto',
+ state: 'California',
+ region: 'US West',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ totalEnergy: 24920,
+ cpuUtil: 48,
+ },
+ {
+ serialNumber: 'ljyyfpc01qozicw35',
+ city: 'Fort Collins',
+ state: 'California',
+ region: 'US Mountain',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ name: 'PROD_95',
+ totalEnergy: 34523,
+ cpuUtil: 30,
+ },
+ {
+ serialNumber: 'jqspeyo031tez0vfi',
+ city: 'Los Angeles',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE ProLiant D 380 Gen10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ name: 'DEV_96_test',
+ totalEnergy: 14379,
+ cpuUtil: 14,
+ },
+ {
+ serialNumber: 'fg4agao02r2t60f2m',
+ city: 'Los Angeles',
+ state: 'California',
+ region: 'US West',
+ model: 'HPE ProLiant D 380 Gen10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 50808,
+ cpuUtil: 63,
+ },
+ {
+ serialNumber: 'fg4agao02m711ifle',
+ city: 'New York',
+ state: 'California',
+ region: 'US East',
+ model: 'UCS C220 M6 Rack Server',
+ type: 'Compute',
+ make: 'Dell',
+ country: 'USA',
+ totalEnergy: 15257,
+ cpuUtil: 58,
+ },
+ {
+ serialNumber: 'fg4agao01h70sl67k',
+ city: 'Austin',
+ state: 'California',
+ region: 'US Central',
+ model: 'HPE ProLiant D 380 Gen10',
+ type: 'Compute',
+ make: 'HPE',
+ country: 'USA',
+ totalEnergy: 40586,
+ cpuUtil: 16,
+ },
+];
+
+const DensityControl = () => {
+ const [density, setDensity] = useState('comfortable');
+ return (
+ }
+ tip="Change density"
+ kind="toolbar"
+ items={[
+ {
+ label: 'Compact',
+ icon: ,
+ justify: 'start',
+ active: density === 'compact',
+ onClick: () => {
+ document
+ .querySelector('#devices-table')
+ .classList.remove('comfortable');
+ document
+ .querySelector('#devices-table')
+ .classList.remove('spacious');
+ document.querySelector('#devices-table').classList.add('compact');
+ setDensity('compact');
+ },
+ },
+ {
+ label: 'Comfortable',
+ icon: ,
+ justify: 'start',
+ active: density === 'comfortable',
+ onClick: () => {
+ document
+ .querySelector('#devices-table')
+ .classList.remove('compact');
+ document
+ .querySelector('#devices-table')
+ .classList.remove('spacious');
+ document
+ .querySelector('#devices-table')
+ .classList.add('comfortable');
+ setDensity('comfortable');
+ },
+ },
+ {
+ label: 'Spacious',
+ icon: ,
+ justify: 'start',
+ active: density === 'spacious',
+ onClick: () => {
+ document
+ .querySelector('#devices-table')
+ .classList.remove('compact');
+ document
+ .querySelector('#devices-table')
+ .classList.remove('comfortable');
+ document.querySelector('#devices-table').classList.add('spacious');
+ setDensity('spacious');
+ },
+ },
+ ]}
+ dropProps={{ animate: 'select' }}
+ />
+ );
+};
+
+DensityControl.propTypes = {
+ density: PropTypes.string,
+ setDensity: PropTypes.func,
+};
+export const Devices = () => {
+ const size = useContext(ResponsiveContext);
+ const skeleton = useLoading(1000);
+ return (
+
+
+
+
+
+
+
+ {!['xsmall', 'small', 'medium'].includes(size) ? (
+ <>
+
+
+
+
+
+ >
+ ) : undefined}
+ {['xsmall', 'small', 'medium'].includes(size) ? (
+ }
+ dropAlign={{ top: 'bottom', left: 'left' }}
+ dropContent={
+
+
+
+
+
+
+
+ }
+ />
+ ) : undefined}
+
+
+
+
+
+
+ {}}
+ sortable
+ verticalAlign={{ body: 'top' }}
+ id="devices-table"
+ />
+
+
+
+ );
+};
diff --git a/sandbox/grommet-app/src/pages/sustainability/SustainabilityInsights.jsx b/sandbox/grommet-app/src/pages/sustainability/SustainabilityInsights.jsx
new file mode 100644
index 000000000..7ab11c6eb
--- /dev/null
+++ b/sandbox/grommet-app/src/pages/sustainability/SustainabilityInsights.jsx
@@ -0,0 +1,314 @@
+import { createContext, useContext, useState } from 'react';
+import {
+ Grid,
+ DataChart,
+ DateInput,
+ Box,
+ Data,
+ Collapsible,
+ Toolbar,
+ Text,
+ DataFilters,
+ DataFilter,
+ Skeleton,
+} from 'grommet';
+import { Hide, FormView } from 'grommet-icons';
+import { Card, Legend, Metric, ToggleGroup } from '../../components';
+import mockData from '../../mockData/sustainability.json';
+import {
+ useLoading,
+ skeleton as skeletonAnimation,
+} from '../../utils/skeleton';
+import { SkeletonContext } from '../../components';
+
+const DisplayContext = createContext({});
+
+const skeletonProps = { elevation: 'none' };
+const CarbonEmissions = () => {
+ const { open } = useContext(DisplayContext);
+ const skeleton = useContext(SkeletonContext);
+ const animation = !skeleton ? 'fadeIn' : undefined;
+ return (
+
+
+
+
+
+
+ {!skeleton ? (
+
+ Intl.DateTimeFormat(undefined, {
+ month: 'short',
+ day: 'numeric',
+ }).format(new Date(value)),
+ },
+ 'emissions',
+ ]}
+ chart={[
+ {
+ property: 'emissions',
+ type: 'area',
+ thickness: 'xsmall',
+ color: 'chart-qualitative-70-weak',
+ },
+ {
+ property: 'emissions',
+ type: 'line',
+ thickness: 'xxsmall',
+ color: 'chart-qualitative-70',
+ round: true,
+ },
+ ]}
+ axis={{
+ x: { property: 'date', granularity: 'medium' },
+ y: { property: 'emissions', granularity: 'fine' },
+ }}
+ guide={{ y: true }}
+ />
+ ) : (
+
+ )}
+
+
+
+
+ );
+};
+
+const EnergyConsumption = () => {
+ const { open } = useContext(DisplayContext);
+ const skeleton = useContext(SkeletonContext);
+ const animation = !skeleton ? 'fadeIn' : undefined;
+ return (
+
+
+
+
+
+
+ {!skeleton ? (
+
+ Intl.DateTimeFormat(undefined, {
+ month: 'short',
+ day: 'numeric',
+ }).format(new Date(value)),
+ },
+ 'energy',
+ ]}
+ chart={[
+ {
+ property: 'energy',
+ type: 'area',
+ thickness: 'xsmall',
+ color: 'chart-qualitative-20-weak',
+ },
+ {
+ property: 'energy',
+ type: 'line',
+ thickness: 'xxsmall',
+ color: 'chart-qualitative-20',
+ round: true,
+ },
+ ]}
+ axis={{
+ x: { property: 'date', granularity: 'medium' },
+ y: { property: 'energy', granularity: 'fine' },
+ }}
+ guide={{ y: true }}
+ />
+ ) : (
+
+ )}
+
+
+
+
+ );
+};
+
+const EnergyCost = () => {
+ const { open } = useContext(DisplayContext);
+ const skeleton = useContext(SkeletonContext);
+ const animation = !skeleton ? 'fadeIn' : undefined;
+ return (
+
+
+
+
+
+
+ {!skeleton ? (
+
+ Intl.DateTimeFormat(undefined, {
+ month: 'short',
+ day: 'numeric',
+ }).format(new Date(value)),
+ },
+ 'cost',
+ ]}
+ chart={[
+ {
+ property: 'cost',
+ type: 'area',
+ thickness: 'xsmall',
+ color: 'chart-qualitative-30-weak',
+ },
+ {
+ property: 'cost',
+ type: 'line',
+ thickness: 'xxsmall',
+ color: 'chart-qualitative-30',
+ round: true,
+ },
+ ]}
+ axis={{
+ x: { property: 'date', granularity: 'medium' },
+ y: { property: 'cost', granularity: 'fine' },
+ }}
+ guide={{ y: true }}
+ />
+ ) : (
+
+ )}
+
+
+
+
+ );
+};
+
+export const SustainabilityInsights = () => {
+ const [open, setOpen] = useState(true);
+ const skeleton = useLoading(2000);
+ return (
+
+
+
+
+ {!skeleton ? (
+
+
+
+
+
+ ) : undefined}
+
+ {!skeleton ? (
+
+ Charts
+ , value: true },
+ { id: '1', label: , value: false },
+ ]}
+ value={open}
+ setValue={setOpen}
+ />
+
+ ) : undefined}
+
+
+
+
+
+
+
+
+
+
+
+ );
+};
diff --git a/sandbox/grommet-app/src/pages/sustainability/index.jsx b/sandbox/grommet-app/src/pages/sustainability/index.jsx
new file mode 100644
index 000000000..f6eb40e47
--- /dev/null
+++ b/sandbox/grommet-app/src/pages/sustainability/index.jsx
@@ -0,0 +1,49 @@
+import {
+ Anchor,
+ Box,
+ PageHeader,
+ Page,
+ PageContent,
+ Button,
+ Tabs,
+ Tab,
+ Text,
+} from 'grommet';
+import { Link } from 'react-router-dom';
+import { Devices } from './Devices';
+import { SustainabilityInsights } from './SustainabilityInsights';
+import { Previous } from 'grommet-icons';
+import ContentPane from '../../components/ContentPane';
+
+function Sustainability() {
+ return (
+
+
+ } />}
+ actions={}
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+ TBD
+
+
+
+
+
+
+ );
+}
+
+export default Sustainability;
diff --git a/sandbox/grommet-app/src/theme.jsx b/sandbox/grommet-app/src/theme.jsx
new file mode 100644
index 000000000..8069cbf78
--- /dev/null
+++ b/sandbox/grommet-app/src/theme.jsx
@@ -0,0 +1,2663 @@
+import {
+ css,
+ // keyframes
+} from 'styled-components';
+import { deepFreeze } from 'grommet/utils';
+import {
+ dark as localDark,
+ light as localLight,
+ large as localLarge,
+ small as localSmall,
+ global as localGlobal,
+ components as localComponents,
+} from 'hpe-design-tokens';
+import {
+ dark as oldDark,
+ light as oldLight,
+ large as oldLarge,
+ small as oldSmall,
+ global as oldGlobal,
+ components as oldComponents,
+ elevationdark as oldElevationDark,
+ elevationlight as oldElevationLight,
+} from 'hpe-design-tokens-old-theme';
+import {
+ dark as refreshDark,
+ light as refreshLight,
+ large as refreshLarge,
+ small as refreshSmall,
+ global as refreshGlobal,
+ components as refreshComponents,
+ elevationdark as refreshElevationDark,
+ elevationlight as refreshElevationLight,
+} from 'hpe-design-tokens-brand-refresh';
+import {
+ Down,
+ Blank,
+ Close,
+ Up,
+ Hpe,
+ CircleAlert,
+ Ascending,
+ Descending,
+ Unsorted,
+} from 'grommet-icons';
+
+const MISSING = {
+ color: 'red',
+ weight: 700,
+};
+
+// TO DO should these be added as tokens?
+const backgrounds = {
+ 'datawave-green-1':
+ 'url(https://d3hq6blov2iije.cloudfront.net/images/textures/AdobeStock-57301038_800_0_72_RGB+19849.jpg)',
+ 'datawave-green-2':
+ 'url(https://d3hq6blov2iije.cloudfront.net/images/textures/AdobeStock_222468625_800_0_72_RGB+19870.jpg)',
+ 'datawave-multi-1':
+ 'url(https://d3hq6blov2iije.cloudfront.net/images/textures/AdobeStock-257301038_800_0_72_RGB+19842.jpg)',
+ 'datawave-multi-2':
+ 'url(https://d3hq6blov2iije.cloudfront.net/images/textures/HPE_data_satin_01_800_0_72_RGB+20062.jpg)',
+ 'datawave-multi-3':
+ 'url(https://d3hq6blov2iije.cloudfront.net/images/textures/HPE_data_satin_02_800_0_72_RGB+20061.jpg)',
+ 'datawave-multi-4':
+ 'url(https://d3hq6blov2iije.cloudfront.net/images/textures/HPE_data_slice_01_800_0_72_RGB+20107.jpg)',
+ 'datawave-multi-5':
+ 'url(https://d3hq6blov2iije.cloudfront.net/images/textures/HPE_data_slice_02_800_0_72_RGB+20106.jpg)',
+ 'datawave-multi-6':
+ 'url(https://d3hq6blov2iije.cloudfront.net/images/textures/HPE_data_slice_03_800_0_72_RGB+20105.jpg)',
+ 'datawave-white-1':
+ 'url(https://d3hq6blov2iije.cloudfront.net/images/textures/GettyImages-1135685131_800_0_72_RGB+19858.jpg)',
+ 'datawave-white-2':
+ 'url(https://d3hq6blov2iije.cloudfront.net/images/textures/GettyImages-1278457196_800_0_72_RGB+19857.jpg)',
+ 'datawave-white-3':
+ 'url(https://d3hq6blov2iije.cloudfront.net/images/textures/GettyImages-1304863046_800_0_72_RGB+19856.jpg)',
+ 'datawave-white-4':
+ 'url(https://d3hq6blov2iije.cloudfront.net/images/textures/GettyImages-978721396_800_0_72_RGB+19859.jpg)',
+ 'light-shadow-1':
+ 'url(https://d3hq6blov2iije.cloudfront.net/images/textures/GettyImages-1135685107_800_0_72_RGB+19853.jpg)',
+ 'light-shadow-2':
+ 'url(https://d3hq6blov2iije.cloudfront.net/images/textures/GettyImages-1135685108_800_0_72_RGB+19852.jpg)',
+ 'light-shadow-3':
+ 'url(https://d3hq6blov2iije.cloudfront.net/images/textures/GettyImages-1135685118_800_0_72_RGB+19854.jpg)',
+ 'light-shadow-4':
+ 'url(https://d3hq6blov2iije.cloudfront.net/images/textures/GettyImages-1190757657_800_0_72_RGB+19855.jpg)',
+ 'orange-yellow': `linear-gradient(
+ 45deg,
+ hsl(22deg 100% 50%) 0%,
+ hsl(34deg 100% 50%) 50%,
+ hsl(46deg 100% 50%) 100%
+ );`,
+ 'purple-blue': `linear-gradient(
+ 45deg,
+ hsl(281deg 100% 63%) 1%,
+ hsl(227deg 83% 58%) 50%,
+ hsl(174deg 69% 53%) 99%
+ );`,
+ 'purple-blue-yellow': `linear-gradient(
+ 225deg,
+ hsl(263deg 82% 55%) 0%,
+ hsl(196deg 72% 53%) 25%,
+ hsl(171deg 80% 63%) 50%,
+ hsl(138deg 93% 68%) 75%,
+ hsl(47deg 99% 50%) 100%
+ );`,
+ 'purple-magenta-yellow': `linear-gradient(
+ 45deg,
+ hsl(274deg 100% 50%) 0%,
+ hsl(340deg 100% 50%) 50%,
+ hsl(46deg 100% 50%) 100%
+ );`,
+};
+
+// const dropKeyFrames = keyframes`
+// 0% {
+// opacity: 0;
+// transform: scale(1, 0.1);
+// }
+// 100% {
+// opacity: 1;
+// transform: scale(1, 1);
+// }
+// `;
+
+// const standardDrop = keyframes`
+// 0% {
+// opacity: 0.5;
+// transform: scale(0.5);
+// }
+// 100% {
+// opacity: 1;
+// transform: scale(1);
+// }
+// `;
+
+// const skeletonAnimation = keyframes`
+// 0% {
+// transform: translateX(-100%);
+// }
+// 100% {
+// transform: translateX(100%);
+// }
+// `;
+
+// const themeModeTransition = `background ${base.motion.duration[375]} ${base.motion.easing.simple.inOut}`;
+
+// necessary to apply a linear gradient for primary button background
+const primaryBackground = props => {
+ let style = '';
+ if (!props.active && !props.disabled) {
+ style += !props.colorValue
+ ? `background:
+ linear-gradient(70deg, transparent,
+ ${props.theme.global.colors['green!']} 35%, transparent 70%)
+ ${props.theme.global.colors['green!']};`
+ : `
+ color: ${
+ props.theme.global.colors['text-strong'][
+ props.theme.dark ? 'dark' : 'light'
+ ]
+ };
+ `;
+ }
+ return style;
+};
+
+// necessary to adjust the background color
+// of button to darker green to expose gradient on hover
+const primaryHoverBackground = props =>
+ !props.active && !props.colorValue
+ ? `background-color: ${props.theme.global.colors.green.dark};`
+ : '';
+
+const baseSpacing = 24;
+
+const flattenObject = (obj, delimiter = '.', prefix = '') =>
+ Object.keys(obj).reduce((acc, k) => {
+ const pre = prefix.length ? `${prefix}${delimiter}` : '';
+ if (
+ typeof obj[k] === 'object' &&
+ obj[k] !== null &&
+ Object.keys(obj[k]).length > 0 &&
+ !('$value' in obj[k])
+ )
+ Object.assign(
+ acc,
+ flattenObject(
+ obj[k],
+ delimiter,
+ !['hpe', 'color'].includes(k) ? pre + k : '',
+ ),
+ );
+ else acc[pre + k] = obj[k];
+ return acc;
+ }, {});
+
+const access = (path, object) => {
+ return path.split('.').reduce((o, i) => o[i], object);
+};
+
+const buildTheme = tokens => {
+ const {
+ light,
+ dark,
+ small,
+ large,
+ elevationlight,
+ elevationdark,
+ global,
+ components,
+ } = tokens;
+
+ const flatColors = flattenObject(light, '-');
+ const tokenColors = {};
+ Object.keys(flatColors).forEach(color => {
+ if (!color.includes('elevation')) {
+ const adjustedColor = color.split('-').join('.');
+ tokenColors[color] = {
+ light: access(`hpe.color.${adjustedColor}`, light),
+ dark: access(`hpe.color.${adjustedColor}`, dark),
+ };
+ }
+ });
+ const colors = {
+ // Here we're passing through all the colors from hpe-design-tokens
+ ...tokenColors,
+ // ---- DEPRECATED ---- //
+ 'accent-1': undefined,
+ 'accent-2': undefined,
+ 'accent-3': undefined,
+ 'accent-4': undefined,
+ 'neutral-1': undefined,
+ 'neutral-2': undefined,
+ 'neutral-3': undefined,
+ 'neutral-4': undefined,
+ 'neutral-5': undefined,
+ 'status-error': undefined,
+
+ // ---- TO DO: Tokens do not exist, should they? ---- //
+ brand: MISSING.color,
+ 'background-layer-overlay': MISSING.color,
+ control: MISSING.color,
+ 'active-text': MISSING.color,
+ 'disabled-text': MISSING.color, // deprecated, use text-weak instead
+
+ 'text-primary-button': components.hpe.button.primary.enabled.textColor,
+ 'background-cta-alternate': MISSING.color,
+
+ // ----------- These ones we need to map manually for backwards compatibility -----------
+ // ----------- with current color namespace ---------------
+ 'active-background': {
+ dark: dark.hpe.color.background.active,
+ light: light.hpe.color.background.active,
+ },
+ background: {
+ dark: dark.hpe.color.background.default,
+ light: light.hpe.color.background.default,
+ },
+ text: {
+ dark: dark.hpe.color.text.default,
+ light: light.hpe.color.text.default,
+ },
+ border: {
+ dark: dark.hpe.color.border.default,
+ light: light.hpe.color.border.default,
+ },
+ blue: {
+ dark: dark.hpe.color.decorative.blue,
+ light: light.hpe.color.decorative.blue,
+ },
+ 'blue!': {
+ dark: dark.hpe.color.decorative['blue!'],
+ light: light.hpe.color.decorative['blue!'],
+ },
+ green: {
+ dark: dark.hpe.color.decorative.green,
+ light: light.hpe.color.decorative.green,
+ },
+ 'green!': {
+ dark: dark.hpe.color.decorative['green!'],
+ light: light.hpe.color.decorative['green!'],
+ },
+ teal: {
+ dark: dark.hpe.color.decorative.teal,
+ light: light.hpe.color.decorative.teal,
+ },
+ 'teal!': {
+ dark: dark.hpe.color.decorative['teal!'],
+ light: light.hpe.color.decorative['teal!'],
+ },
+ purple: {
+ dark: dark.hpe.color.decorative.purple,
+ light: light.hpe.color.decorative.purple,
+ },
+ 'purple!': {
+ dark: dark.hpe.color.decorative['purple!'],
+ light: light.hpe.color.decorative['purple!'],
+ },
+ red: {
+ dark: dark.hpe.color.decorative.red,
+ light: light.hpe.color.decorative.red,
+ },
+ 'red!': {
+ dark: dark.hpe.color.decorative['red!'],
+ light: light.hpe.color.decorative['red!'],
+ },
+ orange: {
+ dark: dark.hpe.color.decorative.orange,
+ light: light.hpe.color.decorative.orange,
+ },
+ 'orange!': {
+ dark: dark.hpe.color.decorative['orange!'],
+ light: light.hpe.color.decorative['orange!'],
+ },
+ yellow: {
+ dark: dark.hpe.color.decorative.yellow,
+ light: light.hpe.color.decorative.yellow,
+ },
+ 'yellow!': {
+ dark: dark.hpe.color.decorative['yellow!'],
+ light: light.hpe.color.decorative['yellow!'],
+ },
+ 'graph-0': {
+ light: light.hpe.color.dataVis.categorical[10],
+ dark: dark.hpe.color.dataVis.categorical[10],
+ },
+ 'graph-1': {
+ light: light.hpe.color.dataVis.categorical[20],
+ dark: dark.hpe.color.dataVis.categorical[20],
+ },
+ 'graph-2': {
+ light: light.hpe.color.dataVis.categorical[30],
+ dark: dark.hpe.color.dataVis.categorical[30],
+ },
+ 'graph-3': {
+ light: light.hpe.color.dataVis.categorical[40],
+ dark: dark.hpe.color.dataVis.categorical[40],
+ },
+ 'graph-4': {
+ light: light.hpe.color.dataVis.categorical[50],
+ dark: dark.hpe.color.dataVis.categorical[50],
+ },
+ 'status-critical': {
+ dark: dark.hpe.color.icon.critical,
+ light: light.hpe.color.icon.critical,
+ },
+ 'status-warning': {
+ dark: dark.hpe.color.icon.warning,
+ light: light.hpe.color.icon.warning,
+ },
+ 'status-ok': {
+ dark: dark.hpe.color.icon.ok,
+ light: light.hpe.color.icon.ok,
+ },
+ 'status-unknown': {
+ dark: dark.hpe.color.icon.unknown,
+ light: light.hpe.color.icon.unknown,
+ },
+ 'status-disabled': '#CCCCCC', // deprecated, does not support light and dark.hpe. use text-weak instead
+ 'validation-critical': {
+ light: light.hpe.color.background.status.critical,
+ dark: dark.hpe.color.background.status.critical,
+ },
+ 'validation-ok': {
+ light: light.hpe.color.background.status.ok,
+ dark: dark.hpe.color.background.status.ok,
+ },
+ 'validation-warning': {
+ light: light.hpe.color.background.status.warning,
+ dark: dark.hpe.color.background.status.critical,
+ },
+ icon: {
+ light: light.hpe.color.icon.default,
+ dark: dark.hpe.color.icon.default,
+ },
+ 'selected-background': 'background-selected-strong-enabled',
+ 'selected-text': 'text-onSelectedStrong',
+ placeholder: {
+ light: light.hpe.color.text.placeholder,
+ dark: dark.hpe.color.text.placeholder,
+ },
+ };
+
+ const dimensions = {
+ borderSize: {
+ xsmall: large.hpe.borderWidth.xsmall,
+ small: large.hpe.borderWidth.small,
+ medium: large.hpe.borderWidth.medium,
+ default: large.hpe.borderWidth.default,
+ large: large.hpe.borderWidth.large,
+ xlarge: large.hpe.borderWidth.xlarge,
+ },
+ edgeSize: {
+ none: large.hpe.spacing.none,
+ hair: large.hpe.spacing.hair,
+ xxsmall: large.hpe.spacing.xxsmall,
+ xsmall: large.hpe.spacing.xsmall,
+ small: large.hpe.spacing.small,
+ medium: large.hpe.spacing.medium,
+ large: large.hpe.spacing.large,
+ xlarge: large.hpe.spacing.xlarge,
+ responsiveBreakpoint: 'small',
+ },
+ size: {
+ xxsmall: large.hpe.size.content.xxsmall,
+ xsmall: large.hpe.size.content.xsmall,
+ small: large.hpe.size.content.small,
+ medium: large.hpe.size.content.medium,
+ large: large.hpe.size.content.large,
+ xlarge: large.hpe.size.content.xlarge,
+ xxlarge: large.hpe.size.content.xxlarge,
+ full: '100%',
+ },
+ breakpoints: {
+ xsmall: {
+ borderSize: {
+ xsmall: small.hpe.borderWidth.xsmall,
+ small: small.hpe.borderWidth.small,
+ medium: small.hpe.borderWidth.medium,
+ default: small.hpe.borderWidth.default,
+ large: small.hpe.borderWidth.large,
+ xlarge: small.hpe.borderWidth.xlarge,
+ },
+ edgeSize: {
+ none: small.hpe.spacing.none,
+ hair: small.hpe.spacing.hair,
+ xxsmall: small.hpe.spacing.xxsmall,
+ xsmall: small.hpe.spacing.xsmall,
+ small: small.hpe.spacing.small,
+ medium: small.hpe.spacing.medium,
+ large: small.hpe.spacing.large,
+ xlarge: small.hpe.spacing.xlarge,
+ responsiveBreakpoint: 'small',
+ },
+ size: {
+ xxsmall: small.hpe.size.content.xxsmall,
+ xsmall: small.hpe.size.content.xsmall,
+ small: small.hpe.size.content.small,
+ medium: small.hpe.size.content.medium,
+ large: small.hpe.size.content.large,
+ xlarge: small.hpe.size.content.xlarge,
+ xxlarge: small.hpe.size.content.xxlarge,
+ full: '100%',
+ },
+ value: global.hpe.breakpoint.xsmall,
+ },
+ small: {
+ borderSize: {
+ xsmall: small.hpe.borderWidth.xsmall,
+ small: small.hpe.borderWidth.small,
+ medium: small.hpe.borderWidth.medium,
+ default: small.hpe.borderWidth.default,
+ large: small.hpe.borderWidth.large,
+ xlarge: small.hpe.borderWidth.xlarge,
+ },
+ edgeSize: {
+ none: small.hpe.spacing.none,
+ hair: small.hpe.spacing.hair,
+ xxsmall: small.hpe.spacing.xxsmall,
+ xsmall: small.hpe.spacing.xsmall,
+ small: small.hpe.spacing.small,
+ medium: small.hpe.spacing.medium,
+ large: small.hpe.spacing.large,
+ xlarge: small.hpe.spacing.xlarge,
+ responsiveBreakpoint: 'small',
+ },
+ size: {
+ xxsmall: small.hpe.size.content.xxsmall,
+ xsmall: small.hpe.size.content.xsmall,
+ small: small.hpe.size.content.small,
+ medium: small.hpe.size.content.medium,
+ large: small.hpe.size.content.large,
+ xlarge: small.hpe.size.content.xlarge,
+ xxlarge: small.hpe.size.content.xxlarge,
+ full: '100%',
+ },
+ value: global.hpe.breakpoint.small,
+ },
+ medium: {
+ value: global.hpe.breakpoint.medium,
+ },
+ large: {
+ value: global.hpe.breakpoint.large,
+ },
+ xlarge: {},
+ },
+ };
+
+ // option button kind styles. abstracted so select.emptySearchMessage
+ // can reference pad value
+ const option = {
+ color: components.hpe.select.option.enabled.textColor,
+ border: {
+ radius:
+ dimensions.edgeSize[components.hpe.select.medium.option.borderRadius] ||
+ components.hpe.select.medium.option.borderRadius,
+ width:
+ dimensions.borderSize[
+ components.hpe.select.medium.option.borderWidth
+ ] || components.hpe.select.medium.option.borderWidth,
+ color: components.hpe.select.option.enabled.borderColor,
+ },
+ pad: {
+ horizontal: components.hpe.select.medium.option.paddingX,
+ vertical: components.hpe.select.medium.option.paddingY,
+ },
+ font: {
+ weight: components.hpe.select.option.enabled.fontWeight,
+ },
+ };
+
+ // abstracted so button and pinned list icon can reference
+ const mediumIconOnlyPad = {
+ vertical: components.hpe.button.medium.default.iconOnly.paddingY,
+ horizontal: components.hpe.button.medium.default.iconOnly.paddingX,
+ };
+
+ return deepFreeze({
+ defaultMode: 'light',
+ global: {
+ backgrounds, // TO DO backgrounds
+ ...dimensions,
+ colors,
+ control: {
+ border: {
+ radius: components.hpe.formField.medium.input.container.borderRadius,
+ color: components.hpe.formField.input.container.enabled.borderColor,
+ },
+ },
+ input: {
+ font: {
+ height: 'inherit',
+ weight: components.hpe.formField.medium.valueText.fontWeight,
+ },
+ padding: {
+ horizontal: components.hpe.formField.medium.input.container.paddingX,
+ vertical: components.hpe.formField.medium.input.container.paddingY,
+ },
+ readOnly: {
+ background:
+ components.hpe.formField.input.container.readOnly.background,
+ border: {
+ color:
+ components.hpe.formField.input.container.readOnly.borderColor,
+ },
+ },
+ extend: `
+ &::-webkit-input-placeholder {
+ font-weight: ${components.hpe.formField.medium.placeholderText.fontWeight};
+ }
+
+ &::-moz-placeholder {
+ font-weight: ${components.hpe.formField.medium.placeholderText.fontWeight};
+ }
+
+ &:-ms-input-placeholder {
+ font-weight: ${components.hpe.formField.medium.placeholderText.fontWeight};
+ }
+ `,
+ },
+ font: {
+ family: global.hpe.fontStack.primary,
+ face: `
+ @font-face {
+ font-family: "Metric";
+ src: url("https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Regular.woff2") format('woff2'),
+ url("https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Regular.woff") format('woff');
+ }
+ @font-face {
+ font-family: "Metric";
+ src: url("https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Regular.woff2") format('woff2'),
+ url("https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Regular.woff") format('woff');
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Metric";
+ src: url("https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Bold.woff2") format('woff2'),
+ url("https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Bold.woff") format('woff');
+ font-weight: 700;
+ }
+ @font-face {
+ font-family: "Metric";
+ src: url("https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Semibold.woff2") format('woff2'),
+ url("https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Semibold.woff") format('woff');
+ font-weight: 600;
+ }
+ @font-face {
+ font-family: "Metric";
+ src: url("https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Medium.woff2") format('woff2'),
+ url("https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Medium.woff") format('woff');
+ font-weight: 500;
+ }
+ @font-face {
+ font-family: "Metric";
+ src: url("https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Light.woff2") format('woff2'),
+ url("https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Light.woff") format('woff');
+ font-weight: 100;
+ }`,
+ size: large.hpe.text.medium.fontSize,
+ },
+ focus: {
+ border: undefined,
+ },
+ active: {
+ background: 'background-active',
+ color: 'active-text',
+ },
+ drop: {
+ background: components.hpe.drop.background,
+ border: {
+ radius:
+ dimensions.edgeSize[components.hpe.drop.borderRadius] ||
+ components.hpe.drop.borderRadius,
+ },
+ margin: components.hpe.drop.margin,
+ intelligentMargin: true,
+ shadowSize: 'medium',
+ /* HPE Global Header/Footer Service a.k.a. HPE Common HFWS sets the header
+ * at a z-index of 101. This adjustment brings Drop in alignment with Layer
+ * which needs an elevated z-index to sit atop the Global header. */
+ zIndex: components.hpe.drop.zIndex,
+ },
+ elevation: {
+ // Elevation values were derived from this Figma file.
+ // https://www.figma.com/file/eZYR3dtWdb9U90QvJ7p3T9/HPE-Color-Styles?node-id=405%3A25
+ // Naming in Figma file is strong/default/weak vs. Grommet t-shirt sizing.
+ // As defined here, default is currently mapping to medium.
+ light: {
+ small: elevationlight
+ ? elevationlight.hpe.elevation.small
+ : light.hpe.elevation.small,
+ medium: elevationlight
+ ? elevationlight.hpe.elevation.medium
+ : light.hpe.elevation.medium,
+ large: elevationlight
+ ? elevationlight.hpe.elevation.large
+ : light.hpe.elevation.large,
+ },
+ dark: {
+ small: elevationdark
+ ? elevationdark.hpe.elevation.small
+ : dark.hpe.elevation.small,
+ medium: elevationdark
+ ? elevationdark.hpe.elevation.medium
+ : dark.hpe.elevation.medium,
+ large: elevationdark
+ ? elevationdark.hpe.elevation.large
+ : dark.hpe.elevation.large,
+ },
+ },
+ hover: {
+ background: 'background-hover',
+ color: MISSING.color, // TO DO
+ },
+ selected: {
+ background: 'background-selected-strong-enabled',
+ color: 'text-onSelectedStrong',
+ },
+ },
+ accordion: {
+ panel: {
+ border: {
+ side: 'horizontal',
+ color: 'border',
+ },
+ },
+ heading: {
+ level: 4, // NOTE: in v3 all accordions were h4
+ margin: { vertical: 'medium', horizontal: 'xsmall' },
+ },
+ hover: {
+ background: 'background-hover',
+ heading: {
+ color: undefined,
+ },
+ },
+ border: undefined,
+ icons: {
+ collapse: Up,
+ expand: Down,
+ color: 'text',
+ },
+ },
+ anchor: {
+ color: components.hpe.anchor.default.enabled.textColor,
+ textDecoration: components.hpe.anchor.default.enabled.textDecoration,
+ fontWeight: components.hpe.anchor.default.enabled.fontWeight,
+ gap: 'xsmall', // TO DO missing token
+ hover: {
+ textDecoration: components.hpe.anchor.default.hover.textDecoration,
+ },
+ size: {
+ // Q: missing tokens
+ // A: Our approach to anchor styling makes it difficult to automate
+ // because we've blended "size" and "kind into single variables"
+ large: {
+ color: components.hpe.anchor.emphasized.enabled.textColor,
+ textDecoration:
+ components.hpe.anchor.emphasized.enabled.textDecoration,
+ fontWeight: components.hpe.anchor.emphasized.enabled.fontWeight,
+ },
+ xlarge: {
+ color: components.hpe.anchor.emphasized.enabled.textColor,
+ textDecoration:
+ components.hpe.anchor.emphasized.enabled.textDecoration,
+ fontWeight: components.hpe.anchor.emphasized.enabled.fontWeight,
+ },
+ xxlarge: {
+ color: components.hpe.anchor.emphasized.enabled.textColor,
+ textDecoration:
+ components.hpe.anchor.emphasized.enabled.textDecoration,
+ fontWeight: components.hpe.anchor.emphasized.enabled.fontWeight,
+ },
+ '3xl': {
+ color: components.hpe.anchor.emphasized.enabled.textColor,
+ textDecoration:
+ components.hpe.anchor.emphasized.enabled.textDecoration,
+ fontWeight: components.hpe.anchor.emphasized.enabled.fontWeight,
+ },
+ '4xl': {
+ color: components.hpe.anchor.emphasized.enabled.textColor,
+ textDecoration:
+ components.hpe.anchor.emphasized.enabled.textDecoration,
+ fontWeight: components.hpe.anchor.emphasized.enabled.fontWeight,
+ },
+ '5xl': {
+ color: components.hpe.anchor.emphasized.enabled.textColor,
+ textDecoration:
+ components.hpe.anchor.emphasized.enabled.textDecoration,
+ fontWeight: components.hpe.anchor.emphasized.enabled.fontWeight,
+ },
+ '6xl': {
+ color: components.hpe.anchor.emphasized.enabled.textColor,
+ textDecoration:
+ components.hpe.anchor.emphasized.enabled.textDecoration,
+ fontWeight: components.hpe.anchor.emphasized.enabled.fontWeight,
+ },
+ },
+ },
+ avatar: {
+ size: {
+ // At this point in time we hadn't standardized on component sizes, so the sizing is off
+ // but these feel like the right tokens
+ xsmall: components.hpe.component.xsmall.minHeight,
+ small: components.hpe.component.small.minHeight, // 24px
+ medium: components.hpe.component.medium.minHeight, // default 48px
+ large: components.hpe.component.large.minHeight, // 72px
+ xlarge: components.hpe.component.xlarge.minHeight, // 96px
+ '2xl': `${baseSpacing * 5}px`, // TO DO no component size, is this a one off?
+ '3xl': `${baseSpacing * 6}px`, // TO DO no component size, is this a one off?
+ '4xl': `${baseSpacing * 7}px`, // TO DO no component size, is this a one off?
+ '5xl': `${baseSpacing * 8}px`, // TO DO no component size, is this a one off?
+ },
+ text: {
+ size: {
+ xsmall: 'small', // TO DO no component size, is this a one off?
+ // At this point in time we hadn't standardized on component sizes, so the sizing is off
+ // TO DO this feels like it should be able to point to components.hpe.component.medium.fontSize, etc.
+ small: 'small',
+ medium: 'medium',
+ large: 'large',
+ xlarge: 'xlarge',
+ '2xl': '3xl', // TO DO no component size, is this a one off?
+ '3xl': '4xl', // TO DO no component size, is this a one off?
+ '4xl': '5xl', // TO DO no component size, is this a one off?
+ '5xl': '6xl', // TO DO no component size, is this a one off?
+ },
+ },
+ },
+ button: {
+ badge: {
+ align: 'container', // TO DO this is a grommet-ism?
+ container: {
+ // align badge background to button label color
+ background: 'text-strong',
+ },
+ size: {
+ medium: '18px', // Q: what token should be used here? no token for this at the moments
+ },
+ text: {
+ size: {
+ medium: 'xsmall', // TO DO how to do references for typography sizes
+ },
+ },
+ },
+ // TO DO add cta-primary variant
+ 'cta-primary': {
+ background: { color: 'brand' },
+ color: 'text-primary-button',
+ font: { weight: 'bold' }, // Q: missing token?
+ icon: ,
+ reverse: true,
+ extend: props => primaryBackground(props),
+ },
+ // TO DO add cta-alternate variant
+ 'cta-alternate': {
+ background: 'background-cta-alternate',
+ color: 'text-strong',
+ font: {
+ weight: 'bold', // Q: missing token?
+ },
+ icon: ,
+ reverse: true,
+ },
+ default: {
+ color: components.hpe.button.default.enabled.textColor,
+ border: {
+ width:
+ dimensions.borderSize[
+ components.hpe.button.medium.default.borderWidth
+ ] || components.hpe.button.medium.default.borderWidth,
+ color: components.hpe.button.default.enabled.borderColor,
+ },
+ font: {
+ weight: components.hpe.button.default.enabled.fontWeight,
+ },
+ },
+ // TO DO - temp button kind for brand refresh
+ // nav: {
+ // color: components.hpe.button.nav.enabled.textColor,
+ // border: {
+ // width:
+ // dimensions.borderSize[
+ // components.hpe.button.medium.nav.borderWidth
+ // ] || components.hpe.button.medium.nav.borderWidth,
+ // color: components.hpe.button.nav.enabled.borderColor,
+ // radius:
+ // dimensions.borderSize[
+ // components.hpe.button.medium.nav.borderRadius
+ // ] || components.hpe.button.medium.nav.borderRadius,
+ // },
+ // font: {
+ // weight: components.hpe.button.nav.enabled.fontWeight,
+ // },
+ // },
+ gap: components.hpe.button.medium.default.gapX,
+ primary: {
+ background: '',
+ border: {
+ width:
+ dimensions.borderSize[
+ components.hpe.button.medium.primary.borderWidth
+ ] || components.hpe.button.medium.primary.borderWidth,
+ color: components.hpe.button.primary.enabled.borderColor,
+ },
+ color: components.hpe.button.primary.enabled.textColor,
+ font: {
+ weight: components.hpe.button.primary.enabled.fontWeight,
+ },
+ extend: props =>
+ !props.active
+ ? `background: ${
+ components.hpe.button.primary.enabled.background
+ }; background-color: ${
+ props.theme.global.colors[
+ components.hpe.button.primary.enabled.backgroundColor
+ ][props.theme.dark ? 'dark' : 'light']
+ };`
+ : '',
+ },
+ secondary: {
+ background: components.hpe.button.secondary.enabled.background,
+ border: {
+ width:
+ dimensions.borderSize[
+ components.hpe.button.medium.secondary.borderWidth
+ ] || components.hpe.button.medium.secondary.borderWidth,
+ color: components.hpe.button.secondary.enabled.borderColor,
+ },
+ color: components.hpe.button.secondary.enabled.textColor,
+ font: {
+ weight: components.hpe.button.secondary.enabled.fontWeight,
+ },
+ },
+ toolbar: {
+ border: {
+ width:
+ dimensions.borderSize[
+ components.hpe.button.medium.toolbar.borderWidth
+ ] || components.hpe.button.medium.toolbar.borderWidth,
+ color: components.hpe.button.toolbar.enabled.borderColor,
+ radius:
+ dimensions.borderSize[
+ components.hpe.button.medium.toolbar.borderRadius
+ ] || components.hpe.button.medium.toolbar.borderRadius,
+ },
+ color: components.hpe.button.toolbar.enabled.textColor,
+ font: {
+ weight: components.hpe.button.toolbar.enabled.fontWeight,
+ },
+ },
+ option: option,
+ active: {
+ background: {
+ color: components.hpe.button.default.selected.enabled.background,
+ },
+ color: components.hpe.button.default.selected.enabled.textColor,
+ secondary: {
+ background: {
+ color: components.hpe.button.secondary.selected.enabled.background,
+ },
+ border: {
+ // Q: this token isn't correct
+ color: components.hpe.button.secondary.selected.enabled.borderColor,
+ },
+ color: components.hpe.button.secondary.selected.enabled.textColor,
+ },
+ // nav: {
+ // background: {
+ // color: components.hpe.button.nav.selected.enabled.background,
+ // },
+ // border: {
+ // // Q: this token isn't correct
+ // color: components.hpe.button.nav.selected.enabled.borderColor,
+ // },
+ // color: components.hpe.button.nav.selected.enabled.textColor,
+ // font: {
+ // weight: components.hpe.button.nav.selected.enabled.fontWeight,
+ // },
+ // },
+ primary: {
+ background: {
+ color: components.hpe.button.primary.selected.enabled.background,
+ },
+ border: {
+ color: components.hpe.button.primary.selected.enabled.borderColor,
+ },
+ color: components.hpe.button.primary.selected.enabled.textColor,
+ },
+ toolbar: {
+ background: {
+ color: components.hpe.button.toolbar.selected.enabled.background,
+ },
+ border: {
+ color: components.hpe.button.toolbar.selected.enabled.borderColor,
+ },
+ color: components.hpe.button.toolbar.selected.enabled.textColor,
+ },
+ option: {
+ background: {
+ color: components.hpe.select.option.selected.background,
+ },
+ border: {
+ color: components.hpe.select.option.selected.borderColor,
+ },
+ color: components.hpe.select.option.selected.textColor,
+ },
+ },
+ selected: {
+ option: {
+ background: components.hpe.select.option.selected.enabled.background,
+ color: components.hpe.select.option.selected.textColor,
+ font: {
+ weight: components.hpe.select.option.selected.enabled.fontWeight,
+ },
+ },
+ },
+ hover: {
+ 'cta-primary': {
+ extend: props => primaryHoverBackground(props),
+ },
+ 'cta-alternate': {
+ extend: ({ active, colorValue, theme }) => {
+ let color;
+ if (!colorValue && !active) {
+ if (theme.dark) {
+ color = 'rgba(0, 0, 0, 0.2)'; // TBD
+ } else color = 'rgba(0, 0, 0, 0.2)'; // TBD
+ }
+
+ const style = `inset 0 0 100px 100px ${color}`;
+ return `-moz-box-shadow: ${style};
+ -webkit-box-shadow: ${style};
+ box-shadow: ${style};`;
+ },
+ },
+ default: {
+ background: components.hpe.button.default.hover.background,
+ border: {
+ color: components.hpe.button.default.hover.borderColor,
+ },
+ color: components.hpe.button.default.hover.textColor,
+ },
+ option: {
+ background: components.hpe.select.option.hover.background,
+ border: {
+ color: components.hpe.select.option.hover.borderColor,
+ },
+ color: components.hpe.select.option.hover.textColor,
+ },
+ primary: {
+ background: '',
+ border: {
+ color: components.hpe.button.primary.hover.borderColor,
+ },
+ color: components.hpe.button.primary.hover.textColor,
+ extend: props =>
+ !props.active
+ ? `background-color: ${components.hpe.button.primary.hover.background};`
+ : `color: ${
+ props.theme.global.colors[
+ components.hpe.button.primary.selected.enabled.textColor
+ ][props.theme.dark ? 'dark' : 'light']
+ }`,
+ },
+ secondary: {
+ background: components.hpe.button.secondary.hover.background,
+ border: {
+ color: components.hpe.button.secondary.hover.borderColor,
+ width:
+ dimensions.borderSize[
+ components.hpe.button.medium.secondary.borderWidth
+ ] || components.hpe.button.medium.secondary.borderWidth,
+ },
+ color: components.hpe.button.secondary.hover.textColor,
+ },
+ toolbar: {
+ background: components.hpe.button.toolbar.hover.background,
+ border: {
+ color: components.hpe.button.toolbar.hover.borderColor,
+ },
+ color: components.hpe.button.toolbar.hover.textColor,
+ },
+ },
+ color: components.hpe.button.default.enabled.textColor,
+ size: {
+ small: {
+ border: {
+ // TO DO need way to map to global radius of full,
+ // Q: is this token correct? token value is 'full' but theme value is '2em'
+ // This change causes the button to loose its rounding
+ radius: components.hpe.button.small.default.borderRadius,
+ },
+ pad: {
+ vertical: components.hpe.button.small.default.paddingY,
+ horizontal: components.hpe.button.small.default.paddingX,
+ },
+ iconOnly: {
+ pad: {
+ vertical: components.hpe.button.small.default.iconOnly.paddingY,
+ horizontal: components.hpe.button.small.default.iconOnly.paddingX,
+ },
+ },
+ secondary: {
+ border: {
+ radius: components.hpe.button.small.secondary.borderRadius,
+ },
+ pad: {
+ vertical: components.hpe.button.small.secondary.paddingY,
+ horizontal: components.hpe.button.small.default.paddingX,
+ },
+ },
+ primary: {
+ border: {
+ radius: components.hpe.button.small.primary.borderRadius,
+ },
+ pad: {
+ vertical: components.hpe.button.small.primary.paddingY,
+ horizontal: components.hpe.button.small.default.paddingX,
+ },
+ },
+ toolbar: {
+ border: {
+ radius: components.hpe.button.small.toolbar.borderRadius,
+ },
+ pad: {
+ vertical: components.hpe.button.small.toolbar.paddingY,
+ horizontal: components.hpe.button.small.toolbar.paddingX,
+ },
+ },
+ },
+ medium: {
+ border: {
+ // TO DO need way to map to global radius of full,
+ // Q: is this token correct? token value is 'full' but theme value is '2em'
+ // This change causes the button to loose its rounding
+ radius: components.hpe.button.medium.default.borderRadius,
+ },
+ pad: {
+ vertical: components.hpe.button.medium.default.paddingY,
+ horizontal: components.hpe.button.medium.default.paddingX,
+ },
+ iconOnly: {
+ pad: mediumIconOnlyPad, // Q: confused about this value
+ },
+ secondary: {
+ border: {
+ radius: components.hpe.button.medium.secondary.borderRadius,
+ },
+ pad: {
+ vertical: components.hpe.button.medium.secondary.paddingY,
+ horizontal: components.hpe.button.medium.default.paddingX,
+ },
+ },
+ // nav: {
+ // border: {
+ // radius: components.hpe.button.medium.nav.borderRadius,
+ // },
+ // pad: {
+ // vertical: components.hpe.button.medium.nav.paddingY,
+ // horizontal: components.hpe.button.medium.nav.paddingX,
+ // },
+ // },
+ primary: {
+ border: {
+ radius: components.hpe.button.medium.primary.borderRadius,
+ },
+ pad: {
+ vertical: components.hpe.button.medium.primary.paddingY,
+ horizontal: components.hpe.button.medium.default.paddingX,
+ },
+ },
+ toolbar: {
+ border: {
+ radius:
+ dimensions.borderSize[
+ components.hpe.button.medium.toolbar.borderRadius
+ ] || components.hpe.button.medium.toolbar.borderRadius,
+ },
+ pad: {
+ vertical: components.hpe.button.medium.toolbar.paddingY,
+ horizontal: components.hpe.button.medium.toolbar.paddingX,
+ },
+ },
+ },
+ large: {
+ border: {
+ // TO DO need way to map to global radius of full,
+ // Q: is this token correct? token value is 'full' but theme value is '2em'
+ // This change causes the button to loose its rounding
+ radius: components.hpe.button.large.default.borderRadius,
+ },
+ pad: {
+ vertical: components.hpe.button.large.default.paddingY,
+ horizontal: components.hpe.button.large.default.paddingX,
+ },
+ iconOnly: {
+ pad: {
+ vertical: components.hpe.button.large.default.iconOnly.paddingY,
+ horizontal: components.hpe.button.large.default.iconOnly.paddingX,
+ },
+ },
+ secondary: {
+ border: {
+ radius: components.hpe.button.large.secondary.borderRadius,
+ },
+ pad: {
+ vertical: components.hpe.button.large.secondary.paddingY,
+ horizontal: components.hpe.button.large.default.paddingX,
+ },
+ },
+ primary: {
+ border: {
+ radius: components.hpe.button.large.primary.borderRadius,
+ },
+ pad: {
+ vertical: components.hpe.button.large.primary.paddingY,
+ horizontal: components.hpe.button.large.default.paddingX,
+ },
+ },
+ toolbar: {
+ border: {
+ radius: components.hpe.button.large.toolbar.borderRadius,
+ },
+ pad: {
+ vertical: components.hpe.button.large.toolbar.paddingY,
+ horizontal: components.hpe.button.large.toolbar.paddingX,
+ },
+ },
+ },
+ // xlarge button did not exist in v3
+ xlarge: {
+ border: {
+ // TO DO need way to map to global radius of full,
+ // Q: is this token correct? token value is 'full' but theme value is '2em'
+ // This change causes the button to loose its rounding
+ radius: components.hpe.button.xlarge.default.borderRadius,
+ },
+ pad: {
+ vertical: components.hpe.button.xlarge.default.paddingY,
+ horizontal: components.hpe.button.xlarge.default.paddingX,
+ },
+ iconOnly: {
+ pad: {
+ vertical: components.hpe.button.xlarge.default.iconOnly.paddingY,
+ horizontal:
+ components.hpe.button.xlarge.default.iconOnly.paddingX,
+ },
+ },
+ secondary: {
+ border: {
+ radius: components.hpe.button.xlarge.secondary.borderRadius,
+ },
+ pad: {
+ vertical: components.hpe.button.xlarge.secondary.paddingY,
+ horizontal: components.hpe.button.xlarge.default.paddingX,
+ },
+ },
+ primary: {
+ border: {
+ radius: components.hpe.button.xlarge.primary.borderRadius,
+ },
+ pad: {
+ vertical: components.hpe.button.xlarge.primary.paddingY,
+ horizontal: components.hpe.button.xlarge.default.paddingX,
+ },
+ },
+ toolbar: {
+ border: {
+ radius: components.hpe.button.xlarge.toolbar.borderRadius,
+ },
+ pad: {
+ vertical: components.hpe.button.xlarge.toolbar.paddingY,
+ horizontal: components.hpe.button.xlarge.toolbar.paddingX,
+ },
+ },
+ },
+ },
+ extend: ({ hasIcon, hasLabel, kind, sizeProp }) => {
+ // necessary so primary label is accessible on HPE green background
+ const fontSize = components.hpe.button?.[sizeProp]?.[kind]?.fontSize;
+ const lineHeight =
+ components.hpe.button?.[sizeProp]?.[kind]?.lineHeight;
+ let style = '';
+ const iconOnly = hasIcon && !hasLabel;
+ if ((sizeProp === 'medium' || sizeProp === undefined) && !iconOnly) {
+ style += `font-size: ${fontSize};
+ line-height: ${lineHeight};`;
+ }
+ if (kind === 'secondary') {
+ style += `&:hover { box-shadow: ${components.hpe.button[sizeProp].secondary?.hover?.boxShadow}; }`;
+ }
+ return style;
+ },
+ },
+ calendar: {
+ day: {
+ extend: ({ isSelected, theme }) =>
+ isSelected &&
+ `
+ background: ${
+ theme.global.colors[theme.global.selected.background]?.[
+ theme.dark ? 'dark' : 'light'
+ ]
+ };
+ color: ${
+ theme.global.colors[theme.global.selected.color]?.[
+ theme.dark ? 'dark' : 'light'
+ ]
+ };`,
+ },
+ icons: {
+ // next: Next,
+ // previous: Previous,
+ },
+ small: {
+ // Q: missing tokens
+ fontSize: '13.6px',
+ lineHeight: 1.375,
+ daySize: '27.43px',
+ title: {
+ size: 'medium',
+ weight: MISSING.weight,
+ color: MISSING.color,
+ },
+ },
+ medium: {
+ fontSize: '18px',
+ lineHeight: 1.45,
+ daySize: '54.86px',
+ title: {
+ size: 'large',
+ weight: MISSING.weight,
+ color: MISSING.color,
+ },
+ },
+ large: {
+ fontSize: '31.2px',
+ lineHeight: 1.11,
+ daySize: '109.71px',
+ title: {
+ size: 'xlarge',
+ weight: MISSING.weight,
+ color: MISSING.color,
+ },
+ },
+ },
+ card: {
+ container: {
+ background: 'background-front',
+ elevation: 'medium', // v5
+ // elevation: 'none', // Brand refresh change
+ // Q should this have a token?
+ // A yes, but we haven't filled in "motion" tokens yet
+ extend: 'transition: all 0.3s ease-in-out;',
+ },
+ body: {
+ pad: 'medium',
+ },
+ footer: {
+ pad: { horizontal: 'medium', vertical: 'small' },
+ },
+ header: {
+ pad: 'medium',
+ },
+ hover: {
+ container: {
+ elevation: 'large', // v5
+ // elevation: 'medium', // brand refresh change
+ },
+ },
+ },
+ checkBox: {
+ hover: {
+ border: {
+ color: components.hpe.checkbox.control.hover.borderColor,
+ width: components.hpe.checkbox.control.hover.borderWidth,
+ },
+ background: {
+ color: components.hpe.formField.input.group.item.hover.background,
+ },
+ // HPE Design System guidance states that pad="none" should be applied on CheckBox
+ // when its used outside of a FormField. We will apply this hover treatment in
+ // those instances.
+ extend: ({ disabled, pad, theme, toggle }) => css`
+ ${!disabled &&
+ pad === 'none' &&
+ !toggle &&
+ `border: 2px solid ${
+ theme.global.colors[
+ components.hpe.checkbox.control.hover.borderColor
+ ][theme.dark ? 'dark' : 'light']
+ };`}
+ `, // Q: missing token for hover borderWidth? this falls into similar boat as secondary button
+ },
+ color: components.hpe.switch.control.handle.enabled.background,
+ border: {
+ color: components.hpe.checkbox.control.enabled.borderColor,
+ width:
+ dimensions.borderSize[
+ components.hpe.checkbox.medium.control.borderWidth
+ ] || components.hpe.checkbox.medium.control.borderWidth,
+ },
+ check: {
+ radius: components.hpe.checkbox.medium.control.borderRadius,
+ thickness: components.hpe.checkbox.control.hover.borderWidth,
+ extend: ({ theme, checked, indeterminate }) => `
+ margin-block: ${
+ (parseFloat(large.hpe.text.medium.lineHeight, 10) * 16 -
+ parseFloat(components.hpe.checkbox.medium.control.height, 10) *
+ 16) /
+ 2
+ }px;
+ background-color: ${
+ checked || indeterminate
+ ? theme.global.colors[
+ components.hpe.checkbox.control.selected.enabled.background
+ ]?.[theme.dark ? 'dark' : 'light']
+ : theme.global.colors.background[theme.dark ? 'dark' : 'light']
+ };
+ ${(checked || indeterminate) && 'border: none;'}
+ `,
+ },
+ icon: {
+ extend: ({ theme }) => `stroke-width: 2px;
+ stroke: ${
+ theme.global.colors[
+ components.hpe.checkbox.control.selected.enabled.iconColor
+ ]?.[theme.dark ? 'dark' : 'light']
+ }`,
+ },
+ // Q make sure this is 12px is small
+ gap: components.hpe.checkbox.medium.gapX,
+ // Q do we need a token here?
+ // A good question, not sure if this a grommet-ism?
+ label: {
+ align: 'start',
+ },
+ pad: {
+ vertical: components.hpe.component.medium.paddingY,
+ horizontal: components.hpe.formField.medium.input.container.paddingX, // TO DO is this correct usage?
+ },
+ size: components.hpe.checkbox.medium.control.width, // TO DO should this token be called "size" instead?
+ // Q is toggle and switch the same thing?
+ // A: Yes, we can discuss if this name feels right or not.
+ toggle: {
+ background: components.hpe.switch.control.track.enabled.background,
+ color: components.hpe.switch.control.handle.enabled.background,
+ knob: {
+ extend: ({ theme }) => `
+ box-shadow: ${
+ theme.global.elevation[theme.dark ? 'dark' : 'light'].small
+ };
+ border: ${
+ dimensions.borderSize[
+ components.hpe.switch.medium.control.handle.borderWidth
+ ]
+ } solid ${
+ theme.global.colors[
+ components.hpe.switch.control.handle.enabled.borderColor
+ ][theme.dark ? 'dark' : 'light']
+ };
+ `,
+ },
+ extend: ({ checked, theme }) => `
+ ${
+ checked &&
+ `background-color: ${
+ theme.global.colors[
+ components.hpe.switch.control.track.selected.enabled.background
+ ]?.[theme.dark ? 'dark' : 'light']
+ };`
+ }
+ `,
+ },
+ // HPE Design System guidance states that pad="none" should be applied on CheckBox
+ // when its used outside of a FormField. We will apply this hover treatment in
+ // those instances.
+ extend: ({ disabled, pad }) => css`
+ ${
+ !disabled &&
+ pad === 'none' &&
+ `&:hover {
+ background-color: unset;
+ }`
+ }
+ font-weight: ${components.hpe.checkbox.medium.label.fontWeight};
+ width: auto;
+ };
+ `,
+ },
+ checkBoxGroup: {
+ container: {
+ gap: 'none', // TO DO missing token
+ margin: {
+ vertical:
+ components.hpe.formField.medium.input.group.container.paddingY,
+ },
+ },
+ },
+ data: {
+ button: {
+ kind: 'toolbar',
+ },
+ },
+ dateInput: {
+ container: {
+ round: components.hpe.formField.medium.input.container.borderRadius,
+ },
+ icon: {
+ size: 'small',
+ },
+ },
+ dataTable: {
+ body: {
+ extend: ({ theme }) => `
+ /* Margin and padding allow room for focus on table body */
+ // TO DO missing tokens
+ margin: ${theme.global.edgeSize.xxsmall} 0px;
+ padding: 0px ${theme.global.edgeSize.xxsmall};
+ `,
+ },
+ groupHeader: {
+ // background: undefined,
+ // border: undefined,
+ // pad: undefined,
+ },
+ groupEnd: {
+ border: { side: 'bottom', size: 'xsmall' },
+ },
+ header: {
+ border: { side: 'bottom' },
+ color: components.hpe.headerCell.enabled.textColor,
+ extend: ({ column, sort, sortable, theme }) =>
+ `
+ ${
+ sort &&
+ sort.property === column &&
+ `
+ background: ${
+ theme.global.colors['background-active'][
+ theme.dark ? 'dark' : 'light'
+ ]
+ }
+ `
+ };
+ ${
+ sortable &&
+ sort &&
+ sort.property !== column &&
+ `
+ svg {
+ opacity: 0;
+ }
+ &:hover {
+ svg {
+ opacity: 1;
+ }
+ }
+ `
+ };
+ `,
+ font: {
+ weight: components.hpe.headerCell.fontWeight,
+ },
+ gap: 'none', // TO DO missing token
+ hover: {
+ background: {
+ color: components.hpe.headerCell.hover.background,
+ },
+ },
+ units: {
+ color: components.hpe.headerCell.units.enabled.textColor, // Q: missing token
+ },
+ },
+ icons: {
+ ascending: () => ,
+ descending: () => ,
+ contract: () => ,
+ expand: () => ,
+ sortable: () => ,
+ },
+ pinned: {
+ header: {
+ background: { opacity: 'strong' },
+ extend: 'backdrop-filter: blur(12px);',
+ },
+ body: {
+ background: { opacity: 'strong' },
+ extend: 'backdrop-filter: blur(12px);',
+ },
+ footer: {
+ background: { opacity: 'strong' },
+ extend: 'backdrop-filter: blur(12px);',
+ },
+ },
+ primary: {
+ // Q: missing tokens
+ weight: components.hpe.dataCell.primary.fontWeight,
+ color: components.hpe.dataCell.primary.enabled.textColor,
+ },
+ resize: {
+ // Q: missing tokens
+ border: {
+ color: 'border',
+ side: 'end',
+ },
+ hover: {
+ border: {
+ color: 'border-strong',
+ size: 'small',
+ },
+ },
+ },
+ },
+ fileInput: {
+ border: {
+ // Q: confused on which token to use here formfield.medium.input.group.item.borderWidth?
+ color: components.hpe.formField.input.container.enabled.borderColor,
+ side: 'all',
+ style: 'dashed',
+ size: components.hpe.formField.medium.input.container.borderWidth,
+ },
+ button: {
+ // Q: should we point to button tokens here?
+ // A: Yes, I think we should unless different values are required
+ border: {
+ // Q: is this the correct value?
+ // A: yes
+ radius: components.hpe.button.medium.default.borderRadius,
+ },
+ pad: {
+ vertical: components.hpe.button.medium.default.paddingY,
+ horizontal: '12px', // TO DO no tokens
+ },
+ color: components.hpe.button.default.enabled.textColor,
+ font: {
+ weight: components.hpe.button.default.enabled.fontWeight,
+ },
+ hover: {
+ background: components.hpe.button.default.hover.background,
+ color: components.hpe.button.default.hover.textColor,
+ },
+ },
+ dragOver: {
+ background: MISSING.color,
+ border: 'none',
+ },
+ hover: {
+ border: {
+ color: 'border',
+ },
+ },
+ icons: {
+ // remove: Close,
+ },
+ label: {
+ margin: 'small',
+ },
+ message: {
+ color: 'placeholder',
+ margin: 'small',
+ },
+ pad: { horizontal: 'xsmall' },
+ extend: `border-radius: ${components.hpe.formField.medium.input.container.borderRadius};`,
+ },
+ formField: {
+ content: {
+ // Q: missing tokens
+ margin: { vertical: 'xsmall' },
+ pad: 'none',
+ },
+ border: {
+ error: {
+ color:
+ components.hpe.formField.input.container.status.critical
+ .borderColor,
+ },
+ color: components.hpe.formField.input.container.enabled.borderColor,
+ side: 'all',
+ },
+ // checkBox: {
+ // pad: 'large',
+ // },
+ disabled: {
+ background:
+ components.hpe.formField.input.group.container.disabled.background,
+ border: {
+ color: components.hpe.formField.input.container.disabled.borderColor,
+ },
+ label: {
+ color: components.hpe.formField.labelText.disabled.textColor,
+ },
+ },
+ error: {
+ background: {
+ color:
+ components.hpe.formField.input.container.status.critical.background,
+ },
+ container: {
+ gap: 'xsmall', // Q: missing token
+ },
+ icon: ,
+ size: 'xsmall', // Q: missing token
+ // Q: confused why we have both hpe.formField.errorText.enabled.textColor
+ // and hpe.formField.errorText.disabled.color
+ // A: This is to be able to style text differently in different states
+ color: components.hpe.formField.errorText.enabled.textColor,
+ margin: {
+ // Q: missing token
+ bottom: 'xsmall',
+ top: 'none',
+ horizontal: 'none',
+ },
+ },
+ focus: {
+ background: undefined, // TO DO missing token
+ border: {
+ color: 'border-strong', // Q: missing token
+ },
+ },
+ help: {
+ size: 'xsmall',
+ color: components.hpe.formField.helpText.enabled.color,
+ margin: 'none', // TO DO missing token
+ },
+ info: {
+ size: 'xsmall',
+ color: components.hpe.formField.infoText.enabled.color,
+ margin: {
+ // Q: missing token
+ bottom: 'xsmall',
+ top: 'none',
+ horizontal: 'none',
+ },
+ },
+ label: {
+ size: 'xsmall', // TO DO how to capture this as token, currently we have "fontSize", "lineHeight", "..."
+ color: components.hpe.formField.labelText.enabled.color,
+ margin: {
+ // Q: missing token
+ bottom: 'none',
+ top: 'xsmall',
+ horizontal: 'none',
+ },
+ requiredIndicator: true,
+ weight: components.hpe.formField.medium.labelText.fontWeight,
+ },
+ margin: {
+ bottom: 'none', // TO DO missing token
+ },
+ round: components.hpe.formField.medium.input.container.borderRadius,
+ // TO DO no tokens
+ survey: {
+ label: {
+ margin: { bottom: 'none' },
+ size: 'medium',
+ weight: MISSING.weight,
+ },
+ },
+ },
+ heading: {
+ color: 'heading',
+ weight: large.hpe.heading.xlarge.fontWeight, // Q: not sure what token to point to here
+ level: {
+ 1: {
+ font: {
+ weight: large.hpe.heading.xlarge.fontWeight,
+ },
+ small: {
+ // Q: are these the correct tokens to use? the value is correct but the name seems off
+ // TO DO this value is off because we didn't have the same typography system before
+ size: large.hpe.heading.large.fontSize,
+ height: large.hpe.heading.large.lineHeight,
+ },
+ medium: {
+ size: large.hpe.heading.xlarge.fontSize,
+ height: large.hpe.heading.xlarge.lineHeight,
+ },
+ large: {
+ // Q: missing tokens
+ size: '48px',
+ height: '48px',
+ },
+ xlarge: {
+ // Q: missing tokens
+ size: '60px',
+ height: '60px',
+ },
+ },
+ 2: {
+ font: {
+ // Q: not sure what token to point to here
+ // A: "large" is the default size for h2, so we'll point to that
+ weight: large.hpe.heading.large.fontWeight,
+ },
+ small: {
+ size: large.hpe.heading.medium.fontSize,
+ height: large.hpe.heading.medium.lineHeight,
+ },
+ medium: {
+ size: large.hpe.heading.large.fontSize,
+ height: large.hpe.heading.large.lineHeight,
+ },
+ large: {
+ size: large.hpe.heading.xlarge.fontSize,
+ height: large.hpe.heading.xlarge.lineHeight,
+ },
+ xlarge: {
+ // Q: missing tokens
+ size: '48px',
+ height: '48px',
+ },
+ },
+ 3: {
+ font: {
+ // Q: not sure what token to point to here
+ weight: large.hpe.heading.medium.fontWeight,
+ },
+ small: {
+ size: large.hpe.heading.small.fontSize,
+ height: large.hpe.heading.small.lineHeight,
+ },
+ medium: {
+ size: large.hpe.heading.medium.fontSize,
+ height: large.hpe.heading.medium.lineHeight,
+ },
+ large: {
+ size: large.hpe.heading.large.fontSize,
+ height: large.hpe.heading.large.lineHeight,
+ },
+ xlarge: {
+ size: large.hpe.heading.xlarge.fontSize,
+ height: large.hpe.heading.xlarge.lineHeight,
+ },
+ },
+ 4: {
+ font: {
+ // Q: not sure what token to point to here
+ weight: large.hpe.heading.small.fontWeight,
+ },
+ small: {
+ size: large.hpe.heading.xsmall.fontSize,
+ height: large.hpe.heading.xsmall.lineHeight,
+ },
+ medium: {
+ size: large.hpe.heading.small.fontSize,
+ height: large.hpe.heading.small.lineHeight,
+ },
+ large: {
+ size: large.hpe.heading.medium.fontSize,
+ height: large.hpe.heading.medium.lineHeight,
+ },
+ xlarge: {
+ size: large.hpe.heading.large.fontSize,
+ height: large.hpe.heading.large.lineHeight,
+ },
+ },
+ 5: {
+ font: {
+ // Q: not sure what token to point to here
+ weight: large.hpe.heading.xsmall.fontWeight,
+ },
+ small: {
+ size: large.hpe.heading.xxsmall.fontSize,
+ height: large.hpe.heading.xxsmall.lineHeight,
+ },
+ medium: {
+ size: large.hpe.heading.xsmall.fontSize,
+ height: large.hpe.heading.xsmall.lineHeight,
+ },
+ large: {
+ size: large.hpe.heading.small.fontSize,
+ height: large.hpe.heading.small.lineHeight,
+ },
+ xlarge: {
+ size: large.hpe.heading.medium.fontSize,
+ height: large.hpe.heading.medium.lineHeight,
+ },
+ },
+ 6: {
+ font: {
+ // Q: not sure what token to point to here
+ weight: large.hpe.heading.xxsmall.fontWeight,
+ },
+ small: {
+ size: large.hpe.heading.xxsmall.fontSize,
+ height: large.hpe.heading.xxsmall.lineHeight,
+ },
+ medium: {
+ size: large.hpe.heading.xxsmall.fontSize,
+ height: large.hpe.heading.xxsmall.lineHeight,
+ },
+ large: {
+ size: large.hpe.heading.small.fontSize,
+ height: large.hpe.heading.small.lineHeight,
+ },
+ xlarge: {
+ size: large.hpe.heading.medium.fontSize,
+ height: large.hpe.heading.medium.lineHeight,
+ },
+ },
+ },
+ // This block applies size-specific weights to headings to ensure
+ // that as heading sizes get small, the weight increases and as they
+ // get large, the weight decreases.
+ // This block can be removed once grommet theme structure is enhanced
+ // to support level and size-specific weights.
+ extend: ({ level, size }) => {
+ let fontWeight = '';
+ if (level === 3 && size === 'small') {
+ fontWeight = `font-weight: ${large.hpe.heading.small.fontWeight};`;
+ // undefined necessary so an h4 without size prop explicitly defined
+ // still renders as weight 600
+ } else if (
+ level === 4 &&
+ ['small', 'medium', undefined].includes(size)
+ ) {
+ fontWeight = `font-weight: ${large.hpe.heading.small.fontWeight};`;
+ } else if (level === 5 && size === 'xlarge') {
+ fontWeight = `font-weight: ${large.hpe.heading.small.fontWeight};`;
+ }
+ return fontWeight;
+ },
+ },
+ icon: {
+ disableScaleDown: true,
+ matchSize: true, // NOTE: Disabled this since concept didn't exist in v3
+ size: {
+ small: large.hpe.size.icon.small,
+ medium: large.hpe.size.icon.medium,
+ large: large.hpe.size.icon.large,
+ xlarge: large.hpe.size.icon.xlarge,
+ xxlarge: large.hpe.size.icon.xxlarge,
+ },
+ },
+ layer: {
+ background: 'background-floating',
+ border: {
+ radius: 'small', // TO DO no specific semantic token
+ intelligentRounding: true,
+ },
+ container: {
+ elevation: 'large', // TO DO no specific semantic token
+ },
+ overlay: {
+ background: 'background-layer-overlay',
+ },
+ /* HPE Global Header/Footer Service a.k.a. HPE Common HFWS sets the header
+ * at a z-index of 101. This adjustment allows for Layer modals and side-drawers
+ * to sit atop the Global header. */
+ zIndex: '110', // TO DO no token
+ },
+ list: {
+ container: {
+ // any box props
+ gap: 'xsmall',
+ // extend: undefined,
+ },
+ item: {
+ border: undefined,
+ disabled: {
+ color: 'text-disabled',
+ cursor: 'default',
+ },
+ pinned: {
+ background: 'background-active', // TO DO need a semantic token for the "light grey" selected state
+ icon: {
+ pad: mediumIconOnlyPad,
+ },
+ },
+ },
+ },
+ maskedInput: {
+ container: {
+ extend: ({ theme }) => `
+ svg {
+ fill: ${
+ theme.global.colors['text-strong'][theme.dark ? 'dark' : 'light']
+ };
+ stroke: ${
+ theme.global.colors['text-strong'][theme.dark ? 'dark' : 'light']
+ };
+ }
+ `,
+ },
+ },
+ menu: {
+ drop: {
+ // Q should be tokenized?
+ // A: Not sure, this sort of feels like a grommet-ism
+ align: {
+ top: 'bottom',
+ left: 'left',
+ },
+ },
+ group: {
+ container: {
+ pad: {
+ vertical: components.hpe.menu.medium.group.container.paddingY,
+ },
+ },
+ separator: {
+ color: components.hpe.menu.group.separator.background,
+ size: components.hpe.menu.medium.group.separator.height,
+ pad: 'none', // TO DO no token
+ },
+ },
+ icons: {
+ color: components.hpe.menu.item.enabled.iconColor,
+ down: Down,
+ },
+ item: {
+ pad: {
+ horizontal: components.hpe.menu.medium.item.paddingX,
+ vertical: components.hpe.menu.medium.item.paddingY,
+ },
+ },
+ },
+ nameValuePair: {
+ name: {
+ // TO DO would need to manually adjust, semantic tokens were too generic
+ // should we have a `text-emphasis` and `weight-emphasis` ?
+ color: MISSING.color,
+ weight: MISSING.weight,
+ },
+ },
+ notification: {
+ close: {
+ icon: Close,
+ },
+ container: {
+ round: 'xsmall',
+ },
+ direction: 'row',
+ global: {
+ direction: 'row',
+ container: {
+ round: 'none',
+ },
+ },
+ message: {
+ color: 'text-onStatus',
+ },
+ title: {
+ // any text props
+ color: MISSING.color,
+ weight: MISSING.weight,
+ },
+ critical: {
+ background: 'validation-critical',
+ global: {
+ background: 'validation-critical',
+ },
+ toast: {
+ background: 'background-front',
+ },
+ },
+ warning: {
+ background: 'validation-warning',
+ global: {
+ background: 'validation-warning',
+ },
+ toast: {
+ background: 'background-front',
+ },
+ },
+ normal: {
+ background: 'validation-ok',
+ global: {
+ background: 'validation-ok',
+ },
+ toast: {
+ background: 'background-front',
+ },
+ },
+ unknown: {
+ background: 'background-contrast',
+ global: {
+ background: 'background-contrast',
+ },
+ toast: {
+ background: 'background-front',
+ },
+ },
+ info: {
+ background: 'background-contrast',
+ global: {
+ background: 'background-contrast',
+ },
+ toast: {
+ background: 'background-front',
+ },
+ },
+ undefined: {
+ background: 'background-contrast',
+ global: {
+ background: 'background-contrast',
+ },
+ toast: {
+ background: 'background-front',
+ },
+ },
+ },
+ page: {
+ wide: {
+ width: {
+ min: '336px', // 336 + 24 (margin) + 24 (margin) = 384 (e.g. 'medium')
+ max: 'xxlarge',
+ },
+ xsmall: {
+ pad: { horizontal: 'large' },
+ },
+ xlarge: {
+ pad: { horizontal: 'large' },
+ },
+ },
+ narrow: {
+ width: {
+ min: '336px', // 336 + 24 (margin) + 24 (margin) = 384 (e.g. 'medium')
+ max: 'large',
+ },
+ xsmall: {
+ pad: { horizontal: 'large' },
+ },
+ xlarge: {
+ pad: { horizontal: 'large' },
+ },
+ },
+ full: {
+ width: {
+ min: '336px', // 336 + 24 (margin) + 24 (margin) = 384 (e.g. 'medium')
+ max: '100%',
+ },
+ xsmall: {
+ pad: { horizontal: 'large' },
+ },
+ xlarge: {
+ pad: { horizontal: 'large' },
+ },
+ },
+ },
+ pageHeader: {
+ responsive: {
+ breakpoints: ['xsmall', 'small'],
+ },
+ // title: {
+ // size: 'small',
+ // },
+ subtitle: {
+ size: 'large',
+ },
+ xsmall: {
+ areas: [
+ ['parent', 'parent'],
+ ['title', 'actions'],
+ ['subtitle', 'actions'],
+ ],
+ columns: [['small', 'flex'], 'auto'],
+ rows: ['auto', 'auto', 'auto'],
+ gap: { row: 'xsmall', column: 'medium' },
+ },
+ xlarge: {
+ areas: [
+ ['parent', 'parent'],
+ ['title', 'actions'],
+ ['subtitle', 'actions'],
+ ],
+ columns: [['medium', 'large'], 'auto'],
+ rows: ['auto', 'auto', 'auto'],
+ gap: { row: 'xsmall', column: 'large' },
+ },
+ },
+ pagination: {
+ button: {
+ border: {
+ radius: components.hpe.button.medium.default.borderRadius,
+ },
+ font: {
+ weight: components.hpe.button.default.enabled.fontWeight,
+ },
+ active: {
+ background: components.hpe.button.default.selected.enabled.background,
+ border: {
+ radius: components.hpe.button.medium.default.borderRadius,
+ },
+ color: components.hpe.button.default.selected.enabled.textColor,
+ font: {
+ weight: components.hpe.button.default.selected.enabled.fontWeight,
+ },
+ },
+ hover: {
+ background: components.hpe.button.default.hover.background,
+ border: {
+ radius: components.hpe.button.medium.default.borderRadius,
+ },
+ color: components.hpe.button.default.hover.textColor,
+ font: {
+ weight: components.hpe.button.default.hover.fontWeight,
+ },
+ },
+ disabled: {
+ background: components.hpe.button.default.disabled.background,
+ border: {
+ radius: components.hpe.button.medium.default.borderRadius,
+ },
+ color: components.hpe.button.default.disabled.textColor,
+ font: {
+ weight: components.hpe.button.default.disabled.fontWeight,
+ },
+ },
+ size: {
+ small: {
+ border: {
+ radius: components.hpe.button.small.default.borderRadius,
+ width:
+ dimensions.borderSize[
+ components.hpe.button.small.default.borderWidth
+ ] || components.hpe.button.small.default.borderWidth,
+ },
+ pad: {
+ vertical: '4px',
+ horizontal: '4px',
+ },
+ font: {
+ size: components.hpe.component.small.fontSize,
+ height: components.hpe.component.small.lineHeight,
+ },
+ height: components.hpe.component.small.minHeight,
+ width: components.hpe.component.small.minHeight,
+ },
+ medium: {
+ border: {
+ radius: components.hpe.button.medium.default.borderRadius,
+ width:
+ dimensions.borderSize[
+ components.hpe.button.medium.default.borderWidth
+ ] || components.hpe.button.medium.default.borderWidth,
+ },
+ pad: {
+ vertical: `4px`,
+ horizontal: `4px`,
+ },
+ font: {
+ size: components.hpe.component.medium.fontSize,
+ height: components.hpe.component.medium.lineHeight,
+ },
+ height: components.hpe.component.medium.minHeight,
+ width: components.hpe.component.medium.minHeight,
+ },
+ large: {
+ border: {
+ radius: components.hpe.button.large.default.borderRadius,
+ width:
+ dimensions.borderSize[
+ components.hpe.button.large.default.borderWidth
+ ] || components.hpe.button.large.default.borderWidth,
+ },
+ pad: {
+ vertical: `4px`,
+ horizontal: `4px`,
+ },
+ font: {
+ size: components.hpe.component.large.fontSize,
+ height: components.hpe.component.large.lineHeight,
+ },
+ height: components.hpe.component.large.minHeight,
+ width: components.hpe.component.large.minHeight,
+ },
+ },
+ },
+ },
+ paragraph: {
+ xsmall: {
+ // Should we use paragraph component tokens instead of large.hpe?
+ // A: No, use "large" I'm not sure why paragraph is showing up in component but it shouldn't
+ size: large.hpe.text.xsmall.fontSize,
+ height: large.hpe.text.xsmall.lineHeight,
+ maxWidth: large.hpe.paragraph.xsmall.maxWidth,
+ },
+ small: {
+ size: large.hpe.text.small.fontSize,
+ height: large.hpe.text.small.lineHeight,
+ maxWidth: large.hpe.paragraph.small.maxWidth,
+ },
+ medium: {
+ size: large.hpe.text.medium.fontSize,
+ height: large.hpe.text.medium.lineHeight,
+ maxWidth: large.hpe.paragraph.medium.maxWidth,
+ },
+ large: {
+ size: large.hpe.text.large.fontSize,
+ height: large.hpe.text.large.lineHeight,
+ maxWidth: large.hpe.paragraph.large.maxWidth,
+ },
+ xlarge: {
+ size: large.hpe.text.xlarge.fontSize,
+ height: large.hpe.text.xlarge.lineHeight,
+ maxWidth: large.hpe.paragraph.xlarge.maxWidth,
+ },
+ xxlarge: {
+ size: large.hpe.text.xxlarge.fontSize,
+ height: large.hpe.text.xxlarge.lineHeight,
+ maxWidth: large.hpe.paragraph.xxlarge.maxWidth,
+ },
+ // This block applies size-specific weights to paragraph to ensure
+ // that as paragraph sizes get larger, the weight decreases.
+ // This block can be removed once grommet theme structure is enhanced
+ // to support size-specific weights.
+ extend: ({ size }) => `
+ ${
+ ['xxlarge'].includes(size)
+ ? `font-weight: ${large.hpe.text[size].fontWeight};`
+ : ''
+ };
+ `,
+ },
+ radioButton: {
+ // extend for border to use box shadow
+ border: {
+ color: components.hpe.radioButton.control.enabled.borderColor,
+ width: components.hpe.radioButton.medium.control.borderWidth,
+ },
+ color: components.hpe.radioButton.control.selected.enabled.borderColor,
+ container: {
+ extend: () => `
+ width: auto;
+ padding-inline: ${components.hpe.formField.medium.input.group.item.paddingX};
+ `,
+ },
+ extend: () => `
+ padding-block: ${components.hpe.formField.medium.input.group.item.paddingY};
+ `,
+ gap: components.hpe.radioButton.medium.gapX,
+ hover: {
+ background: {
+ color: components.hpe.formField.input.group.item.hover.background,
+ },
+ border: {
+ color: components.hpe.radioButton.control.hover.borderColor,
+ },
+ },
+ size: components.hpe.radioButton.medium.control.height,
+ font: {
+ weight: components.hpe.radioButton.medium.label.fontWeight,
+ },
+ icons: {
+ circle: () => (
+
+
+
+ ),
+ },
+ },
+ radioButtonGroup: {
+ container: {
+ gap: 'none', // TO DO should be token?
+ margin: {
+ vertical:
+ components.hpe.formField.medium.input.group.container.paddingY,
+ },
+ },
+ },
+ rangeInput: {
+ thumb: {
+ color: 'background-primary-default', // Should this instead be "control"?
+ },
+ track: {
+ lower: {
+ // TO DO is this the right token for here?
+ color: 'background-primary-default',
+ },
+ upper: {
+ color: 'border',
+ },
+ },
+ },
+ select: {
+ control: {
+ // TO DO should this use input tokens?
+ // or should we have a select.control tokens?
+ extend: ({ disabled }) => css`
+ ${disabled &&
+ `
+ opacity: 0.3;
+ input {
+ cursor: default;
+ }`}
+ `,
+ },
+ emptySearchMessage: {
+ container: {
+ pad: option.pad,
+ },
+ },
+ icons: {
+ color: 'icon',
+ down: Down,
+ // this was not in token
+ margin: {
+ left: 'small',
+ // setting right margin to 12px because on small
+ // screens, Select responsive padding sizes down
+ // which brings the icon too tight with edge of
+ // control.
+ right: '12px',
+ },
+ up: Up,
+ },
+ options: undefined,
+ },
+ spinner: {
+ container: {
+ pad: 'none', // Should we have universal token here for none?
+ color: 'background-primary-default', // Is this the right token for here?
+ // tokens?
+ border: [
+ { color: 'border-weak', side: 'all', size: 'medium' },
+ { color: 'border-weak', side: 'right', size: 'medium' },
+ { color: 'border-weak', side: 'top', size: 'medium' },
+ { color: 'border-weak', side: 'left', size: 'medium' },
+ ],
+ },
+ size: {
+ xsmall: `${baseSpacing * 0.75}px`, // TO DO no "xsmall" component size
+ small: components.hpe.component.small.minHeight, // TO DO should these align? this was before we standardized on component sizes
+ medium: components.hpe.component.medium.minHeight,
+ large: components.hpe.component.large.minHeight,
+ xlarge: components.hpe.component.xlarge.minHeight,
+ },
+ },
+ starRating: {
+ color: 'background-selected-strong',
+ },
+ // TO DO all of these would have to be adjusted manually because the semantic color was too generic
+ tab: {
+ color: 'text',
+ active: {
+ background: undefined,
+ color: 'text-strong',
+ weight: 600,
+ },
+ hover: {
+ background: 'transparent',
+ color: 'text',
+ },
+ border: {
+ // extend for border to use box shadow
+ side: 'bottom',
+ color: 'transparent',
+ size: 'medium',
+ active: {
+ color: 'brand',
+ },
+ disabled: {
+ color: undefined,
+ },
+ hover: {
+ color: 'border-weak',
+ },
+ },
+ disabled: {
+ color: 'text-xweak',
+ },
+ pad: {
+ // top and bottom pad need to be defined individually, specifying
+ // "vertical" only applies to top
+ // should be tokens? or t-shirt size
+ bottom: '9px',
+ top: '9px',
+ // align horizontal pad with button
+ // token?
+ horizontal: '18px',
+ },
+ margin: {
+ // bring the overall tabs border behind invidual tab borders
+ vertical: '-1px',
+ horizontal: 'none',
+ },
+ },
+ tabs: {
+ header: {
+ // change to extend for border to use box shadow
+ border: {
+ side: 'bottom',
+ size: 'xsmall',
+ color: 'border-weak',
+ },
+ },
+ // should this be tokens?
+ step: {
+ xsmall: 1,
+ xlarge: 3,
+ },
+ },
+ table: {
+ header: {
+ // alot in extend here
+ extend: `
+ > div {
+ height: 100%;
+ justify-content: center;
+ }
+ // align onSelect checkbox to center of header cell
+ label {
+ justify-content: center;
+ }
+ `,
+ },
+ body: {
+ pad: {
+ top: components.hpe.dataCell.paddingTop,
+ bottom: components.hpe.dataCell.paddingBottom,
+ horizontal: components.hpe.dataCell.paddingX,
+ },
+ border: {
+ side: 'bottom',
+ color: components.hpe.dataCell.enabled.borderColor,
+ },
+ extend: ({ theme }) =>
+ `
+ &:hover {
+ button {
+ background: ${
+ theme.global.colors['background-hover'][
+ theme.dark ? 'dark' : 'light'
+ ]
+ }
+ }
+ }
+ `,
+ },
+ row: {
+ hover: {
+ background: 'background-hover',
+ },
+ },
+ footer: {
+ extend: `
+ font-weight: ${MISSING.weight};
+ `,
+ },
+ },
+ // use extend for border to use box shadow
+ // TO DO NOTE: Tag dimensions are off because there was a bug in Tag in 3.1.0
+ tag: {
+ pad: {
+ // Q: should we be using t-shirt sizes from tokens
+ // A: No this is correct because this points to "small" which is already built w tokens
+ // but it does highlight a gap of something we couldn't automatically update
+ horizontal: 'small',
+ // Q: should this be a token?
+ // A: Yes, ideally this could point to "components.hpe.component.medium.paddingY"
+ vertical: '5px', // 5px pad + 1px border = 6px 'xsmall'
+ },
+ value: {
+ // Q should this be a token?
+ // A: Good question..similar to other areas, we might want a weight.emphasis or something
+ weight: MISSING.weight,
+ },
+ },
+ text: {
+ xsmall: {
+ size: large.hpe.text.xsmall.fontSize,
+ height: large.hpe.text.xsmall.lineHeight,
+ },
+ small: {
+ size: large.hpe.text.small.fontSize,
+ height: large.hpe.text.small.lineHeight,
+ },
+ medium: {
+ size: large.hpe.text.medium.fontSize,
+ height: large.hpe.text.medium.lineHeight,
+ },
+ large: {
+ size: large.hpe.text.large.fontSize,
+ height: large.hpe.text.large.lineHeight,
+ },
+ xlarge: {
+ size: large.hpe.text.xlarge.fontSize,
+ height: large.hpe.text.xlarge.lineHeight,
+ },
+ xxlarge: {
+ size: large.hpe.text.xxlarge.fontSize,
+ height: large.hpe.text.xxlarge.lineHeight,
+ },
+ '3xl': {
+ size: large.hpe.text['3xl'].fontSize,
+ height: large.hpe.text['3xl'].lineHeight,
+ },
+ '4xl': {
+ size: large.hpe.text['4xl'].fontSize,
+ height: large.hpe.text['4xl'].lineHeight,
+ },
+ '5xl': {
+ size: large.hpe.text['5xl'].fontSize,
+ height: large.hpe.text['5xl'].lineHeight,
+ },
+ '6xl': {
+ size: large.hpe.text['6xl'].fontSize,
+ height: large.hpe.text['6xl'].lineHeight,
+ },
+ // This block applies size-specific weights to text to ensure
+ // that as text sizes get larger, the weight decreases.
+ // This block can be removed once grommet theme structure is enhanced
+ // to support size-specific weights.
+ extend: ({ size }) => `
+ ${
+ ['xxlarge', '3xl', '4xl', '5xl', '6xl'].includes(size)
+ ? `font-weight: ${large.hpe.text[size].fontWeight};`
+ : ''
+ };
+ `,
+ },
+ textInput: {
+ container: {
+ extend: ({ theme }) => `
+ svg {
+ fill: ${
+ theme.global.colors['icon-strong'][theme.dark ? 'dark' : 'light']
+ };
+ stroke: ${
+ theme.global.colors['icon-strong'][theme.dark ? 'dark' : 'light']
+ };
+ }
+ `,
+ },
+ },
+ tip: {
+ content: {
+ background: 'background-floating',
+ border: {
+ color: 'border-weak', // TO DO this isn't specific enough to update automatically in future
+ },
+ margin: 'xxsmall',
+ elevation: 'small', // TO DO this isn't specific enough to update automatically in future
+ pad: {
+ vertical: 'none',
+ horizontal: 'small',
+ },
+ round: components.hpe.drop.borderRadius, // TO DO does it make sense to use drop here?
+ },
+ },
+ thumbsRating: {
+ like: {
+ color: 'background-selected-strong',
+ },
+ dislike: {
+ color: 'background-selected-strong',
+ },
+ },
+ toggleGroup: {
+ button: {
+ pad: {
+ // these are fine since it is built with buttons
+ vertical: 'xsmall',
+ horizontal: 'small',
+ },
+ iconOnly: {
+ // Q this will be a token?
+ pad: {
+ vertical: mediumIconOnlyPad,
+ horizontal: mediumIconOnlyPad,
+ },
+ },
+ },
+ },
+ // Theme-Designer only parameters
+ name: 'HPE 1',
+ rounding: 4,
+ scale: 1.1,
+ spacing: 24,
+ });
+};
+
+export const current = buildTheme({
+ light: localLight,
+ dark: localDark,
+ small: localSmall,
+ large: localLarge,
+ global: localGlobal,
+ components: localComponents,
+});
+
+export const warm = buildTheme({
+ light: localLight,
+ dark: localDark,
+ small: localSmall,
+ large: localLarge,
+ global: localGlobal,
+ components: localComponents,
+});
+
+export const old = buildTheme({
+ light: oldLight,
+ dark: oldDark,
+ small: oldSmall,
+ large: oldLarge,
+ elevationlight: oldElevationLight,
+ elevationdark: oldElevationDark,
+ global: oldGlobal,
+ components: oldComponents,
+});
+
+export const refresh = buildTheme({
+ light: refreshLight,
+ dark: refreshDark,
+ small: refreshSmall,
+ large: refreshLarge,
+ elevationlight: refreshElevationLight,
+ elevationdark: refreshElevationDark,
+ global: refreshGlobal,
+ components: refreshComponents,
+});
+
+export const themes = {
+ local: current,
+ v3: old,
+ refresh,
+};
diff --git a/sandbox/grommet-app/src/utils/skeleton.js b/sandbox/grommet-app/src/utils/skeleton.js
new file mode 100644
index 000000000..218df0889
--- /dev/null
+++ b/sandbox/grommet-app/src/utils/skeleton.js
@@ -0,0 +1,45 @@
+import { useEffect, useState } from 'react';
+
+const skeletonAnimation = [];
+
+for (let index = 0; index < 20; index += 1) {
+ const duration = 1000;
+ skeletonAnimation.push({
+ type: index % 2 === 0 ? 'fadeOut' : 'fadeIn',
+ delay: index * duration,
+ duration,
+ });
+}
+
+const skeleton = {
+ // animation: skeletonAnimation,
+ colors: {
+ dark: ['inherit', 'background-front', 'background-back'],
+ light: ['inherit', 'background-front', 'background-back'],
+ },
+ depth: 3,
+};
+
+const cardAnimation = index => {
+ return {
+ type: 'fadeIn',
+ delay: index * 75,
+ duration: 700,
+ };
+};
+
+const tableAnimation = 'fadeIn';
+
+const useLoading = (timeout = 250) => {
+ const [loading, setLoading] = useState(true);
+ useEffect(() => {
+ const timer = setTimeout(() => {
+ setLoading(false);
+ }, timeout);
+ return () => clearTimeout(timer);
+ });
+
+ return loading ? skeletonAnimation : undefined;
+};
+
+export { cardAnimation, skeleton, tableAnimation, useLoading };
diff --git a/sandbox/grommet-app/vite.config.js b/sandbox/grommet-app/vite.config.js
new file mode 100644
index 000000000..5a33944a9
--- /dev/null
+++ b/sandbox/grommet-app/vite.config.js
@@ -0,0 +1,7 @@
+import { defineConfig } from 'vite'
+import react from '@vitejs/plugin-react'
+
+// https://vitejs.dev/config/
+export default defineConfig({
+ plugins: [react()],
+})
diff --git a/sandbox/native-web/.gitignore b/sandbox/native-web/.gitignore
new file mode 100644
index 000000000..a547bf36d
--- /dev/null
+++ b/sandbox/native-web/.gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/sandbox/native-web/components/common/DashboardCard.js b/sandbox/native-web/components/common/DashboardCard.js
new file mode 100644
index 000000000..65ce6d739
--- /dev/null
+++ b/sandbox/native-web/components/common/DashboardCard.js
@@ -0,0 +1,28 @@
+import { LinkNext } from '../../icons/LinkNext';
+
+export const DashboardCard = ({
+ icon,
+ title,
+ body,
+ footer,
+ subtitle,
+ inline,
+ level = 2,
+}) => `
+
+
+ ${icon ? `
${icon}
` : ''}
+
+
+ ${title}
+
+ ${subtitle ? `${subtitle}` : ''}
+
+
+
+ ${LinkNext({ color: 'primary' })}
+
+
+ ${body ? `
${body}
` : ''}
+ ${footer ? `
${footer}
` : ''}
+
`;
diff --git a/sandbox/native-web/components/common/DemoCard.js b/sandbox/native-web/components/common/DemoCard.js
new file mode 100644
index 000000000..5065a2c85
--- /dev/null
+++ b/sandbox/native-web/components/common/DemoCard.js
@@ -0,0 +1,7 @@
+export const DemoCard = ({ title, body, footer }) => `
+
+`;
diff --git a/sandbox/native-web/components/common/Legend.js b/sandbox/native-web/components/common/Legend.js
new file mode 100644
index 000000000..a39ecafc2
--- /dev/null
+++ b/sandbox/native-web/components/common/Legend.js
@@ -0,0 +1,14 @@
+export const Legend = ({ label, background, value }) => `
+`;
diff --git a/sandbox/native-web/components/common/Metric.js b/sandbox/native-web/components/common/Metric.js
new file mode 100644
index 000000000..73edd02d6
--- /dev/null
+++ b/sandbox/native-web/components/common/Metric.js
@@ -0,0 +1,38 @@
+import PropTypes from 'prop-types';
+
+const sizes = {
+ small: {
+ label: 'small',
+ value: 'xlarge',
+ unit: 'xsmall',
+ },
+ medium: {
+ label: 'medium',
+ value: 'xxlarge',
+ unit: 'small',
+ },
+ large: {
+ label: 'large',
+ value: '3xl',
+ unit: 'medium',
+ },
+};
+
+export const Metric = ({ label, value, unit, options, size = 'medium' }) =>
+ `
+ ${label}
+
+
+ ${Intl.NumberFormat(undefined, options).format(value)}
+
+ ${unit || ''}
+
+
`;
+
+Metric.propTypes = {
+ label: PropTypes.string,
+ value: PropTypes.number,
+ unit: PropTypes.string,
+ size: PropTypes.oneOf(['small', 'medium', 'large']),
+ options: PropTypes.shape({}),
+};
diff --git a/sandbox/native-web/components/common/Notification.js b/sandbox/native-web/components/common/Notification.js
new file mode 100644
index 000000000..f0c2abd37
--- /dev/null
+++ b/sandbox/native-web/components/common/Notification.js
@@ -0,0 +1,9 @@
+import { StatusWarningSmall } from '../../icons/StatusWarningSmall';
+
+export const Notification = ({
+ message,
+ status = 'info',
+}) => `
+${StatusWarningSmall({ color: 'foreground-status-warning', size: 'medium' })}
+${message}
+
`;
diff --git a/sandbox/native-web/components/common/NotificationMetric.js b/sandbox/native-web/components/common/NotificationMetric.js
new file mode 100644
index 000000000..b2915a757
--- /dev/null
+++ b/sandbox/native-web/components/common/NotificationMetric.js
@@ -0,0 +1,59 @@
+import PropTypes from 'prop-types';
+import { StatusCritical } from '../../icons/StatusCritical';
+import { StatusOk } from '../../icons/StatusOk';
+import { StatusInfo } from '../../icons/StatusInfo';
+import { StatusWarning } from '../../icons/StatusWarning';
+
+const statuses = {
+ critical: {
+ background: 'background-status-critical',
+ icon: StatusCritical({
+ color: 'stroke-foreground-status-critical',
+ size: 'medium',
+ }),
+ label: 'Critical',
+ },
+ warning: {
+ background: 'background-status-warning',
+ icon: StatusWarning({
+ color: 'stroke-foreground-status-warning',
+ size: 'medium',
+ }),
+ label: 'Warning',
+ },
+ ok: {
+ background: 'background-status-ok',
+ icon: StatusOk({
+ color: 'stroke-foreground-status-ok',
+ size: 'medium',
+ }),
+ label: 'Ok',
+ },
+ info: {
+ background: 'background-status-info',
+ icon: StatusInfo({
+ color: 'stroke-foreground-status-info',
+ size: 'medium',
+ }),
+ label: 'Information',
+ },
+};
+
+export const NotificationMetric = ({ status, value }) => {
+ const { icon, label, background } = statuses[status] || {};
+
+ return `
+ ${icon || ''}
+
+ ${value} ${label}
+
+
`;
+};
+
+NotificationMetric.propTypes = {
+ status: PropTypes.string,
+ value: PropTypes.number,
+};
diff --git a/sandbox/native-web/components/common/PageHeader.js b/sandbox/native-web/components/common/PageHeader.js
new file mode 100644
index 000000000..2a3214302
--- /dev/null
+++ b/sandbox/native-web/components/common/PageHeader.js
@@ -0,0 +1,7 @@
+export const PageHeader = ({
+ title,
+ actions,
+}) => ``;
diff --git a/sandbox/native-web/components/common/index.js b/sandbox/native-web/components/common/index.js
new file mode 100644
index 000000000..dbec8a190
--- /dev/null
+++ b/sandbox/native-web/components/common/index.js
@@ -0,0 +1,6 @@
+export * from './DashboardCard';
+export * from './Legend';
+export * from './Metric';
+export * from './Notification';
+export * from './NotificationMetric';
+export * from './PageHeader';
diff --git a/sandbox/native-web/components/dashboard/BillingSummary.js b/sandbox/native-web/components/dashboard/BillingSummary.js
new file mode 100644
index 000000000..ab503fc7e
--- /dev/null
+++ b/sandbox/native-web/components/dashboard/BillingSummary.js
@@ -0,0 +1,34 @@
+/* eslint-disable max-len */
+import { DashboardCard } from '../common/DashboardCard';
+import { Notification } from '../common/Notification';
+import { Metric } from '../common/Metric';
+
+const currencyOptions = {
+ style: 'currency',
+ currency: 'USD',
+ maximumFractionDigits: 2,
+};
+
+export const BillingSummary = () =>
+ `${DashboardCard({
+ title: 'Billing summary',
+ subtitle: 'August 1-10, 2023',
+ body: `${Metric({
+ label: 'Month-to-date total cost',
+ size: 'medium',
+ value: 618.18,
+ options: currencyOptions,
+ })}
+ ${Metric({
+ label: 'End-of-month total cost (forecasted)',
+ size: 'medium',
+ value: 652.11,
+ options: currencyOptions,
+ })}
+
`,
+ footer: `${Notification({
+ message: `Your costs have increased by 14% this month. Avoid
+ surprises with a budget alert.`,
+ status: 'warning',
+ })}`,
+ })}`;
diff --git a/sandbox/native-web/components/dashboard/DeviceSummary.js b/sandbox/native-web/components/dashboard/DeviceSummary.js
new file mode 100644
index 000000000..910cf2194
--- /dev/null
+++ b/sandbox/native-web/components/dashboard/DeviceSummary.js
@@ -0,0 +1,35 @@
+/* eslint-disable max-len */
+import { DashboardCard } from '../common/DashboardCard';
+import { Legend } from '../common/Legend';
+
+export const DeviceSummary = () =>
+ `${DashboardCard({
+ title: 'Device summary',
+ body: `
+
+ ${Legend({
+ label: 'Require assignments',
+ background: 'chart-qualitative-30',
+ value: 68,
+ })}
+ ${Legend({
+ label: 'Require subscriptions',
+ background: 'chart-qualitative-50',
+ value: 34,
+ })}
+ ${Legend({
+ label: 'Assigned & subscribed',
+ background: 'chart-qualitative-70',
+ value: 245,
+ })}
+
+
+ `,
+ })}`;
diff --git a/sandbox/native-web/components/dashboard/ExpiringSubscriptions.js b/sandbox/native-web/components/dashboard/ExpiringSubscriptions.js
new file mode 100644
index 000000000..11ee8c028
--- /dev/null
+++ b/sandbox/native-web/components/dashboard/ExpiringSubscriptions.js
@@ -0,0 +1,54 @@
+import { DashboardCard } from '../common/DashboardCard';
+import { Notification } from '../common/Notification';
+import mockData from '../../mockData/mockData.json';
+import { StatusWarningSmall } from '../../icons/StatusWarningSmall';
+import { StatusCriticalSmall } from '../../icons/StatusCriticalSmall';
+
+export const ExpiringSubscriptions = () =>
+ `${DashboardCard({
+ title: 'Expiring subscriptions',
+ body: `
+
+ ${mockData.services
+ .filter(service => service.subscription)
+ .map(service => {
+ const expired =
+ new Date(service.subscription.expiration).getTime() < Date.now();
+ let icon = StatusWarningSmall({
+ color: 'foreground-status-warning',
+ size: 'medium',
+ });
+ if (expired)
+ icon = StatusCriticalSmall({
+ color: 'foreground-status-critical',
+ size: 'medium',
+ });
+
+ return `
+
+
${icon}
+
+ ${
+ service.subscription.name
+ }
+
+ ${expired ? 'Expired' : 'Expires'} ${Intl.DateTimeFormat(
+ undefined,
+ {
+ dateStyle: 'medium',
+ },
+ ).format(new Date(service.subscription.expiration))}
+
+
+
+ `;
+ })
+ .join('')}
+
+ `,
+ footer: Notification({
+ message: '12 of your subscriptions will expire this month.',
+ status: 'warning',
+ }),
+ })}`;
diff --git a/sandbox/native-web/components/dashboard/Learn.js b/sandbox/native-web/components/dashboard/Learn.js
new file mode 100644
index 000000000..c294323e1
--- /dev/null
+++ b/sandbox/native-web/components/dashboard/Learn.js
@@ -0,0 +1,9 @@
+import { DashboardCard } from '../common/DashboardCard';
+import mockData from '../../mockData/mockData.json';
+
+export const Learn = `
+
Learn
+${mockData.learn
+ .map(service => DashboardCard({ ...service, level: 3 }))
+ .join('')}
+`;
diff --git a/sandbox/native-web/components/dashboard/MonthlyCharges.js b/sandbox/native-web/components/dashboard/MonthlyCharges.js
new file mode 100644
index 000000000..6e7195c17
--- /dev/null
+++ b/sandbox/native-web/components/dashboard/MonthlyCharges.js
@@ -0,0 +1,69 @@
+/* eslint-disable max-len */
+import { DashboardCard } from '../common/DashboardCard';
+import { Notification } from '../common/Notification';
+import { Legend } from '../common/Legend';
+
+const BarChart =
+ () => `
+`;
+
+export const MonthlyCharges = () =>
+ `${DashboardCard({
+ title: 'Monthly charges',
+ body: `
+
+ ${BarChart()}
+
+ ${Legend({ label: 'Storage', background: 'chart-qualitative-30' })}
+ ${Legend({ label: 'Compute', background: 'chart-qualitative-70' })}
+ ${Legend({
+ label: 'Networking',
+ background: 'chart-qualitative-50',
+ })}
+
+
+ `,
+ footer: Notification({
+ message:
+ 'Your networking expenses have increased by 23% this month. Set up a budget alert.',
+ status: 'warning',
+ }),
+ })}`;
diff --git a/sandbox/native-web/components/dashboard/Notifications.js b/sandbox/native-web/components/dashboard/Notifications.js
new file mode 100644
index 000000000..75ea95484
--- /dev/null
+++ b/sandbox/native-web/components/dashboard/Notifications.js
@@ -0,0 +1,68 @@
+import { DashboardCard } from '../common/DashboardCard';
+import { NotificationMetric } from '../common/NotificationMetric';
+import mockData from '../../mockData/mockData.json';
+import { StatusWarningSmall } from '../../icons/StatusWarningSmall';
+import { StatusOkSmall } from '../../icons/StatusOkSmall';
+import { StatusCriticalSmall } from '../../icons/StatusCriticalSmall';
+
+export const Notifications = () =>
+ `${DashboardCard({
+ title: 'Notifications',
+ body: `
+
+
+ ${NotificationMetric({ status: 'critical', value: 1 })}
+ ${NotificationMetric({ status: 'warning', value: 6 })}
+ ${NotificationMetric({ status: 'ok', value: 86 })}
+ ${NotificationMetric({ status: 'info', value: 17 })}
+
+
Recents
+
+ ${mockData.notifications
+ .slice(0, 4)
+ .map(notification => {
+ const { status } = notification;
+ let icon;
+ if (status === 'warning')
+ icon = StatusWarningSmall({
+ color: 'foreground-status-warning',
+ size: 'medium',
+ });
+ else if (status === 'ok')
+ icon = StatusOkSmall({
+ color: 'foreground-status-ok',
+ size: 'medium',
+ });
+ else if (status === 'critical')
+ icon = StatusCriticalSmall({
+ color: 'foreground-status-critical',
+ size: 'medium',
+ });
+ else
+ icon = StatusOkSmall({
+ color: 'foreground-status-info',
+ size: 'medium',
+ });
+ return `
+
${icon}
+
${
+ notification.service
+ }
+
+ ${notification.message}
+
+
+
+ ${Intl.DateTimeFormat(undefined, {
+ timeStyle: 'short',
+ }).format(new Date(notification.createdAt))}
+
+
`;
+ })
+ .join('')}
+
+
+`,
+ })}`;
diff --git a/sandbox/native-web/components/dashboard/QuickActions.js b/sandbox/native-web/components/dashboard/QuickActions.js
new file mode 100644
index 000000000..4e18cdc8a
--- /dev/null
+++ b/sandbox/native-web/components/dashboard/QuickActions.js
@@ -0,0 +1,13 @@
+export const QuickActions = ({ actions }) => `
+
+
Quick actions
+ ${actions || ''}
+
+
+
`;
diff --git a/sandbox/native-web/components/dashboard/RecentServices.js b/sandbox/native-web/components/dashboard/RecentServices.js
new file mode 100644
index 000000000..2458b97be
--- /dev/null
+++ b/sandbox/native-web/components/dashboard/RecentServices.js
@@ -0,0 +1,39 @@
+import mockData from '../../mockData/mockData.json';
+
+const dates = [
+ '2024-02-28T20:04:00.000Z',
+ '2024-03-30T17:25:00.000Z',
+ '2024-03-10T19:37:00.000Z',
+ '2024-03-04T23:14:00.000Z',
+ '2024-03-02T20:19:00.000Z',
+];
+
+export const RecentServices = () => `
+
+
+
+ ${mockData.services
+ .slice(0, 5)
+ .map(
+ service =>
+ `
+
${service.name}
+
${service.category}
+
${Intl.DateTimeFormat(undefined, {
+ timeStyle: 'short',
+ dateStyle: 'medium',
+ }).format(
+ new Date(dates[Math.floor(Math.random() * dates.length)]),
+ )}
+
+
+
+
`,
+ )
+ .join('')}
+
+
+`;
diff --git a/sandbox/native-web/components/dashboard/Recommended.js b/sandbox/native-web/components/dashboard/Recommended.js
new file mode 100644
index 000000000..c0b89e25c
--- /dev/null
+++ b/sandbox/native-web/components/dashboard/Recommended.js
@@ -0,0 +1,13 @@
+import mockData from '../../mockData/mockData.json';
+import { DashboardCard } from '../common/DashboardCard';
+
+export const Recommended = `
+
Recommended for you
+${mockData.services
+ .map(service =>
+ service.recommended
+ ? DashboardCard({ ...service, inline: true, level: 3 })
+ : undefined,
+ )
+ .join('')}
+`;
diff --git a/sandbox/native-web/components/dashboard/SustainabilityOverview.js b/sandbox/native-web/components/dashboard/SustainabilityOverview.js
new file mode 100644
index 000000000..eb795321a
--- /dev/null
+++ b/sandbox/native-web/components/dashboard/SustainabilityOverview.js
@@ -0,0 +1,40 @@
+/* eslint-disable max-len */
+import { DashboardCard } from '../common/DashboardCard';
+import { Notification } from '../common/Notification';
+import { Metric } from '../common/Metric';
+
+const currencyOptions = {
+ style: 'currency',
+ currency: 'USD',
+ maximumFractionDigits: 2,
+};
+
+export const SustainabilityOverview = () =>
+ `${DashboardCard({
+ title: 'Sustainability overview',
+ body: `${Metric({
+ label: 'Carbon emissions',
+ size: 'small',
+ value: 132000,
+ unit: 'MTC02e',
+ })}
+ ${Metric({
+ label: 'Energy consumption',
+ size: 'small',
+ value: 325000,
+ unit: 'kWh',
+ })}
+ ${Metric({
+ label: 'Energy cost',
+ size: 'small',
+ value: 48750,
+ unit: 'USD',
+ options: currencyOptions,
+ })}
+
`,
+ footer: `${Notification({
+ message: `Your carbon emissions have increased by
+ 83% in the past month.`,
+ status: 'warning',
+ })}`,
+ })}`;
diff --git a/sandbox/native-web/components/dashboard/UserOverview.js b/sandbox/native-web/components/dashboard/UserOverview.js
new file mode 100644
index 000000000..23de0a2b3
--- /dev/null
+++ b/sandbox/native-web/components/dashboard/UserOverview.js
@@ -0,0 +1,80 @@
+/* eslint-disable max-len */
+import { DashboardCard } from '../common/DashboardCard';
+import { Legend } from '../common/Legend';
+import { Notification } from '../common/Notification';
+
+const UserPieChart =
+ () => `
+`;
+
+export const UserOverview = () =>
+ `${DashboardCard({
+ title: 'User overview',
+ body: `
+
+
+${UserPieChart()}
+
+
+
+ Total
+ 232
+
+ ${Legend({
+ label: 'Active',
+ background: 'chart-qualitative-70',
+ value: 163,
+ })}
+ ${Legend({
+ label: 'Inactive',
+ background: 'chart-qualitative-50',
+ value: 40,
+ })}
+ ${Legend({
+ label: 'Unverified',
+ background: 'chart-qualitative-30',
+ value: 19,
+ })}
+
+
+ `,
+ footer: `${Notification({
+ message: '19 unverified users to be removed.',
+ status: 'warning',
+ })}`,
+ })}`;
diff --git a/sandbox/native-web/components/dashboard/index.js b/sandbox/native-web/components/dashboard/index.js
new file mode 100644
index 000000000..17d4d38d5
--- /dev/null
+++ b/sandbox/native-web/components/dashboard/index.js
@@ -0,0 +1,11 @@
+export * from './BillingSummary';
+export * from './DeviceSummary';
+export * from './ExpiringSubscriptions';
+export * from './Learn';
+export * from './MonthlyCharges';
+export * from './Notifications';
+export * from './QuickActions';
+export * from './Recommended';
+export * from './RecentServices';
+export * from './SustainabilityOverview';
+export * from './UserOverview';
diff --git a/sandbox/native-web/components/index.js b/sandbox/native-web/components/index.js
new file mode 100644
index 000000000..504c19253
--- /dev/null
+++ b/sandbox/native-web/components/index.js
@@ -0,0 +1,2 @@
+export * from './common';
+export * from './dashboard';
diff --git a/sandbox/native-web/css/app.css b/sandbox/native-web/css/app.css
new file mode 100644
index 000000000..b6b510400
--- /dev/null
+++ b/sandbox/native-web/css/app.css
@@ -0,0 +1,168 @@
+:root {
+ font-family: Metric, Arial, sans-serif;
+ /* line-height: 1.5; */
+ font-weight: 400;
+ color-scheme: light dark;
+ background-color: var(--hpe-color-background-default);
+ color: var(--hpe-color-text-default);
+
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ /* transition-property: background, background-color;
+ transition-duration: 0.3s;
+ transition-timing-function: cubic-bezier(0.3, 0, 0.8, 0.15); */
+}
+
+body {
+ margin: 0;
+ min-height: 100vh;
+ max-width: 100%;
+ padding: 0;
+}
+
+#app {
+ margin: 0 auto;
+}
+
+/* ------- Layout styles --------- */
+
+.container {
+ container: pageSection / inline-size;
+}
+
+.sandbox {
+ border: 1px dashed var(--hpe-color-border-default);
+ border-radius: var(--hpe-radius-small);
+ padding: var(--hpe-spacing-medium);
+}
+
+.outer {
+ grid-template-columns: 1fr var(--hpe-content-medium);
+ gap: var(--hpe-spacing-xlarge);
+}
+
+.flex-flex {
+ grid-template-columns: 1fr 1fr;
+}
+.medium-flex {
+ grid-template-columns: var(--hpe-content-medium) 1fr;
+}
+.columns-medium {
+ /* TO DO revisit */
+ grid-template-columns: repeat(auto-fill, minmax(min(288px, 100%), 1fr));
+}
+.column {
+ gap: var(--hpe-spacing-large);
+}
+.contentPane {
+ background: var(--hpe-color-background-front);
+ padding: var(--hpe-spacing-medium);
+ border-radius: var(--hpe-radius-xlarge);
+}
+
+.globalHeader {
+ background: var(--hpe-color-background-front);
+ border-bottom: 1px solid var(--hpe-color-border-weak);
+ /* box-shadow: 0px 2px 4px #0000001f; */
+ flex-direction: row;
+ justify-content: space-between;
+ padding-block: var(--hpe-spacing-small);
+ padding-inline: var(--hpe-spacing-medium);
+ /* max-width: 1536px; */
+ /* margin: auto; */
+ width: 100%;
+ align-items: center;
+}
+
+/* DashboardCard */
+.inline {
+ padding: 0;
+ border-radius: 0;
+ box-shadow: none;
+}
+
+hr {
+ width: 100%;
+ border: none;
+ height: var(--hpe-border-xsmall);
+ background: var(--hpe-color-brand);
+ margin-block: var(--hpe-spacing-large);
+}
+
+path.color-chart-qualitative-30 {
+ stroke: var(--color-chart-qualitative-30);
+}
+path.color-chart-qualitative-40 {
+ stroke: var(--color-chart-qualitative-40);
+}
+path.color-chart-qualitative-50 {
+ stroke: var(--color-chart-qualitative-50);
+}
+path.color-chart-qualitative-70 {
+ stroke: var(--color-chart-qualitative-70);
+}
+circle.color-chart-qualitative-70 {
+ stroke: var(--color-chart-qualitative-70);
+}
+.fill-chart-qualitative-30 {
+ fill: var(--color-chart-qualitative-30);
+}
+.fill-chart-qualitative-50 {
+ fill: var(--color-chart-qualitative-50);
+}
+.fill-chart-qualitative-70 {
+ fill: var(--color-chart-qualitative-70);
+}
+svg .text-default {
+ fill: var(--color-text-default);
+}
+
+svg .border-weak {
+ stroke: var(--color-border-weak);
+ stroke-opacity: 1;
+}
+
+/* Legend */
+.legend-circle {
+ padding: var(--spacing-xsmall);
+ border-radius: 100%;
+}
+
+/* RecentServices */
+.services-list {
+ display: grid;
+ grid-template-columns: 1fr 1fr 1fr 1fr;
+ column-gap: var(--spacing-medium);
+ align-items: center;
+ padding-block: var(--spacing-small);
+}
+.services-list:not(:last-child) {
+ border-bottom: var(--border-xsmall) solid var(--color-border-weak);
+}
+
+#userDropContent {
+ display: none;
+}
+#userDropContent.open {
+ display: block;
+}
+
+@container pageSection (max-width: 1200px) {
+ .medium-flex {
+ grid-template-columns: 1fr;
+ }
+}
+
+@container pageSection (max-width: 1000px) {
+ .outer {
+ grid-template-columns: 1fr;
+ }
+}
+
+@container pageSection (max-width: 576px) {
+ .flex-flex {
+ grid-template-columns: 1fr;
+ }
+}
diff --git a/sandbox/native-web/css/components.css b/sandbox/native-web/css/components.css
new file mode 100644
index 000000000..c126082c4
--- /dev/null
+++ b/sandbox/native-web/css/components.css
@@ -0,0 +1,571 @@
+/* ------ Component styles ------ */
+
+:focus-visible {
+ outline: 2px solid var(--hpe-focus-ring-color);
+}
+
+/* Text */
+a,
+span,
+p {
+ color: inherit;
+ font-size: 18px;
+ line-height: 24px;
+}
+
+/* Anchor */
+a {
+ font-weight: 500;
+ color: var(--hpe-color-text-strong);
+ text-decoration: underline;
+}
+
+/* Box */
+div {
+ display: flex;
+ box-sizing: border-box;
+ flex-direction: column;
+ align-items: stretch;
+}
+/* */
+/* Button -- state in size*/
+/* button {
+ --button-backgroundColor: var(--button-default-enabled-background);
+ --button-borderWidth: var(--button-medium-default-enabled-border-width);
+ --button-borderColor: var(--button-default-enabled-border-color);
+ --button-lineHeight: 24px;
+ --button-label-color: var(--button-default-enabled-foreground-color);
+ --button-label-fontWeight: 600;
+ --button-borderRadius: var(--button-medium-default-enabled-border-radius);
+ --button-paddingVertical: var(--button-medium-default-enabled-padding-y);
+ --button-paddingHorizontal: var(--button-medium-default-enabled-padding-x);
+
+ --button-fontSize: var(--button-medium-default-font-size);
+ --button-lineHeight: var(--button-medium-default-line-height);
+
+ border-radius: var(--button-borderRadius);
+ background-color: var(--button-backgroundColor);
+ border: var(--button-borderWidth) solid var(--button-borderColor);
+ color: var(--button-label-color);
+ padding: var(--button-paddingVertical) var(--button-paddingHorizontal);
+ font-size: var(--button-fontSize);
+ line-height: var(--button-lineHeight);
+ font-weight: var(--button-label-fontWeight);
+ font-family: inherit;
+ cursor: pointer;
+}
+button:hover {
+ --button-backgroundColor: var(--button-default-hover-background);
+ --button-borderWidth: var(--button-medium-default-hover-border-width);
+ /* --button-borderColor: var(--button-default-hover-border-color); */
+/* --button-label-color: var(--button-default-hover-foreground-color);
+ --button-borderRadius: var(--button-medium-default-hover-border-radius);
+ --button-paddingVertical: var(--button-medium-default-hover-padding-y);
+ --button-paddingHorizontal: var(--button-medium-default-hover-padding-x);
+} */
+/* button:disabled {
+ --button-backgroundColor: var(--button-default-disabled-background);
+ --button-borderWidth: var(--button-medium-default-disabled-border-width);
+ /* --button-borderColor: var(--button-default-disabled-border-color); */
+/* --button-label-color: var(--button-default-disabled-foreground-color);
+ --button-borderRadius: var(--button-medium-default-disabled-border-radius);
+ --button-paddingVertical: var(--button-medium-default-disabled-padding-y);
+ --button-paddingHorizontal: var(--button-medium-default-disabled-padding-x);
+} */
+/* */
+/* button:focus, */
+/* button:focus-visible {
+ outline: 2px solid var(--color-focus);
+} */
+/* button.primary {
+ --button-backgroundColor: var(--button-primary-enabled-background);
+ --button-borderWidth: var(--button-medium-primary-enabled-border-width);
+ --button-borderColor: var(--button-primary-enabled-border-color);
+ --button-label-color: var(--button-primary-enabled-foreground-color);
+ --button-borderRadius: var(--button-medium-primary-enabled-border-radius);
+ --button-paddingVertical: var(--button-medium-primary-enabled-padding-y);
+ --button-paddingHorizontal: var(--button-medium-primary-enabled-padding-x);
+}
+button.secondary {
+ --button-backgroundColor: var(--button-secondary-enabled-background);
+ --button-borderWidth: var(--button-medium-secondary-enabled-border-width);
+ --button-borderColor: var(--button-secondary-enabled-border-color);
+ --button-label-color: var(--button-secondary-enabled-foreground-color);
+ --button-borderRadius: var(--button-medium-secondary-enabled-border-radius);
+ --button-paddingVertical: var(--button-medium-secondary-enabled-padding-y);
+ --button-paddingHorizontal: var(--button-medium-secondary-enabled-padding-x);
+}
+button.secondary:hover {
+ --button-paddingVertical: var(--button-medium-secondary-hover-padding-y);
+ --button-paddingHorizontal: var(--button-medium-secondary-hover-padding-x);
+ --button-borderWidth: var(--button-medium-secondary-hover-border-width);
+}
+button.toolbar {
+ --button-backgroundColor: var(--button-toolbar-enabled-background);
+ --button-borderWidth: var(--button-medium-toolbar-enabled-border-width);
+ --button-borderColor: var(--button-toolbar-enabled-border-color);
+ --button-label-color: var(--button-toolbar-enabled-foreground-color);
+ --button-borderRadius: var(--button-medium-toolbar-enabled-border-radius);
+ --button-paddingVertical: var(--button-medium-toolbar-enabled-padding-y);
+ --button-paddingHorizontal: var(--button-medium-toolbar-enabled-padding-x);
+} */
+
+/* Button - no state in size */
+button {
+ /* visual tokens */
+ --button-backgroundColor: var(--hpe-button-default-enabled-background);
+ --button-borderColor: var(--hpe-button-default-enabled-border-color);
+ --button-label-color: var(--hpe-button-default-enabled-text-color);
+ --button-label-fontWeight: 600; /* where does font-weight go? */
+
+ /* dimension tokens */
+ --button-borderRadius: var(--hpe-button-medium-default-border-radius);
+ --button-borderWidth: var(--hpe-button-medium-default-border-width);
+ --button-paddingVertical: var(--hpe-button-medium-default-padding-y);
+ --button-paddingHorizontal: var(--hpe-button-medium-default-padding-x);
+ --button-fontSize: var(--hpe-button-medium-default-font-size);
+ --button-lineHeight: var(--hpe-button-medium-default-line-height);
+ --button-gapX: var(--hpe-button-medium-default-gap-x);
+
+ display: flex;
+ align-items: center;
+ border-radius: var(--button-borderRadius);
+ background-color: var(--button-backgroundColor);
+ border: var(--button-borderWidth) solid var(--button-borderColor);
+ color: var(--button-label-color);
+ gap: var(--button-gapX);
+ padding: var(--button-paddingVertical) var(--button-paddingHorizontal);
+ font-size: var(--button-fontSize);
+ line-height: var(--button-lineHeight);
+ font-weight: var(--button-label-fontWeight);
+ font-family: inherit;
+ cursor: pointer;
+}
+
+button svg {
+ margin-block: 3px;
+}
+
+button:hover {
+ --button-backgroundColor: var(--hpe-button-default-hover-background);
+ --button-borderColor: var(--hpe-button-default-hover-border-color);
+ --button-label-color: var(--hpe-button-default-hover-text-color);
+}
+button:disabled {
+ --button-backgroundColor: var(--hpe-button-default-disabled-background);
+ --button-borderColor: var(--hpe-button-default-disabled-border-color);
+ --button-label-color: var(--hpe-button-default-disabled-text-color);
+}
+
+button.primary {
+ --button-backgroundColor: var(--hpe-button-primary-enabled-background);
+ --button-borderColor: var(--hpe-button-primary-enabled-border-color);
+ --button-label-color: var(--hpe-button-primary-enabled-text-color);
+
+ --button-borderRadius: var(--hpe-button-medium-primary-border-radius);
+ --button-borderWidth: var(--hpe-button-medium-primary-border-width);
+ --button-paddingVertical: var(--hpe-button-medium-primary-padding-y);
+ --button-paddingHorizontal: var(--hpe-button-medium-primary-padding-x);
+ --button-fontSize: var(--hpe-button-medium-primary-font-size);
+ --button-lineHeight: var(--hpe-button-medium-primary-line-height);
+}
+button.secondary {
+ --button-backgroundColor: var(--hpe-button-secondary-enabled-background);
+ --button-borderColor: var(--hpe-button-secondary-enabled-border-color);
+ --button-label-color: var(--hpe-button-secondary-enabled-text-color);
+
+ --button-borderRadius: var(--hpe-button-medium-secondary-border-radius);
+ --button-borderWidth: var(--hpe-button-medium-secondary-border-width);
+ --button-paddingVertical: var(--hpe-button-medium-secondary-padding-y);
+ --button-paddingHorizontal: var(--hpe-button-medium-secondary-padding-x);
+ --button-fontSize: var(--hpe-button-medium-secondary-font-size);
+ --button-lineHeight: var(--hpe-button-medium-secondary-line-height);
+}
+button.secondary:hover {
+ --button-backgroundColor: var(--hpe-button-secondary-hover-background);
+ --button-borderColor: var(--hpe-button-secondary-hover-border-color);
+ --button-label-color: var(--hpe-button-secondary-hover-text-color);
+}
+
+button.secondary.box-shadow:hover {
+ --button-backgroundColor: var(--hpe-button-secondary-hover-background);
+ --button-borderColor: var(--hpe-color-background-primary-default);
+ --button-label-color: var(--hpe-button-secondary-hover-text-color);
+ box-shadow: inset 0 0 0 1px var(--hpe-color-background-primary-default);
+}
+button.toolbar {
+ --button-backgroundColor: var(--hpe-button-toolbar-enabled-background);
+ --button-borderColor: var(--hpe-button-toolbar-enabled-border-color);
+ --button-label-color: var(--hpe-button-toolbar-enabled-text-color);
+
+ --button-borderRadius: var(--hpe-button-medium-toolbar-border-radius);
+ --button-borderWidth: var(--hpe-button-medium-toolbar-border-width);
+ --button-paddingVertical: var(--hpe-button-medium-toolbar-padding-y);
+ --button-paddingHorizontal: var(--hpe-button-medium-toolbar-padding-x);
+ --button-fontSize: var(--hpe-button-medium-toolbar-font-size);
+ --button-lineHeight: var(--hpe-button-medium-toolbar-line-height);
+}
+
+button.subtle {
+ --button-backgroundColor: var(--hpe-color-background-contrast);
+}
+button.iconOnly {
+ --button-paddingVertical: 9px;
+ --button-paddingHorizontal: 9px;
+ --button-lineHeight: 0;
+}
+button.active {
+ --button-backgroundColor: var(--hpe-color-background-active);
+}
+
+/* Checkbox */
+.checkbox-container {
+ flex-direction: row;
+ align-items: start;
+ position: relative;
+ gap: var(--hpe-checkbox-medium-gap-x);
+}
+
+button[role='checkbox'] {
+ --width: var(--hpe-checkbox-medium-control-width);
+ --height: var(--hpe-checkbox-medium-control-height);
+ --checkbox-borderRadius: var(--hpe-checkbox-medium-control-border-radius);
+ --checkbox-background: var(--hpe-checkbox-control-enabled-background);
+ --checkbox-borderColor: var(--hpe-checkbox-control-enabled-border-color);
+ --checkbox--borderWidth: var(--hpe-checkbox-medium-control-border-width);
+
+ align-items: center;
+ justify-content: center;
+ width: var(--width);
+ height: var(--height);
+ border: var(--checkbox--borderWidth) solid var(--checkbox-borderColor);
+ padding: unset;
+ border-radius: var(--checkbox-borderRadius);
+ background: var(--checkbox-background);
+}
+
+button[role='checkbox'][aria-checked='true'] {
+ --checkbox-background: var(--hpe-checkbox-selected-control-background);
+ --checkbox-borderColor: var(--hpe-checkbox-selected-control-border-color);
+}
+
+button[role='checkbox'][aria-checked='false']:hover {
+ --checkbox-background: var(--hpe-checkbox-control-hover-background);
+ --checkbox-borderColor: var(--hpe-checkbox-control-hover-border-color);
+}
+
+button[role='checkbox'] svg {
+ opacity: 0;
+}
+
+button[role='checkbox'][aria-checked='true'] svg {
+ opacity: 1;
+}
+
+.checkbox-container input {
+ transform: translateX(-100%);
+ position: absolute;
+ pointer-events: none;
+ opacity: 0;
+ margin: 0px;
+ width: 24px;
+ height: 24px;
+}
+
+.checkbox-container label {
+ font-size: 18px;
+ line-height: 24px;
+}
+/* Card */
+.card {
+ --card-elevation: var(--elevation-small);
+ background-color: var(--color-background-front);
+ border-radius: var(--radius-large);
+ box-shadow: var(--card-elevation);
+ padding: var(--spacing-medium);
+ transition: box-shadow var(--motion-duration-short-3)
+ var(--motion-easing-simple-default);
+}
+
+.card.interactive:hover {
+ --card-elevation: var(--elevation-medium);
+ cursor: pointer;
+}
+
+.card-body {
+ flex-grow: 1;
+}
+
+/* Drop */
+.dropParent {
+ position: relative;
+}
+
+.dropContent {
+ position: absolute;
+ top: 36px;
+ right: 0;
+ z-index: 1000;
+ background-color: var(--hpe-color-background-front);
+ padding: var(--hpe-spacing-medium);
+ box-shadow: var(--hpe-elevation-medium);
+ border-radius: var(--hpe-radius-large);
+ margin-top: var(--hpe-spacing-xsmall);
+ transform-origin: top right;
+ animation: var(--hpe-motion-duration-medium-1)
+ var(--hpe-motion-easing-emphasized-decelerate) forwards grow;
+}
+
+@keyframes grow {
+ 0% {
+ opacity: 0.5;
+ transform: scale(0.5);
+ }
+ 100% {
+ opacity: 1;
+ transform: scale(1);
+ }
+}
+/* Grid */
+.grid {
+ display: grid;
+ box-sizing: border-box;
+ grid-gap: var(--spacing-medium) var(--spacing-medium);
+}
+
+/* Heading */
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+ color: var(--hpe-color-text-strong);
+ margin: 0;
+ font-weight: 500;
+ line-height: 1;
+}
+h1 {
+ font-size: var(--hpe-heading-medium-h1-font-size);
+ line-height: var(--hpe-heading-medium-h1-line-height);
+}
+h2 {
+ font-size: var(--hpe-heading-medium-h2-font-size);
+ line-height: var(--hpe-heading-medium-h2-line-height);
+}
+h3 {
+ font-size: var(--hpe-heading-medium-h3-font-size);
+ line-height: var(--hpe-heading-medium-h3-line-height);
+}
+
+/* Icons */
+.icon-medium {
+ display: flex;
+ flex-shrink: 0;
+ width: 18px;
+ height: 18px;
+ padding-block: 3px;
+}
+.icon-xlarge {
+ display: flex;
+ flex-shrink: 0;
+ width: 24px;
+ height: 24px;
+}
+.icon-xxlarge {
+ display: flex;
+ flex-shrink: 0;
+ width: 36px;
+ height: 36px;
+}
+.icon.primary > path {
+ stroke: var(--hpe-color-primary);
+ stroke-width: 2px;
+}
+.icon.foreground-brand-default > path {
+ stroke: var(--hpe-color-foreground-brand-default);
+ stroke-width: 2px;
+}
+.icon.foreground-purple-10 > path {
+ stroke: var(--color-purple-10);
+ stroke-width: 2px;
+}
+.icon.foreground-status-warning > path {
+ stroke: none;
+ fill: var(--color-foreground-status-warning);
+}
+.icon.foreground-status-critical > path {
+ stroke: none;
+ fill: var(--color-foreground-status-critical);
+}
+.icon.foreground-status-ok > circle {
+ stroke: none;
+ fill: var(--color-foreground-status-ok);
+}
+.icon.foreground-status-info > circle {
+ stroke: none;
+ fill: var(--color-foreground-status-info);
+}
+.icon.stroke-foreground-status-warning > path {
+ stroke-width: 2px;
+ stroke: var(--color-foreground-status-warning);
+}
+.icon.stroke-foreground-status-critical > path {
+ stroke-width: 2px;
+ stroke: var(--color-foreground-status-critical);
+}
+.icon.stroke-foreground-status-ok > path {
+ stroke-width: 2px;
+ stroke: var(--color-foreground-status-ok);
+}
+.icon.stroke-foreground-status-info > path {
+ stroke-width: 2px;
+ stroke: var(--color-foreground-status-info);
+}
+.icon.stroke-text-strong > path {
+ stroke-width: 2px;
+ stroke: var(--hpe-color-text-strong);
+}
+.icon.stroke-icon-onPrimary > path {
+ stroke-width: 2px;
+ stroke: var(--hpe-color-icon-on-primary);
+}
+.icon.pad-none {
+ padding: 0;
+}
+.fill-text-strong {
+ /* TO DO should be full black */
+ fill: var(--hpe-color-text-strong);
+}
+
+/* FormField */
+label {
+ font-weight: var(--hpe-form-field-medium-input-container-label-font-weight);
+ color: var(--hpe-input-text-label-color);
+ font-size: var(--hpe-form-field-medium-input-container-label-font-size);
+ line-height: var(--hpe-form-field-medium-input-container-label-line-height);
+}
+
+span.help {
+ font-weight: var(--hpe-form-field-medium-help-text-font-weight);
+ color: var(--hpe-input-text-help-text-color);
+ font-size: var(--hpe-form-field-medium-help-text-font-size);
+ line-height: var(--hpe-form-field-medium-help-text-line-height);
+}
+
+.field-container {
+ padding-block: var(--hpe-form-field-medium-input-container-padding-y);
+ padding-inline: var(--hpe-form-field-medium-input-container-padding-x);
+ border-radius: var(--hpe-form-field-medium-input-container-border-radius);
+ border: var(--hpe-border-xsmall) solid var(--hpe-color-border-default);
+ font-family: inherit;
+ color: var(--hpe-input-text-value-text-color);
+ font-weight: var(--hpe-form-field-medium-value-text-font-weight);
+ font-size: var(--hpe-form-field-medium-value-text-font-size);
+ line-height: var(--hpe-form-field-medium-value-text-line-height);
+ background: transparent;
+}
+
+input {
+ padding-block: var(--hpe-form-field-medium-input-container-padding-y);
+ padding-inline: var(--hpe-form-field-medium-input-container-padding-x);
+ border-radius: var(--hpe-form-field-medium-input-container-border-radius);
+ border: var(--hpe-border-xsmall) solid var(--hpe-color-border-default);
+ font-family: inherit;
+ color: var(--hpe-input-text-value-text-color);
+ font-weight: var(--hpe-form-field-medium-value-text-font-weight);
+ font-size: var(--hpe-form-field-medium-value-text-font-size);
+ line-height: var(--hpe-form-field-medium-value-text-line-height);
+ background: transparent;
+}
+input.margin-top,
+.field-container.margin-top {
+ margin-top: var(--hpe-spacing-xsmall);
+}
+input::placeholder {
+ font-weight: var(--hpe-form-field-medium-placeholder-text-font-weight);
+ font-size: var(--hpe-form-field-medium-placeholder-text-font-size);
+ line-height: var(--hpe-form-field-medium-placeholder-text-line-height);
+ color: var(--hpe-input-text-placeholder-color);
+}
+
+table {
+ border-spacing: 0px;
+}
+
+/* Table */
+td {
+ padding-inline: var(--hpe-data-cell-padding-x);
+ padding-top: var(--hpe-data-cell-padding-top);
+ padding-bottom: var(--hpe-data-cell-padding-bottom);
+ border-bottom-style: solid;
+ border-bottom-width: var(--hpe-data-cell-border-bottom-width);
+ border-color: var(--hpe-data-cell-enabled-border-color);
+ font-size: var(--hpe-data-cell-font-size);
+ line-height: var(--hpe-data-cell-line-height);
+}
+
+th {
+ padding-inline: var(--hpe-header-cell-padding-x);
+ padding-top: var(--hpe-header-cell-padding-top);
+ padding-bottom: var(--hpe-header-cell-padding-bottom);
+ border-bottom-style: solid;
+ border-bottom-width: var(--hpe-header-cell-border-bottom-width);
+ border-color: var(--hpe-header-cell-enabled-border-color);
+ line-height: var(--hpe-header-cell-line-height);
+ font-size: var(--hpe-header-cell-font-size);
+ font-weight: var(--hpe-header-cell-font-weight);
+}
+
+/* Notification */
+.notification {
+ --notification-backgroundColor: var(--color-background-status-info);
+ background: var(--notification-backgroundColor);
+ padding: var(--hpe-spacing-small);
+ border-radius: var(--hpe-radius-large);
+ gap: var(--hpe-spacing-small);
+}
+.notification.warning {
+ --notification-backgroundColor: var(--hpe-color-background-status-warning);
+}
+.notification.critical {
+ --notification-backgroundColor: var(--hpe-color-background-status-critical);
+}
+.notification.ok {
+ --notification-backgroundColor: var(--hpe-color-background-status-ok);
+}
+
+/* Page, PageContent */
+.page {
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+ max-width: 100%;
+ width: 100%;
+ padding-block: var(--hpe-spacing-large);
+}
+
+.pageContent {
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+ align-self: center;
+ max-width: 1536px;
+ min-width: 384px;
+ width: 100%;
+ padding-inline: var(--hpe-spacing-large);
+}
+
+/* PageHeader */
+.pageHeader {
+ display: flex;
+ flex-direction: row;
+ align-items: flex-start;
+ justify-content: space-between;
+ /* padding: var(--spacing-medium) 0 var(--spacing-large) 0; */
+}
+
+.text-emphasis {
+ color: var(--hpe-color-text-strong);
+ font-weight: 500;
+}
diff --git a/sandbox/native-web/css/fonts.css b/sandbox/native-web/css/fonts.css
new file mode 100644
index 000000000..96ec71a3c
--- /dev/null
+++ b/sandbox/native-web/css/fonts.css
@@ -0,0 +1,36 @@
+/* This is a copy from the grommet-theme-hpe font-face declarations in https://github.com/grommet/grommet-theme-hpe/blob/master/src/js/themes/hpe.js */
+@font-face {
+ font-family: "Metric";
+ src: url("https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Regular.woff2") format('woff2'),
+ url("https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Regular.woff") format('woff');
+ }
+ @font-face {
+ font-family: "Metric";
+ src: url("https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Regular.woff2") format('woff2'),
+ url("https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Regular.woff") format('woff');
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "Metric";
+ src: url("https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Bold.woff2") format('woff2'),
+ url("https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Bold.woff") format('woff');
+ font-weight: 700;
+ }
+ @font-face {
+ font-family: "Metric";
+ src: url("https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Semibold.woff2") format('woff2'),
+ url("https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Semibold.woff") format('woff');
+ font-weight: 600;
+ }
+ @font-face {
+ font-family: "Metric";
+ src: url("https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Medium.woff2") format('woff2'),
+ url("https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Medium.woff") format('woff');
+ font-weight: 500;
+ }
+ @font-face {
+ font-family: "Metric";
+ src: url("https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Light.woff2") format('woff2'),
+ url("https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Light.woff") format('woff');
+ font-weight: 100;
+ }
\ No newline at end of file
diff --git a/sandbox/native-web/css/utilities.css b/sandbox/native-web/css/utilities.css
new file mode 100644
index 000000000..b4ccdbeef
--- /dev/null
+++ b/sandbox/native-web/css/utilities.css
@@ -0,0 +1,171 @@
+/* ------ Utility classes ------- */
+
+/* Align */
+.align-start {
+ align-items: flex-start;
+}
+.align-self-center {
+ align-self: center;
+}
+.align-center {
+ align-items: center;
+}
+.align-end {
+ align-items: flex-end;
+}
+
+/* Background */
+.background-contrast {
+ background: var(--hpe-color-background-contrast);
+}
+.background-brand-weak {
+ background: var(--hpe-color-background-brand-weak);
+}
+.background-status-info {
+ background: var(--hpe-color-background-status-info);
+}
+.background-status-ok {
+ background: var(--hpe-color-background-status-ok);
+}
+.background-status-warning {
+ background: var(--hpe-color-background-status-warning);
+}
+.background-status-critical {
+ background: var(--hpe-color-background-status-critical);
+}
+.background-chart-qualitative-30 {
+ background: var(--hpe-color-chart-qualitative-30);
+}
+.background-chart-qualitative-70 {
+ background: var(--hpe-color-chart-qualitative-70);
+}
+.background-chart-qualitative-50 {
+ background: var(--hpe-color-chart-qualitative-50);
+}
+
+/* Border */
+.border-bottom-xsmall {
+ border-bottom: var(--hpe-border-xsmall) solid var(--hpe-color-border-default);
+}
+.border-top-xsmall {
+ border-top: var(--hpe-border-xsmall) solid var(--hpe-color-border-default);
+}
+.border-xsmall {
+ border: var(--hpe-border-xsmall) solid var(--hpe-color-border-default);
+}
+.border-weak {
+ border-color: var(--hpe-color-border-weak);
+}
+.border-default {
+ border-color: var(--hpe-color-border-default);
+}
+
+/* Direction */
+.row {
+ flex-direction: row;
+}
+
+/* Elevation */
+.elevation-none {
+ box-shadow: none;
+}
+
+/* Gap */
+.gap-xsmall {
+ gap: var(--hpe-spacing-xsmall);
+}
+.gap-small {
+ gap: var(--hpe-spacing-small);
+}
+.gap-medium {
+ gap: var(--hpe-spacing-medium);
+}
+.gap-large {
+ gap: var(--hpe-spacing-large);
+}
+
+/* Justify */
+.justify-between {
+ justify-content: space-between;
+}
+
+/* Padding */
+.pad-xsmall {
+ padding: var(--hpe-spacing-xsmall);
+}
+.pad-small {
+ padding: var(--hpe-spacing-small);
+}
+.pad-large {
+ padding: var(--hpe-spacing-large);
+}
+.pad-block-small {
+ padding-block: var(--hpe-spacing-small);
+}
+.pad-inline-medium {
+ padding-inline: var(--hpe-spacing-medium);
+}
+
+/* Radius */
+.radius-medium {
+ border-radius: var(--hpe-radius-medium);
+}
+.radius-large {
+ border-radius: var(--hpe-radius-large);
+}
+
+.wrap {
+ flex-wrap: wrap;
+}
+
+/* Text */
+.text-xsmall {
+ font-size: 14px;
+ line-height: 16px;
+}
+.text-small {
+ font-size: 16px;
+ line-height: 20px;
+}
+.text-medium {
+ font-size: 18px;
+ line-height: 24px;
+}
+.text-large {
+ font-size: 22px;
+ line-height: 28px;
+}
+.text-xlarge {
+ font-size: 24px;
+ line-height: 30px;
+}
+.text-xxlarge {
+ font-size: 36px;
+ line-height: 40px;
+}
+.text-3xl {
+ font-size: 42px;
+ line-height: 46px;
+}
+.nowrap {
+ white-space: nowrap;
+}
+.truncate {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+.text-text-strong {
+ color: var(--hpe-color-text-strong);
+}
+path.text-text-strong {
+ fill: var(--hpe-color-text-strong);
+}
+
+.width-medium {
+ width: var(--hpe-content-medium);
+}
+
+.width-full {
+ width: 100%;
+}
diff --git a/sandbox/native-web/icons/AppsRounded.js b/sandbox/native-web/icons/AppsRounded.js
new file mode 100644
index 000000000..a356f9b53
--- /dev/null
+++ b/sandbox/native-web/icons/AppsRounded.js
@@ -0,0 +1,15 @@
+/* eslint-disable max-len */
+export const AppsRounded = ({ color = '#000', size = 'medium' }) => ``;
diff --git a/sandbox/native-web/icons/Checkmark.js b/sandbox/native-web/icons/Checkmark.js
new file mode 100644
index 000000000..1e7a24bff
--- /dev/null
+++ b/sandbox/native-web/icons/Checkmark.js
@@ -0,0 +1,14 @@
+/* eslint-disable max-len */
+export const Checkmark = ({ color = '#000', size = 'medium' }) => ``;
diff --git a/sandbox/native-web/icons/HPEGreenLakeBadge.js b/sandbox/native-web/icons/HPEGreenLakeBadge.js
new file mode 100644
index 000000000..2b3a92460
--- /dev/null
+++ b/sandbox/native-web/icons/HPEGreenLakeBadge.js
@@ -0,0 +1,16 @@
+/* eslint-disable max-len */
+
+export const HPEGreenLakeBadge =
+ () => ``;
diff --git a/sandbox/native-web/icons/LinkNext.js b/sandbox/native-web/icons/LinkNext.js
new file mode 100644
index 000000000..0b6a71e84
--- /dev/null
+++ b/sandbox/native-web/icons/LinkNext.js
@@ -0,0 +1,12 @@
+export const LinkNext = ({
+ color = 'primary',
+ size = 'medium',
+}) => ``;
diff --git a/sandbox/native-web/icons/StatusCritical.js b/sandbox/native-web/icons/StatusCritical.js
new file mode 100644
index 000000000..44af959c7
--- /dev/null
+++ b/sandbox/native-web/icons/StatusCritical.js
@@ -0,0 +1,14 @@
+/* eslint-disable max-len */
+export const StatusCritical = ({ color = '#000', size = 'medium' }) => ``;
diff --git a/sandbox/native-web/icons/StatusCriticalSmall.js b/sandbox/native-web/icons/StatusCriticalSmall.js
new file mode 100644
index 000000000..650cc849f
--- /dev/null
+++ b/sandbox/native-web/icons/StatusCriticalSmall.js
@@ -0,0 +1,16 @@
+/* eslint-disable max-len */
+export const StatusCriticalSmall = ({
+ color = '#000',
+ size = 'medium',
+}) => ``;
diff --git a/sandbox/native-web/icons/StatusInfo.js b/sandbox/native-web/icons/StatusInfo.js
new file mode 100644
index 000000000..d7e2fa386
--- /dev/null
+++ b/sandbox/native-web/icons/StatusInfo.js
@@ -0,0 +1,9 @@
+/* eslint-disable max-len */
+export const StatusInfo = ({ color = '#000', size = 'medium' }) => ``;
diff --git a/sandbox/native-web/icons/StatusInfoSmall.js b/sandbox/native-web/icons/StatusInfoSmall.js
new file mode 100644
index 000000000..6f2dd734b
--- /dev/null
+++ b/sandbox/native-web/icons/StatusInfoSmall.js
@@ -0,0 +1,16 @@
+export const StatusInfoSmall = ({ color = '#000', size = 'medium' }) => ``;
diff --git a/sandbox/native-web/icons/StatusOk.js b/sandbox/native-web/icons/StatusOk.js
new file mode 100644
index 000000000..08020287f
--- /dev/null
+++ b/sandbox/native-web/icons/StatusOk.js
@@ -0,0 +1,14 @@
+/* eslint-disable max-len */
+export const StatusOk = ({ color = '#000', size = 'medium' }) => ``;
diff --git a/sandbox/native-web/icons/StatusOkSmall.js b/sandbox/native-web/icons/StatusOkSmall.js
new file mode 100644
index 000000000..63388bc6c
--- /dev/null
+++ b/sandbox/native-web/icons/StatusOkSmall.js
@@ -0,0 +1,8 @@
+export const StatusOkSmall = ({ color = '#000', size = 'medium' }) => ``;
diff --git a/sandbox/native-web/icons/StatusWarning.js b/sandbox/native-web/icons/StatusWarning.js
new file mode 100644
index 000000000..d51043eae
--- /dev/null
+++ b/sandbox/native-web/icons/StatusWarning.js
@@ -0,0 +1,14 @@
+export const StatusWarning = ({ color = '#000', size = 'medium' }) => ``;
diff --git a/sandbox/native-web/icons/StatusWarningSmall.js b/sandbox/native-web/icons/StatusWarningSmall.js
new file mode 100644
index 000000000..676ee0949
--- /dev/null
+++ b/sandbox/native-web/icons/StatusWarningSmall.js
@@ -0,0 +1,14 @@
+export const StatusWarningSmall = ({ color = '#000', size = 'medium' }) => ``;
diff --git a/sandbox/native-web/icons/Sun.js b/sandbox/native-web/icons/Sun.js
new file mode 100644
index 000000000..2814e5793
--- /dev/null
+++ b/sandbox/native-web/icons/Sun.js
@@ -0,0 +1,9 @@
+/* eslint-disable max-len */
+export const Sun = ({ color = '#000', size = 'medium' }) => ``;
diff --git a/sandbox/native-web/icons/User.js b/sandbox/native-web/icons/User.js
new file mode 100644
index 000000000..0b5863eaf
--- /dev/null
+++ b/sandbox/native-web/icons/User.js
@@ -0,0 +1,9 @@
+/* eslint-disable max-len */
+export const User = ({ color = '#000', size = 'medium' }) => ``;
diff --git a/sandbox/native-web/icons/UserAdd.js b/sandbox/native-web/icons/UserAdd.js
new file mode 100644
index 000000000..63d4d61b6
--- /dev/null
+++ b/sandbox/native-web/icons/UserAdd.js
@@ -0,0 +1,9 @@
+/* eslint-disable max-len */
+export const UserAdd = ({ color = '#000', size = 'medium' }) => ``;
diff --git a/sandbox/native-web/icons/index.js b/sandbox/native-web/icons/index.js
new file mode 100644
index 000000000..a0cf72d1c
--- /dev/null
+++ b/sandbox/native-web/icons/index.js
@@ -0,0 +1,12 @@
+export * from './AppsRounded';
+export * from './LinkNext';
+export * from './StatusCritical';
+export * from './StatusCriticalSmall';
+export * from './StatusInfo';
+export * from './StatusInfoSmall';
+export * from './StatusWarning';
+export * from './StatusWarningSmall';
+export * from './Sun';
+export * from './UserAdd';
+export * from './HPEGreenLakeBadge';
+export * from './Checkmark';
diff --git a/sandbox/native-web/index.html b/sandbox/native-web/index.html
new file mode 100644
index 000000000..2ad7b1ab9
--- /dev/null
+++ b/sandbox/native-web/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ Vite App
+
+
+
+
+
+
diff --git a/sandbox/native-web/javascript.svg b/sandbox/native-web/javascript.svg
new file mode 100644
index 000000000..f9abb2b72
--- /dev/null
+++ b/sandbox/native-web/javascript.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/sandbox/native-web/main.js b/sandbox/native-web/main.js
new file mode 100644
index 000000000..530d3e672
--- /dev/null
+++ b/sandbox/native-web/main.js
@@ -0,0 +1,172 @@
+import 'hpe-design-tokens/dist/css/base.css';
+import 'hpe-design-tokens/dist/css/color.light.css';
+import 'hpe-design-tokens/dist/css/color.dark.css';
+import 'hpe-design-tokens/dist/css/components.css';
+import 'hpe-design-tokens/dist/css/global.css';
+import 'hpe-design-tokens/dist/css/dimension.large.css';
+import 'hpe-design-tokens/dist/css/dimension.small.css';
+import './css/fonts.css';
+import './css/components.css';
+import './css/app.css';
+import './css/utilities.css';
+
+import {
+ toggleThemeMode,
+ toggleTheme,
+ toggleDrop,
+ toggleCheckbox,
+} from './utils';
+import // DashboardCard,
+// PageHeader,
+// QuickActions,
+// DeviceSummary,
+// BillingSummary,
+// SustainabilityOverview,
+// RecentServices,
+// Recommended,
+// Learn,
+// UserOverview,
+// Notifications,
+// ExpiringSubscriptions,
+// MonthlyCharges,
+'./components';
+import { HPEGreenLakeBadge, Checkmark } from './icons';
+import { User } from './icons/User';
+
+const Button = ({ label, kind = 'default', icon }) => `
+ `;
+
+const FormField = ({ label, help, placeholder, input }) => {
+ let content = ``;
+
+ if (input)
+ content = `${input}
`;
+
+ return `
+
+ ${label ? `` : ''}
+ ${help ? `${help}` : ''}
+ ${content}
+
+`;
+};
+
+const CheckBox = ({ label, id }) => `
+
+
+
+
+
+`;
+
+document.querySelector('#app').innerHTML = `
+
+
+
+
+
Component testing
+
+ ${Button({ label: 'Default' })}
+ ${Button({
+ label: 'Secondary hover border color',
+ kind: 'secondary',
+ })}
+ ${Button({
+ label: 'Secondary box-shadow approach',
+ kind: 'secondary box-shadow',
+ })}
+ ${Button({ label: 'Primary', kind: 'primary' })}
+ ${Button({
+ label: 'Primary with icon',
+ kind: 'primary',
+ icon: User({ color: 'stroke-icon-onPrimary', size: 'medium' }),
+ })}
+ ${Button({ label: 'Toolbar', kind: 'toolbar' })}
+
+ ${FormField({
+ label: 'My label',
+ help: 'This is some help text.',
+ placeholder: 'Placeholder',
+ })}
+ ${FormField({
+ placeholder: 'Placeholder',
+ })}
+ ${FormField({
+ label: 'FormField label',
+ input: CheckBox({
+ label: 'Checkbox in FormField',
+ id: 'formfield-checkbox',
+ }),
+ })}
+ ${CheckBox({ label: 'Standalone checkbox', id: 'standalone-checkbox' })}
+
+
+ Name |
+ Country |
+
+
+ Taylor |
+ USA |
+
+
+ Oliver |
+ Ireland |
+
+
+ Joelle |
+ USA |
+
+
+
+
+
+`;
+
+toggleThemeMode(document.querySelector('#lightMode'));
+toggleThemeMode(document.querySelector('#darkMode'));
+toggleTheme(document.querySelector('#currentTheme'));
+toggleTheme(document.querySelector('#warmTheme'));
+toggleDrop(
+ document.querySelector('#userDrop'),
+ document.querySelector('#userDropContent'),
+);
+
+toggleCheckbox(document.querySelector('#formfield-checkbox'));
+toggleCheckbox(document.querySelector('#standalone-checkbox'));
diff --git a/sandbox/native-web/mockData/mockData.json b/sandbox/native-web/mockData/mockData.json
new file mode 100644
index 000000000..3bbc1f608
--- /dev/null
+++ b/sandbox/native-web/mockData/mockData.json
@@ -0,0 +1,127 @@
+{
+ "services": [
+ {
+ "name": "HPE GreenLake Flex Solutions",
+ "category": "Workloads",
+ "description": "Manage your cloud services and view usage, cost, and more."
+ },
+ {
+ "name": "Sustainability Insight Center",
+ "category": "Common",
+ "description": "Monitor your estate carbon footprint and energy consumption.",
+ "href": "/sustainability"
+ },
+ {
+ "name": "Aruba NetInsight",
+ "category": "Networking",
+ "description": "Manage campus, branch, SD-WAN & data center networks with AI, automation & security.",
+ "subscription": {
+ "name": "Aruba NetInsight 90 Day Eval Subscription",
+ "expiration": "2024-01-31T10:00:00.0000Z"
+ }
+ },
+ {
+ "name": "Compute Ops Management",
+ "category": "Compute",
+ "description": "Modern compute management that simplifies provisioning and automates key lifecycle tasks."
+ },
+ {
+ "name": "Backup and Recovery",
+ "category": "Storage",
+ "description": "Data protection as a service that’s effortless, efficient, and secure.",
+ "subscription": {
+ "name": "Backup and Recovery 90 Day Eval Subscription",
+ "expiration": "2024-04-31T10:00:00.0000Z"
+ }
+ },
+ {
+ "name": "Block Storage",
+ "category": "Storage",
+ "description": "Simple self-service storage for any workload with AI-driven cloud management.",
+ "subscription": {
+ "name": "Block Storage 90 Day Eval Subscription",
+ "expiration": "2024-05-15T10:00:00.0000Z"
+ }
+ },
+ {
+ "name": "ML Ops",
+ "category": "Workloads",
+ "description": "Bring DevOps features to the machine learning lifecycle with containerized clusters for testing and development environments."
+ },
+ {
+ "name": "Private Cloud",
+ "category": "Private Cloud",
+ "description": "Cloud solutions that scale to any workload supporting vms, storage, containers and bare metal in your private environment."
+ },
+ {
+ "name": "Data Ops Management",
+ "category": "Storage",
+ "description": "Cloud solutions that scale to any workload supporting vms, storage, containers and bare metal in your private environment."
+ },
+ {
+ "name": "Containers",
+ "category": "Workloads",
+ "description": "Self-service management of containers across edge, data center and hybrid cloud."
+ },
+ {
+ "name": "High Performace Computing",
+ "category": "Workloads",
+ "description": "Solve big problems with systems optimized for high performance workloads and AI."
+ },
+ {
+ "title": "Machine Learning",
+ "subtitle": "Bring DevOps features to the machine learning lifecycle.",
+ "recommended": true
+ },
+ {
+ "title": "Backup & Recovery",
+ "subtitle": "Data protection as a service that's secure & reliable.",
+ "recommended": true
+ },
+ {
+ "title": "Data Fabric",
+ "subtitle": "Accelerate configuring, monitoring, and managing storage fabrics.",
+ "recommended": true
+ }
+ ],
+ "learn": [
+ {
+ "title": "Explore GreenLake",
+ "subtitle": "Learn more about what the GreenLake platform has to offer."
+ },
+ {
+ "title": "HPE GreenLake Developer Portal",
+ "subtitle": "Integrate apps and services."
+ },
+ {
+ "title": "Test Drive Services",
+ "subtitle": "Take a hands-on, guided tour of HPE GreenLake cloud services in a live production environment."
+ }
+ ],
+ "notifications": [
+ {
+ "service": "Block storage",
+ "message": "We are experiencing an issue with HPE Data Services engine",
+ "createdAt": "2024-01-12T20:05:00.000Z",
+ "status": "warning"
+ },
+ {
+ "service": "HPE GreenLake Platform",
+ "message": "Scheduled maintenance for HPE GreenLake completed.",
+ "createdAt": "2024-01-12T18:34:00.000Z",
+ "status": "info"
+ },
+ {
+ "service": "Networking",
+ "message": "Critical fan faults and system shutdown on CX 6100 Switch",
+ "createdAt": "2024-01-12T14:13:00.000Z",
+ "status": "critical"
+ },
+ {
+ "service": "Compute",
+ "message": "HPE Apollo 2000 Gen 10 Plus - defect",
+ "createdAt": "2024-01-12T12:23:00.000Z",
+ "status": "warning"
+ }
+ ]
+}
diff --git a/sandbox/native-web/package.json b/sandbox/native-web/package.json
new file mode 100644
index 000000000..9098ecffe
--- /dev/null
+++ b/sandbox/native-web/package.json
@@ -0,0 +1,17 @@
+{
+ "name": "native-web",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "preview": "vite preview"
+ },
+ "devDependencies": {
+ "vite": "^5.1.4"
+ },
+ "dependencies": {
+ "design-tokens": "*"
+ }
+}
diff --git a/sandbox/native-web/public/_redirects b/sandbox/native-web/public/_redirects
new file mode 100644
index 000000000..7797f7c6a
--- /dev/null
+++ b/sandbox/native-web/public/_redirects
@@ -0,0 +1 @@
+/* /index.html 200
diff --git a/sandbox/native-web/utils.js b/sandbox/native-web/utils.js
new file mode 100644
index 000000000..adccbecdf
--- /dev/null
+++ b/sandbox/native-web/utils.js
@@ -0,0 +1,75 @@
+export const toggleThemeMode = element => {
+ const handleChange = () => {
+ if (element.getAttribute('id') === 'lightMode') {
+ element.classList.add('active');
+ document.querySelector('#darkMode').classList.remove('active');
+ document.documentElement.setAttribute('data-mode', '');
+ } else if (element.getAttribute('id') === 'darkMode') {
+ element.classList.add('active');
+ document.querySelector('#lightMode').classList.remove('active');
+ document.documentElement.setAttribute('data-mode', 'dark');
+ }
+ };
+
+ element?.addEventListener('click', () => handleChange());
+};
+
+export const toggleTheme = element => {
+ const handleChange = () => {
+ if (element.getAttribute('id') === 'currentTheme') {
+ element.classList.add('active');
+ document.querySelector('#warmTheme').classList.remove('active');
+ document.documentElement.setAttribute('data-theme', '');
+ } else if (element.getAttribute('id') === 'warmTheme') {
+ element.classList.add('active');
+ document.querySelector('#currentTheme').classList.remove('active');
+ document.documentElement.setAttribute('data-theme', 'warm');
+ }
+ };
+
+ element?.addEventListener('click', () => handleChange());
+};
+
+export const toggleDrop = (dropButton, dropContent) => {
+ const handleChange = () => {
+ if (dropContent.getAttribute('class').includes('open')) {
+ dropContent.classList.remove('open');
+ } else {
+ dropContent.classList.add('open');
+ }
+ };
+
+ const handleDocumentClick = e => {
+ if (
+ e.target !== dropContent &&
+ !dropContent.contains(e.target) &&
+ dropContent.getAttribute('class').includes('open') &&
+ e.target !== dropButton &&
+ !dropButton.contains(e.target)
+ ) {
+ dropContent.classList.remove('open');
+ } else if (e.target === dropButton || dropButton.contains(e.target)) {
+ handleChange();
+ }
+ };
+
+ document?.addEventListener('click', e => handleDocumentClick(e));
+};
+
+export const toggleCheckbox = checkbox => {
+ const handleChange = () => {
+ if (checkbox.getAttribute('aria-checked') === 'false') {
+ checkbox.setAttribute('aria-checked', 'true');
+ } else {
+ checkbox.setAttribute('aria-checked', 'false');
+ }
+ };
+
+ const handleClick = e => {
+ if (e.target === checkbox || checkbox.contains(e.target)) {
+ handleChange();
+ }
+ };
+
+ document?.addEventListener('click', e => handleClick(e));
+};
diff --git a/sandbox/tailwind-app/.eslintrc.cjs b/sandbox/tailwind-app/.eslintrc.cjs
new file mode 100644
index 000000000..3e212e1d4
--- /dev/null
+++ b/sandbox/tailwind-app/.eslintrc.cjs
@@ -0,0 +1,21 @@
+module.exports = {
+ root: true,
+ env: { browser: true, es2020: true },
+ extends: [
+ 'eslint:recommended',
+ 'plugin:react/recommended',
+ 'plugin:react/jsx-runtime',
+ 'plugin:react-hooks/recommended',
+ ],
+ ignorePatterns: ['dist', '.eslintrc.cjs'],
+ parserOptions: { ecmaVersion: 'latest', sourceType: 'module' },
+ settings: { react: { version: '18.2' } },
+ plugins: ['react-refresh'],
+ rules: {
+ 'react/jsx-no-target-blank': 'off',
+ 'react-refresh/only-export-components': [
+ 'warn',
+ { allowConstantExport: true },
+ ],
+ },
+}
diff --git a/sandbox/tailwind-app/.gitignore b/sandbox/tailwind-app/.gitignore
new file mode 100644
index 000000000..a547bf36d
--- /dev/null
+++ b/sandbox/tailwind-app/.gitignore
@@ -0,0 +1,24 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+node_modules
+dist
+dist-ssr
+*.local
+
+# Editor directories and files
+.vscode/*
+!.vscode/extensions.json
+.idea
+.DS_Store
+*.suo
+*.ntvs*
+*.njsproj
+*.sln
+*.sw?
diff --git a/sandbox/tailwind-app/README.md b/sandbox/tailwind-app/README.md
new file mode 100644
index 000000000..f6c92d882
--- /dev/null
+++ b/sandbox/tailwind-app/README.md
@@ -0,0 +1 @@
+This is a testing application for hpe-design-tokens with Tailwind.
diff --git a/sandbox/tailwind-app/index.html b/sandbox/tailwind-app/index.html
new file mode 100644
index 000000000..79c470191
--- /dev/null
+++ b/sandbox/tailwind-app/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+ Vite + React
+
+
+
+
+
+
diff --git a/sandbox/tailwind-app/package.json b/sandbox/tailwind-app/package.json
new file mode 100644
index 000000000..b72817379
--- /dev/null
+++ b/sandbox/tailwind-app/package.json
@@ -0,0 +1,32 @@
+{
+ "name": "tailwind-app",
+ "private": true,
+ "version": "0.0.0",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vite build",
+ "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0",
+ "preview": "vite preview"
+ },
+ "dependencies": {
+ "@radix-ui/react-icons": "^1.3.0",
+ "@radix-ui/react-select": "^2.1.1",
+ "@radix-ui/react-switch": "^1.1.0",
+ "react": "^18.2.0",
+ "react-dom": "^18.2.0"
+ },
+ "devDependencies": {
+ "@types/react": "^18.2.66",
+ "@types/react-dom": "^18.2.22",
+ "@vitejs/plugin-react": "^4.2.1",
+ "autoprefixer": "^10.4.19",
+ "eslint": "^8.57.0",
+ "eslint-plugin-react": "^7.34.1",
+ "eslint-plugin-react-hooks": "^4.6.0",
+ "eslint-plugin-react-refresh": "^0.4.6",
+ "postcss": "^8.4.38",
+ "tailwindcss": "^3.4.3",
+ "vite": "^5.2.0"
+ }
+}
diff --git a/sandbox/tailwind-app/postcss.config.js b/sandbox/tailwind-app/postcss.config.js
new file mode 100644
index 000000000..2e7af2b7f
--- /dev/null
+++ b/sandbox/tailwind-app/postcss.config.js
@@ -0,0 +1,6 @@
+export default {
+ plugins: {
+ tailwindcss: {},
+ autoprefixer: {},
+ },
+}
diff --git a/sandbox/tailwind-app/public/vite.svg b/sandbox/tailwind-app/public/vite.svg
new file mode 100644
index 000000000..e7b8dfb1b
--- /dev/null
+++ b/sandbox/tailwind-app/public/vite.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/sandbox/tailwind-app/src/App.css b/sandbox/tailwind-app/src/App.css
new file mode 100644
index 000000000..f8c2b5a18
--- /dev/null
+++ b/sandbox/tailwind-app/src/App.css
@@ -0,0 +1,2 @@
+@media (prefers-reduced-motion: no-preference) {
+}
diff --git a/sandbox/tailwind-app/src/App.jsx b/sandbox/tailwind-app/src/App.jsx
new file mode 100644
index 000000000..95ce2b1ed
--- /dev/null
+++ b/sandbox/tailwind-app/src/App.jsx
@@ -0,0 +1,114 @@
+/* eslint-disable react/prop-types */
+import './App.css';
+import React from 'react';
+import * as Switch from '@radix-ui/react-switch';
+import * as Select from '@radix-ui/react-select';
+import { Button } from './components/Button';
+import {
+ // CheckIcon,
+ ChevronDownIcon,
+ ChevronUpIcon,
+} from '@radix-ui/react-icons';
+
+const Text = ({ size, children }) => (
+
+ {children}
+
+);
+
+const SelectItem = React.forwardRef(({ children, ...props }, forwardedRef) => {
+ return (
+
+ {children}
+
+ );
+});
+
+SelectItem.displayName = 'SelectItem';
+
+function App() {
+ return (
+ // TO DO right now the namespace of "background" and "text" is repeated
+ // is that okay?
+
+
+
Test page
+
+
+
+
+
+
+
Tailwind classes on native HTML
+
+ Banjo pour-over kinfolk mukbang taiyaki semiotics. Craft beer neutral
+ milk hotel tonx chicharrones small batch taxidermy hexagon church-key
+ hot chicken salvia solarpunk cred godard. Franzen shoreditch
+ kickstarter crucifix. Polaroid pop-up sus, street art narwhal franzen
+ bruh air plant authentic lyft.
+
+ {[
+ 'xsmall',
+ 'small',
+ 'medium',
+ 'large',
+ 'xxlarge',
+ '3xl',
+ '4xl',
+ '5xl',
+ ].map(size => (
+
+ {size}
+
+ ))}
+
+
+
RadixUI with CSS variables
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Apple
+ Banana
+ Blueberry
+ Grapes
+ Pineapple
+
+
+
+
+
+
+
+
+
+ );
+}
+
+export default App;
diff --git a/sandbox/tailwind-app/src/assets/react.svg b/sandbox/tailwind-app/src/assets/react.svg
new file mode 100644
index 000000000..6c87de9bb
--- /dev/null
+++ b/sandbox/tailwind-app/src/assets/react.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/sandbox/tailwind-app/src/components/Button/Button.jsx b/sandbox/tailwind-app/src/components/Button/Button.jsx
new file mode 100644
index 000000000..f419686b3
--- /dev/null
+++ b/sandbox/tailwind-app/src/components/Button/Button.jsx
@@ -0,0 +1,8 @@
+// eslint-disable-next-line react/prop-types
+export const Button = ({ label, kind = 'default', ...rest }) => {
+ return (
+
+ );
+};
diff --git a/sandbox/tailwind-app/src/components/Button/index.js b/sandbox/tailwind-app/src/components/Button/index.js
new file mode 100644
index 000000000..fe9c53c51
--- /dev/null
+++ b/sandbox/tailwind-app/src/components/Button/index.js
@@ -0,0 +1 @@
+export { Button } from './Button';
diff --git a/sandbox/tailwind-app/src/fonts.css b/sandbox/tailwind-app/src/fonts.css
new file mode 100644
index 000000000..96139b632
--- /dev/null
+++ b/sandbox/tailwind-app/src/fonts.css
@@ -0,0 +1,48 @@
+/* This is a copy from the grommet-theme-hpe font-face declarations in https://github.com/grommet/grommet-theme-hpe/blob/master/src/js/themes/hpe.js */
+@font-face {
+ font-family: 'Metric';
+ src: url('https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Regular.woff2')
+ format('woff2'),
+ url('https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Regular.woff')
+ format('woff');
+}
+@font-face {
+ font-family: 'Metric';
+ src: url('https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Regular.woff2')
+ format('woff2'),
+ url('https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Regular.woff')
+ format('woff');
+ font-weight: 400;
+}
+@font-face {
+ font-family: 'Metric';
+ src: url('https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Bold.woff2')
+ format('woff2'),
+ url('https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Bold.woff')
+ format('woff');
+ font-weight: 700;
+}
+@font-face {
+ font-family: 'Metric';
+ src: url('https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Semibold.woff2')
+ format('woff2'),
+ url('https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Semibold.woff')
+ format('woff');
+ font-weight: 600;
+}
+@font-face {
+ font-family: 'Metric';
+ src: url('https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Medium.woff2')
+ format('woff2'),
+ url('https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Medium.woff')
+ format('woff');
+ font-weight: 500;
+}
+@font-face {
+ font-family: 'Metric';
+ src: url('https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Light.woff2')
+ format('woff2'),
+ url('https://www.hpe.com/h41225/hfws-static/fonts/metric-hpe-web/MetricHPE-Web-Light.woff')
+ format('woff');
+ font-weight: 100;
+}
diff --git a/sandbox/tailwind-app/src/index.css b/sandbox/tailwind-app/src/index.css
new file mode 100644
index 000000000..a5161ac55
--- /dev/null
+++ b/sandbox/tailwind-app/src/index.css
@@ -0,0 +1,286 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+:root {
+ color-scheme: light dark;
+
+ font-synthesis: none;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+#root {
+ width: 100%;
+}
+:focus-visible {
+ outline: 2px auto var(--hpe-focus-ring-color);
+}
+
+a {
+ /* font-weight: 500;
+ color: #646cff;
+ text-decoration: inherit; */
+}
+a:hover {
+ /* color: #535bf2; */
+}
+
+body {
+ margin: 0;
+ display: flex;
+ min-width: 320px;
+ min-height: 100vh;
+}
+
+h1 {
+ font-size: var(--hpe-heading-medium-h1-font-size);
+ line-height: var(--hpe-heading-medium-h1-line-height);
+ font-weight: var(--hpe-base-font-weight-medium);
+}
+
+h2 {
+ font-size: var(--hpe-heading-medium-h2-font-size);
+ line-height: var(--hpe-heading-medium-h2-line-height);
+ font-weight: var(--hpe-base-font-weight-medium);
+}
+
+p {
+ font-size: var(--hpe-text-medium-font-size);
+ line-height: var(--hpe-text-medium-line-height);
+ max-width: 25em;
+}
+
+button {
+ /* visual tokens */
+ --button-backgroundColor: var(--hpe-button-default-enabled-background);
+ --button-borderColor: var(--hpe-button-default-enabled-border-color);
+ --button-label-color: var(--hpe-button-default-enabled-text-color);
+ --button-label-fontWeight: 600; /* where does font-weight go? */
+
+ /* dimension tokens */
+ --button-borderRadius: var(--hpe-button-medium-default-border-radius);
+ --button-borderWidth: var(--hpe-button-medium-default-border-width);
+ --button-paddingVertical: var(--hpe-button-medium-default-padding-y);
+ --button-paddingHorizontal: var(--hpe-button-medium-default-padding-x);
+ --button-fontSize: var(--hpe-button-medium-default-font-size);
+ --button-lineHeight: var(--hpe-button-medium-default-line-height);
+ --button-gapX: var(--hpe-button-medium-default-gap-x);
+
+ display: flex;
+ align-items: center;
+ border-radius: var(--button-borderRadius);
+ background-color: var(--button-backgroundColor);
+ border: var(--button-borderWidth) solid var(--button-borderColor);
+ color: var(--button-label-color);
+ gap: var(--button-gapX);
+ padding: var(--button-paddingVertical) var(--button-paddingHorizontal);
+ font-size: var(--button-fontSize);
+ line-height: var(--button-lineHeight);
+ font-weight: var(--button-label-fontWeight);
+ font-family: inherit;
+ cursor: pointer;
+}
+
+button:hover {
+ --button-backgroundColor: var(--hpe-button-default-hover-background);
+ --button-borderColor: var(--hpe-button-default-hover-border-color);
+ --button-label-color: var(--hpe-button-default-hover-text-color);
+}
+
+button.hpe-button-primary {
+ --button-backgroundColor: var(--hpe-button-primary-enabled-background);
+ --button-borderColor: var(--hpe-button-primary-enabled-border-color);
+ --button-label-color: var(--hpe-button-primary-enabled-text-color);
+
+ --button-borderRadius: var(--hpe-button-medium-primary-border-radius);
+ --button-borderWidth: var(--hpe-button-medium-primary-border-width);
+ --button-paddingVertical: var(--hpe-button-medium-primary-padding-y);
+ --button-paddingHorizontal: var(--hpe-button-medium-primary-padding-x);
+ --button-fontSize: var(--hpe-button-medium-primary-font-size);
+ --button-lineHeight: var(--hpe-button-medium-primary-line-height);
+}
+
+button.hpe-button-primary:hover {
+ --button-backgroundColor: var(--hpe-button-primary-hover-background);
+ --button-borderColor: var(--hpe-button-primary-hover-border-color);
+ --button-label-color: var(--hpe-button-primary-hover-text-color);
+}
+
+button.hpe-button-secondary {
+ --button-backgroundColor: var(--hpe-button-secondary-enabled-background);
+ --button-borderColor: var(--hpe-button-secondary-enabled-border-color);
+ --button-label-color: var(--hpe-button-secondary-enabled-text-color);
+
+ --button-borderRadius: var(--hpe-button-medium-secondary-border-radius);
+ --button-borderWidth: var(--hpe-button-medium-secondary-border-width);
+ --button-paddingVertical: var(--hpe-button-medium-secondary-padding-y);
+ --button-paddingHorizontal: var(--hpe-button-medium-secondary-padding-x);
+ --button-fontSize: var(--hpe-button-medium-secondary-font-size);
+ --button-lineHeight: var(--hpe-button-medium-secondary-line-height);
+}
+
+button.hpe-button-secondary:hover {
+ --button-backgroundColor: var(--hpe-button-secondary-hover-background);
+ --button-borderColor: var(--hpe-button-secondary-hover-border-color);
+ --button-label-color: var(--hpe-button-secondary-hover-text-color);
+}
+
+.SwitchRoot {
+ --switch-background: var(--hpe-test-switch-enabled-background);
+ --switch-borderWidth: var(--hpe-test-switch-medium-border-width);
+ --switch-borderColor: var(--hpe-test-switch-enabled-border-color);
+ --switch-width: var(--hpe-test-switch-medium-width);
+ --switch-height: var(--hpe-test-switch-medium-height);
+ --switch-borderRadius: var(--hpe-test-switch-medium-border-radius);
+ width: var(--switch-width);
+ height: var(--switch-height);
+ background-color: var(--switch-background);
+ border-radius: var(--switch-borderRadius);
+ position: relative;
+ border: var(--switch-borderWidth) solid var(--switch-borderColor);
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+.SwitchRoot[data-state='checked'] {
+ --switch-background: var(--hpe-test-switch-selected-background);
+}
+
+.SwitchThumb {
+ --swtich-thumb-borderWidth: var(--hpe-test-switch-medium-border-width);
+ --swtich-thumb-borderRadius: var(--hpe-test-switch-medium-border-radius);
+ --switch-thumb-borderColor: var(--hpe-test-switch-enabled-knob-border-color);
+ display: flex;
+ flex-shrink: 0;
+ width: 24px;
+ height: 24px;
+ background-color: white;
+ border: var(--swtich-thumb-borderWidth) solid var(--switch-thumb-borderColor);
+ border-radius: var(--swtich-thumb-borderRadius);
+ /* box-shadow: 0 2px 2px var(--hpe-color-border-strong); */
+ transition: transform 100ms;
+ transform: translateX(-20px);
+ will-change: transform;
+}
+.SwitchThumb[data-state='checked'] {
+ transform: translateX(6px);
+}
+
+.Label {
+ color: var(--hpe-color-text-strong);
+ font-size: var(--hpe-text-medium-font-size);
+ line-height: var(--hpe-text-medium-line-height);
+}
+
+.SelectTrigger {
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+ border-radius: 4px;
+ padding: 0 15px;
+ color: var(--hpe-test-input-text-value-text-color);
+ font-size: var(--hpe-test-input-field-container-medium-value-text-font-size);
+ line-height: var(
+ --hpe-test-input-field-container-medium-value-text-line-height
+ );
+ font-weight: var(
+ --hpe-test-input-field-container-medium-value-text-font-weight
+ );
+ min-height: var(--hpe-test-input-field-container-medium-min-height);
+ gap: var(--hpe-test-input-field-container-medium-gap-x);
+}
+.SelectTrigger:hover {
+ /* background-color: var(--mauve-3); */
+}
+.SelectTrigger:focus {
+}
+.SelectTrigger[data-placeholder] {
+ color: var(--hpe-test-input-text-value-text-color);
+}
+
+.SelectIcon {
+ color: Var(--violet-11);
+}
+
+.SelectContent {
+ overflow: hidden;
+ background-color: var(--hpe-test-drop-background);
+ border-radius: var(--hpe-test-drop-border-radius);
+ box-shadow: 0px 10px 38px -10px rgba(22, 23, 24, 0.35),
+ 0px 10px 20px -15px rgba(22, 23, 24, 0.2);
+}
+
+.SelectViewport {
+ padding: 0;
+}
+
+.SelectItem {
+ --select-option-background: var(--hpe-test-select-option-enabled-background);
+ font-size: var(--hpe-text-medium-font-size);
+ line-height: var(--hpe-text-medium-line-height);
+ font-weight: var(--hpe-base-font-weight-medium);
+ border-radius: 3px;
+ display: flex;
+ align-items: center;
+ background: var(--select-option-background);
+ border: var(--hpe-test-select-option-medium-border-width) solid
+ var(--hpe-test-select-option-enabled-border-color);
+ color: var(--hpe-test-select-option-enabled-text-color);
+ min-height: var(--hpe-test-select-option-medium-min-height);
+ padding-block: var(--hpe-test-select-option-medium-padding-y);
+ padding-inline: var(--hpe-test-select-option-medium-padding-x);
+ position: relative;
+ user-select: none;
+}
+
+.SelectItem[data-disabled] {
+ --select-option-background: var(--hpe-test-select-option-disabled-background);
+ color: var(--mauve-8);
+ pointer-events: none;
+}
+.SelectItem[data-highlighted] {
+ --select-option-background: var(--hpe-test-select-option-hover-background);
+ cursor: pointer;
+}
+
+.SelectLabel {
+ padding: 0 25px;
+ font-size: 12px;
+ line-height: 25px;
+ color: var(--mauve-11);
+}
+
+.SelectSeparator {
+ height: 1px;
+ background-color: var(--violet-6);
+ margin: 5px;
+}
+
+.SelectItemIndicator {
+ position: absolute;
+ left: 0;
+ width: 25px;
+ display: inline-flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.SelectScrollButton {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ height: 25px;
+ background-color: white;
+ color: var(--violet-11);
+ cursor: default;
+}
+
+@media (prefers-color-scheme: light) {
+ :root {
+ color: #213547;
+ background-color: #ffffff;
+ }
+ a:hover {
+ color: #747bff;
+ }
+}
diff --git a/sandbox/tailwind-app/src/main.jsx b/sandbox/tailwind-app/src/main.jsx
new file mode 100644
index 000000000..29a9e0861
--- /dev/null
+++ b/sandbox/tailwind-app/src/main.jsx
@@ -0,0 +1,17 @@
+import React from 'react';
+import ReactDOM from 'react-dom/client';
+import App from './App.jsx';
+import './index.css';
+import './fonts.css';
+import 'hpe-design-tokens/dist/css/base.css';
+import 'hpe-design-tokens/dist/css/color.light.css';
+import 'hpe-design-tokens/dist/css/color.dark.css';
+import 'hpe-design-tokens/dist/css/dimension.large.css';
+import 'hpe-design-tokens/dist/css/dimension.small.css';
+import 'hpe-design-tokens/dist/css/components.css';
+
+ReactDOM.createRoot(document.getElementById('root')).render(
+
+
+ ,
+);
diff --git a/sandbox/tailwind-app/tailwind.config-full.js b/sandbox/tailwind-app/tailwind.config-full.js
new file mode 100644
index 000000000..9b65e4e98
--- /dev/null
+++ b/sandbox/tailwind-app/tailwind.config-full.js
@@ -0,0 +1,1064 @@
+/** @type {import('tailwindcss').Config} */
+export default {
+ content: [],
+ presets: [],
+ darkMode: 'media', // or 'class'
+ theme: {
+ accentColor: ({ theme }) => ({
+ ...theme('colors'),
+ auto: 'auto',
+ }),
+ animation: {
+ none: 'none',
+ spin: 'spin 1s linear infinite',
+ ping: 'ping 1s cubic-bezier(0, 0, 0.2, 1) infinite',
+ pulse: 'pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite',
+ bounce: 'bounce 1s infinite',
+ },
+ aria: {
+ busy: 'busy="true"',
+ checked: 'checked="true"',
+ disabled: 'disabled="true"',
+ expanded: 'expanded="true"',
+ hidden: 'hidden="true"',
+ pressed: 'pressed="true"',
+ readonly: 'readonly="true"',
+ required: 'required="true"',
+ selected: 'selected="true"',
+ },
+ aspectRatio: {
+ auto: 'auto',
+ square: '1 / 1',
+ video: '16 / 9',
+ },
+ backdropBlur: ({ theme }) => theme('blur'),
+ backdropBrightness: ({ theme }) => theme('brightness'),
+ backdropContrast: ({ theme }) => theme('contrast'),
+ backdropGrayscale: ({ theme }) => theme('grayscale'),
+ backdropHueRotate: ({ theme }) => theme('hueRotate'),
+ backdropInvert: ({ theme }) => theme('invert'),
+ backdropOpacity: ({ theme }) => theme('opacity'),
+ backdropSaturate: ({ theme }) => theme('saturate'),
+ backdropSepia: ({ theme }) => theme('sepia'),
+ backgroundColor: ({ theme }) => theme('colors'),
+ backgroundImage: {
+ none: 'none',
+ 'gradient-to-t': 'linear-gradient(to top, var(--tw-gradient-stops))',
+ 'gradient-to-tr': 'linear-gradient(to top right, var(--tw-gradient-stops))',
+ 'gradient-to-r': 'linear-gradient(to right, var(--tw-gradient-stops))',
+ 'gradient-to-br': 'linear-gradient(to bottom right, var(--tw-gradient-stops))',
+ 'gradient-to-b': 'linear-gradient(to bottom, var(--tw-gradient-stops))',
+ 'gradient-to-bl': 'linear-gradient(to bottom left, var(--tw-gradient-stops))',
+ 'gradient-to-l': 'linear-gradient(to left, var(--tw-gradient-stops))',
+ 'gradient-to-tl': 'linear-gradient(to top left, var(--tw-gradient-stops))',
+ },
+ backgroundOpacity: ({ theme }) => theme('opacity'),
+ backgroundPosition: {
+ bottom: 'bottom',
+ center: 'center',
+ left: 'left',
+ 'left-bottom': 'left bottom',
+ 'left-top': 'left top',
+ right: 'right',
+ 'right-bottom': 'right bottom',
+ 'right-top': 'right top',
+ top: 'top',
+ },
+ backgroundSize: {
+ auto: 'auto',
+ cover: 'cover',
+ contain: 'contain',
+ },
+ blur: {
+ 0: '0',
+ none: '0',
+ sm: '4px',
+ DEFAULT: '8px',
+ md: '12px',
+ lg: '16px',
+ xl: '24px',
+ '2xl': '40px',
+ '3xl': '64px',
+ },
+ borderColor: ({ theme }) => ({
+ ...theme('colors'),
+ DEFAULT: theme('colors.gray.200', 'currentColor'),
+ }),
+ borderOpacity: ({ theme }) => theme('opacity'),
+ borderRadius: {
+ none: '0px',
+ sm: '0.125rem',
+ DEFAULT: '0.25rem',
+ md: '0.375rem',
+ lg: '0.5rem',
+ xl: '0.75rem',
+ '2xl': '1rem',
+ '3xl': '1.5rem',
+ full: '9999px',
+ },
+ borderSpacing: ({ theme }) => ({
+ ...theme('spacing'),
+ }),
+ borderWidth: {
+ DEFAULT: '1px',
+ 0: '0px',
+ 2: '2px',
+ 4: '4px',
+ 8: '8px',
+ },
+ boxShadow: {
+ sm: '0 1px 2px 0 rgb(0 0 0 / 0.05)',
+ DEFAULT: '0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1)',
+ md: '0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)',
+ lg: '0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)',
+ xl: '0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)',
+ '2xl': '0 25px 50px -12px rgb(0 0 0 / 0.25)',
+ inner: 'inset 0 2px 4px 0 rgb(0 0 0 / 0.05)',
+ none: 'none',
+ },
+ boxShadowColor: ({ theme }) => theme('colors'),
+ brightness: {
+ 0: '0',
+ 50: '.5',
+ 75: '.75',
+ 90: '.9',
+ 95: '.95',
+ 100: '1',
+ 105: '1.05',
+ 110: '1.1',
+ 125: '1.25',
+ 150: '1.5',
+ 200: '2',
+ },
+ caretColor: ({ theme }) => theme('colors'),
+ colors: ({ colors }) => ({
+ inherit: colors.inherit,
+ current: colors.current,
+ transparent: colors.transparent,
+ black: colors.black,
+ white: colors.white,
+ slate: colors.slate,
+ gray: colors.gray,
+ zinc: colors.zinc,
+ neutral: colors.neutral,
+ stone: colors.stone,
+ red: colors.red,
+ orange: colors.orange,
+ amber: colors.amber,
+ yellow: colors.yellow,
+ lime: colors.lime,
+ green: colors.green,
+ emerald: colors.emerald,
+ teal: colors.teal,
+ cyan: colors.cyan,
+ sky: colors.sky,
+ blue: colors.blue,
+ indigo: colors.indigo,
+ violet: colors.violet,
+ purple: colors.purple,
+ fuchsia: colors.fuchsia,
+ pink: colors.pink,
+ rose: colors.rose,
+ }),
+ columns: {
+ auto: 'auto',
+ 1: '1',
+ 2: '2',
+ 3: '3',
+ 4: '4',
+ 5: '5',
+ 6: '6',
+ 7: '7',
+ 8: '8',
+ 9: '9',
+ 10: '10',
+ 11: '11',
+ 12: '12',
+ '3xs': '16rem',
+ '2xs': '18rem',
+ xs: '20rem',
+ sm: '24rem',
+ md: '28rem',
+ lg: '32rem',
+ xl: '36rem',
+ '2xl': '42rem',
+ '3xl': '48rem',
+ '4xl': '56rem',
+ '5xl': '64rem',
+ '6xl': '72rem',
+ '7xl': '80rem',
+ },
+ container: {},
+ content: {
+ none: 'none',
+ },
+ contrast: {
+ 0: '0',
+ 50: '.5',
+ 75: '.75',
+ 100: '1',
+ 125: '1.25',
+ 150: '1.5',
+ 200: '2',
+ },
+ cursor: {
+ auto: 'auto',
+ default: 'default',
+ pointer: 'pointer',
+ wait: 'wait',
+ text: 'text',
+ move: 'move',
+ help: 'help',
+ 'not-allowed': 'not-allowed',
+ none: 'none',
+ 'context-menu': 'context-menu',
+ progress: 'progress',
+ cell: 'cell',
+ crosshair: 'crosshair',
+ 'vertical-text': 'vertical-text',
+ alias: 'alias',
+ copy: 'copy',
+ 'no-drop': 'no-drop',
+ grab: 'grab',
+ grabbing: 'grabbing',
+ 'all-scroll': 'all-scroll',
+ 'col-resize': 'col-resize',
+ 'row-resize': 'row-resize',
+ 'n-resize': 'n-resize',
+ 'e-resize': 'e-resize',
+ 's-resize': 's-resize',
+ 'w-resize': 'w-resize',
+ 'ne-resize': 'ne-resize',
+ 'nw-resize': 'nw-resize',
+ 'se-resize': 'se-resize',
+ 'sw-resize': 'sw-resize',
+ 'ew-resize': 'ew-resize',
+ 'ns-resize': 'ns-resize',
+ 'nesw-resize': 'nesw-resize',
+ 'nwse-resize': 'nwse-resize',
+ 'zoom-in': 'zoom-in',
+ 'zoom-out': 'zoom-out',
+ },
+ divideColor: ({ theme }) => theme('borderColor'),
+ divideOpacity: ({ theme }) => theme('borderOpacity'),
+ divideWidth: ({ theme }) => theme('borderWidth'),
+ dropShadow: {
+ sm: '0 1px 1px rgb(0 0 0 / 0.05)',
+ DEFAULT: ['0 1px 2px rgb(0 0 0 / 0.1)', '0 1px 1px rgb(0 0 0 / 0.06)'],
+ md: ['0 4px 3px rgb(0 0 0 / 0.07)', '0 2px 2px rgb(0 0 0 / 0.06)'],
+ lg: ['0 10px 8px rgb(0 0 0 / 0.04)', '0 4px 3px rgb(0 0 0 / 0.1)'],
+ xl: ['0 20px 13px rgb(0 0 0 / 0.03)', '0 8px 5px rgb(0 0 0 / 0.08)'],
+ '2xl': '0 25px 25px rgb(0 0 0 / 0.15)',
+ none: '0 0 #0000',
+ },
+ fill: ({ theme }) => ({
+ none: 'none',
+ ...theme('colors'),
+ }),
+ flex: {
+ 1: '1 1 0%',
+ auto: '1 1 auto',
+ initial: '0 1 auto',
+ none: 'none',
+ },
+ flexBasis: ({ theme }) => ({
+ auto: 'auto',
+ ...theme('spacing'),
+ '1/2': '50%',
+ '1/3': '33.333333%',
+ '2/3': '66.666667%',
+ '1/4': '25%',
+ '2/4': '50%',
+ '3/4': '75%',
+ '1/5': '20%',
+ '2/5': '40%',
+ '3/5': '60%',
+ '4/5': '80%',
+ '1/6': '16.666667%',
+ '2/6': '33.333333%',
+ '3/6': '50%',
+ '4/6': '66.666667%',
+ '5/6': '83.333333%',
+ '1/12': '8.333333%',
+ '2/12': '16.666667%',
+ '3/12': '25%',
+ '4/12': '33.333333%',
+ '5/12': '41.666667%',
+ '6/12': '50%',
+ '7/12': '58.333333%',
+ '8/12': '66.666667%',
+ '9/12': '75%',
+ '10/12': '83.333333%',
+ '11/12': '91.666667%',
+ full: '100%',
+ }),
+ flexGrow: {
+ 0: '0',
+ DEFAULT: '1',
+ },
+ flexShrink: {
+ 0: '0',
+ DEFAULT: '1',
+ },
+ fontFamily: {
+ sans: [
+ 'ui-sans-serif',
+ 'system-ui',
+ 'sans-serif',
+ '"Apple Color Emoji"',
+ '"Segoe UI Emoji"',
+ '"Segoe UI Symbol"',
+ '"Noto Color Emoji"',
+ ],
+ serif: ['ui-serif', 'Georgia', 'Cambria', '"Times New Roman"', 'Times', 'serif'],
+ mono: [
+ 'ui-monospace',
+ 'SFMono-Regular',
+ 'Menlo',
+ 'Monaco',
+ 'Consolas',
+ '"Liberation Mono"',
+ '"Courier New"',
+ 'monospace',
+ ],
+ },
+ fontSize: {
+ xs: ['0.75rem', { lineHeight: '1rem' }],
+ sm: ['0.875rem', { lineHeight: '1.25rem' }],
+ base: ['1rem', { lineHeight: '1.5rem' }],
+ lg: ['1.125rem', { lineHeight: '1.75rem' }],
+ xl: ['1.25rem', { lineHeight: '1.75rem' }],
+ '2xl': ['1.5rem', { lineHeight: '2rem' }],
+ '3xl': ['1.875rem', { lineHeight: '2.25rem' }],
+ '4xl': ['2.25rem', { lineHeight: '2.5rem' }],
+ '5xl': ['3rem', { lineHeight: '1' }],
+ '6xl': ['3.75rem', { lineHeight: '1' }],
+ '7xl': ['4.5rem', { lineHeight: '1' }],
+ '8xl': ['6rem', { lineHeight: '1' }],
+ '9xl': ['8rem', { lineHeight: '1' }],
+ },
+ fontWeight: {
+ thin: '100',
+ extralight: '200',
+ light: '300',
+ normal: '400',
+ medium: '500',
+ semibold: '600',
+ bold: '700',
+ extrabold: '800',
+ black: '900',
+ },
+ gap: ({ theme }) => theme('spacing'),
+ gradientColorStops: ({ theme }) => theme('colors'),
+ gradientColorStopPositions: {
+ '0%': '0%',
+ '5%': '5%',
+ '10%': '10%',
+ '15%': '15%',
+ '20%': '20%',
+ '25%': '25%',
+ '30%': '30%',
+ '35%': '35%',
+ '40%': '40%',
+ '45%': '45%',
+ '50%': '50%',
+ '55%': '55%',
+ '60%': '60%',
+ '65%': '65%',
+ '70%': '70%',
+ '75%': '75%',
+ '80%': '80%',
+ '85%': '85%',
+ '90%': '90%',
+ '95%': '95%',
+ '100%': '100%',
+ },
+ grayscale: {
+ 0: '0',
+ DEFAULT: '100%',
+ },
+ gridAutoColumns: {
+ auto: 'auto',
+ min: 'min-content',
+ max: 'max-content',
+ fr: 'minmax(0, 1fr)',
+ },
+ gridAutoRows: {
+ auto: 'auto',
+ min: 'min-content',
+ max: 'max-content',
+ fr: 'minmax(0, 1fr)',
+ },
+ gridColumn: {
+ auto: 'auto',
+ 'span-1': 'span 1 / span 1',
+ 'span-2': 'span 2 / span 2',
+ 'span-3': 'span 3 / span 3',
+ 'span-4': 'span 4 / span 4',
+ 'span-5': 'span 5 / span 5',
+ 'span-6': 'span 6 / span 6',
+ 'span-7': 'span 7 / span 7',
+ 'span-8': 'span 8 / span 8',
+ 'span-9': 'span 9 / span 9',
+ 'span-10': 'span 10 / span 10',
+ 'span-11': 'span 11 / span 11',
+ 'span-12': 'span 12 / span 12',
+ 'span-full': '1 / -1',
+ },
+ gridColumnEnd: {
+ auto: 'auto',
+ 1: '1',
+ 2: '2',
+ 3: '3',
+ 4: '4',
+ 5: '5',
+ 6: '6',
+ 7: '7',
+ 8: '8',
+ 9: '9',
+ 10: '10',
+ 11: '11',
+ 12: '12',
+ 13: '13',
+ },
+ gridColumnStart: {
+ auto: 'auto',
+ 1: '1',
+ 2: '2',
+ 3: '3',
+ 4: '4',
+ 5: '5',
+ 6: '6',
+ 7: '7',
+ 8: '8',
+ 9: '9',
+ 10: '10',
+ 11: '11',
+ 12: '12',
+ 13: '13',
+ },
+ gridRow: {
+ auto: 'auto',
+ 'span-1': 'span 1 / span 1',
+ 'span-2': 'span 2 / span 2',
+ 'span-3': 'span 3 / span 3',
+ 'span-4': 'span 4 / span 4',
+ 'span-5': 'span 5 / span 5',
+ 'span-6': 'span 6 / span 6',
+ 'span-7': 'span 7 / span 7',
+ 'span-8': 'span 8 / span 8',
+ 'span-9': 'span 9 / span 9',
+ 'span-10': 'span 10 / span 10',
+ 'span-11': 'span 11 / span 11',
+ 'span-12': 'span 12 / span 12',
+ 'span-full': '1 / -1',
+ },
+ gridRowEnd: {
+ auto: 'auto',
+ 1: '1',
+ 2: '2',
+ 3: '3',
+ 4: '4',
+ 5: '5',
+ 6: '6',
+ 7: '7',
+ 8: '8',
+ 9: '9',
+ 10: '10',
+ 11: '11',
+ 12: '12',
+ 13: '13',
+ },
+ gridRowStart: {
+ auto: 'auto',
+ 1: '1',
+ 2: '2',
+ 3: '3',
+ 4: '4',
+ 5: '5',
+ 6: '6',
+ 7: '7',
+ 8: '8',
+ 9: '9',
+ 10: '10',
+ 11: '11',
+ 12: '12',
+ 13: '13',
+ },
+ gridTemplateColumns: {
+ none: 'none',
+ subgrid: 'subgrid',
+ 1: 'repeat(1, minmax(0, 1fr))',
+ 2: 'repeat(2, minmax(0, 1fr))',
+ 3: 'repeat(3, minmax(0, 1fr))',
+ 4: 'repeat(4, minmax(0, 1fr))',
+ 5: 'repeat(5, minmax(0, 1fr))',
+ 6: 'repeat(6, minmax(0, 1fr))',
+ 7: 'repeat(7, minmax(0, 1fr))',
+ 8: 'repeat(8, minmax(0, 1fr))',
+ 9: 'repeat(9, minmax(0, 1fr))',
+ 10: 'repeat(10, minmax(0, 1fr))',
+ 11: 'repeat(11, minmax(0, 1fr))',
+ 12: 'repeat(12, minmax(0, 1fr))',
+ },
+ gridTemplateRows: {
+ none: 'none',
+ subgrid: 'subgrid',
+ 1: 'repeat(1, minmax(0, 1fr))',
+ 2: 'repeat(2, minmax(0, 1fr))',
+ 3: 'repeat(3, minmax(0, 1fr))',
+ 4: 'repeat(4, minmax(0, 1fr))',
+ 5: 'repeat(5, minmax(0, 1fr))',
+ 6: 'repeat(6, minmax(0, 1fr))',
+ 7: 'repeat(7, minmax(0, 1fr))',
+ 8: 'repeat(8, minmax(0, 1fr))',
+ 9: 'repeat(9, minmax(0, 1fr))',
+ 10: 'repeat(10, minmax(0, 1fr))',
+ 11: 'repeat(11, minmax(0, 1fr))',
+ 12: 'repeat(12, minmax(0, 1fr))',
+ },
+ height: ({ theme }) => ({
+ auto: 'auto',
+ ...theme('spacing'),
+ '1/2': '50%',
+ '1/3': '33.333333%',
+ '2/3': '66.666667%',
+ '1/4': '25%',
+ '2/4': '50%',
+ '3/4': '75%',
+ '1/5': '20%',
+ '2/5': '40%',
+ '3/5': '60%',
+ '4/5': '80%',
+ '1/6': '16.666667%',
+ '2/6': '33.333333%',
+ '3/6': '50%',
+ '4/6': '66.666667%',
+ '5/6': '83.333333%',
+ full: '100%',
+ screen: '100vh',
+ svh: '100svh',
+ lvh: '100lvh',
+ dvh: '100dvh',
+ min: 'min-content',
+ max: 'max-content',
+ fit: 'fit-content',
+ }),
+ hueRotate: {
+ 0: '0deg',
+ 15: '15deg',
+ 30: '30deg',
+ 60: '60deg',
+ 90: '90deg',
+ 180: '180deg',
+ },
+ inset: ({ theme }) => ({
+ auto: 'auto',
+ ...theme('spacing'),
+ '1/2': '50%',
+ '1/3': '33.333333%',
+ '2/3': '66.666667%',
+ '1/4': '25%',
+ '2/4': '50%',
+ '3/4': '75%',
+ full: '100%',
+ }),
+ invert: {
+ 0: '0',
+ DEFAULT: '100%',
+ },
+ keyframes: {
+ spin: {
+ to: {
+ transform: 'rotate(360deg)',
+ },
+ },
+ ping: {
+ '75%, 100%': {
+ transform: 'scale(2)',
+ opacity: '0',
+ },
+ },
+ pulse: {
+ '50%': {
+ opacity: '.5',
+ },
+ },
+ bounce: {
+ '0%, 100%': {
+ transform: 'translateY(-25%)',
+ animationTimingFunction: 'cubic-bezier(0.8,0,1,1)',
+ },
+ '50%': {
+ transform: 'none',
+ animationTimingFunction: 'cubic-bezier(0,0,0.2,1)',
+ },
+ },
+ },
+ letterSpacing: {
+ tighter: '-0.05em',
+ tight: '-0.025em',
+ normal: '0em',
+ wide: '0.025em',
+ wider: '0.05em',
+ widest: '0.1em',
+ },
+ lineHeight: {
+ none: '1',
+ tight: '1.25',
+ snug: '1.375',
+ normal: '1.5',
+ relaxed: '1.625',
+ loose: '2',
+ 3: '.75rem',
+ 4: '1rem',
+ 5: '1.25rem',
+ 6: '1.5rem',
+ 7: '1.75rem',
+ 8: '2rem',
+ 9: '2.25rem',
+ 10: '2.5rem',
+ },
+ listStyleType: {
+ none: 'none',
+ disc: 'disc',
+ decimal: 'decimal',
+ },
+ listStyleImage: {
+ none: 'none',
+ },
+ margin: ({ theme }) => ({
+ auto: 'auto',
+ ...theme('spacing'),
+ }),
+ lineClamp: {
+ 1: '1',
+ 2: '2',
+ 3: '3',
+ 4: '4',
+ 5: '5',
+ 6: '6',
+ },
+ maxHeight: ({ theme }) => ({
+ ...theme('spacing'),
+ none: 'none',
+ full: '100%',
+ screen: '100vh',
+ svh: '100svh',
+ lvh: '100lvh',
+ dvh: '100dvh',
+ min: 'min-content',
+ max: 'max-content',
+ fit: 'fit-content',
+ }),
+ maxWidth: ({ theme, breakpoints }) => ({
+ ...theme('spacing'),
+ none: 'none',
+ xs: '20rem',
+ sm: '24rem',
+ md: '28rem',
+ lg: '32rem',
+ xl: '36rem',
+ '2xl': '42rem',
+ '3xl': '48rem',
+ '4xl': '56rem',
+ '5xl': '64rem',
+ '6xl': '72rem',
+ '7xl': '80rem',
+ full: '100%',
+ min: 'min-content',
+ max: 'max-content',
+ fit: 'fit-content',
+ prose: '65ch',
+ ...breakpoints(theme('screens')),
+ }),
+ minHeight: ({ theme }) => ({
+ ...theme('spacing'),
+ full: '100%',
+ screen: '100vh',
+ svh: '100svh',
+ lvh: '100lvh',
+ dvh: '100dvh',
+ min: 'min-content',
+ max: 'max-content',
+ fit: 'fit-content',
+ }),
+ minWidth: ({ theme }) => ({
+ ...theme('spacing'),
+ full: '100%',
+ min: 'min-content',
+ max: 'max-content',
+ fit: 'fit-content',
+ }),
+ objectPosition: {
+ bottom: 'bottom',
+ center: 'center',
+ left: 'left',
+ 'left-bottom': 'left bottom',
+ 'left-top': 'left top',
+ right: 'right',
+ 'right-bottom': 'right bottom',
+ 'right-top': 'right top',
+ top: 'top',
+ },
+ opacity: {
+ 0: '0',
+ 5: '0.05',
+ 10: '0.1',
+ 15: '0.15',
+ 20: '0.2',
+ 25: '0.25',
+ 30: '0.3',
+ 35: '0.35',
+ 40: '0.4',
+ 45: '0.45',
+ 50: '0.5',
+ 55: '0.55',
+ 60: '0.6',
+ 65: '0.65',
+ 70: '0.7',
+ 75: '0.75',
+ 80: '0.8',
+ 85: '0.85',
+ 90: '0.9',
+ 95: '0.95',
+ 100: '1',
+ },
+ order: {
+ first: '-9999',
+ last: '9999',
+ none: '0',
+ 1: '1',
+ 2: '2',
+ 3: '3',
+ 4: '4',
+ 5: '5',
+ 6: '6',
+ 7: '7',
+ 8: '8',
+ 9: '9',
+ 10: '10',
+ 11: '11',
+ 12: '12',
+ },
+ outlineColor: ({ theme }) => theme('colors'),
+ outlineOffset: {
+ 0: '0px',
+ 1: '1px',
+ 2: '2px',
+ 4: '4px',
+ 8: '8px',
+ },
+ outlineWidth: {
+ 0: '0px',
+ 1: '1px',
+ 2: '2px',
+ 4: '4px',
+ 8: '8px',
+ },
+ padding: ({ theme }) => theme('spacing'),
+ placeholderColor: ({ theme }) => theme('colors'),
+ placeholderOpacity: ({ theme }) => theme('opacity'),
+ ringColor: ({ theme }) => ({
+ DEFAULT: theme('colors.blue.500', '#3b82f6'),
+ ...theme('colors'),
+ }),
+ ringOffsetColor: ({ theme }) => theme('colors'),
+ ringOffsetWidth: {
+ 0: '0px',
+ 1: '1px',
+ 2: '2px',
+ 4: '4px',
+ 8: '8px',
+ },
+ ringOpacity: ({ theme }) => ({
+ DEFAULT: '0.5',
+ ...theme('opacity'),
+ }),
+ ringWidth: {
+ DEFAULT: '3px',
+ 0: '0px',
+ 1: '1px',
+ 2: '2px',
+ 4: '4px',
+ 8: '8px',
+ },
+ rotate: {
+ 0: '0deg',
+ 1: '1deg',
+ 2: '2deg',
+ 3: '3deg',
+ 6: '6deg',
+ 12: '12deg',
+ 45: '45deg',
+ 90: '90deg',
+ 180: '180deg',
+ },
+ saturate: {
+ 0: '0',
+ 50: '.5',
+ 100: '1',
+ 150: '1.5',
+ 200: '2',
+ },
+ scale: {
+ 0: '0',
+ 50: '.5',
+ 75: '.75',
+ 90: '.9',
+ 95: '.95',
+ 100: '1',
+ 105: '1.05',
+ 110: '1.1',
+ 125: '1.25',
+ 150: '1.5',
+ },
+ screens: {
+ sm: '640px',
+ md: '768px',
+ lg: '1024px',
+ xl: '1280px',
+ '2xl': '1536px',
+ },
+ scrollMargin: ({ theme }) => ({
+ ...theme('spacing'),
+ }),
+ scrollPadding: ({ theme }) => theme('spacing'),
+ sepia: {
+ 0: '0',
+ DEFAULT: '100%',
+ },
+ skew: {
+ 0: '0deg',
+ 1: '1deg',
+ 2: '2deg',
+ 3: '3deg',
+ 6: '6deg',
+ 12: '12deg',
+ },
+ space: ({ theme }) => ({
+ ...theme('spacing'),
+ }),
+ spacing: {
+ px: '1px',
+ 0: '0px',
+ 0.5: '0.125rem',
+ 1: '0.25rem',
+ 1.5: '0.375rem',
+ 2: '0.5rem',
+ 2.5: '0.625rem',
+ 3: '0.75rem',
+ 3.5: '0.875rem',
+ 4: '1rem',
+ 5: '1.25rem',
+ 6: '1.5rem',
+ 7: '1.75rem',
+ 8: '2rem',
+ 9: '2.25rem',
+ 10: '2.5rem',
+ 11: '2.75rem',
+ 12: '3rem',
+ 14: '3.5rem',
+ 16: '4rem',
+ 20: '5rem',
+ 24: '6rem',
+ 28: '7rem',
+ 32: '8rem',
+ 36: '9rem',
+ 40: '10rem',
+ 44: '11rem',
+ 48: '12rem',
+ 52: '13rem',
+ 56: '14rem',
+ 60: '15rem',
+ 64: '16rem',
+ 72: '18rem',
+ 80: '20rem',
+ 96: '24rem',
+ },
+ stroke: ({ theme }) => ({
+ none: 'none',
+ ...theme('colors'),
+ }),
+ strokeWidth: {
+ 0: '0',
+ 1: '1',
+ 2: '2',
+ },
+ supports: {},
+ data: {},
+ textColor: ({ theme }) => theme('colors'),
+ textDecorationColor: ({ theme }) => theme('colors'),
+ textDecorationThickness: {
+ auto: 'auto',
+ 'from-font': 'from-font',
+ 0: '0px',
+ 1: '1px',
+ 2: '2px',
+ 4: '4px',
+ 8: '8px',
+ },
+ textIndent: ({ theme }) => ({
+ ...theme('spacing'),
+ }),
+ textOpacity: ({ theme }) => theme('opacity'),
+ textUnderlineOffset: {
+ auto: 'auto',
+ 0: '0px',
+ 1: '1px',
+ 2: '2px',
+ 4: '4px',
+ 8: '8px',
+ },
+ transformOrigin: {
+ center: 'center',
+ top: 'top',
+ 'top-right': 'top right',
+ right: 'right',
+ 'bottom-right': 'bottom right',
+ bottom: 'bottom',
+ 'bottom-left': 'bottom left',
+ left: 'left',
+ 'top-left': 'top left',
+ },
+ transitionDelay: {
+ 0: '0s',
+ 75: '75ms',
+ 100: '100ms',
+ 150: '150ms',
+ 200: '200ms',
+ 300: '300ms',
+ 500: '500ms',
+ 700: '700ms',
+ 1000: '1000ms',
+ },
+ transitionDuration: {
+ DEFAULT: '150ms',
+ 0: '0s',
+ 75: '75ms',
+ 100: '100ms',
+ 150: '150ms',
+ 200: '200ms',
+ 300: '300ms',
+ 500: '500ms',
+ 700: '700ms',
+ 1000: '1000ms',
+ },
+ transitionProperty: {
+ none: 'none',
+ all: 'all',
+ DEFAULT:
+ 'color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter',
+ colors: 'color, background-color, border-color, text-decoration-color, fill, stroke',
+ opacity: 'opacity',
+ shadow: 'box-shadow',
+ transform: 'transform',
+ },
+ transitionTimingFunction: {
+ DEFAULT: 'cubic-bezier(0.4, 0, 0.2, 1)',
+ linear: 'linear',
+ in: 'cubic-bezier(0.4, 0, 1, 1)',
+ out: 'cubic-bezier(0, 0, 0.2, 1)',
+ 'in-out': 'cubic-bezier(0.4, 0, 0.2, 1)',
+ },
+ translate: ({ theme }) => ({
+ ...theme('spacing'),
+ '1/2': '50%',
+ '1/3': '33.333333%',
+ '2/3': '66.666667%',
+ '1/4': '25%',
+ '2/4': '50%',
+ '3/4': '75%',
+ full: '100%',
+ }),
+ size: ({ theme }) => ({
+ auto: 'auto',
+ ...theme('spacing'),
+ '1/2': '50%',
+ '1/3': '33.333333%',
+ '2/3': '66.666667%',
+ '1/4': '25%',
+ '2/4': '50%',
+ '3/4': '75%',
+ '1/5': '20%',
+ '2/5': '40%',
+ '3/5': '60%',
+ '4/5': '80%',
+ '1/6': '16.666667%',
+ '2/6': '33.333333%',
+ '3/6': '50%',
+ '4/6': '66.666667%',
+ '5/6': '83.333333%',
+ '1/12': '8.333333%',
+ '2/12': '16.666667%',
+ '3/12': '25%',
+ '4/12': '33.333333%',
+ '5/12': '41.666667%',
+ '6/12': '50%',
+ '7/12': '58.333333%',
+ '8/12': '66.666667%',
+ '9/12': '75%',
+ '10/12': '83.333333%',
+ '11/12': '91.666667%',
+ full: '100%',
+ min: 'min-content',
+ max: 'max-content',
+ fit: 'fit-content',
+ }),
+ width: ({ theme }) => ({
+ auto: 'auto',
+ ...theme('spacing'),
+ '1/2': '50%',
+ '1/3': '33.333333%',
+ '2/3': '66.666667%',
+ '1/4': '25%',
+ '2/4': '50%',
+ '3/4': '75%',
+ '1/5': '20%',
+ '2/5': '40%',
+ '3/5': '60%',
+ '4/5': '80%',
+ '1/6': '16.666667%',
+ '2/6': '33.333333%',
+ '3/6': '50%',
+ '4/6': '66.666667%',
+ '5/6': '83.333333%',
+ '1/12': '8.333333%',
+ '2/12': '16.666667%',
+ '3/12': '25%',
+ '4/12': '33.333333%',
+ '5/12': '41.666667%',
+ '6/12': '50%',
+ '7/12': '58.333333%',
+ '8/12': '66.666667%',
+ '9/12': '75%',
+ '10/12': '83.333333%',
+ '11/12': '91.666667%',
+ full: '100%',
+ screen: '100vw',
+ svw: '100svw',
+ lvw: '100lvw',
+ dvw: '100dvw',
+ min: 'min-content',
+ max: 'max-content',
+ fit: 'fit-content',
+ }),
+ willChange: {
+ auto: 'auto',
+ scroll: 'scroll-position',
+ contents: 'contents',
+ transform: 'transform',
+ },
+ zIndex: {
+ auto: 'auto',
+ 0: '0',
+ 10: '10',
+ 20: '20',
+ 30: '30',
+ 40: '40',
+ 50: '50',
+ },
+ },
+ plugins: [],
+}
+
diff --git a/sandbox/tailwind-app/tailwind.config.js b/sandbox/tailwind-app/tailwind.config.js
new file mode 100644
index 000000000..9aad68021
--- /dev/null
+++ b/sandbox/tailwind-app/tailwind.config.js
@@ -0,0 +1,205 @@
+// import hpeConfig from 'design-tokens/dist/tailwind/tailwind.config.js';
+
+/** @type {import('tailwindcss').Config} */
+export default {
+ mode: 'jit',
+ content: ['./index.html', './src/**/*.{js,ts,jsx,tsx}'],
+ darkMode: 'class',
+ theme: {
+ extend: {
+ fontFamily: {
+ sans: [
+ // TO DO create fontStack token
+ 'Metric',
+ 'ui-sans-serif',
+ 'system-ui',
+ ],
+ },
+ colors: {
+ background: {
+ default: 'var(--hpe-color-background-default)',
+ hover: 'var(--hpe-color-background-hover)',
+ active: 'var(--hpe-color-background-active)',
+ disabled: 'var(--hpe-color-background-disabled)',
+ back: 'var(--hpe-color-background-back)',
+ front: 'var(--hpe-color-background-front)',
+ raised: 'var(--hpe-color-background-raised)',
+ floating: 'var(--hpe-color-background-floating)',
+ contrast: 'var(--hpe-color-background-contrast)',
+ validation: {
+ info: 'var(--hpe-color-background-validation-info)',
+ warning: 'var(--hpe-color-background-validation-warning)',
+ unknown: 'var(--hpe-color-background-validation-unknown)',
+ critical: 'var(--hpe-color-background-validation-critical)',
+ ok: 'var(--hpe-color-background-validation-ok)',
+ },
+ selected: {
+ strong: 'var(--hpe-color-background-selected-strong)',
+ weak: 'var(--hpe-color-background-selected-weak)',
+ },
+ primary: {
+ default: 'var(--hpe-color-background-primary-default)',
+ hover: 'var(--hpe-color-background-primary-hover)',
+ },
+ },
+ border: {
+ strong: 'var(--hpe-color-border-strong)',
+ default: 'var(--hpe-color-border-default)',
+ weak: 'var(--hpe-color-border-weak)',
+ disabled: 'var(--hpe-color-border-disabled)',
+ selected: 'var(--hpe-color-border-selected)',
+ },
+ text: {
+ default: 'var(--hpe-color-text-default)',
+ strong: 'var(--hpe-color-text-strong)',
+ weak: 'var(--hpe-color-text-weak)',
+ xweak: 'var(--hpe-color-text-xweak)',
+ disabled: 'var(--hpe-color-text-disabled)',
+ critical: 'var(--hpe-color-text-critical)',
+ info: 'var(--hpe-color-text-info)',
+ ok: 'var(--hpe-color-text-ok)',
+ warning: 'var(--hpe-color-text-warning)',
+ unknown: 'var(--hpe-color-text-unknown)',
+ onPrimary: 'var(--hpe-color-text-on-primary)',
+ brand: 'var(--hpe-color-text-brand)',
+ },
+ },
+ borderRadius: {
+ none: 'var(--hpe-radius-none)',
+ hair: 'var(--hpe-radius-hair)',
+ xxsmall: 'var(--hpe-radius-xxsmall)',
+ xsmall: 'var(--hpe-radius-xsmall)',
+ small: 'var(--hpe-radius-small)',
+ medium: 'var(--hpe-radius-medium)',
+ large: 'var(--hpe-radius-large)',
+ xlarge: 'var(--hpe-radius-xlarge)',
+ },
+ borderWidth: {
+ none: 'var(--hpe-border-none)',
+ hair: 'var(--hpe-border-hair)',
+ xxsmall: 'var(--hpe-border-xxsmall)',
+ xsmall: 'var(--hpe-border-xsmall)',
+ small: 'var(--hpe-border-small)',
+ medium: 'var(--hpe-border-medium)',
+ large: 'var(--hpe-border-large)',
+ xlarge: 'var(--hpe-border-xlarge)',
+ },
+ fontSize: {
+ base: [
+ 'var(--hpe-text-medium-font-size)',
+ { lineHeight: 'var(--hpe-text-medium-line-height)' },
+ ],
+ xsmall: [
+ 'var(--hpe-text-xsmall-font-size)',
+ { lineHeight: 'var(--hpe-text-xsmall-line-height)' },
+ ],
+ small: [
+ 'var(--hpe-text-small-font-size)',
+ { lineHeight: 'var(--hpe-text-small-line-height)' },
+ ],
+ medium: [
+ 'var(--hpe-text-medium-font-size)',
+ { lineHeight: 'var(--hpe-text-medium-line-height)' },
+ ],
+ large: [
+ 'var(--hpe-text-large-font-size)',
+ { lineHeight: 'var(--hpe-text-large-line-height)' },
+ ],
+ xlarge: [
+ 'var(--hpe-text-xlarge-font-size)',
+ { lineHeight: 'var(--hpe-text-xlarge-line-height)' },
+ ],
+ xxlarge: [
+ 'var(--hpe-text-xxlarge-font-size)',
+ { lineHeight: 'var(--hpe-text-xxlarge-line-height)' },
+ ],
+ '3xl': [
+ 'var(--hpe-text-3xl-font-size)',
+ { lineHeight: 'var(--hpe-text-3xl-line-height)' },
+ ],
+ '4xl': [
+ 'var(--hpe-text-4xl-font-size)',
+ { lineHeight: 'var(--hpe-text-4xl-line-height)' },
+ ],
+ '5xl': [
+ 'var(--hpe-text-5xl-font-size)',
+ { lineHeight: 'var(--hpe-text-5xl-line-height)' },
+ ],
+ '6xl': [
+ 'var(--hpe-text-6xl-font-size)',
+ { lineHeight: 'var(--hpe-text-6xl-line-height)' },
+ ],
+ },
+ spacing: {
+ none: 'var(--hpe-spacing-none)',
+ hair: 'var(--hpe-spacing-hair)',
+ xxsmall: 'var(--hpe-spacing-xxsmall)',
+ xsmall: 'var(--hpe-spacing-xsmall)',
+ small: 'var(--hpe-spacing-small)',
+ medium: 'var(--hpe-spacing-medium)',
+ large: 'var(--hpe-spacing-large)',
+ xlarge: 'var(--hpe-spacing-xlarge)',
+ },
+ screens: {
+ xsmall: 'var(--hpe-base-breakpoint-xsmall)',
+ small: 'var(--hpe-base-breakpoint-small)',
+ medium: 'var(--hpe-base-breakpoint-medium)',
+ large: 'var(--hpe-base-breakpoint-large)',
+ },
+ height: {
+ xxsmall: 'var(--hpe-content-xxsmall)',
+ xsmall: 'var(--hpe-content-xsmall)',
+ small: 'var(--hpe-content-small)',
+ medium: 'var(--hpe-content-medium)',
+ large: 'var(--hpe-content-large)',
+ xlarge: 'var(--hpe-content-xlarge)',
+ xxlarge: 'var(--hpe-content-xxlarge)',
+ },
+ maxHeight: {
+ xxsmall: 'var(--hpe-content-xxsmall)',
+ xsmall: 'var(--hpe-content-xsmall)',
+ small: 'var(--hpe-content-small)',
+ medium: 'var(--hpe-content-medium)',
+ large: 'var(--hpe-content-large)',
+ xlarge: 'var(--hpe-content-xlarge)',
+ xxlarge: 'var(--hpe-content-xxlarge)',
+ },
+ minHeight: {
+ xxsmall: 'var(--hpe-content-xxsmall)',
+ xsmall: 'var(--hpe-content-xsmall)',
+ small: 'var(--hpe-content-small)',
+ medium: 'var(--hpe-content-medium)',
+ large: 'var(--hpe-content-large)',
+ xlarge: 'var(--hpe-content-xlarge)',
+ xxlarge: 'var(--hpe-content-xxlarge)',
+ },
+ maxWidth: {
+ xxsmall: 'var(--hpe-content-xxsmall)',
+ xsmall: 'var(--hpe-content-xsmall)',
+ small: 'var(--hpe-content-small)',
+ medium: 'var(--hpe-content-medium)',
+ large: 'var(--hpe-content-large)',
+ xlarge: 'var(--hpe-content-xlarge)',
+ xxlarge: 'var(--hpe-content-xxlarge)',
+ },
+ minWidth: {
+ xxsmall: 'var(--hpe-content-xxsmall)',
+ xsmall: 'var(--hpe-content-xsmall)',
+ small: 'var(--hpe-content-small)',
+ medium: 'var(--hpe-content-medium)',
+ large: 'var(--hpe-content-large)',
+ xlarge: 'var(--hpe-content-xlarge)',
+ xxlarge: 'var(--hpe-content-xxlarge)',
+ },
+ width: {
+ xxsmall: 'var(--hpe-content-xxsmall)',
+ xsmall: 'var(--hpe-content-xsmall)',
+ small: 'var(--hpe-content-small)',
+ medium: 'var(--hpe-content-medium)',
+ large: 'var(--hpe-content-large)',
+ xlarge: 'var(--hpe-content-xlarge)',
+ xxlarge: 'var(--hpe-content-xxlarge)',
+ },
+ },
+ },
+};
diff --git a/sandbox/tailwind-app/vite.config.js b/sandbox/tailwind-app/vite.config.js
new file mode 100644
index 000000000..5a33944a9
--- /dev/null
+++ b/sandbox/tailwind-app/vite.config.js
@@ -0,0 +1,7 @@
+import { defineConfig } from 'vite'
+import react from '@vitejs/plugin-react'
+
+// https://vitejs.dev/config/
+export default defineConfig({
+ plugins: [react()],
+})
diff --git a/yarn.lock b/yarn.lock
index 83457657a..b42117bbe 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7,6 +7,11 @@
resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.4.0.tgz#728c484f4e10df03d5a3acd0d8adcbbebff8ad63"
integrity sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ==
+"@alloc/quick-lru@^5.2.0":
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30"
+ integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==
+
"@ampproject/remapping@^2.2.0":
version "2.3.0"
resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4"
@@ -238,9 +243,9 @@
throat "5.0.0"
"@babel/cli@^7.19.3":
- version "7.24.8"
- resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.24.8.tgz#79eaa55a69c77cafbea3e87537fd1df5a5a2edf8"
- integrity sha512-isdp+G6DpRyKc+3Gqxy2rjzgF7Zj9K0mzLNnxz+E/fgeag8qT3vVulX4gY9dGO1q0y+0lUv6V3a+uhUzMzrwXg==
+ version "7.25.6"
+ resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.25.6.tgz#bc35561adc78ade43ac9c09a690768493ab9ed95"
+ integrity sha512-Z+Doemr4VtvSD2SNHTrkiFZ1LX+JI6tyRXAAOb4N9khIuPyoEPmTPJarPm8ljJV1D6bnMQjyHMWTT9NeKbQuXA==
dependencies:
"@jridgewell/trace-mapping" "^0.3.25"
commander "^6.2.0"
@@ -251,7 +256,7 @@
slash "^2.0.0"
optionalDependencies:
"@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.3"
- chokidar "^3.4.0"
+ chokidar "^3.6.0"
"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.24.7":
version "7.24.7"
@@ -266,7 +271,7 @@
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.25.4.tgz#7d2a80ce229890edcf4cc259d4d696cb4dae2fcb"
integrity sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==
-"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.20.5", "@babel/core@^7.23.2", "@babel/core@^7.7.2", "@babel/core@^7.8.0":
+"@babel/core@^7.1.0", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.20.5", "@babel/core@^7.23.2", "@babel/core@^7.23.9", "@babel/core@^7.24.5", "@babel/core@^7.7.2", "@babel/core@^7.8.0":
version "7.25.2"
resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.25.2.tgz#ed8eec275118d7613e77a352894cd12ded8eba77"
integrity sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==
@@ -296,12 +301,12 @@
eslint-visitor-keys "^2.1.0"
semver "^6.3.1"
-"@babel/generator@^7.25.0", "@babel/generator@^7.25.4", "@babel/generator@^7.7.2":
- version "7.25.4"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.4.tgz#1dc63c1c9caae9e6dc24e264eac254eb25005669"
- integrity sha512-NFtZmZsyzDPJnk9Zg3BbTfKKc9UlHYzD0E//p2Z3B9nCwwtJW9T0gVbCz8+fBngnn4zf1Dr3IK8PHQQHq0lDQw==
+"@babel/generator@^7.25.0", "@babel/generator@^7.25.6", "@babel/generator@^7.7.2":
+ version "7.25.6"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.6.tgz#0df1ad8cb32fe4d2b01d8bf437f153d19342a87c"
+ integrity sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==
dependencies:
- "@babel/types" "^7.25.4"
+ "@babel/types" "^7.25.6"
"@jridgewell/gen-mapping" "^0.3.5"
"@jridgewell/trace-mapping" "^0.3.25"
jsesc "^2.5.1"
@@ -491,12 +496,12 @@
"@babel/types" "^7.25.0"
"@babel/helpers@^7.25.0":
- version "7.25.0"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.25.0.tgz#e69beb7841cb93a6505531ede34f34e6a073650a"
- integrity sha512-MjgLZ42aCm0oGjJj8CtSM3DB8NOOf8h2l7DCTePJs29u+v7yO/RBX9nShlKMgFnRks/Q4tBAe7Hxnov9VkGwLw==
+ version "7.25.6"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.25.6.tgz#57ee60141829ba2e102f30711ffe3afab357cc60"
+ integrity sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==
dependencies:
"@babel/template" "^7.25.0"
- "@babel/types" "^7.25.0"
+ "@babel/types" "^7.25.6"
"@babel/highlight@^7.24.7":
version "7.24.7"
@@ -520,12 +525,12 @@
regenerator-runtime "^0.14.0"
v8flags "^3.1.1"
-"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.25.0", "@babel/parser@^7.25.4":
- version "7.25.4"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.4.tgz#af4f2df7d02440286b7de57b1c21acfb2a6f257a"
- integrity sha512-nq+eWrOgdtu3jG5Os4TQP3x3cLA8hR8TvJNjD8vnPa20WGycimcparWnLK4jJhElTK6SDyuJo1weMKO/5LpmLA==
+"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.25.0", "@babel/parser@^7.25.6":
+ version "7.25.6"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.6.tgz#85660c5ef388cbbf6e3d2a694ee97a38f18afe2f"
+ integrity sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==
dependencies:
- "@babel/types" "^7.25.4"
+ "@babel/types" "^7.25.6"
"@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.3":
version "7.25.3"
@@ -674,18 +679,18 @@
"@babel/helper-plugin-utils" "^7.24.7"
"@babel/plugin-syntax-import-assertions@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz#2a0b406b5871a20a841240586b1300ce2088a778"
- integrity sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==
+ version "7.25.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.6.tgz#bb918905c58711b86f9710d74a3744b6c56573b5"
+ integrity sha512-aABl0jHw9bZ2karQ/uUD6XP4u0SG22SJrOHFoL6XB1R7dTovOP4TzTlsxOYC5yQ1pdscVK2JTUnF6QL3ARoAiQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.24.8"
"@babel/plugin-syntax-import-attributes@^7.24.7":
- version "7.24.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz#b4f9ea95a79e6912480c4b626739f86a076624ca"
- integrity sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==
+ version "7.25.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.6.tgz#6d4c78f042db0e82fd6436cd65fec5dc78ad2bde"
+ integrity sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.24.7"
+ "@babel/helper-plugin-utils" "^7.24.8"
"@babel/plugin-syntax-import-meta@^7.10.4":
version "7.10.4"
@@ -701,7 +706,7 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.0"
-"@babel/plugin-syntax-jsx@^7.22.5", "@babel/plugin-syntax-jsx@^7.24.7":
+"@babel/plugin-syntax-jsx@^7.22.5", "@babel/plugin-syntax-jsx@^7.24.7", "@babel/plugin-syntax-jsx@^7.7.2":
version "7.24.7"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz#39a1fa4a7e3d3d7f34e2acc6be585b718d30e02d"
integrity sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==
@@ -1112,6 +1117,20 @@
dependencies:
"@babel/plugin-transform-react-jsx" "^7.24.7"
+"@babel/plugin-transform-react-jsx-self@^7.24.5":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.24.7.tgz#66bff0248ea0b549972e733516ffad577477bdab"
+ integrity sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.24.7"
+
+"@babel/plugin-transform-react-jsx-source@^7.24.1":
+ version "7.24.7"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.24.7.tgz#1198aab2548ad19582013815c938d3ebd8291ee3"
+ integrity sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.24.7"
+
"@babel/plugin-transform-react-jsx@^7.24.7":
version "7.25.2"
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.2.tgz#e37e8ebfa77e9f0b16ba07fadcb6adb47412227a"
@@ -1361,9 +1380,9 @@
integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==
"@babel/runtime@^7.12.5", "@babel/runtime@^7.23.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.8.4":
- version "7.25.4"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.4.tgz#6ef37d678428306e7d75f054d5b1bdb8cf8aa8ee"
- integrity sha512-DSgLeL/FNcpXuzav5wfYvHCGvynXkJbn3Zvc3823AEe9nPwW9IK4UoCSS5yGymmQzN0pCPvivtgS6/8U2kkm1w==
+ version "7.25.6"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.6.tgz#9afc3289f7184d8d7f98b099884c26317b9264d2"
+ integrity sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==
dependencies:
regenerator-runtime "^0.14.0"
@@ -1377,22 +1396,22 @@
"@babel/types" "^7.25.0"
"@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.0", "@babel/traverse@^7.25.1", "@babel/traverse@^7.25.2", "@babel/traverse@^7.25.3", "@babel/traverse@^7.25.4", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.2":
- version "7.25.4"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.4.tgz#648678046990f2957407e3086e97044f13c3e18e"
- integrity sha512-VJ4XsrD+nOvlXyLzmLzUs/0qjFS4sK30te5yEFlvbbUNEgKaVb2BHZUpAL+ttLPQAHNrsI3zZisbfha5Cvr8vg==
+ version "7.25.6"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.6.tgz#04fad980e444f182ecf1520504941940a90fea41"
+ integrity sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==
dependencies:
"@babel/code-frame" "^7.24.7"
- "@babel/generator" "^7.25.4"
- "@babel/parser" "^7.25.4"
+ "@babel/generator" "^7.25.6"
+ "@babel/parser" "^7.25.6"
"@babel/template" "^7.25.0"
- "@babel/types" "^7.25.4"
+ "@babel/types" "^7.25.6"
debug "^4.3.1"
globals "^11.1.0"
-"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.24.7", "@babel/types@^7.24.8", "@babel/types@^7.25.0", "@babel/types@^7.25.2", "@babel/types@^7.25.4", "@babel/types@^7.3.3", "@babel/types@^7.4.4":
- version "7.25.4"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.4.tgz#6bcb46c72fdf1012a209d016c07f769e10adcb5f"
- integrity sha512-zQ1ijeeCXVEh+aNL0RlmkPkG8HUiDcU2pzQQFjtbntgAczRASFzj4H+6+bV+dy1ntKR14I/DypeuRG1uma98iQ==
+"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.24.7", "@babel/types@^7.24.8", "@babel/types@^7.25.0", "@babel/types@^7.25.2", "@babel/types@^7.25.6", "@babel/types@^7.3.3", "@babel/types@^7.4.4":
+ version "7.25.6"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.6.tgz#893942ddb858f32ae7a004ec9d3a76b3463ef8e6"
+ integrity sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==
dependencies:
"@babel/helper-string-parser" "^7.24.8"
"@babel/helper-validator-identifier" "^7.24.7"
@@ -1403,6 +1422,13 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
+"@cspotcode/source-map-support@^0.8.0":
+ version "0.8.1"
+ resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1"
+ integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==
+ dependencies:
+ "@jridgewell/trace-mapping" "0.3.9"
+
"@devexpress/bin-v8-flags-filter@^1.3.0":
version "1.3.0"
resolved "https://registry.yarnpkg.com/@devexpress/bin-v8-flags-filter/-/bin-v8-flags-filter-1.3.0.tgz#3069f2525c0c5fb940810e9ec10fc592c47552db"
@@ -1427,10 +1453,11 @@
integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==
"@electron/asar@^3.2.3":
- version "3.2.10"
- resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.2.10.tgz#615cf346b734b23cafa4e0603551010bd0e50aa8"
- integrity sha512-mvBSwIBUeiRscrCeJE1LwctAriBj65eUDm0Pc11iE5gRwzkmsdbS7FnZ1XUWjpSeQWL1L5g12Fc/SchPM9DUOw==
+ version "3.2.13"
+ resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.2.13.tgz#56565ea423ead184465adfa72663b2c70d9835f2"
+ integrity sha512-pY5z2qQSwbFzJsBdgfJIzXf5ElHTVMutC2dxh0FD60njknMu3n1NnTABOcQwbb5/v5soqE79m9UjaJryBf3epg==
dependencies:
+ "@types/glob" "^7.1.0"
commander "^5.0.0"
glob "^7.1.6"
minimatch "^3.0.4"
@@ -1457,14 +1484,249 @@
resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed"
integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==
-"@eslint-community/eslint-utils@^4.2.0":
+"@esbuild/aix-ppc64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f"
+ integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==
+
+"@esbuild/aix-ppc64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz#51299374de171dbd80bb7d838e1cfce9af36f353"
+ integrity sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==
+
+"@esbuild/android-arm64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052"
+ integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==
+
+"@esbuild/android-arm64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz#58565291a1fe548638adb9c584237449e5e14018"
+ integrity sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==
+
+"@esbuild/android-arm@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28"
+ integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==
+
+"@esbuild/android-arm@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.23.1.tgz#5eb8c652d4c82a2421e3395b808e6d9c42c862ee"
+ integrity sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==
+
+"@esbuild/android-x64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e"
+ integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==
+
+"@esbuild/android-x64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.23.1.tgz#ae19d665d2f06f0f48a6ac9a224b3f672e65d517"
+ integrity sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==
+
+"@esbuild/darwin-arm64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a"
+ integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==
+
+"@esbuild/darwin-arm64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz#05b17f91a87e557b468a9c75e9d85ab10c121b16"
+ integrity sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==
+
+"@esbuild/darwin-x64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22"
+ integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==
+
+"@esbuild/darwin-x64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz#c58353b982f4e04f0d022284b8ba2733f5ff0931"
+ integrity sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==
+
+"@esbuild/freebsd-arm64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e"
+ integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==
+
+"@esbuild/freebsd-arm64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz#f9220dc65f80f03635e1ef96cfad5da1f446f3bc"
+ integrity sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==
+
+"@esbuild/freebsd-x64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261"
+ integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==
+
+"@esbuild/freebsd-x64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz#69bd8511fa013b59f0226d1609ac43f7ce489730"
+ integrity sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==
+
+"@esbuild/linux-arm64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b"
+ integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==
+
+"@esbuild/linux-arm64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz#8050af6d51ddb388c75653ef9871f5ccd8f12383"
+ integrity sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==
+
+"@esbuild/linux-arm@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9"
+ integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==
+
+"@esbuild/linux-arm@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz#ecaabd1c23b701070484990db9a82f382f99e771"
+ integrity sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==
+
+"@esbuild/linux-ia32@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2"
+ integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==
+
+"@esbuild/linux-ia32@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz#3ed2273214178109741c09bd0687098a0243b333"
+ integrity sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==
+
+"@esbuild/linux-loong64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df"
+ integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==
+
+"@esbuild/linux-loong64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz#a0fdf440b5485c81b0fbb316b08933d217f5d3ac"
+ integrity sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==
+
+"@esbuild/linux-mips64el@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe"
+ integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==
+
+"@esbuild/linux-mips64el@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz#e11a2806346db8375b18f5e104c5a9d4e81807f6"
+ integrity sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==
+
+"@esbuild/linux-ppc64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4"
+ integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==
+
+"@esbuild/linux-ppc64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz#06a2744c5eaf562b1a90937855b4d6cf7c75ec96"
+ integrity sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==
+
+"@esbuild/linux-riscv64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc"
+ integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==
+
+"@esbuild/linux-riscv64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz#65b46a2892fc0d1af4ba342af3fe0fa4a8fe08e7"
+ integrity sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==
+
+"@esbuild/linux-s390x@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de"
+ integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==
+
+"@esbuild/linux-s390x@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz#e71ea18c70c3f604e241d16e4e5ab193a9785d6f"
+ integrity sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==
+
+"@esbuild/linux-x64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0"
+ integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==
+
+"@esbuild/linux-x64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz#d47f97391e80690d4dfe811a2e7d6927ad9eed24"
+ integrity sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==
+
+"@esbuild/netbsd-x64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047"
+ integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==
+
+"@esbuild/netbsd-x64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz#44e743c9778d57a8ace4b72f3c6b839a3b74a653"
+ integrity sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==
+
+"@esbuild/openbsd-arm64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz#05c5a1faf67b9881834758c69f3e51b7dee015d7"
+ integrity sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==
+
+"@esbuild/openbsd-x64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70"
+ integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==
+
+"@esbuild/openbsd-x64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz#2e58ae511bacf67d19f9f2dcd9e8c5a93f00c273"
+ integrity sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==
+
+"@esbuild/sunos-x64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b"
+ integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==
+
+"@esbuild/sunos-x64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz#adb022b959d18d3389ac70769cef5a03d3abd403"
+ integrity sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==
+
+"@esbuild/win32-arm64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d"
+ integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==
+
+"@esbuild/win32-arm64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz#84906f50c212b72ec360f48461d43202f4c8b9a2"
+ integrity sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==
+
+"@esbuild/win32-ia32@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b"
+ integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==
+
+"@esbuild/win32-ia32@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz#5e3eacc515820ff729e90d0cb463183128e82fac"
+ integrity sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==
+
+"@esbuild/win32-x64@0.21.5":
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c"
+ integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==
+
+"@esbuild/win32-x64@0.23.1":
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz#81fd50d11e2c32b2d6241470e3185b70c7b30699"
+ integrity sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==
+
+"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0":
version "4.4.0"
resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==
dependencies:
eslint-visitor-keys "^3.3.0"
-"@eslint-community/regexpp@^4.6.1":
+"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.6.1":
version "4.11.0"
resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.0.tgz#b0ffd0312b4a3fd2d6f77237e7248a5ad3a680ae"
integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==
@@ -1489,6 +1751,33 @@
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f"
integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==
+"@floating-ui/core@^1.6.0":
+ version "1.6.7"
+ resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.6.7.tgz#7602367795a390ff0662efd1c7ae8ca74e75fb12"
+ integrity sha512-yDzVT/Lm101nQ5TCVeK65LtdN7Tj4Qpr9RTXJ2vPFLqtLxwOrpoxAHAJI8J3yYWUc40J0BDBheaitK5SJmno2g==
+ dependencies:
+ "@floating-ui/utils" "^0.2.7"
+
+"@floating-ui/dom@^1.0.0":
+ version "1.6.10"
+ resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.6.10.tgz#b74c32f34a50336c86dcf1f1c845cf3a39e26d6f"
+ integrity sha512-fskgCFv8J8OamCmyun8MfjB1Olfn+uZKjOKZ0vhYF3gRmEUXcGOjxWL8bBr7i4kIuPZ2KD2S3EUIOxnjC8kl2A==
+ dependencies:
+ "@floating-ui/core" "^1.6.0"
+ "@floating-ui/utils" "^0.2.7"
+
+"@floating-ui/react-dom@^2.0.0":
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.1.1.tgz#cca58b6b04fc92b4c39288252e285e0422291fb0"
+ integrity sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg==
+ dependencies:
+ "@floating-ui/dom" "^1.0.0"
+
+"@floating-ui/utils@^0.2.7":
+ version "0.2.7"
+ resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.7.tgz#d0ece53ce99ab5a8e37ebdfe5e32452a2bfc073e"
+ integrity sha512-X8R8Oj771YRl/w+c1HqAC1szL8zWQRwFvgDwT129k9ACdBoud/+/rX9V0qiMl6LWUdP9voC2nDVZYPMQQsb6eA==
+
"@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0":
version "9.3.0"
resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb"
@@ -1520,6 +1809,18 @@
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3"
integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==
+"@isaacs/cliui@^8.0.2":
+ version "8.0.2"
+ resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550"
+ integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==
+ dependencies:
+ string-width "^5.1.2"
+ string-width-cjs "npm:string-width@^4.2.0"
+ strip-ansi "^7.0.1"
+ strip-ansi-cjs "npm:strip-ansi@^6.0.1"
+ wrap-ansi "^8.1.0"
+ wrap-ansi-cjs "npm:wrap-ansi@^7.0.0"
+
"@istanbuljs/load-nyc-config@^1.0.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
@@ -1531,7 +1832,7 @@
js-yaml "^3.13.1"
resolve-from "^5.0.0"
-"@istanbuljs/schema@^0.1.2":
+"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3":
version "0.1.3"
resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
@@ -1548,6 +1849,18 @@
jest-util "^27.5.1"
slash "^3.0.0"
+"@jest/console@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.7.0.tgz#cd4822dbdb84529265c5a2bdb529a3c9cc950ffc"
+ integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ jest-message-util "^29.7.0"
+ jest-util "^29.7.0"
+ slash "^3.0.0"
+
"@jest/core@^27.5.1":
version "27.5.1"
resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.5.1.tgz#267ac5f704e09dc52de2922cbf3af9edcd64b626"
@@ -1582,6 +1895,40 @@
slash "^3.0.0"
strip-ansi "^6.0.0"
+"@jest/core@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.7.0.tgz#b6cccc239f30ff36609658c5a5e2291757ce448f"
+ integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==
+ dependencies:
+ "@jest/console" "^29.7.0"
+ "@jest/reporters" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ ansi-escapes "^4.2.1"
+ chalk "^4.0.0"
+ ci-info "^3.2.0"
+ exit "^0.1.2"
+ graceful-fs "^4.2.9"
+ jest-changed-files "^29.7.0"
+ jest-config "^29.7.0"
+ jest-haste-map "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-regex-util "^29.6.3"
+ jest-resolve "^29.7.0"
+ jest-resolve-dependencies "^29.7.0"
+ jest-runner "^29.7.0"
+ jest-runtime "^29.7.0"
+ jest-snapshot "^29.7.0"
+ jest-util "^29.7.0"
+ jest-validate "^29.7.0"
+ jest-watcher "^29.7.0"
+ micromatch "^4.0.4"
+ pretty-format "^29.7.0"
+ slash "^3.0.0"
+ strip-ansi "^6.0.0"
+
"@jest/environment@^27.5.1":
version "27.5.1"
resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.5.1.tgz#d7425820511fe7158abbecc010140c3fd3be9c74"
@@ -1592,6 +1939,31 @@
"@types/node" "*"
jest-mock "^27.5.1"
+"@jest/environment@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.7.0.tgz#24d61f54ff1f786f3cd4073b4b94416383baf2a7"
+ integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==
+ dependencies:
+ "@jest/fake-timers" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ jest-mock "^29.7.0"
+
+"@jest/expect-utils@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.7.0.tgz#023efe5d26a8a70f21677d0a1afc0f0a44e3a1c6"
+ integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==
+ dependencies:
+ jest-get-type "^29.6.3"
+
+"@jest/expect@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.7.0.tgz#76a3edb0cb753b70dfbfe23283510d3d45432bf2"
+ integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==
+ dependencies:
+ expect "^29.7.0"
+ jest-snapshot "^29.7.0"
+
"@jest/fake-timers@^27.5.1":
version "27.5.1"
resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz#76979745ce0579c8a94a4678af7a748eda8ada74"
@@ -1604,6 +1976,18 @@
jest-mock "^27.5.1"
jest-util "^27.5.1"
+"@jest/fake-timers@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.7.0.tgz#fd91bf1fffb16d7d0d24a426ab1a47a49881a565"
+ integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@sinonjs/fake-timers" "^10.0.2"
+ "@types/node" "*"
+ jest-message-util "^29.7.0"
+ jest-mock "^29.7.0"
+ jest-util "^29.7.0"
+
"@jest/globals@^27.5.1":
version "27.5.1"
resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.5.1.tgz#7ac06ce57ab966566c7963431cef458434601b2b"
@@ -1613,6 +1997,16 @@
"@jest/types" "^27.5.1"
expect "^27.5.1"
+"@jest/globals@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.7.0.tgz#8d9290f9ec47ff772607fa864ca1d5a2efae1d4d"
+ integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==
+ dependencies:
+ "@jest/environment" "^29.7.0"
+ "@jest/expect" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ jest-mock "^29.7.0"
+
"@jest/reporters@^27.5.1":
version "27.5.1"
resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.5.1.tgz#ceda7be96170b03c923c37987b64015812ffec04"
@@ -1644,6 +2038,43 @@
terminal-link "^2.0.0"
v8-to-istanbul "^8.1.0"
+"@jest/reporters@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.7.0.tgz#04b262ecb3b8faa83b0b3d321623972393e8f4c7"
+ integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==
+ dependencies:
+ "@bcoe/v8-coverage" "^0.2.3"
+ "@jest/console" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@jridgewell/trace-mapping" "^0.3.18"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ collect-v8-coverage "^1.0.0"
+ exit "^0.1.2"
+ glob "^7.1.3"
+ graceful-fs "^4.2.9"
+ istanbul-lib-coverage "^3.0.0"
+ istanbul-lib-instrument "^6.0.0"
+ istanbul-lib-report "^3.0.0"
+ istanbul-lib-source-maps "^4.0.0"
+ istanbul-reports "^3.1.3"
+ jest-message-util "^29.7.0"
+ jest-util "^29.7.0"
+ jest-worker "^29.7.0"
+ slash "^3.0.0"
+ string-length "^4.0.1"
+ strip-ansi "^6.0.0"
+ v8-to-istanbul "^9.0.1"
+
+"@jest/schemas@^29.6.3":
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03"
+ integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==
+ dependencies:
+ "@sinclair/typebox" "^0.27.8"
+
"@jest/source-map@^27.5.1":
version "27.5.1"
resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.5.1.tgz#6608391e465add4205eae073b55e7f279e04e8cf"
@@ -1653,6 +2084,15 @@
graceful-fs "^4.2.9"
source-map "^0.6.0"
+"@jest/source-map@^29.6.3":
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.3.tgz#d90ba772095cf37a34a5eb9413f1b562a08554c4"
+ integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==
+ dependencies:
+ "@jridgewell/trace-mapping" "^0.3.18"
+ callsites "^3.0.0"
+ graceful-fs "^4.2.9"
+
"@jest/test-result@^27.5.1":
version "27.5.1"
resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.5.1.tgz#56a6585fa80f7cdab72b8c5fc2e871d03832f5bb"
@@ -1663,6 +2103,16 @@
"@types/istanbul-lib-coverage" "^2.0.0"
collect-v8-coverage "^1.0.0"
+"@jest/test-result@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.7.0.tgz#8db9a80aa1a097bb2262572686734baed9b1657c"
+ integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==
+ dependencies:
+ "@jest/console" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/istanbul-lib-coverage" "^2.0.0"
+ collect-v8-coverage "^1.0.0"
+
"@jest/test-sequencer@^27.5.1":
version "27.5.1"
resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz#4057e0e9cea4439e544c6353c6affe58d095745b"
@@ -1673,6 +2123,16 @@
jest-haste-map "^27.5.1"
jest-runtime "^27.5.1"
+"@jest/test-sequencer@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz#6cef977ce1d39834a3aea887a1726628a6f072ce"
+ integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==
+ dependencies:
+ "@jest/test-result" "^29.7.0"
+ graceful-fs "^4.2.9"
+ jest-haste-map "^29.7.0"
+ slash "^3.0.0"
+
"@jest/transform@^27.5.1":
version "27.5.1"
resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.5.1.tgz#6c3501dcc00c4c08915f292a600ece5ecfe1f409"
@@ -1694,6 +2154,27 @@
source-map "^0.6.1"
write-file-atomic "^3.0.0"
+"@jest/transform@^29.7.0":
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.7.0.tgz#df2dd9c346c7d7768b8a06639994640c642e284c"
+ integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==
+ dependencies:
+ "@babel/core" "^7.11.6"
+ "@jest/types" "^29.6.3"
+ "@jridgewell/trace-mapping" "^0.3.18"
+ babel-plugin-istanbul "^6.1.1"
+ chalk "^4.0.0"
+ convert-source-map "^2.0.0"
+ fast-json-stable-stringify "^2.1.0"
+ graceful-fs "^4.2.9"
+ jest-haste-map "^29.7.0"
+ jest-regex-util "^29.6.3"
+ jest-util "^29.7.0"
+ micromatch "^4.0.4"
+ pirates "^4.0.4"
+ slash "^3.0.0"
+ write-file-atomic "^4.0.2"
+
"@jest/types@^27.5.1":
version "27.5.1"
resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80"
@@ -1705,7 +2186,19 @@
"@types/yargs" "^16.0.0"
chalk "^4.0.0"
-"@jridgewell/gen-mapping@^0.3.5":
+"@jest/types@^29.6.3":
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59"
+ integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==
+ dependencies:
+ "@jest/schemas" "^29.6.3"
+ "@types/istanbul-lib-coverage" "^2.0.0"
+ "@types/istanbul-reports" "^3.0.0"
+ "@types/node" "*"
+ "@types/yargs" "^17.0.8"
+ chalk "^4.0.0"
+
+"@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5":
version "0.3.5"
resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36"
integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==
@@ -1714,7 +2207,7 @@
"@jridgewell/sourcemap-codec" "^1.4.10"
"@jridgewell/trace-mapping" "^0.3.24"
-"@jridgewell/resolve-uri@^3.1.0":
+"@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0":
version "3.1.2"
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6"
integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==
@@ -1737,7 +2230,15 @@
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a"
integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==
-"@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25":
+"@jridgewell/trace-mapping@0.3.9":
+ version "0.3.9"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9"
+ integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==
+ dependencies:
+ "@jridgewell/resolve-uri" "^3.0.3"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+
+"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.20", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25":
version "0.3.25"
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0"
integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==
@@ -1812,9 +2313,9 @@
integrity sha512-e7X7bbn3Z6DWnDi75UWn+REgAbLEqxI8Tq2pkFOFAMpWAWApz/YCUhtWMWn410h8Q2fYiYL7Yg5OlxMOCfFjJQ==
"@next/mdx@^14.1.4":
- version "14.2.6"
- resolved "https://registry.yarnpkg.com/@next/mdx/-/mdx-14.2.6.tgz#23405d377dd978541f57695499d79bb4fb3d61a4"
- integrity sha512-59jhA506DXouG5T1lUjG8TAYGIQNia6hDuDgRIJwWfOEzgDvIOZHL3/oUGFH9BS2/Y75a9y0l65Lz0aMvUEWeg==
+ version "14.2.11"
+ resolved "https://registry.yarnpkg.com/@next/mdx/-/mdx-14.2.11.tgz#d68b7558186794147a45b7b6acdb27a69c904243"
+ integrity sha512-aTs8U7N5FLXArb1YfHMsomMtHa0sulAWrfbPdZKDIpF9DUNwY8tbRVpHLz/AbIwoJk/4oDhDwDSJBFZXYxrjzw==
dependencies:
source-map "^0.7.0"
@@ -1896,6 +2397,313 @@
"@nodelib/fs.scandir" "2.1.5"
fastq "^1.6.0"
+"@pkgjs/parseargs@^0.11.0":
+ version "0.11.0"
+ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33"
+ integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==
+
+"@radix-ui/number@1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/number/-/number-1.1.0.tgz#1e95610461a09cdf8bb05c152e76ca1278d5da46"
+ integrity sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==
+
+"@radix-ui/primitive@1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/primitive/-/primitive-1.1.0.tgz#42ef83b3b56dccad5d703ae8c42919a68798bbe2"
+ integrity sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==
+
+"@radix-ui/react-arrow@1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz#744f388182d360b86285217e43b6c63633f39e7a"
+ integrity sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==
+ dependencies:
+ "@radix-ui/react-primitive" "2.0.0"
+
+"@radix-ui/react-collection@1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-collection/-/react-collection-1.1.0.tgz#f18af78e46454a2360d103c2251773028b7724ed"
+ integrity sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==
+ dependencies:
+ "@radix-ui/react-compose-refs" "1.1.0"
+ "@radix-ui/react-context" "1.1.0"
+ "@radix-ui/react-primitive" "2.0.0"
+ "@radix-ui/react-slot" "1.1.0"
+
+"@radix-ui/react-compose-refs@1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz#656432461fc8283d7b591dcf0d79152fae9ecc74"
+ integrity sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==
+
+"@radix-ui/react-context@1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-context/-/react-context-1.1.0.tgz#6df8d983546cfd1999c8512f3a8ad85a6e7fcee8"
+ integrity sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==
+
+"@radix-ui/react-direction@1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-direction/-/react-direction-1.1.0.tgz#a7d39855f4d077adc2a1922f9c353c5977a09cdc"
+ integrity sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==
+
+"@radix-ui/react-dismissable-layer@1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.0.tgz#2cd0a49a732372513733754e6032d3fb7988834e"
+ integrity sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==
+ dependencies:
+ "@radix-ui/primitive" "1.1.0"
+ "@radix-ui/react-compose-refs" "1.1.0"
+ "@radix-ui/react-primitive" "2.0.0"
+ "@radix-ui/react-use-callback-ref" "1.1.0"
+ "@radix-ui/react-use-escape-keydown" "1.1.0"
+
+"@radix-ui/react-focus-guards@1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.0.tgz#8e9abb472a9a394f59a1b45f3dd26cfe3fc6da13"
+ integrity sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw==
+
+"@radix-ui/react-focus-scope@1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.0.tgz#ebe2891a298e0a33ad34daab2aad8dea31caf0b2"
+ integrity sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==
+ dependencies:
+ "@radix-ui/react-compose-refs" "1.1.0"
+ "@radix-ui/react-primitive" "2.0.0"
+ "@radix-ui/react-use-callback-ref" "1.1.0"
+
+"@radix-ui/react-icons@^1.3.0":
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-icons/-/react-icons-1.3.0.tgz#c61af8f323d87682c5ca76b856d60c2312dbcb69"
+ integrity sha512-jQxj/0LKgp+j9BiTXz3O3sgs26RNet2iLWmsPyRz2SIcR4q/4SbazXfnYwbAr+vLYKSfc7qxzyGQA1HLlYiuNw==
+
+"@radix-ui/react-id@1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-id/-/react-id-1.1.0.tgz#de47339656594ad722eb87f94a6b25f9cffae0ed"
+ integrity sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==
+ dependencies:
+ "@radix-ui/react-use-layout-effect" "1.1.0"
+
+"@radix-ui/react-popper@1.2.0":
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-popper/-/react-popper-1.2.0.tgz#a3e500193d144fe2d8f5d5e60e393d64111f2a7a"
+ integrity sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==
+ dependencies:
+ "@floating-ui/react-dom" "^2.0.0"
+ "@radix-ui/react-arrow" "1.1.0"
+ "@radix-ui/react-compose-refs" "1.1.0"
+ "@radix-ui/react-context" "1.1.0"
+ "@radix-ui/react-primitive" "2.0.0"
+ "@radix-ui/react-use-callback-ref" "1.1.0"
+ "@radix-ui/react-use-layout-effect" "1.1.0"
+ "@radix-ui/react-use-rect" "1.1.0"
+ "@radix-ui/react-use-size" "1.1.0"
+ "@radix-ui/rect" "1.1.0"
+
+"@radix-ui/react-portal@1.1.1":
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-portal/-/react-portal-1.1.1.tgz#1957f1eb2e1aedfb4a5475bd6867d67b50b1d15f"
+ integrity sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==
+ dependencies:
+ "@radix-ui/react-primitive" "2.0.0"
+ "@radix-ui/react-use-layout-effect" "1.1.0"
+
+"@radix-ui/react-primitive@2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz#fe05715faa9203a223ccc0be15dc44b9f9822884"
+ integrity sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==
+ dependencies:
+ "@radix-ui/react-slot" "1.1.0"
+
+"@radix-ui/react-select@^2.1.1":
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-select/-/react-select-2.1.1.tgz#df05cb0b29d3deaef83b505917c4042e0e418a9f"
+ integrity sha512-8iRDfyLtzxlprOo9IicnzvpsO1wNCkuwzzCM+Z5Rb5tNOpCdMvcc2AkzX0Fz+Tz9v6NJ5B/7EEgyZveo4FBRfQ==
+ dependencies:
+ "@radix-ui/number" "1.1.0"
+ "@radix-ui/primitive" "1.1.0"
+ "@radix-ui/react-collection" "1.1.0"
+ "@radix-ui/react-compose-refs" "1.1.0"
+ "@radix-ui/react-context" "1.1.0"
+ "@radix-ui/react-direction" "1.1.0"
+ "@radix-ui/react-dismissable-layer" "1.1.0"
+ "@radix-ui/react-focus-guards" "1.1.0"
+ "@radix-ui/react-focus-scope" "1.1.0"
+ "@radix-ui/react-id" "1.1.0"
+ "@radix-ui/react-popper" "1.2.0"
+ "@radix-ui/react-portal" "1.1.1"
+ "@radix-ui/react-primitive" "2.0.0"
+ "@radix-ui/react-slot" "1.1.0"
+ "@radix-ui/react-use-callback-ref" "1.1.0"
+ "@radix-ui/react-use-controllable-state" "1.1.0"
+ "@radix-ui/react-use-layout-effect" "1.1.0"
+ "@radix-ui/react-use-previous" "1.1.0"
+ "@radix-ui/react-visually-hidden" "1.1.0"
+ aria-hidden "^1.1.1"
+ react-remove-scroll "2.5.7"
+
+"@radix-ui/react-slot@1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-slot/-/react-slot-1.1.0.tgz#7c5e48c36ef5496d97b08f1357bb26ed7c714b84"
+ integrity sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==
+ dependencies:
+ "@radix-ui/react-compose-refs" "1.1.0"
+
+"@radix-ui/react-switch@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-switch/-/react-switch-1.1.0.tgz#fcf8e778500f1d60d4b2bec2fc3fad77a7c118e3"
+ integrity sha512-OBzy5WAj641k0AOSpKQtreDMe+isX0MQJ1IVyF03ucdF3DunOnROVrjWs8zsXUxC3zfZ6JL9HFVCUlMghz9dJw==
+ dependencies:
+ "@radix-ui/primitive" "1.1.0"
+ "@radix-ui/react-compose-refs" "1.1.0"
+ "@radix-ui/react-context" "1.1.0"
+ "@radix-ui/react-primitive" "2.0.0"
+ "@radix-ui/react-use-controllable-state" "1.1.0"
+ "@radix-ui/react-use-previous" "1.1.0"
+ "@radix-ui/react-use-size" "1.1.0"
+
+"@radix-ui/react-use-callback-ref@1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz#bce938ca413675bc937944b0d01ef6f4a6dc5bf1"
+ integrity sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==
+
+"@radix-ui/react-use-controllable-state@1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz#1321446857bb786917df54c0d4d084877aab04b0"
+ integrity sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==
+ dependencies:
+ "@radix-ui/react-use-callback-ref" "1.1.0"
+
+"@radix-ui/react-use-escape-keydown@1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz#31a5b87c3b726504b74e05dac1edce7437b98754"
+ integrity sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==
+ dependencies:
+ "@radix-ui/react-use-callback-ref" "1.1.0"
+
+"@radix-ui/react-use-layout-effect@1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz#3c2c8ce04827b26a39e442ff4888d9212268bd27"
+ integrity sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==
+
+"@radix-ui/react-use-previous@1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-use-previous/-/react-use-previous-1.1.0.tgz#d4dd37b05520f1d996a384eb469320c2ada8377c"
+ integrity sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==
+
+"@radix-ui/react-use-rect@1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz#13b25b913bd3e3987cc9b073a1a164bb1cf47b88"
+ integrity sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==
+ dependencies:
+ "@radix-ui/rect" "1.1.0"
+
+"@radix-ui/react-use-size@1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz#b4dba7fbd3882ee09e8d2a44a3eed3a7e555246b"
+ integrity sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==
+ dependencies:
+ "@radix-ui/react-use-layout-effect" "1.1.0"
+
+"@radix-ui/react-visually-hidden@1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz#ad47a8572580f7034b3807c8e6740cd41038a5a2"
+ integrity sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==
+ dependencies:
+ "@radix-ui/react-primitive" "2.0.0"
+
+"@radix-ui/rect@1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/rect/-/rect-1.1.0.tgz#f817d1d3265ac5415dadc67edab30ae196696438"
+ integrity sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==
+
+"@remix-run/router@1.19.2":
+ version "1.19.2"
+ resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.19.2.tgz#0c896535473291cb41f152c180bedd5680a3b273"
+ integrity sha512-baiMx18+IMuD1yyvOGaHM9QrVUPGGG0jC+z+IPHnRJWUAUvaKuWKyE8gjDj2rzv3sz9zOGoRSPgeBVHRhZnBlA==
+
+"@rollup/rollup-android-arm-eabi@4.21.3":
+ version "4.21.3"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.21.3.tgz#155c7d82c1b36c3ad84d9adf9b3cd520cba81a0f"
+ integrity sha512-MmKSfaB9GX+zXl6E8z4koOr/xU63AMVleLEa64v7R0QF/ZloMs5vcD1sHgM64GXXS1csaJutG+ddtzcueI/BLg==
+
+"@rollup/rollup-android-arm64@4.21.3":
+ version "4.21.3"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.21.3.tgz#b94b6fa002bd94a9cbd8f9e47e23b25e5bd113ba"
+ integrity sha512-zrt8ecH07PE3sB4jPOggweBjJMzI1JG5xI2DIsUbkA+7K+Gkjys6eV7i9pOenNSDJH3eOr/jLb/PzqtmdwDq5g==
+
+"@rollup/rollup-darwin-arm64@4.21.3":
+ version "4.21.3"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.21.3.tgz#0934126cf9cbeadfe0eb7471ab5d1517e8cd8dcc"
+ integrity sha512-P0UxIOrKNBFTQaXTxOH4RxuEBVCgEA5UTNV6Yz7z9QHnUJ7eLX9reOd/NYMO3+XZO2cco19mXTxDMXxit4R/eQ==
+
+"@rollup/rollup-darwin-x64@4.21.3":
+ version "4.21.3"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.21.3.tgz#0ce8e1e0f349778938c7c90e4bdc730640e0a13e"
+ integrity sha512-L1M0vKGO5ASKntqtsFEjTq/fD91vAqnzeaF6sfNAy55aD+Hi2pBI5DKwCO+UNDQHWsDViJLqshxOahXyLSh3EA==
+
+"@rollup/rollup-linux-arm-gnueabihf@4.21.3":
+ version "4.21.3"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.21.3.tgz#5669d34775ad5d71e4f29ade99d0ff4df523afb6"
+ integrity sha512-btVgIsCjuYFKUjopPoWiDqmoUXQDiW2A4C3Mtmp5vACm7/GnyuprqIDPNczeyR5W8rTXEbkmrJux7cJmD99D2g==
+
+"@rollup/rollup-linux-arm-musleabihf@4.21.3":
+ version "4.21.3"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.21.3.tgz#f6d1a0e1da4061370cb2f4244fbdd727c806dd88"
+ integrity sha512-zmjbSphplZlau6ZTkxd3+NMtE4UKVy7U4aVFMmHcgO5CUbw17ZP6QCgyxhzGaU/wFFdTfiojjbLG3/0p9HhAqA==
+
+"@rollup/rollup-linux-arm64-gnu@4.21.3":
+ version "4.21.3"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.21.3.tgz#ed96a05e99743dee4d23cc4913fc6e01a0089c88"
+ integrity sha512-nSZfcZtAnQPRZmUkUQwZq2OjQciR6tEoJaZVFvLHsj0MF6QhNMg0fQ6mUOsiCUpTqxTx0/O6gX0V/nYc7LrgPw==
+
+"@rollup/rollup-linux-arm64-musl@4.21.3":
+ version "4.21.3"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.21.3.tgz#057ea26eaa7e537a06ded617d23d57eab3cecb58"
+ integrity sha512-MnvSPGO8KJXIMGlQDYfvYS3IosFN2rKsvxRpPO2l2cum+Z3exiExLwVU+GExL96pn8IP+GdH8Tz70EpBhO0sIQ==
+
+"@rollup/rollup-linux-powerpc64le-gnu@4.21.3":
+ version "4.21.3"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.21.3.tgz#6e6e1f9404c9bf3fbd7d51cd11cd288a9a2843aa"
+ integrity sha512-+W+p/9QNDr2vE2AXU0qIy0qQE75E8RTwTwgqS2G5CRQ11vzq0tbnfBd6brWhS9bCRjAjepJe2fvvkvS3dno+iw==
+
+"@rollup/rollup-linux-riscv64-gnu@4.21.3":
+ version "4.21.3"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.21.3.tgz#eef1536a53f6e6658a2a778130e6b1a4a41cb439"
+ integrity sha512-yXH6K6KfqGXaxHrtr+Uoy+JpNlUlI46BKVyonGiaD74ravdnF9BUNC+vV+SIuB96hUMGShhKV693rF9QDfO6nQ==
+
+"@rollup/rollup-linux-s390x-gnu@4.21.3":
+ version "4.21.3"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.21.3.tgz#2b28fb89ca084efaf8086f435025d96b4a966957"
+ integrity sha512-R8cwY9wcnApN/KDYWTH4gV/ypvy9yZUHlbJvfaiXSB48JO3KpwSpjOGqO4jnGkLDSk1hgjYkTbTt6Q7uvPf8eg==
+
+"@rollup/rollup-linux-x64-gnu@4.21.3":
+ version "4.21.3"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.3.tgz#5226cde6c6b495b04a3392c1d2c572844e42f06b"
+ integrity sha512-kZPbX/NOPh0vhS5sI+dR8L1bU2cSO9FgxwM8r7wHzGydzfSjLRCFAT87GR5U9scj2rhzN3JPYVC7NoBbl4FZ0g==
+
+"@rollup/rollup-linux-x64-musl@4.21.3":
+ version "4.21.3"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.21.3.tgz#2c2412982e6c2a00a2ecac6d548ebb02f0aa6ca4"
+ integrity sha512-S0Yq+xA1VEH66uiMNhijsWAafffydd2X5b77eLHfRmfLsRSpbiAWiRHV6DEpz6aOToPsgid7TI9rGd6zB1rhbg==
+
+"@rollup/rollup-win32-arm64-msvc@4.21.3":
+ version "4.21.3"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.21.3.tgz#fbb6ef5379199e2ec0103ef32877b0985c773a55"
+ integrity sha512-9isNzeL34yquCPyerog+IMCNxKR8XYmGd0tHSV+OVx0TmE0aJOo9uw4fZfUuk2qxobP5sug6vNdZR6u7Mw7Q+Q==
+
+"@rollup/rollup-win32-ia32-msvc@4.21.3":
+ version "4.21.3"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.21.3.tgz#d50e2082e147e24d87fe34abbf6246525ec3845a"
+ integrity sha512-nMIdKnfZfzn1Vsk+RuOvl43ONTZXoAPUUxgcU0tXooqg4YrAqzfKzVenqqk2g5efWh46/D28cKFrOzDSW28gTA==
+
+"@rollup/rollup-win32-x64-msvc@4.21.3":
+ version "4.21.3"
+ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.21.3.tgz#4115233aa1bd5a2060214f96d8511f6247093212"
+ integrity sha512-fOvu7PCQjAj4eWDEuD8Xz5gpzFqXzGlxHZozHP4b9Jxv9APtdxL6STqztDzMLuRXEc4UpXGGhx029Xgm91QBeA==
+
+"@rtsao/scc@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8"
+ integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==
+
"@sideway/address@^4.1.5":
version "4.1.5"
resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.5.tgz#4bc149a0076623ced99ca8208ba780d65a99b9d5"
@@ -1913,6 +2721,11 @@
resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df"
integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==
+"@sinclair/typebox@^0.27.8":
+ version "0.27.8"
+ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e"
+ integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==
+
"@sinonjs/commons@^1.7.0":
version "1.8.6"
resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9"
@@ -1920,6 +2733,20 @@
dependencies:
type-detect "4.0.8"
+"@sinonjs/commons@^3.0.0":
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd"
+ integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==
+ dependencies:
+ type-detect "4.0.8"
+
+"@sinonjs/fake-timers@^10.0.2":
+ version "10.3.0"
+ resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66"
+ integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==
+ dependencies:
+ "@sinonjs/commons" "^3.0.0"
+
"@sinonjs/fake-timers@^8.0.1":
version "8.1.0"
resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz#3fdc2b6cb58935b21bfb8d1625eb1300484316e7"
@@ -1965,6 +2792,26 @@
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf"
integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
+"@tsconfig/node10@^1.0.7":
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2"
+ integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==
+
+"@tsconfig/node12@^1.0.7":
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d"
+ integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==
+
+"@tsconfig/node14@^1.0.0":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1"
+ integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==
+
+"@tsconfig/node16@^1.0.2":
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9"
+ integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==
+
"@types/acorn@^4.0.0":
version "4.0.6"
resolved "https://registry.yarnpkg.com/@types/acorn/-/acorn-4.0.6.tgz#d61ca5480300ac41a7d973dd5b84d0a591154a22"
@@ -1977,7 +2824,7 @@
resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.4.tgz#1a31c3d378850d2778dabb6374d036dcba4ba708"
integrity sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==
-"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14":
+"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14", "@types/babel__core@^7.20.5":
version "7.20.5"
resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.5.tgz#3df15f27ba85319caa07ba08d0721889bb39c017"
integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==
@@ -2054,7 +2901,7 @@
dependencies:
"@types/estree" "*"
-"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.5":
+"@types/estree@*", "@types/estree@1.0.5", "@types/estree@^1.0.0", "@types/estree@^1.0.5":
version "1.0.5"
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4"
integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==
@@ -2084,7 +2931,7 @@
"@types/qs" "*"
"@types/serve-static" "*"
-"@types/glob@^7.1.1":
+"@types/glob@^7.1.0", "@types/glob@^7.1.1":
version "7.2.0"
resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb"
integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==
@@ -2092,7 +2939,7 @@
"@types/minimatch" "*"
"@types/node" "*"
-"@types/graceful-fs@^4.1.2":
+"@types/graceful-fs@^4.1.2", "@types/graceful-fs@^4.1.3":
version "4.1.9"
resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4"
integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==
@@ -2144,6 +2991,14 @@
dependencies:
"@types/istanbul-lib-report" "*"
+"@types/jest@^29.5.3":
+ version "29.5.13"
+ resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.13.tgz#8bc571659f401e6a719a7bf0dbcb8b78c71a8adc"
+ integrity sha512-wd+MVEZCHt23V0/L642O5APvspWply/rGY5BcW4SUETo2UzPU3Z26qr8jC2qxpimI2jjx9h7+2cj2FwIr01bXg==
+ dependencies:
+ expect "^29.0.0"
+ pretty-format "^29.0.0"
+
"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9":
version "7.0.15"
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
@@ -2194,16 +3049,16 @@
"@types/node" "*"
"@types/node@*":
- version "22.5.0"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-22.5.0.tgz#10f01fe9465166b4cab72e75f60d8b99d019f958"
- integrity sha512-DkFrJOe+rfdHTqqMg0bSNlGlQ85hSoh2TPzZyhHsXnMtligRWpxUySiyw8FY14ITt24HVCiQPWxS3KO/QlGmWg==
+ version "22.5.4"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-22.5.4.tgz#83f7d1f65bc2ed223bdbf57c7884f1d5a4fa84e8"
+ integrity sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==
dependencies:
undici-types "~6.19.2"
-"@types/node@^20.14.5":
- version "20.16.1"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-20.16.1.tgz#0b44b15271d0e2191ca68faf1fbe506e06aed732"
- integrity sha512-zJDo7wEadFtSyNz5QITDfRcrhqDvQI1xQNQ0VoizPjM/dVAODqqIUWbJPkvsxmTI0MYRGRikcdjMPhOssnPejQ==
+"@types/node@^20.14.5", "@types/node@^20.4.5":
+ version "20.16.5"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.16.5.tgz#d43c7f973b32ffdf9aa7bd4f80e1072310fd7a53"
+ integrity sha512-VwYCweNo3ERajwy0IUlqqcyZ8/A7Zwa9ZP3MnENWcB11AejO+tLy3pu850goUW2FC/IJMdZUfKpX/yxL1gymCA==
dependencies:
undici-types "~6.19.2"
@@ -2212,6 +3067,11 @@
resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.3.tgz#3e51a17e291d01d17d3fc61422015a933af7a08f"
integrity sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==
+"@types/prop-types@*":
+ version "15.7.12"
+ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.12.tgz#12bb1e2be27293c1406acb6af1c3f3a1481d98c6"
+ integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==
+
"@types/qs@*":
version "6.9.15"
resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.15.tgz#adde8a060ec9c305a82de1babc1056e73bd64dce"
@@ -2222,6 +3082,21 @@
resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb"
integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==
+"@types/react-dom@^18.2.19", "@types/react-dom@^18.2.22":
+ version "18.3.0"
+ resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.0.tgz#0cbc818755d87066ab6ca74fbedb2547d74a82b0"
+ integrity sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==
+ dependencies:
+ "@types/react" "*"
+
+"@types/react@*", "@types/react@^18.2.56", "@types/react@^18.2.66":
+ version "18.3.5"
+ resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.5.tgz#5f524c2ad2089c0ff372bbdabc77ca2c4dbadf8f"
+ integrity sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA==
+ dependencies:
+ "@types/prop-types" "*"
+ csstype "^3.0.2"
+
"@types/retry@0.12.0":
version "0.12.0"
resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.0.tgz#2b35eccfcee7d38cd72ad99232fbd58bffb3c84d"
@@ -2292,11 +3167,110 @@
dependencies:
"@types/yargs-parser" "*"
+"@types/yargs@^17.0.8":
+ version "17.0.33"
+ resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.33.tgz#8c32303da83eec050a84b3c7ae7b9f922d13e32d"
+ integrity sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==
+ dependencies:
+ "@types/yargs-parser" "*"
+
+"@typescript-eslint/eslint-plugin@^7.2.0":
+ version "7.18.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz#b16d3cf3ee76bf572fdf511e79c248bdec619ea3"
+ integrity sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==
+ dependencies:
+ "@eslint-community/regexpp" "^4.10.0"
+ "@typescript-eslint/scope-manager" "7.18.0"
+ "@typescript-eslint/type-utils" "7.18.0"
+ "@typescript-eslint/utils" "7.18.0"
+ "@typescript-eslint/visitor-keys" "7.18.0"
+ graphemer "^1.4.0"
+ ignore "^5.3.1"
+ natural-compare "^1.4.0"
+ ts-api-utils "^1.3.0"
+
+"@typescript-eslint/parser@^7.2.0":
+ version "7.18.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.18.0.tgz#83928d0f1b7f4afa974098c64b5ce6f9051f96a0"
+ integrity sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==
+ dependencies:
+ "@typescript-eslint/scope-manager" "7.18.0"
+ "@typescript-eslint/types" "7.18.0"
+ "@typescript-eslint/typescript-estree" "7.18.0"
+ "@typescript-eslint/visitor-keys" "7.18.0"
+ debug "^4.3.4"
+
+"@typescript-eslint/scope-manager@7.18.0":
+ version "7.18.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz#c928e7a9fc2c0b3ed92ab3112c614d6bd9951c83"
+ integrity sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==
+ dependencies:
+ "@typescript-eslint/types" "7.18.0"
+ "@typescript-eslint/visitor-keys" "7.18.0"
+
+"@typescript-eslint/type-utils@7.18.0":
+ version "7.18.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz#2165ffaee00b1fbbdd2d40aa85232dab6998f53b"
+ integrity sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==
+ dependencies:
+ "@typescript-eslint/typescript-estree" "7.18.0"
+ "@typescript-eslint/utils" "7.18.0"
+ debug "^4.3.4"
+ ts-api-utils "^1.3.0"
+
+"@typescript-eslint/types@7.18.0":
+ version "7.18.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.18.0.tgz#b90a57ccdea71797ffffa0321e744f379ec838c9"
+ integrity sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==
+
+"@typescript-eslint/typescript-estree@7.18.0":
+ version "7.18.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz#b5868d486c51ce8f312309ba79bdb9f331b37931"
+ integrity sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==
+ dependencies:
+ "@typescript-eslint/types" "7.18.0"
+ "@typescript-eslint/visitor-keys" "7.18.0"
+ debug "^4.3.4"
+ globby "^11.1.0"
+ is-glob "^4.0.3"
+ minimatch "^9.0.4"
+ semver "^7.6.0"
+ ts-api-utils "^1.3.0"
+
+"@typescript-eslint/utils@7.18.0":
+ version "7.18.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-7.18.0.tgz#bca01cde77f95fc6a8d5b0dbcbfb3d6ca4be451f"
+ integrity sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==
+ dependencies:
+ "@eslint-community/eslint-utils" "^4.4.0"
+ "@typescript-eslint/scope-manager" "7.18.0"
+ "@typescript-eslint/types" "7.18.0"
+ "@typescript-eslint/typescript-estree" "7.18.0"
+
+"@typescript-eslint/visitor-keys@7.18.0":
+ version "7.18.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz#0564629b6124d67607378d0f0332a0495b25e7d7"
+ integrity sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==
+ dependencies:
+ "@typescript-eslint/types" "7.18.0"
+ eslint-visitor-keys "^3.4.3"
+
"@ungap/structured-clone@^1.0.0", "@ungap/structured-clone@^1.2.0":
version "1.2.0"
resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406"
integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==
+"@vitejs/plugin-react@^4.2.1":
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/@vitejs/plugin-react/-/plugin-react-4.3.1.tgz#d0be6594051ded8957df555ff07a991fb618b48e"
+ integrity sha512-m/V2syj5CuVnaxcUJOQRel/Wr31FFXRFlnOoq1TVtkCxsY5veGMTEmpWHndrhB2U8ScHtCQB1e+4hWYExQc6Lg==
+ dependencies:
+ "@babel/core" "^7.24.5"
+ "@babel/plugin-transform-react-jsx-self" "^7.24.5"
+ "@babel/plugin-transform-react-jsx-source" "^7.24.1"
+ "@types/babel__core" "^7.20.5"
+ react-refresh "^0.14.2"
+
"@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1":
version "1.12.1"
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.12.1.tgz#bb16a0e8b1914f979f45864c23819cc3e3f0d4bb"
@@ -2493,10 +3467,10 @@ acorn-walk@^7.1.1:
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
-acorn-walk@^8.2.0:
- version "8.3.3"
- resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.3.tgz#9caeac29eefaa0c41e3d4c65137de4d6f34df43e"
- integrity sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==
+acorn-walk@^8.1.1, acorn-walk@^8.2.0:
+ version "8.3.4"
+ resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.4.tgz#794dd169c3977edf4ba4ea47583587c5866236b7"
+ integrity sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==
dependencies:
acorn "^8.11.0"
@@ -2505,7 +3479,7 @@ acorn@^7.1.1:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
-acorn@^8.0.0, acorn@^8.11.0, acorn@^8.2.4, acorn@^8.5.0, acorn@^8.7.0, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0:
+acorn@^8.0.0, acorn@^8.11.0, acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.0, acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0:
version "8.12.1"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248"
integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==
@@ -2593,6 +3567,11 @@ ansi-regex@^5.0.1:
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
+ansi-regex@^6.0.1:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654"
+ integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==
+
ansi-styles@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
@@ -2612,6 +3591,16 @@ ansi-styles@^5.0.0:
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
+ansi-styles@^6.1.0:
+ version "6.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5"
+ integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
+
+any-promise@^1.0.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
+ integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==
+
anymatch@^3.0.3, anymatch@~3.1.2:
version "3.1.3"
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
@@ -2620,6 +3609,11 @@ anymatch@^3.0.3, anymatch@~3.1.2:
normalize-path "^3.0.0"
picomatch "^2.0.4"
+arg@^4.1.0:
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
+ integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
+
arg@^5.0.2:
version "5.0.2"
resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c"
@@ -2637,6 +3631,13 @@ argparse@^2.0.1:
resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+aria-hidden@^1.1.1:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/aria-hidden/-/aria-hidden-1.2.4.tgz#b78e383fdbc04d05762c78b4a25a501e736c4522"
+ integrity sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==
+ dependencies:
+ tslib "^2.0.0"
+
aria-query@5.1.3, aria-query@~5.1.3:
version "5.1.3"
resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.1.3.tgz#19db27cd101152773631396f7a95a3b58c22c35e"
@@ -2662,7 +3663,7 @@ array-flatten@1.1.1:
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==
-array-includes@^3.1.6, array-includes@^3.1.7, array-includes@^3.1.8:
+array-includes@^3.1.6, array-includes@^3.1.8:
version "3.1.8"
resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d"
integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==
@@ -2703,7 +3704,7 @@ array.prototype.findlast@^1.2.5:
es-object-atoms "^1.0.0"
es-shim-unscopables "^1.0.2"
-array.prototype.findlastindex@^1.2.3:
+array.prototype.findlastindex@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d"
integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==
@@ -2791,9 +3792,9 @@ ast-types@^0.13.2:
tslib "^2.0.1"
astring@^1.8.0:
- version "1.8.6"
- resolved "https://registry.yarnpkg.com/astring/-/astring-1.8.6.tgz#2c9c157cf1739d67561c56ba896e6948f6b93731"
- integrity sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/astring/-/astring-1.9.0.tgz#cc73e6062a7eb03e7d19c22d8b0b3451fd9bfeef"
+ integrity sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==
async-exit-hook@^1.1.2:
version "1.1.2"
@@ -2805,7 +3806,7 @@ async@3.2.3:
resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9"
integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==
-async@^3.2.0:
+async@^3.2.0, async@^3.2.3:
version "3.2.6"
resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce"
integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==
@@ -2815,6 +3816,18 @@ asynckit@^0.4.0:
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
+autoprefixer@^10.4.19:
+ version "10.4.20"
+ resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.20.tgz#5caec14d43976ef42e32dcb4bd62878e96be5b3b"
+ integrity sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==
+ dependencies:
+ browserslist "^4.23.3"
+ caniuse-lite "^1.0.30001646"
+ fraction.js "^4.3.7"
+ normalize-range "^0.1.2"
+ picocolors "^1.0.1"
+ postcss-value-parser "^4.2.0"
+
available-typed-arrays@^1.0.7:
version "1.0.7"
resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846"
@@ -2822,7 +3835,7 @@ available-typed-arrays@^1.0.7:
dependencies:
possible-typed-array-names "^1.0.0"
-axe-core@^4.9.0, axe-core@^4.9.1:
+axe-core@^4.10.0, axe-core@^4.9.0:
version "4.10.0"
resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.10.0.tgz#d9e56ab0147278272739a000880196cdfe113b59"
integrity sha512-Mr2ZakwQ7XUAjp7pAwQWRhhK8mQQ6JAaNWSjmjxil0R8BPioMtQsTLOolGYkji1rcL++3dCqZA3zWqpT+9Ew6g==
@@ -2841,21 +3854,19 @@ axios@0.26.0:
dependencies:
follow-redirects "^1.14.8"
-axios@^1.6.1:
- version "1.7.4"
- resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.4.tgz#4c8ded1b43683c8dd362973c393f3ede24052aa2"
- integrity sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==
+axios@^1.6.0, axios@^1.7.4:
+ version "1.7.7"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.7.tgz#2f554296f9892a72ac8d8e4c5b79c14a91d0a47f"
+ integrity sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==
dependencies:
follow-redirects "^1.15.6"
form-data "^4.0.0"
proxy-from-env "^1.1.0"
-axobject-query@~3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1"
- integrity sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==
- dependencies:
- deep-equal "^2.0.5"
+axobject-query@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-4.1.0.tgz#28768c76d0e3cff21bc62a9e2d0b6ac30042a1ee"
+ integrity sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==
babel-jest@^27.5.1:
version "27.5.1"
@@ -2871,6 +3882,19 @@ babel-jest@^27.5.1:
graceful-fs "^4.2.9"
slash "^3.0.0"
+babel-jest@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.7.0.tgz#f4369919225b684c56085998ac63dbd05be020d5"
+ integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==
+ dependencies:
+ "@jest/transform" "^29.7.0"
+ "@types/babel__core" "^7.1.14"
+ babel-plugin-istanbul "^6.1.1"
+ babel-preset-jest "^29.6.3"
+ chalk "^4.0.0"
+ graceful-fs "^4.2.9"
+ slash "^3.0.0"
+
babel-loader@^8.2.5:
version "8.3.0"
resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.3.0.tgz#124936e841ba4fe8176786d6ff28add1f134d6a8"
@@ -2902,6 +3926,16 @@ babel-plugin-jest-hoist@^27.5.1:
"@types/babel__core" "^7.0.0"
"@types/babel__traverse" "^7.0.6"
+babel-plugin-jest-hoist@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz#aadbe943464182a8922c3c927c3067ff40d24626"
+ integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==
+ dependencies:
+ "@babel/template" "^7.3.3"
+ "@babel/types" "^7.3.3"
+ "@types/babel__core" "^7.1.14"
+ "@types/babel__traverse" "^7.0.6"
+
babel-plugin-module-resolver@5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-5.0.0.tgz#2b7fc176bd55da25f516abf96015617b4f70fc73"
@@ -2997,6 +4031,14 @@ babel-preset-jest@^27.5.1:
babel-plugin-jest-hoist "^27.5.1"
babel-preset-current-node-syntax "^1.0.0"
+babel-preset-jest@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz#fa05fa510e7d493896d7b0dd2033601c840f171c"
+ integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==
+ dependencies:
+ babel-plugin-jest-hoist "^29.6.3"
+ babel-preset-current-node-syntax "^1.0.0"
+
bail@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d"
@@ -3027,10 +4069,10 @@ bluebird@3.7.2:
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
-body-parser@1.20.2:
- version "1.20.2"
- resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.2.tgz#6feb0e21c4724d06de7ff38da36dad4f57a747fd"
- integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==
+body-parser@1.20.3:
+ version "1.20.3"
+ resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6"
+ integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==
dependencies:
bytes "3.1.2"
content-type "~1.0.5"
@@ -3040,7 +4082,7 @@ body-parser@1.20.2:
http-errors "2.0.0"
iconv-lite "0.4.24"
on-finished "2.4.1"
- qs "6.11.0"
+ qs "6.13.0"
raw-body "2.5.2"
type-is "~1.6.18"
unpipe "1.0.0"
@@ -3100,6 +4142,13 @@ browserslist@^4.21.10, browserslist@^4.23.1, browserslist@^4.23.3:
node-releases "^2.0.18"
update-browserslist-db "^1.1.0"
+bs-logger@^0.2.6:
+ version "0.2.6"
+ resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8"
+ integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==
+ dependencies:
+ fast-json-stable-stringify "2.x"
+
bser@2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05"
@@ -3150,7 +4199,28 @@ callsites@^3.0.0:
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
-camelcase@^5.3.1:
+camel-case@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73"
+ integrity sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==
+ dependencies:
+ no-case "^2.2.0"
+ upper-case "^1.1.1"
+
+camel-case@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a"
+ integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==
+ dependencies:
+ pascal-case "^3.1.2"
+ tslib "^2.0.3"
+
+camelcase-css@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5"
+ integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
+
+camelcase@^5.3.1:
version "5.3.1"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
@@ -3166,9 +4236,18 @@ camelize@^1.0.0:
integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==
caniuse-lite@^1.0.30001579, caniuse-lite@^1.0.30001646:
- version "1.0.30001651"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001651.tgz#52de59529e8b02b1aedcaaf5c05d9e23c0c28138"
- integrity sha512-9Cf+Xv1jJNe1xPZLGuUXLNkE1BoDkqRqYyFJ9TDYSqhduqA4hu4oR9HluGoWYQC/aj8WHjsGVV+bwkh0+tegRg==
+ version "1.0.30001660"
+ resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001660.tgz#31218de3463fabb44d0b7607b652e56edf2e2355"
+ integrity sha512-GacvNTTuATm26qC74pt+ad1fW15mlQ/zuTzzY1ZoIzECTP8HURDfF43kNxPgf7H1jmelCBQTTbBNxdSXOA7Bqg==
+
+capital-case@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669"
+ integrity sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==
+ dependencies:
+ no-case "^3.0.4"
+ tslib "^2.0.3"
+ upper-case-first "^2.0.2"
ccount@^2.0.0:
version "2.0.1"
@@ -3195,7 +4274,7 @@ chalk@3.0.0:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
-chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0:
+chalk@4.1.2, chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0:
version "4.1.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
@@ -3212,6 +4291,48 @@ chalk@^2.3.0, chalk@^2.4.0, chalk@^2.4.1, chalk@^2.4.2:
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
+change-case@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/change-case/-/change-case-3.1.0.tgz#0e611b7edc9952df2e8513b27b42de72647dd17e"
+ integrity sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==
+ dependencies:
+ camel-case "^3.0.0"
+ constant-case "^2.0.0"
+ dot-case "^2.1.0"
+ header-case "^1.0.0"
+ is-lower-case "^1.1.0"
+ is-upper-case "^1.1.0"
+ lower-case "^1.1.1"
+ lower-case-first "^1.0.0"
+ no-case "^2.3.2"
+ param-case "^2.1.0"
+ pascal-case "^2.0.0"
+ path-case "^2.1.0"
+ sentence-case "^2.1.0"
+ snake-case "^2.1.0"
+ swap-case "^1.1.0"
+ title-case "^2.1.0"
+ upper-case "^1.1.1"
+ upper-case-first "^1.1.0"
+
+change-case@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12"
+ integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==
+ dependencies:
+ camel-case "^4.1.2"
+ capital-case "^1.0.4"
+ constant-case "^3.0.4"
+ dot-case "^3.0.4"
+ header-case "^2.0.4"
+ no-case "^3.0.4"
+ param-case "^3.0.4"
+ pascal-case "^3.1.2"
+ path-case "^3.0.4"
+ sentence-case "^3.0.4"
+ snake-case "^3.0.4"
+ tslib "^2.0.3"
+
char-regex@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf"
@@ -3264,7 +4385,7 @@ check-more-types@2.24.0:
resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600"
integrity sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA==
-chokidar@^3.4.0, chokidar@^3.5.3:
+chokidar@^3.5.3, chokidar@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b"
integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
@@ -3303,9 +4424,9 @@ ci-info@^3.2.0:
integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==
cjs-module-lexer@^1.0.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz#c485341ae8fd999ca4ee5af2d7a1c9ae01e0099c"
- integrity sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.4.1.tgz#707413784dbb3a72aa11c2f2b042a0bef4004170"
+ integrity sha512-cuSVIHi9/9E/+821Qjdvngor+xpnlwnuwIyZOaLmHBVdXL+gP+I6QQB9VkO7RI77YIcTV+S1W9AreJ5eN63JBA==
clean-stack@^2.0.0:
version "2.2.0"
@@ -3326,6 +4447,15 @@ cliui@^7.0.2:
strip-ansi "^6.0.0"
wrap-ansi "^7.0.0"
+cliui@^8.0.1:
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa"
+ integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==
+ dependencies:
+ string-width "^4.2.0"
+ strip-ansi "^6.0.1"
+ wrap-ansi "^7.0.0"
+
clone-deep@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387"
@@ -3379,6 +4509,11 @@ color-name@~1.1.4:
resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+color2k@^2.0.0:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/color2k/-/color2k-2.0.3.tgz#a771244f6b6285541c82aa65ff0a0c624046e533"
+ integrity sha512-zW190nQTIoXcGCaU08DvVNFTmQhUpnJfVuAKfWqUQkflXKpaDdpaYoM0iluLS9lgJNHyBF58KKA2FBEwkD7wog==
+
colorette@^2.0.10, colorette@^2.0.14:
version "2.0.20"
resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a"
@@ -3416,6 +4551,16 @@ commander@^2.20.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+commander@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e"
+ integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==
+
+commander@^4.0.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
+ integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
+
commander@^5.0.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae"
@@ -3471,6 +4616,23 @@ connect-history-api-fallback@^2.0.0:
resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8"
integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==
+constant-case@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-2.0.0.tgz#4175764d389d3fa9c8ecd29186ed6005243b6a46"
+ integrity sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==
+ dependencies:
+ snake-case "^2.1.0"
+ upper-case "^1.1.1"
+
+constant-case@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-3.0.4.tgz#3b84a9aeaf4cf31ec45e6bf5de91bdfb0589faf1"
+ integrity sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==
+ dependencies:
+ no-case "^3.0.4"
+ tslib "^2.0.3"
+ upper-case "^2.0.2"
+
content-disposition@0.5.4:
version "0.5.4"
resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"
@@ -3520,6 +4682,24 @@ core-util-is@~1.0.0:
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
+create-jest@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/create-jest/-/create-jest-29.7.0.tgz#a355c5b3cb1e1af02ba177fe7afd7feee49a5320"
+ integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ chalk "^4.0.0"
+ exit "^0.1.2"
+ graceful-fs "^4.2.9"
+ jest-config "^29.7.0"
+ jest-util "^29.7.0"
+ prompts "^2.0.1"
+
+create-require@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
+ integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==
+
cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3:
version "7.0.3"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
@@ -3556,6 +4736,11 @@ css-tree@1.0.0-alpha.39:
mdn-data "2.0.6"
source-map "^0.6.1"
+cssesc@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
+ integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
+
cssom@^0.4.4:
version "0.4.4"
resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10"
@@ -3578,6 +4763,11 @@ cssstyle@^2.3.0:
dependencies:
cssom "~0.3.6"
+csstype@^3.0.2:
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81"
+ integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==
+
damerau-levenshtein@^1.0.8:
version "1.0.8"
resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7"
@@ -3640,12 +4830,12 @@ debug@2.6.9:
dependencies:
ms "2.0.0"
-debug@4, debug@4.3.6, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.5:
- version "4.3.6"
- resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.6.tgz#2ab2c38fbaffebf8aa95fdfe6d88438c7a13c52b"
- integrity sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==
+debug@4, debug@4.3.7, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5:
+ version "4.3.7"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52"
+ integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==
dependencies:
- ms "2.1.2"
+ ms "^2.1.3"
debug@4.3.1:
version "4.3.1"
@@ -3688,6 +4878,11 @@ dedent@^0.7.0:
resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c"
integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==
+dedent@^1.0.0:
+ version "1.5.3"
+ resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.5.3.tgz#99aee19eb9bae55a67327717b6e848d0bf777e5a"
+ integrity sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==
+
deep-eql@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df"
@@ -3837,6 +5032,15 @@ des.js@^1.0.1:
inherits "^2.0.1"
minimalistic-assert "^1.0.0"
+design-tokens@*:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/design-tokens/-/design-tokens-1.0.1.tgz#d1f1f8fbebf07f422b263d00b379209bea61bb5b"
+ integrity sha512-0uLCdWkhlzgHVAA/rbWzjgZHFldWC8G0qwB3WV2VGefkJzTLemubhRuq5tgC+R/NkDGcn2ScoGf9ZuFQQWByig==
+ dependencies:
+ change-case "^3.1.0"
+ commander "^3.0.2"
+ self-referenced-object "^1.1.0"
+
destroy@1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015"
@@ -3847,6 +5051,11 @@ detect-newline@^3.0.0:
resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651"
integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==
+detect-node-es@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/detect-node-es/-/detect-node-es-1.1.0.tgz#163acdf643330caa0b4cd7c21e7ee7755d6fa493"
+ integrity sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==
+
detect-node@^2.0.4:
version "2.1.0"
resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1"
@@ -3864,12 +5073,22 @@ devlop@^1.0.0, devlop@^1.1.0:
dependencies:
dequal "^2.0.0"
+didyoumean@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037"
+ integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==
+
diff-sequences@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.5.1.tgz#eaecc0d327fd68c8d9672a1e64ab8dccb2ef5327"
integrity sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==
-diff@^4.0.2:
+diff-sequences@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921"
+ integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==
+
+diff@^4.0.1, diff@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
@@ -3881,6 +5100,11 @@ dir-glob@^3.0.1:
dependencies:
path-type "^4.0.0"
+dlv@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79"
+ integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==
+
dns-packet@^5.2.2:
version "5.6.1"
resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-5.6.1.tgz#ae888ad425a9d1478a0674256ab866de1012cf2f"
@@ -3921,6 +5145,26 @@ domexception@^4.0.0:
dependencies:
webidl-conversions "^7.0.0"
+dot-case@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-2.1.1.tgz#34dcf37f50a8e93c2b3bca8bb7fb9155c7da3bee"
+ integrity sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==
+ dependencies:
+ no-case "^2.2.0"
+
+dot-case@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751"
+ integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==
+ dependencies:
+ no-case "^3.0.4"
+ tslib "^2.0.3"
+
+dotenv@^16.3.1:
+ version "16.4.5"
+ resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f"
+ integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==
+
dotenv@^8.2.0:
version "8.6.0"
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b"
@@ -3931,15 +5175,27 @@ duplexer@~0.1.1:
resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
+eastasianwidth@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
+ integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==
+
ee-first@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==
+ejs@^3.1.10:
+ version "3.1.10"
+ resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.10.tgz#69ab8358b14e896f80cc39e62087b88500c3ac3b"
+ integrity sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==
+ dependencies:
+ jake "^10.8.5"
+
electron-to-chromium@^1.5.4:
- version "1.5.13"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz#1abf0410c5344b2b829b7247e031f02810d442e6"
- integrity sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==
+ version "1.5.20"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.20.tgz#2914e42cfc5cc992cbee5538b500ddaf7c2c7091"
+ integrity sha512-74mdl6Fs1HHzK9SUX4CKFxAtAe3nUns48y79TskHNAG6fGOlLfyKA4j855x+0b5u8rWJIrlaG9tcTPstMlwjIw==
elegant-spinner@^1.0.1:
version "1.0.1"
@@ -3951,6 +5207,11 @@ email-validator@^2.0.4:
resolved "https://registry.yarnpkg.com/email-validator/-/email-validator-2.0.4.tgz#b8dfaa5d0dae28f1b03c95881d904d4e40bfe7ed"
integrity sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ==
+emittery@^0.13.1:
+ version "0.13.1"
+ resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad"
+ integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==
+
emittery@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.4.1.tgz#abe9d3297389ba424ac87e53d1c701962ce7433d"
@@ -3981,6 +5242,11 @@ encodeurl@~1.0.2:
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==
+encodeurl@~2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-2.0.0.tgz#7b8ea898077d7e409d3ac45474ea38eaf0857a58"
+ integrity sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==
+
end-of-stream@^1.1.0:
version "1.4.4"
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
@@ -4161,10 +5427,69 @@ es-to-primitive@^1.2.1:
is-date-object "^1.0.1"
is-symbol "^1.0.2"
+esbuild@^0.21.3:
+ version "0.21.5"
+ resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d"
+ integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==
+ optionalDependencies:
+ "@esbuild/aix-ppc64" "0.21.5"
+ "@esbuild/android-arm" "0.21.5"
+ "@esbuild/android-arm64" "0.21.5"
+ "@esbuild/android-x64" "0.21.5"
+ "@esbuild/darwin-arm64" "0.21.5"
+ "@esbuild/darwin-x64" "0.21.5"
+ "@esbuild/freebsd-arm64" "0.21.5"
+ "@esbuild/freebsd-x64" "0.21.5"
+ "@esbuild/linux-arm" "0.21.5"
+ "@esbuild/linux-arm64" "0.21.5"
+ "@esbuild/linux-ia32" "0.21.5"
+ "@esbuild/linux-loong64" "0.21.5"
+ "@esbuild/linux-mips64el" "0.21.5"
+ "@esbuild/linux-ppc64" "0.21.5"
+ "@esbuild/linux-riscv64" "0.21.5"
+ "@esbuild/linux-s390x" "0.21.5"
+ "@esbuild/linux-x64" "0.21.5"
+ "@esbuild/netbsd-x64" "0.21.5"
+ "@esbuild/openbsd-x64" "0.21.5"
+ "@esbuild/sunos-x64" "0.21.5"
+ "@esbuild/win32-arm64" "0.21.5"
+ "@esbuild/win32-ia32" "0.21.5"
+ "@esbuild/win32-x64" "0.21.5"
+
+esbuild@~0.23.0:
+ version "0.23.1"
+ resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.23.1.tgz#40fdc3f9265ec0beae6f59824ade1bd3d3d2dab8"
+ integrity sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==
+ optionalDependencies:
+ "@esbuild/aix-ppc64" "0.23.1"
+ "@esbuild/android-arm" "0.23.1"
+ "@esbuild/android-arm64" "0.23.1"
+ "@esbuild/android-x64" "0.23.1"
+ "@esbuild/darwin-arm64" "0.23.1"
+ "@esbuild/darwin-x64" "0.23.1"
+ "@esbuild/freebsd-arm64" "0.23.1"
+ "@esbuild/freebsd-x64" "0.23.1"
+ "@esbuild/linux-arm" "0.23.1"
+ "@esbuild/linux-arm64" "0.23.1"
+ "@esbuild/linux-ia32" "0.23.1"
+ "@esbuild/linux-loong64" "0.23.1"
+ "@esbuild/linux-mips64el" "0.23.1"
+ "@esbuild/linux-ppc64" "0.23.1"
+ "@esbuild/linux-riscv64" "0.23.1"
+ "@esbuild/linux-s390x" "0.23.1"
+ "@esbuild/linux-x64" "0.23.1"
+ "@esbuild/netbsd-x64" "0.23.1"
+ "@esbuild/openbsd-arm64" "0.23.1"
+ "@esbuild/openbsd-x64" "0.23.1"
+ "@esbuild/sunos-x64" "0.23.1"
+ "@esbuild/win32-arm64" "0.23.1"
+ "@esbuild/win32-ia32" "0.23.1"
+ "@esbuild/win32-x64" "0.23.1"
+
escalade@^3.1.1, escalade@^3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27"
- integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5"
+ integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
escape-html@~1.0.3:
version "1.0.3"
@@ -4247,10 +5572,10 @@ eslint-import-resolver-node@^0.3.9:
is-core-module "^2.13.0"
resolve "^1.22.4"
-eslint-module-utils@^2.8.0:
- version "2.8.1"
- resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz#52f2404300c3bd33deece9d7372fb337cc1d7c34"
- integrity sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==
+eslint-module-utils@^2.9.0:
+ version "2.11.0"
+ resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.11.0.tgz#b99b211ca4318243f09661fae088f373ad5243c4"
+ integrity sha512-gbBE5Hitek/oG6MUVj6sFuzEjA/ClzNflVrLovHi/JgLdC7fiN5gLAY1WIPW1a0V5I999MnsrvVrCOGmmVqDBQ==
dependencies:
debug "^3.2.7"
@@ -4261,39 +5586,40 @@ eslint-module-utils@^2.8.0:
requireindex "~1.1.0"
eslint-plugin-import@^2.26.0:
- version "2.29.1"
- resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643"
- integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==
+ version "2.30.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.30.0.tgz#21ceea0fc462657195989dd780e50c92fe95f449"
+ integrity sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==
dependencies:
- array-includes "^3.1.7"
- array.prototype.findlastindex "^1.2.3"
+ "@rtsao/scc" "^1.1.0"
+ array-includes "^3.1.8"
+ array.prototype.findlastindex "^1.2.5"
array.prototype.flat "^1.3.2"
array.prototype.flatmap "^1.3.2"
debug "^3.2.7"
doctrine "^2.1.0"
eslint-import-resolver-node "^0.3.9"
- eslint-module-utils "^2.8.0"
- hasown "^2.0.0"
- is-core-module "^2.13.1"
+ eslint-module-utils "^2.9.0"
+ hasown "^2.0.2"
+ is-core-module "^2.15.1"
is-glob "^4.0.3"
minimatch "^3.1.2"
- object.fromentries "^2.0.7"
- object.groupby "^1.0.1"
- object.values "^1.1.7"
+ object.fromentries "^2.0.8"
+ object.groupby "^1.0.3"
+ object.values "^1.2.0"
semver "^6.3.1"
tsconfig-paths "^3.15.0"
eslint-plugin-jsx-a11y@^6.4.1:
- version "6.9.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.9.0.tgz#67ab8ff460d4d3d6a0b4a570e9c1670a0a8245c8"
- integrity sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==
+ version "6.10.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.0.tgz#36fb9dead91cafd085ddbe3829602fb10ef28339"
+ integrity sha512-ySOHvXX8eSN6zz8Bywacm7CvGNhUtdjvqfQDVe6020TUK34Cywkw7m0KsCCk1Qtm9G1FayfTN1/7mMYnYO2Bhg==
dependencies:
aria-query "~5.1.3"
array-includes "^3.1.8"
array.prototype.flatmap "^1.3.2"
ast-types-flow "^0.0.8"
- axe-core "^4.9.1"
- axobject-query "~3.1.1"
+ axe-core "^4.10.0"
+ axobject-query "^4.1.0"
damerau-levenshtein "^1.0.8"
emoji-regex "^9.2.2"
es-iterator-helpers "^1.0.19"
@@ -4326,15 +5652,20 @@ eslint-plugin-react-hooks@^4.6.0:
resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.2.tgz#c829eb06c0e6f484b3fbb85a97e57784f328c596"
integrity sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==
+eslint-plugin-react-refresh@^0.4.5, eslint-plugin-react-refresh@^0.4.6:
+ version "0.4.11"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.11.tgz#e450761a2bdb260aa10cfb73f846209a737827cb"
+ integrity sha512-wrAKxMbVr8qhXTtIKfXqAn5SAtRZt0aXxe5P23Fh4pUAdC6XEsybGLB8P0PI4j1yYqOgUEUlzKAGDfo7rJOjcw==
+
eslint-plugin-react@3.4.2:
version "3.4.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-3.4.2.tgz#9e6ef8a8054f8ac3b87b97236e7b849e5835dc6c"
integrity sha512-rIhweRuQMLxNOOHHl9pEkQR+6QiKt9wUHpBvjSefSzUg5qdhC08jc2rxsSm1TAXii9rxabhzK5MUu+YBJxn6sA==
-eslint-plugin-react@^7.31.11:
- version "7.35.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.35.0.tgz#00b1e4559896710e58af6358898f2ff917ea4c41"
- integrity sha512-v501SSMOWv8gerHkk+IIQBkcGRGrO2nfybfj5pLxuJNFTPxxA3PSryhXTK+9pNbtkggheDdsC0E9Q8CuPk6JKA==
+eslint-plugin-react@^7.31.11, eslint-plugin-react@^7.33.2, eslint-plugin-react@^7.34.1:
+ version "7.36.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.36.1.tgz#f1dabbb11f3d4ebe8b0cf4e54aff4aee81144ee5"
+ integrity sha512-/qwbqNXZoq+VP30s1d4Nc1C5GTxjJQjk4Jzs4Wq2qzxFM7dSmuG2UkIjg2USMLh3A/aVcUNrK7v0J5U1XEGGwA==
dependencies:
array-includes "^3.1.8"
array.prototype.findlast "^1.2.5"
@@ -4381,7 +5712,7 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
-eslint@^8.30.0:
+eslint@^8.30.0, eslint@^8.56.0, eslint@^8.57.0:
version "8.57.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668"
integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==
@@ -4615,37 +5946,48 @@ expect@^27.5.1:
jest-matcher-utils "^27.5.1"
jest-message-util "^27.5.1"
+expect@^29.0.0, expect@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc"
+ integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==
+ dependencies:
+ "@jest/expect-utils" "^29.7.0"
+ jest-get-type "^29.6.3"
+ jest-matcher-utils "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-util "^29.7.0"
+
express@^4.17.3:
- version "4.19.2"
- resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465"
- integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==
+ version "4.21.0"
+ resolved "https://registry.yarnpkg.com/express/-/express-4.21.0.tgz#d57cb706d49623d4ac27833f1cbc466b668eb915"
+ integrity sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==
dependencies:
accepts "~1.3.8"
array-flatten "1.1.1"
- body-parser "1.20.2"
+ body-parser "1.20.3"
content-disposition "0.5.4"
content-type "~1.0.4"
cookie "0.6.0"
cookie-signature "1.0.6"
debug "2.6.9"
depd "2.0.0"
- encodeurl "~1.0.2"
+ encodeurl "~2.0.0"
escape-html "~1.0.3"
etag "~1.8.1"
- finalhandler "1.2.0"
+ finalhandler "1.3.1"
fresh "0.5.2"
http-errors "2.0.0"
- merge-descriptors "1.0.1"
+ merge-descriptors "1.0.3"
methods "~1.1.2"
on-finished "2.4.1"
parseurl "~1.3.3"
- path-to-regexp "0.1.7"
+ path-to-regexp "0.1.10"
proxy-addr "~2.0.7"
- qs "6.11.0"
+ qs "6.13.0"
range-parser "~1.2.1"
safe-buffer "5.2.1"
- send "0.18.0"
- serve-static "1.15.0"
+ send "0.19.0"
+ serve-static "1.16.2"
setprototypeof "1.2.0"
statuses "2.0.1"
type-is "~1.6.18"
@@ -4667,7 +6009,7 @@ fast-diff@^1.1.2:
resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.3.0.tgz#ece407fa550a64d638536cd727e129c61616e0f0"
integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==
-fast-glob@^3.0.3, fast-glob@^3.2.9:
+fast-glob@^3.0.3, fast-glob@^3.2.9, fast-glob@^3.3.0:
version "3.3.2"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129"
integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==
@@ -4678,7 +6020,7 @@ fast-glob@^3.0.3, fast-glob@^3.2.9:
merge2 "^1.3.0"
micromatch "^4.0.4"
-fast-json-stable-stringify@^2.0.0:
+fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
@@ -4738,6 +6080,13 @@ file-uri-to-path@2:
resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-2.0.0.tgz#7b415aeba227d575851e0a5b0c640d7656403fba"
integrity sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==
+filelist@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5"
+ integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==
+ dependencies:
+ minimatch "^5.0.1"
+
fill-range@^7.1.1:
version "7.1.1"
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
@@ -4745,13 +6094,13 @@ fill-range@^7.1.1:
dependencies:
to-regex-range "^5.0.1"
-finalhandler@1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32"
- integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==
+finalhandler@1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.3.1.tgz#0c575f1d1d324ddd1da35ad7ece3df7d19088019"
+ integrity sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==
dependencies:
debug "2.6.9"
- encodeurl "~1.0.2"
+ encodeurl "~2.0.0"
escape-html "~1.0.3"
on-finished "2.4.1"
parseurl "~1.3.3"
@@ -4759,12 +6108,11 @@ finalhandler@1.2.0:
unpipe "~1.0.0"
find-babel-config@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/find-babel-config/-/find-babel-config-2.1.1.tgz#93703fc8e068db5e4c57592900c5715dd04b7e5b"
- integrity sha512-5Ji+EAysHGe1OipH7GN4qDjok5Z1uw5KAwDCbicU/4wyTZY7CqOCzcWbG7J5ad9mazq67k89fXlbc1MuIfl9uA==
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/find-babel-config/-/find-babel-config-2.1.2.tgz#2841b1bfbbbcdb971e1e39df8cbc43dafa901716"
+ integrity sha512-ZfZp1rQyp4gyuxqt1ZqjFGVeVBvmpURMqdIWXbPRfB97Bf6BzdK/xSIbylEINzQ0kB5tlDQfn9HkNXXWsqTqLg==
dependencies:
json5 "^2.2.3"
- path-exists "^4.0.0"
find-cache-dir@^2.0.0:
version "2.1.0"
@@ -4827,9 +6175,9 @@ flatted@^3.2.9:
integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==
follow-redirects@^1.0.0, follow-redirects@^1.14.8, follow-redirects@^1.15.6:
- version "1.15.6"
- resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b"
- integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==
+ version "1.15.9"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1"
+ integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==
for-each@^0.3.3:
version "0.3.3"
@@ -4838,6 +6186,14 @@ for-each@^0.3.3:
dependencies:
is-callable "^1.1.3"
+foreground-child@^3.1.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77"
+ integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==
+ dependencies:
+ cross-spawn "^7.0.0"
+ signal-exit "^4.0.1"
+
form-data@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f"
@@ -4866,6 +6222,11 @@ forwarded@0.2.0:
resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==
+fraction.js@^4.3.7:
+ version "4.3.7"
+ resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7"
+ integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==
+
fresh@0.5.2:
version "0.5.2"
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
@@ -4885,7 +6246,7 @@ fs-extra@^10.0.0:
jsonfile "^6.0.1"
universalify "^2.0.0"
-fs-extra@^11.1.0:
+fs-extra@^11.1.0, fs-extra@^11.2.0:
version "11.2.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b"
integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==
@@ -4918,7 +6279,7 @@ fs.realpath@^1.0.0:
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
-fsevents@^2.3.2, fsevents@~2.3.2:
+fsevents@^2.3.2, fsevents@~2.3.2, fsevents@~2.3.3:
version "2.3.3"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
@@ -4977,6 +6338,11 @@ get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2, get-intrinsic@
has-symbols "^1.0.3"
hasown "^2.0.0"
+get-nonce@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/get-nonce/-/get-nonce-1.0.1.tgz#fdf3f0278073820d2ce9426c18f07481b1e0cdf3"
+ integrity sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==
+
get-os-info@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/get-os-info/-/get-os-info-1.0.2.tgz#5f65df82d3fa16192d2363fc621f050f8a570864"
@@ -5018,6 +6384,13 @@ get-symbol-description@^1.0.2:
es-errors "^1.3.0"
get-intrinsic "^1.2.4"
+get-tsconfig@^4.7.5:
+ version "4.8.1"
+ resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.8.1.tgz#8995eb391ae6e1638d251118c7b56de7eb425471"
+ integrity sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==
+ dependencies:
+ resolve-pkg-maps "^1.0.0"
+
get-uri@3:
version "3.0.2"
resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-3.0.2.tgz#f0ef1356faabc70e1f9404fa3b66b2ba9bfc725c"
@@ -5056,6 +6429,18 @@ glob-to-regexp@^0.4.1:
resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
+glob@^10.3.10:
+ version "10.4.5"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.5.tgz#f4d9f0b90ffdbab09c9d77f5f29b4262517b0956"
+ integrity sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==
+ dependencies:
+ foreground-child "^3.1.0"
+ jackspeak "^3.1.2"
+ minimatch "^9.0.4"
+ minipass "^7.1.2"
+ package-json-from-dist "^1.0.0"
+ path-scurry "^1.11.1"
+
glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0:
version "7.2.3"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
@@ -5113,7 +6498,7 @@ globby@^10.0.1:
merge2 "^1.2.3"
slash "^3.0.0"
-globby@^11.0.1, globby@^11.0.4:
+globby@^11.0.1, globby@^11.0.4, globby@^11.1.0:
version "11.1.0"
resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
@@ -5167,17 +6552,16 @@ grommet-icons@^4.12.1:
"grommet-icons@https://github.com/grommet/grommet-icons/tarball/stable":
version "4.12.1"
- uid "92f4e88ab19fa618a4952ac74802f606bf44c207"
resolved "https://github.com/grommet/grommet-icons/tarball/stable#92f4e88ab19fa618a4952ac74802f606bf44c207"
-"grommet-theme-hpe@https://github.com/grommet/grommet-theme-hpe/tarball/stable":
- version "0.0.0"
- resolved "https://github.com/grommet/grommet-theme-hpe/tarball/stable#630d1db073646e794a609d5209c60d5eed1d7aa0"
+grommet-theme-hpe@5.6.0:
+ version "5.6.0"
+ resolved "https://registry.yarnpkg.com/grommet-theme-hpe/-/grommet-theme-hpe-5.6.0.tgz#9968f222b38167180e7ff5de9ca8b59ac972ba0e"
+ integrity sha512-Kad+b8jPlJAqVij35HsO4Tk7W/wiHwfw2wtT1QGUqX9YI5pBVQgNkRTYkGys7iuLlSCH4u+CO1NsBC9T+8JcFA==
"grommet@https://github.com/grommet/grommet/tarball/stable":
- version "2.40.0"
- uid "9b5b7a5065bcffb5a4bab783c1a0813762afd8b8"
- resolved "https://github.com/grommet/grommet/tarball/stable#9b5b7a5065bcffb5a4bab783c1a0813762afd8b8"
+ version "2.40.1"
+ resolved "https://github.com/grommet/grommet/tarball/stable#8eabc5546a3bf25f98e78f82978879a6d5357fe5"
dependencies:
"@emotion/is-prop-valid" "^1.2.1"
grommet-icons "^4.12.1"
@@ -5185,6 +6569,11 @@ grommet-icons@^4.12.1:
markdown-to-jsx "7.4.4"
prop-types "^15.8.1"
+gsap@^3.12.5:
+ version "3.12.5"
+ resolved "https://registry.yarnpkg.com/gsap/-/gsap-3.12.5.tgz#136c02dad4c673b441bdb1ca00104bfcb4eae7f4"
+ integrity sha512-srBfnk4n+Oe/ZnMIOXt3gT605BX9x5+rh/prT2F1SsNJsU1XuMiP0E2aptW481OnonOGACZWBqseH5Z7csHxhQ==
+
handle-thing@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e"
@@ -5302,6 +6691,22 @@ hastscript@^6.0.0:
property-information "^5.0.0"
space-separated-tokens "^1.0.0"
+header-case@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/header-case/-/header-case-1.0.1.tgz#9535973197c144b09613cd65d317ef19963bd02d"
+ integrity sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==
+ dependencies:
+ no-case "^2.2.0"
+ upper-case "^1.1.3"
+
+header-case@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063"
+ integrity sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==
+ dependencies:
+ capital-case "^1.0.4"
+ tslib "^2.0.3"
+
highlight-es@^1.0.0:
version "1.0.3"
resolved "https://registry.yarnpkg.com/highlight-es/-/highlight-es-1.0.3.tgz#12abc300a27e686f6f18010134e3a5c6d2fe6930"
@@ -5340,6 +6745,26 @@ hpack.js@^2.1.6:
readable-stream "^2.0.1"
wbuf "^1.1.0"
+"hpe-design-tokens-brand-refresh@https://github.com/grommet/hpe-design-system/tarball/design-tokens-brand-refresh-stable":
+ version "0.1.0"
+ resolved "https://github.com/grommet/hpe-design-system/tarball/design-tokens-brand-refresh-stable#4147cf8a9b3c467dfff0be11c019dc49e00333d6"
+ dependencies:
+ axios "^1.6.0"
+ dotenv "^16.3.1"
+ sd-tailwindcss-transformer "^1.4.5"
+ ts-node "^10.9.1"
+ typescript "^5.1.6"
+
+"hpe-design-tokens-old-theme@https://github.com/grommet/hpe-design-system/tarball/design-tokens-old-theme-stable":
+ version "0.1.0"
+ resolved "https://github.com/grommet/hpe-design-system/tarball/design-tokens-old-theme-stable#3b5a99fb6b3f021e6cf4e344202be6a7849c3163"
+ dependencies:
+ axios "^1.6.0"
+ dotenv "^16.3.1"
+ sd-tailwindcss-transformer "^1.4.5"
+ ts-node "^10.9.1"
+ typescript "^5.1.6"
+
html-encoding-sniffer@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3"
@@ -5519,7 +6944,7 @@ iconv-lite@0.6.3:
dependencies:
safer-buffer ">= 2.1.2 < 3.0.0"
-ignore@^5.1.1, ignore@^5.2.0:
+ignore@^5.1.1, ignore@^5.2.0, ignore@^5.3.1:
version "5.3.2"
resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5"
integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==
@@ -5587,10 +7012,10 @@ inline-style-parser@0.1.1:
resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1"
integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==
-inline-style-parser@0.2.3:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.2.3.tgz#e35c5fb45f3a83ed7849fe487336eb7efa25971c"
- integrity sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==
+inline-style-parser@0.2.4:
+ version "0.2.4"
+ resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.2.4.tgz#f4af5fe72e612839fcd453d989a586566d695f22"
+ integrity sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==
internal-slot@^1.0.4, internal-slot@^1.0.7:
version "1.0.7"
@@ -5606,6 +7031,13 @@ interpret@^3.1.1:
resolved "https://registry.yarnpkg.com/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4"
integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==
+invariant@^2.2.4:
+ version "2.2.4"
+ resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
+ integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
+ dependencies:
+ loose-envify "^1.0.0"
+
ip-address@^9.0.5:
version "9.0.5"
resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-9.0.5.tgz#117a960819b08780c3bd1f14ef3c1cc1d3f3ea5a"
@@ -5717,7 +7149,7 @@ is-ci@^1.0.10:
dependencies:
ci-info "^1.5.0"
-is-core-module@^2.13.0, is-core-module@^2.13.1:
+is-core-module@^2.13.0, is-core-module@^2.15.1:
version "2.15.1"
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37"
integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==
@@ -5821,6 +7253,13 @@ is-hexadecimal@^2.0.0:
resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027"
integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==
+is-lower-case@^1.1.0:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/is-lower-case/-/is-lower-case-1.1.3.tgz#7e147be4768dc466db3bfb21cc60b31e6ad69393"
+ integrity sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==
+ dependencies:
+ lower-case "^1.1.0"
+
is-map@^2.0.2, is-map@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e"
@@ -5957,6 +7396,13 @@ is-typedarray@^1.0.0:
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==
+is-upper-case@^1.1.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/is-upper-case/-/is-upper-case-1.1.2.tgz#8d0b1fa7e7933a1e58483600ec7d9661cbaf756f"
+ integrity sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==
+ dependencies:
+ upper-case "^1.1.0"
+
is-utf8@^0.2.0:
version "0.2.1"
resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
@@ -6030,6 +7476,17 @@ istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0:
istanbul-lib-coverage "^3.2.0"
semver "^6.3.0"
+istanbul-lib-instrument@^6.0.0:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz#fa15401df6c15874bcb2105f773325d78c666765"
+ integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==
+ dependencies:
+ "@babel/core" "^7.23.9"
+ "@babel/parser" "^7.23.9"
+ "@istanbuljs/schema" "^0.1.3"
+ istanbul-lib-coverage "^3.2.0"
+ semver "^7.5.4"
+
istanbul-lib-report@^3.0.0:
version "3.0.1"
resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d"
@@ -6067,6 +7524,25 @@ iterator.prototype@^1.1.2:
reflect.getprototypeof "^1.0.4"
set-function-name "^2.0.1"
+jackspeak@^3.1.2:
+ version "3.4.3"
+ resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.3.tgz#8833a9d89ab4acde6188942bd1c53b6390ed5a8a"
+ integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==
+ dependencies:
+ "@isaacs/cliui" "^8.0.2"
+ optionalDependencies:
+ "@pkgjs/parseargs" "^0.11.0"
+
+jake@^10.8.5:
+ version "10.9.2"
+ resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.2.tgz#6ae487e6a69afec3a5e167628996b59f35ae2b7f"
+ integrity sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==
+ dependencies:
+ async "^3.2.3"
+ chalk "^4.0.2"
+ filelist "^1.0.4"
+ minimatch "^3.1.2"
+
jest-changed-files@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz#a348aed00ec9bf671cc58a66fcbe7c3dfd6a68f5"
@@ -6076,6 +7552,15 @@ jest-changed-files@^27.5.1:
execa "^5.0.0"
throat "^6.0.1"
+jest-changed-files@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a"
+ integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==
+ dependencies:
+ execa "^5.0.0"
+ jest-util "^29.7.0"
+ p-limit "^3.1.0"
+
jest-circus@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.5.1.tgz#37a5a4459b7bf4406e53d637b49d22c65d125ecc"
@@ -6101,6 +7586,32 @@ jest-circus@^27.5.1:
stack-utils "^2.0.3"
throat "^6.0.1"
+jest-circus@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.7.0.tgz#b6817a45fcc835d8b16d5962d0c026473ee3668a"
+ integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==
+ dependencies:
+ "@jest/environment" "^29.7.0"
+ "@jest/expect" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ co "^4.6.0"
+ dedent "^1.0.0"
+ is-generator-fn "^2.0.0"
+ jest-each "^29.7.0"
+ jest-matcher-utils "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-runtime "^29.7.0"
+ jest-snapshot "^29.7.0"
+ jest-util "^29.7.0"
+ p-limit "^3.1.0"
+ pretty-format "^29.7.0"
+ pure-rand "^6.0.0"
+ slash "^3.0.0"
+ stack-utils "^2.0.3"
+
jest-cli@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.5.1.tgz#278794a6e6458ea8029547e6c6cbf673bd30b145"
@@ -6119,6 +7630,23 @@ jest-cli@^27.5.1:
prompts "^2.0.1"
yargs "^16.2.0"
+jest-cli@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.7.0.tgz#5592c940798e0cae677eec169264f2d839a37995"
+ integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==
+ dependencies:
+ "@jest/core" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ chalk "^4.0.0"
+ create-jest "^29.7.0"
+ exit "^0.1.2"
+ import-local "^3.0.2"
+ jest-config "^29.7.0"
+ jest-util "^29.7.0"
+ jest-validate "^29.7.0"
+ yargs "^17.3.1"
+
jest-config@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.5.1.tgz#5c387de33dca3f99ad6357ddeccd91bf3a0e4a41"
@@ -6149,6 +7677,34 @@ jest-config@^27.5.1:
slash "^3.0.0"
strip-json-comments "^3.1.1"
+jest-config@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.7.0.tgz#bcbda8806dbcc01b1e316a46bb74085a84b0245f"
+ integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==
+ dependencies:
+ "@babel/core" "^7.11.6"
+ "@jest/test-sequencer" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ babel-jest "^29.7.0"
+ chalk "^4.0.0"
+ ci-info "^3.2.0"
+ deepmerge "^4.2.2"
+ glob "^7.1.3"
+ graceful-fs "^4.2.9"
+ jest-circus "^29.7.0"
+ jest-environment-node "^29.7.0"
+ jest-get-type "^29.6.3"
+ jest-regex-util "^29.6.3"
+ jest-resolve "^29.7.0"
+ jest-runner "^29.7.0"
+ jest-util "^29.7.0"
+ jest-validate "^29.7.0"
+ micromatch "^4.0.4"
+ parse-json "^5.2.0"
+ pretty-format "^29.7.0"
+ slash "^3.0.0"
+ strip-json-comments "^3.1.1"
+
jest-diff@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.5.1.tgz#a07f5011ac9e6643cf8a95a462b7b1ecf6680def"
@@ -6159,6 +7715,16 @@ jest-diff@^27.5.1:
jest-get-type "^27.5.1"
pretty-format "^27.5.1"
+jest-diff@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.7.0.tgz#017934a66ebb7ecf6f205e84699be10afd70458a"
+ integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==
+ dependencies:
+ chalk "^4.0.0"
+ diff-sequences "^29.6.3"
+ jest-get-type "^29.6.3"
+ pretty-format "^29.7.0"
+
jest-docblock@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.5.1.tgz#14092f364a42c6108d42c33c8cf30e058e25f6c0"
@@ -6166,6 +7732,13 @@ jest-docblock@^27.5.1:
dependencies:
detect-newline "^3.0.0"
+jest-docblock@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.7.0.tgz#8fddb6adc3cdc955c93e2a87f61cfd350d5d119a"
+ integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==
+ dependencies:
+ detect-newline "^3.0.0"
+
jest-each@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.5.1.tgz#5bc87016f45ed9507fed6e4702a5b468a5b2c44e"
@@ -6177,6 +7750,17 @@ jest-each@^27.5.1:
jest-util "^27.5.1"
pretty-format "^27.5.1"
+jest-each@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.7.0.tgz#162a9b3f2328bdd991beaabffbb74745e56577d1"
+ integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ chalk "^4.0.0"
+ jest-get-type "^29.6.3"
+ jest-util "^29.7.0"
+ pretty-format "^29.7.0"
+
jest-environment-jsdom@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz#ea9ccd1fc610209655a77898f86b2b559516a546"
@@ -6202,11 +7786,28 @@ jest-environment-node@^27.5.1:
jest-mock "^27.5.1"
jest-util "^27.5.1"
+jest-environment-node@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.7.0.tgz#0b93e111dda8ec120bc8300e6d1fb9576e164376"
+ integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==
+ dependencies:
+ "@jest/environment" "^29.7.0"
+ "@jest/fake-timers" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ jest-mock "^29.7.0"
+ jest-util "^29.7.0"
+
jest-get-type@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.5.1.tgz#3cd613c507b0f7ace013df407a1c1cd578bcb4f1"
integrity sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==
+jest-get-type@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1"
+ integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==
+
jest-haste-map@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.5.1.tgz#9fd8bd7e7b4fa502d9c6164c5640512b4e811e7f"
@@ -6227,6 +7828,25 @@ jest-haste-map@^27.5.1:
optionalDependencies:
fsevents "^2.3.2"
+jest-haste-map@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.7.0.tgz#3c2396524482f5a0506376e6c858c3bbcc17b104"
+ integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@types/graceful-fs" "^4.1.3"
+ "@types/node" "*"
+ anymatch "^3.0.3"
+ fb-watchman "^2.0.0"
+ graceful-fs "^4.2.9"
+ jest-regex-util "^29.6.3"
+ jest-util "^29.7.0"
+ jest-worker "^29.7.0"
+ micromatch "^4.0.4"
+ walker "^1.0.8"
+ optionalDependencies:
+ fsevents "^2.3.2"
+
jest-jasmine2@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz#a037b0034ef49a9f3d71c4375a796f3b230d1ac4"
@@ -6258,6 +7878,14 @@ jest-leak-detector@^27.5.1:
jest-get-type "^27.5.1"
pretty-format "^27.5.1"
+jest-leak-detector@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728"
+ integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==
+ dependencies:
+ jest-get-type "^29.6.3"
+ pretty-format "^29.7.0"
+
jest-matcher-utils@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz#9c0cdbda8245bc22d2331729d1091308b40cf8ab"
@@ -6268,6 +7896,16 @@ jest-matcher-utils@^27.5.1:
jest-get-type "^27.5.1"
pretty-format "^27.5.1"
+jest-matcher-utils@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz#ae8fec79ff249fd592ce80e3ee474e83a6c44f12"
+ integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==
+ dependencies:
+ chalk "^4.0.0"
+ jest-diff "^29.7.0"
+ jest-get-type "^29.6.3"
+ pretty-format "^29.7.0"
+
jest-message-util@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.5.1.tgz#bdda72806da10d9ed6425e12afff38cd1458b6cf"
@@ -6283,6 +7921,21 @@ jest-message-util@^27.5.1:
slash "^3.0.0"
stack-utils "^2.0.3"
+jest-message-util@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.7.0.tgz#8bc392e204e95dfe7564abbe72a404e28e51f7f3"
+ integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==
+ dependencies:
+ "@babel/code-frame" "^7.12.13"
+ "@jest/types" "^29.6.3"
+ "@types/stack-utils" "^2.0.0"
+ chalk "^4.0.0"
+ graceful-fs "^4.2.9"
+ micromatch "^4.0.4"
+ pretty-format "^29.7.0"
+ slash "^3.0.0"
+ stack-utils "^2.0.3"
+
jest-mock@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.5.1.tgz#19948336d49ef4d9c52021d34ac7b5f36ff967d6"
@@ -6291,6 +7944,15 @@ jest-mock@^27.5.1:
"@jest/types" "^27.5.1"
"@types/node" "*"
+jest-mock@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.7.0.tgz#4e836cf60e99c6fcfabe9f99d017f3fdd50a6347"
+ integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ jest-util "^29.7.0"
+
jest-pnp-resolver@^1.2.2:
version "1.2.3"
resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e"
@@ -6301,6 +7963,11 @@ jest-regex-util@^27.5.1:
resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.5.1.tgz#4da143f7e9fd1e542d4aa69617b38e4a78365b95"
integrity sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==
+jest-regex-util@^29.6.3:
+ version "29.6.3"
+ resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.6.3.tgz#4a556d9c776af68e1c5f48194f4d0327d24e8a52"
+ integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==
+
jest-resolve-dependencies@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz#d811ecc8305e731cc86dd79741ee98fed06f1da8"
@@ -6310,6 +7977,14 @@ jest-resolve-dependencies@^27.5.1:
jest-regex-util "^27.5.1"
jest-snapshot "^27.5.1"
+jest-resolve-dependencies@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz#1b04f2c095f37fc776ff40803dc92921b1e88428"
+ integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==
+ dependencies:
+ jest-regex-util "^29.6.3"
+ jest-snapshot "^29.7.0"
+
jest-resolve@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.5.1.tgz#a2f1c5a0796ec18fe9eb1536ac3814c23617b384"
@@ -6326,6 +8001,21 @@ jest-resolve@^27.5.1:
resolve.exports "^1.1.0"
slash "^3.0.0"
+jest-resolve@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.7.0.tgz#64d6a8992dd26f635ab0c01e5eef4399c6bcbc30"
+ integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==
+ dependencies:
+ chalk "^4.0.0"
+ graceful-fs "^4.2.9"
+ jest-haste-map "^29.7.0"
+ jest-pnp-resolver "^1.2.2"
+ jest-util "^29.7.0"
+ jest-validate "^29.7.0"
+ resolve "^1.20.0"
+ resolve.exports "^2.0.0"
+ slash "^3.0.0"
+
jest-runner@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.5.1.tgz#071b27c1fa30d90540805c5645a0ec167c7b62e5"
@@ -6353,6 +8043,33 @@ jest-runner@^27.5.1:
source-map-support "^0.5.6"
throat "^6.0.1"
+jest-runner@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.7.0.tgz#809af072d408a53dcfd2e849a4c976d3132f718e"
+ integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==
+ dependencies:
+ "@jest/console" "^29.7.0"
+ "@jest/environment" "^29.7.0"
+ "@jest/test-result" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ emittery "^0.13.1"
+ graceful-fs "^4.2.9"
+ jest-docblock "^29.7.0"
+ jest-environment-node "^29.7.0"
+ jest-haste-map "^29.7.0"
+ jest-leak-detector "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-resolve "^29.7.0"
+ jest-runtime "^29.7.0"
+ jest-util "^29.7.0"
+ jest-watcher "^29.7.0"
+ jest-worker "^29.7.0"
+ p-limit "^3.1.0"
+ source-map-support "0.5.13"
+
jest-runtime@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.5.1.tgz#4896003d7a334f7e8e4a53ba93fb9bcd3db0a1af"
@@ -6381,6 +8098,34 @@ jest-runtime@^27.5.1:
slash "^3.0.0"
strip-bom "^4.0.0"
+jest-runtime@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.7.0.tgz#efecb3141cf7d3767a3a0cc8f7c9990587d3d817"
+ integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==
+ dependencies:
+ "@jest/environment" "^29.7.0"
+ "@jest/fake-timers" "^29.7.0"
+ "@jest/globals" "^29.7.0"
+ "@jest/source-map" "^29.6.3"
+ "@jest/test-result" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ cjs-module-lexer "^1.0.0"
+ collect-v8-coverage "^1.0.0"
+ glob "^7.1.3"
+ graceful-fs "^4.2.9"
+ jest-haste-map "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-mock "^29.7.0"
+ jest-regex-util "^29.6.3"
+ jest-resolve "^29.7.0"
+ jest-snapshot "^29.7.0"
+ jest-util "^29.7.0"
+ slash "^3.0.0"
+ strip-bom "^4.0.0"
+
jest-serializer@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.5.1.tgz#81438410a30ea66fd57ff730835123dea1fb1f64"
@@ -6417,6 +8162,32 @@ jest-snapshot@^27.5.1:
pretty-format "^27.5.1"
semver "^7.3.2"
+jest-snapshot@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.7.0.tgz#c2c574c3f51865da1bb329036778a69bf88a6be5"
+ integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==
+ dependencies:
+ "@babel/core" "^7.11.6"
+ "@babel/generator" "^7.7.2"
+ "@babel/plugin-syntax-jsx" "^7.7.2"
+ "@babel/plugin-syntax-typescript" "^7.7.2"
+ "@babel/types" "^7.3.3"
+ "@jest/expect-utils" "^29.7.0"
+ "@jest/transform" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ babel-preset-current-node-syntax "^1.0.0"
+ chalk "^4.0.0"
+ expect "^29.7.0"
+ graceful-fs "^4.2.9"
+ jest-diff "^29.7.0"
+ jest-get-type "^29.6.3"
+ jest-matcher-utils "^29.7.0"
+ jest-message-util "^29.7.0"
+ jest-util "^29.7.0"
+ natural-compare "^1.4.0"
+ pretty-format "^29.7.0"
+ semver "^7.5.3"
+
jest-util@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.5.1.tgz#3ba9771e8e31a0b85da48fe0b0891fb86c01c2f9"
@@ -6429,6 +8200,18 @@ jest-util@^27.5.1:
graceful-fs "^4.2.9"
picomatch "^2.2.3"
+jest-util@^29.0.0, jest-util@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.7.0.tgz#23c2b62bfb22be82b44de98055802ff3710fc0bc"
+ integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ chalk "^4.0.0"
+ ci-info "^3.2.0"
+ graceful-fs "^4.2.9"
+ picomatch "^2.2.3"
+
jest-validate@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.5.1.tgz#9197d54dc0bdb52260b8db40b46ae668e04df067"
@@ -6441,6 +8224,18 @@ jest-validate@^27.5.1:
leven "^3.1.0"
pretty-format "^27.5.1"
+jest-validate@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c"
+ integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==
+ dependencies:
+ "@jest/types" "^29.6.3"
+ camelcase "^6.2.0"
+ chalk "^4.0.0"
+ jest-get-type "^29.6.3"
+ leven "^3.1.0"
+ pretty-format "^29.7.0"
+
jest-watcher@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.5.1.tgz#71bd85fb9bde3a2c2ec4dc353437971c43c642a2"
@@ -6454,6 +8249,20 @@ jest-watcher@^27.5.1:
jest-util "^27.5.1"
string-length "^4.0.1"
+jest-watcher@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.7.0.tgz#7810d30d619c3a62093223ce6bb359ca1b28a2f2"
+ integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==
+ dependencies:
+ "@jest/test-result" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ "@types/node" "*"
+ ansi-escapes "^4.2.1"
+ chalk "^4.0.0"
+ emittery "^0.13.1"
+ jest-util "^29.7.0"
+ string-length "^4.0.1"
+
jest-worker@^27.4.5, jest-worker@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.5.1.tgz#8d146f0900e8973b106b6f73cc1e9a8cb86f8db0"
@@ -6463,6 +8272,16 @@ jest-worker@^27.4.5, jest-worker@^27.5.1:
merge-stream "^2.0.0"
supports-color "^8.0.0"
+jest-worker@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.7.0.tgz#acad073acbbaeb7262bd5389e1bcf43e10058d4a"
+ integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==
+ dependencies:
+ "@types/node" "*"
+ jest-util "^29.7.0"
+ merge-stream "^2.0.0"
+ supports-color "^8.0.0"
+
jest@^27.5.1:
version "27.5.1"
resolved "https://registry.yarnpkg.com/jest/-/jest-27.5.1.tgz#dadf33ba70a779be7a6fc33015843b51494f63fc"
@@ -6472,7 +8291,22 @@ jest@^27.5.1:
import-local "^3.0.2"
jest-cli "^27.5.1"
-joi@^17.11.0:
+jest@^29.6.2:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/jest/-/jest-29.7.0.tgz#994676fc24177f088f1c5e3737f5697204ff2613"
+ integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==
+ dependencies:
+ "@jest/core" "^29.7.0"
+ "@jest/types" "^29.6.3"
+ import-local "^3.0.2"
+ jest-cli "^29.7.0"
+
+jiti@^1.21.0:
+ version "1.21.6"
+ resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268"
+ integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==
+
+joi@^17.13.3:
version "17.13.3"
resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.3.tgz#0f5cc1169c999b30d344366d384b12d92558bcec"
integrity sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==
@@ -6598,11 +8432,16 @@ json5@^1.0.2:
dependencies:
minimist "^1.2.0"
-json5@^2.1.2, json5@^2.2.2, json5@^2.2.3:
+json5@^2.1.2, json5@^2.2.1, json5@^2.2.2, json5@^2.2.3:
version "2.2.3"
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
+jsonc-parser@^3.0.0:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.3.1.tgz#f2a524b4f7fd11e3d791e559977ad60b98b798b4"
+ integrity sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==
+
jsonfile@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
@@ -6659,9 +8498,9 @@ language-tags@^1.0.9:
language-subtag-registry "^0.3.20"
launch-editor@^2.6.0:
- version "2.8.1"
- resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.8.1.tgz#3bda72af213ec9b46b170e39661916ec66c2f463"
- integrity sha512-elBx2l/tp9z99X5H/qev8uyDywVh0VXAwEbjk8kJhnc5grOFkGh7aW6q55me9xnYbss261XtnUrysZ+XvGbhQA==
+ version "2.9.1"
+ resolved "https://registry.yarnpkg.com/launch-editor/-/launch-editor-2.9.1.tgz#253f173bd441e342d4344b4dae58291abb425047"
+ integrity sha512-Gcnl4Bd+hRO9P9icCP/RVVT2o8SFlPXofuCxvA2SaZuH45whSvf5p8x5oih5ftLiVhEI4sp5xDY+R+b3zJBh5w==
dependencies:
picocolors "^1.0.0"
shell-quote "^1.8.1"
@@ -6692,6 +8531,16 @@ levn@~0.3.0:
prelude-ls "~1.1.2"
type-check "~0.3.2"
+lilconfig@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52"
+ integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==
+
+lilconfig@^3.0.0:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.1.2.tgz#e4a7c3cb549e3a606c8dcc32e5ae1005e62c05cb"
+ integrity sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==
+
lines-and-columns@^1.1.6:
version "1.2.4"
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
@@ -6745,6 +8594,11 @@ lodash.debounce@^4.0.8:
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==
+lodash.memoize@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
+ integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==
+
lodash.merge@^4.6.2:
version "4.6.2"
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
@@ -6770,13 +8624,32 @@ longest-streak@^3.0.0:
resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4"
integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==
-loose-envify@^1.1.0, loose-envify@^1.4.0:
+loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
dependencies:
js-tokens "^3.0.0 || ^4.0.0"
+lower-case-first@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/lower-case-first/-/lower-case-first-1.0.2.tgz#e5da7c26f29a7073be02d52bac9980e5922adfa1"
+ integrity sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==
+ dependencies:
+ lower-case "^1.1.2"
+
+lower-case@^1.1.0, lower-case@^1.1.1, lower-case@^1.1.2:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"
+ integrity sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==
+
+lower-case@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28"
+ integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==
+ dependencies:
+ tslib "^2.0.3"
+
lowlight@^1.17.0:
version "1.20.0"
resolved "https://registry.yarnpkg.com/lowlight/-/lowlight-1.20.0.tgz#ddb197d33462ad0d93bf19d17b6c301aa3941888"
@@ -6790,6 +8663,11 @@ lru-cache@2.6.3:
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.6.3.tgz#51ccd0b4fc0c843587d7a5709ce4d3b7629bedc5"
integrity sha512-qkisDmHMe8gxKujmC1BdaqgkoFlioLDCUwaFBA3lX8Ilhr3YzsasbGYaiADMjxQnj+aiZUKgGKe/BN3skMwXWw==
+lru-cache@^10.2.0:
+ version "10.4.3"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.4.3.tgz#410fc8a17b70e598013df257c2446b7f3383f119"
+ integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==
+
lru-cache@^5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
@@ -6836,6 +8714,11 @@ make-dir@^4.0.0:
dependencies:
semver "^7.5.3"
+make-error@^1.1.1, make-error@^1.3.6:
+ version "1.3.6"
+ resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
+ integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
+
makeerror@1.0.12:
version "1.0.12"
resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a"
@@ -6976,9 +8859,9 @@ mdast-util-mdx-expression@^2.0.0:
mdast-util-to-markdown "^2.0.0"
mdast-util-mdx-jsx@^3.0.0:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.2.tgz#daae777c72f9c4a106592e3025aa50fb26068e1b"
- integrity sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==
+ version "3.1.3"
+ resolved "https://registry.yarnpkg.com/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.3.tgz#76b957b3da18ebcfd0de3a9b4451dcd6fdec2320"
+ integrity sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ==
dependencies:
"@types/estree-jsx" "^1.0.0"
"@types/hast" "^3.0.0"
@@ -6990,7 +8873,6 @@ mdast-util-mdx-jsx@^3.0.0:
mdast-util-to-markdown "^2.0.0"
parse-entities "^4.0.0"
stringify-entities "^4.0.0"
- unist-util-remove-position "^5.0.0"
unist-util-stringify-position "^4.0.0"
vfile-message "^4.0.0"
@@ -7078,10 +8960,10 @@ memfs@^3.4.3:
dependencies:
fs-monkey "^1.0.4"
-merge-descriptors@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
- integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==
+merge-descriptors@1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.3.tgz#d80319a65f3c7935351e5cfdac8f9318504dbed5"
+ integrity sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==
merge-stream@^1.0.1:
version "1.0.1"
@@ -7221,9 +9103,9 @@ micromark-extension-mdx-expression@^3.0.0:
micromark-util-types "^2.0.0"
micromark-extension-mdx-jsx@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.0.tgz#4aba0797c25efb2366a3fd2d367c6b1c1159f4f5"
- integrity sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.1.tgz#5abb83da5ddc8e473a374453e6ea56fbd66b59ad"
+ integrity sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==
dependencies:
"@types/acorn" "^4.0.0"
"@types/estree" "^1.0.0"
@@ -7232,6 +9114,7 @@ micromark-extension-mdx-jsx@^3.0.0:
micromark-factory-mdx-expression "^2.0.0"
micromark-factory-space "^2.0.0"
micromark-util-character "^2.0.0"
+ micromark-util-events-to-acorn "^2.0.0"
micromark-util-symbol "^2.0.0"
micromark-util-types "^2.0.0"
vfile-message "^4.0.0"
@@ -7292,12 +9175,13 @@ micromark-factory-label@^2.0.0:
micromark-util-types "^2.0.0"
micromark-factory-mdx-expression@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.1.tgz#f2a9724ce174f1751173beb2c1f88062d3373b1b"
- integrity sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.2.tgz#2afaa8ba6d5f63e0cead3e4dee643cad184ca260"
+ integrity sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==
dependencies:
"@types/estree" "^1.0.0"
devlop "^1.0.0"
+ micromark-factory-space "^2.0.0"
micromark-util-character "^2.0.0"
micromark-util-events-to-acorn "^2.0.0"
micromark-util-symbol "^2.0.0"
@@ -7472,10 +9356,10 @@ micromark@^4.0.0:
micromark-util-symbol "^2.0.0"
micromark-util-types "^2.0.0"
-micromatch@^4.0.2, micromatch@^4.0.4:
- version "4.0.7"
- resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5"
- integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==
+micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5:
+ version "4.0.8"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202"
+ integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
dependencies:
braces "^3.0.3"
picomatch "^2.3.1"
@@ -7536,11 +9420,23 @@ minimatch@^5.0.1:
dependencies:
brace-expansion "^2.0.1"
+minimatch@^9.0.4:
+ version "9.0.5"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5"
+ integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==
+ dependencies:
+ brace-expansion "^2.0.1"
+
minimist@^1.1.0, minimist@^1.2.0, minimist@^1.2.6, minimist@^1.2.8:
version "1.2.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
+"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2:
+ version "7.1.2"
+ resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707"
+ integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==
+
mkdirp@^0.5.1:
version "0.5.6"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
@@ -7568,7 +9464,7 @@ ms@2.1.2:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-ms@2.1.3, ms@^2.0.0, ms@^2.1.1:
+ms@2.1.3, ms@^2.0.0, ms@^2.1.1, ms@^2.1.3:
version "2.1.3"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
@@ -7586,7 +9482,16 @@ mustache@^2.1.1, mustache@^2.1.2, mustache@^2.2.1:
resolved "https://registry.yarnpkg.com/mustache/-/mustache-2.3.2.tgz#a6d4d9c3f91d13359ab889a812954f9230a3d0c5"
integrity sha512-KpMNwdQsYz3O/SBS1qJ/o3sqUJ5wSb8gb0pul8CO0S56b9Y2ALm8zCfsjPXsqGFfoNBkDwZuZIAjhsZI03gYVQ==
-nanoid@^3.1.12, nanoid@^3.1.31, nanoid@^3.3.6:
+mz@^2.7.0:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
+ integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==
+ dependencies:
+ any-promise "^1.0.0"
+ object-assign "^4.0.1"
+ thenify-all "^1.0.0"
+
+nanoid@^3.1.12, nanoid@^3.1.31, nanoid@^3.3.6, nanoid@^3.3.7:
version "3.3.7"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
@@ -7641,6 +9546,21 @@ next@14.1.4:
"@next/swc-win32-ia32-msvc" "14.1.4"
"@next/swc-win32-x64-msvc" "14.1.4"
+no-case@^2.2.0, no-case@^2.3.2:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac"
+ integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==
+ dependencies:
+ lower-case "^1.1.1"
+
+no-case@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d"
+ integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==
+ dependencies:
+ lower-case "^2.0.2"
+ tslib "^2.0.3"
+
node-environment-flags@^1.0.5:
version "1.0.6"
resolved "https://registry.yarnpkg.com/node-environment-flags/-/node-environment-flags-1.0.6.tgz#a30ac13621f6f7d674260a54dede048c3982c088"
@@ -7683,6 +9603,11 @@ normalize-path@^3.0.0, normalize-path@~3.0.0:
resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
+normalize-range@^0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
+ integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
+
npm-run-path@^4.0.0, npm-run-path@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
@@ -7700,6 +9625,11 @@ object-assign@^4.0.1, object-assign@^4.1.1:
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
+object-hash@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9"
+ integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==
+
object-inspect@^1.13.1:
version "1.13.2"
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.2.tgz#dea0088467fb991e67af4058147a24824a3043ff"
@@ -7737,7 +9667,7 @@ object.entries@^1.1.5, object.entries@^1.1.8:
define-properties "^1.2.1"
es-object-atoms "^1.0.0"
-object.fromentries@^2.0.7, object.fromentries@^2.0.8:
+object.fromentries@^2.0.8:
version "2.0.8"
resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65"
integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==
@@ -7760,7 +9690,7 @@ object.getownpropertydescriptors@^2.0.3:
gopd "^1.0.1"
safe-array-concat "^1.1.2"
-object.groupby@^1.0.1:
+object.groupby@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e"
integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==
@@ -7769,7 +9699,7 @@ object.groupby@^1.0.1:
define-properties "^1.2.1"
es-abstract "^1.23.2"
-object.values@^1.1.6, object.values@^1.1.7, object.values@^1.2.0:
+object.values@^1.1.6, object.values@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b"
integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==
@@ -7871,7 +9801,7 @@ p-limit@^2.0.0, p-limit@^2.2.0:
dependencies:
p-try "^2.0.0"
-p-limit@^3.0.2:
+p-limit@^3.0.2, p-limit@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
@@ -7955,11 +9885,31 @@ pac-resolver@^5.0.0:
ip "^1.1.5"
netmask "^2.0.2"
+package-json-from-dist@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz#e501cd3094b278495eb4258d4c9f6d5ac3019f00"
+ integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==
+
pako@1.0.11:
version "1.0.11"
resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf"
integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
+param-case@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247"
+ integrity sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==
+ dependencies:
+ no-case "^2.2.0"
+
+param-case@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5"
+ integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==
+ dependencies:
+ dot-case "^3.0.4"
+ tslib "^2.0.3"
+
parent-module@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
@@ -8035,6 +9985,37 @@ parseurl@~1.3.2, parseurl@~1.3.3:
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
+pascal-case@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-2.0.1.tgz#2d578d3455f660da65eca18ef95b4e0de912761e"
+ integrity sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ==
+ dependencies:
+ camel-case "^3.0.0"
+ upper-case-first "^1.1.0"
+
+pascal-case@^3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb"
+ integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==
+ dependencies:
+ no-case "^3.0.4"
+ tslib "^2.0.3"
+
+path-case@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/path-case/-/path-case-2.1.1.tgz#94b8037c372d3fe2906e465bb45e25d226e8eea5"
+ integrity sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q==
+ dependencies:
+ no-case "^2.2.0"
+
+path-case@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/path-case/-/path-case-3.0.4.tgz#9168645334eb942658375c56f80b4c0cb5f82c6f"
+ integrity sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==
+ dependencies:
+ dot-case "^3.0.4"
+ tslib "^2.0.3"
+
path-exists@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
@@ -8065,10 +10046,18 @@ path-parse@^1.0.7:
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
-path-to-regexp@0.1.7:
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
- integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==
+path-scurry@^1.11.1:
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2"
+ integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==
+ dependencies:
+ lru-cache "^10.2.0"
+ minipass "^5.0.0 || ^6.0.2 || ^7.0.0"
+
+path-to-regexp@0.1.10:
+ version "0.1.10"
+ resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.10.tgz#67e9108c5c0551b9e5326064387de4763c4d5f8b"
+ integrity sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==
path-type@^4.0.0:
version "4.0.0"
@@ -8097,9 +10086,9 @@ periscopic@^3.0.0:
is-reference "^3.0.0"
picocolors@^1.0.0, picocolors@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1"
- integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.0.tgz#5358b76a78cde483ba5cef6a9dc9671440b27d59"
+ integrity sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1:
version "2.3.1"
@@ -8145,7 +10134,7 @@ pinkie@^1.0.0:
resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-1.0.0.tgz#5a47f28ba1015d0201bda7bf0f358e47bec8c7e4"
integrity sha512-VFVaU1ysKakao68ktZm76PIdOhvEfoNNRaGkyLln9Os7r0/MCxqHjHyBM7dT3pgTiBybqiPtpqKfpENwdBp50Q==
-pirates@^4.0.4, pirates@^4.0.6:
+pirates@^4.0.1, pirates@^4.0.4, pirates@^4.0.6:
version "4.0.6"
resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9"
integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==
@@ -8186,12 +10175,51 @@ possible-typed-array-names@^1.0.0:
resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f"
integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==
+postcss-import@^15.1.0:
+ version "15.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70"
+ integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==
+ dependencies:
+ postcss-value-parser "^4.0.0"
+ read-cache "^1.0.0"
+ resolve "^1.1.7"
+
+postcss-js@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2"
+ integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==
+ dependencies:
+ camelcase-css "^2.0.1"
+
+postcss-load-config@^4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3"
+ integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==
+ dependencies:
+ lilconfig "^3.0.0"
+ yaml "^2.3.4"
+
+postcss-nested@^6.0.1:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.2.0.tgz#4c2d22ab5f20b9cb61e2c5c5915950784d068131"
+ integrity sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==
+ dependencies:
+ postcss-selector-parser "^6.1.1"
+
+postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.1.1:
+ version "6.1.2"
+ resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de"
+ integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==
+ dependencies:
+ cssesc "^3.0.0"
+ util-deprecate "^1.0.2"
+
postcss-value-parser@4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb"
integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==
-postcss-value-parser@^4.0.2:
+postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
@@ -8205,6 +10233,15 @@ postcss@8.4.31:
picocolors "^1.0.0"
source-map-js "^1.0.2"
+postcss@^8.4.23, postcss@^8.4.38, postcss@^8.4.43:
+ version "8.4.45"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.45.tgz#538d13d89a16ef71edbf75d895284ae06b79e603"
+ integrity sha512-7KTLTdzdZZYscUc65XmjFiB73vBhBfbPztCYdUNvlaso9PrzjzcmjqBPR0lNGkcVlcO4BjiO5rK/qNz+XAen1Q==
+ dependencies:
+ nanoid "^3.3.7"
+ picocolors "^1.0.1"
+ source-map-js "^1.2.0"
+
prelude-ls@^1.2.1:
version "1.2.1"
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
@@ -8222,7 +10259,12 @@ prettier-linter-helpers@^1.0.0:
dependencies:
fast-diff "^1.1.2"
-prettier@^2.8.8:
+prettier@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.0.tgz#e7b19f691245a21d618c68bc54dc06122f6105ae"
+ integrity sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==
+
+prettier@^2.7.1, prettier@^2.8.8:
version "2.8.8"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da"
integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==
@@ -8236,6 +10278,15 @@ pretty-format@^27.0.2, pretty-format@^27.5.1:
ansi-styles "^5.0.0"
react-is "^17.0.1"
+pretty-format@^29.0.0, pretty-format@^29.7.0:
+ version "29.7.0"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812"
+ integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==
+ dependencies:
+ "@jest/schemas" "^29.6.3"
+ ansi-styles "^5.0.0"
+ react-is "^18.0.0"
+
pretty-hrtime@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1"
@@ -8332,9 +10383,9 @@ psl@^1.1.33:
integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==
pump@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
- integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.2.tgz#836f3edd6bc2ee599256c924ffe0d88573ddcbf8"
+ integrity sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==
dependencies:
end-of-stream "^1.1.0"
once "^1.3.1"
@@ -8344,17 +10395,22 @@ punycode@^2.1.0, punycode@^2.1.1:
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
+pure-rand@^6.0.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.1.0.tgz#d173cf23258231976ccbdb05247c9787957604f2"
+ integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==
+
qrcode-terminal@^0.10.0:
version "0.10.0"
resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.10.0.tgz#a76a48e2610a18f97fa3a2bd532b682acff86c53"
integrity sha512-ZvWjbAj4MWAj6bnCc9CnculsXnJr7eoKsvH/8rVpZbqYxP2z05HNQa43ZVwe/dVRcFxgfFHE2CkUqn0sCyLfHw==
-qs@6.11.0:
- version "6.11.0"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a"
- integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==
+qs@6.13.0:
+ version "6.13.0"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906"
+ integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==
dependencies:
- side-channel "^1.0.4"
+ side-channel "^1.0.6"
querystringify@^2.1.1:
version "2.2.0"
@@ -8411,6 +10467,13 @@ react-ga@^2.7.0:
resolved "https://registry.yarnpkg.com/react-ga/-/react-ga-2.7.0.tgz#24328f157f31e8cffbf4de74a3396536679d8d7c"
integrity sha512-AjC7UOZMvygrWTc2hKxTDvlMXEtbmA0IgJjmkhgmQQ3RkXrWR11xEagLGFGaNyaPnmg24oaIiaNPnEoftUhfXA==
+react-gsap@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/react-gsap/-/react-gsap-3.2.1.tgz#15c7a0e06c4cdda6ac36ccfcd49f58ba6c3cfbc5"
+ integrity sha512-IX6XiN1a74hmU385yNZAYV1cFe3/Xmbg8eT99VCjmz7yzQq1qIsR47gkX5rkWeml9KmyEgiIzqArYaipPkKIbw==
+ dependencies:
+ react-is "^16.13.1"
+
react-is@^16.13.1, react-is@^16.7.0:
version "16.13.1"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
@@ -8421,6 +10484,59 @@ react-is@^17.0.1:
resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0"
integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
+react-is@^18.0.0:
+ version "18.3.1"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e"
+ integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==
+
+react-refresh@^0.14.2:
+ version "0.14.2"
+ resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.14.2.tgz#3833da01ce32da470f1f936b9d477da5c7028bf9"
+ integrity sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==
+
+react-remove-scroll-bar@^2.3.4:
+ version "2.3.6"
+ resolved "https://registry.yarnpkg.com/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz#3e585e9d163be84a010180b18721e851ac81a29c"
+ integrity sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==
+ dependencies:
+ react-style-singleton "^2.2.1"
+ tslib "^2.0.0"
+
+react-remove-scroll@2.5.7:
+ version "2.5.7"
+ resolved "https://registry.yarnpkg.com/react-remove-scroll/-/react-remove-scroll-2.5.7.tgz#15a1fd038e8497f65a695bf26a4a57970cac1ccb"
+ integrity sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==
+ dependencies:
+ react-remove-scroll-bar "^2.3.4"
+ react-style-singleton "^2.2.1"
+ tslib "^2.1.0"
+ use-callback-ref "^1.3.0"
+ use-sidecar "^1.1.2"
+
+react-router-dom@^6.22.2:
+ version "6.26.2"
+ resolved "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-6.26.2.tgz#a6e3b0cbd6bfd508e42b9342099d015a0ac59680"
+ integrity sha512-z7YkaEW0Dy35T3/QKPYB1LjMK2R1fxnHO8kWpUMTBdfVzZrWOiY9a7CtN8HqdWtDUWd5FY6Dl8HFsqVwH4uOtQ==
+ dependencies:
+ "@remix-run/router" "1.19.2"
+ react-router "6.26.2"
+
+react-router@6.26.2:
+ version "6.26.2"
+ resolved "https://registry.yarnpkg.com/react-router/-/react-router-6.26.2.tgz#2f0a68999168954431cdc29dd36cec3b6fa44a7e"
+ integrity sha512-tvN1iuT03kHgOFnLPfLJ8V95eijteveqdOSk+srqfePtQvqCExB8eHOYnlilbOcyJyKnYkr1vJvf7YqotAJu1A==
+ dependencies:
+ "@remix-run/router" "1.19.2"
+
+react-style-singleton@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/react-style-singleton/-/react-style-singleton-2.2.1.tgz#f99e420492b2d8f34d38308ff660b60d0b1205b4"
+ integrity sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==
+ dependencies:
+ get-nonce "^1.0.0"
+ invariant "^2.2.4"
+ tslib "^2.0.0"
+
react-syntax-highlighter@^15.5.0:
version "15.5.0"
resolved "https://registry.yarnpkg.com/react-syntax-highlighter/-/react-syntax-highlighter-15.5.0.tgz#4b3eccc2325fa2ec8eff1e2d6c18fa4a9e07ab20"
@@ -8439,6 +10555,13 @@ react@^18.2.0:
dependencies:
loose-envify "^1.1.0"
+read-cache@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774"
+ integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==
+ dependencies:
+ pify "^2.3.0"
+
read-file-relative@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/read-file-relative/-/read-file-relative-1.2.0.tgz#98f7d96eaa21d2b4c7a2febd63d2fc8cf35e9f9b"
@@ -8515,9 +10638,9 @@ refractor@^3.6.0:
prismjs "~1.27.0"
regenerate-unicode-properties@^10.1.0:
- version "10.1.1"
- resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480"
- integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==
+ version "10.2.0"
+ resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz#626e39df8c372338ea9b8028d1f99dc3fd9c3db0"
+ integrity sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==
dependencies:
regenerate "^1.4.2"
@@ -8683,12 +10806,22 @@ resolve-from@^5.0.0:
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
+resolve-pkg-maps@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f"
+ integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==
+
resolve.exports@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999"
integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==
-resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.22.4:
+resolve.exports@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800"
+ integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==
+
+resolve@^1.1.7, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.22.2, resolve@^1.22.4:
version "1.22.8"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d"
integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==
@@ -8730,6 +10863,31 @@ rimraf@^3.0.0, rimraf@^3.0.2:
dependencies:
glob "^7.1.3"
+rollup@^4.20.0:
+ version "4.21.3"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.21.3.tgz#c64ba119e6aeb913798a6f7eef2780a0df5a0821"
+ integrity sha512-7sqRtBNnEbcBtMeRVc6VRsJMmpI+JU1z9VTvW8D4gXIYQFz0aLcsE6rRkyghZkLfEgUZgVvOG7A5CVz/VW5GIA==
+ dependencies:
+ "@types/estree" "1.0.5"
+ optionalDependencies:
+ "@rollup/rollup-android-arm-eabi" "4.21.3"
+ "@rollup/rollup-android-arm64" "4.21.3"
+ "@rollup/rollup-darwin-arm64" "4.21.3"
+ "@rollup/rollup-darwin-x64" "4.21.3"
+ "@rollup/rollup-linux-arm-gnueabihf" "4.21.3"
+ "@rollup/rollup-linux-arm-musleabihf" "4.21.3"
+ "@rollup/rollup-linux-arm64-gnu" "4.21.3"
+ "@rollup/rollup-linux-arm64-musl" "4.21.3"
+ "@rollup/rollup-linux-powerpc64le-gnu" "4.21.3"
+ "@rollup/rollup-linux-riscv64-gnu" "4.21.3"
+ "@rollup/rollup-linux-s390x-gnu" "4.21.3"
+ "@rollup/rollup-linux-x64-gnu" "4.21.3"
+ "@rollup/rollup-linux-x64-musl" "4.21.3"
+ "@rollup/rollup-win32-arm64-msvc" "4.21.3"
+ "@rollup/rollup-win32-ia32-msvc" "4.21.3"
+ "@rollup/rollup-win32-x64-msvc" "4.21.3"
+ fsevents "~2.3.2"
+
run-parallel@^1.1.9:
version "1.2.0"
resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
@@ -8827,11 +10985,21 @@ schema-utils@^4.0.0:
ajv-formats "^2.1.1"
ajv-keywords "^5.1.0"
+sd-tailwindcss-transformer@^1.4.5:
+ version "1.4.6"
+ resolved "https://registry.yarnpkg.com/sd-tailwindcss-transformer/-/sd-tailwindcss-transformer-1.4.6.tgz#10f56ee95331b785b07fde7960803379da0f0225"
+ integrity sha512-xp1mcz+CgfiVqRMi312m7JwliOgjBji7d65k5N36hmqRl3hxXSnMCGuIQ10cAh0XgbVoZzr8pyhqJbuDpC0DPg==
+
select-hose@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
integrity sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==
+self-referenced-object@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/self-referenced-object/-/self-referenced-object-1.1.0.tgz#613c1cd7d1010d4b2277533f5411a951a2df7b17"
+ integrity sha512-g1xvTtl+VwfN+mhPlOIsJRGwChagE1+B3xaZHN50//G9Oayy3wF/VaWXZQqYC7wGZ0tBZ3IOvZqf/VBJLWa+Ww==
+
selfsigned@^2.1.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.4.1.tgz#560d90565442a3ed35b674034cec4e95dceb4ae0"
@@ -8857,15 +11025,15 @@ semver@^6.0.0, semver@^6.3.0, semver@^6.3.1:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
-semver@^7.3.2, semver@^7.5.3:
+semver@^7.3.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3:
version "7.6.3"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143"
integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
-send@0.18.0:
- version "0.18.0"
- resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be"
- integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==
+send@0.19.0:
+ version "0.19.0"
+ resolved "https://registry.yarnpkg.com/send/-/send-0.19.0.tgz#bbc5a388c8ea6c048967049dbeac0e4a3f09d7f8"
+ integrity sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==
dependencies:
debug "2.6.9"
depd "2.0.0"
@@ -8881,6 +11049,23 @@ send@0.18.0:
range-parser "~1.2.1"
statuses "2.0.1"
+sentence-case@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-2.1.1.tgz#1f6e2dda39c168bf92d13f86d4a918933f667ed4"
+ integrity sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==
+ dependencies:
+ no-case "^2.2.0"
+ upper-case-first "^1.1.2"
+
+sentence-case@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f"
+ integrity sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==
+ dependencies:
+ no-case "^3.0.4"
+ tslib "^2.0.3"
+ upper-case-first "^2.0.2"
+
serialize-javascript@^6.0.1:
version "6.0.2"
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2"
@@ -8901,15 +11086,15 @@ serve-index@^1.9.1:
mime-types "~2.1.17"
parseurl "~1.3.2"
-serve-static@1.15.0:
- version "1.15.0"
- resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540"
- integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==
+serve-static@1.16.2:
+ version "1.16.2"
+ resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.16.2.tgz#b6a5343da47f6bdd2673848bf45754941e803296"
+ integrity sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==
dependencies:
- encodeurl "~1.0.2"
+ encodeurl "~2.0.0"
escape-html "~1.0.3"
parseurl "~1.3.3"
- send "0.18.0"
+ send "0.19.0"
set-cookie-parser@^2.5.1:
version "2.7.0"
@@ -8987,15 +11172,20 @@ side-channel@^1.0.4, side-channel@^1.0.6:
get-intrinsic "^1.2.4"
object-inspect "^1.13.1"
-signal-exit@^3.0.2, signal-exit@^3.0.3:
+signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7:
version "3.0.7"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
-simple-git@^3.15.1:
- version "3.25.0"
- resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-3.25.0.tgz#3666e76d6831f0583dc380645945b97e0ac4aab6"
- integrity sha512-KIY5sBnzc4yEcJXW7Tdv4viEz8KyG+nU0hay+DWZasvdFOYKeUZ6Xc25LUHHjw0tinPT7O1eY6pzX7pRT1K8rw==
+signal-exit@^4.0.1:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
+ integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
+
+simple-git@^3.15.1, simple-git@^3.24.0:
+ version "3.26.0"
+ resolved "https://registry.yarnpkg.com/simple-git/-/simple-git-3.26.0.tgz#9ee91de402206911dcb752c65db83f5177e18121"
+ integrity sha512-5tbkCSzuskR6uA7uA23yjasmA0RzugVo8QM2bpsnxkrgP13eisFT7TMS4a+xKEJvbmr4qf+l0WT3eKa9IxxUyw==
dependencies:
"@kwsites/file-exists" "^1.1.1"
"@kwsites/promise-deferred" "^1.1.1"
@@ -9021,6 +11211,21 @@ smart-buffer@^4.2.0:
resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae"
integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==
+snake-case@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-2.1.0.tgz#41bdb1b73f30ec66a04d4e2cad1b76387d4d6d9f"
+ integrity sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==
+ dependencies:
+ no-case "^2.2.0"
+
+snake-case@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c"
+ integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==
+ dependencies:
+ dot-case "^3.0.4"
+ tslib "^2.0.3"
+
sockjs@^0.3.24:
version "0.3.24"
resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce"
@@ -9047,10 +11252,18 @@ socks@^2.3.3:
ip-address "^9.0.5"
smart-buffer "^4.2.0"
-source-map-js@^1.0.2:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af"
- integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==
+source-map-js@^1.0.2, source-map-js@^1.2.0:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46"
+ integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==
+
+source-map-support@0.5.13:
+ version "0.5.13"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932"
+ integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==
+ dependencies:
+ buffer-from "^1.0.0"
+ source-map "^0.6.0"
source-map-support@^0.5.16, source-map-support@^0.5.6, source-map-support@~0.5.20:
version "0.5.21"
@@ -9133,18 +11346,18 @@ stackframe@^1.3.4:
integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==
start-server-and-test@^2.0.3:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-2.0.5.tgz#55397e581531ee54000c51c0078226ed7e35afa3"
- integrity sha512-2CV4pz69NJVJKQmJeSr+O+SPtOreu0yxvhPmSXclzmAKkPREuMabyMh+Txpzemjx0RDzXOcG2XkhiUuxjztSQw==
+ version "2.0.7"
+ resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-2.0.7.tgz#d88135fafc441ab25c129f73ee39008be05c15e6"
+ integrity sha512-tsOG1QbXKcRmrhCT0SrmmTex+uTjrb0SG8iF9XFmw1Cu8vPbVhER8zR4xkm5LAt1BarM/Dk7Jkfts+h8Rxfb2w==
dependencies:
arg "^5.0.2"
bluebird "3.7.2"
check-more-types "2.24.0"
- debug "4.3.6"
+ debug "4.3.7"
execa "5.1.1"
lazy-ass "1.6.0"
ps-tree "1.2.0"
- wait-on "7.2.0"
+ wait-on "8.0.0"
statuses@2.0.1:
version "2.0.1"
@@ -9183,6 +11396,15 @@ string-length@^4.0.1:
char-regex "^1.0.2"
strip-ansi "^6.0.0"
+"string-width-cjs@npm:string-width@^4.2.0":
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+ integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
+ dependencies:
+ emoji-regex "^8.0.0"
+ is-fullwidth-code-point "^3.0.0"
+ strip-ansi "^6.0.1"
+
string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
version "4.2.3"
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
@@ -9192,6 +11414,15 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
is-fullwidth-code-point "^3.0.0"
strip-ansi "^6.0.1"
+string-width@^5.0.1, string-width@^5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794"
+ integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==
+ dependencies:
+ eastasianwidth "^0.2.0"
+ emoji-regex "^9.2.2"
+ strip-ansi "^7.0.1"
+
string.prototype.includes@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/string.prototype.includes/-/string.prototype.includes-2.0.0.tgz#8986d57aee66d5460c144620a6d873778ad7289f"
@@ -9281,6 +11512,13 @@ stringify-entities@^4.0.0:
character-entities-html4 "^2.0.0"
character-entities-legacy "^3.0.0"
+"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+ integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+ dependencies:
+ ansi-regex "^5.0.1"
+
strip-ansi@^6.0.0, strip-ansi@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
@@ -9288,6 +11526,13 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1:
dependencies:
ansi-regex "^5.0.1"
+strip-ansi@^7.0.1:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
+ integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==
+ dependencies:
+ ansi-regex "^6.0.1"
+
strip-bom@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
@@ -9315,6 +11560,30 @@ strip-json-comments@^3.1.1:
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
+style-dictionary-utils@^2.0.7:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/style-dictionary-utils/-/style-dictionary-utils-2.4.1.tgz#21a51bd0f758f927e420b586e4062d4b05c47b00"
+ integrity sha512-Ged3wCzzswC6vw8Fh74IKUJg7ajPiH0ersYsPi0VT2ENWCq/gx6uAYOr1rjslqjSyQUfAVvNnOPxuWGJ2mdncQ==
+ dependencies:
+ color2k "^2.0.0"
+ json5 "^2.2.1"
+ prettier "^2.7.1"
+
+style-dictionary@^3.9.2:
+ version "3.9.2"
+ resolved "https://registry.yarnpkg.com/style-dictionary/-/style-dictionary-3.9.2.tgz#5b3ecd4af28a64f4855db71c90d24fd288f27318"
+ integrity sha512-M2pcQ6hyRtqHOh+NyT6T05R3pD/gwNpuhREBKvxC1En0vyywx+9Wy9nXWT1SZ9ePzv1vAo65ItnpA16tT9ZUCg==
+ dependencies:
+ chalk "^4.0.0"
+ change-case "^4.1.2"
+ commander "^8.3.0"
+ fs-extra "^10.0.0"
+ glob "^10.3.10"
+ json5 "^2.2.2"
+ jsonc-parser "^3.0.0"
+ lodash "^4.17.15"
+ tinycolor2 "^1.4.1"
+
style-to-object@^0.4.0:
version "0.4.4"
resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.4.4.tgz#266e3dfd56391a7eefb7770423612d043c3f33ec"
@@ -9323,13 +11592,13 @@ style-to-object@^0.4.0:
inline-style-parser "0.1.1"
style-to-object@^1.0.0:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-1.0.6.tgz#0c28aed8be1813d166c60d962719b2907c26547b"
- integrity sha512-khxq+Qm3xEyZfKd/y9L3oIWQimxuc4STrQKtQn8aSDRHb8mFgpukgX1hdzfrMEW6JCjyJ8p89x+IUMVnCBI1PA==
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-1.0.8.tgz#67a29bca47eaa587db18118d68f9d95955e81292"
+ integrity sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==
dependencies:
- inline-style-parser "0.2.3"
+ inline-style-parser "0.2.4"
-styled-components@^5.3.11:
+styled-components@5.3.11, styled-components@^5.3.11:
version "5.3.11"
resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.3.11.tgz#9fda7bf1108e39bf3f3e612fcc18170dedcd57a8"
integrity sha512-uuzIIfnVkagcVHv9nE0VPlHPSCmXIUGKfJ42LNjxCCTDTL5sgnJ8Z7GZBq0EnLYGln77tPpEpExt2+qa+cZqSw==
@@ -9352,6 +11621,19 @@ styled-jsx@5.1.1:
dependencies:
client-only "0.0.1"
+sucrase@^3.32.0:
+ version "3.35.0"
+ resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263"
+ integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==
+ dependencies:
+ "@jridgewell/gen-mapping" "^0.3.2"
+ commander "^4.0.0"
+ glob "^10.3.10"
+ lines-and-columns "^1.1.6"
+ mz "^2.7.0"
+ pirates "^4.0.1"
+ ts-interface-checker "^0.1.9"
+
supports-color@^5.3.0, supports-color@^5.5.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
@@ -9391,11 +11673,47 @@ svg-tags@1:
resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764"
integrity sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==
+swap-case@^1.1.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/swap-case/-/swap-case-1.1.2.tgz#c39203a4587385fad3c850a0bd1bcafa081974e3"
+ integrity sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==
+ dependencies:
+ lower-case "^1.1.1"
+ upper-case "^1.1.1"
+
symbol-tree@^3.2.4:
version "3.2.4"
resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
+tailwindcss@^3.4.3:
+ version "3.4.11"
+ resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.4.11.tgz#4d6df41acc05a1d0291b1319490db8df375ab709"
+ integrity sha512-qhEuBcLemjSJk5ajccN9xJFtM/h0AVCPaA6C92jNP+M2J8kX+eMJHI7R2HFKUvvAsMpcfLILMCFYSeDwpMmlUg==
+ dependencies:
+ "@alloc/quick-lru" "^5.2.0"
+ arg "^5.0.2"
+ chokidar "^3.5.3"
+ didyoumean "^1.2.2"
+ dlv "^1.1.3"
+ fast-glob "^3.3.0"
+ glob-parent "^6.0.2"
+ is-glob "^4.0.3"
+ jiti "^1.21.0"
+ lilconfig "^2.1.0"
+ micromatch "^4.0.5"
+ normalize-path "^3.0.0"
+ object-hash "^3.0.0"
+ picocolors "^1.0.0"
+ postcss "^8.4.23"
+ postcss-import "^15.1.0"
+ postcss-js "^4.0.1"
+ postcss-load-config "^4.0.1"
+ postcss-nested "^6.0.1"
+ postcss-selector-parser "^6.0.11"
+ resolve "^1.22.2"
+ sucrase "^3.32.0"
+
tapable@^2.1.1, tapable@^2.2.0:
version "2.2.1"
resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0"
@@ -9421,9 +11739,9 @@ terser-webpack-plugin@^5.3.10:
terser "^5.26.0"
terser@^5.26.0:
- version "5.31.6"
- resolved "https://registry.yarnpkg.com/terser/-/terser-5.31.6.tgz#c63858a0f0703988d0266a82fcbf2d7ba76422b1"
- integrity sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==
+ version "5.32.0"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-5.32.0.tgz#ee811c0d2d6b741c1cc34a2bc5bcbfc1b5b1f96c"
+ integrity sha512-v3Gtw3IzpBJ0ugkxEX8U0W6+TnPKRRCWGh1jC/iM/e3Ki5+qvO1L1EAZ56bZasc64aXHwRHNIQEzm6//i5cemQ==
dependencies:
"@jridgewell/source-map" "^0.3.3"
acorn "^8.8.2"
@@ -9462,7 +11780,7 @@ testcafe-browser-tools@2.0.26:
read-file-relative "^1.2.0"
which-promise "^1.0.0"
-testcafe-hammerhead@31.7.2, testcafe-hammerhead@>=19.4.0:
+testcafe-hammerhead@31.7.2:
version "31.7.2"
resolved "https://registry.yarnpkg.com/testcafe-hammerhead/-/testcafe-hammerhead-31.7.2.tgz#bbe09be27f19216dd119cf065b80644df5cbf257"
integrity sha512-wjZ3Y4fXnew6WaoMhD7jTe/zrzSYJMLZulX+/pXS6xed9meUx7zzCSc5epPJEW8Xy3Zo09n7w+m7+2SDej0/Iw==
@@ -9493,6 +11811,37 @@ testcafe-hammerhead@31.7.2, testcafe-hammerhead@>=19.4.0:
tunnel-agent "0.6.0"
ws "^7.4.6"
+testcafe-hammerhead@>=19.4.0:
+ version "31.7.3"
+ resolved "https://registry.yarnpkg.com/testcafe-hammerhead/-/testcafe-hammerhead-31.7.3.tgz#46e72e153a8ea7804571bb1e6adc48d2b60dff80"
+ integrity sha512-LmldhnuUUNcel66z8hjwPkxGrA6jaGt6K9B8iuxOVVRuhpqFfmP3do5MeplK9NyPbIjkAW6WsHDu+nUM88IUsA==
+ dependencies:
+ "@adobe/css-tools" "^4.3.0-rc.1"
+ "@electron/asar" "^3.2.3"
+ acorn-hammerhead "0.6.2"
+ bowser "1.6.0"
+ crypto-md5 "^1.0.0"
+ debug "4.3.1"
+ esotope-hammerhead "0.6.8"
+ http-cache-semantics "^4.1.0"
+ httpntlm "^1.8.10"
+ iconv-lite "0.5.1"
+ lodash "^4.17.21"
+ lru-cache "2.6.3"
+ match-url-wildcard "0.0.4"
+ merge-stream "^1.0.1"
+ mime "~1.4.1"
+ mustache "^2.1.1"
+ nanoid "^3.1.12"
+ os-family "^1.0.0"
+ parse5 "^7.1.2"
+ pinkie "2.0.4"
+ read-file-relative "^1.2.0"
+ semver "7.5.3"
+ tough-cookie "4.1.3"
+ tunnel-agent "0.6.0"
+ ws "^7.4.6"
+
testcafe-legacy-api@5.1.8:
version "5.1.8"
resolved "https://registry.yarnpkg.com/testcafe-legacy-api/-/testcafe-legacy-api-5.1.8.tgz#fc02eaa45293eb69c036c0e7af5a0b9a51640fcb"
@@ -9659,6 +12008,20 @@ text-table@^0.2.0:
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
+thenify-all@^1.0.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
+ integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==
+ dependencies:
+ thenify ">= 3.1.0 < 4"
+
+"thenify@>= 3.1.0 < 4":
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f"
+ integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==
+ dependencies:
+ any-promise "^1.0.0"
+
throat@5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b"
@@ -9684,6 +12047,19 @@ time-limit-promise@^1.0.2:
resolved "https://registry.yarnpkg.com/time-limit-promise/-/time-limit-promise-1.0.4.tgz#33e928212273c70d52153c28ad2a7e3319b975f9"
integrity sha512-FLHDDsIDducw7MBcRWlFtW2Tm50DoKOSFf0Nzx17qwXj8REXCte0eUkHrJl9QU3Bl9arG3XNYX0PcHpZ9xyuLw==
+tinycolor2@^1.4.1:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.6.0.tgz#f98007460169b0263b97072c5ae92484ce02d09e"
+ integrity sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==
+
+title-case@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/title-case/-/title-case-2.1.1.tgz#3e127216da58d2bc5becf137ab91dae3a7cd8faa"
+ integrity sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==
+ dependencies:
+ no-case "^2.2.0"
+ upper-case "^1.0.3"
+
tmp@0.0.28:
version "0.0.28"
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.28.tgz#172735b7f614ea7af39664fa84cf0de4e515d120"
@@ -9774,6 +12150,50 @@ truncate-utf8-bytes@^1.0.0:
dependencies:
utf8-byte-length "^1.0.1"
+ts-api-utils@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1"
+ integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==
+
+ts-interface-checker@^0.1.9:
+ version "0.1.13"
+ resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699"
+ integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==
+
+ts-jest@^29.1.1:
+ version "29.2.5"
+ resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.2.5.tgz#591a3c108e1f5ebd013d3152142cb5472b399d63"
+ integrity sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==
+ dependencies:
+ bs-logger "^0.2.6"
+ ejs "^3.1.10"
+ fast-json-stable-stringify "^2.1.0"
+ jest-util "^29.0.0"
+ json5 "^2.2.3"
+ lodash.memoize "^4.1.2"
+ make-error "^1.3.6"
+ semver "^7.6.3"
+ yargs-parser "^21.1.1"
+
+ts-node@^10.9.1:
+ version "10.9.2"
+ resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f"
+ integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==
+ dependencies:
+ "@cspotcode/source-map-support" "^0.8.0"
+ "@tsconfig/node10" "^1.0.7"
+ "@tsconfig/node12" "^1.0.7"
+ "@tsconfig/node14" "^1.0.0"
+ "@tsconfig/node16" "^1.0.2"
+ acorn "^8.4.1"
+ acorn-walk "^8.1.1"
+ arg "^4.1.0"
+ create-require "^1.1.0"
+ diff "^4.0.1"
+ make-error "^1.1.1"
+ v8-compile-cache-lib "^3.0.1"
+ yn "3.1.1"
+
tsconfig-paths@^3.15.0:
version "3.15.0"
resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4"
@@ -9784,10 +12204,20 @@ tsconfig-paths@^3.15.0:
minimist "^1.2.6"
strip-bom "^3.0.0"
-tslib@^2.0.1, tslib@^2.1.0, tslib@^2.4.0:
- version "2.6.3"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0"
- integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==
+tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0:
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.7.0.tgz#d9b40c5c40ab59e8738f297df3087bf1a2690c01"
+ integrity sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==
+
+tsx@^4.16.2:
+ version "4.19.1"
+ resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.19.1.tgz#b7bffdf4b565813e4dea14b90872af279cd0090b"
+ integrity sha512-0flMz1lh74BR4wOvBjuh9olbnwqCPc35OOlfyzHba0Dc+QNUeWX/Gq2YTbnwcWPO3BMd8fkzRVrHcsR+a7z7rA==
+ dependencies:
+ esbuild "~0.23.0"
+ get-tsconfig "^4.7.5"
+ optionalDependencies:
+ fsevents "~2.3.3"
tunnel-agent@0.6.0:
version "0.6.0"
@@ -9899,6 +12329,11 @@ typescript@4.7.4:
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235"
integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==
+typescript@^5.1.6, typescript@^5.2.2:
+ version "5.6.2"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.6.2.tgz#d1de67b6bef77c41823f822df8f0b3bcff60a5a0"
+ integrity sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==
+
unbox-primitive@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e"
@@ -9920,9 +12355,9 @@ undici-types@~6.19.2:
integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==
unicode-canonical-property-names-ecmascript@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc"
- integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz#cb3173fe47ca743e228216e4a3ddc4c84d628cc2"
+ integrity sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==
unicode-match-property-ecmascript@^2.0.0:
version "2.0.0"
@@ -9933,9 +12368,9 @@ unicode-match-property-ecmascript@^2.0.0:
unicode-property-aliases-ecmascript "^2.0.0"
unicode-match-property-value-ecmascript@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0"
- integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz#a0401aee72714598f739b68b104e4fe3a0cb3c71"
+ integrity sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==
unicode-property-aliases-ecmascript@^2.0.0:
version "2.1.0"
@@ -9976,14 +12411,6 @@ unist-util-position@^5.0.0:
dependencies:
"@types/unist" "^3.0.0"
-unist-util-remove-position@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz#fea68a25658409c9460408bc6b4991b965b52163"
- integrity sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==
- dependencies:
- "@types/unist" "^3.0.0"
- unist-util-visit "^5.0.0"
-
unist-util-stringify-position@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz#449c6e21a880e0855bf5aabadeb3a740314abac2"
@@ -10041,6 +12468,32 @@ update-browserslist-db@^1.1.0:
escalade "^3.1.2"
picocolors "^1.0.1"
+upper-case-first@^1.1.0, upper-case-first@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-1.1.2.tgz#5d79bedcff14419518fd2edb0a0507c9b6859115"
+ integrity sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==
+ dependencies:
+ upper-case "^1.1.1"
+
+upper-case-first@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324"
+ integrity sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==
+ dependencies:
+ tslib "^2.0.3"
+
+upper-case@^1.0.3, upper-case@^1.1.0, upper-case@^1.1.1, upper-case@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598"
+ integrity sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==
+
+upper-case@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-2.0.2.tgz#d89810823faab1df1549b7d97a76f8662bae6f7a"
+ integrity sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==
+ dependencies:
+ tslib "^2.0.3"
+
uri-js@^4.2.2:
version "4.4.1"
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
@@ -10061,12 +12514,27 @@ url-to-options@^2.0.0:
resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-2.0.0.tgz#416bfe77868b168b8aa7b72d74e7c29a97dca69d"
integrity sha512-mfONnc9dqO0J41wUh/El+plDskrIJRcyLcx6WjEGYW2K11RnjPDAgeoNFCallADaYJfcWIvAlYyZPBw02AbfIQ==
+use-callback-ref@^1.3.0:
+ version "1.3.2"
+ resolved "https://registry.yarnpkg.com/use-callback-ref/-/use-callback-ref-1.3.2.tgz#6134c7f6ff76e2be0b56c809b17a650c942b1693"
+ integrity sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==
+ dependencies:
+ tslib "^2.0.0"
+
+use-sidecar@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/use-sidecar/-/use-sidecar-1.1.2.tgz#2f43126ba2d7d7e117aa5855e5d8f0276dfe73c2"
+ integrity sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==
+ dependencies:
+ detect-node-es "^1.1.0"
+ tslib "^2.0.0"
+
utf8-byte-length@^1.0.1:
version "1.0.5"
resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz#f9f63910d15536ee2b2d5dd4665389715eac5c1e"
integrity sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==
-util-deprecate@^1.0.1, util-deprecate@~1.0.1:
+util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
@@ -10081,6 +12549,11 @@ uuid@^8.3.2:
resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
+v8-compile-cache-lib@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf"
+ integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==
+
v8-to-istanbul@^8.1.0:
version "8.1.1"
resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz#77b752fd3975e31bbcef938f85e9bd1c7a8d60ed"
@@ -10090,6 +12563,15 @@ v8-to-istanbul@^8.1.0:
convert-source-map "^1.6.0"
source-map "^0.7.3"
+v8-to-istanbul@^9.0.1:
+ version "9.3.0"
+ resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz#b9572abfa62bd556c16d75fdebc1a411d5ff3175"
+ integrity sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==
+ dependencies:
+ "@jridgewell/trace-mapping" "^0.3.12"
+ "@types/istanbul-lib-coverage" "^2.0.1"
+ convert-source-map "^2.0.0"
+
v8flags@^3.1.1:
version "3.2.0"
resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.2.0.tgz#b243e3b4dfd731fa774e7492128109a0fe66d656"
@@ -10111,14 +12593,24 @@ vfile-message@^4.0.0:
unist-util-stringify-position "^4.0.0"
vfile@^6.0.0:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/vfile/-/vfile-6.0.2.tgz#ef49548ea3d270097a67011921411130ceae7deb"
- integrity sha512-zND7NlS8rJYb/sPqkb13ZvbbUoExdbi4w3SfRrMq6R3FvnLQmmfpajJNITuuYm6AZ5uao9vy4BAos3EXBPf2rg==
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/vfile/-/vfile-6.0.3.tgz#3652ab1c496531852bf55a6bac57af981ebc38ab"
+ integrity sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==
dependencies:
"@types/unist" "^3.0.0"
- unist-util-stringify-position "^4.0.0"
vfile-message "^4.0.0"
+vite@^5.1.4, vite@^5.2.0:
+ version "5.4.4"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.4.tgz#3da90314b617047366459443320ea78f39111008"
+ integrity sha512-RHFCkULitycHVTtelJ6jQLd+KSAAzOgEYorV32R2q++M6COBjKJR6BxqClwp5sf0XaBDjVMuJ9wnNfyAJwjMkA==
+ dependencies:
+ esbuild "^0.21.3"
+ postcss "^8.4.43"
+ rollup "^4.20.0"
+ optionalDependencies:
+ fsevents "~2.3.3"
+
vm2@^3.9.17:
version "3.9.19"
resolved "https://registry.yarnpkg.com/vm2/-/vm2-3.9.19.tgz#be1e1d7a106122c6c492b4d51c2e8b93d3ed6a4a"
@@ -10148,18 +12640,18 @@ w3c-xmlserializer@^3.0.0:
dependencies:
xml-name-validator "^4.0.0"
-wait-on@7.2.0:
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-7.2.0.tgz#d76b20ed3fc1e2bebc051fae5c1ff93be7892928"
- integrity sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==
+wait-on@8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-8.0.0.tgz#82e3f334db01cf37beef0d11639d66333b027f03"
+ integrity sha512-fNE5SXinLr2Bt7cJvjvLg2PcXfqznlqRvtE3f8AqYdRZ9BhE+XpsCp1mwQbRoO7s1q7uhAuCw0Ro3mG/KdZjEw==
dependencies:
- axios "^1.6.1"
- joi "^17.11.0"
+ axios "^1.7.4"
+ joi "^17.13.3"
lodash "^4.17.21"
minimist "^1.2.8"
rxjs "^7.8.1"
-walker@^1.0.7:
+walker@^1.0.7, walker@^1.0.8:
version "1.0.8"
resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f"
integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==
@@ -10476,6 +12968,15 @@ word-wrap@^1.2.5, word-wrap@~1.2.3:
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34"
integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==
+"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+ integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+ dependencies:
+ ansi-styles "^4.0.0"
+ string-width "^4.1.0"
+ strip-ansi "^6.0.0"
+
wrap-ansi@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
@@ -10485,6 +12986,15 @@ wrap-ansi@^7.0.0:
string-width "^4.1.0"
strip-ansi "^6.0.0"
+wrap-ansi@^8.1.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"
+ integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==
+ dependencies:
+ ansi-styles "^6.1.0"
+ string-width "^5.0.1"
+ strip-ansi "^7.0.1"
+
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
@@ -10500,6 +13010,14 @@ write-file-atomic@^3.0.0:
signal-exit "^3.0.2"
typedarray-to-buffer "^3.1.5"
+write-file-atomic@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd"
+ integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==
+ dependencies:
+ imurmurhash "^0.1.4"
+ signal-exit "^3.0.7"
+
ws@^7.2.0, ws@^7.4.6:
version "7.5.10"
resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9"
@@ -10550,12 +13068,17 @@ yallist@^4.0.0:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+yaml@^2.3.4:
+ version "2.5.1"
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.5.1.tgz#c9772aacf62cb7494a95b0c4f1fb065b563db130"
+ integrity sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==
+
yargs-parser@^20.2.2:
version "20.2.9"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
-yargs-parser@^21.0.0:
+yargs-parser@^21.0.0, yargs-parser@^21.1.1:
version "21.1.1"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==
@@ -10586,6 +13109,24 @@ yargs@^16.2.0:
y18n "^5.0.5"
yargs-parser "^20.2.2"
+yargs@^17.3.1:
+ version "17.7.2"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269"
+ integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==
+ dependencies:
+ cliui "^8.0.1"
+ escalade "^3.1.1"
+ get-caller-file "^2.0.5"
+ require-directory "^2.1.1"
+ string-width "^4.2.3"
+ y18n "^5.0.5"
+ yargs-parser "^21.1.1"
+
+yn@3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
+ integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
+
yocto-queue@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"