@pantheon-systems/pds-toolkit-react 2.0.0-alpha.5 → 2.0.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/libs/components/utils.js","../node_modules/@pantheon-systems/pds-design-tokens/build/js/variables.global.js","../src/components/icons/Icon/custom-icons.tsx","../src/components/icons/Icon/generated-icon-data.ts","../src/components/icons/Icon/Icon.tsx","../src/components/Avatar/Avatar.tsx","../src/components/badges/Badge/Badge.tsx","../src/components/badges/StatusBadge/StatusBadge.tsx","../src/components/badges/Tally/Tally.tsx","../src/libs/components/utility-components.tsx","../node_modules/@pantheon-systems/pds-design-tokens/build/js/variables.typography.js","../src/utilities/context-providers/OverlayContext/OverlayContext.tsx","../src/utilities/hooks/useKeyPress/useKeyPress.ts","../src/components/Tooltip/Tooltip.tsx","../src/components/inputs/input-utilities.tsx","../src/components/loading-indicators/Spinner/Spinner.tsx","../src/components/buttons/Button/Button.tsx","../src/components/buttons/ButtonLink/ButtonLink.tsx","../src/utilities/hooks/useClipboard/useClipboard.ts","../src/components/buttons/IconButton/IconButton.tsx","../src/components/buttons/ClipboardButton/ClipboardButton.tsx","../src/components/buttons/CloseButton/CloseButton.tsx","../src/libs/types/custom-types.tsx","../src/utilities/hooks/useWindowWidth/useWindowWidth.ts","../src/utilities/context-providers/ResponsiveContext/ResponsiveContext.tsx","../src/components/buttons/MenuButton/MenuButton.tsx","../src/components/buttons/SegmentedButton/SegmentedButton.tsx","../src/components/buttons/SplitButton/SplitButton.tsx","../src/components/icons/PlatformIcon/PlatformIcon.tsx","../src/components/buttons/SSOButton/SSOButton.tsx","../src/components/buttons/UtilityButton/UtilityButton.tsx","../src/components/inputs/Textarea/Textarea.tsx","../src/components/inputs/TextInput/TextInput.tsx","../src/components/navigation/navigation-utilities.tsx","../src/components/navigation/ButtonNav/ButtonNav.tsx","../src/components/notifications/Banner/Banner.tsx","../src/components/notifications/InlineMessage/InlineMessage.tsx","../src/components/notifications/SectionMessage/SectionMessage.tsx","../src/components/notifications/Toaster/Toast.tsx","../src/components/notifications/Toaster/Toaster.tsx","../src/components/notifications/Toaster/useToast.tsx","../src/components/panels/PanelList/PanelRow.tsx","../src/components/Picture/Picture.tsx","../src/components/Skiplink/Skiplink.tsx","../src/components/StatusIndicator/StatusIndicator.tsx","../src/components/VideoEmbed/VideoEmbed.tsx","../src/libs/components/SiteOptionDisplay/SiteOptionDisplay.tsx","../src/layouts/Container/Container.tsx","../src/layouts/DocsLayout/DocsLayout.tsx","../src/layouts/FlexContainer/FlexContainer.tsx","../src/layouts/GlobalWrapper/GlobalWrapper.tsx","../src/layouts/ThreeItemLayout/ThreeItemLayout.tsx","../src/layouts/TwoItemLayout/TwoItemLayout.tsx","../src/utilities/hooks/useBreakpoint/useBreakpoint.ts","../src/utilities/hooks/useMediaQuery/useMediaQuery.ts"],"sourcesContent":["import { Children, isValidElement } from 'react';\n\n// Function to generate a random ID.\nexport const createRandomID = () => {\n\treturn Math.random().toString(32).substring(2, 13);\n};\n\n// Function to collect all descendants of an element.\nexport const getDescendants = (node, collect) => {\n\t// Check for children first.\n\tif (!node?.childNodes) {\n\t\treturn;\n\t}\n\n\t// Collect all children.\n\tlet i;\n\tcollect = collect || [];\n\tfor (i = 0; i < node.childNodes.length; i++) {\n\t\tcollect.push(node.childNodes[i]);\n\t\tgetDescendants(node.childNodes[i], collect);\n\t}\n\treturn collect;\n};\n\n// Function to initiate slots from a children prop.\nexport const initiateSlots = (children) => {\n\tconst slots = {};\n\tconst unslotted = [];\n\n\tChildren.forEach(children, (child) => {\n\t\tif (isValidElement(child)) {\n\t\t\tconst slotName = child.props.slot;\n\t\t\tif (slotName) {\n\t\t\t\tif (slots[slotName]) {\n\t\t\t\t\tslots[slotName].push(child);\n\t\t\t\t} else {\n\t\t\t\t\tslots[slotName] = [child];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tunslotted.push(child);\n\t\t\t}\n\t\t} else {\n\t\t\t// Handle non-React elements (strings, numbers, etc.)\n\t\t\tunslotted.push(child);\n\t\t}\n\t});\n\n\t// Add unslotted children to the slots object with a special key\n\tif (unslotted.length > 0) {\n\t\tslots['__unslotted'] = unslotted;\n\t}\n\n\treturn slots;\n};\n\n// Function to merge css classes\nexport const mergeClasses = (styles) =>\n\tstyles.join(' ').trim().replace(/\\s+/g, ' ');\n\n/**\n * Function to validate if image src is valid, restricts base64 to data image types and excludes svg + xml\n */\nexport const isValidImageSrc = (uri) => {\n\tif (!uri) return false;\n\n\tif (!uri.startsWith('data:')) return true;\n\n\tconst regex =\n\t\t/^data:image\\/(png|jpeg|jpg|gif|bmp|webp);base64,[A-Za-z0-9+/]+=*$/;\n\treturn regex.test(uri);\n};\n","/**\n * Do not edit directly, this file was auto-generated.\n */\n\nexport const ANIMATION_DURATION_DEFAULT = \"200ms\";\nexport const ANIMATION_DURATION_REVEAL = \"300ms\";\nexport const ANIMATION_TIMING_FUNCTION_DEFAULT = \"cubic-bezier(.2, 0, 0, 1)\";\nexport const ANIMATION_TRANSITION_BUTTON = \"background-color 200ms cubic-bezier(.2, 0, 0, 1) 0ms, border-color 200ms cubic-bezier(.2, 0, 0, 1) 0ms, color 200ms cubic-bezier(.2, 0, 0, 1) 0ms, box-shadow 200ms cubic-bezier(.2, 0, 0, 1) 0ms, transform 200ms cubic-bezier(.2, 0, 0, 1) 0ms\";\nexport const ANIMATION_TRANSITION_DEFAULT = \"all 200ms cubic-bezier(.2, 0, 0, 1) 0ms\";\nexport const ANIMATION_TRANSITION_FOCUS = \"outline 200ms cubic-bezier(.2, 0, 0, 1) 0ms, outline-offset 200ms cubic-bezier(.2, 0, 0, 1) 0ms, box-shadow 200ms cubic-bezier(.2, 0, 0, 1) 0ms, border-color 200ms cubic-bezier(.2, 0, 0, 1) 0ms\";\nexport const ANIMATION_TRANSITION_INPUT = \"border-color 200ms cubic-bezier(.2, 0, 0, 1) 0ms, background-color 200ms cubic-bezier(.2, 0, 0, 1) 0ms, box-shadow 200ms cubic-bezier(.2, 0, 0, 1) 0ms, outline 200ms cubic-bezier(.2, 0, 0, 1) 0ms\";\nexport const ANIMATION_TRANSITION_LINK = \"color 200ms cubic-bezier(.2, 0, 0, 1) 0ms, text-decoration-color 200ms cubic-bezier(.2, 0, 0, 1) 0ms\";\nexport const ANIMATION_TRANSITION_REVEAL = \"height 300ms cubic-bezier(.2, 0, 0, 1) 0ms, opacity 300ms cubic-bezier(.2, 0, 0, 1) 0ms, padding 300ms cubic-bezier(.2, 0, 0, 1) 0ms, width 300ms cubic-bezier(.2, 0, 0, 1) 0ms\";\nexport const ANIMATION_TRANSITION_ROTATION = \"transform 200ms cubic-bezier(.2, 0, 0, 1) 0ms\";\nexport const BORDER_WIDTH_STEPPER = \"3px\";\nexport const BORDER_WIDTH_DEFAULT = \"1px\";\nexport const BORDER_WIDTH_THICKER = \"2px\";\nexport const BORDER_WIDTH_OUTLINE = \"1px\";\nexport const BORDER_RADIUS_DEFAULT = \"0.1875rem\";\nexport const BORDER_RADIUS_BAR = \"3.5rem\";\nexport const BORDER_RADIUS_BUTTON = \"3.5rem\";\nexport const BORDER_RADIUS_CONTAINER = \"0.375rem\";\nexport const BORDER_RADIUS_INPUT = \"0.25rem\";\nexport const BP_S = 0;\nexport const BP_M = 768;\nexport const BP_L = 1280;\nexport const BP_XL = 1440;\nexport const CONTAINER_MODAL_WIDTH_S = \"25rem\";\nexport const CONTAINER_MODAL_WIDTH_M = \"37.5rem\";\nexport const CONTAINER_MODAL_WIDTH_L = \"47.5rem\";\nexport const CONTAINER_MODAL_WIDTH_XL = \"67.5rem\";\nexport const CONTAINER_TOOLTIP_MAX_WIDTH = \"12.5rem\";\nexport const CONTAINER_DASHBOARD_NAVBAR_MAX_WIDTH = \"1440px\";\nexport const CONTAINER_PADDING_BASE = \"1.5rem\";\nexport const CONTAINER_PADDING_NARROW_BP_M = \"12%\";\nexport const CONTAINER_PADDING_NARROW_BP_L = \"20%\";\nexport const CONTAINER_PADDING_STANDARD_BP_M = \"6%\";\nexport const CONTAINER_PADDING_STANDARD_BP_L = \"8%\";\nexport const CONTAINER_PADDING_WIDE_BP_M = \"5%\";\nexport const CONTAINER_PADDING_WIDE_BP_L = \"4%\";\nexport const CONTAINER_MAX_WIDTH_NARROW = \"1024px\";\nexport const CONTAINER_MAX_WIDTH_STANDARD = \"1200px\";\nexport const CONTAINER_MAX_WIDTH_WIDE = \"1440px\";\nexport const CONTAINER_MAX_WIDTH_X_WIDE = \"1600px\";\nexport const GRID_COLUMNS_4_GAP = \"1.25rem\";\nexport const GRID_COLUMNS_12_BP_M_GAP_NARROW = \"1.25rem\";\nexport const GRID_COLUMNS_12_BP_M_GAP_STANDARD = \"1.5rem\";\nexport const GRID_COLUMNS_12_BP_M_GAP_WIDE = \"2rem\";\nexport const GRID_COLUMNS_12_BP_L_GAP_NARROW = \"1.5rem\";\nexport const GRID_COLUMNS_12_BP_L_GAP_STANDARD = \"2rem\";\nexport const GRID_COLUMNS_12_BP_L_GAP_WIDE = \"2.5rem\";\nexport const SPACING_DASHBOARD_NAV_ITEM_HEIGHT = \"2.25rem\";\nexport const SPACING_DASHBOARD_NAV_ITEM_PADDING = \"0.625rem\";\nexport const SPACING_STEPPER_INDICATOR_SIZE = \"1.25rem\";\nexport const SPACING_STEPPER_STEP_CONTENT_WIDTH = \"7rem\";\nexport const SPACING_9XL = \"10rem\";\nexport const SPACING_8XL = \"8rem\";\nexport const SPACING_7XL = \"6rem\";\nexport const SPACING_6XL = \"5rem\";\nexport const SPACING_5XL = \"4rem\";\nexport const SPACING_4XL = \"3rem\";\nexport const SPACING_3XL = \"2.5rem\";\nexport const SPACING_2XL = \"2rem\";\nexport const SPACING_XL = \"1.5rem\";\nexport const SPACING_L = \"1.25rem\";\nexport const SPACING_M = \"1rem\";\nexport const SPACING_S = \"0.75rem\";\nexport const SPACING_XS = \"0.625rem\";\nexport const SPACING_2XS = \"0.5rem\";\nexport const SPACING_3XS = \"0.375rem\";\nexport const SPACING_4XS = \"0.25rem\";\nexport const SPACING_5XS = \"0.125rem\";\nexport const SPACING_BUTTON_HEIGHT_XS = \"1.5rem\";\nexport const SPACING_BUTTON_HEIGHT_S = \"2rem\";\nexport const SPACING_BUTTON_HEIGHT_M = \"2.5rem\";\nexport const SPACING_BUTTON_HEIGHT_L = \"3rem\";\nexport const SPACING_BUTTON_HEIGHT_XL = \"3.5rem\";\nexport const SPACING_BUTTON_PADDING_INLINE_XS = \"0.75rem\";\nexport const SPACING_BUTTON_PADDING_INLINE_S = \"1rem\";\nexport const SPACING_BUTTON_PADDING_INLINE_M = \"1.25rem\";\nexport const SPACING_BUTTON_PADDING_INLINE_L = \"1.5rem\";\nexport const SPACING_BUTTON_PADDING_INLINE_XL = \"2.25rem\";\nexport const SPACING_BUTTON_GAP_INLINE_XS = \"0.5rem\";\nexport const SPACING_BUTTON_GAP_INLINE_S = \"0.5rem\";\nexport const SPACING_BUTTON_GAP_INLINE_M = \"0.625rem\";\nexport const SPACING_BUTTON_GAP_INLINE_L = \"0.625rem\";\nexport const SPACING_BUTTON_GAP_INLINE_XL = \"0.625rem\";\nexport const SPACING_INPUT_HEIGHT_S = \"2rem\";\nexport const SPACING_INPUT_HEIGHT_M = \"2.5rem\";\nexport const SPACING_INPUT_HEIGHT_L = \"3rem\";\nexport const TYPOGRAPHY_FONT_CSS_IMPORT = \"'https://fonts.googleapis.com/css2?family=IBM+Plex+Serif:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=Inter+Tight:ital,wght@0,100..900;1,100..900&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Source+Code+Pro:ital,wght@0,200..900;1,200..900&display=swap'\";\nexport const Z_INDEX_NAVIGATION = 100;\nexport const Z_INDEX_DROPDOWN = 300;\nexport const Z_INDEX_NOTIFICATIONS = 500;\nexport const Z_INDEX_OVERLAY = 700;\nexport const Z_INDEX_MODAL = 900;\nexport const Z_INDEX_MAX = 9999;\nexport const Z_INDEX_RESET = 0;\n\nexport const SPACING = {\n SPACING_5XS,\n SPACING_4XS,\n SPACING_3XS,\n SPACING_2XS,\n SPACING_XS,\n SPACING_S,\n SPACING_M,\n SPACING_L,\n SPACING_XL,\n SPACING_2XL,\n SPACING_3XL,\n SPACING_4XL,\n SPACING_5XL,\n SPACING_6XL,\n SPACING_7XL,\n SPACING_8XL,\n SPACING_9XL,\n};\n","/**\n * Custom icon SVG data for icons without a Font Awesome equivalent.\n *\n * Two types:\n * - 'path': Simple SVG path data (renders as <path d={svgPathData} />)\n * - 'complex': JSX content for icons needing masks, gradients, etc.\n *\n * Creating custom icons:\n *\n * ViewBox dimensions:\n * - Use 512 height to match FA's standard. Width can vary by aspect ratio.\n * - Exception: brand logos with fixed aspect ratios (e.g. nextJs at 180x180)\n * can use their native dimensions.\n *\n * Preparing SVG path data from Figma/Illustrator:\n * 1. Flatten all layers into a single path\n * 2. Set artboard to target dimensions (e.g. Nx512)\n * 3. Export as SVG, copy the `d` attribute from the <path> element\n * 4. Remove any fill, stroke, or transform attributes — the component\n * applies fill=\"currentColor\" at render time\n * 5. Ensure path coordinates start at 0,0 (no negative coords or offsets)\n *\n * When to use 'complex':\n * - Only when the icon requires multiple elements (masks, gradients,\n * multiple colors). Avoid if possible since complex icons can't be\n * serialized by the generate script.\n *\n * Testing:\n * - Check the icon at all sizes (xs through 3xl) in Storybook\n * - Verify it looks balanced next to FA icons at the same size\n */\n\nimport React from 'react';\n\nexport interface SimpleCustomIcon {\n\theight: number;\n\tsvgPathData: string;\n\ttype: 'path';\n\twidth: number;\n}\n\nexport interface ComplexCustomIcon {\n\theight: number;\n\trender: () => React.ReactNode;\n\ttype: 'complex';\n\twidth: number;\n}\n\nexport type CustomIconData = ComplexCustomIcon | SimpleCustomIcon;\n\nexport const customIcons: Record<string, CustomIconData> = {\n\tboltPantheon: {\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M183.215 0L254.271 277.176H204.614L302 512L46.228 187.779H135.272L0 0.434418L144.526 0.459972L145.968 0H183.215Z',\n\t\ttype: 'path',\n\t\twidth: 304,\n\t},\n\tnextJs: {\n\t\theight: 180,\n\t\trender: () => (\n\t\t\t<>\n\t\t\t\t<mask\n\t\t\t\t\theight='180'\n\t\t\t\t\tid='icon_nextjs_mask'\n\t\t\t\t\tmaskUnits='userSpaceOnUse'\n\t\t\t\t\tstyle={{ maskType: 'alpha' }}\n\t\t\t\t\twidth='180'\n\t\t\t\t\tx='0'\n\t\t\t\t\ty='0'\n\t\t\t\t>\n\t\t\t\t\t<circle cx='90' cy='90' fill='black' r='90' />\n\t\t\t\t</mask>\n\t\t\t\t<g mask='url(#icon_nextjs_mask)'>\n\t\t\t\t\t<circle cx='90' cy='90' fill='currentColor' r='90' />\n\t\t\t\t\t<path\n\t\t\t\t\t\td='M149.508 157.52L69.142 54H54V125.97H66.1136V69.3836L139.999 164.845C143.333 162.614 146.509 160.165 149.508 157.52Z'\n\t\t\t\t\t\tfill='url(#icon_nextjs_gradient_diagonal)'\n\t\t\t\t\t/>\n\t\t\t\t\t<rect\n\t\t\t\t\t\tfill='url(#icon_nextjs_gradient_vertical)'\n\t\t\t\t\t\theight='72'\n\t\t\t\t\t\twidth='12'\n\t\t\t\t\t\tx='115'\n\t\t\t\t\t\ty='54'\n\t\t\t\t\t/>\n\t\t\t\t</g>\n\t\t\t\t<defs>\n\t\t\t\t\t<linearGradient\n\t\t\t\t\t\tgradientUnits='userSpaceOnUse'\n\t\t\t\t\t\tid='icon_nextjs_gradient_diagonal'\n\t\t\t\t\t\tx1='109'\n\t\t\t\t\t\tx2='144.5'\n\t\t\t\t\t\ty1='116.5'\n\t\t\t\t\t\ty2='160.5'\n\t\t\t\t\t>\n\t\t\t\t\t\t<stop stopColor='var(--icon-detail-color)' />\n\t\t\t\t\t\t<stop\n\t\t\t\t\t\t\toffset='1'\n\t\t\t\t\t\t\tstopColor='var(--icon-detail-color)'\n\t\t\t\t\t\t\tstopOpacity='0'\n\t\t\t\t\t\t/>\n\t\t\t\t\t</linearGradient>\n\t\t\t\t\t<linearGradient\n\t\t\t\t\t\tgradientUnits='userSpaceOnUse'\n\t\t\t\t\t\tid='icon_nextjs_gradient_vertical'\n\t\t\t\t\t\tx1='121'\n\t\t\t\t\t\tx2='120.799'\n\t\t\t\t\t\ty1='54'\n\t\t\t\t\t\ty2='106.875'\n\t\t\t\t\t>\n\t\t\t\t\t\t<stop stopColor='var(--icon-detail-color)' />\n\t\t\t\t\t\t<stop\n\t\t\t\t\t\t\toffset='1'\n\t\t\t\t\t\t\tstopColor='var(--icon-detail-color)'\n\t\t\t\t\t\t\tstopOpacity='0'\n\t\t\t\t\t\t/>\n\t\t\t\t\t</linearGradient>\n\t\t\t\t</defs>\n\t\t\t</>\n\t\t),\n\t\ttype: 'complex',\n\t\twidth: 180,\n\t},\n\tquotesLeft: {\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M232.896 226.425C228.749 226.425 225.964 231.118 227.632 235.301L286.746 413.714L116.988 224.541C113.406 220.543 102.507 208.132 99.9534 203.926L11.645 108.127C9.0914 103.92 11.8346 98.2854 16.4278 98.2854H227.018C227.811 98.2854 228.592 98.3754 229.349 98.5481C229.87 98.3779 230.428 98.2854 231.017 98.2854H441.605C446.22 98.2854 450.387 101.323 452.187 106.003L495.176 217.627C496.786 221.801 494.005 226.425 489.888 226.425H447.484C443.338 226.425 440.551 231.118 442.221 235.301L501.333 413.714L331.576 224.541C327.995 220.543 317.095 208.132 314.542 203.926L247.159 130.829L280.589 217.627C282.198 221.801 279.418 226.425 275.3 226.425H232.896Z',\n\t\ttype: 'path',\n\t\twidth: 512,\n\t},\n\tquotesRight: {\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M289.771 226.425C293.918 226.425 296.703 231.118 295.035 235.301L235.921 413.714L405.679 224.541C409.261 220.543 420.16 208.132 422.713 203.926L511.022 108.127C513.575 103.92 510.832 98.2854 506.239 98.2854H295.649C294.855 98.2854 294.075 98.3754 293.317 98.5481C292.797 98.3779 292.239 98.2854 291.65 98.2854H81.0613C76.4469 98.2854 72.2795 101.323 70.48 106.003L27.4902 217.627C25.8806 221.801 28.6614 226.425 32.7787 226.425H75.183C79.3291 226.425 82.1152 231.118 80.4459 235.301L21.3334 413.714L191.09 224.541C194.672 220.543 205.571 208.132 208.125 203.926L275.507 130.829L242.078 217.627C240.468 221.801 243.249 226.425 247.366 226.425H289.771Z',\n\t\ttype: 'path',\n\t\twidth: 512,\n\t},\n};\n","/**\n * Auto-generated icon data - DO NOT EDIT MANUALLY\n *\n * Generated by: npm run generate:icon-data\n * Source: icon-registry.ts + Font Awesome packages + custom-icons.tsx\n * Generated: 2026-03-17T01:29:14.965Z\n */\n\nimport { customIcons } from './custom-icons';\n\nexport { customIcons };\n\nexport const iconData = {\n\tangleDown: {\n\t\taliases: ['chevron down', 'dropdown'],\n\t\tcategories: ['arrows'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M209.5 369c-9.4 9.4-24.6 9.4-33.9 0L15.5 209c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l143 143 143-143c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-160 160z',\n\t\twidth: 384,\n\t},\n\tangleLeft: {\n\t\taliases: ['chevron left'],\n\t\tcategories: ['arrows'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M15.5 239c-9.4 9.4-9.4 24.6 0 33.9l160 160c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-143-143 143-143c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L15.5 239z',\n\t\twidth: 256,\n\t},\n\tangleRight: {\n\t\taliases: ['chevron right'],\n\t\tcategories: ['arrows'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M241.5 239c9.4 9.4 9.4 24.6 0 33.9L81.5 433c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l143-143-143-143c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l160 160z',\n\t\twidth: 256,\n\t},\n\tanglesLeft: {\n\t\taliases: ['chevrons left', 'double left'],\n\t\tcategories: ['arrows'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M15.5 239c-9.4 9.4-9.4 24.6 0 33.9l160 160c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-143-143 143-143c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L15.5 239zm352-160l-160 160c-9.4 9.4-9.4 24.6 0 33.9l160 160c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-143-143 143-143c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0z',\n\t\twidth: 448,\n\t},\n\tanglesRight: {\n\t\taliases: ['chevrons right', 'double right'],\n\t\tcategories: ['arrows'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M81.5 433l160-160c9.4-9.4 9.4-24.6 0-33.9L81.5 79c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l143 143-143 143c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0zm192 0l160-160c9.4-9.4 9.4-24.6 0-33.9L273.5 79c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l143 143-143 143c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0z',\n\t\twidth: 448,\n\t},\n\tangleUp: {\n\t\taliases: ['chevron up'],\n\t\tcategories: ['arrows'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M175.5 143c9.4-9.4 24.6-9.4 33.9 0l160 160c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-143-143-143 143c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l160-160z',\n\t\twidth: 384,\n\t},\n\tarrowDownToLine: {\n\t\taliases: ['download', 'save to'],\n\t\tcategories: ['actions', 'arrows'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M360 512c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0zM175 377c9.4 9.4 24.6 9.4 33.9 0L345 241c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-95 95 0-278.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 278.1-95-95c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L175 377z',\n\t\twidth: 384,\n\t},\n\tarrowLeft: {\n\t\taliases: ['back', 'previous'],\n\t\tcategories: ['arrows', 'navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M7 239c-9.4 9.4-9.4 24.6 0 33.9L175 441c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L81.9 280 488 280c13.3 0 24-10.7 24-24s-10.7-24-24-24L81.9 232 209 105c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L7 239z',\n\t\twidth: 512,\n\t},\n\tarrowRight: {\n\t\taliases: ['forward', 'next'],\n\t\tcategories: ['arrows', 'navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M505 273c9.4-9.4 9.4-24.6 0-33.9L337 71c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l127 127-406.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l406.1 0-127 127c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L505 273z',\n\t\twidth: 512,\n\t},\n\tarrowsRetweet: {\n\t\taliases: ['retweet', 'swap', 'exchange'],\n\t\tcategories: ['actions', 'arrows'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M463 473c9.4 9.4 24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-270.1c0-53-43-96-96-96L280 32c-13.3 0-24 10.7-24 24s10.7 24 24 24l128 0c26.5 0 48 21.5 48 48l0 270.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72zM113 39c-9.4-9.4-24.6-9.4-33.9 0L7 111c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l31-31 0 270.1c0 53 43 96 96 96l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0c-26.5 0-48-21.5-48-48l0-270.1 31 31c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L113 39z',\n\t\twidth: 576,\n\t},\n\tasterisk: {\n\t\taliases: ['required', 'star'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M224 0c13.3 0 24 10.7 24 24l0 190.3 164-95.1c11.5-6.7 26.2-2.7 32.8 8.7s2.7 26.2-8.7 32.8L271.8 256 436 351.2c11.5 6.6 15.4 21.3 8.7 32.8s-21.3 15.4-32.8 8.7L248 297.7 248 488c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-190.3-164 95.1c-11.5 6.7-26.2 2.7-32.8-8.7S.5 357.9 12 351.2L176.2 256 12 160.8C.5 154.1-3.4 139.4 3.2 128s21.3-15.4 32.8-8.7L200 214.3 200 24c0-13.3 10.7-24 24-24z',\n\t\twidth: 448,\n\t},\n\tbanBug: {\n\t\taliases: ['no bugs', 'debug'],\n\t\tcategories: ['development', 'security'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M256 464c-114.9 0-208-93.1-208-208 0-48.8 16.8-93.7 44.9-129.1L385.1 419.1C349.7 447.2 304.8 464 256 464zm85.2-156.7l31.4 4.5c13.1 1.9 25.3-7.2 27.2-20.4s-7.2-25.3-20.4-27.2l-43.4-6.2 0-4.1 43.4-6.2c13.1-1.9 22.2-14 20.4-27.2s-14-22.2-27.2-20.4L336 205.5c-.1-4.1-.6-8.1-1.3-12l37-20.5c11.6-6.4 15.8-21 9.3-32.6s-21-15.8-32.6-9.3l-36.1 20.1c-14.5-14.3-34.3-23.1-56.2-23.1-25.7 0-48.5 12.1-63.2 30.9l-66-66c35.5-28.1 80.3-44.9 129.1-44.9 114.9 0 208 93.1 208 208 0 48.8-16.8 93.7-44.9 129.1l-77.9-77.9zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM132.6 264.2c-13.1 1.9-22.2 14-20.4 27.2s14 22.2 27.2 20.4l36.6-5.2c.1 4.1 .6 8.1 1.3 12l-37 20.5c-11.6 6.4-15.8 21-9.3 32.6s21 15.8 32.6 9.3l36.1-20.1c14.4 14.3 34.3 23.1 56.2 23.1 7.9 0 15.6-1.2 22.9-3.3l-120.2-120.2-26.1 3.7z',\n\t\twidth: 512,\n\t},\n\tbars: {\n\t\taliases: ['menu', 'hamburger', 'nav'],\n\t\tcategories: ['navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M0 88C0 74.7 10.7 64 24 64l400 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 112C10.7 112 0 101.3 0 88zM0 256c0-13.3 10.7-24 24-24l400 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 280c-13.3 0-24-10.7-24-24zM448 424c0 13.3-10.7 24-24 24L24 448c-13.3 0-24-10.7-24-24s10.7-24 24-24l400 0c13.3 0 24 10.7 24 24z',\n\t\twidth: 448,\n\t},\n\tbarsFilter: {\n\t\taliases: ['filter', 'sort'],\n\t\tcategories: ['actions', 'navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M0 88C0 74.7 10.7 64 24 64l464 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 112C10.7 112 0 101.3 0 88zM96 256c0-13.3 10.7-24 24-24l272 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-272 0c-13.3 0-24-10.7-24-24zM320 424c0 13.3-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l80 0c13.3 0 24 10.7 24 24z',\n\t\twidth: 512,\n\t},\n\tbell: {\n\t\taliases: ['notification', 'alert', 'reminder'],\n\t\tcategories: ['communication', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M224 0c-13.3 0-24 10.7-24 24l0 9.7C118.6 45.3 56 115.4 56 200l0 14.5c0 37.7-10 74.7-29 107.3L5.1 359.2C1.8 365 0 371.5 0 378.2 0 399.1 16.9 416 37.8 416l372.4 0c20.9 0 37.8-16.9 37.8-37.8 0-6.7-1.8-13.3-5.1-19L421 321.7c-19-32.6-29-69.6-29-107.3l0-14.5c0-84.6-62.6-154.7-144-166.3l0-9.7c0-13.3-10.7-24-24-24zM392.4 368l-336.9 0 12.9-22.1C91.7 306 104 260.6 104 214.5l0-14.5c0-66.3 53.7-120 120-120s120 53.7 120 120l0 14.5c0 46.2 12.3 91.5 35.5 131.4L392.4 368zM156.1 464c9.9 28 36.6 48 67.9 48s58-20 67.9-48l-135.8 0z',\n\t\twidth: 448,\n\t},\n\tbillboard: {\n\t\taliases: [],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M384 32c13.3 0 24 10.7 24 24l0 8 72 0c35.3 0 64 28.7 64 64l0 240 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-240 0 0 72c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-72-240 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-240c0-35.3 28.7-64 64-64l72 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 144 0 0-8c0-13.3 10.7-24 24-24zm112 96c0-8.8-7.2-16-16-16l-72 0 0 32 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-32-144 0 0 32 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-32-72 0c-8.8 0-16 7.2-16 16l0 240 416 0 0-240z',\n\t\twidth: 576,\n\t},\n\tbitbucket: {\n\t\taliases: [],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M22.2 32c-2.1 0-4.2 .4-6.1 1.1s-3.7 1.9-5.2 3.4-2.7 3.2-3.5 5.1-1.3 4-1.3 6.1c0 .9 .1 1.9 .2 2.8L74.1 462.7c.8 5.1 3.4 9.7 7.3 13s8.8 5.2 14 5.2l325.7 0c3.8 .1 7.5-1.3 10.5-3.7s4.9-5.9 5.5-9.7L505 50.7c.7-4.2-.3-8.4-2.8-11.9s-6.2-5.7-10.4-6.4c-.9-.1-1.9-.2-2.8-.2L22.2 32zM308.1 329.8l-104 0-28.1-147 157.3 0-25.2 147z',\n\t\twidth: 512,\n\t},\n\tbluesky: {\n\t\taliases: [],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M407.8 294.7c-3.3-.4-6.7-.8-10-1.3 3.4 .4 6.7 .9 10 1.3zM288 227.1C261.9 176.4 190.9 81.9 124.9 35.3 61.6-9.4 37.5-1.7 21.6 5.5 3.3 13.8 0 41.9 0 58.4S9.1 194 15 213.9c19.5 65.7 89.1 87.9 153.2 80.7 3.3-.5 6.6-.9 10-1.4-3.3 .5-6.6 1-10 1.4-93.9 14-177.3 48.2-67.9 169.9 120.3 124.6 164.8-26.7 187.7-103.4 22.9 76.7 49.2 222.5 185.6 103.4 102.4-103.4 28.1-156-65.8-169.9-3.3-.4-6.7-.8-10-1.3 3.4 .4 6.7 .9 10 1.3 64.1 7.1 133.6-15.1 153.2-80.7 5.9-19.9 15-138.9 15-155.5s-3.3-44.7-21.6-52.9c-15.8-7.1-40-14.9-103.2 29.8-66.1 46.6-137.1 141.1-163.2 191.8z',\n\t\twidth: 576,\n\t},\n\tbolt: {\n\t\taliases: ['lightning', 'power', 'flash'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M341.2-12.1c9.1 6 13 17.3 9.6 27.6L292 192 412.9 192c19.4 0 35.1 15.7 35.1 35.1 0 10-4.2 19.5-11.7 26.1L136 521.9c-8.1 7.3-20.1 8.2-29.2 2.2s-13-17.3-9.6-27.6L156 320 35.1 320C15.7 320 0 304.3 0 284.9 0 275 4.2 265.5 11.7 258.8L312-9.9c8.1-7.3 20.1-8.1 29.2-2.2zM68.9 272l120.4 0c7.7 0 15 3.7 19.5 10s5.7 14.3 3.3 21.6L171.3 425.9 379.1 240 258.7 240c-7.7 0-15-3.7-19.5-10s-5.7-14.3-3.3-21.6L276.7 86.1 68.9 272z',\n\t\twidth: 448,\n\t},\n\tboltPantheon: {\n\t\taliases: ['lightning', 'pantheon bolt'],\n\t\tcategories: ['brands', 'custom', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M183.215 0L254.271 277.176H204.614L302 512L46.228 187.779H135.272L0 0.434418L144.526 0.459972L145.968 0H183.215Z',\n\t\twidth: 304,\n\t},\n\tboltSolid: {\n\t\taliases: ['lightning', 'power', 'flash'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M338.8-9.9c11.9 8.6 16.3 24.2 10.9 37.8L271.3 224 416 224c13.5 0 25.5 8.4 30.1 21.1s.7 26.9-9.6 35.5l-288 240c-11.3 9.4-27.4 9.9-39.3 1.3s-16.3-24.2-10.9-37.8L176.7 288 32 288c-13.5 0-25.5-8.4-30.1-21.1s-.7-26.9 9.6-35.5l288-240c11.3-9.4 27.4-9.9 39.3-1.3z',\n\t\twidth: 448,\n\t},\n\tbook: {\n\t\taliases: ['docs', 'documentation', 'manual'],\n\t\tcategories: ['documents'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M88 0C39.4 0 0 39.4 0 88L0 432c0 44.2 35.8 80 80 80l344 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-76.1C435.3 375 448 353 448 328l0-256c0-39.8-32.2-72-72-72L88 0zM368 400l0 64-288 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l288 0zM80 352c-11.4 0-22.2 2.4-32 6.7L48 88c0-22.1 17.9-40 40-40l288 0c13.3 0 24 10.7 24 24l0 256c0 13.3-10.7 24-24 24L80 352zm48-200c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0c-13.3 0-24 10.7-24 24zm24 72c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0z',\n\t\twidth: 448,\n\t},\n\tbooks: {\n\t\taliases: ['library', 'documentation'],\n\t\tcategories: ['documents'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M96.3 48l48 0c8.8 0 16 7.2 16 16l0 32-80 0 0-32c0-8.8 7.2-16 16-16zm-16 96l80 0 0 224-80 0 0-224zm128-78l0-2c0-35.3-28.7-64-64-64l-48 0c-35.3 0-64 28.7-64 64l0 384c0 35.3 28.7 64 64 64l48 0c15.1 0 29-5.3 40-14 11 8.8 24.9 14 40 14l48 0c35.3 0 64-28.7 64-64l0-164.4 48.6 181.2c9.1 34.1 44.2 54.4 78.4 45.3l46.4-12.4c34.1-9.1 54.4-44.2 45.3-78.4L455.4 48.3C446.3 14.2 411.2-6.1 377 3.1L330.7 15.5c-24.4 6.5-41.8 26.4-46.3 49.7-3.9-.8-8-1.1-12.1-1.1l-48 0c-5.5 0-10.9 .7-16 2zm0 62c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-320zm-48 320c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-32 80 0 0 32zM389.5 49.4c8.5-2.3 17.3 2.8 19.6 11.3l8.3 30.9-77.3 20.7-8.3-30.9c-2.3-8.5 2.8-17.3 11.3-19.6l46.4-12.4zm21 325.7l-58-216.4 77.3-20.7 58 216.4-77.3 20.7zm12.4 46.4l77.3-20.7 8.3 30.9c2.3 8.5-2.8 17.3-11.3 19.6l-46.4 12.4c-8.5 2.3-17.3-2.8-19.6-11.3l-8.3-30.9z',\n\t\twidth: 576,\n\t},\n\tbracketRight: {\n\t\taliases: ['sign out', 'logout', 'exit'],\n\t\tcategories: ['arrows', 'navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M168 80c13.3 0 24-10.7 24-24s-10.7-24-24-24L96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0c-26.5 0-48-21.5-48-48l0-256c0-26.5 21.5-48 48-48l72 0zM505 273c9.4-9.4 9.4-24.6 0-33.9L369 103c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l95 95-246.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l246.1 0-95 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L505 273z',\n\t\twidth: 512,\n\t},\n\tbracketsSquare: {\n\t\taliases: ['array', 'brackets'],\n\t\tcategories: ['development'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M56 32C25.1 32 0 57.1 0 88L0 424c0 30.9 25.1 56 56 56l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0c-4.4 0-8-3.6-8-8L48 88c0-4.4 3.6-8 8-8l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L56 32zm336 0l-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0c4.4 0 8 3.6 8 8l0 336c0 4.4-3.6 8-8 8l-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0c30.9 0 56-25.1 56-56l0-336c0-30.9-25.1-56-56-56z',\n\t\twidth: 448,\n\t},\n\tbrainCircuit: {\n\t\taliases: ['ai', 'machine learning', 'neural'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M123 58.1c9.5-33.5 40.4-58.1 77-58.1 21.8 0 41.6 8.7 56 22.9 14.4-14.1 34.2-22.9 56-22.9 36.6 0 67.4 24.6 77 58.1 47.4 9.7 83 51.6 83 101.9 0 11.3-1.8 22.2-5.1 32.3 22.7 19.1 37.1 47.7 37.1 79.7 0 23.7-8 45.6-21.3 63.1 3.5 10.4 5.3 21.4 5.3 32.9 0 54-41.2 98.5-93.9 103.5-15.6 24.3-42.9 40.5-74.1 40.5-25.2 0-48-10.6-64-27.6-16 17-38.8 27.6-64 27.6-31.1 0-58.4-16.2-74.1-40.5-52.7-5.1-93.9-49.5-93.9-103.5 0-11.5 1.9-22.5 5.3-32.9-13.4-17.5-21.3-39.4-21.3-63.1 0-32 14.5-60.6 37.1-79.7-3.3-10.2-5.1-21.1-5.1-32.3 0-50.3 35.6-92.2 83-101.9zM200 48c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24-30.9 0-56 25.1-56 56 0 10.5 2.9 20.3 7.9 28.6 3.4 5.7 4.3 12.5 2.5 18.9s-6.2 11.7-12 14.7c-18 9.3-30.3 28.1-30.3 49.8 0 16.1 6.8 30.7 17.8 40.9 7.9 7.4 9.9 19.2 4.8 28.8-4.2 7.8-6.5 16.7-6.5 26.3 0 30.9 25.1 56 56 56 1.1 0 2.2 0 3.2-.1 10.3-.6 19.8 5.5 23.6 15 5.9 14.7 20.4 25.1 37.1 25.1 20.4 0 37.2-15.3 39.7-35 .1-.6 .2-1.3 .3-1.9l0-135.1-40 0c-6.6 0-12 5.4-12 12l0 4.4c16.5 7.6 28 24.3 28 43.6 0 26.5-21.5 48-48 48s-48-21.5-48-48c0-19.4 11.5-36.1 28-43.6l0-4.4c0-28.7 23.3-52 52-52l40 0 0-56-12.4 0c-7.6 16.5-24.3 28-43.6 28-26.5 0-48-21.5-48-48s21.5-48 48-48c19.4 0 36.1 11.5 43.6 28l12.4 0 0-76c0-17.7-14.3-32-32-32zm80 148l0 152 40 0c6.6 0 12-5.4 12-12l0-4.4c-16.5-7.6-28-24.3-28-43.6 0-26.5 21.5-48 48-48s48 21.5 48 48c0 19.4-11.5 36.1-28 43.6l0 4.4c0 28.7-23.3 52-52 52l-40 0 0 39.1c.1 .6 .2 1.2 .3 1.9 2.5 19.7 19.3 35 39.7 35 16.8 0 31.2-10.3 37.1-25.1 3.8-9.6 13.3-15.6 23.6-15 1.1 .1 2.2 .1 3.2 .1 30.9 0 56-25.1 56-56 0-9.5-2.4-18.5-6.5-26.3-5.1-9.6-3.1-21.4 4.8-28.8 11-10.2 17.8-24.8 17.8-40.9 0-21.6-12.2-40.4-30.3-49.8-5.9-3-10.2-8.4-12-14.7s-.9-13.2 2.5-18.9c5-8.4 7.9-18.1 7.9-28.6 0-30.9-25.1-56-56-56-13.3 0-24-10.7-24-24 0-17.7-14.3-32-32-32s-32 14.3-32 32l0 76 12.4 0c7.6-16.5 24.3-28 43.6-28 26.5 0 48 21.5 48 48s-21.5 48-48 48c-19.4 0-36.1-11.5-43.6-28L280 196zm56-36a16 16 0 1 0 0 32 16 16 0 1 0 0-32zm0 128a16 16 0 1 0 32 0 16 16 0 1 0 -32 0zM144 352a16 16 0 1 0 32 0 16 16 0 1 0 -32 0zm16-176a16 16 0 1 0 32 0 16 16 0 1 0 -32 0z',\n\t\twidth: 512,\n\t},\n\tbroomWide: {\n\t\taliases: ['clean', 'sweep', 'clear'],\n\t\tcategories: ['actions', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M569 9c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-200 200-12.9-12.9c-20.2-20.2-51.4-24.6-76.3-10.7L16.4 278.9C6.3 284.5 0 295.2 0 306.8 0 315.2 3.4 323.4 9.3 329.3L214.7 534.7c6 6 14.1 9.3 22.6 9.3 11.6 0 22.3-6.3 27.9-16.4L392.6 298.2c13.9-25 9.5-56.1-10.7-76.3L369 209 569 9zM288.2 196.1l59.7 59.7c5.1 5.1 6.1 12.8 2.7 19.1l-14.9 26.8-93.4-93.4 26.8-14.9c6.2-3.5 14-2.4 19.1 2.7zm-89.6 36.5l112.8 112.8-77.9 140.3-96.5-96.5 18-53.9c2.1-6.3-3.9-12.2-10.1-10.1l-53.9 18-32.5-32.5 140.3-77.9z',\n\t\twidth: 576,\n\t},\n\tbuilding: {\n\t\taliases: ['organization', 'company', 'office'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l80 0 0-80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 80 80 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16L64 48zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm96 48c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM240 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM96 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z',\n\t\twidth: 384,\n\t},\n\tbuildings: {\n\t\taliases: ['organizations', 'companies'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M256 0c-35.3 0-64 28.7-64 64l0 32-128 0C28.7 96 0 124.7 0 160L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L256 0zM194 464L64 464c-8.8 0-16-7.2-16-16l0-288c0-8.8 7.2-16 16-16l128 0 0 304c0 5.5 .7 10.9 2 16zm62 0c-8.8 0-16-7.2-16-16l0-384c0-8.8 7.2-16 16-16l192 0c8.8 0 16 7.2 16 16l0 384c0 8.8-7.2 16-16 16l-192 0zM112 192c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM96 304l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM368 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM288 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm-80-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM272 304l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0z',\n\t\twidth: 512,\n\t},\n\tbullhorn: {\n\t\taliases: ['announcement', 'megaphone', 'promote'],\n\t\tcategories: ['communication', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M466.2 18.3c8.4 4 13.8 12.4 13.8 21.7l0 432c0 9.3-5.4 17.7-13.8 21.7s-18.3 2.7-25.5-3.2l-56.2-46.3c-41.2-34-91.7-54.5-144.5-59.2l0 79c0 26.5-21.5 48-48 48l-48 0c-26.5 0-48-21.5-48-48l0-84C40.8 365.8 0 315.6 0 256 0 185.3 57.3 128 128 128l89.4 0c61-.2 120-21.4 167.1-60.2l56.2-46.3c7.2-5.9 17.1-7.1 25.5-3.2zM240 336l0 .9c64 4.8 125.2 29.2 175 70.3l17 14 0-330.3-17 14c-49.8 41-111 65.5-175 70.3L240 336zm-48 48l-48 0 0 80 48 0 0-80zM128 176c-44.2 0-80 35.8-80 80s35.8 80 80 80l64 0 0-160-64 0z',\n\t\twidth: 512,\n\t},\n\tcalendarDays: {\n\t\taliases: ['date', 'schedule', 'calendar'],\n\t\tcategories: ['data', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M120 0c13.3 0 24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24zM384 432c8.8 0 16-7.2 16-16l0-64-88 0 0 80 72 0zm16-128l0-80-88 0 0 80 88 0zm-136 0l0-80-80 0 0 80 80 0zm-128 0l0-80-88 0 0 80 88 0zM48 352l0 64c0 8.8 7.2 16 16 16l72 0 0-80-88 0zm136 0l0 80 80 0 0-80-80 0zM120 112l-56 0c-8.8 0-16 7.2-16 16l0 48 352 0 0-48c0-8.8-7.2-16-16-16l-264 0z',\n\t\twidth: 448,\n\t},\n\tcaretDown: {\n\t\taliases: ['dropdown', 'expand'],\n\t\tcategories: ['arrows'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M140.3 376.8c12.6 10.2 31.1 9.5 42.8-2.2l128-128c9.2-9.2 11.9-22.9 6.9-34.9S301.4 192 288.5 192l-256 0c-12.9 0-24.6 7.8-29.6 19.8S.7 237.5 9.9 246.6l128 128 2.4 2.2z',\n\t\twidth: 320,\n\t},\n\tcaretLeft: {\n\t\taliases: [],\n\t\tcategories: ['arrows'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M7.7 235.8c-10.3 12.6-9.5 31.1 2.2 42.8l128 128c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-256c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-128 128-2.2 2.4z',\n\t\twidth: 256,\n\t},\n\tcaretRight: {\n\t\taliases: [],\n\t\tcategories: ['arrows'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M249.3 235.8c10.2 12.6 9.5 31.1-2.2 42.8l-128 128c-9.2 9.2-22.9 11.9-34.9 6.9S64.5 396.9 64.5 384l0-256c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l128 128 2.2 2.4z',\n\t\twidth: 256,\n\t},\n\tcaretUp: {\n\t\taliases: ['collapse'],\n\t\tcategories: ['arrows'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M140.3 135.2c12.6-10.3 31.1-9.5 42.8 2.2l128 128c9.2 9.2 11.9 22.9 6.9 34.9S301.4 320 288.5 320l-256 0c-12.9 0-24.6-7.8-29.6-19.8S.7 274.5 9.9 265.4l128-128 2.4-2.2z',\n\t\twidth: 320,\n\t},\n\tccAmex: {\n\t\taliases: [],\n\t\tcategories: ['financial'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M0 432c0 26.5 21.5 48 48 48l480 0c26.5 0 48-21.5 48-48l0-1.1-61.7 0-31.9-35.1-31.9 35.1-203.7 0 0-163.8-65.8 0 81.7-184.7 78.6 0 28.1 63.2 0-63.2 97.2 0 16.9 47.6 17-47.6 75.5 0 0-2.4c0-26.5-21.5-48-48-48L48 32C21.5 32 0 53.5 0 80L0 432zm440.4-21.7l42.2-46.3 42 46.3 51.4 0-68-72.1 68-72.1-50.6 0-42 46.7-41.5-46.7-51.4 0 67.5 72.5-67.4 71.6 0-33.1-83 0 0-22.2 80.9 0 0-32.3-80.9 0 0-22.4 83 0 0-33.1-122 0 0 143.2 171.8 0zm96.3-72l39.3 41.9 0-83.3-39.3 41.4zm-36.3-92l36.9-100.6 0 100.6 38.7 0 0-143.3-60.2 0-32.2 89.3-31.9-89.3-61.2 0 0 143.1-63.2-143.1-51.2 0-62.4 143.3 43 0 11.9-28.7 65.9 0 12 28.7 82.7 0 0-100.3 36.8 100.3 34.4 0zM282 185.4l19.5-46.9 19.4 46.9-38.9 0z',\n\t\twidth: 576,\n\t},\n\tccApplePay: {\n\t\taliases: [],\n\t\tcategories: ['financial'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M302.2 218.4c0 17.2-10.5 27.1-29 27.1l-24.3 0 0-54.2 24.4 0c18.4 0 28.9 9.8 28.9 27.1zM349.7 281c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9l0-7.7-23.5 1.5c-13.3 .9-20.2 5.8-20.2 14.4zM576 79l0 352c0 26.5-21.5 48-48 48L48 479c-26.5 0-48-21.5-48-48L0 79C0 52.5 21.5 31 48 31l480 0c26.5 0 48 21.5 48 48zM127.8 197.2c8.4 .7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4 .3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5 .2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8l-51.2 0 0 136.4 21.2 0 0-46.6 29.3 0c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5l19.1 0c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2l0 7.5-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4l.4 0 0 16.4 19.6 0 0-68 .1 0zM516 210.9l-21.5 0-24.9 80.6-.4 0-24.9-80.6-22.3 0 35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3l0 16.4c1.2 .4 6.5 .5 8.1 .5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z',\n\t\twidth: 576,\n\t},\n\tccDiscover: {\n\t\taliases: [],\n\t\tcategories: ['financial'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M520.4 196.1c0-7.9-5.5-12.1-15.6-12.1l-4.9 0 0 24.9 4.7 0c10.3 0 15.8-4.4 15.8-12.8zM528 32L48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l480 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48zM483.9 170.9c22.6 0 52.9-4.1 52.9 24.4 0 12.6-6.6 20.7-18.7 23.2l25.8 34.4-19.6 0-22.2-32.8-2.2 0 0 32.8-16 0 0-82zM428 171l45.3 0 0 14-29.3 0 0 18.2 28.3 0 0 13.8-28.3 0 0 22.2 29.3 0 0 13.8-45.3 0 0-82zm-68.7 0l21.9 55.2 22.2-55.2 17.5 0-35.5 84.2-8.6 0-35-84.2 17.5 0zm-55.9 86.2a44.6 44.6 0 1 1 0-89.2 44.6 44.6 0 1 1 0 89.2zm-49.3-83.1l0 19c-20.1-20.1-46.8-4.7-46.8 19 0 25 27.5 38.5 46.8 19.2l0 19c-29.7 14.3-63.3-5.7-63.3-38.2 0-31.2 33.1-53 63.3-38zm-97.2 66.3c11.4 0 22.4-15.3-3.3-24.4-15-5.5-20.2-11.4-20.2-22.7 0-23.2 30.6-31.4 49.7-14.3l-8.4 10.8c-10.4-11.6-24.9-6.2-24.9 2.5 0 4.4 2.7 6.9 12.3 10.3 18.2 6.6 23.6 12.5 23.6 25.6 0 29.5-38.8 37.4-56.6 11.3l10.3-9.9c3.7 7.1 9.9 10.8 17.5 10.8zM55.4 253l-23.4 0 0-82 23.4 0c26.1 0 44.1 17 44.1 41.1 0 18.5-13.2 40.9-44.1 40.9zm67.5 0l-16 0 0-82 16 0 0 82zM544 433c0 8.2-6.8 15-15 15l-401 0c189.6-35.6 382.7-139.2 416-160l0 145zM74.1 191.6c-5.2-4.9-11.6-6.6-21.9-6.6l-4.2 0 0 54.2 4.2 0c10.3 0 17-2 21.9-6.4 5.7-5.2 8.9-12.8 8.9-20.7s-3.2-15.5-8.9-20.5z',\n\t\twidth: 576,\n\t},\n\tccGeneric: {\n\t\taliases: ['credit card', 'payment', 'card'],\n\t\tcategories: ['financial'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M448 112c8.8 0 16 7.2 16 16l0 32-416 0 0-32c0-8.8 7.2-16 16-16l384 0zm16 112l0 160c0 8.8-7.2 16-16 16L64 400c-8.8 0-16-7.2-16-16l0-160 416 0zM64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM80 344c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm144 0c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0c-13.3 0-24 10.7-24 24z',\n\t\twidth: 512,\n\t},\n\tccMC: {\n\t\taliases: ['mastercard'],\n\t\tcategories: ['financial'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7s4.4-11.7 11.2-11.7c6.6 0 11.2 5.2 11.2 11.7zM172.1 398.6c-7.1 0-11.2 5.2-11.2 11.7S165 422 172.1 422c6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7l19.1 0c-.9-5.7-4.4-8.7-9.6-8.7zm107.8 .3c-6.8 0-10.9 5.2-10.9 11.7s4.1 11.7 10.9 11.7 11.2-4.9 11.2-11.7c0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3 .3 .5 .3 1.1 0 .3-.3 .5-.3 1.1-.3 .3-.3 .5-.5 .8-.3 .3-.5 .5-1.1 .5-.3 .3-.5 .3-1.1 .3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8 .3-1.1 0-.5 .3-.8 .5-1.1 .3-.3 .5-.3 .8-.5 .5-.3 .8-.3 1.1-.3 .5 0 .8 0 1.1 .3 .5 .3 .8 .3 1.1 .5s.2 .6 .5 1.1zm-2.2 1.4c.5 0 .5-.3 .8-.3 .3-.3 .3-.5 .3-.8s0-.5-.3-.8c-.3 0-.5-.3-1.1-.3l-1.6 0 0 3.5 .8 0 0-1.4 .3 0 1.1 1.4 .8 0-1.1-1.3zM576 81l0 352c0 26.5-21.5 48-48 48L48 481c-26.5 0-48-21.5-48-48L0 81C0 54.5 21.5 33 48 33l480 0c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zM288 329.4c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zM145.7 405.7c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4l0-4.4-8.2 0 0 36.7 8.2 0c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2l7.9 0c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2l8.2 0 0-23-.2 0zM190.6 392l-7.9 0 0 4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4l0 4.6 7.9 0 0-36.8zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7 .8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1l0-16.6 13.1 0 0-7.4-13.1 0 0-11.2-8.2 0 0 11.2-7.6 0 0 7.3 7.6 0 0 16.7c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4l27.5 0c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zM338.9 392c-4.6-2-11.6-1.8-15.2 4.4l0-4.4-8.2 0 0 36.7 8.2 0 0-20.7c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zM416.2 392l-8.2 0 0 4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9l0 4.6 8.2 0 0-36.8zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4l0-4.4-7.9 0 0 36.7 7.9 0 0-20.7c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9l-7.9 0 0 19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9l0 4.6 7.9 0 0-51.7zm7.6-75.1l0 4.6 .8 0 0-4.6 1.9 0 0-.8-4.6 0 0 .8 1.9 0zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1s-.8-.5-1.1-.8c-.5 0-1.1-.3-1.6-.3-.3 0-.8 .3-1.4 .3-.5 .3-.8 .5-1.1 .8-.5 .3-.8 .8-.8 1.1-.3 .5-.3 1.1-.3 1.6 0 .3 0 .8 .3 1.4 0 .3 .3 .8 .8 1.1 .3 .3 .5 .5 1.1 .8 .5 .3 1.1 .3 1.4 .3 .5 0 1.1 0 1.6-.3 .3-.3 .8-.5 1.1-.8s.5-.8 .8-1.1c.3-.6 .3-1.1 .3-1.4zm3.2-124.7l-1.4 0-1.6 3.5-1.6-3.5-1.4 0 0 5.4 .8 0 0-4.1 1.6 3.5 1.1 0 1.4-3.5 0 4.1 1.1 0 0-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4 .1 138.5-61.9 138.5-138.4z',\n\t\twidth: 576,\n\t},\n\tccPaypal: {\n\t\taliases: [],\n\t\tcategories: ['financial'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7l-4.7 0c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0l-4.5 0c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l480 0c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28l-40 0c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4l19 0c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8l-19 0c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4l17.2 0c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zM253 322.1l63.7-92.6c.5-.5 .5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5l-19.2 0c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4l-18.7 0c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2l19.2 0c1.8-.1 3.5-1.1 4.5-2.6zM412.3 215.4c0-21-16.2-28-34.7-28l-39.7 0c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4l20.5 0c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8l-19 0c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4l17.3 0c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zM544 190.9c0-2-1.5-3.5-3.2-3.5l-18.5 0c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3 .5c0 1.8 1.5 3.5 3.5 3.5l16.5 0c2.5 0 5-2.9 5.2-5.7l16.2-101.2 0-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5 .1-9.8-6.9-15.5-16.2-15.5z',\n\t\twidth: 576,\n\t},\n\tccVisa: {\n\t\taliases: [],\n\t\tcategories: ['financial'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M470.1 231.3s7.6 37.2 9.3 45l-33.4 0c3.3-8.9 16-43.5 16-43.5-.2 .3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l480 0c26.5 0 48 21.5 48 48zM152.5 331.2l63.2-155.2-42.5 0-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1l-64.7 0-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135 42.5 0zm94.4 .2l25.2-155.4-40.2 0-25.1 155.4 40.1 0zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2 .2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2 .1 69.7-20.8 70-53zM528 331.4l-32.4-155.4-31.1 0c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5 42.2 0s6.9-19.2 8.4-23.3l51.6 0c1.2 5.5 4.8 23.3 4.8 23.3l37.2 0z',\n\t\twidth: 576,\n\t},\n\tchartLine: {\n\t\taliases: ['graph', 'analytics', 'trend'],\n\t\tcategories: ['data'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M48 56c0-13.3-10.7-24-24-24S0 42.7 0 56L0 400c0 44.2 35.8 80 80 80l408 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L80 432c-17.7 0-32-14.3-32-32L48 56zM473 169c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-119 119-79-79c-9.4-9.4-24.6-9.4-33.9 0L103 279c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l87-87 79 79c9.4 9.4 24.6 9.4 33.9 0L473 169z',\n\t\twidth: 512,\n\t},\n\tchartNetwork: {\n\t\taliases: ['network', 'topology'],\n\t\tcategories: ['data'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M224 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0 88c1.1 0 2.2 0 3.3-.1l26.9 57.6c-31.3 21.7-53.7 55.4-60.2 94.5l-70.6 0c-9.5-23.5-32.5-40-59.3-40-35.3 0-64 28.7-64 64s28.7 64 64 64c26.9 0 49.9-16.5 59.3-40l70.6 0c11.4 68.1 70.7 120 142 120 43.8 0 83-19.5 109.4-50.4l67.4 40.4c-.5 3.2-.8 6.6-.8 9.9 0 35.3 28.7 64 64 64s64-28.7 64-64-28.7-64-64-64c-14.5 0-27.8 4.8-38.5 12.9l-67.3-40.4c6.4-16.3 9.9-34 9.9-52.5 0-23.2-5.5-45.2-15.3-64.6l77.6-56.9c9.8 6.1 21.3 9.6 33.7 9.6 35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64c0 5.4 .7 10.7 1.9 15.7l-77.6 56.9c-25.9-25.2-61.3-40.7-100.3-40.7-13.3 0-26.1 1.8-38.3 5.2l-26.9-57.5C281.5 96.2 288 80.9 288 64 288 28.7 259.3 0 224 0s-64 28.7-64 64 28.7 64 64 64zm352-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM552 448a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 280a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm272-72a96 96 0 1 1 0 192 96 96 0 1 1 0-192z',\n\t\twidth: 640,\n\t},\n\tchartSimple: {\n\t\taliases: ['bar chart', 'analytics', 'stats'],\n\t\tcategories: ['data'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M304 80l0 352-48 0 0-352 48 0zM256 32c-26.5 0-48 21.5-48 48l0 352c0 26.5 21.5 48 48 48l48 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48l-48 0zM112 272l0 160-48 0 0-160 48 0zM64 224c-26.5 0-48 21.5-48 48l0 160c0 26.5 21.5 48 48 48l48 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48l-48 0zm384-80l48 0 0 288-48 0 0-288zm-48 0l0 288c0 26.5 21.5 48 48 48l48 0c26.5 0 48-21.5 48-48l0-288c0-26.5-21.5-48-48-48l-48 0c-26.5 0-48 21.5-48 48z',\n\t\twidth: 576,\n\t},\n\tcheck: {\n\t\taliases: ['confirm', 'done', 'complete', 'checkmark'],\n\t\tcategories: ['actions', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M438 68.5c10.8 7.7 13.2 22.7 5.5 33.5l-264 368c-4.1 5.7-10.5 9.4-17.5 9.9S148 478 143 473L7 337c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L157 419 404.5 74c7.7-10.8 22.7-13.2 33.5-5.5z',\n\t\twidth: 448,\n\t},\n\tcircle: {\n\t\taliases: ['dot', 'bullet'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z',\n\t\twidth: 512,\n\t},\n\tcircleCheck: {\n\t\taliases: ['success', 'verified', 'approved'],\n\t\tcategories: ['status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zm0-464a208 208 0 1 0 0 416 208 208 0 1 0 0-416zm70.7 121.9c7.8-10.7 22.8-13.1 33.5-5.3 10.7 7.8 13.1 22.8 5.3 33.5L243.4 366.1c-4.1 5.7-10.5 9.3-17.5 9.8-7 .5-13.9-2-18.8-6.9l-55.9-55.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l36 36 105.6-145.2z',\n\t\twidth: 512,\n\t},\n\tcircleExclamation: {\n\t\taliases: ['warning', 'error', 'alert'],\n\t\tcategories: ['status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zm0-464a208 208 0 1 0 0 416 208 208 0 1 0 0-416zm0 336a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0-256c18.2 0 32.7 15.5 31.4 33.7l-7.4 104c-.9 12.6-11.4 22.3-23.9 22.3-12.6 0-23-9.7-23.9-22.3l-7.4-104C223.3 143.5 237.8 128 256 128z',\n\t\twidth: 512,\n\t},\n\tcircleInfo: {\n\t\taliases: ['info', 'information', 'about'],\n\t\tcategories: ['status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM216 336c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-88c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 64-24 0zm40-144a32 32 0 1 0 0-64 32 32 0 1 0 0 64z',\n\t\twidth: 512,\n\t},\n\tcircleMinus: {\n\t\taliases: ['remove', 'subtract'],\n\t\tcategories: ['status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM168 232c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0z',\n\t\twidth: 512,\n\t},\n\tcircleNotch: {\n\t\taliases: ['loading', 'spinner'],\n\t\tcategories: ['objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M223.2 25C226.4 37.9 218.6 50.9 205.7 54.1 115.1 76.6 48 158.5 48 256 48 370.9 141.1 464 256 464s208-93.1 208-208c0-97.5-67.1-179.4-157.7-201.9-12.9-3.2-20.7-16.2-17.5-29.1S305 4.3 317.9 7.5C429.4 35.2 512 135.9 512 256 512 397.4 397.4 512 256 512S0 397.4 0 256C0 135.9 82.6 35.2 194.1 7.5 207 4.3 220 12.2 223.2 25z',\n\t\twidth: 512,\n\t},\n\tcirclePlus: {\n\t\taliases: ['add', 'create', 'new'],\n\t\tcategories: ['status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM232 344c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 64z',\n\t\twidth: 512,\n\t},\n\tcircleQuestion: {\n\t\taliases: ['help', 'faq', 'support'],\n\t\tcategories: ['status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256-80c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 47.2-36 67.2-56 74.5l0 3.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8.1c0-20.5 14.8-35.2 30.1-40.2 6.4-2.1 13.2-5.5 18.2-10.3 4.3-4.2 7.7-10 7.7-19.6 0-17.7-14.3-32-32-32zM224 368a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z',\n\t\twidth: 512,\n\t},\n\tcircleUser: {\n\t\taliases: ['avatar', 'profile', 'account'],\n\t\tcategories: ['users'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M406.5 399.6C387.4 352.9 341.5 320 288 320l-64 0c-53.5 0-99.4 32.9-118.5 79.6-35.6-37.3-57.5-87.9-57.5-143.6 0-114.9 93.1-208 208-208s208 93.1 208 208c0 55.7-21.9 106.2-57.5 143.6zm-40.1 32.7C334.4 452.4 296.6 464 256 464s-78.4-11.6-110.5-31.7c7.3-36.7 39.7-64.3 78.5-64.3l64 0c38.8 0 71.2 27.6 78.5 64.3zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-272a40 40 0 1 1 0-80 40 40 0 1 1 0 80zm-88-40a88 88 0 1 0 176 0 88 88 0 1 0 -176 0z',\n\t\twidth: 512,\n\t},\n\tcircleXmark: {\n\t\taliases: ['error', 'failed', 'denied'],\n\t\tcategories: ['status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM167 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z',\n\t\twidth: 512,\n\t},\n\tcloud: {\n\t\taliases: ['hosting', 'server'],\n\t\tcategories: ['development', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M80 192c0-88.4 71.6-160 160-160 47.1 0 89.4 20.4 118.7 52.7 10.6-3.1 21.8-4.7 33.3-4.7 66.3 0 120 53.7 120 120 0 13.2-2.1 25.9-6.1 37.8 41.6 21.1 70.1 64.3 70.1 114.2 0 70.7-57.3 128-128 128l-304 0c-79.5 0-144-64.5-144-144 0-56.8 32.9-105.9 80.7-129.4-.4-4.8-.7-9.7-.7-14.6zM240 80c-61.9 0-112 50.1-112 112 0 8.4 .9 16.6 2.7 24.5 2.7 12.1-4.3 24.3-16.1 28.1-38.7 12.4-66.6 48.7-66.6 91.4 0 53 43 96 96 96l304 0c44.2 0 80-35.8 80-80 0-37.4-25.7-68.9-60.5-77.6-7.5-1.9-13.6-7.2-16.5-14.3s-2.1-15.2 2-21.7c7-11.1 11-24.2 11-38.3 0-39.8-32.2-72-72-72-11.1 0-21.5 2.5-30.8 6.9-10.5 5-23.1 1.7-29.8-7.8-20.3-28.6-53.7-47.1-91.3-47.1z',\n\t\twidth: 576,\n\t},\n\tcloudArrowDown: {\n\t\taliases: ['download'],\n\t\tcategories: ['development', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M240 32c-88.4 0-160 71.6-160 160 0 4.9 .2 9.8 .7 14.6-47.8 23.4-80.7 72.5-80.7 129.4 0 79.5 64.5 144 144 144l304 0c70.7 0 128-57.3 128-128 0-49.9-28.5-93-70.1-114.2 4-11.9 6.1-24.6 6.1-37.8 0-66.3-53.7-120-120-120-11.5 0-22.7 1.6-33.3 4.7-29.3-32.3-71.6-52.7-118.7-52.7zM128 192c0-61.9 50.1-112 112-112 37.7 0 71 18.6 91.3 47.1 6.7 9.5 19.3 12.8 29.8 7.8 9.3-4.4 19.7-6.9 30.8-6.9 39.8 0 72 32.2 72 72 0 14.1-4 27.2-11 38.3-4.1 6.5-4.8 14.6-2 21.7s9 12.5 16.5 14.3c34.8 8.7 60.5 40.2 60.5 77.6 0 44.2-35.8 80-80 80l-304 0c-53 0-96-43-96-96 0-42.7 27.9-79 66.6-91.4 11.8-3.8 18.8-16 16.1-28.1-1.8-7.9-2.7-16.1-2.7-24.5zM305 377l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23 0-86.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 86.1-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0z',\n\t\twidth: 576,\n\t},\n\tcloudArrowUp: {\n\t\taliases: ['deploy', 'upload', 'publish'],\n\t\tcategories: ['development', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M240 32c-88.4 0-160 71.6-160 160 0 4.9 .2 9.8 .7 14.6-47.8 23.4-80.7 72.5-80.7 129.4 0 79.5 64.5 144 144 144l304 0c70.7 0 128-57.3 128-128 0-49.9-28.5-93-70.1-114.2 4-11.9 6.1-24.6 6.1-37.8 0-66.3-53.7-120-120-120-11.5 0-22.7 1.6-33.3 4.7-29.3-32.3-71.6-52.7-118.7-52.7zM128 192c0-61.9 50.1-112 112-112 37.7 0 71 18.6 91.3 47.1 6.7 9.5 19.3 12.8 29.8 7.8 9.3-4.4 19.7-6.9 30.8-6.9 39.8 0 72 32.2 72 72 0 14.1-4 27.2-11 38.3-4.1 6.5-4.8 14.6-2 21.7s9 12.5 16.5 14.3c34.8 8.7 60.5 40.2 60.5 77.6 0 44.2-35.8 80-80 80l-304 0c-53 0-96-43-96-96 0-42.7 27.9-79 66.6-91.4 11.8-3.8 18.8-16 16.1-28.1-1.8-7.9-2.7-16.1-2.7-24.5zm177 7c-9.4-9.4-24.6-9.4-33.9 0l-64 64c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l23-23 0 86.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-86.1 23 23c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-64-64z',\n\t\twidth: 576,\n\t},\n\tcloudPlus: {\n\t\taliases: ['add cloud', 'new environment'],\n\t\tcategories: ['development', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M240 32c-88.4 0-160 71.6-160 160 0 4.9 .2 9.8 .7 14.6-47.8 23.4-80.7 72.5-80.7 129.4 0 79.5 64.5 144 144 144l304 0c70.7 0 128-57.3 128-128 0-49.9-28.5-93-70.1-114.2 4-11.9 6.1-24.6 6.1-37.8 0-66.3-53.7-120-120-120-11.5 0-22.7 1.6-33.3 4.7-29.3-32.3-71.6-52.7-118.7-52.7zM128 192c0-61.9 50.1-112 112-112 37.7 0 71 18.6 91.3 47.1 6.7 9.5 19.3 12.8 29.8 7.8 9.3-4.4 19.7-6.9 30.8-6.9 39.8 0 72 32.2 72 72 0 14.1-4 27.2-11 38.3-4.1 6.5-4.8 14.6-2 21.7s9 12.5 16.5 14.3c34.8 8.7 60.5 40.2 60.5 77.6 0 44.2-35.8 80-80 80l-304 0c-53 0-96-43-96-96 0-42.7 27.9-79 66.6-91.4 11.8-3.8 18.8-16 16.1-28.1-1.8-7.9-2.7-16.1-2.7-24.5zm160 0c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z',\n\t\twidth: 576,\n\t},\n\tcode: {\n\t\taliases: ['source', 'html', 'develop'],\n\t\tcategories: ['development'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M337.1 16.9c3.9-12.7 17.4-19.7 30-15.8s19.7 17.4 15.8 30l-144 464c-3.9 12.7-17.4 19.7-30 15.8s-19.7-17.4-15.8-30l144-464zM145 135c9.4 9.4 9.4 24.6 0 33.9l-87 87 87 87c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L111 135c9.4-9.4 24.6-9.4 33.9 0zM431 135c9.4-9.4 24.6-9.4 33.9 0L569 239c9.4 9.4 9.4 24.6 0 33.9L465 377c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l87-87-87-87c-9.4-9.4-9.4-24.6 0-33.9z',\n\t\twidth: 576,\n\t},\n\tcodeBranch: {\n\t\taliases: ['branch', 'git branch', 'fork'],\n\t\tcategories: ['development'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M80 112a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm80-32c0 35.8-23.5 66.1-56 76.3l0 75.7 184 0c30.9 0 56-25.1 56-56l0-19.7c-32.5-10.2-56-40.5-56-76.3 0-44.2 35.8-80 80-80s80 35.8 80 80c0 35.8-23.5 66.1-56 76.3l0 19.7c0 57.4-46.6 104-104 104l-184 0 0 75.7c32.5 10.2 56 40.5 56 76.3 0 44.2-35.8 80-80 80S0 476.2 0 432c0-35.8 23.5-66.1 56-76.3l0-199.3C23.5 146.1 0 115.8 0 80 0 35.8 35.8 0 80 0s80 35.8 80 80zm240 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM80 464a32 32 0 1 0 0-64 32 32 0 1 0 0 64z',\n\t\twidth: 448,\n\t},\n\tcodeMerge: {\n\t\taliases: ['merge', 'git merge', 'pull request'],\n\t\tcategories: ['development'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M80 48a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm24.7 108.1C136.8 145.7 160 115.6 160 80 160 35.8 124.2 0 80 0S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3l0 199.3c-32.5 10.2-56 40.5-56 76.3 0 44.2 35.8 80 80 80s80-35.8 80-80c0-35.8-23.5-66.1-56-76.3l0-100.8c27.2 25.5 63.8 41.1 104 41.1l83.7 0c10.2 32.5 40.5 56 76.3 56 44.2 0 80-35.8 80-80s-35.8-80-80-80c-35.8 0-66.1 23.5-76.3 56L208 248c-53.3 0-97.3-40.2-103.3-91.9zM80 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM336 272a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z',\n\t\twidth: 448,\n\t},\n\tcommand: {\n\t\taliases: ['cmd', 'keyboard'],\n\t\tcategories: ['development'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M96 192l48 0 0 128-48 0c-53 0-96 43-96 96s43 96 96 96 96-43 96-96l0-48 128 0 0 48c0 53 43 96 96 96s96-43 96-96-43-96-96-96l-48 0 0-128 48 0c53 0 96-43 96-96s-43-96-96-96-96 43-96 96l0 48-128 0 0-48c0-53-43-96-96-96S0 43 0 96 43 192 96 192zM256 320l-64 0 0-128 128 0 0 128-64 0zM96 144c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48l0 48-48 0zm48 272c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48l48 0 0 48zM368 144l0-48c0-26.5 21.5-48 48-48s48 21.5 48 48-21.5 48-48 48l-48 0zm48 224c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48l0-48 48 0z',\n\t\twidth: 512,\n\t},\n\tcomment: {\n\t\taliases: ['message', 'chat', 'speech bubble'],\n\t\tcategories: ['communication', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M51.9 384.9C19.3 344.6 0 294.4 0 240 0 107.5 114.6 0 256 0S512 107.5 512 240 397.4 480 256 480c-36.5 0-71.2-7.2-102.6-20L37 509.9c-3.7 1.6-7.5 2.1-11.5 2.1-14.1 0-25.5-11.4-25.5-25.5 0-4.3 1.1-8.5 3.1-12.2l48.8-89.4zm37.3-30.2c12.2 15.1 14.1 36.1 4.8 53.2l-18 33.1 58.5-25.1c11.8-5.1 25.2-5.2 37.1-.3 25.7 10.5 54.2 16.4 84.3 16.4 117.8 0 208-88.8 208-192S373.8 48 256 48 48 136.8 48 240c0 42.8 15.1 82.4 41.2 114.7z',\n\t\twidth: 512,\n\t},\n\tcopy: {\n\t\taliases: ['duplicate', 'clipboard', 'paste'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M384 336l-192 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l133.5 0c4.2 0 8.3 1.7 11.3 4.7l58.5 58.5c3 3 4.7 7.1 4.7 11.3L400 320c0 8.8-7.2 16-16 16zM192 384l192 0c35.3 0 64-28.7 64-64l0-197.5c0-17-6.7-33.3-18.7-45.3L370.7 18.7C358.7 6.7 342.5 0 325.5 0L192 0c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-16-48 0 0 16c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l16 0 0-48-16 0z',\n\t\twidth: 448,\n\t},\n\tdesktop: {\n\t\taliases: ['monitor', 'screen', 'computer'],\n\t\tcategories: ['media'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M448 80c8.8 0 16 7.2 16 16l0 176-416 0 0-176c0-8.8 7.2-16 16-16l384 0zm16 240l0 32c0 8.8-7.2 16-16 16L64 368c-8.8 0-16-7.2-16-16l0-32 416 0zM64 32C28.7 32 0 60.7 0 96L0 352c0 35.3 28.7 64 64 64l115.7 0-8 48-51.7 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-51.7 0-8-48 115.7 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 32zM220.3 464l8-48 55.3 0 8 48-71.3 0z',\n\t\twidth: 512,\n\t},\n\tdiamondExclamation: {\n\t\taliases: ['critical', 'danger', 'error'],\n\t\tcategories: ['status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M256 0c15.4 0 30.1 6.1 41 17L495 215c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41L297 495c-10.9 10.9-25.6 17-41 17s-30.1-6.1-41-17L17 297C6.1 286.1 0 271.4 0 256s6.1-30.1 17-41L215 17C225.9 6.1 240.6 0 256 0zm0 48c-2.6 0-5.2 1-7 2.9L50.9 249c-1.9 1.9-2.9 4.4-2.9 7s1 5.2 2.9 7L249 461.1c1.9 1.9 4.4 2.9 7 2.9s5.2-1 7-2.9L461.1 263c1.9-1.9 2.9-4.4 2.9-7s-1-5.2-2.9-7L263 50.9c-1.9-1.9-4.4-2.9-7-2.9zm0 336a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0-256c18.2 0 32.7 15.5 31.4 33.7l-7.4 104c-.9 12.6-11.4 22.3-23.9 22.3-12.6 0-23-9.7-23.9-22.3l-7.4-104C223.3 143.5 237.8 128 256 128z',\n\t\twidth: 512,\n\t},\n\tdiamonds4: {\n\t\taliases: [],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M345.1 133c18.7-18.7 18.7-49.1 0-67.9L297 17C286.1 6.1 271.4 0 256 0s-30.1 6.1-41 17L166.9 65.1c-18.7 18.7-18.7 49.1 0 67.9l55.1 55.1c18.7 18.7 49.1 18.7 67.9 0L345.1 133zM249 50.9c1.9-1.9 4.4-2.9 7-2.9s5.2 1 7 2.9L311.1 99 256 154.2 200.9 99 249 50.9zm-116 116c-18.7-18.7-49.1-18.7-67.9 0L17 215C6.1 225.9 0 240.6 0 256s6.1 30.1 17 41l48.1 48.1c18.7 18.7 49.1 18.7 67.9 0l55.1-55.1c18.7-18.7 18.7-49.1 0-67.9L133 166.9zM50.9 249l48.1-48.1 55.1 55.1-55.1 55.1-48.1-48.1 0 0c-1.9-1.9-2.9-4.4-2.9-7s1-5.2 2.9-7zM200.9 413L256 357.8 311.1 413 263 461.1c-1.9 1.9-4.4 2.9-7 2.9s-5.2-1-7-2.9L200.9 413zm89.1-89.1c-18.7-18.7-49.1-18.7-67.9 0L166.9 379c-18.7 18.7-18.7 49.1 0 67.9L215 495c10.9 10.9 25.6 17 41 17s30.1-6.1 41-17l48.1-48.1c18.7-18.7 18.7-49.1 0-67.9l-55.1-55.1zm157-157c-18.7-18.7-49.1-18.7-67.9 0l-55.1 55.1c-18.7 18.7-18.7 49.1 0 67.9L379 345.1c18.7 18.7 49.1 18.7 67.9 0L495 297c10.9-10.9 17-25.6 17-41s-6.1-30.1-17-41l-48.1-48.1zM461.1 249c1.9 1.9 2.9 4.4 2.9 7s-1 5.2-2.9 7L413 311.1 357.8 256 413 200.9 461.1 249z',\n\t\twidth: 512,\n\t},\n\tdiscourse: {\n\t\taliases: [],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2C348.6 479.8 448 377.5 448 255.9S348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392 111.4 317c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z',\n\t\twidth: 448,\n\t},\n\tdisplay: {\n\t\taliases: ['monitor', 'screen'],\n\t\tcategories: ['media'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 80c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64l-115.7 0 8 48 51.7 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-272 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l51.7 0 8-48-115.7 0c-35.3 0-64-28.7-64-64L0 96zM228.3 416l-8 48 71.3 0-8-48-55.3 0z',\n\t\twidth: 512,\n\t},\n\tdollarSign: {\n\t\taliases: ['money', 'price', 'currency', 'cost'],\n\t\tcategories: ['data', 'financial'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M136 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-130 0c-29.8 0-54 24.2-54 54 0 26.4 19.1 48.9 45.1 53.2l106.1 17.7c51.3 8.5 88.8 52.9 88.8 104.8 0 58.7-47.6 106.3-106.3 106.3l-13.7 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l141.7 0c32.2 0 58.3-26.1 58.3-58.3 0-28.5-20.6-52.8-48.7-57.5L101.2 266.5C52 258.3 16 215.8 16 166 16 109.6 61.6 64 118 64l18 0 0-40z',\n\t\twidth: 320,\n\t},\n\tdownload: {\n\t\taliases: ['save', 'export'],\n\t\tcategories: ['actions', 'development'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M248 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 246.1-63-63c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L207 345c9.4 9.4 24.6 9.4 33.9 0L345 241c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-63 63 0-246.1zM66.2 272L64 272c-35.3 0-64 28.7-64 64l0 80c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-80c0-35.3-28.7-64-64-64l-2.2 0-48 48 50.2 0c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16l50.2 0-48-48zM368 376a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z',\n\t\twidth: 448,\n\t},\n\tdrupal: {\n\t\taliases: [],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M272.3 108.1C236.5 72.5 202.5 38.4 192.4 0 182.4 38.4 148.1 72.5 112.4 108.1 58.8 161.7-1.9 222.4-1.9 313.4-4.3 420.7 80.8 509.6 188.1 512s196.2-82.8 198.5-190.1c.1-2.8 .1-5.6 0-8.5 0-91.1-60.8-151.7-114.3-205.3zM98 331.1c-5.9 7.5-11 15.6-15.2 24.2-.3 .7-.8 1.3-1.3 1.8s-1.2 .8-2 1l-1.7 0c-4.3 0-9.2-8.5-9.2-8.5-1.3-2-2.5-4.2-3.7-6.4l-.8-1.8c-11.2-25.7-1.5-62.3-1.5-62.3 4.8-17.8 12.7-34.7 23.2-49.9 6.4-9.6 13.5-18.9 21-27.7l9.2 9.2 43.5 44.4c.8 .9 1.3 2.1 1.3 3.3s-.5 2.4-1.3 3.3L114.1 312.3 98 331.1zm96.6 127.3c-12.9-.1-25.6-3.9-36.4-11s-19.4-17.1-24.6-28.9-7-24.9-5-37.7 7.6-24.7 16.2-34.4c14.2-16.9 31.5-33.5 50.3-55.3 22.3 23.8 36.9 40.1 51.2 58 1.1 1.4 2.1 2.9 3 4.4 7.8 11.1 12 24.4 12 38 0 8.8-1.7 17.4-5 25.5s-8.2 15.5-14.4 21.7-13.5 11.1-21.6 14.5-16.7 5.1-25.5 5.1l-.2 0zM320.7 351.6c-.4 1.4-1.2 2.6-2.3 3.6s-2.4 1.6-3.8 1.8l-1.3 0c-2.6-.9-4.9-2.7-6.3-5.1-11.6-17.5-24.9-33.9-39.5-49l-17.8-18.4-59.1-61.3c-12.4-11.5-24.2-23.6-35.4-36.3-.3-.5-.6-.9-.9-1.4-2-2.8-3.6-5.9-4.7-9.2l0-1.8c-.8-5-.4-10.1 1.2-15s4.4-9.2 8-12.7c11.4-11.4 23-23 33.8-34.9 12 13.3 24.8 26 37.4 38.6 25.8 24 49.1 50.5 69.6 79.1 17.3 24.5 26.7 53.8 27 83.8-.1 12.9-2.2 25.8-6 38.2z',\n\t\twidth: 384,\n\t},\n\tellipsis: {\n\t\taliases: ['more', 'options', 'dots'],\n\t\tcategories: ['development', 'navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M448 256a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm-176 0a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zM48 304a48 48 0 1 1 0-96 48 48 0 1 1 0 96z',\n\t\twidth: 448,\n\t},\n\tellipsisVertical: {\n\t\taliases: ['more', 'options', 'kebab menu'],\n\t\tcategories: ['development', 'navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M112 80a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zM16 256c0-26.5 21.5-48 48-48s48 21.5 48 48-21.5 48-48 48-48-21.5-48-48zm96 176c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48 48 21.5 48 48z',\n\t\twidth: 128,\n\t},\n\temptySet: {\n\t\taliases: ['none', 'null', 'no data'],\n\t\tcategories: ['objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M464 256c0-48.8-16.8-93.7-44.9-129.1L126.9 419.1c35.5 28.1 80.3 44.9 129.1 44.9 114.9 0 208-93.1 208-208zM453.2 92.7c36.7 44.3 58.8 101.2 58.8 163.3 0 141.4-114.6 256-256 256-62.1 0-118.9-22.1-163.3-58.8L41 505c-9.4 9.4-24.6 9.4-33.9 0S-2.3 480.4 7 471l51.8-51.8C22.1 374.9 0 318.1 0 256 0 114.6 114.6 0 256 0 318.1 0 374.9 22.1 419.3 58.8L471 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L453.2 92.7zM92.9 385.1L385.1 92.9C349.7 64.8 304.8 48 256 48 141.1 48 48 141.1 48 256 48 304.8 64.8 349.7 92.9 385.1z',\n\t\twidth: 512,\n\t},\n\tenvelope: {\n\t\taliases: ['email', 'mail', 'message'],\n\t\tcategories: ['communication', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M61.4 64C27.5 64 0 91.5 0 125.4 0 126.3 0 127.1 .1 128L0 128 0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256-.1 0c0-.9 .1-1.7 .1-2.6 0-33.9-27.5-61.4-61.4-61.4L61.4 64zM464 192.3L464 384c0 8.8-7.2 16-16 16L64 400c-8.8 0-16-7.2-16-16l0-191.7 154.8 117.4c31.4 23.9 74.9 23.9 106.4 0L464 192.3zM48 125.4C48 118 54 112 61.4 112l389.2 0c7.4 0 13.4 6 13.4 13.4 0 4.2-2 8.2-5.3 10.7L280.2 271.5c-14.3 10.8-34.1 10.8-48.4 0L53.3 136.1c-3.3-2.5-5.3-6.5-5.3-10.7z',\n\t\twidth: 512,\n\t},\n\tenvelopeOpen: {\n\t\taliases: ['email read', 'mail open'],\n\t\tcategories: ['communication', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M512 416c0 35.3-28.5 64-63.9 64L64 480c-35.4 0-64-28.7-64-64L0 164c.1-15.5 7.8-30 20.5-38.8L206-2.7c30.1-20.7 69.8-20.7 99.9 0L491.5 125.2c12.8 8.8 20.4 23.3 20.5 38.8l0 252zM64 432l384.1 0c8.8 0 15.9-7.1 15.9-16l0-191.7-154.8 117.4c-31.4 23.9-74.9 23.9-106.4 0L48 224.3 48 416c0 8.9 7.2 16 16 16zM463.6 164.4L278.7 36.8c-13.7-9.4-31.7-9.4-45.4 0L48.4 164.4 231.8 303.5c14.3 10.8 34.1 10.8 48.4 0L463.6 164.4z',\n\t\twidth: 512,\n\t},\n\texclamation: {\n\t\taliases: ['alert', 'warning', 'attention'],\n\t\tcategories: ['status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M32.3 448c17.7 0 32 14.3 32 32s-14.3 32-32 32c-17.7 0-32-14.3-32-32s14.3-32 32-32zM36.2 .2c18.8 2 33.2 18.2 32.5 37.5L56.3 360.9c-.5 12.9-11.1 23.1-24 23.1s-23.5-10.2-24-23.1L-4 37.7C-4.8 17.1 11.7 0 32.3 0l3.8 .2z',\n\t\twidth: 64,\n\t},\n\texpand: {\n\t\taliases: ['fullscreen', 'maximize', 'enlarge'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M136 32c13.3 0 24 10.7 24 24s-10.7 24-24 24l-88 0 0 88c0 13.3-10.7 24-24 24S0 181.3 0 168L0 56C0 42.7 10.7 32 24 32l112 0zM0 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 88 88 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 480c-13.3 0-24-10.7-24-24L0 344zM424 32c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-88-88 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l112 0zM400 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 112c0 13.3-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l88 0 0-88z',\n\t\twidth: 448,\n\t},\n\texpandFromCenter: {\n\t\taliases: ['resize', 'scale', 'expand arrows'],\n\t\tcategories: ['actions', 'arrows'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M295 183c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l135-135 0 86.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-144c0-13.3-10.7-24-24-24L344 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l86.1 0-135 135zM217 329c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L48 430.1 48 344c0-13.3-10.7-24-24-24S0 330.7 0 344L0 488c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-86.1 0 135-135z',\n\t\twidth: 512,\n\t},\n\texternalLink: {\n\t\taliases: ['open in new', 'new window', 'new tab'],\n\t\tcategories: ['arrows', 'navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M288 24c0 13.3 10.7 24 24 24l118.1 0-231 231c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l231-231 0 118.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-176c0-13.3-10.7-24-24-24L312 0c-13.3 0-24 10.7-24 24zM80 96C35.8 96 0 131.8 0 176L0 432c0 44.2 35.8 80 80 80l256 0c44.2 0 80-35.8 80-80l0-88c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 88c0 17.7-14.3 32-32 32L80 464c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L80 96z',\n\t\twidth: 512,\n\t},\n\teye: {\n\t\taliases: ['show', 'visible', 'view', 'preview'],\n\t\tcategories: ['actions', 'security', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M288 80C222.8 80 169.2 109.6 128.1 147.7 89.6 183.5 63 226 49.4 256 63 286 89.6 328.5 128.1 364.3 169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256 513 226 486.4 183.5 447.9 147.7 406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1 3.3 7.9 3.3 16.7 0 24.6-14.9 35.7-46.2 87.7-93 131.1-47.1 43.7-111.8 80.6-192.6 80.6S142.5 443.2 95.4 399.4c-46.8-43.5-78.1-95.4-93-131.1-3.3-7.9-3.3-16.7 0-24.6 14.9-35.7 46.2-87.7 93-131.1zM288 336c44.2 0 80-35.8 80-80 0-29.6-16.1-55.5-40-69.3-1.4 59.7-49.6 107.9-109.3 109.3 13.8 23.9 39.7 40 69.3 40zm-79.6-88.4c2.5 .3 5 .4 7.6 .4 35.3 0 64-28.7 64-64 0-2.6-.2-5.1-.4-7.6-37.4 3.9-67.2 33.7-71.1 71.1zm45.6-115c10.8-3 22.2-4.5 33.9-4.5 8.8 0 17.5 .9 25.8 2.6 .3 .1 .5 .1 .8 .2 57.9 12.2 101.4 63.7 101.4 125.2 0 70.7-57.3 128-128 128-61.6 0-113-43.5-125.2-101.4-1.8-8.6-2.8-17.5-2.8-26.6 0-11 1.4-21.8 4-32 .2-.7 .3-1.3 .5-1.9 11.9-43.4 46.1-77.6 89.5-89.5z',\n\t\twidth: 576,\n\t},\n\teyeSlash: {\n\t\taliases: ['hide', 'hidden', 'invisible'],\n\t\tcategories: ['actions', 'security', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.4-96.4c2.7-2.4 5.4-4.8 8-7.2 46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6-56.8 0-105.6 18.2-146 44.2L41-24.9zM176.9 111.1c32.1-18.9 69.2-31.1 111.1-31.1 65.2 0 118.8 29.6 159.9 67.7 38.5 35.7 65.1 78.3 78.6 108.3-13.6 30-40.2 72.5-78.6 108.3-3.1 2.8-6.2 5.6-9.4 8.4L393.8 328c14-20.5 22.2-45.3 22.2-72 0-70.7-57.3-128-128-128-26.7 0-51.5 8.2-72 22.2l-39.1-39.1zm182 182l-108-108c11.1-5.8 23.7-9.1 37.1-9.1 44.2 0 80 35.8 80 80 0 13.4-3.3 26-9.1 37.1zM103.4 173.2l-34-34c-32.6 36.8-55 75.8-66.9 104.5-3.3 7.9-3.3 16.7 0 24.6 14.9 35.7 46.2 87.7 93 131.1 47.1 43.7 111.8 80.6 192.6 80.6 37.3 0 71.2-7.9 101.5-20.6L352.2 422c-20 6.4-41.4 10-64.2 10-65.2 0-118.8-29.6-159.9-67.7-38.5-35.7-65.1-78.3-78.6-108.3 10.4-23.1 28.6-53.6 54-82.8z',\n\t\twidth: 576,\n\t},\n\tfacebook: {\n\t\taliases: [],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256C0 376 82.7 476.8 194.2 504.5l0-170.3-52.8 0 0-78.2 52.8 0 0-33.7c0-87.1 39.4-127.5 125-127.5 16.2 0 44.2 3.2 55.7 6.4l0 70.8c-6-.6-16.5-1-29.6-1-42 0-58.2 15.9-58.2 57.2l0 27.8 83.6 0-14.4 78.2-69.3 0 0 175.9C413.8 494.8 512 386.9 512 256z',\n\t\twidth: 512,\n\t},\n\tfile: {\n\t\taliases: ['document', 'page'],\n\t\tcategories: ['documents'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M176 48L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-240-88 0c-39.8 0-72-32.2-72-72l0-88zM316.1 160L224 67.9 224 136c0 13.3 10.7 24 24 24l68.1 0zM0 64C0 28.7 28.7 0 64 0L197.5 0c17 0 33.3 6.7 45.3 18.7L365.3 141.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64z',\n\t\twidth: 384,\n\t},\n\tfileCheck: {\n\t\taliases: ['file approved', 'verified file'],\n\t\tcategories: ['documents', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M197.5 0c17 0 33.2 6.8 45.2 18.8L365.3 141.2c12 12 18.7 28.3 18.7 45.2L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64C0 28.7 28.7 0 64 0L197.5 0zM64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-240-88 0c-39.8 0-72-32.2-72-72l0-88-112 0zM228.7 263.9c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5L191.4 396.8c-4.2 5.7-10.7 9.3-17.8 9.8-7.1 .5-14-2.2-18.9-7.3l-35.9-37.2c-9.2-9.5-8.9-24.7 .6-33.9 9.5-9.2 24.7-9 33.9 .6l16.1 16.6 59.3-81.6zM224 136c0 13.3 10.7 24 24 24l68.1 0-92.1-92.1 0 68.1z',\n\t\twidth: 384,\n\t},\n\tfileContract: {\n\t\taliases: ['agreement', 'terms', 'legal'],\n\t\tcategories: ['documents'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M176 48L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-240-88 0c-39.8 0-72-32.2-72-72l0-88zM316.1 160L224 67.9 224 136c0 13.3 10.7 24 24 24l68.1 0zM0 64C0 28.7 28.7 0 64 0L197.5 0c17 0 33.3 6.7 45.3 18.7L365.3 141.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM145.3 301.9c7-8.8 17.7-13.9 28.9-13.9 16.4 0 30.8 10.7 35.5 26.4l16.1 53.6 54.1 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-72 0c-10.6 0-19.9-7-23-17.1l-15.2-50.7-47.1 58.8c-8.3 10.4-23.4 12-33.7 3.8S77 387.4 85.3 377l60.1-75.1zM104 80l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z',\n\t\twidth: 384,\n\t},\n\tfileCSV: {\n\t\taliases: ['spreadsheet', 'csv'],\n\t\tcategories: ['documents'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M208 48L96 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l80 0 0 48-80 0c-35.3 0-64-28.7-64-64L32 64C32 28.7 60.7 0 96 0L229.5 0c17 0 33.3 6.7 45.3 18.7L397.3 141.3c12 12 18.7 28.3 18.7 45.3l0 149.5-48 0 0-128-88 0c-39.8 0-72-32.2-72-72l0-88zM348.1 160L256 67.9 256 136c0 13.3 10.7 24 24 24l68.1 0zM264 380l16 0c24.3 0 44 19.7 44 44l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-2.2-1.8-4-4-4l-16 0c-2.2 0-4 1.8-4 4l0 80c0 2.2 1.8 4 4 4l16 0c2.2 0 4-1.8 4-4l0-8c0-11 9-20 20-20s20 9 20 20l0 8c0 24.3-19.7 44-44 44l-16 0c-24.3 0-44-19.7-44-44l0-80c0-24.3 19.7-44 44-44zm136 0l24 0c11 0 20 9 20 20s-9 20-20 20l-24 0c-6.6 0-12 5.4-12 12s5.4 12 12 12c28.7 0 52 23.3 52 52s-23.3 52-52 52l-32 0c-11 0-20-9-20-20s9-20 20-20l32 0c6.6 0 12-5.4 12-12s-5.4-12-12-12c-28.7 0-52-23.3-52-52s23.3-52 52-52zm96 0c11 0 20 9 20 20l0 31.6c0 19.6 4.1 38.9 12 56.7 7.9-17.8 12-37.1 12-56.7l0-31.6c0-11 9-20 20-20s20 9 20 20l0 31.6c0 35.5-10.5 70.3-30.2 99.8l-5.1 7.7c-3.7 5.6-10 8.9-16.6 8.9s-12.9-3.3-16.6-8.9l-5.1-7.7c-19.7-29.6-30.2-64.3-30.2-99.8l0-31.6c0-11 9-20 20-20z',\n\t\twidth: 576,\n\t},\n\tfileDiff: {\n\t\taliases: ['file changes', 'diff', 'compare'],\n\t\tcategories: ['development', 'documents'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zM216 240c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 24c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24 24 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-24 0 0-24zM144 384c-13.3 0-24 10.7-24 24s10.7 24 24 24l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-96 0z',\n\t\twidth: 384,\n\t},\n\tfileExport: {\n\t\taliases: ['export', 'send file'],\n\t\tcategories: ['actions', 'documents'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M208.5 48l-112 0c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-48 48 0 0 48c0 35.3-28.7 64-64 64l-256 0c-35.3 0-64-28.7-64-64l0-384c0-35.3 28.7-64 64-64L230 0c17 0 33.3 6.7 45.3 18.7L397.8 141.3c12 12 18.7 28.3 18.7 45.3l0 69.5-48 0 0-48-88 0c-39.8 0-72-32.2-72-72l0-88zm72 256l214.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-214.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm68.1-144l-92.1-92.1 0 68.1c0 13.3 10.7 24 24 24l68.1 0z',\n\t\twidth: 576,\n\t},\n\tfileImport: {\n\t\taliases: ['import', 'receive file'],\n\t\tcategories: ['actions', 'documents'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M128 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16l-256 0c-8.8 0-16-7.2-16-16l0-48-48 0 0 48c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L306.7 18.7C294.7 6.7 278.5 0 261.5 0L128 0C92.7 0 64 28.7 64 64l0 192 48 0 0-192c0-8.8 7.2-16 16-16zM288 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM0 328c0 13.3 10.7 24 24 24l222.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-222.1 0c-13.3 0-24 10.7-24 24z',\n\t\twidth: 512,\n\t},\n\tfileLines: {\n\t\taliases: ['text file', 'document'],\n\t\tcategories: ['documents'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zm56 256c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z',\n\t\twidth: 384,\n\t},\n\tfilePDF: {\n\t\taliases: ['pdf', 'document'],\n\t\tcategories: ['documents'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M208 48L96 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l80 0 0 48-80 0c-35.3 0-64-28.7-64-64L32 64C32 28.7 60.7 0 96 0L229.5 0c17 0 33.3 6.7 45.3 18.7L397.3 141.3c12 12 18.7 28.3 18.7 45.3l0 149.5-48 0 0-128-88 0c-39.8 0-72-32.2-72-72l0-88zM348.1 160L256 67.9 256 136c0 13.3 10.7 24 24 24l68.1 0zM240 380l32 0c33.1 0 60 26.9 60 60s-26.9 60-60 60l-12 0 0 28c0 11-9 20-20 20s-20-9-20-20l0-128c0-11 9-20 20-20zm32 80c11 0 20-9 20-20s-9-20-20-20l-12 0 0 40 12 0zm96-80l32 0c28.7 0 52 23.3 52 52l0 64c0 28.7-23.3 52-52 52l-32 0c-11 0-20-9-20-20l0-128c0-11 9-20 20-20zm32 128c6.6 0 12-5.4 12-12l0-64c0-6.6-5.4-12-12-12l-12 0 0 88 12 0zm76-108c0-11 9-20 20-20l48 0c11 0 20 9 20 20s-9 20-20 20l-28 0 0 24 28 0c11 0 20 9 20 20s-9 20-20 20l-28 0 0 44c0 11-9 20-20 20s-20-9-20-20l0-128z',\n\t\twidth: 576,\n\t},\n\tfileZip: {\n\t\taliases: ['archive', 'compressed', 'zip'],\n\t\tcategories: ['documents'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zM80 104c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0c-13.3 0-24 10.7-24 24zm0 80c0 13.3 10.7 24 24 24l32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0c-13.3 0-24 10.7-24 24zm64 56l-32 0c-17.7 0-32 14.3-32 32l0 48c0 26.5 21.5 48 48 48s48-21.5 48-48l0-48c0-17.7-14.3-32-32-32zm-16 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z',\n\t\twidth: 384,\n\t},\n\tfolder: {\n\t\taliases: ['directory'],\n\t\tcategories: ['documents'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 400l384 0c8.8 0 16-7.2 16-16l0-240c0-8.8-7.2-16-16-16l-149.3 0c-17.3 0-34.2-5.6-48-16L212.3 83.2c-2.8-2.1-6.1-3.2-9.6-3.2L64 80c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16zm384 48L64 448c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 240c0 35.3-28.7 64-64 64z',\n\t\twidth: 512,\n\t},\n\tfolderTree: {\n\t\taliases: ['file tree', 'directory tree'],\n\t\tcategories: ['development', 'documents', 'navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24L0 392c0 30.9 25.1 56 56 56l184 0 0-48-184 0c-4.4 0-8-3.6-8-8l0-232 192 0 0-48-192 0 0-88zM385.5 48l31.9 21.3c10.5 7 22.9 10.7 35.5 10.7l75.2 0 0 96-192 0 0-128 49.5 0zM288 48l0 128c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-75.2 0c-3.2 0-6.2-.9-8.9-2.7L412.1 8.1C404.2 2.8 394.9 0 385.5 0L336 0c-26.5 0-48 21.5-48 48zm97.5 288l33.9 22.6c9.2 6.1 20 9.4 31.1 9.4l77.6 0 0 96-192 0 0-128 49.5 0zM288 336l0 128c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-77.6 0c-1.6 0-3.1-.5-4.4-1.3l-33.9-22.6c-7.9-5.3-17.1-8.1-26.6-8.1L336 288c-26.5 0-48 21.5-48 48z',\n\t\twidth: 576,\n\t},\n\tgear: {\n\t\taliases: ['settings', 'preferences', 'config'],\n\t\tcategories: ['actions', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M205.5 92.7l13.7-60.7 73.6 0 13.7 60.7c1.7 7.4 6.8 13.6 13.8 16.7 10.8 4.8 21 10.7 30.4 17.6 6.1 4.5 14.1 5.9 21.4 3.6l59.5-18.5 36.8 63.8-45.8 42.3c-5.6 5.2-8.4 12.7-7.6 20.2 1.3 11.5 1.3 23.7 0 35.2-.8 7.6 2 15.1 7.6 20.2l45.8 42.3-36.8 63.8-59.5-18.5c-7.3-2.3-15.2-.9-21.4 3.6-9.4 6.9-19.6 12.9-30.4 17.6-7 3.1-12.1 9.3-13.8 16.7l-13.7 60.7-73.6 0-13.7-60.7c-1.7-7.4-6.8-13.6-13.8-16.7-10.8-4.8-21-10.7-30.4-17.6-6.1-4.5-14.1-5.9-21.4-3.6l-59.5 18.5-36.8-63.8 45.8-42.3c5.6-5.2 8.4-12.7 7.6-20.2-1.3-11.5-1.3-23.7 0-35.2 .8-7.6-2-15.1-7.6-20.2l-45.8-42.3 36.8-63.8 59.5 18.5c7.3 2.3 15.2 .9 21.4-3.6 9.4-6.9 19.6-12.9 30.4-17.6 7-3.1 12.1-9.3 13.8-16.7zM212.8-16c-18.7 0-34.9 13-39 31.2L161.2 70.8c-6.3 3.2-12.3 6.7-18.2 10.5L88.6 64.4c-17.9-5.6-37.2 2-46.5 18.2L-1.1 157.4c-9.3 16.2-6.2 36.7 7.5 49.4l41.9 38.7c-.3 6.9-.3 14 0 21L6.4 305.2c-13.7 12.7-16.9 33.2-7.5 49.4l43.2 74.8c9.3 16.2 28.7 23.7 46.5 18.2l54.5-16.9c5.9 3.8 11.9 7.3 18.2 10.5l12.6 55.6c4.1 18.2 20.3 31.2 39 31.2l86.4 0c18.7 0 34.9-13 39-31.2l12.6-55.6c6.3-3.2 12.3-6.7 18.2-10.5l54.5 16.9c17.9 5.6 37.2-2 46.5-18.2l43.2-74.8c9.3-16.2 6.2-36.7-7.5-49.4l-41.9-38.7c.3-6.9 .3-14 0-21l41.9-38.7c13.7-12.7 16.8-33.2 7.5-49.4L470 82.6c-9.4-16.2-28.7-23.7-46.5-18.2L369 81.3c-5.9-3.8-11.9-7.3-18.2-10.5L338.3 15.2C334.1-3 317.9-16 299.2-16l-86.4 0zM304 256a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm-48-96a96 96 0 1 0 0 192 96 96 0 1 0 0-192z',\n\t\twidth: 512,\n\t},\n\tgem: {\n\t\taliases: ['diamond', 'jewel', 'premium'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M168.5 72l87.5 93 87.5-93-175 0zM383.9 99.1l-72.3 76.9 129 0-56.6-76.9zm50 124.9L78.1 224 256 420.3 433.9 224zM71.5 176l129 0-72.3-76.9-56.6 76.9zm434.3 40.1l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4z',\n\t\twidth: 512,\n\t},\n\tgithub: {\n\t\taliases: [],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM252.8 8c-138.7 0-244.8 105.3-244.8 244 0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1 100-33.2 167.8-128.1 167.8-239 0-138.7-112.5-244-251.2-244zM105.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z',\n\t\twidth: 512,\n\t},\n\tgitlab: {\n\t\taliases: [],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M504 204.6l-.7-1.8-69.7-181.8c-1.4-3.6-3.9-6.6-7.2-8.6-2.4-1.6-5.1-2.5-8-2.8s-5.7 .1-8.4 1.1-5.1 2.7-7.1 4.8c-1.9 2.1-3.3 4.7-4.1 7.4l-47 144-190.5 0-47.1-144c-.8-2.8-2.2-5.3-4.1-7.4-2-2.1-4.4-3.7-7.1-4.8-2.6-1-5.5-1.4-8.4-1.1s-5.6 1.2-8 2.8c-3.2 2-5.8 5.1-7.2 8.6L9.8 202.8 9 204.6c-10 26.2-11.3 55-3.5 82 7.7 26.9 24 50.7 46.4 67.6l.3 .2 .6 .4 106 79.5c38.5 29.1 66.7 50.3 84.6 63.9 3.7 1.9 8.3 4.3 13 4.3s9.3-2.4 13-4.3c17.9-13.5 46.1-34.9 84.6-63.9l106.7-79.9 .3-.3c22.4-16.9 38.7-40.6 45.6-67.5 8.6-27 7.4-55.8-2.6-82z',\n\t\twidth: 512,\n\t},\n\tglobe: {\n\t\taliases: ['world', 'website', 'internet', 'language'],\n\t\tcategories: ['navigation', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M303.2 413c-21.5 43.7-41.4 51-47.2 51s-25.7-7.3-47.2-51c-17-34.5-29.2-81.6-32.1-133l158.6 0c-3 51.5-15.2 98.6-32.1 133zm32.1-181l-158.6 0c3-51.5 15.2-98.6 32.1-133 21.5-43.7 41.4-51 47.2-51s25.7 7.3 47.2 51c17 34.5 29.2 81.6 32.1 133zm48.1 48l79.2 0c-8.6 74.6-56.7 137.3-122.8 166.4 24-42.8 40.3-102.4 43.6-166.4zm79.2-48l-79.2 0c-3.3-64-19.6-123.6-43.6-166.4 66.1 29.2 114.2 91.8 122.8 166.4zm-334 0l-79.2 0c8.6-74.6 56.7-137.3 122.8-166.4-24 42.8-40.3 102.4-43.6 166.4zM49.4 280l79.2 0c3.3 64 19.6 123.6 43.6 166.4-66.1-29.2-114.2-91.8-122.8-166.4zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512z',\n\t\twidth: 512,\n\t},\n\tgraduationCap: {\n\t\taliases: ['education', 'learning', 'academy'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M318.8 38.1C309 34.1 298.6 32 288 32s-21 2.1-30.8 6.1L14.8 137.9C5.8 141.6 0 150.3 0 160L0 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-260.2 48 19.8 0 168.5c0 53 86 96 192 96s192-43 192-96l0-168.5 81.2-33.4c9-3.7 14.8-12.4 14.8-22.1s-5.8-18.4-14.8-22.1L318.8 38.1zM144 384l0-148.7 113.2 46.6c9.8 4 20.2 6.1 30.8 6.1s21-2.1 30.8-6.1L432 235.3 432 384c0 .1 0 .1 0 .3s-.1 .4-.3 .9c-.4 .9-1.3 2.7-3.4 5.2-4.4 5.2-12.6 11.9-26 18.6-26.8 13.4-67.1 23-114.3 23s-87.5-9.7-114.3-23c-13.4-6.7-21.6-13.4-26-18.6-2.1-2.5-3-4.3-3.4-5.2-.2-.5-.3-.8-.3-.9s0-.2 0-.3zM87.2 160L275.5 82.5c4-1.6 8.2-2.5 12.5-2.5s8.5 .8 12.5 2.5L488.8 160 300.5 237.5c-4 1.6-8.2 2.5-12.5 2.5s-8.5-.8-12.5-2.5L87.2 160z',\n\t\twidth: 576,\n\t},\n\tgrid: {\n\t\taliases: ['tiles', 'gallery', 'grid view'],\n\t\tcategories: ['navigation', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M0 64C0 46.3 14.3 32 32 32l48 0c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32L0 64zM0 232c0-17.7 14.3-32 32-32l48 0c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-48zM112 400l0 48c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-48c0-17.7 14.3-32 32-32l48 0c17.7 0 32 14.3 32 32zM168 64c0-17.7 14.3-32 32-32l48 0c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-48zM280 232l0 48c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-48c0-17.7 14.3-32 32-32l48 0c17.7 0 32 14.3 32 32zM168 400c0-17.7 14.3-32 32-32l48 0c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-48zM448 64l0 48c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-48c0-17.7 14.3-32 32-32l48 0c17.7 0 32 14.3 32 32zM336 232c0-17.7 14.3-32 32-32l48 0c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-48zM448 400l0 48c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-48c0-17.7 14.3-32 32-32l48 0c17.7 0 32 14.3 32 32z',\n\t\twidth: 448,\n\t},\n\tgripDots: {\n\t\taliases: ['drag', 'reorder', 'handle'],\n\t\tcategories: ['actions', 'navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 224a64 64 0 1 1 0-128 64 64 0 1 1 0 128zM256 96a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm192 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm0 192a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM256 416a64 64 0 1 1 0-128 64 64 0 1 1 0 128zM64 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z',\n\t\twidth: 512,\n\t},\n\tgripDotsVertical: {\n\t\taliases: ['drag', 'reorder', 'handle'],\n\t\tcategories: ['actions', 'navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M128 64A64 64 0 1 0 0 64 64 64 0 1 0 128 64zm0 192a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM0 448c0 35.3 28.7 64 64 64s64-28.7 64-64-28.7-64-64-64-64 28.7-64 64zM320 64a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM192 256a64 64 0 1 0 128 0 64 64 0 1 0 -128 0zM320 448c0-35.3-28.7-64-64-64s-64 28.7-64 64 28.7 64 64 64 64-28.7 64-64z',\n\t\twidth: 320,\n\t},\n\theart: {\n\t\taliases: ['favorite', 'like', 'love'],\n\t\tcategories: ['actions', 'objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M378.9 80c-27.3 0-53 13.1-69 35.2l-34.4 47.6c-4.5 6.2-11.7 9.9-19.4 9.9s-14.9-3.7-19.4-9.9l-34.4-47.6c-16-22.1-41.7-35.2-69-35.2-47 0-85.1 38.1-85.1 85.1 0 49.9 32 98.4 68.1 142.3 41.1 50 91.4 94 125.9 120.3 3.2 2.4 7.9 4.2 14 4.2s10.8-1.8 14-4.2c34.5-26.3 84.8-70.4 125.9-120.3 36.2-43.9 68.1-92.4 68.1-142.3 0-47-38.1-85.1-85.1-85.1zM271 87.1c25-34.6 65.2-55.1 107.9-55.1 73.5 0 133.1 59.6 133.1 133.1 0 68.6-42.9 128.9-79.1 172.8-44.1 53.6-97.3 100.1-133.8 127.9-12.3 9.4-27.5 14.1-43.1 14.1s-30.8-4.7-43.1-14.1C176.4 438 123.2 391.5 79.1 338 42.9 294.1 0 233.7 0 165.1 0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1l15 20.7 15-20.7z',\n\t\twidth: 512,\n\t},\n\theartSolid: {\n\t\taliases: ['favorited', 'liked', 'loved'],\n\t\tcategories: ['actions', 'objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 112.2-139.9 242.5-212.9 298.2-12.4 9.4-27.6 14.1-43.1 14.1s-30.8-4.6-43.1-14.1C139.9 410.2 0 279.9 0 167.7l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1z',\n\t\twidth: 512,\n\t},\n\thouse: {\n\t\taliases: ['home', 'homepage', 'dashboard'],\n\t\tcategories: ['navigation', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M240 6.1c9.1-8.2 22.9-8.2 32 0l232 208c9.9 8.8 10.7 24 1.8 33.9s-24 10.7-33.9 1.8l-8-7.2 0 205.3c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-205.3-8 7.2c-9.9 8.8-25 8-33.9-1.8s-8-25 1.8-33.9L240 6.1zm16 50.1L96 199.7 96 448c0 8.8 7.2 16 16 16l48 0 0-104c0-39.8 32.2-72 72-72l48 0c39.8 0 72 32.2 72 72l0 104 48 0c8.8 0 16-7.2 16-16l0-248.3-160-143.4zM208 464l96 0 0-104c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 104z',\n\t\twidth: 512,\n\t},\n\tidCard: {\n\t\taliases: ['badge', 'identity', 'profile card'],\n\t\tcategories: ['objects', 'users'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M48 416l0-256 480 0 0 256c0 8.8-7.2 16-16 16l-192 0c0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80l-32 0c-8.8 0-16-7.2-16-16zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM208 312a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM376 208c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0z',\n\t\twidth: 576,\n\t},\n\timage: {\n\t\taliases: ['photo', 'picture', 'thumbnail'],\n\t\tcategories: ['media'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm128 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm136 72c8.5 0 16.4 4.5 20.7 11.8l80 136c4.4 7.4 4.4 16.6 .1 24.1S352.6 384 344 384l-240 0c-8.9 0-17.2-5-21.3-12.9s-3.5-17.5 1.6-24.8l56-80c4.5-6.4 11.8-10.2 19.7-10.2s15.2 3.8 19.7 10.2l17.2 24.6 46.5-79c4.3-7.3 12.2-11.8 20.7-11.8z',\n\t\twidth: 448,\n\t},\n\tinputText: {\n\t\taliases: ['text field', 'form field'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M512 112c8.8 0 16 7.2 16 16l0 256c0 8.8-7.2 16-16 16L64 400c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l448 0zM64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM96 224l0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24 32 0 0 24c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104c0-35.3-28.7-64-64-64s-64 28.7-64 64zm80 32l-32 0 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32zm96-72l0 144c0 13.3 10.7 24 24 24l52 0c33.1 0 60-26.9 60-60 0-16-6.3-30.5-16.5-41.3 5.4-9 8.5-19.5 8.5-30.7 0-33.1-26.9-60-60-60l-44 0c-13.3 0-24 10.7-24 24zm80 36c0 6.6-5.4 12-12 12l-20 0 0-24 20 0c6.6 0 12 5.4 12 12zm-32 84l0-24 28 0c6.6 0 12 5.4 12 12s-5.4 12-12 12l-28 0z',\n\t\twidth: 576,\n\t},\n\tinstagram: {\n\t\taliases: [],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M224.3 141a115 115 0 1 0 -.6 230 115 115 0 1 0 .6-230zm-.6 40.4a74.6 74.6 0 1 1 .6 149.2 74.6 74.6 0 1 1 -.6-149.2zm93.4-45.1a26.8 26.8 0 1 1 53.6 0 26.8 26.8 0 1 1 -53.6 0zm129.7 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM399 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z',\n\t\twidth: 448,\n\t},\n\tkeySkeleton: {\n\t\taliases: ['key', 'password', 'access', 'api key'],\n\t\tcategories: ['actions', 'objects', 'security'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M304 48a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm0 240c79.5 0 144-64.5 144-144S383.5 0 304 0 160 64.5 160 144c0 31.1 9.9 59.9 26.6 83.4L7 407c-9.4 9.4-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 30.1-30.1 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 98.6-98.6C244.1 278.1 272.9 288 304 288z',\n\t\twidth: 448,\n\t},\n\tlaptop: {\n\t\taliases: ['computer', 'device'],\n\t\tcategories: ['media'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M512 80L128 80c-8.8 0-16 7.2-16 16l0 208-48 0 0-208c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 208-48 0 0-208c0-8.8-7.2-16-16-16zM102.4 432l435.2 0c22.1 0 41.1-13.1 49.6-32L52.8 400c8.5 18.9 27.5 32 49.6 32zM0 377.6C0 363.5 11.5 352 25.6 352l588.8 0c14.1 0 25.6 11.5 25.6 25.6 0 56.6-45.8 102.4-102.4 102.4l-435.2 0C45.8 480 0 434.2 0 377.6z',\n\t\twidth: 640,\n\t},\n\tlaptopCode: {\n\t\taliases: ['development', 'coding'],\n\t\tcategories: ['development', 'media'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M128 80l384 0c8.8 0 16 7.2 16 16l0 208 48 0 0-208c0-35.3-28.7-64-64-64L128 32C92.7 32 64 60.7 64 96l0 208 48 0 0-208c0-8.8 7.2-16 16-16zM52.8 400l534.4 0c-8.5 18.9-27.5 32-49.6 32l-435.2 0c-22.1 0-41.1-13.1-49.6-32zM25.6 352C11.5 352 0 363.5 0 377.6 0 434.2 45.8 480 102.4 480l435.2 0c56.6 0 102.4-45.8 102.4-102.4 0-14.1-11.5-25.6-25.6-25.6L25.6 352zM281 169c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-48 48c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 31-31zM393 135c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9l-48-48z',\n\t\twidth: 640,\n\t},\n\tleaf: {\n\t\taliases: ['nature', 'eco', 'green'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M471.3 6.7C477.7 .6 487-1.6 495.6 1.2 505.4 4.5 512 13.7 512 24l0 186.9C512 342.1 403.9 448 273.2 448 191.7 448 121.9 392.4 101.8 316.8 68.7 347.4 48 391.3 48 440l0 16c0 13.3-10.7 24-24 24S0 469.2 0 456l0-16c0-75.1 38.3-141.2 96.4-179.9 6.1-91.7 82.4-164.1 175.6-164.1 66.4 0 115.8-22.1 148.7-44 19.2-12.8 35.5-28.1 50.7-45.3zM464 79.9c-38.3 29.5-102.4 64.1-192 64.1-57.6 0-106.4 38.1-122.4 90.4 20.9-6.8 43.2-10.4 66.4-10.4l80 0c13.3 0 24 10.8 24 24s-10.7 24-24 24l-80 0c-25.4 0-49.4 5.7-71 15.8 7.9 63.1 62.6 112.2 128.2 112.2 104.7 0 190.8-84.9 190.8-189.1l0-131z',\n\t\twidth: 512,\n\t},\n\tlifeRing: {\n\t\taliases: ['help', 'support', 'rescue'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M385.1 419.1C349.7 447.2 304.8 464 256 464s-93.7-16.8-129.1-44.9l80.4-80.4c14.3 8.4 31 13.3 48.8 13.3s34.5-4.8 48.8-13.3l80.4 80.4zm68.1 .2C489.9 374.9 512 318.1 512 256S489.9 137.1 453.2 92.7L465 81c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L419.3 58.8C374.9 22.1 318.1 0 256 0S137.1 22.1 92.7 58.8L81 47c-9.4-9.4-24.6-9.4-33.9 0S37.7 71.6 47 81L58.8 92.7C22.1 137.1 0 193.9 0 256S22.1 374.9 58.8 419.3L47 431c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l11.8-11.8C137.1 489.9 193.9 512 256 512s118.9-22.1 163.3-58.8L431 465c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-11.8-11.8zm-34.1-34.1l-80.4-80.4c8.4-14.3 13.3-31 13.3-48.8s-4.8-34.5-13.3-48.8l80.4-80.4C447.2 162.3 464 207.2 464 256s-16.8 93.7-44.9 129.1zM385.1 92.9l-80.4 80.4c-14.3-8.4-31-13.3-48.8-13.3s-34.5 4.8-48.8 13.3L126.9 92.9C162.3 64.8 207.2 48 256 48s93.7 16.8 129.1 44.9zM173.3 304.8L92.9 385.1C64.8 349.7 48 304.8 48 256s16.8-93.7 44.9-129.1l80.4 80.4c-8.4 14.3-13.3 31-13.3 48.8s4.8 34.5 13.3 48.8zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z',\n\t\twidth: 512,\n\t},\n\tlinkedin: {\n\t\taliases: [],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M416 32L31.9 32C14.3 32 0 46.5 0 64.3L0 447.7C0 465.5 14.3 480 31.9 480L416 480c17.6 0 32-14.5 32-32.3l0-383.4C448 46.5 433.6 32 416 32zM135.4 416l-66.4 0 0-213.8 66.5 0 0 213.8-.1 0zM102.2 96a38.5 38.5 0 1 1 0 77 38.5 38.5 0 1 1 0-77zM384.3 416l-66.4 0 0-104c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9l0 105.8-66.4 0 0-213.8 63.7 0 0 29.2 .9 0c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9l0 117.2z',\n\t\twidth: 448,\n\t},\n\tlinkSimple: {\n\t\taliases: ['link', 'url', 'chain'],\n\t\tcategories: ['actions', 'development'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M0 256C0 150 86 64 192 64l40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0c-79.5 0-144 64.5-144 144s64.5 144 144 144l40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0C86 448 0 362 0 256zm160 0c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24zM384 64c106 0 192 86 192 192S490 448 384 448l-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l40 0c79.5 0 144-64.5 144-144S463.5 112 384 112l-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l40 0z',\n\t\twidth: 576,\n\t},\n\tlinkSimpleSlash: {\n\t\taliases: ['unlink', 'broken link'],\n\t\tcategories: ['actions', 'development'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-83.9-83.9C539.7 385.4 576 324.9 576 256 576 150 490 64 384 64l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c79.5 0 144 64.5 144 144 0 55.8-31.7 104.1-78.1 128.1L345.8 280 392 280c13.3 0 24-10.7 24-24s-10.7-24-24-24l-94.2 0-119.4-119.4c4.5-.4 9-.6 13.5-.6l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0c-18.9 0-37.1 2.7-54.4 7.8L41-24.9zm46.3 182l-34-34C20.3 157.7 0 204.5 0 256 0 362 86 448 192 448l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0c-79.5 0-144-64.5-144-144 0-38.3 14.9-73.1 39.3-98.9z',\n\t\twidth: 576,\n\t},\n\tlistCheck: {\n\t\taliases: ['checklist', 'todo', 'tasks'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M139.7 69.8c7.6-10.9 5-25.8-5.9-33.4s-25.8-5-33.4 5.9L60.7 98.8 41 79C31.6 69.7 16.4 69.7 7 79S-2.3 103.6 7 113l40 40c5 5 12 7.6 19.1 6.9s13.5-4.3 17.6-10.1l56-80zm0 160c7.6-10.9 5-25.8-5.9-33.4s-25.8-5-33.4 5.9L60.7 258.8 41 239c-9.4-9.4-24.6-9.4-33.9 0S-2.3 263.6 7 273l40 40c5 5 12 7.6 19.1 6.9s13.5-4.3 17.6-10.1l56-80zM192 96c0 13.3 10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L216 72c-13.3 0-24 10.7-24 24zm0 160c0 13.3 10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-272 0c-13.3 0-24 10.7-24 24zM160 416c0 13.3 10.7 24 24 24l304 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-304 0c-13.3 0-24 10.7-24 24zm-64 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z',\n\t\twidth: 512,\n\t},\n\tlocationCrosshairs: {\n\t\taliases: ['location', 'gps', 'target', 'crosshair'],\n\t\tcategories: ['navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M288-16c13.3 0 24 10.7 24 24l0 25.3C416.5 44.4 499.6 127.5 510.7 232l25.3 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-25.3 0C499.6 384.5 416.5 467.6 312 478.7l0 25.3c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-25.3C159.5 467.6 76.4 384.5 65.3 280L40 280c-13.3 0-24-10.7-24-24s10.7-24 24-24l25.3 0C76.4 127.5 159.5 44.4 264 33.3L264 8c0-13.3 10.7-24 24-24zM464 256a176 176 0 1 0 -352 0 176 176 0 1 0 352 0zm-112 0a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zm-176 0a112 112 0 1 1 224 0 112 112 0 1 1 -224 0z',\n\t\twidth: 576,\n\t},\n\tlock: {\n\t\taliases: ['locked', 'password', 'secure', 'private'],\n\t\tcategories: ['actions', 'security', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M112 96l0 64 160 0 0-64c0-44.2-35.8-80-80-80s-80 35.8-80 80zM64 160l0-64C64 25.3 121.3-32 192-32S320 25.3 320 96l0 64c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64zm208 48l-160 0 0 0-48 0 0 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-224c0-8.8-7.2-16-16-16l0 0-48 0 0 0z',\n\t\twidth: 384,\n\t},\n\tlockOpen: {\n\t\taliases: ['unlocked', 'unsecure', 'public'],\n\t\tcategories: ['actions', 'security', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M368 96c0-44.2 35.8-80 80-80s80 35.8 80 80l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-70.7-57.3-128-128-128S320 25.3 320 96l0 64-160 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64l-48 0 0-64zM320 208l0 0 48 0 0 0 48 0c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-256 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l160 0z',\n\t\twidth: 576,\n\t},\n\tmagnifyingGlass: {\n\t\taliases: ['search', 'find', 'lookup'],\n\t\tcategories: ['actions', 'navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M368 208a160 160 0 1 0 -320 0 160 160 0 1 0 320 0zM337.1 371.1C301.7 399.2 256.8 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208c0 48.8-16.8 93.7-44.9 129.1L505 471c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L337.1 371.1z',\n\t\twidth: 512,\n\t},\n\tmedal: {\n\t\taliases: ['award', 'achievement', 'prize'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M21.6 64.2L96.4 213.8c-20.2 30.4-32 67-32 106.2 0 106 86 192 192 192s192-86 192-192c0-39.3-11.8-75.8-32-106.2L491 64.2c11.9-23.7 2.2-52.5-21.5-64.4L383.8-43.1c-23.1-11.6-51.2-2.7-63.6 19.9l-63.8 117-63.8-117C180.1-45.8 152-54.7 128.9-43.1L43-.2C19.3 11.7 9.7 40.5 21.6 64.2zm269.1 66.9L362.3-.2 448.1 42.7 382 174.9c-25.5-22.1-56.8-37.6-91.3-43.8zm-68.8 0c-34.5 6.2-65.9 21.7-91.3 43.8L64.5 42.7 150.3-.2 221.9 131.1zM112.3 320a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm174.8-49.5l-22.4-45.4c-3.4-7-13.3-7-16.8 0l-22.4 45.4c-1.4 2.8-4 4.7-7 5.1l-50.1 7.3c-7.7 1.1-10.7 10.5-5.2 16l36.3 35.4c2.2 2.1 3.2 5.2 2.7 8.3l-8.6 49.9c-1.3 7.6 6.7 13.5 13.6 9.9L252 378.7c2.7-1.4 6-1.4 8.7 0l44.8 23.6c6.9 3.6 14.9-2.2 13.6-9.9l-8.6-49.9c-.5-3 .5-6.1 2.7-8.3l36.3-35.4c5.5-5.4 2.5-14.8-5.2-16l-50.1-7.3c-3-.4-5.7-2.4-7-5.1z',\n\t\twidth: 512,\n\t},\n\tmemo: {\n\t\taliases: ['note', 'sticky note'],\n\t\tcategories: ['documents'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16L64 48zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm120 64l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 96l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 96l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z',\n\t\twidth: 384,\n\t},\n\tmessages: {\n\t\taliases: ['chat', 'conversation', 'discuss'],\n\t\tcategories: ['communication', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M48 40l0 192c0 13.3 10.7 24 24 24l32 0c13.3 0 24 10.7 24 24l0 31.3 54.6-42c11.2-8.6 24.9-13.3 39-13.3l90.4 0c13.3 0 24-10.7 24-24l0-192c0-13.3-10.7-24-24-24L72 16C58.7 16 48 26.7 48 40zM72-32l240 0c39.8 0 72 32.2 72 72l0 192c0 39.8-32.2 72-72 72l-90.4 0c-3.5 0-7 1.2-9.8 3.3L118.6 379c-7.2 5.6-17 6.5-25.2 2.5S80 369.1 80 360l0-56-8 0c-39.8 0-72-32.2-72-72L0 40C0 .2 32.2-32 72-32zM240 352l0 40c0 13.3 10.7 24 24 24l90.4 0c14.1 0 27.8 4.7 39 13.3l54.6 42 0-31.3c0-13.3 10.7-24 24-24l32 0c13.3 0 24-10.7 24-24l0-192c0-13.3-10.7-24-24-24l-72 0 0-48 72 0c39.8 0 72 32.2 72 72l0 192c0 39.8-32.2 72-72 72l-8 0 0 56c0 9.1-5.2 17.5-13.4 21.5s-18 3.1-25.2-2.5l-93.2-71.7c-2.8-2.2-6.2-3.3-9.8-3.3L264 464c-39.8 0-72-32.2-72-72l0-8.9 40.5-31.1 7.5 0z',\n\t\twidth: 576,\n\t},\n\tminus: {\n\t\taliases: ['remove', 'subtract', 'collapse'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M0 256c0-13.3 10.7-24 24-24l400 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 280c-13.3 0-24-10.7-24-24z',\n\t\twidth: 448,\n\t},\n\tmoon: {\n\t\taliases: ['dark mode', 'night'],\n\t\tcategories: ['objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M239.3 48.7c-107.1 8.5-191.3 98.1-191.3 207.3 0 114.9 93.1 208 208 208 33.3 0 64.7-7.8 92.6-21.7-103.4-23.4-180.6-115.8-180.6-226.3 0-65.8 27.4-125.1 71.3-167.3zM0 256c0-141.4 114.6-256 256-256 19.4 0 38.4 2.2 56.7 6.3 9.9 2.2 17.3 10.5 18.5 20.5s-4 19.8-13.1 24.4c-60.6 30.2-102.1 92.7-102.1 164.8 0 101.6 82.4 184 184 184 5 0 9.9-.2 14.8-.6 10.1-.8 19.6 4.8 23.8 14.1s2 20.1-5.3 27.1C387.3 484.8 324.8 512 256 512 114.6 512 0 397.4 0 256z',\n\t\twidth: 512,\n\t},\n\tnextJs: {\n\t\taliases: ['next.js', 'vercel'],\n\t\tcategories: ['brands', 'custom'],\n\t\theight: 180,\n\t\tsvgPathData: '',\n\t\twidth: 180,\n\t},\n\tpaperclip: {\n\t\taliases: ['attachment', 'attach'],\n\t\tcategories: ['actions', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M241.4 18.4c53.1-53.1 139.2-53.1 192.3 0s53.1 139.2 0 192.3L264 380.5c-34.4 34.4-90.1 34.4-124.5 0s-34.4-90.1 0-124.5L298 97.6c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L173.5 289.9c-15.6 15.6-15.6 40.9 0 56.6s40.9 15.6 56.6 0L399.8 176.8c34.4-34.4 34.4-90.1 0-124.5s-90.1-34.4-124.4 0l-181 181c-53.1 53.1-53.1 139.2 0 192.3s139.2 53.1 192.3 0L428.1 284.3c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L320.6 459.6c-71.9 71.9-188.4 71.9-260.2 0s-71.9-188.4 0-260.2l181-181z',\n\t\twidth: 512,\n\t},\n\tpaperPlane: {\n\t\taliases: ['send', 'submit'],\n\t\tcategories: ['communication', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M290.5 287.7L491.4 86.9 359 456.3 290.5 287.7zM457.4 53L256.6 253.8 88 185.3 457.4 53zM38.1 216.8l205.8 83.6 83.6 205.8c5.3 13.1 18.1 21.7 32.3 21.7 14.7 0 27.8-9.2 32.8-23.1L570.6 8c3.5-9.8 1-20.6-6.3-28s-18.2-9.8-28-6.3L39.4 151.7c-13.9 5-23.1 18.1-23.1 32.8 0 14.2 8.6 27 21.7 32.3z',\n\t\twidth: 576,\n\t},\n\tpen: {\n\t\taliases: ['edit', 'write', 'modify'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M36.4 353.8c4.1-14.6 11.8-27.9 22.6-38.7l294-294C366.4 7.6 384.8 0 404 0s37.6 7.6 51.1 21.2l35.7 35.7C504.4 70.4 512 88.8 512 108s-7.6 37.6-21.2 51.1l-294 294c-10.7 10.7-24.1 18.5-38.7 22.6L30.4 511.1c-8.3 2.3-17.3 0-23.4-6.2s-8.5-15.1-6.2-23.4L36.4 353.8zM386.8 55.1l-52.9 52.9 70.1 70.1 52.9-52.9c4.6-4.6 7.1-10.7 7.1-17.2s-2.6-12.6-7.1-17.2L421.2 55.1C416.6 50.6 410.4 48 404 48s-12.6 2.6-17.2 7.1zM300 141.9L92.9 349.1c-4.9 4.9-8.4 10.9-10.3 17.6l-24.1 86.9 86.9-24.1c6.6-1.8 12.7-5.4 17.6-10.3L370.1 212 300 141.9z',\n\t\twidth: 512,\n\t},\n\tpenField: {\n\t\taliases: ['edit field', 'inline edit'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M569.3 27.1c-9.4-9.4-24.7-9.4-34.1 .1L514.4 48.4 560.1 94.1 581.2 73c9.4-9.4 9.4-24.6 0-33.9L569.3 27.1zM360 204.8c-3.2 3.3-5.5 7.4-6.4 11.9l-10.4 49.7 49.5-10.4c4.6-1 8.7-3.2 12-6.5L526.2 128 480.7 82.5 360 204.8zM501.1-6.5c28.1-28.4 73.9-28.6 102.2-.3L615.2 5.1c28.1 28.1 28.1 73.7 0 101.8L438.7 283.5c-9.9 9.9-22.4 16.7-36.1 19.6L317.1 321c-7.9 1.7-16.2-.8-21.9-6.5s-8.2-14-6.5-21.9l18-85.7c2.8-13.5 9.5-26 19.2-35.8L501.1-6.5zM64.1 168c0-39.8 32.2-72 72-72l128 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-128 0c-13.3 0-24 10.7-24 24l0 240c0 13.3 10.7 24 24 24l368 0c13.3 0 24-10.7 24-24l0-128c0-13.3 10.7-24 24-24s24 10.7 24 24l0 128c0 39.8-32.2 72-72 72l-368 0c-39.8 0-72-32.2-72-72l0-240zm112 120a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z',\n\t\twidth: 640,\n\t},\n\tphone: {\n\t\taliases: ['call', 'telephone', 'contact'],\n\t\tcategories: ['communication'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M112.8 10.9c27.3-9.1 57 3.9 68.9 30l39.7 87.3c10.6 23.4 4 51-16 67.1l-24.2 19.3c25.5 50 65.5 91.4 114.4 118.8l21.2-26.6c16.1-20.1 43.7-26.7 67.1-16l87.3 39.7c26.2 11.9 39.1 41.6 30 68.9-20.7 62.3-83.7 116.2-160.9 102.6-173.7-30.6-299.6-156.5-330.2-330.2-13.6-77.2 40.4-140.1 102.6-160.9zm25.2 49.9c-1.7-3.8-6-5.7-10-4.4-45.2 15.1-79.1 58.6-70.5 107 27.1 153.8 137.4 264.2 291.2 291.3 48.4 8.5 91.9-25.3 107-70.5 1.3-4-.6-8.3-4.4-10L364 334.4c-3.4-1.5-7.4-.6-9.7 2.3l-33.5 41.9c-7 8.7-19 11.5-29 6.7-72.5-34.4-130.5-94.3-162.4-168.2-4.3-9.9-1.4-21.5 7-28.2l38.9-31.1c2.9-2.3 3.9-6.3 2.3-9.7L137.9 60.7z',\n\t\twidth: 512,\n\t},\n\tplay: {\n\t\taliases: ['start', 'video', 'begin'],\n\t\tcategories: ['actions', 'media'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M51.6 37.6C39.5 44.8 32 57.9 32 72l0 368c0 14.1 7.5 27.2 19.6 34.4s27.2 7.5 39.6 .7l336-184c12.8-7 20.8-20.5 20.8-35.1s-8-28.1-20.8-35.1l-336-184c-12.4-6.8-27.4-6.5-39.6 .7zM80 426.5L80 85.5 391.3 256 80 426.5z',\n\t\twidth: 448,\n\t},\n\tplus: {\n\t\taliases: ['add', 'create', 'new'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M248 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 176-176 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0 0 176c0 13.3 10.7 24 24 24s24-10.7 24-24l0-176 176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0 0-176z',\n\t\twidth: 448,\n\t},\n\tquestion: {\n\t\taliases: ['help', 'unknown'],\n\t\tcategories: ['status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M48 160C48 98.1 98.1 48 160 48S272 98.1 272 160c0 48.2-30.5 89.4-73.3 105.1-29.4 10.8-62.7 37.9-62.7 78.9l0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16c0-12.1 11-26.3 31.3-33.8 61.1-22.5 104.7-81.2 104.7-150.2 0-88.4-71.6-160-160-160S0 71.6 0 160l0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8zM160 512c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z',\n\t\twidth: 320,\n\t},\n\tquotesLeft: {\n\t\taliases: ['quote', 'blockquote'],\n\t\tcategories: ['custom', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M232.896 226.425C228.749 226.425 225.964 231.118 227.632 235.301L286.746 413.714L116.988 224.541C113.406 220.543 102.507 208.132 99.9534 203.926L11.645 108.127C9.0914 103.92 11.8346 98.2854 16.4278 98.2854H227.018C227.811 98.2854 228.592 98.3754 229.349 98.5481C229.87 98.3779 230.428 98.2854 231.017 98.2854H441.605C446.22 98.2854 450.387 101.323 452.187 106.003L495.176 217.627C496.786 221.801 494.005 226.425 489.888 226.425H447.484C443.338 226.425 440.551 231.118 442.221 235.301L501.333 413.714L331.576 224.541C327.995 220.543 317.095 208.132 314.542 203.926L247.159 130.829L280.589 217.627C282.198 221.801 279.418 226.425 275.3 226.425H232.896Z',\n\t\twidth: 512,\n\t},\n\tquotesRight: {\n\t\taliases: ['quote', 'blockquote'],\n\t\tcategories: ['custom', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M289.771 226.425C293.918 226.425 296.703 231.118 295.035 235.301L235.921 413.714L405.679 224.541C409.261 220.543 420.16 208.132 422.713 203.926L511.022 108.127C513.575 103.92 510.832 98.2854 506.239 98.2854H295.649C294.855 98.2854 294.075 98.3754 293.317 98.5481C292.797 98.3779 292.239 98.2854 291.65 98.2854H81.0613C76.4469 98.2854 72.2795 101.323 70.48 106.003L27.4902 217.627C25.8806 221.801 28.6614 226.425 32.7787 226.425H75.183C79.3291 226.425 82.1152 231.118 80.4459 235.301L21.3334 413.714L191.09 224.541C194.672 220.543 205.571 208.132 208.125 203.926L275.507 130.829L242.078 217.627C240.468 221.801 243.249 226.425 247.366 226.425H289.771Z',\n\t\twidth: 512,\n\t},\n\trectangleList: {\n\t\taliases: ['list view', 'list'],\n\t\tcategories: ['documents', 'navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 112c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L64 112zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM160 320a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm104-56l160 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-160 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 128l160 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-160 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z',\n\t\twidth: 512,\n\t},\n\treply: {\n\t\taliases: ['respond', 'answer'],\n\t\tcategories: ['actions', 'communication'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M176 128l0 24c0 13.3 10.7 24 24 24l136 0c70.7 0 128 57.3 128 128 0 15.3-1.9 29.1-5.2 41.5-16.8-60.9-72.6-105.5-138.8-105.5l-120 0c-13.3 0-24 10.7-24 24L176 329.4 54.6 208 176 86.6 176 128zm80 160l64 0c53 0 96 43 96 96 0 17.3-4.2 30.5-9.5 40.2-1.6 2.9-3.3 5.5-5 7.9-2.6 3.5-5.3 6.4-7.7 8.6-.5 .5-1 .9-1.4 1.4-4.8 4.9-8.3 11.3-8.3 18.1 0 10.9 8.8 19.7 19.7 19.7 2.8 0 5.6-.6 8.1-1.9 2.6-1.4 6.3-3.5 10.8-6.5 2.7-1.8 5.7-3.8 8.9-6.2 3.7-2.7 7.6-5.8 11.7-9.3 30.2-25.8 68.7-74.1 68.7-152.1 0-97.2-78.8-176-176-176l-112 0 0-80c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c9.2 9.2 22.9 11.9 34.9 6.9S224 380.9 224 368l0-80 32 0z',\n\t\twidth: 512,\n\t},\n\trobot: {\n\t\taliases: ['bot', 'automation', 'ai'],\n\t\tcategories: ['development', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M344-8c0-13.3-10.7-24-24-24S296-21.3 296-8l0 72-104 0c-53 0-96 43-96 96l0 224c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-224c0-53-43-96-96-96l-104 0 0-72zM320 112l128 0c26.5 0 48 21.5 48 48l0 224c0 26.5-21.5 48-48 48l-256 0c-26.5 0-48-21.5-48-48l0-224c0-26.5 21.5-48 48-48l128 0zM176 360c0 13.3 10.7 24 24 24l32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0c-13.3 0-24 10.7-24 24zm112 0c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0c-13.3 0-24 10.7-24 24zm96 0c0 13.3 10.7 24 24 24l32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0c-13.3 0-24 10.7-24 24zM240 288a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm208-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM48 216c0-13.3-10.7-24-24-24S0 202.7 0 216L0 328c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112zm568-24c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24z',\n\t\twidth: 640,\n\t},\n\trocketLaunch: {\n\t\taliases: ['launch', 'deploy', 'go live'],\n\t\tcategories: ['actions', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M511.9 19.3c-1.9-9.5-9.3-16.9-18.8-18.8-45-9-114-14.7-180.7 19.7-40 20.7-77.3 54.8-107.7 107.8l-81.1 0c-16.9 0-32.5 8.8-41.2 23.3L29.5 239.5C16.7 260.9 32.1 288 56.9 288l103.5 0c35.3 0 64 28.7 64 64l0 103.5c0 24.9 27.1 40.2 48.5 27.4L361.1 430c14.5-8.7 23.3-24.3 23.3-41.2l0-81.1c53.1-30.4 87.2-67.7 107.8-107.7 34.4-66.7 28.7-135.7 19.7-180.7zM336.4 331.1l0 57.8-64 38.4 0-74.5c23.3-6.4 44.6-13.6 64-21.6zm-74-25.4c-11.2-24.6-31-44.5-55.7-55.7 30.6-109.9 79.9-162.5 127.7-187.2 45.9-23.7 94.6-23.8 133.2-18.1 5.8 38.6 5.6 87.3-18.1 133.2-24.7 47.8-77.3 97.1-187.2 127.7zM159.7 240l-74.5 0 38.4-64 57.8 0c-8 19.4-15.2 40.7-21.6 64zm248.7-96a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zM152.8 473.6c31.5-31.5 31.5-82.5 0-114s-82.5-31.5-114 0c-31.3 31.3-37.5 92-38.3 126.4-.4 14.6 11.2 26.2 25.9 25.9 34.5-.8 95.1-7 126.4-38.3zm-40.6-32c-10.1 10.1-28.5 13-41.3 13.7-8 .5-14.3-5.9-13.9-13.9 .7-12.8 3.7-31.2 13.7-41.3 11.4-11.4 30-11.4 41.4 0s11.4 30 0 41.4z',\n\t\twidth: 512,\n\t},\n\trotate: {\n\t\taliases: ['refresh', 'reload', 'sync'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M512.2 24c0-9.7-5.8-18.5-14.8-22.2S478.1 .2 471.2 7L419.4 58.8C318.8-24.7 169.3-19.3 75.1 75 31.9 118.2 7.3 173.1 1.5 229.5 .1 242.7 9.7 254.5 22.9 255.9s25-8.2 26.3-21.4c4.7-45.9 24.7-90.4 59.8-125.5 75.5-75.5 194.6-80.8 276.2-16L335.1 143c-6.9 6.9-8.9 17.2-5.2 26.2S342.4 184 352.1 184l136.1 0c13.3 0 24-10.7 24-24l0-136zm-75.1 85l27.1-27.1 0 54.1-54.1 0 27-27zm73.6 173.6c1.4-13.2-8.2-25-21.4-26.3s-25 8.2-26.3 21.4c-4.7 45.8-24.7 90.4-59.8 125.5-75.5 75.5-194.6 80.8-276.2 16L177.1 369c6.9-6.9 8.9-17.2 5.2-26.2S169.8 328 160.1 328L24 328c-13.3 0-24 10.7-24 24L0 488c0 9.7 5.8 18.5 14.8 22.2S34.1 511.8 41 505l51.8-51.8c100.6 83.5 250.1 78.1 344.3-16.2 43.2-43.2 67.8-98.1 73.6-154.5zM48 430.1l0-54.1 54.1 0-54.1 54.1z',\n\t\twidth: 512,\n\t},\n\trotateClock: {\n\t\taliases: ['history', 'recent', 'time machine'],\n\t\tcategories: ['actions', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M48 106.7L48 56c0-13.3-10.7-24-24-24S0 42.7 0 56L0 168c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-55.3 0c37-57.8 101.7-96 175.3-96 114.9 0 208 93.1 208 208S370.9 464 256 464c-42.5 0-81.9-12.7-114.7-34.5-11-7.3-25.9-4.3-33.3 6.7s-4.3 25.9 6.7 33.3c40.5 26.8 89.1 42.5 141.3 42.5 141.4 0 256-114.6 256-256S397.4 0 256 0C170.3 0 94.4 42.1 48 106.7zM256 128c-13.3 0-24 10.7-24 24l0 104c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65 0-94.1c0-13.3-10.7-24-24-24z',\n\t\twidth: 512,\n\t},\n\trotateLeft: {\n\t\taliases: ['undo', 'revert'],\n\t\tcategories: ['actions', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M14.8 1.8C23.8-1.9 34.1 .2 41 7L92.8 58.8c100.6-83.5 250.1-78.1 344.3 16.2 100 100 100 262.1 0 362s-262.1 100-362 0c-14.9-14.9-27.6-31.2-38.1-48.5-6.9-11.3-3.2-26.1 8.1-33s26.1-3.2 33 8.1c8.5 14 18.8 27.3 31 39.4 81.2 81.2 212.9 81.2 294.2 0s81.2-212.9 0-294.2c-75.5-75.5-194.6-80.8-276.2-16L177.1 143c6.9 6.9 8.9 17.2 5.2 26.2S169.8 184 160.1 184L24 184c-13.3 0-24-10.7-24-24L0 24C0 14.3 5.8 5.5 14.8 1.8zM48 81.9l0 54.1 54.1 0-54.1-54.1z',\n\t\twidth: 512,\n\t},\n\trotateRight: {\n\t\taliases: ['redo', 'repeat'],\n\t\tcategories: ['actions', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M497.4 1.8c-9-3.7-19.3-1.7-26.2 5.2L419.4 58.8C318.8-24.7 169.3-19.3 75.1 75-24.9 175-24.9 337 75.1 437s262.1 100 362 0c14.9-14.9 27.6-31.2 38.1-48.5 6.9-11.3 3.2-26.1-8.1-33s-26.1-3.2-33 8.1c-8.5 14-18.8 27.3-31 39.4-81.2 81.2-212.9 81.2-294.2 0s-81.2-212.9 0-294.2c75.5-75.5 194.6-80.8 276.2-16L335.1 143c-6.9 6.9-8.9 17.2-5.2 26.2S342.4 184 352.1 184l136.1 0c13.3 0 24-10.7 24-24l0-136c0-9.7-5.8-18.5-14.8-22.2zM464.2 81.9l0 54.1-54.1 0 54.1-54.1z',\n\t\twidth: 512,\n\t},\n\trss: {\n\t\taliases: ['feed', 'subscribe'],\n\t\tcategories: ['communication'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M0 64c0-17.7 14.3-32 32-32 229.8 0 416 186.2 416 416 0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96 14.3 96 0 81.7 0 64zM0 416a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 160c159.1 0 288 128.9 288 288 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224-17.7 0-32-14.3-32-32s14.3-32 32-32z',\n\t\twidth: 448,\n\t},\n\tsave: {\n\t\taliases: ['floppy disk', 'persist', 'store'],\n\t\tcategories: ['actions', 'development'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-242.7c0-4.2-1.7-8.3-4.7-11.3L320 86.6 320 176c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-96-32 0zm80 0l0 80 128 0 0-80-128 0zM0 96C0 60.7 28.7 32 64 32l242.7 0c17 0 33.3 6.7 45.3 18.7L429.3 128c12 12 18.7 28.3 18.7 45.3L448 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM160 320a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z',\n\t\twidth: 448,\n\t},\n\tserver: {\n\t\taliases: ['hosting', 'backend', 'infrastructure'],\n\t\tcategories: ['development'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 80c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64L64 224c-35.3 0-64-28.7-64-64L0 96zm264 8a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 336c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16L64 336zM0 352c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-64zm240 32a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm104-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z',\n\t\twidth: 448,\n\t},\n\tshareNodes: {\n\t\taliases: ['share', 'distribute', 'network'],\n\t\tcategories: ['actions', 'communication'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M432 96a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm48 0c0 53-43 96-96 96-27.4 0-52.1-11.5-69.6-29.9L188.9 231.8c2 7.7 3.1 15.8 3.1 24.2s-1.1 16.5-3.1 24.2l125.5 69.7c17.5-18.4 42.2-29.9 69.6-29.9 53 0 96 43 96 96s-43 96-96 96-96-43-96-96c0-8.3 1.1-16.5 3.1-24.2L165.6 322.1C148.1 340.5 123.4 352 96 352 43 352 0 309 0 256s43-96 96-96c27.4 0 52.1 11.5 69.6 29.9l125.5-69.7c-2-7.7-3.1-15.8-3.1-24.2 0-53 43-96 96-96s96 43 96 96zM144 256a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM384 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96z',\n\t\twidth: 512,\n\t},\n\tshield: {\n\t\taliases: ['security', 'protection', 'safe'],\n\t\tcategories: ['objects', 'security', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M256 49.4L73.1 127c-5.9 2.5-9.1 7.8-9 12.8 .5 91.4 38.4 249.3 186.4 320.1 3.6 1.7 7.8 1.7 11.3 0 148-70.8 185.9-228.7 186.3-320.1 0-5-3.1-10.2-9-12.8L256 49.4zM269.4 2.9L457.8 82.8c22 9.3 38.4 31 38.3 57.2-.5 99.2-41.3 280.7-213.6 363.2-16.7 8-36.1 8-52.8 0-172.4-82.5-213.2-264-213.6-363.2-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.9 1 251.4 0 256 0s9.2 1 13.4 2.9z',\n\t\twidth: 512,\n\t},\n\tshieldQuartered: {\n\t\taliases: ['security sections', 'protection'],\n\t\tcategories: ['objects', 'security'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M73.1 127c-5.9 2.5-9.1 7.8-9 12.8 .1 17.9 1.6 38.4 5.1 60.3l162.9 0 0-140.4-159 67.4zm6.7 121c20.9 73.9 65.9 153.7 152.3 202.3l0-202.3-152.3 0zM280 248l0 202.4C366.5 401.8 411.4 322 432.3 248L280 248zm162.9-48c3.5-21.9 5-42.3 5.1-60.3 0-5-3.1-10.2-9-12.8l-159-67.4 0 140.4 162.9 0zM269.4 2.9L457.8 82.8c22 9.3 38.4 31 38.3 57.2-.5 99.2-41.3 280.7-213.6 363.2-16.7 8-36.1 8-52.8 0-172.4-82.5-213.2-264-213.6-363.2-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.9 1 251.4 0 256 0s9.2 1 13.4 2.9z',\n\t\twidth: 512,\n\t},\n\tshovel: {\n\t\taliases: ['dig', 'build'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M431-17c9.4-9.4 24.6-9.4 33.9 0l96 96c9.4 9.4 9.4 24.6 0 33.9l-44.1 44.1c-17.2 17.2-40.6 26.9-65 26.9-16.7 0-32.3-4.4-45.8-12.2L273 305 318.1 350.1c18.7 18.7 18.7 49.1 0 67.9l-84.8 84.8C206.8 529.2 171 544 133.7 544 59.9 544 0 484.1 0 410.3 0 373 14.8 337.2 41.2 310.8l84.8-84.8c18.7-18.7 49.1-18.7 67.9 0L239 271 372.2 137.9c-7.8-13.5-12.2-29.1-12.2-45.8 0-24.4 9.7-47.7 26.9-65L431-17zm17 50.9L420.9 61.1c-8.2 8.2-12.9 19.4-12.9 31 0 24.2 19.6 43.9 43.9 43.9 11.6 0 22.8-4.6 31-12.9L510.1 96 448 33.9zM75.2 344.7c-17.4 17.4-27.2 41-27.2 65.6 0 47.3 38.4 85.7 85.7 85.7 24.6 0 48.2-9.8 65.6-27.2L284.1 384 160 259.9 75.2 344.7z',\n\t\twidth: 576,\n\t},\n\tsiren: {\n\t\taliases: ['emergency', 'alert', 'alarm'],\n\t\tcategories: ['objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M147.5 320l12.6-138.2c1.2-13.2 12.9-22.9 26.1-21.7s22.9 12.9 21.7 26.1L195.7 320 358.8 320 328 93.8c-1.1-7.9-7.8-13.8-15.9-13.8L135.9 80c-8 0-14.8 5.9-15.9 13.8L89.2 320 147.5 320zm228-232.6l31.8 233.2c23 3.5 40.6 23.4 40.6 47.4l0 64c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-64c0-24 17.6-43.9 40.7-47.4L72.5 87.4C76.8 55.6 103.9 32 135.9 32l176.3 0c32 0 59.1 23.6 63.4 55.4zM400 368l-352 0 0 64 352 0 0-64z',\n\t\twidth: 448,\n\t},\n\tsirenOn: {\n\t\taliases: ['emergency active', 'alert active', 'alarm on'],\n\t\tcategories: ['objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M69.3 36c-11-7.4-25.9-4.4-33.3 6.7S31.7 68.6 42.7 76l48 32c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3l-48-32zM597.3 76c11-7.4 14-22.3 6.7-33.3s-22.3-14-33.3-6.7l-48 32c-11 7.4-14 22.3-6.7 33.3s22.3 14 33.3 6.7l48-32zM24 192c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0zm528 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0zM185.2 320L216 93.8c1.1-7.9 7.9-13.8 15.9-13.8l176.3 0c8 0 14.8 5.9 15.9 13.8l30.8 226.2-163.1 0 12.2-133.8c1.2-13.2-8.5-24.9-21.7-26.1s-24.9 8.5-26.1 21.7l-12.6 138.2-58.4 0zm318.2 .6L471.5 87.4C467.2 55.6 440.1 32 408.1 32L231.9 32c-32 0-59.1 23.6-63.4 55.4L136.7 320.6C113.6 324.1 96 344 96 368l0 64c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-64c0-24-17.6-43.9-40.6-47.4zM144 368l352 0 0 64-352 0 0-64z',\n\t\twidth: 640,\n\t},\n\tsitemap: {\n\t\taliases: ['structure', 'hierarchy', 'tree'],\n\t\tcategories: ['development', 'navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M240 80l32 0 0 32-32 0 0-32zM224 32c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l8 0 0 64-120 0c-39.8 0-72 32.2-72 72l0 56-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-56c0-13.3 10.7-24 24-24l120 0 0 80-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-80 120 0c13.3 0 24 10.7 24 24l0 56-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-56c0-39.8-32.2-72-72-72l-120 0 0-64 8 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0zM48 432l0-32 32 0 0 32-32 0zm192 0l0-32 32 0 0 32-32 0zm192 0l0-32 32 0 0 32-32 0z',\n\t\twidth: 512,\n\t},\n\tslack: {\n\t\taliases: [],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M94.1 315.1c0 25.9-21.2 47.1-47.1 47.1S0 341 0 315.1 21.2 268 47.1 268l47.1 0 0 47.1zm23.7 0c0-25.9 21.2-47.1 47.1-47.1S212 289.2 212 315.1l0 117.8c0 25.9-21.2 47.1-47.1 47.1s-47.1-21.2-47.1-47.1l0-117.8zm47.1-189c-25.9 0-47.1-21.2-47.1-47.1S139 32 164.9 32 212 53.2 212 79.1l0 47.1-47.1 0zm0 23.7c25.9 0 47.1 21.2 47.1 47.1S190.8 244 164.9 244L47.1 244C21.2 244 0 222.8 0 196.9s21.2-47.1 47.1-47.1l117.8 0zm189 47.1c0-25.9 21.2-47.1 47.1-47.1S448 171 448 196.9 426.8 244 400.9 244l-47.1 0 0-47.1zm-23.7 0c0 25.9-21.2 47.1-47.1 47.1S236 222.8 236 196.9l0-117.8C236 53.2 257.2 32 283.1 32s47.1 21.2 47.1 47.1l0 117.8zm-47.1 189c25.9 0 47.1 21.2 47.1 47.1S309 480 283.1 480 236 458.8 236 432.9l0-47.1 47.1 0zm0-23.7c-25.9 0-47.1-21.2-47.1-47.1S257.2 268 283.1 268l117.8 0c25.9 0 47.1 21.2 47.1 47.1s-21.2 47.1-47.1 47.1l-117.8 0z',\n\t\twidth: 448,\n\t},\n\tslashForward: {\n\t\taliases: ['divider', 'separator'],\n\t\tcategories: ['development', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M308.1 3.3c11.4 6.7 15.3 21.4 8.6 32.8l-272 464c-6.7 11.4-21.4 15.3-32.8 8.6s-15.3-21.4-8.6-32.8l272-464C282 .4 296.7-3.4 308.1 3.3z',\n\t\twidth: 320,\n\t},\n\tslidersSimple: {\n\t\taliases: ['controls', 'adjustments', 'tune'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M80 400a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm76.3-56c-10.2-32.5-40.5-56-76.3-56-44.2 0-80 35.8-80 80s35.8 80 80 80c35.8 0 66.1-23.5 76.3-56L488 392c13.3 0 24-10.7 24-24s-10.7-24-24-24l-331.7 0zM464 144a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM355.7 120L24 120c-13.3 0-24 10.7-24 24s10.7 24 24 24l331.7 0c10.2 32.5 40.5 56 76.3 56 44.2 0 80-35.8 80-80s-35.8-80-80-80c-35.8 0-66.1 23.5-76.3 56z',\n\t\twidth: 512,\n\t},\n\tsnowflake: {\n\t\taliases: ['freeze', 'frozen', 'cold'],\n\t\tcategories: ['objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M280.1-8c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 78.1-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l57 57 0 76.5-66.2-38.2-20.9-77.8c-3.4-12.8-16.6-20.4-29.4-17S95.2 98 98.7 110.8l8.4 31.5-67.6-39C28 96.6 13.3 100.5 6.7 112S4 138.2 15.5 144.8l67.6 39-31.5 8.4c-12.8 3.4-20.4 16.6-17 29.4s16.6 20.4 29.4 17l77.8-20.9 66.2 38.2-66.2 38.2-77.8-20.9c-12.8-3.4-26 4.2-29.4 17s4.2 26 17 29.4l31.5 8.4-67.6 39C4 373.8 .1 388.5 6.7 400s21.3 15.4 32.8 8.8l67.6-39-8.4 31.5c-3.4 12.8 4.2 26 17 29.4s26-4.2 29.4-17l20.9-77.8 66.2-38.2 0 76.5-57 57c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l23-23 0 78.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-78.1 23 23c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-57-57 0-76.5 66.2 38.2 20.9 77.8c3.4 12.8 16.6 20.4 29.4 17s20.4-16.6 17-29.4l-8.4-31.5 67.6 39c11.5 6.6 26.2 2.7 32.8-8.8s2.7-26.2-8.8-32.8l-67.6-39 31.5-8.4c12.8-3.4 20.4-16.6 17-29.4s-16.6-20.4-29.4-17l-77.8 20.9-66.2-38.2 66.2-38.2 77.8 20.9c12.8 3.4 26-4.2 29.4-17s-4.2-26-17-29.4l-31.5-8.4 67.6-39c11.5-6.6 15.4-21.3 8.8-32.8s-21.3-15.4-32.8-8.8l-67.6 39 8.4-31.5c3.4-12.8-4.2-26-17-29.4s-26 4.2-29.4 17l-20.9 77.8-66.2 38.2 0-76.5 57-57c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23 0-78.1z',\n\t\twidth: 512,\n\t},\n\tsparkles: {\n\t\taliases: ['ai', 'magic', 'new', 'highlight'],\n\t\tcategories: ['actions', 'development'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M391.5 53.2c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L448 96 469.2 152.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L512 96 568.5 74.8c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L512 32 490.8-24.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L448 32 391.5 53.2zM167.9 208.5l24.1-52.1 24.1 52.1c4.8 10.4 13.1 18.7 23.5 23.5l52.1 24.1-52.1 24.1c-10.4 4.8-18.7 13.1-23.5 23.5l-24.1 52.1-24.1-52.1c-4.8-10.4-13.1-18.7-23.5-23.5L92.3 256 144.5 231.9c10.4-4.8 18.7-13.1 23.5-23.5zM165.6 99.1l-41.2 89.3-89.3 41.2-.6 .3c-3.9 1.8-12.3 5.7-25.2 11.6-5.7 2.6-9.3 8.3-9.3 14.5s3.6 11.9 9.3 14.5c12.9 5.9 21.2 9.8 25.2 11.6l.6 .3 89.3 41.2 41.2 89.3 .3 .6c1.8 3.9 5.7 12.3 11.6 25.2 2.6 5.7 8.3 9.3 14.5 9.3s11.9-3.6 14.5-9.3c14.4-31.1 15.1-32.7 53.1-115l89.3-41.2 .6-.3c3.9-1.8 12.3-5.7 25.2-11.6 5.7-2.6 9.3-8.3 9.3-14.5s-3.6-11.9-9.3-14.5c-31.1-14.4-32.7-15.1-115-53.1l-41.2-89.3-.3-.6c-1.8-3.9-5.7-12.3-11.6-25.2-2.6-5.7-8.3-9.3-14.5-9.3s-11.9 3.6-14.5 9.3c-13.8 29.8-11.5 25-11.9 25.8zM416 416l-56.5 21.2c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 480 437.2 536.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 480 536.5 458.8c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 416 458.8 359.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 416z',\n\t\twidth: 576,\n\t},\n\tsquareCheck: {\n\t\taliases: ['checkbox', 'checked', 'selected'],\n\t\tcategories: ['actions', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zm230.7 89.9c7.8-10.7 22.8-13.1 33.5-5.3 10.7 7.8 13.1 22.8 5.3 33.5L211.4 366.1c-4.1 5.7-10.5 9.3-17.5 9.8-7 .5-13.9-2-18.8-6.9l-55.9-55.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l36 36 105.6-145.2z',\n\t\twidth: 448,\n\t},\n\tsquareCode: {\n\t\taliases: ['embed', 'code block'],\n\t\tcategories: ['development'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M384 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM255 175c-9.4 9.4-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9l-64-64c-9.4-9.4-24.6-9.4-33.9 0zM193 209c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L95 239c-9.4 9.4-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47z',\n\t\twidth: 448,\n\t},\n\tsquareMinus: {\n\t\taliases: ['collapse', 'remove'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM136 232l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z',\n\t\twidth: 448,\n\t},\n\tsquarePen: {\n\t\taliases: ['edit', 'compose', 'write'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm325.8 43.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-23.8 23.8-71-71 23.8-23.8c15.6-15.6 40.9-15.6 56.6 0zM119.9 289l91.5-91.6 71 71-91.6 91.5c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z',\n\t\twidth: 448,\n\t},\n\tsquareQuestion: {\n\t\taliases: ['help', 'unknown'],\n\t\tcategories: ['objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm224 88c-16.1 0-29.2 13.1-29.2 29.2 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-42.6 34.6-77.2 77.2-77.2s77.2 34.6 77.2 77.2c0 45.5-34.5 64.7-53.7 71.8-2.3 10.8-11.9 19-23.5 19-13.3 0-24-10.7-24-24 0-20.2 14.6-34.6 29.5-39.5 6-2 12.3-5.1 16.8-9.5 3.9-3.8 6.9-9 6.9-17.7 0-16.1-13.1-29.2-29.2-29.2zM196 352a28 28 0 1 1 56 0 28 28 0 1 1 -56 0z',\n\t\twidth: 448,\n\t},\n\tsquareTerminal: {\n\t\taliases: ['cli', 'console', 'command line'],\n\t\tcategories: ['development', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M384 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm39 127c-9.4 9.4-9.4 24.6 0 33.9l63 63-63 63c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0zM216 336c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0z',\n\t\twidth: 448,\n\t},\n\tstar: {\n\t\taliases: ['favorite', 'rating', 'bookmark'],\n\t\tcategories: ['actions', 'objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M288.1-32c9 0 17.3 5.1 21.4 13.1L383 125.3 542.9 150.7c8.9 1.4 16.3 7.7 19.1 16.3s.5 18-5.8 24.4L441.7 305.9 467 465.8c1.4 8.9-2.3 17.9-9.6 23.2s-17 6.1-25 2L288.1 417.6 143.8 491c-8 4.1-17.7 3.3-25-2s-11-14.2-9.6-23.2L134.4 305.9 20 191.4c-6.4-6.4-8.6-15.8-5.8-24.4s10.1-14.9 19.1-16.3l159.9-25.4 73.6-144.2c4.1-8 12.4-13.1 21.4-13.1zm0 76.8L230.3 158c-3.5 6.8-10 11.6-17.6 12.8l-125.5 20 89.8 89.9c5.4 5.4 7.9 13.1 6.7 20.7l-19.8 125.5 113.3-57.6c6.8-3.5 14.9-3.5 21.8 0l113.3 57.6-19.8-125.5c-1.2-7.6 1.3-15.3 6.7-20.7l89.8-89.9-125.5-20c-7.6-1.2-14.1-6-17.6-12.8L288.1 44.8z',\n\t\twidth: 576,\n\t},\n\tstarSolid: {\n\t\taliases: ['favorited', 'rated', 'bookmarked'],\n\t\tcategories: ['actions', 'objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M309.5-18.9c-4.1-8-12.4-13.1-21.4-13.1s-17.3 5.1-21.4 13.1L193.1 125.3 33.2 150.7c-8.9 1.4-16.3 7.7-19.1 16.3s-.5 18 5.8 24.4l114.4 114.5-25.2 159.9c-1.4 8.9 2.3 17.9 9.6 23.2s16.9 6.1 25 2L288.1 417.6 432.4 491c8 4.1 17.7 3.3 25-2s11-14.2 9.6-23.2L441.7 305.9 556.1 191.4c6.4-6.4 8.6-15.8 5.8-24.4s-10.1-14.9-19.1-16.3L383 125.3 309.5-18.9z',\n\t\twidth: 576,\n\t},\n\tsun: {\n\t\taliases: ['light mode', 'day', 'brightness'],\n\t\tcategories: ['objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M288-32c8 0 15.4 4 19.9 10.6l58.8 87.4 103.4-20.2c7.8-1.5 15.9 .9 21.6 6.6s8.1 13.8 6.6 21.6L478 177.3 565.4 236.1C572 240.5 576 248 576 256s-4 15.4-10.6 19.9L478 334.7 498.2 438c1.5 7.8-.9 15.9-6.6 21.6s-13.8 8.1-21.6 6.6L366.7 446 307.9 533.4C303.4 540 296 544 288 544s-15.4-4-19.9-10.6L209.3 446 105.9 466.2c-7.8 1.5-15.9-.9-21.6-6.6s-8.1-13.8-6.6-21.6L98 334.7 10.6 275.9C4 271.4 0 264 0 256s4-15.4 10.6-19.9L98 177.3 77.8 73.9c-1.5-7.8 .9-15.9 6.6-21.6s13.8-8.1 21.6-6.6l103.3 20.2 58.8-87.4 1.8-2.3C274.4-29 281-32 288-32zm-47.8 138c-5.4 8-15 12-24.5 10.2l-84-16.4 16.4 84c1.8 9.5-2.2 19.1-10.2 24.5L67 256 138 303.8c8 5.4 12 15 10.2 24.5l-16.4 84 84-16.4 3.5-.4c8.3-.4 16.3 3.6 21 10.6l47.8 71 47.8-71 2.2-2.8c5.6-6.1 14-9 22.3-7.3l84 16.4-16.4-84c-1.8-9.5 2.2-19.1 10.2-24.5l71-47.8-71-47.8c-8-5.4-12-15-10.2-24.5l16.4-84-84 16.4c-9.5 1.8-19.1-2.2-24.5-10.2l-47.8-71-47.8 71zM288 376a120 120 0 1 1 0-240 120 120 0 1 1 0 240zm0-192a72 72 0 1 0 0 144 72 72 0 1 0 0-144z',\n\t\twidth: 576,\n\t},\n\tsunBright: {\n\t\taliases: ['bright', 'light', 'sunny'],\n\t\tcategories: ['objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M288 432c13.3 0 24 10.7 24 24l0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-64c0-13.3 10.7-24 24-24zM129.6 380.4c9.4-9.4 24.6-9.4 34 0s9.4 24.6 0 34l-45.3 45.3c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l45.2-45.3zm282.8 0c9.4-9.4 24.6-9.4 34 0l45.3 45.3c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-45.3-45.3c-9.4-9.4-9.4-24.6 0-34zM288 384a128 128 0 1 1 0-256 128 128 0 1 1 0 256zm0-208a80 80 0 1 0 0 160 80 80 0 1 0 0-160zM88 232c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0zm464 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0zM84.3 52.3c9.4-9.4 24.6-9.4 33.9 0l45.3 45.2c9.4 9.4 9.4 24.6 0 34s-24.6 9.4-34 0L84.3 86.3c-9.4-9.4-9.4-24.6 0-33.9zm373.4 0c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-45.3 45.3c-9.4 9.4-24.6 9.4-34 0s-9.4-24.6 0-34l45.3-45.2zM288-32c13.3 0 24 10.7 24 24l0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-64c0-13.3 10.7-24 24-24z',\n\t\twidth: 576,\n\t},\n\ttable: {\n\t\taliases: ['spreadsheet', 'data grid'],\n\t\tcategories: ['data'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64l-320 0-6.5-.3C25.2 476.4 0 449.1 0 416L0 96C0 60.7 28.7 32 64 32l320 0zM48 312l0 104c0 8.8 7.2 16 16 16l136 0 0-120-152 0zm200 0l0 120 136 0c8.8 0 16-7.2 16-16l0-104-152 0zM48 264l152 0 0-104-152 0 0 104zm200 0l152 0 0-104-152 0 0 104z',\n\t\twidth: 448,\n\t},\n\ttableRows: {\n\t\taliases: ['rows', 'list', 'data rows'],\n\t\tcategories: ['data'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M384 432l-256 0 0-152 272 0 0 136c0 8.8-7.2 16-16 16zm16-200l-272 0 0-152 256 0c8.8 0 16 7.2 16 16l0 136zM0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416z',\n\t\twidth: 448,\n\t},\n\tterminal: {\n\t\taliases: ['cli', 'console', 'shell', 'command line'],\n\t\tcategories: ['actions', 'development', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M7 105C-2.3 95.6-2.3 80.4 7 71S31.6 61.7 41 71L209 239c9.4 9.4 9.4 24.6 0 33.9L41 441c-9.4 9.4-24.6 9.4-33.9 0S-2.3 416.4 7 407L158.1 256 7 105zM488 400c13.3 0 24 10.7 24 24s-10.7 24-24 24l-272 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l272 0z',\n\t\twidth: 512,\n\t},\n\ttext: {\n\t\taliases: ['typography', 'font', 'content'],\n\t\tcategories: ['actions', 'development', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M48 136l0-56 120 0 0 352-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-352 120 0 0 56c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-22.1-17.9-40-40-40L40 32C17.9 32 0 49.9 0 72l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24z',\n\t\twidth: 384,\n\t},\n\tthreads: {\n\t\taliases: [],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M331.5 235.7c2.2 .9 4.2 1.9 6.3 2.8 29.2 14.1 50.6 35.2 61.8 61.4 15.7 36.5 17.2 95.8-30.3 143.2-36.2 36.2-80.3 52.5-142.6 53l-.3 0c-70.2-.5-124.1-24.1-160.4-70.2-32.3-41-48.9-98.1-49.5-169.6l0-.5C17 184.3 33.6 127.2 65.9 86.2 102.2 40.1 156.2 16.5 226.4 16l.3 0c70.3 .5 124.9 24 162.3 69.9 18.4 22.7 32 50 40.6 81.7l-40.4 10.8c-7.1-25.8-17.8-47.8-32.2-65.4-29.2-35.8-73-54.2-130.5-54.6-57 .5-100.1 18.8-128.2 54.4-26.2 33.3-39.8 81.5-40.3 143.2 .5 61.7 14.1 109.9 40.3 143.3 28 35.6 71.2 53.9 128.2 54.4 51.4-.4 85.4-12.6 113.7-40.9 32.3-32.2 31.7-71.8 21.4-95.9-6.1-14.2-17.1-26-31.9-34.9-3.7 26.9-11.8 48.3-24.7 64.8-17.1 21.8-41.4 33.6-72.7 35.3-23.6 1.3-46.3-4.4-63.9-16-20.8-13.8-33-34.8-34.3-59.3-2.5-48.3 35.7-83 95.2-86.4 21.1-1.2 40.9-.3 59.2 2.8-2.4-14.8-7.3-26.6-14.6-35.2-10-11.7-25.6-17.7-46.2-17.8l-.7 0c-16.6 0-39 4.6-53.3 26.3l-34.4-23.6c19.2-29.1 50.3-45.1 87.8-45.1l.8 0c62.6 .4 99.9 39.5 103.7 107.7l-.2 .2 .1 0zm-156 68.8c1.3 25.1 28.4 36.8 54.6 35.3 25.6-1.4 54.6-11.4 59.5-73.2-13.2-2.9-27.8-4.4-43.4-4.4-4.8 0-9.6 .1-14.4 .4-42.9 2.4-57.2 23.2-56.2 41.8l-.1 .1z',\n\t\twidth: 448,\n\t},\n\tthumbsDown: {\n\t\taliases: ['dislike', 'reject', 'downvote'],\n\t\tcategories: ['actions', 'objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M360 32l7.4 .4c35 3.6 62.5 32.2 64.4 67.7 17.8 11.8 30.1 31.4 32 53.9l.2 6c0 5.7-.7 11.2-2 16.5 10.2 11.5 16.8 26.3 17.8 42.7l.2 4.8c0 13.2-3.6 25.4-9.8 36 4.9 8.4 8.2 17.9 9.3 28l.4 8c0 37.3-28.3 67.9-64.6 71.6l-7.4 .4-109.7 0 14.1 30 3.1 7.6c12.5 35.7-1.8 75.5-34.2 95l-7.2 3.9c-37.5 17.6-81.7 3.6-102.6-31.2l-.6-.9-2.7-5-.6-1.2-30.1-64c-9.4 17.8-28 29.9-49.5 29.9l-32 0c-30.9 0-56-25.1-56-56L0 152c0-30.9 25.1-56 56-56l32 0c12.4 0 23.9 4.1 33.2 11 13.2-21.4 32-39.4 55-51.6l12.2-6.5 .7-.3 6.6-3.2 .7-.3 7.1-3c16.7-6.6 34.5-9.9 52.6-9.9L360 32zM255.9 80c-12 0-23.9 2.3-35.1 6.6l-4.7 2-5.3 2.6 0 0-12.2 6.5c-29.2 15.5-48.3 44.9-50.7 77.6l-.2 8 0 112.9 .1 4.1c.5 8.2 2.5 16.2 6 23.7l56.8 120.9 2.1 3.8c8.4 13.7 26 19.1 40.8 12.2l2.9-1.6c13-7.8 18.7-23.7 13.7-38l-1.2-3-30.2-64.2c-3.5-7.4-2.9-16.1 1.5-23.1s12-11.1 20.2-11.1l147.5 0 2.4-.1c11.3-1.1 20.3-10.1 21.4-21.4l.1-2.5c0-7.1-3.1-13.5-8.2-18-5.2-4.6-8.2-11.1-8.2-18s3-13.4 8.2-18c4.4-3.9 7.4-9.3 8-15.3l.2-2.7c0-8.4-4.4-15.9-11.2-20.2-10.7-6.9-14.2-20.9-8-32 1.5-2.6 2.5-5.6 2.9-8.6l.2-3.2c0-10.6-6.9-19.6-16.6-22.8-11.7-3.8-18.7-15.9-16-28 .2-.9 .3-1.8 .4-2.6l.2-2.6c0-12.4-9.5-22.6-21.6-23.8L360 80 255.9 80zM56 144c-4.4 0-8 3.6-8 8l0 224c0 4.4 3.6 8 8 8l32 0c4.4 0 8-3.6 8-8l0-224c0-4.4-3.6-8-8-8l-32 0z',\n\t\twidth: 512,\n\t},\n\tthumbsUp: {\n\t\taliases: ['like', 'approve', 'upvote'],\n\t\tcategories: ['actions', 'objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M171.5 38.8C192.3 4 236.5-10 274 7.6l7.2 3.8C316 32.3 330 76.5 312.4 114l0 0-14.1 30 109.7 0 7.4 .4c36.3 3.7 64.6 34.4 64.6 71.6 0 13.2-3.6 25.4-9.8 36 6.1 10.6 9.7 22.8 9.8 36 0 18.3-6.9 34.8-18 47.5 1.3 5.3 2 10.8 2 16.5 0 25.1-12.9 47-32.2 59.9-1.9 35.5-29.4 64.2-64.4 67.7l-7.4 .4-104.1 0c-18 0-35.9-3.4-52.6-9.9l-7.1-3-.7-.3-6.6-3.2-.7-.3-12.2-6.5c-12.3-6.5-23.3-14.7-32.9-24.1-4.1 26.9-27.3 47.4-55.3 47.4l-32 0c-30.9 0-56-25.1-56-56L0 200c0-30.9 25.1-56 56-56l32 0c10.8 0 20.9 3.1 29.5 8.5l50.1-106.5 .6-1.2 2.7-5 .6-.9zM56 192c-4.4 0-8 3.6-8 8l0 224c0 4.4 3.6 8 8 8l32 0c4.4 0 8-3.6 8-8l0-224c0-4.4-3.6-8-8-8l-32 0zM253.6 51c-14.8-6.9-32.3-1.6-40.7 12l-2.2 4-56.8 120.9c-3.5 7.5-5.5 15.5-6 23.7l-.1 4.2 0 112.9 .2 7.9c2.4 32.7 21.4 62.1 50.7 77.7l11.5 6.1 6.3 3.1c12.4 5.6 25.8 8.5 39.4 8.5l104.1 0 2.4-.1c12.1-1.2 21.6-11.5 21.6-23.9l-.2-2.6c-.1-.9-.2-1.7-.4-2.6-2.7-12.1 4.3-24.2 16-28 9.7-3.1 16.6-12.2 16.6-22.8 0-4.3-1.1-8.2-3.1-11.8-6.3-11.1-2.8-25.2 8-32 6.8-4.3 11.2-11.8 11.2-20.2 0-7.1-3.1-13.5-8.2-18-5.2-4.6-8.2-11.1-8.2-18s3-13.4 8.2-18c5.1-4.5 8.2-10.9 8.2-18l-.1-2.4c-1.1-11.3-10.1-20.3-21.4-21.4l-2.4-.1-147.5 0c-8.2 0-15.8-4.2-20.2-11.1-4.4-6.9-5-15.7-1.5-23.1L269 93.6c7-15 1.4-32.7-12.5-41L253.6 51z',\n\t\twidth: 512,\n\t},\n\ttrash: {\n\t\taliases: ['delete', 'remove', 'bin', 'discard'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M136.2 4.8c4.7-12.5 16.6-20.8 30-20.8l115.6 0c13.3 0 25.3 8.3 30 20.8L328 48 424 48c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 96C10.7 96 0 85.3 0 72S10.7 48 24 48l96 0 16.2-43.2zm-84.6 448L28.7 144 76.9 144 99.5 449.2c.6 8.4 7.6 14.8 16 14.8l217.1 0c8.4 0 15.3-6.5 16-14.8l22.6-305.2 48.1 0-22.9 308.7c-2.5 33.4-30.3 59.3-63.8 59.3l-217.1 0c-33.5 0-61.3-25.9-63.8-59.3z',\n\t\twidth: 448,\n\t},\n\ttriangleExclamation: {\n\t\taliases: ['warning', 'caution', 'danger'],\n\t\tcategories: ['status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M256.5 0c14.7 0 28.2 8.1 35.2 21l216 400c6.7 12.4 6.4 27.4-.8 39.5S486.6 480 472.5 480l-432 0c-14.1 0-27.1-7.4-34.3-19.5s-7.5-27.1-.8-39.5l216-400c7-12.9 20.5-21 35.2-21zM53.9 432L459.1 432 256.5 56.8 53.9 432zm202.6-40a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0-208c18.6 0 33 16.1 31 34.6l-7.1 64.1C279 294.8 268.7 304 256.5 304s-22.5-9.2-23.8-21.3l-7.1-64.1c-2-18.5 12.4-34.6 31-34.6z',\n\t\twidth: 512,\n\t},\n\ttwitter: {\n\t\taliases: [],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M459.4 151.7c.3 4.5 .3 9.1 .3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103l0-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53 51.7 63.7 129.3 105.3 216.4 109.8-1.6-7.8-2.6-15.9-2.6-24 0-57.8 46.8-104.9 104.9-104.9 30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3z',\n\t\twidth: 512,\n\t},\n\tupload: {\n\t\taliases: ['import', 'send'],\n\t\tcategories: ['actions', 'development'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M248 328c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-246.1-63 63c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L207 7c9.4-9.4 24.6-9.4 33.9 0L345 111c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-63-63 0 246.1zm-96-8l-88 0c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-80c0-8.8-7.2-16-16-16l-88 0 0-48 88 0c35.3 0 64 28.7 64 64l0 80c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-80c0-35.3 28.7-64 64-64l88 0 0 48zm168 56a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z',\n\t\twidth: 448,\n\t},\n\tuser: {\n\t\taliases: ['person', 'account', 'profile'],\n\t\tcategories: ['users'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M144 128a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zm208 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0zM48 480c0-70.7 57.3-128 128-128l96 0c70.7 0 128 57.3 128 128l0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8c0-97.2-78.8-176-176-176l-96 0C78.8 304 0 382.8 0 480l0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8z',\n\t\twidth: 448,\n\t},\n\tuserAstronaut: {\n\t\taliases: ['space', 'astronaut'],\n\t\tcategories: ['users'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M352 160a128 128 0 1 0 -256 0 128 128 0 1 0 256 0zM224-16c74.6 0 138.4 46.4 164 112l4 0c13.3 0 24 10.7 24 24l0 80c0 13.3-10.7 24-24 24l-4 0c-25.6 65.6-89.4 112-164 112S85.6 289.6 60 224l-4 0c-13.3 0-24-10.7-24-24l0-80c0-13.3 10.7-24 24-24l4 0C85.6 30.4 149.4-16 224-16zM128 176c0-44.2 35.8-80 80-80l32 0c44.2 0 80 35.8 80 80s-35.8 80-80 80l-32 0c-44.2 0-80-35.8-80-80zm85.3-13.3l-6-21.2c-.9-3.3-3.9-5.5-7.3-5.5s-6.4 2.2-7.3 5.5l-6 21.2-21.2 6c-3.3 .9-5.5 3.9-5.5 7.3s2.2 6.4 5.5 7.3l21.2 6 6 21.2c.9 3.3 3.9 5.5 7.3 5.5s6.4-2.2 7.3-5.5l6-21.2 21.2-6c3.3-.9 5.5-3.9 5.5-7.3s-2.2-6.4-5.5-7.3l-21.2-6zM89.7 339.3c17 12.8 35.9 23.2 56.2 30.7-55.7 10.4-97.9 59.2-97.9 118 0 13.3-10.7 24-24 24S0 501.3 0 488c0-64.5 36.4-120.5 89.7-148.7zM302.1 370c20.3-7.5 39.2-17.9 56.2-30.7 53.4 28.1 89.7 84.2 89.7 148.7 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-58.7-42.2-107.6-97.9-118zM128 432l192 0c17.7 0 32 14.3 32 32l0 48-56 0 0-24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24-48 0 0-24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24-56 0 0-48c0-17.7 14.3-32 32-32z',\n\t\twidth: 448,\n\t},\n\tuserGear: {\n\t\taliases: ['user settings', 'account settings'],\n\t\tcategories: ['users'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M336.5 128a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zm-208 0a128 128 0 1 1 256 0 128 128 0 1 1 -256 0zm-48 352l0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8c0-97.2 78.8-176 176-176l79.2 0c-7.4 15.4-8.9 32.3-5.1 48l-74.1 0c-70.7 0-128 57.3-128 128zM432.6 247.6c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 6.1c0 18.9 24.1 32.8 40.5 23.4l5-2.9c11.6-6.7 26.5-2.6 33 9.1l22.4 40.2c6.2 11.2 2.6 25.2-8.2 32l-4.7 2.9c-16.2 10.1-16.2 39.9 0 50.1l4.6 2.9c10.8 6.8 14.5 20.8 8.3 32L607 483.8c-6.5 11.7-21.4 15.9-33 9.1l-4.9-2.9c-16.4-9.5-40.5 4.5-40.5 23.4l0 6.1c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-5.9c0-19-24.2-33-40.7-23.5l-4.8 2.8c-11.6 6.7-26.4 2.6-33-9.1l-22.6-40.4c-6.2-11.2-2.6-25.3 8.3-32.1l4.4-2.7c16.3-10.1 16.3-40.1 0-50.2l-4.5-2.8c-10.9-6.8-14.5-20.9-8.3-32.1l22.5-40.3c6.5-11.7 21.4-15.8 32.9-9.1l4.8 2.8c16.5 9.5 40.7-4.5 40.7-23.5l0-5.9zm99.9 136.2a52 52 0 1 0 -104 0 52 52 0 1 0 104 0z',\n\t\twidth: 640,\n\t},\n\tuserPlus: {\n\t\taliases: ['add user', 'invite', 'new user'],\n\t\tcategories: ['users'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M304 304c97.2 0 176 78.8 176 176l0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8c0-70.7-57.3-128-128-128l-96 0c-70.7 0-128 57.3-128 128l0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8c0-97.2 78.8-176 176-176l96 0zM528 80c13.3 0 24 10.7 24 24l0 48 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0 0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-48c0-13.3 10.7-24 24-24zM256 256a128 128 0 1 1 0-256 128 128 0 1 1 0 256zm0-208a80 80 0 1 0 0 160 80 80 0 1 0 0-160z',\n\t\twidth: 640,\n\t},\n\tusers: {\n\t\taliases: ['people', 'team', 'group'],\n\t\tcategories: ['users'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M320 192a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm0-176a112 112 0 1 1 0 224 112 112 0 1 1 0-224zM296 336c-57.4 0-104 46.6-104 104l0 16c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-16c0-83.9 68.1-152 152-152l48 0c83.9 0 152 68.1 152 152l0 16c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-16c0-57.4-46.6-104-104-104l-48 0zm135.4-93.2c11.7-11.3 21.6-24.4 29.4-38.8 5.9 2.6 12.4 4 19.2 4 26.5 0 48-21.5 48-48s-21.5-48-48-48l-.8 0c-1.6-16.6-5.8-32.4-12.1-47.1 4.2-.6 8.6-.9 12.9-.9 53 0 96 43 96 96s-43 96-96 96c-17.7 0-34.3-4.8-48.6-13.2zM160 64c4.4 0 8.7 .3 12.9 .9-6.3 14.7-10.5 30.6-12.1 47.1l-.8 0c-26.5 0-48 21.5-48 48s21.5 48 48 48c6.8 0 13.3-1.4 19.2-4 7.8 14.4 17.7 27.5 29.4 38.8-14.2 8.4-30.8 13.2-48.6 13.2-53 0-96-43-96-96s43-96 96-96zM149.3 304c-15.1 16.3-27.5 35-36.5 55.6-38 15.5-64.8 52.8-64.8 96.4 0 13.3-10.7 24-24 24S0 469.3 0 456c0-83.1 66.6-150.6 149.3-152zm377.9 55.6c-9-20.6-21.5-39.4-36.5-55.6 82.7 1.4 149.3 68.9 149.3 152 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-43.6-26.8-80.9-64.8-96.4z',\n\t\twidth: 640,\n\t},\n\tvideo: {\n\t\taliases: ['camera', 'recording', 'webcam'],\n\t\tcategories: ['media'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M96 112c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L96 112zM32 128c0-35.3 28.7-64 64-64l256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L96 448c-35.3 0-64-28.7-64-64l0-256zm505.6-11.2c4.2-3.1 9.2-4.8 14.4-4.8 13.3 0 24 10.7 24 24l0 240c0 13.3-10.7 24-24 24-5.2 0-10.2-1.7-14.4-4.8l-73.6-55.2 0-60 64 48 0-144-64 48 0-60 73.6-55.2z',\n\t\twidth: 576,\n\t},\n\twavePulse: {\n\t\taliases: ['activity', 'heartbeat', 'health'],\n\t\tcategories: ['data', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M287.4 0c11.1-.3 21 7.1 23.8 17.9l78.7 301.7 36.2-81.3c3.9-8.7 12.4-14.3 21.9-14.3l104 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-88.4 0-57.7 129.7c-4.1 9.3-13.7 15-23.9 14.2s-18.7-8-21.3-17.9l-70.1-268.6-75.2 363.4c-2.3 10.9-11.7 18.8-22.8 19.1s-21-7.1-23.9-17.8L109.6 272 24 272c-13.3 0-24-10.7-24-24s10.7-24 24-24l104 0c10.9 0 20.4 7.3 23.2 17.8l37.9 142 75.4-364.7C266.8 8.2 276.2 .3 287.4 0z',\n\t\twidth: 576,\n\t},\n\twindowRestore: {\n\t\taliases: ['restore', 'minimize', 'window'],\n\t\tcategories: ['actions', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M512 80L224 80c-8.8 0-16 7.2-16 16l0 16-48 0 0-16c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64l-48 0 0-48 48 0c8.8 0 16-7.2 16-16l0-192c0-8.8-7.2-16-16-16zM368 288l-320 0 0 128c0 8.8 7.2 16 16 16l288 0c8.8 0 16-7.2 16-16l0-128zM64 160l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64z',\n\t\twidth: 576,\n\t},\n\twordpress: {\n\t\taliases: ['wp'],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M61.7 169.4l101.5 278c-71-34.4-119.9-107.2-119.9-191.4 0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8 .9 0 1.8 .1 2.8 .2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7 .3 13.7 .3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4 46.6-139.6-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zM259.7 274.6L195.9 460.1c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9L259.7 274.6zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9c63.3-36.9 105.8-105.4 105.8-183.9 0-37-9.4-71.8-26-102.1zM8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm484.6 0a236.6 236.6 0 1 0 -473.2 0 236.6 236.6 0 1 0 473.2 0z',\n\t\twidth: 512,\n\t},\n\twreathLaurel: {\n\t\taliases: ['award', 'victory', 'achievement'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M237.6 50.9l-11.8 .7c-20.3 1.1-36.6 17.4-37.7 37.7l-.7 11.8 11.8-.7c20.3-1.1 36.6-17.4 37.7-37.7l.7-11.8zM43.6 177.7c-11.4-30.3-9.7-65.3 7.8-95.6L72 46.4c6.3-10.9 20.2-14.6 31-8.3 15.9 9.2 28.9 21.4 38.8 35.5 8-38.5 41-67.7 81.3-70l38.6-2.1c14.3-.8 26.1 11 25.3 25.3l-2.1 38.6c-2.5 44.8-38.2 80.5-83 83l-24.6 1.4c-21.2 31.1-32.8 68.1-32.8 106.3 0 97.2 78.8 176 176 176l11.6 0c43.5 0 86.3 10.1 125.2 29.6l9.9 5c11.9 5.9 16.7 20.3 10.7 32.2s-20.3 16.7-32.2 10.7l-9.9-5C403.6 488.4 368.1 480 332.1 480l-23.1 0c-36 0-71.5 8.4-103.8 24.5l-9.9 5c-11.9 5.9-26.3 1.1-32.2-10.7s-1.1-26.3 10.7-32.2l9.9-5c8.3-4.2 16.8-7.9 25.4-11.2-5.5-3.1-10.8-6.5-15.9-10.1l-4.8 2.8-.3 .2c-4.6 2.7-9.4 4.9-14.2 6.9-50.9 20.4-110.3 .8-138.5-48L14.7 366.4c-6.3-10.9-2.6-24.8 8.3-31 6-3.5 12.2-6.4 18.5-8.7-25.1-20.5-41.1-51.7-41.1-86.7l0-41.2c0-12.6 10.2-22.7 22.7-22.7 7 0 13.8 .6 20.4 1.7zM417.9 3.6c40.3 2.2 73.3 31.5 81.3 70 9.9-14.1 22.9-26.3 38.8-35.5 10.9-6.3 24.8-2.6 31 8.3l20.6 35.7c17.5 30.3 19.2 65.3 7.8 95.6 6.6-1.1 13.4-1.7 20.4-1.7 12.6 0 22.7 10.2 22.7 22.7l0 41.2c0 34.9-16 66.1-41.1 86.7 6.3 2.3 12.5 5.2 18.5 8.7 10.9 6.3 14.6 20.2 8.3 31l-20.6 35.7c-21.6 37.4-61.5 57.6-101.8 55.9-5.3-8.3-12.8-15.4-22.3-20.1l-9.9-5c-13.1-6.5-26.6-12.1-40.3-16.7l0 0c-7.9-2.7-15.9-5-24-7 53.3-30.2 89.3-87.5 89.3-153.2 0-38.2-11.6-75.2-32.8-106.3l-24.6-1.4c-44.8-2.5-80.5-38.2-83-83L354 26.8c-.8-14.3 11-26.1 25.3-25.3l38.6 2.1zm-2.7 47.9l-11.8-.7 .7 11.8c1.1 20.3 17.4 36.6 37.7 37.7l11.8 .7-.7-11.8c-1.1-20.3-17.4-36.6-37.7-37.7zM96.5 301.9l0-4.7c0-31.6-20-58.5-48-68.8l0 11.5c0 29.8 20.4 54.9 48 62zm448.1-4.7l0 4.7c27.6-7.1 48-32.2 48-62l0-11.5c-28 10.3-48 37.2-48 68.8zM149.5 407.8l-2.4-4.1c-15.8-27.3-46.5-40.6-75.9-35.6l5.7 9.9c14.9 25.8 45.1 37.3 72.5 29.7zM105.9 179.7c15.8-27.3 11.9-60.6-7.2-83.5L93 106.1c-14.9 25.8-9.8 57.7 10.6 77.7l2.4-4.1zm431.6 4.1c20.3-20 25.5-51.8 10.6-77.7l-5.7-9.9c-19.1 22.9-22.9 56.2-7.2 83.5l2.4 4.1zm-45.9 224c27.4 7.6 57.6-3.9 72.5-29.7l5.7-9.9c-29.4-5.1-60.1 8.2-75.9 35.6l-2.4 4.1z',\n\t\twidth: 640,\n\t},\n\twrench: {\n\t\taliases: ['tools', 'fix', 'repair', 'configure'],\n\t\tcategories: ['actions', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M208 168c0-92.8 75.2-168 168-168 27.1 0 52.8 6.4 75.5 17.9 6.9 3.5 11.7 10 12.9 17.6s-1.3 15.3-6.7 20.8l-73.7 73.7 0 30.1 30.1 0 73.7-73.7c5.4-5.4 13.2-7.9 20.8-6.7s14.2 6 17.6 12.9c11.4 22.7 17.9 48.4 17.9 75.5 0 92.8-75.2 168-168 168-16.6 0-32.7-2.4-47.9-6.9L152.6 504.6c-31.2 31.2-81.9 31.2-113.1 0s-31.2-81.9 0-113.1L214.9 215.9c-4.5-15.2-6.9-31.3-6.9-47.9zM376 48c-66.3 0-120 53.7-120 120 0 16 3.1 31.3 8.8 45.2 3.6 8.9 1.6 19.2-5.3 26l-186.2 186.2 0 0c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L304.8 284.5c6.8-6.8 17.1-8.9 26-5.3 13.9 5.7 29.2 8.8 45.2 8.8 66.3 0 120-53.7 120-120 0-6.9-.6-13.7-1.7-20.3L441 201c-4.5 4.5-10.6 7-17 7l-64 0c-13.3 0-24-10.7-24-24l0-64c0-6.4 2.5-12.5 7-17l53.3-53.3C389.7 48.6 382.9 48 376 48z',\n\t\twidth: 576,\n\t},\n\txmark: {\n\t\taliases: ['close', 'dismiss', 'cancel', 'x'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M7.5 105c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l151 151 151-151c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-151 151 151 151c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-151-151-151 151c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l151-151-151-151z',\n\t\twidth: 384,\n\t},\n\txmarkLarge: {\n\t\taliases: ['close', 'dismiss', 'cancel', 'x'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M7.5 41C-1.8 31.6-1.8 16.4 7.5 7S32.1-2.3 41.5 7l215 215 215-215c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-215 215 215 215c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-215-215-215 215c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l215-215-215-215z',\n\t\twidth: 512,\n\t},\n\txTwitter: {\n\t\taliases: ['x', 'twitter'],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M357.2 48L427.8 48 273.6 224.2 455 464 313 464 201.7 318.6 74.5 464 3.8 464 168.7 275.5-5.2 48 140.4 48 240.9 180.9 357.2 48zM332.4 421.8l39.1 0-252.4-333.8-42 0 255.3 333.8z',\n\t\twidth: 448,\n\t},\n\tyoutube: {\n\t\taliases: [],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M549.7 124.1C543.5 100.4 524.9 81.8 501.4 75.5 458.9 64 288.1 64 288.1 64S117.3 64 74.7 75.5C51.2 81.8 32.7 100.4 26.4 124.1 15 167 15 256.4 15 256.4s0 89.4 11.4 132.3c6.3 23.6 24.8 41.5 48.3 47.8 42.6 11.5 213.4 11.5 213.4 11.5s170.8 0 213.4-11.5c23.5-6.3 42-24.2 48.3-47.8 11.4-42.9 11.4-132.3 11.4-132.3s0-89.4-11.4-132.3zM232.2 337.6l0-162.4 142.7 81.2-142.7 81.2z',\n\t\twidth: 576,\n\t},\n} as const;\n\nexport const iconList = [\n\t'angleDown',\n\t'angleLeft',\n\t'angleRight',\n\t'anglesLeft',\n\t'anglesRight',\n\t'angleUp',\n\t'arrowDownToLine',\n\t'arrowLeft',\n\t'arrowRight',\n\t'arrowsRetweet',\n\t'asterisk',\n\t'banBug',\n\t'bars',\n\t'barsFilter',\n\t'bell',\n\t'billboard',\n\t'bitbucket',\n\t'bluesky',\n\t'bolt',\n\t'boltPantheon',\n\t'boltSolid',\n\t'book',\n\t'books',\n\t'bracketRight',\n\t'bracketsSquare',\n\t'brainCircuit',\n\t'broomWide',\n\t'building',\n\t'buildings',\n\t'bullhorn',\n\t'calendarDays',\n\t'caretDown',\n\t'caretLeft',\n\t'caretRight',\n\t'caretUp',\n\t'ccAmex',\n\t'ccApplePay',\n\t'ccDiscover',\n\t'ccGeneric',\n\t'ccMC',\n\t'ccPaypal',\n\t'ccVisa',\n\t'chartLine',\n\t'chartNetwork',\n\t'chartSimple',\n\t'check',\n\t'circle',\n\t'circleCheck',\n\t'circleExclamation',\n\t'circleInfo',\n\t'circleMinus',\n\t'circleNotch',\n\t'circlePlus',\n\t'circleQuestion',\n\t'circleUser',\n\t'circleXmark',\n\t'cloud',\n\t'cloudArrowDown',\n\t'cloudArrowUp',\n\t'cloudPlus',\n\t'code',\n\t'codeBranch',\n\t'codeMerge',\n\t'command',\n\t'comment',\n\t'copy',\n\t'desktop',\n\t'diamondExclamation',\n\t'diamonds4',\n\t'discourse',\n\t'display',\n\t'dollarSign',\n\t'download',\n\t'drupal',\n\t'ellipsis',\n\t'ellipsisVertical',\n\t'emptySet',\n\t'envelope',\n\t'envelopeOpen',\n\t'exclamation',\n\t'expand',\n\t'expandFromCenter',\n\t'externalLink',\n\t'eye',\n\t'eyeSlash',\n\t'facebook',\n\t'file',\n\t'fileCheck',\n\t'fileContract',\n\t'fileCSV',\n\t'fileDiff',\n\t'fileExport',\n\t'fileImport',\n\t'fileLines',\n\t'filePDF',\n\t'fileZip',\n\t'folder',\n\t'folderTree',\n\t'gear',\n\t'gem',\n\t'github',\n\t'gitlab',\n\t'globe',\n\t'graduationCap',\n\t'grid',\n\t'gripDots',\n\t'gripDotsVertical',\n\t'heart',\n\t'heartSolid',\n\t'house',\n\t'idCard',\n\t'image',\n\t'inputText',\n\t'instagram',\n\t'keySkeleton',\n\t'laptop',\n\t'laptopCode',\n\t'leaf',\n\t'lifeRing',\n\t'linkedin',\n\t'linkSimple',\n\t'linkSimpleSlash',\n\t'listCheck',\n\t'locationCrosshairs',\n\t'lock',\n\t'lockOpen',\n\t'magnifyingGlass',\n\t'medal',\n\t'memo',\n\t'messages',\n\t'minus',\n\t'moon',\n\t'nextJs',\n\t'paperclip',\n\t'paperPlane',\n\t'pen',\n\t'penField',\n\t'phone',\n\t'play',\n\t'plus',\n\t'question',\n\t'quotesLeft',\n\t'quotesRight',\n\t'rectangleList',\n\t'reply',\n\t'robot',\n\t'rocketLaunch',\n\t'rotate',\n\t'rotateClock',\n\t'rotateLeft',\n\t'rotateRight',\n\t'rss',\n\t'save',\n\t'server',\n\t'shareNodes',\n\t'shield',\n\t'shieldQuartered',\n\t'shovel',\n\t'siren',\n\t'sirenOn',\n\t'sitemap',\n\t'slack',\n\t'slashForward',\n\t'slidersSimple',\n\t'snowflake',\n\t'sparkles',\n\t'squareCheck',\n\t'squareCode',\n\t'squareMinus',\n\t'squarePen',\n\t'squareQuestion',\n\t'squareTerminal',\n\t'star',\n\t'starSolid',\n\t'sun',\n\t'sunBright',\n\t'table',\n\t'tableRows',\n\t'terminal',\n\t'text',\n\t'threads',\n\t'thumbsDown',\n\t'thumbsUp',\n\t'trash',\n\t'triangleExclamation',\n\t'twitter',\n\t'upload',\n\t'user',\n\t'userAstronaut',\n\t'userGear',\n\t'userPlus',\n\t'users',\n\t'video',\n\t'wavePulse',\n\t'windowRestore',\n\t'wordpress',\n\t'wreathLaurel',\n\t'wrench',\n\t'xmark',\n\t'xmarkLarge',\n\t'xTwitter',\n\t'youtube',\n] as const;\n\nexport type PDSIconName = (typeof iconList)[number];\n\nexport const categoryList = [\n\t'actions',\n\t'arrows',\n\t'brands',\n\t'communication',\n\t'custom',\n\t'data',\n\t'development',\n\t'documents',\n\t'financial',\n\t'media',\n\t'navigation',\n\t'objects',\n\t'security',\n\t'status',\n\t'users',\n] as const;\n\nexport type IconCategory = (typeof categoryList)[number];\n","import React, { ComponentPropsWithoutRef } from 'react';\n\nimport {\n\tSPACING_2XL,\n\tSPACING_3XL,\n\tSPACING_L,\n\tSPACING_M,\n\tSPACING_S,\n\tSPACING_XL,\n\tSPACING_XS,\n} from '@pantheon-systems/pds-design-tokens/build/js/variables.global.js';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { Display, IconSize } from '@libs/types/custom-types';\n\nimport {\n\tcustomIcons,\n\ticonData,\n\ticonList,\n\ttype PDSIconName,\n} from './generated-icon-data';\n\nimport './icon.css';\n\n/**\n * PDS Icon type - union of all available icon names.\n */\nexport type PDSIcon = PDSIconName;\n\n// Re-export for external consumers (Storybook, etc.)\nexport { iconList };\n\n/**\n * Map of icon size tokens to design token values.\n */\nconst iconSizes: Record<IconSize, string> = {\n\t'2xl': SPACING_2XL,\n\t'3xl': SPACING_3XL,\n\tl: SPACING_L,\n\tm: SPACING_M,\n\ts: SPACING_S,\n\txl: SPACING_XL,\n\txs: SPACING_XS,\n};\n\n/**\n * Icon component prop types.\n */\nexport interface IconProps extends ComponentPropsWithoutRef<'svg'> {\n\t/**\n\t * Display value\n\t */\n\tdisplay?: Display;\n\t/**\n\t * Which icon to render\n\t */\n\ticonName: PDSIcon;\n\t/**\n\t * Which size of icon to render\n\t */\n\ticonSize?: IconSize;\n\t/**\n\t * Vertical align value\n\t */\n\tverticalAlign?: string;\n}\n\n/**\n * A component used to display an icon.\n */\nexport const Icon = ({\n\tclassName,\n\tdisplay = 'inline-block',\n\ticonName,\n\ticonSize = 'l',\n\tstyle,\n\tverticalAlign = 'middle',\n\t...props\n}: IconProps) => {\n\tconst baseClass = 'pds-icon';\n\tconst iconClasses = `${baseClass} ${baseClass}--${iconSize} ${baseClass}--${iconName}`;\n\tconst data = iconData[iconName];\n\tconst viewBox = `0 0 ${data.width} ${data.height}`;\n\n\t// Check if this is a complex custom icon (e.g. nextJs with masks/gradients)\n\tconst customIcon =\n\t\ticonName in customIcons\n\t\t\t? customIcons[iconName as keyof typeof customIcons]\n\t\t\t: null;\n\n\t// Determine icon content\n\tlet iconContent: React.ReactNode;\n\n\tif (customIcon?.type === 'complex') {\n\t\ticonContent = customIcon.render();\n\t} else {\n\t\tconst pathData =\n\t\t\tcustomIcon?.type === 'path' ? customIcon.svgPathData : data.svgPathData;\n\n\t\ticonContent = Array.isArray(pathData) ? (\n\t\t\tpathData.map((d, i) => <path key={i} d={d} fill='currentColor' />)\n\t\t) : (\n\t\t\t<path d={pathData} fill='currentColor' />\n\t\t);\n\t}\n\n\treturn (\n\t\t<svg\n\t\t\taria-hidden='true'\n\t\t\tclassName={mergeClasses([iconClasses, className ?? ''])}\n\t\t\tfill='none'\n\t\t\tfocusable='false'\n\t\t\theight={iconSizes[iconSize]}\n\t\t\tpreserveAspectRatio='xMidYMid meet'\n\t\t\trole='img'\n\t\t\tstyle={{\n\t\t\t\tdisplay: display,\n\t\t\t\tflexShrink: 0,\n\t\t\t\toverflow: 'visible',\n\t\t\t\tverticalAlign: verticalAlign,\n\t\t\t\t...style,\n\t\t\t}}\n\t\t\tviewBox={viewBox}\n\t\t\txmlns='http://www.w3.org/2000/svg'\n\t\t\t{...props}\n\t\t>\n\t\t\t{iconContent}\n\t\t</svg>\n\t);\n};\n","import React, {\n\tcloneElement,\n\tComponentPropsWithoutRef,\n\tisValidElement,\n\tReactNode,\n\tuseState,\n} from 'react';\n\nimport hashSum from 'hash-sum';\n\nimport { isValidImageSrc, mergeClasses } from '@libs/components/utils';\n\nimport { Icon } from '@components/icons/Icon/Icon';\n\nimport './avatar.css';\n\nconst gradients = [\n\t'dawn',\n\t'dragonfruit',\n\t'dusk',\n\t'earth',\n\t'fall',\n\t'grape',\n\t'midnight',\n\t'moon',\n\t'plum',\n\t'spring',\n\t'summer',\n\t'sun',\n\t'sundown',\n\t'sunrise',\n\t'twilight',\n\t'winter',\n];\n\n// Creates consistent color based on the uniqueId\nconst uniqueIdToGradient = (uniqueId: string) => {\n\tconst pos = parseInt(hashSum(uniqueId), 16);\n\tconst gradient = gradients[pos % gradients.length];\n\treturn gradient;\n};\n\nexport interface AvatarProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Aria label for the avatar when used as a link. This is required if using a link.\n\t */\n\tariaLabel?: string;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * If true, a user icon will be displayed with the fallback gradient when an image is not provided.\n\t */\n\thasUserFallback?: boolean;\n\t/**\n\t * Avatar image.\n\t */\n\timageSrc?: string;\n\t/**\n\t * A link element using the router of your choice. Leave empty for no link.\n\t */\n\tlinkContent?: ReactNode;\n\t/**\n\t * Avatar size.\n\t */\n\tsize?: 'xs' | 's' | 'm' | 'l';\n\t/**\n\t * Unique ID associated with the avatar. Can be workspace ID, user ID, email, etc.\n\t */\n\tuniqueId?: string;\n}\n\n/**\n * Avatar UI component\n */\nexport const Avatar = ({\n\tariaLabel,\n\tclassName,\n\thasUserFallback = false,\n\timageSrc,\n\tlinkContent,\n\tsize = 's',\n\tuniqueId,\n\t...props\n}: AvatarProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-avatar';\n\tconst sizeClass = `${baseClass}--${size}`;\n\tconst hasImageClass = imageSrc ? `${baseClass}--image` : null;\n\tconst [doesImageHaveError, setImageHaveError] = useState(undefined);\n\n\t// If an image is not provided, use a random gradient based on the uniqueId.\n\tconst gradientStyle = uniqueId\n\t\t? `var(--pds-gradient-avatar-${uniqueIdToGradient(uniqueId)})`\n\t\t: null;\n\n\t// Default fallback styles.\n\tconst fallbackStyles = {\n\t\tbackgroundImage: gradientStyle,\n\t\tborderRadius: '100%',\n\t\theight: '100%',\n\t\twidth: '100%',\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'center',\n\t};\n\n\t// Preprocess image content.\n\tconst imageContent =\n\t\tisValidImageSrc(imageSrc) && !doesImageHaveError ? (\n\t\t\t<img\n\t\t\t\talt=''\n\t\t\t\tclassName={`${baseClass}__image`}\n\t\t\t\tonError={() => setImageHaveError(true)}\n\t\t\t\tonLoad={() => setImageHaveError(false)}\n\t\t\t\tsrc={`${imageSrc}`}\n\t\t\t/>\n\t\t) : (\n\t\t\t<span style={fallbackStyles}>\n\t\t\t\t{hasUserFallback && (\n\t\t\t\t\t<Icon className={`${baseClass}__user-icon`} iconName='user' />\n\t\t\t\t)}\n\t\t\t</span>\n\t\t);\n\n\t// Preprocess content for either static or interactive avatars.\n\tconst staticContent = (\n\t\t<span className={`${baseClass}__content`}>{imageContent}</span>\n\t);\n\n\tconst interactiveContent =\n\t\tlinkContent && isValidElement(linkContent)\n\t\t\t? cloneElement(\n\t\t\t\t\tlinkContent,\n\t\t\t\t\tObject.assign({}, linkContent.props, {\n\t\t\t\t\t\tclassName: `${baseClass}__content ${baseClass}__content--link`,\n\t\t\t\t\t\t'aria-label': ariaLabel,\n\t\t\t\t\t}),\n\t\t\t\t\timageContent,\n\t\t\t\t)\n\t\t\t: null;\n\n\t// Render the output\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([baseClass, sizeClass, hasImageClass, className])}\n\t\t\t{...props}\n\t\t>\n\t\t\t{linkContent ? interactiveContent : staticContent}\n\t\t</div>\n\t);\n};\n","import React, { ComponentPropsWithoutRef, ReactNode } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport './badge.css';\n\nexport type BadgeColor =\n\t| 'aether'\n\t| 'aether-secondary'\n\t| 'amber'\n\t| 'amber-secondary'\n\t| 'apollo'\n\t| 'apollo-secondary'\n\t| 'critical'\n\t| 'critical-secondary'\n\t| 'discovery'\n\t| 'discovery-secondary'\n\t| 'gaia'\n\t| 'gaia-secondary'\n\t| 'hypnos'\n\t| 'hypnos-secondary'\n\t| 'indigo'\n\t| 'indigo-secondary'\n\t| 'info'\n\t| 'info-secondary'\n\t| 'iris'\n\t| 'iris-secondary'\n\t| 'lime'\n\t| 'lime-secondary'\n\t| 'mint'\n\t| 'mint-secondary'\n\t| 'orange'\n\t| 'orange-secondary'\n\t| 'rose'\n\t| 'rose-secondary'\n\t| 'sand'\n\t| 'sand-secondary'\n\t| 'silver'\n\t| 'silver-secondary'\n\t| 'sky'\n\t| 'sky-secondary'\n\t| 'slate'\n\t| 'slate-secondary'\n\t| 'stone'\n\t| 'stone-secondary'\n\t| 'success'\n\t| 'success-secondary'\n\t| 'teal'\n\t| 'teal-secondary'\n\t| 'warning'\n\t| 'warning-secondary'\n\t| 'feature';\n\n/**\n * Badge component props\n */\nexport interface BadgeProps extends ComponentPropsWithoutRef<'span'> {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Badge color\n\t */\n\tcolor: BadgeColor;\n\t/**\n\t * Badge text or content.\n\t */\n\tlabel: ReactNode;\n\t/**\n\t * Badge size\n\t */\n\tsize?: 'xs' | 's' | 'm';\n}\n\n/**\n * Badge UI component\n */\nexport const Badge = ({\n\tclassName,\n\tcolor = 'gaia',\n\tlabel,\n\tsize = 'm',\n\t...props\n}: BadgeProps) => {\n\tconst baseClass = 'pds-badge';\n\tconst colorClass = `${baseClass}--${color}`;\n\tconst sizeClass = size !== 'm' ? `${baseClass}--${size}` : null;\n\n\treturn (\n\t\t<span\n\t\t\tclassName={mergeClasses([\n\t\t\t\tbaseClass,\n\t\t\t\tcolorClass,\n\t\t\t\tsizeClass,\n\t\t\t\tclassName ?? '',\n\t\t\t])}\n\t\t\t{...props}\n\t\t>\n\t\t\t<span className={`${baseClass}__label`}>{label}</span>\n\t\t</span>\n\t);\n};\n","import React, { ComponentPropsWithoutRef } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { StatusType } from '@libs/types/custom-types';\n\nimport './status-badge.css';\n\n/**\n * StatusBadge component props\n */\nexport interface StatusBadgeProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Background color for badge\n\t */\n\tcolor?: 'transparent' | 'neutral' | 'reverse';\n\t/**\n\t * Should the badge show a status indicator.\n\t */\n\thasStatusIndicator?: boolean;\n\t/**\n\t * Text for badge.\n\t */\n\tlabel: string;\n\t/**\n\t * Translatable text for status indicator — for screen readers.\n\t */\n\tstatusIndicatorText?: string;\n\t/**\n\t * Status type for badge. Only renders if `hasStatusIndicator` is true.\n\t */\n\tstatusType?: StatusType | 'frozen' | 'disabled';\n}\n\n/**\n * StatusBadge UI component\n */\nexport const StatusBadge = ({\n\tclassName,\n\tcolor = 'transparent',\n\thasStatusIndicator = false,\n\tlabel,\n\tstatusIndicatorText = 'Status indicator: ',\n\tstatusType,\n\t...props\n}: StatusBadgeProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-status-badge';\n\tconst colorClass = `${baseClass}--${color}`;\n\tconst statusClass = `${baseClass}__status`;\n\tconst statusClassMod = statusType ? `${statusClass}--${statusType}` : null;\n\n\t// Render the output\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([baseClass, colorClass, className ?? ''])}\n\t\t\t{...props}\n\t\t>\n\t\t\t{hasStatusIndicator === true && (\n\t\t\t\t<span className={mergeClasses([statusClass, statusClassMod])}>\n\t\t\t\t\t{statusType && (\n\t\t\t\t\t\t<span className='visually-hidden'>\n\t\t\t\t\t\t\t{statusIndicatorText} {statusType}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t)}\n\t\t\t\t</span>\n\t\t\t)}\n\t\t\t<span className={`${baseClass}__label`}>{label}</span>\n\t\t</div>\n\t);\n};\n","import React, { ComponentPropsWithoutRef } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport './tally.css';\n\ntype TypeLabelsType = {\n\tcritical?: string;\n\tinfo?: string;\n\tneutral?: string;\n\tsuccess?: string;\n\twarning?: string;\n};\n\n/**\n * Prop types for Tally\n */\nexport interface TallyProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Label text\n\t */\n\tlabel: string | number;\n\t/**\n\t * Size of the tally\n\t */\n\tsize?: 'xs' | 's' | 'm';\n\t/**\n\t * Notification type\n\t */\n\ttype: 'neutral' | 'critical' | 'warning' | 'info' | 'success';\n\t/**\n\t * Message type labels.\n\t */\n\ttypeLabels?: TypeLabelsType;\n}\n\n/**\n * Tally UI component\n */\nexport const Tally = ({\n\tclassName,\n\tlabel,\n\tsize = 's',\n\ttype = 'neutral',\n\ttypeLabels = {\n\t\tinfo: 'Information',\n\t\tsuccess: 'Success',\n\t\twarning: 'Warning',\n\t\tcritical: 'Critical',\n\t\tneutral: '',\n\t},\n\t...props\n}: TallyProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-tally';\n\tconst colorClass = `${baseClass}--${type}`;\n\tconst sizeClass = `${baseClass}--${size}`;\n\n\t// Label by type\n\tconst messageTypeLabel = `${typeLabels[type]}: `;\n\n\t// Render the output\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([\n\t\t\t\tbaseClass,\n\t\t\t\tcolorClass,\n\t\t\t\tsizeClass,\n\t\t\t\tclassName ?? '',\n\t\t\t])}\n\t\t\t{...props}\n\t\t>\n\t\t\t<div className={`${baseClass}__label`}>\n\t\t\t\t<span className='visually-hidden'>{messageTypeLabel}</span>\n\t\t\t\t{label}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nTally.displayName = 'Tally';\n","import { Children, createElement, isValidElement, ReactNode } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { HeadingLevel } from '@libs/types/custom-types';\n\n// Heading level utility component.\n// This is used for elements that need to render as a heading (h2, h3, h4) or span.\ninterface HxProps {\n\tbaseClass?: string;\n\tchildren?: ReactNode;\n\tclassName?: string;\n\tid?: string;\n\tlevel: HeadingLevel;\n}\n\nexport const Hx = ({\n\tbaseClass,\n\tchildren,\n\tclassName,\n\tid,\n\tlevel,\n\t...props\n}: HxProps) => {\n\t// Set up classes.\n\tconst headingClass = baseClass ? `${baseClass}__heading` : null;\n\n\t// Preprocess heading element type.\n\tconst HxElement = level;\n\n\t// Render the appropriate heading level\n\treturn createElement(\n\t\tHxElement,\n\t\t{ className: mergeClasses([headingClass, className]), id, ...props },\n\t\tchildren,\n\t);\n};\n\n// Extract text if it's a ReactNode, convert it if it's a number\nexport const extractText = (node: ReactNode): string => {\n\tif (typeof node === 'string' || typeof node === 'number') {\n\t\treturn String(node);\n\t}\n\tif (isValidElement(node)) {\n\t\tconst props = node.props as { children?: ReactNode };\n\t\treturn Children.toArray(props.children).map(extractText).join('');\n\t}\n\treturn '';\n};\n","/**\n * Do not edit directly, this file was auto-generated.\n */\n\nexport const TYPOGRAPHY_FF_DEFAULT = \"'Inter', sans-serif\";\nexport const TYPOGRAPHY_FF_COMPACT = \"'Inter Tight', sans-serif\";\nexport const TYPOGRAPHY_FF_SECONDARY = \"'IBM Plex Serif', serif\";\nexport const TYPOGRAPHY_FF_CODE = \"'Source Code Pro', monospace\";\nexport const TYPOGRAPHY_FW_LIGHT = 300;\nexport const TYPOGRAPHY_FW_REGULAR = 400;\nexport const TYPOGRAPHY_FW_MEDIUM = 500;\nexport const TYPOGRAPHY_FW_SEMIBOLD = 600;\nexport const TYPOGRAPHY_FW_BOLD = 700;\nexport const TYPOGRAPHY_FW_EXTRABOLD = 800;\nexport const TYPOGRAPHY_LS_XL = \"5%\";\nexport const TYPOGRAPHY_LS_L = \"4%\";\nexport const TYPOGRAPHY_LS_M = \"2%\";\nexport const TYPOGRAPHY_LS_S = \"1%\";\nexport const TYPOGRAPHY_LH_XL = \"195%\";\nexport const TYPOGRAPHY_LH_L = \"165%\";\nexport const TYPOGRAPHY_LH_M = \"150%\";\nexport const TYPOGRAPHY_LH_S = \"130%\";\nexport const TYPOGRAPHY_LH_XS = \"120%\";\nexport const TYPOGRAPHY_LH_CODE = \"180%\";\nexport const TYPOGRAPHY_SIZE_2XS = \"0.625rem\"; // 10px - Metadata, tiny labels\nexport const TYPOGRAPHY_SIZE_XS = \"0.75rem\"; // 12px - Small UI text, captions\nexport const TYPOGRAPHY_SIZE_S = \"0.875rem\"; // 14px - Product default body text, forms, navigation, labels\nexport const TYPOGRAPHY_SIZE_M = \"1rem\"; // 16px - h5/h6 in product, default body in marketing, prose body\nexport const TYPOGRAPHY_SIZE_L = \"1.125rem\"; // 18px - h4 in product, hero body/h6 in marketing, h5/blockquote in prose\nexport const TYPOGRAPHY_SIZE_XL = \"1.25rem\"; // 20px - h3 in product, h5/blog body in marketing, h4 in prose\nexport const TYPOGRAPHY_SIZE_2XL = \"1.5rem\"; // 24px - h2 in product, h4 in marketing, h3 in prose\nexport const TYPOGRAPHY_SIZE_3XL = \"1.75rem\"; // 28px - h1 in product, h2 in prose\nexport const TYPOGRAPHY_SIZE_4XL = \"2rem\"; // 32px - h3 in marketing, h1 in prose\nexport const TYPOGRAPHY_SIZE_5XL = \"2.25rem\"; // 36px - h1 hero/empty states in product, h2 in marketing\nexport const TYPOGRAPHY_SIZE_6XL = \"3rem\"; // 48px - Blog h1, large h2 in marketing\nexport const TYPOGRAPHY_SIZE_7XL = \"3.75rem\"; // 60px - Hero h1 in marketing\nexport const TYPOGRAPHY_SIZE_8XL = \"5rem\"; // 80px - Jumbo h1 in marketing\nexport const TYPOGRAPHY_SIZE_INPUT_LABEL = \"0.8125rem\";\nexport const TYPOGRAPHY_SIZE_INPUT_MESSAGE = \"0.8125rem\";\n\nexport const TYPOGRAPHY_SIZE = {\n TYPOGRAPHY_SIZE_2XS,\n TYPOGRAPHY_SIZE_XS,\n TYPOGRAPHY_SIZE_S,\n TYPOGRAPHY_SIZE_M,\n TYPOGRAPHY_SIZE_L,\n TYPOGRAPHY_SIZE_XL,\n TYPOGRAPHY_SIZE_2XL,\n TYPOGRAPHY_SIZE_3XL,\n TYPOGRAPHY_SIZE_4XL,\n TYPOGRAPHY_SIZE_5XL,\n TYPOGRAPHY_SIZE_6XL,\n TYPOGRAPHY_SIZE_7XL,\n TYPOGRAPHY_SIZE_8XL,\n};\n","import React, {\n\tcreateContext,\n\tReactNode,\n\tuseCallback,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from 'react';\n\ninterface OverlayContextType {\n\tcloseOverlay: () => void;\n\thasOpenOverlay: boolean;\n\topenOverlay: () => void;\n}\n\nexport const OverlayContext = createContext<OverlayContextType | null>(null);\n\nexport const OverlayContextProvider = ({\n\tchildren,\n}: {\n\tchildren: ReactNode;\n}) => {\n\tconst [overlayCount, setOverlayCount] = useState(0);\n\n\tconst openOverlay = useCallback(() => {\n\t\tsetOverlayCount((prev) => prev + 1);\n\t}, []);\n\n\tconst closeOverlay = useCallback(() => {\n\t\tsetOverlayCount((prev) => Math.max(0, prev - 1));\n\t}, []);\n\n\tconst hasOpenOverlay = overlayCount > 0;\n\n\t// Block keyboard shortcuts when overlay is open to prevent them from triggering.\n\t// Add additional keys to the blockedKeys array as needed.\n\tuseEffect(() => {\n\t\tif (!hasOpenOverlay) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst handleKeyDown = (e: KeyboardEvent) => {\n\t\t\t// List of keys to block when overlays are open\n\t\t\tconst blockedKeys = ['/'];\n\n\t\t\tif (blockedKeys.includes(e.key)) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\te.stopImmediatePropagation();\n\t\t\t}\n\t\t};\n\n\t\t// Use capture phase to intercept before other handlers\n\t\tdocument.addEventListener('keydown', handleKeyDown, { capture: true });\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('keydown', handleKeyDown, { capture: true });\n\t\t};\n\t}, [hasOpenOverlay]);\n\n\tconst contextValue: OverlayContextType = {\n\t\tcloseOverlay,\n\t\thasOpenOverlay,\n\t\topenOverlay,\n\t};\n\n\treturn (\n\t\t<OverlayContext.Provider value={contextValue}>\n\t\t\t{children}\n\t\t</OverlayContext.Provider>\n\t);\n};\n\nexport const useOverlayContext = () => {\n\tconst context = useContext(OverlayContext);\n\tif (!context) {\n\t\tthrow new Error(\n\t\t\t'useOverlayContext must be used within OverlayContextProvider',\n\t\t);\n\t}\n\treturn context;\n};\n","import { useCallback, useEffect, useState } from 'react';\n\nexport interface UseKeyPressOptions {\n\t/**\n\t * Whether the Alt key must be pressed. Defaults to false.\n\t */\n\taltKey?: boolean;\n\t/**\n\t * Whether the Ctrl key (or Cmd on Mac) must be pressed. Defaults to false.\n\t */\n\tctrlKey?: boolean;\n\t/**\n\t * Whether the hotkey is enabled. Defaults to true.\n\t */\n\tenabled?: boolean;\n\t/**\n\t * Whether the Meta key (Cmd on Mac, Win on Windows) must be pressed. Defaults to false.\n\t */\n\tmetaKey?: boolean;\n\t/**\n\t * Whether the Shift key must be pressed. Defaults to false.\n\t */\n\tshiftKey?: boolean;\n}\n\nexport const useKeyPress = (\n\ttargetKey: string,\n\tcallback?: (event: KeyboardEvent) => void,\n\toptions?: UseKeyPressOptions,\n) => {\n\tconst {\n\t\taltKey = false,\n\t\tctrlKey = false,\n\t\tenabled = true,\n\t\tmetaKey = false,\n\t\tshiftKey = false,\n\t} = options ?? {};\n\tconst [keyPressed, setKeyPressed] = useState(false);\n\n\t// Check if modifier keys match the requirements\n\tconst modifiersMatch = useCallback(\n\t\t(event: KeyboardEvent) => {\n\t\t\treturn (\n\t\t\t\tevent.altKey === altKey &&\n\t\t\t\tevent.ctrlKey === ctrlKey &&\n\t\t\t\tevent.metaKey === metaKey &&\n\t\t\t\tevent.shiftKey === shiftKey\n\t\t\t);\n\t\t},\n\t\t[altKey, ctrlKey, metaKey, shiftKey],\n\t);\n\n\t// Memoized handler for key down events\n\tconst downHandler = useCallback(\n\t\t(event: KeyboardEvent) => {\n\t\t\t// Check if the pressed key matches the target key and modifiers match\n\t\t\tif (event.key === targetKey && modifiersMatch(event)) {\n\t\t\t\tsetKeyPressed(true);\n\n\t\t\t\t// Execute optional callback if provided\n\t\t\t\tif (callback) {\n\t\t\t\t\tcallback(event);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[targetKey, callback, modifiersMatch],\n\t);\n\n\t// Memoized handler for key up events\n\tconst upHandler = useCallback(\n\t\t(event: KeyboardEvent) => {\n\t\t\tif (event.key === targetKey && modifiersMatch(event)) {\n\t\t\t\tsetKeyPressed(false);\n\t\t\t}\n\t\t},\n\t\t[targetKey, modifiersMatch],\n\t);\n\n\tuseEffect(() => {\n\t\t// Only add event listeners when enabled\n\t\tif (!enabled) return;\n\n\t\t// Add event listeners when the component mounts\n\t\twindow.addEventListener('keydown', downHandler);\n\t\twindow.addEventListener('keyup', upHandler);\n\n\t\t// Cleanup function to remove event listeners when component unmounts\n\t\treturn () => {\n\t\t\twindow.removeEventListener('keydown', downHandler);\n\t\t\twindow.removeEventListener('keyup', upHandler);\n\t\t};\n\t}, [downHandler, upHandler, enabled]);\n\n\t// Return whether the key is currently pressed\n\treturn keyPressed;\n};\n","import React, { ComponentPropsWithoutRef, ReactNode, useState } from 'react';\n\nimport {\n\tautoUpdate,\n\tflip,\n\tFloatingPortal,\n\toffset,\n\tPlacement,\n\tshift,\n\tuseDismiss,\n\tuseFloating,\n\tuseFocus,\n\tuseHover,\n\tuseInteractions,\n\tuseRole,\n} from '@floating-ui/react';\nimport { Z_INDEX_OVERLAY } from '@pantheon-systems/pds-design-tokens/build/js/variables.global.js';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { FuiOffset } from '@libs/types/custom-types';\n\nimport { Icon } from '@components/icons/Icon/Icon';\n\nimport './tooltip.css';\n\ninterface TooltipProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Text to display in tooltip container.\n\t */\n\tcontent: string;\n\t/**\n\t * String or HTML content to use as the trigger instead of an icon. Leave null to use the icon.\n\t */\n\tcustomTrigger?: ReactNode;\n\t/**\n\t * The spacing between the trigger and the tooltip in pixels. Use the default value (in most cases) when using an icon trigger.\n\t */\n\toffsetValue?: FuiOffset;\n\t/**\n\t * The preferred placement of the tooltip relative to the trigger.\n\t */\n\tpreferredPlacement?: Placement;\n\t/**\n\t * The accessible text for the trigger. Only necessary when the trigger is an icon.\n\t */\n\ttriggerAccessibleText?: string;\n\t/**\n\t * Icon to trigger tooltip\n\t */\n\ttriggerIcon?: 'circleInfo' | 'circleQuestion' | 'circleExclamation';\n\t/**\n\t * Color of the trigger icon. Uses PDS default text color options.\n\t */\n\ttriggerIconColor?: 'default' | 'default-secondary' | 'critical';\n\t/**\n\t * Size of the trigger icon. Uses PDS Icon sizing.\n\t */\n\ttriggerIconSize?: 's' | 'm' | 'l';\n\t/**\n\t * Z-index value for the tooltip container. In most cases, the default value should be retained.\n\t */\n\tzIndex?: number;\n}\n\n/**\n * Tooltip UI component\n */\nexport const Tooltip = ({\n\tclassName,\n\tcontent,\n\tcustomTrigger = null,\n\toffsetValue = 6,\n\tpreferredPlacement = 'top',\n\ttriggerAccessibleText = 'Show more information',\n\ttriggerIcon = 'circleInfo',\n\ttriggerIconColor = 'default',\n\ttriggerIconSize = 'm',\n\tzIndex = Z_INDEX_OVERLAY,\n\t...props\n}: TooltipProps) => {\n\t// Set up state.\n\tconst [isOpen, setIsOpen] = useState(false);\n\n\t// Get type of custom trigger.\n\tconst triggerType = typeof customTrigger;\n\n\t// Set up classes.\n\tconst baseClass = 'pds-tooltip';\n\tconst customTriggerClasses = mergeClasses([\n\t\t`${baseClass}__trigger-custom`,\n\t\ttriggerType === 'string' ? `${baseClass}__trigger-text` : null,\n\t]);\n\tconst iconTriggerClasses = mergeClasses([\n\t\t`${baseClass}__trigger`,\n\t\t`${baseClass}__trigger--${triggerIconColor}`,\n\t]);\n\n\t// FUI config.\n\tconst { context, floatingStyles, refs } = useFloating({\n\t\tplacement: preferredPlacement,\n\t\topen: isOpen,\n\t\tonOpenChange: setIsOpen,\n\t\tmiddleware: [offset(offsetValue), flip(), shift()],\n\t\twhileElementsMounted: autoUpdate,\n\t});\n\n\tconst hover = useHover(context, {\n\t\trestMs: 300,\n\t\tdelay: { open: 100, close: 0 },\n\t\tmove: false,\n\t});\n\tconst focus = useFocus(context);\n\tconst dismiss = useDismiss(context);\n\tconst role = useRole(context, { role: 'tooltip' });\n\n\tconst { getFloatingProps, getReferenceProps } = useInteractions([\n\t\thover,\n\t\tfocus,\n\t\tdismiss,\n\t\trole,\n\t]);\n\n\t// Render the output\n\treturn (\n\t\t<div className={mergeClasses([baseClass, className ?? ''])} {...props}>\n\t\t\t{customTrigger ? (\n\t\t\t\t<span\n\t\t\t\t\tref={refs.setReference}\n\t\t\t\t\tclassName={customTriggerClasses}\n\t\t\t\t\t{...getReferenceProps()}\n\t\t\t\t>\n\t\t\t\t\t{customTrigger}\n\t\t\t\t</span>\n\t\t\t) : (\n\t\t\t\t<button\n\t\t\t\t\tref={refs.setReference}\n\t\t\t\t\taria-label={triggerAccessibleText}\n\t\t\t\t\tclassName={iconTriggerClasses}\n\t\t\t\t\ttype='button'\n\t\t\t\t\t{...getReferenceProps()}\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName={`${baseClass}__icon`}\n\t\t\t\t\t\ticonName={triggerIcon}\n\t\t\t\t\t\ticonSize={triggerIconSize}\n\t\t\t\t\t/>\n\t\t\t\t</button>\n\t\t\t)}\n\t\t\t<FloatingPortal>\n\t\t\t\t<div\n\t\t\t\t\tref={refs.setFloating}\n\t\t\t\t\taria-hidden={!isOpen}\n\t\t\t\t\tclassName={`${baseClass}__container`}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\t...floatingStyles,\n\t\t\t\t\t\tzIndex: zIndex,\n\t\t\t\t\t\topacity: isOpen ? 1 : 0,\n\t\t\t\t\t\tpointerEvents: isOpen ? 'auto' : 'none',\n\t\t\t\t\t\ttransition: 'var(--pds-animation-transition-reveal)',\n\t\t\t\t\t}}\n\t\t\t\t\t{...getFloatingProps()}\n\t\t\t\t>\n\t\t\t\t\t{content}\n\t\t\t\t</div>\n\t\t\t</FloatingPortal>\n\t\t</div>\n\t);\n};\n","import React, {\n\tComponentPropsWithoutRef,\n\tforwardRef,\n\tMouseEventHandler,\n\tReactNode,\n\tRef,\n} from 'react';\n\nimport { useId } from '@floating-ui/react';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport { useOverlayContext } from '@utilities/context-providers/OverlayContext/OverlayContext';\nimport { useKeyPress } from '@utilities/hooks/useKeyPress/useKeyPress';\n\nimport { Icon, PDSIcon } from '@components/icons/Icon/Icon';\nimport { Tooltip } from '@components/Tooltip/Tooltip';\n\nimport { SelectOptionGroupType, SelectOptionType } from './Select/Select';\n\nimport './input-utilities.css';\n\n// Input conditional field classes.\nexport const inputCommonClasses = {\n\tbase: 'pds-input',\n\tdisabled: 'pds-is-disabled',\n\trequired: 'pds-is-required',\n\terror: 'pds-has-error',\n\tsuccess: 'pds-has-success',\n\treadonly: 'pds-is-readonly',\n};\n\n// Process input width. Convert to rems.\nexport const getInputWidthStyle = (inputWidth: number) =>\n\tinputWidth ? { maxWidth: `${inputWidth / 16}rem` } : null;\n\n// Function to strip http:// or https:// from input value\nexport const stripUrlProtocol = (value: string): string => {\n\treturn value.replace(/^(https?:\\/\\/)/, '');\n};\n\n// Required Icon.\nexport const RequiredIcon = () => (\n\t<span className='pds-input-label__required'>\n\t\t<Icon\n\t\t\tclassName='pds-input-label__required-icon'\n\t\t\ticonName='asterisk'\n\t\t\ticonSize='s'\n\t\t/>\n\t</span>\n);\n\n// InputLabel component.\ninterface InputLabelProps {\n\t/**\n\t * Additional class names.\n\t */\n\tclassName?: string;\n\t/**\n\t * Is the field disabled?\n\t */\n\tdisabled: boolean;\n\t/**\n\t * Input ID.\n\t */\n\tid: string;\n\t/**\n\t * Is the label a legend? Should be used when the input is a fieldset.\n\t */\n\tisLegend?: boolean;\n\t/**\n\t * Not a true `label`, but a description of the field.\n\t * Used for inputs that have their label built into the element itself.\n\t */\n\tisPseudoLabel?: boolean;\n\t/**\n\t * Label text.\n\t */\n\tlabel: string;\n\t/**\n\t * Is the field required?\n\t */\n\trequired: boolean;\n\t/**\n\t * Should the label be visible?\n\t */\n\tshowLabel: boolean;\n\t/**\n\t * Optional tooltip text to display additional information.\n\t */\n\ttooltipText?: string;\n}\n\nexport const InputLabel = ({\n\tclassName,\n\tdisabled,\n\tid,\n\tisLegend,\n\tisPseudoLabel,\n\tlabel,\n\trequired,\n\tshowLabel = true,\n\ttooltipText = null,\n}: InputLabelProps) => {\n\tconst labelClasses = mergeClasses([\n\t\t'pds-input-label',\n\t\t!showLabel ? 'visually-hidden' : null,\n\t\tclassName ?? '',\n\t]);\n\n\tconst labelContent = (\n\t\t<>\n\t\t\t{label}\n\t\t\t{required && !disabled && <RequiredIcon />}\n\t\t\t{tooltipText && (\n\t\t\t\t<Tooltip content={tooltipText}>\n\t\t\t\t\t<span>\n\t\t\t\t\t\t<Icon iconName='circleInfo' iconSize='s' />\n\t\t\t\t\t</span>\n\t\t\t\t</Tooltip>\n\t\t\t)}\n\t\t</>\n\t);\n\n\t// If it's a legend, return a legend element.\n\tif (isLegend) {\n\t\treturn (\n\t\t\t<legend className={labelClasses} id={`${id}-legend`}>\n\t\t\t\t{labelContent}\n\t\t\t</legend>\n\t\t);\n\t}\n\n\t// If it's a pseudo label, return a span element.\n\tif (isPseudoLabel) {\n\t\treturn (\n\t\t\t<span className={labelClasses} id={`${id}-field-label`}>\n\t\t\t\t{labelContent}\n\t\t\t</span>\n\t\t);\n\t}\n\n\t// Otherwise, return a label element.\n\treturn (\n\t\t<label className={labelClasses} htmlFor={id} id={`${id}-label`}>\n\t\t\t{labelContent}\n\t\t</label>\n\t);\n};\n\n// InputMessage component.\nexport const InputMessage = ({\n\tclassName,\n\tforInputGroup = false,\n\thasValidationMessage,\n\tid,\n\tmessage,\n\tvalidationMessageHasDecorators,\n\tvalidationStatus,\n}: {\n\tclassName?: string;\n\tforInputGroup?: boolean;\n\thasValidationMessage?: boolean;\n\tid: string;\n\tmessage?: string | ReactNode;\n\tvalidationMessageHasDecorators?: boolean;\n\tvalidationStatus?: string;\n}) => {\n\tconst baseClass = 'pds-input-message';\n\tconst statusClass =\n\t\tvalidationStatus && hasValidationMessage\n\t\t\t? `${baseClass}--${validationStatus}`\n\t\t\t: null;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([baseClass, statusClass, className ?? ''])}\n\t\t\tid={forInputGroup ? `${id}__message-hidden` : `${id}__message`}\n\t\t\trole={validationStatus === 'error' ? 'alert' : null}\n\t\t>\n\t\t\t{validationMessageHasDecorators && validationStatus && (\n\t\t\t\t<InputPrefix variant={validationStatus as PrefixVariants} />\n\t\t\t)}\n\t\t\t<div className={`${baseClass}__text`}>{message}</div>\n\t\t</div>\n\t);\n};\n\n// InputPrefix component.\nexport type PrefixVariants = 'search' | 'error' | 'success' | 'filter';\n\nconst prefixIconVariants: Record<PrefixVariants, PDSIcon> = {\n\tsearch: 'magnifyingGlass',\n\terror: 'triangleExclamation',\n\tsuccess: 'check',\n\tfilter: 'barsFilter',\n};\n\nexport const InputPrefix = ({ variant }: { variant: PrefixVariants }) => {\n\tconst baseClass = 'pds-input-prefix';\n\n\treturn (\n\t\t<div className={mergeClasses([baseClass, `${baseClass}--${variant}`])}>\n\t\t\t<Icon\n\t\t\t\tclassName={`${baseClass}__icon`}\n\t\t\t\ticonName={prefixIconVariants[variant]}\n\t\t\t\ticonSize='m'\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\n// SearchShortcut component.\nexport const SearchShortcut = ({\n\tinputId,\n\tshortcutLabel,\n}: {\n\tinputId: string;\n\tshortcutLabel: string;\n}) => {\n\t// Get overlay context.\n\tconst { hasOpenOverlay } = useOverlayContext();\n\n\t// Handle search shortcut.\n\tconst handleSearchShortcut = (e: KeyboardEvent) => {\n\t\tconst element = document.getElementById(inputId);\n\t\tif (element) {\n\t\t\telement.focus();\n\t\t}\n\t\te.preventDefault();\n\t};\n\n\t// Set up search shortcut hotkey.\n\t// Disabled when an overlay (modal, mobile menu, etc.) is open.\n\t// The \"/\" key is globally blocked at the OverlayContext level when overlays are open.\n\tuseKeyPress('/', handleSearchShortcut, {\n\t\tenabled: !hasOpenOverlay,\n\t});\n\n\treturn (\n\t\t<div className='pds-input-search-shortcut'>\n\t\t\t<span className='visually-hidden'>{shortcutLabel}</span>\n\t\t\t<Icon iconName='slashForward' iconSize='s' />\n\t\t</div>\n\t);\n};\n\n// ClearButton component.\nexport const ClearButton = ({\n\tclearLabel,\n\thandleClearInput,\n\tid,\n}: {\n\tclearLabel: string;\n\thandleClearInput: MouseEventHandler<HTMLButtonElement>;\n\tid: string;\n}) => {\n\treturn (\n\t\t<button\n\t\t\taria-controls={id}\n\t\t\tclassName='pds-input-clear-button'\n\t\t\tonClick={handleClearInput}\n\t\t\ttitle={clearLabel}\n\t\t\ttype='button'\n\t\t>\n\t\t\t<Icon iconName='xmark' iconSize='m' />\n\t\t</button>\n\t);\n};\n\n// CharacterCounter component.\nexport const CharacterCounter = ({\n\tcurrentLength,\n\tid,\n\tmaxLength,\n\toverLimitMessage = 'Character limit exceeded by',\n}: {\n\tcurrentLength: number;\n\tid: string;\n\tmaxLength: number;\n\toverLimitMessage: string;\n}) => {\n\tconst isOverLimit = currentLength > maxLength;\n\tconst overLimitCount = currentLength - maxLength;\n\n\tconst baseClass = 'pds-input-character-counter';\n\tconst overLimitClass = isOverLimit ? `${baseClass}--overLimit` : null;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([baseClass, overLimitClass])}\n\t\t\tid={`${id}__counter`}\n\t\t>\n\t\t\t{currentLength}/{maxLength}\n\t\t\t<span aria-live='polite' className='visually-hidden'>\n\t\t\t\t{isOverLimit && `${overLimitMessage} ${overLimitCount}`}\n\t\t\t</span>\n\t\t</div>\n\t);\n};\n\n// HiddenLabel component.\nexport const HiddenLabel = ({ label, ...props }) => (\n\t<span className='visually-hidden' {...props}>\n\t\t{label}\n\t</span>\n);\n\n// Select option group component.\nexport const isOptionGroup = (\n\toption: SelectOptionType | SelectOptionGroupType,\n): option is SelectOptionGroupType => {\n\treturn 'options' in option;\n};\n\n// Select option component.\n// For use with Combobox and Select components.\ninterface SelectOptionProps extends ComponentPropsWithoutRef<'li'> {\n\tchildren?: ReactNode;\n\tclassName?: string;\n\tisActive?: boolean;\n}\n\nexport const SelectOption = forwardRef(\n\t(\n\t\t{ children, className, isActive, ...props }: SelectOptionProps,\n\t\tref: Ref<HTMLLIElement>,\n\t) => {\n\t\tconst id = useId();\n\n\t\tconst baseClass = 'pds-input__select-option';\n\t\tconst activeClass = isActive ? `${baseClass}--active` : null;\n\n\t\treturn (\n\t\t\t<li\n\t\t\t\tref={ref}\n\t\t\t\taria-selected={isActive}\n\t\t\t\tclassName={mergeClasses([baseClass, activeClass, className ?? ''])}\n\t\t\t\tid={id}\n\t\t\t\trole='option'\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</li>\n\t\t);\n\t},\n);\n","import React, { ComponentPropsWithoutRef, CSSProperties } from 'react';\n\nimport {\n\tSPACING_2XL,\n\tSPACING_3XL,\n\tSPACING_4XL,\n\tSPACING_5XL,\n\tSPACING_6XL,\n\tSPACING_L,\n\tSPACING_M,\n\tSPACING_S,\n\tSPACING_XL,\n\tSPACING_XS,\n} from '@pantheon-systems/pds-design-tokens/build/js/variables.global.js';\nimport {\n\tTYPOGRAPHY_SIZE_M,\n\tTYPOGRAPHY_SIZE_S,\n\tTYPOGRAPHY_SIZE_XS,\n} from '@pantheon-systems/pds-design-tokens/build/js/variables.typography.js';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport { HiddenLabel } from '@components/inputs/input-utilities';\n\nexport type SpinnerSize =\n\t| 's'\n\t| 'm'\n\t| 'l'\n\t| 'xl'\n\t| '2xl'\n\t| '3xl'\n\t| '4xl'\n\t| '5xl'\n\t| '6xl';\n\nexport type SpinnerColorType =\n\t| 'full-color'\n\t| 'monochromatic'\n\t| 'monochromatic-reverse';\n\nimport './spinner.css';\n\nexport interface SpinnerProps extends ComponentPropsWithoutRef<'span'> {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Spinner color\n\t */\n\tcolorType?: SpinnerColorType;\n\t/**\n\t * Should the spinner be an inline element? If true, it will be displayed inline-block without a visible label.\n\t */\n\tisInline?: boolean;\n\t/**\n\t * Spinner label. Will be displayed below the Spinner if `showLabel` is true.\n\t */\n\tlabel?: string;\n\t/**\n\t * Should the label be visible? If false, it will render for screen readers only.\n\t */\n\tshowLabel?: boolean;\n\t/**\n\t * Spinner size\n\t */\n\tsize?: SpinnerSize;\n}\n\n// Size mapping for spinner dimensions\nconst spinnerSizes: Record<SpinnerSize, string> = {\n\ts: SPACING_S,\n\tm: SPACING_M,\n\tl: SPACING_L,\n\txl: SPACING_XL,\n\t'2xl': SPACING_2XL,\n\t'3xl': SPACING_3XL,\n\t'4xl': SPACING_4XL,\n\t'5xl': SPACING_5XL,\n\t'6xl': SPACING_6XL,\n};\n\n// Font size mapping for labels\nconst labelFontSizes: Record<SpinnerSize, string> = {\n\ts: TYPOGRAPHY_SIZE_XS,\n\tm: TYPOGRAPHY_SIZE_XS,\n\tl: TYPOGRAPHY_SIZE_XS,\n\txl: TYPOGRAPHY_SIZE_XS,\n\t'2xl': TYPOGRAPHY_SIZE_XS,\n\t'3xl': TYPOGRAPHY_SIZE_S,\n\t'4xl': TYPOGRAPHY_SIZE_S,\n\t'5xl': TYPOGRAPHY_SIZE_M,\n\t'6xl': TYPOGRAPHY_SIZE_M,\n};\n\n// Label margin mapping\nconst labelMargins: Record<SpinnerSize, string> = {\n\ts: SPACING_XS,\n\tm: SPACING_XS,\n\tl: SPACING_XS,\n\txl: SPACING_XS,\n\t'2xl': SPACING_XS,\n\t'3xl': SPACING_S,\n\t'4xl': SPACING_S,\n\t'5xl': SPACING_M,\n\t'6xl': SPACING_L,\n};\n\n/**\n * Spinner UI component\n */\nexport const Spinner = ({\n\tclassName = '',\n\tcolorType = 'full-color',\n\tisInline = false,\n\tlabel = 'Loading',\n\tshowLabel = false,\n\tsize = '3xl',\n\t...props\n}: SpinnerProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-spinner';\n\tconst colorClass =\n\t\tcolorType !== 'full-color' ? `${baseClass}--${colorType}` : null;\n\tconst displayClass = isInline ? `${baseClass}--inline` : null;\n\n\t// Get size values\n\tconst spinnerSize = spinnerSizes[size];\n\tconst fontSize = labelFontSizes[size];\n\tconst labelMargin = labelMargins[size];\n\n\t// Calculate line width: 12% of size, rounded up to nearest pixel\n\tconst lineWidth = Math.ceil(parseFloat(spinnerSize) * 16 * 0.13);\n\n\t// Create inline styles for sizing\n\tconst spinnerStyles = {\n\t\t'--spinner-size': spinnerSize,\n\t\t'--spinner-line': `${lineWidth}px`,\n\t} as CSSProperties;\n\n\tconst labelStyles = {\n\t\tfontSize: fontSize,\n\t\tmarginBlockStart: labelMargin,\n\t} as CSSProperties;\n\n\t// Render the output\n\treturn (\n\t\t<span\n\t\t\taria-hidden='true'\n\t\t\tclassName={mergeClasses([baseClass, colorClass, displayClass, className])}\n\t\t\trole='status'\n\t\t\tstyle={spinnerStyles}\n\t\t\t{...props}\n\t\t>\n\t\t\t<span className={`${baseClass}__icon`}></span>\n\t\t\t{showLabel && !isInline ? (\n\t\t\t\t<span className={`${baseClass}__label`} style={labelStyles}>\n\t\t\t\t\t{label}\n\t\t\t\t</span>\n\t\t\t) : (\n\t\t\t\t<HiddenLabel label={label} />\n\t\t\t)}\n\t\t</span>\n\t);\n};\n","import React, {\n\tComponentPropsWithoutRef,\n\tforwardRef,\n\tMouseEvent,\n\tReactNode,\n\tRef,\n} from 'react';\n\nimport { extractText } from '@libs/components/utility-components';\nimport { mergeClasses } from '@libs/components/utils';\nimport {\n\tButtonDisplayType,\n\tButtonSize,\n\tButtonType,\n\tButtonVariant,\n\tIconSize,\n} from '@libs/types/custom-types';\n\nimport { Icon, PDSIcon } from '@components/icons/Icon/Icon';\nimport {\n\tSpinner,\n\tSpinnerColorType,\n\tSpinnerSize,\n} from '@components/loading-indicators/Spinner/Spinner';\nimport { Tooltip } from '@components/Tooltip/Tooltip';\n\nimport './button.css';\n\ninterface ButtonProps extends ComponentPropsWithoutRef<'button'> {\n\t/**\n\t * Aria-label attribute.\n\t */\n\tariaLabel?: string;\n\t/**\n\t * Type of button\n\t */\n\tbuttonType?: ButtonType;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Is the button disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * How the button is displayed.\n\t */\n\tdisplayType?: ButtonDisplayType;\n\t/**\n\t * Which icon to render\n\t */\n\ticonName?: PDSIcon;\n\t/**\n\t * is the button full width?\n\t */\n\tisFullWidth?: boolean;\n\t/**\n\t * Is the button in the process of an initial load?\n\t */\n\tisLoading?: boolean;\n\t/**\n\t * Will this be used for a split button?\n\t */\n\tisSplitButton?: boolean;\n\t/**\n\t * Is the button in a working state?\n\t */\n\tisWorking?: boolean;\n\t/**\n\t * The text of the button\n\t */\n\tlabel: ReactNode;\n\t/**\n\t * Click event handler callback\n\t */\n\tonClick?: (e: MouseEvent<HTMLElement>) => void;\n\t/**\n\t * Which size of button to render\n\t * @default 's'\n\t */\n\tsize?: ButtonSize;\n\t/**\n\t * Text for an optional tooltip to be displayed when the button is `disabled`, `isLoading`, or `isWorking`.\n\t */\n\ttooltipText?: string;\n\n\t/**\n\t * Which variant of button to render\n\t */\n\tvariant?: ButtonVariant;\n}\n\n/**\n * A Component used to render a Button\n */\nexport const Button = forwardRef(\n\t(\n\t\t{\n\t\t\tariaLabel,\n\t\t\tbuttonType = 'button',\n\t\t\tclassName = '',\n\t\t\tdisabled = false,\n\t\t\tdisplayType = 'label-only',\n\t\t\ticonName,\n\t\t\tisFullWidth = false,\n\t\t\tisLoading = false,\n\t\t\tisSplitButton = false,\n\t\t\tisWorking = false,\n\t\t\tlabel,\n\t\t\tonClick,\n\t\t\tsize = 's',\n\t\t\ttooltipText,\n\t\t\tvariant = 'primary',\n\t\t\t...props\n\t\t}: ButtonProps,\n\t\tref: Ref<HTMLButtonElement>,\n\t) => {\n\t\t// Set up classes.\n\t\tconst baseClass = 'pds-button';\n\t\tconst sizeClass = `${baseClass}--${size}`;\n\t\tconst variantClass = `${baseClass}--${variant}`;\n\t\tconst fullWidthClass = isFullWidth ? `${baseClass}--full-width` : null;\n\t\tconst loadingClass = isLoading ? `${baseClass}--loading` : null;\n\t\tconst pulseClass = isLoading ? 'pds-pulse' : null;\n\n\t\t// Map button sizes to icon and spinner sizes.\n\t\tlet setIconSize: IconSize;\n\t\tlet setSpinnerSize: SpinnerSize;\n\t\tswitch (size) {\n\t\t\tcase 'xs':\n\t\t\t\tsetIconSize = 's';\n\t\t\t\tsetSpinnerSize = 's';\n\t\t\t\tbreak;\n\t\t\tcase 's':\n\t\t\t\tsetIconSize = 'm';\n\t\t\t\tsetSpinnerSize = 'm';\n\t\t\t\tbreak;\n\t\t\tcase 'm':\n\t\t\t\tsetIconSize = 'm';\n\t\t\t\tsetSpinnerSize = 'm';\n\t\t\t\tbreak;\n\t\t\tcase 'l':\n\t\t\t\tsetIconSize = 'm';\n\t\t\t\tsetSpinnerSize = 'l';\n\t\t\t\tbreak;\n\t\t\tcase 'xl':\n\t\t\t\tsetIconSize = 'l';\n\t\t\t\tsetSpinnerSize = 'l';\n\t\t\t\tbreak;\n\t\t}\n\n\t\t// Map spinner colors based on button variant.\n\t\tlet setSpinnerColor: SpinnerColorType = 'monochromatic';\n\t\tconst reverseVariants: ButtonVariant[] = ['primary'];\n\t\tif (reverseVariants.includes(variant)) {\n\t\t\tsetSpinnerColor = 'monochromatic-reverse';\n\t\t}\n\n\t\t// Render the chosen icon\n\t\tconst renderedIcon = (\n\t\t\t<Icon\n\t\t\t\tkey='icon'\n\t\t\t\tclassName={`${baseClass}__icon`}\n\t\t\t\ticonName={iconName}\n\t\t\t\ticonSize={setIconSize}\n\t\t\t/>\n\t\t);\n\n\t\t// Set content of the button based on displayType.\n\t\tlet buttonContent = [label];\n\n\t\tif (displayType == 'icon-start' && iconName) {\n\t\t\tbuttonContent.unshift(renderedIcon);\n\t\t}\n\t\tif (displayType == 'icon-end' && iconName) {\n\t\t\tbuttonContent.push(renderedIcon);\n\t\t}\n\n\t\t// Use label as aria-label when used as a split button.\n\t\tif (isSplitButton) {\n\t\t\tbuttonContent = [renderedIcon];\n\t\t\tariaLabel = extractText(label);\n\t\t}\n\n\t\t// Preprocess the button element.\n\t\tconst buttonElement = (\n\t\t\t<button\n\t\t\t\tref={ref}\n\t\t\t\taria-label={ariaLabel}\n\t\t\t\tclassName={mergeClasses([\n\t\t\t\t\tbaseClass,\n\t\t\t\t\tsizeClass,\n\t\t\t\t\tvariantClass,\n\t\t\t\t\tfullWidthClass,\n\t\t\t\t\tloadingClass,\n\t\t\t\t\tpulseClass,\n\t\t\t\t\tclassName,\n\t\t\t\t])}\n\t\t\t\tdisabled={disabled || isLoading || isWorking}\n\t\t\t\tonClick={onClick}\n\t\t\t\ttype={buttonType}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{isWorking && !isLoading && (\n\t\t\t\t\t<Spinner\n\t\t\t\t\t\tclassName={`${baseClass}__working-indicator`}\n\t\t\t\t\t\tcolorType={setSpinnerColor}\n\t\t\t\t\t\tsize={setSpinnerSize}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t{buttonContent}\n\t\t\t</button>\n\t\t);\n\n\t\treturn (disabled || isLoading || isWorking) && tooltipText ? (\n\t\t\t<Tooltip content={tooltipText} customTrigger={buttonElement} />\n\t\t) : (\n\t\t\t<>{buttonElement}</>\n\t\t);\n\t},\n);\n","import React, {\n\tcloneElement,\n\tComponentPropsWithoutRef,\n\tisValidElement,\n\tReactElement,\n\tReactNode,\n} from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport {\n\tButtonDisplayType,\n\tButtonSize,\n\tButtonVariant,\n\tIconSize,\n} from '@libs/types/custom-types';\n\nimport { Button } from '@components/buttons/Button/Button';\nimport { Icon, PDSIcon } from '@components/icons/Icon/Icon';\n\nimport '../Button/button.css';\nimport './button-link.css';\n\ntype ButtonLinkVariant = Exclude<ButtonVariant, 'navbar' | 'inline'>;\n\n/**\n * Prop types for ButtonLink\n */\nexport interface ButtonLinkProps extends ComponentPropsWithoutRef<'span'> {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Is the link disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Display type of the button.\n\t */\n\tdisplayType?: ButtonDisplayType;\n\t/**\n\t * Icon to render in the button. Only necessary if `displayType` is 'icon-start' or 'icon-end'.\n\t */\n\ticonName?: PDSIcon;\n\t/**\n\t * A link element using the router of your choice.\n\t */\n\tlinkContent: ReactNode;\n\t/**\n\t * Size of the button.\n\t */\n\tsize?: ButtonSize;\n\t/**\n\t * Text for an optional tooltip to be displayed when the button is `disabled`.\n\t */\n\ttooltipText?: string;\n\t/**\n\t * Variant of the button.\n\t */\n\tvariant?: ButtonLinkVariant;\n}\n\n/**\n * ButtonLink UI component\n */\nexport const ButtonLink = ({\n\tclassName,\n\tdisabled = false,\n\tdisplayType = 'label-only',\n\ticonName,\n\tlinkContent,\n\tsize = 's',\n\ttooltipText,\n\tvariant = 'primary',\n\t...props\n}: ButtonLinkProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-button-link';\n\tconst buttonBaseClass = 'pds-button';\n\tconst sizeClass = `${buttonBaseClass}--${size}`;\n\tconst variantClass = `${buttonBaseClass}--${variant}`;\n\tconst buttonModifierClasses = mergeClasses([\n\t\tbuttonBaseClass,\n\t\tsizeClass,\n\t\tvariantClass,\n\t]);\n\n\t// Get the label text from the link element.\n\tconst linkText = isValidElement(linkContent)\n\t\t? (linkContent.props as { children: ReactNode }).children\n\t\t: null;\n\n\t// Map button sizes to icon sizes.\n\tlet setIconSize: IconSize;\n\tswitch (size) {\n\t\tcase 'xs':\n\t\t\tsetIconSize = 's';\n\t\t\tbreak;\n\t\tcase 's':\n\t\t\tsetIconSize = 'm';\n\t\t\tbreak;\n\t\tcase 'm':\n\t\t\tsetIconSize = 'm';\n\t\t\tbreak;\n\t\tcase 'l':\n\t\t\tsetIconSize = 'm';\n\t\t\tbreak;\n\t\tcase 'xl':\n\t\t\tsetIconSize = 'l';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tsetIconSize = 'm';\n\t\t\tbreak;\n\t}\n\n\t// Render the chosen icon\n\tconst renderedIcon = (\n\t\t<Icon\n\t\t\tkey={iconName}\n\t\t\tclassName={`${baseClass}__icon`}\n\t\t\ticonName={iconName}\n\t\t\ticonSize={setIconSize}\n\t\t/>\n\t);\n\n\t// Add the icon to the button if necessary.\n\tlet linkLabel = [linkText];\n\tif (displayType === 'icon-start' && iconName) {\n\t\tlinkLabel = [renderedIcon, linkText];\n\t} else if (displayType === 'icon-end' && iconName) {\n\t\tlinkLabel = [linkText, renderedIcon];\n\t}\n\n\t// Clone the original link element so that we can add the appropriate classes and children to it.\n\tconst processedLink = isValidElement(linkContent)\n\t\t? cloneElement(\n\t\t\t\tlinkContent as ReactElement,\n\t\t\t\tObject.assign({}, linkContent.props, {\n\t\t\t\t\tclassName: buttonModifierClasses,\n\t\t\t\t\tchildren: linkLabel,\n\t\t\t\t}),\n\t\t\t)\n\t\t: null;\n\n\t// If the ButtonLink is disabled, render a disabled regular button.\n\tif (disabled) {\n\t\treturn (\n\t\t\t<Button\n\t\t\t\tdisabled\n\t\t\t\tclassName={mergeClasses([baseClass, className ?? ''])}\n\t\t\t\tlabel={linkLabel}\n\t\t\t\tsize={size}\n\t\t\t\ttooltipText={tooltipText ?? null}\n\t\t\t\tvariant={variant}\n\t\t\t/>\n\t\t);\n\t}\n\n\t// If not disabled, render the output.\n\treturn (\n\t\t<span className={mergeClasses([baseClass, className ?? ''])} {...props}>\n\t\t\t{processedLink}\n\t\t</span>\n\t);\n};\n","import { useEffect, useState } from 'react';\n\ninterface ClipboardOptions {\n\tduration?: number;\n}\n\ntype UseClipboardReturn = [boolean, () => Promise<void>];\n\nexport const useClipboard = (\n\ttext: string,\n\toptions?: ClipboardOptions,\n): UseClipboardReturn => {\n\tconst [isCopied, setIsCopied] = useState<boolean>(false);\n\tconst duration = options?.duration;\n\n\tuseEffect(() => {\n\t\tlet id: NodeJS.Timeout | undefined;\n\n\t\tif (isCopied && duration) {\n\t\t\tid = setTimeout(() => {\n\t\t\t\tsetIsCopied(false);\n\t\t\t}, duration);\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (id) {\n\t\t\t\tclearTimeout(id);\n\t\t\t}\n\t\t};\n\t}, [isCopied, duration]);\n\n\tconst doCopy = async () => {\n\t\tif (navigator.clipboard) {\n\t\t\ttry {\n\t\t\t\tawait navigator.clipboard.writeText(text);\n\t\t\t\tsetIsCopied(true);\n\t\t\t} catch {\n\t\t\t\t// Intentionally ignore clipboard write errors\n\t\t\t}\n\t\t}\n\t};\n\n\treturn [isCopied, doCopy];\n};\n","import React, {\n\tComponentPropsWithoutRef,\n\tforwardRef,\n\tMouseEvent,\n\tRef,\n\tuseRef,\n} from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { ButtonType, IconSize } from '@libs/types/custom-types';\n\nimport { Icon, PDSIcon } from '@components/icons/Icon/Icon';\nimport { Tooltip } from '@components/Tooltip/Tooltip';\n\nimport './icon-button.css';\n\ntype IconButtonSize = 's' | 'm';\n\ninterface IconButtonProps extends ComponentPropsWithoutRef<'button'> {\n\t/**\n\t * Aria-label attribute.\n\t */\n\tariaLabel: string;\n\t/**\n\t * Type of button\n\t */\n\tbuttonType?: ButtonType;\n\t/**\n\t * Additional class names.\n\t */\n\tclassName?: string;\n\t/**\n\t * Is the button disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Show tooltip on hover. If false, the title attribute will be used.\n\t */\n\thasTooltip?: boolean;\n\t/**\n\t * Which icon to render second. If this is set, the button will be animated.\n\t */\n\ticon2Name?: PDSIcon;\n\t/**\n\t * Which icon to render.\n\t */\n\ticonName: PDSIcon;\n\t/**\n\t * Click event handler callback.\n\t */\n\tonClick?: (e: MouseEvent<HTMLElement>) => void;\n\t/**\n\t * Which size of button to render.\n\t */\n\tsize?: IconButtonSize;\n\t/**\n\t * Which variant of button to render.\n\t */\n\tvariant?: 'standard' | 'reverse' | 'critical';\n}\n\n/**\n * IconButton UI component\n */\nexport const IconButton = forwardRef(\n\t(\n\t\t{\n\t\t\tariaLabel,\n\t\t\tbuttonType = 'button',\n\t\t\tclassName,\n\t\t\tdisabled = false,\n\t\t\thasTooltip = true,\n\t\t\ticon2Name = null,\n\t\t\ticonName,\n\t\t\tonClick,\n\t\t\tsize = 's',\n\t\t\tvariant = 'standard',\n\t\t\t...props\n\t\t}: IconButtonProps,\n\t\tref: Ref<HTMLButtonElement>,\n\t) => {\n\t\t// Set up classes.\n\t\tconst baseClass = 'pds-icon-button';\n\t\tconst sizeClass = size !== 's' ? `${baseClass}--${size}` : null;\n\t\tconst variantClass =\n\t\t\tvariant !== 'standard' ? `${baseClass}--${variant}` : null;\n\n\t\tconst animationClasses = {\n\t\t\tfadeOut: `${baseClass}--fadeOut`,\n\t\t\thide: `${baseClass}--hide`,\n\t\t\tscaleIn: `${baseClass}--scaleIn`,\n\t\t};\n\n\t\t// Map button sizes to icon sizes and offset values.\n\t\tlet setOffsetValue: number;\n\t\tlet setIconSize: IconSize;\n\t\tswitch (size) {\n\t\t\tcase 's':\n\t\t\t\tsetIconSize = 'm';\n\t\t\t\tsetOffsetValue = 8;\n\t\t\t\tbreak;\n\t\t\tcase 'm':\n\t\t\t\tsetIconSize = 'l';\n\t\t\t\tsetOffsetValue = 11;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tsetIconSize = 'm';\n\t\t\t\tsetOffsetValue = 8;\n\t\t\t\tbreak;\n\t\t}\n\n\t\t// If there is a second icon, the button will be animated.\n\t\tconst isAnimated = icon2Name !== null;\n\n\t\t// Set up refs for the two icons.\n\t\tconst icon1Ref = useRef(null);\n\t\tconst icon2Ref = useRef(null);\n\n\t\t// Set up the animation transitions.\n\t\tconst handleAnimation = () => {\n\t\t\ticon1Ref.current.classList.add(animationClasses.fadeOut);\n\t\t\ticon1Ref.current.classList.add(animationClasses.hide);\n\n\t\t\ticon2Ref.current.classList.remove(animationClasses.hide);\n\t\t\ticon2Ref.current.classList.add(animationClasses.scaleIn);\n\n\t\t\tsetTimeout(() => {\n\t\t\t\ticon1Ref.current.classList.remove(\n\t\t\t\t\tanimationClasses.fadeOut,\n\t\t\t\t\tanimationClasses.hide,\n\t\t\t\t);\n\t\t\t\ticon1Ref.current.classList.add(animationClasses.scaleIn);\n\n\t\t\t\ticon2Ref.current.classList.remove(animationClasses.scaleIn);\n\t\t\t\ticon2Ref.current.classList.add(animationClasses.hide);\n\t\t\t}, 2000);\n\t\t};\n\n\t\t// Handle click.\n\t\tconst handleClick = (e: MouseEvent<HTMLElement>) => {\n\t\t\tif (isAnimated) {\n\t\t\t\thandleAnimation();\n\t\t\t}\n\n\t\t\tif (onClick) {\n\t\t\t\tonClick(e);\n\t\t\t}\n\t\t};\n\n\t\t// Preprocess button content.\n\t\tconst buttonContent = isAnimated ? (\n\t\t\t<div className={`${baseClass}__content`}>\n\t\t\t\t<div ref={icon1Ref} className={`${baseClass}__icon-wrapper`}>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName={`${baseClass}__icon`}\n\t\t\t\t\t\ticonName={iconName}\n\t\t\t\t\t\ticonSize={setIconSize}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tref={icon2Ref}\n\t\t\t\t\tclassName={`${baseClass}__icon-wrapper ${animationClasses.hide}`}\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName={`${baseClass}__icon`}\n\t\t\t\t\t\ticonName={icon2Name}\n\t\t\t\t\t\ticonSize={setIconSize}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t) : (\n\t\t\t<div className={`${baseClass}__content`}>\n\t\t\t\t<Icon\n\t\t\t\t\tclassName={`${baseClass}__icon`}\n\t\t\t\t\ticonName={iconName}\n\t\t\t\t\ticonSize={setIconSize}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\n\t\t// Render the output\n\t\treturn (\n\t\t\t<button\n\t\t\t\tref={ref}\n\t\t\t\taria-label={ariaLabel}\n\t\t\t\tclassName={mergeClasses([\n\t\t\t\t\tbaseClass,\n\t\t\t\t\tsizeClass,\n\t\t\t\t\tvariantClass,\n\t\t\t\t\tclassName,\n\t\t\t\t])}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tonClick={handleClick}\n\t\t\t\ttitle={hasTooltip && !disabled ? null : ariaLabel}\n\t\t\t\ttype={buttonType}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{hasTooltip && !disabled ? (\n\t\t\t\t\t<Tooltip\n\t\t\t\t\t\tclassName={`${baseClass}__tooltip`}\n\t\t\t\t\t\tcontent={ariaLabel}\n\t\t\t\t\t\tcustomTrigger={buttonContent}\n\t\t\t\t\t\toffsetValue={setOffsetValue}\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\tbuttonContent\n\t\t\t\t)}\n\t\t\t</button>\n\t\t);\n\t},\n);\n","import React, { ComponentPropsWithoutRef } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport { useClipboard } from '@utilities/hooks/useClipboard/useClipboard';\n\nimport { IconButton } from '@components/buttons/IconButton/IconButton';\n\n/**\n * Prop types for ClipboardButton\n */\nexport interface ClipboardButtonProps\n\textends ComponentPropsWithoutRef<'button'> {\n\t/**\n\t * Translation string for aria-label attribute and tooltip text.\n\t */\n\tariaLabel: string;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Text to copy to clipboard.\n\t */\n\tclipboardText?: string;\n\t/**\n\t * Is the button disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Which variant of button to render.\n\t */\n\tvariant?: 'standard' | 'reverse';\n}\n\n/**\n * ClipboardButton UI component\n */\nexport const ClipboardButton = ({\n\tariaLabel = 'Copy to clipboard',\n\tclassName,\n\tclipboardText = '',\n\tdisabled,\n\tvariant = 'standard',\n\t...props\n}: ClipboardButtonProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-clipboard-button';\n\n\t// Set up clipboard hook.\n\tconst [_isCopied, setIsCopied] = useClipboard(clipboardText);\n\n\t// Render the output\n\treturn (\n\t\t<IconButton\n\t\t\tariaLabel={ariaLabel}\n\t\t\tbuttonType='button'\n\t\t\tclassName={mergeClasses([baseClass, className ?? ''])}\n\t\t\tdisabled={disabled}\n\t\t\ticon2Name='check'\n\t\t\ticonName='copy'\n\t\t\tonClick={setIsCopied}\n\t\t\tsize='m'\n\t\t\tvariant={variant}\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n","import React, { ComponentPropsWithoutRef } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport { Icon } from '@components/icons/Icon/Icon';\n\nimport './close-button.css';\n\n/**\n * Prop types for CloseButton\n */\nexport interface CloseButtonProps extends ComponentPropsWithoutRef<'button'> {\n\t/**\n\t * Aria-label attribute.\n\t */\n\tariaLabel?: string;\n\t/**\n\t * Additional class names.\n\t */\n\tclassName?: string;\n\t/**\n\t * Click event callback function.\n\t */\n\tonClick?: () => void;\n\t/**\n\t * Size of the icon.\n\t */\n\tsize?: 'm' | 'l' | 'xl';\n}\n\n/**\n * CloseButton UI component\n */\nexport const CloseButton = ({\n\tariaLabel = 'Close',\n\tclassName,\n\tonClick,\n\tsize = 'l',\n\t...props\n}: CloseButtonProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-close-button';\n\tconst sizeClass = `${baseClass}--${size}`;\n\n\t// Render the output\n\treturn (\n\t\t<button\n\t\t\taria-label={ariaLabel}\n\t\t\tclassName={mergeClasses([baseClass, sizeClass, className ?? ''])}\n\t\t\tonClick={onClick}\n\t\t\ttype='button'\n\t\t\t{...props}\n\t\t>\n\t\t\t<Icon className={`${baseClass}__icon`} iconName='xmarkLarge' />\n\t\t</button>\n\t);\n};\n","import { ReactNode } from 'react';\n\nimport { PDSIcon } from '@components/icons/Icon/Icon';\n\n// Common button types.\nexport type ButtonDisplayType = 'label-only' | 'icon-start' | 'icon-end';\n\nexport type ButtonSize = 'xs' | 's' | 'm' | 'l' | 'xl';\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\n\nexport type ButtonVariant =\n\t| 'primary'\n\t| 'secondary'\n\t| 'subtle'\n\t| 'brand'\n\t| 'accent'\n\t| 'reverse'\n\t| 'reverse-secondary'\n\t| 'critical'\n\t| 'critical-secondary'\n\t| 'navbar'\n\t| 'inline';\n\n// Standard container width options.\nexport type ContainerWidth = 'narrow' | 'standard' | 'wide' | 'x-wide' | 'full';\n\nexport type Display =\n\t| 'block'\n\t| 'inline'\n\t| 'inline-block'\n\t| 'flex'\n\t| 'inline-flex'\n\t| 'grid'\n\t| 'inline-grid'\n\t| 'flow-root'\n\t| 'none'\n\t| 'contents'\n\t| 'table'\n\t| 'table-row'\n\t| 'table-cell'\n\t| 'table-caption'\n\t| 'table-column'\n\t| 'table-column-group'\n\t| 'table-footer-group'\n\t| 'table-header-group'\n\t| 'table-row-group'\n\t| 'list-item'\n\t| 'inherit'\n\t| 'initial'\n\t| 'revert'\n\t| 'unset';\n\n// Standard status type options (matches CODESTYLE status conventions).\nexport type StatusType =\n\t| 'info'\n\t| 'success'\n\t| 'warning'\n\t| 'critical'\n\t| 'discovery';\n\n// Extended status type with common additions.\nexport type StatusTypeExtended = StatusType | 'neutral' | 'working';\n\n// Standard labels for status types (default English labels for accessibility).\n// Components allow these to be overridden via typeLabels prop for i18n/translation.\nexport const StatusTypeLabels: Record<StatusType, string> = {\n\tinfo: 'Information',\n\tsuccess: 'Success',\n\twarning: 'Warning',\n\tcritical: 'Critical',\n\tdiscovery: 'Discovery',\n};\n\n// Floating UI component offset options.\nexport type FuiOffset =\n\t| number\n\t| {\n\t\t\talignmentAxis?: number | null;\n\t\t\tcrossAxis?: number;\n\t\t\tmainAxis?: number;\n\t };\n\n// Floating UI placement options.\nexport type FuiPlacement =\n\t| 'top'\n\t| 'top-start'\n\t| 'top-end'\n\t| 'right'\n\t| 'right-start'\n\t| 'right-end'\n\t| 'bottom'\n\t| 'bottom-start'\n\t| 'bottom-end'\n\t| 'left'\n\t| 'left-start'\n\t| 'left-end';\n\nexport type HeadingItemType = {\n\t/**\n\t * Is the item a heading?\n\t */\n\tisHeading: boolean;\n\t/**\n\t * Label for a menu item\n\t */\n\tlabel: string;\n};\n\n// Heading levels for Hx component.\nexport type HeadingLevel = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'span';\nexport type HeadingLevelCommon = Exclude<HeadingLevel, 'h1' | 'h5' | 'h6'>;\n\n// Icon size options\nexport type IconSize = 'xs' | 's' | 'm' | 'l' | 'xl' | '2xl' | '3xl';\n\nexport type LinkItemType = {\n\t/**\n\t * Screen reader label for critical items. Only used when isCritical is true.\n\t */\n\tcriticalLabel?: string;\n\t/**\n\t * Description of the item\n\t */\n\tdescription?: string;\n\t/**\n\t * Is this item disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Optional icon for this item. Choose from available icons in the Icon component.\n\t */\n\ticonName?: PDSIcon;\n\t/**\n\t * Is this a critical action item?\n\t */\n\tisCritical?: boolean;\n\t/**\n\t * Is the item a link?\n\t */\n\tisLink: boolean;\n\t/**\n\t * The content of the link.\n\t */\n\tlinkContent?: ReactNode;\n\t/**\n\t * Optional `data-testid` value for this item.\n\t */\n\ttestId?: string;\n};\n\nexport type MenuItemType = {\n\t/**\n\t * (optional) Callback function to execute when menu item is activated.\n\t * Receives the menu item as an optional parameter.\n\t */\n\tcallback?: (item?: MenuItemType) => void;\n\t/**\n\t * Screen reader label for critical items. Only used when isCritical is true.\n\t */\n\tcriticalLabel?: string;\n\t/**\n\t * Description of the item\n\t */\n\tdescription?: string;\n\t/**\n\t * Is this item disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Optional icon for this item. Choose from available icons in the Icon component.\n\t */\n\ticonName?: PDSIcon;\n\t/**\n\t * Optional ID value for this item.\n\t */\n\tid?: string;\n\t/**\n\t * Is this a critical action item?\n\t */\n\tisCritical?: boolean;\n\t/**\n\t * Label for a menu item\n\t */\n\tlabel: string;\n\t/**\n\t * Optional `data-testid` value for this item.\n\t */\n\ttestId?: string;\n};\n\nexport type NodeItemType = {\n\t/**\n\t * Screen reader label for critical items. Only used when isCritical is true.\n\t */\n\tcriticalLabel?: string;\n\t/**\n\t * Is this item disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Is this a critical action item?\n\t */\n\tisCritical?: boolean;\n\t/**\n\t * Is the item a node?\n\t */\n\tisNode: boolean;\n\t/**\n\t * The content of the node.\n\t */\n\tnodeContent?: ReactNode;\n};\n\nexport type SeparatorItemType = {\n\t/**\n\t * Is the item a separator?\n\t */\n\tisSeparator: boolean;\n};\n\n// Menu item union type\nexport type MenuItem =\n\t| HeadingItemType\n\t| LinkItemType\n\t| MenuItemType\n\t| NodeItemType\n\t| SeparatorItemType;\n\n// Menu item type guard functions\nexport const isSeparatorItemType = (\n\titem: MenuItem,\n): item is SeparatorItemType => {\n\treturn 'isSeparator' in item && item.isSeparator;\n};\n\nexport const isHeadingItemType = (item: MenuItem): item is HeadingItemType => {\n\treturn 'isHeading' in item && item.isHeading;\n};\n\nexport const isLinkItemType = (item: MenuItem): item is LinkItemType => {\n\treturn 'isLink' in item && item.isLink;\n};\n\nexport const isNodeItemType = (item: MenuItem): item is NodeItemType => {\n\treturn 'isNode' in item && item.isNode;\n};\n\n// Site plan level options.\nexport type SitePlanLevel =\n\t| 'sandbox'\n\t| 'basic'\n\t| 'performance-small'\n\t| 'performance-medium'\n\t| 'performance-large'\n\t| 'performance-xl'\n\t| 'performance-2xl'\n\t| 'elite'\n\t| 'pro'\n\t| 'business'\n\t| 'flagship-performance';\n\nexport const SitePlanLevelLabel: Record<SitePlanLevel, string> = {\n\tsandbox: 'Sandbox',\n\tbasic: 'Basic',\n\t'performance-small': 'Performance Small',\n\t'performance-medium': 'Performance Medium',\n\t'performance-large': 'Performance Large',\n\t'performance-xl': 'Performance XL',\n\t'performance-2xl': 'Performance 2XL',\n\telite: 'Elite',\n\tpro: 'Professional',\n\tbusiness: 'Business',\n\t'flagship-performance': 'Flagship Performance',\n};\n\n// Site status options.\nexport type SiteStatus = 'active' | 'frozen' | 'restricted';\n\n// Site type options.\nexport type SiteType = 'drupal' | 'wordpress' | 'gatsby' | 'nextjs';\n\nexport const SiteTypeLabel: Record<SiteType, string> = {\n\tdrupal: 'Drupal',\n\twordpress: 'WordPress',\n\tgatsby: 'Gatsby',\n\tnextjs: 'Next.js',\n};\n\nexport const SiteTypeIcon: Record<SiteType, PDSIcon> = {\n\tdrupal: 'drupal',\n\twordpress: 'wordpress',\n\tgatsby: 'bolt',\n\tnextjs: 'bolt',\n};\n\nexport type SpacingScaleOptions =\n\t| '6xs'\n\t| '5xs'\n\t| '4xs'\n\t| '3xs'\n\t| '2xs'\n\t| 'xs'\n\t| 's'\n\t| 'm'\n\t| 'l'\n\t| 'xl'\n\t| '2xl'\n\t| '3xl'\n\t| '4xl'\n\t| '5xl'\n\t| '6xl'\n\t| '7xl'\n\t| '8xl';\n\nexport type TypeScaleOptions =\n\t| 'xs'\n\t| 's'\n\t| 'm'\n\t| 'l'\n\t| 'xl'\n\t| '2xl'\n\t| '3xl'\n\t| '4xl'\n\t| '5xl'\n\t| '6xl'\n\t| '7xl'\n\t| '8xl'\n\t| '9xl';\n","import { useEffect, useState } from 'react';\n\nexport const useWindowWidth = () => {\n\tconst isBrowser = typeof window !== 'undefined';\n\n\tconst [windowWidth, setWindowWidth] = useState(\n\t\tisBrowser && window.innerWidth !== undefined ? window.innerWidth : 1024,\n\t);\n\n\tuseEffect(() => {\n\t\tif (!isBrowser) return;\n\n\t\tsetWindowWidth(window.innerWidth);\n\n\t\tconst handleResize = () => {\n\t\t\tsetWindowWidth(window.innerWidth);\n\t\t};\n\n\t\twindow.addEventListener('resize', handleResize);\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener('resize', handleResize);\n\t\t};\n\t}, []);\n\n\treturn windowWidth;\n};\n","import React, { createContext, useEffect } from 'react';\n\nimport { useWindowWidth } from '@utilities/hooks/useWindowWidth/useWindowWidth';\n\nexport const ResponsiveContext = createContext(null);\n\nexport const ResponsiveContextProvider = ({\n\tchildren,\n\tmobileMenuMaxWidth = 640,\n}) => {\n\t// Get window width.\n\tconst windowWidth = useWindowWidth();\n\n\t// Check if mobile.\n\tconst isMobile = windowWidth <= mobileMenuMaxWidth;\n\n\t// Prepare the context value.\n\tconst contextValue = {\n\t\tisMobile: isMobile,\n\t\tmobileMenuMaxWidth: mobileMenuMaxWidth,\n\t\twindowWidth: windowWidth,\n\t};\n\n\t// Disallow horizontal scrolling on mobile.\n\tuseEffect(() => {\n\t\tif (isMobile) {\n\t\t\tdocument.body.classList.add('pds-no-scroll-x');\n\t\t} else {\n\t\t\tdocument.body.classList.remove('pds-no-scroll-x');\n\t\t}\n\t}, [isMobile]);\n\n\treturn (\n\t\t<ResponsiveContext.Provider value={contextValue}>\n\t\t\t{children}\n\t\t</ResponsiveContext.Provider>\n\t);\n};\n","import React, {\n\tComponentPropsWithRef,\n\tJSXElementConstructor,\n\tKeyboardEvent,\n\tMouseEvent,\n\tReactElement,\n\tReactNode,\n\tuseContext,\n\tuseLayoutEffect,\n\tuseRef,\n\tuseState,\n} from 'react';\n\nimport { autoUpdate, flip, useFloating } from '@floating-ui/react';\n\nimport { extractText } from '@libs/components/utility-components';\nimport { createRandomID, mergeClasses } from '@libs/components/utils';\nimport {\n\tButtonVariant,\n\tHeadingItemType,\n\tisHeadingItemType,\n\tisLinkItemType,\n\tisNodeItemType,\n\tisSeparatorItemType,\n\tLinkItemType,\n\tMenuItem,\n\tMenuItemType,\n\tNodeItemType,\n\tSeparatorItemType,\n} from '@libs/types/custom-types';\n\nimport { ResponsiveContext } from '@utilities/context-providers/ResponsiveContext/ResponsiveContext';\n\nimport { Button } from '@components/buttons/Button/Button';\nimport { IconButton } from '@components/buttons/IconButton/IconButton';\nimport { Icon, PDSIcon } from '@components/icons/Icon/Icon';\n\nimport './menu-button.css';\n\ntype MenuButtonSize = 's' | 'm';\n\n/**\n * Prop types for MenuButton\n */\nexport interface MenuButtonProps extends ComponentPropsWithRef<'span'> {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Is the button disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * How the button is displayed.\n\t */\n\tdisplayType?: 'icon-end' | 'icon-only';\n\t/**\n\t * Icon name for icon-only buttons.\n\t */\n\ticonName?: PDSIcon;\n\t/**\n\t * ID value for this component.\n\t */\n\tid: string;\n\t/**\n\t * Will this be used for a split button?\n\t */\n\tisSplitButton?: boolean;\n\t/**\n\t * The text of the button\n\t */\n\tlabel: ReactNode;\n\t/**\n\t * Array of menu items\n\t */\n\tmenuItems: Array<\n\t\t| HeadingItemType\n\t\t| LinkItemType\n\t\t| MenuItemType\n\t\t| NodeItemType\n\t\t| SeparatorItemType\n\t>;\n\t/**\n\t * Horizontal position of the menu relative to the button. Applies to breakpoints `md` and up.\n\t */\n\tmenuPosition?: 'start' | 'end';\n\t/**\n\t * Optional callback function for when the button is clicked or activated by the keyboard.\n\t */\n\tonClick?: () => void;\n\t/**\n\t * Which size of button to render.\n\t */\n\tsize?: MenuButtonSize;\n\t/**\n\t * Optional `data-testid` value for this component.\n\t */\n\ttestId?: string;\n\t/**\n\t * Translatable string for description of unlabeled group of menu items.\n\t */\n\tundefinedLabel?: string;\n\t/**\n\t * Which variant of button to render — only valid for icon-end (default) display type.\n\t */\n\tvariant?: Extract<ButtonVariant, 'primary' | 'secondary' | 'navbar'>;\n\t/**\n\t * Is this button located with the Navbar component?\n\t * This will adjust the styling and position of the dropdown.\n\t * Omit this prop for the Dashboard application. It only applies to the standard Navbar component with a bottom border.\n\t */\n\twithinNavbar?: boolean;\n}\n\n/**\n * MenuButton UI component\n */\nexport const MenuButton = ({\n\tclassName,\n\tdisabled,\n\tdisplayType = 'icon-end',\n\ticonName = 'ellipsisVertical',\n\tid,\n\tisSplitButton = false,\n\tlabel,\n\tmenuItems,\n\tmenuPosition = 'start',\n\tonClick,\n\tsize = 's',\n\ttestId,\n\tundefinedLabel = 'Unlabeled group',\n\tvariant = 'primary',\n\twithinNavbar,\n\t...props\n}: MenuButtonProps) => {\n\t// Floating UI support\n\tconst { placement, refs, strategy, x, y } = useFloating({\n\t\tplacement: 'bottom-start',\n\t\tmiddleware: [flip()],\n\t\twhileElementsMounted: autoUpdate,\n\t});\n\n\t// Set isMobile fallback.\n\tlet isMobile = false;\n\n\t// Get responsive context.\n\tconst responsiveContext = useContext(ResponsiveContext);\n\tif (responsiveContext) {\n\t\tisMobile = responsiveContext.isMobile;\n\t}\n\n\t// Is it used in a mobile navbar?\n\tconst isMobileNavbar = variant === 'navbar' && isMobile;\n\n\t// Set up classes.\n\tconst baseClass = 'pds-menu-button';\n\tconst mobileClass = isMobileNavbar ? `${baseClass}--isMobile` : null;\n\tconst navbarClass = withinNavbar ? `${baseClass}--navbar` : null;\n\n\t// Generate a short unique ID to add to ID attributes.\n\tconst triggerID = id;\n\tconst [listboxID] = useState(`menu-button-${id}`);\n\n\tconst menuRefActual = refs.floating;\n\tconst nodeRef = useRef(null);\n\n\tconst [isOpen, setIsOpen] = useState(false);\n\tconst [focusMenu, setFocusMenu] = useState(false);\n\tconst [activeDescendant, setActiveDescendant] = useState('');\n\tconst [activeMenuItemIndex, setActiveMenuItemIndex] = useState(0);\n\n\t// Non-state instance trackers\n\tconst groupIDs = useRef([]);\n\tconst menuItemIDs = useRef([]);\n\tconst focusableMenuItems = useRef([]);\n\n\tuseLayoutEffect(() => {\n\t\t// setup the onClick outside handler\n\t\twindow.addEventListener('mousedown', handleClickOutside, true);\n\n\t\t// Add the Floating UI data attribute\n\t\tconst menuElem = menuRefActual.current;\n\n\t\tif (menuElem) {\n\t\t\tmenuElem.dataset.fuiPlacement = placement;\n\t\t}\n\n\t\t// only focus the menu when state instructs us to\n\t\tif (focusMenu) {\n\t\t\t// focus the menu element\n\t\t\t// NOTE: setTimeout is used to prevent focus change from conflicting with Floating UI\n\t\t\tsetTimeout(() => {\n\t\t\t\tmenuElem.focus();\n\t\t\t}, 0);\n\t\t\t// reset state\n\t\t\tsetFocusMenu(false);\n\t\t}\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener('mousedown', handleClickOutside, true);\n\t\t};\n\t}, [isOpen, placement]);\n\n\t// Internal/support methods\n\tconst setActiveMenuItem = (elemID: string | undefined, index: number) => {\n\t\tsetActiveDescendant(elemID);\n\t\tsetActiveMenuItemIndex(index);\n\t};\n\n\tconst openMenu = () => {\n\t\tsetIsOpen(true);\n\t\tsetFocusMenu(true);\n\t};\n\n\tconst closeMenu = () => {\n\t\tsetIsOpen(false);\n\t\tsetActiveMenuItem(undefined, -1); // remove current selection to reset menu\n\t\tconst triggerElement = nodeRef.current?.querySelector(\n\t\t\t`#${triggerID}`,\n\t\t) as HTMLElement | null;\n\t\ttriggerElement?.focus();\n\t};\n\n\tconst setFocusByFirstCharacter = (char: string) => {\n\t\t// ensure lowercase for easier comparison\n\t\tchar = char.toLowerCase();\n\t\t// track if we've found an item yet\n\t\tlet itemFound = false;\n\n\t\t// loop from current active index to end of focusable items\n\t\tfor (\n\t\t\tlet i = activeMenuItemIndex + 1;\n\t\t\ti < focusableMenuItems.current.length;\n\t\t\ti++\n\t\t) {\n\t\t\tconst item = focusableMenuItems.current[i];\n\n\t\t\tif (item.label.toLowerCase().startsWith(char)) {\n\t\t\t\tsetActiveMenuItem(menuItemIDs.current[i], i);\n\t\t\t\t// report that we found an item\n\t\t\t\titemFound = true;\n\t\t\t\t// break out of loop\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// loop from beginning of focusable items to item prior to current active index\n\t\t// !! Continue search only if we haven't found an item yet\n\t\tif (itemFound === false) {\n\t\t\tfor (let i = 0; i < activeMenuItemIndex; i++) {\n\t\t\t\tconst item = focusableMenuItems.current[i];\n\n\t\t\t\tif (item.label.toLowerCase().startsWith(char)) {\n\t\t\t\t\tsetActiveMenuItem(menuItemIDs.current[i], i);\n\t\t\t\t\t// break out of loop\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tconst activateMenuItem = (itemID: string) => {\n\t\tconst itemIndex = menuItemIDs.current.indexOf(itemID);\n\t\tconst item = focusableMenuItems.current[itemIndex];\n\n\t\t// only execute callback if there is one and the item is not disabled\n\t\tif (item.callback && !item.disabled) {\n\t\t\titem.callback(item);\n\t\t}\n\n\t\t// Activate link if it exists and is not disabled\n\t\tif (item.linkContent && !item.disabled) {\n\t\t\tconst linkElement = nodeRef.current?.querySelector(\n\t\t\t\t`#${itemID} a`,\n\t\t\t) as HTMLAnchorElement | null;\n\t\t\tlinkElement?.click();\n\t\t}\n\t};\n\n\tconst activateCurrentMenuItem = () => {\n\t\tconst currentItemID = menuItemIDs.current[activeMenuItemIndex];\n\t\tactivateMenuItem(currentItemID);\n\t};\n\n\t// Event handler functions\n\tconst handleTriggerClick = (event: MouseEvent<HTMLButtonElement>) => {\n\t\tif (isOpen) {\n\t\t\tcloseMenu();\n\t\t} else {\n\t\t\topenMenu();\n\t\t}\n\n\t\tif (onClick) {\n\t\t\tonClick();\n\t\t}\n\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\t};\n\n\tconst handleMenuItemClick = (event: MouseEvent<HTMLLIElement>) => {\n\t\tactivateMenuItem(event.currentTarget.id);\n\n\t\tif (!isMobileNavbar) {\n\t\t\tcloseMenu();\n\t\t}\n\t};\n\n\tconst handleButtonKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n\t\tconst key = event.key;\n\t\tlet flag = false;\n\n\t\tswitch (key) {\n\t\t\t// open menu and focus on first menu item\n\t\t\tcase ' ':\n\t\t\tcase 'Enter':\n\t\t\tcase 'ArrowDown':\n\t\t\tcase 'Down': {\n\t\t\t\topenMenu();\n\t\t\t\t// Find the first non-disabled item\n\t\t\t\tlet firstEnabledIndex = 0;\n\t\t\t\tfor (let i = 0; i < focusableMenuItems.current.length; i++) {\n\t\t\t\t\tif (!focusableMenuItems.current[i]?.disabled) {\n\t\t\t\t\t\tfirstEnabledIndex = i;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tsetActiveMenuItem(\n\t\t\t\t\tmenuItemIDs.current[firstEnabledIndex],\n\t\t\t\t\tfirstEnabledIndex,\n\t\t\t\t);\n\t\t\t\tflag = true;\n\n\t\t\t\tif (onClick) {\n\t\t\t\t\tonClick();\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// close menu\n\t\t\tcase 'Esc':\n\t\t\tcase 'Escape':\n\t\t\t\tcloseMenu();\n\t\t\t\tflag = true;\n\t\t\t\tbreak;\n\n\t\t\t// open menu and focus on last menu item\n\t\t\tcase 'Up':\n\t\t\tcase 'ArrowUp': {\n\t\t\t\topenMenu();\n\t\t\t\t// Find the last non-disabled item\n\t\t\t\tlet lastEnabledIndex = menuItemIDs.current.length - 1;\n\t\t\t\tfor (let i = menuItemIDs.current.length - 1; i >= 0; i--) {\n\t\t\t\t\tif (!focusableMenuItems.current[i]?.disabled) {\n\t\t\t\t\t\tlastEnabledIndex = i;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tsetActiveMenuItem(\n\t\t\t\t\tmenuItemIDs.current[lastEnabledIndex],\n\t\t\t\t\tlastEnabledIndex,\n\t\t\t\t);\n\t\t\t\tflag = true;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// do nothing\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\t// if something desired happened prevent default behavior\n\t\tif (flag) {\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\t\t}\n\t};\n\n\tconst handleMenuKeydown = (event: KeyboardEvent<HTMLElement>) => {\n\t\tconst key = event.key;\n\t\tlet flag = false,\n\t\t\tmoveToItemID = '',\n\t\t\tmoveToIndex = 0;\n\n\t\tfunction isPrintableCharacter(str: string) {\n\t\t\treturn str.length === 1 && str.match(/\\S/);\n\t\t}\n\n\t\tif (event.ctrlKey || event.altKey || event.metaKey) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (event.shiftKey) {\n\t\t\tif (isPrintableCharacter(key)) {\n\t\t\t\tsetFocusByFirstCharacter(key);\n\t\t\t\tflag = true;\n\t\t\t}\n\n\t\t\tif (event.key === 'Tab') {\n\t\t\t\tcloseMenu();\n\t\t\t\tflag = true;\n\t\t\t}\n\t\t} else {\n\t\t\tswitch (key) {\n\t\t\t\tcase ' ':\n\t\t\t\tcase 'Enter':\n\t\t\t\t\tcloseMenu();\n\t\t\t\t\tactivateCurrentMenuItem();\n\t\t\t\t\tflag = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Esc':\n\t\t\t\tcase 'Escape':\n\t\t\t\t\tcloseMenu();\n\t\t\t\t\tflag = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Up':\n\t\t\t\tcase 'ArrowUp': {\n\t\t\t\t\t// Find the next non-disabled item going backwards\n\t\t\t\t\tlet attempts = 0;\n\t\t\t\t\tconst maxAttempts = menuItemIDs.current.length;\n\t\t\t\t\tmoveToIndex = activeMenuItemIndex - 1;\n\n\t\t\t\t\twhile (attempts < maxAttempts) {\n\t\t\t\t\t\tif (moveToIndex < 0) {\n\t\t\t\t\t\t\tmoveToIndex = menuItemIDs.current.length - 1;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Check if the item at this index is disabled\n\t\t\t\t\t\tconst item = focusableMenuItems.current[moveToIndex];\n\t\t\t\t\t\tif (!item?.disabled) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmoveToIndex--;\n\t\t\t\t\t\tattempts++;\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveToItemID = menuItemIDs.current[moveToIndex];\n\t\t\t\t\tsetActiveMenuItem(moveToItemID, moveToIndex);\n\t\t\t\t\tflag = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase 'ArrowDown':\n\t\t\t\tcase 'Down': {\n\t\t\t\t\t// Find the next non-disabled item going forwards\n\t\t\t\t\tlet attempts = 0;\n\t\t\t\t\tconst maxAttempts = menuItemIDs.current.length;\n\t\t\t\t\tmoveToIndex = activeMenuItemIndex + 1;\n\n\t\t\t\t\twhile (attempts < maxAttempts) {\n\t\t\t\t\t\tif (moveToIndex > menuItemIDs.current.length - 1) {\n\t\t\t\t\t\t\tmoveToIndex = 0;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Check if the item at this index is disabled\n\t\t\t\t\t\tconst item = focusableMenuItems.current[moveToIndex];\n\t\t\t\t\t\tif (!item?.disabled) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmoveToIndex++;\n\t\t\t\t\t\tattempts++;\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveToItemID = menuItemIDs.current[moveToIndex];\n\t\t\t\t\tsetActiveMenuItem(moveToItemID, moveToIndex);\n\t\t\t\t\tflag = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase 'Home':\n\t\t\t\tcase 'PageUp': {\n\t\t\t\t\t// Find the first non-disabled item\n\t\t\t\t\tlet firstEnabledIndex = 0;\n\t\t\t\t\tfor (let i = 0; i < focusableMenuItems.current.length; i++) {\n\t\t\t\t\t\tif (!focusableMenuItems.current[i]?.disabled) {\n\t\t\t\t\t\t\tfirstEnabledIndex = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tsetActiveMenuItem(\n\t\t\t\t\t\tmenuItemIDs.current[firstEnabledIndex],\n\t\t\t\t\t\tfirstEnabledIndex,\n\t\t\t\t\t);\n\t\t\t\t\tflag = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase 'End':\n\t\t\t\tcase 'PageDown': {\n\t\t\t\t\t// Find the last non-disabled item\n\t\t\t\t\tlet lastEnabledIndex = menuItemIDs.current.length - 1;\n\t\t\t\t\tfor (let i = menuItemIDs.current.length - 1; i >= 0; i--) {\n\t\t\t\t\t\tif (!focusableMenuItems.current[i]?.disabled) {\n\t\t\t\t\t\t\tlastEnabledIndex = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tsetActiveMenuItem(\n\t\t\t\t\t\tmenuItemIDs.current[lastEnabledIndex],\n\t\t\t\t\t\tlastEnabledIndex,\n\t\t\t\t\t);\n\t\t\t\t\tflag = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase 'Tab':\n\t\t\t\t\tcloseMenu();\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tif (isPrintableCharacter(key)) {\n\t\t\t\t\t\tsetFocusByFirstCharacter(key);\n\t\t\t\t\t\tflag = true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (flag) {\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\t\t}\n\t};\n\n\t// Handle click outside event to close menu if open\n\tconst handleClickOutside = (event: Event) => {\n\t\tif (nodeRef.current && !nodeRef.current.contains(event.target as Node)) {\n\t\t\tif (isOpen) {\n\t\t\t\tcloseMenu();\n\t\t\t}\n\t\t}\n\t};\n\n\t// function to render each menu item correctly\n\tconst renderItem = (\n\t\titem: MenuItem,\n\t\tindex: number,\n\t\tgroupID: string = '',\n\t\tgroupHeadingID: string = '',\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t...props: any[]\n\t) => {\n\t\tconst groupIDString = groupID ? `-group-${groupID}` : '';\n\t\tconst fallbackItemID = triggerID + groupIDString + '-item-' + (index + 1);\n\n\t\t// If ID is not passed into menu item, generate one.\n\t\tconst itemID = 'id' in item && item.id ? item.id : fallbackItemID;\n\n\t\t// render a separator if found\n\t\tif (isSeparatorItemType(item)) {\n\t\t\treturn <li key={itemID} role='separator'></li>;\n\t\t}\n\n\t\t// render a heading if found\n\t\tif (isHeadingItemType(item)) {\n\t\t\treturn (\n\t\t\t\t<li\n\t\t\t\t\tkey={groupHeadingID}\n\t\t\t\t\tclassName={`${baseClass}__listbox-heading`}\n\t\t\t\t\tid={groupHeadingID ? groupHeadingID : null}\n\t\t\t\t\trole='presentation'\n\t\t\t\t>\n\t\t\t\t\t{item.label}\n\t\t\t\t</li>\n\t\t\t);\n\t\t}\n\n\t\t// render a node if found\n\t\tif (isNodeItemType(item)) {\n\t\t\treturn (\n\t\t\t\t<li key={itemID} role='presentation'>\n\t\t\t\t\t{item.nodeContent}\n\t\t\t\t</li>\n\t\t\t);\n\t\t}\n\n\t\t// Render a link item or regular menu item\n\t\tif (isLinkItemType(item) || ('label' in item && item.label)) {\n\t\t\tmenuItemIDs.current.push(itemID);\n\t\t\tfocusableMenuItems.current.push(item);\n\n\t\t\t// decide if this item should be shown to have focus\n\t\t\tlet shouldFocus = false;\n\t\t\tif (activeDescendant !== '' && !item.disabled) {\n\t\t\t\tshouldFocus = activeDescendant === itemID;\n\t\t\t}\n\n\t\t\t// Check if this is a critical item\n\t\t\tconst isCritical = 'isCritical' in item && item.isCritical;\n\t\t\tconst criticalLabel =\n\t\t\t\t'criticalLabel' in item ? item.criticalLabel : undefined;\n\n\t\t\t// Set item label\n\t\t\tlet itemLabel: ReactNode[] = [];\n\n\t\t\t// if a regular menu item, use the label\n\t\t\tif ('label' in item && item.label) {\n\t\t\t\titemLabel = [item.label];\n\t\t\t}\n\n\t\t\t// if a link item, use the link content\n\t\t\tif (isLinkItemType(item) && item.linkContent) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\tconst linkElement = item.linkContent as ReactElement<any>;\n\t\t\t\titemLabel = [linkElement.props.children];\n\t\t\t}\n\n\t\t\tif (item.iconName) {\n\t\t\t\t// Render the chosen icon\n\t\t\t\tconst renderedIcon = (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tkey={`icon-${triggerID}`}\n\t\t\t\t\t\ticonName={item.iconName}\n\t\t\t\t\t\ticonSize='m'\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\t\titemLabel.unshift(renderedIcon);\n\t\t\t}\n\n\t\t\t// Add visually-hidden critical label if needed\n\t\t\tif (isCritical && criticalLabel) {\n\t\t\t\titemLabel.unshift(\n\t\t\t\t\t<span key={`critical-${triggerID}`} className='visually-hidden'>\n\t\t\t\t\t\t{criticalLabel}\n\t\t\t\t\t</span>,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tlet itemDescription: ReactNode;\n\t\t\tif (item.description) {\n\t\t\t\titemDescription = (\n\t\t\t\t\t<span className={`${baseClass}__item-description`}>\n\t\t\t\t\t\t{item.description}\n\t\t\t\t\t</span>\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Render the item content based on type\n\t\t\tlet itemContent: ReactNode;\n\n\t\t\tif (isLinkItemType(item) && item.linkContent) {\n\t\t\t\t// Set link element based on the type of link element passed in.\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\tconst linkElement = item.linkContent as ReactElement<\n\t\t\t\t\tany, // eslint-disable-line @typescript-eslint/no-explicit-any\n\t\t\t\t\tJSXElementConstructor<any> // eslint-disable-line @typescript-eslint/no-explicit-any\n\t\t\t\t>;\n\t\t\t\tconst LinkElement = linkElement.type;\n\n\t\t\t\titemContent = (\n\t\t\t\t\t<LinkElement tabIndex={-1} {...linkElement.props}>\n\t\t\t\t\t\t<span className={`${baseClass}__item-label`}>{itemLabel}</span>\n\t\t\t\t\t\t{itemDescription}\n\t\t\t\t\t</LinkElement>\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\titemContent = (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<span className={`${baseClass}__item-label`}>{itemLabel}</span>\n\t\t\t\t\t\t{itemDescription}\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Build class name for the menu item\n\t\t\tconst menuItemClasses = mergeClasses([\n\t\t\t\tshouldFocus ? `${baseClass}__item-focused` : null,\n\t\t\t\tisCritical ? `${baseClass}__item-critical` : null,\n\t\t\t]);\n\n\t\t\treturn (\n\t\t\t\t<li\n\t\t\t\t\tkey={itemID}\n\t\t\t\t\taria-disabled={item.disabled ? true : null}\n\t\t\t\t\tclassName={menuItemClasses}\n\t\t\t\t\tdata-testid={item.testId}\n\t\t\t\t\tid={itemID}\n\t\t\t\t\tonClick={handleMenuItemClick}\n\t\t\t\t\trole='menuitem'\n\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t{itemContent}\n\t\t\t\t</li>\n\t\t\t);\n\t\t}\n\t};\n\n\t// Function to render grouped items\n\tconst renderMenuItemsGrouped = (\n\t\titems: MenuItem[],\n\t\tmenuItemBreaks: MenuItem[],\n\t) => {\n\t\tconst groupedItems: MenuItem[][] = [];\n\n\t\t// Copy the array to avoid mutation\n\t\tconst breaks = [...menuItemBreaks];\n\n\t\t// get the first break item\n\t\tlet breakItem = breaks.shift();\n\n\t\t// setup our temporary storage for this group\n\t\tlet group: MenuItem[] = [];\n\n\t\t// iterate over all menu items\n\t\titems.map((item: MenuItem, index: number) => {\n\t\t\t// if the item isn't the first break item then add it to the group\n\t\t\tif (item !== breakItem) {\n\t\t\t\tgroup.push(item);\n\n\t\t\t\t// if this is the last item then add it to the group\n\t\t\t\tif (index + 1 === items.length) {\n\t\t\t\t\tgroupedItems.push(group);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// if we have a break item then add the group to the overall items data,\n\t\t\t\t// reset the temporary group storage,\n\t\t\t\t// add the break item to the new group,\n\t\t\t\t// get the next break item\n\t\t\t\tgroupedItems.push(group);\n\t\t\t\tgroup = [];\n\t\t\t\tgroup.push(item);\n\t\t\t\tbreakItem = breaks.shift();\n\t\t\t}\n\t\t});\n\n\t\t// filter out empty groups\n\t\treturn groupedItems.filter((group) => group.length > 0);\n\t};\n\n\t// Function to render the items\n\tconst renderMenuItems = (items: MenuItem[]) => {\n\t\t// reset tracking variables\n\t\tmenuItemIDs.current = [];\n\t\tfocusableMenuItems.current = [];\n\n\t\t// Chunk menu items into groups if needed\n\t\tconst itemsData = items;\n\t\t// check if we have any separators or headings in the dataset\n\t\tconst menuItemBreaks = items.filter(\n\t\t\tisHeadingItemType || isSeparatorItemType,\n\t\t);\n\t\tconst haveBreaks = menuItemBreaks.length > 0;\n\n\t\t// Set up listbox classes.\n\t\tlet listboxClasses: string[] = [`${baseClass}__listbox`];\n\n\t\tif (withinNavbar) {\n\t\t\tlistboxClasses.push(`${baseClass}__listbox--navbar`);\n\t\t}\n\n\t\tif (menuPosition === 'end') {\n\t\t\tlistboxClasses.push(`${baseClass}__listbox--end`);\n\t\t}\n\n\t\tif (displayType === 'icon-only') {\n\t\t\tlistboxClasses.push(`${baseClass}__listbox--icon-only`);\n\t\t}\n\n\t\tlistboxClasses = mergeClasses(listboxClasses);\n\n\t\t// if we have breaks then split into groups at each marker\n\t\tif (haveBreaks) {\n\t\t\t// group the items together\n\t\t\tconst groupedItemsData = renderMenuItemsGrouped(items, menuItemBreaks);\n\n\t\t\t// setup group IDs\n\t\t\tgroupedItemsData.forEach(() => {\n\t\t\t\tgroupIDs.current.push(createRandomID());\n\t\t\t});\n\t\t\tlet currentGroupID = groupIDs.current[0];\n\n\t\t\t// locate first valid item to properly set initial value for aria-activedescendant on menu/listbox\n\t\t\tconst firstMenuItemIndex = groupedItemsData[0].findIndex(\n\t\t\t\t(item: MenuItem) =>\n\t\t\t\t\t!isSeparatorItemType(item) && !isHeadingItemType(item),\n\t\t\t);\n\n\t\t\t// set active descendant ID value in component state\n\t\t\tconst initialDescendant = `${triggerID}-group-${currentGroupID}-item-${\n\t\t\t\tfirstMenuItemIndex + 1\n\t\t\t}`;\n\n\t\t\t// Render grouped items in listbox\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tref={refs.setFloating}\n\t\t\t\t\taria-activedescendant={\n\t\t\t\t\t\tactiveDescendant !== '' ? activeDescendant : initialDescendant\n\t\t\t\t\t}\n\t\t\t\t\taria-labelledby={triggerID}\n\t\t\t\t\tclassName={listboxClasses.toString()}\n\t\t\t\t\tid={listboxID}\n\t\t\t\t\tonKeyDown={handleMenuKeydown}\n\t\t\t\t\trole='menu'\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tvisibility: isOpen ? 'visible' : 'hidden',\n\t\t\t\t\t\topacity: isOpen ? '1' : '0',\n\t\t\t\t\t\ttransition: 'var(--pds-animation-transition-reveal)',\n\t\t\t\t\t\tposition: strategy,\n\t\t\t\t\t\ttransform: `translate(${Math.round(x)}px,${Math.round(y)}px)`,\n\t\t\t\t\t\tzIndex: 'var(--pds-z-index-dropdown)',\n\t\t\t\t\t}}\n\t\t\t\t\ttabIndex={-1}\n\t\t\t\t>\n\t\t\t\t\t{groupedItemsData.map((group: MenuItem[], index: number) => {\n\t\t\t\t\t\tcurrentGroupID = groupIDs.current[index];\n\t\t\t\t\t\tconst hasHeading = 'isHeading' in group[0] && group[0].isHeading;\n\t\t\t\t\t\tconst groupHeadingID = hasHeading\n\t\t\t\t\t\t\t? `${triggerID}-group-${currentGroupID}-heading`\n\t\t\t\t\t\t\t: '';\n\t\t\t\t\t\tconst keyID = `${triggerID}-group-${currentGroupID}`;\n\n\t\t\t\t\t\tconst groupLabel = hasHeading\n\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t: `${undefinedLabel} ${index + 1}`;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\tkey={keyID}\n\t\t\t\t\t\t\t\taria-label={groupLabel}\n\t\t\t\t\t\t\t\taria-labelledby={groupHeadingID}\n\t\t\t\t\t\t\t\trole='group'\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{group.map((item: MenuItem, index: number) => {\n\t\t\t\t\t\t\t\t\treturn renderItem(\n\t\t\t\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\t\t\t\tindex,\n\t\t\t\t\t\t\t\t\t\tcurrentGroupID,\n\t\t\t\t\t\t\t\t\t\tgroupHeadingID,\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t);\n\t\t} else {\n\t\t\t// Render plain listbox without any groups\n\n\t\t\t// set initial active descendant ID value\n\t\t\tconst initialDescendant = `${triggerID}-item-1`;\n\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t<ul\n\t\t\t\t\t\tref={refs.setFloating}\n\t\t\t\t\t\taria-activedescendant={\n\t\t\t\t\t\t\tactiveDescendant !== '' ? activeDescendant : initialDescendant\n\t\t\t\t\t\t}\n\t\t\t\t\t\taria-labelledby={triggerID}\n\t\t\t\t\t\tclassName={listboxClasses.toString()}\n\t\t\t\t\t\tid={listboxID}\n\t\t\t\t\t\tonKeyDown={handleMenuKeydown}\n\t\t\t\t\t\trole='menu'\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tvisibility: isOpen ? 'visible' : 'hidden',\n\t\t\t\t\t\t\topacity: isOpen ? '1' : '0',\n\t\t\t\t\t\t\ttransition: 'var(--pds-animation-transition-reveal)',\n\t\t\t\t\t\t\tposition: strategy,\n\t\t\t\t\t\t\ttransform: `translate(${Math.round(x)}px,${Math.round(y)}px)`,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t>\n\t\t\t\t\t\t{itemsData.map((item: MenuItem, index: number) => {\n\t\t\t\t\t\t\treturn renderItem(item, index);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</ul>\n\t\t\t\t</>\n\t\t\t);\n\t\t}\n\t};\n\n\t// Preprocess button\n\tlet menuButtonDisplayType: React.JSX.Element | undefined;\n\n\t// Display type based on regular buttons.\n\tif (displayType === 'icon-end') {\n\t\tmenuButtonDisplayType = (\n\t\t\t<Button\n\t\t\t\tref={refs.setReference}\n\t\t\t\taria-controls={listboxID}\n\t\t\t\taria-expanded={isOpen}\n\t\t\t\taria-haspopup='true'\n\t\t\t\tclassName={`${baseClass}__trigger`}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tdisplayType={displayType}\n\t\t\t\ticonName='angleDown'\n\t\t\t\tid={triggerID}\n\t\t\t\tisSplitButton={isSplitButton}\n\t\t\t\tlabel={label}\n\t\t\t\tonClick={handleTriggerClick}\n\t\t\t\tonKeyDown={handleButtonKeyDown}\n\t\t\t\tsize={size}\n\t\t\t\ttype='button'\n\t\t\t\tvariant={variant}\n\t\t\t/>\n\t\t);\n\t}\n\n\t// Display type based on icon buttons.\n\tif (displayType === 'icon-only') {\n\t\tconst labelText = extractText(label);\n\n\t\tmenuButtonDisplayType = (\n\t\t\t<IconButton\n\t\t\t\tref={refs.setReference}\n\t\t\t\taria-controls={listboxID}\n\t\t\t\taria-expanded={isOpen}\n\t\t\t\taria-haspopup='true'\n\t\t\t\tariaLabel={labelText}\n\t\t\t\tclassName={`${baseClass}__trigger ${baseClass}__trigger--icon-only`}\n\t\t\t\tdisabled={disabled}\n\t\t\t\thasTooltip={false}\n\t\t\t\ticonName={iconName}\n\t\t\t\tid={triggerID}\n\t\t\t\tonClick={handleTriggerClick}\n\t\t\t\tonKeyDown={handleButtonKeyDown}\n\t\t\t\tsize={size}\n\t\t\t\ttype='button'\n\t\t\t\tvariant='standard'\n\t\t\t/>\n\t\t);\n\t}\n\n\t// Accommodations for mobile navbar usage.\n\n\t// Handle the expand/collapse within mobile Navbar.\n\tconst handleExpand = (e: MouseEvent<HTMLButtonElement>) => {\n\t\t// Control button classes and aria-expanded attribute.\n\t\tconst button = e.target as HTMLButtonElement;\n\t\tbutton.classList.toggle(`${baseClass}__toggle--expanded`);\n\t\tbutton.setAttribute(\n\t\t\t'aria-expanded',\n\t\t\tbutton.getAttribute('aria-expanded') === 'true' ? 'false' : 'true',\n\t\t);\n\n\t\t// Control menu classes.\n\t\tconst menu = button.nextElementSibling as HTMLElement;\n\t\tmenu.classList.toggle(`${baseClass}__mobile-menu--expanded`);\n\t};\n\n\t// Process menu items for mobile navbar.\n\tconst MobileMenuItems = () => {\n\t\treturn (\n\t\t\t<ul className={`${baseClass}__mobile-menu`} role='menu'>\n\t\t\t\t{menuItems.map((item, index) => {\n\t\t\t\t\treturn renderItem(item, index);\n\t\t\t\t})}\n\t\t\t</ul>\n\t\t);\n\t};\n\n\t// Process buttons for mobile navbar.\n\tlet menuButtonMobileDisplayType: React.JSX.Element | undefined;\n\n\tconst buttonVariant =\n\t\tdisplayType === 'icon-end' ? 'pds-button pds-button--navbar' : null;\n\tconst mobileButtonClasses = mergeClasses([\n\t\t`${baseClass}__toggle`,\n\t\tbuttonVariant,\n\t]);\n\n\tif (isMobileNavbar) {\n\t\tmenuButtonMobileDisplayType = (\n\t\t\t<button\n\t\t\t\taria-expanded={false}\n\t\t\t\tclassName={mobileButtonClasses}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tid={triggerID}\n\t\t\t\tonClick={handleExpand}\n\t\t\t\ttype='button'\n\t\t\t>\n\t\t\t\t{displayType === 'icon-only' ? (\n\t\t\t\t\t<span className={`${baseClass}__icon-label`}>\n\t\t\t\t\t\t<Icon iconName={iconName} /> {label}\n\t\t\t\t\t</span>\n\t\t\t\t) : (\n\t\t\t\t\tlabel\n\t\t\t\t)}\n\n\t\t\t\t<Icon\n\t\t\t\t\tclassName={`${baseClass}__toggle-icon ${baseClass}__toggle-icon--${displayType}`}\n\t\t\t\t\ticonName='angleDown'\n\t\t\t\t\ticonSize='m'\n\t\t\t\t/>\n\t\t\t</button>\n\t\t);\n\t}\n\n\t// Markup for when in a navbar mobile view.\n\tconst navbarMobileMarkup = menuButtonMobileDisplayType;\n\n\t// Set up expanded class.\n\tconst expandedClass = isOpen ? `${baseClass}--expanded` : null;\n\n\t// Render the output.\n\treturn (\n\t\t<span\n\t\t\tref={nodeRef}\n\t\t\tclassName={mergeClasses([\n\t\t\t\tbaseClass,\n\t\t\t\tnavbarClass,\n\t\t\t\tmobileClass,\n\t\t\t\texpandedClass,\n\t\t\t\tclassName,\n\t\t\t])}\n\t\t\tdata-testid={testId}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isMobileNavbar ? (\n\t\t\t\t<>\n\t\t\t\t\t{navbarMobileMarkup}\n\t\t\t\t\t<MobileMenuItems />\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t{menuButtonDisplayType}\n\t\t\t\t\t{renderMenuItems(menuItems)}\n\t\t\t\t</>\n\t\t\t)}\n\t\t</span>\n\t);\n};\n","import React, { MouseEvent, useState } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport { Tally } from '@components/badges/Tally/Tally';\nimport { Icon, PDSIcon } from '@components/icons/Icon/Icon';\n\nimport './segmented-button.css';\n\n/**\n * Structure for each option in the SegmentedButton component.\n */\ninterface OptionType {\n\tdisabled?: boolean;\n\ticonName?: PDSIcon;\n\tid?: string;\n\tlabel: string;\n\ttally?: {\n\t\tlabel: string | number;\n\t\ttype: 'neutral' | 'critical' | 'warning' | 'info' | 'success';\n\t};\n\tvalue: string;\n}\n\n/**\n * Interface for handling selection events.\n */\ninterface HandleSelectionEvent extends MouseEvent<HTMLInputElement> {\n\ttarget: HTMLInputElement;\n}\n\n/**\n * Prop types for SegmentedButton\n */\nexport interface SegmentedButtonProps {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Optional initial selected option value.\n\t */\n\tdefaultValue?: string;\n\t/**\n\t * Is the SegmentedButton disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Unique ID for the SegmentedButton.\n\t */\n\tid: string;\n\t/**\n\t * Label for the SegmentedButton — visually hidden, used for screen readers only.\n\t */\n\tlabel: string;\n\t/**\n\t * Callback function that will return the updated value from the instance when it changes.\n\t */\n\tonChange?: (value: string) => void;\n\t/**\n\t * Array of button options — must be between 2 and 6 options.\n\t */\n\toptions: OptionType[];\n\t/**\n\t * Size of the SegmentedButton.\n\t */\n\tsize?: 's' | 'm';\n\t/**\n\t * Value of the Segmented Button. Used to set the value of the field when controlled. Cannot be used in conjunction with the `defaultValue` prop.\n\t */\n\tvalue?: string;\n}\n\n/**\n * SegmentedButton UI component\n */\nexport const SegmentedButton = ({\n\tclassName,\n\tdefaultValue,\n\tdisabled = false,\n\tid,\n\tlabel,\n\tonChange,\n\toptions,\n\tsize = 's',\n\tvalue,\n\t...props\n}: SegmentedButtonProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-segmented-button';\n\tconst disabledClass = disabled ? 'pds-is-disabled' : null;\n\tconst sizeClass = `${baseClass}--${size}`;\n\n\t// Map button sizes to icon sizes.\n\tconst iconSize = size === 's' ? 's' : 'm';\n\n\t// Determine if the input is controlled.\n\tconst isControlled = typeof value != 'undefined';\n\n\t// When a component is not controlled, it can have a defaultValue.\n\tconst hasDefaultValue = typeof defaultValue != 'undefined';\n\n\t// If the input is uncontrolled, use state within the component to manage the value.\n\tconst [internalValue, setInternalValue] = useState(\n\t\thasDefaultValue ? defaultValue : '',\n\t);\n\n\t// Handle selection changes.\n\tconst handleSelection = (e: HandleSelectionEvent) => {\n\t\tsetInternalValue(e.target.value);\n\n\t\tif (onChange) {\n\t\t\tonChange(e.target.value);\n\t\t}\n\t};\n\n\t// Render the output\n\tif (options.length >= 2 && options.length <= 6) {\n\t\treturn (\n\t\t\t<fieldset\n\t\t\t\tclassName={mergeClasses([\n\t\t\t\t\tbaseClass,\n\t\t\t\t\tsizeClass,\n\t\t\t\t\tdisabledClass,\n\t\t\t\t\tclassName ?? '',\n\t\t\t\t])}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<legend className='visually-hidden'>{label}</legend>\n\n\t\t\t\t<div className={`${baseClass}__options`}>\n\t\t\t\t\t{options.map((radio, idx) => {\n\t\t\t\t\t\t// Determine if the option is checked.\n\t\t\t\t\t\tconst isChecked = isControlled\n\t\t\t\t\t\t\t? value === radio.value\n\t\t\t\t\t\t\t: internalValue === radio.value;\n\n\t\t\t\t\t\t// Option classes.\n\t\t\t\t\t\tconst optionClass = `${baseClass}__option`;\n\t\t\t\t\t\tconst checkedClass = isChecked ? `${optionClass}--checked` : null;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tkey={`${id}-option-${idx}`}\n\t\t\t\t\t\t\t\tclassName={mergeClasses([optionClass, checkedClass])}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\tchecked={isChecked}\n\t\t\t\t\t\t\t\t\tclassName='visually-hidden'\n\t\t\t\t\t\t\t\t\tdisabled={disabled || radio.disabled}\n\t\t\t\t\t\t\t\t\tid={radio.id ? radio.id : `${id}-option-${idx}`}\n\t\t\t\t\t\t\t\t\tname={id}\n\t\t\t\t\t\t\t\t\tonChange={handleSelection}\n\t\t\t\t\t\t\t\t\ttype='radio'\n\t\t\t\t\t\t\t\t\tvalue={radio.value}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<label\n\t\t\t\t\t\t\t\t\thtmlFor={radio.id ? radio.id : `${id}-option-${idx}`}\n\t\t\t\t\t\t\t\t\ttitle={radio.label}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{radio.iconName && (\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\tclassName={`${baseClass}__icon`}\n\t\t\t\t\t\t\t\t\t\t\ticonName={radio.iconName}\n\t\t\t\t\t\t\t\t\t\t\ticonSize={iconSize}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t<span className={`${baseClass}__label-text`}>\n\t\t\t\t\t\t\t\t\t\t{radio.label}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t{radio.tally && (\n\t\t\t\t\t\t\t\t\t\t<Tally\n\t\t\t\t\t\t\t\t\t\t\tclassName={`${baseClass}__tally`}\n\t\t\t\t\t\t\t\t\t\t\tlabel={radio.tally.label}\n\t\t\t\t\t\t\t\t\t\t\ttype={radio.tally.type}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t</fieldset>\n\t\t);\n\t}\n};\n","import React, { ComponentPropsWithoutRef } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport {\n\tButtonVariant,\n\tLinkItemType,\n\tMenuItemType,\n} from '@libs/types/custom-types';\n\nimport { Button } from '@components/buttons/Button/Button';\nimport { ButtonLink } from '@components/buttons/ButtonLink/ButtonLink';\nimport { MenuButton } from '@components/buttons/MenuButton/MenuButton';\n\nimport './split-button.css';\n\ntype SplitButtonSize = 's' | 'm';\n\n/**\n * Prop types for SplitButton\n */\ninterface SplitButtonProps extends ComponentPropsWithoutRef<'span'> {\n\t/**\n\t * Array of menu items\n\t */\n\tactionItems: Array<LinkItemType | MenuItemType>;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Is the button disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * ID value for this component.\n\t */\n\tid: string;\n\t/**\n\t * Label for the buttons additional actions menu.\n\t */\n\tmoreActionsLabel?: string;\n\t/**\n\t * Which size of button to render\n\t */\n\tsize?: SplitButtonSize;\n\t/**\n\t * Which variant of button to render\n\t */\n\tvariant?: Extract<ButtonVariant, 'primary' | 'secondary'>;\n}\n\n/**\n * A component used to render a button with a primary action and a menu of additional options\n */\nexport const SplitButton = ({\n\tactionItems,\n\tclassName,\n\tdisabled,\n\tid,\n\tmoreActionsLabel = 'More actions',\n\tsize = 's',\n\tvariant = 'primary',\n\t...props\n}: SplitButtonProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-split-button';\n\tconst variantClass = `${baseClass}--${variant}`;\n\n\t// Separate the primary action from the rest.\n\tconst primaryAction = actionItems[0];\n\tconst moreActions = actionItems.slice(1);\n\n\t// Preprocess the first item based on its type.\n\tlet primaryActionElement = null;\n\n\tif ('isLink' in primaryAction && primaryAction.isLink === true) {\n\t\tprimaryActionElement = (\n\t\t\t<ButtonLink\n\t\t\t\tclassName={`${baseClass}__primary-action`}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tdisplayType='label-only'\n\t\t\t\tlinkContent={primaryAction.linkContent}\n\t\t\t\tsize={size}\n\t\t\t\tvariant={variant}\n\t\t\t/>\n\t\t);\n\t} else if ('label' in primaryAction) {\n\t\tprimaryActionElement = (\n\t\t\t<Button\n\t\t\t\tclassName={`${baseClass}__primary-action`}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tlabel={primaryAction.label}\n\t\t\t\tonClick={() => primaryAction.callback()}\n\t\t\t\tsize={size}\n\t\t\t\tvariant={variant}\n\t\t\t/>\n\t\t);\n\t}\n\n\t// Render the output\n\treturn (\n\t\t<span\n\t\t\tclassName={mergeClasses([baseClass, variantClass, className])}\n\t\t\tid={id}\n\t\t\t{...props}\n\t\t>\n\t\t\t{primaryActionElement}\n\t\t\t<MenuButton\n\t\t\t\tisSplitButton\n\t\t\t\tclassName={`${baseClass}__menu-button`}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tdisplayType='icon-end'\n\t\t\t\tid={`${id}-menu`}\n\t\t\t\tlabel={moreActionsLabel}\n\t\t\t\tmenuItems={moreActions}\n\t\t\t\tsize={size}\n\t\t\t\ttestId={null}\n\t\t\t\tvariant={variant}\n\t\t\t\twithinNavbar={false}\n\t\t\t/>\n\t\t</span>\n\t);\n};\n","import React, { cloneElement, ComponentPropsWithoutRef } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport './platform-icon.css';\n\ntype PlatformType =\n\t| 'drupal'\n\t| 'drupal7'\n\t| 'front-end-sites'\n\t| 'gatsby'\n\t| 'gatsby-wp'\n\t| 'google'\n\t| 'import-custom'\n\t| 'microsoft'\n\t| 'next'\n\t| 'next-drupal'\n\t| 'next-wp'\n\t| 'splunk'\n\t| 'sumo-logic'\n\t| 'wordpress';\n\ninterface PlatformIconProps extends ComponentPropsWithoutRef<'div'> {\n\tclassName?: string;\n\t/**\n\t * Which size of icon to render\n\t */\n\ticonSize?: 'm' | 'l' | 'xl' | '2xl';\n\tplatformType: PlatformType;\n}\n\n// Platform type to accessible name mapping\nconst platformLabels: Record<PlatformType, string> = {\n\tdrupal: 'Drupal',\n\tdrupal7: 'Drupal 7',\n\t'front-end-sites': 'Next.js and Gatsby',\n\tgatsby: 'Gatsby',\n\t'gatsby-wp': 'Gatsby and WordPress',\n\tgoogle: 'Google',\n\t'import-custom': 'Add custom',\n\tmicrosoft: 'Microsoft',\n\tnext: 'Next.js',\n\t'next-drupal': 'Next.js and Drupal',\n\t'next-wp': 'Next.js and WordPress',\n\tsplunk: 'Splunk',\n\t'sumo-logic': 'Sumo Logic',\n\twordpress: 'WordPress',\n};\n\n/**\n * PlatformIcon UI component\n */\nexport const PlatformIcon = ({\n\tclassName,\n\ticonSize = '2xl',\n\tplatformType,\n\t...props\n}: PlatformIconProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-platform-icon';\n\tconst platformClass = `pds-platform-icon--${platformType}`;\n\tconst sizeClass = `pds-platform-icon--${iconSize}`;\n\n\t// Preprocess icon.\n\tlet processedIcon;\n\n\t// Icon pairs get rendered from single platform svgs.\n\tconst iconPairs = ['front-end-sites', 'gatsby-wp', 'next-drupal', 'next-wp'];\n\n\tif (iconPairs.includes(platformType)) {\n\t\t// Map icon pairs to a single element.\n\t\tlet iconPair = [];\n\t\tswitch (platformType) {\n\t\t\tcase 'front-end-sites':\n\t\t\t\ticonPair = ['next', 'gatsby'];\n\t\t\t\tbreak;\n\t\t\tcase 'next-drupal':\n\t\t\t\ticonPair = ['next', 'drupal'];\n\t\t\t\tbreak;\n\t\t\tcase 'gatsby-wp':\n\t\t\t\ticonPair = ['gatsby', 'wordpress'];\n\t\t\t\tbreak;\n\t\t\tcase 'next-wp':\n\t\t\t\ticonPair = ['next', 'wordpress'];\n\t\t\t\tbreak;\n\t\t}\n\n\t\tprocessedIcon = (\n\t\t\t<span\n\t\t\t\taria-label={platformLabels[platformType]}\n\t\t\t\tclassName={`${baseClass}__group`}\n\t\t\t\trole='img'\n\t\t\t>\n\t\t\t\t{cloneElement(svgData[iconPair[0]], { 'aria-hidden': 'true' })}\n\t\t\t\t{cloneElement(svgData[iconPair[1]], { 'aria-hidden': 'true' })}\n\t\t\t</span>\n\t\t);\n\t} else {\n\t\tprocessedIcon = svgData[platformType];\n\t}\n\n\t// Render the output\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([baseClass, platformClass, sizeClass, className])}\n\t\t\t{...props}\n\t\t>\n\t\t\t{processedIcon}\n\t\t</div>\n\t);\n};\n\n// SVG Paths for each icon.\nconst svgData = {\n\tdrupal: (\n\t\t<svg\n\t\t\taria-label='Drupal'\n\t\t\tfill='none'\n\t\t\theight='32'\n\t\t\trole='img'\n\t\t\tviewBox='0 0 32 32'\n\t\t\twidth='32'\n\t\t\txmlns='http://www.w3.org/2000/svg'\n\t\t>\n\t\t\t<rect\n\t\t\t\tfill='var(--pds-color-partner-drupal)'\n\t\t\t\theight='32'\n\t\t\t\trx='16'\n\t\t\t\twidth='32'\n\t\t\t/>\n\t\t\t<path\n\t\t\t\td='M23.027 12.9858C23.027 12.9602 23.0016 12.9474 22.9762 12.9218C21.7311 11.5139 19.9652 9.51725 18.6948 8.09655C18.301 7.67418 17.9071 7.25181 17.5387 6.81664C17.4498 6.71425 17.3736 6.61185 17.2846 6.50946C17.2084 6.43267 17.1703 6.38147 17.1703 6.38147C16.7383 5.8695 16.3953 5.29354 16.1539 4.67919L16.0904 4.5384C16.0904 4.5384 16.0904 4.5384 16.065 4.5128C16.065 4.5128 16.0269 4.5 16.0142 4.5C15.9888 4.5 15.9761 4.5128 15.9634 4.5128C15.9634 4.52133 15.9549 4.52986 15.938 4.5384L15.8745 4.67919C15.6204 5.29354 15.2773 5.8695 14.8581 6.38147C14.8581 6.38147 14.82 6.43267 14.7438 6.50946C14.6548 6.61185 14.5786 6.71425 14.4897 6.81664C14.1086 7.25181 13.7274 7.67418 13.3336 8.09655C12.0632 9.51725 10.2846 11.5139 9.03954 12.9218C9.02683 12.9474 9.01413 12.9602 8.98872 12.9858C4.28813 19.2958 9.39526 24.441 9.39526 24.441H9.38256C10.8944 26.2073 13.0414 27.2952 15.3409 27.4616C15.5441 27.4872 15.7601 27.5 15.9888 27.5C16.2048 27.5 16.4207 27.4872 16.6367 27.4616C18.9489 27.2952 21.0832 26.2073 22.595 24.441C22.595 24.441 27.7149 19.2958 23.0143 12.9858H23.027ZM12.0886 17.4271L11.9742 17.6063C11.1103 18.6686 10.6022 19.7949 10.437 20.9085C10.4116 21.0492 10.2846 21.1388 10.1575 21.1132C10.0686 21.1004 10.0051 21.0365 9.96695 20.9597C9.73828 20.4221 9.58582 19.8589 9.5096 19.283C9.2174 17.2479 9.82721 15.4688 11.123 13.9457C11.6439 13.3442 12.1648 12.7426 12.6857 12.1411C12.7746 12.0387 12.9271 12.0259 13.0287 12.1155L13.0541 12.1411C13.4733 12.6274 14.0196 13.2546 14.6294 13.9713C14.7057 14.0609 14.7057 14.2017 14.6294 14.3041C13.7909 15.3152 12.9016 16.3904 12.1013 17.4143L12.0886 17.4271ZM19.3046 22.7003C18.8218 23.9802 17.869 24.7482 16.5224 24.9658C14.604 25.2602 12.8127 23.9418 12.5205 22.0092C12.5205 21.9836 12.5205 21.9708 12.5205 21.9452C12.3681 20.8573 12.6984 19.8973 13.3971 19.0782C14.2102 18.1183 16.0015 15.8912 16.0269 15.8528C16.065 15.8912 17.9707 18.2846 18.6821 19.1294C19.5841 20.1917 19.8001 21.4076 19.3173 22.7003H19.3046ZM22.1377 20.6909C22.1377 20.7293 22.0996 20.7805 22.0869 20.8189C22.036 20.9469 21.8963 21.0109 21.7692 20.9597C21.693 20.9213 21.6295 20.8573 21.6168 20.7677C21.4389 19.6925 20.9308 18.6174 20.105 17.6063L20.0288 17.4783L19.9779 17.4143C19.3173 16.5696 15.8236 12.4482 14.2991 10.6436C14.2229 10.554 14.2229 10.4132 14.2991 10.3108C14.8073 9.74764 15.3155 9.18447 15.8109 8.60851C15.8999 8.50612 16.0523 8.50612 16.1539 8.60851C16.3826 8.8645 16.5986 9.10768 16.8146 9.36366C18.1993 10.9252 19.5968 12.461 20.9435 14.0353C22.6458 16.0192 23.0397 18.2974 22.1377 20.7037V20.6909Z'\n\t\t\t\tfill='white'\n\t\t\t/>\n\t\t</svg>\n\t),\n\tdrupal7: (\n\t\t<svg\n\t\t\taria-label='Drupal 7'\n\t\t\tfill='none'\n\t\t\theight='32'\n\t\t\trole='img'\n\t\t\tviewBox='0 0 32 32'\n\t\t\twidth='32'\n\t\t\txmlns='http://www.w3.org/2000/svg'\n\t\t>\n\t\t\t<rect\n\t\t\t\tfill='var(--pds-color-partner-drupal)'\n\t\t\t\theight='32'\n\t\t\t\trx='16'\n\t\t\t\twidth='32'\n\t\t\t/>\n\t\t\t<path\n\t\t\t\td='M20.2634 9.37661C19.2723 8.72036 18.3214 8.46255 17.375 7.8063C16.7946 7.3938 15.9777 6.40005 15.2991 5.54224C15.1786 6.91567 14.7857 7.47349 14.317 7.86255C13.3661 8.65942 12.7634 8.90317 11.9286 9.37661C11.2232 9.76567 7.42857 12.5079 7.42857 17.6172C7.42857 22.736 11.5268 26.5 16.0804 26.5C20.6205 26.5 24.5714 23.0313 24.5714 17.7813C24.5714 12.5172 20.8661 9.76567 20.2634 9.37661ZM20.375 24.6391C19.4777 25.5813 16.3527 25.9844 15.1652 24.836C14.9509 24.611 15.1786 24.2735 15.4554 24.2735C15.4554 24.2735 16.2143 24.8969 17.7545 24.8969C18.9598 24.8969 19.808 24.536 20.1875 24.2407C20.4598 24.025 20.5625 24.4422 20.375 24.6391ZM17.942 22.1735C18.3304 22.0047 19.2366 21.9954 19.5848 22.2344C19.7679 22.3657 20.3036 23.1157 19.8616 23.3454C19.4866 23.5422 19.808 22.6094 18.6786 22.6094C18.0223 22.6094 17.808 22.8532 17.4866 23.125C17.1741 23.4063 17.0491 23.5 16.942 23.3454C16.6741 22.961 17.6518 22.3 17.942 22.1735ZM22.0714 22.9844C21.3929 22.9375 20.0402 20.6969 19.1696 20.6641C17.7902 20.6219 14.5223 24.4469 11.9688 22.6329C10.2366 21.386 11.317 17.7204 14.2813 17.7016C16.4911 17.6782 18.0223 19.9985 19.125 19.975C20.0759 19.961 21.8839 18.0157 22.7768 18.0157C24.9509 18.0157 23.817 23.1391 22.0714 22.9844Z'\n\t\t\t\tfill='white'\n\t\t\t/>\n\t\t</svg>\n\t),\n\twordpress: (\n\t\t<svg\n\t\t\taria-label='WordPress'\n\t\t\tfill='none'\n\t\t\theight='32'\n\t\t\trole='img'\n\t\t\tviewBox='0 0 32 32'\n\t\t\twidth='32'\n\t\t\txmlns='http://www.w3.org/2000/svg'\n\t\t>\n\t\t\t<circle cx='16' cy='16' fill='white' r='16' />\n\t\t\t<path\n\t\t\t\td='M16 0.96001C18.0309 0.96001 20.0004 1.35745 21.8541 2.14178C22.745 2.51859 23.6047 2.98515 24.4087 3.52852C25.2055 4.0666 25.9543 4.68485 26.6355 5.36549C27.3161 6.04614 27.9344 6.79543 28.4724 7.59224C29.0158 8.39624 29.4819 9.25545 29.8592 10.1468C30.643 12.0006 31.041 13.9701 31.041 16.001C31.041 18.0319 30.6435 20.0013 29.8592 21.8551C29.4824 22.746 29.0158 23.6057 28.4724 24.4097C27.9344 25.2065 27.3161 25.9553 26.6355 26.6364C25.9548 27.3171 25.2055 27.9353 24.4087 28.4734C23.6047 29.0168 22.7455 29.4829 21.8541 29.8601C20.0004 30.644 18.0309 31.0419 16 31.0419C13.9691 31.0419 11.9996 30.6445 10.1459 29.8601C9.25497 29.4833 8.39528 29.0168 7.59128 28.4734C6.79447 27.9353 6.04566 27.3171 5.36453 26.6364C4.68389 25.9558 4.06564 25.2065 3.52756 24.4097C2.98419 23.6057 2.51811 22.7465 2.14082 21.8551C1.35697 20.0013 0.95905 18.0319 0.95905 16.001C0.95905 13.9701 1.35649 12.0006 2.14082 10.1468C2.51763 9.25593 2.98419 8.39624 3.52756 7.59224C4.06564 6.79543 4.68389 6.04662 5.36453 5.36549C6.04518 4.68485 6.79447 4.0666 7.59128 3.52852C8.39528 2.98515 9.25449 2.51907 10.1459 2.14178C11.9996 1.35793 13.9691 0.96001 16 0.96001ZM16 0C7.16359 0 0 7.16359 0 16C0 24.8364 7.16359 32 16 32C24.8364 32 32 24.8364 32 16C32 7.16359 24.8369 0 16 0Z'\n\t\t\t\tfill='var(--pds-color-partner-wordpress)'\n\t\t\t/>\n\t\t\t<path\n\t\t\t\td='M2.6669 15.9996C2.6669 21.2772 5.73365 25.8382 10.1819 27.9992L3.82131 10.5736C3.08162 12.2316 2.6669 14.0666 2.6669 15.9996ZM25.0015 15.3271C25.0015 13.6788 24.4097 12.5378 23.9023 11.6498C23.2265 10.5511 22.5924 9.62129 22.5924 8.52255C22.5924 7.2971 23.5217 6.15613 24.8316 6.15613C24.8906 6.15613 24.9468 6.16333 25.0044 6.16669C22.6322 3.99323 19.4714 2.66602 16.0005 2.66602C11.342 2.66602 7.24423 5.05644 4.86004 8.67568C5.17301 8.68576 5.46821 8.692 5.71829 8.692C7.11271 8.692 9.27177 8.52255 9.27177 8.52255C9.99033 8.48031 10.0753 9.53632 9.35721 9.62129C9.35721 9.62129 8.6348 9.70577 7.83127 9.74801L12.6865 24.1904L15.605 15.4394L13.528 9.74801C12.8094 9.70577 12.1297 9.62129 12.1297 9.62129C11.4111 9.57904 11.4952 8.48031 12.2142 8.52255C12.2142 8.52255 14.4155 8.692 15.7259 8.692C17.1203 8.692 19.2799 8.52255 19.2799 8.52255C19.9984 8.48031 20.0834 9.53632 19.3648 9.62129C19.3648 9.62129 18.6415 9.70577 17.8389 9.74801L22.6577 24.0805L24.0334 19.722C24.6444 17.8174 25.0025 16.4676 25.0025 15.3266L25.0015 15.3271ZM16.2342 17.166L12.2329 28.7903C13.4276 29.1416 14.691 29.3336 16 29.3336C17.5528 29.3336 19.0423 29.0658 20.428 28.5776C20.3925 28.5205 20.3594 28.46 20.3325 28.3938L16.2342 17.166ZM27.7006 9.60353C27.7577 10.0283 27.7904 10.4839 27.7904 10.9744C27.7904 12.3271 27.5369 13.8477 26.7761 15.75L22.7037 27.5245C26.6676 25.2133 29.3336 20.9192 29.3336 16.0001C29.3336 13.6821 28.7412 11.5024 27.7006 9.60353Z'\n\t\t\t\tfill='var(--pds-color-partner-wordpress)'\n\t\t\t/>\n\t\t</svg>\n\t),\n\tgatsby: (\n\t\t<svg\n\t\t\taria-label='Gatsby'\n\t\t\tfill='none'\n\t\t\theight='32'\n\t\t\trole='img'\n\t\t\tviewBox='0 0 32 32'\n\t\t\twidth='32'\n\t\t\txmlns='http://www.w3.org/2000/svg'\n\t\t>\n\t\t\t<g clipPath='url(#clip0_14628_82557)'>\n\t\t\t\t<path\n\t\t\t\t\td='M16 32C24.8366 32 32 24.8366 32 16C32 7.16344 24.8366 0 16 0C7.16344 0 0 7.16344 0 16C0 24.8366 7.16344 32 16 32Z'\n\t\t\t\t\tfill='var(--pds-color-partner-gatsby)'\n\t\t\t\t/>\n\t\t\t\t<path\n\t\t\t\t\td='M7.0857 24.9142C4.6857 22.5142 3.42856 19.3142 3.42856 16.2285L15.8857 28.5714C12.6857 28.4571 9.4857 27.3142 7.0857 24.9142Z'\n\t\t\t\t\tfill='white'\n\t\t\t\t/>\n\t\t\t\t<path\n\t\t\t\t\td='M18.7429 28.2285L3.77142 13.257C5.02857 7.65704 10.0571 3.42847 16 3.42847C20.2286 3.42847 23.8857 5.48561 26.1714 8.57132L24.4571 10.057C22.5143 7.42847 19.4286 5.71418 16 5.71418C11.5429 5.71418 7.77142 8.57132 6.28571 12.5713L19.4286 25.7142C22.7429 24.5713 25.2571 21.7142 26.0571 18.2856H20.5714V15.9999H28.5714C28.5714 21.9428 24.3429 26.9713 18.7429 28.2285Z'\n\t\t\t\t\tfill='white'\n\t\t\t\t/>\n\t\t\t</g>\n\t\t\t<defs>\n\t\t\t\t<clipPath id='clip0_14628_82557'>\n\t\t\t\t\t<rect fill='white' height='32' width='32' />\n\t\t\t\t</clipPath>\n\t\t\t</defs>\n\t\t</svg>\n\t),\n\tgoogle: (\n\t\t<svg\n\t\t\taria-label='Google'\n\t\t\tfill='none'\n\t\t\theight='30'\n\t\t\trole='img'\n\t\t\tviewBox='0 0 30 30'\n\t\t\twidth='30'\n\t\t\txmlns='http://www.w3.org/2000/svg'\n\t\t>\n\t\t\t<path\n\t\t\t\td='M15.306 12.2727V18.0818H23.5436C23.1819 19.95 22.0964 21.5319 20.4684 22.5955L25.4359 26.3728C28.3302 23.7547 30 19.9092 30 15.341C30 14.2774 29.9026 13.2546 29.7217 12.2729L15.306 12.2727Z'\n\t\t\t\tfill='#4285F4'\n\t\t\t/>\n\t\t\t<path\n\t\t\t\td='M6.72795 17.855L5.60757 18.6955L1.64178 21.7227C4.16036 26.6181 9.32237 30 15.3057 30C19.4383 30 22.903 28.6636 25.4356 26.3728L20.468 22.5955C19.1044 23.4955 17.365 24.041 15.3057 24.041C11.3261 24.041 7.94488 21.4092 6.7342 17.8637L6.72795 17.855Z'\n\t\t\t\tfill='#34A853'\n\t\t\t/>\n\t\t\t<path\n\t\t\t\td='M1.64183 8.27734C0.598274 10.2954 0 12.5727 0 15C0 17.4272 0.598274 19.7045 1.64183 21.7226C1.64183 21.7362 6.73474 17.8499 6.73474 17.8499C6.42861 16.9499 6.24767 15.9954 6.24767 14.9998C6.24767 14.0042 6.42861 13.0498 6.73474 12.1498L1.64183 8.27734Z'\n\t\t\t\tfill='#FBBC05'\n\t\t\t/>\n\t\t\t<path\n\t\t\t\td='M15.3624 5.97272C17.6166 5.97272 19.6203 6.73634 21.2205 8.20909L25.6037 3.91369C22.9459 1.48646 19.4952 0 15.3624 0C9.37908 0 4.21676 3.36818 1.69818 8.27728L6.79093 12.15C8.00145 8.60452 11.3828 5.97272 15.3624 5.97272Z'\n\t\t\t\tfill='#EA4335'\n\t\t\t/>\n\t\t</svg>\n\t),\n\tmicrosoft: (\n\t\t<svg\n\t\t\taria-label='Microsoft'\n\t\t\tfill='none'\n\t\t\theight='30'\n\t\t\trole='img'\n\t\t\tviewBox='0 0 30 30'\n\t\t\twidth='30'\n\t\t\txmlns='http://www.w3.org/2000/svg'\n\t\t>\n\t\t\t<g clipPath='url(#clip0_627_542)'>\n\t\t\t\t<path d='M30 0H15.6295V14.3705H30V0Z' fill='#80BC06' />\n\t\t\t\t<path d='M14.3705 0H0V14.3705H14.3705V0Z' fill='#F25325' />\n\t\t\t\t<path d='M14.3705 15.6295H0V30.0001H14.3705V15.6295Z' fill='#05A6F0' />\n\t\t\t\t<path d='M15.6295 15.6295H30V30.0001H15.6295V15.6295Z' fill='#FEBA08' />\n\t\t\t</g>\n\t\t\t<defs>\n\t\t\t\t<clipPath id='clip0_627_542'>\n\t\t\t\t\t<rect fill='white' height='30' width='30' />\n\t\t\t\t</clipPath>\n\t\t\t</defs>\n\t\t</svg>\n\t),\n\tnext: (\n\t\t<svg\n\t\t\taria-label='Next.js'\n\t\t\tfill='none'\n\t\t\theight='32'\n\t\t\trole='img'\n\t\t\tviewBox='0 0 180 180'\n\t\t\twidth='32'\n\t\t\txmlns='http://www.w3.org/2000/svg'\n\t\t>\n\t\t\t<mask\n\t\t\t\theight='180'\n\t\t\t\tid='nextjs_mask'\n\t\t\t\tmaskUnits='userSpaceOnUse'\n\t\t\t\tstyle={{ maskType: 'alpha' }}\n\t\t\t\twidth='180'\n\t\t\t\tx='0'\n\t\t\t\ty='0'\n\t\t\t>\n\t\t\t\t<circle cx='90' cy='90' fill='black' r='90' />\n\t\t\t</mask>\n\t\t\t<g mask='url(#nextjs_mask)'>\n\t\t\t\t<circle cx='90' cy='90' fill='var(--pds-color-partner-nextjs)' r='90' />\n\t\t\t\t<path\n\t\t\t\t\td='M149.508 157.52L69.142 54H54V125.97H66.1136V69.3836L139.999 164.845C143.333 162.614 146.509 160.165 149.508 157.52Z'\n\t\t\t\t\tfill='url(#nextjs_gradient_diagonal)'\n\t\t\t\t/>\n\t\t\t\t<rect\n\t\t\t\t\tfill='url(#nextjs_gradient_vertical)'\n\t\t\t\t\theight='72'\n\t\t\t\t\twidth='12'\n\t\t\t\t\tx='115'\n\t\t\t\t\ty='54'\n\t\t\t\t/>\n\t\t\t</g>\n\t\t\t<defs>\n\t\t\t\t<linearGradient\n\t\t\t\t\tgradientUnits='userSpaceOnUse'\n\t\t\t\t\tid='nextjs_gradient_diagonal'\n\t\t\t\t\tx1='109'\n\t\t\t\t\tx2='144.5'\n\t\t\t\t\ty1='116.5'\n\t\t\t\t\ty2='160.5'\n\t\t\t\t>\n\t\t\t\t\t<stop stopColor='white' />\n\t\t\t\t\t<stop offset='1' stopColor='white' stopOpacity='0' />\n\t\t\t\t</linearGradient>\n\t\t\t\t<linearGradient\n\t\t\t\t\tgradientUnits='userSpaceOnUse'\n\t\t\t\t\tid='nextjs_gradient_vertical'\n\t\t\t\t\tx1='121'\n\t\t\t\t\tx2='120.799'\n\t\t\t\t\ty1='54'\n\t\t\t\t\ty2='106.875'\n\t\t\t\t>\n\t\t\t\t\t<stop stopColor='white' />\n\t\t\t\t\t<stop offset='1' stopColor='white' stopOpacity='0' />\n\t\t\t\t</linearGradient>\n\t\t\t</defs>\n\t\t</svg>\n\t),\n\tsplunk: (\n\t\t<svg\n\t\t\taria-label='Splunk'\n\t\t\tfill='none'\n\t\t\theight='32'\n\t\t\trole='img'\n\t\t\tviewBox='0 0 32 32'\n\t\t\twidth='32'\n\t\t\txmlns='http://www.w3.org/2000/svg'\n\t\t>\n\t\t\t<g transform='scale(0.6667)'>\n\t\t\t\t<path\n\t\t\t\t\td='M37.5,4h-27A6.5,6.5,0,0,0,4,10.5v27A6.5,6.5,0,0,0,10.5,44h27A6.5,6.5,0,0,0,44,37.5v-27A6.5,6.5,0,0,0,37.5,4ZM33.6,26.1c0,.1,0,.2-.2.3L14.7,35.8c-.1.1-.3-.1-.3-.2V30.8c0-.1,0-.2.1-.2l13.6-6.8L14.5,16.9c-.1,0-.1-.1-.1-.2V11.9c0-.1.2-.3.3-.2l18.7,9.4a.5.5,0,0,1,.2.4Z'\n\t\t\t\t\tfill='#000000'\n\t\t\t\t/>\n\t\t\t</g>\n\t\t</svg>\n\t),\n\t'sumo-logic': (\n\t\t<svg\n\t\t\taria-label='Sumo Logic'\n\t\t\tfill='none'\n\t\t\theight='32'\n\t\t\trole='img'\n\t\t\tviewBox='0 0 32 32'\n\t\t\twidth='32'\n\t\t\txmlns='http://www.w3.org/2000/svg'\n\t\t>\n\t\t\t<g transform='scale(0.03125)'>\n\t\t\t\t<circle cx='512' cy='512' fill='#000099' r='512' />\n\t\t\t\t<path\n\t\t\t\t\td='M352.9 361.4c-12.7-2.7-21.8-5.1-26.9-6.3-6.3-1.8-11.2-4.2-13.6-7.6v-13.9c4.2-6.6 14.5-10.9 28.7-10.9 19.6 0 33.2 4.5 54.7 21.5l25.1-30.2c-25.4-21.2-47.1-28.7-78.6-28.7-36.3 0-61.3 14.8-71.3 36v45.9c7.9 15.4 26 24.2 62.2 32 13 3 21.8 5.1 26.9 6 6.6 2.1 12.7 4.8 16 9.7v16c-4.5 7.3-15.4 11.2-29.6 11.2-10.3.3-20.2-1.8-29.6-5.7-9.1-3.6-19.6-10.6-32.9-21.5l-26.9 29.9c29 25.7 53.5 34.4 88.2 34.4 37.2 0 63.5-14.2 73.4-36.9v-46.2c-8.4-17.2-28.7-26.2-65.8-34.7zm401.5-70.1v182.5h-42.6v-19.3c-9.7 15.7-27.5 24.8-53.5 24.8-43.2 0-64.7-22.4-64.7-58v-130h46.5v117.5c0 19 10.3 30.2 30.2 30.2 23.3 0 37.5-13.3 37.5-37.8v-110h46.6zM531.8 606.9v127.5h-46.5V620.8c0-21.8-8.8-35.1-29-35.1s-32 15.1-32 36.3v112.4h-46.5V620.8c0-23.3-9.7-35.1-29-35.1-20.5 0-32 15.1-32 36.3v112.4h-46.5V551.9h43.2v20.2c10.6-17.5 28.1-26.3 52-26.3 23.3 0 40.8 9.7 50.8 26.9 12.4-17.8 30.8-26.9 54.7-26.9 38.8.1 60.8 23.4 60.8 61.1zm139.8-62.8c-42 0-74.9 22.7-88.5 58.9v76.8c13.3 36.3 46.5 58.9 88.5 58.9s74.6-22.7 87.9-58.6v-77.4c-13.5-35.9-46.5-58.6-87.9-58.6zm43 124.2c-7.3 19.3-22.7 30.8-43.2 30.8-20.2 0-36.3-11.5-43.5-30.8v-53.8c7.3-19.3 22.7-31.1 43.5-31.1 20.5 0 35.7 11.8 42.9 31.1l.3 53.8z'\n\t\t\t\t\tfill='#FFFFFF'\n\t\t\t\t/>\n\t\t\t</g>\n\t\t</svg>\n\t),\n\t'import-custom': (\n\t\t<svg\n\t\t\taria-label='Add custom'\n\t\t\tfill='none'\n\t\t\theight='32'\n\t\t\trole='img'\n\t\t\tviewBox='0 0 32 32'\n\t\t\twidth='32'\n\t\t\txmlns='http://www.w3.org/2000/svg'\n\t\t>\n\t\t\t<rect fill='var(--pds-color-fg-default)' height='32' rx='16' width='32' />\n\t\t\t<path\n\t\t\t\td='M17 10.5V15H21.5C22.0312 15 22.5 15.4688 22.5 16C22.5 16.5625 22.0312 17 21.5 17H17V21.5C17 22.0625 16.5312 22.5 16 22.5C15.4375 22.5 15 22.0625 15 21.5V17H10.5C9.9375 17 9.5 16.5625 9.5 16C9.5 15.4688 9.9375 15 10.5 15H15V10.5C15 9.96875 15.4375 9.5 16 9.5C16.5312 9.5 17 9.96875 17 10.5Z'\n\t\t\t\tfill='var(--pds-color-fg-reverse)'\n\t\t\t/>\n\t\t</svg>\n\t),\n};\n","import React, { ComponentPropsWithoutRef, MouseEvent } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { ButtonType } from '@libs/types/custom-types';\n\nimport { PlatformIcon } from '@components/icons/PlatformIcon/PlatformIcon';\n\nimport './sso-button.css';\n\ntype SSOButtonSize = 'm' | 'l';\n\ntype PlatformType = 'google' | 'microsoft';\n\ninterface SSOButtonProps extends ComponentPropsWithoutRef<'button'> {\n\t/**\n\t * Type of button\n\t */\n\tbuttonType?: ButtonType;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Is the button disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * The text of the button\n\t */\n\tlabel: string;\n\t/**\n\t * Click event handler callback\n\t */\n\tonClick?: (e: MouseEvent<HTMLElement>) => void;\n\t/**\n\t * Which platform to render\n\t */\n\tplatform: PlatformType;\n\t/**\n\t * Which size of button to render\n\t * @default 'm'\n\t */\n\tsize?: SSOButtonSize;\n}\n\n/**\n * A Component used to render an SSO Button\n */\nexport const SSOButton = ({\n\tbuttonType = 'button',\n\tclassName = '',\n\tdisabled = false,\n\tlabel,\n\tonClick,\n\tplatform,\n\tsize = 'm',\n\t...props\n}: SSOButtonProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-sso-button';\n\tconst sizeClass = `${baseClass}--${size}`;\n\n\t// Map button sizes to icon sizes.\n\tconst iconSize = size === 'm' ? 'l' : '2xl';\n\n\t// Render the chosen icon\n\tconst renderedIcon = (\n\t\t<PlatformIcon\n\t\t\tclassName={`${baseClass}__icon`}\n\t\t\ticonSize={iconSize}\n\t\t\tplatformType={platform}\n\t\t/>\n\t);\n\n\t// Render the output\n\treturn (\n\t\t<button\n\t\t\tclassName={mergeClasses([baseClass, sizeClass, className])}\n\t\t\tdisabled={disabled}\n\t\t\tonClick={onClick}\n\t\t\ttype={buttonType}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderedIcon}\n\t\t\t{label}\n\t\t</button>\n\t);\n};\n","import React, {\n\tcloneElement,\n\tComponentPropsWithoutRef,\n\tisValidElement,\n\tReactElement,\n\tReactNode,\n} from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport { Icon, PDSIcon } from '@components/icons/Icon/Icon';\nimport { Spinner } from '@components/loading-indicators/Spinner/Spinner';\nimport { Tooltip } from '@components/Tooltip/Tooltip';\n\nimport './utility-button.css';\n\n/**\n * Prop types for UtilityButton\n */\nexport interface UtilityButtonProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Additional props for the button element.\n\t */\n\tbuttonProps?: ComponentPropsWithoutRef<'button'>;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Is the button disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Should the button have a border?\n\t */\n\thasBorder?: boolean;\n\t/**\n\t * Which icon to render.\n\t */\n\ticonName?: PDSIcon;\n\t/**\n\t * Position of the icon relative to the label.\n\t */\n\ticonPosition?: 'before' | 'after';\n\t/**\n\t * Is the button critical? If true, the button will be styled as critical on hover and focus.\n\t */\n\tisCritical?: boolean;\n\t/**\n\t * Is the button in the process of an initial load?\n\t */\n\tisLoading?: boolean;\n\t/**\n\t * Should the button label use the monospace font?\n\t */\n\tisMonospace?: boolean;\n\t/**\n\t * Is the button in the process of performing a task and should be disabled?\n\t */\n\tisWorking?: boolean;\n\t/**\n\t * The text of the button.\n\t */\n\tlabel?: string;\n\t/**\n\t * A link element using the router of your choice.\n\t * Use `linkContent` to render a link instead of text.\n\t * In this case, the `buttonProps`, `label`, and `onClick` props will be ignored.\n\t */\n\tlinkContent?: ReactNode;\n\t/**\n\t * Click event handler callback.\n\t */\n\tonClick?: () => void;\n\t/**\n\t * Tooltip text.\n\t */\n\ttooltipText?: string;\n}\n\n/**\n * UtilityButton UI component\n */\nexport const UtilityButton = ({\n\tbuttonProps,\n\tclassName,\n\tdisabled = false,\n\thasBorder = false,\n\ticonName,\n\ticonPosition = 'before',\n\tisCritical = false,\n\tisLoading,\n\tisMonospace = false,\n\tisWorking,\n\tlabel,\n\tlinkContent,\n\tonClick,\n\ttooltipText,\n\t...props\n}: UtilityButtonProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-utility-button';\n\tconst pulseClass = isLoading ? 'pds-pulse' : null;\n\n\t// Helper to render icon\n\tconst renderIcon = (key: string) =>\n\t\ticonName && !isWorking ? (\n\t\t\t<Icon key={key} className={`${baseClass}__icon`} iconName={iconName} />\n\t\t) : null;\n\n\t// Helper to render spinner\n\tconst renderSpinner = () =>\n\t\tisWorking ? (\n\t\t\t<Spinner\n\t\t\t\tkey='spinner'\n\t\t\t\tclassName={`${baseClass}__spinner`}\n\t\t\t\tcolorType='monochromatic'\n\t\t\t\tsize='s'\n\t\t\t/>\n\t\t) : null;\n\n\t// Helper to build content array (icon, spinner, label)\n\tconst buildContent = (text: ReactNode) => {\n\t\tconst content = [];\n\n\t\tif (iconPosition === 'before') {\n\t\t\tcontent.push(renderIcon('icon-before'));\n\t\t}\n\n\t\tcontent.push(renderSpinner());\n\n\t\tcontent.push(\n\t\t\t<span key='label' className={`${baseClass}__label`}>\n\t\t\t\t{text}\n\t\t\t</span>,\n\t\t);\n\n\t\tif (iconPosition === 'after') {\n\t\t\tcontent.push(renderIcon('icon-after'));\n\t\t}\n\n\t\treturn content.filter(Boolean);\n\t};\n\n\t// Extract label text from linkContent or use label prop\n\tconst extractedLabel =\n\t\tlinkContent && isValidElement(linkContent)\n\t\t\t? (linkContent.props as { children: ReactNode }).children\n\t\t\t: label;\n\n\t// Wrapper classes used by both link and button\n\tconst wrapperClasses = mergeClasses([\n\t\tbaseClass,\n\t\thasBorder ? `${baseClass}--border` : null,\n\t\tisCritical ? `${baseClass}--critical` : null,\n\t\tdisabled ? `${baseClass}--disabled` : null,\n\t\tisLoading ? `${baseClass}--loading` : null,\n\t\tisWorking ? `${baseClass}--working` : null,\n\t\tisMonospace ? `${baseClass}--monospace` : null,\n\t\tclassName ?? '',\n\t]);\n\n\t// Helper to wrap content with optional tooltip\n\tconst wrapWithTooltip = (content: ReactNode) =>\n\t\ttooltipText ? (\n\t\t\t<Tooltip content={tooltipText} customTrigger={content} />\n\t\t) : (\n\t\t\tcontent\n\t\t);\n\n\t// If linkContent is provided and not disabled, render as a link\n\tif (linkContent && !disabled) {\n\t\tconst processedLink = isValidElement(linkContent)\n\t\t\t? cloneElement(\n\t\t\t\t\tlinkContent as ReactElement,\n\t\t\t\t\tObject.assign({}, linkContent.props, {\n\t\t\t\t\t\tclassName: mergeClasses([\n\t\t\t\t\t\t\t`${baseClass}__button`,\n\t\t\t\t\t\t\tpulseClass,\n\t\t\t\t\t\t\t(linkContent.props as { className?: string }).className ?? '',\n\t\t\t\t\t\t]),\n\t\t\t\t\t\tchildren: buildContent(extractedLabel),\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t: null;\n\n\t\treturn (\n\t\t\t<div className={wrapperClasses} {...props}>\n\t\t\t\t{wrapWithTooltip(processedLink)}\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Render as button\n\tconst buttonContent = (\n\t\t<button\n\t\t\taria-disabled={disabled || isLoading || isWorking}\n\t\t\tclassName={mergeClasses([`${baseClass}__button`, pulseClass])}\n\t\t\tonClick={disabled ? undefined : onClick}\n\t\t\ttype='button'\n\t\t\t{...buttonProps}\n\t\t>\n\t\t\t{buildContent(extractedLabel)}\n\t\t</button>\n\t);\n\n\treturn (\n\t\t<div className={wrapperClasses} {...props}>\n\t\t\t{wrapWithTooltip(buttonContent)}\n\t\t</div>\n\t);\n};\n","import React, {\n\tChangeEvent,\n\tComponentPropsWithoutRef,\n\tFocusEvent,\n\tforwardRef,\n\tReactNode,\n\tRef,\n\tuseState,\n} from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { ValidationStatus } from '@libs/types/input-types';\n\nimport {\n\tCharacterCounter,\n\tgetInputWidthStyle,\n\tinputCommonClasses,\n\tInputLabel,\n\tInputMessage,\n} from '../input-utilities';\n\nimport './textarea.css';\n\n// Label strings type.\ntype LabelStrings = {\n\tclearButton: string;\n\tcounterOverLimit?: string;\n\tsearchShortcut: string;\n\tvisibilityStatus: string;\n\tvisibilityToggleHide: string;\n\tvisibilityToggleShow: string;\n};\n\nexport interface TextareaProps {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Maximum character count for the character counter. Leave blank for no counter.\n\t */\n\tcounterMaxLength?: number;\n\t/**\n\t * Initial value for the input field. Setting this prop automatically makes the input uncontrolled. Cannot be used in conjunction with the `value` prop.\n\t */\n\tdefaultValue?: string;\n\t/**\n\t * Is the field disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * ID of the textarea.\n\t */\n\tid: string;\n\t/**\n\t * Max-width of the input field. Accepts a number in pixels. Leave blank for width: 100%.\n\t */\n\tinputWidth?: number;\n\t/**\n\t * Should the textarea be resizable by the user?\n\t */\n\tisResizable?: boolean;\n\t/**\n\t * Text label associated with the input field.\n\t */\n\tlabel: string;\n\t/**\n\t * Message or description used to help clarify the usage of the input.\n\t */\n\tmessage?: string | ReactNode;\n\t/**\n\t * onBlur event handler.\n\t */\n\tonBlur?: (e: FocusEvent<HTMLTextAreaElement>) => void;\n\t/**\n\t * Function to help lift the state and retrieve the input's value.\n\t * Should accept one argument, the input's value\n\t */\n\tonChange?: (event: ChangeEvent<HTMLTextAreaElement>) => void;\n\t/**\n\t * onFocus event handler.\n\t */\n\tonFocus?: (e: FocusEvent<HTMLTextAreaElement>) => void;\n\t/**\n\t * Optional placeholder text to display when the input field is empty.\n\t */\n\tplaceholder?: string;\n\t/**\n\t * Is the field read-only?\n\t */\n\treadonly?: boolean;\n\t/**\n\t * Is the field required?\n\t */\n\trequired?: boolean;\n\t/**\n\t * Rows value to be given to the textarea type.\n\t */\n\trows?: number;\n\t/**\n\t * Should the label be visible? If false, it will render for screen readers only.\n\t */\n\tshowLabel?: boolean;\n\t/**\n\t * Input size.\n\t */\n\tsize?: 's' | 'm' | 'l';\n\t/**\n\t * Additional props for the `<textarea>` element.\n\t */\n\ttextareaProps?: ComponentPropsWithoutRef<'textarea'>;\n\t/**\n\t * Optional tooltip text to display additional information.\n\t */\n\ttooltipText?: string | null;\n\t/**\n\t * Translation strings for various labels or other visually-hidden text.\n\t */\n\ttranslationStrings?: LabelStrings;\n\t/**\n\t * Validation message for the textarea field based on the validation status.\n\t */\n\tvalidationMessage?: string;\n\t/**\n\t * Validation status of the textarea field.\n\t */\n\tvalidationStatus?: ValidationStatus;\n\t/**\n\t * Value of the textarea field. Used to set the value of the textarea field when controlled. Cannot be used in conjunction with the `defaultValue` prop.\n\t */\n\tvalue?: string;\n}\n\n/**\n * Textarea UI component\n */\nexport const Textarea = forwardRef(\n\t(\n\t\t{\n\t\t\tclassName,\n\t\t\tcounterMaxLength,\n\t\t\tdefaultValue,\n\t\t\tdisabled = false,\n\t\t\tid,\n\t\t\tinputWidth,\n\t\t\tisResizable = true,\n\t\t\tlabel,\n\t\t\tmessage,\n\t\t\tonBlur,\n\t\t\tonChange,\n\t\t\tonFocus,\n\t\t\tplaceholder,\n\t\t\treadonly = false,\n\t\t\trequired = false,\n\t\t\trows = 5,\n\t\t\tshowLabel,\n\t\t\tsize = 's',\n\t\t\ttextareaProps,\n\t\t\ttooltipText = null,\n\t\t\ttranslationStrings = {\n\t\t\t\tclearButton: 'Clear input text',\n\t\t\t\tcounterOverLimit: 'Character limit exceeded by',\n\t\t\t\tsearchShortcut: 'Press / to focus the search field',\n\t\t\t\tvisibilityStatus: 'The value of the input is',\n\t\t\t\tvisibilityToggleHide: 'Hide input value',\n\t\t\t\tvisibilityToggleShow: 'Show input value',\n\t\t\t},\n\t\t\tvalidationMessage,\n\t\t\tvalidationStatus,\n\t\t\tvalue,\n\t\t\t...props\n\t\t}: TextareaProps,\n\t\tref: Ref<HTMLTextAreaElement>,\n\t) => {\n\t\t// Determine input width style.\n\t\tconst inputWidthStyle = getInputWidthStyle(inputWidth);\n\n\t\t// Set up classes.\n\t\tconst baseClass = 'pds-textarea';\n\t\tconst resizableClass = isResizable ? 'pds-is-resizable' : null;\n\t\tconst disabledClass = disabled ? inputCommonClasses.disabled : null;\n\t\tconst requiredClass =\n\t\t\trequired && !disabled ? inputCommonClasses.required : null;\n\t\tconst errorClass =\n\t\t\tvalidationStatus === 'error' ? inputCommonClasses.error : null;\n\t\tconst successClass =\n\t\t\tvalidationStatus === 'success' ? inputCommonClasses.success : null;\n\t\tconst sizeClass = size !== 's' ? `${baseClass}--${size}` : null;\n\t\tconst readonlyClass = readonly ? inputCommonClasses.readonly : null;\n\n\t\t// If there is a validation message, use that. Otherwise, use the message prop.\n\t\tconst processedMessage = validationMessage || message;\n\n\t\t// Determine if the textarea is controlled.\n\t\tconst isControlled =\n\t\t\tvalue !== undefined && value !== null && onChange !== undefined;\n\n\t\t// When a component is not controlled, it can have a defaultValue.\n\t\tconst hasDefaultValue = typeof defaultValue != 'undefined';\n\n\t\t// If the textarea is uncontrolled, use state within the component to manage the value.\n\t\tconst [internalValue, setInternalValue] = useState(\n\t\t\thasDefaultValue ? defaultValue : '',\n\t\t);\n\n\t\t// Determine if the textarea has a value either from props or internal state.\n\t\tconst hasValue = value || internalValue;\n\n\t\t// Handle change event.\n\t\tconst handleChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\n\t\t\tif (!isControlled) {\n\t\t\t\tsetInternalValue(e.target.value);\n\t\t\t}\n\n\t\t\tif (onChange) {\n\t\t\t\tonChange(e);\n\t\t\t}\n\t\t};\n\n\t\t// Handle blur event.\n\t\tconst handleBlur = (e: FocusEvent<HTMLTextAreaElement>) => {\n\t\t\tif (onBlur) {\n\t\t\t\tonBlur(e);\n\t\t\t}\n\t\t};\n\n\t\t// Render the output\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={mergeClasses([\n\t\t\t\t\tinputCommonClasses.base,\n\t\t\t\t\tbaseClass,\n\t\t\t\t\tsizeClass,\n\t\t\t\t\tdisabledClass,\n\t\t\t\t\trequiredClass,\n\t\t\t\t\terrorClass,\n\t\t\t\t\tsuccessClass,\n\t\t\t\t\treadonlyClass,\n\t\t\t\t\tclassName ?? '',\n\t\t\t\t])}\n\t\t\t\tstyle={inputWidth ? inputWidthStyle : null}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<div className={`${baseClass}__inputlabel-wrapper`}>\n\t\t\t\t\t<InputLabel\n\t\t\t\t\t\tclassName={`${baseClass}__inputlabel`}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tid={id}\n\t\t\t\t\t\tlabel={label}\n\t\t\t\t\t\trequired={required}\n\t\t\t\t\t\tshowLabel={showLabel}\n\t\t\t\t\t\ttooltipText={tooltipText}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{/* Character counter */}\n\t\t\t\t\t{counterMaxLength && (\n\t\t\t\t\t\t<CharacterCounter\n\t\t\t\t\t\t\tcurrentLength={hasValue.length}\n\t\t\t\t\t\t\tid={id}\n\t\t\t\t\t\t\tmaxLength={counterMaxLength}\n\t\t\t\t\t\t\toverLimitMessage={translationStrings.counterOverLimit}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\n\t\t\t\t<div className={`${baseClass}__input-wrapper`}>\n\t\t\t\t\t<textarea\n\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\taria-describedby={processedMessage ? `${id}__message` : null}\n\t\t\t\t\t\taria-invalid={validationStatus === 'error' ? true : false}\n\t\t\t\t\t\tclassName={mergeClasses([`${baseClass}--textarea`, resizableClass])}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tid={id}\n\t\t\t\t\t\tname={id}\n\t\t\t\t\t\tonBlur={handleBlur}\n\t\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\t\tonFocus={onFocus}\n\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\treadOnly={readonly}\n\t\t\t\t\t\trequired={required}\n\t\t\t\t\t\trows={rows}\n\t\t\t\t\t\tvalue={isControlled ? value : internalValue}\n\t\t\t\t\t\t{...textareaProps}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\n\t\t\t\t{processedMessage && (\n\t\t\t\t\t<InputMessage\n\t\t\t\t\t\tvalidationMessageHasDecorators\n\t\t\t\t\t\thasValidationMessage={validationMessage ? true : false}\n\t\t\t\t\t\tid={id}\n\t\t\t\t\t\tmessage={processedMessage}\n\t\t\t\t\t\tvalidationStatus={validationStatus}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t},\n);\n","import React, {\n\tChangeEvent,\n\tComponentPropsWithoutRef,\n\tFocusEvent,\n\tforwardRef,\n\tReactNode,\n\tRef,\n\tuseState,\n} from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { ValidationStatus } from '@libs/types/input-types';\n\nimport { Icon } from '@components/icons/Icon/Icon';\n\nimport {\n\tCharacterCounter,\n\tClearButton,\n\tgetInputWidthStyle,\n\tinputCommonClasses,\n\tInputLabel,\n\tInputMessage,\n\tInputPrefix,\n\tPrefixVariants,\n\tSearchShortcut,\n\tstripUrlProtocol,\n} from '../input-utilities';\n\nimport './text-input.css';\n\n// Label strings type.\ntype LabelStrings = {\n\tclearButton: string;\n\tcounterOverLimit?: string;\n\tsearchShortcut: string;\n\tvisibilityStatus: string;\n\tvisibilityToggleHide: string;\n\tvisibilityToggleShow: string;\n};\n\ntype HtmlInputTypes =\n\t| 'text'\n\t| 'number'\n\t| 'email'\n\t| 'password'\n\t| 'tel'\n\t| 'url'\n\t| 'search';\n\n/**\n * Prop types for TextInput\n */\nexport interface TextInputProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Auto complete attribute for the input field. The attribute value is either the keyword `off` or `on`, or an ordered list of space-separated tokens. Password fields are automatically off.\n\t */\n\tautoComplete?: string;\n\t/**\n\t * Additional class names for input.\n\t */\n\tclassName?: string;\n\t/**\n\t * Maximum character count for the character counter. Leave blank for no counter. Not valid for type `password`.\n\t */\n\tcounterMaxLength?: number;\n\t/**\n\t * Initial value for the input field. Setting this prop automatically makes the input uncontrolled. Cannot be used in conjunction with the `value` prop.\n\t */\n\tdefaultValue?: string;\n\t/**\n\t * Is the field disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Does the input contain a clear button?\n\t */\n\thasClearButton?: boolean;\n\t/**\n\t * Does the input contain the search shortcut?\n\t * Only valid if the input type is `search`.\n\t */\n\thasSearchShortcut?: boolean;\n\t/**\n\t * Show a fixed \"https://\" prefix for URL inputs. Only valid if the input type is \"url\".\n\t */\n\thasUrlPrefix?: boolean;\n\t/**\n\t * Input ID.\n\t */\n\tid: string;\n\t/**\n\t * Additional props for the `<input>` element.\n\t */\n\tinputProps?: ComponentPropsWithoutRef<'input'>;\n\t/**\n\t * Max-width of the input field. Accepts a number in pixels. Leave blank for width: 100%.\n\t */\n\tinputWidth?: number;\n\t/**\n\t * Input label.\n\t */\n\tlabel: string;\n\t/**\n\t * Input message. Used to provide supplemental text. Will be displayed below the input field.\n\t */\n\tmessage?: string | ReactNode;\n\t/**\n\t * onBlur event handler.\n\t */\n\tonBlur?: (e: FocusEvent<HTMLInputElement>) => void;\n\t/**\n\t * onChange event handler. Controlled inputs should use this to manage the input value. Uncontrolled inputs will manage their own state, but may still use this to access the event object.\n\t */\n\tonChange?: (e: ChangeEvent<HTMLInputElement>) => void;\n\t/**\n\t * Function to clear the input field. Only necessary if the input is controlled. This functionality is built-in for uncontrolled inputs.\n\t */\n\tonClear?: () => void;\n\t/**\n\t * onFocus event handler.\n\t */\n\tonFocus?: (e: FocusEvent<HTMLInputElement>) => void;\n\t/**\n\t * Optional placeholder text to display when the input field is empty.\n\t */\n\tplaceholder?: string;\n\t/**\n\t * Is the field read-only?\n\t */\n\treadonly?: boolean;\n\t/**\n\t * Is this field required?\n\t */\n\trequired?: boolean;\n\t/**\n\t * Icon to use when type is search.\n\t */\n\tsearchIcon?: 'search' | 'filter';\n\t/**\n\t * Should the label be visible? If false, it will render for screen readers only.\n\t */\n\tshowLabel?: boolean;\n\t/**\n\t * Show Toggle visibility control for input. Valid for type `password` only.\n\t */\n\tshowVisibilityToggle?: boolean;\n\t/**\n\t * Input size.\n\t */\n\tsize?: 's' | 'm' | 'l';\n\t/**\n\t * Optional tooltip text to display additional information.\n\t */\n\ttooltipText?: string | null;\n\t/**\n\t * Translation strings for various labels or other visually-hidden text.\n\t */\n\ttranslationStrings?: LabelStrings;\n\t/**\n\t * Type of input field to use.\n\t */\n\ttype?: HtmlInputTypes;\n\t/**\n\t * Validation message for the input field based on the validation status.\n\t */\n\tvalidationMessage?: string;\n\t/**\n\t * Validation status of the input field.\n\t */\n\tvalidationStatus?: ValidationStatus;\n\t/**\n\t * Value of the input field. Used to set the value of the input field when controlled. Cannot be used in conjunction with the `defaultValue` prop.\n\t */\n\tvalue?: string;\n}\n\n/**\n * URL Prefix component for TextInput\n */\nconst UrlPrefix = () => (\n\t<div className='pds-text-input__url-prefix'>https://</div>\n);\n\n/**\n * TextInput UI component\n */\nexport const TextInput = forwardRef(\n\t(\n\t\t{\n\t\t\tautoComplete,\n\t\t\tclassName,\n\t\t\tcounterMaxLength,\n\t\t\tdefaultValue,\n\t\t\tdisabled = false,\n\t\t\thasClearButton = false,\n\t\t\thasSearchShortcut = false,\n\t\t\thasUrlPrefix = false,\n\t\t\tid,\n\t\t\tinputProps,\n\t\t\tinputWidth,\n\t\t\tlabel,\n\t\t\tmessage,\n\t\t\tonBlur,\n\t\t\tonChange,\n\t\t\tonClear,\n\t\t\tonFocus,\n\t\t\tplaceholder,\n\t\t\treadonly = false,\n\t\t\trequired = false,\n\t\t\tsearchIcon = 'search',\n\t\t\tshowLabel = true,\n\t\t\tshowVisibilityToggle = false,\n\t\t\tsize = 's',\n\t\t\ttooltipText = null,\n\t\t\ttranslationStrings = {\n\t\t\t\tclearButton: 'Clear input text',\n\t\t\t\tcounterOverLimit: 'Character limit exceeded by',\n\t\t\t\tsearchShortcut: 'Press / to focus the search field',\n\t\t\t\tvisibilityStatus: 'The value of the input is',\n\t\t\t\tvisibilityToggleHide: 'Hide input value',\n\t\t\t\tvisibilityToggleShow: 'Show input value',\n\t\t\t},\n\t\t\ttype = 'text',\n\t\t\tvalidationMessage,\n\t\t\tvalidationStatus,\n\t\t\tvalue,\n\t\t\t...props\n\t\t}: TextInputProps,\n\t\tref: Ref<HTMLInputElement>,\n\t) => {\n\t\t// Determine input width style.\n\t\tconst inputWidthStyle = getInputWidthStyle(inputWidth);\n\n\t\t// Set up classes.\n\t\tconst baseClass = 'pds-text-input';\n\t\tconst disabledClass = disabled ? inputCommonClasses.disabled : null;\n\t\tconst requiredClass =\n\t\t\trequired && !disabled ? inputCommonClasses.required : null;\n\t\tconst errorClass =\n\t\t\tvalidationStatus === 'error' ? inputCommonClasses.error : null;\n\t\tconst successClass =\n\t\t\tvalidationStatus === 'success' ? inputCommonClasses.success : null;\n\t\tconst readonlyClass = readonly ? inputCommonClasses.readonly : null;\n\t\tconst sizeClass = size !== 's' ? `${baseClass}--${size}` : null;\n\t\tconst urlPrefixClass =\n\t\t\thasUrlPrefix && type === 'url' ? `${baseClass}--has-url-prefix` : null;\n\n\t\t// Set prefix.\n\t\tlet prefix: PrefixVariants | null = null;\n\t\tif (type === 'search') {\n\t\t\tprefix = 'search';\n\t\t}\n\n\t\tif (type === 'search' && searchIcon === 'filter') {\n\t\t\tprefix = 'filter';\n\t\t}\n\n\t\tif (validationStatus === 'error') {\n\t\t\tprefix = 'error';\n\t\t}\n\t\tif (validationStatus === 'success') {\n\t\t\tprefix = 'success';\n\t\t}\n\n\t\t// If there is a validation message, use that. Otherwise, use the message prop.\n\t\tconst processedMessage = validationMessage || message;\n\n\t\t// Determine if the input is controlled.\n\t\tconst isControlled = typeof value != 'undefined';\n\n\t\t// When a component is not controlled, it can have a defaultValue.\n\t\tconst hasDefaultValue = typeof defaultValue != 'undefined';\n\n\t\t// If the input is uncontrolled, use state within the component to manage the value.\n\t\tconst [internalValue, setInternalValue] = useState(\n\t\t\thasDefaultValue ? defaultValue : '',\n\t\t);\n\n\t\t// Determine if the input has a value either from props or internal state.\n\t\tconst hasValue = value || internalValue;\n\n\t\t// Handle blur event.\n\t\tconst handleBlur = (e: FocusEvent<HTMLInputElement>) => {\n\t\t\tif (showVisibilityToggle && visibility) {\n\t\t\t\tsetVisibility(false);\n\t\t\t}\n\n\t\t\t// Process URL prefix if needed\n\t\t\tif (hasUrlPrefix && type === 'url') {\n\t\t\t\tconst processedValue = stripUrlProtocol(e.target.value);\n\n\t\t\t\tconst newEvent = {\n\t\t\t\t\t...e,\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\t...e.target,\n\t\t\t\t\t\tvalue: processedValue,\n\t\t\t\t\t},\n\t\t\t\t} as FocusEvent<HTMLInputElement>;\n\n\t\t\t\tif (onBlur) {\n\t\t\t\t\tonBlur(newEvent);\n\t\t\t\t}\n\t\t\t} else if (onBlur) {\n\t\t\t\tonBlur(e);\n\t\t\t}\n\t\t};\n\n\t\t// Handle change event.\n\t\tconst handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n\t\t\tif (hasUrlPrefix && type === 'url') {\n\t\t\t\tconst processedValue = stripUrlProtocol(e.target.value);\n\n\t\t\t\tconst newEvent = {\n\t\t\t\t\t...e,\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\t...e.target,\n\t\t\t\t\t\tvalue: processedValue,\n\t\t\t\t\t},\n\t\t\t\t} as ChangeEvent<HTMLInputElement>;\n\n\t\t\t\tif (!isControlled) {\n\t\t\t\t\tsetInternalValue(processedValue);\n\t\t\t\t}\n\n\t\t\t\tif (onChange) {\n\t\t\t\t\tonChange(newEvent);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (!isControlled) {\n\t\t\t\t\tsetInternalValue(e.target.value);\n\t\t\t\t}\n\n\t\t\t\tif (onChange) {\n\t\t\t\t\tonChange(e);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t// Handle clear button.\n\t\tconst handleClear = () => {\n\t\t\tif (!isControlled) {\n\t\t\t\tsetInternalValue('');\n\t\t\t}\n\n\t\t\tif (onClear) {\n\t\t\t\tonClear();\n\t\t\t}\n\n\t\t\t// Set focus to the input field.\n\t\t\tconst element = document.getElementById(id);\n\t\t\tif (element) {\n\t\t\t\telement.focus();\n\t\t\t}\n\t\t};\n\n\t\t// Set up state for visibility.\n\t\tconst [visibility, setVisibility] = useState(false);\n\n\t\t// Function to toggle visibility.\n\t\tconst handleShowVisibilityToggle = () => {\n\t\t\t// Toggle visibility.\n\t\t\tsetVisibility((previous) => {\n\t\t\t\treturn !previous;\n\t\t\t});\n\n\t\t\t// Set focus to the input field.\n\t\t\tconst element = document.getElementById(id);\n\t\t\tif (element) {\n\t\t\t\telement.focus();\n\t\t\t}\n\t\t};\n\n\t\t// Get input type from props.\n\t\tlet processedType = type;\n\n\t\t// Toggle input type between `password` and `text`.\n\t\tif (showVisibilityToggle && type === 'password') {\n\t\t\tif (visibility) {\n\t\t\t\tprocessedType = 'text';\n\t\t\t} else {\n\t\t\t\tprocessedType = 'password';\n\t\t\t}\n\t\t}\n\n\t\t// Render the output\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={mergeClasses([\n\t\t\t\t\tinputCommonClasses.base,\n\t\t\t\t\tbaseClass,\n\t\t\t\t\tsizeClass,\n\t\t\t\t\tdisabledClass,\n\t\t\t\t\trequiredClass,\n\t\t\t\t\terrorClass,\n\t\t\t\t\tsuccessClass,\n\t\t\t\t\treadonlyClass,\n\t\t\t\t\turlPrefixClass,\n\t\t\t\t\tclassName ?? '',\n\t\t\t\t])}\n\t\t\t\tstyle={inputWidth ? inputWidthStyle : null}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<InputLabel\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tid={id}\n\t\t\t\t\tlabel={label}\n\t\t\t\t\trequired={required}\n\t\t\t\t\tshowLabel={showLabel}\n\t\t\t\t\ttooltipText={tooltipText}\n\t\t\t\t/>\n\n\t\t\t\t{/* Visually-hidden message for visibility status */}\n\t\t\t\t{showVisibilityToggle && type === 'password' && (\n\t\t\t\t\t<div aria-live='polite' className='visually-hidden'>\n\t\t\t\t\t\t{`${translationStrings.visibilityStatus} ${\n\t\t\t\t\t\t\tvisibility ? 'visible' : 'hidden'\n\t\t\t\t\t\t}.`}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t<div\n\t\t\t\t\tclassName={`${baseClass}__input-wrapper ${hasUrlPrefix && type === 'url' ? `${baseClass}__input-wrapper--has-prefix` : ''}`}\n\t\t\t\t>\n\t\t\t\t\t{prefix && <InputPrefix variant={prefix} />}\n\n\t\t\t\t\t{hasUrlPrefix && type === 'url' && <UrlPrefix />}\n\n\t\t\t\t\t<input\n\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\taria-describedby={processedMessage ? `${id}__message` : null}\n\t\t\t\t\t\taria-invalid={validationStatus === 'error' ? true : null}\n\t\t\t\t\t\tautoComplete={type === 'password' ? 'off' : autoComplete}\n\t\t\t\t\t\tclassName={`${baseClass}__input ${hasUrlPrefix && type === 'url' ? `${baseClass}__input--has-prefix` : ''}`}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tid={id}\n\t\t\t\t\t\tname={id}\n\t\t\t\t\t\tonBlur={handleBlur}\n\t\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\t\tonFocus={onFocus}\n\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\treadOnly={readonly}\n\t\t\t\t\t\trequired={required}\n\t\t\t\t\t\ttype={processedType}\n\t\t\t\t\t\tvalue={isControlled ? value : internalValue}\n\t\t\t\t\t\t{...inputProps}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{/* Clear button */}\n\t\t\t\t\t{hasClearButton && hasValue && (\n\t\t\t\t\t\t<ClearButton\n\t\t\t\t\t\t\tclearLabel={translationStrings.clearButton}\n\t\t\t\t\t\t\thandleClearInput={handleClear}\n\t\t\t\t\t\t\tid={id}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{/* Visibility toggle button */}\n\t\t\t\t\t{showVisibilityToggle && type === 'password' && (\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\taria-controls={id}\n\t\t\t\t\t\t\tclassName={`${baseClass}__visibility-toggle`}\n\t\t\t\t\t\t\tonClick={handleShowVisibilityToggle}\n\t\t\t\t\t\t\tonMouseDown={(e) => e.preventDefault()}\n\t\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\t\tvisibility\n\t\t\t\t\t\t\t\t\t? translationStrings.visibilityToggleHide\n\t\t\t\t\t\t\t\t\t: translationStrings.visibilityToggleShow\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttype='button'\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon iconName={visibility ? 'eyeSlash' : 'eye'} iconSize='m' />\n\t\t\t\t\t\t</button>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{/* Search shortcut */}\n\t\t\t\t\t{hasSearchShortcut && type === 'search' && !hasValue && (\n\t\t\t\t\t\t<SearchShortcut\n\t\t\t\t\t\t\tinputId={id}\n\t\t\t\t\t\t\tshortcutLabel={translationStrings.searchShortcut}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{/* Character counter */}\n\t\t\t\t\t{counterMaxLength && type !== 'password' && (\n\t\t\t\t\t\t<CharacterCounter\n\t\t\t\t\t\t\tcurrentLength={hasValue.length}\n\t\t\t\t\t\t\tid={id}\n\t\t\t\t\t\t\tmaxLength={counterMaxLength}\n\t\t\t\t\t\t\toverLimitMessage={translationStrings.counterOverLimit}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\n\t\t\t\t{processedMessage && (\n\t\t\t\t\t<InputMessage\n\t\t\t\t\t\thasValidationMessage={validationMessage ? true : false}\n\t\t\t\t\t\tid={id}\n\t\t\t\t\t\tmessage={processedMessage}\n\t\t\t\t\t\tvalidationMessageHasDecorators={false}\n\t\t\t\t\t\tvalidationStatus={validationStatus}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t},\n);\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, {\n\tcloneElement,\n\tisValidElement,\n\tReactElement,\n\tReactNode,\n} from 'react';\n\nimport { NavigationItem } from '@libs/types/navigation-types';\n\nimport { Icon, PDSIcon } from '@components/icons/Icon/Icon';\n\n/**\n * Recursively searches through navigation items to find the first active link\n * @param items - Array of navigation items to search through\n * @returns The active link element, or null if no active link is found or if the active item is a string\n * @example\n * const activeLink = getActiveLink(menuItems);\n */\nexport const getActiveLink = (items: NavigationItem[]): ReactElement | null => {\n\tif (!items) {\n\t\treturn null;\n\t}\n\tfor (let i = 0; i < items.length; i++) {\n\t\tif (isActiveItem(items[i])) {\n\t\t\t// If the linkContent is a string, return null.\n\t\t\t// Otherwise, return the linkContent.\n\t\t\treturn typeof items[i].linkContent === 'string'\n\t\t\t\t? null\n\t\t\t\t: (items[i].linkContent as ReactElement);\n\t\t}\n\t\tif (items[i].links) {\n\t\t\tconst activeLink = getActiveLink(items[i].links);\n\t\t\tif (activeLink) {\n\t\t\t\treturn activeLink;\n\t\t\t}\n\t\t}\n\t}\n\t// If no active link is found, return null.\n\treturn null;\n};\n\n/**\n * Extracts a string representation from linkContent, whether it's a string or React element\n * @param linkContent - The link content to extract string from (string or React element)\n * @returns String representation of the link content\n * @example\n * const linkText = getLinkContentString(<Link>Home</Link>); // Returns \"Home\"\n * const linkText = getLinkContentString(\"About\"); // Returns \"About\"\n */\nexport const getLinkContentString = (\n\tlinkContent: ReactElement | string,\n): string => {\n\t// If it's already a string, return it\n\tif (typeof linkContent === 'string') {\n\t\treturn linkContent;\n\t}\n\n\t// Otherwise it's a ReactElement, get the children\n\treturn (linkContent.props as any).children as string;\n};\n\n/**\n * Determines if a navigation item is currently active\n * @param item - The navigation item to check\n * @returns True if the item is active, false otherwise\n * @description Checks for active state via:\n * - The `isActive` property on the item\n * - The presence of 'pds-isActive' class on the link element\n * - Returns false for string-based items\n * @example\n * const isActive = isActiveItem(navigationItem);\n */\nexport const isActiveItem = (item: NavigationItem): boolean => {\n\t// If the type is not a string, determine if the item is active.\n\tif (typeof item.linkContent !== 'string') {\n\t\t// Via the isActive property on the item.\n\t\tif (item.isActive) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Via the pds-isActive class on the link.\n\t\tif (\n\t\t\t(item.linkContent.props as { className?: string }).className &&\n\t\t\t(item.linkContent.props as { className?: string }).className.includes(\n\t\t\t\t'pds-isActive',\n\t\t\t)\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// If not active, return false.\n\t\treturn false;\n\t}\n\n\t// If the type is a string, return false.\n\treturn false;\n};\n\n/**\n * Determines if a navigation item or any of its children are in the active trail\n * @param item - The navigation item to check (including its children)\n * @returns True if the item or any child is active, false otherwise\n * @description Recursively checks the item and all child items for active state\n * @example\n * const inActiveTrail = isActiveTrail(parentItem); // True if parent or any child is active\n */\nexport const isActiveTrail = (item: NavigationItem): boolean => {\n\tif (isActiveItem(item)) {\n\t\treturn true;\n\t}\n\n\t// Repeat for child links.\n\tif (item.links) {\n\t\tfor (let i = 0; i < item.links.length; i++) {\n\t\t\tif (isActiveTrail(item.links[i])) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn false;\n};\n\n/**\n * Checks if the provided content is an interactive element (link, button, etc.)\n * @param content - The React content to examine\n * @returns True if the content is an interactive element, false otherwise\n * @description Currently detects:\n * - Native anchor elements (`<a>`)\n * - React Router Link components (by displayName)\n * @example\n * const isInteractive = isInteractiveElement(<Link to=\"/home\">Home</Link>); // true\n * const isInteractive = isInteractiveElement(<span>Label</span>); // false\n * const isInteractive = isInteractiveElement(\"Plain text\"); // false\n */\nexport const isInteractiveElement = (content: ReactNode): boolean => {\n\tif (isValidElement(content)) {\n\t\tconst elementType = content.type;\n\n\t\t// Check for native anchor elements\n\t\tif (\n\t\t\telementType === 'a' ||\n\t\t\t(typeof elementType === 'string' && elementType.toLowerCase() === 'a')\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Check for Link components by displayName (with proper type checking)\n\t\tif (typeof elementType === 'function' || typeof elementType === 'object') {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\tconst typeWithDisplayName = elementType as any;\n\t\t\tif (typeWithDisplayName?.displayName === 'Link') {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\treturn false;\n};\n\n/**\n * Processes navigation link content based on its type and available child links\n * @param linkContent - The link content to process (string or React element)\n * @param links - Optional array of child navigation items\n * @returns Processed link content\n * @description\n * - If linkContent is a string and child links exist, clones the first child link with the string as label\n * - Otherwise returns the linkContent as-is\n * @example\n * // With string and child links - uses first child as template\n * const processed = processNavLinkContent(\"Home\", [{ linkContent: <Link to=\"/home\" /> }]);\n *\n * // With React element - returns as-is\n * const processed = processNavLinkContent(<Link to=\"/about\">About</Link>);\n */\nexport const processNavLinkContent = (\n\tlinkContent: ReactElement | string,\n\tlinks?: NavigationItem[],\n): ReactElement | string => {\n\tlet processedNavLink: ReactElement | string = null;\n\n\t// If the link content is a string and there are child links,\n\t// use the first child link with the string as the label.\n\tif (typeof linkContent === 'string' && links) {\n\t\t// Get the first child link.\n\t\tconst firstChildLink = links ? links[0].linkContent : null;\n\n\t\t// Check that the link is a valid React element.\n\t\tif (isValidElement(firstChildLink)) {\n\t\t\t// Clone the first child link and set the string as its children.\n\t\t\tprocessedNavLink = cloneElement(firstChildLink, {\n\t\t\t\t...(typeof linkContent === 'string' ? { children: linkContent } : {}),\n\t\t\t});\n\t\t}\n\t} else {\n\t\t// Otherwise, use the link content as-is.\n\t\tprocessedNavLink = linkContent;\n\t}\n\n\treturn processedNavLink;\n};\n\n/**\n * Processes side navigation global items with optional icons and specialized markup structure\n * @param baseClass - Base CSS class for styling\n * @param linkContent - The link content to process (string or React element)\n * @param links - Optional array of child navigation items\n * @param icon - Optional PDS icon to include\n * @returns Processed navigation item with icon and proper markup structure, or null\n * @description\n * Creates a structured navigation item with:\n * - Icon support with proper CSS classes\n * - Consistent markup structure for global navigation\n * - Template behavior for string content with child links\n * @example\n * // String with icon and child links\n * const item = processSideNavGlobalLinkContent('nav', 'Home', childLinks, 'home');\n *\n * // React element with icon\n * const item = processSideNavGlobalLinkContent('nav', <Link to=\"/about\">About</Link>, null, 'info');\n */\nexport const processSideNavGlobalLinkContent = (\n\tbaseClass: string,\n\tlinkContent: ReactElement | string,\n\tlinks?: NavigationItem[],\n\ticon?: PDSIcon,\n) => {\n\t// Result will be a JSX element.\n\tlet processedSideNavGlobalItem: ReactElement = null;\n\n\t// If the linkContent is a string and has child links, create a link element from the first child link.\n\t// Append the icon if it exists.\n\t// Return null if the linkContent is a string and there are no child links.\n\tif (typeof linkContent === 'string') {\n\t\t// Prep new link children for strings with or without an icon.\n\t\tconst newLinkChildrenForString = icon\n\t\t\t? [\n\t\t\t\t\t<span key={linkContent} className={`${baseClass}__item-inner`}>\n\t\t\t\t\t\t<span className={`${baseClass}__link-icon`}>\n\t\t\t\t\t\t\t<Icon iconName={icon} iconSize='m' />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<span className={`${baseClass}__link-label`}>{linkContent}</span>\n\t\t\t\t\t</span>,\n\t\t\t\t]\n\t\t\t: [\n\t\t\t\t\t<span key={linkContent} className={`${baseClass}__item-inner`}>\n\t\t\t\t\t\t<span className={`${baseClass}__link-label`}>{linkContent}</span>\n\t\t\t\t\t</span>,\n\t\t\t\t];\n\n\t\tif (links) {\n\t\t\t// Get the first child link.\n\t\t\tconst firstChildLink = links[0].linkContent;\n\t\t\tif (isValidElement(firstChildLink)) {\n\t\t\t\tprocessedSideNavGlobalItem = cloneElement(firstChildLink, {\n\t\t\t\t\t...(typeof linkContent === 'string'\n\t\t\t\t\t\t? { children: newLinkChildrenForString }\n\t\t\t\t\t\t: {}),\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tprocessedSideNavGlobalItem = null;\n\t\t}\n\t}\n\n\t// If the linkContent is a JSX element and has an icon, clone it and append the icon.\n\t// Return the linkContent as is if the linkContent is a JSX element but there is no icon.\n\tif (isValidElement(linkContent)) {\n\t\tif (icon) {\n\t\t\tprocessedSideNavGlobalItem = cloneElement(\n\t\t\t\tlinkContent,\n\t\t\t\tObject.assign({}, linkContent.props, {\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\t<span key={icon} className={`${baseClass}__item-inner`}>\n\t\t\t\t\t\t\t<span className={`${baseClass}__link-icon`}>\n\t\t\t\t\t\t\t\t<Icon iconName={icon} iconSize='m' />\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span className={`${baseClass}__link-label`}>\n\t\t\t\t\t\t\t\t{(linkContent.props as { children?: ReactNode }).children}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</span>,\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t);\n\t\t} else {\n\t\t\tprocessedSideNavGlobalItem = linkContent;\n\t\t}\n\t}\n\n\treturn processedSideNavGlobalItem;\n};\n","import React, {\n\tComponentPropsWithRef,\n\tuseContext,\n\tuseEffect,\n\tuseRef,\n} from 'react';\n\n// Local utilities.\nimport { mergeClasses } from '@libs/components/utils';\n// Types.\nimport { NavigationItem } from '@libs/types/navigation-types';\n\n// Contexts.\nimport { ResponsiveContext } from '@utilities/context-providers/ResponsiveContext/ResponsiveContext';\n\n// Components.\nimport { SplitButton } from '@components/buttons/SplitButton/SplitButton';\n\nimport { isActiveTrail } from '../navigation-utilities';\n\nimport './button-nav.css';\n\n// Extend the NavigationItem type to not allow child links.\nexport type ButtonNavItem = Omit<NavigationItem, 'links'>;\n\n/**\n * Prop types for ButtonNav\n */\nexport interface ButtonNavProps extends ComponentPropsWithRef<'nav'> {\n\t/**\n\t * Aria label for the navigation.\n\t */\n\tariaLabel: string;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Menu items to render.\n\t */\n\tmenuItems?: ButtonNavItem[];\n\t/**\n\t * Size of the Buttons.\n\t */\n\tsize?: 's' | 'm';\n}\n\n/**\n * ButtonNav UI component\n */\nexport const ButtonNav = ({\n\tariaLabel,\n\tclassName,\n\tmenuItems,\n\tsize = 's',\n\t...props\n}: ButtonNavProps) => {\n\t// Set isMobile fallback.\n\tlet isMobile = false;\n\n\t// Get responsive context.\n\tconst responsiveContext = useContext(ResponsiveContext);\n\tif (responsiveContext) {\n\t\tisMobile = responsiveContext.isMobile;\n\t}\n\n\t// Reference to the navigation element\n\tconst navRef = useRef<HTMLElement>(null);\n\n\t// Set up classes.\n\tconst baseClass = 'pds-button-nav';\n\tconst mobileClass = isMobile ? `${baseClass}--isMobile` : null;\n\tconst sizeClass = `${baseClass}--${size}`;\n\n\t// Handle keyboard navigation\n\tuseEffect(() => {\n\t\tconst handleKeyDown = (event: KeyboardEvent) => {\n\t\t\t// Only process if not in mobile view\n\t\t\tif (isMobile) return;\n\n\t\t\t// Get all focusable elements within the navigation\n\t\t\tconst nav = navRef.current;\n\t\t\tif (!nav) return;\n\n\t\t\t// Find all focusable elements within the navigation\n\t\t\tconst focusableElements = Array.from(\n\t\t\t\tnav.querySelectorAll('a, button, [tabindex]:not([tabindex=\"-1\"])'),\n\t\t\t) as HTMLElement[];\n\n\t\t\t// If no focusable elements, return\n\t\t\tif (focusableElements.length === 0) return;\n\n\t\t\t// Get the currently focused element\n\t\t\tconst focusedElement = document.activeElement as HTMLElement;\n\t\t\tconst currentIndex = focusableElements.indexOf(focusedElement);\n\n\t\t\t// Only process if one of our navigation elements has focus\n\t\t\tif (currentIndex === -1) return;\n\n\t\t\t// Handle arrow keys\n\t\t\tif (event.key === 'ArrowRight') {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst nextIndex = (currentIndex + 1) % focusableElements.length;\n\t\t\t\tfocusableElements[nextIndex].focus();\n\t\t\t} else if (event.key === 'ArrowLeft') {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst prevIndex =\n\t\t\t\t\t(currentIndex - 1 + focusableElements.length) %\n\t\t\t\t\tfocusableElements.length;\n\t\t\t\tfocusableElements[prevIndex].focus();\n\t\t\t}\n\t\t};\n\n\t\tdocument.addEventListener('keydown', handleKeyDown);\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('keydown', handleKeyDown);\n\t\t};\n\t}, [isMobile]);\n\n\t// Render each menu item for the default view.\n\tconst ButtonMenuItem = ({ isActive, linkContent }: ButtonNavItem) => {\n\t\t// Define item class.\n\t\tconst itemClass = `${baseClass}__item`;\n\n\t\treturn (\n\t\t\t<li\n\t\t\t\tclassName={mergeClasses([\n\t\t\t\t\titemClass,\n\t\t\t\t\tisActive ? `${itemClass}--active` : null,\n\t\t\t\t])}\n\t\t\t>\n\t\t\t\t{linkContent}\n\t\t\t</li>\n\t\t);\n\t};\n\n\t// Preprocess the default menu markup.\n\tconst defaultMarkup =\n\t\tmenuItems.length > 0 ? (\n\t\t\t<ul className={`${baseClass}__menu`}>\n\t\t\t\t{menuItems.map((item, index) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ButtonMenuItem\n\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\tisActive={isActiveTrail(item)}\n\t\t\t\t\t\t\tlinkContent={item.linkContent}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</ul>\n\t\t) : null;\n\n\t// Process the mobile menu items.\n\tconst mobileMenuItems = [];\n\n\tmenuItems.map((item) => {\n\t\tif (item.linkContent) {\n\t\t\tif (!isActiveTrail(item)) {\n\t\t\t\tmobileMenuItems.push({\n\t\t\t\t\tlinkContent: item.linkContent,\n\t\t\t\t\tisLink: true,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tmobileMenuItems.unshift({\n\t\t\t\t\tlinkContent: item.linkContent,\n\t\t\t\t\tisLink: true,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n\n\t// Preprocess the mobile markup.\n\tconst mobileMarkup =\n\t\tmobileMenuItems.length > 0 ? (\n\t\t\t<SplitButton\n\t\t\t\tactionItems={mobileMenuItems}\n\t\t\t\tid='mobile-nav-split-button'\n\t\t\t\tsize={size}\n\t\t\t\tvariant='secondary'\n\t\t\t/>\n\t\t) : null;\n\n\t// Render the output\n\treturn (\n\t\t<nav\n\t\t\tref={navRef}\n\t\t\taria-label={ariaLabel}\n\t\t\tclassName={mergeClasses([\n\t\t\t\tbaseClass,\n\t\t\t\tsizeClass,\n\t\t\t\tmobileClass,\n\t\t\t\tclassName ?? '',\n\t\t\t])}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isMobile ? mobileMarkup : defaultMarkup}\n\t\t</nav>\n\t);\n};\n","import React, {\n\tComponentPropsWithoutRef,\n\tMouseEvent,\n\tReactNode,\n\tuseEffect,\n\tuseState,\n} from 'react';\n\nimport { Z_INDEX_NOTIFICATIONS } from '@pantheon-systems/pds-design-tokens/build/js/variables.global.js';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { StatusType, StatusTypeLabels } from '@libs/types/custom-types';\n\nimport { IconButton } from '@components/buttons/IconButton/IconButton';\nimport { Icon, PDSIcon } from '@components/icons/Icon/Icon';\n\nimport './banner.css';\n\ntype BannerVariant = Exclude<StatusType, 'success'> | 'neutral';\n\nconst iconTypes: Record<Exclude<BannerVariant, 'neutral'>, PDSIcon> = {\n\tinfo: 'circleInfo',\n\twarning: 'triangleExclamation',\n\tcritical: 'diamondExclamation',\n\tdiscovery: 'bullhorn',\n};\n\nconst ANIMATION_DURATION = 200;\nconst REVERSE_DELAY = 50;\n\nexport interface BannerItemType {\n\t/**\n\t * Icon to display. Required for neutral type, ignored for other types.\n\t */\n\ticonName?: PDSIcon;\n\t/**\n\t * Unique identifier for the banner.\n\t */\n\tid: string;\n\t/**\n\t * Whether the banner can be dismissed by the user.\n\t */\n\tisDismissible?: boolean;\n\t/**\n\t * The message content of the banner.\n\t */\n\tmessage: string | ReactNode;\n\t/**\n\t * Callback function called when the banner is dismissed.\n\t */\n\tonDismiss?: () => void;\n\t/**\n\t * The type of banner, which determines icon and color.\n\t */\n\ttype?: BannerVariant;\n}\n\n/**\n * Prop types for Banner\n */\nexport interface BannerProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Array of banner objects\n\t */\n\tbanners: BannerItemType[];\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Label for the dismiss button\n\t */\n\tdismissLabel?: string;\n\t/**\n\t * Label for the next message button\n\t */\n\tlabelNext?: string;\n\t/**\n\t * Label for the previous message button\n\t */\n\tlabelPrevious?: string;\n\t/**\n\t * Type labels\n\t */\n\ttypeLabels?: Record<BannerVariant, string>;\n}\n\n/**\n * Banner UI component\n */\nexport const Banner = ({\n\tbanners,\n\tclassName,\n\tdismissLabel = 'Dismiss',\n\tlabelNext = 'Go to next message',\n\tlabelPrevious = 'Go to previous message',\n\ttypeLabels = { ...StatusTypeLabels, neutral: 'Notice' },\n\t...props\n}: BannerProps) => {\n\tconst [bannerGroup, setBannerGroup] = useState(banners);\n\tconst [fadingId, setFadingId] = useState<string | null>(null);\n\tconst [dismissingId, setDismissingId] = useState<string | null>(null);\n\tconst [zIndexOverrides, setZIndexOverrides] = useState<\n\t\tRecord<string, number>\n\t>({});\n\n\t// Keep bannerGroup in sync with banners prop.\n\tuseEffect(() => {\n\t\tsetBannerGroup(banners);\n\t}, [banners]);\n\n\tconst totalBanners = bannerGroup.length;\n\n\tif (totalBanners === 0) {\n\t\treturn null;\n\t}\n\n\t// Set up classes.\n\tconst baseClass = 'pds-banner';\n\tconst multipleClass =\n\t\ttotalBanners > 1 ? `${baseClass}-group--multiple` : null;\n\tconst typeClasses = {\n\t\tcritical: `${baseClass}--critical`,\n\t\tdiscovery: `${baseClass}--discovery`,\n\t\tinfo: `${baseClass}--info`,\n\t\tneutral: `${baseClass}--neutral`,\n\t\twarning: `${baseClass}--warning`,\n\t};\n\n\t// Get type of active banner and add class to parent element.\n\tconst activeBannerType = bannerGroup[0].type;\n\tconst activeBannerTypeClass = activeBannerType\n\t\t? `${baseClass}-group--${activeBannerType}`\n\t\t: null;\n\n\tconst getZIndex = (index: number) => Z_INDEX_NOTIFICATIONS - index;\n\n\tconst getTabIndex = (index: number) => (index === 0 ? 0 : -1);\n\n\t// Navigate to the next banner.\n\tconst showNextBanner = () => {\n\t\tsetFadingId(bannerGroup[0].id);\n\n\t\tsetTimeout(() => {\n\t\t\tsetBannerGroup((prevBanners) => [\n\t\t\t\t...prevBanners.slice(1),\n\t\t\t\tprevBanners[0],\n\t\t\t]);\n\t\t\tsetFadingId(null);\n\t\t}, ANIMATION_DURATION);\n\t};\n\n\t// Navigate to the previous banner.\n\tconst showPreviousBanner = () => {\n\t\t// Temporarily bump z-index of first and last banners for the reverse animation.\n\t\tsetZIndexOverrides({\n\t\t\t[bannerGroup[0].id]: Z_INDEX_NOTIFICATIONS + 2,\n\t\t\t[bannerGroup[totalBanners - 1].id]: Z_INDEX_NOTIFICATIONS + 1,\n\t\t});\n\n\t\tsetTimeout(() => {\n\t\t\tsetFadingId(bannerGroup[0].id);\n\t\t}, REVERSE_DELAY);\n\n\t\tsetTimeout(() => {\n\t\t\tsetBannerGroup((prevBanners) => [\n\t\t\t\tprevBanners[prevBanners.length - 1],\n\t\t\t\t...prevBanners.slice(0, prevBanners.length - 1),\n\t\t\t]);\n\t\t\tsetFadingId(null);\n\t\t\tsetZIndexOverrides({});\n\t\t}, ANIMATION_DURATION);\n\t};\n\n\t// Function to render a banner.\n\tconst renderBanner = (banner: BannerItemType, index: number) => {\n\t\tconst { iconName, id, isDismissible, message, onDismiss, type } = banner;\n\n\t\tconst roleType = type === 'critical' ? 'alert' : 'status';\n\t\tconst bannerTypeLabel = `${typeLabels[type]}: `;\n\n\t\tconst handleDismiss = (e: MouseEvent<HTMLButtonElement>) => {\n\t\t\te.preventDefault();\n\t\t\tsetDismissingId(id);\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tonDismiss?.();\n\t\t\t\tsetDismissingId(null);\n\n\t\t\t\tsetBannerGroup((prevBanners) => {\n\t\t\t\t\tconst remaining = prevBanners.filter(\n\t\t\t\t\t\t(prevBanner) => prevBanner.id !== id,\n\t\t\t\t\t);\n\t\t\t\t\treturn remaining;\n\t\t\t\t});\n\t\t\t}, ANIMATION_DURATION);\n\t\t};\n\n\t\tconst zIndex = zIndexOverrides[id] ?? getZIndex(index);\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tkey={id}\n\t\t\t\tclassName={mergeClasses([\n\t\t\t\t\tbaseClass,\n\t\t\t\t\ttypeClasses[type],\n\t\t\t\t\tfadingId === id ? `${baseClass}--fading` : null,\n\t\t\t\t\tdismissingId === id ? `${baseClass}--dismissing` : null,\n\t\t\t\t])}\n\t\t\t\tid={id}\n\t\t\t\trole={roleType}\n\t\t\t\tstyle={{ zIndex }}\n\t\t\t>\n\t\t\t\t<div className={`${baseClass}__content`}>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName={`${baseClass}__icon ${baseClass}__icon--${banner.type}`}\n\t\t\t\t\t\ticonName={type === 'neutral' ? iconName : iconTypes[type]}\n\t\t\t\t\t\ticonSize='m'\n\t\t\t\t\t/>\n\t\t\t\t\t<div className={`${baseClass}__message`}>\n\t\t\t\t\t\t<span className='visually-hidden'>{bannerTypeLabel} </span>\n\t\t\t\t\t\t{message}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t{isDismissible && (\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName={`${baseClass}__dismiss-button`}\n\t\t\t\t\t\tonClick={handleDismiss}\n\t\t\t\t\t\ttabIndex={getTabIndex(index)}\n\t\t\t\t\t\ttype='button'\n\t\t\t\t\t>\n\t\t\t\t\t\t{dismissLabel}\n\t\t\t\t\t</button>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([\n\t\t\t\t`${baseClass}-group`,\n\t\t\t\tactiveBannerTypeClass,\n\t\t\t\tmultipleClass,\n\t\t\t\tclassName ?? '',\n\t\t\t])}\n\t\t\t{...props}\n\t\t>\n\t\t\t{totalBanners > 1 ? (\n\t\t\t\t<div className={`${baseClass}__navigation`}>\n\t\t\t\t\t<IconButton\n\t\t\t\t\t\tariaLabel={labelPrevious}\n\t\t\t\t\t\tclassName={`${baseClass}__nav-button ${baseClass}__nav-button--prev`}\n\t\t\t\t\t\ticonName='angleLeft'\n\t\t\t\t\t\tonClick={showPreviousBanner}\n\t\t\t\t\t\tsize='m'\n\t\t\t\t\t/>\n\n\t\t\t\t\t<IconButton\n\t\t\t\t\t\tariaLabel={labelNext}\n\t\t\t\t\t\tclassName={`${baseClass}__nav-button ${baseClass}__nav-button--next`}\n\t\t\t\t\t\ticonName='angleRight'\n\t\t\t\t\t\tonClick={showNextBanner}\n\t\t\t\t\t\tsize='m'\n\t\t\t\t\t/>\n\t\t\t\t\t{bannerGroup.map((banner, index) => renderBanner(banner, index))}\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\trenderBanner(bannerGroup[0], 0)\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","import React, { ComponentPropsWithoutRef, ReactNode } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { StatusType, StatusTypeLabels } from '@libs/types/custom-types';\n\nimport { Icon, PDSIcon } from '@components/icons/Icon/Icon';\nimport { Spinner } from '@components/loading-indicators/Spinner/Spinner';\n\nimport './inline-message.css';\n\n/**\n * The type of message to display.\n */\nexport type InlineMessageType = Exclude<StatusType, 'discovery'> | 'working';\n/**\n * Labels for each message type.\n */\ntype TypeLabels = Record<InlineMessageType, string>;\n\nexport interface InlineMessageProps\n\textends Omit<ComponentPropsWithoutRef<'div'>, 'title'> {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Message body.\n\t */\n\tmessage?: ReactNode;\n\t/**\n\t * Title text.\n\t */\n\ttitle: ReactNode;\n\t/**\n\t * Message type.\n\t */\n\ttype: InlineMessageType;\n\t/**\n\t * Message type labels. Provide translation strings if needed.\n\t */\n\ttypeLabels?: TypeLabels;\n}\n\nconst iconTypes: Record<Exclude<InlineMessageType, 'working'>, PDSIcon> = {\n\tinfo: 'circleInfo',\n\twarning: 'triangleExclamation',\n\tsuccess: 'circleCheck',\n\tcritical: 'diamondExclamation',\n};\n\n/**\n * InlineMessage UI component\n */\nexport const InlineMessage = ({\n\tclassName,\n\tmessage,\n\ttitle,\n\ttype,\n\ttypeLabels = {\n\t\t...StatusTypeLabels,\n\t\tworking: 'Working',\n\t},\n\t...props\n}: InlineMessageProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-inline-message';\n\tconst cssClasses = {\n\t\terror: `${baseClass}--error`,\n\t\tsuccess: `${baseClass}--success`,\n\t\twarning: `${baseClass}--warning`,\n\t\tinfo: `${baseClass}--info`,\n\t\tcritical: `${baseClass}--critical`,\n\t\tworking: `${baseClass}--working`,\n\t};\n\n\t// Configure role based on type.\n\tconst roleType = type === 'critical' ? 'alert' : 'status';\n\n\t// Label by type.\n\tconst messageTypeLabel = `${typeLabels[type]}: `;\n\n\t// Preprocess secondary text by prop type.\n\tconst processedMessage =\n\t\ttypeof message === 'string' ? <p>{message}</p> : message;\n\n\t// Render the output\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([baseClass, cssClasses[type], className ?? ''])}\n\t\t\trole={roleType}\n\t\t\t{...props}\n\t\t>\n\t\t\t<div className={`${baseClass}__icon ${baseClass}__icon-${type}`}>\n\t\t\t\t{type === 'working' ? (\n\t\t\t\t\t<Spinner colorType='monochromatic' size='m' />\n\t\t\t\t) : (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticonName={`${type}` in iconTypes ? iconTypes[type] : iconTypes.info}\n\t\t\t\t\t\ticonSize='m'\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<div className={`${baseClass}__text`}>\n\t\t\t\t<span className='visually-hidden'>{messageTypeLabel}</span>\n\t\t\t\t<div className={`${baseClass}__title`}>{title}</div>\n\t\t\t\t<div className={`${baseClass}__message`}>{processedMessage}</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import React, {\n\tComponentPropsWithoutRef,\n\tMouseEvent,\n\tReactNode,\n\tuseRef,\n} from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { StatusType, StatusTypeLabels } from '@libs/types/custom-types';\n\nimport { Button } from '@components/buttons/Button/Button';\nimport { CloseButton } from '@components/buttons/CloseButton/CloseButton';\nimport { Icon, PDSIcon } from '@components/icons/Icon/Icon';\n\nimport './section-message.css';\n\nexport type SectionMessageType = StatusType;\n\ntype TypeLabels = Record<SectionMessageType, string>;\n\nconst iconTypes: Record<SectionMessageType, PDSIcon> = {\n\tinfo: 'circleInfo',\n\twarning: 'triangleExclamation',\n\tsuccess: 'circleCheck',\n\tcritical: 'diamondExclamation',\n\tdiscovery: 'squareQuestion',\n};\n\nexport interface SectionMessageProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Additional class names.\n\t */\n\tclassName?: string;\n\t/**\n\t * Props for optional call to action button.\n\t * Can include any Button props except for size and variant.\n\t */\n\tctaButton?: ComponentPropsWithoutRef<typeof Button>;\n\t/**\n\t * Label for dismiss button. Provide a translation string if needed.\n\t */\n\tdismissLabel?: string;\n\t/**\n\t * Unique id of message.\n\t */\n\tid?: string;\n\t/**\n\t * Includes dismiss functionality.\n\t */\n\tisDismissible?: boolean;\n\t/**\n\t * Message text.\n\t */\n\tmessage: ReactNode;\n\t/**\n\t * Callback function when message is dismissed.\n\t */\n\tonDismiss?: (event: MouseEvent<HTMLButtonElement>, id: string) => void;\n\t/**\n\t * Message title.\n\t */\n\ttitle?: string;\n\t/**\n\t * Message type.\n\t */\n\ttype: SectionMessageType;\n\t/**\n\t * Message type labels. Provide translation strings if needed.\n\t */\n\ttypeLabels?: TypeLabels;\n}\n\n/**\n * SectionMessage UI component\n */\nexport const SectionMessage = ({\n\tclassName,\n\tctaButton,\n\tdismissLabel = 'Dismiss',\n\tid,\n\tisDismissible,\n\tmessage,\n\tonDismiss,\n\ttitle,\n\ttype = 'info',\n\ttypeLabels = StatusTypeLabels,\n\t...props\n}: SectionMessageProps) => {\n\tconst messageRef = useRef(null);\n\n\t// Set up classes.\n\tconst baseClass = 'pds-section-message';\n\tconst cssClasses = {\n\t\terror: `${baseClass}--error`,\n\t\tsuccess: `${baseClass}--success`,\n\t\twarning: `${baseClass}--warning`,\n\t\tinfo: `${baseClass}--info`,\n\t\tcritical: `${baseClass}--critical`,\n\t\tdiscovery: `${baseClass}--discovery`,\n\t\tdismissing: `${baseClass}--dismissing`,\n\t\tdismissed: `${baseClass}--dismissed`,\n\t};\n\tconst hasDismissClass = isDismissible ? `${baseClass}--hasDismiss` : null;\n\tconst hasTitleClass = title ? `${baseClass}--hasTitle` : null;\n\n\t// Configure role based on type.\n\tconst roleType = type === 'critical' ? 'alert' : 'status';\n\n\t// Label by type.\n\tconst messageTypeLabel = `${typeLabels[type]}: `;\n\n\t// Preprocess message by prop type.\n\tconst processedMessage =\n\t\ttypeof message === 'string' ? <p>{message}</p> : message;\n\n\t// Set up dismiss functionality.\n\tconst dismissAnimationEndEventHandler = () => {\n\t\tmessageRef.current.addEventListener('animationend', triggerOnDismiss, {\n\t\t\tonce: true,\n\t\t});\n\t};\n\n\tconst triggerOnDismiss = (event) => {\n\t\tonDismiss(event, id);\n\t};\n\n\tconst handleDismiss = () => {\n\t\tdismissAnimationEndEventHandler();\n\t\tmessageRef.current.classList.toggle(cssClasses.dismissing);\n\n\t\tsetTimeout(() => {\n\t\t\tmessageRef.current.classList.toggle(cssClasses.dismissing);\n\t\t\tmessageRef.current.classList.toggle(cssClasses.dismissed);\n\t\t}, 400);\n\t};\n\n\t// Render the output\n\treturn (\n\t\t<div\n\t\t\tref={messageRef}\n\t\t\tclassName={mergeClasses([\n\t\t\t\tbaseClass,\n\t\t\t\tcssClasses[type],\n\t\t\t\thasDismissClass,\n\t\t\t\thasTitleClass,\n\t\t\t\tclassName ?? '',\n\t\t\t])}\n\t\t\tid={id}\n\t\t\trole={roleType}\n\t\t\t{...props}\n\t\t>\n\t\t\t<div className={`${baseClass}__content`}>\n\t\t\t\t<div className={`${baseClass}__icon ${baseClass}__icon-${type}`}>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticonName={`${type}` in iconTypes ? iconTypes[type] : iconTypes.info}\n\t\t\t\t\t\ticonSize='m'\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div className={`${baseClass}__text`}>\n\t\t\t\t\t<span className='visually-hidden'>{messageTypeLabel}</span>\n\t\t\t\t\t{title && <div className={`${baseClass}__title`}>{title}</div>}\n\t\t\t\t\t<div className={`${baseClass}__message`}>{processedMessage}</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{(ctaButton || isDismissible) && (\n\t\t\t\t<div className={`${baseClass}__actions`}>\n\t\t\t\t\t{ctaButton && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t{...ctaButton}\n\t\t\t\t\t\t\tclassName={`${baseClass}__cta`}\n\t\t\t\t\t\t\tsize='s'\n\t\t\t\t\t\t\tvariant='secondary'\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{isDismissible && (\n\t\t\t\t\t\t<CloseButton\n\t\t\t\t\t\t\tariaLabel={dismissLabel}\n\t\t\t\t\t\t\tclassName={`${baseClass}__dismiss`}\n\t\t\t\t\t\t\tonClick={handleDismiss}\n\t\t\t\t\t\t\tsize='l'\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","import React, { ComponentPropsWithoutRef, ReactNode } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport { Icon } from '@components/icons/Icon/Icon';\nimport { Spinner } from '@components/loading-indicators/Spinner/Spinner';\n\nimport './toaster.css';\n\nconst iconTypes = {\n\tinfo: 'circleInfo',\n\tsuccess: 'circleCheck',\n\twarning: 'triangleExclamation',\n\tcritical: 'diamondExclamation',\n} as const;\n\ntype IconType = keyof typeof iconTypes;\n\nconst defaultTypeLabels = {\n\tinfo: 'Information',\n\tsuccess: 'Success',\n\twarning: 'Warning',\n\tcritical: 'Critical',\n\tworking: 'Working...',\n} as const;\n\n/**\n * Prop types for Toast\n */\ninterface ToastProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Toast message content.\n\t */\n\tchildren?: ReactNode;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * ID of individual toast.\n\t */\n\tid?: string;\n\t/**\n\t * Type of toast to show.\n\t */\n\ttype?: IconType | 'working';\n\t/**\n\t * Toast type labels. Provide translation strings if needed.\n\t */\n\ttypeLabels?: Partial<typeof defaultTypeLabels>;\n}\n\n/**\n * Toast UI component\n */\nexport const Toast = ({\n\tchildren,\n\tclassName,\n\tid,\n\ttype = 'info',\n\ttypeLabels = defaultTypeLabels,\n}: ToastProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-toast';\n\tconst cssClasses = {\n\t\tcritical: `${baseClass}--critical`,\n\t\tinfo: `${baseClass}--info`,\n\t\tsuccess: `${baseClass}--success`,\n\t\twarning: `${baseClass}--warning`,\n\t\tworking: `${baseClass}--working`,\n\t};\n\n\t// Label by type.\n\tconst toastTypeLabel = `${typeLabels[type]} `;\n\n\t// Render the output\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([baseClass, cssClasses[type], className])}\n\t\t\tid={id}\n\t\t>\n\t\t\t<div className={`${baseClass}__icon-container`}>\n\t\t\t\t{type === 'working' ? (\n\t\t\t\t\t<Spinner colorType='monochromatic-reverse' size='l' />\n\t\t\t\t) : (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName={`${baseClass}__icon ${baseClass}__icon--${type}`}\n\t\t\t\t\t\ticonName={iconTypes[type]}\n\t\t\t\t\t\ticonSize='m'\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<div className={`${baseClass}__message`}>\n\t\t\t\t<span className='visually-hidden'>{toastTypeLabel}</span>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import React, { ComponentPropsWithoutRef } from 'react';\n\nimport type { CloseButtonProps as ToastifyCloseButtonProps } from 'react-toastify';\nimport { Slide, ToastContainer } from 'react-toastify';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport { CloseButton } from '@components/buttons/CloseButton/CloseButton';\n\nimport 'react-toastify/dist/ReactToastify.css';\nimport './toaster.css';\n\n/**\n * Prop types for Toast\n */\ninterface ToasterProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Duration in milliseconds before the toast will auto-close.\n\t */\n\tautoCloseDuration?: number;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Maximum number of toasts that can be displayed at once.\n\t */\n\tlimit?: number;\n\t/**\n\t * Location toast objects will show in the UI.\n\t */\n\tposition?: 'bottom-right' | 'top-right';\n}\n\nconst ToastCloseButton = ({\n\tariaLabel,\n\tcloseToast,\n}: ToastifyCloseButtonProps) => (\n\t<CloseButton\n\t\tariaLabel={ariaLabel || 'Close'}\n\t\tclassName='pds-toaster__close-button'\n\t\tonClick={() => closeToast(null)}\n\t\tsize='l'\n\t/>\n);\n\n/**\n * Toaster UI component\n */\nexport const Toaster = ({\n\tautoCloseDuration = 5000,\n\tclassName,\n\tlimit = 5,\n\tposition = 'bottom-right',\n}: ToasterProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-toaster';\n\tconst toasterClasses = mergeClasses([baseClass, className]);\n\n\t// Render the output\n\treturn (\n\t\t<ToastContainer\n\t\t\tnewestOnTop\n\t\t\tautoClose={autoCloseDuration}\n\t\t\tclassName={toasterClasses}\n\t\t\tcloseButton={ToastCloseButton}\n\t\t\tdraggable={false}\n\t\t\ticon={false}\n\t\t\tlimit={limit}\n\t\t\tposition={position}\n\t\t\trole='status'\n\t\t\ttransition={Slide}\n\t\t/>\n\t);\n};\n","import React, { ReactElement, ReactNode } from 'react';\n\nimport { cssTransition, toast as toastApi, ToastOptions } from 'react-toastify';\n\nimport { Toast } from './Toast';\n\nexport enum ToastType {\n\tCritical = 'critical',\n\tInfo = 'info',\n\tSuccess = 'success',\n\tWarning = 'warning',\n\tWorking = 'working',\n}\n\nexport const useToast = (): [\n\t(\n\t\ttype: ToastType,\n\t\tmessage: string | ReactElement,\n\t\toptions?: ToastOptions,\n\t) => string | number,\n\ttypeof toastApi,\n\tReturnType<typeof cssTransition>,\n] => {\n\tconst addToast = (\n\t\ttype: ToastType,\n\t\tmessage: string | ReactElement,\n\t\toptions: ToastOptions = {},\n\t): string | number => {\n\t\tconst toastContent: ReactNode = <Toast type={type}>{message}</Toast>;\n\n\t\tlet toastOptions: ToastOptions = {\n\t\t\t...options,\n\t\t};\n\n\t\tif (type === ToastType.Critical) {\n\t\t\ttoastOptions = {\n\t\t\t\t...toastOptions,\n\t\t\t\tautoClose: false,\n\t\t\t\trole: 'alert',\n\t\t\t};\n\t\t}\n\n\t\tif (type === ToastType.Warning) {\n\t\t\ttoastOptions = {\n\t\t\t\t...toastOptions,\n\t\t\t\tautoClose: false,\n\t\t\t};\n\t\t}\n\n\t\tif (type === ToastType.Working) {\n\t\t\ttoastOptions = {\n\t\t\t\t...toastOptions,\n\t\t\t\tautoClose: false,\n\t\t\t\tcloseButton: false,\n\t\t\t\tcloseOnClick: false,\n\t\t\t};\n\t\t}\n\n\t\treturn toastApi(toastContent, toastOptions);\n\t};\n\n\tconst workingTransition = cssTransition({\n\t\tcollapse: false,\n\t\tenter: 'pds-toast--bounceInPlace',\n\t\texit: 'pds-toast--slideOut',\n\t});\n\n\treturn [addToast, toastApi, workingTransition];\n};\n","import React, {\n\tComponentPropsWithoutRef,\n\tReactNode,\n\tuseRef,\n\tuseState,\n} from 'react';\n\nimport { initiateSlots, mergeClasses } from '@libs/components/utils';\n\nimport { Icon } from '@components/icons/Icon/Icon';\n\nimport './panel-list.css';\n\n/**\n * Prop types for PanelRow\n */\nexport interface PanelRowProps extends ComponentPropsWithoutRef<'li'> {\n\t/**\n\t * Child elements to be assigned to named slots.\n\t */\n\tchildren: ReactNode;\n\t/**\n\t * Additional class names.\n\t */\n\tclassName?: string;\n\t/**\n\t * Aria-label for the expand button.\n\t */\n\texpandButtonAriaLabel?: string;\n\t/**\n\t * Whether the panel row is expandable.\n\t */\n\tisExpandable?: boolean;\n}\n\n/**\n * PanelRow UI component\n */\nexport const PanelRow = ({\n\tchildren,\n\tclassName,\n\texpandButtonAriaLabel,\n\tisExpandable = false,\n\t...props\n}: PanelRowProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-panel-row';\n\tconst [isExpanded, setIsExpanded] = useState(false);\n\tconst liRef = useRef<HTMLLIElement>(null);\n\tconst contentRef = useRef<HTMLDivElement>(null);\n\n\t// Initiate slots.\n\tconst slots = initiateSlots(children);\n\n\t// Assign content to named slots.\n\tconst itemsLeftSlot = slots['items-left'];\n\tconst itemsRightSlot = slots['items-right'];\n\tconst itemsBelowSlot = slots['items-below'];\n\n\tconst handleExpand = () => {\n\t\tconst content = contentRef.current;\n\t\tconst li = liRef.current;\n\t\tif (!content || !li) return;\n\n\t\tconst isExpanding = !isExpanded;\n\t\tsetIsExpanded(isExpanding);\n\n\t\tif (isExpanding) {\n\t\t\tObject.assign(content.style, {\n\t\t\t\tdisplay: 'block',\n\t\t\t\theight: 'auto',\n\t\t\t\topacity: '1',\n\t\t\t});\n\t\t\tli.classList.add('is-expanded');\n\t\t} else {\n\t\t\tObject.assign(content.style, {\n\t\t\t\theight: '0',\n\t\t\t\topacity: '0',\n\t\t\t\tdisplay: 'none',\n\t\t\t});\n\t\t\tli.classList.remove('is-expanded');\n\t\t}\n\t};\n\n\t// Render the output\n\treturn (\n\t\t<li\n\t\t\tclassName={mergeClasses([baseClass, className ?? ''])}\n\t\t\t{...props}\n\t\t\tref={liRef}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={mergeClasses([\n\t\t\t\t\t`${baseClass}__main`,\n\t\t\t\t\tisExpandable ? 'is-expandable' : '',\n\t\t\t\t])}\n\t\t\t>\n\t\t\t\t{itemsLeftSlot && (\n\t\t\t\t\t<div className={`${baseClass}__items ${baseClass}__items--left`}>\n\t\t\t\t\t\t{itemsLeftSlot}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{itemsRightSlot && (\n\t\t\t\t\t<div className={`${baseClass}__items ${baseClass}__items--right`}>\n\t\t\t\t\t\t{itemsRightSlot}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{isExpandable && (\n\t\t\t\t\t<button\n\t\t\t\t\t\taria-expanded={isExpanded}\n\t\t\t\t\t\taria-label={expandButtonAriaLabel}\n\t\t\t\t\t\tclassName={`${baseClass}__expand-button`}\n\t\t\t\t\t\tonClick={handleExpand}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\tclassName={`${baseClass}__expand-icon ${isExpanded ? 'rotated' : ''}`}\n\t\t\t\t\t\t\ticonName='angleDown'\n\t\t\t\t\t\t/>\n\t\t\t\t\t</button>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{isExpandable && itemsBelowSlot && (\n\t\t\t\t<div\n\t\t\t\t\tref={contentRef}\n\t\t\t\t\tclassName={`${baseClass}__items ${baseClass}__items--below`}\n\t\t\t\t\tstyle={{ display: 'none', height: '0', opacity: '0' }}\n\t\t\t\t>\n\t\t\t\t\t<div className={`${baseClass}__items-inside`}>{itemsBelowSlot}</div>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</li>\n\t);\n};\n","import React, { ComponentPropsWithoutRef } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport './picture.css';\n\n/**\n * Prop types for Picture\n */\nexport interface PictureProps extends ComponentPropsWithoutRef<'img'> {\n\t/**\n\t * Alt text for the image. Defaults to empty string for decorative images.\n\t */\n\talt?: string;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Optional height for the image (CSS value, e.g., '100px', '50%', 'auto').\n\t * If not provided, the image will be sized responsively by its container.\n\t */\n\theight?: string | number;\n\t/**\n\t * The fallback image source (e.g., PNG or JPG)\n\t */\n\tsrcFallback: string;\n\t/**\n\t * The WebP image source (preferred for modern browsers)\n\t */\n\tsrcWebp: string;\n\t/**\n\t * Optional width for the image (CSS value, e.g., '100px', '50%', 'auto').\n\t * If not provided, the image will be sized responsively by its container.\n\t */\n\twidth?: string | number;\n}\n\n/**\n * Picture UI component\n */\nexport const Picture = ({\n\talt = '',\n\tclassName,\n\theight,\n\tsrcFallback,\n\tsrcWebp,\n\twidth,\n\t...props\n}: PictureProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-picture';\n\n\t// Render the output\n\treturn (\n\t\t<picture className={mergeClasses([baseClass, className ?? ''])}>\n\t\t\t<source srcSet={srcWebp} type='image/webp' />\n\t\t\t<img\n\t\t\t\talt={alt}\n\t\t\t\tclassName={`${baseClass}__img`}\n\t\t\t\theight={height}\n\t\t\t\tsrc={srcFallback}\n\t\t\t\twidth={width}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</picture>\n\t);\n};\n","import React, { ComponentPropsWithoutRef } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport './skiplink.css';\n\ninterface SkiplinkProps extends ComponentPropsWithoutRef<'a'> {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * The ID of the element to skip to.\n\t */\n\tdestination: string;\n\t/**\n\t * The text of the skip link.\n\t */\n\ttext: string;\n}\n\n/**\n * Skiplink UI component\n */\nexport const Skiplink = ({\n\tclassName,\n\tdestination = 'main',\n\ttext = 'Skip to main content',\n\t...props\n}: SkiplinkProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-skiplink';\n\n\t// Render the output\n\treturn (\n\t\t<a\n\t\t\tclassName={mergeClasses([baseClass, className])}\n\t\t\thref={`#${destination}`}\n\t\t\t{...props}\n\t\t>\n\t\t\t{text}\n\t\t</a>\n\t);\n};\n","import React, { ComponentPropsWithoutRef } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { StatusType } from '@libs/types/custom-types';\n\nimport { Spinner } from '@components/loading-indicators/Spinner/Spinner';\n\nimport './status-indicator.css';\n\nexport interface StatusIndicatorProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Status label text\n\t */\n\tlabel: string;\n\t/**\n\t * Sets the size\n\t */\n\tsize?: 'xs' | 's';\n\t/**\n\t * Sets status type\n\t */\n\ttype: StatusType | 'disabled' | 'neutral' | 'working';\n}\n\n/**\n * StatusIndicator UI component\n */\nexport const StatusIndicator = ({\n\tclassName,\n\tlabel = null,\n\tsize = 's',\n\ttype = 'neutral',\n\t...props\n}: StatusIndicatorProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-status-indicator';\n\tconst typeClass = `${baseClass}--${type}`;\n\tconst sizeClass = size !== 's' ? `${baseClass}--${size}` : null;\n\n\t// Render the output\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([\n\t\t\t\tbaseClass,\n\t\t\t\ttypeClass,\n\t\t\t\tsizeClass,\n\t\t\t\tclassName ?? '',\n\t\t\t])}\n\t\t\t{...props}\n\t\t>\n\t\t\t{type === 'working' ? (\n\t\t\t\t<Spinner\n\t\t\t\t\tclassName={`${baseClass}__spinner`}\n\t\t\t\t\tcolorType='monochromatic'\n\t\t\t\t\tsize='m'\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<span aria-hidden='true' className={`${baseClass}__icon`} role='img' />\n\t\t\t)}\n\n\t\t\t{label && <span className='pds-status-indicator__label'>{label}</span>}\n\t\t</div>\n\t);\n};\n","import React, { ComponentPropsWithoutRef, ReactNode } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport './video-embed.css';\n\n/**\n * Prop types for VideoEmbed\n */\nexport interface VideoEmbedProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Video hosting platform.\n\t */\n\tplatform: 'vimeo' | 'wistia' | 'youtube';\n\t/**\n\t * Video ID to embed.\n\t */\n\tvideoId: string;\n\t/**\n\t * Video title to display. This is for the title prop on the video iframe.\n\t * If none is provided it will default to `\"[platform] video player\"`\n\t */\n\tvideoTitle?: string;\n}\n\n/**\n * VideoEmbed UI component\n */\nexport const VideoEmbed = ({\n\tclassName,\n\tplatform,\n\tvideoId,\n\tvideoTitle,\n\t...props\n}: VideoEmbedProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-video-embed';\n\n\tconst wistiaFrame = (\n\t\t<iframe\n\t\t\tallow='autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media'\n\t\t\tsrc={`https://fast.wistia.net/embed/iframe/${videoId}`}\n\t\t\ttitle={`Wistia video player${videoTitle ? `: ${videoTitle}` : ''}`}\n\t\t></iframe>\n\t);\n\n\tconst vimeoFrame = (\n\t\t<iframe\n\t\t\tallow='autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media'\n\t\t\tsrc={`https://player.vimeo.com/video/${videoId}`}\n\t\t\ttitle={`Vimeo video player${videoTitle ? `: ${videoTitle}` : ''}`}\n\t\t></iframe>\n\t);\n\n\tconst youTubeFrame = (\n\t\t<iframe\n\t\t\tallowFullScreen\n\t\t\tallow='accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share'\n\t\t\treferrerPolicy='strict-origin-when-cross-origin'\n\t\t\tsrc={`https://www.youtube.com/embed/${videoId}`}\n\t\t\ttitle={`YouTube video player${videoTitle ? `: ${videoTitle}` : ''}`}\n\t\t></iframe>\n\t);\n\n\tlet frameToRender: ReactNode;\n\tswitch (platform) {\n\t\tcase 'vimeo':\n\t\t\tframeToRender = vimeoFrame;\n\t\t\tbreak;\n\t\tcase 'wistia':\n\t\t\tframeToRender = wistiaFrame;\n\t\t\tbreak;\n\t\tcase 'youtube':\n\t\tdefault:\n\t\t\tframeToRender = youTubeFrame;\n\t\t\tbreak;\n\t}\n\n\t// Render the output\n\treturn (\n\t\t<div className={mergeClasses([baseClass, className ?? ''])} {...props}>\n\t\t\t{frameToRender}\n\t\t</div>\n\t);\n};\n","import React, { ComponentPropsWithoutRef, useRef } from 'react';\n\nimport { useMeasure } from '@reactuses/core';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { SiteStatus, SiteType, SiteTypeIcon } from '@libs/types/custom-types';\n\nimport { StatusBadge } from '@components/badges/StatusBadge/StatusBadge';\nimport { Icon } from '@components/icons/Icon/Icon';\n\nimport './site-option-display.css';\n\n/**\n * Site option item type.\n */\nexport type SiteOption = {\n\t/**\n\t * ID of the site.\n\t */\n\tid: string;\n\t/**\n\t * Machine name of the site.\n\t */\n\tmachineName?: string;\n\t/**\n\t * Name of the site.\n\t */\n\tname: string;\n\t/**\n\t * Site active status.\n\t */\n\tstatus?: SiteStatus;\n\t/**\n\t * Site type.\n\t */\n\ttype?: SiteType;\n};\n\n/** Site option display props. */\nexport interface SiteOptionDisplayProps\n\textends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Site option to display.\n\t */\n\toption: SiteOption;\n}\n\n/**\n * UI component to display site options.\n */\nexport const SiteOptionDisplay = ({\n\tclassName,\n\toption,\n\t...props\n}: SiteOptionDisplayProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-site-option-display';\n\n\tconst iconType = option.type ? SiteTypeIcon[option.type] : 'bolt';\n\n\t// Get the width of the component.\n\tconst optionRef = useRef<HTMLDivElement | null>(null);\n\tconst [rect] = useMeasure(optionRef);\n\n\t// Calculate label truncation based on the width of the component.\n\tconst labelMaxWidth = rect.width / 16 - 7.5;\n\n\t// Preprocess status badge.\n\tlet siteStatusLabel: string;\n\tlet siteStatusIndicatorType: 'success' | 'frozen' | 'critical';\n\tif (option.status === 'active') {\n\t\tsiteStatusLabel = 'Active';\n\t\tsiteStatusIndicatorType = 'success';\n\t}\n\tif (option.status === 'frozen') {\n\t\tsiteStatusLabel = 'Frozen';\n\t\tsiteStatusIndicatorType = 'frozen';\n\t}\n\tif (option.status === 'restricted') {\n\t\tsiteStatusLabel = 'Restricted';\n\t\tsiteStatusIndicatorType = 'critical';\n\t}\n\tconst statusBadge = (\n\t\t<StatusBadge\n\t\t\thasStatusIndicator\n\t\t\tlabel={siteStatusLabel}\n\t\t\tstatusType={siteStatusIndicatorType}\n\t\t/>\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tref={optionRef}\n\t\t\tclassName={mergeClasses([baseClass, className ?? ''])}\n\t\t\ttitle={option.name}\n\t\t\t{...props}\n\t\t>\n\t\t\t<div className={`${baseClass}__inner`} style={{ pointerEvents: 'none' }}>\n\t\t\t\t<div className={`${baseClass}__icon`}>\n\t\t\t\t\t<Icon iconName={iconType} />\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tclassName={`${baseClass}__label`}\n\t\t\t\t\tstyle={{ maxWidth: `${labelMaxWidth}rem` }}\n\t\t\t\t>\n\t\t\t\t\t{option.name}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div className={`${baseClass}__status`} style={{ pointerEvents: 'none' }}>\n\t\t\t\t{statusBadge}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import React, { ComponentPropsWithoutRef, ReactNode } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { ContainerWidth } from '@libs/types/custom-types';\n\nimport '../../utilities/container.css';\n\n/**\n * Prop types for Container\n */\ninterface ContainerProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Container content.\n\t */\n\tchildren?: ReactNode;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Width of the container.\n\t */\n\twidth?: ContainerWidth;\n}\n\n/**\n * Container UI component\n */\nexport const Container = ({\n\tchildren,\n\tclassName,\n\twidth = 'standard',\n\t...props\n}: ContainerProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-container';\n\tconst widthClass = width !== 'standard' ? `${baseClass}--${width}` : null;\n\n\t// Render the output\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([baseClass, widthClass, className ?? ''])}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n","import React, { ComponentPropsWithoutRef, ReactNode, useContext } from 'react';\n\nimport { initiateSlots, mergeClasses } from '@libs/components/utils';\n\nimport { ResponsiveContext } from '@utilities/context-providers/ResponsiveContext/ResponsiveContext';\n\nimport './docs-layout.css';\n\n/**\n * Prop types for DocsLayout\n */\ninterface DocsLayoutProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Children to render in the layout.\n\t */\n\tchildren: ReactNode;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Minimum width of the sidebar when expanded in rems.\n\t * This is also the min-width of the sidebar when it is not collapsable (hasSidebarToggle is false).\n\t */\n\tsidebarMinWidth?: number;\n\t/**\n\t * Width of the sidebar when expanded as a percentage.\n\t * This is also the width of the sidebar when it is not collapsable (hasSidebarToggle is false).\n\t */\n\tsidebarWidth?: string;\n}\n\n/**\n * DocsLayout UI component\n */\nexport const DocsLayout = ({\n\tchildren,\n\tclassName,\n\tsidebarMinWidth = 14.5,\n\tsidebarWidth = '18%',\n\t...props\n}: DocsLayoutProps) => {\n\t// Set isMobile fallback.\n\tlet isMobile = false;\n\n\t// Get responsive context.\n\tconst responsiveContext = useContext(ResponsiveContext) as {\n\t\tisMobile: boolean;\n\t};\n\tif (responsiveContext) {\n\t\tisMobile = responsiveContext.isMobile;\n\t}\n\n\t// Set up classes.\n\tconst baseClass = 'pds-docs-layout';\n\tconst mobileClass = isMobile ? `${baseClass}--isMobile` : null;\n\n\t// Sidebar styles for non-mobile.\n\tconst sidebarStyles = {\n\t\twidth: sidebarWidth,\n\t\tminWidth: `${sidebarMinWidth}rem`,\n\t};\n\n\t// Initiate slots.\n\tconst slots = initiateSlots(children);\n\n\t// Assign content to named slots.\n\tconst mainContent = slots['__unslotted'] || slots['content'];\n\tconst sidebarContent = slots['sidebar'];\n\n\t// Prepare mobile markup.\n\tconst mobileContent = (\n\t\t<>\n\t\t\t{sidebarContent && (\n\t\t\t\t<aside className={`${baseClass}__sidebar`}>{sidebarContent}</aside>\n\t\t\t)}\n\t\t\t<div className={`${baseClass}__content`}>{mainContent}</div>\n\t\t</>\n\t);\n\n\t// Prepare default markup.\n\tconst defaultContent = (\n\t\t<>\n\t\t\t{sidebarContent && (\n\t\t\t\t<aside className={`${baseClass}__sidebar`} style={sidebarStyles}>\n\t\t\t\t\t<div className={`${baseClass}__sidebar-inner`}>{sidebarContent}</div>\n\t\t\t\t</aside>\n\t\t\t)}\n\t\t\t<div className={`${baseClass}__content`}>{mainContent}</div>\n\t\t</>\n\t);\n\n\t// Render the output\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([\n\t\t\t\tbaseClass,\n\t\t\t\tmobileClass,\n\t\t\t\t'pds-container pds-container--x-wide',\n\t\t\t\tclassName ?? '',\n\t\t\t])}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isMobile ? mobileContent : defaultContent}\n\t\t</div>\n\t);\n};\n","import React, { ComponentPropsWithoutRef, ReactNode, useContext } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { GridGapOptions } from '@libs/types/layout-types';\n\nimport { ResponsiveContext } from '@utilities/context-providers/ResponsiveContext/ResponsiveContext';\nimport { useWindowWidth } from '@utilities/hooks/useWindowWidth/useWindowWidth';\n\nimport './flex-container.css';\n\ntype FlexAlignContent =\n\t| 'flex-start'\n\t| 'flex-end'\n\t| 'center'\n\t| 'space-between'\n\t| 'space-around'\n\t| 'stretch';\n\ntype FlexAlignItems =\n\t| 'flex-start'\n\t| 'flex-end'\n\t| 'center'\n\t| 'stretch'\n\t| 'baseline';\n\ntype FlexDirection = 'row' | 'row-reverse' | 'column' | 'column-reverse';\n\ntype FlexJustifyContent =\n\t| 'flex-start'\n\t| 'flex-end'\n\t| 'center'\n\t| 'space-between'\n\t| 'space-around'\n\t| 'space-evenly';\n\ntype FlexWrap = 'nowrap' | 'wrap' | 'wrap-reverse';\n\ntype FlexGapOptions = GridGapOptions | 'minimal' | 'none';\n\ninterface FlexContainerProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Aligns content when there is extra space in the cross-axis.\n\t */\n\talignContent?: FlexAlignContent;\n\t/**\n\t * Aligns items on the cross axis.\n\t */\n\talignItems?: FlexAlignItems;\n\t/**\n\t * Container content.\n\t */\n\tchildren?: ReactNode;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Establishes the main-axis, thus defining the direction flex items are placed in the flex container.\n\t */\n\tflexDirection?: FlexDirection;\n\t/**\n\t * If the items do not fit in one line (row or column, depending on flexDirection), how should they wrap.\n\t */\n\tflexWrap?: FlexWrap;\n\t/**\n\t * Gap between items.\n\t */\n\tgap?: FlexGapOptions;\n\t/**\n\t * Alignment along the main axis.\n\t */\n\tjustifyContent?: FlexJustifyContent;\n\t/**\n\t * Align content on mobile. If not set, will default to the same value as `alignContent`.\n\t */\n\tmobileAlignContent?: FlexAlignContent;\n\t/**\n\t * Align items on mobile. If not set, will default to the same value as `alignItems`.\n\t */\n\tmobileAlignItems?: FlexAlignItems;\n\t/**\n\t * Flex direction for mobile.\n\t */\n\tmobileFlexDirection?: FlexDirection;\n\t/**\n\t * Flex wrap for mobile. If not set, will default to the same value as `flexWrap`.\n\t */\n\tmobileFlexWrap?: FlexWrap;\n\t/**\n\t * Gap between items on mobile. If not set, will default to the same value as `gap`.\n\t */\n\tmobileGap?: FlexGapOptions;\n\t/**\n\t * Justify content for mobile. If not set, will default to the same value as `justifyContent`.\n\t */\n\tmobileJustifyContent?: FlexJustifyContent;\n}\n\n/**\n * Flex Container UI component\n */\nexport const FlexContainer = ({\n\talignContent = 'flex-start',\n\talignItems = 'stretch',\n\tchildren,\n\tclassName,\n\tflexDirection = 'row',\n\tflexWrap = 'nowrap',\n\tgap = 'standard',\n\tjustifyContent = 'flex-start',\n\tmobileAlignContent,\n\tmobileAlignItems,\n\tmobileFlexDirection = 'column',\n\tmobileFlexWrap,\n\tmobileGap,\n\tmobileJustifyContent,\n\t...props\n}: FlexContainerProps) => {\n\t// Get window width.\n\tconst windowWidth = useWindowWidth();\n\n\t// Set isMobile fallback.\n\tlet isMobile = windowWidth <= 640;\n\n\t// Get responsive context.\n\tconst responsiveContext = useContext(ResponsiveContext);\n\tif (responsiveContext) {\n\t\tisMobile = responsiveContext.isMobile;\n\t}\n\n\t// Set up classes.\n\tconst baseClass = 'pds-flex';\n\tconst containerClass = `${baseClass}-container`;\n\tconst mobileClass = isMobile ? `${containerClass}--mobile` : null;\n\n\tlet flexDirectionClass = null;\n\tif (isMobile) {\n\t\tflexDirectionClass = `${baseClass}-direction--${mobileFlexDirection}`;\n\t} else {\n\t\tif (flexDirection !== 'row') {\n\t\t\tflexDirectionClass = `${baseClass}-direction--${flexDirection}`;\n\t\t}\n\t}\n\n\tlet flexWrapClass = null;\n\tif (isMobile) {\n\t\t// If mobileFlexWrap is set, use that value.\n\t\tif (mobileFlexWrap) {\n\t\t\tif (mobileFlexWrap !== 'nowrap') {\n\t\t\t\tflexWrapClass = `${baseClass}-wrap--${mobileFlexWrap}`;\n\t\t\t}\n\t\t} else {\n\t\t\t// If mobileFlexWrap is not set, default to flexWrap value.\n\t\t\tif (flexWrap !== 'nowrap') {\n\t\t\t\tflexWrapClass = `${baseClass}-wrap--${flexWrap}`;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (flexWrap !== 'nowrap') {\n\t\t\tflexWrapClass = `${baseClass}-wrap--${flexWrap}`;\n\t\t}\n\t}\n\n\tlet justifyContentClass = null;\n\tif (isMobile) {\n\t\t// If mobileJustifyContent is set, use that value.\n\t\tif (mobileJustifyContent) {\n\t\t\tif (mobileJustifyContent !== 'flex-start') {\n\t\t\t\tjustifyContentClass = `${baseClass}-justify--${mobileJustifyContent}`;\n\t\t\t}\n\t\t} else {\n\t\t\t// If mobileJustifyContent is not set, default to justifyContent value.\n\t\t\tif (justifyContent !== 'flex-start') {\n\t\t\t\tjustifyContentClass = `${baseClass}-justify--${justifyContent}`;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (justifyContent !== 'flex-start') {\n\t\t\tjustifyContentClass = `${baseClass}-justify--${justifyContent}`;\n\t\t}\n\t}\n\n\tlet alignItemsClass = null;\n\tif (isMobile) {\n\t\t// If mobileAlignItems is set, use that value.\n\t\tif (mobileAlignItems) {\n\t\t\tif (mobileAlignItems !== 'stretch') {\n\t\t\t\talignItemsClass = `${baseClass}-align-items--${mobileAlignItems}`;\n\t\t\t}\n\t\t} else {\n\t\t\t// If mobileAlignItems is not set, default to alignItems value.\n\t\t\tif (alignItems !== 'stretch') {\n\t\t\t\talignItemsClass = `${baseClass}-align-items--${alignItems}`;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (alignItems !== 'stretch') {\n\t\t\talignItemsClass = `${baseClass}-align-items--${alignItems}`;\n\t\t}\n\t}\n\n\tlet alignContentClass = null;\n\tif (isMobile) {\n\t\t// If mobileAlignContent is set, use that value.\n\t\tif (mobileAlignContent) {\n\t\t\tif (mobileAlignContent !== 'flex-start') {\n\t\t\t\talignContentClass = `${baseClass}-align-content--${mobileAlignContent}`;\n\t\t\t}\n\t\t} else {\n\t\t\t// If mobileAlignContent is not set, default to alignContent value.\n\t\t\tif (alignContent !== 'flex-start') {\n\t\t\t\talignContentClass = `${baseClass}-align-content--${alignContent}`;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (alignContent !== 'flex-start') {\n\t\t\talignContentClass = `${baseClass}-align-content--${alignContent}`;\n\t\t}\n\t}\n\n\tlet gapClass = null;\n\tif (isMobile) {\n\t\t// If mobileGap is set, use that value.\n\t\tif (mobileGap) {\n\t\t\tif (mobileGap !== 'none') {\n\t\t\t\tgapClass = `${baseClass}-gap--${mobileGap}`;\n\t\t\t}\n\t\t} else {\n\t\t\t// If mobileGap is not set, default to gap value.\n\t\t\tif (gap !== 'none') {\n\t\t\t\tgapClass = `${baseClass}-gap--${gap}`;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (gap !== 'none') {\n\t\t\tgapClass = `${baseClass}-gap--${gap}`;\n\t\t}\n\t}\n\n\t// Render the output\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([\n\t\t\t\tcontainerClass,\n\t\t\t\tmobileClass,\n\t\t\t\tflexDirectionClass,\n\t\t\t\tflexWrapClass,\n\t\t\t\tjustifyContentClass,\n\t\t\t\talignItemsClass,\n\t\t\t\talignContentClass,\n\t\t\t\tgapClass,\n\t\t\t\tclassName ?? '',\n\t\t\t])}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n","import React, { ReactNode } from 'react';\n\nimport { OverlayContextProvider } from '@utilities/context-providers/OverlayContext/OverlayContext';\nimport { ResponsiveContextProvider } from '@utilities/context-providers/ResponsiveContext/ResponsiveContext';\n\n/**\n * Prop types for GlobalWrapper\n */\ninterface GlobalWrapperProps {\n\t/**\n\t * Child components\n\t */\n\tchildren: ReactNode;\n\t/**\n\t * Mobile menu will be enabled when viewport is at or below this number in pixels.\n\t */\n\tmobileMenuMaxWidth?: number;\n}\n\n/**\n * GlobalWrapper wrapper component.\n */\nexport const GlobalWrapper = ({\n\tchildren,\n\tmobileMenuMaxWidth = 640,\n}: GlobalWrapperProps) => {\n\treturn (\n\t\t<ResponsiveContextProvider mobileMenuMaxWidth={mobileMenuMaxWidth}>\n\t\t\t<OverlayContextProvider>{children}</OverlayContextProvider>\n\t\t</ResponsiveContextProvider>\n\t);\n};\n","import React, { ComponentPropsWithoutRef, ReactNode } from 'react';\n\nimport { initiateSlots, mergeClasses } from '@libs/components/utils';\nimport { GridGapOptions, VerticalAlignOptions } from '@libs/types/layout-types';\n\nimport '../../utilities/grid/grid.css';\nimport './three-item-layout.css';\n\n/**\n * Prop types for TwoItemLayout\n */\ninterface TwoItemLayoutProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Item content.\n\t */\n\tchildren?: ReactNode;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Width of gap between items.\n\t */\n\tgridGap?: GridGapOptions;\n\t/**\n\t * Vertical alignment of items.\n\t */\n\tverticalAlign?: VerticalAlignOptions;\n}\n\n/**\n * ThreeItemLayout UI component.\n */\nexport const ThreeItemLayout = ({\n\tchildren,\n\tclassName,\n\tgridGap = 'standard',\n\tverticalAlign = 'start',\n\t...props\n}: TwoItemLayoutProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-three-item-layout';\n\tconst gridGapClass =\n\t\tgridGap === 'standard' ? 'pds-grid' : `pds-grid pds-grid--${gridGap}`;\n\tconst vertAlignClass = `${baseClass}--${verticalAlign}`;\n\n\t// Initiate slots.\n\tconst slots = initiateSlots(children);\n\n\tconst columns = [\n\t\tslots['first-item'],\n\t\tslots['second-item'],\n\t\tslots['third-item'],\n\t];\n\n\t// Render the output\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([\n\t\t\t\tbaseClass,\n\t\t\t\tgridGapClass,\n\t\t\t\tvertAlignClass,\n\t\t\t\tclassName,\n\t\t\t])}\n\t\t\t{...props}\n\t\t>\n\t\t\t{columns.map((column, idx) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={idx}\n\t\t\t\t\tclassName='pds-grid-item pds-grid-item--sm-12 pds-grid-item--md-4 pds-grid-item--lg-4'\n\t\t\t\t>\n\t\t\t\t\t{column}\n\t\t\t\t</div>\n\t\t\t))}\n\t\t</div>\n\t);\n};\n","import React, { ComponentPropsWithoutRef, ReactNode } from 'react';\n\nimport { initiateSlots, mergeClasses } from '@libs/components/utils';\nimport { GridGapOptions, VerticalAlignOptions } from '@libs/types/layout-types';\n\nimport '../../utilities/grid/grid.css';\nimport './two-item-layout.css';\n\n/**\n * Prop types for TwoItemLayout\n */\ninterface TwoItemLayoutProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Item content.\n\t */\n\tchildren?: ReactNode;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Width of gap between items.\n\t */\n\tgridGap?: GridGapOptions;\n\t/**\n\t * Layout variant for column widths.\n\t */\n\tlayoutVariant?: 'equal' | 'one-third-start' | 'one-third-end';\n\t/**\n\t * Vertical alignment of items.\n\t */\n\tverticalAlign?: VerticalAlignOptions;\n}\n\n/**\n * TwoItemLayout UI component.\n */\nexport const TwoItemLayout = ({\n\tchildren,\n\tclassName,\n\tgridGap = 'standard',\n\tlayoutVariant = 'equal',\n\tverticalAlign = 'start',\n\t...props\n}: TwoItemLayoutProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-two-item-layout';\n\tconst gridGapClass =\n\t\tgridGap === 'standard' ? 'pds-grid' : `pds-grid pds-grid--${gridGap}`;\n\tconst vertAlignClass = `${baseClass}--${verticalAlign}`;\n\n\t// Pre-defined class arrays based on column width.\n\tconst halfClasses = ['pds-grid-item--md-6'];\n\tconst oneThirdClasses = ['pds-grid-item--md-4', 'pds-grid-item--lg-3'];\n\tconst twoThirdsClasses = ['pds-grid-item--md-8', 'pds-grid-item--lg-9'];\n\n\t// Base classes array.\n\tconst itemBaseClasses = ['pds-grid-item', 'pds-grid-item--sm-4'];\n\n\t// Establish vars for each item's classes array.\n\tinterface ItemClasses {\n\t\tfirstItemClasses: string[];\n\t\tsecondItemClasses: string[];\n\t}\n\n\tlet firstItemClasses: ItemClasses['firstItemClasses'];\n\tlet secondItemClasses: ItemClasses['secondItemClasses'];\n\n\t// Alter items' class arrays based on layoutVariant.\n\tswitch (layoutVariant) {\n\t\tcase 'equal':\n\t\t\tfirstItemClasses = itemBaseClasses.concat(halfClasses);\n\t\t\tsecondItemClasses = itemBaseClasses.concat(halfClasses);\n\t\t\tbreak;\n\t\tcase 'one-third-start':\n\t\t\tfirstItemClasses = itemBaseClasses.concat(oneThirdClasses);\n\t\t\tsecondItemClasses = itemBaseClasses.concat(twoThirdsClasses);\n\t\t\tbreak;\n\t\tcase 'one-third-end':\n\t\t\tfirstItemClasses = itemBaseClasses.concat(twoThirdsClasses);\n\t\t\tsecondItemClasses = itemBaseClasses.concat(oneThirdClasses);\n\t}\n\n\t// Initiate slots.\n\tconst slots = initiateSlots(children);\n\n\t// Assign content to named slots for this component.\n\tconst firstItemContent = slots['first-item'];\n\tconst secondItemContent = slots['second-item'];\n\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([\n\t\t\t\tbaseClass,\n\t\t\t\tgridGapClass,\n\t\t\t\tvertAlignClass,\n\t\t\t\tclassName,\n\t\t\t])}\n\t\t\t{...props}\n\t\t>\n\t\t\t<div className={firstItemClasses.join(' ').trim()}>\n\t\t\t\t{firstItemContent}\n\t\t\t</div>\n\t\t\t<div className={secondItemClasses.join(' ').trim()}>\n\t\t\t\t{secondItemContent}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import { useEffect, useState } from 'react';\n\nimport {\n\tBP_L,\n\tBP_M,\n\tBP_XL,\n} from '@pantheon-systems/pds-design-tokens/build/js/variables.global.js';\n\nexport type Breakpoint = 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n * Returns the current breakpoint based on window width.\n *\n * Breakpoints:\n * - sm: 0-767px (mobile)\n * - md: 768-1279px (tablet)\n * - lg: 1280-1439px (desktop)\n * - xl: 1440px+ (large desktop)\n *\n * @returns {Breakpoint} Current breakpoint name\n *\n * @example\n * const breakpoint = useBreakpoint();\n * const isMobile = breakpoint === 'sm';\n */\nexport const useBreakpoint = (): Breakpoint => {\n\tconst isBrowser = typeof window !== 'undefined';\n\n\tconst getBreakpoint = (width: number): Breakpoint => {\n\t\tif (width >= BP_XL) return 'xl';\n\t\tif (width >= BP_L) return 'lg';\n\t\tif (width >= BP_M) return 'md';\n\t\treturn 'sm';\n\t};\n\n\tconst [breakpoint, setBreakpoint] = useState<Breakpoint>(\n\t\tisBrowser ? getBreakpoint(window.innerWidth) : 'lg',\n\t);\n\n\tuseEffect(() => {\n\t\tif (!isBrowser) return;\n\n\t\tconst handleResize = () => {\n\t\t\tsetBreakpoint(getBreakpoint(window.innerWidth));\n\t\t};\n\n\t\t// Set initial value\n\t\thandleResize();\n\n\t\twindow.addEventListener('resize', handleResize);\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener('resize', handleResize);\n\t\t};\n\t}, []);\n\n\treturn breakpoint;\n};\n","import { useEffect, useState } from 'react';\n\n/**\n * Hook for matching CSS media queries in JavaScript.\n *\n * @param {string} query - CSS media query string (e.g., \"(min-width: 768px)\")\n * @returns {boolean} Whether the media query currently matches\n *\n * @example\n * // Using with breakpoint constants\n * import { BP_M } from '@pantheon-systems/pds-design-tokens/build/js/variables.global.js';\n * const isTabletOrLarger = useMediaQuery(`(min-width: ${BP_M}px)`);\n *\n * @example\n * // Using with custom query\n * const prefersReducedMotion = useMediaQuery('(prefers-reduced-motion: reduce)');\n * const isDarkMode = useMediaQuery('(prefers-color-scheme: dark)');\n */\nexport const useMediaQuery = (query: string): boolean => {\n\tconst isBrowser = typeof window !== 'undefined';\n\n\tconst getMatches = (mediaQuery: string): boolean => {\n\t\tif (!isBrowser) return false;\n\t\treturn window.matchMedia(mediaQuery).matches;\n\t};\n\n\tconst [matches, setMatches] = useState<boolean>(getMatches(query));\n\n\tuseEffect(() => {\n\t\tif (!isBrowser) return;\n\n\t\tconst mediaQueryList = window.matchMedia(query);\n\t\tconst handleChange = () => {\n\t\t\tsetMatches(mediaQueryList.matches);\n\t\t};\n\n\t\t// Set initial value\n\t\tsetMatches(mediaQueryList.matches);\n\n\t\t// Modern browsers\n\t\tif (mediaQueryList.addEventListener) {\n\t\t\tmediaQueryList.addEventListener('change', handleChange);\n\t\t\treturn () => mediaQueryList.removeEventListener('change', handleChange);\n\t\t} else {\n\t\t\t// Legacy browsers (Safari < 14)\n\t\t\tmediaQueryList.addListener(handleChange);\n\t\t\treturn () => mediaQueryList.removeListener(handleChange);\n\t\t}\n\t}, [query]);\n\n\treturn matches;\n};\n"],"names":["createRandomID","initiateSlots","children","slots","unslotted","Children","child","isValidElement","slotName","mergeClasses","styles","isValidImageSrc","uri","BP_M","BP_L","BP_XL","SPACING_6XL","SPACING_5XL","SPACING_4XL","SPACING_3XL","SPACING_2XL","SPACING_XL","SPACING_L","SPACING_M","SPACING_S","SPACING_XS","Z_INDEX_NOTIFICATIONS","Z_INDEX_OVERLAY","customIcons","React","iconData","iconList","iconSizes","Icon","className","display","iconName","iconSize","style","verticalAlign","props","baseClass","iconClasses","data","viewBox","customIcon","iconContent","pathData","d","i","gradients","uniqueIdToGradient","uniqueId","pos","hashSum","Avatar","ariaLabel","hasUserFallback","imageSrc","linkContent","size","sizeClass","hasImageClass","doesImageHaveError","setImageHaveError","useState","fallbackStyles","imageContent","staticContent","interactiveContent","cloneElement","Badge","color","label","colorClass","StatusBadge","hasStatusIndicator","statusIndicatorText","statusType","statusClass","statusClassMod","Tally","type","typeLabels","messageTypeLabel","extractText","node","TYPOGRAPHY_SIZE_XS","TYPOGRAPHY_SIZE_S","TYPOGRAPHY_SIZE_M","OverlayContext","createContext","OverlayContextProvider","overlayCount","setOverlayCount","openOverlay","useCallback","prev","closeOverlay","hasOpenOverlay","useEffect","handleKeyDown","e","contextValue","useOverlayContext","context","useContext","useKeyPress","targetKey","callback","options","altKey","ctrlKey","enabled","metaKey","shiftKey","keyPressed","setKeyPressed","modifiersMatch","event","downHandler","upHandler","Tooltip","content","customTrigger","offsetValue","preferredPlacement","triggerAccessibleText","triggerIcon","triggerIconColor","triggerIconSize","zIndex","isOpen","setIsOpen","triggerType","customTriggerClasses","iconTriggerClasses","floatingStyles","refs","useFloating","offset","flip","shift","autoUpdate","hover","useHover","focus","useFocus","dismiss","useDismiss","role","useRole","getFloatingProps","getReferenceProps","useInteractions","FloatingPortal","inputCommonClasses","getInputWidthStyle","inputWidth","stripUrlProtocol","value","RequiredIcon","InputLabel","disabled","id","isLegend","isPseudoLabel","required","showLabel","tooltipText","labelClasses","labelContent","InputMessage","forInputGroup","hasValidationMessage","message","validationMessageHasDecorators","validationStatus","InputPrefix","prefixIconVariants","variant","SearchShortcut","inputId","shortcutLabel","element","ClearButton","clearLabel","handleClearInput","CharacterCounter","currentLength","maxLength","overLimitMessage","isOverLimit","overLimitCount","overLimitClass","HiddenLabel","forwardRef","isActive","ref","useId","activeClass","spinnerSizes","labelFontSizes","labelMargins","Spinner","colorType","isInline","displayClass","spinnerSize","fontSize","labelMargin","lineWidth","spinnerStyles","labelStyles","Button","buttonType","displayType","isFullWidth","isLoading","isSplitButton","isWorking","onClick","variantClass","fullWidthClass","loadingClass","pulseClass","setIconSize","setSpinnerSize","setSpinnerColor","renderedIcon","buttonContent","buttonElement","ButtonLink","buttonBaseClass","buttonModifierClasses","linkText","linkLabel","processedLink","useClipboard","text","isCopied","setIsCopied","duration","IconButton","hasTooltip","icon2Name","animationClasses","setOffsetValue","isAnimated","icon1Ref","useRef","icon2Ref","handleAnimation","handleClick","ClipboardButton","clipboardText","_isCopied","CloseButton","StatusTypeLabels","isSeparatorItemType","item","isHeadingItemType","isLinkItemType","isNodeItemType","SitePlanLevelLabel","SiteTypeLabel","SiteTypeIcon","useWindowWidth","isBrowser","windowWidth","setWindowWidth","handleResize","ResponsiveContext","ResponsiveContextProvider","mobileMenuMaxWidth","isMobile","MenuButton","menuItems","menuPosition","testId","undefinedLabel","withinNavbar","placement","strategy","x","y","responsiveContext","isMobileNavbar","mobileClass","navbarClass","triggerID","listboxID","menuRefActual","nodeRef","focusMenu","setFocusMenu","activeDescendant","setActiveDescendant","activeMenuItemIndex","setActiveMenuItemIndex","groupIDs","menuItemIDs","focusableMenuItems","useLayoutEffect","handleClickOutside","menuElem","setActiveMenuItem","elemID","index","openMenu","closeMenu","setFocusByFirstCharacter","char","itemFound","activateMenuItem","itemID","itemIndex","activateCurrentMenuItem","currentItemID","handleTriggerClick","handleMenuItemClick","handleButtonKeyDown","key","flag","firstEnabledIndex","lastEnabledIndex","handleMenuKeydown","moveToItemID","moveToIndex","isPrintableCharacter","str","attempts","maxAttempts","renderItem","groupID","groupHeadingID","groupIDString","fallbackItemID","shouldFocus","isCritical","criticalLabel","itemLabel","itemDescription","itemContent","linkElement","LinkElement","menuItemClasses","renderMenuItemsGrouped","items","menuItemBreaks","groupedItems","breaks","breakItem","group","renderMenuItems","itemsData","haveBreaks","listboxClasses","groupedItemsData","currentGroupID","firstMenuItemIndex","initialDescendant","hasHeading","keyID","groupLabel","menuButtonDisplayType","labelText","handleExpand","button","MobileMenuItems","menuButtonMobileDisplayType","buttonVariant","mobileButtonClasses","navbarMobileMarkup","expandedClass","SegmentedButton","defaultValue","onChange","disabledClass","isControlled","hasDefaultValue","internalValue","setInternalValue","handleSelection","radio","idx","isChecked","optionClass","checkedClass","SplitButton","actionItems","moreActionsLabel","primaryAction","moreActions","primaryActionElement","platformLabels","PlatformIcon","platformType","platformClass","processedIcon","iconPair","svgData","SSOButton","platform","UtilityButton","buttonProps","hasBorder","iconPosition","isMonospace","renderIcon","renderSpinner","buildContent","extractedLabel","wrapperClasses","wrapWithTooltip","Textarea","counterMaxLength","isResizable","onBlur","onFocus","placeholder","readonly","rows","textareaProps","translationStrings","validationMessage","inputWidthStyle","resizableClass","requiredClass","errorClass","successClass","readonlyClass","processedMessage","hasValue","handleChange","handleBlur","UrlPrefix","TextInput","autoComplete","hasClearButton","hasSearchShortcut","hasUrlPrefix","inputProps","onClear","searchIcon","showVisibilityToggle","urlPrefixClass","prefix","visibility","setVisibility","processedValue","newEvent","handleClear","handleShowVisibilityToggle","previous","processedType","isActiveItem","isActiveTrail","ButtonNav","navRef","nav","focusableElements","focusedElement","currentIndex","nextIndex","prevIndex","ButtonMenuItem","itemClass","defaultMarkup","mobileMenuItems","mobileMarkup","iconTypes","ANIMATION_DURATION","REVERSE_DELAY","Banner","banners","dismissLabel","labelNext","labelPrevious","bannerGroup","setBannerGroup","fadingId","setFadingId","dismissingId","setDismissingId","zIndexOverrides","setZIndexOverrides","totalBanners","multipleClass","typeClasses","activeBannerType","activeBannerTypeClass","getZIndex","getTabIndex","showNextBanner","prevBanners","showPreviousBanner","renderBanner","banner","isDismissible","onDismiss","roleType","bannerTypeLabel","handleDismiss","prevBanner","InlineMessage","title","cssClasses","SectionMessage","ctaButton","messageRef","hasDismissClass","hasTitleClass","dismissAnimationEndEventHandler","triggerOnDismiss","defaultTypeLabels","Toast","toastTypeLabel","ToastCloseButton","closeToast","Toaster","autoCloseDuration","limit","position","toasterClasses","ToastContainer","Slide","ToastType","useToast","addToast","toastContent","toastOptions","toastApi","workingTransition","cssTransition","PanelRow","expandButtonAriaLabel","isExpandable","isExpanded","setIsExpanded","liRef","contentRef","itemsLeftSlot","itemsRightSlot","itemsBelowSlot","li","isExpanding","Picture","alt","height","srcFallback","srcWebp","width","Skiplink","destination","StatusIndicator","typeClass","VideoEmbed","videoId","videoTitle","wistiaFrame","vimeoFrame","youTubeFrame","frameToRender","SiteOptionDisplay","option","iconType","optionRef","rect","useMeasure","labelMaxWidth","siteStatusLabel","siteStatusIndicatorType","statusBadge","Container","widthClass","DocsLayout","sidebarMinWidth","sidebarWidth","sidebarStyles","mainContent","sidebarContent","mobileContent","defaultContent","FlexContainer","alignContent","alignItems","flexDirection","flexWrap","gap","justifyContent","mobileAlignContent","mobileAlignItems","mobileFlexDirection","mobileFlexWrap","mobileGap","mobileJustifyContent","containerClass","flexDirectionClass","flexWrapClass","justifyContentClass","alignItemsClass","alignContentClass","gapClass","GlobalWrapper","ThreeItemLayout","gridGap","gridGapClass","vertAlignClass","columns","column","TwoItemLayout","layoutVariant","halfClasses","oneThirdClasses","twoThirdsClasses","itemBaseClasses","firstItemClasses","secondItemClasses","firstItemContent","secondItemContent","useBreakpoint","getBreakpoint","breakpoint","setBreakpoint","useMediaQuery","query","getMatches","mediaQuery","matches","setMatches","mediaQueryList"],"mappings":"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A,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACD,GCtwDMC,KAAsC;AAAA,EAC3C,OAAOZ;AAAA,EACP,OAAOD;AAAA,EACP,GAAGG;AAAA,EACH,GAAGC;AAAA,EACH,GAAGC;AAAA,EACH,IAA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","x_google_ignoreList":[1,10]}
1
+ {"version":3,"file":"index.js","sources":["../src/libs/components/utils.js","../src/components/icons/Icon/custom-icons.tsx","../src/components/icons/Icon/generated-icon-data.ts","../src/components/icons/Icon/Icon.tsx","../src/components/Avatar/Avatar.tsx","../src/components/badges/Badge/Badge.tsx","../src/components/badges/StatusBadge/StatusBadge.tsx","../src/components/badges/Tally/Tally.tsx","../src/libs/components/utility-components.tsx","../node_modules/@pantheon-systems/pds-design-tokens/build/js/variables.global.js","../node_modules/@pantheon-systems/pds-design-tokens/build/js/variables.typography.js","../src/utilities/context-providers/OverlayContext/OverlayContext.tsx","../src/utilities/hooks/useKeyPress/useKeyPress.ts","../src/components/Tooltip/Tooltip.tsx","../src/components/inputs/input-utilities.tsx","../src/components/loading-indicators/Spinner/Spinner.tsx","../src/components/buttons/Button/Button.tsx","../src/components/buttons/ButtonLink/ButtonLink.tsx","../src/utilities/hooks/useClipboard/useClipboard.ts","../src/components/buttons/IconButton/IconButton.tsx","../src/components/buttons/ClipboardButton/ClipboardButton.tsx","../src/components/buttons/CloseButton/CloseButton.tsx","../src/libs/types/custom-types.tsx","../src/utilities/hooks/useWindowWidth/useWindowWidth.ts","../src/utilities/context-providers/ResponsiveContext/ResponsiveContext.tsx","../src/components/buttons/MenuButton/MenuButton.tsx","../src/components/buttons/SegmentedButton/SegmentedButton.tsx","../src/components/buttons/SplitButton/SplitButton.tsx","../src/components/icons/PlatformIcon/PlatformIcon.tsx","../src/components/buttons/SSOButton/SSOButton.tsx","../src/components/buttons/UtilityButton/UtilityButton.tsx","../src/components/inputs/Textarea/Textarea.tsx","../src/components/inputs/TextInput/TextInput.tsx","../src/components/navigation/navigation-utilities.tsx","../src/components/navigation/ButtonNav/ButtonNav.tsx","../src/components/notifications/Banner/Banner.tsx","../src/components/notifications/InlineMessage/InlineMessage.tsx","../src/components/notifications/SectionMessage/SectionMessage.tsx","../src/components/notifications/Toaster/Toast.tsx","../src/components/notifications/Toaster/Toaster.tsx","../src/components/notifications/Toaster/useToast.tsx","../src/components/panels/PanelList/PanelRow.tsx","../src/components/Picture/Picture.tsx","../src/components/Skiplink/Skiplink.tsx","../src/components/StatusIndicator/StatusIndicator.tsx","../src/components/VideoEmbed/VideoEmbed.tsx","../src/libs/components/SiteOptionDisplay/SiteOptionDisplay.tsx","../src/layouts/Container/Container.tsx","../src/layouts/DocsLayout/DocsLayout.tsx","../src/layouts/FlexContainer/FlexContainer.tsx","../src/layouts/GlobalWrapper/GlobalWrapper.tsx","../src/layouts/ThreeItemLayout/ThreeItemLayout.tsx","../src/layouts/TwoItemLayout/TwoItemLayout.tsx","../src/utilities/hooks/useBreakpoint/useBreakpoint.ts","../src/utilities/hooks/useMediaQuery/useMediaQuery.ts"],"sourcesContent":["import { Children, isValidElement } from 'react';\n\n// Function to generate a random ID.\nexport const createRandomID = () => {\n\treturn Math.random().toString(32).substring(2, 13);\n};\n\n// Function to collect all descendants of an element.\nexport const getDescendants = (node, collect) => {\n\t// Check for children first.\n\tif (!node?.childNodes) {\n\t\treturn;\n\t}\n\n\t// Collect all children.\n\tlet i;\n\tcollect = collect || [];\n\tfor (i = 0; i < node.childNodes.length; i++) {\n\t\tcollect.push(node.childNodes[i]);\n\t\tgetDescendants(node.childNodes[i], collect);\n\t}\n\treturn collect;\n};\n\n// Function to initiate slots from a children prop.\nexport const initiateSlots = (children) => {\n\tconst slots = {};\n\tconst unslotted = [];\n\n\tChildren.forEach(children, (child) => {\n\t\tif (isValidElement(child)) {\n\t\t\tconst slotName = child.props.slot;\n\t\t\tif (slotName) {\n\t\t\t\tif (slots[slotName]) {\n\t\t\t\t\tslots[slotName].push(child);\n\t\t\t\t} else {\n\t\t\t\t\tslots[slotName] = [child];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tunslotted.push(child);\n\t\t\t}\n\t\t} else {\n\t\t\t// Handle non-React elements (strings, numbers, etc.)\n\t\t\tunslotted.push(child);\n\t\t}\n\t});\n\n\t// Add unslotted children to the slots object with a special key\n\tif (unslotted.length > 0) {\n\t\tslots['__unslotted'] = unslotted;\n\t}\n\n\treturn slots;\n};\n\n// Function to merge css classes\nexport const mergeClasses = (styles) =>\n\tstyles.join(' ').trim().replace(/\\s+/g, ' ');\n\n/**\n * Function to validate if image src is valid, restricts base64 to data image types and excludes svg + xml\n */\nexport const isValidImageSrc = (uri) => {\n\tif (!uri) return false;\n\n\tif (!uri.startsWith('data:')) return true;\n\n\tconst regex =\n\t\t/^data:image\\/(png|jpeg|jpg|gif|bmp|webp);base64,[A-Za-z0-9+/]+=*$/;\n\treturn regex.test(uri);\n};\n","/**\n * Custom icon SVG data for icons without a Font Awesome equivalent.\n *\n * Two types:\n * - 'path': Simple SVG path data (renders as <path d={svgPathData} />)\n * - 'complex': JSX content for icons needing masks, gradients, etc.\n *\n * Creating custom icons:\n *\n * ViewBox dimensions:\n * - Use 512 height to match FA's standard. Width can vary by aspect ratio.\n * - Exception: brand logos with fixed aspect ratios (e.g. nextJs at 180x180)\n * can use their native dimensions.\n *\n * Preparing SVG path data from Figma/Illustrator:\n * 1. Flatten all layers into a single path\n * 2. Set artboard to target dimensions (e.g. Nx512)\n * 3. Export as SVG, copy the `d` attribute from the <path> element\n * 4. Remove any fill, stroke, or transform attributes — the component\n * applies fill=\"currentColor\" at render time\n * 5. Ensure path coordinates start at 0,0 (no negative coords or offsets)\n *\n * When to use 'complex':\n * - Only when the icon requires multiple elements (masks, gradients,\n * multiple colors). Avoid if possible since complex icons can't be\n * serialized by the generate script.\n *\n * Testing:\n * - Check the icon at all sizes (xs through 3xl) in Storybook\n * - Verify it looks balanced next to FA icons at the same size\n */\n\nimport React from 'react';\n\nexport interface SimpleCustomIcon {\n\theight: number;\n\tsvgPathData: string;\n\ttype: 'path';\n\twidth: number;\n}\n\nexport interface ComplexCustomIcon {\n\theight: number;\n\trender: () => React.ReactNode;\n\ttype: 'complex';\n\twidth: number;\n}\n\nexport type CustomIconData = ComplexCustomIcon | SimpleCustomIcon;\n\nexport const customIcons: Record<string, CustomIconData> = {\n\tboltPantheon: {\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M183.215 0L254.271 277.176H204.614L302 512L46.228 187.779H135.272L0 0.434418L144.526 0.459972L145.968 0H183.215Z',\n\t\ttype: 'path',\n\t\twidth: 304,\n\t},\n\tnextJs: {\n\t\theight: 180,\n\t\trender: () => (\n\t\t\t<>\n\t\t\t\t<mask\n\t\t\t\t\theight='180'\n\t\t\t\t\tid='icon_nextjs_mask'\n\t\t\t\t\tmaskUnits='userSpaceOnUse'\n\t\t\t\t\tstyle={{ maskType: 'alpha' }}\n\t\t\t\t\twidth='180'\n\t\t\t\t\tx='0'\n\t\t\t\t\ty='0'\n\t\t\t\t>\n\t\t\t\t\t<circle cx='90' cy='90' fill='black' r='90' />\n\t\t\t\t</mask>\n\t\t\t\t<g mask='url(#icon_nextjs_mask)'>\n\t\t\t\t\t<circle cx='90' cy='90' fill='currentColor' r='90' />\n\t\t\t\t\t<path\n\t\t\t\t\t\td='M149.508 157.52L69.142 54H54V125.97H66.1136V69.3836L139.999 164.845C143.333 162.614 146.509 160.165 149.508 157.52Z'\n\t\t\t\t\t\tfill='url(#icon_nextjs_gradient_diagonal)'\n\t\t\t\t\t/>\n\t\t\t\t\t<rect\n\t\t\t\t\t\tfill='url(#icon_nextjs_gradient_vertical)'\n\t\t\t\t\t\theight='72'\n\t\t\t\t\t\twidth='12'\n\t\t\t\t\t\tx='115'\n\t\t\t\t\t\ty='54'\n\t\t\t\t\t/>\n\t\t\t\t</g>\n\t\t\t\t<defs>\n\t\t\t\t\t<linearGradient\n\t\t\t\t\t\tgradientUnits='userSpaceOnUse'\n\t\t\t\t\t\tid='icon_nextjs_gradient_diagonal'\n\t\t\t\t\t\tx1='109'\n\t\t\t\t\t\tx2='144.5'\n\t\t\t\t\t\ty1='116.5'\n\t\t\t\t\t\ty2='160.5'\n\t\t\t\t\t>\n\t\t\t\t\t\t<stop stopColor='var(--icon-detail-color)' />\n\t\t\t\t\t\t<stop\n\t\t\t\t\t\t\toffset='1'\n\t\t\t\t\t\t\tstopColor='var(--icon-detail-color)'\n\t\t\t\t\t\t\tstopOpacity='0'\n\t\t\t\t\t\t/>\n\t\t\t\t\t</linearGradient>\n\t\t\t\t\t<linearGradient\n\t\t\t\t\t\tgradientUnits='userSpaceOnUse'\n\t\t\t\t\t\tid='icon_nextjs_gradient_vertical'\n\t\t\t\t\t\tx1='121'\n\t\t\t\t\t\tx2='120.799'\n\t\t\t\t\t\ty1='54'\n\t\t\t\t\t\ty2='106.875'\n\t\t\t\t\t>\n\t\t\t\t\t\t<stop stopColor='var(--icon-detail-color)' />\n\t\t\t\t\t\t<stop\n\t\t\t\t\t\t\toffset='1'\n\t\t\t\t\t\t\tstopColor='var(--icon-detail-color)'\n\t\t\t\t\t\t\tstopOpacity='0'\n\t\t\t\t\t\t/>\n\t\t\t\t\t</linearGradient>\n\t\t\t\t</defs>\n\t\t\t</>\n\t\t),\n\t\ttype: 'complex',\n\t\twidth: 180,\n\t},\n\tquotesLeft: {\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M232.896 226.425C228.749 226.425 225.964 231.118 227.632 235.301L286.746 413.714L116.988 224.541C113.406 220.543 102.507 208.132 99.9534 203.926L11.645 108.127C9.0914 103.92 11.8346 98.2854 16.4278 98.2854H227.018C227.811 98.2854 228.592 98.3754 229.349 98.5481C229.87 98.3779 230.428 98.2854 231.017 98.2854H441.605C446.22 98.2854 450.387 101.323 452.187 106.003L495.176 217.627C496.786 221.801 494.005 226.425 489.888 226.425H447.484C443.338 226.425 440.551 231.118 442.221 235.301L501.333 413.714L331.576 224.541C327.995 220.543 317.095 208.132 314.542 203.926L247.159 130.829L280.589 217.627C282.198 221.801 279.418 226.425 275.3 226.425H232.896Z',\n\t\ttype: 'path',\n\t\twidth: 512,\n\t},\n\tquotesRight: {\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M289.771 226.425C293.918 226.425 296.703 231.118 295.035 235.301L235.921 413.714L405.679 224.541C409.261 220.543 420.16 208.132 422.713 203.926L511.022 108.127C513.575 103.92 510.832 98.2854 506.239 98.2854H295.649C294.855 98.2854 294.075 98.3754 293.317 98.5481C292.797 98.3779 292.239 98.2854 291.65 98.2854H81.0613C76.4469 98.2854 72.2795 101.323 70.48 106.003L27.4902 217.627C25.8806 221.801 28.6614 226.425 32.7787 226.425H75.183C79.3291 226.425 82.1152 231.118 80.4459 235.301L21.3334 413.714L191.09 224.541C194.672 220.543 205.571 208.132 208.125 203.926L275.507 130.829L242.078 217.627C240.468 221.801 243.249 226.425 247.366 226.425H289.771Z',\n\t\ttype: 'path',\n\t\twidth: 512,\n\t},\n};\n","/**\n * Auto-generated icon data - DO NOT EDIT MANUALLY\n *\n * Generated by: npm run generate:icon-data\n * Source: icon-registry.ts + Font Awesome packages + custom-icons.tsx\n * Generated: 2026-03-31T01:56:17.582Z\n */\n\nimport { customIcons } from './custom-icons';\n\nexport { customIcons };\n\nexport const iconData = {\n\tangleDown: {\n\t\taliases: ['chevron down', 'dropdown'],\n\t\tcategories: ['arrows'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M209.5 369c-9.4 9.4-24.6 9.4-33.9 0L15.5 209c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l143 143 143-143c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-160 160z',\n\t\twidth: 384,\n\t},\n\tangleLeft: {\n\t\taliases: ['chevron left'],\n\t\tcategories: ['arrows'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M15.5 239c-9.4 9.4-9.4 24.6 0 33.9l160 160c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-143-143 143-143c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L15.5 239z',\n\t\twidth: 256,\n\t},\n\tangleRight: {\n\t\taliases: ['chevron right'],\n\t\tcategories: ['arrows'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M241.5 239c9.4 9.4 9.4 24.6 0 33.9L81.5 433c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l143-143-143-143c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l160 160z',\n\t\twidth: 256,\n\t},\n\tanglesLeft: {\n\t\taliases: ['chevrons left', 'double left'],\n\t\tcategories: ['arrows'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M15.5 239c-9.4 9.4-9.4 24.6 0 33.9l160 160c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-143-143 143-143c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L15.5 239zm352-160l-160 160c-9.4 9.4-9.4 24.6 0 33.9l160 160c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-143-143 143-143c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0z',\n\t\twidth: 448,\n\t},\n\tanglesRight: {\n\t\taliases: ['chevrons right', 'double right'],\n\t\tcategories: ['arrows'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M81.5 433l160-160c9.4-9.4 9.4-24.6 0-33.9L81.5 79c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l143 143-143 143c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0zm192 0l160-160c9.4-9.4 9.4-24.6 0-33.9L273.5 79c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l143 143-143 143c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0z',\n\t\twidth: 448,\n\t},\n\tangleUp: {\n\t\taliases: ['chevron up'],\n\t\tcategories: ['arrows'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M175.5 143c9.4-9.4 24.6-9.4 33.9 0l160 160c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-143-143-143 143c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l160-160z',\n\t\twidth: 384,\n\t},\n\tarrowDownToLine: {\n\t\taliases: ['download', 'save to'],\n\t\tcategories: ['actions', 'arrows'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M360 512c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0zM175 377c9.4 9.4 24.6 9.4 33.9 0L345 241c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-95 95 0-278.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 278.1-95-95c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L175 377z',\n\t\twidth: 384,\n\t},\n\tarrowLeft: {\n\t\taliases: ['back', 'previous'],\n\t\tcategories: ['arrows', 'navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M7 239c-9.4 9.4-9.4 24.6 0 33.9L175 441c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L81.9 280 488 280c13.3 0 24-10.7 24-24s-10.7-24-24-24L81.9 232 209 105c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L7 239z',\n\t\twidth: 512,\n\t},\n\tarrowRight: {\n\t\taliases: ['forward', 'next'],\n\t\tcategories: ['arrows', 'navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M505 273c9.4-9.4 9.4-24.6 0-33.9L337 71c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l127 127-406.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l406.1 0-127 127c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L505 273z',\n\t\twidth: 512,\n\t},\n\tarrowsRetweet: {\n\t\taliases: ['retweet', 'swap', 'exchange'],\n\t\tcategories: ['actions', 'arrows'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M463 473c9.4 9.4 24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-270.1c0-53-43-96-96-96L280 32c-13.3 0-24 10.7-24 24s10.7 24 24 24l128 0c26.5 0 48 21.5 48 48l0 270.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72zM113 39c-9.4-9.4-24.6-9.4-33.9 0L7 111c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l31-31 0 270.1c0 53 43 96 96 96l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0c-26.5 0-48-21.5-48-48l0-270.1 31 31c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L113 39z',\n\t\twidth: 576,\n\t},\n\tasterisk: {\n\t\taliases: ['required', 'star'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M224 0c13.3 0 24 10.7 24 24l0 190.3 164-95.1c11.5-6.7 26.2-2.7 32.8 8.7s2.7 26.2-8.7 32.8L271.8 256 436 351.2c11.5 6.6 15.4 21.3 8.7 32.8s-21.3 15.4-32.8 8.7L248 297.7 248 488c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-190.3-164 95.1c-11.5 6.7-26.2 2.7-32.8-8.7S.5 357.9 12 351.2L176.2 256 12 160.8C.5 154.1-3.4 139.4 3.2 128s21.3-15.4 32.8-8.7L200 214.3 200 24c0-13.3 10.7-24 24-24z',\n\t\twidth: 448,\n\t},\n\tbanBug: {\n\t\taliases: ['no bugs', 'debug'],\n\t\tcategories: ['development', 'security'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M256 464c-114.9 0-208-93.1-208-208 0-48.8 16.8-93.7 44.9-129.1L385.1 419.1C349.7 447.2 304.8 464 256 464zm85.2-156.7l31.4 4.5c13.1 1.9 25.3-7.2 27.2-20.4s-7.2-25.3-20.4-27.2l-43.4-6.2 0-4.1 43.4-6.2c13.1-1.9 22.2-14 20.4-27.2s-14-22.2-27.2-20.4L336 205.5c-.1-4.1-.6-8.1-1.3-12l37-20.5c11.6-6.4 15.8-21 9.3-32.6s-21-15.8-32.6-9.3l-36.1 20.1c-14.5-14.3-34.3-23.1-56.2-23.1-25.7 0-48.5 12.1-63.2 30.9l-66-66c35.5-28.1 80.3-44.9 129.1-44.9 114.9 0 208 93.1 208 208 0 48.8-16.8 93.7-44.9 129.1l-77.9-77.9zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM132.6 264.2c-13.1 1.9-22.2 14-20.4 27.2s14 22.2 27.2 20.4l36.6-5.2c.1 4.1 .6 8.1 1.3 12l-37 20.5c-11.6 6.4-15.8 21-9.3 32.6s21 15.8 32.6 9.3l36.1-20.1c14.4 14.3 34.3 23.1 56.2 23.1 7.9 0 15.6-1.2 22.9-3.3l-120.2-120.2-26.1 3.7z',\n\t\twidth: 512,\n\t},\n\tbars: {\n\t\taliases: ['menu', 'hamburger', 'nav'],\n\t\tcategories: ['navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M0 88C0 74.7 10.7 64 24 64l400 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 112C10.7 112 0 101.3 0 88zM0 256c0-13.3 10.7-24 24-24l400 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 280c-13.3 0-24-10.7-24-24zM448 424c0 13.3-10.7 24-24 24L24 448c-13.3 0-24-10.7-24-24s10.7-24 24-24l400 0c13.3 0 24 10.7 24 24z',\n\t\twidth: 448,\n\t},\n\tbarsFilter: {\n\t\taliases: ['filter', 'sort'],\n\t\tcategories: ['actions', 'navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M0 88C0 74.7 10.7 64 24 64l464 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 112C10.7 112 0 101.3 0 88zM96 256c0-13.3 10.7-24 24-24l272 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-272 0c-13.3 0-24-10.7-24-24zM320 424c0 13.3-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l80 0c13.3 0 24 10.7 24 24z',\n\t\twidth: 512,\n\t},\n\tbell: {\n\t\taliases: ['notification', 'alert', 'reminder'],\n\t\tcategories: ['communication', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M224 0c-13.3 0-24 10.7-24 24l0 9.7C118.6 45.3 56 115.4 56 200l0 14.5c0 37.7-10 74.7-29 107.3L5.1 359.2C1.8 365 0 371.5 0 378.2 0 399.1 16.9 416 37.8 416l372.4 0c20.9 0 37.8-16.9 37.8-37.8 0-6.7-1.8-13.3-5.1-19L421 321.7c-19-32.6-29-69.6-29-107.3l0-14.5c0-84.6-62.6-154.7-144-166.3l0-9.7c0-13.3-10.7-24-24-24zM392.4 368l-336.9 0 12.9-22.1C91.7 306 104 260.6 104 214.5l0-14.5c0-66.3 53.7-120 120-120s120 53.7 120 120l0 14.5c0 46.2 12.3 91.5 35.5 131.4L392.4 368zM156.1 464c9.9 28 36.6 48 67.9 48s58-20 67.9-48l-135.8 0z',\n\t\twidth: 448,\n\t},\n\tbillboard: {\n\t\taliases: [],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M384 32c13.3 0 24 10.7 24 24l0 8 72 0c35.3 0 64 28.7 64 64l0 240 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-240 0 0 72c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-72-240 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-240c0-35.3 28.7-64 64-64l72 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 144 0 0-8c0-13.3 10.7-24 24-24zm112 96c0-8.8-7.2-16-16-16l-72 0 0 32 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-32-144 0 0 32 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-32-72 0c-8.8 0-16 7.2-16 16l0 240 416 0 0-240z',\n\t\twidth: 576,\n\t},\n\tbitbucket: {\n\t\taliases: [],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M22.2 32c-2.1 0-4.2 .4-6.1 1.1s-3.7 1.9-5.2 3.4-2.7 3.2-3.5 5.1-1.3 4-1.3 6.1c0 .9 .1 1.9 .2 2.8L74.1 462.7c.8 5.1 3.4 9.7 7.3 13s8.8 5.2 14 5.2l325.7 0c3.8 .1 7.5-1.3 10.5-3.7s4.9-5.9 5.5-9.7L505 50.7c.7-4.2-.3-8.4-2.8-11.9s-6.2-5.7-10.4-6.4c-.9-.1-1.9-.2-2.8-.2L22.2 32zM308.1 329.8l-104 0-28.1-147 157.3 0-25.2 147z',\n\t\twidth: 512,\n\t},\n\tbluesky: {\n\t\taliases: [],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M407.8 294.7c-3.3-.4-6.7-.8-10-1.3 3.4 .4 6.7 .9 10 1.3zM288 227.1C261.9 176.4 190.9 81.9 124.9 35.3 61.6-9.4 37.5-1.7 21.6 5.5 3.3 13.8 0 41.9 0 58.4S9.1 194 15 213.9c19.5 65.7 89.1 87.9 153.2 80.7 3.3-.5 6.6-.9 10-1.4-3.3 .5-6.6 1-10 1.4-93.9 14-177.3 48.2-67.9 169.9 120.3 124.6 164.8-26.7 187.7-103.4 22.9 76.7 49.2 222.5 185.6 103.4 102.4-103.4 28.1-156-65.8-169.9-3.3-.4-6.7-.8-10-1.3 3.4 .4 6.7 .9 10 1.3 64.1 7.1 133.6-15.1 153.2-80.7 5.9-19.9 15-138.9 15-155.5s-3.3-44.7-21.6-52.9c-15.8-7.1-40-14.9-103.2 29.8-66.1 46.6-137.1 141.1-163.2 191.8z',\n\t\twidth: 576,\n\t},\n\tbolt: {\n\t\taliases: ['lightning', 'power', 'flash'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M341.2-12.1c9.1 6 13 17.3 9.6 27.6L292 192 412.9 192c19.4 0 35.1 15.7 35.1 35.1 0 10-4.2 19.5-11.7 26.1L136 521.9c-8.1 7.3-20.1 8.2-29.2 2.2s-13-17.3-9.6-27.6L156 320 35.1 320C15.7 320 0 304.3 0 284.9 0 275 4.2 265.5 11.7 258.8L312-9.9c8.1-7.3 20.1-8.1 29.2-2.2zM68.9 272l120.4 0c7.7 0 15 3.7 19.5 10s5.7 14.3 3.3 21.6L171.3 425.9 379.1 240 258.7 240c-7.7 0-15-3.7-19.5-10s-5.7-14.3-3.3-21.6L276.7 86.1 68.9 272z',\n\t\twidth: 448,\n\t},\n\tboltPantheon: {\n\t\taliases: ['lightning', 'pantheon bolt'],\n\t\tcategories: ['brands', 'custom', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M183.215 0L254.271 277.176H204.614L302 512L46.228 187.779H135.272L0 0.434418L144.526 0.459972L145.968 0H183.215Z',\n\t\twidth: 304,\n\t},\n\tboltSolid: {\n\t\taliases: ['lightning', 'power', 'flash'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M338.8-9.9c11.9 8.6 16.3 24.2 10.9 37.8L271.3 224 416 224c13.5 0 25.5 8.4 30.1 21.1s.7 26.9-9.6 35.5l-288 240c-11.3 9.4-27.4 9.9-39.3 1.3s-16.3-24.2-10.9-37.8L176.7 288 32 288c-13.5 0-25.5-8.4-30.1-21.1s-.7-26.9 9.6-35.5l288-240c11.3-9.4 27.4-9.9 39.3-1.3z',\n\t\twidth: 448,\n\t},\n\tbook: {\n\t\taliases: ['docs', 'documentation', 'manual'],\n\t\tcategories: ['documents'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M88 0C39.4 0 0 39.4 0 88L0 432c0 44.2 35.8 80 80 80l344 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-76.1C435.3 375 448 353 448 328l0-256c0-39.8-32.2-72-72-72L88 0zM368 400l0 64-288 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l288 0zM80 352c-11.4 0-22.2 2.4-32 6.7L48 88c0-22.1 17.9-40 40-40l288 0c13.3 0 24 10.7 24 24l0 256c0 13.3-10.7 24-24 24L80 352zm48-200c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0c-13.3 0-24 10.7-24 24zm24 72c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0z',\n\t\twidth: 448,\n\t},\n\tbooks: {\n\t\taliases: ['library', 'documentation'],\n\t\tcategories: ['documents'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M96.3 48l48 0c8.8 0 16 7.2 16 16l0 32-80 0 0-32c0-8.8 7.2-16 16-16zm-16 96l80 0 0 224-80 0 0-224zm128-78l0-2c0-35.3-28.7-64-64-64l-48 0c-35.3 0-64 28.7-64 64l0 384c0 35.3 28.7 64 64 64l48 0c15.1 0 29-5.3 40-14 11 8.8 24.9 14 40 14l48 0c35.3 0 64-28.7 64-64l0-164.4 48.6 181.2c9.1 34.1 44.2 54.4 78.4 45.3l46.4-12.4c34.1-9.1 54.4-44.2 45.3-78.4L455.4 48.3C446.3 14.2 411.2-6.1 377 3.1L330.7 15.5c-24.4 6.5-41.8 26.4-46.3 49.7-3.9-.8-8-1.1-12.1-1.1l-48 0c-5.5 0-10.9 .7-16 2zm0 62c0-8.8 7.2-16 16-16l48 0c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-320zm-48 320c0 8.8-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-32 80 0 0 32zM389.5 49.4c8.5-2.3 17.3 2.8 19.6 11.3l8.3 30.9-77.3 20.7-8.3-30.9c-2.3-8.5 2.8-17.3 11.3-19.6l46.4-12.4zm21 325.7l-58-216.4 77.3-20.7 58 216.4-77.3 20.7zm12.4 46.4l77.3-20.7 8.3 30.9c2.3 8.5-2.8 17.3-11.3 19.6l-46.4 12.4c-8.5 2.3-17.3-2.8-19.6-11.3l-8.3-30.9z',\n\t\twidth: 576,\n\t},\n\tbracketRight: {\n\t\taliases: ['sign out', 'logout', 'exit'],\n\t\tcategories: ['arrows', 'navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M168 80c13.3 0 24-10.7 24-24s-10.7-24-24-24L96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0c-26.5 0-48-21.5-48-48l0-256c0-26.5 21.5-48 48-48l72 0zM505 273c9.4-9.4 9.4-24.6 0-33.9L369 103c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l95 95-246.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l246.1 0-95 95c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L505 273z',\n\t\twidth: 512,\n\t},\n\tbracketsSquare: {\n\t\taliases: ['array', 'brackets'],\n\t\tcategories: ['development'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M56 32C25.1 32 0 57.1 0 88L0 424c0 30.9 25.1 56 56 56l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0c-4.4 0-8-3.6-8-8L48 88c0-4.4 3.6-8 8-8l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L56 32zm336 0l-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0c4.4 0 8 3.6 8 8l0 336c0 4.4-3.6 8-8 8l-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0c30.9 0 56-25.1 56-56l0-336c0-30.9-25.1-56-56-56z',\n\t\twidth: 448,\n\t},\n\tbrainCircuit: {\n\t\taliases: ['ai', 'machine learning', 'neural'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M123 58.1c9.5-33.5 40.4-58.1 77-58.1 21.8 0 41.6 8.7 56 22.9 14.4-14.1 34.2-22.9 56-22.9 36.6 0 67.4 24.6 77 58.1 47.4 9.7 83 51.6 83 101.9 0 11.3-1.8 22.2-5.1 32.3 22.7 19.1 37.1 47.7 37.1 79.7 0 23.7-8 45.6-21.3 63.1 3.5 10.4 5.3 21.4 5.3 32.9 0 54-41.2 98.5-93.9 103.5-15.6 24.3-42.9 40.5-74.1 40.5-25.2 0-48-10.6-64-27.6-16 17-38.8 27.6-64 27.6-31.1 0-58.4-16.2-74.1-40.5-52.7-5.1-93.9-49.5-93.9-103.5 0-11.5 1.9-22.5 5.3-32.9-13.4-17.5-21.3-39.4-21.3-63.1 0-32 14.5-60.6 37.1-79.7-3.3-10.2-5.1-21.1-5.1-32.3 0-50.3 35.6-92.2 83-101.9zM200 48c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24-30.9 0-56 25.1-56 56 0 10.5 2.9 20.3 7.9 28.6 3.4 5.7 4.3 12.5 2.5 18.9s-6.2 11.7-12 14.7c-18 9.3-30.3 28.1-30.3 49.8 0 16.1 6.8 30.7 17.8 40.9 7.9 7.4 9.9 19.2 4.8 28.8-4.2 7.8-6.5 16.7-6.5 26.3 0 30.9 25.1 56 56 56 1.1 0 2.2 0 3.2-.1 10.3-.6 19.8 5.5 23.6 15 5.9 14.7 20.4 25.1 37.1 25.1 20.4 0 37.2-15.3 39.7-35 .1-.6 .2-1.3 .3-1.9l0-135.1-40 0c-6.6 0-12 5.4-12 12l0 4.4c16.5 7.6 28 24.3 28 43.6 0 26.5-21.5 48-48 48s-48-21.5-48-48c0-19.4 11.5-36.1 28-43.6l0-4.4c0-28.7 23.3-52 52-52l40 0 0-56-12.4 0c-7.6 16.5-24.3 28-43.6 28-26.5 0-48-21.5-48-48s21.5-48 48-48c19.4 0 36.1 11.5 43.6 28l12.4 0 0-76c0-17.7-14.3-32-32-32zm80 148l0 152 40 0c6.6 0 12-5.4 12-12l0-4.4c-16.5-7.6-28-24.3-28-43.6 0-26.5 21.5-48 48-48s48 21.5 48 48c0 19.4-11.5 36.1-28 43.6l0 4.4c0 28.7-23.3 52-52 52l-40 0 0 39.1c.1 .6 .2 1.2 .3 1.9 2.5 19.7 19.3 35 39.7 35 16.8 0 31.2-10.3 37.1-25.1 3.8-9.6 13.3-15.6 23.6-15 1.1 .1 2.2 .1 3.2 .1 30.9 0 56-25.1 56-56 0-9.5-2.4-18.5-6.5-26.3-5.1-9.6-3.1-21.4 4.8-28.8 11-10.2 17.8-24.8 17.8-40.9 0-21.6-12.2-40.4-30.3-49.8-5.9-3-10.2-8.4-12-14.7s-.9-13.2 2.5-18.9c5-8.4 7.9-18.1 7.9-28.6 0-30.9-25.1-56-56-56-13.3 0-24-10.7-24-24 0-17.7-14.3-32-32-32s-32 14.3-32 32l0 76 12.4 0c7.6-16.5 24.3-28 43.6-28 26.5 0 48 21.5 48 48s-21.5 48-48 48c-19.4 0-36.1-11.5-43.6-28L280 196zm56-36a16 16 0 1 0 0 32 16 16 0 1 0 0-32zm0 128a16 16 0 1 0 32 0 16 16 0 1 0 -32 0zM144 352a16 16 0 1 0 32 0 16 16 0 1 0 -32 0zm16-176a16 16 0 1 0 32 0 16 16 0 1 0 -32 0z',\n\t\twidth: 512,\n\t},\n\tbroomWide: {\n\t\taliases: ['clean', 'sweep', 'clear'],\n\t\tcategories: ['actions', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M569 9c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-200 200-12.9-12.9c-20.2-20.2-51.4-24.6-76.3-10.7L16.4 278.9C6.3 284.5 0 295.2 0 306.8 0 315.2 3.4 323.4 9.3 329.3L214.7 534.7c6 6 14.1 9.3 22.6 9.3 11.6 0 22.3-6.3 27.9-16.4L392.6 298.2c13.9-25 9.5-56.1-10.7-76.3L369 209 569 9zM288.2 196.1l59.7 59.7c5.1 5.1 6.1 12.8 2.7 19.1l-14.9 26.8-93.4-93.4 26.8-14.9c6.2-3.5 14-2.4 19.1 2.7zm-89.6 36.5l112.8 112.8-77.9 140.3-96.5-96.5 18-53.9c2.1-6.3-3.9-12.2-10.1-10.1l-53.9 18-32.5-32.5 140.3-77.9z',\n\t\twidth: 576,\n\t},\n\tbuilding: {\n\t\taliases: ['organization', 'company', 'office'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l80 0 0-80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 80 80 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16L64 48zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm96 48c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM240 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM96 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z',\n\t\twidth: 384,\n\t},\n\tbuildings: {\n\t\taliases: ['organizations', 'companies'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M256 0c-35.3 0-64 28.7-64 64l0 32-128 0C28.7 96 0 124.7 0 160L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L256 0zM194 464L64 464c-8.8 0-16-7.2-16-16l0-288c0-8.8 7.2-16 16-16l128 0 0 304c0 5.5 .7 10.9 2 16zm62 0c-8.8 0-16-7.2-16-16l0-384c0-8.8 7.2-16 16-16l192 0c8.8 0 16 7.2 16 16l0 384c0 8.8-7.2 16-16 16l-192 0zM112 192c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM96 304l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM368 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM288 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm80 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm-80-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM272 304l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm112-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0z',\n\t\twidth: 512,\n\t},\n\tbullhorn: {\n\t\taliases: ['announcement', 'megaphone', 'promote'],\n\t\tcategories: ['communication', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M466.2 18.3c8.4 4 13.8 12.4 13.8 21.7l0 432c0 9.3-5.4 17.7-13.8 21.7s-18.3 2.7-25.5-3.2l-56.2-46.3c-41.2-34-91.7-54.5-144.5-59.2l0 79c0 26.5-21.5 48-48 48l-48 0c-26.5 0-48-21.5-48-48l0-84C40.8 365.8 0 315.6 0 256 0 185.3 57.3 128 128 128l89.4 0c61-.2 120-21.4 167.1-60.2l56.2-46.3c7.2-5.9 17.1-7.1 25.5-3.2zM240 336l0 .9c64 4.8 125.2 29.2 175 70.3l17 14 0-330.3-17 14c-49.8 41-111 65.5-175 70.3L240 336zm-48 48l-48 0 0 80 48 0 0-80zM128 176c-44.2 0-80 35.8-80 80s35.8 80 80 80l64 0 0-160-64 0z',\n\t\twidth: 512,\n\t},\n\tcalendarDays: {\n\t\taliases: ['date', 'schedule', 'calendar'],\n\t\tcategories: ['data', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M120 0c13.3 0 24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24zM384 432c8.8 0 16-7.2 16-16l0-64-88 0 0 80 72 0zm16-128l0-80-88 0 0 80 88 0zm-136 0l0-80-80 0 0 80 80 0zm-128 0l0-80-88 0 0 80 88 0zM48 352l0 64c0 8.8 7.2 16 16 16l72 0 0-80-88 0zm136 0l0 80 80 0 0-80-80 0zM120 112l-56 0c-8.8 0-16 7.2-16 16l0 48 352 0 0-48c0-8.8-7.2-16-16-16l-264 0z',\n\t\twidth: 448,\n\t},\n\tcaretDown: {\n\t\taliases: ['dropdown', 'expand'],\n\t\tcategories: ['arrows'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M140.3 376.8c12.6 10.2 31.1 9.5 42.8-2.2l128-128c9.2-9.2 11.9-22.9 6.9-34.9S301.4 192 288.5 192l-256 0c-12.9 0-24.6 7.8-29.6 19.8S.7 237.5 9.9 246.6l128 128 2.4 2.2z',\n\t\twidth: 320,\n\t},\n\tcaretLeft: {\n\t\taliases: [],\n\t\tcategories: ['arrows'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M7.7 235.8c-10.3 12.6-9.5 31.1 2.2 42.8l128 128c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-256c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-128 128-2.2 2.4z',\n\t\twidth: 256,\n\t},\n\tcaretRight: {\n\t\taliases: [],\n\t\tcategories: ['arrows'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M249.3 235.8c10.2 12.6 9.5 31.1-2.2 42.8l-128 128c-9.2 9.2-22.9 11.9-34.9 6.9S64.5 396.9 64.5 384l0-256c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l128 128 2.2 2.4z',\n\t\twidth: 256,\n\t},\n\tcaretUp: {\n\t\taliases: ['collapse'],\n\t\tcategories: ['arrows'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M140.3 135.2c12.6-10.3 31.1-9.5 42.8 2.2l128 128c9.2 9.2 11.9 22.9 6.9 34.9S301.4 320 288.5 320l-256 0c-12.9 0-24.6-7.8-29.6-19.8S.7 274.5 9.9 265.4l128-128 2.4-2.2z',\n\t\twidth: 320,\n\t},\n\tccAmex: {\n\t\taliases: [],\n\t\tcategories: ['financial'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M0 432c0 26.5 21.5 48 48 48l480 0c26.5 0 48-21.5 48-48l0-1.1-61.7 0-31.9-35.1-31.9 35.1-203.7 0 0-163.8-65.8 0 81.7-184.7 78.6 0 28.1 63.2 0-63.2 97.2 0 16.9 47.6 17-47.6 75.5 0 0-2.4c0-26.5-21.5-48-48-48L48 32C21.5 32 0 53.5 0 80L0 432zm440.4-21.7l42.2-46.3 42 46.3 51.4 0-68-72.1 68-72.1-50.6 0-42 46.7-41.5-46.7-51.4 0 67.5 72.5-67.4 71.6 0-33.1-83 0 0-22.2 80.9 0 0-32.3-80.9 0 0-22.4 83 0 0-33.1-122 0 0 143.2 171.8 0zm96.3-72l39.3 41.9 0-83.3-39.3 41.4zm-36.3-92l36.9-100.6 0 100.6 38.7 0 0-143.3-60.2 0-32.2 89.3-31.9-89.3-61.2 0 0 143.1-63.2-143.1-51.2 0-62.4 143.3 43 0 11.9-28.7 65.9 0 12 28.7 82.7 0 0-100.3 36.8 100.3 34.4 0zM282 185.4l19.5-46.9 19.4 46.9-38.9 0z',\n\t\twidth: 576,\n\t},\n\tccApplePay: {\n\t\taliases: [],\n\t\tcategories: ['financial'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M302.2 218.4c0 17.2-10.5 27.1-29 27.1l-24.3 0 0-54.2 24.4 0c18.4 0 28.9 9.8 28.9 27.1zM349.7 281c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9l0-7.7-23.5 1.5c-13.3 .9-20.2 5.8-20.2 14.4zM576 79l0 352c0 26.5-21.5 48-48 48L48 479c-26.5 0-48-21.5-48-48L0 79C0 52.5 21.5 31 48 31l480 0c26.5 0 48 21.5 48 48zM127.8 197.2c8.4 .7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4 .3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5 .2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8l-51.2 0 0 136.4 21.2 0 0-46.6 29.3 0c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5l19.1 0c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2l0 7.5-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4l.4 0 0 16.4 19.6 0 0-68 .1 0zM516 210.9l-21.5 0-24.9 80.6-.4 0-24.9-80.6-22.3 0 35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3l0 16.4c1.2 .4 6.5 .5 8.1 .5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z',\n\t\twidth: 576,\n\t},\n\tccDiscover: {\n\t\taliases: [],\n\t\tcategories: ['financial'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M520.4 196.1c0-7.9-5.5-12.1-15.6-12.1l-4.9 0 0 24.9 4.7 0c10.3 0 15.8-4.4 15.8-12.8zM528 32L48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l480 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48zM483.9 170.9c22.6 0 52.9-4.1 52.9 24.4 0 12.6-6.6 20.7-18.7 23.2l25.8 34.4-19.6 0-22.2-32.8-2.2 0 0 32.8-16 0 0-82zM428 171l45.3 0 0 14-29.3 0 0 18.2 28.3 0 0 13.8-28.3 0 0 22.2 29.3 0 0 13.8-45.3 0 0-82zm-68.7 0l21.9 55.2 22.2-55.2 17.5 0-35.5 84.2-8.6 0-35-84.2 17.5 0zm-55.9 86.2a44.6 44.6 0 1 1 0-89.2 44.6 44.6 0 1 1 0 89.2zm-49.3-83.1l0 19c-20.1-20.1-46.8-4.7-46.8 19 0 25 27.5 38.5 46.8 19.2l0 19c-29.7 14.3-63.3-5.7-63.3-38.2 0-31.2 33.1-53 63.3-38zm-97.2 66.3c11.4 0 22.4-15.3-3.3-24.4-15-5.5-20.2-11.4-20.2-22.7 0-23.2 30.6-31.4 49.7-14.3l-8.4 10.8c-10.4-11.6-24.9-6.2-24.9 2.5 0 4.4 2.7 6.9 12.3 10.3 18.2 6.6 23.6 12.5 23.6 25.6 0 29.5-38.8 37.4-56.6 11.3l10.3-9.9c3.7 7.1 9.9 10.8 17.5 10.8zM55.4 253l-23.4 0 0-82 23.4 0c26.1 0 44.1 17 44.1 41.1 0 18.5-13.2 40.9-44.1 40.9zm67.5 0l-16 0 0-82 16 0 0 82zM544 433c0 8.2-6.8 15-15 15l-401 0c189.6-35.6 382.7-139.2 416-160l0 145zM74.1 191.6c-5.2-4.9-11.6-6.6-21.9-6.6l-4.2 0 0 54.2 4.2 0c10.3 0 17-2 21.9-6.4 5.7-5.2 8.9-12.8 8.9-20.7s-3.2-15.5-8.9-20.5z',\n\t\twidth: 576,\n\t},\n\tccGeneric: {\n\t\taliases: ['credit card', 'payment', 'card'],\n\t\tcategories: ['financial'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M448 112c8.8 0 16 7.2 16 16l0 32-416 0 0-32c0-8.8 7.2-16 16-16l384 0zm16 112l0 160c0 8.8-7.2 16-16 16L64 400c-8.8 0-16-7.2-16-16l0-160 416 0zM64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM80 344c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm144 0c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0c-13.3 0-24 10.7-24 24z',\n\t\twidth: 512,\n\t},\n\tccMC: {\n\t\taliases: ['mastercard'],\n\t\tcategories: ['financial'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7s4.4-11.7 11.2-11.7c6.6 0 11.2 5.2 11.2 11.7zM172.1 398.6c-7.1 0-11.2 5.2-11.2 11.7S165 422 172.1 422c6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7l19.1 0c-.9-5.7-4.4-8.7-9.6-8.7zm107.8 .3c-6.8 0-10.9 5.2-10.9 11.7s4.1 11.7 10.9 11.7 11.2-4.9 11.2-11.7c0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3 .3 .5 .3 1.1 0 .3-.3 .5-.3 1.1-.3 .3-.3 .5-.5 .8-.3 .3-.5 .5-1.1 .5-.3 .3-.5 .3-1.1 .3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8 .3-1.1 0-.5 .3-.8 .5-1.1 .3-.3 .5-.3 .8-.5 .5-.3 .8-.3 1.1-.3 .5 0 .8 0 1.1 .3 .5 .3 .8 .3 1.1 .5s.2 .6 .5 1.1zm-2.2 1.4c.5 0 .5-.3 .8-.3 .3-.3 .3-.5 .3-.8s0-.5-.3-.8c-.3 0-.5-.3-1.1-.3l-1.6 0 0 3.5 .8 0 0-1.4 .3 0 1.1 1.4 .8 0-1.1-1.3zM576 81l0 352c0 26.5-21.5 48-48 48L48 481c-26.5 0-48-21.5-48-48L0 81C0 54.5 21.5 33 48 33l480 0c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zM288 329.4c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zM145.7 405.7c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4l0-4.4-8.2 0 0 36.7 8.2 0c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2l7.9 0c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2l8.2 0 0-23-.2 0zM190.6 392l-7.9 0 0 4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4l0 4.6 7.9 0 0-36.8zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7 .8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1l0-16.6 13.1 0 0-7.4-13.1 0 0-11.2-8.2 0 0 11.2-7.6 0 0 7.3 7.6 0 0 16.7c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4l27.5 0c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zM338.9 392c-4.6-2-11.6-1.8-15.2 4.4l0-4.4-8.2 0 0 36.7 8.2 0 0-20.7c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zM416.2 392l-8.2 0 0 4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9l0 4.6 8.2 0 0-36.8zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4l0-4.4-7.9 0 0 36.7 7.9 0 0-20.7c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9l-7.9 0 0 19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9l0 4.6 7.9 0 0-51.7zm7.6-75.1l0 4.6 .8 0 0-4.6 1.9 0 0-.8-4.6 0 0 .8 1.9 0zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1s-.8-.5-1.1-.8c-.5 0-1.1-.3-1.6-.3-.3 0-.8 .3-1.4 .3-.5 .3-.8 .5-1.1 .8-.5 .3-.8 .8-.8 1.1-.3 .5-.3 1.1-.3 1.6 0 .3 0 .8 .3 1.4 0 .3 .3 .8 .8 1.1 .3 .3 .5 .5 1.1 .8 .5 .3 1.1 .3 1.4 .3 .5 0 1.1 0 1.6-.3 .3-.3 .8-.5 1.1-.8s.5-.8 .8-1.1c.3-.6 .3-1.1 .3-1.4zm3.2-124.7l-1.4 0-1.6 3.5-1.6-3.5-1.4 0 0 5.4 .8 0 0-4.1 1.6 3.5 1.1 0 1.4-3.5 0 4.1 1.1 0 0-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4 .1 138.5-61.9 138.5-138.4z',\n\t\twidth: 576,\n\t},\n\tccPaypal: {\n\t\taliases: [],\n\t\tcategories: ['financial'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7l-4.7 0c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0l-4.5 0c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l480 0c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28l-40 0c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4l19 0c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8l-19 0c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4l17.2 0c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zM253 322.1l63.7-92.6c.5-.5 .5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5l-19.2 0c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4l-18.7 0c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2l19.2 0c1.8-.1 3.5-1.1 4.5-2.6zM412.3 215.4c0-21-16.2-28-34.7-28l-39.7 0c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4l20.5 0c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8l-19 0c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4l17.3 0c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zM544 190.9c0-2-1.5-3.5-3.2-3.5l-18.5 0c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3 .5c0 1.8 1.5 3.5 3.5 3.5l16.5 0c2.5 0 5-2.9 5.2-5.7l16.2-101.2 0-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5 .1-9.8-6.9-15.5-16.2-15.5z',\n\t\twidth: 576,\n\t},\n\tccVisa: {\n\t\taliases: [],\n\t\tcategories: ['financial'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M470.1 231.3s7.6 37.2 9.3 45l-33.4 0c3.3-8.9 16-43.5 16-43.5-.2 .3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l480 0c26.5 0 48 21.5 48 48zM152.5 331.2l63.2-155.2-42.5 0-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1l-64.7 0-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135 42.5 0zm94.4 .2l25.2-155.4-40.2 0-25.1 155.4 40.1 0zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2 .2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2 .1 69.7-20.8 70-53zM528 331.4l-32.4-155.4-31.1 0c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5 42.2 0s6.9-19.2 8.4-23.3l51.6 0c1.2 5.5 4.8 23.3 4.8 23.3l37.2 0z',\n\t\twidth: 576,\n\t},\n\tchartLine: {\n\t\taliases: ['graph', 'analytics', 'trend'],\n\t\tcategories: ['data'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M48 56c0-13.3-10.7-24-24-24S0 42.7 0 56L0 400c0 44.2 35.8 80 80 80l408 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L80 432c-17.7 0-32-14.3-32-32L48 56zM473 169c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-119 119-79-79c-9.4-9.4-24.6-9.4-33.9 0L103 279c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l87-87 79 79c9.4 9.4 24.6 9.4 33.9 0L473 169z',\n\t\twidth: 512,\n\t},\n\tchartNetwork: {\n\t\taliases: ['network', 'topology'],\n\t\tcategories: ['data'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M224 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0 88c1.1 0 2.2 0 3.3-.1l26.9 57.6c-31.3 21.7-53.7 55.4-60.2 94.5l-70.6 0c-9.5-23.5-32.5-40-59.3-40-35.3 0-64 28.7-64 64s28.7 64 64 64c26.9 0 49.9-16.5 59.3-40l70.6 0c11.4 68.1 70.7 120 142 120 43.8 0 83-19.5 109.4-50.4l67.4 40.4c-.5 3.2-.8 6.6-.8 9.9 0 35.3 28.7 64 64 64s64-28.7 64-64-28.7-64-64-64c-14.5 0-27.8 4.8-38.5 12.9l-67.3-40.4c6.4-16.3 9.9-34 9.9-52.5 0-23.2-5.5-45.2-15.3-64.6l77.6-56.9c9.8 6.1 21.3 9.6 33.7 9.6 35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64c0 5.4 .7 10.7 1.9 15.7l-77.6 56.9c-25.9-25.2-61.3-40.7-100.3-40.7-13.3 0-26.1 1.8-38.3 5.2l-26.9-57.5C281.5 96.2 288 80.9 288 64 288 28.7 259.3 0 224 0s-64 28.7-64 64 28.7 64 64 64zm352-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM552 448a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 280a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm272-72a96 96 0 1 1 0 192 96 96 0 1 1 0-192z',\n\t\twidth: 640,\n\t},\n\tchartSimple: {\n\t\taliases: ['bar chart', 'analytics', 'stats'],\n\t\tcategories: ['data'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M304 80l0 352-48 0 0-352 48 0zM256 32c-26.5 0-48 21.5-48 48l0 352c0 26.5 21.5 48 48 48l48 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48l-48 0zM112 272l0 160-48 0 0-160 48 0zM64 224c-26.5 0-48 21.5-48 48l0 160c0 26.5 21.5 48 48 48l48 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48l-48 0zm384-80l48 0 0 288-48 0 0-288zm-48 0l0 288c0 26.5 21.5 48 48 48l48 0c26.5 0 48-21.5 48-48l0-288c0-26.5-21.5-48-48-48l-48 0c-26.5 0-48 21.5-48 48z',\n\t\twidth: 576,\n\t},\n\tcheck: {\n\t\taliases: ['confirm', 'done', 'complete', 'checkmark'],\n\t\tcategories: ['actions', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M438 68.5c10.8 7.7 13.2 22.7 5.5 33.5l-264 368c-4.1 5.7-10.5 9.4-17.5 9.9S148 478 143 473L7 337c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L157 419 404.5 74c7.7-10.8 22.7-13.2 33.5-5.5z',\n\t\twidth: 448,\n\t},\n\tcircle: {\n\t\taliases: ['dot', 'bullet'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z',\n\t\twidth: 512,\n\t},\n\tcircleCheck: {\n\t\taliases: ['success', 'verified', 'approved'],\n\t\tcategories: ['status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zm0-464a208 208 0 1 0 0 416 208 208 0 1 0 0-416zm70.7 121.9c7.8-10.7 22.8-13.1 33.5-5.3 10.7 7.8 13.1 22.8 5.3 33.5L243.4 366.1c-4.1 5.7-10.5 9.3-17.5 9.8-7 .5-13.9-2-18.8-6.9l-55.9-55.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l36 36 105.6-145.2z',\n\t\twidth: 512,\n\t},\n\tcircleExclamation: {\n\t\taliases: ['warning', 'error', 'alert'],\n\t\tcategories: ['status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zm0-464a208 208 0 1 0 0 416 208 208 0 1 0 0-416zm0 336a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0-256c18.2 0 32.7 15.5 31.4 33.7l-7.4 104c-.9 12.6-11.4 22.3-23.9 22.3-12.6 0-23-9.7-23.9-22.3l-7.4-104C223.3 143.5 237.8 128 256 128z',\n\t\twidth: 512,\n\t},\n\tcircleInfo: {\n\t\taliases: ['info', 'information', 'about'],\n\t\tcategories: ['status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM216 336c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-88c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 64-24 0zm40-144a32 32 0 1 0 0-64 32 32 0 1 0 0 64z',\n\t\twidth: 512,\n\t},\n\tcircleMinus: {\n\t\taliases: ['remove', 'subtract'],\n\t\tcategories: ['status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM168 232c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0z',\n\t\twidth: 512,\n\t},\n\tcircleNotch: {\n\t\taliases: ['loading', 'spinner'],\n\t\tcategories: ['objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M223.2 25C226.4 37.9 218.6 50.9 205.7 54.1 115.1 76.6 48 158.5 48 256 48 370.9 141.1 464 256 464s208-93.1 208-208c0-97.5-67.1-179.4-157.7-201.9-12.9-3.2-20.7-16.2-17.5-29.1S305 4.3 317.9 7.5C429.4 35.2 512 135.9 512 256 512 397.4 397.4 512 256 512S0 397.4 0 256C0 135.9 82.6 35.2 194.1 7.5 207 4.3 220 12.2 223.2 25z',\n\t\twidth: 512,\n\t},\n\tcirclePlus: {\n\t\taliases: ['add', 'create', 'new'],\n\t\tcategories: ['status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM232 344c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 64z',\n\t\twidth: 512,\n\t},\n\tcircleQuestion: {\n\t\taliases: ['help', 'faq', 'support'],\n\t\tcategories: ['status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256-80c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 47.2-36 67.2-56 74.5l0 3.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8.1c0-20.5 14.8-35.2 30.1-40.2 6.4-2.1 13.2-5.5 18.2-10.3 4.3-4.2 7.7-10 7.7-19.6 0-17.7-14.3-32-32-32zM224 368a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z',\n\t\twidth: 512,\n\t},\n\tcircleUser: {\n\t\taliases: ['avatar', 'profile', 'account'],\n\t\tcategories: ['users'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M406.5 399.6C387.4 352.9 341.5 320 288 320l-64 0c-53.5 0-99.4 32.9-118.5 79.6-35.6-37.3-57.5-87.9-57.5-143.6 0-114.9 93.1-208 208-208s208 93.1 208 208c0 55.7-21.9 106.2-57.5 143.6zm-40.1 32.7C334.4 452.4 296.6 464 256 464s-78.4-11.6-110.5-31.7c7.3-36.7 39.7-64.3 78.5-64.3l64 0c38.8 0 71.2 27.6 78.5 64.3zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-272a40 40 0 1 1 0-80 40 40 0 1 1 0 80zm-88-40a88 88 0 1 0 176 0 88 88 0 1 0 -176 0z',\n\t\twidth: 512,\n\t},\n\tcircleXmark: {\n\t\taliases: ['error', 'failed', 'denied'],\n\t\tcategories: ['status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM167 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z',\n\t\twidth: 512,\n\t},\n\tcloud: {\n\t\taliases: ['hosting', 'server'],\n\t\tcategories: ['development', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M80 192c0-88.4 71.6-160 160-160 47.1 0 89.4 20.4 118.7 52.7 10.6-3.1 21.8-4.7 33.3-4.7 66.3 0 120 53.7 120 120 0 13.2-2.1 25.9-6.1 37.8 41.6 21.1 70.1 64.3 70.1 114.2 0 70.7-57.3 128-128 128l-304 0c-79.5 0-144-64.5-144-144 0-56.8 32.9-105.9 80.7-129.4-.4-4.8-.7-9.7-.7-14.6zM240 80c-61.9 0-112 50.1-112 112 0 8.4 .9 16.6 2.7 24.5 2.7 12.1-4.3 24.3-16.1 28.1-38.7 12.4-66.6 48.7-66.6 91.4 0 53 43 96 96 96l304 0c44.2 0 80-35.8 80-80 0-37.4-25.7-68.9-60.5-77.6-7.5-1.9-13.6-7.2-16.5-14.3s-2.1-15.2 2-21.7c7-11.1 11-24.2 11-38.3 0-39.8-32.2-72-72-72-11.1 0-21.5 2.5-30.8 6.9-10.5 5-23.1 1.7-29.8-7.8-20.3-28.6-53.7-47.1-91.3-47.1z',\n\t\twidth: 576,\n\t},\n\tcloudArrowDown: {\n\t\taliases: ['download'],\n\t\tcategories: ['development', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M240 32c-88.4 0-160 71.6-160 160 0 4.9 .2 9.8 .7 14.6-47.8 23.4-80.7 72.5-80.7 129.4 0 79.5 64.5 144 144 144l304 0c70.7 0 128-57.3 128-128 0-49.9-28.5-93-70.1-114.2 4-11.9 6.1-24.6 6.1-37.8 0-66.3-53.7-120-120-120-11.5 0-22.7 1.6-33.3 4.7-29.3-32.3-71.6-52.7-118.7-52.7zM128 192c0-61.9 50.1-112 112-112 37.7 0 71 18.6 91.3 47.1 6.7 9.5 19.3 12.8 29.8 7.8 9.3-4.4 19.7-6.9 30.8-6.9 39.8 0 72 32.2 72 72 0 14.1-4 27.2-11 38.3-4.1 6.5-4.8 14.6-2 21.7s9 12.5 16.5 14.3c34.8 8.7 60.5 40.2 60.5 77.6 0 44.2-35.8 80-80 80l-304 0c-53 0-96-43-96-96 0-42.7 27.9-79 66.6-91.4 11.8-3.8 18.8-16 16.1-28.1-1.8-7.9-2.7-16.1-2.7-24.5zM305 377l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23 0-86.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 86.1-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0z',\n\t\twidth: 576,\n\t},\n\tcloudArrowUp: {\n\t\taliases: ['deploy', 'upload', 'publish'],\n\t\tcategories: ['development', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M240 32c-88.4 0-160 71.6-160 160 0 4.9 .2 9.8 .7 14.6-47.8 23.4-80.7 72.5-80.7 129.4 0 79.5 64.5 144 144 144l304 0c70.7 0 128-57.3 128-128 0-49.9-28.5-93-70.1-114.2 4-11.9 6.1-24.6 6.1-37.8 0-66.3-53.7-120-120-120-11.5 0-22.7 1.6-33.3 4.7-29.3-32.3-71.6-52.7-118.7-52.7zM128 192c0-61.9 50.1-112 112-112 37.7 0 71 18.6 91.3 47.1 6.7 9.5 19.3 12.8 29.8 7.8 9.3-4.4 19.7-6.9 30.8-6.9 39.8 0 72 32.2 72 72 0 14.1-4 27.2-11 38.3-4.1 6.5-4.8 14.6-2 21.7s9 12.5 16.5 14.3c34.8 8.7 60.5 40.2 60.5 77.6 0 44.2-35.8 80-80 80l-304 0c-53 0-96-43-96-96 0-42.7 27.9-79 66.6-91.4 11.8-3.8 18.8-16 16.1-28.1-1.8-7.9-2.7-16.1-2.7-24.5zm177 7c-9.4-9.4-24.6-9.4-33.9 0l-64 64c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l23-23 0 86.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-86.1 23 23c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-64-64z',\n\t\twidth: 576,\n\t},\n\tcloudPlus: {\n\t\taliases: ['add cloud', 'new environment'],\n\t\tcategories: ['development', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M240 32c-88.4 0-160 71.6-160 160 0 4.9 .2 9.8 .7 14.6-47.8 23.4-80.7 72.5-80.7 129.4 0 79.5 64.5 144 144 144l304 0c70.7 0 128-57.3 128-128 0-49.9-28.5-93-70.1-114.2 4-11.9 6.1-24.6 6.1-37.8 0-66.3-53.7-120-120-120-11.5 0-22.7 1.6-33.3 4.7-29.3-32.3-71.6-52.7-118.7-52.7zM128 192c0-61.9 50.1-112 112-112 37.7 0 71 18.6 91.3 47.1 6.7 9.5 19.3 12.8 29.8 7.8 9.3-4.4 19.7-6.9 30.8-6.9 39.8 0 72 32.2 72 72 0 14.1-4 27.2-11 38.3-4.1 6.5-4.8 14.6-2 21.7s9 12.5 16.5 14.3c34.8 8.7 60.5 40.2 60.5 77.6 0 44.2-35.8 80-80 80l-304 0c-53 0-96-43-96-96 0-42.7 27.9-79 66.6-91.4 11.8-3.8 18.8-16 16.1-28.1-1.8-7.9-2.7-16.1-2.7-24.5zm160 0c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z',\n\t\twidth: 576,\n\t},\n\tcode: {\n\t\taliases: ['source', 'html', 'develop'],\n\t\tcategories: ['development'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M337.1 16.9c3.9-12.7 17.4-19.7 30-15.8s19.7 17.4 15.8 30l-144 464c-3.9 12.7-17.4 19.7-30 15.8s-19.7-17.4-15.8-30l144-464zM145 135c9.4 9.4 9.4 24.6 0 33.9l-87 87 87 87c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L111 135c9.4-9.4 24.6-9.4 33.9 0zM431 135c9.4-9.4 24.6-9.4 33.9 0L569 239c9.4 9.4 9.4 24.6 0 33.9L465 377c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l87-87-87-87c-9.4-9.4-9.4-24.6 0-33.9z',\n\t\twidth: 576,\n\t},\n\tcodeBranch: {\n\t\taliases: ['branch', 'git branch', 'fork'],\n\t\tcategories: ['development'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M80 112a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm80-32c0 35.8-23.5 66.1-56 76.3l0 75.7 184 0c30.9 0 56-25.1 56-56l0-19.7c-32.5-10.2-56-40.5-56-76.3 0-44.2 35.8-80 80-80s80 35.8 80 80c0 35.8-23.5 66.1-56 76.3l0 19.7c0 57.4-46.6 104-104 104l-184 0 0 75.7c32.5 10.2 56 40.5 56 76.3 0 44.2-35.8 80-80 80S0 476.2 0 432c0-35.8 23.5-66.1 56-76.3l0-199.3C23.5 146.1 0 115.8 0 80 0 35.8 35.8 0 80 0s80 35.8 80 80zm240 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM80 464a32 32 0 1 0 0-64 32 32 0 1 0 0 64z',\n\t\twidth: 448,\n\t},\n\tcodeMerge: {\n\t\taliases: ['merge', 'git merge', 'pull request'],\n\t\tcategories: ['development'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M80 48a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm24.7 108.1C136.8 145.7 160 115.6 160 80 160 35.8 124.2 0 80 0S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3l0 199.3c-32.5 10.2-56 40.5-56 76.3 0 44.2 35.8 80 80 80s80-35.8 80-80c0-35.8-23.5-66.1-56-76.3l0-100.8c27.2 25.5 63.8 41.1 104 41.1l83.7 0c10.2 32.5 40.5 56 76.3 56 44.2 0 80-35.8 80-80s-35.8-80-80-80c-35.8 0-66.1 23.5-76.3 56L208 248c-53.3 0-97.3-40.2-103.3-91.9zM80 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM336 272a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z',\n\t\twidth: 448,\n\t},\n\tcommand: {\n\t\taliases: ['cmd', 'keyboard'],\n\t\tcategories: ['development'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M96 192l48 0 0 128-48 0c-53 0-96 43-96 96s43 96 96 96 96-43 96-96l0-48 128 0 0 48c0 53 43 96 96 96s96-43 96-96-43-96-96-96l-48 0 0-128 48 0c53 0 96-43 96-96s-43-96-96-96-96 43-96 96l0 48-128 0 0-48c0-53-43-96-96-96S0 43 0 96 43 192 96 192zM256 320l-64 0 0-128 128 0 0 128-64 0zM96 144c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48l0 48-48 0zm48 272c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48l48 0 0 48zM368 144l0-48c0-26.5 21.5-48 48-48s48 21.5 48 48-21.5 48-48 48l-48 0zm48 224c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48l0-48 48 0z',\n\t\twidth: 512,\n\t},\n\tcomment: {\n\t\taliases: ['message', 'chat', 'speech bubble'],\n\t\tcategories: ['communication', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M51.9 384.9C19.3 344.6 0 294.4 0 240 0 107.5 114.6 0 256 0S512 107.5 512 240 397.4 480 256 480c-36.5 0-71.2-7.2-102.6-20L37 509.9c-3.7 1.6-7.5 2.1-11.5 2.1-14.1 0-25.5-11.4-25.5-25.5 0-4.3 1.1-8.5 3.1-12.2l48.8-89.4zm37.3-30.2c12.2 15.1 14.1 36.1 4.8 53.2l-18 33.1 58.5-25.1c11.8-5.1 25.2-5.2 37.1-.3 25.7 10.5 54.2 16.4 84.3 16.4 117.8 0 208-88.8 208-192S373.8 48 256 48 48 136.8 48 240c0 42.8 15.1 82.4 41.2 114.7z',\n\t\twidth: 512,\n\t},\n\tcopy: {\n\t\taliases: ['duplicate', 'clipboard', 'paste'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M384 336l-192 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l133.5 0c4.2 0 8.3 1.7 11.3 4.7l58.5 58.5c3 3 4.7 7.1 4.7 11.3L400 320c0 8.8-7.2 16-16 16zM192 384l192 0c35.3 0 64-28.7 64-64l0-197.5c0-17-6.7-33.3-18.7-45.3L370.7 18.7C358.7 6.7 342.5 0 325.5 0L192 0c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-16-48 0 0 16c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l16 0 0-48-16 0z',\n\t\twidth: 448,\n\t},\n\tdesktop: {\n\t\taliases: ['monitor', 'screen', 'computer'],\n\t\tcategories: ['media'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M448 80c8.8 0 16 7.2 16 16l0 176-416 0 0-176c0-8.8 7.2-16 16-16l384 0zm16 240l0 32c0 8.8-7.2 16-16 16L64 368c-8.8 0-16-7.2-16-16l0-32 416 0zM64 32C28.7 32 0 60.7 0 96L0 352c0 35.3 28.7 64 64 64l115.7 0-8 48-51.7 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-51.7 0-8-48 115.7 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 32zM220.3 464l8-48 55.3 0 8 48-71.3 0z',\n\t\twidth: 512,\n\t},\n\tdiamondExclamation: {\n\t\taliases: ['critical', 'danger', 'error'],\n\t\tcategories: ['status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M256 0c15.4 0 30.1 6.1 41 17L495 215c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41L297 495c-10.9 10.9-25.6 17-41 17s-30.1-6.1-41-17L17 297C6.1 286.1 0 271.4 0 256s6.1-30.1 17-41L215 17C225.9 6.1 240.6 0 256 0zm0 48c-2.6 0-5.2 1-7 2.9L50.9 249c-1.9 1.9-2.9 4.4-2.9 7s1 5.2 2.9 7L249 461.1c1.9 1.9 4.4 2.9 7 2.9s5.2-1 7-2.9L461.1 263c1.9-1.9 2.9-4.4 2.9-7s-1-5.2-2.9-7L263 50.9c-1.9-1.9-4.4-2.9-7-2.9zm0 336a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0-256c18.2 0 32.7 15.5 31.4 33.7l-7.4 104c-.9 12.6-11.4 22.3-23.9 22.3-12.6 0-23-9.7-23.9-22.3l-7.4-104C223.3 143.5 237.8 128 256 128z',\n\t\twidth: 512,\n\t},\n\tdiamonds4: {\n\t\taliases: [],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M345.1 133c18.7-18.7 18.7-49.1 0-67.9L297 17C286.1 6.1 271.4 0 256 0s-30.1 6.1-41 17L166.9 65.1c-18.7 18.7-18.7 49.1 0 67.9l55.1 55.1c18.7 18.7 49.1 18.7 67.9 0L345.1 133zM249 50.9c1.9-1.9 4.4-2.9 7-2.9s5.2 1 7 2.9L311.1 99 256 154.2 200.9 99 249 50.9zm-116 116c-18.7-18.7-49.1-18.7-67.9 0L17 215C6.1 225.9 0 240.6 0 256s6.1 30.1 17 41l48.1 48.1c18.7 18.7 49.1 18.7 67.9 0l55.1-55.1c18.7-18.7 18.7-49.1 0-67.9L133 166.9zM50.9 249l48.1-48.1 55.1 55.1-55.1 55.1-48.1-48.1 0 0c-1.9-1.9-2.9-4.4-2.9-7s1-5.2 2.9-7zM200.9 413L256 357.8 311.1 413 263 461.1c-1.9 1.9-4.4 2.9-7 2.9s-5.2-1-7-2.9L200.9 413zm89.1-89.1c-18.7-18.7-49.1-18.7-67.9 0L166.9 379c-18.7 18.7-18.7 49.1 0 67.9L215 495c10.9 10.9 25.6 17 41 17s30.1-6.1 41-17l48.1-48.1c18.7-18.7 18.7-49.1 0-67.9l-55.1-55.1zm157-157c-18.7-18.7-49.1-18.7-67.9 0l-55.1 55.1c-18.7 18.7-18.7 49.1 0 67.9L379 345.1c18.7 18.7 49.1 18.7 67.9 0L495 297c10.9-10.9 17-25.6 17-41s-6.1-30.1-17-41l-48.1-48.1zM461.1 249c1.9 1.9 2.9 4.4 2.9 7s-1 5.2-2.9 7L413 311.1 357.8 256 413 200.9 461.1 249z',\n\t\twidth: 512,\n\t},\n\tdiscourse: {\n\t\taliases: [],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2C348.6 479.8 448 377.5 448 255.9S348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392 111.4 317c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z',\n\t\twidth: 448,\n\t},\n\tdisplay: {\n\t\taliases: ['monitor', 'screen'],\n\t\tcategories: ['media'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 80c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64l-115.7 0 8 48 51.7 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-272 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l51.7 0 8-48-115.7 0c-35.3 0-64-28.7-64-64L0 96zM228.3 416l-8 48 71.3 0-8-48-55.3 0z',\n\t\twidth: 512,\n\t},\n\tdollarSign: {\n\t\taliases: ['money', 'price', 'currency', 'cost'],\n\t\tcategories: ['data', 'financial'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M136 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-130 0c-29.8 0-54 24.2-54 54 0 26.4 19.1 48.9 45.1 53.2l106.1 17.7c51.3 8.5 88.8 52.9 88.8 104.8 0 58.7-47.6 106.3-106.3 106.3l-13.7 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l141.7 0c32.2 0 58.3-26.1 58.3-58.3 0-28.5-20.6-52.8-48.7-57.5L101.2 266.5C52 258.3 16 215.8 16 166 16 109.6 61.6 64 118 64l18 0 0-40z',\n\t\twidth: 320,\n\t},\n\tdownload: {\n\t\taliases: ['save', 'export'],\n\t\tcategories: ['actions', 'development'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M248 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 246.1-63-63c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L207 345c9.4 9.4 24.6 9.4 33.9 0L345 241c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-63 63 0-246.1zM66.2 272L64 272c-35.3 0-64 28.7-64 64l0 80c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-80c0-35.3-28.7-64-64-64l-2.2 0-48 48 50.2 0c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16l50.2 0-48-48zM368 376a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z',\n\t\twidth: 448,\n\t},\n\tdrupal: {\n\t\taliases: [],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M272.3 108.1C236.5 72.5 202.5 38.4 192.4 0 182.4 38.4 148.1 72.5 112.4 108.1 58.8 161.7-1.9 222.4-1.9 313.4-4.3 420.7 80.8 509.6 188.1 512s196.2-82.8 198.5-190.1c.1-2.8 .1-5.6 0-8.5 0-91.1-60.8-151.7-114.3-205.3zM98 331.1c-5.9 7.5-11 15.6-15.2 24.2-.3 .7-.8 1.3-1.3 1.8s-1.2 .8-2 1l-1.7 0c-4.3 0-9.2-8.5-9.2-8.5-1.3-2-2.5-4.2-3.7-6.4l-.8-1.8c-11.2-25.7-1.5-62.3-1.5-62.3 4.8-17.8 12.7-34.7 23.2-49.9 6.4-9.6 13.5-18.9 21-27.7l9.2 9.2 43.5 44.4c.8 .9 1.3 2.1 1.3 3.3s-.5 2.4-1.3 3.3L114.1 312.3 98 331.1zm96.6 127.3c-12.9-.1-25.6-3.9-36.4-11s-19.4-17.1-24.6-28.9-7-24.9-5-37.7 7.6-24.7 16.2-34.4c14.2-16.9 31.5-33.5 50.3-55.3 22.3 23.8 36.9 40.1 51.2 58 1.1 1.4 2.1 2.9 3 4.4 7.8 11.1 12 24.4 12 38 0 8.8-1.7 17.4-5 25.5s-8.2 15.5-14.4 21.7-13.5 11.1-21.6 14.5-16.7 5.1-25.5 5.1l-.2 0zM320.7 351.6c-.4 1.4-1.2 2.6-2.3 3.6s-2.4 1.6-3.8 1.8l-1.3 0c-2.6-.9-4.9-2.7-6.3-5.1-11.6-17.5-24.9-33.9-39.5-49l-17.8-18.4-59.1-61.3c-12.4-11.5-24.2-23.6-35.4-36.3-.3-.5-.6-.9-.9-1.4-2-2.8-3.6-5.9-4.7-9.2l0-1.8c-.8-5-.4-10.1 1.2-15s4.4-9.2 8-12.7c11.4-11.4 23-23 33.8-34.9 12 13.3 24.8 26 37.4 38.6 25.8 24 49.1 50.5 69.6 79.1 17.3 24.5 26.7 53.8 27 83.8-.1 12.9-2.2 25.8-6 38.2z',\n\t\twidth: 384,\n\t},\n\tellipsis: {\n\t\taliases: ['more', 'options', 'dots'],\n\t\tcategories: ['development', 'navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M448 256a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm-176 0a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zM48 304a48 48 0 1 1 0-96 48 48 0 1 1 0 96z',\n\t\twidth: 448,\n\t},\n\tellipsisVertical: {\n\t\taliases: ['more', 'options', 'kebab menu'],\n\t\tcategories: ['development', 'navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M112 80a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zM16 256c0-26.5 21.5-48 48-48s48 21.5 48 48-21.5 48-48 48-48-21.5-48-48zm96 176c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48 48 21.5 48 48z',\n\t\twidth: 128,\n\t},\n\temptySet: {\n\t\taliases: ['none', 'null', 'no data'],\n\t\tcategories: ['objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M464 256c0-48.8-16.8-93.7-44.9-129.1L126.9 419.1c35.5 28.1 80.3 44.9 129.1 44.9 114.9 0 208-93.1 208-208zM453.2 92.7c36.7 44.3 58.8 101.2 58.8 163.3 0 141.4-114.6 256-256 256-62.1 0-118.9-22.1-163.3-58.8L41 505c-9.4 9.4-24.6 9.4-33.9 0S-2.3 480.4 7 471l51.8-51.8C22.1 374.9 0 318.1 0 256 0 114.6 114.6 0 256 0 318.1 0 374.9 22.1 419.3 58.8L471 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L453.2 92.7zM92.9 385.1L385.1 92.9C349.7 64.8 304.8 48 256 48 141.1 48 48 141.1 48 256 48 304.8 64.8 349.7 92.9 385.1z',\n\t\twidth: 512,\n\t},\n\tenvelope: {\n\t\taliases: ['email', 'mail', 'message'],\n\t\tcategories: ['communication', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M61.4 64C27.5 64 0 91.5 0 125.4 0 126.3 0 127.1 .1 128L0 128 0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256-.1 0c0-.9 .1-1.7 .1-2.6 0-33.9-27.5-61.4-61.4-61.4L61.4 64zM464 192.3L464 384c0 8.8-7.2 16-16 16L64 400c-8.8 0-16-7.2-16-16l0-191.7 154.8 117.4c31.4 23.9 74.9 23.9 106.4 0L464 192.3zM48 125.4C48 118 54 112 61.4 112l389.2 0c7.4 0 13.4 6 13.4 13.4 0 4.2-2 8.2-5.3 10.7L280.2 271.5c-14.3 10.8-34.1 10.8-48.4 0L53.3 136.1c-3.3-2.5-5.3-6.5-5.3-10.7z',\n\t\twidth: 512,\n\t},\n\tenvelopeOpen: {\n\t\taliases: ['email read', 'mail open'],\n\t\tcategories: ['communication', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M512 416c0 35.3-28.5 64-63.9 64L64 480c-35.4 0-64-28.7-64-64L0 164c.1-15.5 7.8-30 20.5-38.8L206-2.7c30.1-20.7 69.8-20.7 99.9 0L491.5 125.2c12.8 8.8 20.4 23.3 20.5 38.8l0 252zM64 432l384.1 0c8.8 0 15.9-7.1 15.9-16l0-191.7-154.8 117.4c-31.4 23.9-74.9 23.9-106.4 0L48 224.3 48 416c0 8.9 7.2 16 16 16zM463.6 164.4L278.7 36.8c-13.7-9.4-31.7-9.4-45.4 0L48.4 164.4 231.8 303.5c14.3 10.8 34.1 10.8 48.4 0L463.6 164.4z',\n\t\twidth: 512,\n\t},\n\texclamation: {\n\t\taliases: ['alert', 'warning', 'attention'],\n\t\tcategories: ['status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M32.3 448c17.7 0 32 14.3 32 32s-14.3 32-32 32c-17.7 0-32-14.3-32-32s14.3-32 32-32zM36.2 .2c18.8 2 33.2 18.2 32.5 37.5L56.3 360.9c-.5 12.9-11.1 23.1-24 23.1s-23.5-10.2-24-23.1L-4 37.7C-4.8 17.1 11.7 0 32.3 0l3.8 .2z',\n\t\twidth: 64,\n\t},\n\texpand: {\n\t\taliases: ['fullscreen', 'maximize', 'enlarge'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M136 32c13.3 0 24 10.7 24 24s-10.7 24-24 24l-88 0 0 88c0 13.3-10.7 24-24 24S0 181.3 0 168L0 56C0 42.7 10.7 32 24 32l112 0zM0 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 88 88 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 480c-13.3 0-24-10.7-24-24L0 344zM424 32c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-88-88 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l112 0zM400 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 112c0 13.3-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l88 0 0-88z',\n\t\twidth: 448,\n\t},\n\texpandFromCenter: {\n\t\taliases: ['resize', 'scale', 'expand arrows'],\n\t\tcategories: ['actions', 'arrows'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M295 183c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l135-135 0 86.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-144c0-13.3-10.7-24-24-24L344 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l86.1 0-135 135zM217 329c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L48 430.1 48 344c0-13.3-10.7-24-24-24S0 330.7 0 344L0 488c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-86.1 0 135-135z',\n\t\twidth: 512,\n\t},\n\texternalLink: {\n\t\taliases: ['open in new', 'new window', 'new tab'],\n\t\tcategories: ['arrows', 'navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M288 24c0 13.3 10.7 24 24 24l118.1 0-231 231c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l231-231 0 118.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-176c0-13.3-10.7-24-24-24L312 0c-13.3 0-24 10.7-24 24zM80 96C35.8 96 0 131.8 0 176L0 432c0 44.2 35.8 80 80 80l256 0c44.2 0 80-35.8 80-80l0-88c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 88c0 17.7-14.3 32-32 32L80 464c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L80 96z',\n\t\twidth: 512,\n\t},\n\teye: {\n\t\taliases: ['show', 'visible', 'view', 'preview'],\n\t\tcategories: ['actions', 'security', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M288 80C222.8 80 169.2 109.6 128.1 147.7 89.6 183.5 63 226 49.4 256 63 286 89.6 328.5 128.1 364.3 169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256 513 226 486.4 183.5 447.9 147.7 406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1 3.3 7.9 3.3 16.7 0 24.6-14.9 35.7-46.2 87.7-93 131.1-47.1 43.7-111.8 80.6-192.6 80.6S142.5 443.2 95.4 399.4c-46.8-43.5-78.1-95.4-93-131.1-3.3-7.9-3.3-16.7 0-24.6 14.9-35.7 46.2-87.7 93-131.1zM288 336c44.2 0 80-35.8 80-80 0-29.6-16.1-55.5-40-69.3-1.4 59.7-49.6 107.9-109.3 109.3 13.8 23.9 39.7 40 69.3 40zm-79.6-88.4c2.5 .3 5 .4 7.6 .4 35.3 0 64-28.7 64-64 0-2.6-.2-5.1-.4-7.6-37.4 3.9-67.2 33.7-71.1 71.1zm45.6-115c10.8-3 22.2-4.5 33.9-4.5 8.8 0 17.5 .9 25.8 2.6 .3 .1 .5 .1 .8 .2 57.9 12.2 101.4 63.7 101.4 125.2 0 70.7-57.3 128-128 128-61.6 0-113-43.5-125.2-101.4-1.8-8.6-2.8-17.5-2.8-26.6 0-11 1.4-21.8 4-32 .2-.7 .3-1.3 .5-1.9 11.9-43.4 46.1-77.6 89.5-89.5z',\n\t\twidth: 576,\n\t},\n\teyeSlash: {\n\t\taliases: ['hide', 'hidden', 'invisible'],\n\t\tcategories: ['actions', 'security', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.4-96.4c2.7-2.4 5.4-4.8 8-7.2 46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6-56.8 0-105.6 18.2-146 44.2L41-24.9zM176.9 111.1c32.1-18.9 69.2-31.1 111.1-31.1 65.2 0 118.8 29.6 159.9 67.7 38.5 35.7 65.1 78.3 78.6 108.3-13.6 30-40.2 72.5-78.6 108.3-3.1 2.8-6.2 5.6-9.4 8.4L393.8 328c14-20.5 22.2-45.3 22.2-72 0-70.7-57.3-128-128-128-26.7 0-51.5 8.2-72 22.2l-39.1-39.1zm182 182l-108-108c11.1-5.8 23.7-9.1 37.1-9.1 44.2 0 80 35.8 80 80 0 13.4-3.3 26-9.1 37.1zM103.4 173.2l-34-34c-32.6 36.8-55 75.8-66.9 104.5-3.3 7.9-3.3 16.7 0 24.6 14.9 35.7 46.2 87.7 93 131.1 47.1 43.7 111.8 80.6 192.6 80.6 37.3 0 71.2-7.9 101.5-20.6L352.2 422c-20 6.4-41.4 10-64.2 10-65.2 0-118.8-29.6-159.9-67.7-38.5-35.7-65.1-78.3-78.6-108.3 10.4-23.1 28.6-53.6 54-82.8z',\n\t\twidth: 576,\n\t},\n\tfacebook: {\n\t\taliases: [],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256C0 376 82.7 476.8 194.2 504.5l0-170.3-52.8 0 0-78.2 52.8 0 0-33.7c0-87.1 39.4-127.5 125-127.5 16.2 0 44.2 3.2 55.7 6.4l0 70.8c-6-.6-16.5-1-29.6-1-42 0-58.2 15.9-58.2 57.2l0 27.8 83.6 0-14.4 78.2-69.3 0 0 175.9C413.8 494.8 512 386.9 512 256z',\n\t\twidth: 512,\n\t},\n\tfile: {\n\t\taliases: ['document', 'page'],\n\t\tcategories: ['documents'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M176 48L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-240-88 0c-39.8 0-72-32.2-72-72l0-88zM316.1 160L224 67.9 224 136c0 13.3 10.7 24 24 24l68.1 0zM0 64C0 28.7 28.7 0 64 0L197.5 0c17 0 33.3 6.7 45.3 18.7L365.3 141.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64z',\n\t\twidth: 384,\n\t},\n\tfileCheck: {\n\t\taliases: ['file approved', 'verified file'],\n\t\tcategories: ['documents', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M197.5 0c17 0 33.2 6.8 45.2 18.8L365.3 141.2c12 12 18.7 28.3 18.7 45.2L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64C0 28.7 28.7 0 64 0L197.5 0zM64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-240-88 0c-39.8 0-72-32.2-72-72l0-88-112 0zM228.7 263.9c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5L191.4 396.8c-4.2 5.7-10.7 9.3-17.8 9.8-7.1 .5-14-2.2-18.9-7.3l-35.9-37.2c-9.2-9.5-8.9-24.7 .6-33.9 9.5-9.2 24.7-9 33.9 .6l16.1 16.6 59.3-81.6zM224 136c0 13.3 10.7 24 24 24l68.1 0-92.1-92.1 0 68.1z',\n\t\twidth: 384,\n\t},\n\tfileContract: {\n\t\taliases: ['agreement', 'terms', 'legal'],\n\t\tcategories: ['documents'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M176 48L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-240-88 0c-39.8 0-72-32.2-72-72l0-88zM316.1 160L224 67.9 224 136c0 13.3 10.7 24 24 24l68.1 0zM0 64C0 28.7 28.7 0 64 0L197.5 0c17 0 33.3 6.7 45.3 18.7L365.3 141.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM145.3 301.9c7-8.8 17.7-13.9 28.9-13.9 16.4 0 30.8 10.7 35.5 26.4l16.1 53.6 54.1 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-72 0c-10.6 0-19.9-7-23-17.1l-15.2-50.7-47.1 58.8c-8.3 10.4-23.4 12-33.7 3.8S77 387.4 85.3 377l60.1-75.1zM104 80l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z',\n\t\twidth: 384,\n\t},\n\tfileCSV: {\n\t\taliases: ['spreadsheet', 'csv'],\n\t\tcategories: ['documents'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M208 48L96 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l80 0 0 48-80 0c-35.3 0-64-28.7-64-64L32 64C32 28.7 60.7 0 96 0L229.5 0c17 0 33.3 6.7 45.3 18.7L397.3 141.3c12 12 18.7 28.3 18.7 45.3l0 149.5-48 0 0-128-88 0c-39.8 0-72-32.2-72-72l0-88zM348.1 160L256 67.9 256 136c0 13.3 10.7 24 24 24l68.1 0zM264 380l16 0c24.3 0 44 19.7 44 44l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-2.2-1.8-4-4-4l-16 0c-2.2 0-4 1.8-4 4l0 80c0 2.2 1.8 4 4 4l16 0c2.2 0 4-1.8 4-4l0-8c0-11 9-20 20-20s20 9 20 20l0 8c0 24.3-19.7 44-44 44l-16 0c-24.3 0-44-19.7-44-44l0-80c0-24.3 19.7-44 44-44zm136 0l24 0c11 0 20 9 20 20s-9 20-20 20l-24 0c-6.6 0-12 5.4-12 12s5.4 12 12 12c28.7 0 52 23.3 52 52s-23.3 52-52 52l-32 0c-11 0-20-9-20-20s9-20 20-20l32 0c6.6 0 12-5.4 12-12s-5.4-12-12-12c-28.7 0-52-23.3-52-52s23.3-52 52-52zm96 0c11 0 20 9 20 20l0 31.6c0 19.6 4.1 38.9 12 56.7 7.9-17.8 12-37.1 12-56.7l0-31.6c0-11 9-20 20-20s20 9 20 20l0 31.6c0 35.5-10.5 70.3-30.2 99.8l-5.1 7.7c-3.7 5.6-10 8.9-16.6 8.9s-12.9-3.3-16.6-8.9l-5.1-7.7c-19.7-29.6-30.2-64.3-30.2-99.8l0-31.6c0-11 9-20 20-20z',\n\t\twidth: 576,\n\t},\n\tfileDiff: {\n\t\taliases: ['file changes', 'diff', 'compare'],\n\t\tcategories: ['development', 'documents'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zM216 240c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 24c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24 24 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-24 0 0-24zM144 384c-13.3 0-24 10.7-24 24s10.7 24 24 24l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-96 0z',\n\t\twidth: 384,\n\t},\n\tfileExport: {\n\t\taliases: ['export', 'send file'],\n\t\tcategories: ['actions', 'documents'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M208.5 48l-112 0c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-48 48 0 0 48c0 35.3-28.7 64-64 64l-256 0c-35.3 0-64-28.7-64-64l0-384c0-35.3 28.7-64 64-64L230 0c17 0 33.3 6.7 45.3 18.7L397.8 141.3c12 12 18.7 28.3 18.7 45.3l0 69.5-48 0 0-48-88 0c-39.8 0-72-32.2-72-72l0-88zm72 256l214.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-214.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm68.1-144l-92.1-92.1 0 68.1c0 13.3 10.7 24 24 24l68.1 0z',\n\t\twidth: 576,\n\t},\n\tfileImport: {\n\t\taliases: ['import', 'receive file'],\n\t\tcategories: ['actions', 'documents'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M128 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16l-256 0c-8.8 0-16-7.2-16-16l0-48-48 0 0 48c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L306.7 18.7C294.7 6.7 278.5 0 261.5 0L128 0C92.7 0 64 28.7 64 64l0 192 48 0 0-192c0-8.8 7.2-16 16-16zM288 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM0 328c0 13.3 10.7 24 24 24l222.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-222.1 0c-13.3 0-24 10.7-24 24z',\n\t\twidth: 512,\n\t},\n\tfileLines: {\n\t\taliases: ['text file', 'document'],\n\t\tcategories: ['documents'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zm56 256c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z',\n\t\twidth: 384,\n\t},\n\tfilePDF: {\n\t\taliases: ['pdf', 'document'],\n\t\tcategories: ['documents'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M208 48L96 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l80 0 0 48-80 0c-35.3 0-64-28.7-64-64L32 64C32 28.7 60.7 0 96 0L229.5 0c17 0 33.3 6.7 45.3 18.7L397.3 141.3c12 12 18.7 28.3 18.7 45.3l0 149.5-48 0 0-128-88 0c-39.8 0-72-32.2-72-72l0-88zM348.1 160L256 67.9 256 136c0 13.3 10.7 24 24 24l68.1 0zM240 380l32 0c33.1 0 60 26.9 60 60s-26.9 60-60 60l-12 0 0 28c0 11-9 20-20 20s-20-9-20-20l0-128c0-11 9-20 20-20zm32 80c11 0 20-9 20-20s-9-20-20-20l-12 0 0 40 12 0zm96-80l32 0c28.7 0 52 23.3 52 52l0 64c0 28.7-23.3 52-52 52l-32 0c-11 0-20-9-20-20l0-128c0-11 9-20 20-20zm32 128c6.6 0 12-5.4 12-12l0-64c0-6.6-5.4-12-12-12l-12 0 0 88 12 0zm76-108c0-11 9-20 20-20l48 0c11 0 20 9 20 20s-9 20-20 20l-28 0 0 24 28 0c11 0 20 9 20 20s-9 20-20 20l-28 0 0 44c0 11-9 20-20 20s-20-9-20-20l0-128z',\n\t\twidth: 576,\n\t},\n\tfileZip: {\n\t\taliases: ['archive', 'compressed', 'zip'],\n\t\tcategories: ['documents'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zM80 104c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0c-13.3 0-24 10.7-24 24zm0 80c0 13.3 10.7 24 24 24l32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0c-13.3 0-24 10.7-24 24zm64 56l-32 0c-17.7 0-32 14.3-32 32l0 48c0 26.5 21.5 48 48 48s48-21.5 48-48l0-48c0-17.7-14.3-32-32-32zm-16 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z',\n\t\twidth: 384,\n\t},\n\tfolder: {\n\t\taliases: ['directory'],\n\t\tcategories: ['documents'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 400l384 0c8.8 0 16-7.2 16-16l0-240c0-8.8-7.2-16-16-16l-149.3 0c-17.3 0-34.2-5.6-48-16L212.3 83.2c-2.8-2.1-6.1-3.2-9.6-3.2L64 80c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16zm384 48L64 448c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 240c0 35.3-28.7 64-64 64z',\n\t\twidth: 512,\n\t},\n\tfolderTree: {\n\t\taliases: ['file tree', 'directory tree'],\n\t\tcategories: ['development', 'documents', 'navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24L0 392c0 30.9 25.1 56 56 56l184 0 0-48-184 0c-4.4 0-8-3.6-8-8l0-232 192 0 0-48-192 0 0-88zM385.5 48l31.9 21.3c10.5 7 22.9 10.7 35.5 10.7l75.2 0 0 96-192 0 0-128 49.5 0zM288 48l0 128c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-75.2 0c-3.2 0-6.2-.9-8.9-2.7L412.1 8.1C404.2 2.8 394.9 0 385.5 0L336 0c-26.5 0-48 21.5-48 48zm97.5 288l33.9 22.6c9.2 6.1 20 9.4 31.1 9.4l77.6 0 0 96-192 0 0-128 49.5 0zM288 336l0 128c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-77.6 0c-1.6 0-3.1-.5-4.4-1.3l-33.9-22.6c-7.9-5.3-17.1-8.1-26.6-8.1L336 288c-26.5 0-48 21.5-48 48z',\n\t\twidth: 576,\n\t},\n\tgear: {\n\t\taliases: ['settings', 'preferences', 'config'],\n\t\tcategories: ['actions', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M205.5 92.7l13.7-60.7 73.6 0 13.7 60.7c1.7 7.4 6.8 13.6 13.8 16.7 10.8 4.8 21 10.7 30.4 17.6 6.1 4.5 14.1 5.9 21.4 3.6l59.5-18.5 36.8 63.8-45.8 42.3c-5.6 5.2-8.4 12.7-7.6 20.2 1.3 11.5 1.3 23.7 0 35.2-.8 7.6 2 15.1 7.6 20.2l45.8 42.3-36.8 63.8-59.5-18.5c-7.3-2.3-15.2-.9-21.4 3.6-9.4 6.9-19.6 12.9-30.4 17.6-7 3.1-12.1 9.3-13.8 16.7l-13.7 60.7-73.6 0-13.7-60.7c-1.7-7.4-6.8-13.6-13.8-16.7-10.8-4.8-21-10.7-30.4-17.6-6.1-4.5-14.1-5.9-21.4-3.6l-59.5 18.5-36.8-63.8 45.8-42.3c5.6-5.2 8.4-12.7 7.6-20.2-1.3-11.5-1.3-23.7 0-35.2 .8-7.6-2-15.1-7.6-20.2l-45.8-42.3 36.8-63.8 59.5 18.5c7.3 2.3 15.2 .9 21.4-3.6 9.4-6.9 19.6-12.9 30.4-17.6 7-3.1 12.1-9.3 13.8-16.7zM212.8-16c-18.7 0-34.9 13-39 31.2L161.2 70.8c-6.3 3.2-12.3 6.7-18.2 10.5L88.6 64.4c-17.9-5.6-37.2 2-46.5 18.2L-1.1 157.4c-9.3 16.2-6.2 36.7 7.5 49.4l41.9 38.7c-.3 6.9-.3 14 0 21L6.4 305.2c-13.7 12.7-16.9 33.2-7.5 49.4l43.2 74.8c9.3 16.2 28.7 23.7 46.5 18.2l54.5-16.9c5.9 3.8 11.9 7.3 18.2 10.5l12.6 55.6c4.1 18.2 20.3 31.2 39 31.2l86.4 0c18.7 0 34.9-13 39-31.2l12.6-55.6c6.3-3.2 12.3-6.7 18.2-10.5l54.5 16.9c17.9 5.6 37.2-2 46.5-18.2l43.2-74.8c9.3-16.2 6.2-36.7-7.5-49.4l-41.9-38.7c.3-6.9 .3-14 0-21l41.9-38.7c13.7-12.7 16.8-33.2 7.5-49.4L470 82.6c-9.4-16.2-28.7-23.7-46.5-18.2L369 81.3c-5.9-3.8-11.9-7.3-18.2-10.5L338.3 15.2C334.1-3 317.9-16 299.2-16l-86.4 0zM304 256a48 48 0 1 1 -96 0 48 48 0 1 1 96 0zm-48-96a96 96 0 1 0 0 192 96 96 0 1 0 0-192z',\n\t\twidth: 512,\n\t},\n\tgem: {\n\t\taliases: ['diamond', 'jewel', 'premium'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M168.5 72l87.5 93 87.5-93-175 0zM383.9 99.1l-72.3 76.9 129 0-56.6-76.9zm50 124.9L78.1 224 256 420.3 433.9 224zM71.5 176l129 0-72.3-76.9-56.6 76.9zm434.3 40.1l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4z',\n\t\twidth: 512,\n\t},\n\tgithub: {\n\t\taliases: [],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM252.8 8c-138.7 0-244.8 105.3-244.8 244 0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1 100-33.2 167.8-128.1 167.8-239 0-138.7-112.5-244-251.2-244zM105.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z',\n\t\twidth: 512,\n\t},\n\tgitlab: {\n\t\taliases: [],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M504 204.6l-.7-1.8-69.7-181.8c-1.4-3.6-3.9-6.6-7.2-8.6-2.4-1.6-5.1-2.5-8-2.8s-5.7 .1-8.4 1.1-5.1 2.7-7.1 4.8c-1.9 2.1-3.3 4.7-4.1 7.4l-47 144-190.5 0-47.1-144c-.8-2.8-2.2-5.3-4.1-7.4-2-2.1-4.4-3.7-7.1-4.8-2.6-1-5.5-1.4-8.4-1.1s-5.6 1.2-8 2.8c-3.2 2-5.8 5.1-7.2 8.6L9.8 202.8 9 204.6c-10 26.2-11.3 55-3.5 82 7.7 26.9 24 50.7 46.4 67.6l.3 .2 .6 .4 106 79.5c38.5 29.1 66.7 50.3 84.6 63.9 3.7 1.9 8.3 4.3 13 4.3s9.3-2.4 13-4.3c17.9-13.5 46.1-34.9 84.6-63.9l106.7-79.9 .3-.3c22.4-16.9 38.7-40.6 45.6-67.5 8.6-27 7.4-55.8-2.6-82z',\n\t\twidth: 512,\n\t},\n\tglobe: {\n\t\taliases: ['world', 'website', 'internet', 'language'],\n\t\tcategories: ['navigation', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M303.2 413c-21.5 43.7-41.4 51-47.2 51s-25.7-7.3-47.2-51c-17-34.5-29.2-81.6-32.1-133l158.6 0c-3 51.5-15.2 98.6-32.1 133zm32.1-181l-158.6 0c3-51.5 15.2-98.6 32.1-133 21.5-43.7 41.4-51 47.2-51s25.7 7.3 47.2 51c17 34.5 29.2 81.6 32.1 133zm48.1 48l79.2 0c-8.6 74.6-56.7 137.3-122.8 166.4 24-42.8 40.3-102.4 43.6-166.4zm79.2-48l-79.2 0c-3.3-64-19.6-123.6-43.6-166.4 66.1 29.2 114.2 91.8 122.8 166.4zm-334 0l-79.2 0c8.6-74.6 56.7-137.3 122.8-166.4-24 42.8-40.3 102.4-43.6 166.4zM49.4 280l79.2 0c3.3 64 19.6 123.6 43.6 166.4-66.1-29.2-114.2-91.8-122.8-166.4zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512z',\n\t\twidth: 512,\n\t},\n\tgraduationCap: {\n\t\taliases: ['education', 'learning', 'academy'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M318.8 38.1C309 34.1 298.6 32 288 32s-21 2.1-30.8 6.1L14.8 137.9C5.8 141.6 0 150.3 0 160L0 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-260.2 48 19.8 0 168.5c0 53 86 96 192 96s192-43 192-96l0-168.5 81.2-33.4c9-3.7 14.8-12.4 14.8-22.1s-5.8-18.4-14.8-22.1L318.8 38.1zM144 384l0-148.7 113.2 46.6c9.8 4 20.2 6.1 30.8 6.1s21-2.1 30.8-6.1L432 235.3 432 384c0 .1 0 .1 0 .3s-.1 .4-.3 .9c-.4 .9-1.3 2.7-3.4 5.2-4.4 5.2-12.6 11.9-26 18.6-26.8 13.4-67.1 23-114.3 23s-87.5-9.7-114.3-23c-13.4-6.7-21.6-13.4-26-18.6-2.1-2.5-3-4.3-3.4-5.2-.2-.5-.3-.8-.3-.9s0-.2 0-.3zM87.2 160L275.5 82.5c4-1.6 8.2-2.5 12.5-2.5s8.5 .8 12.5 2.5L488.8 160 300.5 237.5c-4 1.6-8.2 2.5-12.5 2.5s-8.5-.8-12.5-2.5L87.2 160z',\n\t\twidth: 576,\n\t},\n\tgrid: {\n\t\taliases: ['tiles', 'gallery', 'grid view'],\n\t\tcategories: ['navigation', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M0 64C0 46.3 14.3 32 32 32l48 0c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32L0 64zM0 232c0-17.7 14.3-32 32-32l48 0c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-48zM112 400l0 48c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-48c0-17.7 14.3-32 32-32l48 0c17.7 0 32 14.3 32 32zM168 64c0-17.7 14.3-32 32-32l48 0c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-48zM280 232l0 48c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-48c0-17.7 14.3-32 32-32l48 0c17.7 0 32 14.3 32 32zM168 400c0-17.7 14.3-32 32-32l48 0c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-48zM448 64l0 48c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-48c0-17.7 14.3-32 32-32l48 0c17.7 0 32 14.3 32 32zM336 232c0-17.7 14.3-32 32-32l48 0c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-48zM448 400l0 48c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32l0-48c0-17.7 14.3-32 32-32l48 0c17.7 0 32 14.3 32 32z',\n\t\twidth: 448,\n\t},\n\tgripDots: {\n\t\taliases: ['drag', 'reorder', 'handle'],\n\t\tcategories: ['actions', 'navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 224a64 64 0 1 1 0-128 64 64 0 1 1 0 128zM256 96a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm192 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm0 192a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM256 416a64 64 0 1 1 0-128 64 64 0 1 1 0 128zM64 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z',\n\t\twidth: 512,\n\t},\n\tgripDotsVertical: {\n\t\taliases: ['drag', 'reorder', 'handle'],\n\t\tcategories: ['actions', 'navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M128 64A64 64 0 1 0 0 64 64 64 0 1 0 128 64zm0 192a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM0 448c0 35.3 28.7 64 64 64s64-28.7 64-64-28.7-64-64-64-64 28.7-64 64zM320 64a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM192 256a64 64 0 1 0 128 0 64 64 0 1 0 -128 0zM320 448c0-35.3-28.7-64-64-64s-64 28.7-64 64 28.7 64 64 64 64-28.7 64-64z',\n\t\twidth: 320,\n\t},\n\theart: {\n\t\taliases: ['favorite', 'like', 'love'],\n\t\tcategories: ['actions', 'objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M378.9 80c-27.3 0-53 13.1-69 35.2l-34.4 47.6c-4.5 6.2-11.7 9.9-19.4 9.9s-14.9-3.7-19.4-9.9l-34.4-47.6c-16-22.1-41.7-35.2-69-35.2-47 0-85.1 38.1-85.1 85.1 0 49.9 32 98.4 68.1 142.3 41.1 50 91.4 94 125.9 120.3 3.2 2.4 7.9 4.2 14 4.2s10.8-1.8 14-4.2c34.5-26.3 84.8-70.4 125.9-120.3 36.2-43.9 68.1-92.4 68.1-142.3 0-47-38.1-85.1-85.1-85.1zM271 87.1c25-34.6 65.2-55.1 107.9-55.1 73.5 0 133.1 59.6 133.1 133.1 0 68.6-42.9 128.9-79.1 172.8-44.1 53.6-97.3 100.1-133.8 127.9-12.3 9.4-27.5 14.1-43.1 14.1s-30.8-4.7-43.1-14.1C176.4 438 123.2 391.5 79.1 338 42.9 294.1 0 233.7 0 165.1 0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1l15 20.7 15-20.7z',\n\t\twidth: 512,\n\t},\n\theartSolid: {\n\t\taliases: ['favorited', 'liked', 'loved'],\n\t\tcategories: ['actions', 'objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 112.2-139.9 242.5-212.9 298.2-12.4 9.4-27.6 14.1-43.1 14.1s-30.8-4.6-43.1-14.1C139.9 410.2 0 279.9 0 167.7l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1z',\n\t\twidth: 512,\n\t},\n\thouse: {\n\t\taliases: ['home', 'homepage', 'dashboard'],\n\t\tcategories: ['navigation', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M240 6.1c9.1-8.2 22.9-8.2 32 0l232 208c9.9 8.8 10.7 24 1.8 33.9s-24 10.7-33.9 1.8l-8-7.2 0 205.3c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-205.3-8 7.2c-9.9 8.8-25 8-33.9-1.8s-8-25 1.8-33.9L240 6.1zm16 50.1L96 199.7 96 448c0 8.8 7.2 16 16 16l48 0 0-104c0-39.8 32.2-72 72-72l48 0c39.8 0 72 32.2 72 72l0 104 48 0c8.8 0 16-7.2 16-16l0-248.3-160-143.4zM208 464l96 0 0-104c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 104z',\n\t\twidth: 512,\n\t},\n\tidCard: {\n\t\taliases: ['badge', 'identity', 'profile card'],\n\t\tcategories: ['objects', 'users'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M48 416l0-256 480 0 0 256c0 8.8-7.2 16-16 16l-192 0c0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80l-32 0c-8.8 0-16-7.2-16-16zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM208 312a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM376 208c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0z',\n\t\twidth: 576,\n\t},\n\timage: {\n\t\taliases: ['photo', 'picture', 'thumbnail'],\n\t\tcategories: ['media'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm128 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm136 72c8.5 0 16.4 4.5 20.7 11.8l80 136c4.4 7.4 4.4 16.6 .1 24.1S352.6 384 344 384l-240 0c-8.9 0-17.2-5-21.3-12.9s-3.5-17.5 1.6-24.8l56-80c4.5-6.4 11.8-10.2 19.7-10.2s15.2 3.8 19.7 10.2l17.2 24.6 46.5-79c4.3-7.3 12.2-11.8 20.7-11.8z',\n\t\twidth: 448,\n\t},\n\tinputText: {\n\t\taliases: ['text field', 'form field'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M512 112c8.8 0 16 7.2 16 16l0 256c0 8.8-7.2 16-16 16L64 400c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l448 0zM64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM96 224l0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24 32 0 0 24c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104c0-35.3-28.7-64-64-64s-64 28.7-64 64zm80 32l-32 0 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 32zm96-72l0 144c0 13.3 10.7 24 24 24l52 0c33.1 0 60-26.9 60-60 0-16-6.3-30.5-16.5-41.3 5.4-9 8.5-19.5 8.5-30.7 0-33.1-26.9-60-60-60l-44 0c-13.3 0-24 10.7-24 24zm80 36c0 6.6-5.4 12-12 12l-20 0 0-24 20 0c6.6 0 12 5.4 12 12zm-32 84l0-24 28 0c6.6 0 12 5.4 12 12s-5.4 12-12 12l-28 0z',\n\t\twidth: 576,\n\t},\n\tinstagram: {\n\t\taliases: [],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M224.3 141a115 115 0 1 0 -.6 230 115 115 0 1 0 .6-230zm-.6 40.4a74.6 74.6 0 1 1 .6 149.2 74.6 74.6 0 1 1 -.6-149.2zm93.4-45.1a26.8 26.8 0 1 1 53.6 0 26.8 26.8 0 1 1 -53.6 0zm129.7 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM399 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z',\n\t\twidth: 448,\n\t},\n\tkeySkeleton: {\n\t\taliases: ['key', 'password', 'access', 'api key'],\n\t\tcategories: ['actions', 'objects', 'security'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M304 48a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm0 240c79.5 0 144-64.5 144-144S383.5 0 304 0 160 64.5 160 144c0 31.1 9.9 59.9 26.6 83.4L7 407c-9.4 9.4-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 30.1-30.1 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 98.6-98.6C244.1 278.1 272.9 288 304 288z',\n\t\twidth: 448,\n\t},\n\tlaptop: {\n\t\taliases: ['computer', 'device'],\n\t\tcategories: ['media'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M512 80L128 80c-8.8 0-16 7.2-16 16l0 208-48 0 0-208c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 208-48 0 0-208c0-8.8-7.2-16-16-16zM102.4 432l435.2 0c22.1 0 41.1-13.1 49.6-32L52.8 400c8.5 18.9 27.5 32 49.6 32zM0 377.6C0 363.5 11.5 352 25.6 352l588.8 0c14.1 0 25.6 11.5 25.6 25.6 0 56.6-45.8 102.4-102.4 102.4l-435.2 0C45.8 480 0 434.2 0 377.6z',\n\t\twidth: 640,\n\t},\n\tlaptopCode: {\n\t\taliases: ['development', 'coding'],\n\t\tcategories: ['development', 'media'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M128 80l384 0c8.8 0 16 7.2 16 16l0 208 48 0 0-208c0-35.3-28.7-64-64-64L128 32C92.7 32 64 60.7 64 96l0 208 48 0 0-208c0-8.8 7.2-16 16-16zM52.8 400l534.4 0c-8.5 18.9-27.5 32-49.6 32l-435.2 0c-22.1 0-41.1-13.1-49.6-32zM25.6 352C11.5 352 0 363.5 0 377.6 0 434.2 45.8 480 102.4 480l435.2 0c56.6 0 102.4-45.8 102.4-102.4 0-14.1-11.5-25.6-25.6-25.6L25.6 352zM281 169c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-48 48c-9.4 9.4-9.4 24.6 0 33.9l48 48c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 31-31zM393 135c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9l-48-48z',\n\t\twidth: 640,\n\t},\n\tleaf: {\n\t\taliases: ['nature', 'eco', 'green'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M471.3 6.7C477.7 .6 487-1.6 495.6 1.2 505.4 4.5 512 13.7 512 24l0 186.9C512 342.1 403.9 448 273.2 448 191.7 448 121.9 392.4 101.8 316.8 68.7 347.4 48 391.3 48 440l0 16c0 13.3-10.7 24-24 24S0 469.2 0 456l0-16c0-75.1 38.3-141.2 96.4-179.9 6.1-91.7 82.4-164.1 175.6-164.1 66.4 0 115.8-22.1 148.7-44 19.2-12.8 35.5-28.1 50.7-45.3zM464 79.9c-38.3 29.5-102.4 64.1-192 64.1-57.6 0-106.4 38.1-122.4 90.4 20.9-6.8 43.2-10.4 66.4-10.4l80 0c13.3 0 24 10.8 24 24s-10.7 24-24 24l-80 0c-25.4 0-49.4 5.7-71 15.8 7.9 63.1 62.6 112.2 128.2 112.2 104.7 0 190.8-84.9 190.8-189.1l0-131z',\n\t\twidth: 512,\n\t},\n\tlifeRing: {\n\t\taliases: ['help', 'support', 'rescue'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M385.1 419.1C349.7 447.2 304.8 464 256 464s-93.7-16.8-129.1-44.9l80.4-80.4c14.3 8.4 31 13.3 48.8 13.3s34.5-4.8 48.8-13.3l80.4 80.4zm68.1 .2C489.9 374.9 512 318.1 512 256S489.9 137.1 453.2 92.7L465 81c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L419.3 58.8C374.9 22.1 318.1 0 256 0S137.1 22.1 92.7 58.8L81 47c-9.4-9.4-24.6-9.4-33.9 0S37.7 71.6 47 81L58.8 92.7C22.1 137.1 0 193.9 0 256S22.1 374.9 58.8 419.3L47 431c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l11.8-11.8C137.1 489.9 193.9 512 256 512s118.9-22.1 163.3-58.8L431 465c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-11.8-11.8zm-34.1-34.1l-80.4-80.4c8.4-14.3 13.3-31 13.3-48.8s-4.8-34.5-13.3-48.8l80.4-80.4C447.2 162.3 464 207.2 464 256s-16.8 93.7-44.9 129.1zM385.1 92.9l-80.4 80.4c-14.3-8.4-31-13.3-48.8-13.3s-34.5 4.8-48.8 13.3L126.9 92.9C162.3 64.8 207.2 48 256 48s93.7 16.8 129.1 44.9zM173.3 304.8L92.9 385.1C64.8 349.7 48 304.8 48 256s16.8-93.7 44.9-129.1l80.4 80.4c-8.4 14.3-13.3 31-13.3 48.8s4.8 34.5 13.3 48.8zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z',\n\t\twidth: 512,\n\t},\n\tlinkedin: {\n\t\taliases: [],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M416 32L31.9 32C14.3 32 0 46.5 0 64.3L0 447.7C0 465.5 14.3 480 31.9 480L416 480c17.6 0 32-14.5 32-32.3l0-383.4C448 46.5 433.6 32 416 32zM135.4 416l-66.4 0 0-213.8 66.5 0 0 213.8-.1 0zM102.2 96a38.5 38.5 0 1 1 0 77 38.5 38.5 0 1 1 0-77zM384.3 416l-66.4 0 0-104c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9l0 105.8-66.4 0 0-213.8 63.7 0 0 29.2 .9 0c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9l0 117.2z',\n\t\twidth: 448,\n\t},\n\tlinkSimple: {\n\t\taliases: ['link', 'url', 'chain'],\n\t\tcategories: ['actions', 'development'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M0 256C0 150 86 64 192 64l40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0c-79.5 0-144 64.5-144 144s64.5 144 144 144l40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0C86 448 0 362 0 256zm160 0c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24zM384 64c106 0 192 86 192 192S490 448 384 448l-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l40 0c79.5 0 144-64.5 144-144S463.5 112 384 112l-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l40 0z',\n\t\twidth: 576,\n\t},\n\tlinkSimpleSlash: {\n\t\taliases: ['unlink', 'broken link'],\n\t\tcategories: ['actions', 'development'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-83.9-83.9C539.7 385.4 576 324.9 576 256 576 150 490 64 384 64l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c79.5 0 144 64.5 144 144 0 55.8-31.7 104.1-78.1 128.1L345.8 280 392 280c13.3 0 24-10.7 24-24s-10.7-24-24-24l-94.2 0-119.4-119.4c4.5-.4 9-.6 13.5-.6l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0c-18.9 0-37.1 2.7-54.4 7.8L41-24.9zm46.3 182l-34-34C20.3 157.7 0 204.5 0 256 0 362 86 448 192 448l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0c-79.5 0-144-64.5-144-144 0-38.3 14.9-73.1 39.3-98.9z',\n\t\twidth: 576,\n\t},\n\tlistCheck: {\n\t\taliases: ['checklist', 'todo', 'tasks'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M139.7 69.8c7.6-10.9 5-25.8-5.9-33.4s-25.8-5-33.4 5.9L60.7 98.8 41 79C31.6 69.7 16.4 69.7 7 79S-2.3 103.6 7 113l40 40c5 5 12 7.6 19.1 6.9s13.5-4.3 17.6-10.1l56-80zm0 160c7.6-10.9 5-25.8-5.9-33.4s-25.8-5-33.4 5.9L60.7 258.8 41 239c-9.4-9.4-24.6-9.4-33.9 0S-2.3 263.6 7 273l40 40c5 5 12 7.6 19.1 6.9s13.5-4.3 17.6-10.1l56-80zM192 96c0 13.3 10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L216 72c-13.3 0-24 10.7-24 24zm0 160c0 13.3 10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-272 0c-13.3 0-24 10.7-24 24zM160 416c0 13.3 10.7 24 24 24l304 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-304 0c-13.3 0-24 10.7-24 24zm-64 0a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z',\n\t\twidth: 512,\n\t},\n\tlocationCrosshairs: {\n\t\taliases: ['location', 'gps', 'target', 'crosshair'],\n\t\tcategories: ['navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M288-16c13.3 0 24 10.7 24 24l0 25.3C416.5 44.4 499.6 127.5 510.7 232l25.3 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-25.3 0C499.6 384.5 416.5 467.6 312 478.7l0 25.3c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-25.3C159.5 467.6 76.4 384.5 65.3 280L40 280c-13.3 0-24-10.7-24-24s10.7-24 24-24l25.3 0C76.4 127.5 159.5 44.4 264 33.3L264 8c0-13.3 10.7-24 24-24zM464 256a176 176 0 1 0 -352 0 176 176 0 1 0 352 0zm-112 0a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zm-176 0a112 112 0 1 1 224 0 112 112 0 1 1 -224 0z',\n\t\twidth: 576,\n\t},\n\tlock: {\n\t\taliases: ['locked', 'password', 'secure', 'private'],\n\t\tcategories: ['actions', 'security', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M112 96l0 64 160 0 0-64c0-44.2-35.8-80-80-80s-80 35.8-80 80zM64 160l0-64C64 25.3 121.3-32 192-32S320 25.3 320 96l0 64c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64zm208 48l-160 0 0 0-48 0 0 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-224c0-8.8-7.2-16-16-16l0 0-48 0 0 0z',\n\t\twidth: 384,\n\t},\n\tlockOpen: {\n\t\taliases: ['unlocked', 'unsecure', 'public'],\n\t\tcategories: ['actions', 'security', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M368 96c0-44.2 35.8-80 80-80s80 35.8 80 80l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-70.7-57.3-128-128-128S320 25.3 320 96l0 64-160 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64l-48 0 0-64zM320 208l0 0 48 0 0 0 48 0c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-256 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l160 0z',\n\t\twidth: 576,\n\t},\n\tmagnifyingGlass: {\n\t\taliases: ['search', 'find', 'lookup'],\n\t\tcategories: ['actions', 'navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M368 208a160 160 0 1 0 -320 0 160 160 0 1 0 320 0zM337.1 371.1C301.7 399.2 256.8 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208c0 48.8-16.8 93.7-44.9 129.1L505 471c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L337.1 371.1z',\n\t\twidth: 512,\n\t},\n\tmedal: {\n\t\taliases: ['award', 'achievement', 'prize'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M21.6 64.2L96.4 213.8c-20.2 30.4-32 67-32 106.2 0 106 86 192 192 192s192-86 192-192c0-39.3-11.8-75.8-32-106.2L491 64.2c11.9-23.7 2.2-52.5-21.5-64.4L383.8-43.1c-23.1-11.6-51.2-2.7-63.6 19.9l-63.8 117-63.8-117C180.1-45.8 152-54.7 128.9-43.1L43-.2C19.3 11.7 9.7 40.5 21.6 64.2zm269.1 66.9L362.3-.2 448.1 42.7 382 174.9c-25.5-22.1-56.8-37.6-91.3-43.8zm-68.8 0c-34.5 6.2-65.9 21.7-91.3 43.8L64.5 42.7 150.3-.2 221.9 131.1zM112.3 320a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm174.8-49.5l-22.4-45.4c-3.4-7-13.3-7-16.8 0l-22.4 45.4c-1.4 2.8-4 4.7-7 5.1l-50.1 7.3c-7.7 1.1-10.7 10.5-5.2 16l36.3 35.4c2.2 2.1 3.2 5.2 2.7 8.3l-8.6 49.9c-1.3 7.6 6.7 13.5 13.6 9.9L252 378.7c2.7-1.4 6-1.4 8.7 0l44.8 23.6c6.9 3.6 14.9-2.2 13.6-9.9l-8.6-49.9c-.5-3 .5-6.1 2.7-8.3l36.3-35.4c5.5-5.4 2.5-14.8-5.2-16l-50.1-7.3c-3-.4-5.7-2.4-7-5.1z',\n\t\twidth: 512,\n\t},\n\tmemo: {\n\t\taliases: ['note', 'sticky note'],\n\t\tcategories: ['documents'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16L64 48zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm120 64l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 96l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 96l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z',\n\t\twidth: 384,\n\t},\n\tmessages: {\n\t\taliases: ['chat', 'conversation', 'discuss'],\n\t\tcategories: ['communication', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M48 40l0 192c0 13.3 10.7 24 24 24l32 0c13.3 0 24 10.7 24 24l0 31.3 54.6-42c11.2-8.6 24.9-13.3 39-13.3l90.4 0c13.3 0 24-10.7 24-24l0-192c0-13.3-10.7-24-24-24L72 16C58.7 16 48 26.7 48 40zM72-32l240 0c39.8 0 72 32.2 72 72l0 192c0 39.8-32.2 72-72 72l-90.4 0c-3.5 0-7 1.2-9.8 3.3L118.6 379c-7.2 5.6-17 6.5-25.2 2.5S80 369.1 80 360l0-56-8 0c-39.8 0-72-32.2-72-72L0 40C0 .2 32.2-32 72-32zM240 352l0 40c0 13.3 10.7 24 24 24l90.4 0c14.1 0 27.8 4.7 39 13.3l54.6 42 0-31.3c0-13.3 10.7-24 24-24l32 0c13.3 0 24-10.7 24-24l0-192c0-13.3-10.7-24-24-24l-72 0 0-48 72 0c39.8 0 72 32.2 72 72l0 192c0 39.8-32.2 72-72 72l-8 0 0 56c0 9.1-5.2 17.5-13.4 21.5s-18 3.1-25.2-2.5l-93.2-71.7c-2.8-2.2-6.2-3.3-9.8-3.3L264 464c-39.8 0-72-32.2-72-72l0-8.9 40.5-31.1 7.5 0z',\n\t\twidth: 576,\n\t},\n\tminus: {\n\t\taliases: ['remove', 'subtract', 'collapse'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M0 256c0-13.3 10.7-24 24-24l400 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 280c-13.3 0-24-10.7-24-24z',\n\t\twidth: 448,\n\t},\n\tmoon: {\n\t\taliases: ['dark mode', 'night'],\n\t\tcategories: ['objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M239.3 48.7c-107.1 8.5-191.3 98.1-191.3 207.3 0 114.9 93.1 208 208 208 33.3 0 64.7-7.8 92.6-21.7-103.4-23.4-180.6-115.8-180.6-226.3 0-65.8 27.4-125.1 71.3-167.3zM0 256c0-141.4 114.6-256 256-256 19.4 0 38.4 2.2 56.7 6.3 9.9 2.2 17.3 10.5 18.5 20.5s-4 19.8-13.1 24.4c-60.6 30.2-102.1 92.7-102.1 164.8 0 101.6 82.4 184 184 184 5 0 9.9-.2 14.8-.6 10.1-.8 19.6 4.8 23.8 14.1s2 20.1-5.3 27.1C387.3 484.8 324.8 512 256 512 114.6 512 0 397.4 0 256z',\n\t\twidth: 512,\n\t},\n\tnextJs: {\n\t\taliases: ['next.js', 'vercel'],\n\t\tcategories: ['brands', 'custom'],\n\t\theight: 180,\n\t\tsvgPathData: '',\n\t\twidth: 180,\n\t},\n\tpaperclip: {\n\t\taliases: ['attachment', 'attach'],\n\t\tcategories: ['actions', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M241.4 18.4c53.1-53.1 139.2-53.1 192.3 0s53.1 139.2 0 192.3L264 380.5c-34.4 34.4-90.1 34.4-124.5 0s-34.4-90.1 0-124.5L298 97.6c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L173.5 289.9c-15.6 15.6-15.6 40.9 0 56.6s40.9 15.6 56.6 0L399.8 176.8c34.4-34.4 34.4-90.1 0-124.5s-90.1-34.4-124.4 0l-181 181c-53.1 53.1-53.1 139.2 0 192.3s139.2 53.1 192.3 0L428.1 284.3c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L320.6 459.6c-71.9 71.9-188.4 71.9-260.2 0s-71.9-188.4 0-260.2l181-181z',\n\t\twidth: 512,\n\t},\n\tpaperPlane: {\n\t\taliases: ['send', 'submit'],\n\t\tcategories: ['communication', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M290.5 287.7L491.4 86.9 359 456.3 290.5 287.7zM457.4 53L256.6 253.8 88 185.3 457.4 53zM38.1 216.8l205.8 83.6 83.6 205.8c5.3 13.1 18.1 21.7 32.3 21.7 14.7 0 27.8-9.2 32.8-23.1L570.6 8c3.5-9.8 1-20.6-6.3-28s-18.2-9.8-28-6.3L39.4 151.7c-13.9 5-23.1 18.1-23.1 32.8 0 14.2 8.6 27 21.7 32.3z',\n\t\twidth: 576,\n\t},\n\tpen: {\n\t\taliases: ['edit', 'write', 'modify'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M36.4 353.8c4.1-14.6 11.8-27.9 22.6-38.7l294-294C366.4 7.6 384.8 0 404 0s37.6 7.6 51.1 21.2l35.7 35.7C504.4 70.4 512 88.8 512 108s-7.6 37.6-21.2 51.1l-294 294c-10.7 10.7-24.1 18.5-38.7 22.6L30.4 511.1c-8.3 2.3-17.3 0-23.4-6.2s-8.5-15.1-6.2-23.4L36.4 353.8zM386.8 55.1l-52.9 52.9 70.1 70.1 52.9-52.9c4.6-4.6 7.1-10.7 7.1-17.2s-2.6-12.6-7.1-17.2L421.2 55.1C416.6 50.6 410.4 48 404 48s-12.6 2.6-17.2 7.1zM300 141.9L92.9 349.1c-4.9 4.9-8.4 10.9-10.3 17.6l-24.1 86.9 86.9-24.1c6.6-1.8 12.7-5.4 17.6-10.3L370.1 212 300 141.9z',\n\t\twidth: 512,\n\t},\n\tpenField: {\n\t\taliases: ['edit field', 'inline edit'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M569.3 27.1c-9.4-9.4-24.7-9.4-34.1 .1L514.4 48.4 560.1 94.1 581.2 73c9.4-9.4 9.4-24.6 0-33.9L569.3 27.1zM360 204.8c-3.2 3.3-5.5 7.4-6.4 11.9l-10.4 49.7 49.5-10.4c4.6-1 8.7-3.2 12-6.5L526.2 128 480.7 82.5 360 204.8zM501.1-6.5c28.1-28.4 73.9-28.6 102.2-.3L615.2 5.1c28.1 28.1 28.1 73.7 0 101.8L438.7 283.5c-9.9 9.9-22.4 16.7-36.1 19.6L317.1 321c-7.9 1.7-16.2-.8-21.9-6.5s-8.2-14-6.5-21.9l18-85.7c2.8-13.5 9.5-26 19.2-35.8L501.1-6.5zM64.1 168c0-39.8 32.2-72 72-72l128 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-128 0c-13.3 0-24 10.7-24 24l0 240c0 13.3 10.7 24 24 24l368 0c13.3 0 24-10.7 24-24l0-128c0-13.3 10.7-24 24-24s24 10.7 24 24l0 128c0 39.8-32.2 72-72 72l-368 0c-39.8 0-72-32.2-72-72l0-240zm112 120a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z',\n\t\twidth: 640,\n\t},\n\tphone: {\n\t\taliases: ['call', 'telephone', 'contact'],\n\t\tcategories: ['communication'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M112.8 10.9c27.3-9.1 57 3.9 68.9 30l39.7 87.3c10.6 23.4 4 51-16 67.1l-24.2 19.3c25.5 50 65.5 91.4 114.4 118.8l21.2-26.6c16.1-20.1 43.7-26.7 67.1-16l87.3 39.7c26.2 11.9 39.1 41.6 30 68.9-20.7 62.3-83.7 116.2-160.9 102.6-173.7-30.6-299.6-156.5-330.2-330.2-13.6-77.2 40.4-140.1 102.6-160.9zm25.2 49.9c-1.7-3.8-6-5.7-10-4.4-45.2 15.1-79.1 58.6-70.5 107 27.1 153.8 137.4 264.2 291.2 291.3 48.4 8.5 91.9-25.3 107-70.5 1.3-4-.6-8.3-4.4-10L364 334.4c-3.4-1.5-7.4-.6-9.7 2.3l-33.5 41.9c-7 8.7-19 11.5-29 6.7-72.5-34.4-130.5-94.3-162.4-168.2-4.3-9.9-1.4-21.5 7-28.2l38.9-31.1c2.9-2.3 3.9-6.3 2.3-9.7L137.9 60.7z',\n\t\twidth: 512,\n\t},\n\tplay: {\n\t\taliases: ['start', 'video', 'begin'],\n\t\tcategories: ['actions', 'media'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M51.6 37.6C39.5 44.8 32 57.9 32 72l0 368c0 14.1 7.5 27.2 19.6 34.4s27.2 7.5 39.6 .7l336-184c12.8-7 20.8-20.5 20.8-35.1s-8-28.1-20.8-35.1l-336-184c-12.4-6.8-27.4-6.5-39.6 .7zM80 426.5L80 85.5 391.3 256 80 426.5z',\n\t\twidth: 448,\n\t},\n\tplus: {\n\t\taliases: ['add', 'create', 'new'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M248 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 176-176 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0 0 176c0 13.3 10.7 24 24 24s24-10.7 24-24l0-176 176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0 0-176z',\n\t\twidth: 448,\n\t},\n\tquestion: {\n\t\taliases: ['help', 'unknown'],\n\t\tcategories: ['status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M48 160C48 98.1 98.1 48 160 48S272 98.1 272 160c0 48.2-30.5 89.4-73.3 105.1-29.4 10.8-62.7 37.9-62.7 78.9l0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16c0-12.1 11-26.3 31.3-33.8 61.1-22.5 104.7-81.2 104.7-150.2 0-88.4-71.6-160-160-160S0 71.6 0 160l0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8zM160 512c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z',\n\t\twidth: 320,\n\t},\n\tquotesLeft: {\n\t\taliases: ['quote', 'blockquote'],\n\t\tcategories: ['custom', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M232.896 226.425C228.749 226.425 225.964 231.118 227.632 235.301L286.746 413.714L116.988 224.541C113.406 220.543 102.507 208.132 99.9534 203.926L11.645 108.127C9.0914 103.92 11.8346 98.2854 16.4278 98.2854H227.018C227.811 98.2854 228.592 98.3754 229.349 98.5481C229.87 98.3779 230.428 98.2854 231.017 98.2854H441.605C446.22 98.2854 450.387 101.323 452.187 106.003L495.176 217.627C496.786 221.801 494.005 226.425 489.888 226.425H447.484C443.338 226.425 440.551 231.118 442.221 235.301L501.333 413.714L331.576 224.541C327.995 220.543 317.095 208.132 314.542 203.926L247.159 130.829L280.589 217.627C282.198 221.801 279.418 226.425 275.3 226.425H232.896Z',\n\t\twidth: 512,\n\t},\n\tquotesRight: {\n\t\taliases: ['quote', 'blockquote'],\n\t\tcategories: ['custom', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M289.771 226.425C293.918 226.425 296.703 231.118 295.035 235.301L235.921 413.714L405.679 224.541C409.261 220.543 420.16 208.132 422.713 203.926L511.022 108.127C513.575 103.92 510.832 98.2854 506.239 98.2854H295.649C294.855 98.2854 294.075 98.3754 293.317 98.5481C292.797 98.3779 292.239 98.2854 291.65 98.2854H81.0613C76.4469 98.2854 72.2795 101.323 70.48 106.003L27.4902 217.627C25.8806 221.801 28.6614 226.425 32.7787 226.425H75.183C79.3291 226.425 82.1152 231.118 80.4459 235.301L21.3334 413.714L191.09 224.541C194.672 220.543 205.571 208.132 208.125 203.926L275.507 130.829L242.078 217.627C240.468 221.801 243.249 226.425 247.366 226.425H289.771Z',\n\t\twidth: 512,\n\t},\n\trectangleList: {\n\t\taliases: ['list view', 'list'],\n\t\tcategories: ['documents', 'navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 112c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L64 112zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM160 320a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm104-56l160 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-160 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 128l160 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-160 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z',\n\t\twidth: 512,\n\t},\n\treply: {\n\t\taliases: ['respond', 'answer'],\n\t\tcategories: ['actions', 'communication'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M176 128l0 24c0 13.3 10.7 24 24 24l136 0c70.7 0 128 57.3 128 128 0 15.3-1.9 29.1-5.2 41.5-16.8-60.9-72.6-105.5-138.8-105.5l-120 0c-13.3 0-24 10.7-24 24L176 329.4 54.6 208 176 86.6 176 128zm80 160l64 0c53 0 96 43 96 96 0 17.3-4.2 30.5-9.5 40.2-1.6 2.9-3.3 5.5-5 7.9-2.6 3.5-5.3 6.4-7.7 8.6-.5 .5-1 .9-1.4 1.4-4.8 4.9-8.3 11.3-8.3 18.1 0 10.9 8.8 19.7 19.7 19.7 2.8 0 5.6-.6 8.1-1.9 2.6-1.4 6.3-3.5 10.8-6.5 2.7-1.8 5.7-3.8 8.9-6.2 3.7-2.7 7.6-5.8 11.7-9.3 30.2-25.8 68.7-74.1 68.7-152.1 0-97.2-78.8-176-176-176l-112 0 0-80c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c9.2 9.2 22.9 11.9 34.9 6.9S224 380.9 224 368l0-80 32 0z',\n\t\twidth: 512,\n\t},\n\trobot: {\n\t\taliases: ['bot', 'automation', 'ai'],\n\t\tcategories: ['development', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M344-8c0-13.3-10.7-24-24-24S296-21.3 296-8l0 72-104 0c-53 0-96 43-96 96l0 224c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-224c0-53-43-96-96-96l-104 0 0-72zM320 112l128 0c26.5 0 48 21.5 48 48l0 224c0 26.5-21.5 48-48 48l-256 0c-26.5 0-48-21.5-48-48l0-224c0-26.5 21.5-48 48-48l128 0zM176 360c0 13.3 10.7 24 24 24l32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0c-13.3 0-24 10.7-24 24zm112 0c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0c-13.3 0-24 10.7-24 24zm96 0c0 13.3 10.7 24 24 24l32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0c-13.3 0-24 10.7-24 24zM240 288a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm208-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM48 216c0-13.3-10.7-24-24-24S0 202.7 0 216L0 328c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112zm568-24c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24z',\n\t\twidth: 640,\n\t},\n\trocketLaunch: {\n\t\taliases: ['launch', 'deploy', 'go live'],\n\t\tcategories: ['actions', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M511.9 19.3c-1.9-9.5-9.3-16.9-18.8-18.8-45-9-114-14.7-180.7 19.7-40 20.7-77.3 54.8-107.7 107.8l-81.1 0c-16.9 0-32.5 8.8-41.2 23.3L29.5 239.5C16.7 260.9 32.1 288 56.9 288l103.5 0c35.3 0 64 28.7 64 64l0 103.5c0 24.9 27.1 40.2 48.5 27.4L361.1 430c14.5-8.7 23.3-24.3 23.3-41.2l0-81.1c53.1-30.4 87.2-67.7 107.8-107.7 34.4-66.7 28.7-135.7 19.7-180.7zM336.4 331.1l0 57.8-64 38.4 0-74.5c23.3-6.4 44.6-13.6 64-21.6zm-74-25.4c-11.2-24.6-31-44.5-55.7-55.7 30.6-109.9 79.9-162.5 127.7-187.2 45.9-23.7 94.6-23.8 133.2-18.1 5.8 38.6 5.6 87.3-18.1 133.2-24.7 47.8-77.3 97.1-187.2 127.7zM159.7 240l-74.5 0 38.4-64 57.8 0c-8 19.4-15.2 40.7-21.6 64zm248.7-96a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zM152.8 473.6c31.5-31.5 31.5-82.5 0-114s-82.5-31.5-114 0c-31.3 31.3-37.5 92-38.3 126.4-.4 14.6 11.2 26.2 25.9 25.9 34.5-.8 95.1-7 126.4-38.3zm-40.6-32c-10.1 10.1-28.5 13-41.3 13.7-8 .5-14.3-5.9-13.9-13.9 .7-12.8 3.7-31.2 13.7-41.3 11.4-11.4 30-11.4 41.4 0s11.4 30 0 41.4z',\n\t\twidth: 512,\n\t},\n\trotate: {\n\t\taliases: ['refresh', 'reload', 'sync'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M512.2 24c0-9.7-5.8-18.5-14.8-22.2S478.1 .2 471.2 7L419.4 58.8C318.8-24.7 169.3-19.3 75.1 75 31.9 118.2 7.3 173.1 1.5 229.5 .1 242.7 9.7 254.5 22.9 255.9s25-8.2 26.3-21.4c4.7-45.9 24.7-90.4 59.8-125.5 75.5-75.5 194.6-80.8 276.2-16L335.1 143c-6.9 6.9-8.9 17.2-5.2 26.2S342.4 184 352.1 184l136.1 0c13.3 0 24-10.7 24-24l0-136zm-75.1 85l27.1-27.1 0 54.1-54.1 0 27-27zm73.6 173.6c1.4-13.2-8.2-25-21.4-26.3s-25 8.2-26.3 21.4c-4.7 45.8-24.7 90.4-59.8 125.5-75.5 75.5-194.6 80.8-276.2 16L177.1 369c6.9-6.9 8.9-17.2 5.2-26.2S169.8 328 160.1 328L24 328c-13.3 0-24 10.7-24 24L0 488c0 9.7 5.8 18.5 14.8 22.2S34.1 511.8 41 505l51.8-51.8c100.6 83.5 250.1 78.1 344.3-16.2 43.2-43.2 67.8-98.1 73.6-154.5zM48 430.1l0-54.1 54.1 0-54.1 54.1z',\n\t\twidth: 512,\n\t},\n\trotateClock: {\n\t\taliases: ['history', 'recent', 'time machine'],\n\t\tcategories: ['actions', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M48 106.7L48 56c0-13.3-10.7-24-24-24S0 42.7 0 56L0 168c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-55.3 0c37-57.8 101.7-96 175.3-96 114.9 0 208 93.1 208 208S370.9 464 256 464c-42.5 0-81.9-12.7-114.7-34.5-11-7.3-25.9-4.3-33.3 6.7s-4.3 25.9 6.7 33.3c40.5 26.8 89.1 42.5 141.3 42.5 141.4 0 256-114.6 256-256S397.4 0 256 0C170.3 0 94.4 42.1 48 106.7zM256 128c-13.3 0-24 10.7-24 24l0 104c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65 0-94.1c0-13.3-10.7-24-24-24z',\n\t\twidth: 512,\n\t},\n\trotateLeft: {\n\t\taliases: ['undo', 'revert'],\n\t\tcategories: ['actions', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M14.8 1.8C23.8-1.9 34.1 .2 41 7L92.8 58.8c100.6-83.5 250.1-78.1 344.3 16.2 100 100 100 262.1 0 362s-262.1 100-362 0c-14.9-14.9-27.6-31.2-38.1-48.5-6.9-11.3-3.2-26.1 8.1-33s26.1-3.2 33 8.1c8.5 14 18.8 27.3 31 39.4 81.2 81.2 212.9 81.2 294.2 0s81.2-212.9 0-294.2c-75.5-75.5-194.6-80.8-276.2-16L177.1 143c6.9 6.9 8.9 17.2 5.2 26.2S169.8 184 160.1 184L24 184c-13.3 0-24-10.7-24-24L0 24C0 14.3 5.8 5.5 14.8 1.8zM48 81.9l0 54.1 54.1 0-54.1-54.1z',\n\t\twidth: 512,\n\t},\n\trotateRight: {\n\t\taliases: ['redo', 'repeat'],\n\t\tcategories: ['actions', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M497.4 1.8c-9-3.7-19.3-1.7-26.2 5.2L419.4 58.8C318.8-24.7 169.3-19.3 75.1 75-24.9 175-24.9 337 75.1 437s262.1 100 362 0c14.9-14.9 27.6-31.2 38.1-48.5 6.9-11.3 3.2-26.1-8.1-33s-26.1-3.2-33 8.1c-8.5 14-18.8 27.3-31 39.4-81.2 81.2-212.9 81.2-294.2 0s-81.2-212.9 0-294.2c75.5-75.5 194.6-80.8 276.2-16L335.1 143c-6.9 6.9-8.9 17.2-5.2 26.2S342.4 184 352.1 184l136.1 0c13.3 0 24-10.7 24-24l0-136c0-9.7-5.8-18.5-14.8-22.2zM464.2 81.9l0 54.1-54.1 0 54.1-54.1z',\n\t\twidth: 512,\n\t},\n\trss: {\n\t\taliases: ['feed', 'subscribe'],\n\t\tcategories: ['communication'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M0 64c0-17.7 14.3-32 32-32 229.8 0 416 186.2 416 416 0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96 14.3 96 0 81.7 0 64zM0 416a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 160c159.1 0 288 128.9 288 288 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224-17.7 0-32-14.3-32-32s14.3-32 32-32z',\n\t\twidth: 448,\n\t},\n\tsave: {\n\t\taliases: ['floppy disk', 'persist', 'store'],\n\t\tcategories: ['actions', 'development'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-242.7c0-4.2-1.7-8.3-4.7-11.3L320 86.6 320 176c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-96-32 0zm80 0l0 80 128 0 0-80-128 0zM0 96C0 60.7 28.7 32 64 32l242.7 0c17 0 33.3 6.7 45.3 18.7L429.3 128c12 12 18.7 28.3 18.7 45.3L448 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM160 320a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z',\n\t\twidth: 448,\n\t},\n\tserver: {\n\t\taliases: ['hosting', 'backend', 'infrastructure'],\n\t\tcategories: ['development'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 80c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64L64 224c-35.3 0-64-28.7-64-64L0 96zm264 8a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 336c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16L64 336zM0 352c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-64zm240 32a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm104-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z',\n\t\twidth: 448,\n\t},\n\tshareNodes: {\n\t\taliases: ['share', 'distribute', 'network'],\n\t\tcategories: ['actions', 'communication'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M432 96a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm48 0c0 53-43 96-96 96-27.4 0-52.1-11.5-69.6-29.9L188.9 231.8c2 7.7 3.1 15.8 3.1 24.2s-1.1 16.5-3.1 24.2l125.5 69.7c17.5-18.4 42.2-29.9 69.6-29.9 53 0 96 43 96 96s-43 96-96 96-96-43-96-96c0-8.3 1.1-16.5 3.1-24.2L165.6 322.1C148.1 340.5 123.4 352 96 352 43 352 0 309 0 256s43-96 96-96c27.4 0 52.1 11.5 69.6 29.9l125.5-69.7c-2-7.7-3.1-15.8-3.1-24.2 0-53 43-96 96-96s96 43 96 96zM144 256a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM384 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96z',\n\t\twidth: 512,\n\t},\n\tshield: {\n\t\taliases: ['security', 'protection', 'safe'],\n\t\tcategories: ['objects', 'security', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M256 49.4L73.1 127c-5.9 2.5-9.1 7.8-9 12.8 .5 91.4 38.4 249.3 186.4 320.1 3.6 1.7 7.8 1.7 11.3 0 148-70.8 185.9-228.7 186.3-320.1 0-5-3.1-10.2-9-12.8L256 49.4zM269.4 2.9L457.8 82.8c22 9.3 38.4 31 38.3 57.2-.5 99.2-41.3 280.7-213.6 363.2-16.7 8-36.1 8-52.8 0-172.4-82.5-213.2-264-213.6-363.2-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.9 1 251.4 0 256 0s9.2 1 13.4 2.9z',\n\t\twidth: 512,\n\t},\n\tshieldQuartered: {\n\t\taliases: ['security sections', 'protection'],\n\t\tcategories: ['objects', 'security'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M73.1 127c-5.9 2.5-9.1 7.8-9 12.8 .1 17.9 1.6 38.4 5.1 60.3l162.9 0 0-140.4-159 67.4zm6.7 121c20.9 73.9 65.9 153.7 152.3 202.3l0-202.3-152.3 0zM280 248l0 202.4C366.5 401.8 411.4 322 432.3 248L280 248zm162.9-48c3.5-21.9 5-42.3 5.1-60.3 0-5-3.1-10.2-9-12.8l-159-67.4 0 140.4 162.9 0zM269.4 2.9L457.8 82.8c22 9.3 38.4 31 38.3 57.2-.5 99.2-41.3 280.7-213.6 363.2-16.7 8-36.1 8-52.8 0-172.4-82.5-213.2-264-213.6-363.2-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.9 1 251.4 0 256 0s9.2 1 13.4 2.9z',\n\t\twidth: 512,\n\t},\n\tshovel: {\n\t\taliases: ['dig', 'build'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M431-17c9.4-9.4 24.6-9.4 33.9 0l96 96c9.4 9.4 9.4 24.6 0 33.9l-44.1 44.1c-17.2 17.2-40.6 26.9-65 26.9-16.7 0-32.3-4.4-45.8-12.2L273 305 318.1 350.1c18.7 18.7 18.7 49.1 0 67.9l-84.8 84.8C206.8 529.2 171 544 133.7 544 59.9 544 0 484.1 0 410.3 0 373 14.8 337.2 41.2 310.8l84.8-84.8c18.7-18.7 49.1-18.7 67.9 0L239 271 372.2 137.9c-7.8-13.5-12.2-29.1-12.2-45.8 0-24.4 9.7-47.7 26.9-65L431-17zm17 50.9L420.9 61.1c-8.2 8.2-12.9 19.4-12.9 31 0 24.2 19.6 43.9 43.9 43.9 11.6 0 22.8-4.6 31-12.9L510.1 96 448 33.9zM75.2 344.7c-17.4 17.4-27.2 41-27.2 65.6 0 47.3 38.4 85.7 85.7 85.7 24.6 0 48.2-9.8 65.6-27.2L284.1 384 160 259.9 75.2 344.7z',\n\t\twidth: 576,\n\t},\n\tsiren: {\n\t\taliases: ['emergency', 'alert', 'alarm'],\n\t\tcategories: ['objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M147.5 320l12.6-138.2c1.2-13.2 12.9-22.9 26.1-21.7s22.9 12.9 21.7 26.1L195.7 320 358.8 320 328 93.8c-1.1-7.9-7.8-13.8-15.9-13.8L135.9 80c-8 0-14.8 5.9-15.9 13.8L89.2 320 147.5 320zm228-232.6l31.8 233.2c23 3.5 40.6 23.4 40.6 47.4l0 64c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-64c0-24 17.6-43.9 40.7-47.4L72.5 87.4C76.8 55.6 103.9 32 135.9 32l176.3 0c32 0 59.1 23.6 63.4 55.4zM400 368l-352 0 0 64 352 0 0-64z',\n\t\twidth: 448,\n\t},\n\tsirenOn: {\n\t\taliases: ['emergency active', 'alert active', 'alarm on'],\n\t\tcategories: ['objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M69.3 36c-11-7.4-25.9-4.4-33.3 6.7S31.7 68.6 42.7 76l48 32c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3l-48-32zM597.3 76c11-7.4 14-22.3 6.7-33.3s-22.3-14-33.3-6.7l-48 32c-11 7.4-14 22.3-6.7 33.3s22.3 14 33.3 6.7l48-32zM24 192c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0zm528 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0zM185.2 320L216 93.8c1.1-7.9 7.9-13.8 15.9-13.8l176.3 0c8 0 14.8 5.9 15.9 13.8l30.8 226.2-163.1 0 12.2-133.8c1.2-13.2-8.5-24.9-21.7-26.1s-24.9 8.5-26.1 21.7l-12.6 138.2-58.4 0zm318.2 .6L471.5 87.4C467.2 55.6 440.1 32 408.1 32L231.9 32c-32 0-59.1 23.6-63.4 55.4L136.7 320.6C113.6 324.1 96 344 96 368l0 64c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-64c0-24-17.6-43.9-40.6-47.4zM144 368l352 0 0 64-352 0 0-64z',\n\t\twidth: 640,\n\t},\n\tsitemap: {\n\t\taliases: ['structure', 'hierarchy', 'tree'],\n\t\tcategories: ['development', 'navigation'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M240 80l32 0 0 32-32 0 0-32zM224 32c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l8 0 0 64-120 0c-39.8 0-72 32.2-72 72l0 56-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-56c0-13.3 10.7-24 24-24l120 0 0 80-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-80 120 0c13.3 0 24 10.7 24 24l0 56-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-56c0-39.8-32.2-72-72-72l-120 0 0-64 8 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0zM48 432l0-32 32 0 0 32-32 0zm192 0l0-32 32 0 0 32-32 0zm192 0l0-32 32 0 0 32-32 0z',\n\t\twidth: 512,\n\t},\n\tslack: {\n\t\taliases: [],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M94.1 315.1c0 25.9-21.2 47.1-47.1 47.1S0 341 0 315.1 21.2 268 47.1 268l47.1 0 0 47.1zm23.7 0c0-25.9 21.2-47.1 47.1-47.1S212 289.2 212 315.1l0 117.8c0 25.9-21.2 47.1-47.1 47.1s-47.1-21.2-47.1-47.1l0-117.8zm47.1-189c-25.9 0-47.1-21.2-47.1-47.1S139 32 164.9 32 212 53.2 212 79.1l0 47.1-47.1 0zm0 23.7c25.9 0 47.1 21.2 47.1 47.1S190.8 244 164.9 244L47.1 244C21.2 244 0 222.8 0 196.9s21.2-47.1 47.1-47.1l117.8 0zm189 47.1c0-25.9 21.2-47.1 47.1-47.1S448 171 448 196.9 426.8 244 400.9 244l-47.1 0 0-47.1zm-23.7 0c0 25.9-21.2 47.1-47.1 47.1S236 222.8 236 196.9l0-117.8C236 53.2 257.2 32 283.1 32s47.1 21.2 47.1 47.1l0 117.8zm-47.1 189c25.9 0 47.1 21.2 47.1 47.1S309 480 283.1 480 236 458.8 236 432.9l0-47.1 47.1 0zm0-23.7c-25.9 0-47.1-21.2-47.1-47.1S257.2 268 283.1 268l117.8 0c25.9 0 47.1 21.2 47.1 47.1s-21.2 47.1-47.1 47.1l-117.8 0z',\n\t\twidth: 448,\n\t},\n\tslashForward: {\n\t\taliases: ['divider', 'separator'],\n\t\tcategories: ['development', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M308.1 3.3c11.4 6.7 15.3 21.4 8.6 32.8l-272 464c-6.7 11.4-21.4 15.3-32.8 8.6s-15.3-21.4-8.6-32.8l272-464C282 .4 296.7-3.4 308.1 3.3z',\n\t\twidth: 320,\n\t},\n\tslidersSimple: {\n\t\taliases: ['controls', 'adjustments', 'tune'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M80 400a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm76.3-56c-10.2-32.5-40.5-56-76.3-56-44.2 0-80 35.8-80 80s35.8 80 80 80c35.8 0 66.1-23.5 76.3-56L488 392c13.3 0 24-10.7 24-24s-10.7-24-24-24l-331.7 0zM464 144a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM355.7 120L24 120c-13.3 0-24 10.7-24 24s10.7 24 24 24l331.7 0c10.2 32.5 40.5 56 76.3 56 44.2 0 80-35.8 80-80s-35.8-80-80-80c-35.8 0-66.1 23.5-76.3 56z',\n\t\twidth: 512,\n\t},\n\tsnowflake: {\n\t\taliases: ['freeze', 'frozen', 'cold'],\n\t\tcategories: ['objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M280.1-8c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 78.1-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l57 57 0 76.5-66.2-38.2-20.9-77.8c-3.4-12.8-16.6-20.4-29.4-17S95.2 98 98.7 110.8l8.4 31.5-67.6-39C28 96.6 13.3 100.5 6.7 112S4 138.2 15.5 144.8l67.6 39-31.5 8.4c-12.8 3.4-20.4 16.6-17 29.4s16.6 20.4 29.4 17l77.8-20.9 66.2 38.2-66.2 38.2-77.8-20.9c-12.8-3.4-26 4.2-29.4 17s4.2 26 17 29.4l31.5 8.4-67.6 39C4 373.8 .1 388.5 6.7 400s21.3 15.4 32.8 8.8l67.6-39-8.4 31.5c-3.4 12.8 4.2 26 17 29.4s26-4.2 29.4-17l20.9-77.8 66.2-38.2 0 76.5-57 57c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l23-23 0 78.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-78.1 23 23c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-57-57 0-76.5 66.2 38.2 20.9 77.8c3.4 12.8 16.6 20.4 29.4 17s20.4-16.6 17-29.4l-8.4-31.5 67.6 39c11.5 6.6 26.2 2.7 32.8-8.8s2.7-26.2-8.8-32.8l-67.6-39 31.5-8.4c12.8-3.4 20.4-16.6 17-29.4s-16.6-20.4-29.4-17l-77.8 20.9-66.2-38.2 66.2-38.2 77.8 20.9c12.8 3.4 26-4.2 29.4-17s-4.2-26-17-29.4l-31.5-8.4 67.6-39c11.5-6.6 15.4-21.3 8.8-32.8s-21.3-15.4-32.8-8.8l-67.6 39 8.4-31.5c3.4-12.8-4.2-26-17-29.4s-26 4.2-29.4 17l-20.9 77.8-66.2 38.2 0-76.5 57-57c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23 0-78.1z',\n\t\twidth: 512,\n\t},\n\tsparkles: {\n\t\taliases: ['ai', 'magic', 'new', 'highlight'],\n\t\tcategories: ['actions', 'development'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M391.5 53.2c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L448 96 469.2 152.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L512 96 568.5 74.8c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L512 32 490.8-24.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L448 32 391.5 53.2zM167.9 208.5l24.1-52.1 24.1 52.1c4.8 10.4 13.1 18.7 23.5 23.5l52.1 24.1-52.1 24.1c-10.4 4.8-18.7 13.1-23.5 23.5l-24.1 52.1-24.1-52.1c-4.8-10.4-13.1-18.7-23.5-23.5L92.3 256 144.5 231.9c10.4-4.8 18.7-13.1 23.5-23.5zM165.6 99.1l-41.2 89.3-89.3 41.2-.6 .3c-3.9 1.8-12.3 5.7-25.2 11.6-5.7 2.6-9.3 8.3-9.3 14.5s3.6 11.9 9.3 14.5c12.9 5.9 21.2 9.8 25.2 11.6l.6 .3 89.3 41.2 41.2 89.3 .3 .6c1.8 3.9 5.7 12.3 11.6 25.2 2.6 5.7 8.3 9.3 14.5 9.3s11.9-3.6 14.5-9.3c14.4-31.1 15.1-32.7 53.1-115l89.3-41.2 .6-.3c3.9-1.8 12.3-5.7 25.2-11.6 5.7-2.6 9.3-8.3 9.3-14.5s-3.6-11.9-9.3-14.5c-31.1-14.4-32.7-15.1-115-53.1l-41.2-89.3-.3-.6c-1.8-3.9-5.7-12.3-11.6-25.2-2.6-5.7-8.3-9.3-14.5-9.3s-11.9 3.6-14.5 9.3c-13.8 29.8-11.5 25-11.9 25.8zM416 416l-56.5 21.2c-4.5 1.7-7.5 6-7.5 10.8s3 9.1 7.5 10.8L416 480 437.2 536.5c1.7 4.5 6 7.5 10.8 7.5s9.1-3 10.8-7.5L480 480 536.5 458.8c4.5-1.7 7.5-6 7.5-10.8s-3-9.1-7.5-10.8L480 416 458.8 359.5c-1.7-4.5-6-7.5-10.8-7.5s-9.1 3-10.8 7.5L416 416z',\n\t\twidth: 576,\n\t},\n\tsquareCheck: {\n\t\taliases: ['checkbox', 'checked', 'selected'],\n\t\tcategories: ['actions', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zm230.7 89.9c7.8-10.7 22.8-13.1 33.5-5.3 10.7 7.8 13.1 22.8 5.3 33.5L211.4 366.1c-4.1 5.7-10.5 9.3-17.5 9.8-7 .5-13.9-2-18.8-6.9l-55.9-55.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l36 36 105.6-145.2z',\n\t\twidth: 448,\n\t},\n\tsquareCode: {\n\t\taliases: ['embed', 'code block'],\n\t\tcategories: ['development'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M384 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM255 175c-9.4 9.4-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9l-64-64c-9.4-9.4-24.6-9.4-33.9 0zM193 209c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L95 239c-9.4 9.4-9.4 24.6 0 33.9l64 64c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47z',\n\t\twidth: 448,\n\t},\n\tsquareMinus: {\n\t\taliases: ['collapse', 'remove'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM136 232l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z',\n\t\twidth: 448,\n\t},\n\tsquarePen: {\n\t\taliases: ['edit', 'compose', 'write'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm325.8 43.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-23.8 23.8-71-71 23.8-23.8c15.6-15.6 40.9-15.6 56.6 0zM119.9 289l91.5-91.6 71 71-91.6 91.5c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z',\n\t\twidth: 448,\n\t},\n\tsquareQuestion: {\n\t\taliases: ['help', 'unknown'],\n\t\tcategories: ['objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm224 88c-16.1 0-29.2 13.1-29.2 29.2 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-42.6 34.6-77.2 77.2-77.2s77.2 34.6 77.2 77.2c0 45.5-34.5 64.7-53.7 71.8-2.3 10.8-11.9 19-23.5 19-13.3 0-24-10.7-24-24 0-20.2 14.6-34.6 29.5-39.5 6-2 12.3-5.1 16.8-9.5 3.9-3.8 6.9-9 6.9-17.7 0-16.1-13.1-29.2-29.2-29.2zM196 352a28 28 0 1 1 56 0 28 28 0 1 1 -56 0z',\n\t\twidth: 448,\n\t},\n\tsquareTerminal: {\n\t\taliases: ['cli', 'console', 'command line'],\n\t\tcategories: ['development', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M384 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm39 127c-9.4 9.4-9.4 24.6 0 33.9l63 63-63 63c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0zM216 336c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0z',\n\t\twidth: 448,\n\t},\n\tstar: {\n\t\taliases: ['favorite', 'rating', 'bookmark'],\n\t\tcategories: ['actions', 'objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M288.1-32c9 0 17.3 5.1 21.4 13.1L383 125.3 542.9 150.7c8.9 1.4 16.3 7.7 19.1 16.3s.5 18-5.8 24.4L441.7 305.9 467 465.8c1.4 8.9-2.3 17.9-9.6 23.2s-17 6.1-25 2L288.1 417.6 143.8 491c-8 4.1-17.7 3.3-25-2s-11-14.2-9.6-23.2L134.4 305.9 20 191.4c-6.4-6.4-8.6-15.8-5.8-24.4s10.1-14.9 19.1-16.3l159.9-25.4 73.6-144.2c4.1-8 12.4-13.1 21.4-13.1zm0 76.8L230.3 158c-3.5 6.8-10 11.6-17.6 12.8l-125.5 20 89.8 89.9c5.4 5.4 7.9 13.1 6.7 20.7l-19.8 125.5 113.3-57.6c6.8-3.5 14.9-3.5 21.8 0l113.3 57.6-19.8-125.5c-1.2-7.6 1.3-15.3 6.7-20.7l89.8-89.9-125.5-20c-7.6-1.2-14.1-6-17.6-12.8L288.1 44.8z',\n\t\twidth: 576,\n\t},\n\tstarSolid: {\n\t\taliases: ['favorited', 'rated', 'bookmarked'],\n\t\tcategories: ['actions', 'objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M309.5-18.9c-4.1-8-12.4-13.1-21.4-13.1s-17.3 5.1-21.4 13.1L193.1 125.3 33.2 150.7c-8.9 1.4-16.3 7.7-19.1 16.3s-.5 18 5.8 24.4l114.4 114.5-25.2 159.9c-1.4 8.9 2.3 17.9 9.6 23.2s16.9 6.1 25 2L288.1 417.6 432.4 491c8 4.1 17.7 3.3 25-2s11-14.2 9.6-23.2L441.7 305.9 556.1 191.4c6.4-6.4 8.6-15.8 5.8-24.4s-10.1-14.9-19.1-16.3L383 125.3 309.5-18.9z',\n\t\twidth: 576,\n\t},\n\tsun: {\n\t\taliases: ['light mode', 'day', 'brightness'],\n\t\tcategories: ['objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M288-32c8 0 15.4 4 19.9 10.6l58.8 87.4 103.4-20.2c7.8-1.5 15.9 .9 21.6 6.6s8.1 13.8 6.6 21.6L478 177.3 565.4 236.1C572 240.5 576 248 576 256s-4 15.4-10.6 19.9L478 334.7 498.2 438c1.5 7.8-.9 15.9-6.6 21.6s-13.8 8.1-21.6 6.6L366.7 446 307.9 533.4C303.4 540 296 544 288 544s-15.4-4-19.9-10.6L209.3 446 105.9 466.2c-7.8 1.5-15.9-.9-21.6-6.6s-8.1-13.8-6.6-21.6L98 334.7 10.6 275.9C4 271.4 0 264 0 256s4-15.4 10.6-19.9L98 177.3 77.8 73.9c-1.5-7.8 .9-15.9 6.6-21.6s13.8-8.1 21.6-6.6l103.3 20.2 58.8-87.4 1.8-2.3C274.4-29 281-32 288-32zm-47.8 138c-5.4 8-15 12-24.5 10.2l-84-16.4 16.4 84c1.8 9.5-2.2 19.1-10.2 24.5L67 256 138 303.8c8 5.4 12 15 10.2 24.5l-16.4 84 84-16.4 3.5-.4c8.3-.4 16.3 3.6 21 10.6l47.8 71 47.8-71 2.2-2.8c5.6-6.1 14-9 22.3-7.3l84 16.4-16.4-84c-1.8-9.5 2.2-19.1 10.2-24.5l71-47.8-71-47.8c-8-5.4-12-15-10.2-24.5l16.4-84-84 16.4c-9.5 1.8-19.1-2.2-24.5-10.2l-47.8-71-47.8 71zM288 376a120 120 0 1 1 0-240 120 120 0 1 1 0 240zm0-192a72 72 0 1 0 0 144 72 72 0 1 0 0-144z',\n\t\twidth: 576,\n\t},\n\tsunBright: {\n\t\taliases: ['bright', 'light', 'sunny'],\n\t\tcategories: ['objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M288 432c13.3 0 24 10.7 24 24l0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-64c0-13.3 10.7-24 24-24zM129.6 380.4c9.4-9.4 24.6-9.4 34 0s9.4 24.6 0 34l-45.3 45.3c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l45.2-45.3zm282.8 0c9.4-9.4 24.6-9.4 34 0l45.3 45.3c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-45.3-45.3c-9.4-9.4-9.4-24.6 0-34zM288 384a128 128 0 1 1 0-256 128 128 0 1 1 0 256zm0-208a80 80 0 1 0 0 160 80 80 0 1 0 0-160zM88 232c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0zm464 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0zM84.3 52.3c9.4-9.4 24.6-9.4 33.9 0l45.3 45.2c9.4 9.4 9.4 24.6 0 34s-24.6 9.4-34 0L84.3 86.3c-9.4-9.4-9.4-24.6 0-33.9zm373.4 0c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-45.3 45.3c-9.4 9.4-24.6 9.4-34 0s-9.4-24.6 0-34l45.3-45.2zM288-32c13.3 0 24 10.7 24 24l0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-64c0-13.3 10.7-24 24-24z',\n\t\twidth: 576,\n\t},\n\ttable: {\n\t\taliases: ['spreadsheet', 'data grid'],\n\t\tcategories: ['data'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64l-320 0-6.5-.3C25.2 476.4 0 449.1 0 416L0 96C0 60.7 28.7 32 64 32l320 0zM48 312l0 104c0 8.8 7.2 16 16 16l136 0 0-120-152 0zm200 0l0 120 136 0c8.8 0 16-7.2 16-16l0-104-152 0zM48 264l152 0 0-104-152 0 0 104zm200 0l152 0 0-104-152 0 0 104z',\n\t\twidth: 448,\n\t},\n\ttableRows: {\n\t\taliases: ['rows', 'list', 'data rows'],\n\t\tcategories: ['data'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M384 432l-256 0 0-152 272 0 0 136c0 8.8-7.2 16-16 16zm16-200l-272 0 0-152 256 0c8.8 0 16 7.2 16 16l0 136zM0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416z',\n\t\twidth: 448,\n\t},\n\tterminal: {\n\t\taliases: ['cli', 'console', 'shell', 'command line'],\n\t\tcategories: ['actions', 'development', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M7 105C-2.3 95.6-2.3 80.4 7 71S31.6 61.7 41 71L209 239c9.4 9.4 9.4 24.6 0 33.9L41 441c-9.4 9.4-24.6 9.4-33.9 0S-2.3 416.4 7 407L158.1 256 7 105zM488 400c13.3 0 24 10.7 24 24s-10.7 24-24 24l-272 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l272 0z',\n\t\twidth: 512,\n\t},\n\ttext: {\n\t\taliases: ['typography', 'font', 'content'],\n\t\tcategories: ['actions', 'development', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M48 136l0-56 120 0 0 352-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-352 120 0 0 56c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-22.1-17.9-40-40-40L40 32C17.9 32 0 49.9 0 72l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24z',\n\t\twidth: 384,\n\t},\n\tthreads: {\n\t\taliases: [],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M331.5 235.7c2.2 .9 4.2 1.9 6.3 2.8 29.2 14.1 50.6 35.2 61.8 61.4 15.7 36.5 17.2 95.8-30.3 143.2-36.2 36.2-80.3 52.5-142.6 53l-.3 0c-70.2-.5-124.1-24.1-160.4-70.2-32.3-41-48.9-98.1-49.5-169.6l0-.5C17 184.3 33.6 127.2 65.9 86.2 102.2 40.1 156.2 16.5 226.4 16l.3 0c70.3 .5 124.9 24 162.3 69.9 18.4 22.7 32 50 40.6 81.7l-40.4 10.8c-7.1-25.8-17.8-47.8-32.2-65.4-29.2-35.8-73-54.2-130.5-54.6-57 .5-100.1 18.8-128.2 54.4-26.2 33.3-39.8 81.5-40.3 143.2 .5 61.7 14.1 109.9 40.3 143.3 28 35.6 71.2 53.9 128.2 54.4 51.4-.4 85.4-12.6 113.7-40.9 32.3-32.2 31.7-71.8 21.4-95.9-6.1-14.2-17.1-26-31.9-34.9-3.7 26.9-11.8 48.3-24.7 64.8-17.1 21.8-41.4 33.6-72.7 35.3-23.6 1.3-46.3-4.4-63.9-16-20.8-13.8-33-34.8-34.3-59.3-2.5-48.3 35.7-83 95.2-86.4 21.1-1.2 40.9-.3 59.2 2.8-2.4-14.8-7.3-26.6-14.6-35.2-10-11.7-25.6-17.7-46.2-17.8l-.7 0c-16.6 0-39 4.6-53.3 26.3l-34.4-23.6c19.2-29.1 50.3-45.1 87.8-45.1l.8 0c62.6 .4 99.9 39.5 103.7 107.7l-.2 .2 .1 0zm-156 68.8c1.3 25.1 28.4 36.8 54.6 35.3 25.6-1.4 54.6-11.4 59.5-73.2-13.2-2.9-27.8-4.4-43.4-4.4-4.8 0-9.6 .1-14.4 .4-42.9 2.4-57.2 23.2-56.2 41.8l-.1 .1z',\n\t\twidth: 448,\n\t},\n\tthumbsDown: {\n\t\taliases: ['dislike', 'reject', 'downvote'],\n\t\tcategories: ['actions', 'objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M360 32l7.4 .4c35 3.6 62.5 32.2 64.4 67.7 17.8 11.8 30.1 31.4 32 53.9l.2 6c0 5.7-.7 11.2-2 16.5 10.2 11.5 16.8 26.3 17.8 42.7l.2 4.8c0 13.2-3.6 25.4-9.8 36 4.9 8.4 8.2 17.9 9.3 28l.4 8c0 37.3-28.3 67.9-64.6 71.6l-7.4 .4-109.7 0 14.1 30 3.1 7.6c12.5 35.7-1.8 75.5-34.2 95l-7.2 3.9c-37.5 17.6-81.7 3.6-102.6-31.2l-.6-.9-2.7-5-.6-1.2-30.1-64c-9.4 17.8-28 29.9-49.5 29.9l-32 0c-30.9 0-56-25.1-56-56L0 152c0-30.9 25.1-56 56-56l32 0c12.4 0 23.9 4.1 33.2 11 13.2-21.4 32-39.4 55-51.6l12.2-6.5 .7-.3 6.6-3.2 .7-.3 7.1-3c16.7-6.6 34.5-9.9 52.6-9.9L360 32zM255.9 80c-12 0-23.9 2.3-35.1 6.6l-4.7 2-5.3 2.6 0 0-12.2 6.5c-29.2 15.5-48.3 44.9-50.7 77.6l-.2 8 0 112.9 .1 4.1c.5 8.2 2.5 16.2 6 23.7l56.8 120.9 2.1 3.8c8.4 13.7 26 19.1 40.8 12.2l2.9-1.6c13-7.8 18.7-23.7 13.7-38l-1.2-3-30.2-64.2c-3.5-7.4-2.9-16.1 1.5-23.1s12-11.1 20.2-11.1l147.5 0 2.4-.1c11.3-1.1 20.3-10.1 21.4-21.4l.1-2.5c0-7.1-3.1-13.5-8.2-18-5.2-4.6-8.2-11.1-8.2-18s3-13.4 8.2-18c4.4-3.9 7.4-9.3 8-15.3l.2-2.7c0-8.4-4.4-15.9-11.2-20.2-10.7-6.9-14.2-20.9-8-32 1.5-2.6 2.5-5.6 2.9-8.6l.2-3.2c0-10.6-6.9-19.6-16.6-22.8-11.7-3.8-18.7-15.9-16-28 .2-.9 .3-1.8 .4-2.6l.2-2.6c0-12.4-9.5-22.6-21.6-23.8L360 80 255.9 80zM56 144c-4.4 0-8 3.6-8 8l0 224c0 4.4 3.6 8 8 8l32 0c4.4 0 8-3.6 8-8l0-224c0-4.4-3.6-8-8-8l-32 0z',\n\t\twidth: 512,\n\t},\n\tthumbsUp: {\n\t\taliases: ['like', 'approve', 'upvote'],\n\t\tcategories: ['actions', 'objects', 'status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M171.5 38.8C192.3 4 236.5-10 274 7.6l7.2 3.8C316 32.3 330 76.5 312.4 114l0 0-14.1 30 109.7 0 7.4 .4c36.3 3.7 64.6 34.4 64.6 71.6 0 13.2-3.6 25.4-9.8 36 6.1 10.6 9.7 22.8 9.8 36 0 18.3-6.9 34.8-18 47.5 1.3 5.3 2 10.8 2 16.5 0 25.1-12.9 47-32.2 59.9-1.9 35.5-29.4 64.2-64.4 67.7l-7.4 .4-104.1 0c-18 0-35.9-3.4-52.6-9.9l-7.1-3-.7-.3-6.6-3.2-.7-.3-12.2-6.5c-12.3-6.5-23.3-14.7-32.9-24.1-4.1 26.9-27.3 47.4-55.3 47.4l-32 0c-30.9 0-56-25.1-56-56L0 200c0-30.9 25.1-56 56-56l32 0c10.8 0 20.9 3.1 29.5 8.5l50.1-106.5 .6-1.2 2.7-5 .6-.9zM56 192c-4.4 0-8 3.6-8 8l0 224c0 4.4 3.6 8 8 8l32 0c4.4 0 8-3.6 8-8l0-224c0-4.4-3.6-8-8-8l-32 0zM253.6 51c-14.8-6.9-32.3-1.6-40.7 12l-2.2 4-56.8 120.9c-3.5 7.5-5.5 15.5-6 23.7l-.1 4.2 0 112.9 .2 7.9c2.4 32.7 21.4 62.1 50.7 77.7l11.5 6.1 6.3 3.1c12.4 5.6 25.8 8.5 39.4 8.5l104.1 0 2.4-.1c12.1-1.2 21.6-11.5 21.6-23.9l-.2-2.6c-.1-.9-.2-1.7-.4-2.6-2.7-12.1 4.3-24.2 16-28 9.7-3.1 16.6-12.2 16.6-22.8 0-4.3-1.1-8.2-3.1-11.8-6.3-11.1-2.8-25.2 8-32 6.8-4.3 11.2-11.8 11.2-20.2 0-7.1-3.1-13.5-8.2-18-5.2-4.6-8.2-11.1-8.2-18s3-13.4 8.2-18c5.1-4.5 8.2-10.9 8.2-18l-.1-2.4c-1.1-11.3-10.1-20.3-21.4-21.4l-2.4-.1-147.5 0c-8.2 0-15.8-4.2-20.2-11.1-4.4-6.9-5-15.7-1.5-23.1L269 93.6c7-15 1.4-32.7-12.5-41L253.6 51z',\n\t\twidth: 512,\n\t},\n\ttrash: {\n\t\taliases: ['delete', 'remove', 'bin', 'discard'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M136.2 4.8c4.7-12.5 16.6-20.8 30-20.8l115.6 0c13.3 0 25.3 8.3 30 20.8L328 48 424 48c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 96C10.7 96 0 85.3 0 72S10.7 48 24 48l96 0 16.2-43.2zm-84.6 448L28.7 144 76.9 144 99.5 449.2c.6 8.4 7.6 14.8 16 14.8l217.1 0c8.4 0 15.3-6.5 16-14.8l22.6-305.2 48.1 0-22.9 308.7c-2.5 33.4-30.3 59.3-63.8 59.3l-217.1 0c-33.5 0-61.3-25.9-63.8-59.3z',\n\t\twidth: 448,\n\t},\n\ttriangleExclamation: {\n\t\taliases: ['warning', 'caution', 'danger'],\n\t\tcategories: ['status'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M256.5 0c14.7 0 28.2 8.1 35.2 21l216 400c6.7 12.4 6.4 27.4-.8 39.5S486.6 480 472.5 480l-432 0c-14.1 0-27.1-7.4-34.3-19.5s-7.5-27.1-.8-39.5l216-400c7-12.9 20.5-21 35.2-21zM53.9 432L459.1 432 256.5 56.8 53.9 432zm202.6-40a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0-208c18.6 0 33 16.1 31 34.6l-7.1 64.1C279 294.8 268.7 304 256.5 304s-22.5-9.2-23.8-21.3l-7.1-64.1c-2-18.5 12.4-34.6 31-34.6z',\n\t\twidth: 512,\n\t},\n\ttwitter: {\n\t\taliases: [],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M459.4 151.7c.3 4.5 .3 9.1 .3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103l0-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53 51.7 63.7 129.3 105.3 216.4 109.8-1.6-7.8-2.6-15.9-2.6-24 0-57.8 46.8-104.9 104.9-104.9 30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3z',\n\t\twidth: 512,\n\t},\n\tupload: {\n\t\taliases: ['import', 'send'],\n\t\tcategories: ['actions', 'development'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M248 328c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-246.1-63 63c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L207 7c9.4-9.4 24.6-9.4 33.9 0L345 111c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-63-63 0 246.1zm-96-8l-88 0c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-80c0-8.8-7.2-16-16-16l-88 0 0-48 88 0c35.3 0 64 28.7 64 64l0 80c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-80c0-35.3 28.7-64 64-64l88 0 0 48zm168 56a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z',\n\t\twidth: 448,\n\t},\n\tuser: {\n\t\taliases: ['person', 'account', 'profile'],\n\t\tcategories: ['users'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M144 128a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zm208 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0zM48 480c0-70.7 57.3-128 128-128l96 0c70.7 0 128 57.3 128 128l0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8c0-97.2-78.8-176-176-176l-96 0C78.8 304 0 382.8 0 480l0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8z',\n\t\twidth: 448,\n\t},\n\tuserAstronaut: {\n\t\taliases: ['space', 'astronaut'],\n\t\tcategories: ['users'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M352 160a128 128 0 1 0 -256 0 128 128 0 1 0 256 0zM224-16c74.6 0 138.4 46.4 164 112l4 0c13.3 0 24 10.7 24 24l0 80c0 13.3-10.7 24-24 24l-4 0c-25.6 65.6-89.4 112-164 112S85.6 289.6 60 224l-4 0c-13.3 0-24-10.7-24-24l0-80c0-13.3 10.7-24 24-24l4 0C85.6 30.4 149.4-16 224-16zM128 176c0-44.2 35.8-80 80-80l32 0c44.2 0 80 35.8 80 80s-35.8 80-80 80l-32 0c-44.2 0-80-35.8-80-80zm85.3-13.3l-6-21.2c-.9-3.3-3.9-5.5-7.3-5.5s-6.4 2.2-7.3 5.5l-6 21.2-21.2 6c-3.3 .9-5.5 3.9-5.5 7.3s2.2 6.4 5.5 7.3l21.2 6 6 21.2c.9 3.3 3.9 5.5 7.3 5.5s6.4-2.2 7.3-5.5l6-21.2 21.2-6c3.3-.9 5.5-3.9 5.5-7.3s-2.2-6.4-5.5-7.3l-21.2-6zM89.7 339.3c17 12.8 35.9 23.2 56.2 30.7-55.7 10.4-97.9 59.2-97.9 118 0 13.3-10.7 24-24 24S0 501.3 0 488c0-64.5 36.4-120.5 89.7-148.7zM302.1 370c20.3-7.5 39.2-17.9 56.2-30.7 53.4 28.1 89.7 84.2 89.7 148.7 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-58.7-42.2-107.6-97.9-118zM128 432l192 0c17.7 0 32 14.3 32 32l0 48-56 0 0-24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24-48 0 0-24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24-56 0 0-48c0-17.7 14.3-32 32-32z',\n\t\twidth: 448,\n\t},\n\tuserGear: {\n\t\taliases: ['user settings', 'account settings'],\n\t\tcategories: ['users'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M336.5 128a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zm-208 0a128 128 0 1 1 256 0 128 128 0 1 1 -256 0zm-48 352l0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8c0-97.2 78.8-176 176-176l79.2 0c-7.4 15.4-8.9 32.3-5.1 48l-74.1 0c-70.7 0-128 57.3-128 128zM432.6 247.6c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 6.1c0 18.9 24.1 32.8 40.5 23.4l5-2.9c11.6-6.7 26.5-2.6 33 9.1l22.4 40.2c6.2 11.2 2.6 25.2-8.2 32l-4.7 2.9c-16.2 10.1-16.2 39.9 0 50.1l4.6 2.9c10.8 6.8 14.5 20.8 8.3 32L607 483.8c-6.5 11.7-21.4 15.9-33 9.1l-4.9-2.9c-16.4-9.5-40.5 4.5-40.5 23.4l0 6.1c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-5.9c0-19-24.2-33-40.7-23.5l-4.8 2.8c-11.6 6.7-26.4 2.6-33-9.1l-22.6-40.4c-6.2-11.2-2.6-25.3 8.3-32.1l4.4-2.7c16.3-10.1 16.3-40.1 0-50.2l-4.5-2.8c-10.9-6.8-14.5-20.9-8.3-32.1l22.5-40.3c6.5-11.7 21.4-15.8 32.9-9.1l4.8 2.8c16.5 9.5 40.7-4.5 40.7-23.5l0-5.9zm99.9 136.2a52 52 0 1 0 -104 0 52 52 0 1 0 104 0z',\n\t\twidth: 640,\n\t},\n\tuserPlus: {\n\t\taliases: ['add user', 'invite', 'new user'],\n\t\tcategories: ['users'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M304 304c97.2 0 176 78.8 176 176l0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8c0-70.7-57.3-128-128-128l-96 0c-70.7 0-128 57.3-128 128l0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8c0-97.2 78.8-176 176-176l96 0zM528 80c13.3 0 24 10.7 24 24l0 48 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0 0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-48c0-13.3 10.7-24 24-24zM256 256a128 128 0 1 1 0-256 128 128 0 1 1 0 256zm0-208a80 80 0 1 0 0 160 80 80 0 1 0 0-160z',\n\t\twidth: 640,\n\t},\n\tusers: {\n\t\taliases: ['people', 'team', 'group'],\n\t\tcategories: ['users'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M320 192a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm0-176a112 112 0 1 1 0 224 112 112 0 1 1 0-224zM296 336c-57.4 0-104 46.6-104 104l0 16c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-16c0-83.9 68.1-152 152-152l48 0c83.9 0 152 68.1 152 152l0 16c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-16c0-57.4-46.6-104-104-104l-48 0zm135.4-93.2c11.7-11.3 21.6-24.4 29.4-38.8 5.9 2.6 12.4 4 19.2 4 26.5 0 48-21.5 48-48s-21.5-48-48-48l-.8 0c-1.6-16.6-5.8-32.4-12.1-47.1 4.2-.6 8.6-.9 12.9-.9 53 0 96 43 96 96s-43 96-96 96c-17.7 0-34.3-4.8-48.6-13.2zM160 64c4.4 0 8.7 .3 12.9 .9-6.3 14.7-10.5 30.6-12.1 47.1l-.8 0c-26.5 0-48 21.5-48 48s21.5 48 48 48c6.8 0 13.3-1.4 19.2-4 7.8 14.4 17.7 27.5 29.4 38.8-14.2 8.4-30.8 13.2-48.6 13.2-53 0-96-43-96-96s43-96 96-96zM149.3 304c-15.1 16.3-27.5 35-36.5 55.6-38 15.5-64.8 52.8-64.8 96.4 0 13.3-10.7 24-24 24S0 469.3 0 456c0-83.1 66.6-150.6 149.3-152zm377.9 55.6c-9-20.6-21.5-39.4-36.5-55.6 82.7 1.4 149.3 68.9 149.3 152 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-43.6-26.8-80.9-64.8-96.4z',\n\t\twidth: 640,\n\t},\n\tvideo: {\n\t\taliases: ['camera', 'recording', 'webcam'],\n\t\tcategories: ['media'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M96 112c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L96 112zM32 128c0-35.3 28.7-64 64-64l256 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L96 448c-35.3 0-64-28.7-64-64l0-256zm505.6-11.2c4.2-3.1 9.2-4.8 14.4-4.8 13.3 0 24 10.7 24 24l0 240c0 13.3-10.7 24-24 24-5.2 0-10.2-1.7-14.4-4.8l-73.6-55.2 0-60 64 48 0-144-64 48 0-60 73.6-55.2z',\n\t\twidth: 576,\n\t},\n\twavePulse: {\n\t\taliases: ['activity', 'heartbeat', 'health'],\n\t\tcategories: ['data', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M287.4 0c11.1-.3 21 7.1 23.8 17.9l78.7 301.7 36.2-81.3c3.9-8.7 12.4-14.3 21.9-14.3l104 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-88.4 0-57.7 129.7c-4.1 9.3-13.7 15-23.9 14.2s-18.7-8-21.3-17.9l-70.1-268.6-75.2 363.4c-2.3 10.9-11.7 18.8-22.8 19.1s-21-7.1-23.9-17.8L109.6 272 24 272c-13.3 0-24-10.7-24-24s10.7-24 24-24l104 0c10.9 0 20.4 7.3 23.2 17.8l37.9 142 75.4-364.7C266.8 8.2 276.2 .3 287.4 0z',\n\t\twidth: 576,\n\t},\n\twindowRestore: {\n\t\taliases: ['restore', 'minimize', 'window'],\n\t\tcategories: ['actions', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M512 80L224 80c-8.8 0-16 7.2-16 16l0 16-48 0 0-16c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64l-48 0 0-48 48 0c8.8 0 16-7.2 16-16l0-192c0-8.8-7.2-16-16-16zM368 288l-320 0 0 128c0 8.8 7.2 16 16 16l288 0c8.8 0 16-7.2 16-16l0-128zM64 160l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64z',\n\t\twidth: 576,\n\t},\n\twordpress: {\n\t\taliases: ['wp'],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M61.7 169.4l101.5 278c-71-34.4-119.9-107.2-119.9-191.4 0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8 .9 0 1.8 .1 2.8 .2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7 .3 13.7 .3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4 46.6-139.6-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zM259.7 274.6L195.9 460.1c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9L259.7 274.6zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9c63.3-36.9 105.8-105.4 105.8-183.9 0-37-9.4-71.8-26-102.1zM8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm484.6 0a236.6 236.6 0 1 0 -473.2 0 236.6 236.6 0 1 0 473.2 0z',\n\t\twidth: 512,\n\t},\n\twreathLaurel: {\n\t\taliases: ['award', 'victory', 'achievement'],\n\t\tcategories: ['objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M237.6 50.9l-11.8 .7c-20.3 1.1-36.6 17.4-37.7 37.7l-.7 11.8 11.8-.7c20.3-1.1 36.6-17.4 37.7-37.7l.7-11.8zM43.6 177.7c-11.4-30.3-9.7-65.3 7.8-95.6L72 46.4c6.3-10.9 20.2-14.6 31-8.3 15.9 9.2 28.9 21.4 38.8 35.5 8-38.5 41-67.7 81.3-70l38.6-2.1c14.3-.8 26.1 11 25.3 25.3l-2.1 38.6c-2.5 44.8-38.2 80.5-83 83l-24.6 1.4c-21.2 31.1-32.8 68.1-32.8 106.3 0 97.2 78.8 176 176 176l11.6 0c43.5 0 86.3 10.1 125.2 29.6l9.9 5c11.9 5.9 16.7 20.3 10.7 32.2s-20.3 16.7-32.2 10.7l-9.9-5C403.6 488.4 368.1 480 332.1 480l-23.1 0c-36 0-71.5 8.4-103.8 24.5l-9.9 5c-11.9 5.9-26.3 1.1-32.2-10.7s-1.1-26.3 10.7-32.2l9.9-5c8.3-4.2 16.8-7.9 25.4-11.2-5.5-3.1-10.8-6.5-15.9-10.1l-4.8 2.8-.3 .2c-4.6 2.7-9.4 4.9-14.2 6.9-50.9 20.4-110.3 .8-138.5-48L14.7 366.4c-6.3-10.9-2.6-24.8 8.3-31 6-3.5 12.2-6.4 18.5-8.7-25.1-20.5-41.1-51.7-41.1-86.7l0-41.2c0-12.6 10.2-22.7 22.7-22.7 7 0 13.8 .6 20.4 1.7zM417.9 3.6c40.3 2.2 73.3 31.5 81.3 70 9.9-14.1 22.9-26.3 38.8-35.5 10.9-6.3 24.8-2.6 31 8.3l20.6 35.7c17.5 30.3 19.2 65.3 7.8 95.6 6.6-1.1 13.4-1.7 20.4-1.7 12.6 0 22.7 10.2 22.7 22.7l0 41.2c0 34.9-16 66.1-41.1 86.7 6.3 2.3 12.5 5.2 18.5 8.7 10.9 6.3 14.6 20.2 8.3 31l-20.6 35.7c-21.6 37.4-61.5 57.6-101.8 55.9-5.3-8.3-12.8-15.4-22.3-20.1l-9.9-5c-13.1-6.5-26.6-12.1-40.3-16.7l0 0c-7.9-2.7-15.9-5-24-7 53.3-30.2 89.3-87.5 89.3-153.2 0-38.2-11.6-75.2-32.8-106.3l-24.6-1.4c-44.8-2.5-80.5-38.2-83-83L354 26.8c-.8-14.3 11-26.1 25.3-25.3l38.6 2.1zm-2.7 47.9l-11.8-.7 .7 11.8c1.1 20.3 17.4 36.6 37.7 37.7l11.8 .7-.7-11.8c-1.1-20.3-17.4-36.6-37.7-37.7zM96.5 301.9l0-4.7c0-31.6-20-58.5-48-68.8l0 11.5c0 29.8 20.4 54.9 48 62zm448.1-4.7l0 4.7c27.6-7.1 48-32.2 48-62l0-11.5c-28 10.3-48 37.2-48 68.8zM149.5 407.8l-2.4-4.1c-15.8-27.3-46.5-40.6-75.9-35.6l5.7 9.9c14.9 25.8 45.1 37.3 72.5 29.7zM105.9 179.7c15.8-27.3 11.9-60.6-7.2-83.5L93 106.1c-14.9 25.8-9.8 57.7 10.6 77.7l2.4-4.1zm431.6 4.1c20.3-20 25.5-51.8 10.6-77.7l-5.7-9.9c-19.1 22.9-22.9 56.2-7.2 83.5l2.4 4.1zm-45.9 224c27.4 7.6 57.6-3.9 72.5-29.7l5.7-9.9c-29.4-5.1-60.1 8.2-75.9 35.6l-2.4 4.1z',\n\t\twidth: 640,\n\t},\n\twrench: {\n\t\taliases: ['tools', 'fix', 'repair', 'configure'],\n\t\tcategories: ['actions', 'objects'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M208 168c0-92.8 75.2-168 168-168 27.1 0 52.8 6.4 75.5 17.9 6.9 3.5 11.7 10 12.9 17.6s-1.3 15.3-6.7 20.8l-73.7 73.7 0 30.1 30.1 0 73.7-73.7c5.4-5.4 13.2-7.9 20.8-6.7s14.2 6 17.6 12.9c11.4 22.7 17.9 48.4 17.9 75.5 0 92.8-75.2 168-168 168-16.6 0-32.7-2.4-47.9-6.9L152.6 504.6c-31.2 31.2-81.9 31.2-113.1 0s-31.2-81.9 0-113.1L214.9 215.9c-4.5-15.2-6.9-31.3-6.9-47.9zM376 48c-66.3 0-120 53.7-120 120 0 16 3.1 31.3 8.8 45.2 3.6 8.9 1.6 19.2-5.3 26l-186.2 186.2 0 0c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L304.8 284.5c6.8-6.8 17.1-8.9 26-5.3 13.9 5.7 29.2 8.8 45.2 8.8 66.3 0 120-53.7 120-120 0-6.9-.6-13.7-1.7-20.3L441 201c-4.5 4.5-10.6 7-17 7l-64 0c-13.3 0-24-10.7-24-24l0-64c0-6.4 2.5-12.5 7-17l53.3-53.3C389.7 48.6 382.9 48 376 48z',\n\t\twidth: 576,\n\t},\n\txmark: {\n\t\taliases: ['close', 'dismiss', 'cancel', 'x'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M7.5 105c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l151 151 151-151c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-151 151 151 151c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-151-151-151 151c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l151-151-151-151z',\n\t\twidth: 384,\n\t},\n\txmarkLarge: {\n\t\taliases: ['close', 'dismiss', 'cancel', 'x'],\n\t\tcategories: ['actions'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M7.5 41C-1.8 31.6-1.8 16.4 7.5 7S32.1-2.3 41.5 7l215 215 215-215c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-215 215 215 215c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-215-215-215 215c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l215-215-215-215z',\n\t\twidth: 512,\n\t},\n\txTwitter: {\n\t\taliases: ['x', 'twitter'],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M357.2 48L427.8 48 273.6 224.2 455 464 313 464 201.7 318.6 74.5 464 3.8 464 168.7 275.5-5.2 48 140.4 48 240.9 180.9 357.2 48zM332.4 421.8l39.1 0-252.4-333.8-42 0 255.3 333.8z',\n\t\twidth: 448,\n\t},\n\tyoutube: {\n\t\taliases: [],\n\t\tcategories: ['brands'],\n\t\theight: 512,\n\t\tsvgPathData:\n\t\t\t'M549.7 124.1C543.5 100.4 524.9 81.8 501.4 75.5 458.9 64 288.1 64 288.1 64S117.3 64 74.7 75.5C51.2 81.8 32.7 100.4 26.4 124.1 15 167 15 256.4 15 256.4s0 89.4 11.4 132.3c6.3 23.6 24.8 41.5 48.3 47.8 42.6 11.5 213.4 11.5 213.4 11.5s170.8 0 213.4-11.5c23.5-6.3 42-24.2 48.3-47.8 11.4-42.9 11.4-132.3 11.4-132.3s0-89.4-11.4-132.3zM232.2 337.6l0-162.4 142.7 81.2-142.7 81.2z',\n\t\twidth: 576,\n\t},\n} as const;\n\nexport const iconList = [\n\t'angleDown',\n\t'angleLeft',\n\t'angleRight',\n\t'anglesLeft',\n\t'anglesRight',\n\t'angleUp',\n\t'arrowDownToLine',\n\t'arrowLeft',\n\t'arrowRight',\n\t'arrowsRetweet',\n\t'asterisk',\n\t'banBug',\n\t'bars',\n\t'barsFilter',\n\t'bell',\n\t'billboard',\n\t'bitbucket',\n\t'bluesky',\n\t'bolt',\n\t'boltPantheon',\n\t'boltSolid',\n\t'book',\n\t'books',\n\t'bracketRight',\n\t'bracketsSquare',\n\t'brainCircuit',\n\t'broomWide',\n\t'building',\n\t'buildings',\n\t'bullhorn',\n\t'calendarDays',\n\t'caretDown',\n\t'caretLeft',\n\t'caretRight',\n\t'caretUp',\n\t'ccAmex',\n\t'ccApplePay',\n\t'ccDiscover',\n\t'ccGeneric',\n\t'ccMC',\n\t'ccPaypal',\n\t'ccVisa',\n\t'chartLine',\n\t'chartNetwork',\n\t'chartSimple',\n\t'check',\n\t'circle',\n\t'circleCheck',\n\t'circleExclamation',\n\t'circleInfo',\n\t'circleMinus',\n\t'circleNotch',\n\t'circlePlus',\n\t'circleQuestion',\n\t'circleUser',\n\t'circleXmark',\n\t'cloud',\n\t'cloudArrowDown',\n\t'cloudArrowUp',\n\t'cloudPlus',\n\t'code',\n\t'codeBranch',\n\t'codeMerge',\n\t'command',\n\t'comment',\n\t'copy',\n\t'desktop',\n\t'diamondExclamation',\n\t'diamonds4',\n\t'discourse',\n\t'display',\n\t'dollarSign',\n\t'download',\n\t'drupal',\n\t'ellipsis',\n\t'ellipsisVertical',\n\t'emptySet',\n\t'envelope',\n\t'envelopeOpen',\n\t'exclamation',\n\t'expand',\n\t'expandFromCenter',\n\t'externalLink',\n\t'eye',\n\t'eyeSlash',\n\t'facebook',\n\t'file',\n\t'fileCheck',\n\t'fileContract',\n\t'fileCSV',\n\t'fileDiff',\n\t'fileExport',\n\t'fileImport',\n\t'fileLines',\n\t'filePDF',\n\t'fileZip',\n\t'folder',\n\t'folderTree',\n\t'gear',\n\t'gem',\n\t'github',\n\t'gitlab',\n\t'globe',\n\t'graduationCap',\n\t'grid',\n\t'gripDots',\n\t'gripDotsVertical',\n\t'heart',\n\t'heartSolid',\n\t'house',\n\t'idCard',\n\t'image',\n\t'inputText',\n\t'instagram',\n\t'keySkeleton',\n\t'laptop',\n\t'laptopCode',\n\t'leaf',\n\t'lifeRing',\n\t'linkedin',\n\t'linkSimple',\n\t'linkSimpleSlash',\n\t'listCheck',\n\t'locationCrosshairs',\n\t'lock',\n\t'lockOpen',\n\t'magnifyingGlass',\n\t'medal',\n\t'memo',\n\t'messages',\n\t'minus',\n\t'moon',\n\t'nextJs',\n\t'paperclip',\n\t'paperPlane',\n\t'pen',\n\t'penField',\n\t'phone',\n\t'play',\n\t'plus',\n\t'question',\n\t'quotesLeft',\n\t'quotesRight',\n\t'rectangleList',\n\t'reply',\n\t'robot',\n\t'rocketLaunch',\n\t'rotate',\n\t'rotateClock',\n\t'rotateLeft',\n\t'rotateRight',\n\t'rss',\n\t'save',\n\t'server',\n\t'shareNodes',\n\t'shield',\n\t'shieldQuartered',\n\t'shovel',\n\t'siren',\n\t'sirenOn',\n\t'sitemap',\n\t'slack',\n\t'slashForward',\n\t'slidersSimple',\n\t'snowflake',\n\t'sparkles',\n\t'squareCheck',\n\t'squareCode',\n\t'squareMinus',\n\t'squarePen',\n\t'squareQuestion',\n\t'squareTerminal',\n\t'star',\n\t'starSolid',\n\t'sun',\n\t'sunBright',\n\t'table',\n\t'tableRows',\n\t'terminal',\n\t'text',\n\t'threads',\n\t'thumbsDown',\n\t'thumbsUp',\n\t'trash',\n\t'triangleExclamation',\n\t'twitter',\n\t'upload',\n\t'user',\n\t'userAstronaut',\n\t'userGear',\n\t'userPlus',\n\t'users',\n\t'video',\n\t'wavePulse',\n\t'windowRestore',\n\t'wordpress',\n\t'wreathLaurel',\n\t'wrench',\n\t'xmark',\n\t'xmarkLarge',\n\t'xTwitter',\n\t'youtube',\n] as const;\n\nexport type PDSIconName = (typeof iconList)[number];\n\nexport const categoryList = [\n\t'actions',\n\t'arrows',\n\t'brands',\n\t'communication',\n\t'custom',\n\t'data',\n\t'development',\n\t'documents',\n\t'financial',\n\t'media',\n\t'navigation',\n\t'objects',\n\t'security',\n\t'status',\n\t'users',\n] as const;\n\nexport type IconCategory = (typeof categoryList)[number];\n","import React, { ComponentPropsWithoutRef } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { Display, IconSize } from '@libs/types/custom-types';\n\nimport {\n\tcustomIcons,\n\ticonData,\n\ticonList,\n\ttype PDSIconName,\n} from './generated-icon-data';\n\nimport './icon.css';\n\n/**\n * PDS Icon type - union of all available icon names.\n */\nexport type PDSIcon = PDSIconName;\n\n// Re-export for external consumers (Storybook, etc.)\nexport { iconList };\n\n/**\n * Icon component prop types.\n */\nexport interface IconProps extends ComponentPropsWithoutRef<'svg'> {\n\t/**\n\t * Display value\n\t */\n\tdisplay?: Display;\n\t/**\n\t * Which icon to render\n\t */\n\ticonName: PDSIcon;\n\t/**\n\t * Which size of icon to render\n\t */\n\ticonSize?: IconSize;\n\t/**\n\t * Vertical align value\n\t */\n\tverticalAlign?: string;\n}\n\n/**\n * A component used to display an icon.\n */\nexport const Icon = ({\n\tclassName,\n\tdisplay = 'inline-block',\n\ticonName,\n\ticonSize = 'l',\n\tstyle,\n\tverticalAlign = 'middle',\n\t...props\n}: IconProps) => {\n\tconst baseClass = 'pds-icon';\n\tconst iconClasses = `${baseClass} ${baseClass}--${iconSize} ${baseClass}--${iconName}`;\n\tconst data = iconData[iconName];\n\tconst viewBox = `0 0 ${data.width} ${data.height}`;\n\n\t// Check if this is a complex custom icon (e.g. nextJs with masks/gradients)\n\tconst customIcon =\n\t\ticonName in customIcons\n\t\t\t? customIcons[iconName as keyof typeof customIcons]\n\t\t\t: null;\n\n\t// Determine icon content\n\tlet iconContent: React.ReactNode;\n\n\tif (customIcon?.type === 'complex') {\n\t\ticonContent = customIcon.render();\n\t} else {\n\t\tconst pathData =\n\t\t\tcustomIcon?.type === 'path' ? customIcon.svgPathData : data.svgPathData;\n\n\t\ticonContent = Array.isArray(pathData) ? (\n\t\t\tpathData.map((d, i) => <path key={i} d={d} fill='currentColor' />)\n\t\t) : (\n\t\t\t<path d={pathData} fill='currentColor' />\n\t\t);\n\t}\n\n\treturn (\n\t\t<svg\n\t\t\taria-hidden='true'\n\t\t\tclassName={mergeClasses([iconClasses, className ?? ''])}\n\t\t\tfill='none'\n\t\t\tfocusable='false'\n\t\t\tpreserveAspectRatio='xMidYMid meet'\n\t\t\trole='img'\n\t\t\tstyle={{\n\t\t\t\tdisplay: display,\n\t\t\t\tverticalAlign: verticalAlign,\n\t\t\t\t...style,\n\t\t\t}}\n\t\t\tviewBox={viewBox}\n\t\t\txmlns='http://www.w3.org/2000/svg'\n\t\t\t{...props}\n\t\t>\n\t\t\t{iconContent}\n\t\t</svg>\n\t);\n};\n","import React, {\n\tcloneElement,\n\tComponentPropsWithoutRef,\n\tisValidElement,\n\tReactNode,\n\tuseState,\n} from 'react';\n\nimport hashSum from 'hash-sum';\n\nimport { isValidImageSrc, mergeClasses } from '@libs/components/utils';\n\nimport { Icon } from '@components/icons/Icon/Icon';\n\nimport './avatar.css';\n\nconst gradients = [\n\t'dawn',\n\t'dragonfruit',\n\t'dusk',\n\t'earth',\n\t'fall',\n\t'grape',\n\t'midnight',\n\t'moon',\n\t'plum',\n\t'spring',\n\t'summer',\n\t'sun',\n\t'sundown',\n\t'sunrise',\n\t'twilight',\n\t'winter',\n];\n\n// Creates consistent color based on the uniqueId\nconst uniqueIdToGradient = (uniqueId: string) => {\n\tconst pos = parseInt(hashSum(uniqueId), 16);\n\tconst gradient = gradients[pos % gradients.length];\n\treturn gradient;\n};\n\nexport interface AvatarProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Aria label for the avatar when used as a link. This is required if using a link.\n\t */\n\tariaLabel?: string;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * If true, a user icon will be displayed with the fallback gradient when an image is not provided.\n\t */\n\thasUserFallback?: boolean;\n\t/**\n\t * Avatar image.\n\t */\n\timageSrc?: string;\n\t/**\n\t * A link element using the router of your choice. Leave empty for no link.\n\t */\n\tlinkContent?: ReactNode;\n\t/**\n\t * Avatar size.\n\t */\n\tsize?: 'xs' | 's' | 'm' | 'l';\n\t/**\n\t * Unique ID associated with the avatar. Can be workspace ID, user ID, email, etc.\n\t */\n\tuniqueId?: string;\n}\n\n/**\n * Avatar UI component\n */\nexport const Avatar = ({\n\tariaLabel,\n\tclassName,\n\thasUserFallback = false,\n\timageSrc,\n\tlinkContent,\n\tsize = 's',\n\tuniqueId,\n\t...props\n}: AvatarProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-avatar';\n\tconst sizeClass = `${baseClass}--${size}`;\n\tconst hasImageClass = imageSrc ? `${baseClass}--image` : null;\n\tconst [doesImageHaveError, setImageHaveError] = useState(undefined);\n\n\t// If an image is not provided, use a random gradient based on the uniqueId.\n\tconst gradientStyle = uniqueId\n\t\t? `var(--pds-gradient-avatar-${uniqueIdToGradient(uniqueId)})`\n\t\t: null;\n\n\t// Default fallback styles.\n\tconst fallbackStyles = {\n\t\tbackgroundImage: gradientStyle,\n\t\tborderRadius: '100%',\n\t\theight: '100%',\n\t\twidth: '100%',\n\t\tdisplay: 'flex',\n\t\talignItems: 'center',\n\t\tjustifyContent: 'center',\n\t};\n\n\t// Preprocess image content.\n\tconst imageContent =\n\t\tisValidImageSrc(imageSrc) && !doesImageHaveError ? (\n\t\t\t<img\n\t\t\t\talt=''\n\t\t\t\tclassName={`${baseClass}__image`}\n\t\t\t\tonError={() => setImageHaveError(true)}\n\t\t\t\tonLoad={() => setImageHaveError(false)}\n\t\t\t\tsrc={`${imageSrc}`}\n\t\t\t/>\n\t\t) : (\n\t\t\t<span style={fallbackStyles}>\n\t\t\t\t{hasUserFallback && (\n\t\t\t\t\t<Icon className={`${baseClass}__user-icon`} iconName='user' />\n\t\t\t\t)}\n\t\t\t</span>\n\t\t);\n\n\t// Preprocess content for either static or interactive avatars.\n\tconst staticContent = (\n\t\t<span className={`${baseClass}__content`}>{imageContent}</span>\n\t);\n\n\tconst interactiveContent =\n\t\tlinkContent && isValidElement(linkContent)\n\t\t\t? cloneElement(\n\t\t\t\t\tlinkContent,\n\t\t\t\t\tObject.assign({}, linkContent.props, {\n\t\t\t\t\t\tclassName: `${baseClass}__content ${baseClass}__content--link`,\n\t\t\t\t\t\t'aria-label': ariaLabel,\n\t\t\t\t\t}),\n\t\t\t\t\timageContent,\n\t\t\t\t)\n\t\t\t: null;\n\n\t// Render the output\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([baseClass, sizeClass, hasImageClass, className])}\n\t\t\t{...props}\n\t\t>\n\t\t\t{linkContent ? interactiveContent : staticContent}\n\t\t</div>\n\t);\n};\n","import React, { ComponentPropsWithoutRef, ReactNode } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport './badge.css';\n\nexport type BadgeColor =\n\t| 'aether'\n\t| 'aether-secondary'\n\t| 'amber'\n\t| 'amber-secondary'\n\t| 'apollo'\n\t| 'apollo-secondary'\n\t| 'critical'\n\t| 'critical-secondary'\n\t| 'discovery'\n\t| 'discovery-secondary'\n\t| 'gaia'\n\t| 'gaia-secondary'\n\t| 'hypnos'\n\t| 'hypnos-secondary'\n\t| 'indigo'\n\t| 'indigo-secondary'\n\t| 'info'\n\t| 'info-secondary'\n\t| 'iris'\n\t| 'iris-secondary'\n\t| 'lime'\n\t| 'lime-secondary'\n\t| 'mint'\n\t| 'mint-secondary'\n\t| 'orange'\n\t| 'orange-secondary'\n\t| 'rose'\n\t| 'rose-secondary'\n\t| 'sand'\n\t| 'sand-secondary'\n\t| 'silver'\n\t| 'silver-secondary'\n\t| 'sky'\n\t| 'sky-secondary'\n\t| 'slate'\n\t| 'slate-secondary'\n\t| 'stone'\n\t| 'stone-secondary'\n\t| 'success'\n\t| 'success-secondary'\n\t| 'teal'\n\t| 'teal-secondary'\n\t| 'warning'\n\t| 'warning-secondary'\n\t| 'feature';\n\n/**\n * Badge component props\n */\nexport interface BadgeProps extends ComponentPropsWithoutRef<'span'> {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Badge color\n\t */\n\tcolor: BadgeColor;\n\t/**\n\t * Badge text or content.\n\t */\n\tlabel: ReactNode;\n\t/**\n\t * Badge size\n\t */\n\tsize?: 'xs' | 's' | 'm';\n}\n\n/**\n * Badge UI component\n */\nexport const Badge = ({\n\tclassName,\n\tcolor = 'gaia',\n\tlabel,\n\tsize = 'm',\n\t...props\n}: BadgeProps) => {\n\tconst baseClass = 'pds-badge';\n\tconst colorClass = `${baseClass}--${color}`;\n\tconst sizeClass = size !== 'm' ? `${baseClass}--${size}` : null;\n\n\treturn (\n\t\t<span\n\t\t\tclassName={mergeClasses([\n\t\t\t\tbaseClass,\n\t\t\t\tcolorClass,\n\t\t\t\tsizeClass,\n\t\t\t\tclassName ?? '',\n\t\t\t])}\n\t\t\t{...props}\n\t\t>\n\t\t\t<span className={`${baseClass}__label`}>{label}</span>\n\t\t</span>\n\t);\n};\n","import React, { ComponentPropsWithoutRef } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { StatusType } from '@libs/types/custom-types';\n\nimport './status-badge.css';\n\n/**\n * StatusBadge component props\n */\nexport interface StatusBadgeProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Background color for badge\n\t */\n\tcolor?: 'transparent' | 'neutral' | 'reverse';\n\t/**\n\t * Should the badge show a status indicator.\n\t */\n\thasStatusIndicator?: boolean;\n\t/**\n\t * Text for badge.\n\t */\n\tlabel: string;\n\t/**\n\t * Translatable text for status indicator — for screen readers.\n\t */\n\tstatusIndicatorText?: string;\n\t/**\n\t * Status type for badge. Only renders if `hasStatusIndicator` is true.\n\t */\n\tstatusType?: StatusType | 'frozen' | 'disabled';\n}\n\n/**\n * StatusBadge UI component\n */\nexport const StatusBadge = ({\n\tclassName,\n\tcolor = 'transparent',\n\thasStatusIndicator = false,\n\tlabel,\n\tstatusIndicatorText = 'Status indicator: ',\n\tstatusType,\n\t...props\n}: StatusBadgeProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-status-badge';\n\tconst colorClass = `${baseClass}--${color}`;\n\tconst statusClass = `${baseClass}__status`;\n\tconst statusClassMod = statusType ? `${statusClass}--${statusType}` : null;\n\n\t// Render the output\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([baseClass, colorClass, className ?? ''])}\n\t\t\t{...props}\n\t\t>\n\t\t\t{hasStatusIndicator === true && (\n\t\t\t\t<span className={mergeClasses([statusClass, statusClassMod])}>\n\t\t\t\t\t{statusType && (\n\t\t\t\t\t\t<span className='visually-hidden'>\n\t\t\t\t\t\t\t{statusIndicatorText} {statusType}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t)}\n\t\t\t\t</span>\n\t\t\t)}\n\t\t\t<span className={`${baseClass}__label`}>{label}</span>\n\t\t</div>\n\t);\n};\n","import React, { ComponentPropsWithoutRef } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport './tally.css';\n\ntype TypeLabelsType = {\n\tcritical?: string;\n\tinfo?: string;\n\tneutral?: string;\n\tsuccess?: string;\n\twarning?: string;\n};\n\n/**\n * Prop types for Tally\n */\nexport interface TallyProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Label text\n\t */\n\tlabel: string | number;\n\t/**\n\t * Size of the tally\n\t */\n\tsize?: 'xs' | 's' | 'm';\n\t/**\n\t * Notification type\n\t */\n\ttype: 'neutral' | 'critical' | 'warning' | 'info' | 'success';\n\t/**\n\t * Message type labels.\n\t */\n\ttypeLabels?: TypeLabelsType;\n}\n\n/**\n * Tally UI component\n */\nexport const Tally = ({\n\tclassName,\n\tlabel,\n\tsize = 's',\n\ttype = 'neutral',\n\ttypeLabels = {\n\t\tinfo: 'Information',\n\t\tsuccess: 'Success',\n\t\twarning: 'Warning',\n\t\tcritical: 'Critical',\n\t\tneutral: '',\n\t},\n\t...props\n}: TallyProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-tally';\n\tconst colorClass = `${baseClass}--${type}`;\n\tconst sizeClass = `${baseClass}--${size}`;\n\n\t// Label by type\n\tconst messageTypeLabel = `${typeLabels[type]}: `;\n\n\t// Render the output\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([\n\t\t\t\tbaseClass,\n\t\t\t\tcolorClass,\n\t\t\t\tsizeClass,\n\t\t\t\tclassName ?? '',\n\t\t\t])}\n\t\t\t{...props}\n\t\t>\n\t\t\t<div className={`${baseClass}__label`}>\n\t\t\t\t<span className='visually-hidden'>{messageTypeLabel}</span>\n\t\t\t\t{label}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nTally.displayName = 'Tally';\n","import { Children, createElement, isValidElement, ReactNode } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { HeadingLevel } from '@libs/types/custom-types';\n\n// Heading level utility component.\n// This is used for elements that need to render as a heading (h2, h3, h4) or span.\ninterface HxProps {\n\tbaseClass?: string;\n\tchildren?: ReactNode;\n\tclassName?: string;\n\tid?: string;\n\tlevel: HeadingLevel;\n}\n\nexport const Hx = ({\n\tbaseClass,\n\tchildren,\n\tclassName,\n\tid,\n\tlevel,\n\t...props\n}: HxProps) => {\n\t// Set up classes.\n\tconst headingClass = baseClass ? `${baseClass}__heading` : null;\n\n\t// Preprocess heading element type.\n\tconst HxElement = level;\n\n\t// Render the appropriate heading level\n\treturn createElement(\n\t\tHxElement,\n\t\t{ className: mergeClasses([headingClass, className]), id, ...props },\n\t\tchildren,\n\t);\n};\n\n// Extract text if it's a ReactNode, convert it if it's a number\nexport const extractText = (node: ReactNode): string => {\n\tif (typeof node === 'string' || typeof node === 'number') {\n\t\treturn String(node);\n\t}\n\tif (isValidElement(node)) {\n\t\tconst props = node.props as { children?: ReactNode };\n\t\treturn Children.toArray(props.children).map(extractText).join('');\n\t}\n\treturn '';\n};\n","/**\n * Do not edit directly, this file was auto-generated.\n */\n\nexport const ANIMATION_DURATION_DEFAULT = \"200ms\";\nexport const ANIMATION_DURATION_REVEAL = \"300ms\";\nexport const ANIMATION_TIMING_FUNCTION_DEFAULT = \"cubic-bezier(.2, 0, 0, 1)\";\nexport const ANIMATION_TRANSITION_BUTTON = \"background-color 200ms cubic-bezier(.2, 0, 0, 1) 0ms, border-color 200ms cubic-bezier(.2, 0, 0, 1) 0ms, color 200ms cubic-bezier(.2, 0, 0, 1) 0ms, box-shadow 200ms cubic-bezier(.2, 0, 0, 1) 0ms, transform 200ms cubic-bezier(.2, 0, 0, 1) 0ms\";\nexport const ANIMATION_TRANSITION_DEFAULT = \"all 200ms cubic-bezier(.2, 0, 0, 1) 0ms\";\nexport const ANIMATION_TRANSITION_FOCUS = \"outline 200ms cubic-bezier(.2, 0, 0, 1) 0ms, outline-offset 200ms cubic-bezier(.2, 0, 0, 1) 0ms, box-shadow 200ms cubic-bezier(.2, 0, 0, 1) 0ms, border-color 200ms cubic-bezier(.2, 0, 0, 1) 0ms\";\nexport const ANIMATION_TRANSITION_INPUT = \"border-color 200ms cubic-bezier(.2, 0, 0, 1) 0ms, background-color 200ms cubic-bezier(.2, 0, 0, 1) 0ms, box-shadow 200ms cubic-bezier(.2, 0, 0, 1) 0ms, outline 200ms cubic-bezier(.2, 0, 0, 1) 0ms\";\nexport const ANIMATION_TRANSITION_LINK = \"color 200ms cubic-bezier(.2, 0, 0, 1) 0ms, text-decoration-color 200ms cubic-bezier(.2, 0, 0, 1) 0ms\";\nexport const ANIMATION_TRANSITION_REVEAL = \"height 300ms cubic-bezier(.2, 0, 0, 1) 0ms, opacity 300ms cubic-bezier(.2, 0, 0, 1) 0ms, padding 300ms cubic-bezier(.2, 0, 0, 1) 0ms, width 300ms cubic-bezier(.2, 0, 0, 1) 0ms\";\nexport const ANIMATION_TRANSITION_ROTATION = \"transform 200ms cubic-bezier(.2, 0, 0, 1) 0ms\";\nexport const BORDER_WIDTH_STEPPER = \"3px\";\nexport const BORDER_WIDTH_DEFAULT = \"1px\";\nexport const BORDER_WIDTH_THICKER = \"2px\";\nexport const BORDER_WIDTH_OUTLINE = \"1px\";\nexport const BORDER_RADIUS_DEFAULT = \"0.1875rem\";\nexport const BORDER_RADIUS_BAR = \"3.5rem\";\nexport const BORDER_RADIUS_BUTTON = \"3.5rem\";\nexport const BORDER_RADIUS_CONTAINER = \"0.375rem\";\nexport const BORDER_RADIUS_INPUT = \"0.25rem\";\nexport const BP_S = 0;\nexport const BP_M = 768;\nexport const BP_L = 1280;\nexport const BP_XL = 1440;\nexport const CONTAINER_MODAL_WIDTH_S = \"25rem\";\nexport const CONTAINER_MODAL_WIDTH_M = \"37.5rem\";\nexport const CONTAINER_MODAL_WIDTH_L = \"47.5rem\";\nexport const CONTAINER_MODAL_WIDTH_XL = \"67.5rem\";\nexport const CONTAINER_TOOLTIP_MAX_WIDTH = \"12.5rem\";\nexport const CONTAINER_DASHBOARD_NAVBAR_MAX_WIDTH = \"1440px\";\nexport const CONTAINER_PADDING_BASE = \"1.5rem\";\nexport const CONTAINER_PADDING_NARROW_BP_M = \"12%\";\nexport const CONTAINER_PADDING_NARROW_BP_L = \"20%\";\nexport const CONTAINER_PADDING_STANDARD_BP_M = \"6%\";\nexport const CONTAINER_PADDING_STANDARD_BP_L = \"8%\";\nexport const CONTAINER_PADDING_WIDE_BP_M = \"5%\";\nexport const CONTAINER_PADDING_WIDE_BP_L = \"4%\";\nexport const CONTAINER_MAX_WIDTH_NARROW = \"1024px\";\nexport const CONTAINER_MAX_WIDTH_STANDARD = \"1440px\";\nexport const CONTAINER_MAX_WIDTH_WIDE = \"1600px\";\nexport const CONTAINER_MAX_WIDTH_X_WIDE = \"1860px\";\nexport const GRID_COLUMNS_4_GAP = \"1.25rem\";\nexport const GRID_COLUMNS_12_BP_M_GAP_NARROW = \"1.25rem\";\nexport const GRID_COLUMNS_12_BP_M_GAP_STANDARD = \"1.5rem\";\nexport const GRID_COLUMNS_12_BP_M_GAP_WIDE = \"2rem\";\nexport const GRID_COLUMNS_12_BP_L_GAP_NARROW = \"1.5rem\";\nexport const GRID_COLUMNS_12_BP_L_GAP_STANDARD = \"2rem\";\nexport const GRID_COLUMNS_12_BP_L_GAP_WIDE = \"2.5rem\";\nexport const SPACING_DASHBOARD_NAV_ITEM_HEIGHT = \"2.25rem\";\nexport const SPACING_DASHBOARD_NAV_ITEM_PADDING = \"0.625rem\";\nexport const SPACING_STEPPER_INDICATOR_SIZE = \"1.25rem\";\nexport const SPACING_STEPPER_STEP_CONTENT_WIDTH = \"7rem\";\nexport const SPACING_9XL = \"10rem\";\nexport const SPACING_8XL = \"8rem\";\nexport const SPACING_7XL = \"6rem\";\nexport const SPACING_6XL = \"5rem\";\nexport const SPACING_5XL = \"4rem\";\nexport const SPACING_4XL = \"3rem\";\nexport const SPACING_3XL = \"2.5rem\";\nexport const SPACING_2XL = \"2rem\";\nexport const SPACING_XL = \"1.5rem\";\nexport const SPACING_L = \"1.25rem\";\nexport const SPACING_M = \"1rem\";\nexport const SPACING_S = \"0.75rem\";\nexport const SPACING_XS = \"0.625rem\";\nexport const SPACING_2XS = \"0.5rem\";\nexport const SPACING_3XS = \"0.375rem\";\nexport const SPACING_4XS = \"0.25rem\";\nexport const SPACING_5XS = \"0.125rem\";\nexport const SPACING_BUTTON_HEIGHT_XS = \"1.5rem\";\nexport const SPACING_BUTTON_HEIGHT_S = \"2rem\";\nexport const SPACING_BUTTON_HEIGHT_M = \"2.5rem\";\nexport const SPACING_BUTTON_HEIGHT_L = \"3rem\";\nexport const SPACING_BUTTON_HEIGHT_XL = \"3.5rem\";\nexport const SPACING_BUTTON_PADDING_INLINE_XS = \"0.75rem\";\nexport const SPACING_BUTTON_PADDING_INLINE_S = \"1rem\";\nexport const SPACING_BUTTON_PADDING_INLINE_M = \"1.25rem\";\nexport const SPACING_BUTTON_PADDING_INLINE_L = \"1.5rem\";\nexport const SPACING_BUTTON_PADDING_INLINE_XL = \"2.25rem\";\nexport const SPACING_BUTTON_GAP_INLINE_XS = \"0.5rem\";\nexport const SPACING_BUTTON_GAP_INLINE_S = \"0.5rem\";\nexport const SPACING_BUTTON_GAP_INLINE_M = \"0.625rem\";\nexport const SPACING_BUTTON_GAP_INLINE_L = \"0.625rem\";\nexport const SPACING_BUTTON_GAP_INLINE_XL = \"0.625rem\";\nexport const SPACING_INPUT_HEIGHT_S = \"2rem\";\nexport const SPACING_INPUT_HEIGHT_M = \"2.5rem\";\nexport const SPACING_INPUT_HEIGHT_L = \"3rem\";\nexport const TYPOGRAPHY_FONT_CSS_IMPORT = \"'https://fonts.googleapis.com/css2?family=IBM+Plex+Serif:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=Inter+Tight:ital,wght@0,100..900;1,100..900&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Source+Code+Pro:ital,wght@0,200..900;1,200..900&display=swap'\";\nexport const Z_INDEX_NAVIGATION = 100;\nexport const Z_INDEX_DROPDOWN = 300;\nexport const Z_INDEX_NOTIFICATIONS = 500;\nexport const Z_INDEX_OVERLAY = 700;\nexport const Z_INDEX_MODAL = 900;\nexport const Z_INDEX_MAX = 9999;\nexport const Z_INDEX_RESET = 0;\n\nexport const SPACING = {\n SPACING_5XS,\n SPACING_4XS,\n SPACING_3XS,\n SPACING_2XS,\n SPACING_XS,\n SPACING_S,\n SPACING_M,\n SPACING_L,\n SPACING_XL,\n SPACING_2XL,\n SPACING_3XL,\n SPACING_4XL,\n SPACING_5XL,\n SPACING_6XL,\n SPACING_7XL,\n SPACING_8XL,\n SPACING_9XL,\n};\n","/**\n * Do not edit directly, this file was auto-generated.\n */\n\nexport const TYPOGRAPHY_FF_DEFAULT = \"'Inter', sans-serif\";\nexport const TYPOGRAPHY_FF_COMPACT = \"'Inter Tight', sans-serif\";\nexport const TYPOGRAPHY_FF_SECONDARY = \"'IBM Plex Serif', serif\";\nexport const TYPOGRAPHY_FF_CODE = \"'Source Code Pro', monospace\";\nexport const TYPOGRAPHY_FW_LIGHT = 300;\nexport const TYPOGRAPHY_FW_REGULAR = 400;\nexport const TYPOGRAPHY_FW_MEDIUM = 500;\nexport const TYPOGRAPHY_FW_SEMIBOLD = 600;\nexport const TYPOGRAPHY_FW_BOLD = 700;\nexport const TYPOGRAPHY_FW_EXTRABOLD = 800;\nexport const TYPOGRAPHY_LS_XL = \"5%\";\nexport const TYPOGRAPHY_LS_L = \"4%\";\nexport const TYPOGRAPHY_LS_M = \"2%\";\nexport const TYPOGRAPHY_LS_S = \"1%\";\nexport const TYPOGRAPHY_LH_XL = \"195%\";\nexport const TYPOGRAPHY_LH_L = \"165%\";\nexport const TYPOGRAPHY_LH_M = \"150%\";\nexport const TYPOGRAPHY_LH_S = \"130%\";\nexport const TYPOGRAPHY_LH_XS = \"120%\";\nexport const TYPOGRAPHY_LH_CODE = \"180%\";\nexport const TYPOGRAPHY_SIZE_2XS = \"0.625rem\"; // 10px - Metadata, tiny labels\nexport const TYPOGRAPHY_SIZE_XS = \"0.75rem\"; // 12px - Small UI text, captions\nexport const TYPOGRAPHY_SIZE_S = \"0.875rem\"; // 14px - Product default body text, forms, navigation, labels\nexport const TYPOGRAPHY_SIZE_M = \"1rem\"; // 16px - h5/h6 in product, default body in marketing, prose body\nexport const TYPOGRAPHY_SIZE_L = \"1.125rem\"; // 18px - h4 in product, hero body/h6 in marketing, h5/blockquote in prose\nexport const TYPOGRAPHY_SIZE_XL = \"1.25rem\"; // 20px - h3 in product, h5/blog body in marketing, h4 in prose\nexport const TYPOGRAPHY_SIZE_2XL = \"1.5rem\"; // 24px - h2 in product, h4 in marketing, h3 in prose\nexport const TYPOGRAPHY_SIZE_3XL = \"1.75rem\"; // 28px - h1 in product, h2 in prose\nexport const TYPOGRAPHY_SIZE_4XL = \"2rem\"; // 32px - h3 in marketing, h1 in prose\nexport const TYPOGRAPHY_SIZE_5XL = \"2.25rem\"; // 36px - h1 hero/empty states in product, h2 in marketing\nexport const TYPOGRAPHY_SIZE_6XL = \"3rem\"; // 48px - Blog h1, large h2 in marketing\nexport const TYPOGRAPHY_SIZE_7XL = \"3.75rem\"; // 60px - Hero h1 in marketing\nexport const TYPOGRAPHY_SIZE_8XL = \"5rem\"; // 80px - Jumbo h1 in marketing\nexport const TYPOGRAPHY_SIZE_INPUT_LABEL = \"0.8125rem\";\nexport const TYPOGRAPHY_SIZE_INPUT_MESSAGE = \"0.8125rem\";\n\nexport const TYPOGRAPHY_SIZE = {\n TYPOGRAPHY_SIZE_2XS,\n TYPOGRAPHY_SIZE_XS,\n TYPOGRAPHY_SIZE_S,\n TYPOGRAPHY_SIZE_M,\n TYPOGRAPHY_SIZE_L,\n TYPOGRAPHY_SIZE_XL,\n TYPOGRAPHY_SIZE_2XL,\n TYPOGRAPHY_SIZE_3XL,\n TYPOGRAPHY_SIZE_4XL,\n TYPOGRAPHY_SIZE_5XL,\n TYPOGRAPHY_SIZE_6XL,\n TYPOGRAPHY_SIZE_7XL,\n TYPOGRAPHY_SIZE_8XL,\n};\n","import React, {\n\tcreateContext,\n\tReactNode,\n\tuseCallback,\n\tuseContext,\n\tuseEffect,\n\tuseState,\n} from 'react';\n\ninterface OverlayContextType {\n\tcloseOverlay: () => void;\n\thasOpenOverlay: boolean;\n\topenOverlay: () => void;\n}\n\nexport const OverlayContext = createContext<OverlayContextType | null>(null);\n\nexport const OverlayContextProvider = ({\n\tchildren,\n}: {\n\tchildren: ReactNode;\n}) => {\n\tconst [overlayCount, setOverlayCount] = useState(0);\n\n\tconst openOverlay = useCallback(() => {\n\t\tsetOverlayCount((prev) => prev + 1);\n\t}, []);\n\n\tconst closeOverlay = useCallback(() => {\n\t\tsetOverlayCount((prev) => Math.max(0, prev - 1));\n\t}, []);\n\n\tconst hasOpenOverlay = overlayCount > 0;\n\n\t// Block keyboard shortcuts when overlay is open to prevent them from triggering.\n\t// Add additional keys to the blockedKeys array as needed.\n\tuseEffect(() => {\n\t\tif (!hasOpenOverlay) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst handleKeyDown = (e: KeyboardEvent) => {\n\t\t\t// List of keys to block when overlays are open\n\t\t\tconst blockedKeys = ['/'];\n\n\t\t\tif (blockedKeys.includes(e.key)) {\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\t\t\t\te.stopImmediatePropagation();\n\t\t\t}\n\t\t};\n\n\t\t// Use capture phase to intercept before other handlers\n\t\tdocument.addEventListener('keydown', handleKeyDown, { capture: true });\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('keydown', handleKeyDown, { capture: true });\n\t\t};\n\t}, [hasOpenOverlay]);\n\n\tconst contextValue: OverlayContextType = {\n\t\tcloseOverlay,\n\t\thasOpenOverlay,\n\t\topenOverlay,\n\t};\n\n\treturn (\n\t\t<OverlayContext.Provider value={contextValue}>\n\t\t\t{children}\n\t\t</OverlayContext.Provider>\n\t);\n};\n\nexport const useOverlayContext = () => {\n\tconst context = useContext(OverlayContext);\n\tif (!context) {\n\t\tthrow new Error(\n\t\t\t'useOverlayContext must be used within OverlayContextProvider',\n\t\t);\n\t}\n\treturn context;\n};\n","import { useCallback, useEffect, useState } from 'react';\n\nexport interface UseKeyPressOptions {\n\t/**\n\t * Whether the Alt key must be pressed. Defaults to false.\n\t */\n\taltKey?: boolean;\n\t/**\n\t * Whether the Ctrl key (or Cmd on Mac) must be pressed. Defaults to false.\n\t */\n\tctrlKey?: boolean;\n\t/**\n\t * Whether the hotkey is enabled. Defaults to true.\n\t */\n\tenabled?: boolean;\n\t/**\n\t * Whether the Meta key (Cmd on Mac, Win on Windows) must be pressed. Defaults to false.\n\t */\n\tmetaKey?: boolean;\n\t/**\n\t * Whether the Shift key must be pressed. Defaults to false.\n\t */\n\tshiftKey?: boolean;\n}\n\nexport const useKeyPress = (\n\ttargetKey: string,\n\tcallback?: (event: KeyboardEvent) => void,\n\toptions?: UseKeyPressOptions,\n) => {\n\tconst {\n\t\taltKey = false,\n\t\tctrlKey = false,\n\t\tenabled = true,\n\t\tmetaKey = false,\n\t\tshiftKey = false,\n\t} = options ?? {};\n\tconst [keyPressed, setKeyPressed] = useState(false);\n\n\t// Check if modifier keys match the requirements\n\tconst modifiersMatch = useCallback(\n\t\t(event: KeyboardEvent) => {\n\t\t\treturn (\n\t\t\t\tevent.altKey === altKey &&\n\t\t\t\tevent.ctrlKey === ctrlKey &&\n\t\t\t\tevent.metaKey === metaKey &&\n\t\t\t\tevent.shiftKey === shiftKey\n\t\t\t);\n\t\t},\n\t\t[altKey, ctrlKey, metaKey, shiftKey],\n\t);\n\n\t// Memoized handler for key down events\n\tconst downHandler = useCallback(\n\t\t(event: KeyboardEvent) => {\n\t\t\t// Check if the pressed key matches the target key and modifiers match\n\t\t\tif (event.key === targetKey && modifiersMatch(event)) {\n\t\t\t\tsetKeyPressed(true);\n\n\t\t\t\t// Execute optional callback if provided\n\t\t\t\tif (callback) {\n\t\t\t\t\tcallback(event);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[targetKey, callback, modifiersMatch],\n\t);\n\n\t// Memoized handler for key up events\n\tconst upHandler = useCallback(\n\t\t(event: KeyboardEvent) => {\n\t\t\tif (event.key === targetKey && modifiersMatch(event)) {\n\t\t\t\tsetKeyPressed(false);\n\t\t\t}\n\t\t},\n\t\t[targetKey, modifiersMatch],\n\t);\n\n\tuseEffect(() => {\n\t\t// Only add event listeners when enabled\n\t\tif (!enabled) return;\n\n\t\t// Add event listeners when the component mounts\n\t\twindow.addEventListener('keydown', downHandler);\n\t\twindow.addEventListener('keyup', upHandler);\n\n\t\t// Cleanup function to remove event listeners when component unmounts\n\t\treturn () => {\n\t\t\twindow.removeEventListener('keydown', downHandler);\n\t\t\twindow.removeEventListener('keyup', upHandler);\n\t\t};\n\t}, [downHandler, upHandler, enabled]);\n\n\t// Return whether the key is currently pressed\n\treturn keyPressed;\n};\n","import React, { ComponentPropsWithoutRef, ReactNode, useState } from 'react';\n\nimport {\n\tautoUpdate,\n\tflip,\n\tFloatingPortal,\n\toffset,\n\tPlacement,\n\tshift,\n\tuseDismiss,\n\tuseFloating,\n\tuseFocus,\n\tuseHover,\n\tuseInteractions,\n\tuseRole,\n} from '@floating-ui/react';\nimport { Z_INDEX_OVERLAY } from '@pantheon-systems/pds-design-tokens/build/js/variables.global.js';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { FuiOffset } from '@libs/types/custom-types';\n\nimport { Icon } from '@components/icons/Icon/Icon';\n\nimport './tooltip.css';\n\ninterface TooltipProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Text to display in tooltip container.\n\t */\n\tcontent: string;\n\t/**\n\t * String or HTML content to use as the trigger instead of an icon. Leave null to use the icon.\n\t */\n\tcustomTrigger?: ReactNode;\n\t/**\n\t * The spacing between the trigger and the tooltip in pixels. Use the default value (in most cases) when using an icon trigger.\n\t */\n\toffsetValue?: FuiOffset;\n\t/**\n\t * The preferred placement of the tooltip relative to the trigger.\n\t */\n\tpreferredPlacement?: Placement;\n\t/**\n\t * The accessible text for the trigger. Only necessary when the trigger is an icon.\n\t */\n\ttriggerAccessibleText?: string;\n\t/**\n\t * Icon to trigger tooltip\n\t */\n\ttriggerIcon?: 'circleInfo' | 'circleQuestion' | 'circleExclamation';\n\t/**\n\t * Color of the trigger icon. Uses PDS default text color options.\n\t */\n\ttriggerIconColor?: 'default' | 'default-secondary' | 'critical';\n\t/**\n\t * Size of the trigger icon. Uses PDS Icon sizing.\n\t */\n\ttriggerIconSize?: 's' | 'm' | 'l';\n\t/**\n\t * Z-index value for the tooltip container. In most cases, the default value should be retained.\n\t */\n\tzIndex?: number;\n}\n\n/**\n * Tooltip UI component\n */\nexport const Tooltip = ({\n\tclassName,\n\tcontent,\n\tcustomTrigger = null,\n\toffsetValue = 6,\n\tpreferredPlacement = 'top',\n\ttriggerAccessibleText = 'Show more information',\n\ttriggerIcon = 'circleInfo',\n\ttriggerIconColor = 'default',\n\ttriggerIconSize = 'm',\n\tzIndex = Z_INDEX_OVERLAY,\n\t...props\n}: TooltipProps) => {\n\t// Set up state.\n\tconst [isOpen, setIsOpen] = useState(false);\n\n\t// Get type of custom trigger.\n\tconst triggerType = typeof customTrigger;\n\n\t// Set up classes.\n\tconst baseClass = 'pds-tooltip';\n\tconst customTriggerClasses = mergeClasses([\n\t\t`${baseClass}__trigger-custom`,\n\t\ttriggerType === 'string' ? `${baseClass}__trigger-text` : null,\n\t]);\n\tconst iconTriggerClasses = mergeClasses([\n\t\t`${baseClass}__trigger`,\n\t\t`${baseClass}__trigger--${triggerIconColor}`,\n\t]);\n\n\t// FUI config.\n\tconst { context, floatingStyles, refs } = useFloating({\n\t\tplacement: preferredPlacement,\n\t\topen: isOpen,\n\t\tonOpenChange: setIsOpen,\n\t\tmiddleware: [offset(offsetValue), flip(), shift()],\n\t\twhileElementsMounted: autoUpdate,\n\t});\n\n\tconst hover = useHover(context, {\n\t\trestMs: 300,\n\t\tdelay: { open: 100, close: 0 },\n\t\tmove: false,\n\t});\n\tconst focus = useFocus(context);\n\tconst dismiss = useDismiss(context);\n\tconst role = useRole(context, { role: 'tooltip' });\n\n\tconst { getFloatingProps, getReferenceProps } = useInteractions([\n\t\thover,\n\t\tfocus,\n\t\tdismiss,\n\t\trole,\n\t]);\n\n\t// Render the output\n\treturn (\n\t\t<div className={mergeClasses([baseClass, className ?? ''])} {...props}>\n\t\t\t{customTrigger ? (\n\t\t\t\t<span\n\t\t\t\t\tref={refs.setReference}\n\t\t\t\t\tclassName={customTriggerClasses}\n\t\t\t\t\t{...getReferenceProps()}\n\t\t\t\t>\n\t\t\t\t\t{customTrigger}\n\t\t\t\t</span>\n\t\t\t) : (\n\t\t\t\t<button\n\t\t\t\t\tref={refs.setReference}\n\t\t\t\t\taria-label={triggerAccessibleText}\n\t\t\t\t\tclassName={iconTriggerClasses}\n\t\t\t\t\ttype='button'\n\t\t\t\t\t{...getReferenceProps()}\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName={`${baseClass}__icon`}\n\t\t\t\t\t\ticonName={triggerIcon}\n\t\t\t\t\t\ticonSize={triggerIconSize}\n\t\t\t\t\t/>\n\t\t\t\t</button>\n\t\t\t)}\n\t\t\t<FloatingPortal>\n\t\t\t\t<div\n\t\t\t\t\tref={refs.setFloating}\n\t\t\t\t\taria-hidden={!isOpen}\n\t\t\t\t\tclassName={`${baseClass}__container`}\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\t...floatingStyles,\n\t\t\t\t\t\tzIndex: zIndex,\n\t\t\t\t\t\topacity: isOpen ? 1 : 0,\n\t\t\t\t\t\tpointerEvents: isOpen ? 'auto' : 'none',\n\t\t\t\t\t\ttransition: 'var(--pds-animation-transition-reveal)',\n\t\t\t\t\t}}\n\t\t\t\t\t{...getFloatingProps()}\n\t\t\t\t>\n\t\t\t\t\t{content}\n\t\t\t\t</div>\n\t\t\t</FloatingPortal>\n\t\t</div>\n\t);\n};\n","import React, {\n\tComponentPropsWithoutRef,\n\tforwardRef,\n\tMouseEventHandler,\n\tReactNode,\n\tRef,\n} from 'react';\n\nimport { useId } from '@floating-ui/react';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport { useOverlayContext } from '@utilities/context-providers/OverlayContext/OverlayContext';\nimport { useKeyPress } from '@utilities/hooks/useKeyPress/useKeyPress';\n\nimport { Icon, PDSIcon } from '@components/icons/Icon/Icon';\nimport { Tooltip } from '@components/Tooltip/Tooltip';\n\nimport { SelectOptionGroupType, SelectOptionType } from './Select/Select';\n\nimport './input-utilities.css';\n\n// Input conditional field classes.\nexport const inputCommonClasses = {\n\tbase: 'pds-input',\n\tdisabled: 'pds-is-disabled',\n\trequired: 'pds-is-required',\n\terror: 'pds-has-error',\n\tsuccess: 'pds-has-success',\n\treadonly: 'pds-is-readonly',\n};\n\n// Process input width. Convert to rems.\nexport const getInputWidthStyle = (inputWidth: number) =>\n\tinputWidth ? { maxWidth: `${inputWidth / 16}rem` } : null;\n\n// Function to strip http:// or https:// from input value\nexport const stripUrlProtocol = (value: string): string => {\n\treturn value.replace(/^(https?:\\/\\/)/, '');\n};\n\n// Required Icon.\nexport const RequiredIcon = () => (\n\t<span className='pds-input-label__required'>\n\t\t<Icon\n\t\t\tclassName='pds-input-label__required-icon'\n\t\t\ticonName='asterisk'\n\t\t\ticonSize='s'\n\t\t/>\n\t</span>\n);\n\n// InputLabel component.\ninterface InputLabelProps {\n\t/**\n\t * Additional class names.\n\t */\n\tclassName?: string;\n\t/**\n\t * Is the field disabled?\n\t */\n\tdisabled: boolean;\n\t/**\n\t * Input ID.\n\t */\n\tid: string;\n\t/**\n\t * Is the label a legend? Should be used when the input is a fieldset.\n\t */\n\tisLegend?: boolean;\n\t/**\n\t * Not a true `label`, but a description of the field.\n\t * Used for inputs that have their label built into the element itself.\n\t */\n\tisPseudoLabel?: boolean;\n\t/**\n\t * Label text.\n\t */\n\tlabel: string;\n\t/**\n\t * Is the field required?\n\t */\n\trequired: boolean;\n\t/**\n\t * Should the label be visible?\n\t */\n\tshowLabel: boolean;\n\t/**\n\t * Optional tooltip text to display additional information.\n\t */\n\ttooltipText?: string;\n}\n\nexport const InputLabel = ({\n\tclassName,\n\tdisabled,\n\tid,\n\tisLegend,\n\tisPseudoLabel,\n\tlabel,\n\trequired,\n\tshowLabel = true,\n\ttooltipText = null,\n}: InputLabelProps) => {\n\tconst labelClasses = mergeClasses([\n\t\t'pds-input-label',\n\t\t!showLabel ? 'visually-hidden' : null,\n\t\tclassName ?? '',\n\t]);\n\n\tconst labelContent = (\n\t\t<>\n\t\t\t{label}\n\t\t\t{required && !disabled && <RequiredIcon />}\n\t\t\t{tooltipText && (\n\t\t\t\t<Tooltip content={tooltipText}>\n\t\t\t\t\t<span>\n\t\t\t\t\t\t<Icon iconName='circleInfo' iconSize='s' />\n\t\t\t\t\t</span>\n\t\t\t\t</Tooltip>\n\t\t\t)}\n\t\t</>\n\t);\n\n\t// If it's a legend, return a legend element.\n\tif (isLegend) {\n\t\treturn (\n\t\t\t<legend className={labelClasses} id={`${id}-legend`}>\n\t\t\t\t{labelContent}\n\t\t\t</legend>\n\t\t);\n\t}\n\n\t// If it's a pseudo label, return a span element.\n\tif (isPseudoLabel) {\n\t\treturn (\n\t\t\t<span className={labelClasses} id={`${id}-field-label`}>\n\t\t\t\t{labelContent}\n\t\t\t</span>\n\t\t);\n\t}\n\n\t// Otherwise, return a label element.\n\treturn (\n\t\t<label className={labelClasses} htmlFor={id} id={`${id}-label`}>\n\t\t\t{labelContent}\n\t\t</label>\n\t);\n};\n\n// InputMessage component.\nexport const InputMessage = ({\n\tclassName,\n\tforInputGroup = false,\n\thasValidationMessage,\n\tid,\n\tmessage,\n\tvalidationMessageHasDecorators,\n\tvalidationStatus,\n}: {\n\tclassName?: string;\n\tforInputGroup?: boolean;\n\thasValidationMessage?: boolean;\n\tid: string;\n\tmessage?: string | ReactNode;\n\tvalidationMessageHasDecorators?: boolean;\n\tvalidationStatus?: string;\n}) => {\n\tconst baseClass = 'pds-input-message';\n\tconst statusClass =\n\t\tvalidationStatus && hasValidationMessage\n\t\t\t? `${baseClass}--${validationStatus}`\n\t\t\t: null;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([baseClass, statusClass, className ?? ''])}\n\t\t\tid={forInputGroup ? `${id}__message-hidden` : `${id}__message`}\n\t\t\trole={validationStatus === 'error' ? 'alert' : null}\n\t\t>\n\t\t\t{validationMessageHasDecorators && validationStatus && (\n\t\t\t\t<InputPrefix variant={validationStatus as PrefixVariants} />\n\t\t\t)}\n\t\t\t<div className={`${baseClass}__text`}>{message}</div>\n\t\t</div>\n\t);\n};\n\n// InputPrefix component.\nexport type PrefixVariants = 'search' | 'error' | 'success' | 'filter';\n\nconst prefixIconVariants: Record<PrefixVariants, PDSIcon> = {\n\tsearch: 'magnifyingGlass',\n\terror: 'triangleExclamation',\n\tsuccess: 'check',\n\tfilter: 'barsFilter',\n};\n\nexport const InputPrefix = ({ variant }: { variant: PrefixVariants }) => {\n\tconst baseClass = 'pds-input-prefix';\n\n\treturn (\n\t\t<div className={mergeClasses([baseClass, `${baseClass}--${variant}`])}>\n\t\t\t<Icon\n\t\t\t\tclassName={`${baseClass}__icon`}\n\t\t\t\ticonName={prefixIconVariants[variant]}\n\t\t\t\ticonSize='m'\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\n// SearchShortcut component.\nexport const SearchShortcut = ({\n\tinputId,\n\tshortcutLabel,\n}: {\n\tinputId: string;\n\tshortcutLabel: string;\n}) => {\n\t// Get overlay context.\n\tconst { hasOpenOverlay } = useOverlayContext();\n\n\t// Handle search shortcut.\n\tconst handleSearchShortcut = (e: KeyboardEvent) => {\n\t\tconst element = document.getElementById(inputId);\n\t\tif (element) {\n\t\t\telement.focus();\n\t\t}\n\t\te.preventDefault();\n\t};\n\n\t// Set up search shortcut hotkey.\n\t// Disabled when an overlay (modal, mobile menu, etc.) is open.\n\t// The \"/\" key is globally blocked at the OverlayContext level when overlays are open.\n\tuseKeyPress('/', handleSearchShortcut, {\n\t\tenabled: !hasOpenOverlay,\n\t});\n\n\treturn (\n\t\t<div className='pds-input-search-shortcut'>\n\t\t\t<span className='visually-hidden'>{shortcutLabel}</span>\n\t\t\t<Icon iconName='slashForward' iconSize='s' />\n\t\t</div>\n\t);\n};\n\n// ClearButton component.\nexport const ClearButton = ({\n\tclearLabel,\n\thandleClearInput,\n\tid,\n}: {\n\tclearLabel: string;\n\thandleClearInput: MouseEventHandler<HTMLButtonElement>;\n\tid: string;\n}) => {\n\treturn (\n\t\t<button\n\t\t\taria-controls={id}\n\t\t\tclassName='pds-input-clear-button'\n\t\t\tonClick={handleClearInput}\n\t\t\ttitle={clearLabel}\n\t\t\ttype='button'\n\t\t>\n\t\t\t<Icon iconName='xmark' iconSize='m' />\n\t\t</button>\n\t);\n};\n\n// CharacterCounter component.\nexport const CharacterCounter = ({\n\tcurrentLength,\n\tid,\n\tmaxLength,\n\toverLimitMessage = 'Character limit exceeded by',\n}: {\n\tcurrentLength: number;\n\tid: string;\n\tmaxLength: number;\n\toverLimitMessage: string;\n}) => {\n\tconst isOverLimit = currentLength > maxLength;\n\tconst overLimitCount = currentLength - maxLength;\n\n\tconst baseClass = 'pds-input-character-counter';\n\tconst overLimitClass = isOverLimit ? `${baseClass}--overLimit` : null;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([baseClass, overLimitClass])}\n\t\t\tid={`${id}__counter`}\n\t\t>\n\t\t\t{currentLength}/{maxLength}\n\t\t\t<span aria-live='polite' className='visually-hidden'>\n\t\t\t\t{isOverLimit && `${overLimitMessage} ${overLimitCount}`}\n\t\t\t</span>\n\t\t</div>\n\t);\n};\n\n// HiddenLabel component.\nexport const HiddenLabel = ({ label, ...props }) => (\n\t<span className='visually-hidden' {...props}>\n\t\t{label}\n\t</span>\n);\n\n// Select option group component.\nexport const isOptionGroup = (\n\toption: SelectOptionType | SelectOptionGroupType,\n): option is SelectOptionGroupType => {\n\treturn 'options' in option;\n};\n\n// Select option component.\n// For use with Combobox and Select components.\ninterface SelectOptionProps extends ComponentPropsWithoutRef<'li'> {\n\tchildren?: ReactNode;\n\tclassName?: string;\n\tisActive?: boolean;\n}\n\nexport const SelectOption = forwardRef(\n\t(\n\t\t{ children, className, isActive, ...props }: SelectOptionProps,\n\t\tref: Ref<HTMLLIElement>,\n\t) => {\n\t\tconst id = useId();\n\n\t\tconst baseClass = 'pds-input__select-option';\n\t\tconst activeClass = isActive ? `${baseClass}--active` : null;\n\n\t\treturn (\n\t\t\t<li\n\t\t\t\tref={ref}\n\t\t\t\taria-selected={isActive}\n\t\t\t\tclassName={mergeClasses([baseClass, activeClass, className ?? ''])}\n\t\t\t\tid={id}\n\t\t\t\trole='option'\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</li>\n\t\t);\n\t},\n);\n","import React, { ComponentPropsWithoutRef, CSSProperties } from 'react';\n\nimport {\n\tSPACING_2XL,\n\tSPACING_3XL,\n\tSPACING_4XL,\n\tSPACING_5XL,\n\tSPACING_6XL,\n\tSPACING_L,\n\tSPACING_M,\n\tSPACING_S,\n\tSPACING_XL,\n\tSPACING_XS,\n} from '@pantheon-systems/pds-design-tokens/build/js/variables.global.js';\nimport {\n\tTYPOGRAPHY_SIZE_M,\n\tTYPOGRAPHY_SIZE_S,\n\tTYPOGRAPHY_SIZE_XS,\n} from '@pantheon-systems/pds-design-tokens/build/js/variables.typography.js';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport { HiddenLabel } from '@components/inputs/input-utilities';\n\nexport type SpinnerSize =\n\t| 's'\n\t| 'm'\n\t| 'l'\n\t| 'xl'\n\t| '2xl'\n\t| '3xl'\n\t| '4xl'\n\t| '5xl'\n\t| '6xl';\n\nexport type SpinnerColorType =\n\t| 'full-color'\n\t| 'monochromatic'\n\t| 'monochromatic-reverse';\n\nimport './spinner.css';\n\nexport interface SpinnerProps extends ComponentPropsWithoutRef<'span'> {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Spinner color\n\t */\n\tcolorType?: SpinnerColorType;\n\t/**\n\t * Should the spinner be an inline element? If true, it will be displayed inline-block without a visible label.\n\t */\n\tisInline?: boolean;\n\t/**\n\t * Spinner label. Will be displayed below the Spinner if `showLabel` is true.\n\t */\n\tlabel?: string;\n\t/**\n\t * Should the label be visible? If false, it will render for screen readers only.\n\t */\n\tshowLabel?: boolean;\n\t/**\n\t * Spinner size\n\t */\n\tsize?: SpinnerSize;\n}\n\n// Size mapping for spinner dimensions\nconst spinnerSizes: Record<SpinnerSize, string> = {\n\ts: SPACING_S,\n\tm: SPACING_M,\n\tl: SPACING_L,\n\txl: SPACING_XL,\n\t'2xl': SPACING_2XL,\n\t'3xl': SPACING_3XL,\n\t'4xl': SPACING_4XL,\n\t'5xl': SPACING_5XL,\n\t'6xl': SPACING_6XL,\n};\n\n// Font size mapping for labels\nconst labelFontSizes: Record<SpinnerSize, string> = {\n\ts: TYPOGRAPHY_SIZE_XS,\n\tm: TYPOGRAPHY_SIZE_XS,\n\tl: TYPOGRAPHY_SIZE_XS,\n\txl: TYPOGRAPHY_SIZE_XS,\n\t'2xl': TYPOGRAPHY_SIZE_XS,\n\t'3xl': TYPOGRAPHY_SIZE_S,\n\t'4xl': TYPOGRAPHY_SIZE_S,\n\t'5xl': TYPOGRAPHY_SIZE_M,\n\t'6xl': TYPOGRAPHY_SIZE_M,\n};\n\n// Label margin mapping\nconst labelMargins: Record<SpinnerSize, string> = {\n\ts: SPACING_XS,\n\tm: SPACING_XS,\n\tl: SPACING_XS,\n\txl: SPACING_XS,\n\t'2xl': SPACING_XS,\n\t'3xl': SPACING_S,\n\t'4xl': SPACING_S,\n\t'5xl': SPACING_M,\n\t'6xl': SPACING_L,\n};\n\n/**\n * Spinner UI component\n */\nexport const Spinner = ({\n\tclassName = '',\n\tcolorType = 'full-color',\n\tisInline = false,\n\tlabel = 'Loading',\n\tshowLabel = false,\n\tsize = '3xl',\n\t...props\n}: SpinnerProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-spinner';\n\tconst colorClass =\n\t\tcolorType !== 'full-color' ? `${baseClass}--${colorType}` : null;\n\tconst displayClass = isInline ? `${baseClass}--inline` : null;\n\n\t// Get size values\n\tconst spinnerSize = spinnerSizes[size];\n\tconst fontSize = labelFontSizes[size];\n\tconst labelMargin = labelMargins[size];\n\n\t// Calculate line width: 12% of size, rounded up to nearest pixel\n\tconst lineWidth = Math.ceil(parseFloat(spinnerSize) * 16 * 0.13);\n\n\t// Create inline styles for sizing\n\tconst spinnerStyles = {\n\t\t'--spinner-size': spinnerSize,\n\t\t'--spinner-line': `${lineWidth}px`,\n\t} as CSSProperties;\n\n\tconst labelStyles = {\n\t\tfontSize: fontSize,\n\t\tmarginBlockStart: labelMargin,\n\t} as CSSProperties;\n\n\t// Render the output\n\treturn (\n\t\t<span\n\t\t\taria-hidden='true'\n\t\t\tclassName={mergeClasses([baseClass, colorClass, displayClass, className])}\n\t\t\trole='status'\n\t\t\tstyle={spinnerStyles}\n\t\t\t{...props}\n\t\t>\n\t\t\t<span className={`${baseClass}__icon`}></span>\n\t\t\t{showLabel && !isInline ? (\n\t\t\t\t<span className={`${baseClass}__label`} style={labelStyles}>\n\t\t\t\t\t{label}\n\t\t\t\t</span>\n\t\t\t) : (\n\t\t\t\t<HiddenLabel label={label} />\n\t\t\t)}\n\t\t</span>\n\t);\n};\n","import React, {\n\tComponentPropsWithoutRef,\n\tforwardRef,\n\tMouseEvent,\n\tReactNode,\n\tRef,\n} from 'react';\n\nimport { extractText } from '@libs/components/utility-components';\nimport { mergeClasses } from '@libs/components/utils';\nimport {\n\tButtonDisplayType,\n\tButtonSize,\n\tButtonType,\n\tButtonVariant,\n\tIconSize,\n} from '@libs/types/custom-types';\n\nimport { Icon, PDSIcon } from '@components/icons/Icon/Icon';\nimport {\n\tSpinner,\n\tSpinnerColorType,\n\tSpinnerSize,\n} from '@components/loading-indicators/Spinner/Spinner';\nimport { Tooltip } from '@components/Tooltip/Tooltip';\n\nimport './button.css';\n\ninterface ButtonProps extends ComponentPropsWithoutRef<'button'> {\n\t/**\n\t * Aria-label attribute.\n\t */\n\tariaLabel?: string;\n\t/**\n\t * Type of button\n\t */\n\tbuttonType?: ButtonType;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Is the button disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * How the button is displayed.\n\t */\n\tdisplayType?: ButtonDisplayType;\n\t/**\n\t * Which icon to render\n\t */\n\ticonName?: PDSIcon;\n\t/**\n\t * is the button full width?\n\t */\n\tisFullWidth?: boolean;\n\t/**\n\t * Is the button in the process of an initial load?\n\t */\n\tisLoading?: boolean;\n\t/**\n\t * Will this be used for a split button?\n\t */\n\tisSplitButton?: boolean;\n\t/**\n\t * Is the button in a working state?\n\t */\n\tisWorking?: boolean;\n\t/**\n\t * The text of the button\n\t */\n\tlabel: ReactNode;\n\t/**\n\t * Click event handler callback\n\t */\n\tonClick?: (e: MouseEvent<HTMLElement>) => void;\n\t/**\n\t * Which size of button to render\n\t * @default 's'\n\t */\n\tsize?: ButtonSize;\n\t/**\n\t * Text for an optional tooltip to be displayed when the button is `disabled`, `isLoading`, or `isWorking`.\n\t */\n\ttooltipText?: string;\n\n\t/**\n\t * Which variant of button to render\n\t */\n\tvariant?: ButtonVariant;\n}\n\n/**\n * A Component used to render a Button\n */\nexport const Button = forwardRef(\n\t(\n\t\t{\n\t\t\tariaLabel,\n\t\t\tbuttonType = 'button',\n\t\t\tclassName = '',\n\t\t\tdisabled = false,\n\t\t\tdisplayType = 'label-only',\n\t\t\ticonName,\n\t\t\tisFullWidth = false,\n\t\t\tisLoading = false,\n\t\t\tisSplitButton = false,\n\t\t\tisWorking = false,\n\t\t\tlabel,\n\t\t\tonClick,\n\t\t\tsize = 's',\n\t\t\ttooltipText,\n\t\t\tvariant = 'primary',\n\t\t\t...props\n\t\t}: ButtonProps,\n\t\tref: Ref<HTMLButtonElement>,\n\t) => {\n\t\t// Set up classes.\n\t\tconst baseClass = 'pds-button';\n\t\tconst sizeClass = `${baseClass}--${size}`;\n\t\tconst variantClass = `${baseClass}--${variant}`;\n\t\tconst fullWidthClass = isFullWidth ? `${baseClass}--full-width` : null;\n\t\tconst loadingClass = isLoading ? `${baseClass}--loading` : null;\n\t\tconst pulseClass = isLoading ? 'pds-pulse' : null;\n\n\t\t// Map button sizes to icon and spinner sizes.\n\t\tlet setIconSize: IconSize;\n\t\tlet setSpinnerSize: SpinnerSize;\n\t\tswitch (size) {\n\t\t\tcase 'xs':\n\t\t\t\tsetIconSize = 's';\n\t\t\t\tsetSpinnerSize = 's';\n\t\t\t\tbreak;\n\t\t\tcase 's':\n\t\t\t\tsetIconSize = 'm';\n\t\t\t\tsetSpinnerSize = 'm';\n\t\t\t\tbreak;\n\t\t\tcase 'm':\n\t\t\t\tsetIconSize = 'm';\n\t\t\t\tsetSpinnerSize = 'm';\n\t\t\t\tbreak;\n\t\t\tcase 'l':\n\t\t\t\tsetIconSize = 'm';\n\t\t\t\tsetSpinnerSize = 'l';\n\t\t\t\tbreak;\n\t\t\tcase 'xl':\n\t\t\t\tsetIconSize = 'l';\n\t\t\t\tsetSpinnerSize = 'l';\n\t\t\t\tbreak;\n\t\t}\n\n\t\t// Map spinner colors based on button variant.\n\t\tlet setSpinnerColor: SpinnerColorType = 'monochromatic';\n\t\tconst reverseVariants: ButtonVariant[] = ['primary'];\n\t\tif (reverseVariants.includes(variant)) {\n\t\t\tsetSpinnerColor = 'monochromatic-reverse';\n\t\t}\n\n\t\t// Render the chosen icon\n\t\tconst renderedIcon = (\n\t\t\t<Icon\n\t\t\t\tkey='icon'\n\t\t\t\tclassName={`${baseClass}__icon`}\n\t\t\t\ticonName={iconName}\n\t\t\t\ticonSize={setIconSize}\n\t\t\t/>\n\t\t);\n\n\t\t// Set content of the button based on displayType.\n\t\tlet buttonContent = [label];\n\n\t\tif (displayType == 'icon-start' && iconName) {\n\t\t\tbuttonContent.unshift(renderedIcon);\n\t\t}\n\t\tif (displayType == 'icon-end' && iconName) {\n\t\t\tbuttonContent.push(renderedIcon);\n\t\t}\n\n\t\t// Use label as aria-label when used as a split button.\n\t\tif (isSplitButton) {\n\t\t\tbuttonContent = [renderedIcon];\n\t\t\tariaLabel = extractText(label);\n\t\t}\n\n\t\t// Preprocess the button element.\n\t\tconst buttonElement = (\n\t\t\t<button\n\t\t\t\tref={ref}\n\t\t\t\taria-label={ariaLabel}\n\t\t\t\tclassName={mergeClasses([\n\t\t\t\t\tbaseClass,\n\t\t\t\t\tsizeClass,\n\t\t\t\t\tvariantClass,\n\t\t\t\t\tfullWidthClass,\n\t\t\t\t\tloadingClass,\n\t\t\t\t\tpulseClass,\n\t\t\t\t\tclassName,\n\t\t\t\t])}\n\t\t\t\tdisabled={disabled || isLoading || isWorking}\n\t\t\t\tonClick={onClick}\n\t\t\t\ttype={buttonType}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{isWorking && !isLoading && (\n\t\t\t\t\t<Spinner\n\t\t\t\t\t\tclassName={`${baseClass}__working-indicator`}\n\t\t\t\t\t\tcolorType={setSpinnerColor}\n\t\t\t\t\t\tsize={setSpinnerSize}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t{buttonContent}\n\t\t\t</button>\n\t\t);\n\n\t\treturn (disabled || isLoading || isWorking) && tooltipText ? (\n\t\t\t<Tooltip content={tooltipText} customTrigger={buttonElement} />\n\t\t) : (\n\t\t\t<>{buttonElement}</>\n\t\t);\n\t},\n);\n","import React, {\n\tcloneElement,\n\tComponentPropsWithoutRef,\n\tisValidElement,\n\tReactElement,\n\tReactNode,\n} from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport {\n\tButtonDisplayType,\n\tButtonSize,\n\tButtonVariant,\n\tIconSize,\n} from '@libs/types/custom-types';\n\nimport { Button } from '@components/buttons/Button/Button';\nimport { Icon, PDSIcon } from '@components/icons/Icon/Icon';\n\nimport '../Button/button.css';\nimport './button-link.css';\n\ntype ButtonLinkVariant = Exclude<ButtonVariant, 'navbar' | 'inline'>;\n\n/**\n * Prop types for ButtonLink\n */\nexport interface ButtonLinkProps extends ComponentPropsWithoutRef<'span'> {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Is the link disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Display type of the button.\n\t */\n\tdisplayType?: ButtonDisplayType;\n\t/**\n\t * Icon to render in the button. Only necessary if `displayType` is 'icon-start' or 'icon-end'.\n\t */\n\ticonName?: PDSIcon;\n\t/**\n\t * A link element using the router of your choice.\n\t */\n\tlinkContent: ReactNode;\n\t/**\n\t * Size of the button.\n\t */\n\tsize?: ButtonSize;\n\t/**\n\t * Text for an optional tooltip to be displayed when the button is `disabled`.\n\t */\n\ttooltipText?: string;\n\t/**\n\t * Variant of the button.\n\t */\n\tvariant?: ButtonLinkVariant;\n}\n\n/**\n * ButtonLink UI component\n */\nexport const ButtonLink = ({\n\tclassName,\n\tdisabled = false,\n\tdisplayType = 'label-only',\n\ticonName,\n\tlinkContent,\n\tsize = 's',\n\ttooltipText,\n\tvariant = 'primary',\n\t...props\n}: ButtonLinkProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-button-link';\n\tconst buttonBaseClass = 'pds-button';\n\tconst sizeClass = `${buttonBaseClass}--${size}`;\n\tconst variantClass = `${buttonBaseClass}--${variant}`;\n\tconst buttonModifierClasses = mergeClasses([\n\t\tbuttonBaseClass,\n\t\tsizeClass,\n\t\tvariantClass,\n\t]);\n\n\t// Get the label text from the link element.\n\tconst linkText = isValidElement(linkContent)\n\t\t? (linkContent.props as { children: ReactNode }).children\n\t\t: null;\n\n\t// Map button sizes to icon sizes.\n\tlet setIconSize: IconSize;\n\tswitch (size) {\n\t\tcase 'xs':\n\t\t\tsetIconSize = 's';\n\t\t\tbreak;\n\t\tcase 's':\n\t\t\tsetIconSize = 'm';\n\t\t\tbreak;\n\t\tcase 'm':\n\t\t\tsetIconSize = 'm';\n\t\t\tbreak;\n\t\tcase 'l':\n\t\t\tsetIconSize = 'm';\n\t\t\tbreak;\n\t\tcase 'xl':\n\t\t\tsetIconSize = 'l';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tsetIconSize = 'm';\n\t\t\tbreak;\n\t}\n\n\t// Render the chosen icon\n\tconst renderedIcon = (\n\t\t<Icon\n\t\t\tkey={iconName}\n\t\t\tclassName={`${baseClass}__icon`}\n\t\t\ticonName={iconName}\n\t\t\ticonSize={setIconSize}\n\t\t/>\n\t);\n\n\t// Add the icon to the button if necessary.\n\tlet linkLabel = [linkText];\n\tif (displayType === 'icon-start' && iconName) {\n\t\tlinkLabel = [renderedIcon, linkText];\n\t} else if (displayType === 'icon-end' && iconName) {\n\t\tlinkLabel = [linkText, renderedIcon];\n\t}\n\n\t// Clone the original link element so that we can add the appropriate classes and children to it.\n\tconst processedLink = isValidElement(linkContent)\n\t\t? cloneElement(\n\t\t\t\tlinkContent as ReactElement,\n\t\t\t\tObject.assign({}, linkContent.props, {\n\t\t\t\t\tclassName: buttonModifierClasses,\n\t\t\t\t\tchildren: linkLabel,\n\t\t\t\t}),\n\t\t\t)\n\t\t: null;\n\n\t// If the ButtonLink is disabled, render a disabled regular button.\n\tif (disabled) {\n\t\treturn (\n\t\t\t<Button\n\t\t\t\tdisabled\n\t\t\t\tclassName={mergeClasses([baseClass, className ?? ''])}\n\t\t\t\tlabel={linkLabel}\n\t\t\t\tsize={size}\n\t\t\t\ttooltipText={tooltipText ?? null}\n\t\t\t\tvariant={variant}\n\t\t\t/>\n\t\t);\n\t}\n\n\t// If not disabled, render the output.\n\treturn (\n\t\t<span className={mergeClasses([baseClass, className ?? ''])} {...props}>\n\t\t\t{processedLink}\n\t\t</span>\n\t);\n};\n","import { useEffect, useState } from 'react';\n\ninterface ClipboardOptions {\n\tduration?: number;\n}\n\ntype UseClipboardReturn = [boolean, () => Promise<void>];\n\nexport const useClipboard = (\n\ttext: string,\n\toptions?: ClipboardOptions,\n): UseClipboardReturn => {\n\tconst [isCopied, setIsCopied] = useState<boolean>(false);\n\tconst duration = options?.duration;\n\n\tuseEffect(() => {\n\t\tlet id: NodeJS.Timeout | undefined;\n\n\t\tif (isCopied && duration) {\n\t\t\tid = setTimeout(() => {\n\t\t\t\tsetIsCopied(false);\n\t\t\t}, duration);\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (id) {\n\t\t\t\tclearTimeout(id);\n\t\t\t}\n\t\t};\n\t}, [isCopied, duration]);\n\n\tconst doCopy = async () => {\n\t\tif (navigator.clipboard) {\n\t\t\ttry {\n\t\t\t\tawait navigator.clipboard.writeText(text);\n\t\t\t\tsetIsCopied(true);\n\t\t\t} catch {\n\t\t\t\t// Intentionally ignore clipboard write errors\n\t\t\t}\n\t\t}\n\t};\n\n\treturn [isCopied, doCopy];\n};\n","import React, {\n\tComponentPropsWithoutRef,\n\tforwardRef,\n\tMouseEvent,\n\tRef,\n\tuseRef,\n} from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { ButtonType, IconSize } from '@libs/types/custom-types';\n\nimport { Icon, PDSIcon } from '@components/icons/Icon/Icon';\nimport { Tooltip } from '@components/Tooltip/Tooltip';\n\nimport './icon-button.css';\n\ntype IconButtonSize = 's' | 'm';\n\ninterface IconButtonProps extends ComponentPropsWithoutRef<'button'> {\n\t/**\n\t * Aria-label attribute.\n\t */\n\tariaLabel: string;\n\t/**\n\t * Type of button\n\t */\n\tbuttonType?: ButtonType;\n\t/**\n\t * Additional class names.\n\t */\n\tclassName?: string;\n\t/**\n\t * Is the button disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Show tooltip on hover. If false, the title attribute will be used.\n\t */\n\thasTooltip?: boolean;\n\t/**\n\t * Which icon to render second. If this is set, the button will be animated.\n\t */\n\ticon2Name?: PDSIcon;\n\t/**\n\t * Which icon to render.\n\t */\n\ticonName: PDSIcon;\n\t/**\n\t * Click event handler callback.\n\t */\n\tonClick?: (e: MouseEvent<HTMLElement>) => void;\n\t/**\n\t * Which size of button to render.\n\t */\n\tsize?: IconButtonSize;\n\t/**\n\t * Which variant of button to render.\n\t */\n\tvariant?: 'standard' | 'reverse' | 'critical';\n}\n\n/**\n * IconButton UI component\n */\nexport const IconButton = forwardRef(\n\t(\n\t\t{\n\t\t\tariaLabel,\n\t\t\tbuttonType = 'button',\n\t\t\tclassName,\n\t\t\tdisabled = false,\n\t\t\thasTooltip = true,\n\t\t\ticon2Name = null,\n\t\t\ticonName,\n\t\t\tonClick,\n\t\t\tsize = 's',\n\t\t\tvariant = 'standard',\n\t\t\t...props\n\t\t}: IconButtonProps,\n\t\tref: Ref<HTMLButtonElement>,\n\t) => {\n\t\t// Set up classes.\n\t\tconst baseClass = 'pds-icon-button';\n\t\tconst sizeClass = size !== 's' ? `${baseClass}--${size}` : null;\n\t\tconst variantClass =\n\t\t\tvariant !== 'standard' ? `${baseClass}--${variant}` : null;\n\n\t\tconst animationClasses = {\n\t\t\tfadeOut: `${baseClass}--fadeOut`,\n\t\t\thide: `${baseClass}--hide`,\n\t\t\tscaleIn: `${baseClass}--scaleIn`,\n\t\t};\n\n\t\t// Map button sizes to icon sizes and offset values.\n\t\tlet setOffsetValue: number;\n\t\tlet setIconSize: IconSize;\n\t\tswitch (size) {\n\t\t\tcase 's':\n\t\t\t\tsetIconSize = 'm';\n\t\t\t\tsetOffsetValue = 8;\n\t\t\t\tbreak;\n\t\t\tcase 'm':\n\t\t\t\tsetIconSize = 'l';\n\t\t\t\tsetOffsetValue = 11;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tsetIconSize = 'm';\n\t\t\t\tsetOffsetValue = 8;\n\t\t\t\tbreak;\n\t\t}\n\n\t\t// If there is a second icon, the button will be animated.\n\t\tconst isAnimated = icon2Name !== null;\n\n\t\t// Set up refs for the two icons.\n\t\tconst icon1Ref = useRef(null);\n\t\tconst icon2Ref = useRef(null);\n\n\t\t// Set up the animation transitions.\n\t\tconst handleAnimation = () => {\n\t\t\ticon1Ref.current.classList.add(animationClasses.fadeOut);\n\t\t\ticon1Ref.current.classList.add(animationClasses.hide);\n\n\t\t\ticon2Ref.current.classList.remove(animationClasses.hide);\n\t\t\ticon2Ref.current.classList.add(animationClasses.scaleIn);\n\n\t\t\tsetTimeout(() => {\n\t\t\t\ticon1Ref.current.classList.remove(\n\t\t\t\t\tanimationClasses.fadeOut,\n\t\t\t\t\tanimationClasses.hide,\n\t\t\t\t);\n\t\t\t\ticon1Ref.current.classList.add(animationClasses.scaleIn);\n\n\t\t\t\ticon2Ref.current.classList.remove(animationClasses.scaleIn);\n\t\t\t\ticon2Ref.current.classList.add(animationClasses.hide);\n\t\t\t}, 2000);\n\t\t};\n\n\t\t// Handle click.\n\t\tconst handleClick = (e: MouseEvent<HTMLElement>) => {\n\t\t\tif (isAnimated) {\n\t\t\t\thandleAnimation();\n\t\t\t}\n\n\t\t\tif (onClick) {\n\t\t\t\tonClick(e);\n\t\t\t}\n\t\t};\n\n\t\t// Preprocess button content.\n\t\tconst buttonContent = isAnimated ? (\n\t\t\t<div className={`${baseClass}__content`}>\n\t\t\t\t<div ref={icon1Ref} className={`${baseClass}__icon-wrapper`}>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName={`${baseClass}__icon`}\n\t\t\t\t\t\ticonName={iconName}\n\t\t\t\t\t\ticonSize={setIconSize}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tref={icon2Ref}\n\t\t\t\t\tclassName={`${baseClass}__icon-wrapper ${animationClasses.hide}`}\n\t\t\t\t>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName={`${baseClass}__icon`}\n\t\t\t\t\t\ticonName={icon2Name}\n\t\t\t\t\t\ticonSize={setIconSize}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t) : (\n\t\t\t<div className={`${baseClass}__content`}>\n\t\t\t\t<Icon\n\t\t\t\t\tclassName={`${baseClass}__icon`}\n\t\t\t\t\ticonName={iconName}\n\t\t\t\t\ticonSize={setIconSize}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\n\t\t// Render the output\n\t\treturn (\n\t\t\t<button\n\t\t\t\tref={ref}\n\t\t\t\taria-label={ariaLabel}\n\t\t\t\tclassName={mergeClasses([\n\t\t\t\t\tbaseClass,\n\t\t\t\t\tsizeClass,\n\t\t\t\t\tvariantClass,\n\t\t\t\t\tclassName,\n\t\t\t\t])}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tonClick={handleClick}\n\t\t\t\ttitle={hasTooltip && !disabled ? null : ariaLabel}\n\t\t\t\ttype={buttonType}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{hasTooltip && !disabled ? (\n\t\t\t\t\t<Tooltip\n\t\t\t\t\t\tclassName={`${baseClass}__tooltip`}\n\t\t\t\t\t\tcontent={ariaLabel}\n\t\t\t\t\t\tcustomTrigger={buttonContent}\n\t\t\t\t\t\toffsetValue={setOffsetValue}\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\tbuttonContent\n\t\t\t\t)}\n\t\t\t</button>\n\t\t);\n\t},\n);\n","import React, { ComponentPropsWithoutRef } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport { useClipboard } from '@utilities/hooks/useClipboard/useClipboard';\n\nimport { IconButton } from '@components/buttons/IconButton/IconButton';\n\n/**\n * Prop types for ClipboardButton\n */\nexport interface ClipboardButtonProps\n\textends ComponentPropsWithoutRef<'button'> {\n\t/**\n\t * Translation string for aria-label attribute and tooltip text.\n\t */\n\tariaLabel: string;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Text to copy to clipboard.\n\t */\n\tclipboardText?: string;\n\t/**\n\t * Is the button disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Which variant of button to render.\n\t */\n\tvariant?: 'standard' | 'reverse';\n}\n\n/**\n * ClipboardButton UI component\n */\nexport const ClipboardButton = ({\n\tariaLabel = 'Copy to clipboard',\n\tclassName,\n\tclipboardText = '',\n\tdisabled,\n\tvariant = 'standard',\n\t...props\n}: ClipboardButtonProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-clipboard-button';\n\n\t// Set up clipboard hook.\n\tconst [_isCopied, setIsCopied] = useClipboard(clipboardText);\n\n\t// Render the output\n\treturn (\n\t\t<IconButton\n\t\t\tariaLabel={ariaLabel}\n\t\t\tbuttonType='button'\n\t\t\tclassName={mergeClasses([baseClass, className ?? ''])}\n\t\t\tdisabled={disabled}\n\t\t\ticon2Name='check'\n\t\t\ticonName='copy'\n\t\t\tonClick={setIsCopied}\n\t\t\tsize='m'\n\t\t\tvariant={variant}\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n","import React, { ComponentPropsWithoutRef } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport { Icon } from '@components/icons/Icon/Icon';\n\nimport './close-button.css';\n\n/**\n * Prop types for CloseButton\n */\nexport interface CloseButtonProps extends ComponentPropsWithoutRef<'button'> {\n\t/**\n\t * Aria-label attribute.\n\t */\n\tariaLabel?: string;\n\t/**\n\t * Additional class names.\n\t */\n\tclassName?: string;\n\t/**\n\t * Click event callback function.\n\t */\n\tonClick?: () => void;\n\t/**\n\t * Size of the icon.\n\t */\n\tsize?: 'm' | 'l' | 'xl';\n}\n\n/**\n * CloseButton UI component\n */\nexport const CloseButton = ({\n\tariaLabel = 'Close',\n\tclassName,\n\tonClick,\n\tsize = 'l',\n\t...props\n}: CloseButtonProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-close-button';\n\tconst sizeClass = `${baseClass}--${size}`;\n\n\t// Render the output\n\treturn (\n\t\t<button\n\t\t\taria-label={ariaLabel}\n\t\t\tclassName={mergeClasses([baseClass, sizeClass, className ?? ''])}\n\t\t\tonClick={onClick}\n\t\t\ttype='button'\n\t\t\t{...props}\n\t\t>\n\t\t\t<Icon className={`${baseClass}__icon`} iconName='xmarkLarge' />\n\t\t</button>\n\t);\n};\n","import { ReactNode } from 'react';\n\nimport { PDSIcon } from '@components/icons/Icon/Icon';\n\n// Common button types.\nexport type ButtonDisplayType = 'label-only' | 'icon-start' | 'icon-end';\n\nexport type ButtonSize = 'xs' | 's' | 'm' | 'l' | 'xl';\n\nexport type ButtonType = 'button' | 'submit' | 'reset';\n\nexport type ButtonVariant =\n\t| 'primary'\n\t| 'secondary'\n\t| 'subtle'\n\t| 'brand'\n\t| 'accent'\n\t| 'reverse'\n\t| 'reverse-secondary'\n\t| 'critical'\n\t| 'critical-secondary'\n\t| 'navbar'\n\t| 'inline';\n\n// Standard container width options.\nexport type ContainerWidth = 'narrow' | 'standard' | 'wide' | 'x-wide' | 'full';\n\nexport type Display =\n\t| 'block'\n\t| 'inline'\n\t| 'inline-block'\n\t| 'flex'\n\t| 'inline-flex'\n\t| 'grid'\n\t| 'inline-grid'\n\t| 'flow-root'\n\t| 'none'\n\t| 'contents'\n\t| 'table'\n\t| 'table-row'\n\t| 'table-cell'\n\t| 'table-caption'\n\t| 'table-column'\n\t| 'table-column-group'\n\t| 'table-footer-group'\n\t| 'table-header-group'\n\t| 'table-row-group'\n\t| 'list-item'\n\t| 'inherit'\n\t| 'initial'\n\t| 'revert'\n\t| 'unset';\n\n// Standard status type options (matches CODESTYLE status conventions).\nexport type StatusType =\n\t| 'info'\n\t| 'success'\n\t| 'warning'\n\t| 'critical'\n\t| 'discovery';\n\n// Extended status type with common additions.\nexport type StatusTypeExtended = StatusType | 'neutral' | 'working';\n\n// Standard labels for status types (default English labels for accessibility).\n// Components allow these to be overridden via typeLabels prop for i18n/translation.\nexport const StatusTypeLabels: Record<StatusType, string> = {\n\tinfo: 'Information',\n\tsuccess: 'Success',\n\twarning: 'Warning',\n\tcritical: 'Critical',\n\tdiscovery: 'Discovery',\n};\n\n// Floating UI component offset options.\nexport type FuiOffset =\n\t| number\n\t| {\n\t\t\talignmentAxis?: number | null;\n\t\t\tcrossAxis?: number;\n\t\t\tmainAxis?: number;\n\t };\n\n// Floating UI placement options.\nexport type FuiPlacement =\n\t| 'top'\n\t| 'top-start'\n\t| 'top-end'\n\t| 'right'\n\t| 'right-start'\n\t| 'right-end'\n\t| 'bottom'\n\t| 'bottom-start'\n\t| 'bottom-end'\n\t| 'left'\n\t| 'left-start'\n\t| 'left-end';\n\nexport type HeadingItemType = {\n\t/**\n\t * Is the item a heading?\n\t */\n\tisHeading: boolean;\n\t/**\n\t * Label for a menu item\n\t */\n\tlabel: string;\n};\n\n// Heading levels for Hx component.\nexport type HeadingLevel = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'span';\nexport type HeadingLevelCommon = Exclude<HeadingLevel, 'h1' | 'h5' | 'h6'>;\n\n// Icon size options\nexport type IconSize = 'xs' | 's' | 'm' | 'l' | 'xl' | '2xl' | '3xl';\n\nexport type LinkItemType = {\n\t/**\n\t * Screen reader label for critical items. Only used when isCritical is true.\n\t */\n\tcriticalLabel?: string;\n\t/**\n\t * Description of the item\n\t */\n\tdescription?: string;\n\t/**\n\t * Is this item disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Optional icon for this item. Choose from available icons in the Icon component.\n\t */\n\ticonName?: PDSIcon;\n\t/**\n\t * Is this a critical action item?\n\t */\n\tisCritical?: boolean;\n\t/**\n\t * Is the item a link?\n\t */\n\tisLink: boolean;\n\t/**\n\t * The content of the link.\n\t */\n\tlinkContent?: ReactNode;\n\t/**\n\t * Optional `data-testid` value for this item.\n\t */\n\ttestId?: string;\n};\n\nexport type MenuItemType = {\n\t/**\n\t * (optional) Callback function to execute when menu item is activated.\n\t * Receives the menu item as an optional parameter.\n\t */\n\tcallback?: (item?: MenuItemType) => void;\n\t/**\n\t * Screen reader label for critical items. Only used when isCritical is true.\n\t */\n\tcriticalLabel?: string;\n\t/**\n\t * Description of the item\n\t */\n\tdescription?: string;\n\t/**\n\t * Is this item disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Optional icon for this item. Choose from available icons in the Icon component.\n\t */\n\ticonName?: PDSIcon;\n\t/**\n\t * Optional ID value for this item.\n\t */\n\tid?: string;\n\t/**\n\t * Is this a critical action item?\n\t */\n\tisCritical?: boolean;\n\t/**\n\t * Label for a menu item\n\t */\n\tlabel: string;\n\t/**\n\t * Optional `data-testid` value for this item.\n\t */\n\ttestId?: string;\n};\n\nexport type NodeItemType = {\n\t/**\n\t * Screen reader label for critical items. Only used when isCritical is true.\n\t */\n\tcriticalLabel?: string;\n\t/**\n\t * Is this item disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Is this a critical action item?\n\t */\n\tisCritical?: boolean;\n\t/**\n\t * Is the item a node?\n\t */\n\tisNode: boolean;\n\t/**\n\t * The content of the node.\n\t */\n\tnodeContent?: ReactNode;\n};\n\nexport type SeparatorItemType = {\n\t/**\n\t * Is the item a separator?\n\t */\n\tisSeparator: boolean;\n};\n\n// Menu item union type\nexport type MenuItem =\n\t| HeadingItemType\n\t| LinkItemType\n\t| MenuItemType\n\t| NodeItemType\n\t| SeparatorItemType;\n\n// Menu item type guard functions\nexport const isSeparatorItemType = (\n\titem: MenuItem,\n): item is SeparatorItemType => {\n\treturn 'isSeparator' in item && item.isSeparator;\n};\n\nexport const isHeadingItemType = (item: MenuItem): item is HeadingItemType => {\n\treturn 'isHeading' in item && item.isHeading;\n};\n\nexport const isLinkItemType = (item: MenuItem): item is LinkItemType => {\n\treturn 'isLink' in item && item.isLink;\n};\n\nexport const isNodeItemType = (item: MenuItem): item is NodeItemType => {\n\treturn 'isNode' in item && item.isNode;\n};\n\n// Site plan level options.\nexport type SitePlanLevel =\n\t| 'sandbox'\n\t| 'basic'\n\t| 'performance-small'\n\t| 'performance-medium'\n\t| 'performance-large'\n\t| 'performance-xl'\n\t| 'performance-2xl'\n\t| 'elite'\n\t| 'pro'\n\t| 'business'\n\t| 'flagship-performance';\n\nexport const SitePlanLevelLabel: Record<SitePlanLevel, string> = {\n\tsandbox: 'Sandbox',\n\tbasic: 'Basic',\n\t'performance-small': 'Performance Small',\n\t'performance-medium': 'Performance Medium',\n\t'performance-large': 'Performance Large',\n\t'performance-xl': 'Performance XL',\n\t'performance-2xl': 'Performance 2XL',\n\telite: 'Elite',\n\tpro: 'Professional',\n\tbusiness: 'Business',\n\t'flagship-performance': 'Flagship Performance',\n};\n\n// Site status options.\nexport type SiteStatus = 'active' | 'frozen' | 'restricted';\n\n// Site type options.\nexport type SiteType = 'drupal' | 'wordpress' | 'gatsby' | 'nextjs';\n\nexport const SiteTypeLabel: Record<SiteType, string> = {\n\tdrupal: 'Drupal',\n\twordpress: 'WordPress',\n\tgatsby: 'Gatsby',\n\tnextjs: 'Next.js',\n};\n\nexport const SiteTypeIcon: Record<SiteType, PDSIcon> = {\n\tdrupal: 'drupal',\n\twordpress: 'wordpress',\n\tgatsby: 'bolt',\n\tnextjs: 'bolt',\n};\n\nexport type SpacingScaleOptions =\n\t| '6xs'\n\t| '5xs'\n\t| '4xs'\n\t| '3xs'\n\t| '2xs'\n\t| 'xs'\n\t| 's'\n\t| 'm'\n\t| 'l'\n\t| 'xl'\n\t| '2xl'\n\t| '3xl'\n\t| '4xl'\n\t| '5xl'\n\t| '6xl'\n\t| '7xl'\n\t| '8xl';\n\nexport type TypeScaleOptions =\n\t| 'xs'\n\t| 's'\n\t| 'm'\n\t| 'l'\n\t| 'xl'\n\t| '2xl'\n\t| '3xl'\n\t| '4xl'\n\t| '5xl'\n\t| '6xl'\n\t| '7xl'\n\t| '8xl'\n\t| '9xl';\n","import { useEffect, useState } from 'react';\n\nexport const useWindowWidth = () => {\n\tconst isBrowser = typeof window !== 'undefined';\n\n\tconst [windowWidth, setWindowWidth] = useState(\n\t\tisBrowser && window.innerWidth !== undefined ? window.innerWidth : 1024,\n\t);\n\n\tuseEffect(() => {\n\t\tif (!isBrowser) return;\n\n\t\tsetWindowWidth(window.innerWidth);\n\n\t\tconst handleResize = () => {\n\t\t\tsetWindowWidth(window.innerWidth);\n\t\t};\n\n\t\twindow.addEventListener('resize', handleResize);\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener('resize', handleResize);\n\t\t};\n\t}, []);\n\n\treturn windowWidth;\n};\n","import React, { createContext, useEffect } from 'react';\n\nimport { useWindowWidth } from '@utilities/hooks/useWindowWidth/useWindowWidth';\n\nexport const ResponsiveContext = createContext(null);\n\nexport const ResponsiveContextProvider = ({\n\tchildren,\n\tmobileMenuMaxWidth = 640,\n}) => {\n\t// Get window width.\n\tconst windowWidth = useWindowWidth();\n\n\t// Check if mobile.\n\tconst isMobile = windowWidth <= mobileMenuMaxWidth;\n\n\t// Prepare the context value.\n\tconst contextValue = {\n\t\tisMobile: isMobile,\n\t\tmobileMenuMaxWidth: mobileMenuMaxWidth,\n\t\twindowWidth: windowWidth,\n\t};\n\n\t// Disallow horizontal scrolling on mobile.\n\tuseEffect(() => {\n\t\tif (isMobile) {\n\t\t\tdocument.body.classList.add('pds-no-scroll-x');\n\t\t} else {\n\t\t\tdocument.body.classList.remove('pds-no-scroll-x');\n\t\t}\n\t}, [isMobile]);\n\n\treturn (\n\t\t<ResponsiveContext.Provider value={contextValue}>\n\t\t\t{children}\n\t\t</ResponsiveContext.Provider>\n\t);\n};\n","import React, {\n\tComponentPropsWithRef,\n\tJSXElementConstructor,\n\tKeyboardEvent,\n\tMouseEvent,\n\tReactElement,\n\tReactNode,\n\tuseContext,\n\tuseLayoutEffect,\n\tuseRef,\n\tuseState,\n} from 'react';\n\nimport { autoUpdate, flip, useFloating } from '@floating-ui/react';\n\nimport { extractText } from '@libs/components/utility-components';\nimport { createRandomID, mergeClasses } from '@libs/components/utils';\nimport {\n\tButtonVariant,\n\tHeadingItemType,\n\tisHeadingItemType,\n\tisLinkItemType,\n\tisNodeItemType,\n\tisSeparatorItemType,\n\tLinkItemType,\n\tMenuItem,\n\tMenuItemType,\n\tNodeItemType,\n\tSeparatorItemType,\n} from '@libs/types/custom-types';\n\nimport { ResponsiveContext } from '@utilities/context-providers/ResponsiveContext/ResponsiveContext';\n\nimport { Button } from '@components/buttons/Button/Button';\nimport { IconButton } from '@components/buttons/IconButton/IconButton';\nimport { Icon, PDSIcon } from '@components/icons/Icon/Icon';\n\nimport './menu-button.css';\n\ntype MenuButtonSize = 's' | 'm';\n\n/**\n * Prop types for MenuButton\n */\nexport interface MenuButtonProps extends ComponentPropsWithRef<'span'> {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Is the button disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * How the button is displayed.\n\t */\n\tdisplayType?: 'icon-end' | 'icon-only';\n\t/**\n\t * Icon name for icon-only buttons.\n\t */\n\ticonName?: PDSIcon;\n\t/**\n\t * ID value for this component.\n\t */\n\tid: string;\n\t/**\n\t * Will this be used for a split button?\n\t */\n\tisSplitButton?: boolean;\n\t/**\n\t * The text of the button\n\t */\n\tlabel: ReactNode;\n\t/**\n\t * Array of menu items\n\t */\n\tmenuItems: Array<\n\t\t| HeadingItemType\n\t\t| LinkItemType\n\t\t| MenuItemType\n\t\t| NodeItemType\n\t\t| SeparatorItemType\n\t>;\n\t/**\n\t * Horizontal position of the menu relative to the button. Applies to breakpoints `md` and up.\n\t */\n\tmenuPosition?: 'start' | 'end';\n\t/**\n\t * Optional callback function for when the button is clicked or activated by the keyboard.\n\t */\n\tonClick?: () => void;\n\t/**\n\t * Which size of button to render.\n\t */\n\tsize?: MenuButtonSize;\n\t/**\n\t * Optional `data-testid` value for this component.\n\t */\n\ttestId?: string;\n\t/**\n\t * Translatable string for description of unlabeled group of menu items.\n\t */\n\tundefinedLabel?: string;\n\t/**\n\t * Which variant of button to render — only valid for icon-end (default) display type.\n\t */\n\tvariant?: Extract<ButtonVariant, 'primary' | 'secondary' | 'navbar'>;\n\t/**\n\t * Is this button located with the Navbar component?\n\t * This will adjust the styling and position of the dropdown.\n\t * Omit this prop for the Dashboard application. It only applies to the standard Navbar component with a bottom border.\n\t */\n\twithinNavbar?: boolean;\n}\n\n/**\n * MenuButton UI component\n */\nexport const MenuButton = ({\n\tclassName,\n\tdisabled,\n\tdisplayType = 'icon-end',\n\ticonName = 'ellipsisVertical',\n\tid,\n\tisSplitButton = false,\n\tlabel,\n\tmenuItems,\n\tmenuPosition = 'start',\n\tonClick,\n\tsize = 's',\n\ttestId,\n\tundefinedLabel = 'Unlabeled group',\n\tvariant = 'primary',\n\twithinNavbar,\n\t...props\n}: MenuButtonProps) => {\n\t// Floating UI support\n\tconst { placement, refs, strategy, x, y } = useFloating({\n\t\tplacement: 'bottom-start',\n\t\tmiddleware: [flip()],\n\t\twhileElementsMounted: autoUpdate,\n\t});\n\n\t// Set isMobile fallback.\n\tlet isMobile = false;\n\n\t// Get responsive context.\n\tconst responsiveContext = useContext(ResponsiveContext);\n\tif (responsiveContext) {\n\t\tisMobile = responsiveContext.isMobile;\n\t}\n\n\t// Is it used in a mobile navbar?\n\tconst isMobileNavbar = variant === 'navbar' && isMobile;\n\n\t// Set up classes.\n\tconst baseClass = 'pds-menu-button';\n\tconst mobileClass = isMobileNavbar ? `${baseClass}--isMobile` : null;\n\tconst navbarClass = withinNavbar ? `${baseClass}--navbar` : null;\n\n\t// Generate a short unique ID to add to ID attributes.\n\tconst triggerID = id;\n\tconst [listboxID] = useState(`menu-button-${id}`);\n\n\tconst menuRefActual = refs.floating;\n\tconst nodeRef = useRef(null);\n\n\tconst [isOpen, setIsOpen] = useState(false);\n\tconst [focusMenu, setFocusMenu] = useState(false);\n\tconst [activeDescendant, setActiveDescendant] = useState('');\n\tconst [activeMenuItemIndex, setActiveMenuItemIndex] = useState(0);\n\n\t// Non-state instance trackers\n\tconst groupIDs = useRef([]);\n\tconst menuItemIDs = useRef([]);\n\tconst focusableMenuItems = useRef([]);\n\n\tuseLayoutEffect(() => {\n\t\t// setup the onClick outside handler\n\t\twindow.addEventListener('mousedown', handleClickOutside, true);\n\n\t\t// Add the Floating UI data attribute\n\t\tconst menuElem = menuRefActual.current;\n\n\t\tif (menuElem) {\n\t\t\tmenuElem.dataset.fuiPlacement = placement;\n\t\t}\n\n\t\t// only focus the menu when state instructs us to\n\t\tif (focusMenu) {\n\t\t\t// focus the menu element\n\t\t\t// NOTE: setTimeout is used to prevent focus change from conflicting with Floating UI\n\t\t\tsetTimeout(() => {\n\t\t\t\tmenuElem.focus();\n\t\t\t}, 0);\n\t\t\t// reset state\n\t\t\tsetFocusMenu(false);\n\t\t}\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener('mousedown', handleClickOutside, true);\n\t\t};\n\t}, [isOpen, placement]);\n\n\t// Internal/support methods\n\tconst setActiveMenuItem = (elemID: string | undefined, index: number) => {\n\t\tsetActiveDescendant(elemID);\n\t\tsetActiveMenuItemIndex(index);\n\t};\n\n\tconst openMenu = () => {\n\t\tsetIsOpen(true);\n\t\tsetFocusMenu(true);\n\t};\n\n\tconst closeMenu = () => {\n\t\tsetIsOpen(false);\n\t\tsetActiveMenuItem(undefined, -1); // remove current selection to reset menu\n\t\tconst triggerElement = nodeRef.current?.querySelector(\n\t\t\t`#${triggerID}`,\n\t\t) as HTMLElement | null;\n\t\ttriggerElement?.focus();\n\t};\n\n\tconst setFocusByFirstCharacter = (char: string) => {\n\t\t// ensure lowercase for easier comparison\n\t\tchar = char.toLowerCase();\n\t\t// track if we've found an item yet\n\t\tlet itemFound = false;\n\n\t\t// loop from current active index to end of focusable items\n\t\tfor (\n\t\t\tlet i = activeMenuItemIndex + 1;\n\t\t\ti < focusableMenuItems.current.length;\n\t\t\ti++\n\t\t) {\n\t\t\tconst item = focusableMenuItems.current[i];\n\n\t\t\tif (item.label.toLowerCase().startsWith(char)) {\n\t\t\t\tsetActiveMenuItem(menuItemIDs.current[i], i);\n\t\t\t\t// report that we found an item\n\t\t\t\titemFound = true;\n\t\t\t\t// break out of loop\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// loop from beginning of focusable items to item prior to current active index\n\t\t// !! Continue search only if we haven't found an item yet\n\t\tif (itemFound === false) {\n\t\t\tfor (let i = 0; i < activeMenuItemIndex; i++) {\n\t\t\t\tconst item = focusableMenuItems.current[i];\n\n\t\t\t\tif (item.label.toLowerCase().startsWith(char)) {\n\t\t\t\t\tsetActiveMenuItem(menuItemIDs.current[i], i);\n\t\t\t\t\t// break out of loop\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tconst activateMenuItem = (itemID: string) => {\n\t\tconst itemIndex = menuItemIDs.current.indexOf(itemID);\n\t\tconst item = focusableMenuItems.current[itemIndex];\n\n\t\t// only execute callback if there is one and the item is not disabled\n\t\tif (item.callback && !item.disabled) {\n\t\t\titem.callback(item);\n\t\t}\n\n\t\t// Activate link if it exists and is not disabled\n\t\tif (item.linkContent && !item.disabled) {\n\t\t\tconst linkElement = nodeRef.current?.querySelector(\n\t\t\t\t`#${itemID} a`,\n\t\t\t) as HTMLAnchorElement | null;\n\t\t\tlinkElement?.click();\n\t\t}\n\t};\n\n\tconst activateCurrentMenuItem = () => {\n\t\tconst currentItemID = menuItemIDs.current[activeMenuItemIndex];\n\t\tactivateMenuItem(currentItemID);\n\t};\n\n\t// Event handler functions\n\tconst handleTriggerClick = (event: MouseEvent<HTMLButtonElement>) => {\n\t\tif (isOpen) {\n\t\t\tcloseMenu();\n\t\t} else {\n\t\t\topenMenu();\n\t\t}\n\n\t\tif (onClick) {\n\t\t\tonClick();\n\t\t}\n\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\t};\n\n\tconst handleMenuItemClick = (event: MouseEvent<HTMLLIElement>) => {\n\t\tactivateMenuItem(event.currentTarget.id);\n\n\t\tif (!isMobileNavbar) {\n\t\t\tcloseMenu();\n\t\t}\n\t};\n\n\tconst handleButtonKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n\t\tconst key = event.key;\n\t\tlet flag = false;\n\n\t\tswitch (key) {\n\t\t\t// open menu and focus on first menu item\n\t\t\tcase ' ':\n\t\t\tcase 'Enter':\n\t\t\tcase 'ArrowDown':\n\t\t\tcase 'Down': {\n\t\t\t\topenMenu();\n\t\t\t\t// Find the first non-disabled item\n\t\t\t\tlet firstEnabledIndex = 0;\n\t\t\t\tfor (let i = 0; i < focusableMenuItems.current.length; i++) {\n\t\t\t\t\tif (!focusableMenuItems.current[i]?.disabled) {\n\t\t\t\t\t\tfirstEnabledIndex = i;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tsetActiveMenuItem(\n\t\t\t\t\tmenuItemIDs.current[firstEnabledIndex],\n\t\t\t\t\tfirstEnabledIndex,\n\t\t\t\t);\n\t\t\t\tflag = true;\n\n\t\t\t\tif (onClick) {\n\t\t\t\t\tonClick();\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// close menu\n\t\t\tcase 'Esc':\n\t\t\tcase 'Escape':\n\t\t\t\tcloseMenu();\n\t\t\t\tflag = true;\n\t\t\t\tbreak;\n\n\t\t\t// open menu and focus on last menu item\n\t\t\tcase 'Up':\n\t\t\tcase 'ArrowUp': {\n\t\t\t\topenMenu();\n\t\t\t\t// Find the last non-disabled item\n\t\t\t\tlet lastEnabledIndex = menuItemIDs.current.length - 1;\n\t\t\t\tfor (let i = menuItemIDs.current.length - 1; i >= 0; i--) {\n\t\t\t\t\tif (!focusableMenuItems.current[i]?.disabled) {\n\t\t\t\t\t\tlastEnabledIndex = i;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tsetActiveMenuItem(\n\t\t\t\t\tmenuItemIDs.current[lastEnabledIndex],\n\t\t\t\t\tlastEnabledIndex,\n\t\t\t\t);\n\t\t\t\tflag = true;\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// do nothing\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\t// if something desired happened prevent default behavior\n\t\tif (flag) {\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\t\t}\n\t};\n\n\tconst handleMenuKeydown = (event: KeyboardEvent<HTMLElement>) => {\n\t\tconst key = event.key;\n\t\tlet flag = false,\n\t\t\tmoveToItemID = '',\n\t\t\tmoveToIndex = 0;\n\n\t\tfunction isPrintableCharacter(str: string) {\n\t\t\treturn str.length === 1 && str.match(/\\S/);\n\t\t}\n\n\t\tif (event.ctrlKey || event.altKey || event.metaKey) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (event.shiftKey) {\n\t\t\tif (isPrintableCharacter(key)) {\n\t\t\t\tsetFocusByFirstCharacter(key);\n\t\t\t\tflag = true;\n\t\t\t}\n\n\t\t\tif (event.key === 'Tab') {\n\t\t\t\tcloseMenu();\n\t\t\t\tflag = true;\n\t\t\t}\n\t\t} else {\n\t\t\tswitch (key) {\n\t\t\t\tcase ' ':\n\t\t\t\tcase 'Enter':\n\t\t\t\t\tcloseMenu();\n\t\t\t\t\tactivateCurrentMenuItem();\n\t\t\t\t\tflag = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Esc':\n\t\t\t\tcase 'Escape':\n\t\t\t\t\tcloseMenu();\n\t\t\t\t\tflag = true;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'Up':\n\t\t\t\tcase 'ArrowUp': {\n\t\t\t\t\t// Find the next non-disabled item going backwards\n\t\t\t\t\tlet attempts = 0;\n\t\t\t\t\tconst maxAttempts = menuItemIDs.current.length;\n\t\t\t\t\tmoveToIndex = activeMenuItemIndex - 1;\n\n\t\t\t\t\twhile (attempts < maxAttempts) {\n\t\t\t\t\t\tif (moveToIndex < 0) {\n\t\t\t\t\t\t\tmoveToIndex = menuItemIDs.current.length - 1;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Check if the item at this index is disabled\n\t\t\t\t\t\tconst item = focusableMenuItems.current[moveToIndex];\n\t\t\t\t\t\tif (!item?.disabled) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmoveToIndex--;\n\t\t\t\t\t\tattempts++;\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveToItemID = menuItemIDs.current[moveToIndex];\n\t\t\t\t\tsetActiveMenuItem(moveToItemID, moveToIndex);\n\t\t\t\t\tflag = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase 'ArrowDown':\n\t\t\t\tcase 'Down': {\n\t\t\t\t\t// Find the next non-disabled item going forwards\n\t\t\t\t\tlet attempts = 0;\n\t\t\t\t\tconst maxAttempts = menuItemIDs.current.length;\n\t\t\t\t\tmoveToIndex = activeMenuItemIndex + 1;\n\n\t\t\t\t\twhile (attempts < maxAttempts) {\n\t\t\t\t\t\tif (moveToIndex > menuItemIDs.current.length - 1) {\n\t\t\t\t\t\t\tmoveToIndex = 0;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Check if the item at this index is disabled\n\t\t\t\t\t\tconst item = focusableMenuItems.current[moveToIndex];\n\t\t\t\t\t\tif (!item?.disabled) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tmoveToIndex++;\n\t\t\t\t\t\tattempts++;\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveToItemID = menuItemIDs.current[moveToIndex];\n\t\t\t\t\tsetActiveMenuItem(moveToItemID, moveToIndex);\n\t\t\t\t\tflag = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase 'Home':\n\t\t\t\tcase 'PageUp': {\n\t\t\t\t\t// Find the first non-disabled item\n\t\t\t\t\tlet firstEnabledIndex = 0;\n\t\t\t\t\tfor (let i = 0; i < focusableMenuItems.current.length; i++) {\n\t\t\t\t\t\tif (!focusableMenuItems.current[i]?.disabled) {\n\t\t\t\t\t\t\tfirstEnabledIndex = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tsetActiveMenuItem(\n\t\t\t\t\t\tmenuItemIDs.current[firstEnabledIndex],\n\t\t\t\t\t\tfirstEnabledIndex,\n\t\t\t\t\t);\n\t\t\t\t\tflag = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase 'End':\n\t\t\t\tcase 'PageDown': {\n\t\t\t\t\t// Find the last non-disabled item\n\t\t\t\t\tlet lastEnabledIndex = menuItemIDs.current.length - 1;\n\t\t\t\t\tfor (let i = menuItemIDs.current.length - 1; i >= 0; i--) {\n\t\t\t\t\t\tif (!focusableMenuItems.current[i]?.disabled) {\n\t\t\t\t\t\t\tlastEnabledIndex = i;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tsetActiveMenuItem(\n\t\t\t\t\t\tmenuItemIDs.current[lastEnabledIndex],\n\t\t\t\t\t\tlastEnabledIndex,\n\t\t\t\t\t);\n\t\t\t\t\tflag = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tcase 'Tab':\n\t\t\t\t\tcloseMenu();\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tif (isPrintableCharacter(key)) {\n\t\t\t\t\t\tsetFocusByFirstCharacter(key);\n\t\t\t\t\t\tflag = true;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (flag) {\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\t\t}\n\t};\n\n\t// Handle click outside event to close menu if open\n\tconst handleClickOutside = (event: Event) => {\n\t\tif (nodeRef.current && !nodeRef.current.contains(event.target as Node)) {\n\t\t\tif (isOpen) {\n\t\t\t\tcloseMenu();\n\t\t\t}\n\t\t}\n\t};\n\n\t// function to render each menu item correctly\n\tconst renderItem = (\n\t\titem: MenuItem,\n\t\tindex: number,\n\t\tgroupID: string = '',\n\t\tgroupHeadingID: string = '',\n\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t...props: any[]\n\t) => {\n\t\tconst groupIDString = groupID ? `-group-${groupID}` : '';\n\t\tconst fallbackItemID = triggerID + groupIDString + '-item-' + (index + 1);\n\n\t\t// If ID is not passed into menu item, generate one.\n\t\tconst itemID = 'id' in item && item.id ? item.id : fallbackItemID;\n\n\t\t// render a separator if found\n\t\tif (isSeparatorItemType(item)) {\n\t\t\treturn <li key={itemID} role='separator'></li>;\n\t\t}\n\n\t\t// render a heading if found\n\t\tif (isHeadingItemType(item)) {\n\t\t\treturn (\n\t\t\t\t<li\n\t\t\t\t\tkey={groupHeadingID}\n\t\t\t\t\tclassName={`${baseClass}__listbox-heading`}\n\t\t\t\t\tid={groupHeadingID ? groupHeadingID : null}\n\t\t\t\t\trole='presentation'\n\t\t\t\t>\n\t\t\t\t\t{item.label}\n\t\t\t\t</li>\n\t\t\t);\n\t\t}\n\n\t\t// render a node if found\n\t\tif (isNodeItemType(item)) {\n\t\t\treturn (\n\t\t\t\t<li key={itemID} role='presentation'>\n\t\t\t\t\t{item.nodeContent}\n\t\t\t\t</li>\n\t\t\t);\n\t\t}\n\n\t\t// Render a link item or regular menu item\n\t\tif (isLinkItemType(item) || ('label' in item && item.label)) {\n\t\t\tmenuItemIDs.current.push(itemID);\n\t\t\tfocusableMenuItems.current.push(item);\n\n\t\t\t// decide if this item should be shown to have focus\n\t\t\tlet shouldFocus = false;\n\t\t\tif (activeDescendant !== '' && !item.disabled) {\n\t\t\t\tshouldFocus = activeDescendant === itemID;\n\t\t\t}\n\n\t\t\t// Check if this is a critical item\n\t\t\tconst isCritical = 'isCritical' in item && item.isCritical;\n\t\t\tconst criticalLabel =\n\t\t\t\t'criticalLabel' in item ? item.criticalLabel : undefined;\n\n\t\t\t// Set item label\n\t\t\tlet itemLabel: ReactNode[] = [];\n\n\t\t\t// if a regular menu item, use the label\n\t\t\tif ('label' in item && item.label) {\n\t\t\t\titemLabel = [item.label];\n\t\t\t}\n\n\t\t\t// if a link item, use the link content\n\t\t\tif (isLinkItemType(item) && item.linkContent) {\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\tconst linkElement = item.linkContent as ReactElement<any>;\n\t\t\t\titemLabel = [linkElement.props.children];\n\t\t\t}\n\n\t\t\tif (item.iconName) {\n\t\t\t\t// Render the chosen icon\n\t\t\t\tconst renderedIcon = (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tkey={`icon-${triggerID}`}\n\t\t\t\t\t\ticonName={item.iconName}\n\t\t\t\t\t\ticonSize='m'\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\t\titemLabel.unshift(renderedIcon);\n\t\t\t}\n\n\t\t\t// Add visually-hidden critical label if needed\n\t\t\tif (isCritical && criticalLabel) {\n\t\t\t\titemLabel.unshift(\n\t\t\t\t\t<span key={`critical-${triggerID}`} className='visually-hidden'>\n\t\t\t\t\t\t{criticalLabel}\n\t\t\t\t\t</span>,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tlet itemDescription: ReactNode;\n\t\t\tif (item.description) {\n\t\t\t\titemDescription = (\n\t\t\t\t\t<span className={`${baseClass}__item-description`}>\n\t\t\t\t\t\t{item.description}\n\t\t\t\t\t</span>\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Render the item content based on type\n\t\t\tlet itemContent: ReactNode;\n\n\t\t\tif (isLinkItemType(item) && item.linkContent) {\n\t\t\t\t// Set link element based on the type of link element passed in.\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\tconst linkElement = item.linkContent as ReactElement<\n\t\t\t\t\tany, // eslint-disable-line @typescript-eslint/no-explicit-any\n\t\t\t\t\tJSXElementConstructor<any> // eslint-disable-line @typescript-eslint/no-explicit-any\n\t\t\t\t>;\n\t\t\t\tconst LinkElement = linkElement.type;\n\n\t\t\t\titemContent = (\n\t\t\t\t\t<LinkElement tabIndex={-1} {...linkElement.props}>\n\t\t\t\t\t\t<span className={`${baseClass}__item-label`}>{itemLabel}</span>\n\t\t\t\t\t\t{itemDescription}\n\t\t\t\t\t</LinkElement>\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\titemContent = (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<span className={`${baseClass}__item-label`}>{itemLabel}</span>\n\t\t\t\t\t\t{itemDescription}\n\t\t\t\t\t</>\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Build class name for the menu item\n\t\t\tconst menuItemClasses = mergeClasses([\n\t\t\t\tshouldFocus ? `${baseClass}__item-focused` : null,\n\t\t\t\tisCritical ? `${baseClass}__item-critical` : null,\n\t\t\t]);\n\n\t\t\treturn (\n\t\t\t\t<li\n\t\t\t\t\tkey={itemID}\n\t\t\t\t\taria-disabled={item.disabled ? true : null}\n\t\t\t\t\tclassName={menuItemClasses}\n\t\t\t\t\tdata-testid={item.testId}\n\t\t\t\t\tid={itemID}\n\t\t\t\t\tonClick={handleMenuItemClick}\n\t\t\t\t\trole='menuitem'\n\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t{itemContent}\n\t\t\t\t</li>\n\t\t\t);\n\t\t}\n\t};\n\n\t// Function to render grouped items\n\tconst renderMenuItemsGrouped = (\n\t\titems: MenuItem[],\n\t\tmenuItemBreaks: MenuItem[],\n\t) => {\n\t\tconst groupedItems: MenuItem[][] = [];\n\n\t\t// Copy the array to avoid mutation\n\t\tconst breaks = [...menuItemBreaks];\n\n\t\t// get the first break item\n\t\tlet breakItem = breaks.shift();\n\n\t\t// setup our temporary storage for this group\n\t\tlet group: MenuItem[] = [];\n\n\t\t// iterate over all menu items\n\t\titems.map((item: MenuItem, index: number) => {\n\t\t\t// if the item isn't the first break item then add it to the group\n\t\t\tif (item !== breakItem) {\n\t\t\t\tgroup.push(item);\n\n\t\t\t\t// if this is the last item then add it to the group\n\t\t\t\tif (index + 1 === items.length) {\n\t\t\t\t\tgroupedItems.push(group);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// if we have a break item then add the group to the overall items data,\n\t\t\t\t// reset the temporary group storage,\n\t\t\t\t// add the break item to the new group,\n\t\t\t\t// get the next break item\n\t\t\t\tgroupedItems.push(group);\n\t\t\t\tgroup = [];\n\t\t\t\tgroup.push(item);\n\t\t\t\tbreakItem = breaks.shift();\n\t\t\t}\n\t\t});\n\n\t\t// filter out empty groups\n\t\treturn groupedItems.filter((group) => group.length > 0);\n\t};\n\n\t// Function to render the items\n\tconst renderMenuItems = (items: MenuItem[]) => {\n\t\t// reset tracking variables\n\t\tmenuItemIDs.current = [];\n\t\tfocusableMenuItems.current = [];\n\n\t\t// Chunk menu items into groups if needed\n\t\tconst itemsData = items;\n\t\t// check if we have any separators or headings in the dataset\n\t\tconst menuItemBreaks = items.filter(\n\t\t\tisHeadingItemType || isSeparatorItemType,\n\t\t);\n\t\tconst haveBreaks = menuItemBreaks.length > 0;\n\n\t\t// Set up listbox classes.\n\t\tlet listboxClasses: string[] = [`${baseClass}__listbox`];\n\n\t\tif (withinNavbar) {\n\t\t\tlistboxClasses.push(`${baseClass}__listbox--navbar`);\n\t\t}\n\n\t\tif (menuPosition === 'end') {\n\t\t\tlistboxClasses.push(`${baseClass}__listbox--end`);\n\t\t}\n\n\t\tif (displayType === 'icon-only') {\n\t\t\tlistboxClasses.push(`${baseClass}__listbox--icon-only`);\n\t\t}\n\n\t\tlistboxClasses = mergeClasses(listboxClasses);\n\n\t\t// if we have breaks then split into groups at each marker\n\t\tif (haveBreaks) {\n\t\t\t// group the items together\n\t\t\tconst groupedItemsData = renderMenuItemsGrouped(items, menuItemBreaks);\n\n\t\t\t// setup group IDs\n\t\t\tgroupedItemsData.forEach(() => {\n\t\t\t\tgroupIDs.current.push(createRandomID());\n\t\t\t});\n\t\t\tlet currentGroupID = groupIDs.current[0];\n\n\t\t\t// locate first valid item to properly set initial value for aria-activedescendant on menu/listbox\n\t\t\tconst firstMenuItemIndex = groupedItemsData[0].findIndex(\n\t\t\t\t(item: MenuItem) =>\n\t\t\t\t\t!isSeparatorItemType(item) && !isHeadingItemType(item),\n\t\t\t);\n\n\t\t\t// set active descendant ID value in component state\n\t\t\tconst initialDescendant = `${triggerID}-group-${currentGroupID}-item-${\n\t\t\t\tfirstMenuItemIndex + 1\n\t\t\t}`;\n\n\t\t\t// Render grouped items in listbox\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tref={refs.setFloating}\n\t\t\t\t\taria-activedescendant={\n\t\t\t\t\t\tactiveDescendant !== '' ? activeDescendant : initialDescendant\n\t\t\t\t\t}\n\t\t\t\t\taria-labelledby={triggerID}\n\t\t\t\t\tclassName={listboxClasses.toString()}\n\t\t\t\t\tid={listboxID}\n\t\t\t\t\tonKeyDown={handleMenuKeydown}\n\t\t\t\t\trole='menu'\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tvisibility: isOpen ? 'visible' : 'hidden',\n\t\t\t\t\t\topacity: isOpen ? '1' : '0',\n\t\t\t\t\t\ttransition: 'var(--pds-animation-transition-reveal)',\n\t\t\t\t\t\tposition: strategy,\n\t\t\t\t\t\ttransform: `translate(${Math.round(x)}px,${Math.round(y)}px)`,\n\t\t\t\t\t\tzIndex: 'var(--pds-z-index-dropdown)',\n\t\t\t\t\t}}\n\t\t\t\t\ttabIndex={-1}\n\t\t\t\t>\n\t\t\t\t\t{groupedItemsData.map((group: MenuItem[], index: number) => {\n\t\t\t\t\t\tcurrentGroupID = groupIDs.current[index];\n\t\t\t\t\t\tconst hasHeading = 'isHeading' in group[0] && group[0].isHeading;\n\t\t\t\t\t\tconst groupHeadingID = hasHeading\n\t\t\t\t\t\t\t? `${triggerID}-group-${currentGroupID}-heading`\n\t\t\t\t\t\t\t: '';\n\t\t\t\t\t\tconst keyID = `${triggerID}-group-${currentGroupID}`;\n\n\t\t\t\t\t\tconst groupLabel = hasHeading\n\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t: `${undefinedLabel} ${index + 1}`;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<ul\n\t\t\t\t\t\t\t\tkey={keyID}\n\t\t\t\t\t\t\t\taria-label={groupLabel}\n\t\t\t\t\t\t\t\taria-labelledby={groupHeadingID}\n\t\t\t\t\t\t\t\trole='group'\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{group.map((item: MenuItem, index: number) => {\n\t\t\t\t\t\t\t\t\treturn renderItem(\n\t\t\t\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\t\t\t\tindex,\n\t\t\t\t\t\t\t\t\t\tcurrentGroupID,\n\t\t\t\t\t\t\t\t\t\tgroupHeadingID,\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t);\n\t\t} else {\n\t\t\t// Render plain listbox without any groups\n\n\t\t\t// set initial active descendant ID value\n\t\t\tconst initialDescendant = `${triggerID}-item-1`;\n\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t<ul\n\t\t\t\t\t\tref={refs.setFloating}\n\t\t\t\t\t\taria-activedescendant={\n\t\t\t\t\t\t\tactiveDescendant !== '' ? activeDescendant : initialDescendant\n\t\t\t\t\t\t}\n\t\t\t\t\t\taria-labelledby={triggerID}\n\t\t\t\t\t\tclassName={listboxClasses.toString()}\n\t\t\t\t\t\tid={listboxID}\n\t\t\t\t\t\tonKeyDown={handleMenuKeydown}\n\t\t\t\t\t\trole='menu'\n\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\tvisibility: isOpen ? 'visible' : 'hidden',\n\t\t\t\t\t\t\topacity: isOpen ? '1' : '0',\n\t\t\t\t\t\t\ttransition: 'var(--pds-animation-transition-reveal)',\n\t\t\t\t\t\t\tposition: strategy,\n\t\t\t\t\t\t\ttransform: `translate(${Math.round(x)}px,${Math.round(y)}px)`,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\ttabIndex={-1}\n\t\t\t\t\t>\n\t\t\t\t\t\t{itemsData.map((item: MenuItem, index: number) => {\n\t\t\t\t\t\t\treturn renderItem(item, index);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</ul>\n\t\t\t\t</>\n\t\t\t);\n\t\t}\n\t};\n\n\t// Preprocess button\n\tlet menuButtonDisplayType: React.JSX.Element | undefined;\n\n\t// Display type based on regular buttons.\n\tif (displayType === 'icon-end') {\n\t\tmenuButtonDisplayType = (\n\t\t\t<Button\n\t\t\t\tref={refs.setReference}\n\t\t\t\taria-controls={listboxID}\n\t\t\t\taria-expanded={isOpen}\n\t\t\t\taria-haspopup='true'\n\t\t\t\tclassName={`${baseClass}__trigger`}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tdisplayType={displayType}\n\t\t\t\ticonName='angleDown'\n\t\t\t\tid={triggerID}\n\t\t\t\tisSplitButton={isSplitButton}\n\t\t\t\tlabel={label}\n\t\t\t\tonClick={handleTriggerClick}\n\t\t\t\tonKeyDown={handleButtonKeyDown}\n\t\t\t\tsize={size}\n\t\t\t\ttype='button'\n\t\t\t\tvariant={variant}\n\t\t\t/>\n\t\t);\n\t}\n\n\t// Display type based on icon buttons.\n\tif (displayType === 'icon-only') {\n\t\tconst labelText = extractText(label);\n\n\t\tmenuButtonDisplayType = (\n\t\t\t<IconButton\n\t\t\t\tref={refs.setReference}\n\t\t\t\taria-controls={listboxID}\n\t\t\t\taria-expanded={isOpen}\n\t\t\t\taria-haspopup='true'\n\t\t\t\tariaLabel={labelText}\n\t\t\t\tclassName={`${baseClass}__trigger ${baseClass}__trigger--icon-only`}\n\t\t\t\tdisabled={disabled}\n\t\t\t\thasTooltip={false}\n\t\t\t\ticonName={iconName}\n\t\t\t\tid={triggerID}\n\t\t\t\tonClick={handleTriggerClick}\n\t\t\t\tonKeyDown={handleButtonKeyDown}\n\t\t\t\tsize={size}\n\t\t\t\ttype='button'\n\t\t\t\tvariant='standard'\n\t\t\t/>\n\t\t);\n\t}\n\n\t// Accommodations for mobile navbar usage.\n\n\t// Handle the expand/collapse within mobile Navbar.\n\tconst handleExpand = (e: MouseEvent<HTMLButtonElement>) => {\n\t\t// Control button classes and aria-expanded attribute.\n\t\tconst button = e.target as HTMLButtonElement;\n\t\tbutton.classList.toggle(`${baseClass}__toggle--expanded`);\n\t\tbutton.setAttribute(\n\t\t\t'aria-expanded',\n\t\t\tbutton.getAttribute('aria-expanded') === 'true' ? 'false' : 'true',\n\t\t);\n\n\t\t// Control menu classes.\n\t\tconst menu = button.nextElementSibling as HTMLElement;\n\t\tmenu.classList.toggle(`${baseClass}__mobile-menu--expanded`);\n\t};\n\n\t// Process menu items for mobile navbar.\n\tconst MobileMenuItems = () => {\n\t\treturn (\n\t\t\t<ul className={`${baseClass}__mobile-menu`} role='menu'>\n\t\t\t\t{menuItems.map((item, index) => {\n\t\t\t\t\treturn renderItem(item, index);\n\t\t\t\t})}\n\t\t\t</ul>\n\t\t);\n\t};\n\n\t// Process buttons for mobile navbar.\n\tlet menuButtonMobileDisplayType: React.JSX.Element | undefined;\n\n\tconst buttonVariant =\n\t\tdisplayType === 'icon-end' ? 'pds-button pds-button--navbar' : null;\n\tconst mobileButtonClasses = mergeClasses([\n\t\t`${baseClass}__toggle`,\n\t\tbuttonVariant,\n\t]);\n\n\tif (isMobileNavbar) {\n\t\tmenuButtonMobileDisplayType = (\n\t\t\t<button\n\t\t\t\taria-expanded={false}\n\t\t\t\tclassName={mobileButtonClasses}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tid={triggerID}\n\t\t\t\tonClick={handleExpand}\n\t\t\t\ttype='button'\n\t\t\t>\n\t\t\t\t{displayType === 'icon-only' ? (\n\t\t\t\t\t<span className={`${baseClass}__icon-label`}>\n\t\t\t\t\t\t<Icon iconName={iconName} /> {label}\n\t\t\t\t\t</span>\n\t\t\t\t) : (\n\t\t\t\t\tlabel\n\t\t\t\t)}\n\n\t\t\t\t<Icon\n\t\t\t\t\tclassName={`${baseClass}__toggle-icon ${baseClass}__toggle-icon--${displayType}`}\n\t\t\t\t\ticonName='angleDown'\n\t\t\t\t\ticonSize='m'\n\t\t\t\t/>\n\t\t\t</button>\n\t\t);\n\t}\n\n\t// Markup for when in a navbar mobile view.\n\tconst navbarMobileMarkup = menuButtonMobileDisplayType;\n\n\t// Set up expanded class.\n\tconst expandedClass = isOpen ? `${baseClass}--expanded` : null;\n\n\t// Render the output.\n\treturn (\n\t\t<span\n\t\t\tref={nodeRef}\n\t\t\tclassName={mergeClasses([\n\t\t\t\tbaseClass,\n\t\t\t\tnavbarClass,\n\t\t\t\tmobileClass,\n\t\t\t\texpandedClass,\n\t\t\t\tclassName,\n\t\t\t])}\n\t\t\tdata-testid={testId}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isMobileNavbar ? (\n\t\t\t\t<>\n\t\t\t\t\t{navbarMobileMarkup}\n\t\t\t\t\t<MobileMenuItems />\n\t\t\t\t</>\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t{menuButtonDisplayType}\n\t\t\t\t\t{renderMenuItems(menuItems)}\n\t\t\t\t</>\n\t\t\t)}\n\t\t</span>\n\t);\n};\n","import React, { MouseEvent, useState } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport { Tally } from '@components/badges/Tally/Tally';\nimport { Icon, PDSIcon } from '@components/icons/Icon/Icon';\n\nimport './segmented-button.css';\n\n/**\n * Structure for each option in the SegmentedButton component.\n */\ninterface OptionType {\n\tdisabled?: boolean;\n\ticonName?: PDSIcon;\n\tid?: string;\n\tlabel: string;\n\ttally?: {\n\t\tlabel: string | number;\n\t\ttype: 'neutral' | 'critical' | 'warning' | 'info' | 'success';\n\t};\n\tvalue: string;\n}\n\n/**\n * Interface for handling selection events.\n */\ninterface HandleSelectionEvent extends MouseEvent<HTMLInputElement> {\n\ttarget: HTMLInputElement;\n}\n\n/**\n * Prop types for SegmentedButton\n */\nexport interface SegmentedButtonProps {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Optional initial selected option value.\n\t */\n\tdefaultValue?: string;\n\t/**\n\t * Is the SegmentedButton disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Unique ID for the SegmentedButton.\n\t */\n\tid: string;\n\t/**\n\t * Label for the SegmentedButton — visually hidden, used for screen readers only.\n\t */\n\tlabel: string;\n\t/**\n\t * Callback function that will return the updated value from the instance when it changes.\n\t */\n\tonChange?: (value: string) => void;\n\t/**\n\t * Array of button options — must be between 2 and 6 options.\n\t */\n\toptions: OptionType[];\n\t/**\n\t * Size of the SegmentedButton.\n\t */\n\tsize?: 's' | 'm';\n\t/**\n\t * Value of the Segmented Button. Used to set the value of the field when controlled. Cannot be used in conjunction with the `defaultValue` prop.\n\t */\n\tvalue?: string;\n}\n\n/**\n * SegmentedButton UI component\n */\nexport const SegmentedButton = ({\n\tclassName,\n\tdefaultValue,\n\tdisabled = false,\n\tid,\n\tlabel,\n\tonChange,\n\toptions,\n\tsize = 's',\n\tvalue,\n\t...props\n}: SegmentedButtonProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-segmented-button';\n\tconst disabledClass = disabled ? 'pds-is-disabled' : null;\n\tconst sizeClass = `${baseClass}--${size}`;\n\n\t// Map button sizes to icon sizes.\n\tconst iconSize = size === 's' ? 's' : 'm';\n\n\t// Determine if the input is controlled.\n\tconst isControlled = typeof value != 'undefined';\n\n\t// When a component is not controlled, it can have a defaultValue.\n\tconst hasDefaultValue = typeof defaultValue != 'undefined';\n\n\t// If the input is uncontrolled, use state within the component to manage the value.\n\tconst [internalValue, setInternalValue] = useState(\n\t\thasDefaultValue ? defaultValue : '',\n\t);\n\n\t// Handle selection changes.\n\tconst handleSelection = (e: HandleSelectionEvent) => {\n\t\tsetInternalValue(e.target.value);\n\n\t\tif (onChange) {\n\t\t\tonChange(e.target.value);\n\t\t}\n\t};\n\n\t// Render the output\n\tif (options.length >= 2 && options.length <= 6) {\n\t\treturn (\n\t\t\t<fieldset\n\t\t\t\tclassName={mergeClasses([\n\t\t\t\t\tbaseClass,\n\t\t\t\t\tsizeClass,\n\t\t\t\t\tdisabledClass,\n\t\t\t\t\tclassName ?? '',\n\t\t\t\t])}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<legend className='visually-hidden'>{label}</legend>\n\n\t\t\t\t<div className={`${baseClass}__options`}>\n\t\t\t\t\t{options.map((radio, idx) => {\n\t\t\t\t\t\t// Determine if the option is checked.\n\t\t\t\t\t\tconst isChecked = isControlled\n\t\t\t\t\t\t\t? value === radio.value\n\t\t\t\t\t\t\t: internalValue === radio.value;\n\n\t\t\t\t\t\t// Option classes.\n\t\t\t\t\t\tconst optionClass = `${baseClass}__option`;\n\t\t\t\t\t\tconst checkedClass = isChecked ? `${optionClass}--checked` : null;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tkey={`${id}-option-${idx}`}\n\t\t\t\t\t\t\t\tclassName={mergeClasses([optionClass, checkedClass])}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\tchecked={isChecked}\n\t\t\t\t\t\t\t\t\tclassName='visually-hidden'\n\t\t\t\t\t\t\t\t\tdisabled={disabled || radio.disabled}\n\t\t\t\t\t\t\t\t\tid={radio.id ? radio.id : `${id}-option-${idx}`}\n\t\t\t\t\t\t\t\t\tname={id}\n\t\t\t\t\t\t\t\t\tonChange={handleSelection}\n\t\t\t\t\t\t\t\t\ttype='radio'\n\t\t\t\t\t\t\t\t\tvalue={radio.value}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<label\n\t\t\t\t\t\t\t\t\thtmlFor={radio.id ? radio.id : `${id}-option-${idx}`}\n\t\t\t\t\t\t\t\t\ttitle={radio.label}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{radio.iconName && (\n\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\tclassName={`${baseClass}__icon`}\n\t\t\t\t\t\t\t\t\t\t\ticonName={radio.iconName}\n\t\t\t\t\t\t\t\t\t\t\ticonSize={iconSize}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t<span className={`${baseClass}__label-text`}>\n\t\t\t\t\t\t\t\t\t\t{radio.label}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t{radio.tally && (\n\t\t\t\t\t\t\t\t\t\t<Tally\n\t\t\t\t\t\t\t\t\t\t\tclassName={`${baseClass}__tally`}\n\t\t\t\t\t\t\t\t\t\t\tlabel={radio.tally.label}\n\t\t\t\t\t\t\t\t\t\t\ttype={radio.tally.type}\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t</fieldset>\n\t\t);\n\t}\n};\n","import React, { ComponentPropsWithoutRef } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport {\n\tButtonVariant,\n\tLinkItemType,\n\tMenuItemType,\n} from '@libs/types/custom-types';\n\nimport { Button } from '@components/buttons/Button/Button';\nimport { ButtonLink } from '@components/buttons/ButtonLink/ButtonLink';\nimport { MenuButton } from '@components/buttons/MenuButton/MenuButton';\n\nimport './split-button.css';\n\ntype SplitButtonSize = 's' | 'm';\n\n/**\n * Prop types for SplitButton\n */\ninterface SplitButtonProps extends ComponentPropsWithoutRef<'span'> {\n\t/**\n\t * Array of menu items\n\t */\n\tactionItems: Array<LinkItemType | MenuItemType>;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Is the button disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * ID value for this component.\n\t */\n\tid: string;\n\t/**\n\t * Label for the buttons additional actions menu.\n\t */\n\tmoreActionsLabel?: string;\n\t/**\n\t * Which size of button to render\n\t */\n\tsize?: SplitButtonSize;\n\t/**\n\t * Which variant of button to render\n\t */\n\tvariant?: Extract<ButtonVariant, 'primary' | 'secondary'>;\n}\n\n/**\n * A component used to render a button with a primary action and a menu of additional options\n */\nexport const SplitButton = ({\n\tactionItems,\n\tclassName,\n\tdisabled,\n\tid,\n\tmoreActionsLabel = 'More actions',\n\tsize = 's',\n\tvariant = 'primary',\n\t...props\n}: SplitButtonProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-split-button';\n\tconst variantClass = `${baseClass}--${variant}`;\n\n\t// Separate the primary action from the rest.\n\tconst primaryAction = actionItems[0];\n\tconst moreActions = actionItems.slice(1);\n\n\t// Preprocess the first item based on its type.\n\tlet primaryActionElement = null;\n\n\tif ('isLink' in primaryAction && primaryAction.isLink === true) {\n\t\tprimaryActionElement = (\n\t\t\t<ButtonLink\n\t\t\t\tclassName={`${baseClass}__primary-action`}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tdisplayType='label-only'\n\t\t\t\tlinkContent={primaryAction.linkContent}\n\t\t\t\tsize={size}\n\t\t\t\tvariant={variant}\n\t\t\t/>\n\t\t);\n\t} else if ('label' in primaryAction) {\n\t\tprimaryActionElement = (\n\t\t\t<Button\n\t\t\t\tclassName={`${baseClass}__primary-action`}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tlabel={primaryAction.label}\n\t\t\t\tonClick={() => primaryAction.callback()}\n\t\t\t\tsize={size}\n\t\t\t\tvariant={variant}\n\t\t\t/>\n\t\t);\n\t}\n\n\t// Render the output\n\treturn (\n\t\t<span\n\t\t\tclassName={mergeClasses([baseClass, variantClass, className])}\n\t\t\tid={id}\n\t\t\t{...props}\n\t\t>\n\t\t\t{primaryActionElement}\n\t\t\t<MenuButton\n\t\t\t\tisSplitButton\n\t\t\t\tclassName={`${baseClass}__menu-button`}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tdisplayType='icon-end'\n\t\t\t\tid={`${id}-menu`}\n\t\t\t\tlabel={moreActionsLabel}\n\t\t\t\tmenuItems={moreActions}\n\t\t\t\tsize={size}\n\t\t\t\ttestId={null}\n\t\t\t\tvariant={variant}\n\t\t\t\twithinNavbar={false}\n\t\t\t/>\n\t\t</span>\n\t);\n};\n","import React, { cloneElement, ComponentPropsWithoutRef } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport './platform-icon.css';\n\ntype PlatformType =\n\t| 'drupal'\n\t| 'drupal7'\n\t| 'front-end-sites'\n\t| 'gatsby'\n\t| 'gatsby-wp'\n\t| 'google'\n\t| 'import-custom'\n\t| 'microsoft'\n\t| 'next'\n\t| 'next-drupal'\n\t| 'next-wp'\n\t| 'splunk'\n\t| 'sumo-logic'\n\t| 'wordpress';\n\ninterface PlatformIconProps extends ComponentPropsWithoutRef<'div'> {\n\tclassName?: string;\n\t/**\n\t * Which size of icon to render\n\t */\n\ticonSize?: 'm' | 'l' | 'xl' | '2xl';\n\tplatformType: PlatformType;\n}\n\n// Platform type to accessible name mapping\nconst platformLabels: Record<PlatformType, string> = {\n\tdrupal: 'Drupal',\n\tdrupal7: 'Drupal 7',\n\t'front-end-sites': 'Next.js and Gatsby',\n\tgatsby: 'Gatsby',\n\t'gatsby-wp': 'Gatsby and WordPress',\n\tgoogle: 'Google',\n\t'import-custom': 'Add custom',\n\tmicrosoft: 'Microsoft',\n\tnext: 'Next.js',\n\t'next-drupal': 'Next.js and Drupal',\n\t'next-wp': 'Next.js and WordPress',\n\tsplunk: 'Splunk',\n\t'sumo-logic': 'Sumo Logic',\n\twordpress: 'WordPress',\n};\n\n/**\n * PlatformIcon UI component\n */\nexport const PlatformIcon = ({\n\tclassName,\n\ticonSize = '2xl',\n\tplatformType,\n\t...props\n}: PlatformIconProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-platform-icon';\n\tconst platformClass = `pds-platform-icon--${platformType}`;\n\tconst sizeClass = `pds-platform-icon--${iconSize}`;\n\n\t// Preprocess icon.\n\tlet processedIcon;\n\n\t// Icon pairs get rendered from single platform svgs.\n\tconst iconPairs = ['front-end-sites', 'gatsby-wp', 'next-drupal', 'next-wp'];\n\n\tif (iconPairs.includes(platformType)) {\n\t\t// Map icon pairs to a single element.\n\t\tlet iconPair = [];\n\t\tswitch (platformType) {\n\t\t\tcase 'front-end-sites':\n\t\t\t\ticonPair = ['next', 'gatsby'];\n\t\t\t\tbreak;\n\t\t\tcase 'next-drupal':\n\t\t\t\ticonPair = ['next', 'drupal'];\n\t\t\t\tbreak;\n\t\t\tcase 'gatsby-wp':\n\t\t\t\ticonPair = ['gatsby', 'wordpress'];\n\t\t\t\tbreak;\n\t\t\tcase 'next-wp':\n\t\t\t\ticonPair = ['next', 'wordpress'];\n\t\t\t\tbreak;\n\t\t}\n\n\t\tprocessedIcon = (\n\t\t\t<span\n\t\t\t\taria-label={platformLabels[platformType]}\n\t\t\t\tclassName={`${baseClass}__group`}\n\t\t\t\trole='img'\n\t\t\t>\n\t\t\t\t{cloneElement(svgData[iconPair[0]], { 'aria-hidden': 'true' })}\n\t\t\t\t{cloneElement(svgData[iconPair[1]], { 'aria-hidden': 'true' })}\n\t\t\t</span>\n\t\t);\n\t} else {\n\t\tprocessedIcon = svgData[platformType];\n\t}\n\n\t// Render the output\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([baseClass, platformClass, sizeClass, className])}\n\t\t\t{...props}\n\t\t>\n\t\t\t{processedIcon}\n\t\t</div>\n\t);\n};\n\n// SVG Paths for each icon.\nconst svgData = {\n\tdrupal: (\n\t\t<svg\n\t\t\taria-label='Drupal'\n\t\t\tfill='none'\n\t\t\theight='32'\n\t\t\trole='img'\n\t\t\tviewBox='0 0 32 32'\n\t\t\twidth='32'\n\t\t\txmlns='http://www.w3.org/2000/svg'\n\t\t>\n\t\t\t<rect\n\t\t\t\tfill='var(--pds-color-partner-drupal)'\n\t\t\t\theight='32'\n\t\t\t\trx='16'\n\t\t\t\twidth='32'\n\t\t\t/>\n\t\t\t<path\n\t\t\t\td='M23.027 12.9858C23.027 12.9602 23.0016 12.9474 22.9762 12.9218C21.7311 11.5139 19.9652 9.51725 18.6948 8.09655C18.301 7.67418 17.9071 7.25181 17.5387 6.81664C17.4498 6.71425 17.3736 6.61185 17.2846 6.50946C17.2084 6.43267 17.1703 6.38147 17.1703 6.38147C16.7383 5.8695 16.3953 5.29354 16.1539 4.67919L16.0904 4.5384C16.0904 4.5384 16.0904 4.5384 16.065 4.5128C16.065 4.5128 16.0269 4.5 16.0142 4.5C15.9888 4.5 15.9761 4.5128 15.9634 4.5128C15.9634 4.52133 15.9549 4.52986 15.938 4.5384L15.8745 4.67919C15.6204 5.29354 15.2773 5.8695 14.8581 6.38147C14.8581 6.38147 14.82 6.43267 14.7438 6.50946C14.6548 6.61185 14.5786 6.71425 14.4897 6.81664C14.1086 7.25181 13.7274 7.67418 13.3336 8.09655C12.0632 9.51725 10.2846 11.5139 9.03954 12.9218C9.02683 12.9474 9.01413 12.9602 8.98872 12.9858C4.28813 19.2958 9.39526 24.441 9.39526 24.441H9.38256C10.8944 26.2073 13.0414 27.2952 15.3409 27.4616C15.5441 27.4872 15.7601 27.5 15.9888 27.5C16.2048 27.5 16.4207 27.4872 16.6367 27.4616C18.9489 27.2952 21.0832 26.2073 22.595 24.441C22.595 24.441 27.7149 19.2958 23.0143 12.9858H23.027ZM12.0886 17.4271L11.9742 17.6063C11.1103 18.6686 10.6022 19.7949 10.437 20.9085C10.4116 21.0492 10.2846 21.1388 10.1575 21.1132C10.0686 21.1004 10.0051 21.0365 9.96695 20.9597C9.73828 20.4221 9.58582 19.8589 9.5096 19.283C9.2174 17.2479 9.82721 15.4688 11.123 13.9457C11.6439 13.3442 12.1648 12.7426 12.6857 12.1411C12.7746 12.0387 12.9271 12.0259 13.0287 12.1155L13.0541 12.1411C13.4733 12.6274 14.0196 13.2546 14.6294 13.9713C14.7057 14.0609 14.7057 14.2017 14.6294 14.3041C13.7909 15.3152 12.9016 16.3904 12.1013 17.4143L12.0886 17.4271ZM19.3046 22.7003C18.8218 23.9802 17.869 24.7482 16.5224 24.9658C14.604 25.2602 12.8127 23.9418 12.5205 22.0092C12.5205 21.9836 12.5205 21.9708 12.5205 21.9452C12.3681 20.8573 12.6984 19.8973 13.3971 19.0782C14.2102 18.1183 16.0015 15.8912 16.0269 15.8528C16.065 15.8912 17.9707 18.2846 18.6821 19.1294C19.5841 20.1917 19.8001 21.4076 19.3173 22.7003H19.3046ZM22.1377 20.6909C22.1377 20.7293 22.0996 20.7805 22.0869 20.8189C22.036 20.9469 21.8963 21.0109 21.7692 20.9597C21.693 20.9213 21.6295 20.8573 21.6168 20.7677C21.4389 19.6925 20.9308 18.6174 20.105 17.6063L20.0288 17.4783L19.9779 17.4143C19.3173 16.5696 15.8236 12.4482 14.2991 10.6436C14.2229 10.554 14.2229 10.4132 14.2991 10.3108C14.8073 9.74764 15.3155 9.18447 15.8109 8.60851C15.8999 8.50612 16.0523 8.50612 16.1539 8.60851C16.3826 8.8645 16.5986 9.10768 16.8146 9.36366C18.1993 10.9252 19.5968 12.461 20.9435 14.0353C22.6458 16.0192 23.0397 18.2974 22.1377 20.7037V20.6909Z'\n\t\t\t\tfill='white'\n\t\t\t/>\n\t\t</svg>\n\t),\n\tdrupal7: (\n\t\t<svg\n\t\t\taria-label='Drupal 7'\n\t\t\tfill='none'\n\t\t\theight='32'\n\t\t\trole='img'\n\t\t\tviewBox='0 0 32 32'\n\t\t\twidth='32'\n\t\t\txmlns='http://www.w3.org/2000/svg'\n\t\t>\n\t\t\t<rect\n\t\t\t\tfill='var(--pds-color-partner-drupal)'\n\t\t\t\theight='32'\n\t\t\t\trx='16'\n\t\t\t\twidth='32'\n\t\t\t/>\n\t\t\t<path\n\t\t\t\td='M20.2634 9.37661C19.2723 8.72036 18.3214 8.46255 17.375 7.8063C16.7946 7.3938 15.9777 6.40005 15.2991 5.54224C15.1786 6.91567 14.7857 7.47349 14.317 7.86255C13.3661 8.65942 12.7634 8.90317 11.9286 9.37661C11.2232 9.76567 7.42857 12.5079 7.42857 17.6172C7.42857 22.736 11.5268 26.5 16.0804 26.5C20.6205 26.5 24.5714 23.0313 24.5714 17.7813C24.5714 12.5172 20.8661 9.76567 20.2634 9.37661ZM20.375 24.6391C19.4777 25.5813 16.3527 25.9844 15.1652 24.836C14.9509 24.611 15.1786 24.2735 15.4554 24.2735C15.4554 24.2735 16.2143 24.8969 17.7545 24.8969C18.9598 24.8969 19.808 24.536 20.1875 24.2407C20.4598 24.025 20.5625 24.4422 20.375 24.6391ZM17.942 22.1735C18.3304 22.0047 19.2366 21.9954 19.5848 22.2344C19.7679 22.3657 20.3036 23.1157 19.8616 23.3454C19.4866 23.5422 19.808 22.6094 18.6786 22.6094C18.0223 22.6094 17.808 22.8532 17.4866 23.125C17.1741 23.4063 17.0491 23.5 16.942 23.3454C16.6741 22.961 17.6518 22.3 17.942 22.1735ZM22.0714 22.9844C21.3929 22.9375 20.0402 20.6969 19.1696 20.6641C17.7902 20.6219 14.5223 24.4469 11.9688 22.6329C10.2366 21.386 11.317 17.7204 14.2813 17.7016C16.4911 17.6782 18.0223 19.9985 19.125 19.975C20.0759 19.961 21.8839 18.0157 22.7768 18.0157C24.9509 18.0157 23.817 23.1391 22.0714 22.9844Z'\n\t\t\t\tfill='white'\n\t\t\t/>\n\t\t</svg>\n\t),\n\twordpress: (\n\t\t<svg\n\t\t\taria-label='WordPress'\n\t\t\tfill='none'\n\t\t\theight='32'\n\t\t\trole='img'\n\t\t\tviewBox='0 0 32 32'\n\t\t\twidth='32'\n\t\t\txmlns='http://www.w3.org/2000/svg'\n\t\t>\n\t\t\t<circle cx='16' cy='16' fill='white' r='16' />\n\t\t\t<path\n\t\t\t\td='M16 0.96001C18.0309 0.96001 20.0004 1.35745 21.8541 2.14178C22.745 2.51859 23.6047 2.98515 24.4087 3.52852C25.2055 4.0666 25.9543 4.68485 26.6355 5.36549C27.3161 6.04614 27.9344 6.79543 28.4724 7.59224C29.0158 8.39624 29.4819 9.25545 29.8592 10.1468C30.643 12.0006 31.041 13.9701 31.041 16.001C31.041 18.0319 30.6435 20.0013 29.8592 21.8551C29.4824 22.746 29.0158 23.6057 28.4724 24.4097C27.9344 25.2065 27.3161 25.9553 26.6355 26.6364C25.9548 27.3171 25.2055 27.9353 24.4087 28.4734C23.6047 29.0168 22.7455 29.4829 21.8541 29.8601C20.0004 30.644 18.0309 31.0419 16 31.0419C13.9691 31.0419 11.9996 30.6445 10.1459 29.8601C9.25497 29.4833 8.39528 29.0168 7.59128 28.4734C6.79447 27.9353 6.04566 27.3171 5.36453 26.6364C4.68389 25.9558 4.06564 25.2065 3.52756 24.4097C2.98419 23.6057 2.51811 22.7465 2.14082 21.8551C1.35697 20.0013 0.95905 18.0319 0.95905 16.001C0.95905 13.9701 1.35649 12.0006 2.14082 10.1468C2.51763 9.25593 2.98419 8.39624 3.52756 7.59224C4.06564 6.79543 4.68389 6.04662 5.36453 5.36549C6.04518 4.68485 6.79447 4.0666 7.59128 3.52852C8.39528 2.98515 9.25449 2.51907 10.1459 2.14178C11.9996 1.35793 13.9691 0.96001 16 0.96001ZM16 0C7.16359 0 0 7.16359 0 16C0 24.8364 7.16359 32 16 32C24.8364 32 32 24.8364 32 16C32 7.16359 24.8369 0 16 0Z'\n\t\t\t\tfill='var(--pds-color-partner-wordpress)'\n\t\t\t/>\n\t\t\t<path\n\t\t\t\td='M2.6669 15.9996C2.6669 21.2772 5.73365 25.8382 10.1819 27.9992L3.82131 10.5736C3.08162 12.2316 2.6669 14.0666 2.6669 15.9996ZM25.0015 15.3271C25.0015 13.6788 24.4097 12.5378 23.9023 11.6498C23.2265 10.5511 22.5924 9.62129 22.5924 8.52255C22.5924 7.2971 23.5217 6.15613 24.8316 6.15613C24.8906 6.15613 24.9468 6.16333 25.0044 6.16669C22.6322 3.99323 19.4714 2.66602 16.0005 2.66602C11.342 2.66602 7.24423 5.05644 4.86004 8.67568C5.17301 8.68576 5.46821 8.692 5.71829 8.692C7.11271 8.692 9.27177 8.52255 9.27177 8.52255C9.99033 8.48031 10.0753 9.53632 9.35721 9.62129C9.35721 9.62129 8.6348 9.70577 7.83127 9.74801L12.6865 24.1904L15.605 15.4394L13.528 9.74801C12.8094 9.70577 12.1297 9.62129 12.1297 9.62129C11.4111 9.57904 11.4952 8.48031 12.2142 8.52255C12.2142 8.52255 14.4155 8.692 15.7259 8.692C17.1203 8.692 19.2799 8.52255 19.2799 8.52255C19.9984 8.48031 20.0834 9.53632 19.3648 9.62129C19.3648 9.62129 18.6415 9.70577 17.8389 9.74801L22.6577 24.0805L24.0334 19.722C24.6444 17.8174 25.0025 16.4676 25.0025 15.3266L25.0015 15.3271ZM16.2342 17.166L12.2329 28.7903C13.4276 29.1416 14.691 29.3336 16 29.3336C17.5528 29.3336 19.0423 29.0658 20.428 28.5776C20.3925 28.5205 20.3594 28.46 20.3325 28.3938L16.2342 17.166ZM27.7006 9.60353C27.7577 10.0283 27.7904 10.4839 27.7904 10.9744C27.7904 12.3271 27.5369 13.8477 26.7761 15.75L22.7037 27.5245C26.6676 25.2133 29.3336 20.9192 29.3336 16.0001C29.3336 13.6821 28.7412 11.5024 27.7006 9.60353Z'\n\t\t\t\tfill='var(--pds-color-partner-wordpress)'\n\t\t\t/>\n\t\t</svg>\n\t),\n\tgatsby: (\n\t\t<svg\n\t\t\taria-label='Gatsby'\n\t\t\tfill='none'\n\t\t\theight='32'\n\t\t\trole='img'\n\t\t\tviewBox='0 0 32 32'\n\t\t\twidth='32'\n\t\t\txmlns='http://www.w3.org/2000/svg'\n\t\t>\n\t\t\t<g clipPath='url(#clip0_14628_82557)'>\n\t\t\t\t<path\n\t\t\t\t\td='M16 32C24.8366 32 32 24.8366 32 16C32 7.16344 24.8366 0 16 0C7.16344 0 0 7.16344 0 16C0 24.8366 7.16344 32 16 32Z'\n\t\t\t\t\tfill='var(--pds-color-partner-gatsby)'\n\t\t\t\t/>\n\t\t\t\t<path\n\t\t\t\t\td='M7.0857 24.9142C4.6857 22.5142 3.42856 19.3142 3.42856 16.2285L15.8857 28.5714C12.6857 28.4571 9.4857 27.3142 7.0857 24.9142Z'\n\t\t\t\t\tfill='white'\n\t\t\t\t/>\n\t\t\t\t<path\n\t\t\t\t\td='M18.7429 28.2285L3.77142 13.257C5.02857 7.65704 10.0571 3.42847 16 3.42847C20.2286 3.42847 23.8857 5.48561 26.1714 8.57132L24.4571 10.057C22.5143 7.42847 19.4286 5.71418 16 5.71418C11.5429 5.71418 7.77142 8.57132 6.28571 12.5713L19.4286 25.7142C22.7429 24.5713 25.2571 21.7142 26.0571 18.2856H20.5714V15.9999H28.5714C28.5714 21.9428 24.3429 26.9713 18.7429 28.2285Z'\n\t\t\t\t\tfill='white'\n\t\t\t\t/>\n\t\t\t</g>\n\t\t\t<defs>\n\t\t\t\t<clipPath id='clip0_14628_82557'>\n\t\t\t\t\t<rect fill='white' height='32' width='32' />\n\t\t\t\t</clipPath>\n\t\t\t</defs>\n\t\t</svg>\n\t),\n\tgoogle: (\n\t\t<svg\n\t\t\taria-label='Google'\n\t\t\tfill='none'\n\t\t\theight='30'\n\t\t\trole='img'\n\t\t\tviewBox='0 0 30 30'\n\t\t\twidth='30'\n\t\t\txmlns='http://www.w3.org/2000/svg'\n\t\t>\n\t\t\t<path\n\t\t\t\td='M15.306 12.2727V18.0818H23.5436C23.1819 19.95 22.0964 21.5319 20.4684 22.5955L25.4359 26.3728C28.3302 23.7547 30 19.9092 30 15.341C30 14.2774 29.9026 13.2546 29.7217 12.2729L15.306 12.2727Z'\n\t\t\t\tfill='#4285F4'\n\t\t\t/>\n\t\t\t<path\n\t\t\t\td='M6.72795 17.855L5.60757 18.6955L1.64178 21.7227C4.16036 26.6181 9.32237 30 15.3057 30C19.4383 30 22.903 28.6636 25.4356 26.3728L20.468 22.5955C19.1044 23.4955 17.365 24.041 15.3057 24.041C11.3261 24.041 7.94488 21.4092 6.7342 17.8637L6.72795 17.855Z'\n\t\t\t\tfill='#34A853'\n\t\t\t/>\n\t\t\t<path\n\t\t\t\td='M1.64183 8.27734C0.598274 10.2954 0 12.5727 0 15C0 17.4272 0.598274 19.7045 1.64183 21.7226C1.64183 21.7362 6.73474 17.8499 6.73474 17.8499C6.42861 16.9499 6.24767 15.9954 6.24767 14.9998C6.24767 14.0042 6.42861 13.0498 6.73474 12.1498L1.64183 8.27734Z'\n\t\t\t\tfill='#FBBC05'\n\t\t\t/>\n\t\t\t<path\n\t\t\t\td='M15.3624 5.97272C17.6166 5.97272 19.6203 6.73634 21.2205 8.20909L25.6037 3.91369C22.9459 1.48646 19.4952 0 15.3624 0C9.37908 0 4.21676 3.36818 1.69818 8.27728L6.79093 12.15C8.00145 8.60452 11.3828 5.97272 15.3624 5.97272Z'\n\t\t\t\tfill='#EA4335'\n\t\t\t/>\n\t\t</svg>\n\t),\n\tmicrosoft: (\n\t\t<svg\n\t\t\taria-label='Microsoft'\n\t\t\tfill='none'\n\t\t\theight='30'\n\t\t\trole='img'\n\t\t\tviewBox='0 0 30 30'\n\t\t\twidth='30'\n\t\t\txmlns='http://www.w3.org/2000/svg'\n\t\t>\n\t\t\t<g clipPath='url(#clip0_627_542)'>\n\t\t\t\t<path d='M30 0H15.6295V14.3705H30V0Z' fill='#80BC06' />\n\t\t\t\t<path d='M14.3705 0H0V14.3705H14.3705V0Z' fill='#F25325' />\n\t\t\t\t<path d='M14.3705 15.6295H0V30.0001H14.3705V15.6295Z' fill='#05A6F0' />\n\t\t\t\t<path d='M15.6295 15.6295H30V30.0001H15.6295V15.6295Z' fill='#FEBA08' />\n\t\t\t</g>\n\t\t\t<defs>\n\t\t\t\t<clipPath id='clip0_627_542'>\n\t\t\t\t\t<rect fill='white' height='30' width='30' />\n\t\t\t\t</clipPath>\n\t\t\t</defs>\n\t\t</svg>\n\t),\n\tnext: (\n\t\t<svg\n\t\t\taria-label='Next.js'\n\t\t\tfill='none'\n\t\t\theight='32'\n\t\t\trole='img'\n\t\t\tviewBox='0 0 180 180'\n\t\t\twidth='32'\n\t\t\txmlns='http://www.w3.org/2000/svg'\n\t\t>\n\t\t\t<mask\n\t\t\t\theight='180'\n\t\t\t\tid='nextjs_mask'\n\t\t\t\tmaskUnits='userSpaceOnUse'\n\t\t\t\tstyle={{ maskType: 'alpha' }}\n\t\t\t\twidth='180'\n\t\t\t\tx='0'\n\t\t\t\ty='0'\n\t\t\t>\n\t\t\t\t<circle cx='90' cy='90' fill='black' r='90' />\n\t\t\t</mask>\n\t\t\t<g mask='url(#nextjs_mask)'>\n\t\t\t\t<circle cx='90' cy='90' fill='var(--pds-color-partner-nextjs)' r='90' />\n\t\t\t\t<path\n\t\t\t\t\td='M149.508 157.52L69.142 54H54V125.97H66.1136V69.3836L139.999 164.845C143.333 162.614 146.509 160.165 149.508 157.52Z'\n\t\t\t\t\tfill='url(#nextjs_gradient_diagonal)'\n\t\t\t\t/>\n\t\t\t\t<rect\n\t\t\t\t\tfill='url(#nextjs_gradient_vertical)'\n\t\t\t\t\theight='72'\n\t\t\t\t\twidth='12'\n\t\t\t\t\tx='115'\n\t\t\t\t\ty='54'\n\t\t\t\t/>\n\t\t\t</g>\n\t\t\t<defs>\n\t\t\t\t<linearGradient\n\t\t\t\t\tgradientUnits='userSpaceOnUse'\n\t\t\t\t\tid='nextjs_gradient_diagonal'\n\t\t\t\t\tx1='109'\n\t\t\t\t\tx2='144.5'\n\t\t\t\t\ty1='116.5'\n\t\t\t\t\ty2='160.5'\n\t\t\t\t>\n\t\t\t\t\t<stop stopColor='white' />\n\t\t\t\t\t<stop offset='1' stopColor='white' stopOpacity='0' />\n\t\t\t\t</linearGradient>\n\t\t\t\t<linearGradient\n\t\t\t\t\tgradientUnits='userSpaceOnUse'\n\t\t\t\t\tid='nextjs_gradient_vertical'\n\t\t\t\t\tx1='121'\n\t\t\t\t\tx2='120.799'\n\t\t\t\t\ty1='54'\n\t\t\t\t\ty2='106.875'\n\t\t\t\t>\n\t\t\t\t\t<stop stopColor='white' />\n\t\t\t\t\t<stop offset='1' stopColor='white' stopOpacity='0' />\n\t\t\t\t</linearGradient>\n\t\t\t</defs>\n\t\t</svg>\n\t),\n\tsplunk: (\n\t\t<svg\n\t\t\taria-label='Splunk'\n\t\t\tfill='none'\n\t\t\theight='32'\n\t\t\trole='img'\n\t\t\tviewBox='0 0 32 32'\n\t\t\twidth='32'\n\t\t\txmlns='http://www.w3.org/2000/svg'\n\t\t>\n\t\t\t<g transform='scale(0.6667)'>\n\t\t\t\t<path\n\t\t\t\t\td='M37.5,4h-27A6.5,6.5,0,0,0,4,10.5v27A6.5,6.5,0,0,0,10.5,44h27A6.5,6.5,0,0,0,44,37.5v-27A6.5,6.5,0,0,0,37.5,4ZM33.6,26.1c0,.1,0,.2-.2.3L14.7,35.8c-.1.1-.3-.1-.3-.2V30.8c0-.1,0-.2.1-.2l13.6-6.8L14.5,16.9c-.1,0-.1-.1-.1-.2V11.9c0-.1.2-.3.3-.2l18.7,9.4a.5.5,0,0,1,.2.4Z'\n\t\t\t\t\tfill='#000000'\n\t\t\t\t/>\n\t\t\t</g>\n\t\t</svg>\n\t),\n\t'sumo-logic': (\n\t\t<svg\n\t\t\taria-label='Sumo Logic'\n\t\t\tfill='none'\n\t\t\theight='32'\n\t\t\trole='img'\n\t\t\tviewBox='0 0 32 32'\n\t\t\twidth='32'\n\t\t\txmlns='http://www.w3.org/2000/svg'\n\t\t>\n\t\t\t<g transform='scale(0.03125)'>\n\t\t\t\t<circle cx='512' cy='512' fill='#000099' r='512' />\n\t\t\t\t<path\n\t\t\t\t\td='M352.9 361.4c-12.7-2.7-21.8-5.1-26.9-6.3-6.3-1.8-11.2-4.2-13.6-7.6v-13.9c4.2-6.6 14.5-10.9 28.7-10.9 19.6 0 33.2 4.5 54.7 21.5l25.1-30.2c-25.4-21.2-47.1-28.7-78.6-28.7-36.3 0-61.3 14.8-71.3 36v45.9c7.9 15.4 26 24.2 62.2 32 13 3 21.8 5.1 26.9 6 6.6 2.1 12.7 4.8 16 9.7v16c-4.5 7.3-15.4 11.2-29.6 11.2-10.3.3-20.2-1.8-29.6-5.7-9.1-3.6-19.6-10.6-32.9-21.5l-26.9 29.9c29 25.7 53.5 34.4 88.2 34.4 37.2 0 63.5-14.2 73.4-36.9v-46.2c-8.4-17.2-28.7-26.2-65.8-34.7zm401.5-70.1v182.5h-42.6v-19.3c-9.7 15.7-27.5 24.8-53.5 24.8-43.2 0-64.7-22.4-64.7-58v-130h46.5v117.5c0 19 10.3 30.2 30.2 30.2 23.3 0 37.5-13.3 37.5-37.8v-110h46.6zM531.8 606.9v127.5h-46.5V620.8c0-21.8-8.8-35.1-29-35.1s-32 15.1-32 36.3v112.4h-46.5V620.8c0-23.3-9.7-35.1-29-35.1-20.5 0-32 15.1-32 36.3v112.4h-46.5V551.9h43.2v20.2c10.6-17.5 28.1-26.3 52-26.3 23.3 0 40.8 9.7 50.8 26.9 12.4-17.8 30.8-26.9 54.7-26.9 38.8.1 60.8 23.4 60.8 61.1zm139.8-62.8c-42 0-74.9 22.7-88.5 58.9v76.8c13.3 36.3 46.5 58.9 88.5 58.9s74.6-22.7 87.9-58.6v-77.4c-13.5-35.9-46.5-58.6-87.9-58.6zm43 124.2c-7.3 19.3-22.7 30.8-43.2 30.8-20.2 0-36.3-11.5-43.5-30.8v-53.8c7.3-19.3 22.7-31.1 43.5-31.1 20.5 0 35.7 11.8 42.9 31.1l.3 53.8z'\n\t\t\t\t\tfill='#FFFFFF'\n\t\t\t\t/>\n\t\t\t</g>\n\t\t</svg>\n\t),\n\t'import-custom': (\n\t\t<svg\n\t\t\taria-label='Add custom'\n\t\t\tfill='none'\n\t\t\theight='32'\n\t\t\trole='img'\n\t\t\tviewBox='0 0 32 32'\n\t\t\twidth='32'\n\t\t\txmlns='http://www.w3.org/2000/svg'\n\t\t>\n\t\t\t<rect fill='var(--pds-color-fg-default)' height='32' rx='16' width='32' />\n\t\t\t<path\n\t\t\t\td='M17 10.5V15H21.5C22.0312 15 22.5 15.4688 22.5 16C22.5 16.5625 22.0312 17 21.5 17H17V21.5C17 22.0625 16.5312 22.5 16 22.5C15.4375 22.5 15 22.0625 15 21.5V17H10.5C9.9375 17 9.5 16.5625 9.5 16C9.5 15.4688 9.9375 15 10.5 15H15V10.5C15 9.96875 15.4375 9.5 16 9.5C16.5312 9.5 17 9.96875 17 10.5Z'\n\t\t\t\tfill='var(--pds-color-fg-reverse)'\n\t\t\t/>\n\t\t</svg>\n\t),\n};\n","import React, { ComponentPropsWithoutRef, MouseEvent } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { ButtonType } from '@libs/types/custom-types';\n\nimport { PlatformIcon } from '@components/icons/PlatformIcon/PlatformIcon';\n\nimport './sso-button.css';\n\ntype SSOButtonSize = 'm' | 'l';\n\ntype PlatformType = 'google' | 'microsoft';\n\ninterface SSOButtonProps extends ComponentPropsWithoutRef<'button'> {\n\t/**\n\t * Type of button\n\t */\n\tbuttonType?: ButtonType;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Is the button disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * The text of the button\n\t */\n\tlabel: string;\n\t/**\n\t * Click event handler callback\n\t */\n\tonClick?: (e: MouseEvent<HTMLElement>) => void;\n\t/**\n\t * Which platform to render\n\t */\n\tplatform: PlatformType;\n\t/**\n\t * Which size of button to render\n\t * @default 'm'\n\t */\n\tsize?: SSOButtonSize;\n}\n\n/**\n * A Component used to render an SSO Button\n */\nexport const SSOButton = ({\n\tbuttonType = 'button',\n\tclassName = '',\n\tdisabled = false,\n\tlabel,\n\tonClick,\n\tplatform,\n\tsize = 'm',\n\t...props\n}: SSOButtonProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-sso-button';\n\tconst sizeClass = `${baseClass}--${size}`;\n\n\t// Map button sizes to icon sizes.\n\tconst iconSize = size === 'm' ? 'l' : '2xl';\n\n\t// Render the chosen icon\n\tconst renderedIcon = (\n\t\t<PlatformIcon\n\t\t\tclassName={`${baseClass}__icon`}\n\t\t\ticonSize={iconSize}\n\t\t\tplatformType={platform}\n\t\t/>\n\t);\n\n\t// Render the output\n\treturn (\n\t\t<button\n\t\t\tclassName={mergeClasses([baseClass, sizeClass, className])}\n\t\t\tdisabled={disabled}\n\t\t\tonClick={onClick}\n\t\t\ttype={buttonType}\n\t\t\t{...props}\n\t\t>\n\t\t\t{renderedIcon}\n\t\t\t{label}\n\t\t</button>\n\t);\n};\n","import React, {\n\tcloneElement,\n\tComponentPropsWithoutRef,\n\tisValidElement,\n\tReactElement,\n\tReactNode,\n} from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport { Icon, PDSIcon } from '@components/icons/Icon/Icon';\nimport { Spinner } from '@components/loading-indicators/Spinner/Spinner';\nimport { Tooltip } from '@components/Tooltip/Tooltip';\n\nimport './utility-button.css';\n\n/**\n * Prop types for UtilityButton\n */\nexport interface UtilityButtonProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Additional props for the button element.\n\t */\n\tbuttonProps?: ComponentPropsWithoutRef<'button'>;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Is the button disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Should the button have a border?\n\t */\n\thasBorder?: boolean;\n\t/**\n\t * Which icon to render.\n\t */\n\ticonName?: PDSIcon;\n\t/**\n\t * Position of the icon relative to the label.\n\t */\n\ticonPosition?: 'before' | 'after';\n\t/**\n\t * Is the button critical? If true, the button will be styled as critical on hover and focus.\n\t */\n\tisCritical?: boolean;\n\t/**\n\t * Is the button in the process of an initial load?\n\t */\n\tisLoading?: boolean;\n\t/**\n\t * Should the button label use the monospace font?\n\t */\n\tisMonospace?: boolean;\n\t/**\n\t * Is the button in the process of performing a task and should be disabled?\n\t */\n\tisWorking?: boolean;\n\t/**\n\t * The text of the button.\n\t */\n\tlabel?: string;\n\t/**\n\t * A link element using the router of your choice.\n\t * Use `linkContent` to render a link instead of text.\n\t * In this case, the `buttonProps`, `label`, and `onClick` props will be ignored.\n\t */\n\tlinkContent?: ReactNode;\n\t/**\n\t * Click event handler callback.\n\t */\n\tonClick?: () => void;\n\t/**\n\t * Tooltip text.\n\t */\n\ttooltipText?: string;\n}\n\n/**\n * UtilityButton UI component\n */\nexport const UtilityButton = ({\n\tbuttonProps,\n\tclassName,\n\tdisabled = false,\n\thasBorder = false,\n\ticonName,\n\ticonPosition = 'before',\n\tisCritical = false,\n\tisLoading,\n\tisMonospace = false,\n\tisWorking,\n\tlabel,\n\tlinkContent,\n\tonClick,\n\ttooltipText,\n\t...props\n}: UtilityButtonProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-utility-button';\n\tconst pulseClass = isLoading ? 'pds-pulse' : null;\n\n\t// Helper to render icon\n\tconst renderIcon = (key: string) =>\n\t\ticonName && !isWorking ? (\n\t\t\t<Icon key={key} className={`${baseClass}__icon`} iconName={iconName} />\n\t\t) : null;\n\n\t// Helper to render spinner\n\tconst renderSpinner = () =>\n\t\tisWorking ? (\n\t\t\t<Spinner\n\t\t\t\tkey='spinner'\n\t\t\t\tclassName={`${baseClass}__spinner`}\n\t\t\t\tcolorType='monochromatic'\n\t\t\t\tsize='s'\n\t\t\t/>\n\t\t) : null;\n\n\t// Helper to build content array (icon, spinner, label)\n\tconst buildContent = (text: ReactNode) => {\n\t\tconst content = [];\n\n\t\tif (iconPosition === 'before') {\n\t\t\tcontent.push(renderIcon('icon-before'));\n\t\t}\n\n\t\tcontent.push(renderSpinner());\n\n\t\tcontent.push(\n\t\t\t<span key='label' className={`${baseClass}__label`}>\n\t\t\t\t{text}\n\t\t\t</span>,\n\t\t);\n\n\t\tif (iconPosition === 'after') {\n\t\t\tcontent.push(renderIcon('icon-after'));\n\t\t}\n\n\t\treturn content.filter(Boolean);\n\t};\n\n\t// Extract label text from linkContent or use label prop\n\tconst extractedLabel =\n\t\tlinkContent && isValidElement(linkContent)\n\t\t\t? (linkContent.props as { children: ReactNode }).children\n\t\t\t: label;\n\n\t// Wrapper classes used by both link and button\n\tconst wrapperClasses = mergeClasses([\n\t\tbaseClass,\n\t\thasBorder ? `${baseClass}--border` : null,\n\t\tisCritical ? `${baseClass}--critical` : null,\n\t\tdisabled ? `${baseClass}--disabled` : null,\n\t\tisLoading ? `${baseClass}--loading` : null,\n\t\tisWorking ? `${baseClass}--working` : null,\n\t\tisMonospace ? `${baseClass}--monospace` : null,\n\t\tclassName ?? '',\n\t]);\n\n\t// Helper to wrap content with optional tooltip\n\tconst wrapWithTooltip = (content: ReactNode) =>\n\t\ttooltipText ? (\n\t\t\t<Tooltip content={tooltipText} customTrigger={content} />\n\t\t) : (\n\t\t\tcontent\n\t\t);\n\n\t// If linkContent is provided and not disabled, render as a link\n\tif (linkContent && !disabled) {\n\t\tconst processedLink = isValidElement(linkContent)\n\t\t\t? cloneElement(\n\t\t\t\t\tlinkContent as ReactElement,\n\t\t\t\t\tObject.assign({}, linkContent.props, {\n\t\t\t\t\t\tclassName: mergeClasses([\n\t\t\t\t\t\t\t`${baseClass}__button`,\n\t\t\t\t\t\t\tpulseClass,\n\t\t\t\t\t\t\t(linkContent.props as { className?: string }).className ?? '',\n\t\t\t\t\t\t]),\n\t\t\t\t\t\tchildren: buildContent(extractedLabel),\n\t\t\t\t\t}),\n\t\t\t\t)\n\t\t\t: null;\n\n\t\treturn (\n\t\t\t<div className={wrapperClasses} {...props}>\n\t\t\t\t{wrapWithTooltip(processedLink)}\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Render as button\n\tconst buttonContent = (\n\t\t<button\n\t\t\taria-disabled={disabled || isLoading || isWorking}\n\t\t\tclassName={mergeClasses([`${baseClass}__button`, pulseClass])}\n\t\t\tonClick={disabled ? undefined : onClick}\n\t\t\ttype='button'\n\t\t\t{...buttonProps}\n\t\t>\n\t\t\t{buildContent(extractedLabel)}\n\t\t</button>\n\t);\n\n\treturn (\n\t\t<div className={wrapperClasses} {...props}>\n\t\t\t{wrapWithTooltip(buttonContent)}\n\t\t</div>\n\t);\n};\n","import React, {\n\tChangeEvent,\n\tComponentPropsWithoutRef,\n\tFocusEvent,\n\tforwardRef,\n\tReactNode,\n\tRef,\n\tuseState,\n} from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { ValidationStatus } from '@libs/types/input-types';\n\nimport {\n\tCharacterCounter,\n\tgetInputWidthStyle,\n\tinputCommonClasses,\n\tInputLabel,\n\tInputMessage,\n} from '../input-utilities';\n\nimport './textarea.css';\n\n// Label strings type.\ntype LabelStrings = {\n\tclearButton: string;\n\tcounterOverLimit?: string;\n\tsearchShortcut: string;\n\tvisibilityStatus: string;\n\tvisibilityToggleHide: string;\n\tvisibilityToggleShow: string;\n};\n\nexport interface TextareaProps {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Maximum character count for the character counter. Leave blank for no counter.\n\t */\n\tcounterMaxLength?: number;\n\t/**\n\t * Initial value for the input field. Setting this prop automatically makes the input uncontrolled. Cannot be used in conjunction with the `value` prop.\n\t */\n\tdefaultValue?: string;\n\t/**\n\t * Is the field disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * ID of the textarea.\n\t */\n\tid: string;\n\t/**\n\t * Max-width of the input field. Accepts a number in pixels. Leave blank for width: 100%.\n\t */\n\tinputWidth?: number;\n\t/**\n\t * Should the textarea be resizable by the user?\n\t */\n\tisResizable?: boolean;\n\t/**\n\t * Text label associated with the input field.\n\t */\n\tlabel: string;\n\t/**\n\t * Message or description used to help clarify the usage of the input.\n\t */\n\tmessage?: string | ReactNode;\n\t/**\n\t * onBlur event handler.\n\t */\n\tonBlur?: (e: FocusEvent<HTMLTextAreaElement>) => void;\n\t/**\n\t * Function to help lift the state and retrieve the input's value.\n\t * Should accept one argument, the input's value\n\t */\n\tonChange?: (event: ChangeEvent<HTMLTextAreaElement>) => void;\n\t/**\n\t * onFocus event handler.\n\t */\n\tonFocus?: (e: FocusEvent<HTMLTextAreaElement>) => void;\n\t/**\n\t * Optional placeholder text to display when the input field is empty.\n\t */\n\tplaceholder?: string;\n\t/**\n\t * Is the field read-only?\n\t */\n\treadonly?: boolean;\n\t/**\n\t * Is the field required?\n\t */\n\trequired?: boolean;\n\t/**\n\t * Rows value to be given to the textarea type.\n\t */\n\trows?: number;\n\t/**\n\t * Should the label be visible? If false, it will render for screen readers only.\n\t */\n\tshowLabel?: boolean;\n\t/**\n\t * Input size.\n\t */\n\tsize?: 's' | 'm' | 'l';\n\t/**\n\t * Additional props for the `<textarea>` element.\n\t */\n\ttextareaProps?: ComponentPropsWithoutRef<'textarea'>;\n\t/**\n\t * Optional tooltip text to display additional information.\n\t */\n\ttooltipText?: string | null;\n\t/**\n\t * Translation strings for various labels or other visually-hidden text.\n\t */\n\ttranslationStrings?: LabelStrings;\n\t/**\n\t * Validation message for the textarea field based on the validation status.\n\t */\n\tvalidationMessage?: string;\n\t/**\n\t * Validation status of the textarea field.\n\t */\n\tvalidationStatus?: ValidationStatus;\n\t/**\n\t * Value of the textarea field. Used to set the value of the textarea field when controlled. Cannot be used in conjunction with the `defaultValue` prop.\n\t */\n\tvalue?: string;\n}\n\n/**\n * Textarea UI component\n */\nexport const Textarea = forwardRef(\n\t(\n\t\t{\n\t\t\tclassName,\n\t\t\tcounterMaxLength,\n\t\t\tdefaultValue,\n\t\t\tdisabled = false,\n\t\t\tid,\n\t\t\tinputWidth,\n\t\t\tisResizable = true,\n\t\t\tlabel,\n\t\t\tmessage,\n\t\t\tonBlur,\n\t\t\tonChange,\n\t\t\tonFocus,\n\t\t\tplaceholder,\n\t\t\treadonly = false,\n\t\t\trequired = false,\n\t\t\trows = 5,\n\t\t\tshowLabel,\n\t\t\tsize = 's',\n\t\t\ttextareaProps,\n\t\t\ttooltipText = null,\n\t\t\ttranslationStrings = {\n\t\t\t\tclearButton: 'Clear input text',\n\t\t\t\tcounterOverLimit: 'Character limit exceeded by',\n\t\t\t\tsearchShortcut: 'Press / to focus the search field',\n\t\t\t\tvisibilityStatus: 'The value of the input is',\n\t\t\t\tvisibilityToggleHide: 'Hide input value',\n\t\t\t\tvisibilityToggleShow: 'Show input value',\n\t\t\t},\n\t\t\tvalidationMessage,\n\t\t\tvalidationStatus,\n\t\t\tvalue,\n\t\t\t...props\n\t\t}: TextareaProps,\n\t\tref: Ref<HTMLTextAreaElement>,\n\t) => {\n\t\t// Determine input width style.\n\t\tconst inputWidthStyle = getInputWidthStyle(inputWidth);\n\n\t\t// Set up classes.\n\t\tconst baseClass = 'pds-textarea';\n\t\tconst resizableClass = isResizable ? 'pds-is-resizable' : null;\n\t\tconst disabledClass = disabled ? inputCommonClasses.disabled : null;\n\t\tconst requiredClass =\n\t\t\trequired && !disabled ? inputCommonClasses.required : null;\n\t\tconst errorClass =\n\t\t\tvalidationStatus === 'error' ? inputCommonClasses.error : null;\n\t\tconst successClass =\n\t\t\tvalidationStatus === 'success' ? inputCommonClasses.success : null;\n\t\tconst sizeClass = size !== 's' ? `${baseClass}--${size}` : null;\n\t\tconst readonlyClass = readonly ? inputCommonClasses.readonly : null;\n\n\t\t// If there is a validation message, use that. Otherwise, use the message prop.\n\t\tconst processedMessage = validationMessage || message;\n\n\t\t// Determine if the textarea is controlled.\n\t\tconst isControlled =\n\t\t\tvalue !== undefined && value !== null && onChange !== undefined;\n\n\t\t// When a component is not controlled, it can have a defaultValue.\n\t\tconst hasDefaultValue = typeof defaultValue != 'undefined';\n\n\t\t// If the textarea is uncontrolled, use state within the component to manage the value.\n\t\tconst [internalValue, setInternalValue] = useState(\n\t\t\thasDefaultValue ? defaultValue : '',\n\t\t);\n\n\t\t// Determine if the textarea has a value either from props or internal state.\n\t\tconst hasValue = value || internalValue;\n\n\t\t// Handle change event.\n\t\tconst handleChange = (e: ChangeEvent<HTMLTextAreaElement>) => {\n\t\t\tif (!isControlled) {\n\t\t\t\tsetInternalValue(e.target.value);\n\t\t\t}\n\n\t\t\tif (onChange) {\n\t\t\t\tonChange(e);\n\t\t\t}\n\t\t};\n\n\t\t// Handle blur event.\n\t\tconst handleBlur = (e: FocusEvent<HTMLTextAreaElement>) => {\n\t\t\tif (onBlur) {\n\t\t\t\tonBlur(e);\n\t\t\t}\n\t\t};\n\n\t\t// Render the output\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={mergeClasses([\n\t\t\t\t\tinputCommonClasses.base,\n\t\t\t\t\tbaseClass,\n\t\t\t\t\tsizeClass,\n\t\t\t\t\tdisabledClass,\n\t\t\t\t\trequiredClass,\n\t\t\t\t\terrorClass,\n\t\t\t\t\tsuccessClass,\n\t\t\t\t\treadonlyClass,\n\t\t\t\t\tclassName ?? '',\n\t\t\t\t])}\n\t\t\t\tstyle={inputWidth ? inputWidthStyle : null}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<div className={`${baseClass}__inputlabel-wrapper`}>\n\t\t\t\t\t<InputLabel\n\t\t\t\t\t\tclassName={`${baseClass}__inputlabel`}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tid={id}\n\t\t\t\t\t\tlabel={label}\n\t\t\t\t\t\trequired={required}\n\t\t\t\t\t\tshowLabel={showLabel}\n\t\t\t\t\t\ttooltipText={tooltipText}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{/* Character counter */}\n\t\t\t\t\t{counterMaxLength && (\n\t\t\t\t\t\t<CharacterCounter\n\t\t\t\t\t\t\tcurrentLength={hasValue.length}\n\t\t\t\t\t\t\tid={id}\n\t\t\t\t\t\t\tmaxLength={counterMaxLength}\n\t\t\t\t\t\t\toverLimitMessage={translationStrings.counterOverLimit}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\n\t\t\t\t<div className={`${baseClass}__input-wrapper`}>\n\t\t\t\t\t<textarea\n\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\taria-describedby={processedMessage ? `${id}__message` : null}\n\t\t\t\t\t\taria-invalid={validationStatus === 'error' ? true : false}\n\t\t\t\t\t\tclassName={mergeClasses([`${baseClass}--textarea`, resizableClass])}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tid={id}\n\t\t\t\t\t\tname={id}\n\t\t\t\t\t\tonBlur={handleBlur}\n\t\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\t\tonFocus={onFocus}\n\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\treadOnly={readonly}\n\t\t\t\t\t\trequired={required}\n\t\t\t\t\t\trows={rows}\n\t\t\t\t\t\tvalue={isControlled ? value : internalValue}\n\t\t\t\t\t\t{...textareaProps}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\n\t\t\t\t{processedMessage && (\n\t\t\t\t\t<InputMessage\n\t\t\t\t\t\tvalidationMessageHasDecorators\n\t\t\t\t\t\thasValidationMessage={validationMessage ? true : false}\n\t\t\t\t\t\tid={id}\n\t\t\t\t\t\tmessage={processedMessage}\n\t\t\t\t\t\tvalidationStatus={validationStatus}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t},\n);\n","import React, {\n\tChangeEvent,\n\tComponentPropsWithoutRef,\n\tFocusEvent,\n\tforwardRef,\n\tReactNode,\n\tRef,\n\tuseState,\n} from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { ValidationStatus } from '@libs/types/input-types';\n\nimport { Icon } from '@components/icons/Icon/Icon';\n\nimport {\n\tCharacterCounter,\n\tClearButton,\n\tgetInputWidthStyle,\n\tinputCommonClasses,\n\tInputLabel,\n\tInputMessage,\n\tInputPrefix,\n\tPrefixVariants,\n\tSearchShortcut,\n\tstripUrlProtocol,\n} from '../input-utilities';\n\nimport './text-input.css';\n\n// Label strings type.\ntype LabelStrings = {\n\tclearButton: string;\n\tcounterOverLimit?: string;\n\tsearchShortcut: string;\n\tvisibilityStatus: string;\n\tvisibilityToggleHide: string;\n\tvisibilityToggleShow: string;\n};\n\ntype HtmlInputTypes =\n\t| 'text'\n\t| 'number'\n\t| 'email'\n\t| 'password'\n\t| 'tel'\n\t| 'url'\n\t| 'search';\n\n/**\n * Prop types for TextInput\n */\nexport interface TextInputProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Auto complete attribute for the input field. The attribute value is either the keyword `off` or `on`, or an ordered list of space-separated tokens. Password fields are automatically off.\n\t */\n\tautoComplete?: string;\n\t/**\n\t * Additional class names for input.\n\t */\n\tclassName?: string;\n\t/**\n\t * Maximum character count for the character counter. Leave blank for no counter. Not valid for type `password`.\n\t */\n\tcounterMaxLength?: number;\n\t/**\n\t * Initial value for the input field. Setting this prop automatically makes the input uncontrolled. Cannot be used in conjunction with the `value` prop.\n\t */\n\tdefaultValue?: string;\n\t/**\n\t * Is the field disabled?\n\t */\n\tdisabled?: boolean;\n\t/**\n\t * Does the input contain a clear button?\n\t */\n\thasClearButton?: boolean;\n\t/**\n\t * Does the input contain the search shortcut?\n\t * Only valid if the input type is `search`.\n\t */\n\thasSearchShortcut?: boolean;\n\t/**\n\t * Show a fixed \"https://\" prefix for URL inputs. Only valid if the input type is \"url\".\n\t */\n\thasUrlPrefix?: boolean;\n\t/**\n\t * Input ID.\n\t */\n\tid: string;\n\t/**\n\t * Additional props for the `<input>` element.\n\t */\n\tinputProps?: ComponentPropsWithoutRef<'input'>;\n\t/**\n\t * Max-width of the input field. Accepts a number in pixels. Leave blank for width: 100%.\n\t */\n\tinputWidth?: number;\n\t/**\n\t * Input label.\n\t */\n\tlabel: string;\n\t/**\n\t * Input message. Used to provide supplemental text. Will be displayed below the input field.\n\t */\n\tmessage?: string | ReactNode;\n\t/**\n\t * onBlur event handler.\n\t */\n\tonBlur?: (e: FocusEvent<HTMLInputElement>) => void;\n\t/**\n\t * onChange event handler. Controlled inputs should use this to manage the input value. Uncontrolled inputs will manage their own state, but may still use this to access the event object.\n\t */\n\tonChange?: (e: ChangeEvent<HTMLInputElement>) => void;\n\t/**\n\t * Function to clear the input field. Only necessary if the input is controlled. This functionality is built-in for uncontrolled inputs.\n\t */\n\tonClear?: () => void;\n\t/**\n\t * onFocus event handler.\n\t */\n\tonFocus?: (e: FocusEvent<HTMLInputElement>) => void;\n\t/**\n\t * Optional placeholder text to display when the input field is empty.\n\t */\n\tplaceholder?: string;\n\t/**\n\t * Is the field read-only?\n\t */\n\treadonly?: boolean;\n\t/**\n\t * Is this field required?\n\t */\n\trequired?: boolean;\n\t/**\n\t * Icon to use when type is search.\n\t */\n\tsearchIcon?: 'search' | 'filter';\n\t/**\n\t * Should the label be visible? If false, it will render for screen readers only.\n\t */\n\tshowLabel?: boolean;\n\t/**\n\t * Show Toggle visibility control for input. Valid for type `password` only.\n\t */\n\tshowVisibilityToggle?: boolean;\n\t/**\n\t * Input size.\n\t */\n\tsize?: 's' | 'm' | 'l';\n\t/**\n\t * Optional tooltip text to display additional information.\n\t */\n\ttooltipText?: string | null;\n\t/**\n\t * Translation strings for various labels or other visually-hidden text.\n\t */\n\ttranslationStrings?: LabelStrings;\n\t/**\n\t * Type of input field to use.\n\t */\n\ttype?: HtmlInputTypes;\n\t/**\n\t * Validation message for the input field based on the validation status.\n\t */\n\tvalidationMessage?: string;\n\t/**\n\t * Validation status of the input field.\n\t */\n\tvalidationStatus?: ValidationStatus;\n\t/**\n\t * Value of the input field. Used to set the value of the input field when controlled. Cannot be used in conjunction with the `defaultValue` prop.\n\t */\n\tvalue?: string;\n}\n\n/**\n * URL Prefix component for TextInput\n */\nconst UrlPrefix = () => (\n\t<div className='pds-text-input__url-prefix'>https://</div>\n);\n\n/**\n * TextInput UI component\n */\nexport const TextInput = forwardRef(\n\t(\n\t\t{\n\t\t\tautoComplete,\n\t\t\tclassName,\n\t\t\tcounterMaxLength,\n\t\t\tdefaultValue,\n\t\t\tdisabled = false,\n\t\t\thasClearButton = false,\n\t\t\thasSearchShortcut = false,\n\t\t\thasUrlPrefix = false,\n\t\t\tid,\n\t\t\tinputProps,\n\t\t\tinputWidth,\n\t\t\tlabel,\n\t\t\tmessage,\n\t\t\tonBlur,\n\t\t\tonChange,\n\t\t\tonClear,\n\t\t\tonFocus,\n\t\t\tplaceholder,\n\t\t\treadonly = false,\n\t\t\trequired = false,\n\t\t\tsearchIcon = 'search',\n\t\t\tshowLabel = true,\n\t\t\tshowVisibilityToggle = false,\n\t\t\tsize = 's',\n\t\t\ttooltipText = null,\n\t\t\ttranslationStrings = {\n\t\t\t\tclearButton: 'Clear input text',\n\t\t\t\tcounterOverLimit: 'Character limit exceeded by',\n\t\t\t\tsearchShortcut: 'Press / to focus the search field',\n\t\t\t\tvisibilityStatus: 'The value of the input is',\n\t\t\t\tvisibilityToggleHide: 'Hide input value',\n\t\t\t\tvisibilityToggleShow: 'Show input value',\n\t\t\t},\n\t\t\ttype = 'text',\n\t\t\tvalidationMessage,\n\t\t\tvalidationStatus,\n\t\t\tvalue,\n\t\t\t...props\n\t\t}: TextInputProps,\n\t\tref: Ref<HTMLInputElement>,\n\t) => {\n\t\t// Determine input width style.\n\t\tconst inputWidthStyle = getInputWidthStyle(inputWidth);\n\n\t\t// Set up classes.\n\t\tconst baseClass = 'pds-text-input';\n\t\tconst disabledClass = disabled ? inputCommonClasses.disabled : null;\n\t\tconst requiredClass =\n\t\t\trequired && !disabled ? inputCommonClasses.required : null;\n\t\tconst errorClass =\n\t\t\tvalidationStatus === 'error' ? inputCommonClasses.error : null;\n\t\tconst successClass =\n\t\t\tvalidationStatus === 'success' ? inputCommonClasses.success : null;\n\t\tconst readonlyClass = readonly ? inputCommonClasses.readonly : null;\n\t\tconst sizeClass = size !== 's' ? `${baseClass}--${size}` : null;\n\t\tconst urlPrefixClass =\n\t\t\thasUrlPrefix && type === 'url' ? `${baseClass}--has-url-prefix` : null;\n\n\t\t// Set prefix.\n\t\tlet prefix: PrefixVariants | null = null;\n\t\tif (type === 'search') {\n\t\t\tprefix = 'search';\n\t\t}\n\n\t\tif (type === 'search' && searchIcon === 'filter') {\n\t\t\tprefix = 'filter';\n\t\t}\n\n\t\tif (validationStatus === 'error') {\n\t\t\tprefix = 'error';\n\t\t}\n\t\tif (validationStatus === 'success') {\n\t\t\tprefix = 'success';\n\t\t}\n\n\t\t// If there is a validation message, use that. Otherwise, use the message prop.\n\t\tconst processedMessage = validationMessage || message;\n\n\t\t// Determine if the input is controlled.\n\t\tconst isControlled = typeof value != 'undefined';\n\n\t\t// When a component is not controlled, it can have a defaultValue.\n\t\tconst hasDefaultValue = typeof defaultValue != 'undefined';\n\n\t\t// If the input is uncontrolled, use state within the component to manage the value.\n\t\tconst [internalValue, setInternalValue] = useState(\n\t\t\thasDefaultValue ? defaultValue : '',\n\t\t);\n\n\t\t// Determine if the input has a value either from props or internal state.\n\t\tconst hasValue = value || internalValue;\n\n\t\t// Handle blur event.\n\t\tconst handleBlur = (e: FocusEvent<HTMLInputElement>) => {\n\t\t\tif (showVisibilityToggle && visibility) {\n\t\t\t\tsetVisibility(false);\n\t\t\t}\n\n\t\t\t// Process URL prefix if needed\n\t\t\tif (hasUrlPrefix && type === 'url') {\n\t\t\t\tconst processedValue = stripUrlProtocol(e.target.value);\n\n\t\t\t\tconst newEvent = {\n\t\t\t\t\t...e,\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\t...e.target,\n\t\t\t\t\t\tvalue: processedValue,\n\t\t\t\t\t},\n\t\t\t\t} as FocusEvent<HTMLInputElement>;\n\n\t\t\t\tif (onBlur) {\n\t\t\t\t\tonBlur(newEvent);\n\t\t\t\t}\n\t\t\t} else if (onBlur) {\n\t\t\t\tonBlur(e);\n\t\t\t}\n\t\t};\n\n\t\t// Handle change event.\n\t\tconst handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n\t\t\tif (hasUrlPrefix && type === 'url') {\n\t\t\t\tconst processedValue = stripUrlProtocol(e.target.value);\n\n\t\t\t\tconst newEvent = {\n\t\t\t\t\t...e,\n\t\t\t\t\ttarget: {\n\t\t\t\t\t\t...e.target,\n\t\t\t\t\t\tvalue: processedValue,\n\t\t\t\t\t},\n\t\t\t\t} as ChangeEvent<HTMLInputElement>;\n\n\t\t\t\tif (!isControlled) {\n\t\t\t\t\tsetInternalValue(processedValue);\n\t\t\t\t}\n\n\t\t\t\tif (onChange) {\n\t\t\t\t\tonChange(newEvent);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (!isControlled) {\n\t\t\t\t\tsetInternalValue(e.target.value);\n\t\t\t\t}\n\n\t\t\t\tif (onChange) {\n\t\t\t\t\tonChange(e);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t// Handle clear button.\n\t\tconst handleClear = () => {\n\t\t\tif (!isControlled) {\n\t\t\t\tsetInternalValue('');\n\t\t\t}\n\n\t\t\tif (onClear) {\n\t\t\t\tonClear();\n\t\t\t}\n\n\t\t\t// Set focus to the input field.\n\t\t\tconst element = document.getElementById(id);\n\t\t\tif (element) {\n\t\t\t\telement.focus();\n\t\t\t}\n\t\t};\n\n\t\t// Set up state for visibility.\n\t\tconst [visibility, setVisibility] = useState(false);\n\n\t\t// Function to toggle visibility.\n\t\tconst handleShowVisibilityToggle = () => {\n\t\t\t// Toggle visibility.\n\t\t\tsetVisibility((previous) => {\n\t\t\t\treturn !previous;\n\t\t\t});\n\n\t\t\t// Set focus to the input field.\n\t\t\tconst element = document.getElementById(id);\n\t\t\tif (element) {\n\t\t\t\telement.focus();\n\t\t\t}\n\t\t};\n\n\t\t// Get input type from props.\n\t\tlet processedType = type;\n\n\t\t// Toggle input type between `password` and `text`.\n\t\tif (showVisibilityToggle && type === 'password') {\n\t\t\tif (visibility) {\n\t\t\t\tprocessedType = 'text';\n\t\t\t} else {\n\t\t\t\tprocessedType = 'password';\n\t\t\t}\n\t\t}\n\n\t\t// Render the output\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={mergeClasses([\n\t\t\t\t\tinputCommonClasses.base,\n\t\t\t\t\tbaseClass,\n\t\t\t\t\tsizeClass,\n\t\t\t\t\tdisabledClass,\n\t\t\t\t\trequiredClass,\n\t\t\t\t\terrorClass,\n\t\t\t\t\tsuccessClass,\n\t\t\t\t\treadonlyClass,\n\t\t\t\t\turlPrefixClass,\n\t\t\t\t\tclassName ?? '',\n\t\t\t\t])}\n\t\t\t\tstyle={inputWidth ? inputWidthStyle : null}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<InputLabel\n\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\tid={id}\n\t\t\t\t\tlabel={label}\n\t\t\t\t\trequired={required}\n\t\t\t\t\tshowLabel={showLabel}\n\t\t\t\t\ttooltipText={tooltipText}\n\t\t\t\t/>\n\n\t\t\t\t{/* Visually-hidden message for visibility status */}\n\t\t\t\t{showVisibilityToggle && type === 'password' && (\n\t\t\t\t\t<div aria-live='polite' className='visually-hidden'>\n\t\t\t\t\t\t{`${translationStrings.visibilityStatus} ${\n\t\t\t\t\t\t\tvisibility ? 'visible' : 'hidden'\n\t\t\t\t\t\t}.`}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t<div\n\t\t\t\t\tclassName={`${baseClass}__input-wrapper ${hasUrlPrefix && type === 'url' ? `${baseClass}__input-wrapper--has-prefix` : ''}`}\n\t\t\t\t>\n\t\t\t\t\t{prefix && <InputPrefix variant={prefix} />}\n\n\t\t\t\t\t{hasUrlPrefix && type === 'url' && <UrlPrefix />}\n\n\t\t\t\t\t<input\n\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\taria-describedby={processedMessage ? `${id}__message` : null}\n\t\t\t\t\t\taria-invalid={validationStatus === 'error' ? true : null}\n\t\t\t\t\t\tautoComplete={type === 'password' ? 'off' : autoComplete}\n\t\t\t\t\t\tclassName={`${baseClass}__input ${hasUrlPrefix && type === 'url' ? `${baseClass}__input--has-prefix` : ''}`}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\tid={id}\n\t\t\t\t\t\tname={id}\n\t\t\t\t\t\tonBlur={handleBlur}\n\t\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\t\tonFocus={onFocus}\n\t\t\t\t\t\tplaceholder={placeholder}\n\t\t\t\t\t\treadOnly={readonly}\n\t\t\t\t\t\trequired={required}\n\t\t\t\t\t\ttype={processedType}\n\t\t\t\t\t\tvalue={isControlled ? value : internalValue}\n\t\t\t\t\t\t{...inputProps}\n\t\t\t\t\t/>\n\n\t\t\t\t\t{/* Clear button */}\n\t\t\t\t\t{hasClearButton && hasValue && (\n\t\t\t\t\t\t<ClearButton\n\t\t\t\t\t\t\tclearLabel={translationStrings.clearButton}\n\t\t\t\t\t\t\thandleClearInput={handleClear}\n\t\t\t\t\t\t\tid={id}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{/* Visibility toggle button */}\n\t\t\t\t\t{showVisibilityToggle && type === 'password' && (\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\taria-controls={id}\n\t\t\t\t\t\t\tclassName={`${baseClass}__visibility-toggle`}\n\t\t\t\t\t\t\tonClick={handleShowVisibilityToggle}\n\t\t\t\t\t\t\tonMouseDown={(e) => e.preventDefault()}\n\t\t\t\t\t\t\ttitle={\n\t\t\t\t\t\t\t\tvisibility\n\t\t\t\t\t\t\t\t\t? translationStrings.visibilityToggleHide\n\t\t\t\t\t\t\t\t\t: translationStrings.visibilityToggleShow\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttype='button'\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon iconName={visibility ? 'eyeSlash' : 'eye'} iconSize='m' />\n\t\t\t\t\t\t</button>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{/* Search shortcut */}\n\t\t\t\t\t{hasSearchShortcut && type === 'search' && !hasValue && (\n\t\t\t\t\t\t<SearchShortcut\n\t\t\t\t\t\t\tinputId={id}\n\t\t\t\t\t\t\tshortcutLabel={translationStrings.searchShortcut}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{/* Character counter */}\n\t\t\t\t\t{counterMaxLength && type !== 'password' && (\n\t\t\t\t\t\t<CharacterCounter\n\t\t\t\t\t\t\tcurrentLength={hasValue.length}\n\t\t\t\t\t\t\tid={id}\n\t\t\t\t\t\t\tmaxLength={counterMaxLength}\n\t\t\t\t\t\t\toverLimitMessage={translationStrings.counterOverLimit}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\n\t\t\t\t{processedMessage && (\n\t\t\t\t\t<InputMessage\n\t\t\t\t\t\thasValidationMessage={validationMessage ? true : false}\n\t\t\t\t\t\tid={id}\n\t\t\t\t\t\tmessage={processedMessage}\n\t\t\t\t\t\tvalidationMessageHasDecorators={false}\n\t\t\t\t\t\tvalidationStatus={validationStatus}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t},\n);\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, {\n\tcloneElement,\n\tisValidElement,\n\tReactElement,\n\tReactNode,\n} from 'react';\n\nimport { NavigationItem } from '@libs/types/navigation-types';\n\nimport { Icon, PDSIcon } from '@components/icons/Icon/Icon';\n\n/**\n * Recursively searches through navigation items to find the first active link\n * @param items - Array of navigation items to search through\n * @returns The active link element, or null if no active link is found or if the active item is a string\n * @example\n * const activeLink = getActiveLink(menuItems);\n */\nexport const getActiveLink = (items: NavigationItem[]): ReactElement | null => {\n\tif (!items) {\n\t\treturn null;\n\t}\n\tfor (let i = 0; i < items.length; i++) {\n\t\tif (isActiveItem(items[i])) {\n\t\t\t// If the linkContent is a string, return null.\n\t\t\t// Otherwise, return the linkContent.\n\t\t\treturn typeof items[i].linkContent === 'string'\n\t\t\t\t? null\n\t\t\t\t: (items[i].linkContent as ReactElement);\n\t\t}\n\t\tif (items[i].links) {\n\t\t\tconst activeLink = getActiveLink(items[i].links);\n\t\t\tif (activeLink) {\n\t\t\t\treturn activeLink;\n\t\t\t}\n\t\t}\n\t}\n\t// If no active link is found, return null.\n\treturn null;\n};\n\n/**\n * Extracts a string representation from linkContent, whether it's a string or React element\n * @param linkContent - The link content to extract string from (string or React element)\n * @returns String representation of the link content\n * @example\n * const linkText = getLinkContentString(<Link>Home</Link>); // Returns \"Home\"\n * const linkText = getLinkContentString(\"About\"); // Returns \"About\"\n */\nexport const getLinkContentString = (\n\tlinkContent: ReactElement | string,\n): string => {\n\t// If it's already a string, return it\n\tif (typeof linkContent === 'string') {\n\t\treturn linkContent;\n\t}\n\n\t// Otherwise it's a ReactElement, get the children\n\treturn (linkContent.props as any).children as string;\n};\n\n/**\n * Determines if a navigation item is currently active\n * @param item - The navigation item to check\n * @returns True if the item is active, false otherwise\n * @description Checks for active state via:\n * - The `isActive` property on the item\n * - The presence of 'pds-isActive' class on the link element\n * - Returns false for string-based items\n * @example\n * const isActive = isActiveItem(navigationItem);\n */\nexport const isActiveItem = (item: NavigationItem): boolean => {\n\t// If the type is not a string, determine if the item is active.\n\tif (typeof item.linkContent !== 'string') {\n\t\t// Via the isActive property on the item.\n\t\tif (item.isActive) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Via the pds-isActive class on the link.\n\t\tif (\n\t\t\t(item.linkContent.props as { className?: string }).className &&\n\t\t\t(item.linkContent.props as { className?: string }).className.includes(\n\t\t\t\t'pds-isActive',\n\t\t\t)\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// If not active, return false.\n\t\treturn false;\n\t}\n\n\t// If the type is a string, return false.\n\treturn false;\n};\n\n/**\n * Determines if a navigation item or any of its children are in the active trail\n * @param item - The navigation item to check (including its children)\n * @returns True if the item or any child is active, false otherwise\n * @description Recursively checks the item and all child items for active state\n * @example\n * const inActiveTrail = isActiveTrail(parentItem); // True if parent or any child is active\n */\nexport const isActiveTrail = (item: NavigationItem): boolean => {\n\tif (isActiveItem(item)) {\n\t\treturn true;\n\t}\n\n\t// Repeat for child links.\n\tif (item.links) {\n\t\tfor (let i = 0; i < item.links.length; i++) {\n\t\t\tif (isActiveTrail(item.links[i])) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn false;\n};\n\n/**\n * Checks if the provided content is an interactive element (link, button, etc.)\n * @param content - The React content to examine\n * @returns True if the content is an interactive element, false otherwise\n * @description Currently detects:\n * - Native anchor elements (`<a>`)\n * - React Router Link components (by displayName)\n * @example\n * const isInteractive = isInteractiveElement(<Link to=\"/home\">Home</Link>); // true\n * const isInteractive = isInteractiveElement(<span>Label</span>); // false\n * const isInteractive = isInteractiveElement(\"Plain text\"); // false\n */\nexport const isInteractiveElement = (content: ReactNode): boolean => {\n\tif (isValidElement(content)) {\n\t\tconst elementType = content.type;\n\n\t\t// Check for native anchor elements\n\t\tif (\n\t\t\telementType === 'a' ||\n\t\t\t(typeof elementType === 'string' && elementType.toLowerCase() === 'a')\n\t\t) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Check for Link components by displayName (with proper type checking)\n\t\tif (typeof elementType === 'function' || typeof elementType === 'object') {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\tconst typeWithDisplayName = elementType as any;\n\t\t\tif (typeWithDisplayName?.displayName === 'Link') {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\treturn false;\n};\n\n/**\n * Processes navigation link content based on its type and available child links\n * @param linkContent - The link content to process (string or React element)\n * @param links - Optional array of child navigation items\n * @returns Processed link content\n * @description\n * - If linkContent is a string and child links exist, clones the first child link with the string as label\n * - Otherwise returns the linkContent as-is\n * @example\n * // With string and child links - uses first child as template\n * const processed = processNavLinkContent(\"Home\", [{ linkContent: <Link to=\"/home\" /> }]);\n *\n * // With React element - returns as-is\n * const processed = processNavLinkContent(<Link to=\"/about\">About</Link>);\n */\nexport const processNavLinkContent = (\n\tlinkContent: ReactElement | string,\n\tlinks?: NavigationItem[],\n): ReactElement | string => {\n\tlet processedNavLink: ReactElement | string = null;\n\n\t// If the link content is a string and there are child links,\n\t// use the first child link with the string as the label.\n\tif (typeof linkContent === 'string' && links) {\n\t\t// Get the first child link.\n\t\tconst firstChildLink = links ? links[0].linkContent : null;\n\n\t\t// Check that the link is a valid React element.\n\t\tif (isValidElement(firstChildLink)) {\n\t\t\t// Clone the first child link and set the string as its children.\n\t\t\tprocessedNavLink = cloneElement(firstChildLink, {\n\t\t\t\t...(typeof linkContent === 'string' ? { children: linkContent } : {}),\n\t\t\t});\n\t\t}\n\t} else {\n\t\t// Otherwise, use the link content as-is.\n\t\tprocessedNavLink = linkContent;\n\t}\n\n\treturn processedNavLink;\n};\n\n/**\n * Processes side navigation global items with optional icons and specialized markup structure\n * @param baseClass - Base CSS class for styling\n * @param linkContent - The link content to process (string or React element)\n * @param links - Optional array of child navigation items\n * @param icon - Optional PDS icon to include\n * @returns Processed navigation item with icon and proper markup structure, or null\n * @description\n * Creates a structured navigation item with:\n * - Icon support with proper CSS classes\n * - Consistent markup structure for global navigation\n * - Template behavior for string content with child links\n * @example\n * // String with icon and child links\n * const item = processSideNavGlobalLinkContent('nav', 'Home', childLinks, 'home');\n *\n * // React element with icon\n * const item = processSideNavGlobalLinkContent('nav', <Link to=\"/about\">About</Link>, null, 'info');\n */\nexport const processSideNavGlobalLinkContent = (\n\tbaseClass: string,\n\tlinkContent: ReactElement | string,\n\tlinks?: NavigationItem[],\n\ticon?: PDSIcon,\n) => {\n\t// Result will be a JSX element.\n\tlet processedSideNavGlobalItem: ReactElement = null;\n\n\t// If the linkContent is a string and has child links, create a link element from the first child link.\n\t// Append the icon if it exists.\n\t// Return null if the linkContent is a string and there are no child links.\n\tif (typeof linkContent === 'string') {\n\t\t// Prep new link children for strings with or without an icon.\n\t\tconst newLinkChildrenForString = icon\n\t\t\t? [\n\t\t\t\t\t<span key={linkContent} className={`${baseClass}__item-inner`}>\n\t\t\t\t\t\t<span className={`${baseClass}__link-icon`}>\n\t\t\t\t\t\t\t<Icon iconName={icon} iconSize='m' />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<span className={`${baseClass}__link-label`}>{linkContent}</span>\n\t\t\t\t\t</span>,\n\t\t\t\t]\n\t\t\t: [\n\t\t\t\t\t<span key={linkContent} className={`${baseClass}__item-inner`}>\n\t\t\t\t\t\t<span className={`${baseClass}__link-label`}>{linkContent}</span>\n\t\t\t\t\t</span>,\n\t\t\t\t];\n\n\t\tif (links) {\n\t\t\t// Get the first child link.\n\t\t\tconst firstChildLink = links[0].linkContent;\n\t\t\tif (isValidElement(firstChildLink)) {\n\t\t\t\tprocessedSideNavGlobalItem = cloneElement(firstChildLink, {\n\t\t\t\t\t...(typeof linkContent === 'string'\n\t\t\t\t\t\t? { children: newLinkChildrenForString }\n\t\t\t\t\t\t: {}),\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tprocessedSideNavGlobalItem = null;\n\t\t}\n\t}\n\n\t// If the linkContent is a JSX element and has an icon, clone it and append the icon.\n\t// Return the linkContent as is if the linkContent is a JSX element but there is no icon.\n\tif (isValidElement(linkContent)) {\n\t\tif (icon) {\n\t\t\tprocessedSideNavGlobalItem = cloneElement(\n\t\t\t\tlinkContent,\n\t\t\t\tObject.assign({}, linkContent.props, {\n\t\t\t\t\tchildren: [\n\t\t\t\t\t\t<span key={icon} className={`${baseClass}__item-inner`}>\n\t\t\t\t\t\t\t<span className={`${baseClass}__link-icon`}>\n\t\t\t\t\t\t\t\t<Icon iconName={icon} iconSize='m' />\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span className={`${baseClass}__link-label`}>\n\t\t\t\t\t\t\t\t{(linkContent.props as { children?: ReactNode }).children}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</span>,\n\t\t\t\t\t],\n\t\t\t\t}),\n\t\t\t);\n\t\t} else {\n\t\t\tprocessedSideNavGlobalItem = linkContent;\n\t\t}\n\t}\n\n\treturn processedSideNavGlobalItem;\n};\n","import React, {\n\tComponentPropsWithRef,\n\tuseContext,\n\tuseEffect,\n\tuseRef,\n} from 'react';\n\n// Local utilities.\nimport { mergeClasses } from '@libs/components/utils';\n// Types.\nimport { NavigationItem } from '@libs/types/navigation-types';\n\n// Contexts.\nimport { ResponsiveContext } from '@utilities/context-providers/ResponsiveContext/ResponsiveContext';\n\n// Components.\nimport { SplitButton } from '@components/buttons/SplitButton/SplitButton';\n\nimport { isActiveTrail } from '../navigation-utilities';\n\nimport './button-nav.css';\n\n// Extend the NavigationItem type to not allow child links.\nexport type ButtonNavItem = Omit<NavigationItem, 'links'>;\n\n/**\n * Prop types for ButtonNav\n */\nexport interface ButtonNavProps extends ComponentPropsWithRef<'nav'> {\n\t/**\n\t * Aria label for the navigation.\n\t */\n\tariaLabel: string;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Menu items to render.\n\t */\n\tmenuItems?: ButtonNavItem[];\n\t/**\n\t * Size of the Buttons.\n\t */\n\tsize?: 's' | 'm';\n}\n\n/**\n * ButtonNav UI component\n */\nexport const ButtonNav = ({\n\tariaLabel,\n\tclassName,\n\tmenuItems,\n\tsize = 's',\n\t...props\n}: ButtonNavProps) => {\n\t// Set isMobile fallback.\n\tlet isMobile = false;\n\n\t// Get responsive context.\n\tconst responsiveContext = useContext(ResponsiveContext);\n\tif (responsiveContext) {\n\t\tisMobile = responsiveContext.isMobile;\n\t}\n\n\t// Reference to the navigation element\n\tconst navRef = useRef<HTMLElement>(null);\n\n\t// Set up classes.\n\tconst baseClass = 'pds-button-nav';\n\tconst mobileClass = isMobile ? `${baseClass}--isMobile` : null;\n\tconst sizeClass = `${baseClass}--${size}`;\n\n\t// Handle keyboard navigation\n\tuseEffect(() => {\n\t\tconst handleKeyDown = (event: KeyboardEvent) => {\n\t\t\t// Only process if not in mobile view\n\t\t\tif (isMobile) return;\n\n\t\t\t// Get all focusable elements within the navigation\n\t\t\tconst nav = navRef.current;\n\t\t\tif (!nav) return;\n\n\t\t\t// Find all focusable elements within the navigation\n\t\t\tconst focusableElements = Array.from(\n\t\t\t\tnav.querySelectorAll('a, button, [tabindex]:not([tabindex=\"-1\"])'),\n\t\t\t) as HTMLElement[];\n\n\t\t\t// If no focusable elements, return\n\t\t\tif (focusableElements.length === 0) return;\n\n\t\t\t// Get the currently focused element\n\t\t\tconst focusedElement = document.activeElement as HTMLElement;\n\t\t\tconst currentIndex = focusableElements.indexOf(focusedElement);\n\n\t\t\t// Only process if one of our navigation elements has focus\n\t\t\tif (currentIndex === -1) return;\n\n\t\t\t// Handle arrow keys\n\t\t\tif (event.key === 'ArrowRight') {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst nextIndex = (currentIndex + 1) % focusableElements.length;\n\t\t\t\tfocusableElements[nextIndex].focus();\n\t\t\t} else if (event.key === 'ArrowLeft') {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tconst prevIndex =\n\t\t\t\t\t(currentIndex - 1 + focusableElements.length) %\n\t\t\t\t\tfocusableElements.length;\n\t\t\t\tfocusableElements[prevIndex].focus();\n\t\t\t}\n\t\t};\n\n\t\tdocument.addEventListener('keydown', handleKeyDown);\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('keydown', handleKeyDown);\n\t\t};\n\t}, [isMobile]);\n\n\t// Render each menu item for the default view.\n\tconst ButtonMenuItem = ({ isActive, linkContent }: ButtonNavItem) => {\n\t\t// Define item class.\n\t\tconst itemClass = `${baseClass}__item`;\n\n\t\treturn (\n\t\t\t<li\n\t\t\t\tclassName={mergeClasses([\n\t\t\t\t\titemClass,\n\t\t\t\t\tisActive ? `${itemClass}--active` : null,\n\t\t\t\t])}\n\t\t\t>\n\t\t\t\t{linkContent}\n\t\t\t</li>\n\t\t);\n\t};\n\n\t// Preprocess the default menu markup.\n\tconst defaultMarkup =\n\t\tmenuItems.length > 0 ? (\n\t\t\t<ul className={`${baseClass}__menu`}>\n\t\t\t\t{menuItems.map((item, index) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ButtonMenuItem\n\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\tisActive={isActiveTrail(item)}\n\t\t\t\t\t\t\tlinkContent={item.linkContent}\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</ul>\n\t\t) : null;\n\n\t// Process the mobile menu items.\n\tconst mobileMenuItems = [];\n\n\tmenuItems.map((item) => {\n\t\tif (item.linkContent) {\n\t\t\tif (!isActiveTrail(item)) {\n\t\t\t\tmobileMenuItems.push({\n\t\t\t\t\tlinkContent: item.linkContent,\n\t\t\t\t\tisLink: true,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tmobileMenuItems.unshift({\n\t\t\t\t\tlinkContent: item.linkContent,\n\t\t\t\t\tisLink: true,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t});\n\n\t// Preprocess the mobile markup.\n\tconst mobileMarkup =\n\t\tmobileMenuItems.length > 0 ? (\n\t\t\t<SplitButton\n\t\t\t\tactionItems={mobileMenuItems}\n\t\t\t\tid='mobile-nav-split-button'\n\t\t\t\tsize={size}\n\t\t\t\tvariant='secondary'\n\t\t\t/>\n\t\t) : null;\n\n\t// Render the output\n\treturn (\n\t\t<nav\n\t\t\tref={navRef}\n\t\t\taria-label={ariaLabel}\n\t\t\tclassName={mergeClasses([\n\t\t\t\tbaseClass,\n\t\t\t\tsizeClass,\n\t\t\t\tmobileClass,\n\t\t\t\tclassName ?? '',\n\t\t\t])}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isMobile ? mobileMarkup : defaultMarkup}\n\t\t</nav>\n\t);\n};\n","import React, {\n\tComponentPropsWithoutRef,\n\tMouseEvent,\n\tReactNode,\n\tuseEffect,\n\tuseState,\n} from 'react';\n\nimport { Z_INDEX_NOTIFICATIONS } from '@pantheon-systems/pds-design-tokens/build/js/variables.global.js';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { StatusType, StatusTypeLabels } from '@libs/types/custom-types';\n\nimport { IconButton } from '@components/buttons/IconButton/IconButton';\nimport { Icon, PDSIcon } from '@components/icons/Icon/Icon';\n\nimport './banner.css';\n\ntype BannerVariant = Exclude<StatusType, 'success'> | 'neutral';\n\nconst iconTypes: Record<Exclude<BannerVariant, 'neutral'>, PDSIcon> = {\n\tinfo: 'circleInfo',\n\twarning: 'triangleExclamation',\n\tcritical: 'diamondExclamation',\n\tdiscovery: 'bullhorn',\n};\n\nconst ANIMATION_DURATION = 200;\nconst REVERSE_DELAY = 50;\n\nexport interface BannerItemType {\n\t/**\n\t * Icon to display. Required for neutral type, ignored for other types.\n\t */\n\ticonName?: PDSIcon;\n\t/**\n\t * Unique identifier for the banner.\n\t */\n\tid: string;\n\t/**\n\t * Whether the banner can be dismissed by the user.\n\t */\n\tisDismissible?: boolean;\n\t/**\n\t * The message content of the banner.\n\t */\n\tmessage: string | ReactNode;\n\t/**\n\t * Callback function called when the banner is dismissed.\n\t */\n\tonDismiss?: () => void;\n\t/**\n\t * The type of banner, which determines icon and color.\n\t */\n\ttype?: BannerVariant;\n}\n\n/**\n * Prop types for Banner\n */\nexport interface BannerProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Array of banner objects\n\t */\n\tbanners: BannerItemType[];\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Label for the dismiss button\n\t */\n\tdismissLabel?: string;\n\t/**\n\t * Label for the next message button\n\t */\n\tlabelNext?: string;\n\t/**\n\t * Label for the previous message button\n\t */\n\tlabelPrevious?: string;\n\t/**\n\t * Type labels\n\t */\n\ttypeLabels?: Record<BannerVariant, string>;\n}\n\n/**\n * Banner UI component\n */\nexport const Banner = ({\n\tbanners,\n\tclassName,\n\tdismissLabel = 'Dismiss',\n\tlabelNext = 'Go to next message',\n\tlabelPrevious = 'Go to previous message',\n\ttypeLabels = { ...StatusTypeLabels, neutral: 'Notice' },\n\t...props\n}: BannerProps) => {\n\tconst [bannerGroup, setBannerGroup] = useState(banners);\n\tconst [fadingId, setFadingId] = useState<string | null>(null);\n\tconst [dismissingId, setDismissingId] = useState<string | null>(null);\n\tconst [zIndexOverrides, setZIndexOverrides] = useState<\n\t\tRecord<string, number>\n\t>({});\n\n\t// Keep bannerGroup in sync with banners prop.\n\tuseEffect(() => {\n\t\tsetBannerGroup(banners);\n\t}, [banners]);\n\n\tconst totalBanners = bannerGroup.length;\n\n\tif (totalBanners === 0) {\n\t\treturn null;\n\t}\n\n\t// Set up classes.\n\tconst baseClass = 'pds-banner';\n\tconst multipleClass =\n\t\ttotalBanners > 1 ? `${baseClass}-group--multiple` : null;\n\tconst typeClasses = {\n\t\tcritical: `${baseClass}--critical`,\n\t\tdiscovery: `${baseClass}--discovery`,\n\t\tinfo: `${baseClass}--info`,\n\t\tneutral: `${baseClass}--neutral`,\n\t\twarning: `${baseClass}--warning`,\n\t};\n\n\t// Get type of active banner and add class to parent element.\n\tconst activeBannerType = bannerGroup[0].type;\n\tconst activeBannerTypeClass = activeBannerType\n\t\t? `${baseClass}-group--${activeBannerType}`\n\t\t: null;\n\n\tconst getZIndex = (index: number) => Z_INDEX_NOTIFICATIONS - index;\n\n\tconst getTabIndex = (index: number) => (index === 0 ? 0 : -1);\n\n\t// Navigate to the next banner.\n\tconst showNextBanner = () => {\n\t\tsetFadingId(bannerGroup[0].id);\n\n\t\tsetTimeout(() => {\n\t\t\tsetBannerGroup((prevBanners) => [\n\t\t\t\t...prevBanners.slice(1),\n\t\t\t\tprevBanners[0],\n\t\t\t]);\n\t\t\tsetFadingId(null);\n\t\t}, ANIMATION_DURATION);\n\t};\n\n\t// Navigate to the previous banner.\n\tconst showPreviousBanner = () => {\n\t\t// Temporarily bump z-index of first and last banners for the reverse animation.\n\t\tsetZIndexOverrides({\n\t\t\t[bannerGroup[0].id]: Z_INDEX_NOTIFICATIONS + 2,\n\t\t\t[bannerGroup[totalBanners - 1].id]: Z_INDEX_NOTIFICATIONS + 1,\n\t\t});\n\n\t\tsetTimeout(() => {\n\t\t\tsetFadingId(bannerGroup[0].id);\n\t\t}, REVERSE_DELAY);\n\n\t\tsetTimeout(() => {\n\t\t\tsetBannerGroup((prevBanners) => [\n\t\t\t\tprevBanners[prevBanners.length - 1],\n\t\t\t\t...prevBanners.slice(0, prevBanners.length - 1),\n\t\t\t]);\n\t\t\tsetFadingId(null);\n\t\t\tsetZIndexOverrides({});\n\t\t}, ANIMATION_DURATION);\n\t};\n\n\t// Function to render a banner.\n\tconst renderBanner = (banner: BannerItemType, index: number) => {\n\t\tconst { iconName, id, isDismissible, message, onDismiss, type } = banner;\n\n\t\tconst roleType = type === 'critical' ? 'alert' : 'status';\n\t\tconst bannerTypeLabel = `${typeLabels[type]}: `;\n\n\t\tconst handleDismiss = (e: MouseEvent<HTMLButtonElement>) => {\n\t\t\te.preventDefault();\n\t\t\tsetDismissingId(id);\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tonDismiss?.();\n\t\t\t\tsetDismissingId(null);\n\n\t\t\t\tsetBannerGroup((prevBanners) => {\n\t\t\t\t\tconst remaining = prevBanners.filter(\n\t\t\t\t\t\t(prevBanner) => prevBanner.id !== id,\n\t\t\t\t\t);\n\t\t\t\t\treturn remaining;\n\t\t\t\t});\n\t\t\t}, ANIMATION_DURATION);\n\t\t};\n\n\t\tconst zIndex = zIndexOverrides[id] ?? getZIndex(index);\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tkey={id}\n\t\t\t\tclassName={mergeClasses([\n\t\t\t\t\tbaseClass,\n\t\t\t\t\ttypeClasses[type],\n\t\t\t\t\tfadingId === id ? `${baseClass}--fading` : null,\n\t\t\t\t\tdismissingId === id ? `${baseClass}--dismissing` : null,\n\t\t\t\t])}\n\t\t\t\tid={id}\n\t\t\t\trole={roleType}\n\t\t\t\tstyle={{ zIndex }}\n\t\t\t>\n\t\t\t\t<div className={`${baseClass}__content`}>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName={`${baseClass}__icon ${baseClass}__icon--${banner.type}`}\n\t\t\t\t\t\ticonName={type === 'neutral' ? iconName : iconTypes[type]}\n\t\t\t\t\t\ticonSize='m'\n\t\t\t\t\t/>\n\t\t\t\t\t<div className={`${baseClass}__message`}>\n\t\t\t\t\t\t<span className='visually-hidden'>{bannerTypeLabel} </span>\n\t\t\t\t\t\t{message}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t{isDismissible && (\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName={`${baseClass}__dismiss-button`}\n\t\t\t\t\t\tonClick={handleDismiss}\n\t\t\t\t\t\ttabIndex={getTabIndex(index)}\n\t\t\t\t\t\ttype='button'\n\t\t\t\t\t>\n\t\t\t\t\t\t{dismissLabel}\n\t\t\t\t\t</button>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([\n\t\t\t\t`${baseClass}-group`,\n\t\t\t\tactiveBannerTypeClass,\n\t\t\t\tmultipleClass,\n\t\t\t\tclassName ?? '',\n\t\t\t])}\n\t\t\t{...props}\n\t\t>\n\t\t\t{totalBanners > 1 ? (\n\t\t\t\t<div className={`${baseClass}__navigation`}>\n\t\t\t\t\t<IconButton\n\t\t\t\t\t\tariaLabel={labelPrevious}\n\t\t\t\t\t\tclassName={`${baseClass}__nav-button ${baseClass}__nav-button--prev`}\n\t\t\t\t\t\ticonName='angleLeft'\n\t\t\t\t\t\tonClick={showPreviousBanner}\n\t\t\t\t\t\tsize='m'\n\t\t\t\t\t/>\n\n\t\t\t\t\t<IconButton\n\t\t\t\t\t\tariaLabel={labelNext}\n\t\t\t\t\t\tclassName={`${baseClass}__nav-button ${baseClass}__nav-button--next`}\n\t\t\t\t\t\ticonName='angleRight'\n\t\t\t\t\t\tonClick={showNextBanner}\n\t\t\t\t\t\tsize='m'\n\t\t\t\t\t/>\n\t\t\t\t\t{bannerGroup.map((banner, index) => renderBanner(banner, index))}\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\trenderBanner(bannerGroup[0], 0)\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","import React, { ComponentPropsWithoutRef, ReactNode } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { StatusType, StatusTypeLabels } from '@libs/types/custom-types';\n\nimport { Icon, PDSIcon } from '@components/icons/Icon/Icon';\nimport { Spinner } from '@components/loading-indicators/Spinner/Spinner';\n\nimport './inline-message.css';\n\n/**\n * The type of message to display.\n */\nexport type InlineMessageType = Exclude<StatusType, 'discovery'> | 'working';\n/**\n * Labels for each message type.\n */\ntype TypeLabels = Record<InlineMessageType, string>;\n\nexport interface InlineMessageProps\n\textends Omit<ComponentPropsWithoutRef<'div'>, 'title'> {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Message body.\n\t */\n\tmessage?: ReactNode;\n\t/**\n\t * Title text.\n\t */\n\ttitle: ReactNode;\n\t/**\n\t * Message type.\n\t */\n\ttype: InlineMessageType;\n\t/**\n\t * Message type labels. Provide translation strings if needed.\n\t */\n\ttypeLabels?: TypeLabels;\n}\n\nconst iconTypes: Record<Exclude<InlineMessageType, 'working'>, PDSIcon> = {\n\tinfo: 'circleInfo',\n\twarning: 'triangleExclamation',\n\tsuccess: 'circleCheck',\n\tcritical: 'diamondExclamation',\n};\n\n/**\n * InlineMessage UI component\n */\nexport const InlineMessage = ({\n\tclassName,\n\tmessage,\n\ttitle,\n\ttype,\n\ttypeLabels = {\n\t\t...StatusTypeLabels,\n\t\tworking: 'Working',\n\t},\n\t...props\n}: InlineMessageProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-inline-message';\n\tconst cssClasses = {\n\t\terror: `${baseClass}--error`,\n\t\tsuccess: `${baseClass}--success`,\n\t\twarning: `${baseClass}--warning`,\n\t\tinfo: `${baseClass}--info`,\n\t\tcritical: `${baseClass}--critical`,\n\t\tworking: `${baseClass}--working`,\n\t};\n\n\t// Configure role based on type.\n\tconst roleType = type === 'critical' ? 'alert' : 'status';\n\n\t// Label by type.\n\tconst messageTypeLabel = `${typeLabels[type]}: `;\n\n\t// Preprocess secondary text by prop type.\n\tconst processedMessage =\n\t\ttypeof message === 'string' ? <p>{message}</p> : message;\n\n\t// Render the output\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([baseClass, cssClasses[type], className ?? ''])}\n\t\t\trole={roleType}\n\t\t\t{...props}\n\t\t>\n\t\t\t<div className={`${baseClass}__icon ${baseClass}__icon-${type}`}>\n\t\t\t\t{type === 'working' ? (\n\t\t\t\t\t<Spinner colorType='monochromatic' size='m' />\n\t\t\t\t) : (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticonName={`${type}` in iconTypes ? iconTypes[type] : iconTypes.info}\n\t\t\t\t\t\ticonSize='m'\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<div className={`${baseClass}__text`}>\n\t\t\t\t<span className='visually-hidden'>{messageTypeLabel}</span>\n\t\t\t\t<div className={`${baseClass}__title`}>{title}</div>\n\t\t\t\t<div className={`${baseClass}__message`}>{processedMessage}</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import React, {\n\tComponentPropsWithoutRef,\n\tMouseEvent,\n\tReactNode,\n\tuseRef,\n} from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { StatusType, StatusTypeLabels } from '@libs/types/custom-types';\n\nimport { Button } from '@components/buttons/Button/Button';\nimport { CloseButton } from '@components/buttons/CloseButton/CloseButton';\nimport { Icon, PDSIcon } from '@components/icons/Icon/Icon';\n\nimport './section-message.css';\n\nexport type SectionMessageType = StatusType;\n\ntype TypeLabels = Record<SectionMessageType, string>;\n\nconst iconTypes: Record<SectionMessageType, PDSIcon> = {\n\tinfo: 'circleInfo',\n\twarning: 'triangleExclamation',\n\tsuccess: 'circleCheck',\n\tcritical: 'diamondExclamation',\n\tdiscovery: 'squareQuestion',\n};\n\nexport interface SectionMessageProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Additional class names.\n\t */\n\tclassName?: string;\n\t/**\n\t * Props for optional call to action button.\n\t * Can include any Button props except for size and variant.\n\t */\n\tctaButton?: ComponentPropsWithoutRef<typeof Button>;\n\t/**\n\t * Label for dismiss button. Provide a translation string if needed.\n\t */\n\tdismissLabel?: string;\n\t/**\n\t * Unique id of message.\n\t */\n\tid?: string;\n\t/**\n\t * Includes dismiss functionality.\n\t */\n\tisDismissible?: boolean;\n\t/**\n\t * Message text.\n\t */\n\tmessage: ReactNode;\n\t/**\n\t * Callback function when message is dismissed.\n\t */\n\tonDismiss?: (event: MouseEvent<HTMLButtonElement>, id: string) => void;\n\t/**\n\t * Message title.\n\t */\n\ttitle?: string;\n\t/**\n\t * Message type.\n\t */\n\ttype: SectionMessageType;\n\t/**\n\t * Message type labels. Provide translation strings if needed.\n\t */\n\ttypeLabels?: TypeLabels;\n}\n\n/**\n * SectionMessage UI component\n */\nexport const SectionMessage = ({\n\tclassName,\n\tctaButton,\n\tdismissLabel = 'Dismiss',\n\tid,\n\tisDismissible,\n\tmessage,\n\tonDismiss,\n\ttitle,\n\ttype = 'info',\n\ttypeLabels = StatusTypeLabels,\n\t...props\n}: SectionMessageProps) => {\n\tconst messageRef = useRef(null);\n\n\t// Set up classes.\n\tconst baseClass = 'pds-section-message';\n\tconst cssClasses = {\n\t\terror: `${baseClass}--error`,\n\t\tsuccess: `${baseClass}--success`,\n\t\twarning: `${baseClass}--warning`,\n\t\tinfo: `${baseClass}--info`,\n\t\tcritical: `${baseClass}--critical`,\n\t\tdiscovery: `${baseClass}--discovery`,\n\t\tdismissing: `${baseClass}--dismissing`,\n\t\tdismissed: `${baseClass}--dismissed`,\n\t};\n\tconst hasDismissClass = isDismissible ? `${baseClass}--hasDismiss` : null;\n\tconst hasTitleClass = title ? `${baseClass}--hasTitle` : null;\n\n\t// Configure role based on type.\n\tconst roleType = type === 'critical' ? 'alert' : 'status';\n\n\t// Label by type.\n\tconst messageTypeLabel = `${typeLabels[type]}: `;\n\n\t// Preprocess message by prop type.\n\tconst processedMessage =\n\t\ttypeof message === 'string' ? <p>{message}</p> : message;\n\n\t// Set up dismiss functionality.\n\tconst dismissAnimationEndEventHandler = () => {\n\t\tmessageRef.current.addEventListener('animationend', triggerOnDismiss, {\n\t\t\tonce: true,\n\t\t});\n\t};\n\n\tconst triggerOnDismiss = (event) => {\n\t\tonDismiss(event, id);\n\t};\n\n\tconst handleDismiss = () => {\n\t\tdismissAnimationEndEventHandler();\n\t\tmessageRef.current.classList.toggle(cssClasses.dismissing);\n\n\t\tsetTimeout(() => {\n\t\t\tmessageRef.current.classList.toggle(cssClasses.dismissing);\n\t\t\tmessageRef.current.classList.toggle(cssClasses.dismissed);\n\t\t}, 400);\n\t};\n\n\t// Render the output\n\treturn (\n\t\t<div\n\t\t\tref={messageRef}\n\t\t\tclassName={mergeClasses([\n\t\t\t\tbaseClass,\n\t\t\t\tcssClasses[type],\n\t\t\t\thasDismissClass,\n\t\t\t\thasTitleClass,\n\t\t\t\tclassName ?? '',\n\t\t\t])}\n\t\t\tid={id}\n\t\t\trole={roleType}\n\t\t\t{...props}\n\t\t>\n\t\t\t<div className={`${baseClass}__content`}>\n\t\t\t\t<div className={`${baseClass}__icon ${baseClass}__icon-${type}`}>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticonName={`${type}` in iconTypes ? iconTypes[type] : iconTypes.info}\n\t\t\t\t\t\ticonSize='m'\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<div className={`${baseClass}__text`}>\n\t\t\t\t\t<span className='visually-hidden'>{messageTypeLabel}</span>\n\t\t\t\t\t{title && <div className={`${baseClass}__title`}>{title}</div>}\n\t\t\t\t\t<div className={`${baseClass}__message`}>{processedMessage}</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t{(ctaButton || isDismissible) && (\n\t\t\t\t<div className={`${baseClass}__actions`}>\n\t\t\t\t\t{ctaButton && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t{...ctaButton}\n\t\t\t\t\t\t\tclassName={`${baseClass}__cta`}\n\t\t\t\t\t\t\tsize='s'\n\t\t\t\t\t\t\tvariant='secondary'\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{isDismissible && (\n\t\t\t\t\t\t<CloseButton\n\t\t\t\t\t\t\tariaLabel={dismissLabel}\n\t\t\t\t\t\t\tclassName={`${baseClass}__dismiss`}\n\t\t\t\t\t\t\tonClick={handleDismiss}\n\t\t\t\t\t\t\tsize='l'\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","import React, { ComponentPropsWithoutRef, ReactNode } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport { Icon } from '@components/icons/Icon/Icon';\nimport { Spinner } from '@components/loading-indicators/Spinner/Spinner';\n\nimport './toaster.css';\n\nconst iconTypes = {\n\tinfo: 'circleInfo',\n\tsuccess: 'circleCheck',\n\twarning: 'triangleExclamation',\n\tcritical: 'diamondExclamation',\n} as const;\n\ntype IconType = keyof typeof iconTypes;\n\nconst defaultTypeLabels = {\n\tinfo: 'Information',\n\tsuccess: 'Success',\n\twarning: 'Warning',\n\tcritical: 'Critical',\n\tworking: 'Working...',\n} as const;\n\n/**\n * Prop types for Toast\n */\ninterface ToastProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Toast message content.\n\t */\n\tchildren?: ReactNode;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * ID of individual toast.\n\t */\n\tid?: string;\n\t/**\n\t * Type of toast to show.\n\t */\n\ttype?: IconType | 'working';\n\t/**\n\t * Toast type labels. Provide translation strings if needed.\n\t */\n\ttypeLabels?: Partial<typeof defaultTypeLabels>;\n}\n\n/**\n * Toast UI component\n */\nexport const Toast = ({\n\tchildren,\n\tclassName,\n\tid,\n\ttype = 'info',\n\ttypeLabels = defaultTypeLabels,\n}: ToastProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-toast';\n\tconst cssClasses = {\n\t\tcritical: `${baseClass}--critical`,\n\t\tinfo: `${baseClass}--info`,\n\t\tsuccess: `${baseClass}--success`,\n\t\twarning: `${baseClass}--warning`,\n\t\tworking: `${baseClass}--working`,\n\t};\n\n\t// Label by type.\n\tconst toastTypeLabel = `${typeLabels[type]} `;\n\n\t// Render the output\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([baseClass, cssClasses[type], className])}\n\t\t\tid={id}\n\t\t>\n\t\t\t<div className={`${baseClass}__icon-container`}>\n\t\t\t\t{type === 'working' ? (\n\t\t\t\t\t<Spinner colorType='monochromatic-reverse' size='l' />\n\t\t\t\t) : (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\tclassName={`${baseClass}__icon ${baseClass}__icon--${type}`}\n\t\t\t\t\t\ticonName={iconTypes[type]}\n\t\t\t\t\t\ticonSize='m'\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<div className={`${baseClass}__message`}>\n\t\t\t\t<span className='visually-hidden'>{toastTypeLabel}</span>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import React, { ComponentPropsWithoutRef } from 'react';\n\nimport type { CloseButtonProps as ToastifyCloseButtonProps } from 'react-toastify';\nimport { Slide, ToastContainer } from 'react-toastify';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport { CloseButton } from '@components/buttons/CloseButton/CloseButton';\n\nimport 'react-toastify/dist/ReactToastify.css';\nimport './toaster.css';\n\n/**\n * Prop types for Toast\n */\ninterface ToasterProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Duration in milliseconds before the toast will auto-close.\n\t */\n\tautoCloseDuration?: number;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Maximum number of toasts that can be displayed at once.\n\t */\n\tlimit?: number;\n\t/**\n\t * Location toast objects will show in the UI.\n\t */\n\tposition?: 'bottom-right' | 'top-right';\n}\n\nconst ToastCloseButton = ({\n\tariaLabel,\n\tcloseToast,\n}: ToastifyCloseButtonProps) => (\n\t<CloseButton\n\t\tariaLabel={ariaLabel || 'Close'}\n\t\tclassName='pds-toaster__close-button'\n\t\tonClick={() => closeToast(null)}\n\t\tsize='l'\n\t/>\n);\n\n/**\n * Toaster UI component\n */\nexport const Toaster = ({\n\tautoCloseDuration = 5000,\n\tclassName,\n\tlimit = 5,\n\tposition = 'bottom-right',\n}: ToasterProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-toaster';\n\tconst toasterClasses = mergeClasses([baseClass, className]);\n\n\t// Render the output\n\treturn (\n\t\t<ToastContainer\n\t\t\tnewestOnTop\n\t\t\tautoClose={autoCloseDuration}\n\t\t\tclassName={toasterClasses}\n\t\t\tcloseButton={ToastCloseButton}\n\t\t\tdraggable={false}\n\t\t\ticon={false}\n\t\t\tlimit={limit}\n\t\t\tposition={position}\n\t\t\trole='status'\n\t\t\ttransition={Slide}\n\t\t/>\n\t);\n};\n","import React, { ReactElement, ReactNode } from 'react';\n\nimport { cssTransition, toast as toastApi, ToastOptions } from 'react-toastify';\n\nimport { Toast } from './Toast';\n\nexport enum ToastType {\n\tCritical = 'critical',\n\tInfo = 'info',\n\tSuccess = 'success',\n\tWarning = 'warning',\n\tWorking = 'working',\n}\n\nexport const useToast = (): [\n\t(\n\t\ttype: ToastType,\n\t\tmessage: string | ReactElement,\n\t\toptions?: ToastOptions,\n\t) => string | number,\n\ttypeof toastApi,\n\tReturnType<typeof cssTransition>,\n] => {\n\tconst addToast = (\n\t\ttype: ToastType,\n\t\tmessage: string | ReactElement,\n\t\toptions: ToastOptions = {},\n\t): string | number => {\n\t\tconst toastContent: ReactNode = <Toast type={type}>{message}</Toast>;\n\n\t\tlet toastOptions: ToastOptions = {\n\t\t\t...options,\n\t\t};\n\n\t\tif (type === ToastType.Critical) {\n\t\t\ttoastOptions = {\n\t\t\t\t...toastOptions,\n\t\t\t\tautoClose: false,\n\t\t\t\trole: 'alert',\n\t\t\t};\n\t\t}\n\n\t\tif (type === ToastType.Warning) {\n\t\t\ttoastOptions = {\n\t\t\t\t...toastOptions,\n\t\t\t\tautoClose: false,\n\t\t\t};\n\t\t}\n\n\t\tif (type === ToastType.Working) {\n\t\t\ttoastOptions = {\n\t\t\t\t...toastOptions,\n\t\t\t\tautoClose: false,\n\t\t\t\tcloseButton: false,\n\t\t\t\tcloseOnClick: false,\n\t\t\t};\n\t\t}\n\n\t\treturn toastApi(toastContent, toastOptions);\n\t};\n\n\tconst workingTransition = cssTransition({\n\t\tcollapse: false,\n\t\tenter: 'pds-toast--bounceInPlace',\n\t\texit: 'pds-toast--slideOut',\n\t});\n\n\treturn [addToast, toastApi, workingTransition];\n};\n","import React, {\n\tComponentPropsWithoutRef,\n\tReactNode,\n\tuseRef,\n\tuseState,\n} from 'react';\n\nimport { initiateSlots, mergeClasses } from '@libs/components/utils';\n\nimport { Icon } from '@components/icons/Icon/Icon';\n\nimport './panel-list.css';\n\n/**\n * Prop types for PanelRow\n */\nexport interface PanelRowProps extends ComponentPropsWithoutRef<'li'> {\n\t/**\n\t * Child elements to be assigned to named slots.\n\t */\n\tchildren: ReactNode;\n\t/**\n\t * Additional class names.\n\t */\n\tclassName?: string;\n\t/**\n\t * Aria-label for the expand button.\n\t */\n\texpandButtonAriaLabel?: string;\n\t/**\n\t * Whether the panel row is expandable.\n\t */\n\tisExpandable?: boolean;\n}\n\n/**\n * PanelRow UI component\n */\nexport const PanelRow = ({\n\tchildren,\n\tclassName,\n\texpandButtonAriaLabel,\n\tisExpandable = false,\n\t...props\n}: PanelRowProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-panel-row';\n\tconst [isExpanded, setIsExpanded] = useState(false);\n\tconst liRef = useRef<HTMLLIElement>(null);\n\tconst contentRef = useRef<HTMLDivElement>(null);\n\n\t// Initiate slots.\n\tconst slots = initiateSlots(children);\n\n\t// Assign content to named slots.\n\tconst itemsLeftSlot = slots['items-left'];\n\tconst itemsRightSlot = slots['items-right'];\n\tconst itemsBelowSlot = slots['items-below'];\n\n\tconst handleExpand = () => {\n\t\tconst content = contentRef.current;\n\t\tconst li = liRef.current;\n\t\tif (!content || !li) return;\n\n\t\tconst isExpanding = !isExpanded;\n\t\tsetIsExpanded(isExpanding);\n\n\t\tif (isExpanding) {\n\t\t\tObject.assign(content.style, {\n\t\t\t\tdisplay: 'block',\n\t\t\t\theight: 'auto',\n\t\t\t\topacity: '1',\n\t\t\t});\n\t\t\tli.classList.add('is-expanded');\n\t\t} else {\n\t\t\tObject.assign(content.style, {\n\t\t\t\theight: '0',\n\t\t\t\topacity: '0',\n\t\t\t\tdisplay: 'none',\n\t\t\t});\n\t\t\tli.classList.remove('is-expanded');\n\t\t}\n\t};\n\n\t// Render the output\n\treturn (\n\t\t<li\n\t\t\tclassName={mergeClasses([baseClass, className ?? ''])}\n\t\t\t{...props}\n\t\t\tref={liRef}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={mergeClasses([\n\t\t\t\t\t`${baseClass}__main`,\n\t\t\t\t\tisExpandable ? 'is-expandable' : '',\n\t\t\t\t])}\n\t\t\t>\n\t\t\t\t{itemsLeftSlot && (\n\t\t\t\t\t<div className={`${baseClass}__items ${baseClass}__items--left`}>\n\t\t\t\t\t\t{itemsLeftSlot}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{itemsRightSlot && (\n\t\t\t\t\t<div className={`${baseClass}__items ${baseClass}__items--right`}>\n\t\t\t\t\t\t{itemsRightSlot}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{isExpandable && (\n\t\t\t\t\t<button\n\t\t\t\t\t\taria-expanded={isExpanded}\n\t\t\t\t\t\taria-label={expandButtonAriaLabel}\n\t\t\t\t\t\tclassName={`${baseClass}__expand-button`}\n\t\t\t\t\t\tonClick={handleExpand}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\tclassName={`${baseClass}__expand-icon ${isExpanded ? 'rotated' : ''}`}\n\t\t\t\t\t\t\ticonName='angleDown'\n\t\t\t\t\t\t/>\n\t\t\t\t\t</button>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t{isExpandable && itemsBelowSlot && (\n\t\t\t\t<div\n\t\t\t\t\tref={contentRef}\n\t\t\t\t\tclassName={`${baseClass}__items ${baseClass}__items--below`}\n\t\t\t\t\tstyle={{ display: 'none', height: '0', opacity: '0' }}\n\t\t\t\t>\n\t\t\t\t\t<div className={`${baseClass}__items-inside`}>{itemsBelowSlot}</div>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</li>\n\t);\n};\n","import React, { ComponentPropsWithoutRef } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport './picture.css';\n\n/**\n * Prop types for Picture\n */\nexport interface PictureProps extends ComponentPropsWithoutRef<'img'> {\n\t/**\n\t * Alt text for the image. Defaults to empty string for decorative images.\n\t */\n\talt?: string;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Optional height for the image (CSS value, e.g., '100px', '50%', 'auto').\n\t * If not provided, the image will be sized responsively by its container.\n\t */\n\theight?: string | number;\n\t/**\n\t * The fallback image source (e.g., PNG or JPG)\n\t */\n\tsrcFallback: string;\n\t/**\n\t * The WebP image source (preferred for modern browsers)\n\t */\n\tsrcWebp: string;\n\t/**\n\t * Optional width for the image (CSS value, e.g., '100px', '50%', 'auto').\n\t * If not provided, the image will be sized responsively by its container.\n\t */\n\twidth?: string | number;\n}\n\n/**\n * Picture UI component\n */\nexport const Picture = ({\n\talt = '',\n\tclassName,\n\theight,\n\tsrcFallback,\n\tsrcWebp,\n\twidth,\n\t...props\n}: PictureProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-picture';\n\n\t// Render the output\n\treturn (\n\t\t<picture className={mergeClasses([baseClass, className ?? ''])}>\n\t\t\t<source srcSet={srcWebp} type='image/webp' />\n\t\t\t<img\n\t\t\t\talt={alt}\n\t\t\t\tclassName={`${baseClass}__img`}\n\t\t\t\theight={height}\n\t\t\t\tsrc={srcFallback}\n\t\t\t\twidth={width}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</picture>\n\t);\n};\n","import React, { ComponentPropsWithoutRef } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport './skiplink.css';\n\ninterface SkiplinkProps extends ComponentPropsWithoutRef<'a'> {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * The ID of the element to skip to.\n\t */\n\tdestination: string;\n\t/**\n\t * The text of the skip link.\n\t */\n\ttext: string;\n}\n\n/**\n * Skiplink UI component\n */\nexport const Skiplink = ({\n\tclassName,\n\tdestination = 'main',\n\ttext = 'Skip to main content',\n\t...props\n}: SkiplinkProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-skiplink';\n\n\t// Render the output\n\treturn (\n\t\t<a\n\t\t\tclassName={mergeClasses([baseClass, className])}\n\t\t\thref={`#${destination}`}\n\t\t\t{...props}\n\t\t>\n\t\t\t{text}\n\t\t</a>\n\t);\n};\n","import React, { ComponentPropsWithoutRef } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { StatusType } from '@libs/types/custom-types';\n\nimport { Spinner } from '@components/loading-indicators/Spinner/Spinner';\n\nimport './status-indicator.css';\n\nexport interface StatusIndicatorProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Status label text\n\t */\n\tlabel: string;\n\t/**\n\t * Sets the size\n\t */\n\tsize?: 'xs' | 's';\n\t/**\n\t * Sets status type\n\t */\n\ttype: StatusType | 'disabled' | 'neutral' | 'working';\n}\n\n/**\n * StatusIndicator UI component\n */\nexport const StatusIndicator = ({\n\tclassName,\n\tlabel = null,\n\tsize = 's',\n\ttype = 'neutral',\n\t...props\n}: StatusIndicatorProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-status-indicator';\n\tconst typeClass = `${baseClass}--${type}`;\n\tconst sizeClass = size !== 's' ? `${baseClass}--${size}` : null;\n\n\t// Render the output\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([\n\t\t\t\tbaseClass,\n\t\t\t\ttypeClass,\n\t\t\t\tsizeClass,\n\t\t\t\tclassName ?? '',\n\t\t\t])}\n\t\t\t{...props}\n\t\t>\n\t\t\t{type === 'working' ? (\n\t\t\t\t<Spinner\n\t\t\t\t\tclassName={`${baseClass}__spinner`}\n\t\t\t\t\tcolorType='monochromatic'\n\t\t\t\t\tsize='m'\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<span aria-hidden='true' className={`${baseClass}__icon`} role='img' />\n\t\t\t)}\n\n\t\t\t{label && <span className='pds-status-indicator__label'>{label}</span>}\n\t\t</div>\n\t);\n};\n","import React, { ComponentPropsWithoutRef, ReactNode } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\n\nimport './video-embed.css';\n\n/**\n * Prop types for VideoEmbed\n */\nexport interface VideoEmbedProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Video hosting platform.\n\t */\n\tplatform: 'vimeo' | 'wistia' | 'youtube';\n\t/**\n\t * Video ID to embed.\n\t */\n\tvideoId: string;\n\t/**\n\t * Video title to display. This is for the title prop on the video iframe.\n\t * If none is provided it will default to `\"[platform] video player\"`\n\t */\n\tvideoTitle?: string;\n}\n\n/**\n * VideoEmbed UI component\n */\nexport const VideoEmbed = ({\n\tclassName,\n\tplatform,\n\tvideoId,\n\tvideoTitle,\n\t...props\n}: VideoEmbedProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-video-embed';\n\n\tconst wistiaFrame = (\n\t\t<iframe\n\t\t\tallow='autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media'\n\t\t\tsrc={`https://fast.wistia.net/embed/iframe/${videoId}`}\n\t\t\ttitle={`Wistia video player${videoTitle ? `: ${videoTitle}` : ''}`}\n\t\t></iframe>\n\t);\n\n\tconst vimeoFrame = (\n\t\t<iframe\n\t\t\tallow='autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media'\n\t\t\tsrc={`https://player.vimeo.com/video/${videoId}`}\n\t\t\ttitle={`Vimeo video player${videoTitle ? `: ${videoTitle}` : ''}`}\n\t\t></iframe>\n\t);\n\n\tconst youTubeFrame = (\n\t\t<iframe\n\t\t\tallowFullScreen\n\t\t\tallow='accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share'\n\t\t\treferrerPolicy='strict-origin-when-cross-origin'\n\t\t\tsrc={`https://www.youtube.com/embed/${videoId}`}\n\t\t\ttitle={`YouTube video player${videoTitle ? `: ${videoTitle}` : ''}`}\n\t\t></iframe>\n\t);\n\n\tlet frameToRender: ReactNode;\n\tswitch (platform) {\n\t\tcase 'vimeo':\n\t\t\tframeToRender = vimeoFrame;\n\t\t\tbreak;\n\t\tcase 'wistia':\n\t\t\tframeToRender = wistiaFrame;\n\t\t\tbreak;\n\t\tcase 'youtube':\n\t\tdefault:\n\t\t\tframeToRender = youTubeFrame;\n\t\t\tbreak;\n\t}\n\n\t// Render the output\n\treturn (\n\t\t<div className={mergeClasses([baseClass, className ?? ''])} {...props}>\n\t\t\t{frameToRender}\n\t\t</div>\n\t);\n};\n","import React, { ComponentPropsWithoutRef, useRef } from 'react';\n\nimport { useMeasure } from '@reactuses/core';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { SiteStatus, SiteType, SiteTypeIcon } from '@libs/types/custom-types';\n\nimport { StatusBadge } from '@components/badges/StatusBadge/StatusBadge';\nimport { Icon } from '@components/icons/Icon/Icon';\n\nimport './site-option-display.css';\n\n/**\n * Site option item type.\n */\nexport type SiteOption = {\n\t/**\n\t * ID of the site.\n\t */\n\tid: string;\n\t/**\n\t * Machine name of the site.\n\t */\n\tmachineName?: string;\n\t/**\n\t * Name of the site.\n\t */\n\tname: string;\n\t/**\n\t * Site active status.\n\t */\n\tstatus?: SiteStatus;\n\t/**\n\t * Site type.\n\t */\n\ttype?: SiteType;\n};\n\n/** Site option display props. */\nexport interface SiteOptionDisplayProps\n\textends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Site option to display.\n\t */\n\toption: SiteOption;\n}\n\n/**\n * UI component to display site options.\n */\nexport const SiteOptionDisplay = ({\n\tclassName,\n\toption,\n\t...props\n}: SiteOptionDisplayProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-site-option-display';\n\n\tconst iconType = option.type ? SiteTypeIcon[option.type] : 'bolt';\n\n\t// Get the width of the component.\n\tconst optionRef = useRef<HTMLDivElement | null>(null);\n\tconst [rect] = useMeasure(optionRef);\n\n\t// Calculate label truncation based on the width of the component.\n\tconst labelMaxWidth = rect.width / 16 - 7.5;\n\n\t// Preprocess status badge.\n\tlet siteStatusLabel: string;\n\tlet siteStatusIndicatorType: 'success' | 'frozen' | 'critical';\n\tif (option.status === 'active') {\n\t\tsiteStatusLabel = 'Active';\n\t\tsiteStatusIndicatorType = 'success';\n\t}\n\tif (option.status === 'frozen') {\n\t\tsiteStatusLabel = 'Frozen';\n\t\tsiteStatusIndicatorType = 'frozen';\n\t}\n\tif (option.status === 'restricted') {\n\t\tsiteStatusLabel = 'Restricted';\n\t\tsiteStatusIndicatorType = 'critical';\n\t}\n\tconst statusBadge = (\n\t\t<StatusBadge\n\t\t\thasStatusIndicator\n\t\t\tlabel={siteStatusLabel}\n\t\t\tstatusType={siteStatusIndicatorType}\n\t\t/>\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tref={optionRef}\n\t\t\tclassName={mergeClasses([baseClass, className ?? ''])}\n\t\t\ttitle={option.name}\n\t\t\t{...props}\n\t\t>\n\t\t\t<div className={`${baseClass}__inner`} style={{ pointerEvents: 'none' }}>\n\t\t\t\t<div className={`${baseClass}__icon`}>\n\t\t\t\t\t<Icon iconName={iconType} />\n\t\t\t\t</div>\n\t\t\t\t<div\n\t\t\t\t\tclassName={`${baseClass}__label`}\n\t\t\t\t\tstyle={{ maxWidth: `${labelMaxWidth}rem` }}\n\t\t\t\t>\n\t\t\t\t\t{option.name}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div className={`${baseClass}__status`} style={{ pointerEvents: 'none' }}>\n\t\t\t\t{statusBadge}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import React, { ComponentPropsWithoutRef, ReactNode } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { ContainerWidth } from '@libs/types/custom-types';\n\nimport '../../utilities/container.css';\n\n/**\n * Prop types for Container\n */\ninterface ContainerProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Container content.\n\t */\n\tchildren?: ReactNode;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Width of the container.\n\t */\n\twidth?: ContainerWidth;\n}\n\n/**\n * Container UI component\n */\nexport const Container = ({\n\tchildren,\n\tclassName,\n\twidth = 'standard',\n\t...props\n}: ContainerProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-container';\n\tconst widthClass = width !== 'standard' ? `${baseClass}--${width}` : null;\n\n\t// Render the output\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([baseClass, widthClass, className ?? ''])}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n","import React, { ComponentPropsWithoutRef, ReactNode, useContext } from 'react';\n\nimport { initiateSlots, mergeClasses } from '@libs/components/utils';\n\nimport { ResponsiveContext } from '@utilities/context-providers/ResponsiveContext/ResponsiveContext';\n\nimport './docs-layout.css';\n\n/**\n * Prop types for DocsLayout\n */\ninterface DocsLayoutProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Children to render in the layout.\n\t */\n\tchildren: ReactNode;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Minimum width of the sidebar when expanded in rems.\n\t * This is also the min-width of the sidebar when it is not collapsable (hasSidebarToggle is false).\n\t */\n\tsidebarMinWidth?: number;\n\t/**\n\t * Width of the sidebar when expanded as a percentage.\n\t * This is also the width of the sidebar when it is not collapsable (hasSidebarToggle is false).\n\t */\n\tsidebarWidth?: string;\n}\n\n/**\n * DocsLayout UI component\n */\nexport const DocsLayout = ({\n\tchildren,\n\tclassName,\n\tsidebarMinWidth = 14.5,\n\tsidebarWidth = '18%',\n\t...props\n}: DocsLayoutProps) => {\n\t// Set isMobile fallback.\n\tlet isMobile = false;\n\n\t// Get responsive context.\n\tconst responsiveContext = useContext(ResponsiveContext) as {\n\t\tisMobile: boolean;\n\t};\n\tif (responsiveContext) {\n\t\tisMobile = responsiveContext.isMobile;\n\t}\n\n\t// Set up classes.\n\tconst baseClass = 'pds-docs-layout';\n\tconst mobileClass = isMobile ? `${baseClass}--isMobile` : null;\n\n\t// Sidebar styles for non-mobile.\n\tconst sidebarStyles = {\n\t\twidth: sidebarWidth,\n\t\tminWidth: `${sidebarMinWidth}rem`,\n\t};\n\n\t// Initiate slots.\n\tconst slots = initiateSlots(children);\n\n\t// Assign content to named slots.\n\tconst mainContent = slots['__unslotted'] || slots['content'];\n\tconst sidebarContent = slots['sidebar'];\n\n\t// Prepare mobile markup.\n\tconst mobileContent = (\n\t\t<>\n\t\t\t{sidebarContent && (\n\t\t\t\t<aside className={`${baseClass}__sidebar`}>{sidebarContent}</aside>\n\t\t\t)}\n\t\t\t<div className={`${baseClass}__content`}>{mainContent}</div>\n\t\t</>\n\t);\n\n\t// Prepare default markup.\n\tconst defaultContent = (\n\t\t<>\n\t\t\t{sidebarContent && (\n\t\t\t\t<aside className={`${baseClass}__sidebar`} style={sidebarStyles}>\n\t\t\t\t\t<div className={`${baseClass}__sidebar-inner`}>{sidebarContent}</div>\n\t\t\t\t</aside>\n\t\t\t)}\n\t\t\t<div className={`${baseClass}__content`}>{mainContent}</div>\n\t\t</>\n\t);\n\n\t// Render the output\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([\n\t\t\t\tbaseClass,\n\t\t\t\tmobileClass,\n\t\t\t\t'pds-container pds-container--x-wide',\n\t\t\t\tclassName ?? '',\n\t\t\t])}\n\t\t\t{...props}\n\t\t>\n\t\t\t{isMobile ? mobileContent : defaultContent}\n\t\t</div>\n\t);\n};\n","import React, { ComponentPropsWithoutRef, ReactNode, useContext } from 'react';\n\nimport { mergeClasses } from '@libs/components/utils';\nimport { GridGapOptions } from '@libs/types/layout-types';\n\nimport { ResponsiveContext } from '@utilities/context-providers/ResponsiveContext/ResponsiveContext';\nimport { useWindowWidth } from '@utilities/hooks/useWindowWidth/useWindowWidth';\n\nimport './flex-container.css';\n\ntype FlexAlignContent =\n\t| 'flex-start'\n\t| 'flex-end'\n\t| 'center'\n\t| 'space-between'\n\t| 'space-around'\n\t| 'stretch';\n\ntype FlexAlignItems =\n\t| 'flex-start'\n\t| 'flex-end'\n\t| 'center'\n\t| 'stretch'\n\t| 'baseline';\n\ntype FlexDirection = 'row' | 'row-reverse' | 'column' | 'column-reverse';\n\ntype FlexJustifyContent =\n\t| 'flex-start'\n\t| 'flex-end'\n\t| 'center'\n\t| 'space-between'\n\t| 'space-around'\n\t| 'space-evenly';\n\ntype FlexWrap = 'nowrap' | 'wrap' | 'wrap-reverse';\n\ntype FlexGapOptions = GridGapOptions | 'minimal' | 'none';\n\ninterface FlexContainerProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Aligns content when there is extra space in the cross-axis.\n\t */\n\talignContent?: FlexAlignContent;\n\t/**\n\t * Aligns items on the cross axis.\n\t */\n\talignItems?: FlexAlignItems;\n\t/**\n\t * Container content.\n\t */\n\tchildren?: ReactNode;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Establishes the main-axis, thus defining the direction flex items are placed in the flex container.\n\t */\n\tflexDirection?: FlexDirection;\n\t/**\n\t * If the items do not fit in one line (row or column, depending on flexDirection), how should they wrap.\n\t */\n\tflexWrap?: FlexWrap;\n\t/**\n\t * Gap between items.\n\t */\n\tgap?: FlexGapOptions;\n\t/**\n\t * Alignment along the main axis.\n\t */\n\tjustifyContent?: FlexJustifyContent;\n\t/**\n\t * Align content on mobile. If not set, will default to the same value as `alignContent`.\n\t */\n\tmobileAlignContent?: FlexAlignContent;\n\t/**\n\t * Align items on mobile. If not set, will default to the same value as `alignItems`.\n\t */\n\tmobileAlignItems?: FlexAlignItems;\n\t/**\n\t * Flex direction for mobile.\n\t */\n\tmobileFlexDirection?: FlexDirection;\n\t/**\n\t * Flex wrap for mobile. If not set, will default to the same value as `flexWrap`.\n\t */\n\tmobileFlexWrap?: FlexWrap;\n\t/**\n\t * Gap between items on mobile. If not set, will default to the same value as `gap`.\n\t */\n\tmobileGap?: FlexGapOptions;\n\t/**\n\t * Justify content for mobile. If not set, will default to the same value as `justifyContent`.\n\t */\n\tmobileJustifyContent?: FlexJustifyContent;\n}\n\n/**\n * Flex Container UI component\n */\nexport const FlexContainer = ({\n\talignContent = 'flex-start',\n\talignItems = 'stretch',\n\tchildren,\n\tclassName,\n\tflexDirection = 'row',\n\tflexWrap = 'nowrap',\n\tgap = 'standard',\n\tjustifyContent = 'flex-start',\n\tmobileAlignContent,\n\tmobileAlignItems,\n\tmobileFlexDirection = 'column',\n\tmobileFlexWrap,\n\tmobileGap,\n\tmobileJustifyContent,\n\t...props\n}: FlexContainerProps) => {\n\t// Get window width.\n\tconst windowWidth = useWindowWidth();\n\n\t// Set isMobile fallback.\n\tlet isMobile = windowWidth <= 640;\n\n\t// Get responsive context.\n\tconst responsiveContext = useContext(ResponsiveContext);\n\tif (responsiveContext) {\n\t\tisMobile = responsiveContext.isMobile;\n\t}\n\n\t// Set up classes.\n\tconst baseClass = 'pds-flex';\n\tconst containerClass = `${baseClass}-container`;\n\tconst mobileClass = isMobile ? `${containerClass}--mobile` : null;\n\n\tlet flexDirectionClass = null;\n\tif (isMobile) {\n\t\tflexDirectionClass = `${baseClass}-direction--${mobileFlexDirection}`;\n\t} else {\n\t\tif (flexDirection !== 'row') {\n\t\t\tflexDirectionClass = `${baseClass}-direction--${flexDirection}`;\n\t\t}\n\t}\n\n\tlet flexWrapClass = null;\n\tif (isMobile) {\n\t\t// If mobileFlexWrap is set, use that value.\n\t\tif (mobileFlexWrap) {\n\t\t\tif (mobileFlexWrap !== 'nowrap') {\n\t\t\t\tflexWrapClass = `${baseClass}-wrap--${mobileFlexWrap}`;\n\t\t\t}\n\t\t} else {\n\t\t\t// If mobileFlexWrap is not set, default to flexWrap value.\n\t\t\tif (flexWrap !== 'nowrap') {\n\t\t\t\tflexWrapClass = `${baseClass}-wrap--${flexWrap}`;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (flexWrap !== 'nowrap') {\n\t\t\tflexWrapClass = `${baseClass}-wrap--${flexWrap}`;\n\t\t}\n\t}\n\n\tlet justifyContentClass = null;\n\tif (isMobile) {\n\t\t// If mobileJustifyContent is set, use that value.\n\t\tif (mobileJustifyContent) {\n\t\t\tif (mobileJustifyContent !== 'flex-start') {\n\t\t\t\tjustifyContentClass = `${baseClass}-justify--${mobileJustifyContent}`;\n\t\t\t}\n\t\t} else {\n\t\t\t// If mobileJustifyContent is not set, default to justifyContent value.\n\t\t\tif (justifyContent !== 'flex-start') {\n\t\t\t\tjustifyContentClass = `${baseClass}-justify--${justifyContent}`;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (justifyContent !== 'flex-start') {\n\t\t\tjustifyContentClass = `${baseClass}-justify--${justifyContent}`;\n\t\t}\n\t}\n\n\tlet alignItemsClass = null;\n\tif (isMobile) {\n\t\t// If mobileAlignItems is set, use that value.\n\t\tif (mobileAlignItems) {\n\t\t\tif (mobileAlignItems !== 'stretch') {\n\t\t\t\talignItemsClass = `${baseClass}-align-items--${mobileAlignItems}`;\n\t\t\t}\n\t\t} else {\n\t\t\t// If mobileAlignItems is not set, default to alignItems value.\n\t\t\tif (alignItems !== 'stretch') {\n\t\t\t\talignItemsClass = `${baseClass}-align-items--${alignItems}`;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (alignItems !== 'stretch') {\n\t\t\talignItemsClass = `${baseClass}-align-items--${alignItems}`;\n\t\t}\n\t}\n\n\tlet alignContentClass = null;\n\tif (isMobile) {\n\t\t// If mobileAlignContent is set, use that value.\n\t\tif (mobileAlignContent) {\n\t\t\tif (mobileAlignContent !== 'flex-start') {\n\t\t\t\talignContentClass = `${baseClass}-align-content--${mobileAlignContent}`;\n\t\t\t}\n\t\t} else {\n\t\t\t// If mobileAlignContent is not set, default to alignContent value.\n\t\t\tif (alignContent !== 'flex-start') {\n\t\t\t\talignContentClass = `${baseClass}-align-content--${alignContent}`;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (alignContent !== 'flex-start') {\n\t\t\talignContentClass = `${baseClass}-align-content--${alignContent}`;\n\t\t}\n\t}\n\n\tlet gapClass = null;\n\tif (isMobile) {\n\t\t// If mobileGap is set, use that value.\n\t\tif (mobileGap) {\n\t\t\tif (mobileGap !== 'none') {\n\t\t\t\tgapClass = `${baseClass}-gap--${mobileGap}`;\n\t\t\t}\n\t\t} else {\n\t\t\t// If mobileGap is not set, default to gap value.\n\t\t\tif (gap !== 'none') {\n\t\t\t\tgapClass = `${baseClass}-gap--${gap}`;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (gap !== 'none') {\n\t\t\tgapClass = `${baseClass}-gap--${gap}`;\n\t\t}\n\t}\n\n\t// Render the output\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([\n\t\t\t\tcontainerClass,\n\t\t\t\tmobileClass,\n\t\t\t\tflexDirectionClass,\n\t\t\t\tflexWrapClass,\n\t\t\t\tjustifyContentClass,\n\t\t\t\talignItemsClass,\n\t\t\t\talignContentClass,\n\t\t\t\tgapClass,\n\t\t\t\tclassName ?? '',\n\t\t\t])}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n","import React, { ReactNode } from 'react';\n\nimport { OverlayContextProvider } from '@utilities/context-providers/OverlayContext/OverlayContext';\nimport { ResponsiveContextProvider } from '@utilities/context-providers/ResponsiveContext/ResponsiveContext';\n\n/**\n * Prop types for GlobalWrapper\n */\ninterface GlobalWrapperProps {\n\t/**\n\t * Child components\n\t */\n\tchildren: ReactNode;\n\t/**\n\t * Mobile menu will be enabled when viewport is at or below this number in pixels.\n\t */\n\tmobileMenuMaxWidth?: number;\n}\n\n/**\n * GlobalWrapper wrapper component.\n */\nexport const GlobalWrapper = ({\n\tchildren,\n\tmobileMenuMaxWidth = 640,\n}: GlobalWrapperProps) => {\n\treturn (\n\t\t<ResponsiveContextProvider mobileMenuMaxWidth={mobileMenuMaxWidth}>\n\t\t\t<OverlayContextProvider>{children}</OverlayContextProvider>\n\t\t</ResponsiveContextProvider>\n\t);\n};\n","import React, { ComponentPropsWithoutRef, ReactNode } from 'react';\n\nimport { initiateSlots, mergeClasses } from '@libs/components/utils';\nimport { GridGapOptions, VerticalAlignOptions } from '@libs/types/layout-types';\n\nimport '../../utilities/grid/grid.css';\nimport './three-item-layout.css';\n\n/**\n * Prop types for TwoItemLayout\n */\ninterface TwoItemLayoutProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Item content.\n\t */\n\tchildren?: ReactNode;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Width of gap between items.\n\t */\n\tgridGap?: GridGapOptions;\n\t/**\n\t * Vertical alignment of items.\n\t */\n\tverticalAlign?: VerticalAlignOptions;\n}\n\n/**\n * ThreeItemLayout UI component.\n */\nexport const ThreeItemLayout = ({\n\tchildren,\n\tclassName,\n\tgridGap = 'standard',\n\tverticalAlign = 'start',\n\t...props\n}: TwoItemLayoutProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-three-item-layout';\n\tconst gridGapClass =\n\t\tgridGap === 'standard' ? 'pds-grid' : `pds-grid pds-grid--${gridGap}`;\n\tconst vertAlignClass = `${baseClass}--${verticalAlign}`;\n\n\t// Initiate slots.\n\tconst slots = initiateSlots(children);\n\n\tconst columns = [\n\t\tslots['first-item'],\n\t\tslots['second-item'],\n\t\tslots['third-item'],\n\t];\n\n\t// Render the output\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([\n\t\t\t\tbaseClass,\n\t\t\t\tgridGapClass,\n\t\t\t\tvertAlignClass,\n\t\t\t\tclassName,\n\t\t\t])}\n\t\t\t{...props}\n\t\t>\n\t\t\t{columns.map((column, idx) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={idx}\n\t\t\t\t\tclassName='pds-grid-item pds-grid-item--sm-12 pds-grid-item--md-4 pds-grid-item--lg-4'\n\t\t\t\t>\n\t\t\t\t\t{column}\n\t\t\t\t</div>\n\t\t\t))}\n\t\t</div>\n\t);\n};\n","import React, { ComponentPropsWithoutRef, ReactNode } from 'react';\n\nimport { initiateSlots, mergeClasses } from '@libs/components/utils';\nimport { GridGapOptions, VerticalAlignOptions } from '@libs/types/layout-types';\n\nimport '../../utilities/grid/grid.css';\nimport './two-item-layout.css';\n\n/**\n * Prop types for TwoItemLayout\n */\ninterface TwoItemLayoutProps extends ComponentPropsWithoutRef<'div'> {\n\t/**\n\t * Item content.\n\t */\n\tchildren?: ReactNode;\n\t/**\n\t * Additional class names\n\t */\n\tclassName?: string;\n\t/**\n\t * Width of gap between items.\n\t */\n\tgridGap?: GridGapOptions;\n\t/**\n\t * Layout variant for column widths.\n\t */\n\tlayoutVariant?: 'equal' | 'one-third-start' | 'one-third-end';\n\t/**\n\t * Vertical alignment of items.\n\t */\n\tverticalAlign?: VerticalAlignOptions;\n}\n\n/**\n * TwoItemLayout UI component.\n */\nexport const TwoItemLayout = ({\n\tchildren,\n\tclassName,\n\tgridGap = 'standard',\n\tlayoutVariant = 'equal',\n\tverticalAlign = 'start',\n\t...props\n}: TwoItemLayoutProps) => {\n\t// Set up classes.\n\tconst baseClass = 'pds-two-item-layout';\n\tconst gridGapClass =\n\t\tgridGap === 'standard' ? 'pds-grid' : `pds-grid pds-grid--${gridGap}`;\n\tconst vertAlignClass = `${baseClass}--${verticalAlign}`;\n\n\t// Pre-defined class arrays based on column width.\n\tconst halfClasses = ['pds-grid-item--md-6'];\n\tconst oneThirdClasses = ['pds-grid-item--md-4', 'pds-grid-item--lg-3'];\n\tconst twoThirdsClasses = ['pds-grid-item--md-8', 'pds-grid-item--lg-9'];\n\n\t// Base classes array.\n\tconst itemBaseClasses = ['pds-grid-item', 'pds-grid-item--sm-4'];\n\n\t// Establish vars for each item's classes array.\n\tinterface ItemClasses {\n\t\tfirstItemClasses: string[];\n\t\tsecondItemClasses: string[];\n\t}\n\n\tlet firstItemClasses: ItemClasses['firstItemClasses'];\n\tlet secondItemClasses: ItemClasses['secondItemClasses'];\n\n\t// Alter items' class arrays based on layoutVariant.\n\tswitch (layoutVariant) {\n\t\tcase 'equal':\n\t\t\tfirstItemClasses = itemBaseClasses.concat(halfClasses);\n\t\t\tsecondItemClasses = itemBaseClasses.concat(halfClasses);\n\t\t\tbreak;\n\t\tcase 'one-third-start':\n\t\t\tfirstItemClasses = itemBaseClasses.concat(oneThirdClasses);\n\t\t\tsecondItemClasses = itemBaseClasses.concat(twoThirdsClasses);\n\t\t\tbreak;\n\t\tcase 'one-third-end':\n\t\t\tfirstItemClasses = itemBaseClasses.concat(twoThirdsClasses);\n\t\t\tsecondItemClasses = itemBaseClasses.concat(oneThirdClasses);\n\t}\n\n\t// Initiate slots.\n\tconst slots = initiateSlots(children);\n\n\t// Assign content to named slots for this component.\n\tconst firstItemContent = slots['first-item'];\n\tconst secondItemContent = slots['second-item'];\n\n\treturn (\n\t\t<div\n\t\t\tclassName={mergeClasses([\n\t\t\t\tbaseClass,\n\t\t\t\tgridGapClass,\n\t\t\t\tvertAlignClass,\n\t\t\t\tclassName,\n\t\t\t])}\n\t\t\t{...props}\n\t\t>\n\t\t\t<div className={firstItemClasses.join(' ').trim()}>\n\t\t\t\t{firstItemContent}\n\t\t\t</div>\n\t\t\t<div className={secondItemClasses.join(' ').trim()}>\n\t\t\t\t{secondItemContent}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import { useEffect, useState } from 'react';\n\nimport {\n\tBP_L,\n\tBP_M,\n\tBP_XL,\n} from '@pantheon-systems/pds-design-tokens/build/js/variables.global.js';\n\nexport type Breakpoint = 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n * Returns the current breakpoint based on window width.\n *\n * Breakpoints:\n * - sm: 0-767px (mobile)\n * - md: 768-1279px (tablet)\n * - lg: 1280-1439px (desktop)\n * - xl: 1440px+ (large desktop)\n *\n * @returns {Breakpoint} Current breakpoint name\n *\n * @example\n * const breakpoint = useBreakpoint();\n * const isMobile = breakpoint === 'sm';\n */\nexport const useBreakpoint = (): Breakpoint => {\n\tconst isBrowser = typeof window !== 'undefined';\n\n\tconst getBreakpoint = (width: number): Breakpoint => {\n\t\tif (width >= BP_XL) return 'xl';\n\t\tif (width >= BP_L) return 'lg';\n\t\tif (width >= BP_M) return 'md';\n\t\treturn 'sm';\n\t};\n\n\tconst [breakpoint, setBreakpoint] = useState<Breakpoint>(\n\t\tisBrowser ? getBreakpoint(window.innerWidth) : 'lg',\n\t);\n\n\tuseEffect(() => {\n\t\tif (!isBrowser) return;\n\n\t\tconst handleResize = () => {\n\t\t\tsetBreakpoint(getBreakpoint(window.innerWidth));\n\t\t};\n\n\t\t// Set initial value\n\t\thandleResize();\n\n\t\twindow.addEventListener('resize', handleResize);\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener('resize', handleResize);\n\t\t};\n\t}, []);\n\n\treturn breakpoint;\n};\n","import { useEffect, useState } from 'react';\n\n/**\n * Hook for matching CSS media queries in JavaScript.\n *\n * @param {string} query - CSS media query string (e.g., \"(min-width: 768px)\")\n * @returns {boolean} Whether the media query currently matches\n *\n * @example\n * // Using with breakpoint constants\n * import { BP_M } from '@pantheon-systems/pds-design-tokens/build/js/variables.global.js';\n * const isTabletOrLarger = useMediaQuery(`(min-width: ${BP_M}px)`);\n *\n * @example\n * // Using with custom query\n * const prefersReducedMotion = useMediaQuery('(prefers-reduced-motion: reduce)');\n * const isDarkMode = useMediaQuery('(prefers-color-scheme: dark)');\n */\nexport const useMediaQuery = (query: string): boolean => {\n\tconst isBrowser = typeof window !== 'undefined';\n\n\tconst getMatches = (mediaQuery: string): boolean => {\n\t\tif (!isBrowser) return false;\n\t\treturn window.matchMedia(mediaQuery).matches;\n\t};\n\n\tconst [matches, setMatches] = useState<boolean>(getMatches(query));\n\n\tuseEffect(() => {\n\t\tif (!isBrowser) return;\n\n\t\tconst mediaQueryList = window.matchMedia(query);\n\t\tconst handleChange = () => {\n\t\t\tsetMatches(mediaQueryList.matches);\n\t\t};\n\n\t\t// Set initial value\n\t\tsetMatches(mediaQueryList.matches);\n\n\t\t// Modern browsers\n\t\tif (mediaQueryList.addEventListener) {\n\t\t\tmediaQueryList.addEventListener('change', handleChange);\n\t\t\treturn () => mediaQueryList.removeEventListener('change', handleChange);\n\t\t} else {\n\t\t\t// Legacy browsers (Safari < 14)\n\t\t\tmediaQueryList.addListener(handleChange);\n\t\t\treturn () => mediaQueryList.removeListener(handleChange);\n\t\t}\n\t}, [query]);\n\n\treturn matches;\n};\n"],"names":["createRandomID","initiateSlots","children","slots","unslotted","Children","child","isValidElement","slotName","mergeClasses","styles","isValidImageSrc","uri","customIcons","React","iconData","iconList","Icon","className","display","iconName","iconSize","style","verticalAlign","props","baseClass","iconClasses","data","viewBox","customIcon","iconContent","pathData","d","i","gradients","uniqueIdToGradient","uniqueId","pos","hashSum","Avatar","ariaLabel","hasUserFallback","imageSrc","linkContent","size","sizeClass","hasImageClass","doesImageHaveError","setImageHaveError","useState","fallbackStyles","imageContent","staticContent","interactiveContent","cloneElement","Badge","color","label","colorClass","StatusBadge","hasStatusIndicator","statusIndicatorText","statusType","statusClass","statusClassMod","Tally","type","typeLabels","messageTypeLabel","extractText","node","BP_M","BP_L","BP_XL","SPACING_6XL","SPACING_5XL","SPACING_4XL","SPACING_3XL","SPACING_2XL","SPACING_XL","SPACING_L","SPACING_M","SPACING_S","SPACING_XS","Z_INDEX_NOTIFICATIONS","Z_INDEX_OVERLAY","TYPOGRAPHY_SIZE_XS","TYPOGRAPHY_SIZE_S","TYPOGRAPHY_SIZE_M","OverlayContext","createContext","OverlayContextProvider","overlayCount","setOverlayCount","openOverlay","useCallback","prev","closeOverlay","hasOpenOverlay","useEffect","handleKeyDown","e","contextValue","useOverlayContext","context","useContext","useKeyPress","targetKey","callback","options","altKey","ctrlKey","enabled","metaKey","shiftKey","keyPressed","setKeyPressed","modifiersMatch","event","downHandler","upHandler","Tooltip","content","customTrigger","offsetValue","preferredPlacement","triggerAccessibleText","triggerIcon","triggerIconColor","triggerIconSize","zIndex","isOpen","setIsOpen","triggerType","customTriggerClasses","iconTriggerClasses","floatingStyles","refs","useFloating","offset","flip","shift","autoUpdate","hover","useHover","focus","useFocus","dismiss","useDismiss","role","useRole","getFloatingProps","getReferenceProps","useInteractions","FloatingPortal","inputCommonClasses","getInputWidthStyle","inputWidth","stripUrlProtocol","value","RequiredIcon","InputLabel","disabled","id","isLegend","isPseudoLabel","required","showLabel","tooltipText","labelClasses","labelContent","InputMessage","forInputGroup","hasValidationMessage","message","validationMessageHasDecorators","validationStatus","InputPrefix","prefixIconVariants","variant","SearchShortcut","inputId","shortcutLabel","element","ClearButton","clearLabel","handleClearInput","CharacterCounter","currentLength","maxLength","overLimitMessage","isOverLimit","overLimitCount","overLimitClass","HiddenLabel","forwardRef","isActive","ref","useId","activeClass","spinnerSizes","labelFontSizes","labelMargins","Spinner","colorType","isInline","displayClass","spinnerSize","fontSize","labelMargin","lineWidth","spinnerStyles","labelStyles","Button","buttonType","displayType","isFullWidth","isLoading","isSplitButton","isWorking","onClick","variantClass","fullWidthClass","loadingClass","pulseClass","setIconSize","setSpinnerSize","setSpinnerColor","renderedIcon","buttonContent","buttonElement","ButtonLink","buttonBaseClass","buttonModifierClasses","linkText","linkLabel","processedLink","useClipboard","text","isCopied","setIsCopied","duration","IconButton","hasTooltip","icon2Name","animationClasses","setOffsetValue","isAnimated","icon1Ref","useRef","icon2Ref","handleAnimation","handleClick","ClipboardButton","clipboardText","_isCopied","CloseButton","StatusTypeLabels","isSeparatorItemType","item","isHeadingItemType","isLinkItemType","isNodeItemType","SitePlanLevelLabel","SiteTypeLabel","SiteTypeIcon","useWindowWidth","isBrowser","windowWidth","setWindowWidth","handleResize","ResponsiveContext","ResponsiveContextProvider","mobileMenuMaxWidth","isMobile","MenuButton","menuItems","menuPosition","testId","undefinedLabel","withinNavbar","placement","strategy","x","y","responsiveContext","isMobileNavbar","mobileClass","navbarClass","triggerID","listboxID","menuRefActual","nodeRef","focusMenu","setFocusMenu","activeDescendant","setActiveDescendant","activeMenuItemIndex","setActiveMenuItemIndex","groupIDs","menuItemIDs","focusableMenuItems","useLayoutEffect","handleClickOutside","menuElem","setActiveMenuItem","elemID","index","openMenu","closeMenu","setFocusByFirstCharacter","char","itemFound","activateMenuItem","itemID","itemIndex","activateCurrentMenuItem","currentItemID","handleTriggerClick","handleMenuItemClick","handleButtonKeyDown","key","flag","firstEnabledIndex","lastEnabledIndex","handleMenuKeydown","moveToItemID","moveToIndex","isPrintableCharacter","str","attempts","maxAttempts","renderItem","groupID","groupHeadingID","groupIDString","fallbackItemID","shouldFocus","isCritical","criticalLabel","itemLabel","itemDescription","itemContent","linkElement","LinkElement","menuItemClasses","renderMenuItemsGrouped","items","menuItemBreaks","groupedItems","breaks","breakItem","group","renderMenuItems","itemsData","haveBreaks","listboxClasses","groupedItemsData","currentGroupID","firstMenuItemIndex","initialDescendant","hasHeading","keyID","groupLabel","menuButtonDisplayType","labelText","handleExpand","button","MobileMenuItems","menuButtonMobileDisplayType","buttonVariant","mobileButtonClasses","navbarMobileMarkup","expandedClass","SegmentedButton","defaultValue","onChange","disabledClass","isControlled","hasDefaultValue","internalValue","setInternalValue","handleSelection","radio","idx","isChecked","optionClass","checkedClass","SplitButton","actionItems","moreActionsLabel","primaryAction","moreActions","primaryActionElement","platformLabels","PlatformIcon","platformType","platformClass","processedIcon","iconPair","svgData","SSOButton","platform","UtilityButton","buttonProps","hasBorder","iconPosition","isMonospace","renderIcon","renderSpinner","buildContent","extractedLabel","wrapperClasses","wrapWithTooltip","Textarea","counterMaxLength","isResizable","onBlur","onFocus","placeholder","readonly","rows","textareaProps","translationStrings","validationMessage","inputWidthStyle","resizableClass","requiredClass","errorClass","successClass","readonlyClass","processedMessage","hasValue","handleChange","handleBlur","UrlPrefix","TextInput","autoComplete","hasClearButton","hasSearchShortcut","hasUrlPrefix","inputProps","onClear","searchIcon","showVisibilityToggle","urlPrefixClass","prefix","visibility","setVisibility","processedValue","newEvent","handleClear","handleShowVisibilityToggle","previous","processedType","isActiveItem","isActiveTrail","ButtonNav","navRef","nav","focusableElements","focusedElement","currentIndex","nextIndex","prevIndex","ButtonMenuItem","itemClass","defaultMarkup","mobileMenuItems","mobileMarkup","iconTypes","ANIMATION_DURATION","REVERSE_DELAY","Banner","banners","dismissLabel","labelNext","labelPrevious","bannerGroup","setBannerGroup","fadingId","setFadingId","dismissingId","setDismissingId","zIndexOverrides","setZIndexOverrides","totalBanners","multipleClass","typeClasses","activeBannerType","activeBannerTypeClass","getZIndex","getTabIndex","showNextBanner","prevBanners","showPreviousBanner","renderBanner","banner","isDismissible","onDismiss","roleType","bannerTypeLabel","handleDismiss","prevBanner","InlineMessage","title","cssClasses","SectionMessage","ctaButton","messageRef","hasDismissClass","hasTitleClass","dismissAnimationEndEventHandler","triggerOnDismiss","defaultTypeLabels","Toast","toastTypeLabel","ToastCloseButton","closeToast","Toaster","autoCloseDuration","limit","position","toasterClasses","ToastContainer","Slide","ToastType","useToast","addToast","toastContent","toastOptions","toastApi","workingTransition","cssTransition","PanelRow","expandButtonAriaLabel","isExpandable","isExpanded","setIsExpanded","liRef","contentRef","itemsLeftSlot","itemsRightSlot","itemsBelowSlot","li","isExpanding","Picture","alt","height","srcFallback","srcWebp","width","Skiplink","destination","StatusIndicator","typeClass","VideoEmbed","videoId","videoTitle","wistiaFrame","vimeoFrame","youTubeFrame","frameToRender","SiteOptionDisplay","option","iconType","optionRef","rect","useMeasure","labelMaxWidth","siteStatusLabel","siteStatusIndicatorType","statusBadge","Container","widthClass","DocsLayout","sidebarMinWidth","sidebarWidth","sidebarStyles","mainContent","sidebarContent","mobileContent","defaultContent","FlexContainer","alignContent","alignItems","flexDirection","flexWrap","gap","justifyContent","mobileAlignContent","mobileAlignItems","mobileFlexDirection","mobileFlexWrap","mobileGap","mobileJustifyContent","containerClass","flexDirectionClass","flexWrapClass","justifyContentClass","alignItemsClass","alignContentClass","gapClass","GlobalWrapper","ThreeItemLayout","gridGap","gridGapClass","vertAlignClass","columns","column","TwoItemLayout","layoutVariant","halfClasses","oneThirdClasses","twoThirdsClasses","itemBaseClasses","firstItemClasses","secondItemClasses","firstItemContent","secondItemContent","useBreakpoint","getBreakpoint","breakpoint","setBreakpoint","useMediaQuery","query","getMatches","mediaQuery","matches","setMatches","mediaQueryList"],"mappings":"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,IACT,YAAY,CAAC,QAAQ;AAAA,IACrB,QAAQ;AAAA,IACR,aACC;AAAA,IACD,OAAO;AAAA,EAAA;AAET,GAEaC,KAAW;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,E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","x_google_ignoreList":[9,10]}