@overmap-ai/blocks 0.0.1-alpha.43 → 0.0.1-alpha.44

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.
@@ -9,7 +9,7 @@ export type TextProps = Omit<RadixTextProps, keyof MarginProps | "ref" | "asChil
9
9
  noWrap?: boolean;
10
10
  severity?: Severity;
11
11
  /** @default span */
12
- as: RadixTextProps["as"];
12
+ as?: RadixTextProps["as"];
13
13
  /** @default 3 */
14
14
  size?: RadixTextProps["size"];
15
15
  };
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.js","sources":["../node_modules/classnames/index.js","../src/utils.ts","../src/Badge/Badge.tsx","../src/Buttons/constants.ts","../src/constants.ts","../src/ButtonGroup/context.ts","../src/Buttons/Button.tsx","../src/Buttons/IconButton.tsx","../src/ButtonGroup/ButtonGroup.tsx","../src/Dialogs/Dialog/DialogContent.tsx","../src/Dialogs/Dialog/Dialog.tsx","../src/Dialogs/AlertDialog/AlertDialogContent.tsx","../src/Dialogs/AlertDialog/AlertDialog.tsx","../src/Dialogs/AlertDialog/context.tsx","../src/Dialogs/AlertDialog/hooks.ts","../src/Select/Select.tsx","../src/Input/Input.tsx","../src/Popover/Popover.tsx","../src/TextArea/TextArea.tsx","../src/ToggleGroup/ToggleGroup.tsx","../src/Toast/Toast.tsx","../src/Toast/ToastContext.tsx","../src/Text/Text.tsx","../src/Theme/DefaultTheme.tsx"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import { Responsive, ThemeOptions, useThemeContext } from \"@radix-ui/themes\"\nimport { useMemo } from \"react\"\nimport { Severity } from \"./typings\"\n\n// useResponsiveMapping is a helper function used to map the keys of a Radix Responsive type that can be understood\n// by a Radix component or primitive. The point of this is to leverage our own custom prop names and values while still\n// using Radix's built in Responsiveness functionality.\n/**\n * Returns an object with mapped key values or a single mapped value\n * @param value an object or string\n * @param mapping a Record mapping the object values of param value\n */\nexport function useResponsiveMapping<T extends string, K>(\n\tvalue: Responsive<T> | undefined,\n\tmapping: Record<T, K>,\n): Responsive<K> | undefined {\n\treturn useMemo(() => {\n\t\tif (value === undefined) return undefined\n\t\tif (typeof value === \"object\") {\n\t\t\tif (!(\"initial\" in value)) {\n\t\t\t\t// Responsive objects require an 'initial' property to be set that acts as a default\n\t\t\t\tthrow new Error(\"Expected initial property to be set in Responsive object\")\n\t\t\t}\n\t\t\treturn Object.fromEntries(Object.entries(value).map(([breakpoint, value]) => [breakpoint, mapping[value]]))\n\t\t} else {\n\t\t\treturn mapping[value]\n\t\t}\n\t}, [mapping, value])\n}\n\nconst nonThemeSeverityMapping = {\n\tsuccess: \"green\",\n\tdanger: \"red\",\n\tinfo: \"gray\",\n} as const\n\nexport type AccentColor = ThemeOptions[\"accentColor\"]\n\n/** Performs theme-sensitive mapping of a severity to radix color */\nexport const useSeverityColor = (severity?: Severity): AccentColor | undefined => {\n\tconst theme = useThemeContext()\n\tif (!severity) return undefined\n\tif (severity === \"primary\") return theme.accentColor\n\n\treturn nonThemeSeverityMapping[severity]\n}\n","import { Badge as RadixBadge } from \"@radix-ui/themes\"\nimport { FC, forwardRef, memo, Ref } from \"react\"\nimport { BadgeProps } from \"./typings.ts\"\nimport classNames from \"classnames\"\nimport { useSeverityColor } from \"../utils.ts\"\n\nconst _Badge = forwardRef(function Badge(\n\t{ className, severity = \"primary\", color, children, ...rest }: BadgeProps,\n\tref: Ref<HTMLSpanElement>,\n) {\n\tconst severityColor = useSeverityColor(severity)\n\n\treturn (\n\t\t<RadixBadge\n\t\t\tclassName={classNames(\"overmap-badge\", className)}\n\t\t\tref={ref}\n\t\t\tcolor={color ? color : severityColor}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</RadixBadge>\n\t)\n})\n\n/** The Badge Component is a user interface element that provides visual feedback, typically displaying a small amount\n * of information. It is commonly used to indicate counts, statuses, or labels in a concise and visually appealing\n * manner. This Badge components wraps the Badge component from Radix-ui found here https://www.radix-ui.com/themes/docs/components/badge */\nexport const Badge: FC<BadgeProps> = memo(_Badge)\n","import { ButtonHoverEffect } from \"./typings.ts\"\nimport styles from \"./Button.module.sass\"\n\nexport const hoverEffectClassNameMapping: Record<ButtonHoverEffect, string | undefined> = {\n\tspin90Clockwise: styles.hoverSpin90Clockwise,\n\tspin180Clockwise: styles.hoverSpin180Clockwise,\n\tspin360Clockwise: styles.hoverSpin360Clockwise,\n}\n","import { Size } from \"./typings.ts\"\n\n// Mappings\nexport const SizeMapping: Record<Size, \"1\" | \"2\" | \"3\"> = {\n\tsmall: \"1\",\n\tmedium: \"2\",\n\tlarge: \"3\",\n}\n","import { ButtonProps } from \"../Buttons/typings\"\nimport { createContext, useContext } from \"react\"\n\nexport type ButtonContextType = Pick<ButtonProps, \"variant\" | \"size\" | \"severity\" | \"hoverEffects\">\n\nexport const ButtonGroupContext = createContext<ButtonContextType>({})\n\nexport const useButtonGroupContext = () => useContext(ButtonGroupContext)\n","import React, { FC, forwardRef } from \"react\"\nimport { ButtonProps } from \"./typings.ts\"\nimport styles from \"./Button.module.sass\"\nimport classNames from \"classnames\"\nimport { Button as RadixButton } from \"@radix-ui/themes\"\nimport { hoverEffectClassNameMapping } from \"./constants.ts\"\nimport { useResponsiveMapping, useSeverityColor } from \"../utils.ts\"\nimport { SizeMapping } from \"../constants.ts\"\nimport { useButtonGroupContext } from \"../ButtonGroup/context.ts\"\n\nconst _Button = forwardRef(function Button(props: ButtonProps, ref: React.Ref<HTMLButtonElement>) {\n\tconst buttonGroupContext = useButtonGroupContext()\n\tconst {\n\t\tclassName,\n\t\tfluid,\n\t\tsize = buttonGroupContext.size ?? \"medium\",\n\t\tseverity = buttonGroupContext.severity ?? \"primary\",\n\t\thoverEffects = buttonGroupContext.hoverEffects ?? [],\n\t\tvariant = buttonGroupContext.variant,\n\t\t...rest\n\t} = props\n\tconst color = useSeverityColor(severity)\n\tconst hoverEffectClasses = hoverEffects.map((hoverEffect) => {\n\t\treturn hoverEffectClassNameMapping[hoverEffect]\n\t})\n\n\treturn (\n\t\t<RadixButton\n\t\t\tref={ref}\n\t\t\ttype=\"button\"\n\t\t\tclassName={classNames(className, hoverEffectClasses, {\n\t\t\t\t[styles.fluid!]: fluid,\n\t\t\t})}\n\t\t\tcolor={color}\n\t\t\tsize={useResponsiveMapping(size, SizeMapping)}\n\t\t\tvariant={variant}\n\t\t\t{...rest}\n\t\t/>\n\t)\n})\n\n// using FC so storybook correctly displays the component props\nconst Button: FC<ButtonProps> = React.memo(_Button)\n\nexport default Button\n","import React, { FC, forwardRef } from \"react\"\nimport { ButtonProps } from \"./typings.ts\"\nimport classNames from \"classnames\"\nimport { IconButton as RadixIconButton } from \"@radix-ui/themes\"\nimport { hoverEffectClassNameMapping } from \"./constants.ts\"\nimport { useResponsiveMapping, useSeverityColor } from \"../utils.ts\"\nimport { SizeMapping } from \"../constants.ts\"\nimport { useButtonGroupContext } from \"../ButtonGroup/context.ts\"\n\nimport styles from \"./Button.module.sass\"\n\ninterface IconButtonProps extends Omit<ButtonProps, \"fluid\"> {\n\t\"aria-label\": string\n}\n\nconst _Button = forwardRef(function Button(props: IconButtonProps, ref: React.Ref<HTMLButtonElement>) {\n\tconst buttonGroupContext = useButtonGroupContext()\n\tconst {\n\t\tclassName,\n\t\tchildren,\n\t\tsize = buttonGroupContext.size ?? \"medium\",\n\t\tseverity = buttonGroupContext.severity ?? \"primary\",\n\t\thoverEffects = buttonGroupContext.hoverEffects ?? [],\n\t\tvariant = buttonGroupContext.variant,\n\t\t...rest\n\t} = props\n\tconst color = useSeverityColor(severity)\n\tconst hoverEffectClasses =\n\t\thoverEffects?.map((hoverEffect) => {\n\t\t\treturn hoverEffectClassNameMapping[hoverEffect]\n\t\t}) || []\n\n\treturn (\n\t\t<RadixIconButton\n\t\t\tclassName={classNames(className, hoverEffectClasses, styles.default)}\n\t\t\tref={ref}\n\t\t\tcolor={color}\n\t\t\tsize={useResponsiveMapping(size, SizeMapping)}\n\t\t\tvariant={variant}\n\t\t\ttype=\"button\"\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</RadixIconButton>\n\t)\n})\n\n// using FC so storybook correctly displays the component props\n/** The `IconButton` is a `Button` variant specifically designed for single icons. */\nconst IconButton: FC<IconButtonProps> = React.memo(_Button)\n\nexport default IconButton\n","import { FC, forwardRef, memo, Ref } from \"react\"\nimport { Flex } from \"@radix-ui/themes\"\nimport classNames from \"classnames\"\nimport { ButtonGroupProps } from \"./typings.ts\"\n\nimport styles from \"./ButtonGroup.module.sass\"\nimport { Size } from \"../typings.ts\"\nimport { useResponsiveMapping } from \"../utils.ts\"\nimport { ButtonGroupContext } from \"./context.ts\"\n\nconst GhostVariantSizeToGapMapping = {\n\trow: { small: \"4\", medium: \"4\", large: \"5\" },\n\tcolumn: { small: \"2\", medium: \"3\", large: \"4\" },\n} as const satisfies Record<\"row\" | \"column\", Record<Size, ButtonGroupProps[\"gap\"]>>\n\nconst _ButtonGroup = forwardRef(function ButtonGroup(\n\t{\n\t\tclassName,\n\t\tmerged = false,\n\t\tchildren,\n\t\tgap,\n\t\tdirection = \"row\",\n\t\tseverity,\n\t\tsize,\n\t\tvariant,\n\t\thoverEffects,\n\t\t...rest\n\t}: ButtonGroupProps,\n\tref: Ref<HTMLDivElement>,\n) {\n\tconst ghostSize = useResponsiveMapping(size, GhostVariantSizeToGapMapping[direction])\n\t// without a larger gap, ghost buttons overlap\n\tconst mergedAutoGap = variant === \"ghost\" ? ghostSize : \"0\"\n\treturn (\n\t\t<Flex\n\t\t\tclassName={classNames(\"overmap-button-group\", className, {\n\t\t\t\t[styles.merged!]: merged,\n\t\t\t})}\n\t\t\tref={ref}\n\t\t\tgap={merged ? gap ?? mergedAutoGap : gap ?? \"2\"}\n\t\t\tdirection={direction}\n\t\t\tdata-direction={direction}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<ButtonGroupContext.Provider value={{ size, severity, variant, hoverEffects }}>\n\t\t\t\t{children}\n\t\t\t</ButtonGroupContext.Provider>\n\t\t</Flex>\n\t)\n})\n\n/** The ButtonGroup Component is a user interface element that groups multiple buttons together for improved user\n * interaction and visual clarity. It is commonly used to present related actions or options in a compact and organized\n * manner. The ButtonGroup supports all props of the RadixUI Flex layout component besides MarginProps,\n * further documentation for the Flex layout component can be found here https://www.radix-ui.com/themes/docs/components/flex */\nexport const ButtonGroup: FC<ButtonGroupProps> = memo(_ButtonGroup)\n","import { memo } from \"react\"\nimport { Dialog, Flex, IconButton } from \"@radix-ui/themes\"\nimport { Cross1Icon } from \"@radix-ui/react-icons\"\nimport { DialogContentProps } from \"./typings\"\n\nexport const DialogContent = memo(function DialogContent(props: DialogContentProps) {\n\tconst { title, description, content, closeDialog } = props\n\treturn (\n\t\t<Flex direction=\"column\" gap=\"2\">\n\t\t\t<Flex direction=\"column\" gap=\"1\">\n\t\t\t\t<Flex justify=\"between\">\n\t\t\t\t\t<Dialog.Title mb=\"0\">{title}</Dialog.Title>\n\t\t\t\t\t<Dialog.Close>\n\t\t\t\t\t\t<IconButton color=\"gray\" variant=\"ghost\" aria-label=\"Close\">\n\t\t\t\t\t\t\t<Cross1Icon />\n\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t</Dialog.Close>\n\t\t\t\t</Flex>\n\t\t\t\t<Dialog.Description>{description}</Dialog.Description>\n\t\t\t</Flex>\n\t\t\t{content(closeDialog)}\n\t\t</Flex>\n\t)\n})\n","import { memo, useState, useCallback } from \"react\"\nimport { Dialog as RadixDialog } from \"@radix-ui/themes\"\nimport { DialogContent } from \"./DialogContent\"\nimport { CloseDialogWithOptions, DialogProps } from \"./typings\"\n\n/**\n * Display or collect information in a modal. Unlike the `AlertDialog`, the `Dialog`'s can be nested\n * and close when clicking outside of the dialog content.\n */\nexport const Dialog = memo(function Dialog(props: DialogProps) {\n\tconst { children, size, onOpen, onCloseInterrupt, ...contentProps } = props\n\tconst [open, setOpen] = useState(false)\n\n\tconst handleOpenChange = useCallback(\n\t\t(next: boolean) => {\n\t\t\tif (next && onOpen) {\n\t\t\t\tonOpen()\n\t\t\t} else if (!next && onCloseInterrupt) {\n\t\t\t\t// closes the dialog, bypassing the checks in `handleOpenChange`\n\t\t\t\tconst confirmClose = () => setOpen(false)\n\n\t\t\t\t// if onCloseInterrupt is passed, bypass the standard close behavior and require\n\t\t\t\t// the passed `confirmClose` to close the dialog\n\t\t\t\treturn onCloseInterrupt(confirmClose)\n\t\t\t}\n\n\t\t\tsetOpen(next)\n\t\t},\n\t\t[onOpen, onCloseInterrupt],\n\t)\n\n\tconst closeDialog = useCallback<CloseDialogWithOptions>(\n\t\t(options) => {\n\t\t\tif (options?.force) {\n\t\t\t\t// bypass the checks in the `handleOpenChange` function\n\t\t\t\treturn setOpen(false)\n\t\t\t}\n\n\t\t\thandleOpenChange(false)\n\t\t},\n\t\t[handleOpenChange],\n\t)\n\n\treturn (\n\t\t<RadixDialog.Root open={open} onOpenChange={handleOpenChange}>\n\t\t\t<RadixDialog.Content size={size}>\n\t\t\t\t<DialogContent closeDialog={closeDialog} {...contentProps} />\n\t\t\t</RadixDialog.Content>\n\n\t\t\t{children(RadixDialog.Trigger)}\n\t\t</RadixDialog.Root>\n\t)\n})\n","import { AlertDialog, Flex } from \"@radix-ui/themes\"\nimport { AlertDialogStandardContent } from \"./typings\"\nimport { Button } from \"../../Buttons\"\n\n// remove the margin-bottom from the title so that Flex works as expected\nexport const Title: typeof AlertDialog.Title = ((props) => (\n\t<AlertDialog.Title mb=\"0\" {...props} />\n)) as typeof AlertDialog.Title\n\nexport const AlertDialogContent = (props: AlertDialogStandardContent) => {\n\tconst { title, description, actionText = \"Confirm\", cancelText = \"Cancel\", onAction, onCancel, severity } = props\n\treturn (\n\t\t<Flex direction=\"column\" gap=\"2\">\n\t\t\t<Flex direction=\"column\" gap=\"1\">\n\t\t\t\t<Title>{title}</Title>\n\t\t\t\t<AlertDialog.Description>{description}</AlertDialog.Description>\n\t\t\t</Flex>\n\n\t\t\t<Flex gap=\"3\" mt=\"4\" justify=\"end\">\n\t\t\t\t<AlertDialog.Cancel>\n\t\t\t\t\t<Button variant=\"soft\" severity=\"info\" onClick={onCancel}>\n\t\t\t\t\t\t{cancelText}\n\t\t\t\t\t</Button>\n\t\t\t\t</AlertDialog.Cancel>\n\t\t\t\t<AlertDialog.Action>\n\t\t\t\t\t<Button variant=\"solid\" severity={severity} onClick={onAction}>\n\t\t\t\t\t\t{actionText}\n\t\t\t\t\t</Button>\n\t\t\t\t</AlertDialog.Action>\n\t\t\t</Flex>\n\t\t</Flex>\n\t)\n}\n","import { memo, useMemo } from \"react\"\nimport { AlertDialog as RadixAlertDialog } from \"@radix-ui/themes\"\nimport { AlertDialogContentHelpers, AlertDialogProps } from \"./typings\"\nimport { AlertDialogContent, Title } from \"./AlertDialogContent\"\n\n/**\n * The AlertDialog is used to confirm an action or prompt the user for a decision.\n * Unlike the Dialog, the AlertDialog is not dismissible by clicking outside of the dialog, nor can it be nested.\n *\n * To use, place the `AlertDialogProvider` at the root of your app and use the `useAlertDialog` hook to open the dialog.\n *\n * To set the content of the dialog, use the `content` prop or pass values for the `title`, `description`, and `onAction` props.\n */\nexport const AlertDialog = memo(function AlertDialog(props: AlertDialogProps) {\n\tconst { open, setOpen, children, ...contentProps } = props\n\n\tconst helpers: AlertDialogContentHelpers = useMemo(() => {\n\t\treturn {\n\t\t\tclose: () => setOpen(false),\n\t\t\tTitle,\n\t\t\tDescription: RadixAlertDialog.Description,\n\t\t}\n\t}, [setOpen])\n\n\treturn (\n\t\t<RadixAlertDialog.Root open={open} onOpenChange={setOpen}>\n\t\t\t<RadixAlertDialog.Content>\n\t\t\t\t{\"content\" in contentProps ? contentProps.content(helpers) : <AlertDialogContent {...contentProps} />}\n\t\t\t</RadixAlertDialog.Content>\n\t\t\t{children}\n\t\t</RadixAlertDialog.Root>\n\t)\n})\n","import { createContext, memo, useState, useCallback } from \"react\"\nimport { AlertDialogContextType, AlertDialogOptions } from \"./typings\"\nimport { AlertDialog } from \"./AlertDialog\"\n\ninterface AlertDialogProviderProps {\n\tchildren: React.ReactNode\n}\n\nexport const AlertDialogContent = createContext<AlertDialogContextType>(() => {\n\tthrow new Error(\"No AlertDialogProvider found\")\n})\n\nconst initialState: AlertDialogOptions = {\n\tcontent: () => null,\n}\n\nexport const AlertDialogProvider = memo(function AlertDialogProvider({ children }: AlertDialogProviderProps) {\n\tconst [open, setOpen] = useState(false)\n\tconst [state, setState] = useState<AlertDialogOptions>(initialState)\n\n\tconst openDialog = useCallback<AlertDialogContextType>(\n\t\t(options) => {\n\t\t\tif (open) throw new Error(\"AlertDialog is already open\")\n\n\t\t\tsetState(options)\n\t\t\tsetOpen(true)\n\t\t},\n\t\t[open],\n\t)\n\n\treturn (\n\t\t<AlertDialog open={open} setOpen={setOpen} {...state}>\n\t\t\t<AlertDialogContent.Provider value={openDialog}>{children}</AlertDialogContent.Provider>\n\t\t</AlertDialog>\n\t)\n})\n","import { useContext } from \"react\"\nimport { AlertDialogContent } from \"./context\"\n\nexport const useAlertDialog = () => {\n\treturn useContext(AlertDialogContent)\n}\n","import React, { FC, forwardRef } from \"react\"\nimport { Select as RadixSelect } from \"@radix-ui/themes\"\nimport classNames from \"classnames\"\nimport { useResponsiveMapping, useSeverityColor } from \"../utils.ts\"\nimport { SizeMapping } from \"../constants.ts\"\nimport { SelectItemProps, SelectProps } from \"./typings.ts\"\n\nimport styles from \"./Select.module.sass\"\n\nconst _Select = forwardRef(function Select(\n\t{\n\t\tclassName,\n\t\tfluid,\n\t\tsize = \"medium\",\n\t\tvariant = \"surface\",\n\t\tseverity = \"primary\",\n\t\tplaceholder = \"Select\",\n\t\tside,\n\t\titems = [],\n\t\tvalue,\n\t\tid,\n\t\t...rest\n\t}: SelectProps,\n\tref: React.Ref<HTMLButtonElement>,\n) {\n\tconst mappedSize = useResponsiveMapping(size, SizeMapping)\n\tconst color = useSeverityColor(severity)\n\n\t// TODO: extend functionality to support grouping of items\n\t// TODO: remove key change based on value once placeholder issue it fixed in radix-ui/themes\n\treturn (\n\t\t<RadixSelect.Root size={mappedSize} {...rest} key={value === undefined ? 1 : 0} value={value}>\n\t\t\t<RadixSelect.Trigger\n\t\t\t\tclassName={classNames(className, {\n\t\t\t\t\t[styles.fluid!]: fluid,\n\t\t\t\t})}\n\t\t\t\tid={id}\n\t\t\t\tref={ref}\n\t\t\t\tvariant={variant}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tcolor={color}\n\t\t\t/>\n\t\t\t<RadixSelect.Content\n\t\t\t\tside={side}\n\t\t\t\tposition=\"popper\"\n\t\t\t\tvariant={variant !== \"surface\" ? \"soft\" : \"solid\"}\n\t\t\t\tcolor={color}\n\t\t\t>\n\t\t\t\t{items.map(({ label, value, ...rest }: SelectItemProps) => (\n\t\t\t\t\t<RadixSelect.Item key={value} value={value} {...rest}>\n\t\t\t\t\t\t{label}\n\t\t\t\t\t</RadixSelect.Item>\n\t\t\t\t))}\n\t\t\t</RadixSelect.Content>\n\t\t</RadixSelect.Root>\n\t)\n})\nexport const Select: FC<SelectProps> = React.memo(_Select)\n","import React, { FC, forwardRef } from \"react\"\nimport { Text, TextField as RadixTextField } from \"@radix-ui/themes\"\nimport classNames from \"classnames\"\nimport { useResponsiveMapping, useSeverityColor } from \"../utils.ts\"\nimport { SizeMapping } from \"../constants.ts\"\nimport { InputProps } from \"./typings.ts\"\n\nimport styles from \"./Input.module.sass\"\n\nconst _Input = forwardRef(function Input(\n\t{\n\t\tclassName,\n\t\tleftIcon,\n\t\trightIcon,\n\t\tsize = \"medium\",\n\t\tshowInputLength,\n\t\tvalue,\n\t\tvariant,\n\t\tseverity = \"primary\",\n\t\t...rest\n\t}: InputProps,\n\tref: React.Ref<HTMLInputElement>,\n) {\n\tconst computedSize = useResponsiveMapping(size, SizeMapping)\n\n\tconst color = useSeverityColor(severity)\n\n\tconst displayInputLength = showInputLength || (showInputLength === undefined && rest.maxLength !== undefined)\n\tconst valueAsString = value !== undefined ? value.toString() : undefined\n\n\treturn (\n\t\t<RadixTextField.Root\n\t\t\tclassName={classNames({\n\t\t\t\t[styles.accommodateCharCount!]: displayInputLength,\n\t\t\t})}\n\t\t\tsize={computedSize}\n\t\t\tvariant={variant}\n\t\t\tcolor={color}\n\t\t>\n\t\t\t<RadixTextField.Slot>{leftIcon}</RadixTextField.Slot>\n\t\t\t<RadixTextField.Input\n\t\t\t\tclassName={classNames(styles.default, className, {\n\t\t\t\t\t[styles.noLeftIcon!]: !leftIcon,\n\t\t\t\t\t[styles.noRightIcon!]: !rightIcon,\n\t\t\t\t})}\n\t\t\t\tref={ref}\n\t\t\t\tsize={computedSize}\n\t\t\t\tvariant={variant}\n\t\t\t\tcolor={color}\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t\t<RadixTextField.Slot>{rightIcon}</RadixTextField.Slot>\n\t\t\t{displayInputLength && (\n\t\t\t\t<Text as=\"p\" className={styles.charCount} size=\"1\" color=\"gray\">\n\t\t\t\t\t{rest.maxLength !== undefined\n\t\t\t\t\t\t? `${valueAsString?.length}/${rest.maxLength}`\n\t\t\t\t\t\t: `${valueAsString?.length}`}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t</RadixTextField.Root>\n\t)\n})\nexport const Input: FC<InputProps> = React.memo(_Input)\n","import React, { forwardRef, FC } from \"react\"\nimport { Popover as RadixPopover } from \"@radix-ui/themes\"\nimport { PopoverProps } from \"./typings.ts\"\n\nconst _Popover = forwardRef(function Popover(\n\t{ defaultOpen = false, modal = false, content, children, ...rest }: PopoverProps,\n\tref: React.Ref<HTMLDivElement>,\n) {\n\treturn (\n\t\t<RadixPopover.Root defaultOpen={defaultOpen} modal={modal}>\n\t\t\t<RadixPopover.Trigger>{children}</RadixPopover.Trigger>\n\t\t\t<RadixPopover.Content ref={ref} {...rest}>\n\t\t\t\t{content(RadixPopover.Close)}\n\t\t\t</RadixPopover.Content>\n\t\t</RadixPopover.Root>\n\t)\n})\nexport const Popover: FC<PopoverProps> = React.memo(_Popover)\n","import { FC, forwardRef, memo, Ref, useMemo } from \"react\"\nimport { Text, TextArea as RadixTextArea } from \"@radix-ui/themes\"\nimport classNames from \"classnames\"\nimport { TextAreaProps } from \"./typings.ts\"\n\nimport styles from \"./Textarea.module.sass\"\nimport { useSeverityColor } from \"../utils.ts\"\n\nconst _TextArea = forwardRef(function TextArea(\n\t{ className, showInputLength, inputLengthTemplate, value, severity = \"primary\", resize, ...rest }: TextAreaProps,\n\tref: Ref<HTMLTextAreaElement>,\n) {\n\tconst severityColor = useSeverityColor(severity)\n\tconst infoColor = useSeverityColor(\"info\")\n\n\tconst displayInputLength =\n\t\tshowInputLength ||\n\t\t(showInputLength === undefined && (rest.maxLength !== undefined || rest.minLength !== undefined))\n\tconst valueAsString = value !== undefined ? value.toString() : \"\"\n\n\tconst displayInputLengthValue = useMemo(() => {\n\t\tif (inputLengthTemplate) {\n\t\t\tlet template = inputLengthTemplate.replace(\"{current}\", valueAsString.length.toString())\n\t\t\tif (rest.minLength !== undefined) {\n\t\t\t\ttemplate = template.replace(\"{min}\", rest.minLength.toString())\n\t\t\t}\n\t\t\tif (rest.maxLength !== undefined) {\n\t\t\t\ttemplate = template.replace(\"{max}\", rest.maxLength.toString())\n\t\t\t}\n\t\t\treturn template\n\t\t}\n\t\treturn valueAsString.length\n\t}, [inputLengthTemplate, rest.maxLength, rest.minLength, valueAsString.length])\n\n\treturn (\n\t\t<>\n\t\t\t<RadixTextArea\n\t\t\t\tclassName={classNames(\"overmap-textarea\", className)}\n\t\t\t\tstyle={{ resize: resize }}\n\t\t\t\tref={ref}\n\t\t\t\tvalue={value}\n\t\t\t\tcolor={severityColor}\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t\t{displayInputLength && (\n\t\t\t\t<Text as=\"p\" className={styles.charCount} color={infoColor} align=\"right\">\n\t\t\t\t\t{displayInputLengthValue}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t</>\n\t)\n})\n\n/** The TextArea Component is a user interface element that allows users to input and edit multi-line text.\n It is commonly used in forms, chat applications, and other scenarios where longer text inputs are required.\n This TextArea is a wrapper of the RadixUI TextArea component found here https://www.radix-ui.com/themes/docs/components/text-area.\n */\nexport const TextArea: FC<TextAreaProps> = memo(_TextArea)\n","import { FC, forwardRef, memo, Ref } from \"react\"\nimport { Item, Root } from \"@radix-ui/react-toggle-group\"\nimport { ToggleGroupItemProps, ToggleGroupSingleProps } from \"./typings.ts\"\nimport { IconButton } from \"../Buttons\"\nimport classNames from \"classnames\"\nimport { ButtonGroup } from \"../ButtonGroup\"\n\nconst _ToggleGroup = forwardRef(function ToggleGroup(\n\t{\n\t\tclassName,\n\t\titems,\n\t\torientation = \"horizontal\",\n\t\tmerged = true,\n\t\tvalue,\n\t\tseverity,\n\t\tgap,\n\t\tsize,\n\t\t...rest\n\t}: ToggleGroupSingleProps,\n\tref: Ref<HTMLDivElement>,\n) {\n\treturn (\n\t\t<Root\n\t\t\tclassName={classNames(\"overmap-toggle-group\", className)}\n\t\t\tref={ref}\n\t\t\tvalue={value}\n\t\t\torientation={orientation}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<ButtonGroup\n\t\t\t\twidth=\"min-content\"\n\t\t\t\theight=\"min-content\"\n\t\t\t\tmerged={merged}\n\t\t\t\tdirection={orientation === \"vertical\" ? \"column\" : \"row\"}\n\t\t\t\tgap={gap}\n\t\t\t>\n\t\t\t\t{items.map(({ children, ...rest }: ToggleGroupItemProps) => (\n\t\t\t\t\t<Item asChild {...rest} key={rest.value}>\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tclassName={classNames(\"overmap-toggle-group-button\")}\n\t\t\t\t\t\t\taria-label={rest.value}\n\t\t\t\t\t\t\tseverity={severity}\n\t\t\t\t\t\t\tvariant={rest.value === value ? \"solid\" : \"soft\"}\n\t\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t</Item>\n\t\t\t\t))}\n\t\t\t</ButtonGroup>\n\t\t</Root>\n\t)\n})\n\n/** The Toggle Group Component is a user interface element that allows users to select a single option from a set of\n * mutually exclusive choices. It is commonly used in situations where users need to make a single selection from a\n * predefined list of options. This component is built using the ButtonGroup and IconButton components in combination\n * with the Radix Toggle Group primitive found here https://www.radix-ui.com/primitives/docs/components/toggle-group */\nexport const ToggleGroup: FC<ToggleGroupSingleProps> = memo(_ToggleGroup)\n","import { FC, forwardRef, memo, Ref, useCallback } from \"react\"\nimport * as RadixToast from \"@radix-ui/react-toast\"\nimport { Callout, Flex } from \"@radix-ui/themes\"\nimport { Cross2Icon, InfoCircledIcon } from \"@radix-ui/react-icons\"\nimport classNames from \"classnames\"\nimport { IconButton } from \"../Buttons\"\nimport { ToastProps, ToastProviderProps } from \"./typings.ts\"\nimport { useSeverityColor } from \"../utils.ts\"\n\nimport styles from \"./Toast.module.sass\"\n\nconst _Toast = forwardRef(function Toast(\n\t{ title, description, icon, severity = \"primary\", size, onClose, ...rest }: ToastProps,\n\tref: Ref<HTMLLIElement>,\n) {\n\tconst color = useSeverityColor(severity)\n\tconst handleOpenChange = useCallback(\n\t\t(open: boolean) => {\n\t\t\tif (!open && onClose) onClose()\n\t\t},\n\t\t[onClose],\n\t)\n\n\treturn (\n\t\t<RadixToast.Root asChild ref={ref} {...rest} onOpenChange={handleOpenChange}>\n\t\t\t<Callout.Root\n\t\t\t\tclassName={classNames(\"overmap-toast\", styles.wrapper)}\n\t\t\t\tvariant=\"surface\"\n\t\t\t\tcolor={color}\n\t\t\t\tsize={size}\n\t\t\t>\n\t\t\t\t<Flex width=\"100%\" align=\"center\" gap=\"4\" justify=\"between\">\n\t\t\t\t\t<Flex align=\"center\" gap=\"4\">\n\t\t\t\t\t\t<Callout.Icon>{icon || <InfoCircledIcon />}</Callout.Icon>\n\t\t\t\t\t\t<Flex direction=\"column\" gap=\"0\">\n\t\t\t\t\t\t\t<RadixToast.Title asChild>\n\t\t\t\t\t\t\t\t<Callout.Text weight=\"bold\">{title}</Callout.Text>\n\t\t\t\t\t\t\t</RadixToast.Title>\n\t\t\t\t\t\t\t<RadixToast.Description asChild>\n\t\t\t\t\t\t\t\t<Callout.Text weight=\"light\">{description}</Callout.Text>\n\t\t\t\t\t\t\t</RadixToast.Description>\n\t\t\t\t\t\t</Flex>\n\t\t\t\t\t</Flex>\n\t\t\t\t\t<RadixToast.Close asChild>\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tclassName={styles.closeButton}\n\t\t\t\t\t\t\taria-label=\"Close\"\n\t\t\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tseverity={severity}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Cross2Icon />\n\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t</RadixToast.Close>\n\t\t\t\t</Flex>\n\t\t\t</Callout.Root>\n\t\t</RadixToast.Root>\n\t)\n})\n\nexport const ToastProvider: FC<ToastProviderProps> = memo(function ToastProvider({\n\tchildren,\n\t...rest\n}: ToastProviderProps) {\n\treturn (\n\t\t<RadixToast.Provider swipeDirection=\"right\" swipeThreshold={75} {...rest}>\n\t\t\t{children}\n\t\t</RadixToast.Provider>\n\t)\n})\n\nexport const Toast: FC<ToastProps> = memo(_Toast)\nexport const ToastViewport: FC<RadixToast.ToastViewportProps> = RadixToast.Viewport\n","import { memo, createContext, useState, useCallback, FC } from \"react\"\nimport { IToastContext, SimpleToastMessage, ToastContextProviderProps, ToastProps } from \"./typings.ts\"\nimport { Toast, ToastProvider, ToastViewport } from \"./Toast.tsx\"\n\nexport const ToastContext = createContext({} as IToastContext)\n\nexport const ToastContextProvider: FC<ToastContextProviderProps> = memo(function ToastContextProvider({\n\tchildren,\n\t// Use this class to change where the viewport for the toasts should be\n\tviewportClass,\n\thotkey,\n\t// Default duration value for all Toasts\n\tduration = 10000,\n\t...rest\n}: ToastContextProviderProps) {\n\tconst [toasts, setToasts] = useState<ToastProps[]>([])\n\n\tconst showToast = useCallback((toastProps: ToastProps) => {\n\t\tsetToasts((prevToasts) => [...prevToasts, toastProps])\n\t}, [])\n\n\tconst showPrimary = useCallback(\n\t\t(simpleMessage: SimpleToastMessage) => {\n\t\t\tshowToast({ severity: \"primary\", ...simpleMessage })\n\t\t},\n\t\t[showToast],\n\t)\n\n\tconst showSuccess = useCallback(\n\t\t(simpleMessage: SimpleToastMessage) => {\n\t\t\tshowToast({ severity: \"success\", ...simpleMessage })\n\t\t},\n\t\t[showToast],\n\t)\n\n\tconst showError = useCallback(\n\t\t(simpleMessage: SimpleToastMessage) => {\n\t\t\tshowToast({ severity: \"danger\", ...simpleMessage })\n\t\t},\n\t\t[showToast],\n\t)\n\n\tconst showInfo = useCallback(\n\t\t(simpleMessage: SimpleToastMessage) => {\n\t\t\tshowToast({ severity: \"info\", ...simpleMessage })\n\t\t},\n\t\t[showToast],\n\t)\n\n\tconst deleteToastAtIndex = useCallback(\n\t\t(index: number) => {\n\t\t\tconst tempToasts = [...toasts]\n\t\t\ttempToasts.splice(index, 1)\n\t\t\tsetToasts(() => tempToasts)\n\t\t},\n\t\t[toasts],\n\t)\n\n\tconst toastContextValue = {\n\t\tshowToast,\n\t\tshowPrimary,\n\t\tshowSuccess,\n\t\tshowError,\n\t\tshowInfo,\n\t}\n\n\treturn (\n\t\t<ToastContext.Provider value={toastContextValue}>\n\t\t\t<ToastProvider duration={duration} {...rest}>\n\t\t\t\t<ToastViewport className={viewportClass} hotkey={hotkey} />\n\t\t\t\t{toasts.map((toastProps, index) => (\n\t\t\t\t\t<Toast key={index} {...toastProps} onClose={() => deleteToastAtIndex(index)} />\n\t\t\t\t))}\n\t\t\t\t{children}\n\t\t\t</ToastProvider>\n\t\t</ToastContext.Provider>\n\t)\n})\n","import { ElementRef, FC, ForwardRefExoticComponent, forwardRef, memo } from \"react\"\nimport { MarginProps, Text as RadixText } from \"@radix-ui/themes\"\nimport classNames from \"classnames\"\nimport styles from \"./ Text.module.sass\"\nimport { Severity } from \"../typings\"\nimport { useSeverityColor } from \"..\"\n\ntype RadixTextProps = typeof RadixText extends ForwardRefExoticComponent<infer P> ? P : never\n\nexport type TextProps = Omit<RadixTextProps, keyof MarginProps | \"ref\" | \"asChild\" | \"color\"> & {\n\t/** If true, the text will not wrap, but instead will truncate with a text overflow ellipsis.\n\t * @default false\n\t */\n\tnoWrap?: boolean\n\tseverity?: Severity\n\t/** @default span */\n\tas: RadixTextProps[\"as\"]\n\t/** @default 3 */\n\tsize?: RadixTextProps[\"size\"]\n}\n\n/**\n * A foundational text primitive.\n *\n * Use the `as` prop to render text as a `p`, `label`, `div` or `span`. This prop is purely semantic and does not alter visual appearance.\n *\n * For the complete documentation, refer to https://www.radix-ui.com/themes/docs/components/text.\n */\nexport const Text: FC<TextProps> = memo(\n\tforwardRef<ElementRef<\"span\">, TextProps>(({ className, noWrap, severity, as, ...props }, ref) => {\n\t\tconst color = useSeverityColor(severity)\n\t\treturn (\n\t\t\t<RadixText\n\t\t\t\tref={ref}\n\t\t\t\t// bypassing incorrect TS error\n\t\t\t\tas={as as undefined}\n\t\t\t\tclassName={classNames(className, { [styles.noWrap!]: noWrap })}\n\t\t\t\tcolor={color}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t)\n\t}),\n)\n","import { Theme } from \"@radix-ui/themes\"\nimport { ComponentProps, FC, forwardRef, memo } from \"react\"\n// css file contains updates to the default radix tokens\nimport \"./DefaultTheme.css\"\n\nexport type DefaultThemeProps = ComponentProps<typeof Theme>\n\nexport const DefaultTheme: FC<DefaultThemeProps> = memo(\n\tforwardRef<HTMLDivElement, DefaultThemeProps>((props, ref) => {\n\t\tconst { panelBackground = \"solid\", radius = \"full\", ...rest } = props\n\t\treturn <Theme panelBackground={panelBackground} radius={radius} ref={ref} {...rest} />\n\t}),\n)\n"],"names":["hasOwn","classNames","classes","i","arg","argType","inner","key","module","useResponsiveMapping","value","mapping","useMemo","breakpoint","nonThemeSeverityMapping","useSeverityColor","severity","theme","useThemeContext","_Badge","forwardRef","className","color","children","rest","ref","severityColor","jsx","RadixBadge","Badge","memo","hoverEffectClassNameMapping","styles","SizeMapping","ButtonGroupContext","createContext","useButtonGroupContext","useContext","_Button","props","buttonGroupContext","fluid","size","hoverEffects","variant","hoverEffectClasses","hoverEffect","RadixButton","Button","React","RadixIconButton","IconButton","GhostVariantSizeToGapMapping","_ButtonGroup","merged","gap","direction","ghostSize","mergedAutoGap","Flex","ButtonGroup","DialogContent","title","description","content","closeDialog","jsxs","Dialog","Cross1Icon","onOpen","onCloseInterrupt","contentProps","open","setOpen","useState","handleOpenChange","useCallback","next","options","RadixDialog","Title","AlertDialog","AlertDialogContent","actionText","cancelText","onAction","onCancel","helpers","RadixAlertDialog","initialState","AlertDialogProvider","state","setState","openDialog","useAlertDialog","_Select","placeholder","side","items","id","mappedSize","createElement","RadixSelect","label","Select","_Input","leftIcon","rightIcon","showInputLength","computedSize","displayInputLength","valueAsString","RadixTextField","Text","Input","_Popover","defaultOpen","modal","RadixPopover","Popover","_TextArea","inputLengthTemplate","resize","infoColor","displayInputLengthValue","template","Fragment","RadixTextArea","TextArea","_ToggleGroup","orientation","Root","Item","ToggleGroup","_Toast","icon","onClose","RadixToast","Callout","InfoCircledIcon","Cross2Icon","ToastProvider","Toast","ToastViewport","ToastContext","ToastContextProvider","viewportClass","hotkey","duration","toasts","setToasts","showToast","toastProps","prevToasts","showPrimary","simpleMessage","showSuccess","showError","showInfo","deleteToastAtIndex","index","tempToasts","toastContextValue","noWrap","as","RadixText","DefaultTheme","panelBackground","radius","Theme"],"mappings":";;;;;;;;;;;;;;;;;;;;AAOA,GAAC,WAAY;AAGZ,QAAIA,IAAS,CAAE,EAAC;AAGhB,aAASC,IAAa;AAGrB,eAFIC,IAAU,CAAA,GAELC,IAAI,GAAGA,IAAI,UAAU,QAAQA,KAAK;AAC1C,YAAIC,IAAM,UAAUD,CAAC;AACrB,YAAKC,GAEL;AAAA,cAAIC,IAAU,OAAOD;AAErB,cAAIC,MAAY,YAAYA,MAAY;AACvC,YAAAH,EAAQ,KAAKE,CAAG;AAAA,mBACN,MAAM,QAAQA,CAAG;AAC3B,gBAAIA,EAAI,QAAQ;AACf,kBAAIE,IAAQL,EAAW,MAAM,MAAMG,CAAG;AACtC,cAAIE,KACHJ,EAAQ,KAAKI,CAAK;AAAA,YAEnB;AAAA,qBACSD,MAAY,UAAU;AAChC,gBAAID,EAAI,aAAa,OAAO,UAAU,YAAY,CAACA,EAAI,SAAS,SAAQ,EAAG,SAAS,eAAe,GAAG;AACrG,cAAAF,EAAQ,KAAKE,EAAI,SAAU,CAAA;AAC3B;AAAA,YACA;AAED,qBAASG,KAAOH;AACf,cAAIJ,EAAO,KAAKI,GAAKG,CAAG,KAAKH,EAAIG,CAAG,KACnCL,EAAQ,KAAKK,CAAG;AAAA,UAGlB;AAAA;AAAA,MACD;AAED,aAAOL,EAAQ,KAAK,GAAG;AAAA,IACvB;AAED,IAAqCM,EAAO,WAC3CP,EAAW,UAAUA,GACrBO,EAAA,UAAiBP,KAOjB,OAAO,aAAaA;AAAA,EAEtB;;;;AC/CgB,SAAAQ,EACfC,GACAC,GAC4B;AAC5B,SAAOC,EAAQ,MAAM;AACpB,QAAIF,MAAU;AACV,UAAA,OAAOA,KAAU,UAAU;AAC1B,YAAA,EAAE,aAAaA;AAEZ,gBAAA,IAAI,MAAM,0DAA0D;AAE3E,eAAO,OAAO,YAAY,OAAO,QAAQA,CAAK,EAAE,IAAI,CAAC,CAACG,GAAYH,CAAK,MAAM,CAACG,GAAYF,EAAQD,CAAK,CAAC,CAAC,CAAC;AAAA,MAAA;AAE1G,eAAOC,EAAQD,CAAK;AAAA,EACrB,GACE,CAACC,GAASD,CAAK,CAAC;AACpB;AAEA,MAAMI,KAA0B;AAAA,EAC/B,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,MAAM;AACP,GAKaC,IAAmB,CAACC,MAAiD;AACjF,QAAMC,IAAQC;AACd,MAAKF;AACL,WAAIA,MAAa,YAAkBC,EAAM,cAElCH,GAAwBE,CAAQ;AACxC,GCvCMG,KAASC,EAAW,SACzB,EAAE,WAAAC,GAAW,UAAAL,IAAW,WAAW,OAAAM,GAAO,UAAAC,GAAU,GAAGC,EAAA,GACvDC,GACC;AACK,QAAAC,IAAgBX,EAAiBC,CAAQ;AAG9C,SAAA,gBAAAW;AAAA,IAACC;AAAAA,IAAA;AAAA,MACA,WAAW3B,EAAW,iBAAiBoB,CAAS;AAAA,MAChD,KAAAI;AAAA,MACA,OAAOH,KAAgBI;AAAA,MACtB,GAAGF;AAAA,MAEH,UAAAD;AAAA,IAAA;AAAA,EAAA;AAGJ,CAAC,GAKYM,KAAwBC,EAAKX,EAAM;;;;;GCxBnCY,IAA6E;AAAA,EACzF,iBAAiBC,EAAO;AAAA,EACxB,kBAAkBA,EAAO;AAAA,EACzB,kBAAkBA,EAAO;AAC1B,GCJaC,IAA6C;AAAA,EACzD,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AACR,GCFaC,IAAqBC,EAAiC,CAAA,CAAE,GAExDC,IAAwB,MAAMC,EAAWH,CAAkB,GCGlEI,KAAUlB,EAAW,SAAgBmB,GAAoBd,GAAmC;AACjG,QAAMe,IAAqBJ,KACrB;AAAA,IACL,WAAAf;AAAA,IACA,OAAAoB;AAAA,IACA,MAAAC,IAAOF,EAAmB,QAAQ;AAAA,IAClC,UAAAxB,IAAWwB,EAAmB,YAAY;AAAA,IAC1C,cAAAG,IAAeH,EAAmB,gBAAgB,CAAC;AAAA,IACnD,SAAAI,IAAUJ,EAAmB;AAAA,IAC7B,GAAGhB;AAAA,EACA,IAAAe,GACEjB,IAAQP,EAAiBC,CAAQ,GACjC6B,IAAqBF,EAAa,IAAI,CAACG,MACrCf,EAA4Be,CAAW,CAC9C;AAGA,SAAA,gBAAAnB;AAAA,IAACoB;AAAAA,IAAA;AAAA,MACA,KAAAtB;AAAA,MACA,MAAK;AAAA,MACL,WAAWxB,EAAWoB,GAAWwB,GAAoB;AAAA,QACpD,CAACb,EAAO,KAAM,GAAGS;AAAA,MAAA,CACjB;AAAA,MACD,OAAAnB;AAAA,MACA,MAAMb,EAAqBiC,GAAMT,CAAW;AAAA,MAC5C,SAAAW;AAAA,MACC,GAAGpB;AAAA,IAAA;AAAA,EAAA;AAGP,CAAC,GAGKwB,IAA0BC,EAAM,KAAKX,EAAO,GC3B5CA,KAAUlB,EAAW,SAAgBmB,GAAwBd,GAAmC;AACrG,QAAMe,IAAqBJ,KACrB;AAAA,IACL,WAAAf;AAAA,IACA,UAAAE;AAAA,IACA,MAAAmB,IAAOF,EAAmB,QAAQ;AAAA,IAClC,UAAAxB,IAAWwB,EAAmB,YAAY;AAAA,IAC1C,cAAAG,IAAeH,EAAmB,gBAAgB,CAAC;AAAA,IACnD,SAAAI,IAAUJ,EAAmB;AAAA,IAC7B,GAAGhB;AAAA,EACA,IAAAe,GACEjB,IAAQP,EAAiBC,CAAQ,GACjC6B,KACLF,KAAA,gBAAAA,EAAc,IAAI,CAACG,MACXf,EAA4Be,CAAW,OACzC,CAAA;AAGN,SAAA,gBAAAnB;AAAA,IAACuB;AAAAA,IAAA;AAAA,MACA,WAAWjD,EAAWoB,GAAWwB,GAAoBb,EAAO,OAAO;AAAA,MACnE,KAAAP;AAAA,MACA,OAAAH;AAAA,MACA,MAAMb,EAAqBiC,GAAMT,CAAW;AAAA,MAC5C,SAAAW;AAAA,MACA,MAAK;AAAA,MACJ,GAAGpB;AAAA,MAEH,UAAAD;AAAA,IAAA;AAAA,EAAA;AAGJ,CAAC,GAIK4B,IAAkCF,EAAM,KAAKX,EAAO;;GCvCpDc,KAA+B;AAAA,EACpC,KAAK,EAAE,OAAO,KAAK,QAAQ,KAAK,OAAO,IAAI;AAAA,EAC3C,QAAQ,EAAE,OAAO,KAAK,QAAQ,KAAK,OAAO,IAAI;AAC/C,GAEMC,KAAejC,EAAW,SAC/B;AAAA,EACC,WAAAC;AAAA,EACA,QAAAiC,IAAS;AAAA,EACT,UAAA/B;AAAA,EACA,KAAAgC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,UAAAxC;AAAA,EACA,MAAA0B;AAAA,EACA,SAAAE;AAAA,EACA,cAAAD;AAAA,EACA,GAAGnB;AACJ,GACAC,GACC;AACD,QAAMgC,IAAYhD,EAAqBiC,GAAMU,GAA6BI,CAAS,CAAC,GAE9EE,IAAgBd,MAAY,UAAUa,IAAY;AAEvD,SAAA,gBAAA9B;AAAA,IAACgC;AAAA,IAAA;AAAA,MACA,WAAW1D,EAAW,wBAAwBoB,GAAW;AAAA,QACxD,CAACW,GAAO,MAAO,GAAGsB;AAAA,MAAA,CAClB;AAAA,MACD,KAAA7B;AAAA,MACA,KAAK6B,IAASC,KAAOG,IAAgBH,KAAO;AAAA,MAC5C,WAAAC;AAAA,MACA,kBAAgBA;AAAA,MACf,GAAGhC;AAAA,MAEJ,UAAA,gBAAAG,EAACO,EAAmB,UAAnB,EAA4B,OAAO,EAAE,MAAAQ,GAAM,UAAA1B,GAAU,SAAA4B,GAAS,cAAAD,EAAa,GAC1E,UAAApB,EACF,CAAA;AAAA,IAAA;AAAA,EAAA;AAGH,CAAC,GAMYqC,KAAoC9B,EAAKuB,EAAY,GClDrDQ,KAAgB/B,EAAK,SAAuBS,GAA2B;AACnF,QAAM,EAAE,OAAAuB,GAAO,aAAAC,GAAa,SAAAC,GAAS,aAAAC,MAAgB1B;AACrD,SACE,gBAAA2B,EAAAP,GAAA,EAAK,WAAU,UAAS,KAAI,KAC5B,UAAA;AAAA,IAAA,gBAAAO,EAACP,GAAK,EAAA,WAAU,UAAS,KAAI,KAC5B,UAAA;AAAA,MAAC,gBAAAO,EAAAP,GAAA,EAAK,SAAQ,WACb,UAAA;AAAA,QAAA,gBAAAhC,EAACwC,EAAO,OAAP,EAAa,IAAG,KAAK,UAAML,GAAA;AAAA,QAC3B,gBAAAnC,EAAAwC,EAAO,OAAP,EACA,4BAAChB,GAAW,EAAA,OAAM,QAAO,SAAQ,SAAQ,cAAW,SACnD,UAAC,gBAAAxB,EAAAyC,IAAA,CAAA,CAAW,EACb,CAAA,GACD;AAAA,MAAA,GACD;AAAA,MACC,gBAAAzC,EAAAwC,EAAO,aAAP,EAAoB,UAAYJ,EAAA,CAAA;AAAA,IAAA,GAClC;AAAA,IACCC,EAAQC,CAAW;AAAA,EACrB,EAAA,CAAA;AAEF,CAAC,GCdYE,KAASrC,EAAK,SAAgBS,GAAoB;AAC9D,QAAM,EAAE,UAAAhB,GAAU,MAAAmB,GAAM,QAAA2B,GAAQ,kBAAAC,GAAkB,GAAGC,EAAiB,IAAAhC,GAChE,CAACiC,GAAMC,CAAO,IAAIC,EAAS,EAAK,GAEhCC,IAAmBC;AAAA,IACxB,CAACC,MAAkB;AAClB,UAAIA,KAAQR;AACJ,QAAAA;eACG,CAACQ,KAAQP;AAMnB,eAAOA,EAJc,MAAMG,EAAQ,EAAK,CAIJ;AAGrC,MAAAA,EAAQI,CAAI;AAAA,IACb;AAAA,IACA,CAACR,GAAQC,CAAgB;AAAA,EAAA,GAGpBL,IAAcW;AAAA,IACnB,CAACE,MAAY;AACZ,UAAIA,KAAA,QAAAA,EAAS;AAEZ,eAAOL,EAAQ,EAAK;AAGrB,MAAAE,EAAiB,EAAK;AAAA,IACvB;AAAA,IACA,CAACA,CAAgB;AAAA,EAAA;AAGlB,2BACEI,EAAY,MAAZ,EAAiB,MAAAP,GAAY,cAAcG,GAC3C,UAAA;AAAA,IAAC,gBAAAhD,EAAAoD,EAAY,SAAZ,EAAoB,MAAArC,GACpB,4BAACmB,IAAc,EAAA,aAAAI,GAA2B,GAAGM,EAAA,CAAc,EAC5D,CAAA;AAAA,IAEChD,EAASwD,EAAY,OAAO;AAAA,EAC9B,EAAA,CAAA;AAEF,CAAC,GC/CYC,IAAmC,CAACzC,MAC/C,gBAAAZ,EAAAsD,EAAY,OAAZ,EAAkB,IAAG,KAAK,GAAG1C,EAAO,CAAA,GAGzB2C,KAAqB,CAAC3C,MAAsC;AAClE,QAAA,EAAE,OAAAuB,GAAO,aAAAC,GAAa,YAAAoB,IAAa,WAAW,YAAAC,IAAa,UAAU,UAAAC,GAAU,UAAAC,GAAU,UAAAtE,EAAA,IAAauB;AAC5G,SACE,gBAAA2B,EAAAP,GAAA,EAAK,WAAU,UAAS,KAAI,KAC5B,UAAA;AAAA,IAAA,gBAAAO,EAACP,GAAK,EAAA,WAAU,UAAS,KAAI,KAC5B,UAAA;AAAA,MAAA,gBAAAhC,EAACqD,KAAO,UAAMlB,EAAA,CAAA;AAAA,MACb,gBAAAnC,EAAAsD,EAAY,aAAZ,EAAyB,UAAYlB,EAAA,CAAA;AAAA,IAAA,GACvC;AAAA,sBAECJ,GAAK,EAAA,KAAI,KAAI,IAAG,KAAI,SAAQ,OAC5B,UAAA;AAAA,MAAA,gBAAAhC,EAACsD,EAAY,QAAZ,EACA,UAAA,gBAAAtD,EAACqB,GAAO,EAAA,SAAQ,QAAO,UAAS,QAAO,SAASsC,GAC9C,UAAAF,EACF,CAAA,GACD;AAAA,MACC,gBAAAzD,EAAAsD,EAAY,QAAZ,EACA,UAAC,gBAAAtD,EAAAqB,GAAA,EAAO,SAAQ,SAAQ,UAAAhC,GAAoB,SAASqE,GACnD,UAAAF,EACF,CAAA,GACD;AAAA,IAAA,GACD;AAAA,EACD,EAAA,CAAA;AAEF,GCnBaF,KAAcnD,EAAK,SAAqBS,GAAyB;AAC7E,QAAM,EAAE,MAAAiC,GAAM,SAAAC,GAAS,UAAAlD,GAAU,GAAGgD,EAAiB,IAAAhC,GAE/CgD,IAAqC3E,EAAQ,OAC3C;AAAA,IACN,OAAO,MAAM6D,EAAQ,EAAK;AAAA,IAC1B,OAAAO;AAAA,IACA,aAAaQ,EAAiB;AAAA,EAAA,IAE7B,CAACf,CAAO,CAAC;AAEZ,2BACEe,EAAiB,MAAjB,EAAsB,MAAAhB,GAAY,cAAcC,GAChD,UAAA;AAAA,IAAA,gBAAA9C,EAAC6D,EAAiB,SAAjB,EACC,UAAA,aAAajB,IAAeA,EAAa,QAAQgB,CAAO,IAAI,gBAAA5D,EAACuD,IAAoB,EAAA,GAAGX,EAAc,CAAA,GACpG;AAAA,IACChD;AAAA,EACF,EAAA,CAAA;AAEF,CAAC,GCxBY2D,IAAqB/C,EAAsC,MAAM;AACvE,QAAA,IAAI,MAAM,8BAA8B;AAC/C,CAAC,GAEKsD,KAAmC;AAAA,EACxC,SAAS,MAAM;AAChB,GAEaC,KAAsB5D,EAAK,SAA6B,EAAE,UAAAP,KAAsC;AAC5G,QAAM,CAACiD,GAAMC,CAAO,IAAIC,EAAS,EAAK,GAChC,CAACiB,GAAOC,CAAQ,IAAIlB,EAA6Be,EAAY,GAE7DI,IAAajB;AAAA,IAClB,CAACE,MAAY;AACR,UAAAN;AAAY,cAAA,IAAI,MAAM,6BAA6B;AAEvD,MAAAoB,EAASd,CAAO,GAChBL,EAAQ,EAAI;AAAA,IACb;AAAA,IACA,CAACD,CAAI;AAAA,EAAA;AAGN,SACE,gBAAA7C,EAAAsD,IAAA,EAAY,MAAAT,GAAY,SAAAC,GAAmB,GAAGkB,GAC9C,UAAC,gBAAAhE,EAAAuD,EAAmB,UAAnB,EAA4B,OAAOW,GAAa,UAAAtE,GAAS,EAC3D,CAAA;AAEF,CAAC,GChCYuE,KAAiB,MACtBzD,EAAW6C,CAAkB;;GCK/Ba,KAAU3E,EAAW,SAC1B;AAAA,EACC,WAAAC;AAAA,EACA,OAAAoB;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,SAAAE,IAAU;AAAA,EACV,UAAA5B,IAAW;AAAA,EACX,aAAAgF,IAAc;AAAA,EACd,MAAAC;AAAA,EACA,OAAAC,IAAQ,CAAC;AAAA,EACT,OAAAxF;AAAA,EACA,IAAAyF;AAAA,EACA,GAAG3E;AACJ,GACAC,GACC;AACK,QAAA2E,IAAa3F,EAAqBiC,GAAMT,CAAW,GACnDX,IAAQP,EAAiBC,CAAQ;AAIvC,SACE,gBAAAqF,EAAAC,EAAY,MAAZ,EAAiB,MAAMF,GAAa,GAAG5E,GAAM,KAAKd,MAAU,SAAY,IAAI,GAAG,OAAAA,EAC/E,GAAA,gBAAAiB;AAAA,IAAC2E,EAAY;AAAA,IAAZ;AAAA,MACA,WAAWrG,EAAWoB,GAAW;AAAA,QAChC,CAACW,GAAO,KAAM,GAAGS;AAAA,MAAA,CACjB;AAAA,MACD,IAAA0D;AAAA,MACA,KAAA1E;AAAA,MACA,SAAAmB;AAAA,MACA,aAAAoD;AAAA,MACA,OAAA1E;AAAA,IAAA;AAAA,EAAA,GAED,gBAAAK;AAAA,IAAC2E,EAAY;AAAA,IAAZ;AAAA,MACA,MAAAL;AAAA,MACA,UAAS;AAAA,MACT,SAASrD,MAAY,YAAY,SAAS;AAAA,MAC1C,OAAAtB;AAAA,MAEC,UAAA4E,EAAM,IAAI,CAAC,EAAE,OAAAK,GAAO,OAAA7F,GAAO,GAAGc,0BAC7B8E,EAAY,MAAZ,EAA6B,OAAO5F,GAAQ,GAAGc,GAC9C,UAAA+E,KADqB7F,CAEvB,CACA;AAAA,IAAA;AAAA,EAAA,CAEH;AAEF,CAAC,GACY8F,KAA0BvD,EAAM,KAAK8C,EAAO;;;;;;GChDnDU,KAASrF,EAAW,SACzB;AAAA,EACC,WAAAC;AAAA,EACA,UAAAqF;AAAA,EACA,WAAAC;AAAA,EACA,MAAAjE,IAAO;AAAA,EACP,iBAAAkE;AAAA,EACA,OAAAlG;AAAA,EACA,SAAAkC;AAAA,EACA,UAAA5B,IAAW;AAAA,EACX,GAAGQ;AACJ,GACAC,GACC;AACK,QAAAoF,IAAepG,EAAqBiC,GAAMT,CAAW,GAErDX,IAAQP,EAAiBC,CAAQ,GAEjC8F,IAAqBF,KAAoBA,MAAoB,UAAapF,EAAK,cAAc,QAC7FuF,IAAgBrG,MAAU,SAAYA,EAAM,aAAa;AAG9D,SAAA,gBAAAwD;AAAA,IAAC8C,EAAe;AAAA,IAAf;AAAA,MACA,WAAW/G,EAAW;AAAA,QACrB,CAAC+B,EAAO,oBAAqB,GAAG8E;AAAA,MAAA,CAChC;AAAA,MACD,MAAMD;AAAA,MACN,SAAAjE;AAAA,MACA,OAAAtB;AAAA,MAEA,UAAA;AAAA,QAAC,gBAAAK,EAAAqF,EAAe,MAAf,EAAqB,UAASN,EAAA,CAAA;AAAA,QAC/B,gBAAA/E;AAAA,UAACqF,EAAe;AAAA,UAAf;AAAA,YACA,WAAW/G,EAAW+B,EAAO,SAASX,GAAW;AAAA,cAChD,CAACW,EAAO,UAAW,GAAG,CAAC0E;AAAA,cACvB,CAAC1E,EAAO,WAAY,GAAG,CAAC2E;AAAA,YAAA,CACxB;AAAA,YACD,KAAAlF;AAAA,YACA,MAAMoF;AAAA,YACN,SAAAjE;AAAA,YACA,OAAAtB;AAAA,YACC,GAAGE;AAAA,UAAA;AAAA,QACL;AAAA,QACC,gBAAAG,EAAAqF,EAAe,MAAf,EAAqB,UAAUL,EAAA,CAAA;AAAA,QAC/BG,KACC,gBAAAnF,EAAAsF,GAAA,EAAK,IAAG,KAAI,WAAWjF,EAAO,WAAW,MAAK,KAAI,OAAM,QACvD,YAAK,cAAc,SACjB,GAAG+E,KAAA,gBAAAA,EAAe,MAAM,IAAIvF,EAAK,SAAS,KAC1C,GAAGuF,KAAA,gBAAAA,EAAe,MAAM,GAC5B,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIJ,CAAC,GACYG,KAAwBjE,EAAM,KAAKwD,EAAM,GC1DhDU,KAAW/F,EAAW,SAC3B,EAAE,aAAAgG,IAAc,IAAO,OAAAC,IAAQ,IAAO,SAAArD,GAAS,UAAAzC,GAAU,GAAGC,EAAA,GAC5DC,GACC;AACD,SACE,gBAAAyC,EAAAoD,EAAa,MAAb,EAAkB,aAAAF,GAA0B,OAAAC,GAC5C,UAAA;AAAA,IAAC,gBAAA1F,EAAA2F,EAAa,SAAb,EAAsB,UAAA/F,EAAS,CAAA;AAAA,IAChC,gBAAAI,EAAC2F,EAAa,SAAb,EAAqB,KAAA7F,GAAW,GAAGD,GAClC,UAAAwC,EAAQsD,EAAa,KAAK,EAC5B,CAAA;AAAA,EACD,EAAA,CAAA;AAEF,CAAC,GACYC,KAA4BtE,EAAM,KAAKkE,EAAQ;;GCTtDK,KAAYpG,EAAW,SAC5B,EAAE,WAAAC,GAAW,iBAAAuF,GAAiB,qBAAAa,GAAqB,OAAA/G,GAAO,UAAAM,IAAW,WAAW,QAAA0G,GAAQ,GAAGlG,EAAA,GAC3FC,GACC;AACK,QAAAC,IAAgBX,EAAiBC,CAAQ,GACzC2G,IAAY5G,EAAiB,MAAM,GAEnC+F,IACLF,KACCA,MAAoB,WAAcpF,EAAK,cAAc,UAAaA,EAAK,cAAc,SACjFuF,IAAgBrG,MAAU,SAAYA,EAAM,SAAa,IAAA,IAEzDkH,IAA0BhH,EAAQ,MAAM;AAC7C,QAAI6G,GAAqB;AACxB,UAAII,IAAWJ,EAAoB,QAAQ,aAAaV,EAAc,OAAO,UAAU;AACnF,aAAAvF,EAAK,cAAc,WACtBqG,IAAWA,EAAS,QAAQ,SAASrG,EAAK,UAAU,UAAU,IAE3DA,EAAK,cAAc,WACtBqG,IAAWA,EAAS,QAAQ,SAASrG,EAAK,UAAU,UAAU,IAExDqG;AAAA,IACR;AACA,WAAOd,EAAc;AAAA,EAAA,GACnB,CAACU,GAAqBjG,EAAK,WAAWA,EAAK,WAAWuF,EAAc,MAAM,CAAC;AAE9E,SAEE,gBAAA7C,EAAA4D,IAAA,EAAA,UAAA;AAAA,IAAA,gBAAAnG;AAAA,MAACoG;AAAAA,MAAA;AAAA,QACA,WAAW9H,EAAW,oBAAoBoB,CAAS;AAAA,QACnD,OAAO,EAAE,QAAAqG,EAAe;AAAA,QACxB,KAAAjG;AAAA,QACA,OAAAf;AAAA,QACA,OAAOgB;AAAA,QACN,GAAGF;AAAA,MAAA;AAAA,IACL;AAAA,IACCsF,KACA,gBAAAnF,EAACsF,GAAK,EAAA,IAAG,KAAI,WAAWjF,GAAO,WAAW,OAAO2F,GAAW,OAAM,SAChE,UACFC,GAAA;AAAA,EAEF,EAAA,CAAA;AAEF,CAAC,GAMYI,KAA8BlG,EAAK0F,EAAS,GClDnDS,KAAe7G,EAAW,SAC/B;AAAA,EACC,WAAAC;AAAA,EACA,OAAA6E;AAAA,EACA,aAAAgC,IAAc;AAAA,EACd,QAAA5E,IAAS;AAAA,EACT,OAAA5C;AAAA,EACA,UAAAM;AAAA,EACA,KAAAuC;AAAA,EACA,MAAAb;AAAA,EACA,GAAGlB;AACJ,GACAC,GACC;AAEA,SAAA,gBAAAE;AAAA,IAACwG;AAAA,IAAA;AAAA,MACA,WAAWlI,EAAW,wBAAwBoB,CAAS;AAAA,MACvD,KAAAI;AAAA,MACA,OAAAf;AAAA,MACA,aAAAwH;AAAA,MACC,GAAG1G;AAAA,MAEJ,UAAA,gBAAAG;AAAA,QAACiC;AAAA,QAAA;AAAA,UACA,OAAM;AAAA,UACN,QAAO;AAAA,UACP,QAAAN;AAAA,UACA,WAAW4E,MAAgB,aAAa,WAAW;AAAA,UACnD,KAAA3E;AAAA,UAEC,YAAM,IAAI,CAAC,EAAE,UAAAhC,GAAU,GAAGC,EAAK,MAC9B,gBAAA6E,EAAA+B,IAAA,EAAK,SAAO,IAAE,GAAG5G,GAAM,KAAKA,EAAK,MACjC,GAAA,gBAAAG;AAAA,YAACwB;AAAA,YAAA;AAAA,cACA,WAAWlD,EAAW,6BAA6B;AAAA,cACnD,cAAYuB,EAAK;AAAA,cACjB,UAAAR;AAAA,cACA,SAASQ,EAAK,UAAUd,IAAQ,UAAU;AAAA,cAC1C,MAAAgC;AAAA,cAEC,UAAAnB;AAAA,YAAA;AAAA,UAAA,CAEH,CACA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAGH,CAAC,GAMY8G,KAA0CvG,EAAKmG,EAAY;;;GC/ClEK,KAASlH,EAAW,SACzB,EAAE,OAAA0C,GAAO,aAAAC,GAAa,MAAAwE,GAAM,UAAAvH,IAAW,WAAW,MAAA0B,GAAM,SAAA8F,GAAS,GAAGhH,EAAA,GACpEC,GACC;AACK,QAAAH,IAAQP,EAAiBC,CAAQ,GACjC2D,IAAmBC;AAAA,IACxB,CAACJ,MAAkB;AAClB,MAAI,CAACA,KAAQgE,KAAiBA;IAC/B;AAAA,IACA,CAACA,CAAO;AAAA,EAAA;AAIR,SAAA,gBAAA7G,EAAC8G,EAAW,MAAX,EAAgB,SAAO,IAAC,KAAAhH,GAAW,GAAGD,GAAM,cAAcmD,GAC1D,UAAA,gBAAAhD;AAAA,IAAC+G,EAAQ;AAAA,IAAR;AAAA,MACA,WAAWzI,EAAW,iBAAiB+B,EAAO,OAAO;AAAA,MACrD,SAAQ;AAAA,MACR,OAAAV;AAAA,MACA,MAAAoB;AAAA,MAEA,UAAA,gBAAAwB,EAACP,KAAK,OAAM,QAAO,OAAM,UAAS,KAAI,KAAI,SAAQ,WACjD,UAAA;AAAA,QAAA,gBAAAO,EAACP,GAAK,EAAA,OAAM,UAAS,KAAI,KACxB,UAAA;AAAA,UAAA,gBAAAhC,EAAC+G,EAAQ,MAAR,EAAc,UAAQH,KAAA,gBAAA5G,EAACgH,KAAgB,CAAA,GAAG;AAAA,UAC1C,gBAAAzE,EAAAP,GAAA,EAAK,WAAU,UAAS,KAAI,KAC5B,UAAA;AAAA,YAAA,gBAAAhC,EAAC8G,EAAW,OAAX,EAAiB,SAAO,IACxB,UAAA,gBAAA9G,EAAC+G,EAAQ,MAAR,EAAa,QAAO,QAAQ,UAAA5E,EAAM,CAAA,GACpC;AAAA,YACC,gBAAAnC,EAAA8G,EAAW,aAAX,EAAuB,SAAO,IAC9B,UAAC,gBAAA9G,EAAA+G,EAAQ,MAAR,EAAa,QAAO,SAAS,YAAY,CAAA,GAC3C;AAAA,UAAA,GACD;AAAA,QAAA,GACD;AAAA,QACC,gBAAA/G,EAAA8G,EAAW,OAAX,EAAiB,SAAO,IACxB,UAAA,gBAAA9G;AAAA,UAACwB;AAAA,UAAA;AAAA,YACA,WAAWnB,EAAO;AAAA,YAClB,cAAW;AAAA,YACX,SAAQ;AAAA,YACR,MAAK;AAAA,YACL,UAAAhB;AAAA,YAEA,4BAAC4H,IAAW,EAAA;AAAA,UAAA;AAAA,QAAA,GAEd;AAAA,MAAA,GACD;AAAA,IAAA;AAAA,EAEF,EAAA,CAAA;AAEF,CAAC,GAEYC,KAAwC/G,EAAK,SAAuB;AAAA,EAChF,UAAAP;AAAA,EACA,GAAGC;AACJ,GAAuB;AAErB,SAAA,gBAAAG,EAAC8G,EAAW,UAAX,EAAoB,gBAAe,SAAQ,gBAAgB,IAAK,GAAGjH,GAClE,UAAAD,EACF,CAAA;AAEF,CAAC,GAEYuH,KAAwBhH,EAAKwG,EAAM,GACnCS,KAAmDN,EAAW,UCpE9DO,KAAe7G,EAAc,EAAmB,GAEhD8G,KAAsDnH,EAAK,SAA8B;AAAA,EACrG,UAAAP;AAAA;AAAA,EAEA,eAAA2H;AAAA,EACA,QAAAC;AAAA;AAAA,EAEA,UAAAC,IAAW;AAAA,EACX,GAAG5H;AACJ,GAA8B;AAC7B,QAAM,CAAC6H,GAAQC,CAAS,IAAI5E,EAAuB,CAAE,CAAA,GAE/C6E,IAAY3E,EAAY,CAAC4E,MAA2B;AACzD,IAAAF,EAAU,CAACG,MAAe,CAAC,GAAGA,GAAYD,CAAU,CAAC;AAAA,EACtD,GAAG,CAAE,CAAA,GAECE,IAAc9E;AAAA,IACnB,CAAC+E,MAAsC;AACtC,MAAAJ,EAAU,EAAE,UAAU,WAAW,GAAGI,EAAe,CAAA;AAAA,IACpD;AAAA,IACA,CAACJ,CAAS;AAAA,EAAA,GAGLK,IAAchF;AAAA,IACnB,CAAC+E,MAAsC;AACtC,MAAAJ,EAAU,EAAE,UAAU,WAAW,GAAGI,EAAe,CAAA;AAAA,IACpD;AAAA,IACA,CAACJ,CAAS;AAAA,EAAA,GAGLM,IAAYjF;AAAA,IACjB,CAAC+E,MAAsC;AACtC,MAAAJ,EAAU,EAAE,UAAU,UAAU,GAAGI,EAAe,CAAA;AAAA,IACnD;AAAA,IACA,CAACJ,CAAS;AAAA,EAAA,GAGLO,IAAWlF;AAAA,IAChB,CAAC+E,MAAsC;AACtC,MAAAJ,EAAU,EAAE,UAAU,QAAQ,GAAGI,EAAe,CAAA;AAAA,IACjD;AAAA,IACA,CAACJ,CAAS;AAAA,EAAA,GAGLQ,IAAqBnF;AAAA,IAC1B,CAACoF,MAAkB;AACZ,YAAAC,IAAa,CAAC,GAAGZ,CAAM;AAClB,MAAAY,EAAA,OAAOD,GAAO,CAAC,GAC1BV,EAAU,MAAMW,CAAU;AAAA,IAC3B;AAAA,IACA,CAACZ,CAAM;AAAA,EAAA,GAGFa,IAAoB;AAAA,IACzB,WAAAX;AAAA,IACA,aAAAG;AAAA,IACA,aAAAE;AAAA,IACA,WAAAC;AAAA,IACA,UAAAC;AAAA,EAAA;AAIA,SAAA,gBAAAnI,EAACqH,GAAa,UAAb,EAAsB,OAAOkB,GAC7B,UAAC,gBAAAhG,EAAA2E,IAAA,EAAc,UAAAO,GAAqB,GAAG5H,GACtC,UAAA;AAAA,IAAC,gBAAAG,EAAAoH,IAAA,EAAc,WAAWG,GAAe,QAAAC,EAAgB,CAAA;AAAA,IACxDE,EAAO,IAAI,CAACG,GAAYQ,MACvB,gBAAArI,EAAAmH,IAAA,EAAmB,GAAGU,GAAY,SAAS,MAAMO,EAAmBC,CAAK,EAAA,GAA9DA,CAAiE,CAC7E;AAAA,IACAzI;AAAA,EAAA,EACF,CAAA,EACD,CAAA;AAEF,CAAC;;GCjDY0F,KAAsBnF;AAAA,EAClCV,EAA0C,CAAC,EAAE,WAAAC,GAAW,QAAA8I,GAAQ,UAAAnJ,GAAU,IAAAoJ,GAAI,GAAG7H,EAAM,GAAGd,MAAQ;AAC3F,UAAAH,IAAQP,EAAiBC,CAAQ;AAEtC,WAAA,gBAAAW;AAAA,MAAC0I;AAAAA,MAAA;AAAA,QACA,KAAA5I;AAAA,QAEA,IAAA2I;AAAA,QACA,WAAWnK,EAAWoB,GAAW,EAAE,CAACW,GAAO,MAAO,GAAGmI,GAAQ;AAAA,QAC7D,OAAA7I;AAAA,QACC,GAAGiB;AAAA,MAAA;AAAA,IAAA;AAAA,EACL,CAED;AACF;ACnCO,MAAM+H,KAAsCxI;AAAA,EAClDV,EAA8C,CAACmB,GAAOd,MAAQ;AAC7D,UAAM,EAAE,iBAAA8I,IAAkB,SAAS,QAAAC,IAAS,QAAQ,GAAGhJ,EAAS,IAAAe;AAChE,6BAAQkI,IAAM,EAAA,iBAAAF,GAAkC,QAAAC,GAAgB,KAAA/I,GAAW,GAAGD,EAAM,CAAA;AAAA,EAAA,CACpF;AACF;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"blocks.js","sources":["../node_modules/classnames/index.js","../src/utils.ts","../src/Badge/Badge.tsx","../src/Buttons/constants.ts","../src/constants.ts","../src/ButtonGroup/context.ts","../src/Buttons/Button.tsx","../src/Buttons/IconButton.tsx","../src/ButtonGroup/ButtonGroup.tsx","../src/Dialogs/Dialog/DialogContent.tsx","../src/Dialogs/Dialog/Dialog.tsx","../src/Dialogs/AlertDialog/AlertDialogContent.tsx","../src/Dialogs/AlertDialog/AlertDialog.tsx","../src/Dialogs/AlertDialog/context.tsx","../src/Dialogs/AlertDialog/hooks.ts","../src/Select/Select.tsx","../src/Input/Input.tsx","../src/Popover/Popover.tsx","../src/TextArea/TextArea.tsx","../src/ToggleGroup/ToggleGroup.tsx","../src/Toast/Toast.tsx","../src/Toast/ToastContext.tsx","../src/Text/Text.tsx","../src/Theme/DefaultTheme.tsx"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import { Responsive, ThemeOptions, useThemeContext } from \"@radix-ui/themes\"\nimport { useMemo } from \"react\"\nimport { Severity } from \"./typings\"\n\n// useResponsiveMapping is a helper function used to map the keys of a Radix Responsive type that can be understood\n// by a Radix component or primitive. The point of this is to leverage our own custom prop names and values while still\n// using Radix's built in Responsiveness functionality.\n/**\n * Returns an object with mapped key values or a single mapped value\n * @param value an object or string\n * @param mapping a Record mapping the object values of param value\n */\nexport function useResponsiveMapping<T extends string, K>(\n\tvalue: Responsive<T> | undefined,\n\tmapping: Record<T, K>,\n): Responsive<K> | undefined {\n\treturn useMemo(() => {\n\t\tif (value === undefined) return undefined\n\t\tif (typeof value === \"object\") {\n\t\t\tif (!(\"initial\" in value)) {\n\t\t\t\t// Responsive objects require an 'initial' property to be set that acts as a default\n\t\t\t\tthrow new Error(\"Expected initial property to be set in Responsive object\")\n\t\t\t}\n\t\t\treturn Object.fromEntries(Object.entries(value).map(([breakpoint, value]) => [breakpoint, mapping[value]]))\n\t\t} else {\n\t\t\treturn mapping[value]\n\t\t}\n\t}, [mapping, value])\n}\n\nconst nonThemeSeverityMapping = {\n\tsuccess: \"green\",\n\tdanger: \"red\",\n\tinfo: \"gray\",\n} as const\n\nexport type AccentColor = ThemeOptions[\"accentColor\"]\n\n/** Performs theme-sensitive mapping of a severity to radix color */\nexport const useSeverityColor = (severity?: Severity): AccentColor | undefined => {\n\tconst theme = useThemeContext()\n\tif (!severity) return undefined\n\tif (severity === \"primary\") return theme.accentColor\n\n\treturn nonThemeSeverityMapping[severity]\n}\n","import { Badge as RadixBadge } from \"@radix-ui/themes\"\nimport { FC, forwardRef, memo, Ref } from \"react\"\nimport { BadgeProps } from \"./typings.ts\"\nimport classNames from \"classnames\"\nimport { useSeverityColor } from \"../utils.ts\"\n\nconst _Badge = forwardRef(function Badge(\n\t{ className, severity = \"primary\", color, children, ...rest }: BadgeProps,\n\tref: Ref<HTMLSpanElement>,\n) {\n\tconst severityColor = useSeverityColor(severity)\n\n\treturn (\n\t\t<RadixBadge\n\t\t\tclassName={classNames(\"overmap-badge\", className)}\n\t\t\tref={ref}\n\t\t\tcolor={color ? color : severityColor}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</RadixBadge>\n\t)\n})\n\n/** The Badge Component is a user interface element that provides visual feedback, typically displaying a small amount\n * of information. It is commonly used to indicate counts, statuses, or labels in a concise and visually appealing\n * manner. This Badge components wraps the Badge component from Radix-ui found here https://www.radix-ui.com/themes/docs/components/badge */\nexport const Badge: FC<BadgeProps> = memo(_Badge)\n","import { ButtonHoverEffect } from \"./typings.ts\"\nimport styles from \"./Button.module.sass\"\n\nexport const hoverEffectClassNameMapping: Record<ButtonHoverEffect, string | undefined> = {\n\tspin90Clockwise: styles.hoverSpin90Clockwise,\n\tspin180Clockwise: styles.hoverSpin180Clockwise,\n\tspin360Clockwise: styles.hoverSpin360Clockwise,\n}\n","import { Size } from \"./typings.ts\"\n\n// Mappings\nexport const SizeMapping: Record<Size, \"1\" | \"2\" | \"3\"> = {\n\tsmall: \"1\",\n\tmedium: \"2\",\n\tlarge: \"3\",\n}\n","import { ButtonProps } from \"../Buttons/typings\"\nimport { createContext, useContext } from \"react\"\n\nexport type ButtonContextType = Pick<ButtonProps, \"variant\" | \"size\" | \"severity\" | \"hoverEffects\">\n\nexport const ButtonGroupContext = createContext<ButtonContextType>({})\n\nexport const useButtonGroupContext = () => useContext(ButtonGroupContext)\n","import React, { FC, forwardRef } from \"react\"\nimport { ButtonProps } from \"./typings.ts\"\nimport styles from \"./Button.module.sass\"\nimport classNames from \"classnames\"\nimport { Button as RadixButton } from \"@radix-ui/themes\"\nimport { hoverEffectClassNameMapping } from \"./constants.ts\"\nimport { useResponsiveMapping, useSeverityColor } from \"../utils.ts\"\nimport { SizeMapping } from \"../constants.ts\"\nimport { useButtonGroupContext } from \"../ButtonGroup/context.ts\"\n\nconst _Button = forwardRef(function Button(props: ButtonProps, ref: React.Ref<HTMLButtonElement>) {\n\tconst buttonGroupContext = useButtonGroupContext()\n\tconst {\n\t\tclassName,\n\t\tfluid,\n\t\tsize = buttonGroupContext.size ?? \"medium\",\n\t\tseverity = buttonGroupContext.severity ?? \"primary\",\n\t\thoverEffects = buttonGroupContext.hoverEffects ?? [],\n\t\tvariant = buttonGroupContext.variant,\n\t\t...rest\n\t} = props\n\tconst color = useSeverityColor(severity)\n\tconst hoverEffectClasses = hoverEffects.map((hoverEffect) => {\n\t\treturn hoverEffectClassNameMapping[hoverEffect]\n\t})\n\n\treturn (\n\t\t<RadixButton\n\t\t\tref={ref}\n\t\t\ttype=\"button\"\n\t\t\tclassName={classNames(className, hoverEffectClasses, {\n\t\t\t\t[styles.fluid!]: fluid,\n\t\t\t})}\n\t\t\tcolor={color}\n\t\t\tsize={useResponsiveMapping(size, SizeMapping)}\n\t\t\tvariant={variant}\n\t\t\t{...rest}\n\t\t/>\n\t)\n})\n\n// using FC so storybook correctly displays the component props\nconst Button: FC<ButtonProps> = React.memo(_Button)\n\nexport default Button\n","import React, { FC, forwardRef } from \"react\"\nimport { ButtonProps } from \"./typings.ts\"\nimport classNames from \"classnames\"\nimport { IconButton as RadixIconButton } from \"@radix-ui/themes\"\nimport { hoverEffectClassNameMapping } from \"./constants.ts\"\nimport { useResponsiveMapping, useSeverityColor } from \"../utils.ts\"\nimport { SizeMapping } from \"../constants.ts\"\nimport { useButtonGroupContext } from \"../ButtonGroup/context.ts\"\n\nimport styles from \"./Button.module.sass\"\n\ninterface IconButtonProps extends Omit<ButtonProps, \"fluid\"> {\n\t\"aria-label\": string\n}\n\nconst _Button = forwardRef(function Button(props: IconButtonProps, ref: React.Ref<HTMLButtonElement>) {\n\tconst buttonGroupContext = useButtonGroupContext()\n\tconst {\n\t\tclassName,\n\t\tchildren,\n\t\tsize = buttonGroupContext.size ?? \"medium\",\n\t\tseverity = buttonGroupContext.severity ?? \"primary\",\n\t\thoverEffects = buttonGroupContext.hoverEffects ?? [],\n\t\tvariant = buttonGroupContext.variant,\n\t\t...rest\n\t} = props\n\tconst color = useSeverityColor(severity)\n\tconst hoverEffectClasses =\n\t\thoverEffects?.map((hoverEffect) => {\n\t\t\treturn hoverEffectClassNameMapping[hoverEffect]\n\t\t}) || []\n\n\treturn (\n\t\t<RadixIconButton\n\t\t\tclassName={classNames(className, hoverEffectClasses, styles.default)}\n\t\t\tref={ref}\n\t\t\tcolor={color}\n\t\t\tsize={useResponsiveMapping(size, SizeMapping)}\n\t\t\tvariant={variant}\n\t\t\ttype=\"button\"\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</RadixIconButton>\n\t)\n})\n\n// using FC so storybook correctly displays the component props\n/** The `IconButton` is a `Button` variant specifically designed for single icons. */\nconst IconButton: FC<IconButtonProps> = React.memo(_Button)\n\nexport default IconButton\n","import { FC, forwardRef, memo, Ref } from \"react\"\nimport { Flex } from \"@radix-ui/themes\"\nimport classNames from \"classnames\"\nimport { ButtonGroupProps } from \"./typings.ts\"\n\nimport styles from \"./ButtonGroup.module.sass\"\nimport { Size } from \"../typings.ts\"\nimport { useResponsiveMapping } from \"../utils.ts\"\nimport { ButtonGroupContext } from \"./context.ts\"\n\nconst GhostVariantSizeToGapMapping = {\n\trow: { small: \"4\", medium: \"4\", large: \"5\" },\n\tcolumn: { small: \"2\", medium: \"3\", large: \"4\" },\n} as const satisfies Record<\"row\" | \"column\", Record<Size, ButtonGroupProps[\"gap\"]>>\n\nconst _ButtonGroup = forwardRef(function ButtonGroup(\n\t{\n\t\tclassName,\n\t\tmerged = false,\n\t\tchildren,\n\t\tgap,\n\t\tdirection = \"row\",\n\t\tseverity,\n\t\tsize,\n\t\tvariant,\n\t\thoverEffects,\n\t\t...rest\n\t}: ButtonGroupProps,\n\tref: Ref<HTMLDivElement>,\n) {\n\tconst ghostSize = useResponsiveMapping(size, GhostVariantSizeToGapMapping[direction])\n\t// without a larger gap, ghost buttons overlap\n\tconst mergedAutoGap = variant === \"ghost\" ? ghostSize : \"0\"\n\treturn (\n\t\t<Flex\n\t\t\tclassName={classNames(\"overmap-button-group\", className, {\n\t\t\t\t[styles.merged!]: merged,\n\t\t\t})}\n\t\t\tref={ref}\n\t\t\tgap={merged ? gap ?? mergedAutoGap : gap ?? \"2\"}\n\t\t\tdirection={direction}\n\t\t\tdata-direction={direction}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<ButtonGroupContext.Provider value={{ size, severity, variant, hoverEffects }}>\n\t\t\t\t{children}\n\t\t\t</ButtonGroupContext.Provider>\n\t\t</Flex>\n\t)\n})\n\n/** The ButtonGroup Component is a user interface element that groups multiple buttons together for improved user\n * interaction and visual clarity. It is commonly used to present related actions or options in a compact and organized\n * manner. The ButtonGroup supports all props of the RadixUI Flex layout component besides MarginProps,\n * further documentation for the Flex layout component can be found here https://www.radix-ui.com/themes/docs/components/flex */\nexport const ButtonGroup: FC<ButtonGroupProps> = memo(_ButtonGroup)\n","import { memo } from \"react\"\nimport { Dialog, Flex, IconButton } from \"@radix-ui/themes\"\nimport { Cross1Icon } from \"@radix-ui/react-icons\"\nimport { DialogContentProps } from \"./typings\"\n\nexport const DialogContent = memo(function DialogContent(props: DialogContentProps) {\n\tconst { title, description, content, closeDialog } = props\n\treturn (\n\t\t<Flex direction=\"column\" gap=\"2\">\n\t\t\t<Flex direction=\"column\" gap=\"1\">\n\t\t\t\t<Flex justify=\"between\">\n\t\t\t\t\t<Dialog.Title mb=\"0\">{title}</Dialog.Title>\n\t\t\t\t\t<Dialog.Close>\n\t\t\t\t\t\t<IconButton color=\"gray\" variant=\"ghost\" aria-label=\"Close\">\n\t\t\t\t\t\t\t<Cross1Icon />\n\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t</Dialog.Close>\n\t\t\t\t</Flex>\n\t\t\t\t<Dialog.Description>{description}</Dialog.Description>\n\t\t\t</Flex>\n\t\t\t{content(closeDialog)}\n\t\t</Flex>\n\t)\n})\n","import { memo, useState, useCallback } from \"react\"\nimport { Dialog as RadixDialog } from \"@radix-ui/themes\"\nimport { DialogContent } from \"./DialogContent\"\nimport { CloseDialogWithOptions, DialogProps } from \"./typings\"\n\n/**\n * Display or collect information in a modal. Unlike the `AlertDialog`, the `Dialog`'s can be nested\n * and close when clicking outside of the dialog content.\n */\nexport const Dialog = memo(function Dialog(props: DialogProps) {\n\tconst { children, size, onOpen, onCloseInterrupt, ...contentProps } = props\n\tconst [open, setOpen] = useState(false)\n\n\tconst handleOpenChange = useCallback(\n\t\t(next: boolean) => {\n\t\t\tif (next && onOpen) {\n\t\t\t\tonOpen()\n\t\t\t} else if (!next && onCloseInterrupt) {\n\t\t\t\t// closes the dialog, bypassing the checks in `handleOpenChange`\n\t\t\t\tconst confirmClose = () => setOpen(false)\n\n\t\t\t\t// if onCloseInterrupt is passed, bypass the standard close behavior and require\n\t\t\t\t// the passed `confirmClose` to close the dialog\n\t\t\t\treturn onCloseInterrupt(confirmClose)\n\t\t\t}\n\n\t\t\tsetOpen(next)\n\t\t},\n\t\t[onOpen, onCloseInterrupt],\n\t)\n\n\tconst closeDialog = useCallback<CloseDialogWithOptions>(\n\t\t(options) => {\n\t\t\tif (options?.force) {\n\t\t\t\t// bypass the checks in the `handleOpenChange` function\n\t\t\t\treturn setOpen(false)\n\t\t\t}\n\n\t\t\thandleOpenChange(false)\n\t\t},\n\t\t[handleOpenChange],\n\t)\n\n\treturn (\n\t\t<RadixDialog.Root open={open} onOpenChange={handleOpenChange}>\n\t\t\t<RadixDialog.Content size={size}>\n\t\t\t\t<DialogContent closeDialog={closeDialog} {...contentProps} />\n\t\t\t</RadixDialog.Content>\n\n\t\t\t{children(RadixDialog.Trigger)}\n\t\t</RadixDialog.Root>\n\t)\n})\n","import { AlertDialog, Flex } from \"@radix-ui/themes\"\nimport { AlertDialogStandardContent } from \"./typings\"\nimport { Button } from \"../../Buttons\"\n\n// remove the margin-bottom from the title so that Flex works as expected\nexport const Title: typeof AlertDialog.Title = ((props) => (\n\t<AlertDialog.Title mb=\"0\" {...props} />\n)) as typeof AlertDialog.Title\n\nexport const AlertDialogContent = (props: AlertDialogStandardContent) => {\n\tconst { title, description, actionText = \"Confirm\", cancelText = \"Cancel\", onAction, onCancel, severity } = props\n\treturn (\n\t\t<Flex direction=\"column\" gap=\"2\">\n\t\t\t<Flex direction=\"column\" gap=\"1\">\n\t\t\t\t<Title>{title}</Title>\n\t\t\t\t<AlertDialog.Description>{description}</AlertDialog.Description>\n\t\t\t</Flex>\n\n\t\t\t<Flex gap=\"3\" mt=\"4\" justify=\"end\">\n\t\t\t\t<AlertDialog.Cancel>\n\t\t\t\t\t<Button variant=\"soft\" severity=\"info\" onClick={onCancel}>\n\t\t\t\t\t\t{cancelText}\n\t\t\t\t\t</Button>\n\t\t\t\t</AlertDialog.Cancel>\n\t\t\t\t<AlertDialog.Action>\n\t\t\t\t\t<Button variant=\"solid\" severity={severity} onClick={onAction}>\n\t\t\t\t\t\t{actionText}\n\t\t\t\t\t</Button>\n\t\t\t\t</AlertDialog.Action>\n\t\t\t</Flex>\n\t\t</Flex>\n\t)\n}\n","import { memo, useMemo } from \"react\"\nimport { AlertDialog as RadixAlertDialog } from \"@radix-ui/themes\"\nimport { AlertDialogContentHelpers, AlertDialogProps } from \"./typings\"\nimport { AlertDialogContent, Title } from \"./AlertDialogContent\"\n\n/**\n * The AlertDialog is used to confirm an action or prompt the user for a decision.\n * Unlike the Dialog, the AlertDialog is not dismissible by clicking outside of the dialog, nor can it be nested.\n *\n * To use, place the `AlertDialogProvider` at the root of your app and use the `useAlertDialog` hook to open the dialog.\n *\n * To set the content of the dialog, use the `content` prop or pass values for the `title`, `description`, and `onAction` props.\n */\nexport const AlertDialog = memo(function AlertDialog(props: AlertDialogProps) {\n\tconst { open, setOpen, children, ...contentProps } = props\n\n\tconst helpers: AlertDialogContentHelpers = useMemo(() => {\n\t\treturn {\n\t\t\tclose: () => setOpen(false),\n\t\t\tTitle,\n\t\t\tDescription: RadixAlertDialog.Description,\n\t\t}\n\t}, [setOpen])\n\n\treturn (\n\t\t<RadixAlertDialog.Root open={open} onOpenChange={setOpen}>\n\t\t\t<RadixAlertDialog.Content>\n\t\t\t\t{\"content\" in contentProps ? contentProps.content(helpers) : <AlertDialogContent {...contentProps} />}\n\t\t\t</RadixAlertDialog.Content>\n\t\t\t{children}\n\t\t</RadixAlertDialog.Root>\n\t)\n})\n","import { createContext, memo, useState, useCallback } from \"react\"\nimport { AlertDialogContextType, AlertDialogOptions } from \"./typings\"\nimport { AlertDialog } from \"./AlertDialog\"\n\ninterface AlertDialogProviderProps {\n\tchildren: React.ReactNode\n}\n\nexport const AlertDialogContent = createContext<AlertDialogContextType>(() => {\n\tthrow new Error(\"No AlertDialogProvider found\")\n})\n\nconst initialState: AlertDialogOptions = {\n\tcontent: () => null,\n}\n\nexport const AlertDialogProvider = memo(function AlertDialogProvider({ children }: AlertDialogProviderProps) {\n\tconst [open, setOpen] = useState(false)\n\tconst [state, setState] = useState<AlertDialogOptions>(initialState)\n\n\tconst openDialog = useCallback<AlertDialogContextType>(\n\t\t(options) => {\n\t\t\tif (open) throw new Error(\"AlertDialog is already open\")\n\n\t\t\tsetState(options)\n\t\t\tsetOpen(true)\n\t\t},\n\t\t[open],\n\t)\n\n\treturn (\n\t\t<AlertDialog open={open} setOpen={setOpen} {...state}>\n\t\t\t<AlertDialogContent.Provider value={openDialog}>{children}</AlertDialogContent.Provider>\n\t\t</AlertDialog>\n\t)\n})\n","import { useContext } from \"react\"\nimport { AlertDialogContent } from \"./context\"\n\nexport const useAlertDialog = () => {\n\treturn useContext(AlertDialogContent)\n}\n","import React, { FC, forwardRef } from \"react\"\nimport { Select as RadixSelect } from \"@radix-ui/themes\"\nimport classNames from \"classnames\"\nimport { useResponsiveMapping, useSeverityColor } from \"../utils.ts\"\nimport { SizeMapping } from \"../constants.ts\"\nimport { SelectItemProps, SelectProps } from \"./typings.ts\"\n\nimport styles from \"./Select.module.sass\"\n\nconst _Select = forwardRef(function Select(\n\t{\n\t\tclassName,\n\t\tfluid,\n\t\tsize = \"medium\",\n\t\tvariant = \"surface\",\n\t\tseverity = \"primary\",\n\t\tplaceholder = \"Select\",\n\t\tside,\n\t\titems = [],\n\t\tvalue,\n\t\tid,\n\t\t...rest\n\t}: SelectProps,\n\tref: React.Ref<HTMLButtonElement>,\n) {\n\tconst mappedSize = useResponsiveMapping(size, SizeMapping)\n\tconst color = useSeverityColor(severity)\n\n\t// TODO: extend functionality to support grouping of items\n\t// TODO: remove key change based on value once placeholder issue it fixed in radix-ui/themes\n\treturn (\n\t\t<RadixSelect.Root size={mappedSize} {...rest} key={value === undefined ? 1 : 0} value={value}>\n\t\t\t<RadixSelect.Trigger\n\t\t\t\tclassName={classNames(className, {\n\t\t\t\t\t[styles.fluid!]: fluid,\n\t\t\t\t})}\n\t\t\t\tid={id}\n\t\t\t\tref={ref}\n\t\t\t\tvariant={variant}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tcolor={color}\n\t\t\t/>\n\t\t\t<RadixSelect.Content\n\t\t\t\tside={side}\n\t\t\t\tposition=\"popper\"\n\t\t\t\tvariant={variant !== \"surface\" ? \"soft\" : \"solid\"}\n\t\t\t\tcolor={color}\n\t\t\t>\n\t\t\t\t{items.map(({ label, value, ...rest }: SelectItemProps) => (\n\t\t\t\t\t<RadixSelect.Item key={value} value={value} {...rest}>\n\t\t\t\t\t\t{label}\n\t\t\t\t\t</RadixSelect.Item>\n\t\t\t\t))}\n\t\t\t</RadixSelect.Content>\n\t\t</RadixSelect.Root>\n\t)\n})\nexport const Select: FC<SelectProps> = React.memo(_Select)\n","import React, { FC, forwardRef } from \"react\"\nimport { Text, TextField as RadixTextField } from \"@radix-ui/themes\"\nimport classNames from \"classnames\"\nimport { useResponsiveMapping, useSeverityColor } from \"../utils.ts\"\nimport { SizeMapping } from \"../constants.ts\"\nimport { InputProps } from \"./typings.ts\"\n\nimport styles from \"./Input.module.sass\"\n\nconst _Input = forwardRef(function Input(\n\t{\n\t\tclassName,\n\t\tleftIcon,\n\t\trightIcon,\n\t\tsize = \"medium\",\n\t\tshowInputLength,\n\t\tvalue,\n\t\tvariant,\n\t\tseverity = \"primary\",\n\t\t...rest\n\t}: InputProps,\n\tref: React.Ref<HTMLInputElement>,\n) {\n\tconst computedSize = useResponsiveMapping(size, SizeMapping)\n\n\tconst color = useSeverityColor(severity)\n\n\tconst displayInputLength = showInputLength || (showInputLength === undefined && rest.maxLength !== undefined)\n\tconst valueAsString = value !== undefined ? value.toString() : undefined\n\n\treturn (\n\t\t<RadixTextField.Root\n\t\t\tclassName={classNames({\n\t\t\t\t[styles.accommodateCharCount!]: displayInputLength,\n\t\t\t})}\n\t\t\tsize={computedSize}\n\t\t\tvariant={variant}\n\t\t\tcolor={color}\n\t\t>\n\t\t\t<RadixTextField.Slot>{leftIcon}</RadixTextField.Slot>\n\t\t\t<RadixTextField.Input\n\t\t\t\tclassName={classNames(styles.default, className, {\n\t\t\t\t\t[styles.noLeftIcon!]: !leftIcon,\n\t\t\t\t\t[styles.noRightIcon!]: !rightIcon,\n\t\t\t\t})}\n\t\t\t\tref={ref}\n\t\t\t\tsize={computedSize}\n\t\t\t\tvariant={variant}\n\t\t\t\tcolor={color}\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t\t<RadixTextField.Slot>{rightIcon}</RadixTextField.Slot>\n\t\t\t{displayInputLength && (\n\t\t\t\t<Text as=\"p\" className={styles.charCount} size=\"1\" color=\"gray\">\n\t\t\t\t\t{rest.maxLength !== undefined\n\t\t\t\t\t\t? `${valueAsString?.length}/${rest.maxLength}`\n\t\t\t\t\t\t: `${valueAsString?.length}`}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t</RadixTextField.Root>\n\t)\n})\nexport const Input: FC<InputProps> = React.memo(_Input)\n","import React, { forwardRef, FC } from \"react\"\nimport { Popover as RadixPopover } from \"@radix-ui/themes\"\nimport { PopoverProps } from \"./typings.ts\"\n\nconst _Popover = forwardRef(function Popover(\n\t{ defaultOpen = false, modal = false, content, children, ...rest }: PopoverProps,\n\tref: React.Ref<HTMLDivElement>,\n) {\n\treturn (\n\t\t<RadixPopover.Root defaultOpen={defaultOpen} modal={modal}>\n\t\t\t<RadixPopover.Trigger>{children}</RadixPopover.Trigger>\n\t\t\t<RadixPopover.Content ref={ref} {...rest}>\n\t\t\t\t{content(RadixPopover.Close)}\n\t\t\t</RadixPopover.Content>\n\t\t</RadixPopover.Root>\n\t)\n})\nexport const Popover: FC<PopoverProps> = React.memo(_Popover)\n","import { FC, forwardRef, memo, Ref, useMemo } from \"react\"\nimport { Text, TextArea as RadixTextArea } from \"@radix-ui/themes\"\nimport classNames from \"classnames\"\nimport { TextAreaProps } from \"./typings.ts\"\n\nimport styles from \"./Textarea.module.sass\"\nimport { useSeverityColor } from \"../utils.ts\"\n\nconst _TextArea = forwardRef(function TextArea(\n\t{ className, showInputLength, inputLengthTemplate, value, severity = \"primary\", resize, ...rest }: TextAreaProps,\n\tref: Ref<HTMLTextAreaElement>,\n) {\n\tconst severityColor = useSeverityColor(severity)\n\tconst infoColor = useSeverityColor(\"info\")\n\n\tconst displayInputLength =\n\t\tshowInputLength ||\n\t\t(showInputLength === undefined && (rest.maxLength !== undefined || rest.minLength !== undefined))\n\tconst valueAsString = value !== undefined ? value.toString() : \"\"\n\n\tconst displayInputLengthValue = useMemo(() => {\n\t\tif (inputLengthTemplate) {\n\t\t\tlet template = inputLengthTemplate.replace(\"{current}\", valueAsString.length.toString())\n\t\t\tif (rest.minLength !== undefined) {\n\t\t\t\ttemplate = template.replace(\"{min}\", rest.minLength.toString())\n\t\t\t}\n\t\t\tif (rest.maxLength !== undefined) {\n\t\t\t\ttemplate = template.replace(\"{max}\", rest.maxLength.toString())\n\t\t\t}\n\t\t\treturn template\n\t\t}\n\t\treturn valueAsString.length\n\t}, [inputLengthTemplate, rest.maxLength, rest.minLength, valueAsString.length])\n\n\treturn (\n\t\t<>\n\t\t\t<RadixTextArea\n\t\t\t\tclassName={classNames(\"overmap-textarea\", className)}\n\t\t\t\tstyle={{ resize: resize }}\n\t\t\t\tref={ref}\n\t\t\t\tvalue={value}\n\t\t\t\tcolor={severityColor}\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t\t{displayInputLength && (\n\t\t\t\t<Text as=\"p\" className={styles.charCount} color={infoColor} align=\"right\">\n\t\t\t\t\t{displayInputLengthValue}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t</>\n\t)\n})\n\n/** The TextArea Component is a user interface element that allows users to input and edit multi-line text.\n It is commonly used in forms, chat applications, and other scenarios where longer text inputs are required.\n This TextArea is a wrapper of the RadixUI TextArea component found here https://www.radix-ui.com/themes/docs/components/text-area.\n */\nexport const TextArea: FC<TextAreaProps> = memo(_TextArea)\n","import { FC, forwardRef, memo, Ref } from \"react\"\nimport { Item, Root } from \"@radix-ui/react-toggle-group\"\nimport { ToggleGroupItemProps, ToggleGroupSingleProps } from \"./typings.ts\"\nimport { IconButton } from \"../Buttons\"\nimport classNames from \"classnames\"\nimport { ButtonGroup } from \"../ButtonGroup\"\n\nconst _ToggleGroup = forwardRef(function ToggleGroup(\n\t{\n\t\tclassName,\n\t\titems,\n\t\torientation = \"horizontal\",\n\t\tmerged = true,\n\t\tvalue,\n\t\tseverity,\n\t\tgap,\n\t\tsize,\n\t\t...rest\n\t}: ToggleGroupSingleProps,\n\tref: Ref<HTMLDivElement>,\n) {\n\treturn (\n\t\t<Root\n\t\t\tclassName={classNames(\"overmap-toggle-group\", className)}\n\t\t\tref={ref}\n\t\t\tvalue={value}\n\t\t\torientation={orientation}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<ButtonGroup\n\t\t\t\twidth=\"min-content\"\n\t\t\t\theight=\"min-content\"\n\t\t\t\tmerged={merged}\n\t\t\t\tdirection={orientation === \"vertical\" ? \"column\" : \"row\"}\n\t\t\t\tgap={gap}\n\t\t\t>\n\t\t\t\t{items.map(({ children, ...rest }: ToggleGroupItemProps) => (\n\t\t\t\t\t<Item asChild {...rest} key={rest.value}>\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tclassName={classNames(\"overmap-toggle-group-button\")}\n\t\t\t\t\t\t\taria-label={rest.value}\n\t\t\t\t\t\t\tseverity={severity}\n\t\t\t\t\t\t\tvariant={rest.value === value ? \"solid\" : \"soft\"}\n\t\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t</Item>\n\t\t\t\t))}\n\t\t\t</ButtonGroup>\n\t\t</Root>\n\t)\n})\n\n/** The Toggle Group Component is a user interface element that allows users to select a single option from a set of\n * mutually exclusive choices. It is commonly used in situations where users need to make a single selection from a\n * predefined list of options. This component is built using the ButtonGroup and IconButton components in combination\n * with the Radix Toggle Group primitive found here https://www.radix-ui.com/primitives/docs/components/toggle-group */\nexport const ToggleGroup: FC<ToggleGroupSingleProps> = memo(_ToggleGroup)\n","import { FC, forwardRef, memo, Ref, useCallback } from \"react\"\nimport * as RadixToast from \"@radix-ui/react-toast\"\nimport { Callout, Flex } from \"@radix-ui/themes\"\nimport { Cross2Icon, InfoCircledIcon } from \"@radix-ui/react-icons\"\nimport classNames from \"classnames\"\nimport { IconButton } from \"../Buttons\"\nimport { ToastProps, ToastProviderProps } from \"./typings.ts\"\nimport { useSeverityColor } from \"../utils.ts\"\n\nimport styles from \"./Toast.module.sass\"\n\nconst _Toast = forwardRef(function Toast(\n\t{ title, description, icon, severity = \"primary\", size, onClose, ...rest }: ToastProps,\n\tref: Ref<HTMLLIElement>,\n) {\n\tconst color = useSeverityColor(severity)\n\tconst handleOpenChange = useCallback(\n\t\t(open: boolean) => {\n\t\t\tif (!open && onClose) onClose()\n\t\t},\n\t\t[onClose],\n\t)\n\n\treturn (\n\t\t<RadixToast.Root asChild ref={ref} {...rest} onOpenChange={handleOpenChange}>\n\t\t\t<Callout.Root\n\t\t\t\tclassName={classNames(\"overmap-toast\", styles.wrapper)}\n\t\t\t\tvariant=\"surface\"\n\t\t\t\tcolor={color}\n\t\t\t\tsize={size}\n\t\t\t>\n\t\t\t\t<Flex width=\"100%\" align=\"center\" gap=\"4\" justify=\"between\">\n\t\t\t\t\t<Flex align=\"center\" gap=\"4\">\n\t\t\t\t\t\t<Callout.Icon>{icon || <InfoCircledIcon />}</Callout.Icon>\n\t\t\t\t\t\t<Flex direction=\"column\" gap=\"0\">\n\t\t\t\t\t\t\t<RadixToast.Title asChild>\n\t\t\t\t\t\t\t\t<Callout.Text weight=\"bold\">{title}</Callout.Text>\n\t\t\t\t\t\t\t</RadixToast.Title>\n\t\t\t\t\t\t\t<RadixToast.Description asChild>\n\t\t\t\t\t\t\t\t<Callout.Text weight=\"light\">{description}</Callout.Text>\n\t\t\t\t\t\t\t</RadixToast.Description>\n\t\t\t\t\t\t</Flex>\n\t\t\t\t\t</Flex>\n\t\t\t\t\t<RadixToast.Close asChild>\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tclassName={styles.closeButton}\n\t\t\t\t\t\t\taria-label=\"Close\"\n\t\t\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tseverity={severity}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Cross2Icon />\n\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t</RadixToast.Close>\n\t\t\t\t</Flex>\n\t\t\t</Callout.Root>\n\t\t</RadixToast.Root>\n\t)\n})\n\nexport const ToastProvider: FC<ToastProviderProps> = memo(function ToastProvider({\n\tchildren,\n\t...rest\n}: ToastProviderProps) {\n\treturn (\n\t\t<RadixToast.Provider swipeDirection=\"right\" swipeThreshold={75} {...rest}>\n\t\t\t{children}\n\t\t</RadixToast.Provider>\n\t)\n})\n\nexport const Toast: FC<ToastProps> = memo(_Toast)\nexport const ToastViewport: FC<RadixToast.ToastViewportProps> = RadixToast.Viewport\n","import { memo, createContext, useState, useCallback, FC } from \"react\"\nimport { IToastContext, SimpleToastMessage, ToastContextProviderProps, ToastProps } from \"./typings.ts\"\nimport { Toast, ToastProvider, ToastViewport } from \"./Toast.tsx\"\n\nexport const ToastContext = createContext({} as IToastContext)\n\nexport const ToastContextProvider: FC<ToastContextProviderProps> = memo(function ToastContextProvider({\n\tchildren,\n\t// Use this class to change where the viewport for the toasts should be\n\tviewportClass,\n\thotkey,\n\t// Default duration value for all Toasts\n\tduration = 10000,\n\t...rest\n}: ToastContextProviderProps) {\n\tconst [toasts, setToasts] = useState<ToastProps[]>([])\n\n\tconst showToast = useCallback((toastProps: ToastProps) => {\n\t\tsetToasts((prevToasts) => [...prevToasts, toastProps])\n\t}, [])\n\n\tconst showPrimary = useCallback(\n\t\t(simpleMessage: SimpleToastMessage) => {\n\t\t\tshowToast({ severity: \"primary\", ...simpleMessage })\n\t\t},\n\t\t[showToast],\n\t)\n\n\tconst showSuccess = useCallback(\n\t\t(simpleMessage: SimpleToastMessage) => {\n\t\t\tshowToast({ severity: \"success\", ...simpleMessage })\n\t\t},\n\t\t[showToast],\n\t)\n\n\tconst showError = useCallback(\n\t\t(simpleMessage: SimpleToastMessage) => {\n\t\t\tshowToast({ severity: \"danger\", ...simpleMessage })\n\t\t},\n\t\t[showToast],\n\t)\n\n\tconst showInfo = useCallback(\n\t\t(simpleMessage: SimpleToastMessage) => {\n\t\t\tshowToast({ severity: \"info\", ...simpleMessage })\n\t\t},\n\t\t[showToast],\n\t)\n\n\tconst deleteToastAtIndex = useCallback(\n\t\t(index: number) => {\n\t\t\tconst tempToasts = [...toasts]\n\t\t\ttempToasts.splice(index, 1)\n\t\t\tsetToasts(() => tempToasts)\n\t\t},\n\t\t[toasts],\n\t)\n\n\tconst toastContextValue = {\n\t\tshowToast,\n\t\tshowPrimary,\n\t\tshowSuccess,\n\t\tshowError,\n\t\tshowInfo,\n\t}\n\n\treturn (\n\t\t<ToastContext.Provider value={toastContextValue}>\n\t\t\t<ToastProvider duration={duration} {...rest}>\n\t\t\t\t<ToastViewport className={viewportClass} hotkey={hotkey} />\n\t\t\t\t{toasts.map((toastProps, index) => (\n\t\t\t\t\t<Toast key={index} {...toastProps} onClose={() => deleteToastAtIndex(index)} />\n\t\t\t\t))}\n\t\t\t\t{children}\n\t\t\t</ToastProvider>\n\t\t</ToastContext.Provider>\n\t)\n})\n","import { ElementRef, FC, ForwardRefExoticComponent, forwardRef, memo } from \"react\"\nimport { MarginProps, Text as RadixText } from \"@radix-ui/themes\"\nimport classNames from \"classnames\"\nimport styles from \"./ Text.module.sass\"\nimport { Severity } from \"../typings\"\nimport { useSeverityColor } from \"..\"\n\ntype RadixTextProps = typeof RadixText extends ForwardRefExoticComponent<infer P> ? P : never\n\nexport type TextProps = Omit<RadixTextProps, keyof MarginProps | \"ref\" | \"asChild\" | \"color\"> & {\n\t/** If true, the text will not wrap, but instead will truncate with a text overflow ellipsis.\n\t * @default false\n\t */\n\tnoWrap?: boolean\n\tseverity?: Severity\n\t/** @default span */\n\tas?: RadixTextProps[\"as\"]\n\t/** @default 3 */\n\tsize?: RadixTextProps[\"size\"]\n}\n\n/**\n * A foundational text primitive.\n *\n * Use the `as` prop to render text as a `p`, `label`, `div` or `span`. This prop is purely semantic and does not alter visual appearance.\n *\n * For the complete documentation, refer to https://www.radix-ui.com/themes/docs/components/text.\n */\nexport const Text: FC<TextProps> = memo(\n\tforwardRef<ElementRef<\"span\">, TextProps>(({ className, noWrap, severity, as, ...props }, ref) => {\n\t\tconst color = useSeverityColor(severity)\n\t\treturn (\n\t\t\t<RadixText\n\t\t\t\tref={ref}\n\t\t\t\t// bypassing incorrect TS error\n\t\t\t\tas={as as undefined}\n\t\t\t\tclassName={classNames(className, { [styles.noWrap!]: noWrap })}\n\t\t\t\tcolor={color}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t)\n\t}),\n)\n","import { Theme } from \"@radix-ui/themes\"\nimport { ComponentProps, FC, forwardRef, memo } from \"react\"\n// css file contains updates to the default radix tokens\nimport \"./DefaultTheme.css\"\n\nexport type DefaultThemeProps = ComponentProps<typeof Theme>\n\nexport const DefaultTheme: FC<DefaultThemeProps> = memo(\n\tforwardRef<HTMLDivElement, DefaultThemeProps>((props, ref) => {\n\t\tconst { panelBackground = \"solid\", radius = \"full\", ...rest } = props\n\t\treturn <Theme panelBackground={panelBackground} radius={radius} ref={ref} {...rest} />\n\t}),\n)\n"],"names":["hasOwn","classNames","classes","i","arg","argType","inner","key","module","useResponsiveMapping","value","mapping","useMemo","breakpoint","nonThemeSeverityMapping","useSeverityColor","severity","theme","useThemeContext","_Badge","forwardRef","className","color","children","rest","ref","severityColor","jsx","RadixBadge","Badge","memo","hoverEffectClassNameMapping","styles","SizeMapping","ButtonGroupContext","createContext","useButtonGroupContext","useContext","_Button","props","buttonGroupContext","fluid","size","hoverEffects","variant","hoverEffectClasses","hoverEffect","RadixButton","Button","React","RadixIconButton","IconButton","GhostVariantSizeToGapMapping","_ButtonGroup","merged","gap","direction","ghostSize","mergedAutoGap","Flex","ButtonGroup","DialogContent","title","description","content","closeDialog","jsxs","Dialog","Cross1Icon","onOpen","onCloseInterrupt","contentProps","open","setOpen","useState","handleOpenChange","useCallback","next","options","RadixDialog","Title","AlertDialog","AlertDialogContent","actionText","cancelText","onAction","onCancel","helpers","RadixAlertDialog","initialState","AlertDialogProvider","state","setState","openDialog","useAlertDialog","_Select","placeholder","side","items","id","mappedSize","createElement","RadixSelect","label","Select","_Input","leftIcon","rightIcon","showInputLength","computedSize","displayInputLength","valueAsString","RadixTextField","Text","Input","_Popover","defaultOpen","modal","RadixPopover","Popover","_TextArea","inputLengthTemplate","resize","infoColor","displayInputLengthValue","template","Fragment","RadixTextArea","TextArea","_ToggleGroup","orientation","Root","Item","ToggleGroup","_Toast","icon","onClose","RadixToast","Callout","InfoCircledIcon","Cross2Icon","ToastProvider","Toast","ToastViewport","ToastContext","ToastContextProvider","viewportClass","hotkey","duration","toasts","setToasts","showToast","toastProps","prevToasts","showPrimary","simpleMessage","showSuccess","showError","showInfo","deleteToastAtIndex","index","tempToasts","toastContextValue","noWrap","as","RadixText","DefaultTheme","panelBackground","radius","Theme"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.umd.cjs","sources":["../node_modules/classnames/index.js","../src/utils.ts","../src/Badge/Badge.tsx","../src/Buttons/constants.ts","../src/constants.ts","../src/ButtonGroup/context.ts","../src/Buttons/Button.tsx","../src/Buttons/IconButton.tsx","../src/ButtonGroup/ButtonGroup.tsx","../src/Dialogs/Dialog/DialogContent.tsx","../src/Dialogs/Dialog/Dialog.tsx","../src/Dialogs/AlertDialog/AlertDialogContent.tsx","../src/Dialogs/AlertDialog/AlertDialog.tsx","../src/Dialogs/AlertDialog/context.tsx","../src/Dialogs/AlertDialog/hooks.ts","../src/Select/Select.tsx","../src/Input/Input.tsx","../src/Popover/Popover.tsx","../src/TextArea/TextArea.tsx","../src/ToggleGroup/ToggleGroup.tsx","../src/Toast/Toast.tsx","../src/Toast/ToastContext.tsx","../src/Text/Text.tsx","../src/Theme/DefaultTheme.tsx"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import { Responsive, ThemeOptions, useThemeContext } from \"@radix-ui/themes\"\nimport { useMemo } from \"react\"\nimport { Severity } from \"./typings\"\n\n// useResponsiveMapping is a helper function used to map the keys of a Radix Responsive type that can be understood\n// by a Radix component or primitive. The point of this is to leverage our own custom prop names and values while still\n// using Radix's built in Responsiveness functionality.\n/**\n * Returns an object with mapped key values or a single mapped value\n * @param value an object or string\n * @param mapping a Record mapping the object values of param value\n */\nexport function useResponsiveMapping<T extends string, K>(\n\tvalue: Responsive<T> | undefined,\n\tmapping: Record<T, K>,\n): Responsive<K> | undefined {\n\treturn useMemo(() => {\n\t\tif (value === undefined) return undefined\n\t\tif (typeof value === \"object\") {\n\t\t\tif (!(\"initial\" in value)) {\n\t\t\t\t// Responsive objects require an 'initial' property to be set that acts as a default\n\t\t\t\tthrow new Error(\"Expected initial property to be set in Responsive object\")\n\t\t\t}\n\t\t\treturn Object.fromEntries(Object.entries(value).map(([breakpoint, value]) => [breakpoint, mapping[value]]))\n\t\t} else {\n\t\t\treturn mapping[value]\n\t\t}\n\t}, [mapping, value])\n}\n\nconst nonThemeSeverityMapping = {\n\tsuccess: \"green\",\n\tdanger: \"red\",\n\tinfo: \"gray\",\n} as const\n\nexport type AccentColor = ThemeOptions[\"accentColor\"]\n\n/** Performs theme-sensitive mapping of a severity to radix color */\nexport const useSeverityColor = (severity?: Severity): AccentColor | undefined => {\n\tconst theme = useThemeContext()\n\tif (!severity) return undefined\n\tif (severity === \"primary\") return theme.accentColor\n\n\treturn nonThemeSeverityMapping[severity]\n}\n","import { Badge as RadixBadge } from \"@radix-ui/themes\"\nimport { FC, forwardRef, memo, Ref } from \"react\"\nimport { BadgeProps } from \"./typings.ts\"\nimport classNames from \"classnames\"\nimport { useSeverityColor } from \"../utils.ts\"\n\nconst _Badge = forwardRef(function Badge(\n\t{ className, severity = \"primary\", color, children, ...rest }: BadgeProps,\n\tref: Ref<HTMLSpanElement>,\n) {\n\tconst severityColor = useSeverityColor(severity)\n\n\treturn (\n\t\t<RadixBadge\n\t\t\tclassName={classNames(\"overmap-badge\", className)}\n\t\t\tref={ref}\n\t\t\tcolor={color ? color : severityColor}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</RadixBadge>\n\t)\n})\n\n/** The Badge Component is a user interface element that provides visual feedback, typically displaying a small amount\n * of information. It is commonly used to indicate counts, statuses, or labels in a concise and visually appealing\n * manner. This Badge components wraps the Badge component from Radix-ui found here https://www.radix-ui.com/themes/docs/components/badge */\nexport const Badge: FC<BadgeProps> = memo(_Badge)\n","import { ButtonHoverEffect } from \"./typings.ts\"\nimport styles from \"./Button.module.sass\"\n\nexport const hoverEffectClassNameMapping: Record<ButtonHoverEffect, string | undefined> = {\n\tspin90Clockwise: styles.hoverSpin90Clockwise,\n\tspin180Clockwise: styles.hoverSpin180Clockwise,\n\tspin360Clockwise: styles.hoverSpin360Clockwise,\n}\n","import { Size } from \"./typings.ts\"\n\n// Mappings\nexport const SizeMapping: Record<Size, \"1\" | \"2\" | \"3\"> = {\n\tsmall: \"1\",\n\tmedium: \"2\",\n\tlarge: \"3\",\n}\n","import { ButtonProps } from \"../Buttons/typings\"\nimport { createContext, useContext } from \"react\"\n\nexport type ButtonContextType = Pick<ButtonProps, \"variant\" | \"size\" | \"severity\" | \"hoverEffects\">\n\nexport const ButtonGroupContext = createContext<ButtonContextType>({})\n\nexport const useButtonGroupContext = () => useContext(ButtonGroupContext)\n","import React, { FC, forwardRef } from \"react\"\nimport { ButtonProps } from \"./typings.ts\"\nimport styles from \"./Button.module.sass\"\nimport classNames from \"classnames\"\nimport { Button as RadixButton } from \"@radix-ui/themes\"\nimport { hoverEffectClassNameMapping } from \"./constants.ts\"\nimport { useResponsiveMapping, useSeverityColor } from \"../utils.ts\"\nimport { SizeMapping } from \"../constants.ts\"\nimport { useButtonGroupContext } from \"../ButtonGroup/context.ts\"\n\nconst _Button = forwardRef(function Button(props: ButtonProps, ref: React.Ref<HTMLButtonElement>) {\n\tconst buttonGroupContext = useButtonGroupContext()\n\tconst {\n\t\tclassName,\n\t\tfluid,\n\t\tsize = buttonGroupContext.size ?? \"medium\",\n\t\tseverity = buttonGroupContext.severity ?? \"primary\",\n\t\thoverEffects = buttonGroupContext.hoverEffects ?? [],\n\t\tvariant = buttonGroupContext.variant,\n\t\t...rest\n\t} = props\n\tconst color = useSeverityColor(severity)\n\tconst hoverEffectClasses = hoverEffects.map((hoverEffect) => {\n\t\treturn hoverEffectClassNameMapping[hoverEffect]\n\t})\n\n\treturn (\n\t\t<RadixButton\n\t\t\tref={ref}\n\t\t\ttype=\"button\"\n\t\t\tclassName={classNames(className, hoverEffectClasses, {\n\t\t\t\t[styles.fluid!]: fluid,\n\t\t\t})}\n\t\t\tcolor={color}\n\t\t\tsize={useResponsiveMapping(size, SizeMapping)}\n\t\t\tvariant={variant}\n\t\t\t{...rest}\n\t\t/>\n\t)\n})\n\n// using FC so storybook correctly displays the component props\nconst Button: FC<ButtonProps> = React.memo(_Button)\n\nexport default Button\n","import React, { FC, forwardRef } from \"react\"\nimport { ButtonProps } from \"./typings.ts\"\nimport classNames from \"classnames\"\nimport { IconButton as RadixIconButton } from \"@radix-ui/themes\"\nimport { hoverEffectClassNameMapping } from \"./constants.ts\"\nimport { useResponsiveMapping, useSeverityColor } from \"../utils.ts\"\nimport { SizeMapping } from \"../constants.ts\"\nimport { useButtonGroupContext } from \"../ButtonGroup/context.ts\"\n\nimport styles from \"./Button.module.sass\"\n\ninterface IconButtonProps extends Omit<ButtonProps, \"fluid\"> {\n\t\"aria-label\": string\n}\n\nconst _Button = forwardRef(function Button(props: IconButtonProps, ref: React.Ref<HTMLButtonElement>) {\n\tconst buttonGroupContext = useButtonGroupContext()\n\tconst {\n\t\tclassName,\n\t\tchildren,\n\t\tsize = buttonGroupContext.size ?? \"medium\",\n\t\tseverity = buttonGroupContext.severity ?? \"primary\",\n\t\thoverEffects = buttonGroupContext.hoverEffects ?? [],\n\t\tvariant = buttonGroupContext.variant,\n\t\t...rest\n\t} = props\n\tconst color = useSeverityColor(severity)\n\tconst hoverEffectClasses =\n\t\thoverEffects?.map((hoverEffect) => {\n\t\t\treturn hoverEffectClassNameMapping[hoverEffect]\n\t\t}) || []\n\n\treturn (\n\t\t<RadixIconButton\n\t\t\tclassName={classNames(className, hoverEffectClasses, styles.default)}\n\t\t\tref={ref}\n\t\t\tcolor={color}\n\t\t\tsize={useResponsiveMapping(size, SizeMapping)}\n\t\t\tvariant={variant}\n\t\t\ttype=\"button\"\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</RadixIconButton>\n\t)\n})\n\n// using FC so storybook correctly displays the component props\n/** The `IconButton` is a `Button` variant specifically designed for single icons. */\nconst IconButton: FC<IconButtonProps> = React.memo(_Button)\n\nexport default IconButton\n","import { FC, forwardRef, memo, Ref } from \"react\"\nimport { Flex } from \"@radix-ui/themes\"\nimport classNames from \"classnames\"\nimport { ButtonGroupProps } from \"./typings.ts\"\n\nimport styles from \"./ButtonGroup.module.sass\"\nimport { Size } from \"../typings.ts\"\nimport { useResponsiveMapping } from \"../utils.ts\"\nimport { ButtonGroupContext } from \"./context.ts\"\n\nconst GhostVariantSizeToGapMapping = {\n\trow: { small: \"4\", medium: \"4\", large: \"5\" },\n\tcolumn: { small: \"2\", medium: \"3\", large: \"4\" },\n} as const satisfies Record<\"row\" | \"column\", Record<Size, ButtonGroupProps[\"gap\"]>>\n\nconst _ButtonGroup = forwardRef(function ButtonGroup(\n\t{\n\t\tclassName,\n\t\tmerged = false,\n\t\tchildren,\n\t\tgap,\n\t\tdirection = \"row\",\n\t\tseverity,\n\t\tsize,\n\t\tvariant,\n\t\thoverEffects,\n\t\t...rest\n\t}: ButtonGroupProps,\n\tref: Ref<HTMLDivElement>,\n) {\n\tconst ghostSize = useResponsiveMapping(size, GhostVariantSizeToGapMapping[direction])\n\t// without a larger gap, ghost buttons overlap\n\tconst mergedAutoGap = variant === \"ghost\" ? ghostSize : \"0\"\n\treturn (\n\t\t<Flex\n\t\t\tclassName={classNames(\"overmap-button-group\", className, {\n\t\t\t\t[styles.merged!]: merged,\n\t\t\t})}\n\t\t\tref={ref}\n\t\t\tgap={merged ? gap ?? mergedAutoGap : gap ?? \"2\"}\n\t\t\tdirection={direction}\n\t\t\tdata-direction={direction}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<ButtonGroupContext.Provider value={{ size, severity, variant, hoverEffects }}>\n\t\t\t\t{children}\n\t\t\t</ButtonGroupContext.Provider>\n\t\t</Flex>\n\t)\n})\n\n/** The ButtonGroup Component is a user interface element that groups multiple buttons together for improved user\n * interaction and visual clarity. It is commonly used to present related actions or options in a compact and organized\n * manner. The ButtonGroup supports all props of the RadixUI Flex layout component besides MarginProps,\n * further documentation for the Flex layout component can be found here https://www.radix-ui.com/themes/docs/components/flex */\nexport const ButtonGroup: FC<ButtonGroupProps> = memo(_ButtonGroup)\n","import { memo } from \"react\"\nimport { Dialog, Flex, IconButton } from \"@radix-ui/themes\"\nimport { Cross1Icon } from \"@radix-ui/react-icons\"\nimport { DialogContentProps } from \"./typings\"\n\nexport const DialogContent = memo(function DialogContent(props: DialogContentProps) {\n\tconst { title, description, content, closeDialog } = props\n\treturn (\n\t\t<Flex direction=\"column\" gap=\"2\">\n\t\t\t<Flex direction=\"column\" gap=\"1\">\n\t\t\t\t<Flex justify=\"between\">\n\t\t\t\t\t<Dialog.Title mb=\"0\">{title}</Dialog.Title>\n\t\t\t\t\t<Dialog.Close>\n\t\t\t\t\t\t<IconButton color=\"gray\" variant=\"ghost\" aria-label=\"Close\">\n\t\t\t\t\t\t\t<Cross1Icon />\n\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t</Dialog.Close>\n\t\t\t\t</Flex>\n\t\t\t\t<Dialog.Description>{description}</Dialog.Description>\n\t\t\t</Flex>\n\t\t\t{content(closeDialog)}\n\t\t</Flex>\n\t)\n})\n","import { memo, useState, useCallback } from \"react\"\nimport { Dialog as RadixDialog } from \"@radix-ui/themes\"\nimport { DialogContent } from \"./DialogContent\"\nimport { CloseDialogWithOptions, DialogProps } from \"./typings\"\n\n/**\n * Display or collect information in a modal. Unlike the `AlertDialog`, the `Dialog`'s can be nested\n * and close when clicking outside of the dialog content.\n */\nexport const Dialog = memo(function Dialog(props: DialogProps) {\n\tconst { children, size, onOpen, onCloseInterrupt, ...contentProps } = props\n\tconst [open, setOpen] = useState(false)\n\n\tconst handleOpenChange = useCallback(\n\t\t(next: boolean) => {\n\t\t\tif (next && onOpen) {\n\t\t\t\tonOpen()\n\t\t\t} else if (!next && onCloseInterrupt) {\n\t\t\t\t// closes the dialog, bypassing the checks in `handleOpenChange`\n\t\t\t\tconst confirmClose = () => setOpen(false)\n\n\t\t\t\t// if onCloseInterrupt is passed, bypass the standard close behavior and require\n\t\t\t\t// the passed `confirmClose` to close the dialog\n\t\t\t\treturn onCloseInterrupt(confirmClose)\n\t\t\t}\n\n\t\t\tsetOpen(next)\n\t\t},\n\t\t[onOpen, onCloseInterrupt],\n\t)\n\n\tconst closeDialog = useCallback<CloseDialogWithOptions>(\n\t\t(options) => {\n\t\t\tif (options?.force) {\n\t\t\t\t// bypass the checks in the `handleOpenChange` function\n\t\t\t\treturn setOpen(false)\n\t\t\t}\n\n\t\t\thandleOpenChange(false)\n\t\t},\n\t\t[handleOpenChange],\n\t)\n\n\treturn (\n\t\t<RadixDialog.Root open={open} onOpenChange={handleOpenChange}>\n\t\t\t<RadixDialog.Content size={size}>\n\t\t\t\t<DialogContent closeDialog={closeDialog} {...contentProps} />\n\t\t\t</RadixDialog.Content>\n\n\t\t\t{children(RadixDialog.Trigger)}\n\t\t</RadixDialog.Root>\n\t)\n})\n","import { AlertDialog, Flex } from \"@radix-ui/themes\"\nimport { AlertDialogStandardContent } from \"./typings\"\nimport { Button } from \"../../Buttons\"\n\n// remove the margin-bottom from the title so that Flex works as expected\nexport const Title: typeof AlertDialog.Title = ((props) => (\n\t<AlertDialog.Title mb=\"0\" {...props} />\n)) as typeof AlertDialog.Title\n\nexport const AlertDialogContent = (props: AlertDialogStandardContent) => {\n\tconst { title, description, actionText = \"Confirm\", cancelText = \"Cancel\", onAction, onCancel, severity } = props\n\treturn (\n\t\t<Flex direction=\"column\" gap=\"2\">\n\t\t\t<Flex direction=\"column\" gap=\"1\">\n\t\t\t\t<Title>{title}</Title>\n\t\t\t\t<AlertDialog.Description>{description}</AlertDialog.Description>\n\t\t\t</Flex>\n\n\t\t\t<Flex gap=\"3\" mt=\"4\" justify=\"end\">\n\t\t\t\t<AlertDialog.Cancel>\n\t\t\t\t\t<Button variant=\"soft\" severity=\"info\" onClick={onCancel}>\n\t\t\t\t\t\t{cancelText}\n\t\t\t\t\t</Button>\n\t\t\t\t</AlertDialog.Cancel>\n\t\t\t\t<AlertDialog.Action>\n\t\t\t\t\t<Button variant=\"solid\" severity={severity} onClick={onAction}>\n\t\t\t\t\t\t{actionText}\n\t\t\t\t\t</Button>\n\t\t\t\t</AlertDialog.Action>\n\t\t\t</Flex>\n\t\t</Flex>\n\t)\n}\n","import { memo, useMemo } from \"react\"\nimport { AlertDialog as RadixAlertDialog } from \"@radix-ui/themes\"\nimport { AlertDialogContentHelpers, AlertDialogProps } from \"./typings\"\nimport { AlertDialogContent, Title } from \"./AlertDialogContent\"\n\n/**\n * The AlertDialog is used to confirm an action or prompt the user for a decision.\n * Unlike the Dialog, the AlertDialog is not dismissible by clicking outside of the dialog, nor can it be nested.\n *\n * To use, place the `AlertDialogProvider` at the root of your app and use the `useAlertDialog` hook to open the dialog.\n *\n * To set the content of the dialog, use the `content` prop or pass values for the `title`, `description`, and `onAction` props.\n */\nexport const AlertDialog = memo(function AlertDialog(props: AlertDialogProps) {\n\tconst { open, setOpen, children, ...contentProps } = props\n\n\tconst helpers: AlertDialogContentHelpers = useMemo(() => {\n\t\treturn {\n\t\t\tclose: () => setOpen(false),\n\t\t\tTitle,\n\t\t\tDescription: RadixAlertDialog.Description,\n\t\t}\n\t}, [setOpen])\n\n\treturn (\n\t\t<RadixAlertDialog.Root open={open} onOpenChange={setOpen}>\n\t\t\t<RadixAlertDialog.Content>\n\t\t\t\t{\"content\" in contentProps ? contentProps.content(helpers) : <AlertDialogContent {...contentProps} />}\n\t\t\t</RadixAlertDialog.Content>\n\t\t\t{children}\n\t\t</RadixAlertDialog.Root>\n\t)\n})\n","import { createContext, memo, useState, useCallback } from \"react\"\nimport { AlertDialogContextType, AlertDialogOptions } from \"./typings\"\nimport { AlertDialog } from \"./AlertDialog\"\n\ninterface AlertDialogProviderProps {\n\tchildren: React.ReactNode\n}\n\nexport const AlertDialogContent = createContext<AlertDialogContextType>(() => {\n\tthrow new Error(\"No AlertDialogProvider found\")\n})\n\nconst initialState: AlertDialogOptions = {\n\tcontent: () => null,\n}\n\nexport const AlertDialogProvider = memo(function AlertDialogProvider({ children }: AlertDialogProviderProps) {\n\tconst [open, setOpen] = useState(false)\n\tconst [state, setState] = useState<AlertDialogOptions>(initialState)\n\n\tconst openDialog = useCallback<AlertDialogContextType>(\n\t\t(options) => {\n\t\t\tif (open) throw new Error(\"AlertDialog is already open\")\n\n\t\t\tsetState(options)\n\t\t\tsetOpen(true)\n\t\t},\n\t\t[open],\n\t)\n\n\treturn (\n\t\t<AlertDialog open={open} setOpen={setOpen} {...state}>\n\t\t\t<AlertDialogContent.Provider value={openDialog}>{children}</AlertDialogContent.Provider>\n\t\t</AlertDialog>\n\t)\n})\n","import { useContext } from \"react\"\nimport { AlertDialogContent } from \"./context\"\n\nexport const useAlertDialog = () => {\n\treturn useContext(AlertDialogContent)\n}\n","import React, { FC, forwardRef } from \"react\"\nimport { Select as RadixSelect } from \"@radix-ui/themes\"\nimport classNames from \"classnames\"\nimport { useResponsiveMapping, useSeverityColor } from \"../utils.ts\"\nimport { SizeMapping } from \"../constants.ts\"\nimport { SelectItemProps, SelectProps } from \"./typings.ts\"\n\nimport styles from \"./Select.module.sass\"\n\nconst _Select = forwardRef(function Select(\n\t{\n\t\tclassName,\n\t\tfluid,\n\t\tsize = \"medium\",\n\t\tvariant = \"surface\",\n\t\tseverity = \"primary\",\n\t\tplaceholder = \"Select\",\n\t\tside,\n\t\titems = [],\n\t\tvalue,\n\t\tid,\n\t\t...rest\n\t}: SelectProps,\n\tref: React.Ref<HTMLButtonElement>,\n) {\n\tconst mappedSize = useResponsiveMapping(size, SizeMapping)\n\tconst color = useSeverityColor(severity)\n\n\t// TODO: extend functionality to support grouping of items\n\t// TODO: remove key change based on value once placeholder issue it fixed in radix-ui/themes\n\treturn (\n\t\t<RadixSelect.Root size={mappedSize} {...rest} key={value === undefined ? 1 : 0} value={value}>\n\t\t\t<RadixSelect.Trigger\n\t\t\t\tclassName={classNames(className, {\n\t\t\t\t\t[styles.fluid!]: fluid,\n\t\t\t\t})}\n\t\t\t\tid={id}\n\t\t\t\tref={ref}\n\t\t\t\tvariant={variant}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tcolor={color}\n\t\t\t/>\n\t\t\t<RadixSelect.Content\n\t\t\t\tside={side}\n\t\t\t\tposition=\"popper\"\n\t\t\t\tvariant={variant !== \"surface\" ? \"soft\" : \"solid\"}\n\t\t\t\tcolor={color}\n\t\t\t>\n\t\t\t\t{items.map(({ label, value, ...rest }: SelectItemProps) => (\n\t\t\t\t\t<RadixSelect.Item key={value} value={value} {...rest}>\n\t\t\t\t\t\t{label}\n\t\t\t\t\t</RadixSelect.Item>\n\t\t\t\t))}\n\t\t\t</RadixSelect.Content>\n\t\t</RadixSelect.Root>\n\t)\n})\nexport const Select: FC<SelectProps> = React.memo(_Select)\n","import React, { FC, forwardRef } from \"react\"\nimport { Text, TextField as RadixTextField } from \"@radix-ui/themes\"\nimport classNames from \"classnames\"\nimport { useResponsiveMapping, useSeverityColor } from \"../utils.ts\"\nimport { SizeMapping } from \"../constants.ts\"\nimport { InputProps } from \"./typings.ts\"\n\nimport styles from \"./Input.module.sass\"\n\nconst _Input = forwardRef(function Input(\n\t{\n\t\tclassName,\n\t\tleftIcon,\n\t\trightIcon,\n\t\tsize = \"medium\",\n\t\tshowInputLength,\n\t\tvalue,\n\t\tvariant,\n\t\tseverity = \"primary\",\n\t\t...rest\n\t}: InputProps,\n\tref: React.Ref<HTMLInputElement>,\n) {\n\tconst computedSize = useResponsiveMapping(size, SizeMapping)\n\n\tconst color = useSeverityColor(severity)\n\n\tconst displayInputLength = showInputLength || (showInputLength === undefined && rest.maxLength !== undefined)\n\tconst valueAsString = value !== undefined ? value.toString() : undefined\n\n\treturn (\n\t\t<RadixTextField.Root\n\t\t\tclassName={classNames({\n\t\t\t\t[styles.accommodateCharCount!]: displayInputLength,\n\t\t\t})}\n\t\t\tsize={computedSize}\n\t\t\tvariant={variant}\n\t\t\tcolor={color}\n\t\t>\n\t\t\t<RadixTextField.Slot>{leftIcon}</RadixTextField.Slot>\n\t\t\t<RadixTextField.Input\n\t\t\t\tclassName={classNames(styles.default, className, {\n\t\t\t\t\t[styles.noLeftIcon!]: !leftIcon,\n\t\t\t\t\t[styles.noRightIcon!]: !rightIcon,\n\t\t\t\t})}\n\t\t\t\tref={ref}\n\t\t\t\tsize={computedSize}\n\t\t\t\tvariant={variant}\n\t\t\t\tcolor={color}\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t\t<RadixTextField.Slot>{rightIcon}</RadixTextField.Slot>\n\t\t\t{displayInputLength && (\n\t\t\t\t<Text as=\"p\" className={styles.charCount} size=\"1\" color=\"gray\">\n\t\t\t\t\t{rest.maxLength !== undefined\n\t\t\t\t\t\t? `${valueAsString?.length}/${rest.maxLength}`\n\t\t\t\t\t\t: `${valueAsString?.length}`}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t</RadixTextField.Root>\n\t)\n})\nexport const Input: FC<InputProps> = React.memo(_Input)\n","import React, { forwardRef, FC } from \"react\"\nimport { Popover as RadixPopover } from \"@radix-ui/themes\"\nimport { PopoverProps } from \"./typings.ts\"\n\nconst _Popover = forwardRef(function Popover(\n\t{ defaultOpen = false, modal = false, content, children, ...rest }: PopoverProps,\n\tref: React.Ref<HTMLDivElement>,\n) {\n\treturn (\n\t\t<RadixPopover.Root defaultOpen={defaultOpen} modal={modal}>\n\t\t\t<RadixPopover.Trigger>{children}</RadixPopover.Trigger>\n\t\t\t<RadixPopover.Content ref={ref} {...rest}>\n\t\t\t\t{content(RadixPopover.Close)}\n\t\t\t</RadixPopover.Content>\n\t\t</RadixPopover.Root>\n\t)\n})\nexport const Popover: FC<PopoverProps> = React.memo(_Popover)\n","import { FC, forwardRef, memo, Ref, useMemo } from \"react\"\nimport { Text, TextArea as RadixTextArea } from \"@radix-ui/themes\"\nimport classNames from \"classnames\"\nimport { TextAreaProps } from \"./typings.ts\"\n\nimport styles from \"./Textarea.module.sass\"\nimport { useSeverityColor } from \"../utils.ts\"\n\nconst _TextArea = forwardRef(function TextArea(\n\t{ className, showInputLength, inputLengthTemplate, value, severity = \"primary\", resize, ...rest }: TextAreaProps,\n\tref: Ref<HTMLTextAreaElement>,\n) {\n\tconst severityColor = useSeverityColor(severity)\n\tconst infoColor = useSeverityColor(\"info\")\n\n\tconst displayInputLength =\n\t\tshowInputLength ||\n\t\t(showInputLength === undefined && (rest.maxLength !== undefined || rest.minLength !== undefined))\n\tconst valueAsString = value !== undefined ? value.toString() : \"\"\n\n\tconst displayInputLengthValue = useMemo(() => {\n\t\tif (inputLengthTemplate) {\n\t\t\tlet template = inputLengthTemplate.replace(\"{current}\", valueAsString.length.toString())\n\t\t\tif (rest.minLength !== undefined) {\n\t\t\t\ttemplate = template.replace(\"{min}\", rest.minLength.toString())\n\t\t\t}\n\t\t\tif (rest.maxLength !== undefined) {\n\t\t\t\ttemplate = template.replace(\"{max}\", rest.maxLength.toString())\n\t\t\t}\n\t\t\treturn template\n\t\t}\n\t\treturn valueAsString.length\n\t}, [inputLengthTemplate, rest.maxLength, rest.minLength, valueAsString.length])\n\n\treturn (\n\t\t<>\n\t\t\t<RadixTextArea\n\t\t\t\tclassName={classNames(\"overmap-textarea\", className)}\n\t\t\t\tstyle={{ resize: resize }}\n\t\t\t\tref={ref}\n\t\t\t\tvalue={value}\n\t\t\t\tcolor={severityColor}\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t\t{displayInputLength && (\n\t\t\t\t<Text as=\"p\" className={styles.charCount} color={infoColor} align=\"right\">\n\t\t\t\t\t{displayInputLengthValue}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t</>\n\t)\n})\n\n/** The TextArea Component is a user interface element that allows users to input and edit multi-line text.\n It is commonly used in forms, chat applications, and other scenarios where longer text inputs are required.\n This TextArea is a wrapper of the RadixUI TextArea component found here https://www.radix-ui.com/themes/docs/components/text-area.\n */\nexport const TextArea: FC<TextAreaProps> = memo(_TextArea)\n","import { FC, forwardRef, memo, Ref } from \"react\"\nimport { Item, Root } from \"@radix-ui/react-toggle-group\"\nimport { ToggleGroupItemProps, ToggleGroupSingleProps } from \"./typings.ts\"\nimport { IconButton } from \"../Buttons\"\nimport classNames from \"classnames\"\nimport { ButtonGroup } from \"../ButtonGroup\"\n\nconst _ToggleGroup = forwardRef(function ToggleGroup(\n\t{\n\t\tclassName,\n\t\titems,\n\t\torientation = \"horizontal\",\n\t\tmerged = true,\n\t\tvalue,\n\t\tseverity,\n\t\tgap,\n\t\tsize,\n\t\t...rest\n\t}: ToggleGroupSingleProps,\n\tref: Ref<HTMLDivElement>,\n) {\n\treturn (\n\t\t<Root\n\t\t\tclassName={classNames(\"overmap-toggle-group\", className)}\n\t\t\tref={ref}\n\t\t\tvalue={value}\n\t\t\torientation={orientation}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<ButtonGroup\n\t\t\t\twidth=\"min-content\"\n\t\t\t\theight=\"min-content\"\n\t\t\t\tmerged={merged}\n\t\t\t\tdirection={orientation === \"vertical\" ? \"column\" : \"row\"}\n\t\t\t\tgap={gap}\n\t\t\t>\n\t\t\t\t{items.map(({ children, ...rest }: ToggleGroupItemProps) => (\n\t\t\t\t\t<Item asChild {...rest} key={rest.value}>\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tclassName={classNames(\"overmap-toggle-group-button\")}\n\t\t\t\t\t\t\taria-label={rest.value}\n\t\t\t\t\t\t\tseverity={severity}\n\t\t\t\t\t\t\tvariant={rest.value === value ? \"solid\" : \"soft\"}\n\t\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t</Item>\n\t\t\t\t))}\n\t\t\t</ButtonGroup>\n\t\t</Root>\n\t)\n})\n\n/** The Toggle Group Component is a user interface element that allows users to select a single option from a set of\n * mutually exclusive choices. It is commonly used in situations where users need to make a single selection from a\n * predefined list of options. This component is built using the ButtonGroup and IconButton components in combination\n * with the Radix Toggle Group primitive found here https://www.radix-ui.com/primitives/docs/components/toggle-group */\nexport const ToggleGroup: FC<ToggleGroupSingleProps> = memo(_ToggleGroup)\n","import { FC, forwardRef, memo, Ref, useCallback } from \"react\"\nimport * as RadixToast from \"@radix-ui/react-toast\"\nimport { Callout, Flex } from \"@radix-ui/themes\"\nimport { Cross2Icon, InfoCircledIcon } from \"@radix-ui/react-icons\"\nimport classNames from \"classnames\"\nimport { IconButton } from \"../Buttons\"\nimport { ToastProps, ToastProviderProps } from \"./typings.ts\"\nimport { useSeverityColor } from \"../utils.ts\"\n\nimport styles from \"./Toast.module.sass\"\n\nconst _Toast = forwardRef(function Toast(\n\t{ title, description, icon, severity = \"primary\", size, onClose, ...rest }: ToastProps,\n\tref: Ref<HTMLLIElement>,\n) {\n\tconst color = useSeverityColor(severity)\n\tconst handleOpenChange = useCallback(\n\t\t(open: boolean) => {\n\t\t\tif (!open && onClose) onClose()\n\t\t},\n\t\t[onClose],\n\t)\n\n\treturn (\n\t\t<RadixToast.Root asChild ref={ref} {...rest} onOpenChange={handleOpenChange}>\n\t\t\t<Callout.Root\n\t\t\t\tclassName={classNames(\"overmap-toast\", styles.wrapper)}\n\t\t\t\tvariant=\"surface\"\n\t\t\t\tcolor={color}\n\t\t\t\tsize={size}\n\t\t\t>\n\t\t\t\t<Flex width=\"100%\" align=\"center\" gap=\"4\" justify=\"between\">\n\t\t\t\t\t<Flex align=\"center\" gap=\"4\">\n\t\t\t\t\t\t<Callout.Icon>{icon || <InfoCircledIcon />}</Callout.Icon>\n\t\t\t\t\t\t<Flex direction=\"column\" gap=\"0\">\n\t\t\t\t\t\t\t<RadixToast.Title asChild>\n\t\t\t\t\t\t\t\t<Callout.Text weight=\"bold\">{title}</Callout.Text>\n\t\t\t\t\t\t\t</RadixToast.Title>\n\t\t\t\t\t\t\t<RadixToast.Description asChild>\n\t\t\t\t\t\t\t\t<Callout.Text weight=\"light\">{description}</Callout.Text>\n\t\t\t\t\t\t\t</RadixToast.Description>\n\t\t\t\t\t\t</Flex>\n\t\t\t\t\t</Flex>\n\t\t\t\t\t<RadixToast.Close asChild>\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tclassName={styles.closeButton}\n\t\t\t\t\t\t\taria-label=\"Close\"\n\t\t\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tseverity={severity}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Cross2Icon />\n\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t</RadixToast.Close>\n\t\t\t\t</Flex>\n\t\t\t</Callout.Root>\n\t\t</RadixToast.Root>\n\t)\n})\n\nexport const ToastProvider: FC<ToastProviderProps> = memo(function ToastProvider({\n\tchildren,\n\t...rest\n}: ToastProviderProps) {\n\treturn (\n\t\t<RadixToast.Provider swipeDirection=\"right\" swipeThreshold={75} {...rest}>\n\t\t\t{children}\n\t\t</RadixToast.Provider>\n\t)\n})\n\nexport const Toast: FC<ToastProps> = memo(_Toast)\nexport const ToastViewport: FC<RadixToast.ToastViewportProps> = RadixToast.Viewport\n","import { memo, createContext, useState, useCallback, FC } from \"react\"\nimport { IToastContext, SimpleToastMessage, ToastContextProviderProps, ToastProps } from \"./typings.ts\"\nimport { Toast, ToastProvider, ToastViewport } from \"./Toast.tsx\"\n\nexport const ToastContext = createContext({} as IToastContext)\n\nexport const ToastContextProvider: FC<ToastContextProviderProps> = memo(function ToastContextProvider({\n\tchildren,\n\t// Use this class to change where the viewport for the toasts should be\n\tviewportClass,\n\thotkey,\n\t// Default duration value for all Toasts\n\tduration = 10000,\n\t...rest\n}: ToastContextProviderProps) {\n\tconst [toasts, setToasts] = useState<ToastProps[]>([])\n\n\tconst showToast = useCallback((toastProps: ToastProps) => {\n\t\tsetToasts((prevToasts) => [...prevToasts, toastProps])\n\t}, [])\n\n\tconst showPrimary = useCallback(\n\t\t(simpleMessage: SimpleToastMessage) => {\n\t\t\tshowToast({ severity: \"primary\", ...simpleMessage })\n\t\t},\n\t\t[showToast],\n\t)\n\n\tconst showSuccess = useCallback(\n\t\t(simpleMessage: SimpleToastMessage) => {\n\t\t\tshowToast({ severity: \"success\", ...simpleMessage })\n\t\t},\n\t\t[showToast],\n\t)\n\n\tconst showError = useCallback(\n\t\t(simpleMessage: SimpleToastMessage) => {\n\t\t\tshowToast({ severity: \"danger\", ...simpleMessage })\n\t\t},\n\t\t[showToast],\n\t)\n\n\tconst showInfo = useCallback(\n\t\t(simpleMessage: SimpleToastMessage) => {\n\t\t\tshowToast({ severity: \"info\", ...simpleMessage })\n\t\t},\n\t\t[showToast],\n\t)\n\n\tconst deleteToastAtIndex = useCallback(\n\t\t(index: number) => {\n\t\t\tconst tempToasts = [...toasts]\n\t\t\ttempToasts.splice(index, 1)\n\t\t\tsetToasts(() => tempToasts)\n\t\t},\n\t\t[toasts],\n\t)\n\n\tconst toastContextValue = {\n\t\tshowToast,\n\t\tshowPrimary,\n\t\tshowSuccess,\n\t\tshowError,\n\t\tshowInfo,\n\t}\n\n\treturn (\n\t\t<ToastContext.Provider value={toastContextValue}>\n\t\t\t<ToastProvider duration={duration} {...rest}>\n\t\t\t\t<ToastViewport className={viewportClass} hotkey={hotkey} />\n\t\t\t\t{toasts.map((toastProps, index) => (\n\t\t\t\t\t<Toast key={index} {...toastProps} onClose={() => deleteToastAtIndex(index)} />\n\t\t\t\t))}\n\t\t\t\t{children}\n\t\t\t</ToastProvider>\n\t\t</ToastContext.Provider>\n\t)\n})\n","import { ElementRef, FC, ForwardRefExoticComponent, forwardRef, memo } from \"react\"\nimport { MarginProps, Text as RadixText } from \"@radix-ui/themes\"\nimport classNames from \"classnames\"\nimport styles from \"./ Text.module.sass\"\nimport { Severity } from \"../typings\"\nimport { useSeverityColor } from \"..\"\n\ntype RadixTextProps = typeof RadixText extends ForwardRefExoticComponent<infer P> ? P : never\n\nexport type TextProps = Omit<RadixTextProps, keyof MarginProps | \"ref\" | \"asChild\" | \"color\"> & {\n\t/** If true, the text will not wrap, but instead will truncate with a text overflow ellipsis.\n\t * @default false\n\t */\n\tnoWrap?: boolean\n\tseverity?: Severity\n\t/** @default span */\n\tas: RadixTextProps[\"as\"]\n\t/** @default 3 */\n\tsize?: RadixTextProps[\"size\"]\n}\n\n/**\n * A foundational text primitive.\n *\n * Use the `as` prop to render text as a `p`, `label`, `div` or `span`. This prop is purely semantic and does not alter visual appearance.\n *\n * For the complete documentation, refer to https://www.radix-ui.com/themes/docs/components/text.\n */\nexport const Text: FC<TextProps> = memo(\n\tforwardRef<ElementRef<\"span\">, TextProps>(({ className, noWrap, severity, as, ...props }, ref) => {\n\t\tconst color = useSeverityColor(severity)\n\t\treturn (\n\t\t\t<RadixText\n\t\t\t\tref={ref}\n\t\t\t\t// bypassing incorrect TS error\n\t\t\t\tas={as as undefined}\n\t\t\t\tclassName={classNames(className, { [styles.noWrap!]: noWrap })}\n\t\t\t\tcolor={color}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t)\n\t}),\n)\n","import { Theme } from \"@radix-ui/themes\"\nimport { ComponentProps, FC, forwardRef, memo } from \"react\"\n// css file contains updates to the default radix tokens\nimport \"./DefaultTheme.css\"\n\nexport type DefaultThemeProps = ComponentProps<typeof Theme>\n\nexport const DefaultTheme: FC<DefaultThemeProps> = memo(\n\tforwardRef<HTMLDivElement, DefaultThemeProps>((props, ref) => {\n\t\tconst { panelBackground = \"solid\", radius = \"full\", ...rest } = props\n\t\treturn <Theme panelBackground={panelBackground} radius={radius} ref={ref} {...rest} />\n\t}),\n)\n"],"names":["hasOwn","classNames","classes","i","arg","argType","inner","key","module","useResponsiveMapping","value","mapping","useMemo","breakpoint","nonThemeSeverityMapping","useSeverityColor","severity","theme","useThemeContext","_Badge","forwardRef","className","color","children","rest","ref","severityColor","jsx","RadixBadge","Badge","memo","hoverEffectClassNameMapping","styles","SizeMapping","ButtonGroupContext","createContext","useButtonGroupContext","useContext","_Button","props","buttonGroupContext","fluid","size","hoverEffects","variant","hoverEffectClasses","hoverEffect","RadixButton","Button","React","RadixIconButton","IconButton","GhostVariantSizeToGapMapping","_ButtonGroup","merged","gap","direction","ghostSize","mergedAutoGap","Flex","ButtonGroup","DialogContent","title","description","content","closeDialog","jsxs","Dialog","Cross1Icon","onOpen","onCloseInterrupt","contentProps","open","setOpen","useState","handleOpenChange","useCallback","next","options","RadixDialog","Title","AlertDialog","AlertDialogContent","actionText","cancelText","onAction","onCancel","helpers","RadixAlertDialog","initialState","AlertDialogProvider","state","setState","openDialog","useAlertDialog","_Select","placeholder","side","items","id","mappedSize","createElement","RadixSelect","label","Select","_Input","leftIcon","rightIcon","showInputLength","computedSize","displayInputLength","valueAsString","RadixTextField","Text","Input","_Popover","defaultOpen","modal","RadixPopover","Popover","_TextArea","inputLengthTemplate","resize","infoColor","displayInputLengthValue","template","Fragment","RadixTextArea","TextArea","_ToggleGroup","orientation","Root","Item","ToggleGroup","_Toast","icon","onClose","RadixToast","Callout","InfoCircledIcon","Cross2Icon","ToastProvider","Toast","ToastViewport","ToastContext","ToastContextProvider","viewportClass","hotkey","duration","toasts","setToasts","showToast","toastProps","prevToasts","showPrimary","simpleMessage","showSuccess","showError","showInfo","deleteToastAtIndex","index","tempToasts","toastContextValue","noWrap","as","RadixText","DefaultTheme","panelBackground","radius","Theme"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"blocks.umd.cjs","sources":["../node_modules/classnames/index.js","../src/utils.ts","../src/Badge/Badge.tsx","../src/Buttons/constants.ts","../src/constants.ts","../src/ButtonGroup/context.ts","../src/Buttons/Button.tsx","../src/Buttons/IconButton.tsx","../src/ButtonGroup/ButtonGroup.tsx","../src/Dialogs/Dialog/DialogContent.tsx","../src/Dialogs/Dialog/Dialog.tsx","../src/Dialogs/AlertDialog/AlertDialogContent.tsx","../src/Dialogs/AlertDialog/AlertDialog.tsx","../src/Dialogs/AlertDialog/context.tsx","../src/Dialogs/AlertDialog/hooks.ts","../src/Select/Select.tsx","../src/Input/Input.tsx","../src/Popover/Popover.tsx","../src/TextArea/TextArea.tsx","../src/ToggleGroup/ToggleGroup.tsx","../src/Toast/Toast.tsx","../src/Toast/ToastContext.tsx","../src/Text/Text.tsx","../src/Theme/DefaultTheme.tsx"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import { Responsive, ThemeOptions, useThemeContext } from \"@radix-ui/themes\"\nimport { useMemo } from \"react\"\nimport { Severity } from \"./typings\"\n\n// useResponsiveMapping is a helper function used to map the keys of a Radix Responsive type that can be understood\n// by a Radix component or primitive. The point of this is to leverage our own custom prop names and values while still\n// using Radix's built in Responsiveness functionality.\n/**\n * Returns an object with mapped key values or a single mapped value\n * @param value an object or string\n * @param mapping a Record mapping the object values of param value\n */\nexport function useResponsiveMapping<T extends string, K>(\n\tvalue: Responsive<T> | undefined,\n\tmapping: Record<T, K>,\n): Responsive<K> | undefined {\n\treturn useMemo(() => {\n\t\tif (value === undefined) return undefined\n\t\tif (typeof value === \"object\") {\n\t\t\tif (!(\"initial\" in value)) {\n\t\t\t\t// Responsive objects require an 'initial' property to be set that acts as a default\n\t\t\t\tthrow new Error(\"Expected initial property to be set in Responsive object\")\n\t\t\t}\n\t\t\treturn Object.fromEntries(Object.entries(value).map(([breakpoint, value]) => [breakpoint, mapping[value]]))\n\t\t} else {\n\t\t\treturn mapping[value]\n\t\t}\n\t}, [mapping, value])\n}\n\nconst nonThemeSeverityMapping = {\n\tsuccess: \"green\",\n\tdanger: \"red\",\n\tinfo: \"gray\",\n} as const\n\nexport type AccentColor = ThemeOptions[\"accentColor\"]\n\n/** Performs theme-sensitive mapping of a severity to radix color */\nexport const useSeverityColor = (severity?: Severity): AccentColor | undefined => {\n\tconst theme = useThemeContext()\n\tif (!severity) return undefined\n\tif (severity === \"primary\") return theme.accentColor\n\n\treturn nonThemeSeverityMapping[severity]\n}\n","import { Badge as RadixBadge } from \"@radix-ui/themes\"\nimport { FC, forwardRef, memo, Ref } from \"react\"\nimport { BadgeProps } from \"./typings.ts\"\nimport classNames from \"classnames\"\nimport { useSeverityColor } from \"../utils.ts\"\n\nconst _Badge = forwardRef(function Badge(\n\t{ className, severity = \"primary\", color, children, ...rest }: BadgeProps,\n\tref: Ref<HTMLSpanElement>,\n) {\n\tconst severityColor = useSeverityColor(severity)\n\n\treturn (\n\t\t<RadixBadge\n\t\t\tclassName={classNames(\"overmap-badge\", className)}\n\t\t\tref={ref}\n\t\t\tcolor={color ? color : severityColor}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</RadixBadge>\n\t)\n})\n\n/** The Badge Component is a user interface element that provides visual feedback, typically displaying a small amount\n * of information. It is commonly used to indicate counts, statuses, or labels in a concise and visually appealing\n * manner. This Badge components wraps the Badge component from Radix-ui found here https://www.radix-ui.com/themes/docs/components/badge */\nexport const Badge: FC<BadgeProps> = memo(_Badge)\n","import { ButtonHoverEffect } from \"./typings.ts\"\nimport styles from \"./Button.module.sass\"\n\nexport const hoverEffectClassNameMapping: Record<ButtonHoverEffect, string | undefined> = {\n\tspin90Clockwise: styles.hoverSpin90Clockwise,\n\tspin180Clockwise: styles.hoverSpin180Clockwise,\n\tspin360Clockwise: styles.hoverSpin360Clockwise,\n}\n","import { Size } from \"./typings.ts\"\n\n// Mappings\nexport const SizeMapping: Record<Size, \"1\" | \"2\" | \"3\"> = {\n\tsmall: \"1\",\n\tmedium: \"2\",\n\tlarge: \"3\",\n}\n","import { ButtonProps } from \"../Buttons/typings\"\nimport { createContext, useContext } from \"react\"\n\nexport type ButtonContextType = Pick<ButtonProps, \"variant\" | \"size\" | \"severity\" | \"hoverEffects\">\n\nexport const ButtonGroupContext = createContext<ButtonContextType>({})\n\nexport const useButtonGroupContext = () => useContext(ButtonGroupContext)\n","import React, { FC, forwardRef } from \"react\"\nimport { ButtonProps } from \"./typings.ts\"\nimport styles from \"./Button.module.sass\"\nimport classNames from \"classnames\"\nimport { Button as RadixButton } from \"@radix-ui/themes\"\nimport { hoverEffectClassNameMapping } from \"./constants.ts\"\nimport { useResponsiveMapping, useSeverityColor } from \"../utils.ts\"\nimport { SizeMapping } from \"../constants.ts\"\nimport { useButtonGroupContext } from \"../ButtonGroup/context.ts\"\n\nconst _Button = forwardRef(function Button(props: ButtonProps, ref: React.Ref<HTMLButtonElement>) {\n\tconst buttonGroupContext = useButtonGroupContext()\n\tconst {\n\t\tclassName,\n\t\tfluid,\n\t\tsize = buttonGroupContext.size ?? \"medium\",\n\t\tseverity = buttonGroupContext.severity ?? \"primary\",\n\t\thoverEffects = buttonGroupContext.hoverEffects ?? [],\n\t\tvariant = buttonGroupContext.variant,\n\t\t...rest\n\t} = props\n\tconst color = useSeverityColor(severity)\n\tconst hoverEffectClasses = hoverEffects.map((hoverEffect) => {\n\t\treturn hoverEffectClassNameMapping[hoverEffect]\n\t})\n\n\treturn (\n\t\t<RadixButton\n\t\t\tref={ref}\n\t\t\ttype=\"button\"\n\t\t\tclassName={classNames(className, hoverEffectClasses, {\n\t\t\t\t[styles.fluid!]: fluid,\n\t\t\t})}\n\t\t\tcolor={color}\n\t\t\tsize={useResponsiveMapping(size, SizeMapping)}\n\t\t\tvariant={variant}\n\t\t\t{...rest}\n\t\t/>\n\t)\n})\n\n// using FC so storybook correctly displays the component props\nconst Button: FC<ButtonProps> = React.memo(_Button)\n\nexport default Button\n","import React, { FC, forwardRef } from \"react\"\nimport { ButtonProps } from \"./typings.ts\"\nimport classNames from \"classnames\"\nimport { IconButton as RadixIconButton } from \"@radix-ui/themes\"\nimport { hoverEffectClassNameMapping } from \"./constants.ts\"\nimport { useResponsiveMapping, useSeverityColor } from \"../utils.ts\"\nimport { SizeMapping } from \"../constants.ts\"\nimport { useButtonGroupContext } from \"../ButtonGroup/context.ts\"\n\nimport styles from \"./Button.module.sass\"\n\ninterface IconButtonProps extends Omit<ButtonProps, \"fluid\"> {\n\t\"aria-label\": string\n}\n\nconst _Button = forwardRef(function Button(props: IconButtonProps, ref: React.Ref<HTMLButtonElement>) {\n\tconst buttonGroupContext = useButtonGroupContext()\n\tconst {\n\t\tclassName,\n\t\tchildren,\n\t\tsize = buttonGroupContext.size ?? \"medium\",\n\t\tseverity = buttonGroupContext.severity ?? \"primary\",\n\t\thoverEffects = buttonGroupContext.hoverEffects ?? [],\n\t\tvariant = buttonGroupContext.variant,\n\t\t...rest\n\t} = props\n\tconst color = useSeverityColor(severity)\n\tconst hoverEffectClasses =\n\t\thoverEffects?.map((hoverEffect) => {\n\t\t\treturn hoverEffectClassNameMapping[hoverEffect]\n\t\t}) || []\n\n\treturn (\n\t\t<RadixIconButton\n\t\t\tclassName={classNames(className, hoverEffectClasses, styles.default)}\n\t\t\tref={ref}\n\t\t\tcolor={color}\n\t\t\tsize={useResponsiveMapping(size, SizeMapping)}\n\t\t\tvariant={variant}\n\t\t\ttype=\"button\"\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</RadixIconButton>\n\t)\n})\n\n// using FC so storybook correctly displays the component props\n/** The `IconButton` is a `Button` variant specifically designed for single icons. */\nconst IconButton: FC<IconButtonProps> = React.memo(_Button)\n\nexport default IconButton\n","import { FC, forwardRef, memo, Ref } from \"react\"\nimport { Flex } from \"@radix-ui/themes\"\nimport classNames from \"classnames\"\nimport { ButtonGroupProps } from \"./typings.ts\"\n\nimport styles from \"./ButtonGroup.module.sass\"\nimport { Size } from \"../typings.ts\"\nimport { useResponsiveMapping } from \"../utils.ts\"\nimport { ButtonGroupContext } from \"./context.ts\"\n\nconst GhostVariantSizeToGapMapping = {\n\trow: { small: \"4\", medium: \"4\", large: \"5\" },\n\tcolumn: { small: \"2\", medium: \"3\", large: \"4\" },\n} as const satisfies Record<\"row\" | \"column\", Record<Size, ButtonGroupProps[\"gap\"]>>\n\nconst _ButtonGroup = forwardRef(function ButtonGroup(\n\t{\n\t\tclassName,\n\t\tmerged = false,\n\t\tchildren,\n\t\tgap,\n\t\tdirection = \"row\",\n\t\tseverity,\n\t\tsize,\n\t\tvariant,\n\t\thoverEffects,\n\t\t...rest\n\t}: ButtonGroupProps,\n\tref: Ref<HTMLDivElement>,\n) {\n\tconst ghostSize = useResponsiveMapping(size, GhostVariantSizeToGapMapping[direction])\n\t// without a larger gap, ghost buttons overlap\n\tconst mergedAutoGap = variant === \"ghost\" ? ghostSize : \"0\"\n\treturn (\n\t\t<Flex\n\t\t\tclassName={classNames(\"overmap-button-group\", className, {\n\t\t\t\t[styles.merged!]: merged,\n\t\t\t})}\n\t\t\tref={ref}\n\t\t\tgap={merged ? gap ?? mergedAutoGap : gap ?? \"2\"}\n\t\t\tdirection={direction}\n\t\t\tdata-direction={direction}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<ButtonGroupContext.Provider value={{ size, severity, variant, hoverEffects }}>\n\t\t\t\t{children}\n\t\t\t</ButtonGroupContext.Provider>\n\t\t</Flex>\n\t)\n})\n\n/** The ButtonGroup Component is a user interface element that groups multiple buttons together for improved user\n * interaction and visual clarity. It is commonly used to present related actions or options in a compact and organized\n * manner. The ButtonGroup supports all props of the RadixUI Flex layout component besides MarginProps,\n * further documentation for the Flex layout component can be found here https://www.radix-ui.com/themes/docs/components/flex */\nexport const ButtonGroup: FC<ButtonGroupProps> = memo(_ButtonGroup)\n","import { memo } from \"react\"\nimport { Dialog, Flex, IconButton } from \"@radix-ui/themes\"\nimport { Cross1Icon } from \"@radix-ui/react-icons\"\nimport { DialogContentProps } from \"./typings\"\n\nexport const DialogContent = memo(function DialogContent(props: DialogContentProps) {\n\tconst { title, description, content, closeDialog } = props\n\treturn (\n\t\t<Flex direction=\"column\" gap=\"2\">\n\t\t\t<Flex direction=\"column\" gap=\"1\">\n\t\t\t\t<Flex justify=\"between\">\n\t\t\t\t\t<Dialog.Title mb=\"0\">{title}</Dialog.Title>\n\t\t\t\t\t<Dialog.Close>\n\t\t\t\t\t\t<IconButton color=\"gray\" variant=\"ghost\" aria-label=\"Close\">\n\t\t\t\t\t\t\t<Cross1Icon />\n\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t</Dialog.Close>\n\t\t\t\t</Flex>\n\t\t\t\t<Dialog.Description>{description}</Dialog.Description>\n\t\t\t</Flex>\n\t\t\t{content(closeDialog)}\n\t\t</Flex>\n\t)\n})\n","import { memo, useState, useCallback } from \"react\"\nimport { Dialog as RadixDialog } from \"@radix-ui/themes\"\nimport { DialogContent } from \"./DialogContent\"\nimport { CloseDialogWithOptions, DialogProps } from \"./typings\"\n\n/**\n * Display or collect information in a modal. Unlike the `AlertDialog`, the `Dialog`'s can be nested\n * and close when clicking outside of the dialog content.\n */\nexport const Dialog = memo(function Dialog(props: DialogProps) {\n\tconst { children, size, onOpen, onCloseInterrupt, ...contentProps } = props\n\tconst [open, setOpen] = useState(false)\n\n\tconst handleOpenChange = useCallback(\n\t\t(next: boolean) => {\n\t\t\tif (next && onOpen) {\n\t\t\t\tonOpen()\n\t\t\t} else if (!next && onCloseInterrupt) {\n\t\t\t\t// closes the dialog, bypassing the checks in `handleOpenChange`\n\t\t\t\tconst confirmClose = () => setOpen(false)\n\n\t\t\t\t// if onCloseInterrupt is passed, bypass the standard close behavior and require\n\t\t\t\t// the passed `confirmClose` to close the dialog\n\t\t\t\treturn onCloseInterrupt(confirmClose)\n\t\t\t}\n\n\t\t\tsetOpen(next)\n\t\t},\n\t\t[onOpen, onCloseInterrupt],\n\t)\n\n\tconst closeDialog = useCallback<CloseDialogWithOptions>(\n\t\t(options) => {\n\t\t\tif (options?.force) {\n\t\t\t\t// bypass the checks in the `handleOpenChange` function\n\t\t\t\treturn setOpen(false)\n\t\t\t}\n\n\t\t\thandleOpenChange(false)\n\t\t},\n\t\t[handleOpenChange],\n\t)\n\n\treturn (\n\t\t<RadixDialog.Root open={open} onOpenChange={handleOpenChange}>\n\t\t\t<RadixDialog.Content size={size}>\n\t\t\t\t<DialogContent closeDialog={closeDialog} {...contentProps} />\n\t\t\t</RadixDialog.Content>\n\n\t\t\t{children(RadixDialog.Trigger)}\n\t\t</RadixDialog.Root>\n\t)\n})\n","import { AlertDialog, Flex } from \"@radix-ui/themes\"\nimport { AlertDialogStandardContent } from \"./typings\"\nimport { Button } from \"../../Buttons\"\n\n// remove the margin-bottom from the title so that Flex works as expected\nexport const Title: typeof AlertDialog.Title = ((props) => (\n\t<AlertDialog.Title mb=\"0\" {...props} />\n)) as typeof AlertDialog.Title\n\nexport const AlertDialogContent = (props: AlertDialogStandardContent) => {\n\tconst { title, description, actionText = \"Confirm\", cancelText = \"Cancel\", onAction, onCancel, severity } = props\n\treturn (\n\t\t<Flex direction=\"column\" gap=\"2\">\n\t\t\t<Flex direction=\"column\" gap=\"1\">\n\t\t\t\t<Title>{title}</Title>\n\t\t\t\t<AlertDialog.Description>{description}</AlertDialog.Description>\n\t\t\t</Flex>\n\n\t\t\t<Flex gap=\"3\" mt=\"4\" justify=\"end\">\n\t\t\t\t<AlertDialog.Cancel>\n\t\t\t\t\t<Button variant=\"soft\" severity=\"info\" onClick={onCancel}>\n\t\t\t\t\t\t{cancelText}\n\t\t\t\t\t</Button>\n\t\t\t\t</AlertDialog.Cancel>\n\t\t\t\t<AlertDialog.Action>\n\t\t\t\t\t<Button variant=\"solid\" severity={severity} onClick={onAction}>\n\t\t\t\t\t\t{actionText}\n\t\t\t\t\t</Button>\n\t\t\t\t</AlertDialog.Action>\n\t\t\t</Flex>\n\t\t</Flex>\n\t)\n}\n","import { memo, useMemo } from \"react\"\nimport { AlertDialog as RadixAlertDialog } from \"@radix-ui/themes\"\nimport { AlertDialogContentHelpers, AlertDialogProps } from \"./typings\"\nimport { AlertDialogContent, Title } from \"./AlertDialogContent\"\n\n/**\n * The AlertDialog is used to confirm an action or prompt the user for a decision.\n * Unlike the Dialog, the AlertDialog is not dismissible by clicking outside of the dialog, nor can it be nested.\n *\n * To use, place the `AlertDialogProvider` at the root of your app and use the `useAlertDialog` hook to open the dialog.\n *\n * To set the content of the dialog, use the `content` prop or pass values for the `title`, `description`, and `onAction` props.\n */\nexport const AlertDialog = memo(function AlertDialog(props: AlertDialogProps) {\n\tconst { open, setOpen, children, ...contentProps } = props\n\n\tconst helpers: AlertDialogContentHelpers = useMemo(() => {\n\t\treturn {\n\t\t\tclose: () => setOpen(false),\n\t\t\tTitle,\n\t\t\tDescription: RadixAlertDialog.Description,\n\t\t}\n\t}, [setOpen])\n\n\treturn (\n\t\t<RadixAlertDialog.Root open={open} onOpenChange={setOpen}>\n\t\t\t<RadixAlertDialog.Content>\n\t\t\t\t{\"content\" in contentProps ? contentProps.content(helpers) : <AlertDialogContent {...contentProps} />}\n\t\t\t</RadixAlertDialog.Content>\n\t\t\t{children}\n\t\t</RadixAlertDialog.Root>\n\t)\n})\n","import { createContext, memo, useState, useCallback } from \"react\"\nimport { AlertDialogContextType, AlertDialogOptions } from \"./typings\"\nimport { AlertDialog } from \"./AlertDialog\"\n\ninterface AlertDialogProviderProps {\n\tchildren: React.ReactNode\n}\n\nexport const AlertDialogContent = createContext<AlertDialogContextType>(() => {\n\tthrow new Error(\"No AlertDialogProvider found\")\n})\n\nconst initialState: AlertDialogOptions = {\n\tcontent: () => null,\n}\n\nexport const AlertDialogProvider = memo(function AlertDialogProvider({ children }: AlertDialogProviderProps) {\n\tconst [open, setOpen] = useState(false)\n\tconst [state, setState] = useState<AlertDialogOptions>(initialState)\n\n\tconst openDialog = useCallback<AlertDialogContextType>(\n\t\t(options) => {\n\t\t\tif (open) throw new Error(\"AlertDialog is already open\")\n\n\t\t\tsetState(options)\n\t\t\tsetOpen(true)\n\t\t},\n\t\t[open],\n\t)\n\n\treturn (\n\t\t<AlertDialog open={open} setOpen={setOpen} {...state}>\n\t\t\t<AlertDialogContent.Provider value={openDialog}>{children}</AlertDialogContent.Provider>\n\t\t</AlertDialog>\n\t)\n})\n","import { useContext } from \"react\"\nimport { AlertDialogContent } from \"./context\"\n\nexport const useAlertDialog = () => {\n\treturn useContext(AlertDialogContent)\n}\n","import React, { FC, forwardRef } from \"react\"\nimport { Select as RadixSelect } from \"@radix-ui/themes\"\nimport classNames from \"classnames\"\nimport { useResponsiveMapping, useSeverityColor } from \"../utils.ts\"\nimport { SizeMapping } from \"../constants.ts\"\nimport { SelectItemProps, SelectProps } from \"./typings.ts\"\n\nimport styles from \"./Select.module.sass\"\n\nconst _Select = forwardRef(function Select(\n\t{\n\t\tclassName,\n\t\tfluid,\n\t\tsize = \"medium\",\n\t\tvariant = \"surface\",\n\t\tseverity = \"primary\",\n\t\tplaceholder = \"Select\",\n\t\tside,\n\t\titems = [],\n\t\tvalue,\n\t\tid,\n\t\t...rest\n\t}: SelectProps,\n\tref: React.Ref<HTMLButtonElement>,\n) {\n\tconst mappedSize = useResponsiveMapping(size, SizeMapping)\n\tconst color = useSeverityColor(severity)\n\n\t// TODO: extend functionality to support grouping of items\n\t// TODO: remove key change based on value once placeholder issue it fixed in radix-ui/themes\n\treturn (\n\t\t<RadixSelect.Root size={mappedSize} {...rest} key={value === undefined ? 1 : 0} value={value}>\n\t\t\t<RadixSelect.Trigger\n\t\t\t\tclassName={classNames(className, {\n\t\t\t\t\t[styles.fluid!]: fluid,\n\t\t\t\t})}\n\t\t\t\tid={id}\n\t\t\t\tref={ref}\n\t\t\t\tvariant={variant}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tcolor={color}\n\t\t\t/>\n\t\t\t<RadixSelect.Content\n\t\t\t\tside={side}\n\t\t\t\tposition=\"popper\"\n\t\t\t\tvariant={variant !== \"surface\" ? \"soft\" : \"solid\"}\n\t\t\t\tcolor={color}\n\t\t\t>\n\t\t\t\t{items.map(({ label, value, ...rest }: SelectItemProps) => (\n\t\t\t\t\t<RadixSelect.Item key={value} value={value} {...rest}>\n\t\t\t\t\t\t{label}\n\t\t\t\t\t</RadixSelect.Item>\n\t\t\t\t))}\n\t\t\t</RadixSelect.Content>\n\t\t</RadixSelect.Root>\n\t)\n})\nexport const Select: FC<SelectProps> = React.memo(_Select)\n","import React, { FC, forwardRef } from \"react\"\nimport { Text, TextField as RadixTextField } from \"@radix-ui/themes\"\nimport classNames from \"classnames\"\nimport { useResponsiveMapping, useSeverityColor } from \"../utils.ts\"\nimport { SizeMapping } from \"../constants.ts\"\nimport { InputProps } from \"./typings.ts\"\n\nimport styles from \"./Input.module.sass\"\n\nconst _Input = forwardRef(function Input(\n\t{\n\t\tclassName,\n\t\tleftIcon,\n\t\trightIcon,\n\t\tsize = \"medium\",\n\t\tshowInputLength,\n\t\tvalue,\n\t\tvariant,\n\t\tseverity = \"primary\",\n\t\t...rest\n\t}: InputProps,\n\tref: React.Ref<HTMLInputElement>,\n) {\n\tconst computedSize = useResponsiveMapping(size, SizeMapping)\n\n\tconst color = useSeverityColor(severity)\n\n\tconst displayInputLength = showInputLength || (showInputLength === undefined && rest.maxLength !== undefined)\n\tconst valueAsString = value !== undefined ? value.toString() : undefined\n\n\treturn (\n\t\t<RadixTextField.Root\n\t\t\tclassName={classNames({\n\t\t\t\t[styles.accommodateCharCount!]: displayInputLength,\n\t\t\t})}\n\t\t\tsize={computedSize}\n\t\t\tvariant={variant}\n\t\t\tcolor={color}\n\t\t>\n\t\t\t<RadixTextField.Slot>{leftIcon}</RadixTextField.Slot>\n\t\t\t<RadixTextField.Input\n\t\t\t\tclassName={classNames(styles.default, className, {\n\t\t\t\t\t[styles.noLeftIcon!]: !leftIcon,\n\t\t\t\t\t[styles.noRightIcon!]: !rightIcon,\n\t\t\t\t})}\n\t\t\t\tref={ref}\n\t\t\t\tsize={computedSize}\n\t\t\t\tvariant={variant}\n\t\t\t\tcolor={color}\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t\t<RadixTextField.Slot>{rightIcon}</RadixTextField.Slot>\n\t\t\t{displayInputLength && (\n\t\t\t\t<Text as=\"p\" className={styles.charCount} size=\"1\" color=\"gray\">\n\t\t\t\t\t{rest.maxLength !== undefined\n\t\t\t\t\t\t? `${valueAsString?.length}/${rest.maxLength}`\n\t\t\t\t\t\t: `${valueAsString?.length}`}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t</RadixTextField.Root>\n\t)\n})\nexport const Input: FC<InputProps> = React.memo(_Input)\n","import React, { forwardRef, FC } from \"react\"\nimport { Popover as RadixPopover } from \"@radix-ui/themes\"\nimport { PopoverProps } from \"./typings.ts\"\n\nconst _Popover = forwardRef(function Popover(\n\t{ defaultOpen = false, modal = false, content, children, ...rest }: PopoverProps,\n\tref: React.Ref<HTMLDivElement>,\n) {\n\treturn (\n\t\t<RadixPopover.Root defaultOpen={defaultOpen} modal={modal}>\n\t\t\t<RadixPopover.Trigger>{children}</RadixPopover.Trigger>\n\t\t\t<RadixPopover.Content ref={ref} {...rest}>\n\t\t\t\t{content(RadixPopover.Close)}\n\t\t\t</RadixPopover.Content>\n\t\t</RadixPopover.Root>\n\t)\n})\nexport const Popover: FC<PopoverProps> = React.memo(_Popover)\n","import { FC, forwardRef, memo, Ref, useMemo } from \"react\"\nimport { Text, TextArea as RadixTextArea } from \"@radix-ui/themes\"\nimport classNames from \"classnames\"\nimport { TextAreaProps } from \"./typings.ts\"\n\nimport styles from \"./Textarea.module.sass\"\nimport { useSeverityColor } from \"../utils.ts\"\n\nconst _TextArea = forwardRef(function TextArea(\n\t{ className, showInputLength, inputLengthTemplate, value, severity = \"primary\", resize, ...rest }: TextAreaProps,\n\tref: Ref<HTMLTextAreaElement>,\n) {\n\tconst severityColor = useSeverityColor(severity)\n\tconst infoColor = useSeverityColor(\"info\")\n\n\tconst displayInputLength =\n\t\tshowInputLength ||\n\t\t(showInputLength === undefined && (rest.maxLength !== undefined || rest.minLength !== undefined))\n\tconst valueAsString = value !== undefined ? value.toString() : \"\"\n\n\tconst displayInputLengthValue = useMemo(() => {\n\t\tif (inputLengthTemplate) {\n\t\t\tlet template = inputLengthTemplate.replace(\"{current}\", valueAsString.length.toString())\n\t\t\tif (rest.minLength !== undefined) {\n\t\t\t\ttemplate = template.replace(\"{min}\", rest.minLength.toString())\n\t\t\t}\n\t\t\tif (rest.maxLength !== undefined) {\n\t\t\t\ttemplate = template.replace(\"{max}\", rest.maxLength.toString())\n\t\t\t}\n\t\t\treturn template\n\t\t}\n\t\treturn valueAsString.length\n\t}, [inputLengthTemplate, rest.maxLength, rest.minLength, valueAsString.length])\n\n\treturn (\n\t\t<>\n\t\t\t<RadixTextArea\n\t\t\t\tclassName={classNames(\"overmap-textarea\", className)}\n\t\t\t\tstyle={{ resize: resize }}\n\t\t\t\tref={ref}\n\t\t\t\tvalue={value}\n\t\t\t\tcolor={severityColor}\n\t\t\t\t{...rest}\n\t\t\t/>\n\t\t\t{displayInputLength && (\n\t\t\t\t<Text as=\"p\" className={styles.charCount} color={infoColor} align=\"right\">\n\t\t\t\t\t{displayInputLengthValue}\n\t\t\t\t</Text>\n\t\t\t)}\n\t\t</>\n\t)\n})\n\n/** The TextArea Component is a user interface element that allows users to input and edit multi-line text.\n It is commonly used in forms, chat applications, and other scenarios where longer text inputs are required.\n This TextArea is a wrapper of the RadixUI TextArea component found here https://www.radix-ui.com/themes/docs/components/text-area.\n */\nexport const TextArea: FC<TextAreaProps> = memo(_TextArea)\n","import { FC, forwardRef, memo, Ref } from \"react\"\nimport { Item, Root } from \"@radix-ui/react-toggle-group\"\nimport { ToggleGroupItemProps, ToggleGroupSingleProps } from \"./typings.ts\"\nimport { IconButton } from \"../Buttons\"\nimport classNames from \"classnames\"\nimport { ButtonGroup } from \"../ButtonGroup\"\n\nconst _ToggleGroup = forwardRef(function ToggleGroup(\n\t{\n\t\tclassName,\n\t\titems,\n\t\torientation = \"horizontal\",\n\t\tmerged = true,\n\t\tvalue,\n\t\tseverity,\n\t\tgap,\n\t\tsize,\n\t\t...rest\n\t}: ToggleGroupSingleProps,\n\tref: Ref<HTMLDivElement>,\n) {\n\treturn (\n\t\t<Root\n\t\t\tclassName={classNames(\"overmap-toggle-group\", className)}\n\t\t\tref={ref}\n\t\t\tvalue={value}\n\t\t\torientation={orientation}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<ButtonGroup\n\t\t\t\twidth=\"min-content\"\n\t\t\t\theight=\"min-content\"\n\t\t\t\tmerged={merged}\n\t\t\t\tdirection={orientation === \"vertical\" ? \"column\" : \"row\"}\n\t\t\t\tgap={gap}\n\t\t\t>\n\t\t\t\t{items.map(({ children, ...rest }: ToggleGroupItemProps) => (\n\t\t\t\t\t<Item asChild {...rest} key={rest.value}>\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tclassName={classNames(\"overmap-toggle-group-button\")}\n\t\t\t\t\t\t\taria-label={rest.value}\n\t\t\t\t\t\t\tseverity={severity}\n\t\t\t\t\t\t\tvariant={rest.value === value ? \"solid\" : \"soft\"}\n\t\t\t\t\t\t\tsize={size}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t</Item>\n\t\t\t\t))}\n\t\t\t</ButtonGroup>\n\t\t</Root>\n\t)\n})\n\n/** The Toggle Group Component is a user interface element that allows users to select a single option from a set of\n * mutually exclusive choices. It is commonly used in situations where users need to make a single selection from a\n * predefined list of options. This component is built using the ButtonGroup and IconButton components in combination\n * with the Radix Toggle Group primitive found here https://www.radix-ui.com/primitives/docs/components/toggle-group */\nexport const ToggleGroup: FC<ToggleGroupSingleProps> = memo(_ToggleGroup)\n","import { FC, forwardRef, memo, Ref, useCallback } from \"react\"\nimport * as RadixToast from \"@radix-ui/react-toast\"\nimport { Callout, Flex } from \"@radix-ui/themes\"\nimport { Cross2Icon, InfoCircledIcon } from \"@radix-ui/react-icons\"\nimport classNames from \"classnames\"\nimport { IconButton } from \"../Buttons\"\nimport { ToastProps, ToastProviderProps } from \"./typings.ts\"\nimport { useSeverityColor } from \"../utils.ts\"\n\nimport styles from \"./Toast.module.sass\"\n\nconst _Toast = forwardRef(function Toast(\n\t{ title, description, icon, severity = \"primary\", size, onClose, ...rest }: ToastProps,\n\tref: Ref<HTMLLIElement>,\n) {\n\tconst color = useSeverityColor(severity)\n\tconst handleOpenChange = useCallback(\n\t\t(open: boolean) => {\n\t\t\tif (!open && onClose) onClose()\n\t\t},\n\t\t[onClose],\n\t)\n\n\treturn (\n\t\t<RadixToast.Root asChild ref={ref} {...rest} onOpenChange={handleOpenChange}>\n\t\t\t<Callout.Root\n\t\t\t\tclassName={classNames(\"overmap-toast\", styles.wrapper)}\n\t\t\t\tvariant=\"surface\"\n\t\t\t\tcolor={color}\n\t\t\t\tsize={size}\n\t\t\t>\n\t\t\t\t<Flex width=\"100%\" align=\"center\" gap=\"4\" justify=\"between\">\n\t\t\t\t\t<Flex align=\"center\" gap=\"4\">\n\t\t\t\t\t\t<Callout.Icon>{icon || <InfoCircledIcon />}</Callout.Icon>\n\t\t\t\t\t\t<Flex direction=\"column\" gap=\"0\">\n\t\t\t\t\t\t\t<RadixToast.Title asChild>\n\t\t\t\t\t\t\t\t<Callout.Text weight=\"bold\">{title}</Callout.Text>\n\t\t\t\t\t\t\t</RadixToast.Title>\n\t\t\t\t\t\t\t<RadixToast.Description asChild>\n\t\t\t\t\t\t\t\t<Callout.Text weight=\"light\">{description}</Callout.Text>\n\t\t\t\t\t\t\t</RadixToast.Description>\n\t\t\t\t\t\t</Flex>\n\t\t\t\t\t</Flex>\n\t\t\t\t\t<RadixToast.Close asChild>\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tclassName={styles.closeButton}\n\t\t\t\t\t\t\taria-label=\"Close\"\n\t\t\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t\t\tsize=\"small\"\n\t\t\t\t\t\t\tseverity={severity}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Cross2Icon />\n\t\t\t\t\t\t</IconButton>\n\t\t\t\t\t</RadixToast.Close>\n\t\t\t\t</Flex>\n\t\t\t</Callout.Root>\n\t\t</RadixToast.Root>\n\t)\n})\n\nexport const ToastProvider: FC<ToastProviderProps> = memo(function ToastProvider({\n\tchildren,\n\t...rest\n}: ToastProviderProps) {\n\treturn (\n\t\t<RadixToast.Provider swipeDirection=\"right\" swipeThreshold={75} {...rest}>\n\t\t\t{children}\n\t\t</RadixToast.Provider>\n\t)\n})\n\nexport const Toast: FC<ToastProps> = memo(_Toast)\nexport const ToastViewport: FC<RadixToast.ToastViewportProps> = RadixToast.Viewport\n","import { memo, createContext, useState, useCallback, FC } from \"react\"\nimport { IToastContext, SimpleToastMessage, ToastContextProviderProps, ToastProps } from \"./typings.ts\"\nimport { Toast, ToastProvider, ToastViewport } from \"./Toast.tsx\"\n\nexport const ToastContext = createContext({} as IToastContext)\n\nexport const ToastContextProvider: FC<ToastContextProviderProps> = memo(function ToastContextProvider({\n\tchildren,\n\t// Use this class to change where the viewport for the toasts should be\n\tviewportClass,\n\thotkey,\n\t// Default duration value for all Toasts\n\tduration = 10000,\n\t...rest\n}: ToastContextProviderProps) {\n\tconst [toasts, setToasts] = useState<ToastProps[]>([])\n\n\tconst showToast = useCallback((toastProps: ToastProps) => {\n\t\tsetToasts((prevToasts) => [...prevToasts, toastProps])\n\t}, [])\n\n\tconst showPrimary = useCallback(\n\t\t(simpleMessage: SimpleToastMessage) => {\n\t\t\tshowToast({ severity: \"primary\", ...simpleMessage })\n\t\t},\n\t\t[showToast],\n\t)\n\n\tconst showSuccess = useCallback(\n\t\t(simpleMessage: SimpleToastMessage) => {\n\t\t\tshowToast({ severity: \"success\", ...simpleMessage })\n\t\t},\n\t\t[showToast],\n\t)\n\n\tconst showError = useCallback(\n\t\t(simpleMessage: SimpleToastMessage) => {\n\t\t\tshowToast({ severity: \"danger\", ...simpleMessage })\n\t\t},\n\t\t[showToast],\n\t)\n\n\tconst showInfo = useCallback(\n\t\t(simpleMessage: SimpleToastMessage) => {\n\t\t\tshowToast({ severity: \"info\", ...simpleMessage })\n\t\t},\n\t\t[showToast],\n\t)\n\n\tconst deleteToastAtIndex = useCallback(\n\t\t(index: number) => {\n\t\t\tconst tempToasts = [...toasts]\n\t\t\ttempToasts.splice(index, 1)\n\t\t\tsetToasts(() => tempToasts)\n\t\t},\n\t\t[toasts],\n\t)\n\n\tconst toastContextValue = {\n\t\tshowToast,\n\t\tshowPrimary,\n\t\tshowSuccess,\n\t\tshowError,\n\t\tshowInfo,\n\t}\n\n\treturn (\n\t\t<ToastContext.Provider value={toastContextValue}>\n\t\t\t<ToastProvider duration={duration} {...rest}>\n\t\t\t\t<ToastViewport className={viewportClass} hotkey={hotkey} />\n\t\t\t\t{toasts.map((toastProps, index) => (\n\t\t\t\t\t<Toast key={index} {...toastProps} onClose={() => deleteToastAtIndex(index)} />\n\t\t\t\t))}\n\t\t\t\t{children}\n\t\t\t</ToastProvider>\n\t\t</ToastContext.Provider>\n\t)\n})\n","import { ElementRef, FC, ForwardRefExoticComponent, forwardRef, memo } from \"react\"\nimport { MarginProps, Text as RadixText } from \"@radix-ui/themes\"\nimport classNames from \"classnames\"\nimport styles from \"./ Text.module.sass\"\nimport { Severity } from \"../typings\"\nimport { useSeverityColor } from \"..\"\n\ntype RadixTextProps = typeof RadixText extends ForwardRefExoticComponent<infer P> ? P : never\n\nexport type TextProps = Omit<RadixTextProps, keyof MarginProps | \"ref\" | \"asChild\" | \"color\"> & {\n\t/** If true, the text will not wrap, but instead will truncate with a text overflow ellipsis.\n\t * @default false\n\t */\n\tnoWrap?: boolean\n\tseverity?: Severity\n\t/** @default span */\n\tas?: RadixTextProps[\"as\"]\n\t/** @default 3 */\n\tsize?: RadixTextProps[\"size\"]\n}\n\n/**\n * A foundational text primitive.\n *\n * Use the `as` prop to render text as a `p`, `label`, `div` or `span`. This prop is purely semantic and does not alter visual appearance.\n *\n * For the complete documentation, refer to https://www.radix-ui.com/themes/docs/components/text.\n */\nexport const Text: FC<TextProps> = memo(\n\tforwardRef<ElementRef<\"span\">, TextProps>(({ className, noWrap, severity, as, ...props }, ref) => {\n\t\tconst color = useSeverityColor(severity)\n\t\treturn (\n\t\t\t<RadixText\n\t\t\t\tref={ref}\n\t\t\t\t// bypassing incorrect TS error\n\t\t\t\tas={as as undefined}\n\t\t\t\tclassName={classNames(className, { [styles.noWrap!]: noWrap })}\n\t\t\t\tcolor={color}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t)\n\t}),\n)\n","import { Theme } from \"@radix-ui/themes\"\nimport { ComponentProps, FC, forwardRef, memo } from \"react\"\n// css file contains updates to the default radix tokens\nimport \"./DefaultTheme.css\"\n\nexport type DefaultThemeProps = ComponentProps<typeof Theme>\n\nexport const DefaultTheme: FC<DefaultThemeProps> = memo(\n\tforwardRef<HTMLDivElement, DefaultThemeProps>((props, ref) => {\n\t\tconst { panelBackground = \"solid\", radius = \"full\", ...rest } = props\n\t\treturn <Theme panelBackground={panelBackground} radius={radius} ref={ref} {...rest} />\n\t}),\n)\n"],"names":["hasOwn","classNames","classes","i","arg","argType","inner","key","module","useResponsiveMapping","value","mapping","useMemo","breakpoint","nonThemeSeverityMapping","useSeverityColor","severity","theme","useThemeContext","_Badge","forwardRef","className","color","children","rest","ref","severityColor","jsx","RadixBadge","Badge","memo","hoverEffectClassNameMapping","styles","SizeMapping","ButtonGroupContext","createContext","useButtonGroupContext","useContext","_Button","props","buttonGroupContext","fluid","size","hoverEffects","variant","hoverEffectClasses","hoverEffect","RadixButton","Button","React","RadixIconButton","IconButton","GhostVariantSizeToGapMapping","_ButtonGroup","merged","gap","direction","ghostSize","mergedAutoGap","Flex","ButtonGroup","DialogContent","title","description","content","closeDialog","jsxs","Dialog","Cross1Icon","onOpen","onCloseInterrupt","contentProps","open","setOpen","useState","handleOpenChange","useCallback","next","options","RadixDialog","Title","AlertDialog","AlertDialogContent","actionText","cancelText","onAction","onCancel","helpers","RadixAlertDialog","initialState","AlertDialogProvider","state","setState","openDialog","useAlertDialog","_Select","placeholder","side","items","id","mappedSize","createElement","RadixSelect","label","Select","_Input","leftIcon","rightIcon","showInputLength","computedSize","displayInputLength","valueAsString","RadixTextField","Text","Input","_Popover","defaultOpen","modal","RadixPopover","Popover","_TextArea","inputLengthTemplate","resize","infoColor","displayInputLengthValue","template","Fragment","RadixTextArea","TextArea","_ToggleGroup","orientation","Root","Item","ToggleGroup","_Toast","icon","onClose","RadixToast","Callout","InfoCircledIcon","Cross2Icon","ToastProvider","Toast","ToastViewport","ToastContext","ToastContextProvider","viewportClass","hotkey","duration","toasts","setToasts","showToast","toastProps","prevToasts","showPrimary","simpleMessage","showSuccess","showError","showInfo","deleteToastAtIndex","index","tempToasts","toastContextValue","noWrap","as","RadixText","DefaultTheme","panelBackground","radius","Theme"],"mappings":"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","x_google_ignoreList":[0]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@overmap-ai/blocks",
3
3
  "private": false,
4
- "version": "0.0.1-alpha.43",
4
+ "version": "0.0.1-alpha.44",
5
5
  "type": "module",
6
6
  "main": "dist/blocks.umd.cjs",
7
7
  "module": "dist/blocks.js",