@recursica/mantine-adapter 0.28.0 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -0
- package/dist/mantine-adapter.cjs +2 -2
- package/dist/mantine-adapter.cjs.map +1 -1
- package/dist/mantine-adapter.css +1 -1
- package/dist/mantine-adapter.js +1091 -1071
- package/dist/mantine-adapter.js.map +1 -1
- package/dist/src/components/Panel/Panel.d.ts +1 -1
- package/dist/src/components/Popover/Popover.d.ts +3 -1
- package/dist/src/components/Tree/Tree.d.ts +9 -0
- package/dist/src/components/Tree/index.d.ts +1 -0
- package/dist/src/components/index.d.ts +1 -0
- package/dist/src/index.d.ts +1 -0
- package/package.json +2 -2
- package/src/components/Button/Button.module.css +42 -0
- package/src/components/DatePicker/DatePicker.stories.tsx +0 -1
- package/src/components/Dropdown/Dropdown.stories.tsx +0 -6
- package/src/components/NumberInput/NumberInput.stories.tsx +0 -2
- package/src/components/Panel/Panel.tsx +1 -1
- package/src/components/Popover/Popover.tsx +8 -3
- package/src/components/SegmentedControl/SegmentedControl.module.css +1 -0
- package/src/components/Slider/Slider.module.css +29 -0
- package/src/components/Table/Table.module.css +387 -2
- package/src/components/Tabs/Tabs.module.css +2 -0
- package/src/components/Toast/Toast.module.css +6 -1
- package/src/components/Tree/Tree.module.css +43 -0
- package/src/components/Tree/Tree.stories.tsx +14 -0
- package/src/components/Tree/Tree.tsx +24 -0
- package/src/components/Tree/index.ts +1 -0
- package/src/components/index.ts +1 -0
- package/src/index.ts +3 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mantine-adapter.cjs","sources":["../src/utils/filterStylingProps.ts","../src/components/Accordion/Accordion.tsx","../src/components/Label/Label.tsx","../src/components/FormControlLayout/FormControlLayout.tsx","../src/components/AssistiveElement/AssistiveElement.tsx","../src/components/FormControlWrapper/FormControlWrapper.tsx","../../adapter-common/dist/adapter-common.js","../src/components/ReadOnlyField/ReadOnlyTextField.tsx","../src/components/ReadOnlyField/ReadOnlyField.tsx","../src/components/ReadOnlyField/WithReadOnlyWrapper.tsx","../src/components/AutoComplete/AutoComplete.tsx","../src/components/Avatar/Avatar.tsx","../src/components/Badge/Badge.tsx","../src/components/Breadcrumb/Breadcrumb.tsx","../src/components/Loader/Loader.tsx","../src/components/Button/Button.tsx","../src/components/Card/Card.tsx","../src/components/Checkbox/CheckboxGroup.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/Chip/Chip.tsx","../src/components/Container/Container.tsx","../src/components/DatePicker/DatePicker.tsx","../src/components/Dropdown/Dropdown.tsx","../src/components/FileInput/FileInput.tsx","../src/components/FileUpload/FileUpload.tsx","../src/components/Flex/Flex.tsx","../src/components/Group/Group.tsx","../src/components/HoverCard/HoverCard.tsx","../src/components/Link/Link.tsx","../src/components/Menu/Menu.tsx","../src/components/Modal/Modal.tsx","../src/components/NumberInput/NumberInput.tsx","../src/components/Pagination/Pagination.icons.tsx","../src/components/Pagination/Pagination.tsx","../src/components/Panel/Panel.tsx","../src/components/Popover/Popover.tsx","../src/components/Radio/RadioGroup.tsx","../src/components/Radio/Radio.tsx","../src/components/SegmentedControl/SegmentedControl.tsx","../src/components/Slider/Slider.tsx","../src/components/Stack/Stack.tsx","../src/components/Stepper/Stepper.tsx","../src/components/Switch/SwitchGroup.tsx","../src/components/Switch/Switch.tsx","../src/components/Table/Table.tsx","../src/components/Tabs/Tabs.tsx","../src/components/Text/Text.tsx","../src/components/TextArea/TextArea.tsx","../src/components/TextField/TextField.tsx","../src/components/TimePicker/TimePicker.tsx","../src/components/Timeline/TimelineItem.tsx","../src/components/Timeline/Timeline.tsx","../src/components/Title/Title.tsx","../src/components/Toast/Toast.tsx","../src/components/Tooltip/Tooltip.tsx","../src/components/TransferList/TransferList.tsx","../src/index.ts"],"sourcesContent":["/**\n * filterStylingProps\n *\n * This utility acts as the central gatekeeper for strict design-system adherence across\n * all Recursica components mapped over Mantine.\n *\n * PHILOSOPHY:\n * Recursica components are designed to be explicitly sandboxed tokens. Allowing external\n * `className` or Mantine style system props (`bg`, `p`, etc.) breaks the design system by\n * allowing developers to leak arbitrary designs into components.\n *\n * By default (`overStyled=false`), this utility actively prevents developers from overriding\n * internal component styles (such as background, colors, typography, or internal classNames).\n * It safely *permits* external layout overrides (like `margin` / `m`) so that components can\n * easily be spaced alongside other DOM elements.\n *\n * If a developer passes `overStyled={true}`, this filter allows all styling properties to\n * flow through to the underlying Mantine component natively, at the developer's own risk.\n *\n * @param props - The raw component props passed down to the wrapper\n * @param overStyled - Boolean toggle to allow raw external styling. Defaults to false.\n * @returns Sanitized component props safe for internal styling merging\n */\n\nexport const BLOCKED_STYLING_KEYS = [\n \"className\",\n \"classNames\",\n \"style\",\n \"styles\",\n \"vars\", // Internal structure hooks\n \"p\",\n \"px\",\n \"py\",\n \"pt\",\n \"pb\",\n \"pl\",\n \"pr\", // Padding\n \"bg\",\n \"c\",\n \"opacity\", // Color\n \"ff\",\n \"fz\",\n \"fw\",\n \"lts\",\n \"ta\",\n \"lh\",\n \"fs\",\n \"tt\",\n \"td\", // Typography\n \"bd\",\n \"bdw\",\n \"bds\",\n \"bdc\",\n \"bdr\", // Borders\n \"shadow\", // Effects\n \"w\",\n \"miw\",\n \"maw\",\n \"h\",\n \"mih\",\n \"mah\", // Dimensions\n] as const;\nexport {\n type RecursicaSpacing,\n type RecursicaSize,\n type RecursicaOverStyled,\n type BlockedStylingKeys,\n type ForbiddenStyles,\n type WithRecursicaSpacing,\n} from \"@recursica/adapter-common\";\n\nconst LAYOUT_PROPS = new Set([\n \"m\",\n \"my\",\n \"mx\",\n \"mt\",\n \"mb\",\n \"ml\",\n \"mr\",\n \"gap\",\n \"rowGap\",\n \"columnGap\",\n \"top\",\n \"left\",\n \"bottom\",\n \"right\",\n]);\n\nexport const SPACING_MAP: Record<string, string> = {\n \"rec-none\": \"var(--recursica_brand_dimensions_general_none)\",\n \"rec-sm\": \"var(--recursica_brand_dimensions_general_sm)\",\n \"rec-default\": \"var(--recursica_brand_dimensions_general_default)\",\n \"rec-md\": \"var(--recursica_brand_dimensions_general_md)\",\n \"rec-lg\": \"var(--recursica_brand_dimensions_general_lg)\",\n \"rec-xl\": \"var(--recursica_brand_dimensions_general_xl)\",\n \"rec-2xl\": \"var(--recursica_brand_dimensions_general_2xl)\",\n};\n\nexport function mapLayoutProps<T extends Record<string, unknown>>(props: T): T {\n const mapped = { ...props };\n for (const [key, value] of Object.entries(mapped)) {\n if (\n typeof value === \"string\" &&\n value.startsWith(\"rec-\") &&\n LAYOUT_PROPS.has(key)\n ) {\n if (value in SPACING_MAP) {\n (mapped as Record<string, unknown>)[key] = SPACING_MAP[value];\n }\n }\n }\n return mapped;\n}\n\nexport function filterStylingProps<T extends Record<string, unknown>>(\n props: T,\n overStyled?: boolean,\n): Partial<T> {\n if (overStyled) {\n return props;\n }\n\n const sanitized = { ...props };\n\n for (const prop of BLOCKED_STYLING_KEYS) {\n if (prop in sanitized) {\n delete sanitized[prop];\n }\n }\n\n // Intercept Recursica spacing tokens for valid layout properties\n for (const [key, value] of Object.entries(sanitized)) {\n if (\n typeof value === \"string\" &&\n value.startsWith(\"rec-\") &&\n LAYOUT_PROPS.has(key)\n ) {\n if (value in SPACING_MAP) {\n (sanitized as Record<string, unknown>)[key] = SPACING_MAP[value];\n }\n }\n }\n\n return sanitized;\n}\n","import { forwardRef } from \"react\";\nimport {\n Accordion as MantineAccordion,\n type AccordionProps as MantineAccordionProps,\n type AccordionItemProps,\n type AccordionControlProps,\n type AccordionPanelProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Accordion.module.css\";\n\nimport {\n type RecursicaAccordionProps,\n type RecursicaAccordionItemProps,\n type RecursicaAccordionControlProps,\n} from \"@recursica/adapter-common\";\n\n// ==== ACCORDION CONTAINER ====\nexport type AccordionProps = RecursicaOverStyled<\n Omit<\n MantineAccordionProps,\n \"value\" | \"defaultValue\" | \"onChange\" | \"multiple\" | \"variant\"\n > &\n RecursicaAccordionProps\n>;\n\nconst AccordionBase = function Accordion({\n variant = \"unstyled\",\n overStyled = false,\n ...rest\n}: AccordionProps) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n // Bind all deep CSS module references natively into the global class mapping schema\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n item: styles.item,\n control: styles.control,\n label: styles.label,\n chevron: styles.chevron,\n panel: styles.panel,\n content: styles.content,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>).classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Record<string, string>;\n Object.keys(o).forEach((key) => {\n if (mergedClassNames[key]) {\n mergedClassNames[key] = `${mergedClassNames[key]} ${o[key]}`;\n } else {\n mergedClassNames[key] = o[key];\n }\n });\n }\n\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <MantineAccordion\n variant={variant}\n className={classNameProp}\n classNames={mergedClassNames}\n {...(sanitizedProps as unknown as MantineAccordionProps)}\n />\n );\n};\nAccordionBase.displayName = \"Accordion\";\n\n// We need to omit and re-merge native props like in Badge\nexport type AccordionItemWrapperProps = RecursicaOverStyled<\n AccordionItemProps & RecursicaAccordionItemProps\n>;\n\nexport const AccordionItem = forwardRef<\n HTMLDivElement,\n AccordionItemWrapperProps\n>(function AccordionItem(\n { title, leftIcon, divider = true, children, overStyled = false, ...rest },\n ref,\n) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n const finalClass =\n [divider ? undefined : styles.noDivider, classNameProp]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n // If the user utilizes the explicit 'title' prop from Recursica, we securely auto-construct the Mantine sub-hierarchy natively!\n // If not, we defer to raw composable children (meaning the integrator maps `<Accordion.Control>` manually).\n return (\n <MantineAccordion.Item\n ref={ref}\n className={finalClass}\n {...(sanitizedProps as unknown as AccordionItemProps)}\n >\n {title ? (\n <>\n <AccordionControl leftIcon={leftIcon}>{title}</AccordionControl>\n <AccordionPanel>{children}</AccordionPanel>\n </>\n ) : (\n children\n )}\n </MantineAccordion.Item>\n );\n});\nAccordionItem.displayName = \"AccordionItem\";\n\n// ==== ACCORDION CONTROL ====\nexport type AccordionControlWrapperProps = RecursicaOverStyled<\n AccordionControlProps & RecursicaAccordionControlProps\n>;\n\nexport const AccordionControl = forwardRef<\n HTMLButtonElement,\n AccordionControlWrapperProps\n>(function AccordionControl(\n { leftIcon, children, overStyled = false, ...rest },\n ref,\n) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <MantineAccordion.Control\n ref={ref}\n className={classNameProp}\n icon={\n leftIcon ? (\n <span className={styles.iconLeftWrapper} aria-hidden>\n {leftIcon}\n </span>\n ) : undefined\n }\n {...(sanitizedProps as unknown as AccordionControlProps)}\n >\n {children}\n </MantineAccordion.Control>\n );\n});\nAccordionControl.displayName = \"AccordionControl\";\n\n// ==== ACCORDION PANEL ====\nexport type AccordionPanelWrapperProps =\n RecursicaOverStyled<AccordionPanelProps>;\n\nexport const AccordionPanel = forwardRef<\n HTMLDivElement,\n AccordionPanelWrapperProps\n>(function AccordionPanel({ overStyled = false, ...rest }, ref) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <MantineAccordion.Panel\n ref={ref}\n className={classNameProp}\n {...(sanitizedProps as unknown as AccordionPanelProps)}\n />\n );\n});\nAccordionPanel.displayName = \"AccordionPanel\";\n\n// ==== DOT NOTATION EXPORT ====\ntype AccordionComponent = typeof AccordionBase & {\n Item: typeof AccordionItem;\n Control: typeof AccordionControl;\n Panel: typeof AccordionPanel;\n};\n\nexport const Accordion = AccordionBase as AccordionComponent;\nAccordion.Item = AccordionItem;\nAccordion.Control = AccordionControl;\nAccordion.Panel = AccordionPanel;\n","import React, { forwardRef } from \"react\";\nimport { Input, type InputLabelProps } from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Label.module.css\";\n\nimport { type RecursicaLabelProps } from \"@recursica/adapter-common\";\n\nexport type LabelProps = RecursicaOverStyled<\n Omit<InputLabelProps, \"size\"> & RecursicaLabelProps\n>;\n\nexport const Label = forwardRef<HTMLLabelElement, LabelProps>(function Label(\n {\n labelSize = \"default\",\n labelAlignment,\n required = false,\n labelOptionalText,\n labelWithEditIcon,\n labelActionArea,\n onLabelEditClick,\n children,\n overStyled = false,\n ...rest\n },\n ref,\n) {\n const resolvedAlignment = labelAlignment || \"left\";\n\n let resolvedOptionalText: React.ReactNode | undefined;\n if (!required) {\n if (labelOptionalText === true) resolvedOptionalText = \"optional\";\n else if (labelOptionalText) resolvedOptionalText = labelOptionalText;\n }\n\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n const mergedClassNames: Partial<Record<string, string>> = {\n label: styles.root,\n required: styles.required,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.label = o.label\n ? `${styles.root} ${o.label}`\n : styles.root;\n mergedClassNames.required = o.required\n ? `${styles.required} ${o.required}`\n : styles.required;\n }\n\n const classNameProp = restRecord.className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n return (\n <Input.Label\n ref={ref}\n className={finalClass}\n classNames={mergedClassNames}\n data-size={labelSize}\n data-alignment={resolvedAlignment}\n required={required && !labelWithEditIcon}\n {...sanitizedProps}\n >\n <span className={styles.labelText}>{children}</span>\n {resolvedOptionalText && (\n <span className={styles.optionalText}>\n {typeof resolvedOptionalText === \"string\"\n ? `(${resolvedOptionalText})`\n : resolvedOptionalText}\n </span>\n )}\n {labelActionArea ? (\n <span className={styles.actionAreaWrapper}>{labelActionArea}</span>\n ) : labelWithEditIcon ? (\n <button\n type=\"button\"\n className={styles.editIconWrapper}\n data-replaces-asterisk={required ? \"true\" : undefined}\n onClick={onLabelEditClick}\n aria-label=\"Edit\"\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.5303 2.46967C11.8232 2.17678 12.2981 2.17678 12.591 2.46967L13.5303 3.40898C13.8232 3.70188 13.8232 4.17675 13.5303 4.46964L5.61288 12.3871C5.45268 12.5473 5.24434 12.6483 5.01809 12.6766L2.39534 13.0044C2.10091 13.0412 1.83856 12.7789 1.87538 12.4845L2.2032 9.86175C2.23147 9.63551 2.3325 9.42716 2.4927 9.26696L11.5303 2.46967Z\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n ) : null}\n </Input.Label>\n );\n});\n\nLabel.displayName = \"Label\";\n","import React, { forwardRef } from \"react\";\nimport styles from \"./FormControlLayout.module.css\";\n\nimport { type RecursicaFormControlLayoutProps } from \"@recursica/adapter-common\";\n\nexport interface FormControlLayoutProps\n extends React.HTMLAttributes<HTMLDivElement>,\n RecursicaFormControlLayoutProps {}\n\n/**\n * A layout component used to correctly position form inputs alongside their labels.\n *\n * **When to use this:**\n * Typically, you should use `FormControlWrapper` instead, which uses this component\n * under the hood to handle layout automatically.\n *\n * However, this component is useful when you need to align standalone inputs\n * (like a `Switch` or `Checkbox` without a label) so they perfectly match the spacing\n * and alignment of your other form fields in a `side-by-side` layout.\n */\nexport const FormControlLayout = forwardRef<\n HTMLDivElement,\n FormControlLayoutProps\n>(function FormControlLayout(\n {\n formLayout = \"stacked\",\n labelSize = \"default\",\n controlMaxWidth,\n controlMinWidth,\n leftSection,\n children,\n className,\n style,\n ...rest\n },\n ref,\n) {\n const rootClass = className ? `${styles.root} ${className}` : styles.root;\n\n // We explicitly render leftSection even if null in side-by-side to preserve the empty grid column bounding constraints.\n // In stacked layouts, if there is no label, we omit the wrapper to avoid unnecessary padding.\n const hasLeftContent = leftSection !== undefined && leftSection !== null;\n const shouldRenderLeft = hasLeftContent || formLayout === \"side-by-side\";\n\n return (\n <div\n ref={ref}\n className={rootClass}\n data-form-layout={formLayout}\n style={\n {\n ...style,\n ...(controlMaxWidth\n ? { \"--form-control-max-width\": controlMaxWidth }\n : {}),\n ...(controlMinWidth\n ? { \"--form-control-min-width\": controlMinWidth }\n : {}),\n } as React.CSSProperties\n }\n {...rest}\n >\n {shouldRenderLeft && (\n <div className={styles.leftSection} data-size={labelSize}>\n {leftSection}\n </div>\n )}\n\n <div className={styles.rightSection}>{children}</div>\n </div>\n );\n});\n\nFormControlLayout.displayName = \"FormControlLayout\";\n","import React, { forwardRef } from \"react\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./AssistiveElement.module.css\";\n\nimport { type RecursicaAssistiveElementProps } from \"@recursica/adapter-common\";\n\nexport type AssistiveElementProps = RecursicaOverStyled<\n React.HTMLAttributes<HTMLDivElement> & RecursicaAssistiveElementProps\n>;\n\nconst InfoIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 16v-4\" />\n <path d=\"M12 8h.01\" />\n </svg>\n);\n\nconst AlertIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z\" />\n <path d=\"M12 9v4\" />\n <path d=\"M12 17h.01\" />\n </svg>\n);\n\nexport const AssistiveElement = forwardRef<\n HTMLDivElement,\n AssistiveElementProps\n>(function AssistiveElement(\n {\n assistiveVariant = \"help\",\n assistiveWithIcon = true,\n children,\n className,\n overStyled = false,\n ...rest\n },\n ref,\n) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n const rootClass = styles.root;\n const finalClass = className ? `${rootClass} ${className}` : rootClass;\n\n const IconComponent = assistiveVariant === \"error\" ? AlertIcon : InfoIcon;\n\n return (\n <div\n ref={ref}\n className={finalClass}\n data-variant={assistiveVariant}\n style={restRecord.style as React.CSSProperties}\n {...restRecord} // Spread standard HTML attributes (like id, aria-*, role) natively.\n >\n {assistiveWithIcon && (\n <span className={styles.iconWrapper}>\n <IconComponent />\n </span>\n )}\n <span className={styles.textWrapper}>{children}</span>\n </div>\n );\n});\n\nAssistiveElement.displayName = \"AssistiveElement\";\n","import React, { forwardRef, useId } from \"react\";\nimport { type InputWrapperProps } from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport { Label } from \"../Label/Label\";\nimport { FormControlLayout } from \"../FormControlLayout/FormControlLayout\";\nimport { AssistiveElement } from \"../AssistiveElement/AssistiveElement\";\nimport styles from \"./FormControlWrapper.module.css\";\n\nimport { type RecursicaFormControlWrapperProps } from \"@recursica/adapter-common\";\nexport type { RecursicaFormControlWrapperProps };\n\nexport type FormControlWrapperProps = RecursicaOverStyled<\n Omit<InputWrapperProps, \"labelProps\" | \"inputWrapperOrder\"> &\n RecursicaFormControlWrapperProps\n>;\n\nexport const FormControlWrapper = forwardRef<\n HTMLDivElement,\n FormControlWrapperProps\n>(function FormControlWrapper(\n {\n formLayout,\n labelSize,\n labelAlignment,\n labelOptionalText,\n labelWithEditIcon,\n labelActionArea,\n onLabelEditClick,\n\n label,\n description,\n assistiveText,\n assistiveWithIcon = true,\n controlMaxWidth,\n controlMinWidth,\n error,\n required,\n withAsterisk,\n id: userProvidedId,\n children,\n className,\n overStyled = false,\n labelElement, // Extracted safely preventing bleeding into HTML domains\n ...rest\n },\n ref,\n) {\n // Generate a reliable ID to map the Label's HTML context down to the component array natively.\n const generatedId = useId();\n const id = userProvidedId || `recursica-fc-${generatedId}`;\n\n // Evaluate explicit assistive fallbacks ensuring assistiveText correctly prioritizes natively over underlying Mantine configurations!\n const resolvedAssistive = assistiveText || description;\n const assistiveId = resolvedAssistive ? `${id}-assistive` : undefined;\n const errorId = error ? `${id}-error` : undefined;\n\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n const classNameProp =\n className || (restRecord.className as string | undefined);\n const rootClass = styles.root;\n const finalClass = classNameProp\n ? `${rootClass} ${classNameProp}`\n : rootClass;\n\n // Clone ARIA identifiers directly back down into the nested children wrapper so screen-readers natively hook the external strings\n const content = React.isValidElement(children)\n ? React.cloneElement(\n children as React.ReactElement<Record<string, unknown>>,\n {\n ...(resolvedAssistive &&\n !(children.props as Record<string, unknown>)[\"aria-describedby\"]\n ? { \"aria-describedby\": assistiveId }\n : {}),\n ...(error &&\n !(children.props as Record<string, unknown>)[\"aria-errormessage\"]\n ? { \"aria-errormessage\": errorId }\n : {}),\n },\n )\n : children;\n\n const labelNode = label ? (\n <Label\n id={id} // Directly binds ARIA references down\n labelAlignment={labelAlignment}\n labelOptionalText={labelOptionalText}\n labelWithEditIcon={labelWithEditIcon}\n labelActionArea={labelActionArea}\n onLabelEditClick={onLabelEditClick}\n required={withAsterisk ?? required}\n // Manually propagate relevant structural logic if underlying groups dictate Label to act as generic wrapper\n {...(labelElement === \"div\" ? { as: \"div\" } : {})}\n >\n {label}\n </Label>\n ) : undefined;\n\n return (\n <FormControlLayout\n ref={ref}\n className={finalClass}\n formLayout={formLayout}\n labelSize={labelSize}\n controlMaxWidth={controlMaxWidth}\n controlMinWidth={controlMinWidth}\n leftSection={labelNode}\n {...restRecord}\n >\n {/*\n The Core Input Wrapper & Controls\n Nakedly inject the actual field elements alongside natively bridged Assistive components mapped dynamically.\n */}\n <div className={styles.inputSection}>\n {content}\n\n {error && (\n <AssistiveElement\n id={errorId}\n assistiveVariant=\"error\"\n assistiveWithIcon={assistiveWithIcon}\n >\n {error}\n </AssistiveElement>\n )}\n\n {!error && resolvedAssistive && (\n <AssistiveElement\n id={assistiveId}\n assistiveVariant=\"help\"\n assistiveWithIcon={assistiveWithIcon}\n >\n {resolvedAssistive}\n </AssistiveElement>\n )}\n </div>\n </FormControlLayout>\n );\n});\n\nFormControlWrapper.displayName = \"FormControlWrapper\";\n","import { jsx as l, Fragment as _ } from \"react/jsx-runtime\";\nimport u, { forwardRef as S, useState as C, useEffect as y } from \"react\";\nconst R = \"_root_1qhn7_3\", T = \"_contents_1qhn7_18\", a = {\n root: R,\n contents: T\n}, g = S(function({ layer: t, contentsOnly: r, children: d, className: n, style: o, ...s }, v) {\n const w = r ? n ? `${a.root} ${a.contents} ${n}` : `${a.root} ${a.contents}` : n ? `${a.root} ${n}` : a.root;\n return /* @__PURE__ */ l(\n \"div\",\n {\n ref: v,\n className: w,\n style: o,\n ...r ? {} : { \"data-recursica-layer\": String(t) },\n ...s,\n children: d\n }\n );\n});\ng.displayName = \"Layer\";\nconst m = ({ emptyText: e = \"N/A\" }) => /* @__PURE__ */ l(u.Fragment, { children: e });\nm.displayName = \"EmptyValueRenderer\";\nm.check = (e) => e == null || e === \"\" || Array.isArray(e) && e.length === 0;\nconst A = { BASE_URL: \"/\", DEV: !1, MODE: \"library\", PROD: !0, SSR: !1, VITE_PLUGIN_MODE: \"production\", VITE_PLUGIN_PHRASE: \"recursica_plugin_@K9mX7pQw2VbN8fRt3LzY6HjE4CuA5DsG1WvM9nP0XcB7\", VITE_PLUGIN_PHRASE_TEST: \"recursica_plugin_@19866374\", VITE_RECURSICA_API_TEST: \"https://dev-api.recursica.com\", VITE_RECURSICA_API_URL: \"https://api.recursica.com\", VITE_RECURSICA_UI_URL: \"https://api.recursica.com\" }, i = (() => {\n try {\n if (typeof process < \"u\" && process.env && process.env.NODE_ENV)\n return process.env.NODE_ENV !== \"production\";\n } catch {\n }\n try {\n if (import.meta && A)\n return !0;\n } catch {\n }\n if (typeof window < \"u\") {\n const e = window.location.hostname;\n return e === \"localhost\" || e === \"127.0.0.1\" || e.endsWith(\".local\");\n }\n return !1;\n})(), p = /* @__PURE__ */ new Set();\nlet c = !1;\nfunction I(e) {\n if (!i)\n return console.warn(\n \"[Recursica] overStyled highlight is disabled in production builds.\"\n ), !1;\n if (c = e !== void 0 ? e : !c, typeof document < \"u\") {\n const t = document.documentElement, r = c ? \"0 0 0 2px cyan\" : \"none\";\n t.style.setProperty(\"--recursica-over-styled-shadow\", r), console.log(\n `[Recursica] Highlight outlines toggled: ${c ? \"ACTIVE (0 0 0 2px cyan)\" : \"INACTIVE\"}`\n );\n } else\n console.warn(\"[Recursica] document is undefined. Cannot set CSS property.\");\n return p.forEach((t) => t()), c;\n}\nfunction P() {\n return i && c;\n}\nfunction b() {\n const [e, t] = C(c);\n return y(() => {\n if (!i) return;\n E(), h();\n const r = () => t(c);\n return p.add(r), () => {\n p.delete(r);\n };\n }, []), i && e;\n}\nfunction E() {\n if (!i) return;\n if (typeof document > \"u\") {\n console.warn(\n \"[Recursica] document is undefined. Cannot inject overStyled styles.\"\n );\n return;\n }\n const e = \"recursica-over-styled-styles\";\n let t = document.getElementById(e);\n t || (t = document.createElement(\"style\"), t.id = e, t.textContent = `\n :root {\n --recursica-over-styled-shadow: none;\n }\n .recursica-over-styled {\n display: contents !important;\n }\n .recursica-over-styled > * {\n box-shadow: var(--recursica-over-styled-shadow) !important;\n }\n `, document.head.appendChild(t));\n}\nfunction h() {\n if (!i) return;\n if (typeof window > \"u\") {\n console.warn(\n \"[Recursica] window is undefined. Cannot register console command.\"\n );\n return;\n }\n const e = (t) => {\n try {\n t.recursica = t.recursica || {}, t.recursica.toggleOverStyled = () => `[Recursica] Overstyled outline highlight is now: ${I() ? \"ON (cyan 2px box shadow)\" : \"OFF\"}`;\n } catch {\n }\n };\n e(window), window.parent && window.parent !== window && e(window.parent);\n}\nconst f = \"data-recursica-theme\";\nfunction V({\n children: e,\n theme: t = \"light\"\n}) {\n return y(() => {\n const r = document.documentElement;\n return r.setAttribute(f, t), () => {\n r.removeAttribute(f);\n };\n }, [t]), y(() => {\n E(), h();\n }, []), /* @__PURE__ */ l(_, { children: e });\n}\nconst x = [\n \"Accordion\",\n \"AssistiveElement\",\n \"Autocomplete\",\n \"Avatar\",\n \"Badge\",\n \"Breadcrumb\",\n \"Button\",\n \"Card\",\n \"Checkbox\",\n \"Chip\",\n \"Container\",\n \"DatePicker\",\n \"Dropdown\",\n \"EmptyValueRenderer\",\n \"Flex\",\n \"FormControlLayout\",\n \"FormControlWrapper\",\n \"Group\",\n \"HoverCard\",\n \"Label\",\n \"Layer\",\n \"Link\",\n \"Loader\",\n \"Menu\",\n \"Modal\",\n \"NumberInput\",\n \"Pagination\",\n \"Panel\",\n \"Popover\",\n \"Radio\",\n \"ReadOnlyField\",\n \"SegmentedControl\",\n \"Slider\",\n \"Stack\",\n \"Stepper\",\n \"Switch\",\n \"Table\",\n \"Tabs\",\n \"Text\",\n \"TextArea\",\n \"TextField\",\n \"TimePicker\",\n \"Timeline\",\n \"Title\",\n \"Toast\",\n \"Tooltip\",\n \"TransferList\"\n], L = (e, t) => {\n const r = document.activeElement;\n return new Promise((d, n) => {\n if (t && t.current) {\n const o = document.createElement(\"textarea\");\n o.readOnly = !0, o.defaultValue = e, t.current.appendChild(o), o.select();\n const s = document.execCommand(\"copy\");\n t.current.removeChild(o), r && r.focus(), s ? d() : n(new Error(\"Failed to copy\"));\n } else\n n(new Error(\"Copy area reference is not defined\"));\n });\n};\nfunction U(e) {\n if (!i || typeof e != \"function\" && !(e && e.$$typeof))\n return e;\n const t = u.forwardRef((r, d) => {\n const { overStyled: n } = r, o = b(), s = u.createElement(\n e,\n { ...r, ref: d }\n );\n return n && o ? /* @__PURE__ */ l(\"div\", { className: \"recursica-over-styled\", children: s }) : s;\n });\n return t.displayName = e.displayName || e.name || \"Component\", t;\n}\nexport {\n m as EmptyValueRenderer,\n i as IS_DEV,\n g as Layer,\n x as RECURSICA_COMPONENTS,\n V as RecursicaThemeProvider,\n L as copyToClipboard,\n E as injectOverStyledStyles,\n P as isGlobalOverStyledActive,\n h as registerOverStyledConsoleCommand,\n I as toggleGlobalOverStyled,\n b as useGlobalOverStyled,\n U as wrapComponent\n};\n//# sourceMappingURL=adapter-common.js.map\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React from \"react\";\nimport { Box } from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./ReadOnlyField.module.css\";\n\nexport interface RecursicaReadOnlyTextFieldProps {\n /** The value strictly rendered as text output */\n value?: any;\n}\n\nexport type ReadOnlyTextFieldProps =\n RecursicaOverStyled<RecursicaReadOnlyTextFieldProps>;\n\nexport const ReadOnlyTextField: React.FC<ReadOnlyTextFieldProps> = ({\n value,\n overStyled = false,\n ...rest\n}) => {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <Box\n component=\"p\"\n className={\n classNameProp\n ? `${styles.textField} ${classNameProp}`\n : styles.textField\n }\n {...sanitizedProps}\n >\n {value != null\n ? React.isValidElement(value)\n ? value\n : Array.isArray(value)\n ? value.join(\", \")\n : String(value)\n : \"\"}\n </Box>\n );\n};\n\nReadOnlyTextField.displayName = \"ReadOnlyTextField\";\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { forwardRef } from \"react\";\nimport {\n EmptyValueRenderer,\n type ReadOnlyControlProps,\n} from \"@recursica/adapter-common\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport {\n type FormControlWrapperProps,\n FormControlWrapper,\n} from \"../FormControlWrapper/FormControlWrapper\";\nimport { ReadOnlyTextField } from \"./ReadOnlyTextField\";\nimport styles from \"./ReadOnlyField.module.css\";\n\nimport { type RecursicaReadOnlyFieldProps as BaseRecursicaReadOnlyFieldProps } from \"@recursica/adapter-common\";\n\nexport interface RecursicaReadOnlyFieldProps\n extends Omit<\n FormControlWrapperProps,\n \"children\" | \"overStyled\" | \"controlMaxWidth\" | \"controlMinWidth\"\n >,\n Pick<ReadOnlyControlProps, \"emptyValueComponent\">,\n BaseRecursicaReadOnlyFieldProps {}\n\nexport type ReadOnlyFieldProps =\n RecursicaOverStyled<RecursicaReadOnlyFieldProps>;\n\n/**\n * A native generic form control wrapper exclusively responsible for displaying fixed data.\n * Internally maps to structural ReadOnly primitive blocks bridging standard `FormControlWrapper` layouts natively.\n */\nexport const ReadOnlyField = forwardRef<HTMLDivElement, ReadOnlyFieldProps>(\n function ReadOnlyField(\n {\n value,\n type = \"text\",\n emptyValueComponent,\n overStyled = false,\n className,\n style,\n ...rest\n },\n ref,\n ) {\n let content: React.ReactNode = null;\n\n // We still pass sanitized properties (like className/style/etc) strictly down.\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n const Renderer = emptyValueComponent || EmptyValueRenderer;\n const isValueEmpty = (Renderer as any).check\n ? (Renderer as any).check(value)\n : EmptyValueRenderer.check(value);\n\n const displayValue = isValueEmpty ? (\n <Renderer value={value as any} />\n ) : (\n value\n );\n\n switch (type) {\n case \"boolean\":\n content = (\n <ReadOnlyTextField\n value={\n value === true ? \"True\" : value === false ? \"False\" : displayValue\n }\n overStyled={overStyled as true}\n />\n );\n break;\n case \"switch\":\n content = (\n <ReadOnlyTextField\n value={\n value === true ? \"On\" : value === false ? \"Off\" : displayValue\n }\n overStyled={overStyled as true}\n />\n );\n break;\n case \"text\":\n default:\n content = (\n <ReadOnlyTextField\n value={displayValue}\n overStyled={overStyled as true}\n />\n );\n break;\n }\n\n const wrapperClass = className\n ? `${styles.layoutOverride} ${className}`\n : styles.layoutOverride;\n\n return (\n <FormControlWrapper\n ref={ref}\n overStyled={overStyled as true}\n className={wrapperClass}\n style={style}\n {...(sanitizedProps as any)}\n >\n {content}\n </FormControlWrapper>\n );\n },\n);\n\nReadOnlyField.displayName = \"ReadOnlyField\";\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { forwardRef } from \"react\";\nimport { type ReadOnlyFieldType } from \"@recursica/adapter-common\";\nimport {\n FormControlWrapper,\n type FormControlWrapperProps,\n} from \"../FormControlWrapper/FormControlWrapper\";\nimport { ReadOnlyField } from \"./ReadOnlyField\";\n\nexport interface WithReadOnlyWrapperProps\n extends Omit<FormControlWrapperProps, \"children\" | \"overStyled\"> {\n /** Injects whether the field defaults to reading mode natively */\n readOnly?: boolean;\n /** Explicit React component directly overtaking the baseline text renderer when read-only mode is active */\n readOnlyComponent?: React.ElementType<any>;\n /** Custom renderer explicitly responsible for formatting missing/empty value mappings (overriding default 'N/A') */\n emptyValueComponent?: React.ElementType<{ value?: any }>;\n /** The full native props dictionary securely forwarded into the custom readOnlyComponent if active */\n readOnlyNativeProps?: any;\n /** Instructs the underlying generic ReadOnlyField which raw visual structure to bridge automatically */\n readOnlyType?: ReadOnlyFieldType;\n /** The isolated raw data value intercepted explicitly into the ReadOnly formatters */\n readOnlyValue?: any;\n /** Safely enables deep Mantine overrides transparently bypassing block filters */\n overStyled?: boolean;\n /** The nested active node dynamically exposed exclusively when read-only bounds are disabled */\n activeComponent: React.ReactNode;\n}\n\n/**\n * Universal execution barrier trapping readOnly states globally.\n * Natively delegates active logic down avoiding duplicative internal component bindings dynamically.\n */\nexport const WithReadOnlyWrapper = forwardRef<\n HTMLDivElement,\n WithReadOnlyWrapperProps\n>(function WithReadOnlyWrapper(\n {\n readOnly,\n readOnlyComponent,\n readOnlyType = \"text\",\n readOnlyValue,\n readOnlyNativeProps,\n emptyValueComponent,\n activeComponent,\n overStyled,\n onLabelEditClick,\n ...wrapperProps\n },\n ref,\n) {\n if (readOnly) {\n if (readOnlyComponent) {\n const ReadOnlyComponent = readOnlyComponent;\n return (\n <FormControlWrapper\n ref={ref}\n {...wrapperProps}\n onLabelEditClick={onLabelEditClick}\n overStyled={overStyled as true}\n >\n <ReadOnlyComponent {...readOnlyNativeProps} />\n </FormControlWrapper>\n );\n }\n\n return (\n <ReadOnlyField\n ref={ref}\n type={readOnlyType}\n value={readOnlyValue}\n emptyValueComponent={emptyValueComponent}\n onLabelEditClick={onLabelEditClick}\n overStyled={overStyled as true}\n {...wrapperProps}\n />\n );\n }\n\n // Active Standard Execution natively forwarding bound children implicitly\n return (\n <FormControlWrapper\n ref={ref}\n {...wrapperProps}\n onLabelEditClick={onLabelEditClick}\n overStyled={overStyled as true}\n >\n {activeComponent}\n </FormControlWrapper>\n );\n});\n\nWithReadOnlyWrapper.displayName = \"WithReadOnlyWrapper\";\n","import React, { forwardRef } from \"react\";\nimport {\n Autocomplete as MantineAutocomplete,\n type AutocompleteProps as MantineAutocompleteProps,\n type InputWrapperProps,\n} from \"@mantine/core\";\nimport { type ReadOnlyControlProps } from \"@recursica/adapter-common\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport { type RecursicaFormControlWrapperProps } from \"../FormControlWrapper/FormControlWrapper\";\nimport { WithReadOnlyWrapper } from \"../ReadOnlyField/WithReadOnlyWrapper\";\nimport styles from \"./AutoComplete.module.css\";\n\nimport { type RecursicaAutocompleteProps as BaseRecursicaAutocompleteProps } from \"@recursica/adapter-common\";\n\nexport interface RecursicaAutoCompleteProps\n extends Omit<\n MantineAutocompleteProps,\n | \"size\"\n | \"variant\"\n | \"radius\"\n | \"wrapperProps\"\n | \"data\"\n | \"defaultValue\"\n | \"value\"\n >,\n Pick<\n InputWrapperProps,\n \"label\" | \"error\" | \"required\" | \"withAsterisk\" | \"id\"\n >,\n Omit<\n RecursicaFormControlWrapperProps,\n \"controlMaxWidth\" | \"controlMinWidth\"\n >,\n ReadOnlyControlProps,\n BaseRecursicaAutocompleteProps {\n /** Current input value */\n value?: string;\n}\n\nexport type AutoCompleteProps = RecursicaOverStyled<RecursicaAutoCompleteProps>;\n\nexport const AutoComplete = forwardRef<HTMLInputElement, AutoCompleteProps>(\n function AutoComplete(props, ref) {\n const {\n overStyled = false,\n formLayout = \"stacked\",\n\n // Label & Wrapper Maps\n labelSize,\n labelAlignment,\n labelOptionalText,\n labelWithEditIcon,\n onLabelEditClick,\n\n label,\n assistiveText,\n assistiveWithIcon,\n error,\n required,\n withAsterisk,\n id,\n className,\n style,\n disabled,\n readOnly,\n readOnlyComponent,\n emptyValueComponent,\n value,\n defaultValue,\n ...rest\n } = props;\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Delete prohibited sizing hooks from bypassing variables natively\n delete restRecord[\"size\"];\n delete restRecord[\"variant\"];\n delete restRecord[\"radius\"];\n\n // Securely map core native blocks down ensuring nested CSS modules map precisely\n const mergedClassNames: Partial<Record<string, string>> = {\n wrapper: styles.root, // The nested Input internal relative wrapper bounding box\n input: styles.input,\n section: styles.section,\n dropdown: styles.dropdown,\n option: styles.option,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.wrapper = o.wrapper\n ? `${styles.root} ${o.wrapper}`\n : styles.root;\n mergedClassNames.input = o.input\n ? `${styles.input} ${o.input}`\n : styles.input;\n mergedClassNames.section = o.section\n ? `${styles.section} ${o.section}`\n : styles.section;\n mergedClassNames.dropdown = o.dropdown\n ? `${styles.dropdown} ${o.dropdown}`\n : styles.dropdown;\n mergedClassNames.option = o.option\n ? `${styles.option} ${o.option}`\n : styles.option;\n }\n\n const wrapperClass = className\n ? `${styles.layoutOverride} ${className}`\n : styles.layoutOverride;\n\n return (\n <WithReadOnlyWrapper\n className={wrapperClass}\n style={style as React.CSSProperties}\n controlMaxWidth=\"var(--recursica_ui-kit_components_autocomplete_properties_max-width)\"\n controlMinWidth=\"var(--recursica_ui-kit_components_autocomplete_properties_min-width)\"\n overStyled={overStyled as true}\n formLayout={formLayout}\n labelSize={labelSize}\n labelAlignment={labelAlignment}\n labelOptionalText={labelOptionalText}\n labelWithEditIcon={labelWithEditIcon}\n onLabelEditClick={onLabelEditClick}\n label={label}\n assistiveText={assistiveText}\n assistiveWithIcon={assistiveWithIcon}\n error={error}\n required={required}\n withAsterisk={withAsterisk}\n id={id}\n readOnly={readOnly}\n readOnlyComponent={readOnlyComponent}\n emptyValueComponent={emptyValueComponent}\n readOnlyType=\"text\"\n readOnlyValue={value !== undefined ? value : defaultValue}\n readOnlyNativeProps={props}\n activeComponent={\n /* Naked Input execution safely decoupled from Mantine's macro Input.Wrapper DOM hooks */\n <MantineAutocomplete\n ref={ref}\n classNames={mergedClassNames}\n disabled={disabled}\n value={value as string | undefined}\n defaultValue={defaultValue as string | undefined}\n wrapperProps={{\n \"data-disabled\": disabled ? \"true\" : undefined,\n \"data-error\": error ? \"true\" : undefined,\n }}\n {...(sanitizedProps as unknown as MantineAutocompleteProps)}\n />\n }\n />\n );\n },\n);\n\nAutoComplete.displayName = \"AutoComplete\";\n","import { forwardRef } from \"react\";\nimport {\n Avatar as MantineAvatar,\n type AvatarProps as MantineAvatarProps,\n createPolymorphicComponent,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Avatar.module.css\";\n\nimport { type RecursicaAvatarProps } from \"@recursica/adapter-common\";\n\nexport type AvatarProps = RecursicaOverStyled<\n Omit<MantineAvatarProps, \"variant\" | \"size\" | \"color\" | \"radius\"> &\n RecursicaAvatarProps\n>;\n\nconst _Avatar = forwardRef<HTMLDivElement, AvatarProps>(function Avatar(\n {\n size = \"default\",\n variant = \"solid\",\n icon,\n children,\n src,\n overStyled = false,\n ...rest\n },\n ref,\n) {\n const mapVariant = {\n solid: \"filled\",\n outline: \"outline\",\n ghost: \"transparent\",\n } as const;\n\n const mapSize = {\n default: \"md\",\n small: \"sm\",\n large: \"lg\",\n } as const;\n\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Determine semantic style based on provided props\n let computedStyle = \"text\";\n if (src) {\n computedStyle = \"image\";\n } else if (icon) {\n computedStyle = \"icon\";\n }\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n image: styles.image,\n placeholder: styles.placeholder,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n mergedClassNames.image = o.image\n ? `${styles.image} ${o.image}`\n : styles.image;\n mergedClassNames.placeholder = o.placeholder\n ? `${styles.placeholder} ${o.placeholder}`\n : styles.placeholder;\n }\n\n const classNameProp = restRecord.className as string | undefined;\n\n return (\n <MantineAvatar\n ref={ref}\n className={classNameProp}\n classNames={mergedClassNames}\n variant={mapVariant[variant]}\n size={mapSize[size]}\n src={src}\n data-variant={variant}\n data-size={size}\n data-style={computedStyle}\n {...sanitizedProps}\n >\n {icon != null ? (\n <span className={styles.iconWrapper} aria-hidden>\n {icon}\n </span>\n ) : children != null ? (\n <span className={styles.textWrapper}>{children}</span>\n ) : undefined}\n </MantineAvatar>\n );\n});\n_Avatar.displayName = \"Avatar\";\n\n/**\n * Recursica Avatar component wrapping Mantine's Avatar.\n *\n * Supports polymorphism via the `component` prop or `renderRoot` for custom element rendering.\n */\nexport const Avatar = createPolymorphicComponent<\"div\", AvatarProps>(_Avatar);\n","import { forwardRef } from \"react\";\nimport {\n Badge as MantineBadge,\n type BadgeProps as MantineBadgeProps,\n createPolymorphicComponent,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Badge.module.css\";\n\nimport { type RecursicaBadgeProps } from \"@recursica/adapter-common\";\n\nexport type BadgeProps = RecursicaOverStyled<\n Omit<MantineBadgeProps, \"variant\" | \"size\" | \"color\" | \"radius\"> &\n RecursicaBadgeProps\n>;\n\nconst _Badge = forwardRef<HTMLDivElement, BadgeProps>(function Badge(\n { variant = \"primary-color\", overStyled = false, ...rest },\n ref,\n) {\n // Strip all visual override injections unless developer has specifically opted into overStyling.\n // External layout props like margins are safely preserved.\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n section: styles.section,\n label: styles.label,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>).classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n mergedClassNames.section = o.section ?? styles.section;\n mergedClassNames.label = o.label ?? styles.label;\n }\n\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n return (\n <MantineBadge\n ref={ref}\n variant=\"filled\" // We manage visual style purely through our CSS variables mapping\n data-variant={variant}\n {...sanitizedProps}\n className={finalClass}\n classNames={mergedClassNames}\n />\n );\n});\n_Badge.displayName = \"Badge\";\n\n/**\n * Recursica Badge component wrapping Mantine's Badge.\n *\n * Supports polymorphism via the `component` prop or `renderRoot` for custom element rendering.\n */\nexport const Badge = createPolymorphicComponent<\"div\", BadgeProps>(_Badge);\n","import { forwardRef } from \"react\";\nimport {\n Breadcrumbs as MantineBreadcrumbs,\n type BreadcrumbsProps as MantineBreadcrumbsProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Breadcrumb.module.css\";\n\n// Currently there are no Recursica prop additions specific to Breadcrumbs (like size or variant)\n// according to recursica_ui-kit.json\nimport { type RecursicaBreadcrumbProps } from \"@recursica/adapter-common\";\n\nexport type BreadcrumbProps = RecursicaOverStyled<\n Omit<MantineBreadcrumbsProps, \"variant\" | \"size\"> & RecursicaBreadcrumbProps\n>;\n\nexport const Breadcrumb = forwardRef<HTMLDivElement, BreadcrumbProps>(\n function Breadcrumb({ overStyled = false, separator = \">\", ...rest }, ref) {\n const sanitizedProps = filterStylingProps(\n { separator, ...rest },\n overStyled,\n );\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n separator: styles.separator,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>)\n .classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n mergedClassNames.separator = o.separator\n ? `${styles.separator} ${o.separator}`\n : styles.separator;\n }\n\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n return (\n <MantineBreadcrumbs\n ref={ref}\n {...(sanitizedProps as unknown as MantineBreadcrumbsProps)}\n className={finalClass}\n classNames={mergedClassNames}\n />\n );\n },\n);\n\nBreadcrumb.displayName = \"Breadcrumb\";\n","import { forwardRef } from \"react\";\nimport {\n Loader as MantineLoader,\n type LoaderProps as MantineLoaderProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Loader.module.css\";\n\nimport { type RecursicaLoaderProps } from \"@recursica/adapter-common\";\n\nexport type LoaderProps = RecursicaOverStyled<\n Omit<MantineLoaderProps, \"variant\" | \"size\" | \"type\"> & RecursicaLoaderProps\n>;\n\nexport const Loader = forwardRef<HTMLSpanElement, LoaderProps>(function Loader(\n { variant = \"oval\", size = \"default\", overStyled = false, ...rest },\n ref,\n) {\n const mapSize = {\n sm: \"small\",\n md: \"default\",\n lg: \"large\",\n small: \"small\",\n default: \"default\",\n large: \"large\",\n } as const;\n\n const resolvedSize = mapSize[size] || \"default\";\n\n // Strip all visual override injections unless developer has specifically opted into overStyling.\n // External layout props like margins are safely preserved.\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>).classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n }\n\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n return (\n <MantineLoader\n ref={ref}\n type={variant}\n data-variant={variant}\n data-size={resolvedSize}\n {...sanitizedProps}\n className={finalClass}\n classNames={mergedClassNames}\n />\n );\n});\n\nLoader.displayName = \"Loader\";\n","import React, { forwardRef } from \"react\";\nimport { Loader } from \"../Loader/Loader\";\nimport {\n Button as MantineButton,\n type ButtonProps as MantineButtonProps,\n createPolymorphicComponent,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Button.module.css\";\n\nimport { type RecursicaButtonProps } from \"@recursica/adapter-common\";\n\nexport type ButtonProps = RecursicaOverStyled<\n Omit<MantineButtonProps, \"variant\" | \"size\" | \"leftSection\" | \"fullWidth\"> &\n RecursicaButtonProps\n>;\n\nfunction hasVisibleChildren(children: React.ReactNode): boolean {\n if (children == null || children === \"\") return false;\n if (typeof children === \"string\") return children.trim() !== \"\";\n return true;\n}\n\nconst _Button = forwardRef<HTMLButtonElement, ButtonProps>(function Button(\n {\n variant = \"solid\",\n size = \"default\",\n icon,\n children,\n overStyled = false,\n loaderVariant = \"oval\",\n loaderSize,\n useRecursicaLoader = true,\n ...rest\n },\n ref,\n) {\n const mapVariant = {\n solid: \"filled\",\n outline: \"outline\",\n text: \"subtle\",\n } as const;\n\n const mapSize = {\n default: \"md\",\n small: \"sm\",\n } as const;\n\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Explicitly delete blocked semantic expansion dimension props\n delete restRecord[\"fullWidth\"];\n\n const hasLeftSection = !!icon || !!restRecord[\"leftSection\"];\n const hasRightSection = !!restRecord[\"rightSection\"];\n const hasVisibleText = hasVisibleChildren(children);\n const isIconOnly = (hasLeftSection || hasRightSection) && !hasVisibleText;\n\n let contentType = \"label\";\n if (isIconOnly) {\n contentType = \"icon-only\";\n } else if (hasLeftSection || hasRightSection) {\n contentType = \"icon-label\";\n }\n\n if (\n typeof process !== \"undefined\" &&\n process.env.NODE_ENV !== \"production\" &&\n isIconOnly &&\n !restRecord[\"aria-label\"]\n ) {\n console.warn(\n '[Recursica Button] Icon-only buttons must provide an accessible name. Pass aria-label (e.g. aria-label=\"Submit\").',\n );\n }\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n section: styles.section,\n label: styles.label,\n loader: styles.loader,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n mergedClassNames.section = o.section ?? styles.section;\n mergedClassNames.label = o.label ?? styles.label;\n }\n\n const classNameProp = restRecord.className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n const userLoaderProps = restRecord.loaderProps as\n | Record<string, unknown>\n | undefined;\n\n const resolvedLoaderSize =\n loaderSize ?? (size === \"small\" ? \"small\" : \"default\");\n\n let mergedLoaderProps = userLoaderProps;\n if (useRecursicaLoader) {\n mergedLoaderProps = {\n children: <Loader variant={loaderVariant} size={resolvedLoaderSize} />,\n ...userLoaderProps,\n };\n }\n\n return (\n <MantineButton\n ref={ref}\n className={finalClass}\n classNames={mergedClassNames}\n variant={mapVariant[variant]}\n size={mapSize[size]}\n loaderProps={mergedLoaderProps}\n leftSection={\n icon != null ? (\n <span className={styles.iconWrapper} aria-hidden>\n {icon}\n </span>\n ) : undefined\n }\n data-variant={variant}\n data-size={size}\n data-content={contentType}\n {...sanitizedProps}\n disabled={!!restRecord.disabled || !!restRecord.loading}\n >\n <span className={styles.labelText}>{children}</span>\n </MantineButton>\n );\n});\n_Button.displayName = \"Button\";\n\n/**\n * Recursica Button component wrapping Mantine's Button.\n *\n * Supports polymorphism via the `component` prop or `renderRoot` for custom element rendering.\n * This is particularly useful when you need a button that behaves as a hyperlink (rendering an `<a>` tag)\n * or integrates with a routing library (e.g., `react-router-dom` or Next.js), while preserving full visual styling.\n *\n * @example\n * ```tsx\n * // Renders as an <a> tag natively\n * <Button component=\"a\" href=\"/dashboard\" target=\"_blank\">Navigate</Button>\n *\n * // Renders using a custom router link\n * <Button renderRoot={(props) => <Link to=\"/home\" {...props} />}>Home</Button>\n * ```\n */\nexport const Button = createPolymorphicComponent<\"button\", ButtonProps>(\n _Button,\n);\n","import { forwardRef } from \"react\";\nimport {\n Card as MantineCard,\n type CardProps as MantineCardProps,\n type CardSectionProps as MantineCardSectionProps,\n createPolymorphicComponent,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Card.module.css\";\n\nimport {\n type RecursicaCardProps,\n type RecursicaCardSectionProps,\n} from \"@recursica/adapter-common\";\n\n// ==== CARD CONTAINER ====\nexport type CardProps = RecursicaOverStyled<\n MantineCardProps & RecursicaCardProps\n> & {\n flex?: string | number;\n flexGrow?: string | number;\n flexShrink?: string | number;\n flexBasis?: string | number;\n grow?: string | number;\n h?: string | number;\n height?: string | number;\n};\n\n/**\n * The root Card elevation box. It establishes the global background color, border radius, nested component gap, and outer shadow governed by the current `Layer` context.\n */\nconst CardBase = forwardRef<HTMLDivElement, CardProps>(function Card(\n { overStyled = false, ...rest },\n ref,\n) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n // Expose outer layout/flexbox properties on Card to allow structuring alongside siblings\n const safeCardLayoutKeys = [\n \"flex\",\n \"flexGrow\",\n \"flexShrink\",\n \"flexBasis\",\n \"grow\",\n \"h\",\n \"height\",\n ] as const;\n safeCardLayoutKeys.forEach((key) => {\n if (key in rest && !(key in sanitizedProps)) {\n (sanitizedProps as Record<string, unknown>)[key] = (\n rest as Record<string, unknown>\n )[key];\n }\n });\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>).classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Record<string, string>;\n Object.keys(o).forEach((key) => {\n if (mergedClassNames[key]) {\n mergedClassNames[key] = `${mergedClassNames[key]} ${o[key]}`;\n } else {\n mergedClassNames[key] = o[key];\n }\n });\n }\n\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <MantineCard\n ref={ref}\n className={classNameProp}\n classNames={mergedClassNames}\n {...(sanitizedProps as unknown as MantineCardProps)}\n />\n );\n});\nCardBase.displayName = \"Card\";\n\nexport type CardSectionProps = RecursicaOverStyled<\n MantineCardSectionProps & RecursicaCardSectionProps\n>;\n\n/**\n * A generalized edge-to-edge structural wrapper native to Mantine. Strips typical boundary padding via negative margins to allow content (like maps or header images) to touch the border seamlessly.\n */\nexport const CardSection = forwardRef<HTMLDivElement, CardSectionProps>(\n function CardSection({ overStyled = false, ...rest }, ref) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <MantineCard.Section\n ref={ref}\n className={\n classNameProp ? `${styles.section} ${classNameProp}` : styles.section\n }\n {...(sanitizedProps as unknown as MantineCardSectionProps)}\n />\n );\n },\n);\nCardSection.displayName = \"CardSection\";\n\n// ==== EXPLICIT CARD.HEADER ====\nexport type CardHeaderProps = RecursicaOverStyled<RecursicaCardSectionProps>;\n\n/**\n * Replaces standard generic Mantine `<Card.Section>` wrappers by directly injecting the strict Recursica design tokens for header sizing, background drops, and intrinsic padding limits.\n */\nexport const CardHeader = forwardRef<HTMLDivElement, CardHeaderProps>(\n function CardHeader({ overStyled = false, ...rest }, ref) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <MantineCard.Section\n ref={ref}\n className={\n classNameProp ? `${styles.header} ${classNameProp}` : styles.header\n }\n {...(sanitizedProps as unknown as MantineCardSectionProps)}\n />\n );\n },\n);\nCardHeader.displayName = \"CardHeader\";\n\n// ==== EXPLICIT CARD.FOOTER ====\nexport type CardFooterProps = RecursicaOverStyled<RecursicaCardSectionProps>;\n\n/**\n * Counterpart to `Card.Header`, applying specific footer elevation margins, sizes, and padding natively.\n */\nexport const CardFooter = forwardRef<HTMLDivElement, CardFooterProps>(\n function CardFooter({ overStyled = false, ...rest }, ref) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <MantineCard.Section\n ref={ref}\n className={\n classNameProp ? `${styles.footer} ${classNameProp}` : styles.footer\n }\n {...(sanitizedProps as unknown as MantineCardSectionProps)}\n />\n );\n },\n);\nCardFooter.displayName = \"CardFooter\";\n\n// ==== EXPLICIT CARD.CONTENT ====\nexport type CardContentProps = RecursicaOverStyled<\n React.HTMLAttributes<HTMLDivElement>\n>;\n\n/**\n * Internal container that safely binds typography and structural flex gaps driven by the active UI kit tokens natively, preserving correct padding blocks compared to rigid `Card.Section` edges.\n */\nexport const CardContent = forwardRef<HTMLDivElement, CardContentProps>(\n function CardContent({ overStyled = false, ...rest }, ref) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <div\n ref={ref}\n className={\n classNameProp ? `${styles.content} ${classNameProp}` : styles.content\n }\n {...sanitizedProps}\n />\n );\n },\n);\nCardContent.displayName = \"CardContent\";\n\n// ==== DOT NOTATION EXPORT ====\n\n/**\n * Recursica Card component wrapping Mantine's Card (Paper).\n *\n * Supports polymorphism via the `component` prop or `renderRoot` for custom element rendering.\n * Use dot-notation sub-components for structured card layouts.\n */\nconst PolymorphicCard = createPolymorphicComponent<\n \"div\",\n CardProps,\n {\n Section: typeof CardSection;\n Header: typeof CardHeader;\n Footer: typeof CardFooter;\n Content: typeof CardContent;\n }\n>(CardBase);\n\n// Attach static components for dot-notation access\nconst _card = PolymorphicCard as unknown as Record<string, unknown>;\n_card.Section = CardSection;\n_card.Header = CardHeader;\n_card.Footer = CardFooter;\n_card.Content = CardContent;\n\nexport const Card = PolymorphicCard as typeof PolymorphicCard & {\n Section: typeof CardSection;\n Header: typeof CardHeader;\n Footer: typeof CardFooter;\n Content: typeof CardContent;\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { forwardRef } from \"react\";\nimport {\n Checkbox as MantineCheckbox,\n type CheckboxGroupProps as MantineCheckboxGroupProps,\n} from \"@mantine/core\";\nimport { type ReadOnlyControlProps } from \"@recursica/adapter-common\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport { type RecursicaFormControlWrapperProps } from \"../FormControlWrapper/FormControlWrapper\";\nimport { WithReadOnlyWrapper } from \"../ReadOnlyField/WithReadOnlyWrapper\";\nimport styles from \"./Checkbox.module.css\";\n\nimport { type RecursicaCheckboxGroupProps as BaseRecursicaCheckboxGroupProps } from \"@recursica/adapter-common\";\n\nexport interface RecursicaCheckboxGroupProps\n extends Omit<\n MantineCheckboxGroupProps,\n \"size\" | \"labelProps\" | \"defaultValue\" | \"value\" | \"onChange\"\n >,\n Omit<\n RecursicaFormControlWrapperProps,\n \"controlMaxWidth\" | \"controlMinWidth\"\n >,\n ReadOnlyControlProps,\n BaseRecursicaCheckboxGroupProps {}\n\nexport type CheckboxGroupProps =\n RecursicaOverStyled<RecursicaCheckboxGroupProps>;\n\nexport const CheckboxGroup = forwardRef<HTMLDivElement, CheckboxGroupProps>(\n function CheckboxGroup(props, ref) {\n const {\n overStyled = false,\n formLayout = \"stacked\",\n\n // Label Wrappers\n labelSize,\n labelAlignment,\n labelOptionalText,\n labelWithEditIcon,\n onLabelEditClick,\n\n // Base Mantine Extracted Attributes\n label,\n description,\n assistiveText,\n assistiveWithIcon,\n error,\n required,\n withAsterisk,\n id,\n className,\n style,\n children,\n readOnly,\n readOnlyComponent,\n emptyValueComponent,\n value,\n defaultValue,\n ...rest\n } = props;\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Delete prohibited sizing hooks from bypassing the variables\n delete restRecord[\"size\"];\n\n return (\n <WithReadOnlyWrapper\n className={className}\n style={style as React.CSSProperties}\n controlMaxWidth=\"var(--recursica_ui-kit_components_checkbox-item_properties_max-width)\"\n controlMinWidth={undefined}\n overStyled={overStyled as true}\n labelElement=\"div\" // Strictly override. ARIA grouping prohibits interactive checkboxes nested natively inside <label>.\n formLayout={formLayout}\n labelSize={labelSize}\n labelAlignment={labelAlignment}\n labelOptionalText={labelOptionalText}\n labelWithEditIcon={labelWithEditIcon}\n onLabelEditClick={onLabelEditClick}\n label={label}\n description={description}\n assistiveText={assistiveText}\n assistiveWithIcon={assistiveWithIcon}\n error={error}\n required={required}\n withAsterisk={withAsterisk}\n id={id}\n readOnly={readOnly && !!readOnlyComponent}\n readOnlyComponent={readOnlyComponent}\n emptyValueComponent={emptyValueComponent}\n readOnlyType=\"text\"\n readOnlyValue={value !== undefined ? value : defaultValue}\n readOnlyNativeProps={props}\n activeComponent={\n <MantineCheckbox.Group\n ref={ref}\n /* Natively bind local disabled lock dynamically */\n {...(sanitizedProps as unknown as MantineCheckboxGroupProps)}\n disabled={readOnly || (restRecord as any).disabled}\n value={value as any}\n defaultValue={defaultValue as any}\n >\n <div className={styles.groupRoot} data-layout={formLayout}>\n {children}\n </div>\n </MantineCheckbox.Group>\n }\n />\n );\n },\n);\n\nCheckboxGroup.displayName = \"CheckboxGroup\";\n","import { forwardRef } from \"react\";\nimport {\n Checkbox as MantineCheckbox,\n type CheckboxProps as MantineCheckboxProps,\n} from \"@mantine/core\";\nimport { type ReadOnlyControlProps } from \"@recursica/adapter-common\";\nimport { CheckboxGroup } from \"./CheckboxGroup\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport {\n type RequireAccessibleLabel,\n type RecursicaCheckboxProps,\n} from \"@recursica/adapter-common\";\nimport {\n FormControlLayout,\n type FormControlLayoutProps,\n} from \"../FormControlLayout/FormControlLayout\";\n\nimport styles from \"./Checkbox.module.css\";\n\nexport type CheckboxWrapperProps = Omit<\n MantineCheckboxProps,\n \"size\" | \"color\" | \"radius\" | \"iconColor\" | \"variant\"\n> &\n RecursicaCheckboxProps &\n ReadOnlyControlProps &\n Pick<\n FormControlLayoutProps,\n \"formLayout\" | \"labelSize\" | \"controlMaxWidth\" | \"controlMinWidth\"\n >;\n\nexport type RecursicaCheckboxPropsAlias =\n RequireAccessibleLabel<CheckboxWrapperProps>;\n\nexport type CheckboxProps = RecursicaOverStyled<RecursicaCheckboxPropsAlias>;\n\ntype CheckboxComponent = React.ForwardRefExoticComponent<\n CheckboxProps & React.RefAttributes<HTMLInputElement>\n> & {\n Group: typeof CheckboxGroup;\n};\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n function Checkbox(props, ref) {\n const {\n overStyled = false,\n readOnly,\n readOnlyComponent,\n disabled,\n formLayout,\n labelSize,\n controlMaxWidth,\n controlMinWidth,\n ...rest\n } = props;\n // Checkbox doesn't use Label onLabelEditClick natively since it isn't mapped inside FormControlWrapper intrinsically.\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Actively delete dimension bindings that bypass the abstraction\n delete restRecord[\"size\"];\n delete restRecord[\"color\"];\n delete restRecord[\"radius\"];\n delete restRecord[\"variant\"];\n delete restRecord[\"iconColor\"];\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n body: styles.body,\n inner: styles.inner,\n input: styles.input,\n icon: styles.icon,\n labelWrapper: styles.labelWrapper,\n label: styles.label,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n mergedClassNames.body = o.body ? `${styles.body} ${o.body}` : styles.body;\n mergedClassNames.inner = o.inner\n ? `${styles.inner} ${o.inner}`\n : styles.inner;\n mergedClassNames.input = o.input\n ? `${styles.input} ${o.input}`\n : styles.input;\n mergedClassNames.icon = o.icon ? `${styles.icon} ${o.icon}` : styles.icon;\n mergedClassNames.labelWrapper = o.labelWrapper\n ? `${styles.labelWrapper} ${o.labelWrapper}`\n : styles.labelWrapper;\n mergedClassNames.label = o.label\n ? `${styles.label} ${o.label}`\n : styles.label;\n }\n\n const classNameProp = restRecord.className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n if (readOnly && !!readOnlyComponent) {\n const isChecked = !!(restRecord.checked ?? restRecord.defaultChecked);\n const ReadOnlyComp = readOnlyComponent;\n const roNode = (\n <ReadOnlyComp\n {...props}\n checked={isChecked}\n label={restRecord.label as React.ReactNode}\n />\n );\n\n if (formLayout) {\n return (\n <FormControlLayout\n formLayout={formLayout}\n labelSize={labelSize}\n controlMaxWidth={controlMaxWidth}\n controlMinWidth={controlMinWidth}\n >\n {roNode}\n </FormControlLayout>\n );\n }\n\n return <>{roNode}</>;\n }\n\n // We omit Mantine's sizing/coloring so we rely strictly on variables from Checkbox.module.css\n const checkboxNode = (\n <MantineCheckbox\n ref={ref}\n className={finalClass}\n classNames={mergedClassNames}\n disabled={readOnly || disabled}\n {...(sanitizedProps as unknown as MantineCheckboxProps)}\n />\n );\n\n if (formLayout) {\n return (\n <FormControlLayout\n formLayout={formLayout}\n labelSize={labelSize}\n controlMaxWidth={controlMaxWidth}\n controlMinWidth={controlMinWidth}\n >\n {checkboxNode}\n </FormControlLayout>\n );\n }\n\n return checkboxNode;\n },\n) as CheckboxComponent;\n\nCheckbox.displayName = \"Checkbox\";\nCheckbox.Group = CheckboxGroup;\n","import React, { forwardRef } from \"react\";\nimport {\n Chip as MantineChip,\n type ChipProps as MantineChipProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Chip.module.css\";\nimport { type RecursicaChipProps } from \"@recursica/adapter-common\";\n\nexport type ChipProps = RecursicaOverStyled<\n Omit<MantineChipProps, \"variant\" | \"size\" | \"color\" | \"radius\"> &\n RecursicaChipProps\n>;\n\nfunction CloseIcon(props: React.ComponentPropsWithoutRef<\"svg\">) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>\n );\n}\n\nexport const Chip = forwardRef<HTMLInputElement, ChipProps>(function Chip(\n {\n error = false,\n icon,\n onRemove,\n removeLabel = \"Remove\",\n children,\n overStyled = false,\n ...rest\n },\n ref,\n) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n label: styles.label,\n input: styles.input,\n iconWrapper: styles.mantineIconWrapper,\n checkIcon: styles.checkIcon,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n mergedClassNames.label = o.label\n ? `${styles.label} ${o.label}`\n : styles.label;\n }\n\n const classNameProp = restRecord.className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n // Determine state\n const dataError = error ? \"\" : undefined;\n const isIconOnly = !children && (!!icon || !!onRemove);\n const isInteractive =\n restRecord.checked !== undefined ||\n restRecord.defaultChecked !== undefined ||\n onRemove !== undefined ||\n restRecord.onClick !== undefined;\n\n return (\n <MantineChip\n ref={ref}\n className={finalClass}\n classNames={mergedClassNames}\n wrapperProps={dataError !== undefined ? { \"data-error\": \"\" } : undefined}\n {...(isIconOnly ? { \"data-icon-only\": \"\" } : {})}\n {...(!isInteractive ? { tabIndex: -1, \"aria-hidden\": true } : {})}\n {...sanitizedProps}\n >\n <span className={styles.innerWrapper}>\n {icon && (\n <span className={styles.leadingIcon} aria-hidden>\n {icon}\n </span>\n )}\n\n <span className={styles.children}>{children}</span>\n\n {onRemove && (\n <span\n role=\"button\"\n className={styles.removeIcon}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n onRemove(e);\n }}\n aria-label={removeLabel}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n e.stopPropagation();\n onRemove(\n e as unknown as React.MouseEvent<HTMLSpanElement, MouseEvent>,\n );\n }\n }}\n tabIndex={0}\n >\n <CloseIcon />\n </span>\n )}\n </span>\n </MantineChip>\n );\n});\n\nChip.displayName = \"Chip\";\n","import { forwardRef } from \"react\";\nimport {\n Container as MantineContainer,\n type ContainerProps as MantineContainerProps,\n} from \"@mantine/core\";\nimport styles from \"./Container.module.css\";\n\nimport { type WithRecursicaSpacing } from \"../../utils/filterStylingProps\";\nimport { type RecursicaContainerProps } from \"@recursica/adapter-common\";\n\n/**\n * Container layout wrapper.\n *\n * Note: Unlike complex UI components, primitive layout components (Flex, Stack, Group, Container)\n * DO NOT use the `RecursicaOverStyled` gatekeeper. Developers must be able to freely pass\n * width, height, padding, margins, and flexbox alignment props to construct structural layouts.\n */\nexport type ContainerProps = WithRecursicaSpacing<\n Omit<MantineContainerProps, \"size\"> & RecursicaContainerProps\n>;\n\nexport const Container = forwardRef<HTMLDivElement, ContainerProps>(\n function Container({ children, size, ...rest }, ref) {\n const mapSize: Record<string, string> = {\n \"rec-sm\": \"sm\",\n \"rec-default\": \"md\",\n \"rec-md\": \"md\",\n \"rec-lg\": \"lg\",\n \"rec-xl\": \"xl\",\n \"rec-2xl\": \"xl\",\n };\n\n const resolvedSize =\n typeof size === \"string\" && mapSize[size] ? mapSize[size] : size;\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n };\n\n const classNamesProp = rest.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n }\n\n const classNameProp = rest.className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n return (\n <MantineContainer\n ref={ref}\n size={resolvedSize}\n className={finalClass}\n classNames={mergedClassNames}\n {...rest}\n >\n {children}\n </MantineContainer>\n );\n },\n);\n\nContainer.displayName = \"Container\";\n","import React, { forwardRef } from \"react\";\nimport { DatePickerInput, type DatePickerInputProps } from \"@mantine/dates\";\nimport { type ReadOnlyControlProps } from \"@recursica/adapter-common\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport { type RecursicaFormControlWrapperProps } from \"../FormControlWrapper/FormControlWrapper\";\nimport { WithReadOnlyWrapper } from \"../ReadOnlyField/WithReadOnlyWrapper\";\nimport styles from \"./DatePicker.module.css\";\n\nimport { type RecursicaDatePickerProps as BaseRecursicaDatePickerProps } from \"@recursica/adapter-common\";\n\nexport interface RecursicaDatePickerProps\n extends Omit<\n DatePickerInputProps,\n | \"size\"\n | \"variant\"\n | \"radius\"\n | \"wrapperProps\"\n | \"label\"\n | \"error\"\n | \"required\"\n | \"withAsterisk\"\n | \"id\"\n | \"description\"\n >,\n Pick<\n DatePickerInputProps,\n \"label\" | \"error\" | \"required\" | \"withAsterisk\" | \"id\"\n >,\n Omit<\n RecursicaFormControlWrapperProps,\n \"controlMaxWidth\" | \"controlMinWidth\"\n >,\n ReadOnlyControlProps,\n BaseRecursicaDatePickerProps {}\n\nexport type DatePickerProps = RecursicaOverStyled<RecursicaDatePickerProps>;\n\nexport const DatePicker = forwardRef<HTMLButtonElement, DatePickerProps>(\n function DatePicker(props, ref) {\n const {\n overStyled = false,\n formLayout = \"stacked\",\n\n // Label & Wrapper Maps\n labelSize,\n labelAlignment,\n labelOptionalText,\n labelWithEditIcon,\n onLabelEditClick,\n\n label,\n assistiveText,\n assistiveWithIcon,\n error,\n required,\n withAsterisk,\n id,\n className,\n style,\n disabled,\n readOnly,\n readOnlyComponent,\n emptyValueComponent,\n value,\n defaultValue,\n ...rest\n } = props;\n\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Delete prohibited sizing hooks from bypassing variables natively\n delete restRecord[\"size\"];\n delete restRecord[\"variant\"];\n delete restRecord[\"radius\"];\n delete restRecord[\"description\"]; // Managed by FormControlWrapper via assistiveText\n\n // Securely map core native blocks down ensuring nested CSS modules map precisely\n const mergedClassNames: Partial<Record<string, string>> = {\n wrapper: styles.root, // The nested Input internal relative wrapper bounding box\n input: styles.input,\n section: styles.section,\n dropdown: styles.dropdown,\n day: styles.day,\n calendarHeader: styles.calendarHeader,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.wrapper = o.wrapper\n ? `${styles.root} ${o.wrapper}`\n : styles.root;\n mergedClassNames.input = o.input\n ? `${styles.input} ${o.input}`\n : styles.input;\n mergedClassNames.section = o.section\n ? `${styles.section} ${o.section}`\n : styles.section;\n }\n\n const wrapperClass = className\n ? `${styles.layoutOverride} ${className}`\n : styles.layoutOverride;\n\n return (\n <WithReadOnlyWrapper\n className={wrapperClass}\n style={style as React.CSSProperties}\n controlMaxWidth={undefined}\n controlMinWidth={undefined}\n overStyled={overStyled as true}\n formLayout={formLayout}\n labelSize={labelSize}\n labelAlignment={labelAlignment}\n labelOptionalText={labelOptionalText}\n labelWithEditIcon={labelWithEditIcon}\n onLabelEditClick={onLabelEditClick}\n label={label}\n assistiveText={assistiveText}\n assistiveWithIcon={assistiveWithIcon}\n error={error}\n required={required}\n withAsterisk={withAsterisk}\n id={id}\n readOnly={readOnly}\n readOnlyComponent={readOnlyComponent}\n emptyValueComponent={emptyValueComponent}\n readOnlyType=\"text\"\n readOnlyValue={\n value !== undefined\n ? String(value)\n : defaultValue\n ? String(defaultValue)\n : undefined\n }\n readOnlyNativeProps={props}\n activeComponent={\n /* Naked Input execution safely decoupled from Mantine's macro Input.Wrapper DOM hooks */\n <DatePickerInput\n ref={ref}\n classNames={mergedClassNames}\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n label={undefined} // Disable Mantine's native label\n description={undefined} // Disable Mantine's native description\n error={undefined} // Disable Mantine's native error text (handled by wrapper)\n withAsterisk={false} // Handled by wrapper\n wrapperProps={{\n \"data-disabled\": disabled ? \"true\" : undefined,\n \"data-error\": error ? \"true\" : undefined,\n }}\n {...(sanitizedProps as unknown as DatePickerInputProps)}\n />\n }\n />\n );\n },\n);\n\nDatePicker.displayName = \"DatePicker\";\n","import React, { forwardRef } from \"react\";\nimport {\n Select as MantineSelect,\n type SelectProps as MantineSelectProps,\n} from \"@mantine/core\";\nimport { type ReadOnlyControlProps } from \"@recursica/adapter-common\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport { type RecursicaFormControlWrapperProps } from \"../FormControlWrapper/FormControlWrapper\";\nimport { WithReadOnlyWrapper } from \"../ReadOnlyField/WithReadOnlyWrapper\";\nimport styles from \"./Dropdown.module.css\";\n\nimport { type RecursicaDropdownProps as BaseRecursicaDropdownProps } from \"@recursica/adapter-common\";\n\nexport interface RecursicaDropdownProps\n extends Omit<\n MantineSelectProps,\n \"size\" | \"variant\" | \"radius\" | \"wrapperProps\" | \"data\"\n >,\n Omit<\n RecursicaFormControlWrapperProps,\n \"controlMaxWidth\" | \"controlMinWidth\"\n >,\n ReadOnlyControlProps,\n BaseRecursicaDropdownProps {}\n\nexport type DropdownProps = RecursicaOverStyled<RecursicaDropdownProps>;\n\nexport const Dropdown = forwardRef<HTMLInputElement, DropdownProps>(\n function Dropdown(props, ref) {\n const {\n overStyled = false,\n formLayout = \"stacked\",\n containerWidth,\n\n // Label & Wrapper Maps\n labelSize,\n labelAlignment,\n labelOptionalText,\n labelWithEditIcon,\n onLabelEditClick,\n\n label,\n assistiveText,\n assistiveWithIcon,\n error,\n required,\n withAsterisk,\n id,\n className,\n style,\n disabled,\n readOnly,\n readOnlyComponent,\n emptyValueComponent,\n value,\n defaultValue,\n data,\n ...rest\n } = props;\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Delete prohibited sizing hooks from bypassing variables natively\n delete restRecord[\"size\"];\n delete restRecord[\"variant\"];\n delete restRecord[\"radius\"];\n\n // Securely map core native blocks down ensuring nested CSS modules map precisely\n const mergedClassNames: Partial<Record<string, string>> = {\n wrapper: styles.root, // The nested Input internal relative wrapper bounding box\n input: styles.input,\n section: styles.section,\n dropdown: styles.dropdown,\n option: styles.option,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.wrapper = o.wrapper\n ? `${styles.root} ${o.wrapper}`\n : styles.root;\n mergedClassNames.input = o.input\n ? `${styles.input} ${o.input}`\n : styles.input;\n mergedClassNames.section = o.section\n ? `${styles.section} ${o.section}`\n : styles.section;\n mergedClassNames.dropdown = o.dropdown\n ? `${styles.dropdown} ${o.dropdown}`\n : styles.dropdown;\n mergedClassNames.option = o.option\n ? `${styles.option} ${o.option}`\n : styles.option;\n }\n\n const injectedStyles = {\n ...((style as React.CSSProperties) || {}),\n width: containerWidth || \"100%\",\n };\n\n const wrapperClass = className\n ? `${styles.layoutOverride} ${className}`\n : styles.layoutOverride;\n\n return (\n <WithReadOnlyWrapper\n className={wrapperClass}\n style={injectedStyles}\n controlMaxWidth=\"var(--recursica_ui-kit_components_dropdown_properties_max-width)\"\n controlMinWidth=\"var(--recursica_ui-kit_components_dropdown_properties_min-width)\"\n overStyled={overStyled as true}\n formLayout={formLayout}\n labelSize={labelSize}\n labelAlignment={labelAlignment}\n labelOptionalText={labelOptionalText}\n labelWithEditIcon={labelWithEditIcon}\n onLabelEditClick={onLabelEditClick}\n label={label}\n assistiveText={assistiveText}\n assistiveWithIcon={assistiveWithIcon}\n error={error}\n required={required}\n withAsterisk={withAsterisk}\n id={id}\n readOnly={readOnly}\n readOnlyComponent={readOnlyComponent}\n emptyValueComponent={emptyValueComponent}\n readOnlyType=\"text\"\n readOnlyValue={\n value !== undefined\n ? String(value)\n : defaultValue\n ? String(defaultValue)\n : undefined\n }\n readOnlyNativeProps={props}\n activeComponent={\n /* Naked Select execution safely decoupled from Mantine's macro Input.Wrapper DOM hooks */\n <MantineSelect\n ref={ref}\n classNames={mergedClassNames}\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n data={(data as unknown as MantineSelectProps[\"data\"]) || []}\n label={undefined}\n description={undefined}\n error={undefined}\n required={undefined}\n withAsterisk={undefined}\n wrapperProps={{\n \"data-disabled\": disabled ? \"true\" : undefined,\n \"data-error\": error ? \"true\" : undefined,\n }}\n {...(sanitizedProps as unknown as MantineSelectProps)}\n />\n }\n />\n );\n },\n);\n\nDropdown.displayName = \"Dropdown\";\n","import React from \"react\";\n\nexport type FileInputProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const FileInput: React.FC<FileInputProps> = (props) => {\n return <div {...props}>FileInput</div>;\n};\n","import React from \"react\";\n\nexport type FileUploadProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const FileUpload: React.FC<FileUploadProps> = (props) => {\n return <div {...props}>FileUpload</div>;\n};\n","import { forwardRef } from \"react\";\nimport {\n Flex as MantineFlex,\n type FlexProps as MantineFlexProps,\n createPolymorphicComponent,\n} from \"@mantine/core\";\nimport {\n mapLayoutProps,\n type WithRecursicaSpacing,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Flex.module.css\";\n\nimport { type RecursicaFlexProps } from \"@recursica/adapter-common\";\n\n/**\n * Flex layout wrapper.\n *\n * Note: Unlike complex UI components, primitive layout components (Flex, Stack, Group, Container)\n * DO NOT use the `RecursicaOverStyled` gatekeeper. Developers must be able to freely pass\n * width, height, padding, margins, and flexbox alignment props to construct structural layouts.\n */\nexport type FlexProps = WithRecursicaSpacing<\n MantineFlexProps & RecursicaFlexProps\n>;\n\nconst _Flex = forwardRef<HTMLDivElement, FlexProps>(function Flex(\n { children, gap = \"rec-default\", rowGap, columnGap, ...rest },\n ref,\n) {\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n };\n\n const classNamesProp = rest.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n }\n\n const classNameProp = rest.className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n return (\n <MantineFlex\n ref={ref}\n className={finalClass}\n classNames={mergedClassNames}\n {...mapLayoutProps({ gap, rowGap, columnGap, ...rest } as Record<\n string,\n unknown\n >)}\n >\n {children}\n </MantineFlex>\n );\n});\n_Flex.displayName = \"Flex\";\n\n/**\n * Recursica Flex layout wrapper.\n *\n * Supports polymorphism via the `component` prop or `renderRoot` for custom element rendering.\n * @example\n * ```tsx\n * <Flex component=\"nav\">...</Flex>\n * <Flex component=\"section\">...</Flex>\n * ```\n */\nexport const Flex = createPolymorphicComponent<\"div\", FlexProps>(_Flex);\n","import { forwardRef } from \"react\";\nimport {\n Group as MantineGroup,\n type GroupProps as MantineGroupProps,\n} from \"@mantine/core\";\nimport {\n mapLayoutProps,\n type WithRecursicaSpacing,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Group.module.css\";\n\nimport { type RecursicaGroupProps } from \"@recursica/adapter-common\";\n\n/**\n * Group flex layout wrapper.\n *\n * Note: Unlike complex UI components, primitive layout components (Flex, Stack, Group, Container)\n * DO NOT use the `RecursicaOverStyled` gatekeeper. Developers must be able to freely pass\n * width, height, padding, margins, and flexbox alignment props to construct structural layouts.\n */\nexport type GroupProps = WithRecursicaSpacing<\n MantineGroupProps & RecursicaGroupProps\n>;\n\nexport const Group = forwardRef<HTMLDivElement, GroupProps>(function Group(\n { children, gap = \"rec-default\", ...rest },\n ref,\n) {\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n };\n\n const classNamesProp = rest.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n }\n\n const classNameProp = rest.className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n return (\n <MantineGroup\n ref={ref}\n className={finalClass}\n classNames={mergedClassNames}\n {...mapLayoutProps({ gap, ...rest } as Record<string, unknown>)}\n >\n {children}\n </MantineGroup>\n );\n});\n\nGroup.displayName = \"Group\";\n","import {\n HoverCard as MantineHoverCard,\n type HoverCardProps as MantineHoverCardProps,\n type HoverCardTargetProps as MantineHoverCardTargetProps,\n type HoverCardDropdownProps as MantineHoverCardDropdownProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./HoverCard.module.css\";\n\n// ============================================================\n// HOVERCARD ROOT\n// ============================================================\n\n/**\n * Recursica-specific props for HoverCard.\n */\nimport { type RecursicaHoverCardProps } from \"@recursica/adapter-common\";\n\n/**\n * Recursica HoverCard component wrapping Mantine's composable HoverCard.\n *\n * Displays a dropdown panel when the user hovers over a target element.\n * Uses the composable dot-notation pattern:\n * ```tsx\n * <HoverCard withBeak>\n * <HoverCard.Target>\n * <Button>Hover me</Button>\n * </HoverCard.Target>\n * <HoverCard.Dropdown>\n * Content displayed on hover\n * </HoverCard.Dropdown>\n * </HoverCard>\n * ```\n */\nexport type HoverCardProps = RecursicaOverStyled<\n MantineHoverCardProps & RecursicaHoverCardProps\n>;\n\nconst HoverCardBase = function HoverCard({\n overStyled = false,\n withBeak = true,\n ...rest\n}: HoverCardProps) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n // Bind CSS module classes to Mantine's internal classNames API\n const mergedClassNames: Partial<Record<string, string>> = {\n dropdown: styles.dropdown,\n arrow: styles.arrow,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>).classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Record<string, string>;\n Object.keys(o).forEach((key) => {\n if (mergedClassNames[key]) {\n mergedClassNames[key] = `${mergedClassNames[key]} ${o[key]}`;\n } else {\n mergedClassNames[key] = o[key];\n }\n });\n }\n\n // arrowSize must be a JS number prop — Mantine uses it for inline width/height\n // and positioning offset (-arrowSize/2) calculations that cannot be CSS-driven.\n // Default to 16 to match the Recursica beak-size token (16px).\n const arrowSize =\n ((sanitizedProps as Record<string, unknown>).arrowSize as\n | number\n | undefined) ?? 16;\n\n // Resolve withBeak (Recursica) vs withArrow (Mantine).\n // withBeak takes precedence when both are provided.\n const withArrow = (sanitizedProps as Record<string, unknown>).withArrow as\n | boolean\n | undefined;\n const resolvedWithArrow = withBeak ?? withArrow;\n\n return (\n <MantineHoverCard\n position=\"top\" /* Recursica default; Mantine defaults to \"bottom\" */\n arrowSize={arrowSize}\n withArrow={resolvedWithArrow}\n classNames={mergedClassNames}\n {...(sanitizedProps as unknown as MantineHoverCardProps)}\n />\n );\n};\nHoverCardBase.displayName = \"HoverCard\";\n\n// ============================================================\n// HOVERCARD TARGET\n// ============================================================\n\n/**\n * Wrapper for the element that triggers the hover card.\n * Requires a single child element that supports ref forwarding.\n */\nexport type HoverCardTargetProps = MantineHoverCardTargetProps;\n\nconst HoverCardTarget = function HoverCardTarget(props: HoverCardTargetProps) {\n return <MantineHoverCard.Target {...props} />;\n};\nHoverCardTarget.displayName = \"HoverCardTarget\";\n\n// ============================================================\n// HOVERCARD DROPDOWN\n// ============================================================\n\n/** The dropdown panel displayed when hovering over the target. */\nexport type HoverCardDropdownProps =\n RecursicaOverStyled<MantineHoverCardDropdownProps>;\n\nconst HoverCardDropdown = function HoverCardDropdown({\n overStyled = false,\n ...rest\n}: HoverCardDropdownProps) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <MantineHoverCard.Dropdown\n className={classNameProp}\n {...(sanitizedProps as unknown as MantineHoverCardDropdownProps)}\n />\n );\n};\nHoverCardDropdown.displayName = \"HoverCardDropdown\";\n\n// ============================================================\n// DOT NOTATION EXPORT\n// ============================================================\n\ntype HoverCardComponent = typeof HoverCardBase & {\n Target: typeof HoverCardTarget;\n Dropdown: typeof HoverCardDropdown;\n};\n\nexport const HoverCard = HoverCardBase as HoverCardComponent;\nHoverCard.Target = HoverCardTarget;\nHoverCard.Dropdown = HoverCardDropdown;\n","import { forwardRef } from \"react\";\nimport {\n Anchor as MantineAnchor,\n type AnchorProps as MantineAnchorProps,\n createPolymorphicComponent,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Link.module.css\";\n\nimport { type RecursicaLinkProps } from \"@recursica/adapter-common\";\n\nexport type LinkProps = RecursicaOverStyled<\n Omit<MantineAnchorProps, \"underline\"> & Omit<RecursicaLinkProps, \"component\">\n>;\n\nconst _Link = forwardRef<HTMLAnchorElement, LinkProps>(function Link(\n { icon, children, overStyled = false, ...rest },\n ref,\n) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n }\n\n const classNameProp = restRecord.className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n return (\n <MantineAnchor\n ref={ref}\n className={finalClass}\n classNames={mergedClassNames}\n underline=\"never\"\n {...(icon ? { \"data-has-icon\": \"\" } : {})}\n {...(sanitizedProps as Record<string, unknown>)}\n >\n {icon && (\n <span className={styles.iconWrapper} aria-hidden>\n {icon}\n </span>\n )}\n <span className={styles.labelText}>{children}</span>\n </MantineAnchor>\n );\n});\n_Link.displayName = \"Link\";\n\n/**\n * Recursica Link component wrapping Mantine's Anchor.\n *\n * Supports polymorphism via the `component` prop or `renderRoot` for custom element rendering (e.g. react-router Link).\n * @example\n * ```tsx\n * <Link component=\"a\" href=\"https://example.com\">External Link</Link>\n * <Link renderRoot={(props) => <RouterLink to=\"/home\" {...props} />}>Home</Link>\n * ```\n */\nexport const Link = createPolymorphicComponent<\"a\", LinkProps>(_Link);\n","import { forwardRef } from \"react\";\nimport {\n Menu as MantineMenu,\n type MenuProps as MantineMenuProps,\n type MenuTargetProps as MantineMenuTargetProps,\n type MenuDropdownProps as MantineMenuDropdownProps,\n type MenuItemProps as MantineMenuItemProps,\n type MenuDividerProps as MantineMenuDividerProps,\n type MenuLabelProps as MantineMenuLabelProps,\n type MenuSubProps as MantineMenuSubProps,\n type MenuSubTargetProps as MantineMenuSubTargetProps,\n type MenuSubDropdownProps as MantineMenuSubDropdownProps,\n createPolymorphicComponent,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Menu.module.css\";\n\nimport { type RecursicaMenuProps } from \"@recursica/adapter-common\";\n\n// ============================================================\n// MENU ROOT\n// ============================================================\n\n/**\n * Recursica Menu component wrapping Mantine's composable Menu.\n *\n * Usage follows the composable dot-notation pattern:\n * ```tsx\n * <Menu>\n * <Menu.Target><Button>Open</Button></Menu.Target>\n * <Menu.Dropdown>\n * <Menu.Label>Section</Menu.Label>\n * <Menu.Item>Action</Menu.Item>\n * <Menu.Divider />\n * <Menu.Item>Another action</Menu.Item>\n * </Menu.Dropdown>\n * </Menu>\n * ```\n */\nexport type MenuProps = RecursicaOverStyled<\n MantineMenuProps & RecursicaMenuProps\n>;\n\nconst MenuBase = function Menu({ overStyled = false, ...rest }: MenuProps) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n // Bind CSS module classes to Mantine's internal classNames API\n const mergedClassNames: Partial<Record<string, string>> = {\n dropdown: styles.dropdown,\n item: styles.item,\n itemLabel: styles.itemLabel,\n itemSection: styles.itemSection,\n divider: styles.divider,\n label: styles.label,\n chevron: styles.chevron,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>).classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Record<string, string>;\n Object.keys(o).forEach((key) => {\n if (mergedClassNames[key]) {\n mergedClassNames[key] = `${mergedClassNames[key]} ${o[key]}`;\n } else {\n mergedClassNames[key] = o[key];\n }\n });\n }\n\n return (\n <MantineMenu\n classNames={mergedClassNames}\n {...(sanitizedProps as unknown as MantineMenuProps)}\n />\n );\n};\nMenuBase.displayName = \"Menu\";\n\n// ============================================================\n// MENU TARGET\n// ============================================================\n\n/**\n * Wrapper for the element that triggers the menu.\n * Requires a single child element that supports ref forwarding.\n */\nexport type MenuTargetProps = MantineMenuTargetProps;\n\nconst MenuTarget = function MenuTarget(props: MenuTargetProps) {\n return <MantineMenu.Target {...props} />;\n};\nMenuTarget.displayName = \"MenuTarget\";\n\n// ============================================================\n// MENU DROPDOWN\n// ============================================================\n\n/** The dropdown panel containing menu items, dividers, and labels. */\nexport type MenuDropdownProps = RecursicaOverStyled<MantineMenuDropdownProps>;\n\nconst MenuDropdown = forwardRef<HTMLDivElement, MenuDropdownProps>(\n function MenuDropdown({ overStyled = false, ...rest }, ref) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <MantineMenu.Dropdown\n ref={ref}\n className={classNameProp}\n {...(sanitizedProps as unknown as MantineMenuDropdownProps)}\n />\n );\n },\n);\nMenuDropdown.displayName = \"MenuDropdown\";\n\n// ============================================================\n// MENU ITEM\n// ============================================================\n\n/**\n * An individual actionable item within the menu dropdown.\n *\n * **Note:** Mantine's `color` prop is stripped in strict mode to enforce\n * design token adherence. Use `overStyled={true}` if you need to bypass.\n */\nexport type MenuItemProps = RecursicaOverStyled<\n Omit<MantineMenuItemProps, \"color\">\n>;\n\nconst _MenuItem = forwardRef<HTMLButtonElement, MenuItemProps>(\n function MenuItem({ overStyled = false, ...rest }, ref) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Strip Mantine's `color` prop to enforce token-driven styling\n if (!overStyled) {\n delete restRecord[\"color\"];\n }\n\n const classNameProp = restRecord.className as string | undefined;\n\n return (\n <MantineMenu.Item\n ref={ref}\n className={classNameProp}\n {...(sanitizedProps as unknown as MantineMenuItemProps)}\n />\n );\n },\n);\n_MenuItem.displayName = \"MenuItem\";\n\n/**\n * An individual actionable item within the menu dropdown.\n *\n * Supports polymorphism via the `component` prop for link-style items.\n * @example\n * ```tsx\n * <Menu.Item component=\"a\" href=\"/settings\">Settings</Menu.Item>\n * ```\n */\nconst MenuItem = createPolymorphicComponent<\"button\", MenuItemProps>(_MenuItem);\n\n// ============================================================\n// MENU DIVIDER\n// ============================================================\n\n/** A visual separator between groups of menu items. */\nexport type MenuDividerProps = RecursicaOverStyled<MantineMenuDividerProps>;\n\nconst MenuDivider = forwardRef<HTMLHRElement, MenuDividerProps>(\n function MenuDivider({ overStyled = false, ...rest }, ref) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <MantineMenu.Divider\n ref={ref}\n className={classNameProp}\n {...(sanitizedProps as unknown as MantineMenuDividerProps)}\n />\n );\n },\n);\nMenuDivider.displayName = \"MenuDivider\";\n\n// ============================================================\n// MENU LABEL\n// ============================================================\n\n/** A non-interactive section label used to categorize groups of menu items. */\nexport type MenuLabelProps = RecursicaOverStyled<MantineMenuLabelProps>;\n\nconst MenuLabel = forwardRef<HTMLDivElement, MenuLabelProps>(function MenuLabel(\n { overStyled = false, ...rest },\n ref,\n) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <MantineMenu.Label\n ref={ref}\n className={classNameProp}\n {...(sanitizedProps as unknown as MantineMenuLabelProps)}\n />\n );\n});\nMenuLabel.displayName = \"MenuLabel\";\n\n// ============================================================\n// MENU SUB (SUBMENU CONTAINER)\n// ============================================================\n\n/** Container for a submenu, wrapping Menu.Sub.Target and Menu.Sub.Dropdown. */\nexport type MenuSubProps = MantineMenuSubProps;\n\nconst MenuSubBase = function MenuSub(props: MenuSubProps) {\n return <MantineMenu.Sub {...props} />;\n};\nMenuSubBase.displayName = \"MenuSub\";\n\n// ============================================================\n// MENU SUB TARGET\n// ============================================================\n\n/** Wrapper for the element that triggers the submenu. */\nexport type MenuSubTargetProps = MantineMenuSubTargetProps;\n\nconst MenuSubTarget = function MenuSubTarget(props: MenuSubTargetProps) {\n return <MantineMenu.Sub.Target {...props} />;\n};\nMenuSubTarget.displayName = \"MenuSubTarget\";\n\n// ============================================================\n// MENU SUB ITEM (triggers submenu)\n// ============================================================\n\n/**\n * A menu item that acts as a submenu trigger.\n * Renders within Menu.Sub.Target and displays a chevron indicator.\n */\nexport type MenuSubItemProps = RecursicaOverStyled<\n Omit<MantineMenuItemProps, \"color\">\n>;\n\nconst _MenuSubItem = forwardRef<HTMLButtonElement, MenuSubItemProps>(\n function MenuSubItem({ overStyled = false, ...rest }, ref) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n if (!overStyled) {\n delete restRecord[\"color\"];\n }\n\n const classNameProp = restRecord.className as string | undefined;\n\n return (\n <MantineMenu.Sub.Item\n ref={ref}\n className={classNameProp}\n {...(sanitizedProps as unknown as MantineMenuItemProps)}\n />\n );\n },\n);\n_MenuSubItem.displayName = \"MenuSubItem\";\n\n/**\n * A menu item that acts as a submenu trigger.\n *\n * Supports polymorphism via the `component` prop.\n */\nconst MenuSubItem = createPolymorphicComponent<\"button\", MenuSubItemProps>(\n _MenuSubItem,\n);\n\n// ============================================================\n// MENU SUB DROPDOWN\n// ============================================================\n\n/** The dropdown panel for a submenu. */\nexport type MenuSubDropdownProps =\n RecursicaOverStyled<MantineMenuSubDropdownProps>;\n\nconst MenuSubDropdown = forwardRef<HTMLDivElement, MenuSubDropdownProps>(\n function MenuSubDropdown({ overStyled = false, ...rest }, ref) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <MantineMenu.Sub.Dropdown\n ref={ref}\n className={classNameProp}\n {...(sanitizedProps as unknown as MantineMenuSubDropdownProps)}\n />\n );\n },\n);\nMenuSubDropdown.displayName = \"MenuSubDropdown\";\n\n// ============================================================\n// DOT NOTATION EXPORT\n// ============================================================\n\ntype MenuSubComponent = typeof MenuSubBase & {\n Target: typeof MenuSubTarget;\n Item: typeof MenuSubItem;\n Dropdown: typeof MenuSubDropdown;\n};\n\nconst MenuSub = MenuSubBase as MenuSubComponent;\nMenuSub.Target = MenuSubTarget;\nMenuSub.Item = MenuSubItem;\nMenuSub.Dropdown = MenuSubDropdown;\n\ntype MenuComponent = typeof MenuBase & {\n Target: typeof MenuTarget;\n Dropdown: typeof MenuDropdown;\n Item: typeof MenuItem;\n Divider: typeof MenuDivider;\n Label: typeof MenuLabel;\n Sub: MenuSubComponent;\n};\n\nexport const Menu = MenuBase as MenuComponent;\nMenu.Target = MenuTarget;\nMenu.Dropdown = MenuDropdown;\nMenu.Item = MenuItem;\nMenu.Divider = MenuDivider;\nMenu.Label = MenuLabel;\nMenu.Sub = MenuSub;\n","import React from \"react\";\nimport {\n Modal as MantineModal,\n type ModalProps as MantineModalProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Modal.module.css\";\n\nimport { type RecursicaModalProps } from \"@recursica/adapter-common\";\n\n/**\n * Properties for the strictly-tokenized Modal component.\n * Native Mantine abstract properties like `size`, `radius`, and `shadow` have been stripped out\n * because they directly conflict with the non-negotiable pixel boundaries defined in the Recursica UI Kit.\n */\nexport type ModalProps = RecursicaOverStyled<\n Omit<MantineModalProps, \"size\" | \"radius\" | \"shadow\"> & RecursicaModalProps\n>;\n\n/**\n * The `Modal` component displays a window overlaid on the primary viewport.\n *\n * **Recursica Abstract:**\n * This component acts as a strict structural wrapper around Mantine's `<Modal>`.\n * It automatically enforces Figma UI Kit geometries (`max-width: 960px`, `min-width: 304px`)\n * and handles internal body scrolling explicitly via CSS module overrides.\n *\n * @example\n * ```tsx\n * <Modal opened={opened} onClose={close} title=\"Hello World\">\n * Modal Content\n * </Modal>\n * ```\n */\nconst ModalInner = React.forwardRef<HTMLDivElement, ModalProps>(function Modal(\n {\n overStyled = false,\n children,\n title,\n withCloseButton = true,\n overlayProps,\n withOverlay = true,\n closeButtonProps,\n ...rest\n },\n ref,\n) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n inner: styles.inner,\n content: styles.content,\n header: styles.header,\n title: styles.title,\n close: styles.close,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>).classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Record<string, string>;\n Object.keys(o).forEach((key) => {\n if (mergedClassNames[key]) {\n mergedClassNames[key] = `${mergedClassNames[key]} ${o[key]}`;\n } else {\n mergedClassNames[key] = o[key];\n }\n });\n }\n\n return (\n <MantineModal.Root\n ref={ref}\n classNames={mergedClassNames}\n {...(sanitizedProps as unknown as Omit<\n MantineModalProps,\n \"size\" | \"radius\" | \"shadow\"\n >)}\n >\n {withOverlay && <MantineModal.Overlay {...overlayProps} />}\n <MantineModal.Content>\n {(title || withCloseButton) && (\n <MantineModal.Header>\n {title && <MantineModal.Title>{title}</MantineModal.Title>}\n {withCloseButton && (\n <MantineModal.CloseButton {...closeButtonProps} />\n )}\n </MantineModal.Header>\n )}\n <ModalBody>{children}</ModalBody>\n </MantineModal.Content>\n </MantineModal.Root>\n );\n});\n\nModalInner.displayName = \"Modal\";\n\n/**\n * The `Modal.Footer` provides a perfectly padded container for modal actions.\n *\n * **Recursica Abstract:**\n * By default, this container aligns its children to the right (`justify-content: flex-end`)\n * and applies the standard Figma button-gap spacing.\n *\n * > [!IMPORTANT]\n * > **Button Hierarchy:** Recursica design language explicitly requires that the\n * > primary action button MUST be the right-most element, with the secondary\n * > (outline variant) action placed immediately to the left of it.\n */\nconst ModalFooter = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<\"div\">\n>(function ModalFooter({ className, ...rest }, ref) {\n return (\n <div\n ref={ref}\n className={`${styles.footer} ${className || \"\"}`}\n {...rest}\n />\n );\n});\nModalFooter.displayName = \"Modal.Footer\";\n\nconst ModalBody = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof MantineModal.Body>\n>(function ModalBody({ className, onScroll, children, ...rest }, ref) {\n const internalRef = React.useRef<HTMLDivElement>(null);\n const [scrolledTop, setScrolledTop] = React.useState(false);\n const [scrolledBottom, setScrolledBottom] = React.useState(false);\n\n const checkScroll = React.useCallback(() => {\n if (internalRef.current) {\n const { scrollTop, scrollHeight, clientHeight } = internalRef.current;\n setScrolledTop(scrollTop > 0);\n setScrolledBottom(Math.ceil(scrollTop + clientHeight) < scrollHeight);\n }\n }, []);\n\n // Re-check scroll on mount and window resize\n React.useEffect(() => {\n checkScroll();\n window.addEventListener(\"resize\", checkScroll);\n return () => window.removeEventListener(\"resize\", checkScroll);\n }, [checkScroll, children]);\n\n const handleScroll = (e: React.UIEvent<HTMLDivElement>) => {\n checkScroll();\n onScroll?.(e);\n };\n\n // Intercept children to pull Modal.Footer out of the scrolling container\n let footer: React.ReactNode = null;\n const bodyChildren: React.ReactNode[] = [];\n\n React.Children.forEach(children, (child) => {\n if (\n React.isValidElement(child) &&\n (child.type === ModalFooter ||\n (child.type as React.ComponentType)?.displayName === \"Modal.Footer\")\n ) {\n footer = child;\n } else {\n bodyChildren.push(child);\n }\n });\n\n return (\n <MantineModal.Body\n {...rest}\n ref={(node) => {\n if (typeof ref === \"function\") ref(node);\n else if (ref)\n (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;\n }}\n className={`${styles.bodyWrapper} ${className || \"\"}`}\n >\n <div\n ref={internalRef}\n onScroll={handleScroll}\n data-scrolled-top={scrolledTop || undefined}\n data-scrolled-bottom={scrolledBottom || undefined}\n className={styles.scrollArea}\n >\n {bodyChildren}\n </div>\n {footer}\n </MantineModal.Body>\n );\n});\nModalBody.displayName = \"Modal.Body\";\n\ninterface ModalComponent\n extends React.ForwardRefExoticComponent<\n ModalProps & React.RefAttributes<HTMLDivElement>\n > {\n Root: typeof MantineModal.Root;\n Overlay: typeof MantineModal.Overlay;\n Content: typeof MantineModal.Content;\n Header: typeof MantineModal.Header;\n Title: typeof MantineModal.Title;\n CloseButton: typeof MantineModal.CloseButton;\n Body: typeof ModalBody;\n Footer: typeof ModalFooter;\n}\n\nexport const Modal = ModalInner as ModalComponent & {\n Footer: typeof ModalFooter;\n};\nModal.Root = MantineModal.Root;\nModal.Overlay = MantineModal.Overlay;\nModal.Content = MantineModal.Content;\nModal.Header = MantineModal.Header;\nModal.Title = MantineModal.Title;\nModal.CloseButton = MantineModal.CloseButton;\nModal.Body = ModalBody;\nModal.Footer = ModalFooter;\n","import React, { forwardRef } from \"react\";\nimport {\n NumberInput as MantineNumberInput,\n type NumberInputProps as MantineNumberInputProps,\n} from \"@mantine/core\";\nimport { type ReadOnlyControlProps } from \"@recursica/adapter-common\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport { type RecursicaFormControlWrapperProps } from \"../FormControlWrapper/FormControlWrapper\";\nimport { WithReadOnlyWrapper } from \"../ReadOnlyField/WithReadOnlyWrapper\";\nimport styles from \"./NumberInput.module.css\";\n\nimport { type RecursicaNumberInputProps as BaseRecursicaNumberInputProps } from \"@recursica/adapter-common\";\n\nexport interface RecursicaNumberInputProps\n extends Omit<\n MantineNumberInputProps,\n \"size\" | \"variant\" | \"radius\" | \"wrapperProps\" | \"classNames\" | \"styles\"\n >,\n Pick<\n RecursicaFormControlWrapperProps,\n | \"assistiveText\"\n | \"assistiveWithIcon\"\n | \"formLayout\"\n | \"labelSize\"\n | \"labelAlignment\"\n | \"labelOptionalText\"\n | \"labelWithEditIcon\"\n | \"onLabelEditClick\"\n >,\n ReadOnlyControlProps,\n BaseRecursicaNumberInputProps {}\n\nexport type NumberInputProps = RecursicaOverStyled<RecursicaNumberInputProps>;\n\nexport const NumberInput = forwardRef<HTMLInputElement, NumberInputProps>(\n function NumberInput(props, ref) {\n const {\n overStyled = false,\n formLayout = \"stacked\",\n\n // Label & Wrapper Maps\n labelSize,\n labelAlignment,\n labelOptionalText,\n labelWithEditIcon,\n onLabelEditClick,\n\n label,\n assistiveText,\n assistiveWithIcon,\n error,\n required,\n withAsterisk,\n id,\n className,\n style,\n disabled,\n readOnly,\n readOnlyComponent,\n emptyValueComponent,\n value,\n defaultValue,\n hideControls = false,\n ...rest\n } = props;\n\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Delete prohibited sizing hooks from bypassing variables natively\n delete restRecord[\"size\"];\n delete restRecord[\"variant\"];\n delete restRecord[\"radius\"];\n\n // Securely map core native blocks down ensuring nested CSS modules map precisely\n const mergedClassNames: Partial<Record<string, string>> = {\n wrapper: styles.root, // The nested Input internal relative wrapper bounding box\n input: styles.input,\n section: styles.section,\n controls: styles.controls,\n control: styles.control,\n };\n\n const wrapperClass = className\n ? `${styles.layoutOverride} ${className}`\n : styles.layoutOverride;\n\n return (\n <WithReadOnlyWrapper\n className={wrapperClass}\n style={style as React.CSSProperties}\n controlMaxWidth=\"var(--recursica_ui-kit_components_number-input_properties_max-width)\"\n controlMinWidth=\"var(--recursica_ui-kit_components_number-input_properties_min-width)\"\n overStyled={overStyled as true}\n formLayout={formLayout}\n labelSize={labelSize}\n labelAlignment={labelAlignment}\n labelOptionalText={labelOptionalText}\n labelWithEditIcon={labelWithEditIcon}\n onLabelEditClick={onLabelEditClick}\n label={label}\n assistiveText={assistiveText}\n assistiveWithIcon={assistiveWithIcon}\n error={error}\n required={required}\n withAsterisk={withAsterisk}\n id={id}\n readOnly={readOnly}\n readOnlyComponent={readOnlyComponent}\n emptyValueComponent={emptyValueComponent}\n readOnlyType=\"text\"\n readOnlyValue={\n value !== undefined ? value?.toString() : defaultValue?.toString()\n }\n readOnlyNativeProps={props}\n activeComponent={\n /* Naked Input execution safely decoupled from Mantine's macro Input.Wrapper DOM hooks */\n <MantineNumberInput\n ref={ref}\n classNames={mergedClassNames}\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n hideControls={hideControls}\n label={undefined}\n description={undefined}\n error={undefined}\n required={undefined}\n withAsterisk={undefined}\n wrapperProps={{\n \"data-disabled\": disabled ? \"true\" : undefined,\n \"data-error\": error ? \"true\" : undefined,\n \"data-with-left-section\": restRecord.leftSection\n ? \"true\"\n : undefined,\n \"data-with-right-section\":\n restRecord.rightSection || !hideControls ? \"true\" : undefined,\n }}\n {...(sanitizedProps as unknown as MantineNumberInputProps)}\n />\n }\n />\n );\n },\n);\n\nNumberInput.displayName = \"NumberInput\";\n","import styles from \"./Pagination.module.css\";\n\nconst NextPath =\n \"M8.781 8l-3.3-3.3.943-.943L10.667 8l-4.243 4.243-.943-.943 3.3-3.3z\";\nconst PrevPath =\n \"M7.219 8l3.3 3.3-.943.943L5.333 8l4.243-4.243.943.943-3.3 3.3z\";\nconst FirstPath =\n \"M6.85355 3.85355C7.04882 3.65829 7.04882 3.34171 6.85355 3.14645C6.65829 2.95118 6.34171 2.95118 6.14645 3.14645L2.14645 7.14645C1.95118 7.34171 1.95118 7.65829 2.14645 7.85355L6.14645 11.8536C6.34171 12.0488 6.65829 12.0488 6.85355 11.8536C7.04882 11.6583 7.04882 11.3417 6.85355 11.1464L3.20711 7.5L6.85355 3.85355ZM12.8536 3.85355C13.0488 3.65829 13.0488 3.34171 12.8536 3.14645C12.6583 2.95118 12.3417 2.95118 12.1464 3.14645L8.14645 7.14645C7.95118 7.34171 7.95118 7.65829 8.14645 7.85355L12.1464 11.8536C12.3417 12.0488 12.6583 12.0488 12.8536 11.8536C13.0488 11.6583 13.0488 11.3417 12.8536 11.1464L9.20711 7.5L12.8536 3.85355Z\";\nconst LastPath =\n \"M2.14645 11.1464C1.95118 11.3417 1.95118 11.6583 2.14645 11.8536C2.34171 12.0488 2.65829 12.0488 2.85355 11.8536L6.85355 7.85355C7.04882 7.65829 7.04882 7.34171 6.85355 7.14645L2.85355 3.14645C2.65829 2.95118 2.34171 2.95118 2.14645 3.14645C1.95118 3.34171 1.95118 3.65829 2.14645 3.85355L5.79289 7.5L2.14645 11.1464ZM8.14645 11.1464C7.95118 11.3417 7.95118 11.6583 8.14645 11.8536C8.34171 12.0488 8.65829 12.0488 8.85355 11.8536L12.8536 7.85355C13.0488 7.65829 13.0488 7.34171 12.8536 7.14645L8.85355 3.14645C8.65829 2.95118 8.34171 2.95118 8.14645 3.14645C7.95118 3.34171 7.95118 3.65829 8.14645 3.85355L11.7929 7.5L8.14645 11.1464Z\";\n\nexport type PaginationIconType = \"next\" | \"prev\" | \"first\" | \"last\";\n\nconst paths: Record<PaginationIconType, string> = {\n next: NextPath,\n prev: PrevPath,\n first: FirstPath,\n last: LastPath,\n};\n\nexport const PaginationIcon = ({\n type,\n className,\n ...props\n}: React.ComponentProps<\"svg\"> & { type: PaginationIconType }) => (\n <svg\n viewBox=\"0 0 16 16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={`${styles.baseIcon} ${className || \"\"}`.trim()}\n {...props}\n >\n <path d={paths[type as PaginationIconType]} fill=\"currentColor\" />\n </svg>\n);\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const NextWithLabel = (props: any) => (\n <div className={styles.iconWithLabel}>\n <span>Next</span>\n <PaginationIcon type=\"next\" {...props} />\n </div>\n);\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const PrevWithLabel = (props: any) => (\n <div className={styles.iconWithLabel}>\n <PaginationIcon type=\"prev\" {...props} />\n <span>Prev</span>\n </div>\n);\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const FirstWithLabel = (props: any) => (\n <div className={styles.iconWithLabel}>\n <PaginationIcon type=\"first\" {...props} />\n <span>First</span>\n </div>\n);\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const LastWithLabel = (props: any) => (\n <div className={styles.iconWithLabel}>\n <span>Last</span>\n <PaginationIcon type=\"last\" {...props} />\n </div>\n);\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { forwardRef } from \"react\";\nimport {\n Pagination as MantinePagination,\n type PaginationProps as MantinePaginationProps,\n type PaginationRootProps as MantinePaginationRootProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Pagination.module.css\";\nimport {\n NextWithLabel,\n PrevWithLabel,\n FirstWithLabel,\n LastWithLabel,\n PaginationIcon,\n} from \"./Pagination.icons\";\n\nimport { type RecursicaPaginationProps } from \"@recursica/adapter-common\";\n\nexport type PaginationProps = RecursicaOverStyled<\n MantinePaginationProps & RecursicaPaginationProps\n>;\n\nexport type PaginationRootProps =\n RecursicaOverStyled<MantinePaginationRootProps>;\n\nexport type PaginationEdgeProps<T extends React.ElementType> =\n React.ComponentProps<T> & {\n /** If set to true, displays text labels alongside the icon. */\n withLabel?: boolean;\n icon?: any;\n };\n\nfunction usePaginationClassNames(restRecord: Record<string, unknown>): {\n className: string;\n classNames: Partial<Record<string, string>>;\n} {\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n control: styles.control,\n dots: styles.dots,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n mergedClassNames.control = o.control\n ? `${styles.control} ${o.control}`\n : styles.control;\n mergedClassNames.dots = o.dots ? `${styles.dots} ${o.dots}` : styles.dots;\n }\n\n const classNameProp = restRecord.className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n return { className: finalClass, classNames: mergedClassNames };\n}\n\nconst _PaginationRoot = forwardRef<HTMLDivElement, PaginationRootProps>(\n function PaginationRoot({ overStyled = false, ...rest }, ref) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const stylingParams = usePaginationClassNames(\n sanitizedProps as Record<string, unknown>,\n );\n\n return (\n <MantinePagination.Root\n ref={ref}\n className={stylingParams.className}\n classNames={stylingParams.classNames}\n {...(sanitizedProps as MantinePaginationRootProps)}\n />\n );\n },\n);\n_PaginationRoot.displayName = \"Pagination.Root\";\n\nconst _PaginationNext = forwardRef<\n HTMLButtonElement,\n PaginationEdgeProps<typeof MantinePagination.Next>\n>(function PaginationNext({ withLabel, icon, ...props }, ref) {\n const renderIcon = icon || (withLabel ? NextWithLabel : undefined);\n return (\n <MantinePagination.Next\n ref={ref}\n data-variant=\"text\"\n icon={renderIcon as any}\n {...props}\n />\n );\n});\n_PaginationNext.displayName = \"Pagination.Next\";\n\nconst _PaginationPrevious = forwardRef<\n HTMLButtonElement,\n PaginationEdgeProps<typeof MantinePagination.Previous>\n>(function PaginationPrevious({ withLabel, icon, ...props }, ref) {\n const renderIcon = icon || (withLabel ? PrevWithLabel : undefined);\n return (\n <MantinePagination.Previous\n ref={ref}\n data-variant=\"text\"\n icon={renderIcon as any}\n {...props}\n />\n );\n});\n_PaginationPrevious.displayName = \"Pagination.Previous\";\n\nconst _PaginationFirst = forwardRef<\n HTMLButtonElement,\n PaginationEdgeProps<typeof MantinePagination.First>\n>(function PaginationFirst({ withLabel, icon, ...props }, ref) {\n const renderIcon = icon || (withLabel ? FirstWithLabel : undefined);\n return (\n <MantinePagination.First\n ref={ref}\n data-variant=\"text\"\n icon={renderIcon as any}\n {...props}\n />\n );\n});\n_PaginationFirst.displayName = \"Pagination.First\";\n\nconst _PaginationLast = forwardRef<\n HTMLButtonElement,\n PaginationEdgeProps<typeof MantinePagination.Last>\n>(function PaginationLast({ withLabel, icon, ...props }, ref) {\n const renderIcon = icon || (withLabel ? LastWithLabel : undefined);\n return (\n <MantinePagination.Last\n ref={ref}\n data-variant=\"text\"\n icon={renderIcon as any}\n {...props}\n />\n );\n});\n_PaginationLast.displayName = \"Pagination.Last\";\n\nconst _Pagination = forwardRef<HTMLDivElement, PaginationProps>(\n function Pagination(\n { overStyled = false, getControlProps, withLabels, ...rest },\n ref,\n ) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const stylingParams = usePaginationClassNames(\n sanitizedProps as Record<string, unknown>,\n );\n\n const mergedGetControlProps = (\n control: \"first\" | \"previous\" | \"last\" | \"next\",\n ) => {\n const baseProps = { \"data-variant\": \"text\" };\n if (getControlProps) {\n return { ...baseProps, ...getControlProps(control) };\n }\n return baseProps;\n };\n\n const labelsIcons = withLabels\n ? {\n nextIcon: NextWithLabel,\n previousIcon: PrevWithLabel,\n firstIcon: FirstWithLabel,\n lastIcon: LastWithLabel,\n }\n : {};\n\n return (\n <MantinePagination\n ref={ref}\n className={stylingParams.className}\n classNames={stylingParams.classNames}\n getControlProps={mergedGetControlProps}\n {...labelsIcons}\n {...(sanitizedProps as MantinePaginationProps)}\n />\n );\n },\n);\n_Pagination.displayName = \"Pagination\";\n\n/**\n * Recursica Pagination component wrapping Mantine's Pagination.\n */\nexport const Pagination = _Pagination as typeof _Pagination & {\n Root: typeof _PaginationRoot;\n Items: typeof MantinePagination.Items;\n Control: typeof MantinePagination.Control;\n Dots: typeof MantinePagination.Dots;\n Next: typeof _PaginationNext;\n Previous: typeof _PaginationPrevious;\n First: typeof _PaginationFirst;\n Last: typeof _PaginationLast;\n Icon: typeof PaginationIcon;\n};\n\nPagination.Root = _PaginationRoot;\nPagination.Items = MantinePagination.Items;\nPagination.Control = MantinePagination.Control;\nPagination.Dots = MantinePagination.Dots;\nPagination.Next = _PaginationNext;\nPagination.Previous = _PaginationPrevious;\nPagination.First = _PaginationFirst;\nPagination.Last = _PaginationLast;\nPagination.Icon = PaginationIcon;\n","import { forwardRef } from \"react\";\nimport {\n Drawer as MantineDrawer,\n type DrawerProps as MantineDrawerProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Panel.module.css\";\n\n// ============================================================\n// PANEL (Drawer)\n// ============================================================\n\nimport { type RecursicaPanelProps as BaseRecursicaPanelProps } from \"@recursica/adapter-common\";\n\n/**\n * Recursica Panel root props. Extends Mantine Drawer.\n */\nexport interface RecursicaPanelProps\n extends Omit<\n MantineDrawerProps,\n \"size\" | \"styles\" | \"classNames\" | \"style\" | \"position\"\n >,\n BaseRecursicaPanelProps {}\n\nexport type PanelProps = RecursicaOverStyled<RecursicaPanelProps>;\n\n/**\n * Recursica Panel component wrapping Mantine's Drawer.\n *\n * Panels slide in or expand from the edge of the screen to reveal\n * additional content or functionality. They are commonly used to provide\n * supplementary information, navigation options, or toolsets without\n * cluttering the main interface.\n *\n * ```tsx\n * <Panel opened={opened} onClose={close} title=\"Panel Title\" placement=\"right\">\n * <Panel.Body>\n * Content goes here\n * </Panel.Body>\n * </Panel>\n * ```\n *\n * Mantine Drawer sub-components available via dot-notation:\n * - `Panel.Header` — Top section with title and close button\n * - `Panel.Title` — Title text within the header\n * - `Panel.CloseButton` — Close button within the header\n * - `Panel.Body` — Scrollable body content area\n * - `Panel.Content` — Outer content container\n * - `Panel.Overlay` — Background overlay\n * - `Panel.Root` — Root element for advanced composition\n * - `Panel.Stack` — Stacked drawer context\n */\nconst PanelBase = function Panel({\n overStyled = false,\n placement = \"right\",\n keepMounted = true,\n wrapHeaderText = false,\n ...rest\n}: PanelProps) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n // Bind CSS module classes to Mantine's internal classNames API\n const mergedClassNames: Partial<Record<string, string>> = {\n content: styles.content,\n header: styles.header,\n title: wrapHeaderText ? styles.titleTruncate : styles.title,\n body: styles.body,\n inner: styles.inner,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>).classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Record<string, string>;\n Object.keys(o).forEach((key) => {\n if (mergedClassNames[key]) {\n mergedClassNames[key] = `${mergedClassNames[key]} ${o[key]}`;\n } else {\n mergedClassNames[key] = o[key];\n }\n });\n }\n\n return (\n <MantineDrawer\n position={placement} /* Recursica default: right; Mantine default: left */\n keepMounted={keepMounted}\n closeOnClickOutside={rest.closeOnClickOutside ?? Boolean(rest.opened)}\n {...(sanitizedProps as unknown as MantineDrawerProps)}\n classNames={mergedClassNames}\n />\n );\n};\nPanelBase.displayName = \"Panel\";\n\n// ============================================================\n// PANEL FOOTER (custom — Mantine Drawer has no Footer sub-component)\n// ============================================================\n\nexport type PanelFooterProps = RecursicaOverStyled<\n React.HTMLAttributes<HTMLDivElement>\n>;\n\n/**\n * Panel footer section with action buttons.\n * Separated from the body by a divider. Remains fixed at the bottom.\n * This is a Recursica-specific sub-component; Mantine Drawer does not\n * natively provide a footer.\n */\nexport const PanelFooter = forwardRef<HTMLDivElement, PanelFooterProps>(\n function PanelFooter({ overStyled = false, ...rest }, ref) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n const finalClassName = classNameProp\n ? `${styles.footer} ${classNameProp}`\n : styles.footer;\n\n return <div ref={ref} className={finalClassName} {...sanitizedProps} />;\n },\n);\nPanelFooter.displayName = \"PanelFooter\";\n\n// ============================================================\n// DOT NOTATION EXPORT\n// ============================================================\n\ntype PanelComponent = typeof PanelBase & {\n Root: typeof MantineDrawer.Root;\n Overlay: typeof MantineDrawer.Overlay;\n Content: typeof MantineDrawer.Content;\n Header: typeof MantineDrawer.Header;\n Title: typeof MantineDrawer.Title;\n CloseButton: typeof MantineDrawer.CloseButton;\n Body: typeof MantineDrawer.Body;\n Stack: typeof MantineDrawer.Stack;\n Footer: typeof PanelFooter;\n};\n\nexport const Panel = PanelBase as PanelComponent;\nPanel.Root = MantineDrawer.Root;\nPanel.Overlay = MantineDrawer.Overlay;\nPanel.Content = MantineDrawer.Content;\nPanel.Header = MantineDrawer.Header;\nPanel.Title = MantineDrawer.Title;\nPanel.CloseButton = MantineDrawer.CloseButton;\nPanel.Body = MantineDrawer.Body;\nPanel.Stack = MantineDrawer.Stack;\nPanel.Footer = PanelFooter;\n","import {\n Popover as MantinePopover,\n type PopoverProps as MantinePopoverProps,\n type PopoverTargetProps as MantinePopoverTargetProps,\n type PopoverDropdownProps as MantinePopoverDropdownProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Popover.module.css\";\n\n// ============================================================\n// POPOVER ROOT\n// ============================================================\n\n/**\n * Recursica-specific props for Popover.\n */\nimport { type RecursicaPopoverProps } from \"@recursica/adapter-common\";\n\n/**\n * Recursica Popover component wrapping Mantine's composable Popover.\n *\n * Displays a dropdown panel when the user clicks or interacts with a target element.\n * Uses the composable dot-notation pattern:\n * ```tsx\n * <Popover withBeak>\n * <Popover.Target>\n * <Button>Click me</Button>\n * </Popover.Target>\n * <Popover.Dropdown>\n * Content displayed in popover\n * </Popover.Dropdown>\n * </Popover>\n * ```\n */\nexport type PopoverProps = RecursicaOverStyled<\n MantinePopoverProps & RecursicaPopoverProps\n>;\n\nconst PopoverBase = function Popover({\n overStyled = false,\n withBeak = true,\n ...rest\n}: PopoverProps) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n // Bind CSS module classes to Mantine's internal classNames API\n const mergedClassNames: Partial<Record<string, string>> = {\n dropdown: styles.dropdown,\n arrow: styles.arrow,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>).classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Record<string, string>;\n Object.keys(o).forEach((key) => {\n if (mergedClassNames[key]) {\n mergedClassNames[key] = `${mergedClassNames[key]} ${o[key]}`;\n } else {\n mergedClassNames[key] = o[key];\n }\n });\n }\n\n // arrowSize must be a JS number prop — Mantine uses it for inline width/height\n // and positioning offset (-arrowSize/2) calculations that cannot be CSS-driven.\n // Default to 16 to match the Recursica beak-size token (16px).\n const arrowSize =\n ((sanitizedProps as Record<string, unknown>).arrowSize as\n | number\n | undefined) ?? 16;\n\n // Resolve withBeak (Recursica) vs withArrow (Mantine).\n // withBeak takes precedence when both are provided.\n const withArrow = (sanitizedProps as Record<string, unknown>).withArrow as\n | boolean\n | undefined;\n const resolvedWithArrow = withBeak ?? withArrow;\n\n return (\n <MantinePopover\n position=\"top\" /* Recursica default; Mantine defaults to \"bottom\" */\n arrowSize={arrowSize}\n withArrow={resolvedWithArrow}\n classNames={mergedClassNames}\n {...(sanitizedProps as unknown as MantinePopoverProps)}\n />\n );\n};\nPopoverBase.displayName = \"Popover\";\n\n// ============================================================\n// POPOVER TARGET\n// ============================================================\n\n/**\n * Wrapper for the element that triggers the popover.\n * Requires a single child element that supports ref forwarding.\n */\nexport type PopoverTargetProps = MantinePopoverTargetProps;\n\nconst PopoverTarget = function PopoverTarget(props: PopoverTargetProps) {\n return <MantinePopover.Target {...props} />;\n};\nPopoverTarget.displayName = \"PopoverTarget\";\n\n// ============================================================\n// POPOVER DROPDOWN\n// ============================================================\n\n/** The dropdown panel displayed from the popover. */\nexport type PopoverDropdownProps =\n RecursicaOverStyled<MantinePopoverDropdownProps>;\n\nconst PopoverDropdown = function PopoverDropdown({\n overStyled = false,\n ...rest\n}: PopoverDropdownProps) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <MantinePopover.Dropdown\n className={classNameProp}\n {...(sanitizedProps as unknown as MantinePopoverDropdownProps)}\n />\n );\n};\nPopoverDropdown.displayName = \"PopoverDropdown\";\n\n// ============================================================\n// DOT NOTATION EXPORT\n// ============================================================\n\ntype PopoverComponent = typeof PopoverBase & {\n Target: typeof PopoverTarget;\n Dropdown: typeof PopoverDropdown;\n};\n\nexport const Popover = PopoverBase as PopoverComponent;\nPopover.Target = PopoverTarget;\nPopover.Dropdown = PopoverDropdown;\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { forwardRef } from \"react\";\nimport {\n Radio as MantineRadio,\n type RadioGroupProps as MantineRadioGroupProps,\n} from \"@mantine/core\";\nimport { type ReadOnlyControlProps } from \"@recursica/adapter-common\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport { type RecursicaFormControlWrapperProps } from \"../FormControlWrapper/FormControlWrapper\";\nimport { WithReadOnlyWrapper } from \"../ReadOnlyField/WithReadOnlyWrapper\";\nimport styles from \"./Radio.module.css\";\n\nimport { type RecursicaRadioGroupProps as BaseRecursicaRadioGroupProps } from \"@recursica/adapter-common\";\n\nexport interface RecursicaRadioGroupProps\n extends Omit<\n MantineRadioGroupProps,\n \"size\" | \"labelProps\" | \"defaultValue\" | \"value\" | \"onChange\"\n >,\n Omit<\n RecursicaFormControlWrapperProps,\n \"controlMaxWidth\" | \"controlMinWidth\"\n >,\n ReadOnlyControlProps,\n BaseRecursicaRadioGroupProps {}\n\nexport type RadioGroupProps = RecursicaOverStyled<RecursicaRadioGroupProps>;\n\nexport const RadioGroup = forwardRef<HTMLDivElement, RadioGroupProps>(\n function RadioGroup(props, ref) {\n const {\n overStyled = false,\n formLayout = \"stacked\",\n\n // Label Wrappers\n labelSize,\n labelAlignment,\n labelOptionalText,\n labelWithEditIcon,\n onLabelEditClick,\n\n // Base Mantine Extracted Attributes\n label,\n description,\n assistiveText,\n assistiveWithIcon,\n error,\n required,\n withAsterisk,\n id,\n className,\n style,\n children,\n readOnly,\n readOnlyComponent,\n emptyValueComponent,\n value,\n defaultValue,\n ...rest\n } = props;\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Delete prohibited sizing hooks from bypassing the variables\n delete restRecord[\"size\"];\n\n return (\n <WithReadOnlyWrapper\n className={className}\n style={style as React.CSSProperties}\n controlMaxWidth=\"var(--recursica_ui-kit_components_radio-button-item_properties_max-width)\"\n controlMinWidth={undefined}\n overStyled={overStyled as true}\n labelElement=\"div\" // Strictly override. ARIA grouping prohibits interactive radios nested natively inside <label>.\n formLayout={formLayout}\n labelSize={labelSize}\n labelAlignment={labelAlignment}\n labelOptionalText={labelOptionalText}\n labelWithEditIcon={labelWithEditIcon}\n onLabelEditClick={onLabelEditClick}\n label={label}\n description={description}\n assistiveText={assistiveText}\n assistiveWithIcon={assistiveWithIcon}\n error={error}\n required={required}\n withAsterisk={withAsterisk}\n id={id}\n readOnly={readOnly && !!readOnlyComponent}\n readOnlyComponent={readOnlyComponent}\n emptyValueComponent={emptyValueComponent}\n readOnlyType=\"text\"\n readOnlyValue={value !== undefined ? value : defaultValue}\n readOnlyNativeProps={props}\n activeComponent={\n <MantineRadio.Group\n ref={ref}\n /* Natively bind local disabled lock dynamically */\n {...(sanitizedProps as unknown as MantineRadioGroupProps)}\n disabled={readOnly || (restRecord as any).disabled}\n value={value as any}\n defaultValue={defaultValue as any}\n >\n <div className={styles.groupRoot} data-layout={formLayout}>\n {children}\n </div>\n </MantineRadio.Group>\n }\n />\n );\n },\n);\n\nRadioGroup.displayName = \"RadioGroup\";\n","import { forwardRef } from \"react\";\nimport {\n Radio as MantineRadio,\n type RadioProps as MantineRadioProps,\n} from \"@mantine/core\";\nimport { type ReadOnlyControlProps } from \"@recursica/adapter-common\";\nimport { RadioGroup } from \"./RadioGroup\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport {\n type RequireAccessibleLabel,\n type RecursicaRadioProps,\n} from \"@recursica/adapter-common\";\nimport {\n FormControlLayout,\n type FormControlLayoutProps,\n} from \"../FormControlLayout/FormControlLayout\";\n\nimport styles from \"./Radio.module.css\";\n\nconst RadioIcon: React.FC<{\n className?: string;\n style?: React.CSSProperties;\n}> = ({ className, style }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n className={className}\n style={style}\n >\n <circle cx=\"8\" cy=\"8\" r=\"5\" />\n </svg>\n);\n\nexport type RadioWrapperProps = Omit<\n MantineRadioProps,\n \"size\" | \"color\" | \"radius\" | \"iconColor\" | \"variant\"\n> &\n RecursicaRadioProps &\n ReadOnlyControlProps &\n Pick<\n FormControlLayoutProps,\n \"formLayout\" | \"labelSize\" | \"controlMaxWidth\" | \"controlMinWidth\"\n >;\n\nexport type RecursicaRadioPropsAlias =\n RequireAccessibleLabel<RadioWrapperProps>;\n\nexport type RadioProps = RecursicaOverStyled<RecursicaRadioPropsAlias>;\n\ntype RadioComponent = React.ForwardRefExoticComponent<\n RadioProps & React.RefAttributes<HTMLInputElement>\n> & {\n Group: typeof RadioGroup;\n};\n\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(\n function Radio(props, ref) {\n const {\n overStyled = false,\n readOnly,\n readOnlyComponent,\n disabled,\n formLayout,\n labelSize,\n controlMaxWidth,\n controlMinWidth,\n ...rest\n } = props;\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Actively delete dimension bindings that bypass the abstraction\n delete restRecord[\"size\"];\n delete restRecord[\"color\"];\n delete restRecord[\"radius\"];\n delete restRecord[\"variant\"];\n delete restRecord[\"iconColor\"];\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n body: styles.body,\n inner: styles.inner,\n radio: styles.radio,\n icon: styles.icon,\n labelWrapper: styles.labelWrapper,\n label: styles.label,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n mergedClassNames.body = o.body ? `${styles.body} ${o.body}` : styles.body;\n mergedClassNames.inner = o.inner\n ? `${styles.inner} ${o.inner}`\n : styles.inner;\n mergedClassNames.radio = o.radio\n ? `${styles.radio} ${o.radio}`\n : styles.radio;\n mergedClassNames.icon = o.icon ? `${styles.icon} ${o.icon}` : styles.icon;\n mergedClassNames.labelWrapper = o.labelWrapper\n ? `${styles.labelWrapper} ${o.labelWrapper}`\n : styles.labelWrapper;\n mergedClassNames.label = o.label\n ? `${styles.label} ${o.label}`\n : styles.label;\n }\n\n const classNameProp = restRecord.className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n if (readOnly && !!readOnlyComponent) {\n const isChecked = !!(restRecord.checked ?? restRecord.defaultChecked);\n const ReadOnlyComp = readOnlyComponent;\n const roNode = (\n <ReadOnlyComp\n {...props}\n checked={isChecked}\n label={restRecord.label as React.ReactNode}\n />\n );\n\n if (formLayout) {\n return (\n <FormControlLayout\n formLayout={formLayout}\n labelSize={labelSize}\n controlMaxWidth={controlMaxWidth}\n controlMinWidth={controlMinWidth}\n >\n {roNode}\n </FormControlLayout>\n );\n }\n\n return <>{roNode}</>;\n }\n\n // We omit Mantine's sizing/coloring so we rely strictly on variables from Radio.module.css\n const radioNode = (\n <MantineRadio\n ref={ref}\n icon={RadioIcon}\n className={finalClass}\n classNames={mergedClassNames}\n disabled={readOnly || disabled}\n {...(sanitizedProps as unknown as MantineRadioProps)}\n />\n );\n\n if (formLayout) {\n return (\n <FormControlLayout\n formLayout={formLayout}\n labelSize={labelSize}\n controlMaxWidth={controlMaxWidth}\n controlMinWidth={controlMinWidth}\n >\n {radioNode}\n </FormControlLayout>\n );\n }\n\n return radioNode;\n },\n) as RadioComponent;\n\nRadio.displayName = \"Radio\";\nRadio.Group = RadioGroup;\n","import { forwardRef } from \"react\";\nimport {\n SegmentedControl as MantineSegmentedControl,\n type SegmentedControlProps as MantineSegmentedControlProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./SegmentedControl.module.css\";\n\nimport { type RecursicaSegmentedControlProps } from \"@recursica/adapter-common\";\n\nexport type SegmentedControlProps = RecursicaOverStyled<\n Omit<\n MantineSegmentedControlProps,\n | \"variant\"\n | \"size\"\n | \"radius\"\n | \"color\"\n | \"classNames\"\n | \"className\"\n | \"disabled\"\n > & {\n className?: string;\n classNames?: Partial<Record<string, string>>;\n } & RecursicaSegmentedControlProps\n>;\n\nfunction useSegmentedControlClassNames(restRecord: Record<string, unknown>): {\n className: string;\n classNames: Partial<Record<string, string>>;\n} {\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n control: styles.control,\n label: styles.label,\n indicator: styles.indicator,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n mergedClassNames.control = o.control\n ? `${styles.control} ${o.control}`\n : styles.control;\n mergedClassNames.label = o.label\n ? `${styles.label} ${o.label}`\n : styles.label;\n mergedClassNames.indicator = o.indicator\n ? `${styles.indicator} ${o.indicator}`\n : styles.indicator;\n }\n\n const classNameProp = restRecord.className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n return { className: finalClass, classNames: mergedClassNames };\n}\n\nconst _SegmentedControl = forwardRef<HTMLDivElement, SegmentedControlProps>(\n function SegmentedControl(\n { overStyled = false, orientation = \"horizontal\", fullWidth, ...rest },\n ref,\n ) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Explicitly prevent consumers from bypassing the disabled restriction\n delete restRecord[\"disabled\"];\n\n const stylingParams = useSegmentedControlClassNames(restRecord);\n\n return (\n <MantineSegmentedControl\n ref={ref}\n className={stylingParams.className}\n classNames={stylingParams.classNames}\n orientation={orientation}\n fullWidth={fullWidth}\n data-orientation={orientation}\n {...(sanitizedProps as Omit<\n MantineSegmentedControlProps,\n \"variant\" | \"size\"\n >)}\n />\n );\n },\n);\n_SegmentedControl.displayName = \"SegmentedControl\";\n\n/**\n * Recursica SegmentedControl component wrapping Mantine's SegmentedControl.\n */\nexport const SegmentedControl = _SegmentedControl;\n","import React, { forwardRef, useState, useEffect } from \"react\";\nimport {\n Slider as MantineSlider,\n type SliderProps as MantineSliderProps,\n type InputWrapperProps,\n} from \"@mantine/core\";\nimport { type ReadOnlyControlProps } from \"@recursica/adapter-common\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport { type RecursicaFormControlWrapperProps } from \"../FormControlWrapper/FormControlWrapper\";\nimport { WithReadOnlyWrapper } from \"../ReadOnlyField/WithReadOnlyWrapper\";\n\nimport styles from \"./Slider.module.css\";\n\nimport { type RecursicaSliderProps as BaseRecursicaSliderProps } from \"@recursica/adapter-common\";\n\nexport interface RecursicaSliderProps\n extends Omit<\n MantineSliderProps,\n | \"size\"\n | \"variant\"\n | \"radius\"\n | \"wrapperProps\"\n | \"classNames\"\n | \"styles\"\n | \"label\"\n >,\n Omit<\n RecursicaFormControlWrapperProps,\n \"controlMaxWidth\" | \"controlMinWidth\"\n >,\n Pick<InputWrapperProps, \"error\" | \"required\" | \"withAsterisk\">,\n ReadOnlyControlProps,\n BaseRecursicaSliderProps {}\n\nexport type SliderProps = RecursicaOverStyled<RecursicaSliderProps>;\n\n/**\n * Custom Read-Only visual representation of the Slider value.\n * Utilizes component-specific read-only typography variables.\n */\nconst SliderReadOnlyValue: React.FC<{ value: number }> = ({ value }) => {\n return <div className={styles.readOnlyValue}>{value}</div>;\n};\n\n/**\n * Recursica Slider component wrapping Mantine's Slider.\n *\n * Implements a bidirectional text input field next to the slider track, responsive layouts,\n * custom typography-bound min/max labels, an optional leading icon, and an explicit read-only layout.\n */\nexport const Slider = forwardRef<HTMLDivElement, SliderProps>(\n function Slider(props, ref) {\n const {\n overStyled = false,\n formLayout = \"stacked\",\n\n // Label & Wrapper Maps\n labelSize,\n labelAlignment,\n labelOptionalText,\n labelWithEditIcon,\n labelActionArea,\n onLabelEditClick,\n\n label,\n tooltipLabel,\n assistiveText,\n assistiveWithIcon,\n error,\n required,\n withAsterisk,\n id,\n className,\n style,\n disabled,\n readOnly,\n readOnlyComponent,\n emptyValueComponent,\n value,\n defaultValue,\n icon,\n showInput = false,\n showMinMaxLabels = true,\n min = 0,\n max = 100,\n step = 1,\n onChange,\n onChangeEnd,\n ...rest\n } = props;\n\n // Bidirectional state linking the slider track value to the input field string representation\n const [internalValue, setInternalValue] = useState<number>(() => {\n if (value !== undefined) return value;\n if (defaultValue !== undefined) return defaultValue;\n return min;\n });\n\n const resolvedValue = value !== undefined ? value : internalValue;\n const [inputValue, setInputValue] = useState<string>(\n resolvedValue.toString(),\n );\n\n // Synchronize text input whenever the slider value changes\n useEffect(() => {\n setInputValue(resolvedValue.toString());\n }, [resolvedValue]);\n\n const handleValueChange = (val: number) => {\n if (value === undefined) {\n setInternalValue(val);\n }\n onChange?.(val);\n };\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const valStr = e.target.value;\n setInputValue(valStr);\n\n const parsed = parseFloat(valStr);\n if (!isNaN(parsed)) {\n // Clamp input value to bounds\n const clamped = Math.max(min, Math.min(max, parsed));\n handleValueChange(clamped);\n }\n };\n\n const handleInputBlur = () => {\n // Clean up text field on blur to reflect the final clamped resolved value\n setInputValue(resolvedValue.toString());\n };\n\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Delete prohibited sizing hooks from bypassing variables natively\n delete restRecord[\"size\"];\n delete restRecord[\"variant\"];\n delete restRecord[\"radius\"];\n delete restRecord[\"wrapperProps\"];\n\n // Securely map core native blocks down ensuring nested CSS modules map precisely\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.sliderRoot,\n track: styles.sliderTrack,\n bar: styles.sliderBar,\n thumb: styles.sliderThumb,\n mark: styles.sliderMark,\n markLabel: styles.sliderMarkLabel,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root\n ? `${styles.sliderRoot} ${o.root}`\n : styles.sliderRoot;\n mergedClassNames.track = o.track\n ? `${styles.sliderTrack} ${o.track}`\n : styles.sliderTrack;\n mergedClassNames.bar = o.bar\n ? `${styles.sliderBar} ${o.bar}`\n : styles.sliderBar;\n mergedClassNames.thumb = o.thumb\n ? `${styles.sliderThumb} ${o.thumb}`\n : styles.sliderThumb;\n mergedClassNames.mark = o.mark\n ? `${styles.sliderMark} ${o.mark}`\n : styles.sliderMark;\n mergedClassNames.markLabel = o.markLabel\n ? `${styles.sliderMarkLabel} ${o.markLabel}`\n : styles.sliderMarkLabel;\n }\n\n const wrapperClass = className\n ? `${styles.layoutOverride} ${className}`\n : styles.layoutOverride;\n\n const leadingIcon = icon ? (\n <span className={styles.iconWrapper} aria-hidden>\n {icon}\n </span>\n ) : null;\n\n return (\n <WithReadOnlyWrapper\n ref={ref}\n className={wrapperClass}\n style={style as React.CSSProperties}\n controlMaxWidth={undefined}\n controlMinWidth={undefined}\n overStyled={overStyled as true}\n formLayout={formLayout}\n labelSize={labelSize}\n labelAlignment={labelAlignment}\n labelOptionalText={labelOptionalText}\n labelWithEditIcon={labelWithEditIcon}\n labelActionArea={labelActionArea}\n onLabelEditClick={onLabelEditClick}\n label={label}\n assistiveText={assistiveText}\n assistiveWithIcon={assistiveWithIcon}\n error={error}\n required={required}\n withAsterisk={withAsterisk}\n id={id}\n readOnly={readOnly}\n readOnlyComponent={readOnlyComponent || SliderReadOnlyValue}\n emptyValueComponent={emptyValueComponent}\n readOnlyType=\"text\"\n readOnlyValue={resolvedValue}\n readOnlyNativeProps={{ value: resolvedValue }}\n activeComponent={\n <div\n className={styles.sliderContainer}\n data-form-layout={formLayout}\n data-disabled={disabled ? \"true\" : undefined}\n data-error={error ? \"true\" : undefined}\n >\n {leadingIcon}\n\n {showMinMaxLabels && (\n <span className={styles.minMaxGuide}>{min}</span>\n )}\n\n <div className={styles.sliderTrackWrapper}>\n <MantineSlider\n classNames={mergedClassNames}\n disabled={disabled}\n value={resolvedValue}\n onChange={handleValueChange}\n onChangeEnd={onChangeEnd}\n min={min}\n max={max}\n step={step}\n label={tooltipLabel}\n {...(sanitizedProps as unknown as MantineSliderProps)}\n />\n </div>\n\n <div className={styles.rightGuideContainer}>\n {!showInput && (\n <span className={styles.currentValue}>{resolvedValue}</span>\n )}\n {showMinMaxLabels && (\n <span className={styles.minMaxGuide}>{max}</span>\n )}\n </div>\n\n {showInput && (\n <input\n type=\"number\"\n className={styles.inputField}\n value={inputValue}\n onChange={handleInputChange}\n onBlur={handleInputBlur}\n min={min}\n max={max}\n step={step}\n disabled={disabled}\n data-error={error ? \"true\" : undefined}\n />\n )}\n </div>\n }\n />\n );\n },\n);\n\nSlider.displayName = \"Slider\";\n","import { forwardRef } from \"react\";\nimport {\n Stack as MantineStack,\n type StackProps as MantineStackProps,\n createPolymorphicComponent,\n} from \"@mantine/core\";\nimport {\n mapLayoutProps,\n type WithRecursicaSpacing,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Stack.module.css\";\n\nimport { type RecursicaStackProps } from \"@recursica/adapter-common\";\n\n/**\n * Stack flex layout wrapper.\n *\n * Note: Unlike complex UI components, primitive layout components (Flex, Stack, Group, Container)\n * DO NOT use the `RecursicaOverStyled` gatekeeper. Developers must be able to freely pass\n * width, height, padding, margins, and flexbox alignment props to construct structural layouts.\n */\nexport type StackProps = WithRecursicaSpacing<\n MantineStackProps & RecursicaStackProps\n>;\n\nconst _Stack = forwardRef<HTMLDivElement, StackProps>(function Stack(\n { children, gap = \"rec-default\", ...rest },\n ref,\n) {\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n };\n\n const classNamesProp = rest.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n }\n\n const classNameProp = rest.className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n return (\n <MantineStack\n ref={ref}\n className={finalClass}\n classNames={mergedClassNames}\n {...mapLayoutProps({ gap, ...rest } as Record<string, unknown>)}\n >\n {children}\n </MantineStack>\n );\n});\n_Stack.displayName = \"Stack\";\n\nexport const Stack = createPolymorphicComponent<\"div\", StackProps>(_Stack);\n","import React, { forwardRef } from \"react\";\nimport {\n Stepper as MantineStepper,\n type StepperProps as MantineStepperProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Stepper.module.css\";\n\nimport { type RecursicaStepperProps } from \"@recursica/adapter-common\";\n\nexport interface RecursicaStepperPropsExtended\n extends Omit<MantineStepperProps, \"size\">,\n RecursicaStepperProps {}\n\nexport type StepperProps = RecursicaOverStyled<RecursicaStepperPropsExtended>;\n\nconst _Stepper = forwardRef<HTMLDivElement, StepperProps>(\n function Stepper(props, ref) {\n const {\n overStyled = false,\n size = \"large\",\n orientation = \"horizontal\",\n className,\n style,\n ...rest\n } = props;\n\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n return (\n <MantineStepper\n ref={ref}\n orientation={orientation}\n className={`${styles.root} ${orientation === \"horizontal\" ? styles.horizontal : styles.vertical} ${size === \"large\" ? styles.large : styles.small} ${className || \"\"}`}\n style={style as React.CSSProperties}\n data-size={size}\n data-orientation={orientation}\n classNames={{\n steps: styles.steps,\n step: styles.step,\n stepIcon: styles.stepIcon,\n stepCompletedIcon: styles.stepCompletedIcon,\n stepBody: styles.stepBody,\n stepLabel: styles.stepLabel,\n stepDescription: styles.stepDescription,\n separator: styles.separator,\n verticalSeparator: styles.verticalSeparator,\n content: styles.content,\n }}\n {...(sanitizedProps as MantineStepperProps)}\n />\n );\n },\n);\n\n// We need to re-export the static components Step and Completed\nexport const Stepper: typeof _Stepper & {\n Step: typeof MantineStepper.Step;\n Completed: typeof MantineStepper.Completed;\n} = Object.assign(_Stepper, {\n Step: MantineStepper.Step,\n Completed: MantineStepper.Completed,\n});\n\n_Stepper.displayName = \"Stepper\";\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { forwardRef } from \"react\";\nimport {\n Switch as MantineSwitch,\n type SwitchGroupProps as MantineSwitchGroupProps,\n} from \"@mantine/core\";\nimport { type ReadOnlyControlProps } from \"@recursica/adapter-common\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport { type RecursicaFormControlWrapperProps } from \"../FormControlWrapper/FormControlWrapper\";\nimport { WithReadOnlyWrapper } from \"../ReadOnlyField/WithReadOnlyWrapper\";\nimport styles from \"./Switch.module.css\";\n\nimport { type RecursicaSwitchGroupProps as BaseRecursicaSwitchGroupProps } from \"@recursica/adapter-common\";\n\nexport interface RecursicaSwitchGroupProps\n extends Omit<\n MantineSwitchGroupProps,\n \"size\" | \"labelProps\" | \"defaultValue\" | \"value\" | \"onChange\"\n >,\n Omit<\n RecursicaFormControlWrapperProps,\n \"controlMaxWidth\" | \"controlMinWidth\"\n >,\n ReadOnlyControlProps,\n BaseRecursicaSwitchGroupProps {}\n\nexport type SwitchGroupProps = RecursicaOverStyled<RecursicaSwitchGroupProps>;\n\nexport const SwitchGroup = forwardRef<HTMLDivElement, SwitchGroupProps>(\n function SwitchGroup(props, ref) {\n const {\n overStyled = false,\n formLayout = \"stacked\",\n\n // Label Wrappers\n labelSize,\n labelAlignment,\n labelOptionalText,\n labelWithEditIcon,\n onLabelEditClick,\n\n // Base Mantine Extracted Attributes\n label,\n description,\n assistiveText,\n assistiveWithIcon,\n error,\n required,\n withAsterisk,\n id,\n className,\n style,\n children,\n readOnly,\n readOnlyComponent,\n emptyValueComponent,\n value,\n defaultValue,\n ...rest\n } = props;\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Delete prohibited sizing hooks from bypassing the variables\n delete restRecord[\"size\"];\n\n return (\n <WithReadOnlyWrapper\n className={className}\n style={style as React.CSSProperties}\n controlMaxWidth=\"var(--recursica_ui-kit_components_switch-item_properties_label-max-width)\"\n controlMinWidth={undefined}\n overStyled={overStyled as true}\n labelElement=\"div\" // Strictly override. ARIA grouping prohibits interactive switches nested natively inside <label>.\n formLayout={formLayout}\n labelSize={labelSize}\n labelAlignment={labelAlignment}\n labelOptionalText={labelOptionalText}\n labelWithEditIcon={labelWithEditIcon}\n onLabelEditClick={onLabelEditClick}\n label={label}\n description={description}\n assistiveText={assistiveText}\n assistiveWithIcon={assistiveWithIcon}\n error={error}\n required={required}\n withAsterisk={withAsterisk}\n id={id}\n readOnly={readOnly && !!readOnlyComponent}\n readOnlyComponent={readOnlyComponent}\n emptyValueComponent={emptyValueComponent}\n readOnlyType=\"text\"\n readOnlyValue={value !== undefined ? value : defaultValue}\n readOnlyNativeProps={props}\n activeComponent={\n <MantineSwitch.Group\n ref={ref}\n /* Natively bind local disabled lock dynamically */\n {...(sanitizedProps as unknown as MantineSwitchGroupProps)}\n disabled={readOnly || (restRecord as any).disabled}\n value={value as any}\n defaultValue={defaultValue as any}\n >\n <div className={styles.groupRoot} data-layout={formLayout}>\n {children}\n </div>\n </MantineSwitch.Group>\n }\n />\n );\n },\n);\n\nSwitchGroup.displayName = \"SwitchGroup\";\n","import { forwardRef } from \"react\";\nimport {\n Switch as MantineSwitch,\n type SwitchProps as MantineSwitchProps,\n CheckIcon,\n CloseIcon,\n} from \"@mantine/core\";\nimport { type ReadOnlyControlProps } from \"@recursica/adapter-common\";\n\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport {\n type RequireAccessibleLabel,\n type RecursicaSwitchProps,\n} from \"@recursica/adapter-common\";\nimport {\n FormControlLayout,\n type FormControlLayoutProps,\n} from \"../FormControlLayout/FormControlLayout\";\nimport styles from \"./Switch.module.css\";\n\nimport { SwitchGroup } from \"./SwitchGroup\";\n\nexport type SwitchWrapperProps = Omit<\n MantineSwitchProps,\n \"size\" | \"color\" | \"radius\" | \"variant\"\n> &\n RecursicaSwitchProps &\n ReadOnlyControlProps &\n Pick<\n FormControlLayoutProps,\n \"formLayout\" | \"labelSize\" | \"controlMaxWidth\" | \"controlMinWidth\"\n >;\n\nexport type RecursicaSwitchPropsAlias =\n RequireAccessibleLabel<SwitchWrapperProps>;\n\nexport type SwitchProps = RecursicaOverStyled<RecursicaSwitchPropsAlias>;\n\ntype SwitchComponent = React.ForwardRefExoticComponent<\n SwitchProps & React.RefAttributes<HTMLInputElement>\n> & {\n Group: typeof SwitchGroup;\n};\n\nexport const Switch = forwardRef<HTMLInputElement, SwitchProps>(\n function Switch(props, ref) {\n const {\n overStyled = false,\n readOnly,\n readOnlyComponent,\n disabled,\n thumbIcon,\n formLayout,\n labelSize,\n controlMaxWidth,\n controlMinWidth,\n ...rest\n } = props;\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Actively delete dimension bindings that bypass the abstraction\n delete restRecord[\"size\"];\n delete restRecord[\"color\"];\n delete restRecord[\"radius\"];\n delete restRecord[\"variant\"];\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n body: styles.body,\n track: styles.track,\n thumb: styles.thumb,\n trackLabel: styles.trackLabel,\n labelWrapper: styles.labelWrapper,\n label: styles.label,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n mergedClassNames.body = o.body ? `${styles.body} ${o.body}` : styles.body;\n mergedClassNames.track = o.track\n ? `${styles.track} ${o.track}`\n : styles.track;\n mergedClassNames.thumb = o.thumb\n ? `${styles.thumb} ${o.thumb}`\n : styles.thumb;\n mergedClassNames.trackLabel = o.trackLabel\n ? `${styles.trackLabel} ${o.trackLabel}`\n : styles.trackLabel;\n mergedClassNames.labelWrapper = o.labelWrapper\n ? `${styles.labelWrapper} ${o.labelWrapper}`\n : styles.labelWrapper;\n mergedClassNames.label = o.label\n ? `${styles.label} ${o.label}`\n : styles.label;\n }\n\n const classNameProp = restRecord.className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n if (readOnly && !!readOnlyComponent) {\n const isChecked = !!(restRecord.checked ?? restRecord.defaultChecked);\n const ReadOnlyComp = readOnlyComponent;\n const roNode = (\n <ReadOnlyComp\n {...props}\n checked={isChecked}\n label={restRecord.label as React.ReactNode}\n />\n );\n\n if (formLayout) {\n return (\n <FormControlLayout\n formLayout={formLayout}\n labelSize={labelSize}\n controlMaxWidth={controlMaxWidth}\n controlMinWidth={controlMinWidth}\n >\n {roNode}\n </FormControlLayout>\n );\n }\n\n return <>{roNode}</>;\n }\n\n const FinalThumbIcon = (\n <div className={styles.thumbIconWrapper}>\n <CheckIcon className={styles.checkIcon} />\n <CloseIcon className={styles.closeIcon} />\n </div>\n );\n\n // We omit Mantine's sizing/coloring so we rely strictly on variables from Switch.module.css\n const switchNode = (\n <MantineSwitch\n ref={ref}\n className={finalClass}\n classNames={mergedClassNames}\n disabled={readOnly || disabled}\n data-disabled={readOnly || disabled || undefined}\n thumbIcon={thumbIcon ?? FinalThumbIcon}\n {...(sanitizedProps as unknown as MantineSwitchProps)}\n />\n );\n\n if (formLayout) {\n return (\n <FormControlLayout\n formLayout={formLayout}\n labelSize={labelSize}\n controlMaxWidth={controlMaxWidth}\n controlMinWidth={controlMinWidth}\n >\n {switchNode}\n </FormControlLayout>\n );\n }\n\n return switchNode;\n },\n) as SwitchComponent;\n\nSwitch.displayName = \"Switch\";\nSwitch.Group = SwitchGroup;\n","import { forwardRef } from \"react\";\nimport {\n Table as MantineTable,\n type TableProps as MantineTableProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport { type RecursicaTableProps } from \"@recursica/adapter-common\";\nimport styles from \"./Table.module.css\";\n\nexport type TableProps = RecursicaOverStyled<\n MantineTableProps & RecursicaTableProps\n>;\n\nconst TableBase = forwardRef<HTMLTableElement, TableProps>(function Table(\n { overStyled = false, ...rest },\n ref,\n) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n const rootClass = styles.root;\n const finalClass = classNameProp\n ? `${rootClass} ${classNameProp}`\n : rootClass;\n\n return (\n <MantineTable\n ref={ref}\n className={finalClass}\n {...(sanitizedProps as unknown as MantineTableProps)}\n />\n );\n});\n\nTableBase.displayName = \"Table\";\n\ntype TableComponent = typeof TableBase & {\n Thead: typeof MantineTable.Thead;\n Tbody: typeof MantineTable.Tbody;\n Tr: typeof MantineTable.Tr;\n Th: typeof MantineTable.Th;\n Td: typeof MantineTable.Td;\n Tfoot: typeof MantineTable.Tfoot;\n Caption: typeof MantineTable.Caption;\n ScrollContainer: typeof MantineTable.ScrollContainer;\n};\n\nexport const Table = TableBase as TableComponent;\nTable.Thead = MantineTable.Thead;\nTable.Tbody = MantineTable.Tbody;\nTable.Tr = MantineTable.Tr;\nTable.Th = MantineTable.Th;\nTable.Td = MantineTable.Td;\nTable.Tfoot = MantineTable.Tfoot;\nTable.Caption = MantineTable.Caption;\nTable.ScrollContainer = MantineTable.ScrollContainer;\n","import { forwardRef } from \"react\";\nimport {\n Tabs as MantineTabs,\n type TabsProps as MantineTabsProps,\n type TabsListProps as MantineTabsListProps,\n type TabsTabProps as MantineTabsTabProps,\n type TabsPanelProps as MantineTabsPanelProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Tabs.module.css\";\n\nimport { type RecursicaTabsProps } from \"@recursica/adapter-common\";\n\nexport interface RecursicaTabsPropsExtended\n extends Omit<MantineTabsProps, \"variant\">,\n RecursicaTabsProps {}\n\nexport type TabsProps = RecursicaOverStyled<RecursicaTabsPropsExtended>;\n\nconst _Tabs = forwardRef<HTMLDivElement, TabsProps>(function Tabs(props, ref) {\n const {\n variant = \"default\",\n orientation = \"horizontal\",\n overStyled = false,\n className,\n ...rest\n } = props;\n\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n return (\n <MantineTabs\n ref={ref}\n variant={variant}\n orientation={orientation}\n className={`${styles.root} ${className || \"\"}`}\n data-variant={variant}\n data-orientation={orientation}\n classNames={{\n list: styles.list,\n tab: styles.tab,\n panel: styles.panel,\n }}\n {...(sanitizedProps as MantineTabsProps)}\n />\n );\n});\n\n_Tabs.displayName = \"Tabs\";\n\nexport type TabsListProps = RecursicaOverStyled<MantineTabsListProps>;\n\nconst _TabsList = forwardRef<HTMLDivElement, TabsListProps>(\n function TabsList(props, ref) {\n const { overStyled = false, ...rest } = props;\n return (\n <MantineTabs.List\n ref={ref}\n {...(filterStylingProps(rest, overStyled) as MantineTabsListProps)}\n />\n );\n },\n);\n_TabsList.displayName = \"Tabs.List\";\n\nexport type TabsTabProps = RecursicaOverStyled<MantineTabsTabProps>;\n\nconst _TabsTab = forwardRef<HTMLButtonElement, TabsTabProps>(\n function TabsTab(props, ref) {\n const { overStyled = false, ...rest } = props;\n return (\n <MantineTabs.Tab\n ref={ref}\n {...(filterStylingProps(rest, overStyled) as MantineTabsTabProps)}\n />\n );\n },\n);\n_TabsTab.displayName = \"Tabs.Tab\";\n\nexport type TabsPanelProps = RecursicaOverStyled<MantineTabsPanelProps>;\n\nconst _TabsPanel = forwardRef<HTMLDivElement, TabsPanelProps>(\n function TabsPanel(props, ref) {\n const { overStyled = false, ...rest } = props;\n return (\n <MantineTabs.Panel\n ref={ref}\n {...(filterStylingProps(rest, overStyled) as MantineTabsPanelProps)}\n />\n );\n },\n);\n_TabsPanel.displayName = \"Tabs.Panel\";\n\nexport const Tabs: typeof _Tabs & {\n List: typeof _TabsList;\n Tab: typeof _TabsTab;\n Panel: typeof _TabsPanel;\n} = Object.assign(_Tabs, {\n List: _TabsList,\n Tab: _TabsTab,\n Panel: _TabsPanel,\n});\n","import { forwardRef } from \"react\";\nimport {\n Text as MantineText,\n type TextProps as MantineTextProps,\n createPolymorphicComponent,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\n\nimport { type RecursicaTextProps } from \"@recursica/adapter-common\";\n\nexport type TextProps = RecursicaOverStyled<\n Omit<MantineTextProps, \"variant\"> & RecursicaTextProps\n>;\n\nconst _Text = forwardRef<HTMLDivElement, TextProps>(function Text(\n { overStyled = false, variant = \"body\", ...rest },\n ref,\n) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n const typographyClass = `recursica_brand_typography_${variant}`;\n const mergedClassName = classNameProp\n ? `${typographyClass} ${classNameProp}`\n : typographyClass;\n\n return (\n <MantineText\n ref={ref}\n className={mergedClassName}\n {...(sanitizedProps as unknown as MantineTextProps)}\n />\n );\n});\n_Text.displayName = \"Text\";\n\n/**\n * A generalized typographical wrapper limiting text properties to bounded Recursica UI-kit tokens inherently.\n * Do not use for semantic headings; use the explicit `<Title>` component for `<h1>` - `<h6>`.\n *\n * Supports polymorphism via the `component` prop or `renderRoot` for custom element rendering.\n * @example\n * ```tsx\n * <Text component=\"span\">Inline text</Text>\n * <Text component=\"label\" htmlFor=\"input-id\">Label text</Text>\n * ```\n */\nexport const Text = createPolymorphicComponent<\"p\", TextProps>(_Text);\n","import React, { forwardRef } from \"react\";\nimport {\n Textarea as MantineTextarea,\n type TextareaProps as MantineTextareaProps,\n} from \"@mantine/core\";\nimport { type ReadOnlyControlProps } from \"@recursica/adapter-common\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport { type RecursicaFormControlWrapperProps } from \"../FormControlWrapper/FormControlWrapper\";\nimport { WithReadOnlyWrapper } from \"../ReadOnlyField/WithReadOnlyWrapper\";\nimport styles from \"./TextArea.module.css\";\n\nimport { type RecursicaTextAreaProps as BaseRecursicaTextAreaProps } from \"@recursica/adapter-common\";\n\nexport interface RecursicaTextAreaProps\n extends Omit<\n MantineTextareaProps,\n \"size\" | \"variant\" | \"radius\" | \"wrapperProps\"\n >,\n Omit<\n RecursicaFormControlWrapperProps,\n \"controlMaxWidth\" | \"controlMinWidth\"\n >,\n ReadOnlyControlProps,\n BaseRecursicaTextAreaProps {}\n\nexport type TextAreaProps = RecursicaOverStyled<RecursicaTextAreaProps>;\n\nexport const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n function TextArea(props, ref) {\n const {\n overStyled = false,\n formLayout = \"stacked\",\n\n // Label & Wrapper Maps\n labelSize,\n labelAlignment,\n labelOptionalText,\n labelWithEditIcon,\n onLabelEditClick,\n\n label,\n assistiveText,\n assistiveWithIcon,\n error,\n required,\n withAsterisk,\n id,\n className,\n style,\n disabled,\n readOnly,\n readOnlyComponent,\n emptyValueComponent,\n value,\n defaultValue,\n ...rest\n } = props;\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Delete prohibited sizing hooks from bypassing variables natively\n delete restRecord[\"size\"];\n delete restRecord[\"variant\"];\n delete restRecord[\"radius\"];\n\n // Securely map core native blocks down ensuring nested CSS modules map precisely\n const mergedClassNames: Partial<Record<string, string>> = {\n wrapper: styles.root, // The nested Input internal relative wrapper bounding box\n input: styles.input,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.wrapper = o.wrapper\n ? `${styles.root} ${o.wrapper}`\n : styles.root;\n mergedClassNames.input = o.input\n ? `${styles.input} ${o.input}`\n : styles.input;\n }\n\n const wrapperClass = className\n ? `${styles.layoutOverride} ${className}`\n : styles.layoutOverride;\n\n return (\n <WithReadOnlyWrapper\n className={wrapperClass}\n style={style as React.CSSProperties}\n controlMaxWidth=\"var(--recursica_ui-kit_components_textarea_properties_max-width)\"\n controlMinWidth=\"var(--recursica_ui-kit_components_textarea_properties_min-width)\"\n overStyled={overStyled as true}\n formLayout={formLayout}\n labelSize={labelSize}\n labelAlignment={labelAlignment}\n labelOptionalText={labelOptionalText}\n labelWithEditIcon={labelWithEditIcon}\n onLabelEditClick={onLabelEditClick}\n label={label}\n assistiveText={assistiveText}\n assistiveWithIcon={assistiveWithIcon}\n error={error}\n required={required}\n withAsterisk={withAsterisk}\n id={id}\n readOnly={readOnly}\n readOnlyComponent={readOnlyComponent}\n emptyValueComponent={emptyValueComponent}\n readOnlyType=\"text\"\n readOnlyValue={value !== undefined ? value : defaultValue}\n readOnlyNativeProps={props}\n activeComponent={\n /* Naked Input execution safely decoupled from Mantine's macro Input.Wrapper DOM hooks */\n <MantineTextarea\n ref={ref}\n classNames={mergedClassNames}\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n label={undefined}\n description={undefined}\n error={undefined}\n required={undefined}\n withAsterisk={undefined}\n wrapperProps={{\n \"data-disabled\": disabled ? \"true\" : undefined,\n \"data-error\": error ? \"true\" : undefined,\n }}\n {...(sanitizedProps as unknown as MantineTextareaProps)}\n />\n }\n />\n );\n },\n);\n\nTextArea.displayName = \"TextArea\";\n","import React, { forwardRef } from \"react\";\nimport { Input, type InputProps, type InputWrapperProps } from \"@mantine/core\";\nimport { type ReadOnlyControlProps } from \"@recursica/adapter-common\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport { type RecursicaFormControlWrapperProps } from \"../FormControlWrapper/FormControlWrapper\";\nimport { WithReadOnlyWrapper } from \"../ReadOnlyField/WithReadOnlyWrapper\";\nimport styles from \"./TextField.module.css\";\n\nimport { type RecursicaTextFieldProps as BaseRecursicaTextFieldProps } from \"@recursica/adapter-common\";\n\nexport interface RecursicaTextFieldProps\n extends Omit<InputProps, \"size\" | \"variant\" | \"radius\" | \"wrapperProps\">,\n Pick<\n InputWrapperProps,\n \"label\" | \"error\" | \"required\" | \"withAsterisk\" | \"id\"\n >,\n Omit<\n React.ComponentPropsWithoutRef<\"input\">,\n \"size\" | \"style\" | \"className\" | \"id\"\n >,\n Omit<\n RecursicaFormControlWrapperProps,\n \"controlMaxWidth\" | \"controlMinWidth\"\n >,\n ReadOnlyControlProps,\n BaseRecursicaTextFieldProps {}\n\nexport type TextFieldProps = RecursicaOverStyled<RecursicaTextFieldProps>;\n\nexport const TextField = forwardRef<HTMLInputElement, TextFieldProps>(\n function TextField(props, ref) {\n const {\n overStyled = false,\n formLayout = \"stacked\",\n\n // Label & Wrapper Maps\n labelSize,\n labelAlignment,\n labelOptionalText,\n labelWithEditIcon,\n onLabelEditClick,\n\n label,\n assistiveText,\n assistiveWithIcon,\n error,\n required,\n withAsterisk,\n id,\n className,\n style,\n disabled,\n readOnly,\n readOnlyComponent,\n emptyValueComponent,\n value,\n defaultValue,\n ...rest\n } = props;\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Delete prohibited sizing hooks from bypassing variables natively\n delete restRecord[\"size\"];\n delete restRecord[\"variant\"];\n delete restRecord[\"radius\"];\n\n // Securely map core native blocks down ensuring nested CSS modules map precisely\n const mergedClassNames: Partial<Record<string, string>> = {\n wrapper: styles.root, // The nested Input internal relative wrapper bounding box\n input: styles.input,\n section: styles.section,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.wrapper = o.wrapper\n ? `${styles.root} ${o.wrapper}`\n : styles.root;\n mergedClassNames.input = o.input\n ? `${styles.input} ${o.input}`\n : styles.input;\n mergedClassNames.section = o.section\n ? `${styles.section} ${o.section}`\n : styles.section;\n }\n\n const wrapperClass = className\n ? `${styles.layoutOverride} ${className}`\n : styles.layoutOverride;\n\n return (\n <WithReadOnlyWrapper\n className={wrapperClass}\n style={style as React.CSSProperties}\n controlMaxWidth=\"var(--recursica_ui-kit_components_text-field_properties_max-width)\"\n controlMinWidth=\"var(--recursica_ui-kit_components_text-field_properties_min-width)\"\n overStyled={overStyled as true}\n formLayout={formLayout}\n labelSize={labelSize}\n labelAlignment={labelAlignment}\n labelOptionalText={labelOptionalText}\n labelWithEditIcon={labelWithEditIcon}\n onLabelEditClick={onLabelEditClick}\n label={label}\n assistiveText={assistiveText}\n assistiveWithIcon={assistiveWithIcon}\n error={error}\n required={required}\n withAsterisk={withAsterisk}\n id={id}\n readOnly={readOnly}\n readOnlyComponent={readOnlyComponent}\n emptyValueComponent={emptyValueComponent}\n readOnlyType=\"text\"\n readOnlyValue={value !== undefined ? value : defaultValue}\n readOnlyNativeProps={props}\n activeComponent={\n /* Naked Input execution safely decoupled from Mantine's macro Input.Wrapper DOM hooks */\n <Input\n ref={ref}\n classNames={mergedClassNames}\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n wrapperProps={{\n \"data-disabled\": disabled ? \"true\" : undefined,\n \"data-error\": error ? \"true\" : undefined,\n }}\n {...(sanitizedProps as unknown as InputProps)}\n />\n }\n />\n );\n },\n);\n\nTextField.displayName = \"TextField\";\n","import React from \"react\";\nimport { type RecursicaTimePickerProps } from \"@recursica/adapter-common\";\n\nexport type TimePickerProps = React.HTMLAttributes<HTMLDivElement> &\n RecursicaTimePickerProps;\n\nexport const TimePicker: React.FC<TimePickerProps> = (props) => {\n return <div {...props}>TimePicker</div>;\n};\n","import React from \"react\";\nimport {\n TimelineItem as MantineTimelineItem,\n type TimelineItemProps as MantineTimelineItemProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Timeline.module.css\";\n\nimport { type RecursicaTimelineItemProps } from \"@recursica/adapter-common\";\n\nexport type TimelineItemProps = RecursicaOverStyled<\n Omit<MantineTimelineItemProps, \"radius\" | \"color\" | \"lineVariant\"> &\n RecursicaTimelineItemProps\n>;\n\n/**\n * The individual item component for the Timeline.\n *\n * **Recursica Abstract:**\n * The `Timeline.Item` has been extended to support a `timestamp` string natively,\n * rendering it below the body content. It also accepts a `bulletVariant` to morph\n * the structural dimensions of the node circle automatically.\n */\nexport const TimelineItem = React.forwardRef<HTMLDivElement, TimelineItemProps>(\n function TimelineItem(\n {\n overStyled = false,\n timestamp,\n bulletVariant = \"default\",\n children,\n ...rest\n },\n ref,\n ) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n const mergedClassNames: Partial<Record<string, string>> = {\n item: styles.item,\n itemBody: styles.itemBody,\n itemContent: styles.itemContent,\n itemBullet: styles.itemBullet,\n itemTitle: styles.itemTitle,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>)\n .classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Record<string, string>;\n Object.keys(o).forEach((key) => {\n if (mergedClassNames[key]) {\n mergedClassNames[key] = `${mergedClassNames[key]} ${o[key]}`;\n } else {\n mergedClassNames[key] = o[key];\n }\n });\n }\n\n // Embed timestamp inside children if provided, wrapped in a specific class\n const content = timestamp ? (\n <>\n {children && <div className={styles.description}>{children}</div>}\n <div className={styles.timestamp}>{timestamp}</div>\n </>\n ) : (\n children\n );\n\n return (\n <MantineTimelineItem\n ref={ref}\n classNames={mergedClassNames}\n data-variant={bulletVariant}\n {...(sanitizedProps as unknown as Omit<\n MantineTimelineItemProps,\n \"radius\" | \"color\" | \"lineVariant\"\n >)}\n >\n {content}\n </MantineTimelineItem>\n );\n },\n);\n\nTimelineItem.displayName = \"TimelineItem\";\n","import React from \"react\";\nimport {\n Timeline as MantineTimeline,\n type TimelineProps as MantineTimelineProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Timeline.module.css\";\nimport { TimelineItem } from \"./TimelineItem\";\n\nimport { type RecursicaTimelineProps } from \"@recursica/adapter-common\";\n\n/**\n * Properties for the strictly-tokenized Timeline component.\n * Native Mantine abstract properties like `color`, `radius`, `bulletSize`, and `lineWidth`\n * have been stripped out to strictly enforce the structural mappings of the Recursica UI Kit.\n */\nexport type TimelineProps = RecursicaOverStyled<\n Omit<MantineTimelineProps, \"color\" | \"radius\" | \"bulletSize\" | \"lineWidth\"> &\n RecursicaTimelineProps\n>;\n\ninterface TimelineComponent\n extends React.ForwardRefExoticComponent<\n TimelineProps & React.RefAttributes<HTMLDivElement>\n > {\n Item: typeof TimelineItem;\n}\n\n/**\n * The `Timeline` component displays a list of events in chronological order.\n *\n * **Recursica Abstract:**\n * This component acts as a structural wrapper around Mantine's `<Timeline>`.\n * It forces alignment and geometry strictly via the UI Kit's `.itemBullet` and connector definitions.\n *\n * @example\n * ```tsx\n * <Timeline active={1}>\n * <Timeline.Item title=\"Event 1\" timestamp=\"Yesterday\">Description</Timeline.Item>\n * </Timeline>\n * ```\n */\nconst TimelineInner = React.forwardRef<HTMLDivElement, TimelineProps>(\n function Timeline({ overStyled = false, ...rest }, ref) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>)\n .classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Record<string, string>;\n Object.keys(o).forEach((key) => {\n if (mergedClassNames[key]) {\n mergedClassNames[key] = `${mergedClassNames[key]} ${o[key]}`;\n } else {\n mergedClassNames[key] = o[key];\n }\n });\n }\n\n return (\n <MantineTimeline\n ref={ref}\n classNames={mergedClassNames}\n {...(sanitizedProps as unknown as Omit<\n MantineTimelineProps,\n \"color\" | \"radius\" | \"bulletSize\" | \"lineWidth\"\n >)}\n />\n );\n },\n);\n\nTimelineInner.displayName = \"Timeline\";\n\nexport const Timeline = TimelineInner as TimelineComponent;\nTimeline.Item = TimelineItem;\n","import { forwardRef } from \"react\";\nimport {\n Title as MantineTitle,\n type TitleProps as MantineTitleProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\n\nimport { type RecursicaTitleProps } from \"@recursica/adapter-common\";\n\nexport type TitleProps = RecursicaOverStyled<\n Omit<MantineTitleProps, \"size\"> & RecursicaTitleProps\n>;\n\n/**\n * Enforces highly accessible structural markup utilizing semantic `<h1>` through `<h6>` tags securely bound directly to Recursica typographic scales.\n */\nexport const Title = forwardRef<HTMLHeadingElement, TitleProps>(function Title(\n { overStyled = false, order = 1, ...rest },\n ref,\n) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n const typographyClass = `recursica_brand_typography_h${order}`;\n const mergedClassName = classNameProp\n ? `${typographyClass} ${classNameProp}`\n : typographyClass;\n\n return (\n <MantineTitle\n ref={ref}\n order={order}\n className={mergedClassName}\n {...(sanitizedProps as unknown as MantineTitleProps)}\n />\n );\n});\nTitle.displayName = \"Title\";\n","import React from \"react\";\nimport {\n Notification as MantineNotification,\n type NotificationProps as MantineNotificationProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Toast.module.css\";\n\nimport { type RecursicaToastProps } from \"@recursica/adapter-common\";\n\n/**\n * Toast component wrapping Mantine's Notification.\n *\n * Can be used as a standalone visual component to display a notification or message.\n */\nexport type ToastProps = RecursicaOverStyled<\n Omit<MantineNotificationProps, \"color\" | \"radius\" | \"variant\" | \"loading\"> &\n RecursicaToastProps\n>;\n\nexport const Toast = React.forwardRef<HTMLDivElement, ToastProps>(\n function Toast(\n {\n overStyled = false,\n variant = \"default\",\n withCloseButton = true,\n ...rest\n },\n ref,\n ) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n // Bind CSS module classes to Mantine's internal classNames API\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n body: styles.body,\n title: styles.title,\n description: styles.description,\n closeButton: styles.closeButton,\n icon: styles.icon,\n loader: styles.loader,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>)\n .classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Record<string, string>;\n Object.keys(o).forEach((key) => {\n if (mergedClassNames[key]) {\n mergedClassNames[key] = `${mergedClassNames[key]} ${o[key]}`;\n } else {\n mergedClassNames[key] = o[key];\n }\n });\n }\n\n return (\n <MantineNotification\n ref={ref}\n withCloseButton={withCloseButton}\n withBorder={false} // Border is handled via CSS or tokens if needed\n data-variant={variant}\n classNames={mergedClassNames}\n loading={false}\n {...(sanitizedProps as unknown as Omit<\n MantineNotificationProps,\n \"color\" | \"radius\" | \"variant\" | \"loading\"\n >)}\n />\n );\n },\n);\n\nToast.displayName = \"Toast\";\n","import {\n Tooltip as MantineTooltip,\n type TooltipProps as MantineTooltipProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Tooltip.module.css\";\n\n// ============================================================\n// TOOLTIP\n// ============================================================\n\n/**\n * Recursica-specific props for Tooltip.\n */\nimport { type RecursicaTooltipProps } from \"@recursica/adapter-common\";\n\n/**\n * Recursica Tooltip component wrapping Mantine's Tooltip.\n *\n * Displays a floating label when the user hovers over or focuses a target element.\n * Unlike HoverCard, Tooltip is a single component (not composable) — content is\n * passed via the `label` prop, and the trigger is passed as `children`.\n *\n * ```tsx\n * <Tooltip label=\"Helpful information\" withBeak>\n * <Button>Hover me</Button>\n * </Tooltip>\n * ```\n *\n * Static sub-components available via dot-notation:\n * - `Tooltip.Floating` — Tooltip that follows the cursor\n * - `Tooltip.Group` — Shared hover delay group for multiple tooltips\n */\nexport type TooltipProps = RecursicaOverStyled<\n MantineTooltipProps & RecursicaTooltipProps\n>;\n\nconst TooltipBase = function Tooltip({\n overStyled = false,\n withBeak = true,\n ...rest\n}: TooltipProps) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n // Bind CSS module classes to Mantine's internal classNames API\n const mergedClassNames: Partial<Record<string, string>> = {\n tooltip: styles.tooltip,\n arrow: styles.arrow,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>).classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Record<string, string>;\n Object.keys(o).forEach((key) => {\n if (mergedClassNames[key]) {\n mergedClassNames[key] = `${mergedClassNames[key]} ${o[key]}`;\n } else {\n mergedClassNames[key] = o[key];\n }\n });\n }\n\n // arrowSize must be a JS number prop — Mantine uses it for inline width/height\n // and positioning offset (-arrowSize/2) calculations that cannot be CSS-driven.\n // Default to 16 to match the Recursica beak-size token (16px).\n const arrowSize =\n ((sanitizedProps as Record<string, unknown>).arrowSize as\n | number\n | undefined) ?? 16;\n\n // Resolve withBeak (Recursica) vs withArrow (Mantine).\n // withBeak takes precedence when both are provided.\n const withArrow = (sanitizedProps as Record<string, unknown>).withArrow as\n | boolean\n | undefined;\n const resolvedWithArrow = withBeak ?? withArrow;\n\n return (\n <MantineTooltip\n position=\"top\" /* Recursica default; Mantine defaults to \"bottom\" */\n multiline /* Always allow text wrapping within max-width */\n arrowSize={arrowSize}\n withArrow={resolvedWithArrow}\n classNames={mergedClassNames}\n {...(sanitizedProps as unknown as MantineTooltipProps)}\n />\n );\n};\nTooltipBase.displayName = \"Tooltip\";\n\n// ============================================================\n// DOT NOTATION EXPORT\n// ============================================================\n\ntype TooltipComponent = typeof TooltipBase & {\n Floating: typeof MantineTooltip.Floating;\n Group: typeof MantineTooltip.Group;\n};\n\nexport const Tooltip = TooltipBase as TooltipComponent;\nTooltip.Floating = MantineTooltip.Floating;\nTooltip.Group = MantineTooltip.Group;\n","import React from \"react\";\nimport { type RecursicaTransferListProps } from \"@recursica/adapter-common\";\n\nexport type TransferListProps = React.HTMLAttributes<HTMLDivElement> &\n RecursicaTransferListProps;\n\nexport const TransferList: React.FC<TransferListProps> = (props) => {\n return <div {...props}>TransferList</div>;\n};\n","import \"@recursica/adapter-common/style.css\";\nimport * as rawComponents from \"./components\";\nimport { wrapComponent } from \"@recursica/adapter-common\";\n\nexport * from \"@recursica/adapter-common\";\n\n// Expose unwrapped structural layout primitives to preserve their polymorphic types\nexport const Flex = rawComponents.Flex;\nexport const Group = rawComponents.Group;\nexport const Stack = rawComponents.Stack;\nexport const Container = rawComponents.Container;\nexport const Link = rawComponents.Link;\nexport const Text = rawComponents.Text;\n\n// Statically wrap and export components to inject overStyled visual highlight in dev mode\nexport const Accordion = wrapComponent(\n rawComponents.Accordion,\n) as typeof rawComponents.Accordion;\nexport const AccordionItem = wrapComponent(\n rawComponents.AccordionItem,\n) as typeof rawComponents.AccordionItem;\nexport const AccordionControl = wrapComponent(\n rawComponents.AccordionControl,\n) as typeof rawComponents.AccordionControl;\nexport const AccordionPanel = wrapComponent(\n rawComponents.AccordionPanel,\n) as typeof rawComponents.AccordionPanel;\nexport const AutoComplete = wrapComponent(\n rawComponents.AutoComplete,\n) as typeof rawComponents.AutoComplete;\nexport const Avatar = wrapComponent(\n rawComponents.Avatar,\n) as typeof rawComponents.Avatar;\nexport const Badge = wrapComponent(\n rawComponents.Badge,\n) as typeof rawComponents.Badge;\nexport const Breadcrumb = wrapComponent(\n rawComponents.Breadcrumb,\n) as typeof rawComponents.Breadcrumb;\nexport const Button = wrapComponent(\n rawComponents.Button,\n) as typeof rawComponents.Button;\nexport const Card = wrapComponent(\n rawComponents.Card,\n) as typeof rawComponents.Card;\nexport const Checkbox = wrapComponent(\n rawComponents.Checkbox,\n) as typeof rawComponents.Checkbox;\nexport const CheckboxGroup = wrapComponent(\n rawComponents.CheckboxGroup,\n) as typeof rawComponents.CheckboxGroup;\nexport const Chip = wrapComponent(\n rawComponents.Chip,\n) as typeof rawComponents.Chip;\nexport const DatePicker = wrapComponent(\n rawComponents.DatePicker,\n) as typeof rawComponents.DatePicker;\nexport const Dropdown = wrapComponent(\n rawComponents.Dropdown,\n) as typeof rawComponents.Dropdown;\nexport const FileInput = wrapComponent(\n rawComponents.FileInput,\n) as typeof rawComponents.FileInput;\nexport const FileUpload = wrapComponent(\n rawComponents.FileUpload,\n) as typeof rawComponents.FileUpload;\nexport const FormControlLayout = wrapComponent(\n rawComponents.FormControlLayout,\n) as typeof rawComponents.FormControlLayout;\nexport const HoverCard = wrapComponent(\n rawComponents.HoverCard,\n) as typeof rawComponents.HoverCard;\nexport const Loader = wrapComponent(\n rawComponents.Loader,\n) as typeof rawComponents.Loader;\nexport const Label = wrapComponent(\n rawComponents.Label,\n) as typeof rawComponents.Label;\nexport const Menu = wrapComponent(\n rawComponents.Menu,\n) as typeof rawComponents.Menu;\nexport const Modal = wrapComponent(\n rawComponents.Modal,\n) as typeof rawComponents.Modal;\nexport const NumberInput = wrapComponent(\n rawComponents.NumberInput,\n) as typeof rawComponents.NumberInput;\nexport const Pagination = wrapComponent(\n rawComponents.Pagination,\n) as typeof rawComponents.Pagination;\nexport const Panel = wrapComponent(\n rawComponents.Panel,\n) as typeof rawComponents.Panel;\nexport const PanelFooter = wrapComponent(\n rawComponents.PanelFooter,\n) as typeof rawComponents.PanelFooter;\nexport const Popover = wrapComponent(\n rawComponents.Popover,\n) as typeof rawComponents.Popover;\nexport const Radio = wrapComponent(\n rawComponents.Radio,\n) as typeof rawComponents.Radio;\nexport const RadioGroup = wrapComponent(\n rawComponents.RadioGroup,\n) as typeof rawComponents.RadioGroup;\nexport const ReadOnlyField = wrapComponent(\n rawComponents.ReadOnlyField,\n) as typeof rawComponents.ReadOnlyField;\nexport const SegmentedControl = wrapComponent(\n rawComponents.SegmentedControl,\n) as typeof rawComponents.SegmentedControl;\nexport const Slider = wrapComponent(\n rawComponents.Slider,\n) as typeof rawComponents.Slider;\nexport const Stepper = wrapComponent(\n rawComponents.Stepper,\n) as typeof rawComponents.Stepper;\nexport const Switch = wrapComponent(\n rawComponents.Switch,\n) as typeof rawComponents.Switch;\nexport const SwitchGroup = wrapComponent(\n rawComponents.SwitchGroup,\n) as typeof rawComponents.SwitchGroup;\nexport const Table = wrapComponent(\n rawComponents.Table,\n) as typeof rawComponents.Table;\nexport const Tabs = wrapComponent(\n rawComponents.Tabs,\n) as typeof rawComponents.Tabs;\nexport const TextArea = wrapComponent(\n rawComponents.TextArea,\n) as typeof rawComponents.TextArea;\nexport const TextField = wrapComponent(\n rawComponents.TextField,\n) as typeof rawComponents.TextField;\nexport const TimePicker = wrapComponent(\n rawComponents.TimePicker,\n) as typeof rawComponents.TimePicker;\nexport const Timeline = wrapComponent(\n rawComponents.Timeline,\n) as typeof rawComponents.Timeline;\nexport const TimelineItem = wrapComponent(\n rawComponents.TimelineItem,\n) as typeof rawComponents.TimelineItem;\nexport const Title = wrapComponent(\n rawComponents.Title,\n) as typeof rawComponents.Title;\nexport const Toast = wrapComponent(\n rawComponents.Toast,\n) as typeof rawComponents.Toast;\nexport const Tooltip = wrapComponent(\n rawComponents.Tooltip,\n) as typeof rawComponents.Tooltip;\nexport const TransferList = wrapComponent(\n rawComponents.TransferList,\n) as typeof rawComponents.TransferList;\n\nexport type {\n RecursicaCheckboxGroupProps,\n RecursicaDatePickerProps,\n RecursicaDropdownProps,\n RecursicaNumberInputProps,\n RecursicaRadioGroupProps,\n RecursicaReadOnlyFieldProps,\n RecursicaReadOnlyTextFieldProps,\n RecursicaSliderProps,\n RecursicaSwitchGroupProps,\n RecursicaTextAreaProps,\n RecursicaTextFieldProps,\n} from \"./components\";\n"],"names":["BLOCKED_STYLING_KEYS","LAYOUT_PROPS","SPACING_MAP","mapLayoutProps","props","mapped","key","value","filterStylingProps","overStyled","sanitized","prop","AccordionBase","variant","rest","sanitizedProps","mergedClassNames","styles","classNamesProp","o","classNameProp","jsx","MantineAccordion","AccordionItem","forwardRef","title","leftIcon","divider","children","ref","finalClass","jsxs","Fragment","AccordionControl","AccordionPanel","Accordion","Label","labelSize","labelAlignment","required","labelOptionalText","labelWithEditIcon","labelActionArea","onLabelEditClick","resolvedAlignment","resolvedOptionalText","restRecord","Input","FormControlLayout","formLayout","controlMaxWidth","controlMinWidth","leftSection","className","style","rootClass","shouldRenderLeft","InfoIcon","AlertIcon","AssistiveElement","assistiveVariant","assistiveWithIcon","IconComponent","FormControlWrapper","label","description","assistiveText","error","withAsterisk","userProvidedId","labelElement","generatedId","useId","id","resolvedAssistive","assistiveId","errorId","content","React","labelNode","R","T","a","g","S","t","r","d","n","s","v","w","l","m","e","u","A","i","_documentCurrentScript","p","c","I","P","b","C","y","E","h","f","V","_","x","L","U","ReadOnlyTextField","Box","ReadOnlyField","type","emptyValueComponent","Renderer","EmptyValueRenderer","displayValue","wrapperClass","WithReadOnlyWrapper","readOnly","readOnlyComponent","readOnlyType","readOnlyValue","readOnlyNativeProps","activeComponent","wrapperProps","ReadOnlyComponent","AutoComplete","disabled","defaultValue","MantineAutocomplete","_Avatar","size","icon","src","mapVariant","mapSize","computedStyle","MantineAvatar","Avatar","createPolymorphicComponent","_Badge","MantineBadge","Badge","Breadcrumb","separator","MantineBreadcrumbs","Loader","resolvedSize","MantineLoader","hasVisibleChildren","_Button","loaderVariant","loaderSize","useRecursicaLoader","hasLeftSection","hasRightSection","hasVisibleText","isIconOnly","contentType","userLoaderProps","resolvedLoaderSize","mergedLoaderProps","MantineButton","Button","CardBase","MantineCard","CardSection","CardHeader","CardFooter","CardContent","PolymorphicCard","_card","Card","CheckboxGroup","MantineCheckbox","Checkbox","isChecked","ReadOnlyComp","roNode","checkboxNode","CloseIcon","Chip","onRemove","removeLabel","dataError","isInteractive","MantineChip","Container","MantineContainer","DatePicker","DatePickerInput","Dropdown","containerWidth","data","injectedStyles","MantineSelect","FileInput","FileUpload","_Flex","gap","rowGap","columnGap","MantineFlex","Flex","Group","MantineGroup","HoverCardBase","withBeak","arrowSize","withArrow","resolvedWithArrow","MantineHoverCard","HoverCardTarget","HoverCardDropdown","HoverCard","_Link","MantineAnchor","Link","MenuBase","MantineMenu","MenuTarget","MenuDropdown","_MenuItem","MenuItem","MenuDivider","MenuLabel","MenuSubBase","MenuSubTarget","_MenuSubItem","MenuSubItem","MenuSubDropdown","MenuSub","Menu","ModalInner","withCloseButton","overlayProps","withOverlay","closeButtonProps","MantineModal","ModalBody","ModalFooter","onScroll","internalRef","scrolledTop","setScrolledTop","scrolledBottom","setScrolledBottom","checkScroll","scrollTop","scrollHeight","clientHeight","handleScroll","footer","bodyChildren","child","_a","node","Modal","NumberInput","hideControls","MantineNumberInput","NextPath","PrevPath","FirstPath","LastPath","paths","PaginationIcon","NextWithLabel","PrevWithLabel","FirstWithLabel","LastWithLabel","usePaginationClassNames","_PaginationRoot","stylingParams","MantinePagination","_PaginationNext","withLabel","renderIcon","_PaginationPrevious","_PaginationFirst","_PaginationLast","_Pagination","getControlProps","withLabels","mergedGetControlProps","control","baseProps","labelsIcons","Pagination","PanelBase","placement","keepMounted","wrapHeaderText","MantineDrawer","PanelFooter","finalClassName","Panel","PopoverBase","MantinePopover","PopoverTarget","PopoverDropdown","Popover","RadioGroup","MantineRadio","RadioIcon","Radio","radioNode","useSegmentedControlClassNames","_SegmentedControl","orientation","fullWidth","MantineSegmentedControl","SegmentedControl","SliderReadOnlyValue","Slider","tooltipLabel","showInput","showMinMaxLabels","min","max","step","onChange","onChangeEnd","internalValue","setInternalValue","useState","resolvedValue","inputValue","setInputValue","useEffect","handleValueChange","val","handleInputChange","valStr","parsed","clamped","handleInputBlur","leadingIcon","MantineSlider","_Stack","MantineStack","Stack","_Stepper","MantineStepper","Stepper","SwitchGroup","MantineSwitch","Switch","thumbIcon","FinalThumbIcon","CheckIcon","switchNode","TableBase","MantineTable","Table","_Tabs","MantineTabs","_TabsList","_TabsTab","_TabsPanel","Tabs","_Text","typographyClass","mergedClassName","MantineText","Text","TextArea","MantineTextarea","TextField","TimePicker","TimelineItem","timestamp","bulletVariant","MantineTimelineItem","TimelineInner","MantineTimeline","Timeline","Title","order","MantineTitle","Toast","MantineNotification","TooltipBase","MantineTooltip","Tooltip","TransferList","rawComponents.Flex","rawComponents.Group","rawComponents.Stack","rawComponents.Container","rawComponents.Link","rawComponents.Text","wrapComponent","rawComponents.Accordion","rawComponents.AccordionItem","rawComponents.AccordionControl","rawComponents.AccordionPanel","rawComponents.AutoComplete","rawComponents.Avatar","rawComponents.Badge","rawComponents.Breadcrumb","rawComponents.Button","rawComponents.Card","rawComponents.Checkbox","rawComponents.CheckboxGroup","rawComponents.Chip","rawComponents.DatePicker","rawComponents.Dropdown","rawComponents.FileInput","rawComponents.FileUpload","rawComponents.FormControlLayout","rawComponents.HoverCard","rawComponents.Loader","rawComponents.Label","rawComponents.Menu","rawComponents.Modal","rawComponents.NumberInput","rawComponents.Pagination","rawComponents.Panel","rawComponents.PanelFooter","rawComponents.Popover","rawComponents.Radio","rawComponents.RadioGroup","rawComponents.ReadOnlyField","rawComponents.SegmentedControl","rawComponents.Slider","rawComponents.Stepper","rawComponents.Switch","rawComponents.SwitchGroup","rawComponents.Table","rawComponents.Tabs","rawComponents.TextArea","rawComponents.TextField","rawComponents.TimePicker","rawComponents.Timeline","rawComponents.TimelineItem","rawComponents.Title","rawComponents.Toast","rawComponents.Tooltip","rawComponents.TransferList"],"mappings":"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iBV,CAAG,EAAIa,EAAEb,CAAG,CAEjC,CAAC,CACH,CAKA,MAAMgN,EACFvM,EAA2C,WAE3B,GAIdwM,EAAaxM,EAA2C,UAGxDyM,EAAoBH,GAAYE,EAEtC,OACElM,EAAAA,IAACgX,EAAAA,QAAA,CACC,SAAS,MACT,UAAS,GACT,UAAA/K,EACA,UAAWE,EACX,WAAYxM,EACX,GAAID,CAAA,CAAA,CAGX,EACAqX,GAAY,YAAc,UAWnB,MAAME,GAAUF,GACvBE,GAAQ,SAAWD,EAAAA,QAAe,SAClCC,GAAQ,MAAQD,EAAAA,QAAe,MCtGxB,MAAME,GAA6CnY,GACjDiB,EAAAA,IAAC,MAAA,CAAK,GAAGjB,EAAO,SAAA,eAAY,ECAxB6M,GAAOuL,GACPtL,GAAQuL,GACR9C,GAAQ+C,GACRzM,GAAY0M,GACZ5K,GAAO6K,GACPzB,GAAO0B,GAGP1W,GAAY2W,EACvBC,EACF,EACaxX,GAAgBuX,EAC3BE,EACF,EACa/W,GAAmB6W,EAC9BG,EACF,EACa/W,GAAiB4W,EAC5BI,EACF,EACa9Q,GAAe0Q,EAC1BK,EACF,EACanQ,GAAS8P,EACpBM,EACF,EACahQ,GAAQ0P,EACnBO,EACF,EACahQ,GAAayP,EACxBQ,EACF,EACa7O,GAASqO,EACpBS,EACF,EACarO,GAAO4N,EAClBU,EACF,EACanO,GAAWyN,EACtBW,EACF,EACatO,GAAgB2N,EAC3BY,EACF,EACa/N,GAAOmN,EAClBa,EACF,EACaxN,GAAa2M,EACxBc,EACF,EACavN,GAAWyM,EACtBe,EACF,EACanN,GAAYoM,EACvBgB,EACF,EACanN,GAAamM,EACxBiB,EACF,EACa/W,GAAoB8V,EAC/BkB,EACF,EACapM,GAAYkL,EACvBmB,EACF,EACazQ,GAASsP,EACpBoB,EACF,EACa9X,GAAQ0W,EACnBqB,EACF,EACarL,GAAOgK,EAClBsB,EACF,EACa7J,GAAQuI,EACnBuB,EACF,EACa7J,GAAcsI,EACzBwB,EACF,EACahI,GAAawG,EACxByB,EACF,EACazH,GAAQgG,EACnB0B,EACF,EACa5H,GAAckG,EACzB2B,EACF,EACatH,GAAU2F,EACrB4B,EACF,EACanH,GAAQuF,EACnB6B,EACF,EACavH,GAAa0F,EACxB8B,EACF,EACaxT,GAAgB0R,EAC3B+B,EACF,EACa/G,GAAmBgF,EAC9BgC,EACF,EACa9G,GAAS8E,EACpBiC,EACF,EACajF,GAAUgD,EACrBkC,EACF,EACa/E,GAAS6C,EACpBmC,EACF,EACalF,GAAc+C,EACzBoC,EACF,EACa1E,GAAQsC,EACnBqC,EACF,EACarE,GAAOgC,EAClBsC,EACF,EACahE,GAAW0B,EACtBuC,EACF,EACa/D,GAAYwB,EACvBwC,EACF,EACa/D,GAAauB,EACxByC,EACF,EACazD,GAAWgB,EACtB0C,EACF,EACahE,GAAesB,EAC1B2C,EACF,EACa1D,GAAQe,EACnB4C,EACF,EACaxD,GAAQY,EACnB6C,EACF,EACarD,GAAUQ,EACrB8C,EACF,EACarD,GAAeO,EAC1B+C,EACF"}
|
|
1
|
+
{"version":3,"file":"mantine-adapter.cjs","sources":["../src/utils/filterStylingProps.ts","../src/components/Accordion/Accordion.tsx","../src/components/Label/Label.tsx","../src/components/FormControlLayout/FormControlLayout.tsx","../src/components/AssistiveElement/AssistiveElement.tsx","../src/components/FormControlWrapper/FormControlWrapper.tsx","../../adapter-common/dist/adapter-common.js","../src/components/ReadOnlyField/ReadOnlyTextField.tsx","../src/components/ReadOnlyField/ReadOnlyField.tsx","../src/components/ReadOnlyField/WithReadOnlyWrapper.tsx","../src/components/AutoComplete/AutoComplete.tsx","../src/components/Avatar/Avatar.tsx","../src/components/Badge/Badge.tsx","../src/components/Breadcrumb/Breadcrumb.tsx","../src/components/Loader/Loader.tsx","../src/components/Button/Button.tsx","../src/components/Card/Card.tsx","../src/components/Checkbox/CheckboxGroup.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/Chip/Chip.tsx","../src/components/Container/Container.tsx","../src/components/DatePicker/DatePicker.tsx","../src/components/Dropdown/Dropdown.tsx","../src/components/FileInput/FileInput.tsx","../src/components/FileUpload/FileUpload.tsx","../src/components/Flex/Flex.tsx","../src/components/Group/Group.tsx","../src/components/HoverCard/HoverCard.tsx","../src/components/Link/Link.tsx","../src/components/Menu/Menu.tsx","../src/components/Modal/Modal.tsx","../src/components/NumberInput/NumberInput.tsx","../src/components/Pagination/Pagination.icons.tsx","../src/components/Pagination/Pagination.tsx","../src/components/Panel/Panel.tsx","../src/components/Popover/Popover.tsx","../src/components/Radio/RadioGroup.tsx","../src/components/Radio/Radio.tsx","../src/components/SegmentedControl/SegmentedControl.tsx","../src/components/Slider/Slider.tsx","../src/components/Stack/Stack.tsx","../src/components/Stepper/Stepper.tsx","../src/components/Switch/SwitchGroup.tsx","../src/components/Switch/Switch.tsx","../src/components/Table/Table.tsx","../src/components/Tabs/Tabs.tsx","../src/components/Text/Text.tsx","../src/components/TextArea/TextArea.tsx","../src/components/TextField/TextField.tsx","../src/components/TimePicker/TimePicker.tsx","../src/components/Timeline/TimelineItem.tsx","../src/components/Timeline/Timeline.tsx","../src/components/Title/Title.tsx","../src/components/Toast/Toast.tsx","../src/components/Tooltip/Tooltip.tsx","../src/components/TransferList/TransferList.tsx","../src/components/Tree/Tree.tsx","../src/index.ts"],"sourcesContent":["/**\n * filterStylingProps\n *\n * This utility acts as the central gatekeeper for strict design-system adherence across\n * all Recursica components mapped over Mantine.\n *\n * PHILOSOPHY:\n * Recursica components are designed to be explicitly sandboxed tokens. Allowing external\n * `className` or Mantine style system props (`bg`, `p`, etc.) breaks the design system by\n * allowing developers to leak arbitrary designs into components.\n *\n * By default (`overStyled=false`), this utility actively prevents developers from overriding\n * internal component styles (such as background, colors, typography, or internal classNames).\n * It safely *permits* external layout overrides (like `margin` / `m`) so that components can\n * easily be spaced alongside other DOM elements.\n *\n * If a developer passes `overStyled={true}`, this filter allows all styling properties to\n * flow through to the underlying Mantine component natively, at the developer's own risk.\n *\n * @param props - The raw component props passed down to the wrapper\n * @param overStyled - Boolean toggle to allow raw external styling. Defaults to false.\n * @returns Sanitized component props safe for internal styling merging\n */\n\nexport const BLOCKED_STYLING_KEYS = [\n \"className\",\n \"classNames\",\n \"style\",\n \"styles\",\n \"vars\", // Internal structure hooks\n \"p\",\n \"px\",\n \"py\",\n \"pt\",\n \"pb\",\n \"pl\",\n \"pr\", // Padding\n \"bg\",\n \"c\",\n \"opacity\", // Color\n \"ff\",\n \"fz\",\n \"fw\",\n \"lts\",\n \"ta\",\n \"lh\",\n \"fs\",\n \"tt\",\n \"td\", // Typography\n \"bd\",\n \"bdw\",\n \"bds\",\n \"bdc\",\n \"bdr\", // Borders\n \"shadow\", // Effects\n \"w\",\n \"miw\",\n \"maw\",\n \"h\",\n \"mih\",\n \"mah\", // Dimensions\n] as const;\nexport {\n type RecursicaSpacing,\n type RecursicaSize,\n type RecursicaOverStyled,\n type BlockedStylingKeys,\n type ForbiddenStyles,\n type WithRecursicaSpacing,\n} from \"@recursica/adapter-common\";\n\nconst LAYOUT_PROPS = new Set([\n \"m\",\n \"my\",\n \"mx\",\n \"mt\",\n \"mb\",\n \"ml\",\n \"mr\",\n \"gap\",\n \"rowGap\",\n \"columnGap\",\n \"top\",\n \"left\",\n \"bottom\",\n \"right\",\n]);\n\nexport const SPACING_MAP: Record<string, string> = {\n \"rec-none\": \"var(--recursica_brand_dimensions_general_none)\",\n \"rec-sm\": \"var(--recursica_brand_dimensions_general_sm)\",\n \"rec-default\": \"var(--recursica_brand_dimensions_general_default)\",\n \"rec-md\": \"var(--recursica_brand_dimensions_general_md)\",\n \"rec-lg\": \"var(--recursica_brand_dimensions_general_lg)\",\n \"rec-xl\": \"var(--recursica_brand_dimensions_general_xl)\",\n \"rec-2xl\": \"var(--recursica_brand_dimensions_general_2xl)\",\n};\n\nexport function mapLayoutProps<T extends Record<string, unknown>>(props: T): T {\n const mapped = { ...props };\n for (const [key, value] of Object.entries(mapped)) {\n if (\n typeof value === \"string\" &&\n value.startsWith(\"rec-\") &&\n LAYOUT_PROPS.has(key)\n ) {\n if (value in SPACING_MAP) {\n (mapped as Record<string, unknown>)[key] = SPACING_MAP[value];\n }\n }\n }\n return mapped;\n}\n\nexport function filterStylingProps<T extends Record<string, unknown>>(\n props: T,\n overStyled?: boolean,\n): Partial<T> {\n if (overStyled) {\n return props;\n }\n\n const sanitized = { ...props };\n\n for (const prop of BLOCKED_STYLING_KEYS) {\n if (prop in sanitized) {\n delete sanitized[prop];\n }\n }\n\n // Intercept Recursica spacing tokens for valid layout properties\n for (const [key, value] of Object.entries(sanitized)) {\n if (\n typeof value === \"string\" &&\n value.startsWith(\"rec-\") &&\n LAYOUT_PROPS.has(key)\n ) {\n if (value in SPACING_MAP) {\n (sanitized as Record<string, unknown>)[key] = SPACING_MAP[value];\n }\n }\n }\n\n return sanitized;\n}\n","import { forwardRef } from \"react\";\nimport {\n Accordion as MantineAccordion,\n type AccordionProps as MantineAccordionProps,\n type AccordionItemProps,\n type AccordionControlProps,\n type AccordionPanelProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Accordion.module.css\";\n\nimport {\n type RecursicaAccordionProps,\n type RecursicaAccordionItemProps,\n type RecursicaAccordionControlProps,\n} from \"@recursica/adapter-common\";\n\n// ==== ACCORDION CONTAINER ====\nexport type AccordionProps = RecursicaOverStyled<\n Omit<\n MantineAccordionProps,\n \"value\" | \"defaultValue\" | \"onChange\" | \"multiple\" | \"variant\"\n > &\n RecursicaAccordionProps\n>;\n\nconst AccordionBase = function Accordion({\n variant = \"unstyled\",\n overStyled = false,\n ...rest\n}: AccordionProps) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n // Bind all deep CSS module references natively into the global class mapping schema\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n item: styles.item,\n control: styles.control,\n label: styles.label,\n chevron: styles.chevron,\n panel: styles.panel,\n content: styles.content,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>).classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Record<string, string>;\n Object.keys(o).forEach((key) => {\n if (mergedClassNames[key]) {\n mergedClassNames[key] = `${mergedClassNames[key]} ${o[key]}`;\n } else {\n mergedClassNames[key] = o[key];\n }\n });\n }\n\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <MantineAccordion\n variant={variant}\n className={classNameProp}\n classNames={mergedClassNames}\n {...(sanitizedProps as unknown as MantineAccordionProps)}\n />\n );\n};\nAccordionBase.displayName = \"Accordion\";\n\n// We need to omit and re-merge native props like in Badge\nexport type AccordionItemWrapperProps = RecursicaOverStyled<\n AccordionItemProps & RecursicaAccordionItemProps\n>;\n\nexport const AccordionItem = forwardRef<\n HTMLDivElement,\n AccordionItemWrapperProps\n>(function AccordionItem(\n { title, leftIcon, divider = true, children, overStyled = false, ...rest },\n ref,\n) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n const finalClass =\n [divider ? undefined : styles.noDivider, classNameProp]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n // If the user utilizes the explicit 'title' prop from Recursica, we securely auto-construct the Mantine sub-hierarchy natively!\n // If not, we defer to raw composable children (meaning the integrator maps `<Accordion.Control>` manually).\n return (\n <MantineAccordion.Item\n ref={ref}\n className={finalClass}\n {...(sanitizedProps as unknown as AccordionItemProps)}\n >\n {title ? (\n <>\n <AccordionControl leftIcon={leftIcon}>{title}</AccordionControl>\n <AccordionPanel>{children}</AccordionPanel>\n </>\n ) : (\n children\n )}\n </MantineAccordion.Item>\n );\n});\nAccordionItem.displayName = \"AccordionItem\";\n\n// ==== ACCORDION CONTROL ====\nexport type AccordionControlWrapperProps = RecursicaOverStyled<\n AccordionControlProps & RecursicaAccordionControlProps\n>;\n\nexport const AccordionControl = forwardRef<\n HTMLButtonElement,\n AccordionControlWrapperProps\n>(function AccordionControl(\n { leftIcon, children, overStyled = false, ...rest },\n ref,\n) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <MantineAccordion.Control\n ref={ref}\n className={classNameProp}\n icon={\n leftIcon ? (\n <span className={styles.iconLeftWrapper} aria-hidden>\n {leftIcon}\n </span>\n ) : undefined\n }\n {...(sanitizedProps as unknown as AccordionControlProps)}\n >\n {children}\n </MantineAccordion.Control>\n );\n});\nAccordionControl.displayName = \"AccordionControl\";\n\n// ==== ACCORDION PANEL ====\nexport type AccordionPanelWrapperProps =\n RecursicaOverStyled<AccordionPanelProps>;\n\nexport const AccordionPanel = forwardRef<\n HTMLDivElement,\n AccordionPanelWrapperProps\n>(function AccordionPanel({ overStyled = false, ...rest }, ref) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <MantineAccordion.Panel\n ref={ref}\n className={classNameProp}\n {...(sanitizedProps as unknown as AccordionPanelProps)}\n />\n );\n});\nAccordionPanel.displayName = \"AccordionPanel\";\n\n// ==== DOT NOTATION EXPORT ====\ntype AccordionComponent = typeof AccordionBase & {\n Item: typeof AccordionItem;\n Control: typeof AccordionControl;\n Panel: typeof AccordionPanel;\n};\n\nexport const Accordion = AccordionBase as AccordionComponent;\nAccordion.Item = AccordionItem;\nAccordion.Control = AccordionControl;\nAccordion.Panel = AccordionPanel;\n","import React, { forwardRef } from \"react\";\nimport { Input, type InputLabelProps } from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Label.module.css\";\n\nimport { type RecursicaLabelProps } from \"@recursica/adapter-common\";\n\nexport type LabelProps = RecursicaOverStyled<\n Omit<InputLabelProps, \"size\"> & RecursicaLabelProps\n>;\n\nexport const Label = forwardRef<HTMLLabelElement, LabelProps>(function Label(\n {\n labelSize = \"default\",\n labelAlignment,\n required = false,\n labelOptionalText,\n labelWithEditIcon,\n labelActionArea,\n onLabelEditClick,\n children,\n overStyled = false,\n ...rest\n },\n ref,\n) {\n const resolvedAlignment = labelAlignment || \"left\";\n\n let resolvedOptionalText: React.ReactNode | undefined;\n if (!required) {\n if (labelOptionalText === true) resolvedOptionalText = \"optional\";\n else if (labelOptionalText) resolvedOptionalText = labelOptionalText;\n }\n\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n const mergedClassNames: Partial<Record<string, string>> = {\n label: styles.root,\n required: styles.required,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.label = o.label\n ? `${styles.root} ${o.label}`\n : styles.root;\n mergedClassNames.required = o.required\n ? `${styles.required} ${o.required}`\n : styles.required;\n }\n\n const classNameProp = restRecord.className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n return (\n <Input.Label\n ref={ref}\n className={finalClass}\n classNames={mergedClassNames}\n data-size={labelSize}\n data-alignment={resolvedAlignment}\n required={required && !labelWithEditIcon}\n {...sanitizedProps}\n >\n <span className={styles.labelText}>{children}</span>\n {resolvedOptionalText && (\n <span className={styles.optionalText}>\n {typeof resolvedOptionalText === \"string\"\n ? `(${resolvedOptionalText})`\n : resolvedOptionalText}\n </span>\n )}\n {labelActionArea ? (\n <span className={styles.actionAreaWrapper}>{labelActionArea}</span>\n ) : labelWithEditIcon ? (\n <button\n type=\"button\"\n className={styles.editIconWrapper}\n data-replaces-asterisk={required ? \"true\" : undefined}\n onClick={onLabelEditClick}\n aria-label=\"Edit\"\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M11.5303 2.46967C11.8232 2.17678 12.2981 2.17678 12.591 2.46967L13.5303 3.40898C13.8232 3.70188 13.8232 4.17675 13.5303 4.46964L5.61288 12.3871C5.45268 12.5473 5.24434 12.6483 5.01809 12.6766L2.39534 13.0044C2.10091 13.0412 1.83856 12.7789 1.87538 12.4845L2.2032 9.86175C2.23147 9.63551 2.3325 9.42716 2.4927 9.26696L11.5303 2.46967Z\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n ) : null}\n </Input.Label>\n );\n});\n\nLabel.displayName = \"Label\";\n","import React, { forwardRef } from \"react\";\nimport styles from \"./FormControlLayout.module.css\";\n\nimport { type RecursicaFormControlLayoutProps } from \"@recursica/adapter-common\";\n\nexport interface FormControlLayoutProps\n extends React.HTMLAttributes<HTMLDivElement>,\n RecursicaFormControlLayoutProps {}\n\n/**\n * A layout component used to correctly position form inputs alongside their labels.\n *\n * **When to use this:**\n * Typically, you should use `FormControlWrapper` instead, which uses this component\n * under the hood to handle layout automatically.\n *\n * However, this component is useful when you need to align standalone inputs\n * (like a `Switch` or `Checkbox` without a label) so they perfectly match the spacing\n * and alignment of your other form fields in a `side-by-side` layout.\n */\nexport const FormControlLayout = forwardRef<\n HTMLDivElement,\n FormControlLayoutProps\n>(function FormControlLayout(\n {\n formLayout = \"stacked\",\n labelSize = \"default\",\n controlMaxWidth,\n controlMinWidth,\n leftSection,\n children,\n className,\n style,\n ...rest\n },\n ref,\n) {\n const rootClass = className ? `${styles.root} ${className}` : styles.root;\n\n // We explicitly render leftSection even if null in side-by-side to preserve the empty grid column bounding constraints.\n // In stacked layouts, if there is no label, we omit the wrapper to avoid unnecessary padding.\n const hasLeftContent = leftSection !== undefined && leftSection !== null;\n const shouldRenderLeft = hasLeftContent || formLayout === \"side-by-side\";\n\n return (\n <div\n ref={ref}\n className={rootClass}\n data-form-layout={formLayout}\n style={\n {\n ...style,\n ...(controlMaxWidth\n ? { \"--form-control-max-width\": controlMaxWidth }\n : {}),\n ...(controlMinWidth\n ? { \"--form-control-min-width\": controlMinWidth }\n : {}),\n } as React.CSSProperties\n }\n {...rest}\n >\n {shouldRenderLeft && (\n <div className={styles.leftSection} data-size={labelSize}>\n {leftSection}\n </div>\n )}\n\n <div className={styles.rightSection}>{children}</div>\n </div>\n );\n});\n\nFormControlLayout.displayName = \"FormControlLayout\";\n","import React, { forwardRef } from \"react\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./AssistiveElement.module.css\";\n\nimport { type RecursicaAssistiveElementProps } from \"@recursica/adapter-common\";\n\nexport type AssistiveElementProps = RecursicaOverStyled<\n React.HTMLAttributes<HTMLDivElement> & RecursicaAssistiveElementProps\n>;\n\nconst InfoIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 16v-4\" />\n <path d=\"M12 8h.01\" />\n </svg>\n);\n\nconst AlertIcon = () => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z\" />\n <path d=\"M12 9v4\" />\n <path d=\"M12 17h.01\" />\n </svg>\n);\n\nexport const AssistiveElement = forwardRef<\n HTMLDivElement,\n AssistiveElementProps\n>(function AssistiveElement(\n {\n assistiveVariant = \"help\",\n assistiveWithIcon = true,\n children,\n className,\n overStyled = false,\n ...rest\n },\n ref,\n) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n const rootClass = styles.root;\n const finalClass = className ? `${rootClass} ${className}` : rootClass;\n\n const IconComponent = assistiveVariant === \"error\" ? AlertIcon : InfoIcon;\n\n return (\n <div\n ref={ref}\n className={finalClass}\n data-variant={assistiveVariant}\n style={restRecord.style as React.CSSProperties}\n {...restRecord} // Spread standard HTML attributes (like id, aria-*, role) natively.\n >\n {assistiveWithIcon && (\n <span className={styles.iconWrapper}>\n <IconComponent />\n </span>\n )}\n <span className={styles.textWrapper}>{children}</span>\n </div>\n );\n});\n\nAssistiveElement.displayName = \"AssistiveElement\";\n","import React, { forwardRef, useId } from \"react\";\nimport { type InputWrapperProps } from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport { Label } from \"../Label/Label\";\nimport { FormControlLayout } from \"../FormControlLayout/FormControlLayout\";\nimport { AssistiveElement } from \"../AssistiveElement/AssistiveElement\";\nimport styles from \"./FormControlWrapper.module.css\";\n\nimport { type RecursicaFormControlWrapperProps } from \"@recursica/adapter-common\";\nexport type { RecursicaFormControlWrapperProps };\n\nexport type FormControlWrapperProps = RecursicaOverStyled<\n Omit<InputWrapperProps, \"labelProps\" | \"inputWrapperOrder\"> &\n RecursicaFormControlWrapperProps\n>;\n\nexport const FormControlWrapper = forwardRef<\n HTMLDivElement,\n FormControlWrapperProps\n>(function FormControlWrapper(\n {\n formLayout,\n labelSize,\n labelAlignment,\n labelOptionalText,\n labelWithEditIcon,\n labelActionArea,\n onLabelEditClick,\n\n label,\n description,\n assistiveText,\n assistiveWithIcon = true,\n controlMaxWidth,\n controlMinWidth,\n error,\n required,\n withAsterisk,\n id: userProvidedId,\n children,\n className,\n overStyled = false,\n labelElement, // Extracted safely preventing bleeding into HTML domains\n ...rest\n },\n ref,\n) {\n // Generate a reliable ID to map the Label's HTML context down to the component array natively.\n const generatedId = useId();\n const id = userProvidedId || `recursica-fc-${generatedId}`;\n\n // Evaluate explicit assistive fallbacks ensuring assistiveText correctly prioritizes natively over underlying Mantine configurations!\n const resolvedAssistive = assistiveText || description;\n const assistiveId = resolvedAssistive ? `${id}-assistive` : undefined;\n const errorId = error ? `${id}-error` : undefined;\n\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n const classNameProp =\n className || (restRecord.className as string | undefined);\n const rootClass = styles.root;\n const finalClass = classNameProp\n ? `${rootClass} ${classNameProp}`\n : rootClass;\n\n // Clone ARIA identifiers directly back down into the nested children wrapper so screen-readers natively hook the external strings\n const content = React.isValidElement(children)\n ? React.cloneElement(\n children as React.ReactElement<Record<string, unknown>>,\n {\n ...(resolvedAssistive &&\n !(children.props as Record<string, unknown>)[\"aria-describedby\"]\n ? { \"aria-describedby\": assistiveId }\n : {}),\n ...(error &&\n !(children.props as Record<string, unknown>)[\"aria-errormessage\"]\n ? { \"aria-errormessage\": errorId }\n : {}),\n },\n )\n : children;\n\n const labelNode = label ? (\n <Label\n id={id} // Directly binds ARIA references down\n labelAlignment={labelAlignment}\n labelOptionalText={labelOptionalText}\n labelWithEditIcon={labelWithEditIcon}\n labelActionArea={labelActionArea}\n onLabelEditClick={onLabelEditClick}\n required={withAsterisk ?? required}\n // Manually propagate relevant structural logic if underlying groups dictate Label to act as generic wrapper\n {...(labelElement === \"div\" ? { as: \"div\" } : {})}\n >\n {label}\n </Label>\n ) : undefined;\n\n return (\n <FormControlLayout\n ref={ref}\n className={finalClass}\n formLayout={formLayout}\n labelSize={labelSize}\n controlMaxWidth={controlMaxWidth}\n controlMinWidth={controlMinWidth}\n leftSection={labelNode}\n {...restRecord}\n >\n {/*\n The Core Input Wrapper & Controls\n Nakedly inject the actual field elements alongside natively bridged Assistive components mapped dynamically.\n */}\n <div className={styles.inputSection}>\n {content}\n\n {error && (\n <AssistiveElement\n id={errorId}\n assistiveVariant=\"error\"\n assistiveWithIcon={assistiveWithIcon}\n >\n {error}\n </AssistiveElement>\n )}\n\n {!error && resolvedAssistive && (\n <AssistiveElement\n id={assistiveId}\n assistiveVariant=\"help\"\n assistiveWithIcon={assistiveWithIcon}\n >\n {resolvedAssistive}\n </AssistiveElement>\n )}\n </div>\n </FormControlLayout>\n );\n});\n\nFormControlWrapper.displayName = \"FormControlWrapper\";\n","import { jsx as u, Fragment as _ } from \"react/jsx-runtime\";\nimport y, { forwardRef as S, useState as R, useEffect as f } from \"react\";\nconst T = \"_root_1qhn7_3\", C = \"_contents_1qhn7_18\", a = {\n root: T,\n contents: C\n}, g = S(function({ layer: t, contentsOnly: r, children: n, className: o, style: c, ...d }, l) {\n const w = r ? o ? `${a.root} ${a.contents} ${o}` : `${a.root} ${a.contents}` : o ? `${a.root} ${o}` : a.root;\n return /* @__PURE__ */ u(\n \"div\",\n {\n ref: l,\n className: w,\n style: c,\n ...r ? {} : { \"data-recursica-layer\": String(t) },\n ...d,\n children: n\n }\n );\n});\ng.displayName = \"Layer\";\nconst E = ({ emptyText: e = \"N/A\" }) => /* @__PURE__ */ u(y.Fragment, { children: e });\nE.displayName = \"EmptyValueRenderer\";\nE.check = (e) => e == null || e === \"\" || Array.isArray(e) && e.length === 0;\nconst A = { BASE_URL: \"/\", DEV: !1, MODE: \"library\", PROD: !0, SSR: !1, VITE_PLUGIN_MODE: \"production\", VITE_PLUGIN_PHRASE: \"recursica_plugin_@K9mX7pQw2VbN8fRt3LzY6HjE4CuA5DsG1WvM9nP0XcB7\", VITE_PLUGIN_PHRASE_TEST: \"recursica_plugin_@19866374\", VITE_RECURSICA_API_TEST: \"https://dev-api.recursica.com\", VITE_RECURSICA_API_URL: \"https://api.recursica.com\", VITE_RECURSICA_UI_URL: \"https://api.recursica.com\" }, s = (() => {\n try {\n if (typeof process < \"u\" && process.env && process.env.NODE_ENV)\n return process.env.NODE_ENV !== \"production\";\n } catch {\n }\n try {\n if (import.meta && A)\n return !0;\n } catch {\n }\n if (typeof window < \"u\") {\n const e = window.location.hostname;\n return e === \"localhost\" || e === \"127.0.0.1\" || e.endsWith(\".local\");\n }\n return !1;\n})(), p = /* @__PURE__ */ new Set();\nlet i = !1;\nfunction I(e) {\n if (!s)\n return console.warn(\n \"[Recursica] overStyled highlight is disabled in production builds.\"\n ), !1;\n if (i = e !== void 0 ? e : !i, typeof document < \"u\") {\n const t = document.documentElement, r = i ? \"0 0 0 2px cyan\" : \"none\";\n t.style.setProperty(\"--recursica-over-styled-shadow\", r), console.log(\n `[Recursica] Highlight outlines toggled: ${i ? \"ACTIVE (0 0 0 2px cyan)\" : \"INACTIVE\"}`\n );\n } else\n console.warn(\"[Recursica] document is undefined. Cannot set CSS property.\");\n return p.forEach((t) => t()), i;\n}\nfunction V() {\n return s && i;\n}\nfunction b() {\n const [e, t] = R(i);\n return f(() => {\n if (!s) return;\n h(), v();\n const r = () => t(i);\n return p.add(r), () => {\n p.delete(r);\n };\n }, []), s && e;\n}\nfunction h() {\n if (!s) return;\n if (typeof document > \"u\") {\n console.warn(\n \"[Recursica] document is undefined. Cannot inject overStyled styles.\"\n );\n return;\n }\n const e = \"recursica-over-styled-styles\";\n let t = document.getElementById(e);\n t || (t = document.createElement(\"style\"), t.id = e, t.textContent = `\n :root {\n --recursica-over-styled-shadow: none;\n }\n .recursica-over-styled {\n display: contents !important;\n }\n .recursica-over-styled > * {\n box-shadow: var(--recursica-over-styled-shadow) !important;\n }\n `, document.head.appendChild(t));\n}\nfunction v() {\n if (!s) return;\n if (typeof window > \"u\") {\n console.warn(\n \"[Recursica] window is undefined. Cannot register console command.\"\n );\n return;\n }\n const e = (t) => {\n try {\n t.recursica = t.recursica || {}, t.recursica.toggleOverStyled = () => `[Recursica] Overstyled outline highlight is now: ${I() ? \"ON (cyan 2px box shadow)\" : \"OFF\"}`;\n } catch {\n }\n };\n e(window), window.parent && window.parent !== window && e(window.parent);\n}\nconst m = \"data-recursica-theme\";\nfunction x({\n children: e,\n theme: t = \"light\"\n}) {\n return f(() => {\n const r = document.documentElement;\n return r.setAttribute(m, t), () => {\n r.removeAttribute(m);\n };\n }, [t]), f(() => {\n h(), v();\n }, []), /* @__PURE__ */ u(_, { children: e });\n}\nconst L = [\n \"Accordion\",\n \"AssistiveElement\",\n \"Autocomplete\",\n \"Avatar\",\n \"Badge\",\n \"Breadcrumb\",\n \"Button\",\n \"Card\",\n \"Checkbox\",\n \"Chip\",\n \"Container\",\n \"DatePicker\",\n \"Dropdown\",\n \"EmptyValueRenderer\",\n \"Flex\",\n \"FormControlLayout\",\n \"FormControlWrapper\",\n \"Group\",\n \"HoverCard\",\n \"Label\",\n \"Layer\",\n \"Link\",\n \"Loader\",\n \"Menu\",\n \"Modal\",\n \"NumberInput\",\n \"Pagination\",\n \"Panel\",\n \"Popover\",\n \"Radio\",\n \"ReadOnlyField\",\n \"SegmentedControl\",\n \"Slider\",\n \"Stack\",\n \"Stepper\",\n \"Switch\",\n \"Table\",\n \"Tabs\",\n \"Text\",\n \"TextArea\",\n \"TextField\",\n \"TimePicker\",\n \"Timeline\",\n \"Title\",\n \"Toast\",\n \"Tooltip\",\n \"TransferList\"\n], $ = (e, t) => {\n const r = document.activeElement;\n return new Promise((n, o) => {\n if (t && t.current) {\n const c = document.createElement(\"textarea\");\n c.readOnly = !0, c.defaultValue = e, t.current.appendChild(c), c.select();\n const d = document.execCommand(\"copy\");\n t.current.removeChild(c), r && r.focus(), d ? n() : o(new Error(\"Failed to copy\"));\n } else\n o(new Error(\"Copy area reference is not defined\"));\n });\n};\nfunction O(e) {\n if (!s || typeof e != \"function\" && !(e && e.$$typeof))\n return e;\n const t = y.forwardRef((n, o) => {\n const { overStyled: c } = n, d = b(), l = y.createElement(\n e,\n { ...n, ref: o }\n );\n return c && d ? /* @__PURE__ */ u(\"div\", { className: \"recursica-over-styled\", children: l }) : l;\n });\n t.displayName = e.displayName || e.name || \"Component\";\n const r = Object.keys(e);\n for (const n of r) {\n if (n === \"render\" || n === \"$$typeof\")\n continue;\n const o = e[n];\n (typeof o == \"function\" || o && o.$$typeof) && n[0] === n[0].toUpperCase() ? t[n] = O(o) : t[n] = o;\n }\n return t;\n}\nexport {\n E as EmptyValueRenderer,\n s as IS_DEV,\n g as Layer,\n L as RECURSICA_COMPONENTS,\n x as RecursicaThemeProvider,\n $ as copyToClipboard,\n h as injectOverStyledStyles,\n V as isGlobalOverStyledActive,\n v as registerOverStyledConsoleCommand,\n I as toggleGlobalOverStyled,\n b as useGlobalOverStyled,\n O as wrapComponent\n};\n//# sourceMappingURL=adapter-common.js.map\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React from \"react\";\nimport { Box } from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./ReadOnlyField.module.css\";\n\nexport interface RecursicaReadOnlyTextFieldProps {\n /** The value strictly rendered as text output */\n value?: any;\n}\n\nexport type ReadOnlyTextFieldProps =\n RecursicaOverStyled<RecursicaReadOnlyTextFieldProps>;\n\nexport const ReadOnlyTextField: React.FC<ReadOnlyTextFieldProps> = ({\n value,\n overStyled = false,\n ...rest\n}) => {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <Box\n component=\"p\"\n className={\n classNameProp\n ? `${styles.textField} ${classNameProp}`\n : styles.textField\n }\n {...sanitizedProps}\n >\n {value != null\n ? React.isValidElement(value)\n ? value\n : Array.isArray(value)\n ? value.join(\", \")\n : String(value)\n : \"\"}\n </Box>\n );\n};\n\nReadOnlyTextField.displayName = \"ReadOnlyTextField\";\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { forwardRef } from \"react\";\nimport {\n EmptyValueRenderer,\n type ReadOnlyControlProps,\n} from \"@recursica/adapter-common\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport {\n type FormControlWrapperProps,\n FormControlWrapper,\n} from \"../FormControlWrapper/FormControlWrapper\";\nimport { ReadOnlyTextField } from \"./ReadOnlyTextField\";\nimport styles from \"./ReadOnlyField.module.css\";\n\nimport { type RecursicaReadOnlyFieldProps as BaseRecursicaReadOnlyFieldProps } from \"@recursica/adapter-common\";\n\nexport interface RecursicaReadOnlyFieldProps\n extends Omit<\n FormControlWrapperProps,\n \"children\" | \"overStyled\" | \"controlMaxWidth\" | \"controlMinWidth\"\n >,\n Pick<ReadOnlyControlProps, \"emptyValueComponent\">,\n BaseRecursicaReadOnlyFieldProps {}\n\nexport type ReadOnlyFieldProps =\n RecursicaOverStyled<RecursicaReadOnlyFieldProps>;\n\n/**\n * A native generic form control wrapper exclusively responsible for displaying fixed data.\n * Internally maps to structural ReadOnly primitive blocks bridging standard `FormControlWrapper` layouts natively.\n */\nexport const ReadOnlyField = forwardRef<HTMLDivElement, ReadOnlyFieldProps>(\n function ReadOnlyField(\n {\n value,\n type = \"text\",\n emptyValueComponent,\n overStyled = false,\n className,\n style,\n ...rest\n },\n ref,\n ) {\n let content: React.ReactNode = null;\n\n // We still pass sanitized properties (like className/style/etc) strictly down.\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n const Renderer = emptyValueComponent || EmptyValueRenderer;\n const isValueEmpty = (Renderer as any).check\n ? (Renderer as any).check(value)\n : EmptyValueRenderer.check(value);\n\n const displayValue = isValueEmpty ? (\n <Renderer value={value as any} />\n ) : (\n value\n );\n\n switch (type) {\n case \"boolean\":\n content = (\n <ReadOnlyTextField\n value={\n value === true ? \"True\" : value === false ? \"False\" : displayValue\n }\n overStyled={overStyled as true}\n />\n );\n break;\n case \"switch\":\n content = (\n <ReadOnlyTextField\n value={\n value === true ? \"On\" : value === false ? \"Off\" : displayValue\n }\n overStyled={overStyled as true}\n />\n );\n break;\n case \"text\":\n default:\n content = (\n <ReadOnlyTextField\n value={displayValue}\n overStyled={overStyled as true}\n />\n );\n break;\n }\n\n const wrapperClass = className\n ? `${styles.layoutOverride} ${className}`\n : styles.layoutOverride;\n\n return (\n <FormControlWrapper\n ref={ref}\n overStyled={overStyled as true}\n className={wrapperClass}\n style={style}\n {...(sanitizedProps as any)}\n >\n {content}\n </FormControlWrapper>\n );\n },\n);\n\nReadOnlyField.displayName = \"ReadOnlyField\";\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { forwardRef } from \"react\";\nimport { type ReadOnlyFieldType } from \"@recursica/adapter-common\";\nimport {\n FormControlWrapper,\n type FormControlWrapperProps,\n} from \"../FormControlWrapper/FormControlWrapper\";\nimport { ReadOnlyField } from \"./ReadOnlyField\";\n\nexport interface WithReadOnlyWrapperProps\n extends Omit<FormControlWrapperProps, \"children\" | \"overStyled\"> {\n /** Injects whether the field defaults to reading mode natively */\n readOnly?: boolean;\n /** Explicit React component directly overtaking the baseline text renderer when read-only mode is active */\n readOnlyComponent?: React.ElementType<any>;\n /** Custom renderer explicitly responsible for formatting missing/empty value mappings (overriding default 'N/A') */\n emptyValueComponent?: React.ElementType<{ value?: any }>;\n /** The full native props dictionary securely forwarded into the custom readOnlyComponent if active */\n readOnlyNativeProps?: any;\n /** Instructs the underlying generic ReadOnlyField which raw visual structure to bridge automatically */\n readOnlyType?: ReadOnlyFieldType;\n /** The isolated raw data value intercepted explicitly into the ReadOnly formatters */\n readOnlyValue?: any;\n /** Safely enables deep Mantine overrides transparently bypassing block filters */\n overStyled?: boolean;\n /** The nested active node dynamically exposed exclusively when read-only bounds are disabled */\n activeComponent: React.ReactNode;\n}\n\n/**\n * Universal execution barrier trapping readOnly states globally.\n * Natively delegates active logic down avoiding duplicative internal component bindings dynamically.\n */\nexport const WithReadOnlyWrapper = forwardRef<\n HTMLDivElement,\n WithReadOnlyWrapperProps\n>(function WithReadOnlyWrapper(\n {\n readOnly,\n readOnlyComponent,\n readOnlyType = \"text\",\n readOnlyValue,\n readOnlyNativeProps,\n emptyValueComponent,\n activeComponent,\n overStyled,\n onLabelEditClick,\n ...wrapperProps\n },\n ref,\n) {\n if (readOnly) {\n if (readOnlyComponent) {\n const ReadOnlyComponent = readOnlyComponent;\n return (\n <FormControlWrapper\n ref={ref}\n {...wrapperProps}\n onLabelEditClick={onLabelEditClick}\n overStyled={overStyled as true}\n >\n <ReadOnlyComponent {...readOnlyNativeProps} />\n </FormControlWrapper>\n );\n }\n\n return (\n <ReadOnlyField\n ref={ref}\n type={readOnlyType}\n value={readOnlyValue}\n emptyValueComponent={emptyValueComponent}\n onLabelEditClick={onLabelEditClick}\n overStyled={overStyled as true}\n {...wrapperProps}\n />\n );\n }\n\n // Active Standard Execution natively forwarding bound children implicitly\n return (\n <FormControlWrapper\n ref={ref}\n {...wrapperProps}\n onLabelEditClick={onLabelEditClick}\n overStyled={overStyled as true}\n >\n {activeComponent}\n </FormControlWrapper>\n );\n});\n\nWithReadOnlyWrapper.displayName = \"WithReadOnlyWrapper\";\n","import React, { forwardRef } from \"react\";\nimport {\n Autocomplete as MantineAutocomplete,\n type AutocompleteProps as MantineAutocompleteProps,\n type InputWrapperProps,\n} from \"@mantine/core\";\nimport { type ReadOnlyControlProps } from \"@recursica/adapter-common\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport { type RecursicaFormControlWrapperProps } from \"../FormControlWrapper/FormControlWrapper\";\nimport { WithReadOnlyWrapper } from \"../ReadOnlyField/WithReadOnlyWrapper\";\nimport styles from \"./AutoComplete.module.css\";\n\nimport { type RecursicaAutocompleteProps as BaseRecursicaAutocompleteProps } from \"@recursica/adapter-common\";\n\nexport interface RecursicaAutoCompleteProps\n extends Omit<\n MantineAutocompleteProps,\n | \"size\"\n | \"variant\"\n | \"radius\"\n | \"wrapperProps\"\n | \"data\"\n | \"defaultValue\"\n | \"value\"\n >,\n Pick<\n InputWrapperProps,\n \"label\" | \"error\" | \"required\" | \"withAsterisk\" | \"id\"\n >,\n Omit<\n RecursicaFormControlWrapperProps,\n \"controlMaxWidth\" | \"controlMinWidth\"\n >,\n ReadOnlyControlProps,\n BaseRecursicaAutocompleteProps {\n /** Current input value */\n value?: string;\n}\n\nexport type AutoCompleteProps = RecursicaOverStyled<RecursicaAutoCompleteProps>;\n\nexport const AutoComplete = forwardRef<HTMLInputElement, AutoCompleteProps>(\n function AutoComplete(props, ref) {\n const {\n overStyled = false,\n formLayout = \"stacked\",\n\n // Label & Wrapper Maps\n labelSize,\n labelAlignment,\n labelOptionalText,\n labelWithEditIcon,\n onLabelEditClick,\n\n label,\n assistiveText,\n assistiveWithIcon,\n error,\n required,\n withAsterisk,\n id,\n className,\n style,\n disabled,\n readOnly,\n readOnlyComponent,\n emptyValueComponent,\n value,\n defaultValue,\n ...rest\n } = props;\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Delete prohibited sizing hooks from bypassing variables natively\n delete restRecord[\"size\"];\n delete restRecord[\"variant\"];\n delete restRecord[\"radius\"];\n\n // Securely map core native blocks down ensuring nested CSS modules map precisely\n const mergedClassNames: Partial<Record<string, string>> = {\n wrapper: styles.root, // The nested Input internal relative wrapper bounding box\n input: styles.input,\n section: styles.section,\n dropdown: styles.dropdown,\n option: styles.option,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.wrapper = o.wrapper\n ? `${styles.root} ${o.wrapper}`\n : styles.root;\n mergedClassNames.input = o.input\n ? `${styles.input} ${o.input}`\n : styles.input;\n mergedClassNames.section = o.section\n ? `${styles.section} ${o.section}`\n : styles.section;\n mergedClassNames.dropdown = o.dropdown\n ? `${styles.dropdown} ${o.dropdown}`\n : styles.dropdown;\n mergedClassNames.option = o.option\n ? `${styles.option} ${o.option}`\n : styles.option;\n }\n\n const wrapperClass = className\n ? `${styles.layoutOverride} ${className}`\n : styles.layoutOverride;\n\n return (\n <WithReadOnlyWrapper\n className={wrapperClass}\n style={style as React.CSSProperties}\n controlMaxWidth=\"var(--recursica_ui-kit_components_autocomplete_properties_max-width)\"\n controlMinWidth=\"var(--recursica_ui-kit_components_autocomplete_properties_min-width)\"\n overStyled={overStyled as true}\n formLayout={formLayout}\n labelSize={labelSize}\n labelAlignment={labelAlignment}\n labelOptionalText={labelOptionalText}\n labelWithEditIcon={labelWithEditIcon}\n onLabelEditClick={onLabelEditClick}\n label={label}\n assistiveText={assistiveText}\n assistiveWithIcon={assistiveWithIcon}\n error={error}\n required={required}\n withAsterisk={withAsterisk}\n id={id}\n readOnly={readOnly}\n readOnlyComponent={readOnlyComponent}\n emptyValueComponent={emptyValueComponent}\n readOnlyType=\"text\"\n readOnlyValue={value !== undefined ? value : defaultValue}\n readOnlyNativeProps={props}\n activeComponent={\n /* Naked Input execution safely decoupled from Mantine's macro Input.Wrapper DOM hooks */\n <MantineAutocomplete\n ref={ref}\n classNames={mergedClassNames}\n disabled={disabled}\n value={value as string | undefined}\n defaultValue={defaultValue as string | undefined}\n wrapperProps={{\n \"data-disabled\": disabled ? \"true\" : undefined,\n \"data-error\": error ? \"true\" : undefined,\n }}\n {...(sanitizedProps as unknown as MantineAutocompleteProps)}\n />\n }\n />\n );\n },\n);\n\nAutoComplete.displayName = \"AutoComplete\";\n","import { forwardRef } from \"react\";\nimport {\n Avatar as MantineAvatar,\n type AvatarProps as MantineAvatarProps,\n createPolymorphicComponent,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Avatar.module.css\";\n\nimport { type RecursicaAvatarProps } from \"@recursica/adapter-common\";\n\nexport type AvatarProps = RecursicaOverStyled<\n Omit<MantineAvatarProps, \"variant\" | \"size\" | \"color\" | \"radius\"> &\n RecursicaAvatarProps\n>;\n\nconst _Avatar = forwardRef<HTMLDivElement, AvatarProps>(function Avatar(\n {\n size = \"default\",\n variant = \"solid\",\n icon,\n children,\n src,\n overStyled = false,\n ...rest\n },\n ref,\n) {\n const mapVariant = {\n solid: \"filled\",\n outline: \"outline\",\n ghost: \"transparent\",\n } as const;\n\n const mapSize = {\n default: \"md\",\n small: \"sm\",\n large: \"lg\",\n } as const;\n\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Determine semantic style based on provided props\n let computedStyle = \"text\";\n if (src) {\n computedStyle = \"image\";\n } else if (icon) {\n computedStyle = \"icon\";\n }\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n image: styles.image,\n placeholder: styles.placeholder,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n mergedClassNames.image = o.image\n ? `${styles.image} ${o.image}`\n : styles.image;\n mergedClassNames.placeholder = o.placeholder\n ? `${styles.placeholder} ${o.placeholder}`\n : styles.placeholder;\n }\n\n const classNameProp = restRecord.className as string | undefined;\n\n return (\n <MantineAvatar\n ref={ref}\n className={classNameProp}\n classNames={mergedClassNames}\n variant={mapVariant[variant]}\n size={mapSize[size]}\n src={src}\n data-variant={variant}\n data-size={size}\n data-style={computedStyle}\n {...sanitizedProps}\n >\n {icon != null ? (\n <span className={styles.iconWrapper} aria-hidden>\n {icon}\n </span>\n ) : children != null ? (\n <span className={styles.textWrapper}>{children}</span>\n ) : undefined}\n </MantineAvatar>\n );\n});\n_Avatar.displayName = \"Avatar\";\n\n/**\n * Recursica Avatar component wrapping Mantine's Avatar.\n *\n * Supports polymorphism via the `component` prop or `renderRoot` for custom element rendering.\n */\nexport const Avatar = createPolymorphicComponent<\"div\", AvatarProps>(_Avatar);\n","import { forwardRef } from \"react\";\nimport {\n Badge as MantineBadge,\n type BadgeProps as MantineBadgeProps,\n createPolymorphicComponent,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Badge.module.css\";\n\nimport { type RecursicaBadgeProps } from \"@recursica/adapter-common\";\n\nexport type BadgeProps = RecursicaOverStyled<\n Omit<MantineBadgeProps, \"variant\" | \"size\" | \"color\" | \"radius\"> &\n RecursicaBadgeProps\n>;\n\nconst _Badge = forwardRef<HTMLDivElement, BadgeProps>(function Badge(\n { variant = \"primary-color\", overStyled = false, ...rest },\n ref,\n) {\n // Strip all visual override injections unless developer has specifically opted into overStyling.\n // External layout props like margins are safely preserved.\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n section: styles.section,\n label: styles.label,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>).classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n mergedClassNames.section = o.section ?? styles.section;\n mergedClassNames.label = o.label ?? styles.label;\n }\n\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n return (\n <MantineBadge\n ref={ref}\n variant=\"filled\" // We manage visual style purely through our CSS variables mapping\n data-variant={variant}\n {...sanitizedProps}\n className={finalClass}\n classNames={mergedClassNames}\n />\n );\n});\n_Badge.displayName = \"Badge\";\n\n/**\n * Recursica Badge component wrapping Mantine's Badge.\n *\n * Supports polymorphism via the `component` prop or `renderRoot` for custom element rendering.\n */\nexport const Badge = createPolymorphicComponent<\"div\", BadgeProps>(_Badge);\n","import { forwardRef } from \"react\";\nimport {\n Breadcrumbs as MantineBreadcrumbs,\n type BreadcrumbsProps as MantineBreadcrumbsProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Breadcrumb.module.css\";\n\n// Currently there are no Recursica prop additions specific to Breadcrumbs (like size or variant)\n// according to recursica_ui-kit.json\nimport { type RecursicaBreadcrumbProps } from \"@recursica/adapter-common\";\n\nexport type BreadcrumbProps = RecursicaOverStyled<\n Omit<MantineBreadcrumbsProps, \"variant\" | \"size\"> & RecursicaBreadcrumbProps\n>;\n\nexport const Breadcrumb = forwardRef<HTMLDivElement, BreadcrumbProps>(\n function Breadcrumb({ overStyled = false, separator = \">\", ...rest }, ref) {\n const sanitizedProps = filterStylingProps(\n { separator, ...rest },\n overStyled,\n );\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n separator: styles.separator,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>)\n .classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n mergedClassNames.separator = o.separator\n ? `${styles.separator} ${o.separator}`\n : styles.separator;\n }\n\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n return (\n <MantineBreadcrumbs\n ref={ref}\n {...(sanitizedProps as unknown as MantineBreadcrumbsProps)}\n className={finalClass}\n classNames={mergedClassNames}\n />\n );\n },\n);\n\nBreadcrumb.displayName = \"Breadcrumb\";\n","import { forwardRef } from \"react\";\nimport {\n Loader as MantineLoader,\n type LoaderProps as MantineLoaderProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Loader.module.css\";\n\nimport { type RecursicaLoaderProps } from \"@recursica/adapter-common\";\n\nexport type LoaderProps = RecursicaOverStyled<\n Omit<MantineLoaderProps, \"variant\" | \"size\" | \"type\"> & RecursicaLoaderProps\n>;\n\nexport const Loader = forwardRef<HTMLSpanElement, LoaderProps>(function Loader(\n { variant = \"oval\", size = \"default\", overStyled = false, ...rest },\n ref,\n) {\n const mapSize = {\n sm: \"small\",\n md: \"default\",\n lg: \"large\",\n small: \"small\",\n default: \"default\",\n large: \"large\",\n } as const;\n\n const resolvedSize = mapSize[size] || \"default\";\n\n // Strip all visual override injections unless developer has specifically opted into overStyling.\n // External layout props like margins are safely preserved.\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>).classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n }\n\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n return (\n <MantineLoader\n ref={ref}\n type={variant}\n data-variant={variant}\n data-size={resolvedSize}\n {...sanitizedProps}\n className={finalClass}\n classNames={mergedClassNames}\n />\n );\n});\n\nLoader.displayName = \"Loader\";\n","import React, { forwardRef } from \"react\";\nimport { Loader } from \"../Loader/Loader\";\nimport {\n Button as MantineButton,\n type ButtonProps as MantineButtonProps,\n createPolymorphicComponent,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Button.module.css\";\n\nimport { type RecursicaButtonProps } from \"@recursica/adapter-common\";\n\nexport type ButtonProps = RecursicaOverStyled<\n Omit<MantineButtonProps, \"variant\" | \"size\" | \"leftSection\" | \"fullWidth\"> &\n RecursicaButtonProps\n>;\n\nfunction hasVisibleChildren(children: React.ReactNode): boolean {\n if (children == null || children === \"\") return false;\n if (typeof children === \"string\") return children.trim() !== \"\";\n return true;\n}\n\nconst _Button = forwardRef<HTMLButtonElement, ButtonProps>(function Button(\n {\n variant = \"solid\",\n size = \"default\",\n icon,\n children,\n overStyled = false,\n loaderVariant = \"oval\",\n loaderSize,\n useRecursicaLoader = true,\n ...rest\n },\n ref,\n) {\n const mapVariant = {\n solid: \"filled\",\n outline: \"outline\",\n text: \"subtle\",\n } as const;\n\n const mapSize = {\n default: \"md\",\n small: \"sm\",\n } as const;\n\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Explicitly delete blocked semantic expansion dimension props\n delete restRecord[\"fullWidth\"];\n\n const hasLeftSection = !!icon || !!restRecord[\"leftSection\"];\n const hasRightSection = !!restRecord[\"rightSection\"];\n const hasVisibleText = hasVisibleChildren(children);\n const isIconOnly = (hasLeftSection || hasRightSection) && !hasVisibleText;\n\n let contentType = \"label\";\n if (isIconOnly) {\n contentType = \"icon-only\";\n } else if (hasLeftSection || hasRightSection) {\n contentType = \"icon-label\";\n }\n\n if (\n typeof process !== \"undefined\" &&\n process.env.NODE_ENV !== \"production\" &&\n isIconOnly &&\n !restRecord[\"aria-label\"]\n ) {\n console.warn(\n '[Recursica Button] Icon-only buttons must provide an accessible name. Pass aria-label (e.g. aria-label=\"Submit\").',\n );\n }\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n section: styles.section,\n label: styles.label,\n loader: styles.loader,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n mergedClassNames.section = o.section ?? styles.section;\n mergedClassNames.label = o.label ?? styles.label;\n }\n\n const classNameProp = restRecord.className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n const userLoaderProps = restRecord.loaderProps as\n | Record<string, unknown>\n | undefined;\n\n const resolvedLoaderSize =\n loaderSize ?? (size === \"small\" ? \"small\" : \"default\");\n\n let mergedLoaderProps = userLoaderProps;\n if (useRecursicaLoader) {\n mergedLoaderProps = {\n children: <Loader variant={loaderVariant} size={resolvedLoaderSize} />,\n ...userLoaderProps,\n };\n }\n\n return (\n <MantineButton\n ref={ref}\n className={finalClass}\n classNames={mergedClassNames}\n variant={mapVariant[variant]}\n size={mapSize[size]}\n loaderProps={mergedLoaderProps}\n leftSection={\n icon != null ? (\n <span className={styles.iconWrapper} aria-hidden>\n {icon}\n </span>\n ) : undefined\n }\n data-variant={variant}\n data-size={size}\n data-content={contentType}\n {...sanitizedProps}\n disabled={!!restRecord.disabled || !!restRecord.loading}\n >\n <span className={styles.labelText}>{children}</span>\n </MantineButton>\n );\n});\n_Button.displayName = \"Button\";\n\n/**\n * Recursica Button component wrapping Mantine's Button.\n *\n * Supports polymorphism via the `component` prop or `renderRoot` for custom element rendering.\n * This is particularly useful when you need a button that behaves as a hyperlink (rendering an `<a>` tag)\n * or integrates with a routing library (e.g., `react-router-dom` or Next.js), while preserving full visual styling.\n *\n * @example\n * ```tsx\n * // Renders as an <a> tag natively\n * <Button component=\"a\" href=\"/dashboard\" target=\"_blank\">Navigate</Button>\n *\n * // Renders using a custom router link\n * <Button renderRoot={(props) => <Link to=\"/home\" {...props} />}>Home</Button>\n * ```\n */\nexport const Button = createPolymorphicComponent<\"button\", ButtonProps>(\n _Button,\n);\n","import { forwardRef } from \"react\";\nimport {\n Card as MantineCard,\n type CardProps as MantineCardProps,\n type CardSectionProps as MantineCardSectionProps,\n createPolymorphicComponent,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Card.module.css\";\n\nimport {\n type RecursicaCardProps,\n type RecursicaCardSectionProps,\n} from \"@recursica/adapter-common\";\n\n// ==== CARD CONTAINER ====\nexport type CardProps = RecursicaOverStyled<\n MantineCardProps & RecursicaCardProps\n> & {\n flex?: string | number;\n flexGrow?: string | number;\n flexShrink?: string | number;\n flexBasis?: string | number;\n grow?: string | number;\n h?: string | number;\n height?: string | number;\n};\n\n/**\n * The root Card elevation box. It establishes the global background color, border radius, nested component gap, and outer shadow governed by the current `Layer` context.\n */\nconst CardBase = forwardRef<HTMLDivElement, CardProps>(function Card(\n { overStyled = false, ...rest },\n ref,\n) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n // Expose outer layout/flexbox properties on Card to allow structuring alongside siblings\n const safeCardLayoutKeys = [\n \"flex\",\n \"flexGrow\",\n \"flexShrink\",\n \"flexBasis\",\n \"grow\",\n \"h\",\n \"height\",\n ] as const;\n safeCardLayoutKeys.forEach((key) => {\n if (key in rest && !(key in sanitizedProps)) {\n (sanitizedProps as Record<string, unknown>)[key] = (\n rest as Record<string, unknown>\n )[key];\n }\n });\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>).classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Record<string, string>;\n Object.keys(o).forEach((key) => {\n if (mergedClassNames[key]) {\n mergedClassNames[key] = `${mergedClassNames[key]} ${o[key]}`;\n } else {\n mergedClassNames[key] = o[key];\n }\n });\n }\n\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <MantineCard\n ref={ref}\n className={classNameProp}\n classNames={mergedClassNames}\n {...(sanitizedProps as unknown as MantineCardProps)}\n />\n );\n});\nCardBase.displayName = \"Card\";\n\nexport type CardSectionProps = RecursicaOverStyled<\n MantineCardSectionProps & RecursicaCardSectionProps\n>;\n\n/**\n * A generalized edge-to-edge structural wrapper native to Mantine. Strips typical boundary padding via negative margins to allow content (like maps or header images) to touch the border seamlessly.\n */\nexport const CardSection = forwardRef<HTMLDivElement, CardSectionProps>(\n function CardSection({ overStyled = false, ...rest }, ref) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <MantineCard.Section\n ref={ref}\n className={\n classNameProp ? `${styles.section} ${classNameProp}` : styles.section\n }\n {...(sanitizedProps as unknown as MantineCardSectionProps)}\n />\n );\n },\n);\nCardSection.displayName = \"CardSection\";\n\n// ==== EXPLICIT CARD.HEADER ====\nexport type CardHeaderProps = RecursicaOverStyled<RecursicaCardSectionProps>;\n\n/**\n * Replaces standard generic Mantine `<Card.Section>` wrappers by directly injecting the strict Recursica design tokens for header sizing, background drops, and intrinsic padding limits.\n */\nexport const CardHeader = forwardRef<HTMLDivElement, CardHeaderProps>(\n function CardHeader({ overStyled = false, ...rest }, ref) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <MantineCard.Section\n ref={ref}\n className={\n classNameProp ? `${styles.header} ${classNameProp}` : styles.header\n }\n {...(sanitizedProps as unknown as MantineCardSectionProps)}\n />\n );\n },\n);\nCardHeader.displayName = \"CardHeader\";\n\n// ==== EXPLICIT CARD.FOOTER ====\nexport type CardFooterProps = RecursicaOverStyled<RecursicaCardSectionProps>;\n\n/**\n * Counterpart to `Card.Header`, applying specific footer elevation margins, sizes, and padding natively.\n */\nexport const CardFooter = forwardRef<HTMLDivElement, CardFooterProps>(\n function CardFooter({ overStyled = false, ...rest }, ref) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <MantineCard.Section\n ref={ref}\n className={\n classNameProp ? `${styles.footer} ${classNameProp}` : styles.footer\n }\n {...(sanitizedProps as unknown as MantineCardSectionProps)}\n />\n );\n },\n);\nCardFooter.displayName = \"CardFooter\";\n\n// ==== EXPLICIT CARD.CONTENT ====\nexport type CardContentProps = RecursicaOverStyled<\n React.HTMLAttributes<HTMLDivElement>\n>;\n\n/**\n * Internal container that safely binds typography and structural flex gaps driven by the active UI kit tokens natively, preserving correct padding blocks compared to rigid `Card.Section` edges.\n */\nexport const CardContent = forwardRef<HTMLDivElement, CardContentProps>(\n function CardContent({ overStyled = false, ...rest }, ref) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <div\n ref={ref}\n className={\n classNameProp ? `${styles.content} ${classNameProp}` : styles.content\n }\n {...sanitizedProps}\n />\n );\n },\n);\nCardContent.displayName = \"CardContent\";\n\n// ==== DOT NOTATION EXPORT ====\n\n/**\n * Recursica Card component wrapping Mantine's Card (Paper).\n *\n * Supports polymorphism via the `component` prop or `renderRoot` for custom element rendering.\n * Use dot-notation sub-components for structured card layouts.\n */\nconst PolymorphicCard = createPolymorphicComponent<\n \"div\",\n CardProps,\n {\n Section: typeof CardSection;\n Header: typeof CardHeader;\n Footer: typeof CardFooter;\n Content: typeof CardContent;\n }\n>(CardBase);\n\n// Attach static components for dot-notation access\nconst _card = PolymorphicCard as unknown as Record<string, unknown>;\n_card.Section = CardSection;\n_card.Header = CardHeader;\n_card.Footer = CardFooter;\n_card.Content = CardContent;\n\nexport const Card = PolymorphicCard as typeof PolymorphicCard & {\n Section: typeof CardSection;\n Header: typeof CardHeader;\n Footer: typeof CardFooter;\n Content: typeof CardContent;\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { forwardRef } from \"react\";\nimport {\n Checkbox as MantineCheckbox,\n type CheckboxGroupProps as MantineCheckboxGroupProps,\n} from \"@mantine/core\";\nimport { type ReadOnlyControlProps } from \"@recursica/adapter-common\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport { type RecursicaFormControlWrapperProps } from \"../FormControlWrapper/FormControlWrapper\";\nimport { WithReadOnlyWrapper } from \"../ReadOnlyField/WithReadOnlyWrapper\";\nimport styles from \"./Checkbox.module.css\";\n\nimport { type RecursicaCheckboxGroupProps as BaseRecursicaCheckboxGroupProps } from \"@recursica/adapter-common\";\n\nexport interface RecursicaCheckboxGroupProps\n extends Omit<\n MantineCheckboxGroupProps,\n \"size\" | \"labelProps\" | \"defaultValue\" | \"value\" | \"onChange\"\n >,\n Omit<\n RecursicaFormControlWrapperProps,\n \"controlMaxWidth\" | \"controlMinWidth\"\n >,\n ReadOnlyControlProps,\n BaseRecursicaCheckboxGroupProps {}\n\nexport type CheckboxGroupProps =\n RecursicaOverStyled<RecursicaCheckboxGroupProps>;\n\nexport const CheckboxGroup = forwardRef<HTMLDivElement, CheckboxGroupProps>(\n function CheckboxGroup(props, ref) {\n const {\n overStyled = false,\n formLayout = \"stacked\",\n\n // Label Wrappers\n labelSize,\n labelAlignment,\n labelOptionalText,\n labelWithEditIcon,\n onLabelEditClick,\n\n // Base Mantine Extracted Attributes\n label,\n description,\n assistiveText,\n assistiveWithIcon,\n error,\n required,\n withAsterisk,\n id,\n className,\n style,\n children,\n readOnly,\n readOnlyComponent,\n emptyValueComponent,\n value,\n defaultValue,\n ...rest\n } = props;\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Delete prohibited sizing hooks from bypassing the variables\n delete restRecord[\"size\"];\n\n return (\n <WithReadOnlyWrapper\n className={className}\n style={style as React.CSSProperties}\n controlMaxWidth=\"var(--recursica_ui-kit_components_checkbox-item_properties_max-width)\"\n controlMinWidth={undefined}\n overStyled={overStyled as true}\n labelElement=\"div\" // Strictly override. ARIA grouping prohibits interactive checkboxes nested natively inside <label>.\n formLayout={formLayout}\n labelSize={labelSize}\n labelAlignment={labelAlignment}\n labelOptionalText={labelOptionalText}\n labelWithEditIcon={labelWithEditIcon}\n onLabelEditClick={onLabelEditClick}\n label={label}\n description={description}\n assistiveText={assistiveText}\n assistiveWithIcon={assistiveWithIcon}\n error={error}\n required={required}\n withAsterisk={withAsterisk}\n id={id}\n readOnly={readOnly && !!readOnlyComponent}\n readOnlyComponent={readOnlyComponent}\n emptyValueComponent={emptyValueComponent}\n readOnlyType=\"text\"\n readOnlyValue={value !== undefined ? value : defaultValue}\n readOnlyNativeProps={props}\n activeComponent={\n <MantineCheckbox.Group\n ref={ref}\n /* Natively bind local disabled lock dynamically */\n {...(sanitizedProps as unknown as MantineCheckboxGroupProps)}\n disabled={readOnly || (restRecord as any).disabled}\n value={value as any}\n defaultValue={defaultValue as any}\n >\n <div className={styles.groupRoot} data-layout={formLayout}>\n {children}\n </div>\n </MantineCheckbox.Group>\n }\n />\n );\n },\n);\n\nCheckboxGroup.displayName = \"CheckboxGroup\";\n","import { forwardRef } from \"react\";\nimport {\n Checkbox as MantineCheckbox,\n type CheckboxProps as MantineCheckboxProps,\n} from \"@mantine/core\";\nimport { type ReadOnlyControlProps } from \"@recursica/adapter-common\";\nimport { CheckboxGroup } from \"./CheckboxGroup\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport {\n type RequireAccessibleLabel,\n type RecursicaCheckboxProps,\n} from \"@recursica/adapter-common\";\nimport {\n FormControlLayout,\n type FormControlLayoutProps,\n} from \"../FormControlLayout/FormControlLayout\";\n\nimport styles from \"./Checkbox.module.css\";\n\nexport type CheckboxWrapperProps = Omit<\n MantineCheckboxProps,\n \"size\" | \"color\" | \"radius\" | \"iconColor\" | \"variant\"\n> &\n RecursicaCheckboxProps &\n ReadOnlyControlProps &\n Pick<\n FormControlLayoutProps,\n \"formLayout\" | \"labelSize\" | \"controlMaxWidth\" | \"controlMinWidth\"\n >;\n\nexport type RecursicaCheckboxPropsAlias =\n RequireAccessibleLabel<CheckboxWrapperProps>;\n\nexport type CheckboxProps = RecursicaOverStyled<RecursicaCheckboxPropsAlias>;\n\ntype CheckboxComponent = React.ForwardRefExoticComponent<\n CheckboxProps & React.RefAttributes<HTMLInputElement>\n> & {\n Group: typeof CheckboxGroup;\n};\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n function Checkbox(props, ref) {\n const {\n overStyled = false,\n readOnly,\n readOnlyComponent,\n disabled,\n formLayout,\n labelSize,\n controlMaxWidth,\n controlMinWidth,\n ...rest\n } = props;\n // Checkbox doesn't use Label onLabelEditClick natively since it isn't mapped inside FormControlWrapper intrinsically.\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Actively delete dimension bindings that bypass the abstraction\n delete restRecord[\"size\"];\n delete restRecord[\"color\"];\n delete restRecord[\"radius\"];\n delete restRecord[\"variant\"];\n delete restRecord[\"iconColor\"];\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n body: styles.body,\n inner: styles.inner,\n input: styles.input,\n icon: styles.icon,\n labelWrapper: styles.labelWrapper,\n label: styles.label,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n mergedClassNames.body = o.body ? `${styles.body} ${o.body}` : styles.body;\n mergedClassNames.inner = o.inner\n ? `${styles.inner} ${o.inner}`\n : styles.inner;\n mergedClassNames.input = o.input\n ? `${styles.input} ${o.input}`\n : styles.input;\n mergedClassNames.icon = o.icon ? `${styles.icon} ${o.icon}` : styles.icon;\n mergedClassNames.labelWrapper = o.labelWrapper\n ? `${styles.labelWrapper} ${o.labelWrapper}`\n : styles.labelWrapper;\n mergedClassNames.label = o.label\n ? `${styles.label} ${o.label}`\n : styles.label;\n }\n\n const classNameProp = restRecord.className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n if (readOnly && !!readOnlyComponent) {\n const isChecked = !!(restRecord.checked ?? restRecord.defaultChecked);\n const ReadOnlyComp = readOnlyComponent;\n const roNode = (\n <ReadOnlyComp\n {...props}\n checked={isChecked}\n label={restRecord.label as React.ReactNode}\n />\n );\n\n if (formLayout) {\n return (\n <FormControlLayout\n formLayout={formLayout}\n labelSize={labelSize}\n controlMaxWidth={controlMaxWidth}\n controlMinWidth={controlMinWidth}\n >\n {roNode}\n </FormControlLayout>\n );\n }\n\n return <>{roNode}</>;\n }\n\n // We omit Mantine's sizing/coloring so we rely strictly on variables from Checkbox.module.css\n const checkboxNode = (\n <MantineCheckbox\n ref={ref}\n className={finalClass}\n classNames={mergedClassNames}\n disabled={readOnly || disabled}\n {...(sanitizedProps as unknown as MantineCheckboxProps)}\n />\n );\n\n if (formLayout) {\n return (\n <FormControlLayout\n formLayout={formLayout}\n labelSize={labelSize}\n controlMaxWidth={controlMaxWidth}\n controlMinWidth={controlMinWidth}\n >\n {checkboxNode}\n </FormControlLayout>\n );\n }\n\n return checkboxNode;\n },\n) as CheckboxComponent;\n\nCheckbox.displayName = \"Checkbox\";\nCheckbox.Group = CheckboxGroup;\n","import React, { forwardRef } from \"react\";\nimport {\n Chip as MantineChip,\n type ChipProps as MantineChipProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Chip.module.css\";\nimport { type RecursicaChipProps } from \"@recursica/adapter-common\";\n\nexport type ChipProps = RecursicaOverStyled<\n Omit<MantineChipProps, \"variant\" | \"size\" | \"color\" | \"radius\"> &\n RecursicaChipProps\n>;\n\nfunction CloseIcon(props: React.ComponentPropsWithoutRef<\"svg\">) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n {...props}\n >\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line>\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line>\n </svg>\n );\n}\n\nexport const Chip = forwardRef<HTMLInputElement, ChipProps>(function Chip(\n {\n error = false,\n icon,\n onRemove,\n removeLabel = \"Remove\",\n children,\n overStyled = false,\n ...rest\n },\n ref,\n) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n label: styles.label,\n input: styles.input,\n iconWrapper: styles.mantineIconWrapper,\n checkIcon: styles.checkIcon,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n mergedClassNames.label = o.label\n ? `${styles.label} ${o.label}`\n : styles.label;\n }\n\n const classNameProp = restRecord.className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n // Determine state\n const dataError = error ? \"\" : undefined;\n const isIconOnly = !children && (!!icon || !!onRemove);\n const isInteractive =\n restRecord.checked !== undefined ||\n restRecord.defaultChecked !== undefined ||\n onRemove !== undefined ||\n restRecord.onClick !== undefined;\n\n return (\n <MantineChip\n ref={ref}\n className={finalClass}\n classNames={mergedClassNames}\n wrapperProps={dataError !== undefined ? { \"data-error\": \"\" } : undefined}\n {...(isIconOnly ? { \"data-icon-only\": \"\" } : {})}\n {...(!isInteractive ? { tabIndex: -1, \"aria-hidden\": true } : {})}\n {...sanitizedProps}\n >\n <span className={styles.innerWrapper}>\n {icon && (\n <span className={styles.leadingIcon} aria-hidden>\n {icon}\n </span>\n )}\n\n <span className={styles.children}>{children}</span>\n\n {onRemove && (\n <span\n role=\"button\"\n className={styles.removeIcon}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n onRemove(e);\n }}\n aria-label={removeLabel}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n e.stopPropagation();\n onRemove(\n e as unknown as React.MouseEvent<HTMLSpanElement, MouseEvent>,\n );\n }\n }}\n tabIndex={0}\n >\n <CloseIcon />\n </span>\n )}\n </span>\n </MantineChip>\n );\n});\n\nChip.displayName = \"Chip\";\n","import { forwardRef } from \"react\";\nimport {\n Container as MantineContainer,\n type ContainerProps as MantineContainerProps,\n} from \"@mantine/core\";\nimport styles from \"./Container.module.css\";\n\nimport { type WithRecursicaSpacing } from \"../../utils/filterStylingProps\";\nimport { type RecursicaContainerProps } from \"@recursica/adapter-common\";\n\n/**\n * Container layout wrapper.\n *\n * Note: Unlike complex UI components, primitive layout components (Flex, Stack, Group, Container)\n * DO NOT use the `RecursicaOverStyled` gatekeeper. Developers must be able to freely pass\n * width, height, padding, margins, and flexbox alignment props to construct structural layouts.\n */\nexport type ContainerProps = WithRecursicaSpacing<\n Omit<MantineContainerProps, \"size\"> & RecursicaContainerProps\n>;\n\nexport const Container = forwardRef<HTMLDivElement, ContainerProps>(\n function Container({ children, size, ...rest }, ref) {\n const mapSize: Record<string, string> = {\n \"rec-sm\": \"sm\",\n \"rec-default\": \"md\",\n \"rec-md\": \"md\",\n \"rec-lg\": \"lg\",\n \"rec-xl\": \"xl\",\n \"rec-2xl\": \"xl\",\n };\n\n const resolvedSize =\n typeof size === \"string\" && mapSize[size] ? mapSize[size] : size;\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n };\n\n const classNamesProp = rest.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n }\n\n const classNameProp = rest.className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n return (\n <MantineContainer\n ref={ref}\n size={resolvedSize}\n className={finalClass}\n classNames={mergedClassNames}\n {...rest}\n >\n {children}\n </MantineContainer>\n );\n },\n);\n\nContainer.displayName = \"Container\";\n","import React, { forwardRef } from \"react\";\nimport { DatePickerInput, type DatePickerInputProps } from \"@mantine/dates\";\nimport { type ReadOnlyControlProps } from \"@recursica/adapter-common\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport { type RecursicaFormControlWrapperProps } from \"../FormControlWrapper/FormControlWrapper\";\nimport { WithReadOnlyWrapper } from \"../ReadOnlyField/WithReadOnlyWrapper\";\nimport styles from \"./DatePicker.module.css\";\n\nimport { type RecursicaDatePickerProps as BaseRecursicaDatePickerProps } from \"@recursica/adapter-common\";\n\nexport interface RecursicaDatePickerProps\n extends Omit<\n DatePickerInputProps,\n | \"size\"\n | \"variant\"\n | \"radius\"\n | \"wrapperProps\"\n | \"label\"\n | \"error\"\n | \"required\"\n | \"withAsterisk\"\n | \"id\"\n | \"description\"\n >,\n Pick<\n DatePickerInputProps,\n \"label\" | \"error\" | \"required\" | \"withAsterisk\" | \"id\"\n >,\n Omit<\n RecursicaFormControlWrapperProps,\n \"controlMaxWidth\" | \"controlMinWidth\"\n >,\n ReadOnlyControlProps,\n BaseRecursicaDatePickerProps {}\n\nexport type DatePickerProps = RecursicaOverStyled<RecursicaDatePickerProps>;\n\nexport const DatePicker = forwardRef<HTMLButtonElement, DatePickerProps>(\n function DatePicker(props, ref) {\n const {\n overStyled = false,\n formLayout = \"stacked\",\n\n // Label & Wrapper Maps\n labelSize,\n labelAlignment,\n labelOptionalText,\n labelWithEditIcon,\n onLabelEditClick,\n\n label,\n assistiveText,\n assistiveWithIcon,\n error,\n required,\n withAsterisk,\n id,\n className,\n style,\n disabled,\n readOnly,\n readOnlyComponent,\n emptyValueComponent,\n value,\n defaultValue,\n ...rest\n } = props;\n\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Delete prohibited sizing hooks from bypassing variables natively\n delete restRecord[\"size\"];\n delete restRecord[\"variant\"];\n delete restRecord[\"radius\"];\n delete restRecord[\"description\"]; // Managed by FormControlWrapper via assistiveText\n\n // Securely map core native blocks down ensuring nested CSS modules map precisely\n const mergedClassNames: Partial<Record<string, string>> = {\n wrapper: styles.root, // The nested Input internal relative wrapper bounding box\n input: styles.input,\n section: styles.section,\n dropdown: styles.dropdown,\n day: styles.day,\n calendarHeader: styles.calendarHeader,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.wrapper = o.wrapper\n ? `${styles.root} ${o.wrapper}`\n : styles.root;\n mergedClassNames.input = o.input\n ? `${styles.input} ${o.input}`\n : styles.input;\n mergedClassNames.section = o.section\n ? `${styles.section} ${o.section}`\n : styles.section;\n }\n\n const wrapperClass = className\n ? `${styles.layoutOverride} ${className}`\n : styles.layoutOverride;\n\n return (\n <WithReadOnlyWrapper\n className={wrapperClass}\n style={style as React.CSSProperties}\n controlMaxWidth={undefined}\n controlMinWidth={undefined}\n overStyled={overStyled as true}\n formLayout={formLayout}\n labelSize={labelSize}\n labelAlignment={labelAlignment}\n labelOptionalText={labelOptionalText}\n labelWithEditIcon={labelWithEditIcon}\n onLabelEditClick={onLabelEditClick}\n label={label}\n assistiveText={assistiveText}\n assistiveWithIcon={assistiveWithIcon}\n error={error}\n required={required}\n withAsterisk={withAsterisk}\n id={id}\n readOnly={readOnly}\n readOnlyComponent={readOnlyComponent}\n emptyValueComponent={emptyValueComponent}\n readOnlyType=\"text\"\n readOnlyValue={\n value !== undefined\n ? String(value)\n : defaultValue\n ? String(defaultValue)\n : undefined\n }\n readOnlyNativeProps={props}\n activeComponent={\n /* Naked Input execution safely decoupled from Mantine's macro Input.Wrapper DOM hooks */\n <DatePickerInput\n ref={ref}\n classNames={mergedClassNames}\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n label={undefined} // Disable Mantine's native label\n description={undefined} // Disable Mantine's native description\n error={undefined} // Disable Mantine's native error text (handled by wrapper)\n withAsterisk={false} // Handled by wrapper\n wrapperProps={{\n \"data-disabled\": disabled ? \"true\" : undefined,\n \"data-error\": error ? \"true\" : undefined,\n }}\n {...(sanitizedProps as unknown as DatePickerInputProps)}\n />\n }\n />\n );\n },\n);\n\nDatePicker.displayName = \"DatePicker\";\n","import React, { forwardRef } from \"react\";\nimport {\n Select as MantineSelect,\n type SelectProps as MantineSelectProps,\n} from \"@mantine/core\";\nimport { type ReadOnlyControlProps } from \"@recursica/adapter-common\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport { type RecursicaFormControlWrapperProps } from \"../FormControlWrapper/FormControlWrapper\";\nimport { WithReadOnlyWrapper } from \"../ReadOnlyField/WithReadOnlyWrapper\";\nimport styles from \"./Dropdown.module.css\";\n\nimport { type RecursicaDropdownProps as BaseRecursicaDropdownProps } from \"@recursica/adapter-common\";\n\nexport interface RecursicaDropdownProps\n extends Omit<\n MantineSelectProps,\n \"size\" | \"variant\" | \"radius\" | \"wrapperProps\" | \"data\"\n >,\n Omit<\n RecursicaFormControlWrapperProps,\n \"controlMaxWidth\" | \"controlMinWidth\"\n >,\n ReadOnlyControlProps,\n BaseRecursicaDropdownProps {}\n\nexport type DropdownProps = RecursicaOverStyled<RecursicaDropdownProps>;\n\nexport const Dropdown = forwardRef<HTMLInputElement, DropdownProps>(\n function Dropdown(props, ref) {\n const {\n overStyled = false,\n formLayout = \"stacked\",\n containerWidth,\n\n // Label & Wrapper Maps\n labelSize,\n labelAlignment,\n labelOptionalText,\n labelWithEditIcon,\n onLabelEditClick,\n\n label,\n assistiveText,\n assistiveWithIcon,\n error,\n required,\n withAsterisk,\n id,\n className,\n style,\n disabled,\n readOnly,\n readOnlyComponent,\n emptyValueComponent,\n value,\n defaultValue,\n data,\n ...rest\n } = props;\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Delete prohibited sizing hooks from bypassing variables natively\n delete restRecord[\"size\"];\n delete restRecord[\"variant\"];\n delete restRecord[\"radius\"];\n\n // Securely map core native blocks down ensuring nested CSS modules map precisely\n const mergedClassNames: Partial<Record<string, string>> = {\n wrapper: styles.root, // The nested Input internal relative wrapper bounding box\n input: styles.input,\n section: styles.section,\n dropdown: styles.dropdown,\n option: styles.option,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.wrapper = o.wrapper\n ? `${styles.root} ${o.wrapper}`\n : styles.root;\n mergedClassNames.input = o.input\n ? `${styles.input} ${o.input}`\n : styles.input;\n mergedClassNames.section = o.section\n ? `${styles.section} ${o.section}`\n : styles.section;\n mergedClassNames.dropdown = o.dropdown\n ? `${styles.dropdown} ${o.dropdown}`\n : styles.dropdown;\n mergedClassNames.option = o.option\n ? `${styles.option} ${o.option}`\n : styles.option;\n }\n\n const injectedStyles = {\n ...((style as React.CSSProperties) || {}),\n width: containerWidth || \"100%\",\n };\n\n const wrapperClass = className\n ? `${styles.layoutOverride} ${className}`\n : styles.layoutOverride;\n\n return (\n <WithReadOnlyWrapper\n className={wrapperClass}\n style={injectedStyles}\n controlMaxWidth=\"var(--recursica_ui-kit_components_dropdown_properties_max-width)\"\n controlMinWidth=\"var(--recursica_ui-kit_components_dropdown_properties_min-width)\"\n overStyled={overStyled as true}\n formLayout={formLayout}\n labelSize={labelSize}\n labelAlignment={labelAlignment}\n labelOptionalText={labelOptionalText}\n labelWithEditIcon={labelWithEditIcon}\n onLabelEditClick={onLabelEditClick}\n label={label}\n assistiveText={assistiveText}\n assistiveWithIcon={assistiveWithIcon}\n error={error}\n required={required}\n withAsterisk={withAsterisk}\n id={id}\n readOnly={readOnly}\n readOnlyComponent={readOnlyComponent}\n emptyValueComponent={emptyValueComponent}\n readOnlyType=\"text\"\n readOnlyValue={\n value !== undefined\n ? String(value)\n : defaultValue\n ? String(defaultValue)\n : undefined\n }\n readOnlyNativeProps={props}\n activeComponent={\n /* Naked Select execution safely decoupled from Mantine's macro Input.Wrapper DOM hooks */\n <MantineSelect\n ref={ref}\n classNames={mergedClassNames}\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n data={(data as unknown as MantineSelectProps[\"data\"]) || []}\n label={undefined}\n description={undefined}\n error={undefined}\n required={undefined}\n withAsterisk={undefined}\n wrapperProps={{\n \"data-disabled\": disabled ? \"true\" : undefined,\n \"data-error\": error ? \"true\" : undefined,\n }}\n {...(sanitizedProps as unknown as MantineSelectProps)}\n />\n }\n />\n );\n },\n);\n\nDropdown.displayName = \"Dropdown\";\n","import React from \"react\";\n\nexport type FileInputProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const FileInput: React.FC<FileInputProps> = (props) => {\n return <div {...props}>FileInput</div>;\n};\n","import React from \"react\";\n\nexport type FileUploadProps = React.HTMLAttributes<HTMLDivElement>;\n\nexport const FileUpload: React.FC<FileUploadProps> = (props) => {\n return <div {...props}>FileUpload</div>;\n};\n","import { forwardRef } from \"react\";\nimport {\n Flex as MantineFlex,\n type FlexProps as MantineFlexProps,\n createPolymorphicComponent,\n} from \"@mantine/core\";\nimport {\n mapLayoutProps,\n type WithRecursicaSpacing,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Flex.module.css\";\n\nimport { type RecursicaFlexProps } from \"@recursica/adapter-common\";\n\n/**\n * Flex layout wrapper.\n *\n * Note: Unlike complex UI components, primitive layout components (Flex, Stack, Group, Container)\n * DO NOT use the `RecursicaOverStyled` gatekeeper. Developers must be able to freely pass\n * width, height, padding, margins, and flexbox alignment props to construct structural layouts.\n */\nexport type FlexProps = WithRecursicaSpacing<\n MantineFlexProps & RecursicaFlexProps\n>;\n\nconst _Flex = forwardRef<HTMLDivElement, FlexProps>(function Flex(\n { children, gap = \"rec-default\", rowGap, columnGap, ...rest },\n ref,\n) {\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n };\n\n const classNamesProp = rest.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n }\n\n const classNameProp = rest.className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n return (\n <MantineFlex\n ref={ref}\n className={finalClass}\n classNames={mergedClassNames}\n {...mapLayoutProps({ gap, rowGap, columnGap, ...rest } as Record<\n string,\n unknown\n >)}\n >\n {children}\n </MantineFlex>\n );\n});\n_Flex.displayName = \"Flex\";\n\n/**\n * Recursica Flex layout wrapper.\n *\n * Supports polymorphism via the `component` prop or `renderRoot` for custom element rendering.\n * @example\n * ```tsx\n * <Flex component=\"nav\">...</Flex>\n * <Flex component=\"section\">...</Flex>\n * ```\n */\nexport const Flex = createPolymorphicComponent<\"div\", FlexProps>(_Flex);\n","import { forwardRef } from \"react\";\nimport {\n Group as MantineGroup,\n type GroupProps as MantineGroupProps,\n} from \"@mantine/core\";\nimport {\n mapLayoutProps,\n type WithRecursicaSpacing,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Group.module.css\";\n\nimport { type RecursicaGroupProps } from \"@recursica/adapter-common\";\n\n/**\n * Group flex layout wrapper.\n *\n * Note: Unlike complex UI components, primitive layout components (Flex, Stack, Group, Container)\n * DO NOT use the `RecursicaOverStyled` gatekeeper. Developers must be able to freely pass\n * width, height, padding, margins, and flexbox alignment props to construct structural layouts.\n */\nexport type GroupProps = WithRecursicaSpacing<\n MantineGroupProps & RecursicaGroupProps\n>;\n\nexport const Group = forwardRef<HTMLDivElement, GroupProps>(function Group(\n { children, gap = \"rec-default\", ...rest },\n ref,\n) {\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n };\n\n const classNamesProp = rest.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n }\n\n const classNameProp = rest.className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n return (\n <MantineGroup\n ref={ref}\n className={finalClass}\n classNames={mergedClassNames}\n {...mapLayoutProps({ gap, ...rest } as Record<string, unknown>)}\n >\n {children}\n </MantineGroup>\n );\n});\n\nGroup.displayName = \"Group\";\n","import {\n HoverCard as MantineHoverCard,\n type HoverCardProps as MantineHoverCardProps,\n type HoverCardTargetProps as MantineHoverCardTargetProps,\n type HoverCardDropdownProps as MantineHoverCardDropdownProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./HoverCard.module.css\";\n\n// ============================================================\n// HOVERCARD ROOT\n// ============================================================\n\n/**\n * Recursica-specific props for HoverCard.\n */\nimport { type RecursicaHoverCardProps } from \"@recursica/adapter-common\";\n\n/**\n * Recursica HoverCard component wrapping Mantine's composable HoverCard.\n *\n * Displays a dropdown panel when the user hovers over a target element.\n * Uses the composable dot-notation pattern:\n * ```tsx\n * <HoverCard withBeak>\n * <HoverCard.Target>\n * <Button>Hover me</Button>\n * </HoverCard.Target>\n * <HoverCard.Dropdown>\n * Content displayed on hover\n * </HoverCard.Dropdown>\n * </HoverCard>\n * ```\n */\nexport type HoverCardProps = RecursicaOverStyled<\n MantineHoverCardProps & RecursicaHoverCardProps\n>;\n\nconst HoverCardBase = function HoverCard({\n overStyled = false,\n withBeak = true,\n ...rest\n}: HoverCardProps) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n // Bind CSS module classes to Mantine's internal classNames API\n const mergedClassNames: Partial<Record<string, string>> = {\n dropdown: styles.dropdown,\n arrow: styles.arrow,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>).classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Record<string, string>;\n Object.keys(o).forEach((key) => {\n if (mergedClassNames[key]) {\n mergedClassNames[key] = `${mergedClassNames[key]} ${o[key]}`;\n } else {\n mergedClassNames[key] = o[key];\n }\n });\n }\n\n // arrowSize must be a JS number prop — Mantine uses it for inline width/height\n // and positioning offset (-arrowSize/2) calculations that cannot be CSS-driven.\n // Default to 16 to match the Recursica beak-size token (16px).\n const arrowSize =\n ((sanitizedProps as Record<string, unknown>).arrowSize as\n | number\n | undefined) ?? 16;\n\n // Resolve withBeak (Recursica) vs withArrow (Mantine).\n // withBeak takes precedence when both are provided.\n const withArrow = (sanitizedProps as Record<string, unknown>).withArrow as\n | boolean\n | undefined;\n const resolvedWithArrow = withBeak ?? withArrow;\n\n return (\n <MantineHoverCard\n position=\"top\" /* Recursica default; Mantine defaults to \"bottom\" */\n arrowSize={arrowSize}\n withArrow={resolvedWithArrow}\n classNames={mergedClassNames}\n {...(sanitizedProps as unknown as MantineHoverCardProps)}\n />\n );\n};\nHoverCardBase.displayName = \"HoverCard\";\n\n// ============================================================\n// HOVERCARD TARGET\n// ============================================================\n\n/**\n * Wrapper for the element that triggers the hover card.\n * Requires a single child element that supports ref forwarding.\n */\nexport type HoverCardTargetProps = MantineHoverCardTargetProps;\n\nconst HoverCardTarget = function HoverCardTarget(props: HoverCardTargetProps) {\n return <MantineHoverCard.Target {...props} />;\n};\nHoverCardTarget.displayName = \"HoverCardTarget\";\n\n// ============================================================\n// HOVERCARD DROPDOWN\n// ============================================================\n\n/** The dropdown panel displayed when hovering over the target. */\nexport type HoverCardDropdownProps =\n RecursicaOverStyled<MantineHoverCardDropdownProps>;\n\nconst HoverCardDropdown = function HoverCardDropdown({\n overStyled = false,\n ...rest\n}: HoverCardDropdownProps) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <MantineHoverCard.Dropdown\n className={classNameProp}\n {...(sanitizedProps as unknown as MantineHoverCardDropdownProps)}\n />\n );\n};\nHoverCardDropdown.displayName = \"HoverCardDropdown\";\n\n// ============================================================\n// DOT NOTATION EXPORT\n// ============================================================\n\ntype HoverCardComponent = typeof HoverCardBase & {\n Target: typeof HoverCardTarget;\n Dropdown: typeof HoverCardDropdown;\n};\n\nexport const HoverCard = HoverCardBase as HoverCardComponent;\nHoverCard.Target = HoverCardTarget;\nHoverCard.Dropdown = HoverCardDropdown;\n","import { forwardRef } from \"react\";\nimport {\n Anchor as MantineAnchor,\n type AnchorProps as MantineAnchorProps,\n createPolymorphicComponent,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Link.module.css\";\n\nimport { type RecursicaLinkProps } from \"@recursica/adapter-common\";\n\nexport type LinkProps = RecursicaOverStyled<\n Omit<MantineAnchorProps, \"underline\"> & Omit<RecursicaLinkProps, \"component\">\n>;\n\nconst _Link = forwardRef<HTMLAnchorElement, LinkProps>(function Link(\n { icon, children, overStyled = false, ...rest },\n ref,\n) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n }\n\n const classNameProp = restRecord.className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n return (\n <MantineAnchor\n ref={ref}\n className={finalClass}\n classNames={mergedClassNames}\n underline=\"never\"\n {...(icon ? { \"data-has-icon\": \"\" } : {})}\n {...(sanitizedProps as Record<string, unknown>)}\n >\n {icon && (\n <span className={styles.iconWrapper} aria-hidden>\n {icon}\n </span>\n )}\n <span className={styles.labelText}>{children}</span>\n </MantineAnchor>\n );\n});\n_Link.displayName = \"Link\";\n\n/**\n * Recursica Link component wrapping Mantine's Anchor.\n *\n * Supports polymorphism via the `component` prop or `renderRoot` for custom element rendering (e.g. react-router Link).\n * @example\n * ```tsx\n * <Link component=\"a\" href=\"https://example.com\">External Link</Link>\n * <Link renderRoot={(props) => <RouterLink to=\"/home\" {...props} />}>Home</Link>\n * ```\n */\nexport const Link = createPolymorphicComponent<\"a\", LinkProps>(_Link);\n","import { forwardRef } from \"react\";\nimport {\n Menu as MantineMenu,\n type MenuProps as MantineMenuProps,\n type MenuTargetProps as MantineMenuTargetProps,\n type MenuDropdownProps as MantineMenuDropdownProps,\n type MenuItemProps as MantineMenuItemProps,\n type MenuDividerProps as MantineMenuDividerProps,\n type MenuLabelProps as MantineMenuLabelProps,\n type MenuSubProps as MantineMenuSubProps,\n type MenuSubTargetProps as MantineMenuSubTargetProps,\n type MenuSubDropdownProps as MantineMenuSubDropdownProps,\n createPolymorphicComponent,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Menu.module.css\";\n\nimport { type RecursicaMenuProps } from \"@recursica/adapter-common\";\n\n// ============================================================\n// MENU ROOT\n// ============================================================\n\n/**\n * Recursica Menu component wrapping Mantine's composable Menu.\n *\n * Usage follows the composable dot-notation pattern:\n * ```tsx\n * <Menu>\n * <Menu.Target><Button>Open</Button></Menu.Target>\n * <Menu.Dropdown>\n * <Menu.Label>Section</Menu.Label>\n * <Menu.Item>Action</Menu.Item>\n * <Menu.Divider />\n * <Menu.Item>Another action</Menu.Item>\n * </Menu.Dropdown>\n * </Menu>\n * ```\n */\nexport type MenuProps = RecursicaOverStyled<\n MantineMenuProps & RecursicaMenuProps\n>;\n\nconst MenuBase = function Menu({ overStyled = false, ...rest }: MenuProps) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n // Bind CSS module classes to Mantine's internal classNames API\n const mergedClassNames: Partial<Record<string, string>> = {\n dropdown: styles.dropdown,\n item: styles.item,\n itemLabel: styles.itemLabel,\n itemSection: styles.itemSection,\n divider: styles.divider,\n label: styles.label,\n chevron: styles.chevron,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>).classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Record<string, string>;\n Object.keys(o).forEach((key) => {\n if (mergedClassNames[key]) {\n mergedClassNames[key] = `${mergedClassNames[key]} ${o[key]}`;\n } else {\n mergedClassNames[key] = o[key];\n }\n });\n }\n\n return (\n <MantineMenu\n classNames={mergedClassNames}\n {...(sanitizedProps as unknown as MantineMenuProps)}\n />\n );\n};\nMenuBase.displayName = \"Menu\";\n\n// ============================================================\n// MENU TARGET\n// ============================================================\n\n/**\n * Wrapper for the element that triggers the menu.\n * Requires a single child element that supports ref forwarding.\n */\nexport type MenuTargetProps = MantineMenuTargetProps;\n\nconst MenuTarget = function MenuTarget(props: MenuTargetProps) {\n return <MantineMenu.Target {...props} />;\n};\nMenuTarget.displayName = \"MenuTarget\";\n\n// ============================================================\n// MENU DROPDOWN\n// ============================================================\n\n/** The dropdown panel containing menu items, dividers, and labels. */\nexport type MenuDropdownProps = RecursicaOverStyled<MantineMenuDropdownProps>;\n\nconst MenuDropdown = forwardRef<HTMLDivElement, MenuDropdownProps>(\n function MenuDropdown({ overStyled = false, ...rest }, ref) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <MantineMenu.Dropdown\n ref={ref}\n className={classNameProp}\n {...(sanitizedProps as unknown as MantineMenuDropdownProps)}\n />\n );\n },\n);\nMenuDropdown.displayName = \"MenuDropdown\";\n\n// ============================================================\n// MENU ITEM\n// ============================================================\n\n/**\n * An individual actionable item within the menu dropdown.\n *\n * **Note:** Mantine's `color` prop is stripped in strict mode to enforce\n * design token adherence. Use `overStyled={true}` if you need to bypass.\n */\nexport type MenuItemProps = RecursicaOverStyled<\n Omit<MantineMenuItemProps, \"color\">\n>;\n\nconst _MenuItem = forwardRef<HTMLButtonElement, MenuItemProps>(\n function MenuItem({ overStyled = false, ...rest }, ref) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Strip Mantine's `color` prop to enforce token-driven styling\n if (!overStyled) {\n delete restRecord[\"color\"];\n }\n\n const classNameProp = restRecord.className as string | undefined;\n\n return (\n <MantineMenu.Item\n ref={ref}\n className={classNameProp}\n {...(sanitizedProps as unknown as MantineMenuItemProps)}\n />\n );\n },\n);\n_MenuItem.displayName = \"MenuItem\";\n\n/**\n * An individual actionable item within the menu dropdown.\n *\n * Supports polymorphism via the `component` prop for link-style items.\n * @example\n * ```tsx\n * <Menu.Item component=\"a\" href=\"/settings\">Settings</Menu.Item>\n * ```\n */\nconst MenuItem = createPolymorphicComponent<\"button\", MenuItemProps>(_MenuItem);\n\n// ============================================================\n// MENU DIVIDER\n// ============================================================\n\n/** A visual separator between groups of menu items. */\nexport type MenuDividerProps = RecursicaOverStyled<MantineMenuDividerProps>;\n\nconst MenuDivider = forwardRef<HTMLHRElement, MenuDividerProps>(\n function MenuDivider({ overStyled = false, ...rest }, ref) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <MantineMenu.Divider\n ref={ref}\n className={classNameProp}\n {...(sanitizedProps as unknown as MantineMenuDividerProps)}\n />\n );\n },\n);\nMenuDivider.displayName = \"MenuDivider\";\n\n// ============================================================\n// MENU LABEL\n// ============================================================\n\n/** A non-interactive section label used to categorize groups of menu items. */\nexport type MenuLabelProps = RecursicaOverStyled<MantineMenuLabelProps>;\n\nconst MenuLabel = forwardRef<HTMLDivElement, MenuLabelProps>(function MenuLabel(\n { overStyled = false, ...rest },\n ref,\n) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <MantineMenu.Label\n ref={ref}\n className={classNameProp}\n {...(sanitizedProps as unknown as MantineMenuLabelProps)}\n />\n );\n});\nMenuLabel.displayName = \"MenuLabel\";\n\n// ============================================================\n// MENU SUB (SUBMENU CONTAINER)\n// ============================================================\n\n/** Container for a submenu, wrapping Menu.Sub.Target and Menu.Sub.Dropdown. */\nexport type MenuSubProps = MantineMenuSubProps;\n\nconst MenuSubBase = function MenuSub(props: MenuSubProps) {\n return <MantineMenu.Sub {...props} />;\n};\nMenuSubBase.displayName = \"MenuSub\";\n\n// ============================================================\n// MENU SUB TARGET\n// ============================================================\n\n/** Wrapper for the element that triggers the submenu. */\nexport type MenuSubTargetProps = MantineMenuSubTargetProps;\n\nconst MenuSubTarget = function MenuSubTarget(props: MenuSubTargetProps) {\n return <MantineMenu.Sub.Target {...props} />;\n};\nMenuSubTarget.displayName = \"MenuSubTarget\";\n\n// ============================================================\n// MENU SUB ITEM (triggers submenu)\n// ============================================================\n\n/**\n * A menu item that acts as a submenu trigger.\n * Renders within Menu.Sub.Target and displays a chevron indicator.\n */\nexport type MenuSubItemProps = RecursicaOverStyled<\n Omit<MantineMenuItemProps, \"color\">\n>;\n\nconst _MenuSubItem = forwardRef<HTMLButtonElement, MenuSubItemProps>(\n function MenuSubItem({ overStyled = false, ...rest }, ref) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n if (!overStyled) {\n delete restRecord[\"color\"];\n }\n\n const classNameProp = restRecord.className as string | undefined;\n\n return (\n <MantineMenu.Sub.Item\n ref={ref}\n className={classNameProp}\n {...(sanitizedProps as unknown as MantineMenuItemProps)}\n />\n );\n },\n);\n_MenuSubItem.displayName = \"MenuSubItem\";\n\n/**\n * A menu item that acts as a submenu trigger.\n *\n * Supports polymorphism via the `component` prop.\n */\nconst MenuSubItem = createPolymorphicComponent<\"button\", MenuSubItemProps>(\n _MenuSubItem,\n);\n\n// ============================================================\n// MENU SUB DROPDOWN\n// ============================================================\n\n/** The dropdown panel for a submenu. */\nexport type MenuSubDropdownProps =\n RecursicaOverStyled<MantineMenuSubDropdownProps>;\n\nconst MenuSubDropdown = forwardRef<HTMLDivElement, MenuSubDropdownProps>(\n function MenuSubDropdown({ overStyled = false, ...rest }, ref) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <MantineMenu.Sub.Dropdown\n ref={ref}\n className={classNameProp}\n {...(sanitizedProps as unknown as MantineMenuSubDropdownProps)}\n />\n );\n },\n);\nMenuSubDropdown.displayName = \"MenuSubDropdown\";\n\n// ============================================================\n// DOT NOTATION EXPORT\n// ============================================================\n\ntype MenuSubComponent = typeof MenuSubBase & {\n Target: typeof MenuSubTarget;\n Item: typeof MenuSubItem;\n Dropdown: typeof MenuSubDropdown;\n};\n\nconst MenuSub = MenuSubBase as MenuSubComponent;\nMenuSub.Target = MenuSubTarget;\nMenuSub.Item = MenuSubItem;\nMenuSub.Dropdown = MenuSubDropdown;\n\ntype MenuComponent = typeof MenuBase & {\n Target: typeof MenuTarget;\n Dropdown: typeof MenuDropdown;\n Item: typeof MenuItem;\n Divider: typeof MenuDivider;\n Label: typeof MenuLabel;\n Sub: MenuSubComponent;\n};\n\nexport const Menu = MenuBase as MenuComponent;\nMenu.Target = MenuTarget;\nMenu.Dropdown = MenuDropdown;\nMenu.Item = MenuItem;\nMenu.Divider = MenuDivider;\nMenu.Label = MenuLabel;\nMenu.Sub = MenuSub;\n","import React from \"react\";\nimport {\n Modal as MantineModal,\n type ModalProps as MantineModalProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Modal.module.css\";\n\nimport { type RecursicaModalProps } from \"@recursica/adapter-common\";\n\n/**\n * Properties for the strictly-tokenized Modal component.\n * Native Mantine abstract properties like `size`, `radius`, and `shadow` have been stripped out\n * because they directly conflict with the non-negotiable pixel boundaries defined in the Recursica UI Kit.\n */\nexport type ModalProps = RecursicaOverStyled<\n Omit<MantineModalProps, \"size\" | \"radius\" | \"shadow\"> & RecursicaModalProps\n>;\n\n/**\n * The `Modal` component displays a window overlaid on the primary viewport.\n *\n * **Recursica Abstract:**\n * This component acts as a strict structural wrapper around Mantine's `<Modal>`.\n * It automatically enforces Figma UI Kit geometries (`max-width: 960px`, `min-width: 304px`)\n * and handles internal body scrolling explicitly via CSS module overrides.\n *\n * @example\n * ```tsx\n * <Modal opened={opened} onClose={close} title=\"Hello World\">\n * Modal Content\n * </Modal>\n * ```\n */\nconst ModalInner = React.forwardRef<HTMLDivElement, ModalProps>(function Modal(\n {\n overStyled = false,\n children,\n title,\n withCloseButton = true,\n overlayProps,\n withOverlay = true,\n closeButtonProps,\n ...rest\n },\n ref,\n) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n inner: styles.inner,\n content: styles.content,\n header: styles.header,\n title: styles.title,\n close: styles.close,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>).classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Record<string, string>;\n Object.keys(o).forEach((key) => {\n if (mergedClassNames[key]) {\n mergedClassNames[key] = `${mergedClassNames[key]} ${o[key]}`;\n } else {\n mergedClassNames[key] = o[key];\n }\n });\n }\n\n return (\n <MantineModal.Root\n ref={ref}\n classNames={mergedClassNames}\n {...(sanitizedProps as unknown as Omit<\n MantineModalProps,\n \"size\" | \"radius\" | \"shadow\"\n >)}\n >\n {withOverlay && <MantineModal.Overlay {...overlayProps} />}\n <MantineModal.Content>\n {(title || withCloseButton) && (\n <MantineModal.Header>\n {title && <MantineModal.Title>{title}</MantineModal.Title>}\n {withCloseButton && (\n <MantineModal.CloseButton {...closeButtonProps} />\n )}\n </MantineModal.Header>\n )}\n <ModalBody>{children}</ModalBody>\n </MantineModal.Content>\n </MantineModal.Root>\n );\n});\n\nModalInner.displayName = \"Modal\";\n\n/**\n * The `Modal.Footer` provides a perfectly padded container for modal actions.\n *\n * **Recursica Abstract:**\n * By default, this container aligns its children to the right (`justify-content: flex-end`)\n * and applies the standard Figma button-gap spacing.\n *\n * > [!IMPORTANT]\n * > **Button Hierarchy:** Recursica design language explicitly requires that the\n * > primary action button MUST be the right-most element, with the secondary\n * > (outline variant) action placed immediately to the left of it.\n */\nconst ModalFooter = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<\"div\">\n>(function ModalFooter({ className, ...rest }, ref) {\n return (\n <div\n ref={ref}\n className={`${styles.footer} ${className || \"\"}`}\n {...rest}\n />\n );\n});\nModalFooter.displayName = \"Modal.Footer\";\n\nconst ModalBody = React.forwardRef<\n HTMLDivElement,\n React.ComponentPropsWithoutRef<typeof MantineModal.Body>\n>(function ModalBody({ className, onScroll, children, ...rest }, ref) {\n const internalRef = React.useRef<HTMLDivElement>(null);\n const [scrolledTop, setScrolledTop] = React.useState(false);\n const [scrolledBottom, setScrolledBottom] = React.useState(false);\n\n const checkScroll = React.useCallback(() => {\n if (internalRef.current) {\n const { scrollTop, scrollHeight, clientHeight } = internalRef.current;\n setScrolledTop(scrollTop > 0);\n setScrolledBottom(Math.ceil(scrollTop + clientHeight) < scrollHeight);\n }\n }, []);\n\n // Re-check scroll on mount and window resize\n React.useEffect(() => {\n checkScroll();\n window.addEventListener(\"resize\", checkScroll);\n return () => window.removeEventListener(\"resize\", checkScroll);\n }, [checkScroll, children]);\n\n const handleScroll = (e: React.UIEvent<HTMLDivElement>) => {\n checkScroll();\n onScroll?.(e);\n };\n\n // Intercept children to pull Modal.Footer out of the scrolling container\n let footer: React.ReactNode = null;\n const bodyChildren: React.ReactNode[] = [];\n\n React.Children.forEach(children, (child) => {\n if (\n React.isValidElement(child) &&\n (child.type === ModalFooter ||\n (child.type as React.ComponentType)?.displayName === \"Modal.Footer\")\n ) {\n footer = child;\n } else {\n bodyChildren.push(child);\n }\n });\n\n return (\n <MantineModal.Body\n {...rest}\n ref={(node) => {\n if (typeof ref === \"function\") ref(node);\n else if (ref)\n (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;\n }}\n className={`${styles.bodyWrapper} ${className || \"\"}`}\n >\n <div\n ref={internalRef}\n onScroll={handleScroll}\n data-scrolled-top={scrolledTop || undefined}\n data-scrolled-bottom={scrolledBottom || undefined}\n className={styles.scrollArea}\n >\n {bodyChildren}\n </div>\n {footer}\n </MantineModal.Body>\n );\n});\nModalBody.displayName = \"Modal.Body\";\n\ninterface ModalComponent\n extends React.ForwardRefExoticComponent<\n ModalProps & React.RefAttributes<HTMLDivElement>\n > {\n Root: typeof MantineModal.Root;\n Overlay: typeof MantineModal.Overlay;\n Content: typeof MantineModal.Content;\n Header: typeof MantineModal.Header;\n Title: typeof MantineModal.Title;\n CloseButton: typeof MantineModal.CloseButton;\n Body: typeof ModalBody;\n Footer: typeof ModalFooter;\n}\n\nexport const Modal = ModalInner as ModalComponent & {\n Footer: typeof ModalFooter;\n};\nModal.Root = MantineModal.Root;\nModal.Overlay = MantineModal.Overlay;\nModal.Content = MantineModal.Content;\nModal.Header = MantineModal.Header;\nModal.Title = MantineModal.Title;\nModal.CloseButton = MantineModal.CloseButton;\nModal.Body = ModalBody;\nModal.Footer = ModalFooter;\n","import React, { forwardRef } from \"react\";\nimport {\n NumberInput as MantineNumberInput,\n type NumberInputProps as MantineNumberInputProps,\n} from \"@mantine/core\";\nimport { type ReadOnlyControlProps } from \"@recursica/adapter-common\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport { type RecursicaFormControlWrapperProps } from \"../FormControlWrapper/FormControlWrapper\";\nimport { WithReadOnlyWrapper } from \"../ReadOnlyField/WithReadOnlyWrapper\";\nimport styles from \"./NumberInput.module.css\";\n\nimport { type RecursicaNumberInputProps as BaseRecursicaNumberInputProps } from \"@recursica/adapter-common\";\n\nexport interface RecursicaNumberInputProps\n extends Omit<\n MantineNumberInputProps,\n \"size\" | \"variant\" | \"radius\" | \"wrapperProps\" | \"classNames\" | \"styles\"\n >,\n Pick<\n RecursicaFormControlWrapperProps,\n | \"assistiveText\"\n | \"assistiveWithIcon\"\n | \"formLayout\"\n | \"labelSize\"\n | \"labelAlignment\"\n | \"labelOptionalText\"\n | \"labelWithEditIcon\"\n | \"onLabelEditClick\"\n >,\n ReadOnlyControlProps,\n BaseRecursicaNumberInputProps {}\n\nexport type NumberInputProps = RecursicaOverStyled<RecursicaNumberInputProps>;\n\nexport const NumberInput = forwardRef<HTMLInputElement, NumberInputProps>(\n function NumberInput(props, ref) {\n const {\n overStyled = false,\n formLayout = \"stacked\",\n\n // Label & Wrapper Maps\n labelSize,\n labelAlignment,\n labelOptionalText,\n labelWithEditIcon,\n onLabelEditClick,\n\n label,\n assistiveText,\n assistiveWithIcon,\n error,\n required,\n withAsterisk,\n id,\n className,\n style,\n disabled,\n readOnly,\n readOnlyComponent,\n emptyValueComponent,\n value,\n defaultValue,\n hideControls = false,\n ...rest\n } = props;\n\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Delete prohibited sizing hooks from bypassing variables natively\n delete restRecord[\"size\"];\n delete restRecord[\"variant\"];\n delete restRecord[\"radius\"];\n\n // Securely map core native blocks down ensuring nested CSS modules map precisely\n const mergedClassNames: Partial<Record<string, string>> = {\n wrapper: styles.root, // The nested Input internal relative wrapper bounding box\n input: styles.input,\n section: styles.section,\n controls: styles.controls,\n control: styles.control,\n };\n\n const wrapperClass = className\n ? `${styles.layoutOverride} ${className}`\n : styles.layoutOverride;\n\n return (\n <WithReadOnlyWrapper\n className={wrapperClass}\n style={style as React.CSSProperties}\n controlMaxWidth=\"var(--recursica_ui-kit_components_number-input_properties_max-width)\"\n controlMinWidth=\"var(--recursica_ui-kit_components_number-input_properties_min-width)\"\n overStyled={overStyled as true}\n formLayout={formLayout}\n labelSize={labelSize}\n labelAlignment={labelAlignment}\n labelOptionalText={labelOptionalText}\n labelWithEditIcon={labelWithEditIcon}\n onLabelEditClick={onLabelEditClick}\n label={label}\n assistiveText={assistiveText}\n assistiveWithIcon={assistiveWithIcon}\n error={error}\n required={required}\n withAsterisk={withAsterisk}\n id={id}\n readOnly={readOnly}\n readOnlyComponent={readOnlyComponent}\n emptyValueComponent={emptyValueComponent}\n readOnlyType=\"text\"\n readOnlyValue={\n value !== undefined ? value?.toString() : defaultValue?.toString()\n }\n readOnlyNativeProps={props}\n activeComponent={\n /* Naked Input execution safely decoupled from Mantine's macro Input.Wrapper DOM hooks */\n <MantineNumberInput\n ref={ref}\n classNames={mergedClassNames}\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n hideControls={hideControls}\n label={undefined}\n description={undefined}\n error={undefined}\n required={undefined}\n withAsterisk={undefined}\n wrapperProps={{\n \"data-disabled\": disabled ? \"true\" : undefined,\n \"data-error\": error ? \"true\" : undefined,\n \"data-with-left-section\": restRecord.leftSection\n ? \"true\"\n : undefined,\n \"data-with-right-section\":\n restRecord.rightSection || !hideControls ? \"true\" : undefined,\n }}\n {...(sanitizedProps as unknown as MantineNumberInputProps)}\n />\n }\n />\n );\n },\n);\n\nNumberInput.displayName = \"NumberInput\";\n","import styles from \"./Pagination.module.css\";\n\nconst NextPath =\n \"M8.781 8l-3.3-3.3.943-.943L10.667 8l-4.243 4.243-.943-.943 3.3-3.3z\";\nconst PrevPath =\n \"M7.219 8l3.3 3.3-.943.943L5.333 8l4.243-4.243.943.943-3.3 3.3z\";\nconst FirstPath =\n \"M6.85355 3.85355C7.04882 3.65829 7.04882 3.34171 6.85355 3.14645C6.65829 2.95118 6.34171 2.95118 6.14645 3.14645L2.14645 7.14645C1.95118 7.34171 1.95118 7.65829 2.14645 7.85355L6.14645 11.8536C6.34171 12.0488 6.65829 12.0488 6.85355 11.8536C7.04882 11.6583 7.04882 11.3417 6.85355 11.1464L3.20711 7.5L6.85355 3.85355ZM12.8536 3.85355C13.0488 3.65829 13.0488 3.34171 12.8536 3.14645C12.6583 2.95118 12.3417 2.95118 12.1464 3.14645L8.14645 7.14645C7.95118 7.34171 7.95118 7.65829 8.14645 7.85355L12.1464 11.8536C12.3417 12.0488 12.6583 12.0488 12.8536 11.8536C13.0488 11.6583 13.0488 11.3417 12.8536 11.1464L9.20711 7.5L12.8536 3.85355Z\";\nconst LastPath =\n \"M2.14645 11.1464C1.95118 11.3417 1.95118 11.6583 2.14645 11.8536C2.34171 12.0488 2.65829 12.0488 2.85355 11.8536L6.85355 7.85355C7.04882 7.65829 7.04882 7.34171 6.85355 7.14645L2.85355 3.14645C2.65829 2.95118 2.34171 2.95118 2.14645 3.14645C1.95118 3.34171 1.95118 3.65829 2.14645 3.85355L5.79289 7.5L2.14645 11.1464ZM8.14645 11.1464C7.95118 11.3417 7.95118 11.6583 8.14645 11.8536C8.34171 12.0488 8.65829 12.0488 8.85355 11.8536L12.8536 7.85355C13.0488 7.65829 13.0488 7.34171 12.8536 7.14645L8.85355 3.14645C8.65829 2.95118 8.34171 2.95118 8.14645 3.14645C7.95118 3.34171 7.95118 3.65829 8.14645 3.85355L11.7929 7.5L8.14645 11.1464Z\";\n\nexport type PaginationIconType = \"next\" | \"prev\" | \"first\" | \"last\";\n\nconst paths: Record<PaginationIconType, string> = {\n next: NextPath,\n prev: PrevPath,\n first: FirstPath,\n last: LastPath,\n};\n\nexport const PaginationIcon = ({\n type,\n className,\n ...props\n}: React.ComponentProps<\"svg\"> & { type: PaginationIconType }) => (\n <svg\n viewBox=\"0 0 16 16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={`${styles.baseIcon} ${className || \"\"}`.trim()}\n {...props}\n >\n <path d={paths[type as PaginationIconType]} fill=\"currentColor\" />\n </svg>\n);\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const NextWithLabel = (props: any) => (\n <div className={styles.iconWithLabel}>\n <span>Next</span>\n <PaginationIcon type=\"next\" {...props} />\n </div>\n);\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const PrevWithLabel = (props: any) => (\n <div className={styles.iconWithLabel}>\n <PaginationIcon type=\"prev\" {...props} />\n <span>Prev</span>\n </div>\n);\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const FirstWithLabel = (props: any) => (\n <div className={styles.iconWithLabel}>\n <PaginationIcon type=\"first\" {...props} />\n <span>First</span>\n </div>\n);\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const LastWithLabel = (props: any) => (\n <div className={styles.iconWithLabel}>\n <span>Last</span>\n <PaginationIcon type=\"last\" {...props} />\n </div>\n);\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { forwardRef } from \"react\";\nimport {\n Pagination as MantinePagination,\n type PaginationProps as MantinePaginationProps,\n type PaginationRootProps as MantinePaginationRootProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Pagination.module.css\";\nimport {\n NextWithLabel,\n PrevWithLabel,\n FirstWithLabel,\n LastWithLabel,\n PaginationIcon,\n} from \"./Pagination.icons\";\n\nimport { type RecursicaPaginationProps } from \"@recursica/adapter-common\";\n\nexport type PaginationProps = RecursicaOverStyled<\n MantinePaginationProps & RecursicaPaginationProps\n>;\n\nexport type PaginationRootProps =\n RecursicaOverStyled<MantinePaginationRootProps>;\n\nexport type PaginationEdgeProps<T extends React.ElementType> =\n React.ComponentProps<T> & {\n /** If set to true, displays text labels alongside the icon. */\n withLabel?: boolean;\n icon?: any;\n };\n\nfunction usePaginationClassNames(restRecord: Record<string, unknown>): {\n className: string;\n classNames: Partial<Record<string, string>>;\n} {\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n control: styles.control,\n dots: styles.dots,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n mergedClassNames.control = o.control\n ? `${styles.control} ${o.control}`\n : styles.control;\n mergedClassNames.dots = o.dots ? `${styles.dots} ${o.dots}` : styles.dots;\n }\n\n const classNameProp = restRecord.className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n return { className: finalClass, classNames: mergedClassNames };\n}\n\nconst _PaginationRoot = forwardRef<HTMLDivElement, PaginationRootProps>(\n function PaginationRoot({ overStyled = false, ...rest }, ref) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const stylingParams = usePaginationClassNames(\n sanitizedProps as Record<string, unknown>,\n );\n\n return (\n <MantinePagination.Root\n ref={ref}\n className={stylingParams.className}\n classNames={stylingParams.classNames}\n {...(sanitizedProps as MantinePaginationRootProps)}\n />\n );\n },\n);\n_PaginationRoot.displayName = \"Pagination.Root\";\n\nconst _PaginationNext = forwardRef<\n HTMLButtonElement,\n PaginationEdgeProps<typeof MantinePagination.Next>\n>(function PaginationNext({ withLabel, icon, ...props }, ref) {\n const renderIcon = icon || (withLabel ? NextWithLabel : undefined);\n return (\n <MantinePagination.Next\n ref={ref}\n data-variant=\"text\"\n icon={renderIcon as any}\n {...props}\n />\n );\n});\n_PaginationNext.displayName = \"Pagination.Next\";\n\nconst _PaginationPrevious = forwardRef<\n HTMLButtonElement,\n PaginationEdgeProps<typeof MantinePagination.Previous>\n>(function PaginationPrevious({ withLabel, icon, ...props }, ref) {\n const renderIcon = icon || (withLabel ? PrevWithLabel : undefined);\n return (\n <MantinePagination.Previous\n ref={ref}\n data-variant=\"text\"\n icon={renderIcon as any}\n {...props}\n />\n );\n});\n_PaginationPrevious.displayName = \"Pagination.Previous\";\n\nconst _PaginationFirst = forwardRef<\n HTMLButtonElement,\n PaginationEdgeProps<typeof MantinePagination.First>\n>(function PaginationFirst({ withLabel, icon, ...props }, ref) {\n const renderIcon = icon || (withLabel ? FirstWithLabel : undefined);\n return (\n <MantinePagination.First\n ref={ref}\n data-variant=\"text\"\n icon={renderIcon as any}\n {...props}\n />\n );\n});\n_PaginationFirst.displayName = \"Pagination.First\";\n\nconst _PaginationLast = forwardRef<\n HTMLButtonElement,\n PaginationEdgeProps<typeof MantinePagination.Last>\n>(function PaginationLast({ withLabel, icon, ...props }, ref) {\n const renderIcon = icon || (withLabel ? LastWithLabel : undefined);\n return (\n <MantinePagination.Last\n ref={ref}\n data-variant=\"text\"\n icon={renderIcon as any}\n {...props}\n />\n );\n});\n_PaginationLast.displayName = \"Pagination.Last\";\n\nconst _Pagination = forwardRef<HTMLDivElement, PaginationProps>(\n function Pagination(\n { overStyled = false, getControlProps, withLabels, ...rest },\n ref,\n ) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const stylingParams = usePaginationClassNames(\n sanitizedProps as Record<string, unknown>,\n );\n\n const mergedGetControlProps = (\n control: \"first\" | \"previous\" | \"last\" | \"next\",\n ) => {\n const baseProps = { \"data-variant\": \"text\" };\n if (getControlProps) {\n return { ...baseProps, ...getControlProps(control) };\n }\n return baseProps;\n };\n\n const labelsIcons = withLabels\n ? {\n nextIcon: NextWithLabel,\n previousIcon: PrevWithLabel,\n firstIcon: FirstWithLabel,\n lastIcon: LastWithLabel,\n }\n : {};\n\n return (\n <MantinePagination\n ref={ref}\n className={stylingParams.className}\n classNames={stylingParams.classNames}\n getControlProps={mergedGetControlProps}\n {...labelsIcons}\n {...(sanitizedProps as MantinePaginationProps)}\n />\n );\n },\n);\n_Pagination.displayName = \"Pagination\";\n\n/**\n * Recursica Pagination component wrapping Mantine's Pagination.\n */\nexport const Pagination = _Pagination as typeof _Pagination & {\n Root: typeof _PaginationRoot;\n Items: typeof MantinePagination.Items;\n Control: typeof MantinePagination.Control;\n Dots: typeof MantinePagination.Dots;\n Next: typeof _PaginationNext;\n Previous: typeof _PaginationPrevious;\n First: typeof _PaginationFirst;\n Last: typeof _PaginationLast;\n Icon: typeof PaginationIcon;\n};\n\nPagination.Root = _PaginationRoot;\nPagination.Items = MantinePagination.Items;\nPagination.Control = MantinePagination.Control;\nPagination.Dots = MantinePagination.Dots;\nPagination.Next = _PaginationNext;\nPagination.Previous = _PaginationPrevious;\nPagination.First = _PaginationFirst;\nPagination.Last = _PaginationLast;\nPagination.Icon = PaginationIcon;\n","import { forwardRef } from \"react\";\nimport {\n Drawer as MantineDrawer,\n type DrawerProps as MantineDrawerProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Panel.module.css\";\n\n// ============================================================\n// PANEL (Drawer)\n// ============================================================\n\nimport { type RecursicaPanelProps as BaseRecursicaPanelProps } from \"@recursica/adapter-common\";\n\n/**\n * Recursica Panel root props. Extends Mantine Drawer.\n */\nexport interface RecursicaPanelProps\n extends Omit<\n MantineDrawerProps,\n \"size\" | \"styles\" | \"classNames\" | \"style\" | \"position\" | \"opened\"\n >,\n BaseRecursicaPanelProps {}\n\nexport type PanelProps = RecursicaOverStyled<RecursicaPanelProps>;\n\n/**\n * Recursica Panel component wrapping Mantine's Drawer.\n *\n * Panels slide in or expand from the edge of the screen to reveal\n * additional content or functionality. They are commonly used to provide\n * supplementary information, navigation options, or toolsets without\n * cluttering the main interface.\n *\n * ```tsx\n * <Panel opened={opened} onClose={close} title=\"Panel Title\" placement=\"right\">\n * <Panel.Body>\n * Content goes here\n * </Panel.Body>\n * </Panel>\n * ```\n *\n * Mantine Drawer sub-components available via dot-notation:\n * - `Panel.Header` — Top section with title and close button\n * - `Panel.Title` — Title text within the header\n * - `Panel.CloseButton` — Close button within the header\n * - `Panel.Body` — Scrollable body content area\n * - `Panel.Content` — Outer content container\n * - `Panel.Overlay` — Background overlay\n * - `Panel.Root` — Root element for advanced composition\n * - `Panel.Stack` — Stacked drawer context\n */\nconst PanelBase = function Panel({\n overStyled = false,\n placement = \"right\",\n keepMounted = true,\n wrapHeaderText = false,\n ...rest\n}: PanelProps) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n // Bind CSS module classes to Mantine's internal classNames API\n const mergedClassNames: Partial<Record<string, string>> = {\n content: styles.content,\n header: styles.header,\n title: wrapHeaderText ? styles.titleTruncate : styles.title,\n body: styles.body,\n inner: styles.inner,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>).classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Record<string, string>;\n Object.keys(o).forEach((key) => {\n if (mergedClassNames[key]) {\n mergedClassNames[key] = `${mergedClassNames[key]} ${o[key]}`;\n } else {\n mergedClassNames[key] = o[key];\n }\n });\n }\n\n return (\n <MantineDrawer\n position={placement} /* Recursica default: right; Mantine default: left */\n keepMounted={keepMounted}\n closeOnClickOutside={rest.closeOnClickOutside ?? Boolean(rest.opened)}\n {...(sanitizedProps as unknown as MantineDrawerProps)}\n classNames={mergedClassNames}\n />\n );\n};\nPanelBase.displayName = \"Panel\";\n\n// ============================================================\n// PANEL FOOTER (custom — Mantine Drawer has no Footer sub-component)\n// ============================================================\n\nexport type PanelFooterProps = RecursicaOverStyled<\n React.HTMLAttributes<HTMLDivElement>\n>;\n\n/**\n * Panel footer section with action buttons.\n * Separated from the body by a divider. Remains fixed at the bottom.\n * This is a Recursica-specific sub-component; Mantine Drawer does not\n * natively provide a footer.\n */\nexport const PanelFooter = forwardRef<HTMLDivElement, PanelFooterProps>(\n function PanelFooter({ overStyled = false, ...rest }, ref) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n const finalClassName = classNameProp\n ? `${styles.footer} ${classNameProp}`\n : styles.footer;\n\n return <div ref={ref} className={finalClassName} {...sanitizedProps} />;\n },\n);\nPanelFooter.displayName = \"PanelFooter\";\n\n// ============================================================\n// DOT NOTATION EXPORT\n// ============================================================\n\ntype PanelComponent = typeof PanelBase & {\n Root: typeof MantineDrawer.Root;\n Overlay: typeof MantineDrawer.Overlay;\n Content: typeof MantineDrawer.Content;\n Header: typeof MantineDrawer.Header;\n Title: typeof MantineDrawer.Title;\n CloseButton: typeof MantineDrawer.CloseButton;\n Body: typeof MantineDrawer.Body;\n Stack: typeof MantineDrawer.Stack;\n Footer: typeof PanelFooter;\n};\n\nexport const Panel = PanelBase as PanelComponent;\nPanel.Root = MantineDrawer.Root;\nPanel.Overlay = MantineDrawer.Overlay;\nPanel.Content = MantineDrawer.Content;\nPanel.Header = MantineDrawer.Header;\nPanel.Title = MantineDrawer.Title;\nPanel.CloseButton = MantineDrawer.CloseButton;\nPanel.Body = MantineDrawer.Body;\nPanel.Stack = MantineDrawer.Stack;\nPanel.Footer = PanelFooter;\n","import {\n Popover as MantinePopover,\n type PopoverProps as MantinePopoverProps,\n type PopoverTargetProps as MantinePopoverTargetProps,\n type PopoverDropdownProps as MantinePopoverDropdownProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Popover.module.css\";\n\n// ============================================================\n// POPOVER ROOT\n// ============================================================\n\n/**\n * Recursica-specific props for Popover.\n */\nimport { type RecursicaPopoverProps } from \"@recursica/adapter-common\";\n\n/**\n * Recursica Popover component wrapping Mantine's composable Popover.\n *\n * Displays a dropdown panel when the user clicks or interacts with a target element.\n * Uses the composable dot-notation pattern:\n * ```tsx\n * <Popover withBeak>\n * <Popover.Target>\n * <Button>Click me</Button>\n * </Popover.Target>\n * <Popover.Dropdown>\n * Content displayed in popover\n * </Popover.Dropdown>\n * </Popover>\n * ```\n */\nexport type PopoverProps = Omit<\n RecursicaOverStyled<\n Omit<MantinePopoverProps, \"position\"> & RecursicaPopoverProps\n >,\n \"position\"\n> & {\n position?: MantinePopoverProps[\"position\"];\n};\n\nconst PopoverBase = function Popover({\n overStyled = false,\n withBeak = true,\n ...rest\n}: PopoverProps) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n // Bind CSS module classes to Mantine's internal classNames API\n const mergedClassNames: Partial<Record<string, string>> = {\n dropdown: styles.dropdown,\n arrow: styles.arrow,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>).classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Record<string, string>;\n Object.keys(o).forEach((key) => {\n if (mergedClassNames[key]) {\n mergedClassNames[key] = `${mergedClassNames[key]} ${o[key]}`;\n } else {\n mergedClassNames[key] = o[key];\n }\n });\n }\n\n // arrowSize must be a JS number prop — Mantine uses it for inline width/height\n // and positioning offset (-arrowSize/2) calculations that cannot be CSS-driven.\n // Default to 16 to match the Recursica beak-size token (16px).\n const arrowSize =\n ((sanitizedProps as Record<string, unknown>).arrowSize as\n | number\n | undefined) ?? 16;\n\n // Resolve withBeak (Recursica) vs withArrow (Mantine).\n // withBeak takes precedence when both are provided.\n const withArrow = (sanitizedProps as Record<string, unknown>).withArrow as\n | boolean\n | undefined;\n const resolvedWithArrow = withBeak ?? withArrow;\n\n return (\n <MantinePopover\n position=\"top\" /* Recursica default; Mantine defaults to \"bottom\" */\n arrowSize={arrowSize}\n withArrow={resolvedWithArrow}\n classNames={mergedClassNames}\n {...(sanitizedProps as unknown as MantinePopoverProps)}\n />\n );\n};\nPopoverBase.displayName = \"Popover\";\n\n// ============================================================\n// POPOVER TARGET\n// ============================================================\n\n/**\n * Wrapper for the element that triggers the popover.\n * Requires a single child element that supports ref forwarding.\n */\nexport type PopoverTargetProps = MantinePopoverTargetProps;\n\nconst PopoverTarget = function PopoverTarget(props: PopoverTargetProps) {\n return <MantinePopover.Target {...props} />;\n};\nPopoverTarget.displayName = \"PopoverTarget\";\n\n// ============================================================\n// POPOVER DROPDOWN\n// ============================================================\n\n/** The dropdown panel displayed from the popover. */\nexport type PopoverDropdownProps =\n RecursicaOverStyled<MantinePopoverDropdownProps>;\n\nconst PopoverDropdown = function PopoverDropdown({\n overStyled = false,\n ...rest\n}: PopoverDropdownProps) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n return (\n <MantinePopover.Dropdown\n className={classNameProp}\n {...(sanitizedProps as unknown as MantinePopoverDropdownProps)}\n />\n );\n};\nPopoverDropdown.displayName = \"PopoverDropdown\";\n\n// ============================================================\n// DOT NOTATION EXPORT\n// ============================================================\n\ntype PopoverComponent = typeof PopoverBase & {\n Target: typeof PopoverTarget;\n Dropdown: typeof PopoverDropdown;\n};\n\nexport const Popover = PopoverBase as PopoverComponent;\nPopover.Target = PopoverTarget;\nPopover.Dropdown = PopoverDropdown;\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { forwardRef } from \"react\";\nimport {\n Radio as MantineRadio,\n type RadioGroupProps as MantineRadioGroupProps,\n} from \"@mantine/core\";\nimport { type ReadOnlyControlProps } from \"@recursica/adapter-common\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport { type RecursicaFormControlWrapperProps } from \"../FormControlWrapper/FormControlWrapper\";\nimport { WithReadOnlyWrapper } from \"../ReadOnlyField/WithReadOnlyWrapper\";\nimport styles from \"./Radio.module.css\";\n\nimport { type RecursicaRadioGroupProps as BaseRecursicaRadioGroupProps } from \"@recursica/adapter-common\";\n\nexport interface RecursicaRadioGroupProps\n extends Omit<\n MantineRadioGroupProps,\n \"size\" | \"labelProps\" | \"defaultValue\" | \"value\" | \"onChange\"\n >,\n Omit<\n RecursicaFormControlWrapperProps,\n \"controlMaxWidth\" | \"controlMinWidth\"\n >,\n ReadOnlyControlProps,\n BaseRecursicaRadioGroupProps {}\n\nexport type RadioGroupProps = RecursicaOverStyled<RecursicaRadioGroupProps>;\n\nexport const RadioGroup = forwardRef<HTMLDivElement, RadioGroupProps>(\n function RadioGroup(props, ref) {\n const {\n overStyled = false,\n formLayout = \"stacked\",\n\n // Label Wrappers\n labelSize,\n labelAlignment,\n labelOptionalText,\n labelWithEditIcon,\n onLabelEditClick,\n\n // Base Mantine Extracted Attributes\n label,\n description,\n assistiveText,\n assistiveWithIcon,\n error,\n required,\n withAsterisk,\n id,\n className,\n style,\n children,\n readOnly,\n readOnlyComponent,\n emptyValueComponent,\n value,\n defaultValue,\n ...rest\n } = props;\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Delete prohibited sizing hooks from bypassing the variables\n delete restRecord[\"size\"];\n\n return (\n <WithReadOnlyWrapper\n className={className}\n style={style as React.CSSProperties}\n controlMaxWidth=\"var(--recursica_ui-kit_components_radio-button-item_properties_max-width)\"\n controlMinWidth={undefined}\n overStyled={overStyled as true}\n labelElement=\"div\" // Strictly override. ARIA grouping prohibits interactive radios nested natively inside <label>.\n formLayout={formLayout}\n labelSize={labelSize}\n labelAlignment={labelAlignment}\n labelOptionalText={labelOptionalText}\n labelWithEditIcon={labelWithEditIcon}\n onLabelEditClick={onLabelEditClick}\n label={label}\n description={description}\n assistiveText={assistiveText}\n assistiveWithIcon={assistiveWithIcon}\n error={error}\n required={required}\n withAsterisk={withAsterisk}\n id={id}\n readOnly={readOnly && !!readOnlyComponent}\n readOnlyComponent={readOnlyComponent}\n emptyValueComponent={emptyValueComponent}\n readOnlyType=\"text\"\n readOnlyValue={value !== undefined ? value : defaultValue}\n readOnlyNativeProps={props}\n activeComponent={\n <MantineRadio.Group\n ref={ref}\n /* Natively bind local disabled lock dynamically */\n {...(sanitizedProps as unknown as MantineRadioGroupProps)}\n disabled={readOnly || (restRecord as any).disabled}\n value={value as any}\n defaultValue={defaultValue as any}\n >\n <div className={styles.groupRoot} data-layout={formLayout}>\n {children}\n </div>\n </MantineRadio.Group>\n }\n />\n );\n },\n);\n\nRadioGroup.displayName = \"RadioGroup\";\n","import { forwardRef } from \"react\";\nimport {\n Radio as MantineRadio,\n type RadioProps as MantineRadioProps,\n} from \"@mantine/core\";\nimport { type ReadOnlyControlProps } from \"@recursica/adapter-common\";\nimport { RadioGroup } from \"./RadioGroup\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport {\n type RequireAccessibleLabel,\n type RecursicaRadioProps,\n} from \"@recursica/adapter-common\";\nimport {\n FormControlLayout,\n type FormControlLayoutProps,\n} from \"../FormControlLayout/FormControlLayout\";\n\nimport styles from \"./Radio.module.css\";\n\nconst RadioIcon: React.FC<{\n className?: string;\n style?: React.CSSProperties;\n}> = ({ className, style }) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 16 16\"\n fill=\"currentColor\"\n className={className}\n style={style}\n >\n <circle cx=\"8\" cy=\"8\" r=\"5\" />\n </svg>\n);\n\nexport type RadioWrapperProps = Omit<\n MantineRadioProps,\n \"size\" | \"color\" | \"radius\" | \"iconColor\" | \"variant\"\n> &\n RecursicaRadioProps &\n ReadOnlyControlProps &\n Pick<\n FormControlLayoutProps,\n \"formLayout\" | \"labelSize\" | \"controlMaxWidth\" | \"controlMinWidth\"\n >;\n\nexport type RecursicaRadioPropsAlias =\n RequireAccessibleLabel<RadioWrapperProps>;\n\nexport type RadioProps = RecursicaOverStyled<RecursicaRadioPropsAlias>;\n\ntype RadioComponent = React.ForwardRefExoticComponent<\n RadioProps & React.RefAttributes<HTMLInputElement>\n> & {\n Group: typeof RadioGroup;\n};\n\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>(\n function Radio(props, ref) {\n const {\n overStyled = false,\n readOnly,\n readOnlyComponent,\n disabled,\n formLayout,\n labelSize,\n controlMaxWidth,\n controlMinWidth,\n ...rest\n } = props;\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Actively delete dimension bindings that bypass the abstraction\n delete restRecord[\"size\"];\n delete restRecord[\"color\"];\n delete restRecord[\"radius\"];\n delete restRecord[\"variant\"];\n delete restRecord[\"iconColor\"];\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n body: styles.body,\n inner: styles.inner,\n radio: styles.radio,\n icon: styles.icon,\n labelWrapper: styles.labelWrapper,\n label: styles.label,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n mergedClassNames.body = o.body ? `${styles.body} ${o.body}` : styles.body;\n mergedClassNames.inner = o.inner\n ? `${styles.inner} ${o.inner}`\n : styles.inner;\n mergedClassNames.radio = o.radio\n ? `${styles.radio} ${o.radio}`\n : styles.radio;\n mergedClassNames.icon = o.icon ? `${styles.icon} ${o.icon}` : styles.icon;\n mergedClassNames.labelWrapper = o.labelWrapper\n ? `${styles.labelWrapper} ${o.labelWrapper}`\n : styles.labelWrapper;\n mergedClassNames.label = o.label\n ? `${styles.label} ${o.label}`\n : styles.label;\n }\n\n const classNameProp = restRecord.className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n if (readOnly && !!readOnlyComponent) {\n const isChecked = !!(restRecord.checked ?? restRecord.defaultChecked);\n const ReadOnlyComp = readOnlyComponent;\n const roNode = (\n <ReadOnlyComp\n {...props}\n checked={isChecked}\n label={restRecord.label as React.ReactNode}\n />\n );\n\n if (formLayout) {\n return (\n <FormControlLayout\n formLayout={formLayout}\n labelSize={labelSize}\n controlMaxWidth={controlMaxWidth}\n controlMinWidth={controlMinWidth}\n >\n {roNode}\n </FormControlLayout>\n );\n }\n\n return <>{roNode}</>;\n }\n\n // We omit Mantine's sizing/coloring so we rely strictly on variables from Radio.module.css\n const radioNode = (\n <MantineRadio\n ref={ref}\n icon={RadioIcon}\n className={finalClass}\n classNames={mergedClassNames}\n disabled={readOnly || disabled}\n {...(sanitizedProps as unknown as MantineRadioProps)}\n />\n );\n\n if (formLayout) {\n return (\n <FormControlLayout\n formLayout={formLayout}\n labelSize={labelSize}\n controlMaxWidth={controlMaxWidth}\n controlMinWidth={controlMinWidth}\n >\n {radioNode}\n </FormControlLayout>\n );\n }\n\n return radioNode;\n },\n) as RadioComponent;\n\nRadio.displayName = \"Radio\";\nRadio.Group = RadioGroup;\n","import { forwardRef } from \"react\";\nimport {\n SegmentedControl as MantineSegmentedControl,\n type SegmentedControlProps as MantineSegmentedControlProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./SegmentedControl.module.css\";\n\nimport { type RecursicaSegmentedControlProps } from \"@recursica/adapter-common\";\n\nexport type SegmentedControlProps = RecursicaOverStyled<\n Omit<\n MantineSegmentedControlProps,\n | \"variant\"\n | \"size\"\n | \"radius\"\n | \"color\"\n | \"classNames\"\n | \"className\"\n | \"disabled\"\n > & {\n className?: string;\n classNames?: Partial<Record<string, string>>;\n } & RecursicaSegmentedControlProps\n>;\n\nfunction useSegmentedControlClassNames(restRecord: Record<string, unknown>): {\n className: string;\n classNames: Partial<Record<string, string>>;\n} {\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n control: styles.control,\n label: styles.label,\n indicator: styles.indicator,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n mergedClassNames.control = o.control\n ? `${styles.control} ${o.control}`\n : styles.control;\n mergedClassNames.label = o.label\n ? `${styles.label} ${o.label}`\n : styles.label;\n mergedClassNames.indicator = o.indicator\n ? `${styles.indicator} ${o.indicator}`\n : styles.indicator;\n }\n\n const classNameProp = restRecord.className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n return { className: finalClass, classNames: mergedClassNames };\n}\n\nconst _SegmentedControl = forwardRef<HTMLDivElement, SegmentedControlProps>(\n function SegmentedControl(\n { overStyled = false, orientation = \"horizontal\", fullWidth, ...rest },\n ref,\n ) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Explicitly prevent consumers from bypassing the disabled restriction\n delete restRecord[\"disabled\"];\n\n const stylingParams = useSegmentedControlClassNames(restRecord);\n\n return (\n <MantineSegmentedControl\n ref={ref}\n className={stylingParams.className}\n classNames={stylingParams.classNames}\n orientation={orientation}\n fullWidth={fullWidth}\n data-orientation={orientation}\n {...(sanitizedProps as Omit<\n MantineSegmentedControlProps,\n \"variant\" | \"size\"\n >)}\n />\n );\n },\n);\n_SegmentedControl.displayName = \"SegmentedControl\";\n\n/**\n * Recursica SegmentedControl component wrapping Mantine's SegmentedControl.\n */\nexport const SegmentedControl = _SegmentedControl;\n","import React, { forwardRef, useState, useEffect } from \"react\";\nimport {\n Slider as MantineSlider,\n type SliderProps as MantineSliderProps,\n type InputWrapperProps,\n} from \"@mantine/core\";\nimport { type ReadOnlyControlProps } from \"@recursica/adapter-common\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport { type RecursicaFormControlWrapperProps } from \"../FormControlWrapper/FormControlWrapper\";\nimport { WithReadOnlyWrapper } from \"../ReadOnlyField/WithReadOnlyWrapper\";\n\nimport styles from \"./Slider.module.css\";\n\nimport { type RecursicaSliderProps as BaseRecursicaSliderProps } from \"@recursica/adapter-common\";\n\nexport interface RecursicaSliderProps\n extends Omit<\n MantineSliderProps,\n | \"size\"\n | \"variant\"\n | \"radius\"\n | \"wrapperProps\"\n | \"classNames\"\n | \"styles\"\n | \"label\"\n >,\n Omit<\n RecursicaFormControlWrapperProps,\n \"controlMaxWidth\" | \"controlMinWidth\"\n >,\n Pick<InputWrapperProps, \"error\" | \"required\" | \"withAsterisk\">,\n ReadOnlyControlProps,\n BaseRecursicaSliderProps {}\n\nexport type SliderProps = RecursicaOverStyled<RecursicaSliderProps>;\n\n/**\n * Custom Read-Only visual representation of the Slider value.\n * Utilizes component-specific read-only typography variables.\n */\nconst SliderReadOnlyValue: React.FC<{ value: number }> = ({ value }) => {\n return <div className={styles.readOnlyValue}>{value}</div>;\n};\n\n/**\n * Recursica Slider component wrapping Mantine's Slider.\n *\n * Implements a bidirectional text input field next to the slider track, responsive layouts,\n * custom typography-bound min/max labels, an optional leading icon, and an explicit read-only layout.\n */\nexport const Slider = forwardRef<HTMLDivElement, SliderProps>(\n function Slider(props, ref) {\n const {\n overStyled = false,\n formLayout = \"stacked\",\n\n // Label & Wrapper Maps\n labelSize,\n labelAlignment,\n labelOptionalText,\n labelWithEditIcon,\n labelActionArea,\n onLabelEditClick,\n\n label,\n tooltipLabel,\n assistiveText,\n assistiveWithIcon,\n error,\n required,\n withAsterisk,\n id,\n className,\n style,\n disabled,\n readOnly,\n readOnlyComponent,\n emptyValueComponent,\n value,\n defaultValue,\n icon,\n showInput = false,\n showMinMaxLabels = true,\n min = 0,\n max = 100,\n step = 1,\n onChange,\n onChangeEnd,\n ...rest\n } = props;\n\n // Bidirectional state linking the slider track value to the input field string representation\n const [internalValue, setInternalValue] = useState<number>(() => {\n if (value !== undefined) return value;\n if (defaultValue !== undefined) return defaultValue;\n return min;\n });\n\n const resolvedValue = value !== undefined ? value : internalValue;\n const [inputValue, setInputValue] = useState<string>(\n resolvedValue.toString(),\n );\n\n // Synchronize text input whenever the slider value changes\n useEffect(() => {\n setInputValue(resolvedValue.toString());\n }, [resolvedValue]);\n\n const handleValueChange = (val: number) => {\n if (value === undefined) {\n setInternalValue(val);\n }\n onChange?.(val);\n };\n\n const handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const valStr = e.target.value;\n setInputValue(valStr);\n\n const parsed = parseFloat(valStr);\n if (!isNaN(parsed)) {\n // Clamp input value to bounds\n const clamped = Math.max(min, Math.min(max, parsed));\n handleValueChange(clamped);\n }\n };\n\n const handleInputBlur = () => {\n // Clean up text field on blur to reflect the final clamped resolved value\n setInputValue(resolvedValue.toString());\n };\n\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Delete prohibited sizing hooks from bypassing variables natively\n delete restRecord[\"size\"];\n delete restRecord[\"variant\"];\n delete restRecord[\"radius\"];\n delete restRecord[\"wrapperProps\"];\n\n // Securely map core native blocks down ensuring nested CSS modules map precisely\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.sliderRoot,\n track: styles.sliderTrack,\n bar: styles.sliderBar,\n thumb: styles.sliderThumb,\n mark: styles.sliderMark,\n markLabel: styles.sliderMarkLabel,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root\n ? `${styles.sliderRoot} ${o.root}`\n : styles.sliderRoot;\n mergedClassNames.track = o.track\n ? `${styles.sliderTrack} ${o.track}`\n : styles.sliderTrack;\n mergedClassNames.bar = o.bar\n ? `${styles.sliderBar} ${o.bar}`\n : styles.sliderBar;\n mergedClassNames.thumb = o.thumb\n ? `${styles.sliderThumb} ${o.thumb}`\n : styles.sliderThumb;\n mergedClassNames.mark = o.mark\n ? `${styles.sliderMark} ${o.mark}`\n : styles.sliderMark;\n mergedClassNames.markLabel = o.markLabel\n ? `${styles.sliderMarkLabel} ${o.markLabel}`\n : styles.sliderMarkLabel;\n }\n\n const wrapperClass = className\n ? `${styles.layoutOverride} ${className}`\n : styles.layoutOverride;\n\n const leadingIcon = icon ? (\n <span className={styles.iconWrapper} aria-hidden>\n {icon}\n </span>\n ) : null;\n\n return (\n <WithReadOnlyWrapper\n ref={ref}\n className={wrapperClass}\n style={style as React.CSSProperties}\n controlMaxWidth={undefined}\n controlMinWidth={undefined}\n overStyled={overStyled as true}\n formLayout={formLayout}\n labelSize={labelSize}\n labelAlignment={labelAlignment}\n labelOptionalText={labelOptionalText}\n labelWithEditIcon={labelWithEditIcon}\n labelActionArea={labelActionArea}\n onLabelEditClick={onLabelEditClick}\n label={label}\n assistiveText={assistiveText}\n assistiveWithIcon={assistiveWithIcon}\n error={error}\n required={required}\n withAsterisk={withAsterisk}\n id={id}\n readOnly={readOnly}\n readOnlyComponent={readOnlyComponent || SliderReadOnlyValue}\n emptyValueComponent={emptyValueComponent}\n readOnlyType=\"text\"\n readOnlyValue={resolvedValue}\n readOnlyNativeProps={{ value: resolvedValue }}\n activeComponent={\n <div\n className={styles.sliderContainer}\n data-form-layout={formLayout}\n data-disabled={disabled ? \"true\" : undefined}\n data-error={error ? \"true\" : undefined}\n >\n {leadingIcon}\n\n {showMinMaxLabels && (\n <span className={styles.minMaxGuide}>{min}</span>\n )}\n\n <div className={styles.sliderTrackWrapper}>\n <MantineSlider\n classNames={mergedClassNames}\n disabled={disabled}\n value={resolvedValue}\n onChange={handleValueChange}\n onChangeEnd={onChangeEnd}\n min={min}\n max={max}\n step={step}\n label={tooltipLabel}\n {...(sanitizedProps as unknown as MantineSliderProps)}\n />\n </div>\n\n <div className={styles.rightGuideContainer}>\n {!showInput && (\n <span className={styles.currentValue}>{resolvedValue}</span>\n )}\n {showMinMaxLabels && (\n <span className={styles.minMaxGuide}>{max}</span>\n )}\n </div>\n\n {showInput && (\n <input\n type=\"number\"\n className={styles.inputField}\n value={inputValue}\n onChange={handleInputChange}\n onBlur={handleInputBlur}\n min={min}\n max={max}\n step={step}\n disabled={disabled}\n data-error={error ? \"true\" : undefined}\n />\n )}\n </div>\n }\n />\n );\n },\n);\n\nSlider.displayName = \"Slider\";\n","import { forwardRef } from \"react\";\nimport {\n Stack as MantineStack,\n type StackProps as MantineStackProps,\n createPolymorphicComponent,\n} from \"@mantine/core\";\nimport {\n mapLayoutProps,\n type WithRecursicaSpacing,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Stack.module.css\";\n\nimport { type RecursicaStackProps } from \"@recursica/adapter-common\";\n\n/**\n * Stack flex layout wrapper.\n *\n * Note: Unlike complex UI components, primitive layout components (Flex, Stack, Group, Container)\n * DO NOT use the `RecursicaOverStyled` gatekeeper. Developers must be able to freely pass\n * width, height, padding, margins, and flexbox alignment props to construct structural layouts.\n */\nexport type StackProps = WithRecursicaSpacing<\n MantineStackProps & RecursicaStackProps\n>;\n\nconst _Stack = forwardRef<HTMLDivElement, StackProps>(function Stack(\n { children, gap = \"rec-default\", ...rest },\n ref,\n) {\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n };\n\n const classNamesProp = rest.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n }\n\n const classNameProp = rest.className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n return (\n <MantineStack\n ref={ref}\n className={finalClass}\n classNames={mergedClassNames}\n {...mapLayoutProps({ gap, ...rest } as Record<string, unknown>)}\n >\n {children}\n </MantineStack>\n );\n});\n_Stack.displayName = \"Stack\";\n\nexport const Stack = createPolymorphicComponent<\"div\", StackProps>(_Stack);\n","import React, { forwardRef } from \"react\";\nimport {\n Stepper as MantineStepper,\n type StepperProps as MantineStepperProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Stepper.module.css\";\n\nimport { type RecursicaStepperProps } from \"@recursica/adapter-common\";\n\nexport interface RecursicaStepperPropsExtended\n extends Omit<MantineStepperProps, \"size\">,\n RecursicaStepperProps {}\n\nexport type StepperProps = RecursicaOverStyled<RecursicaStepperPropsExtended>;\n\nconst _Stepper = forwardRef<HTMLDivElement, StepperProps>(\n function Stepper(props, ref) {\n const {\n overStyled = false,\n size = \"large\",\n orientation = \"horizontal\",\n className,\n style,\n ...rest\n } = props;\n\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n return (\n <MantineStepper\n ref={ref}\n orientation={orientation}\n className={`${styles.root} ${orientation === \"horizontal\" ? styles.horizontal : styles.vertical} ${size === \"large\" ? styles.large : styles.small} ${className || \"\"}`}\n style={style as React.CSSProperties}\n data-size={size}\n data-orientation={orientation}\n classNames={{\n steps: styles.steps,\n step: styles.step,\n stepIcon: styles.stepIcon,\n stepCompletedIcon: styles.stepCompletedIcon,\n stepBody: styles.stepBody,\n stepLabel: styles.stepLabel,\n stepDescription: styles.stepDescription,\n separator: styles.separator,\n verticalSeparator: styles.verticalSeparator,\n content: styles.content,\n }}\n {...(sanitizedProps as MantineStepperProps)}\n />\n );\n },\n);\n\n// We need to re-export the static components Step and Completed\nexport const Stepper: typeof _Stepper & {\n Step: typeof MantineStepper.Step;\n Completed: typeof MantineStepper.Completed;\n} = Object.assign(_Stepper, {\n Step: MantineStepper.Step,\n Completed: MantineStepper.Completed,\n});\n\n_Stepper.displayName = \"Stepper\";\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { forwardRef } from \"react\";\nimport {\n Switch as MantineSwitch,\n type SwitchGroupProps as MantineSwitchGroupProps,\n} from \"@mantine/core\";\nimport { type ReadOnlyControlProps } from \"@recursica/adapter-common\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport { type RecursicaFormControlWrapperProps } from \"../FormControlWrapper/FormControlWrapper\";\nimport { WithReadOnlyWrapper } from \"../ReadOnlyField/WithReadOnlyWrapper\";\nimport styles from \"./Switch.module.css\";\n\nimport { type RecursicaSwitchGroupProps as BaseRecursicaSwitchGroupProps } from \"@recursica/adapter-common\";\n\nexport interface RecursicaSwitchGroupProps\n extends Omit<\n MantineSwitchGroupProps,\n \"size\" | \"labelProps\" | \"defaultValue\" | \"value\" | \"onChange\"\n >,\n Omit<\n RecursicaFormControlWrapperProps,\n \"controlMaxWidth\" | \"controlMinWidth\"\n >,\n ReadOnlyControlProps,\n BaseRecursicaSwitchGroupProps {}\n\nexport type SwitchGroupProps = RecursicaOverStyled<RecursicaSwitchGroupProps>;\n\nexport const SwitchGroup = forwardRef<HTMLDivElement, SwitchGroupProps>(\n function SwitchGroup(props, ref) {\n const {\n overStyled = false,\n formLayout = \"stacked\",\n\n // Label Wrappers\n labelSize,\n labelAlignment,\n labelOptionalText,\n labelWithEditIcon,\n onLabelEditClick,\n\n // Base Mantine Extracted Attributes\n label,\n description,\n assistiveText,\n assistiveWithIcon,\n error,\n required,\n withAsterisk,\n id,\n className,\n style,\n children,\n readOnly,\n readOnlyComponent,\n emptyValueComponent,\n value,\n defaultValue,\n ...rest\n } = props;\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Delete prohibited sizing hooks from bypassing the variables\n delete restRecord[\"size\"];\n\n return (\n <WithReadOnlyWrapper\n className={className}\n style={style as React.CSSProperties}\n controlMaxWidth=\"var(--recursica_ui-kit_components_switch-item_properties_label-max-width)\"\n controlMinWidth={undefined}\n overStyled={overStyled as true}\n labelElement=\"div\" // Strictly override. ARIA grouping prohibits interactive switches nested natively inside <label>.\n formLayout={formLayout}\n labelSize={labelSize}\n labelAlignment={labelAlignment}\n labelOptionalText={labelOptionalText}\n labelWithEditIcon={labelWithEditIcon}\n onLabelEditClick={onLabelEditClick}\n label={label}\n description={description}\n assistiveText={assistiveText}\n assistiveWithIcon={assistiveWithIcon}\n error={error}\n required={required}\n withAsterisk={withAsterisk}\n id={id}\n readOnly={readOnly && !!readOnlyComponent}\n readOnlyComponent={readOnlyComponent}\n emptyValueComponent={emptyValueComponent}\n readOnlyType=\"text\"\n readOnlyValue={value !== undefined ? value : defaultValue}\n readOnlyNativeProps={props}\n activeComponent={\n <MantineSwitch.Group\n ref={ref}\n /* Natively bind local disabled lock dynamically */\n {...(sanitizedProps as unknown as MantineSwitchGroupProps)}\n disabled={readOnly || (restRecord as any).disabled}\n value={value as any}\n defaultValue={defaultValue as any}\n >\n <div className={styles.groupRoot} data-layout={formLayout}>\n {children}\n </div>\n </MantineSwitch.Group>\n }\n />\n );\n },\n);\n\nSwitchGroup.displayName = \"SwitchGroup\";\n","import { forwardRef } from \"react\";\nimport {\n Switch as MantineSwitch,\n type SwitchProps as MantineSwitchProps,\n CheckIcon,\n CloseIcon,\n} from \"@mantine/core\";\nimport { type ReadOnlyControlProps } from \"@recursica/adapter-common\";\n\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport {\n type RequireAccessibleLabel,\n type RecursicaSwitchProps,\n} from \"@recursica/adapter-common\";\nimport {\n FormControlLayout,\n type FormControlLayoutProps,\n} from \"../FormControlLayout/FormControlLayout\";\nimport styles from \"./Switch.module.css\";\n\nimport { SwitchGroup } from \"./SwitchGroup\";\n\nexport type SwitchWrapperProps = Omit<\n MantineSwitchProps,\n \"size\" | \"color\" | \"radius\" | \"variant\"\n> &\n RecursicaSwitchProps &\n ReadOnlyControlProps &\n Pick<\n FormControlLayoutProps,\n \"formLayout\" | \"labelSize\" | \"controlMaxWidth\" | \"controlMinWidth\"\n >;\n\nexport type RecursicaSwitchPropsAlias =\n RequireAccessibleLabel<SwitchWrapperProps>;\n\nexport type SwitchProps = RecursicaOverStyled<RecursicaSwitchPropsAlias>;\n\ntype SwitchComponent = React.ForwardRefExoticComponent<\n SwitchProps & React.RefAttributes<HTMLInputElement>\n> & {\n Group: typeof SwitchGroup;\n};\n\nexport const Switch = forwardRef<HTMLInputElement, SwitchProps>(\n function Switch(props, ref) {\n const {\n overStyled = false,\n readOnly,\n readOnlyComponent,\n disabled,\n thumbIcon,\n formLayout,\n labelSize,\n controlMaxWidth,\n controlMinWidth,\n ...rest\n } = props;\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Actively delete dimension bindings that bypass the abstraction\n delete restRecord[\"size\"];\n delete restRecord[\"color\"];\n delete restRecord[\"radius\"];\n delete restRecord[\"variant\"];\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n body: styles.body,\n track: styles.track,\n thumb: styles.thumb,\n trackLabel: styles.trackLabel,\n labelWrapper: styles.labelWrapper,\n label: styles.label,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.root = o.root ? `${styles.root} ${o.root}` : styles.root;\n mergedClassNames.body = o.body ? `${styles.body} ${o.body}` : styles.body;\n mergedClassNames.track = o.track\n ? `${styles.track} ${o.track}`\n : styles.track;\n mergedClassNames.thumb = o.thumb\n ? `${styles.thumb} ${o.thumb}`\n : styles.thumb;\n mergedClassNames.trackLabel = o.trackLabel\n ? `${styles.trackLabel} ${o.trackLabel}`\n : styles.trackLabel;\n mergedClassNames.labelWrapper = o.labelWrapper\n ? `${styles.labelWrapper} ${o.labelWrapper}`\n : styles.labelWrapper;\n mergedClassNames.label = o.label\n ? `${styles.label} ${o.label}`\n : styles.label;\n }\n\n const classNameProp = restRecord.className as string | undefined;\n const finalClass = classNameProp\n ? `${styles.root} ${classNameProp}`\n : styles.root;\n\n if (readOnly && !!readOnlyComponent) {\n const isChecked = !!(restRecord.checked ?? restRecord.defaultChecked);\n const ReadOnlyComp = readOnlyComponent;\n const roNode = (\n <ReadOnlyComp\n {...props}\n checked={isChecked}\n label={restRecord.label as React.ReactNode}\n />\n );\n\n if (formLayout) {\n return (\n <FormControlLayout\n formLayout={formLayout}\n labelSize={labelSize}\n controlMaxWidth={controlMaxWidth}\n controlMinWidth={controlMinWidth}\n >\n {roNode}\n </FormControlLayout>\n );\n }\n\n return <>{roNode}</>;\n }\n\n const FinalThumbIcon = (\n <div className={styles.thumbIconWrapper}>\n <CheckIcon className={styles.checkIcon} />\n <CloseIcon className={styles.closeIcon} />\n </div>\n );\n\n // We omit Mantine's sizing/coloring so we rely strictly on variables from Switch.module.css\n const switchNode = (\n <MantineSwitch\n ref={ref}\n className={finalClass}\n classNames={mergedClassNames}\n disabled={readOnly || disabled}\n data-disabled={readOnly || disabled || undefined}\n thumbIcon={thumbIcon ?? FinalThumbIcon}\n {...(sanitizedProps as unknown as MantineSwitchProps)}\n />\n );\n\n if (formLayout) {\n return (\n <FormControlLayout\n formLayout={formLayout}\n labelSize={labelSize}\n controlMaxWidth={controlMaxWidth}\n controlMinWidth={controlMinWidth}\n >\n {switchNode}\n </FormControlLayout>\n );\n }\n\n return switchNode;\n },\n) as SwitchComponent;\n\nSwitch.displayName = \"Switch\";\nSwitch.Group = SwitchGroup;\n","import { forwardRef } from \"react\";\nimport {\n Table as MantineTable,\n type TableProps as MantineTableProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport { type RecursicaTableProps } from \"@recursica/adapter-common\";\nimport styles from \"./Table.module.css\";\n\nexport type TableProps = RecursicaOverStyled<\n MantineTableProps & RecursicaTableProps\n>;\n\nconst TableBase = forwardRef<HTMLTableElement, TableProps>(function Table(\n { overStyled = false, ...rest },\n ref,\n) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n const rootClass = styles.root;\n const finalClass = classNameProp\n ? `${rootClass} ${classNameProp}`\n : rootClass;\n\n return (\n <MantineTable\n ref={ref}\n className={finalClass}\n {...(sanitizedProps as unknown as MantineTableProps)}\n />\n );\n});\n\nTableBase.displayName = \"Table\";\n\ntype TableComponent = typeof TableBase & {\n Thead: typeof MantineTable.Thead;\n Tbody: typeof MantineTable.Tbody;\n Tr: typeof MantineTable.Tr;\n Th: typeof MantineTable.Th;\n Td: typeof MantineTable.Td;\n Tfoot: typeof MantineTable.Tfoot;\n Caption: typeof MantineTable.Caption;\n ScrollContainer: typeof MantineTable.ScrollContainer;\n};\n\nexport const Table = TableBase as TableComponent;\nTable.Thead = MantineTable.Thead;\nTable.Tbody = MantineTable.Tbody;\nTable.Tr = MantineTable.Tr;\nTable.Th = MantineTable.Th;\nTable.Td = MantineTable.Td;\nTable.Tfoot = MantineTable.Tfoot;\nTable.Caption = MantineTable.Caption;\nTable.ScrollContainer = MantineTable.ScrollContainer;\n","import { forwardRef } from \"react\";\nimport {\n Tabs as MantineTabs,\n type TabsProps as MantineTabsProps,\n type TabsListProps as MantineTabsListProps,\n type TabsTabProps as MantineTabsTabProps,\n type TabsPanelProps as MantineTabsPanelProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Tabs.module.css\";\n\nimport { type RecursicaTabsProps } from \"@recursica/adapter-common\";\n\nexport interface RecursicaTabsPropsExtended\n extends Omit<MantineTabsProps, \"variant\">,\n RecursicaTabsProps {}\n\nexport type TabsProps = RecursicaOverStyled<RecursicaTabsPropsExtended>;\n\nconst _Tabs = forwardRef<HTMLDivElement, TabsProps>(function Tabs(props, ref) {\n const {\n variant = \"default\",\n orientation = \"horizontal\",\n overStyled = false,\n className,\n ...rest\n } = props;\n\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n return (\n <MantineTabs\n ref={ref}\n variant={variant}\n orientation={orientation}\n className={`${styles.root} ${className || \"\"}`}\n data-variant={variant}\n data-orientation={orientation}\n classNames={{\n list: styles.list,\n tab: styles.tab,\n panel: styles.panel,\n }}\n {...(sanitizedProps as MantineTabsProps)}\n />\n );\n});\n\n_Tabs.displayName = \"Tabs\";\n\nexport type TabsListProps = RecursicaOverStyled<MantineTabsListProps>;\n\nconst _TabsList = forwardRef<HTMLDivElement, TabsListProps>(\n function TabsList(props, ref) {\n const { overStyled = false, ...rest } = props;\n return (\n <MantineTabs.List\n ref={ref}\n {...(filterStylingProps(rest, overStyled) as MantineTabsListProps)}\n />\n );\n },\n);\n_TabsList.displayName = \"Tabs.List\";\n\nexport type TabsTabProps = RecursicaOverStyled<MantineTabsTabProps>;\n\nconst _TabsTab = forwardRef<HTMLButtonElement, TabsTabProps>(\n function TabsTab(props, ref) {\n const { overStyled = false, ...rest } = props;\n return (\n <MantineTabs.Tab\n ref={ref}\n {...(filterStylingProps(rest, overStyled) as MantineTabsTabProps)}\n />\n );\n },\n);\n_TabsTab.displayName = \"Tabs.Tab\";\n\nexport type TabsPanelProps = RecursicaOverStyled<MantineTabsPanelProps>;\n\nconst _TabsPanel = forwardRef<HTMLDivElement, TabsPanelProps>(\n function TabsPanel(props, ref) {\n const { overStyled = false, ...rest } = props;\n return (\n <MantineTabs.Panel\n ref={ref}\n {...(filterStylingProps(rest, overStyled) as MantineTabsPanelProps)}\n />\n );\n },\n);\n_TabsPanel.displayName = \"Tabs.Panel\";\n\nexport const Tabs: typeof _Tabs & {\n List: typeof _TabsList;\n Tab: typeof _TabsTab;\n Panel: typeof _TabsPanel;\n} = Object.assign(_Tabs, {\n List: _TabsList,\n Tab: _TabsTab,\n Panel: _TabsPanel,\n});\n","import { forwardRef } from \"react\";\nimport {\n Text as MantineText,\n type TextProps as MantineTextProps,\n createPolymorphicComponent,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\n\nimport { type RecursicaTextProps } from \"@recursica/adapter-common\";\n\nexport type TextProps = RecursicaOverStyled<\n Omit<MantineTextProps, \"variant\"> & RecursicaTextProps\n>;\n\nconst _Text = forwardRef<HTMLDivElement, TextProps>(function Text(\n { overStyled = false, variant = \"body\", ...rest },\n ref,\n) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n const typographyClass = `recursica_brand_typography_${variant}`;\n const mergedClassName = classNameProp\n ? `${typographyClass} ${classNameProp}`\n : typographyClass;\n\n return (\n <MantineText\n ref={ref}\n className={mergedClassName}\n {...(sanitizedProps as unknown as MantineTextProps)}\n />\n );\n});\n_Text.displayName = \"Text\";\n\n/**\n * A generalized typographical wrapper limiting text properties to bounded Recursica UI-kit tokens inherently.\n * Do not use for semantic headings; use the explicit `<Title>` component for `<h1>` - `<h6>`.\n *\n * Supports polymorphism via the `component` prop or `renderRoot` for custom element rendering.\n * @example\n * ```tsx\n * <Text component=\"span\">Inline text</Text>\n * <Text component=\"label\" htmlFor=\"input-id\">Label text</Text>\n * ```\n */\nexport const Text = createPolymorphicComponent<\"p\", TextProps>(_Text);\n","import React, { forwardRef } from \"react\";\nimport {\n Textarea as MantineTextarea,\n type TextareaProps as MantineTextareaProps,\n} from \"@mantine/core\";\nimport { type ReadOnlyControlProps } from \"@recursica/adapter-common\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport { type RecursicaFormControlWrapperProps } from \"../FormControlWrapper/FormControlWrapper\";\nimport { WithReadOnlyWrapper } from \"../ReadOnlyField/WithReadOnlyWrapper\";\nimport styles from \"./TextArea.module.css\";\n\nimport { type RecursicaTextAreaProps as BaseRecursicaTextAreaProps } from \"@recursica/adapter-common\";\n\nexport interface RecursicaTextAreaProps\n extends Omit<\n MantineTextareaProps,\n \"size\" | \"variant\" | \"radius\" | \"wrapperProps\"\n >,\n Omit<\n RecursicaFormControlWrapperProps,\n \"controlMaxWidth\" | \"controlMinWidth\"\n >,\n ReadOnlyControlProps,\n BaseRecursicaTextAreaProps {}\n\nexport type TextAreaProps = RecursicaOverStyled<RecursicaTextAreaProps>;\n\nexport const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n function TextArea(props, ref) {\n const {\n overStyled = false,\n formLayout = \"stacked\",\n\n // Label & Wrapper Maps\n labelSize,\n labelAlignment,\n labelOptionalText,\n labelWithEditIcon,\n onLabelEditClick,\n\n label,\n assistiveText,\n assistiveWithIcon,\n error,\n required,\n withAsterisk,\n id,\n className,\n style,\n disabled,\n readOnly,\n readOnlyComponent,\n emptyValueComponent,\n value,\n defaultValue,\n ...rest\n } = props;\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Delete prohibited sizing hooks from bypassing variables natively\n delete restRecord[\"size\"];\n delete restRecord[\"variant\"];\n delete restRecord[\"radius\"];\n\n // Securely map core native blocks down ensuring nested CSS modules map precisely\n const mergedClassNames: Partial<Record<string, string>> = {\n wrapper: styles.root, // The nested Input internal relative wrapper bounding box\n input: styles.input,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.wrapper = o.wrapper\n ? `${styles.root} ${o.wrapper}`\n : styles.root;\n mergedClassNames.input = o.input\n ? `${styles.input} ${o.input}`\n : styles.input;\n }\n\n const wrapperClass = className\n ? `${styles.layoutOverride} ${className}`\n : styles.layoutOverride;\n\n return (\n <WithReadOnlyWrapper\n className={wrapperClass}\n style={style as React.CSSProperties}\n controlMaxWidth=\"var(--recursica_ui-kit_components_textarea_properties_max-width)\"\n controlMinWidth=\"var(--recursica_ui-kit_components_textarea_properties_min-width)\"\n overStyled={overStyled as true}\n formLayout={formLayout}\n labelSize={labelSize}\n labelAlignment={labelAlignment}\n labelOptionalText={labelOptionalText}\n labelWithEditIcon={labelWithEditIcon}\n onLabelEditClick={onLabelEditClick}\n label={label}\n assistiveText={assistiveText}\n assistiveWithIcon={assistiveWithIcon}\n error={error}\n required={required}\n withAsterisk={withAsterisk}\n id={id}\n readOnly={readOnly}\n readOnlyComponent={readOnlyComponent}\n emptyValueComponent={emptyValueComponent}\n readOnlyType=\"text\"\n readOnlyValue={value !== undefined ? value : defaultValue}\n readOnlyNativeProps={props}\n activeComponent={\n /* Naked Input execution safely decoupled from Mantine's macro Input.Wrapper DOM hooks */\n <MantineTextarea\n ref={ref}\n classNames={mergedClassNames}\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n label={undefined}\n description={undefined}\n error={undefined}\n required={undefined}\n withAsterisk={undefined}\n wrapperProps={{\n \"data-disabled\": disabled ? \"true\" : undefined,\n \"data-error\": error ? \"true\" : undefined,\n }}\n {...(sanitizedProps as unknown as MantineTextareaProps)}\n />\n }\n />\n );\n },\n);\n\nTextArea.displayName = \"TextArea\";\n","import React, { forwardRef } from \"react\";\nimport { Input, type InputProps, type InputWrapperProps } from \"@mantine/core\";\nimport { type ReadOnlyControlProps } from \"@recursica/adapter-common\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport { type RecursicaFormControlWrapperProps } from \"../FormControlWrapper/FormControlWrapper\";\nimport { WithReadOnlyWrapper } from \"../ReadOnlyField/WithReadOnlyWrapper\";\nimport styles from \"./TextField.module.css\";\n\nimport { type RecursicaTextFieldProps as BaseRecursicaTextFieldProps } from \"@recursica/adapter-common\";\n\nexport interface RecursicaTextFieldProps\n extends Omit<InputProps, \"size\" | \"variant\" | \"radius\" | \"wrapperProps\">,\n Pick<\n InputWrapperProps,\n \"label\" | \"error\" | \"required\" | \"withAsterisk\" | \"id\"\n >,\n Omit<\n React.ComponentPropsWithoutRef<\"input\">,\n \"size\" | \"style\" | \"className\" | \"id\"\n >,\n Omit<\n RecursicaFormControlWrapperProps,\n \"controlMaxWidth\" | \"controlMinWidth\"\n >,\n ReadOnlyControlProps,\n BaseRecursicaTextFieldProps {}\n\nexport type TextFieldProps = RecursicaOverStyled<RecursicaTextFieldProps>;\n\nexport const TextField = forwardRef<HTMLInputElement, TextFieldProps>(\n function TextField(props, ref) {\n const {\n overStyled = false,\n formLayout = \"stacked\",\n\n // Label & Wrapper Maps\n labelSize,\n labelAlignment,\n labelOptionalText,\n labelWithEditIcon,\n onLabelEditClick,\n\n label,\n assistiveText,\n assistiveWithIcon,\n error,\n required,\n withAsterisk,\n id,\n className,\n style,\n disabled,\n readOnly,\n readOnlyComponent,\n emptyValueComponent,\n value,\n defaultValue,\n ...rest\n } = props;\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const restRecord = sanitizedProps as Record<string, unknown>;\n\n // Delete prohibited sizing hooks from bypassing variables natively\n delete restRecord[\"size\"];\n delete restRecord[\"variant\"];\n delete restRecord[\"radius\"];\n\n // Securely map core native blocks down ensuring nested CSS modules map precisely\n const mergedClassNames: Partial<Record<string, string>> = {\n wrapper: styles.root, // The nested Input internal relative wrapper bounding box\n input: styles.input,\n section: styles.section,\n };\n\n const classNamesProp = restRecord.classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Partial<Record<string, string>>;\n mergedClassNames.wrapper = o.wrapper\n ? `${styles.root} ${o.wrapper}`\n : styles.root;\n mergedClassNames.input = o.input\n ? `${styles.input} ${o.input}`\n : styles.input;\n mergedClassNames.section = o.section\n ? `${styles.section} ${o.section}`\n : styles.section;\n }\n\n const wrapperClass = className\n ? `${styles.layoutOverride} ${className}`\n : styles.layoutOverride;\n\n return (\n <WithReadOnlyWrapper\n className={wrapperClass}\n style={style as React.CSSProperties}\n controlMaxWidth=\"var(--recursica_ui-kit_components_text-field_properties_max-width)\"\n controlMinWidth=\"var(--recursica_ui-kit_components_text-field_properties_min-width)\"\n overStyled={overStyled as true}\n formLayout={formLayout}\n labelSize={labelSize}\n labelAlignment={labelAlignment}\n labelOptionalText={labelOptionalText}\n labelWithEditIcon={labelWithEditIcon}\n onLabelEditClick={onLabelEditClick}\n label={label}\n assistiveText={assistiveText}\n assistiveWithIcon={assistiveWithIcon}\n error={error}\n required={required}\n withAsterisk={withAsterisk}\n id={id}\n readOnly={readOnly}\n readOnlyComponent={readOnlyComponent}\n emptyValueComponent={emptyValueComponent}\n readOnlyType=\"text\"\n readOnlyValue={value !== undefined ? value : defaultValue}\n readOnlyNativeProps={props}\n activeComponent={\n /* Naked Input execution safely decoupled from Mantine's macro Input.Wrapper DOM hooks */\n <Input\n ref={ref}\n classNames={mergedClassNames}\n disabled={disabled}\n value={value}\n defaultValue={defaultValue}\n wrapperProps={{\n \"data-disabled\": disabled ? \"true\" : undefined,\n \"data-error\": error ? \"true\" : undefined,\n }}\n {...(sanitizedProps as unknown as InputProps)}\n />\n }\n />\n );\n },\n);\n\nTextField.displayName = \"TextField\";\n","import React from \"react\";\nimport { type RecursicaTimePickerProps } from \"@recursica/adapter-common\";\n\nexport type TimePickerProps = React.HTMLAttributes<HTMLDivElement> &\n RecursicaTimePickerProps;\n\nexport const TimePicker: React.FC<TimePickerProps> = (props) => {\n return <div {...props}>TimePicker</div>;\n};\n","import React from \"react\";\nimport {\n TimelineItem as MantineTimelineItem,\n type TimelineItemProps as MantineTimelineItemProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Timeline.module.css\";\n\nimport { type RecursicaTimelineItemProps } from \"@recursica/adapter-common\";\n\nexport type TimelineItemProps = RecursicaOverStyled<\n Omit<MantineTimelineItemProps, \"radius\" | \"color\" | \"lineVariant\"> &\n RecursicaTimelineItemProps\n>;\n\n/**\n * The individual item component for the Timeline.\n *\n * **Recursica Abstract:**\n * The `Timeline.Item` has been extended to support a `timestamp` string natively,\n * rendering it below the body content. It also accepts a `bulletVariant` to morph\n * the structural dimensions of the node circle automatically.\n */\nexport const TimelineItem = React.forwardRef<HTMLDivElement, TimelineItemProps>(\n function TimelineItem(\n {\n overStyled = false,\n timestamp,\n bulletVariant = \"default\",\n children,\n ...rest\n },\n ref,\n ) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n const mergedClassNames: Partial<Record<string, string>> = {\n item: styles.item,\n itemBody: styles.itemBody,\n itemContent: styles.itemContent,\n itemBullet: styles.itemBullet,\n itemTitle: styles.itemTitle,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>)\n .classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Record<string, string>;\n Object.keys(o).forEach((key) => {\n if (mergedClassNames[key]) {\n mergedClassNames[key] = `${mergedClassNames[key]} ${o[key]}`;\n } else {\n mergedClassNames[key] = o[key];\n }\n });\n }\n\n // Embed timestamp inside children if provided, wrapped in a specific class\n const content = timestamp ? (\n <>\n {children && <div className={styles.description}>{children}</div>}\n <div className={styles.timestamp}>{timestamp}</div>\n </>\n ) : (\n children\n );\n\n return (\n <MantineTimelineItem\n ref={ref}\n classNames={mergedClassNames}\n data-variant={bulletVariant}\n {...(sanitizedProps as unknown as Omit<\n MantineTimelineItemProps,\n \"radius\" | \"color\" | \"lineVariant\"\n >)}\n >\n {content}\n </MantineTimelineItem>\n );\n },\n);\n\nTimelineItem.displayName = \"TimelineItem\";\n","import React from \"react\";\nimport {\n Timeline as MantineTimeline,\n type TimelineProps as MantineTimelineProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Timeline.module.css\";\nimport { TimelineItem } from \"./TimelineItem\";\n\nimport { type RecursicaTimelineProps } from \"@recursica/adapter-common\";\n\n/**\n * Properties for the strictly-tokenized Timeline component.\n * Native Mantine abstract properties like `color`, `radius`, `bulletSize`, and `lineWidth`\n * have been stripped out to strictly enforce the structural mappings of the Recursica UI Kit.\n */\nexport type TimelineProps = RecursicaOverStyled<\n Omit<MantineTimelineProps, \"color\" | \"radius\" | \"bulletSize\" | \"lineWidth\"> &\n RecursicaTimelineProps\n>;\n\ninterface TimelineComponent\n extends React.ForwardRefExoticComponent<\n TimelineProps & React.RefAttributes<HTMLDivElement>\n > {\n Item: typeof TimelineItem;\n}\n\n/**\n * The `Timeline` component displays a list of events in chronological order.\n *\n * **Recursica Abstract:**\n * This component acts as a structural wrapper around Mantine's `<Timeline>`.\n * It forces alignment and geometry strictly via the UI Kit's `.itemBullet` and connector definitions.\n *\n * @example\n * ```tsx\n * <Timeline active={1}>\n * <Timeline.Item title=\"Event 1\" timestamp=\"Yesterday\">Description</Timeline.Item>\n * </Timeline>\n * ```\n */\nconst TimelineInner = React.forwardRef<HTMLDivElement, TimelineProps>(\n function Timeline({ overStyled = false, ...rest }, ref) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>)\n .classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Record<string, string>;\n Object.keys(o).forEach((key) => {\n if (mergedClassNames[key]) {\n mergedClassNames[key] = `${mergedClassNames[key]} ${o[key]}`;\n } else {\n mergedClassNames[key] = o[key];\n }\n });\n }\n\n return (\n <MantineTimeline\n ref={ref}\n classNames={mergedClassNames}\n {...(sanitizedProps as unknown as Omit<\n MantineTimelineProps,\n \"color\" | \"radius\" | \"bulletSize\" | \"lineWidth\"\n >)}\n />\n );\n },\n);\n\nTimelineInner.displayName = \"Timeline\";\n\nexport const Timeline = TimelineInner as TimelineComponent;\nTimeline.Item = TimelineItem;\n","import { forwardRef } from \"react\";\nimport {\n Title as MantineTitle,\n type TitleProps as MantineTitleProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\n\nimport { type RecursicaTitleProps } from \"@recursica/adapter-common\";\n\nexport type TitleProps = RecursicaOverStyled<\n Omit<MantineTitleProps, \"size\"> & RecursicaTitleProps\n>;\n\n/**\n * Enforces highly accessible structural markup utilizing semantic `<h1>` through `<h6>` tags securely bound directly to Recursica typographic scales.\n */\nexport const Title = forwardRef<HTMLHeadingElement, TitleProps>(function Title(\n { overStyled = false, order = 1, ...rest },\n ref,\n) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n const classNameProp = (sanitizedProps as Record<string, unknown>)\n .className as string | undefined;\n\n const typographyClass = `recursica_brand_typography_h${order}`;\n const mergedClassName = classNameProp\n ? `${typographyClass} ${classNameProp}`\n : typographyClass;\n\n return (\n <MantineTitle\n ref={ref}\n order={order}\n className={mergedClassName}\n {...(sanitizedProps as unknown as MantineTitleProps)}\n />\n );\n});\nTitle.displayName = \"Title\";\n","import React from \"react\";\nimport {\n Notification as MantineNotification,\n type NotificationProps as MantineNotificationProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Toast.module.css\";\n\nimport { type RecursicaToastProps } from \"@recursica/adapter-common\";\n\n/**\n * Toast component wrapping Mantine's Notification.\n *\n * Can be used as a standalone visual component to display a notification or message.\n */\nexport type ToastProps = RecursicaOverStyled<\n Omit<MantineNotificationProps, \"color\" | \"radius\" | \"variant\" | \"loading\"> &\n RecursicaToastProps\n>;\n\nexport const Toast = React.forwardRef<HTMLDivElement, ToastProps>(\n function Toast(\n {\n overStyled = false,\n variant = \"default\",\n withCloseButton = true,\n ...rest\n },\n ref,\n ) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n // Bind CSS module classes to Mantine's internal classNames API\n const mergedClassNames: Partial<Record<string, string>> = {\n root: styles.root,\n body: styles.body,\n title: styles.title,\n description: styles.description,\n closeButton: styles.closeButton,\n icon: styles.icon,\n loader: styles.loader,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>)\n .classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Record<string, string>;\n Object.keys(o).forEach((key) => {\n if (mergedClassNames[key]) {\n mergedClassNames[key] = `${mergedClassNames[key]} ${o[key]}`;\n } else {\n mergedClassNames[key] = o[key];\n }\n });\n }\n\n return (\n <MantineNotification\n ref={ref}\n withCloseButton={withCloseButton}\n withBorder={false} // Border is handled via CSS or tokens if needed\n data-variant={variant}\n classNames={mergedClassNames}\n loading={false}\n {...(sanitizedProps as unknown as Omit<\n MantineNotificationProps,\n \"color\" | \"radius\" | \"variant\" | \"loading\"\n >)}\n />\n );\n },\n);\n\nToast.displayName = \"Toast\";\n","import {\n Tooltip as MantineTooltip,\n type TooltipProps as MantineTooltipProps,\n} from \"@mantine/core\";\nimport {\n filterStylingProps,\n type RecursicaOverStyled,\n} from \"../../utils/filterStylingProps\";\nimport styles from \"./Tooltip.module.css\";\n\n// ============================================================\n// TOOLTIP\n// ============================================================\n\n/**\n * Recursica-specific props for Tooltip.\n */\nimport { type RecursicaTooltipProps } from \"@recursica/adapter-common\";\n\n/**\n * Recursica Tooltip component wrapping Mantine's Tooltip.\n *\n * Displays a floating label when the user hovers over or focuses a target element.\n * Unlike HoverCard, Tooltip is a single component (not composable) — content is\n * passed via the `label` prop, and the trigger is passed as `children`.\n *\n * ```tsx\n * <Tooltip label=\"Helpful information\" withBeak>\n * <Button>Hover me</Button>\n * </Tooltip>\n * ```\n *\n * Static sub-components available via dot-notation:\n * - `Tooltip.Floating` — Tooltip that follows the cursor\n * - `Tooltip.Group` — Shared hover delay group for multiple tooltips\n */\nexport type TooltipProps = RecursicaOverStyled<\n MantineTooltipProps & RecursicaTooltipProps\n>;\n\nconst TooltipBase = function Tooltip({\n overStyled = false,\n withBeak = true,\n ...rest\n}: TooltipProps) {\n const sanitizedProps = filterStylingProps(rest, overStyled);\n\n // Bind CSS module classes to Mantine's internal classNames API\n const mergedClassNames: Partial<Record<string, string>> = {\n tooltip: styles.tooltip,\n arrow: styles.arrow,\n };\n\n const classNamesProp = (sanitizedProps as Record<string, unknown>).classNames;\n if (\n classNamesProp &&\n typeof classNamesProp === \"object\" &&\n !Array.isArray(classNamesProp)\n ) {\n const o = classNamesProp as Record<string, string>;\n Object.keys(o).forEach((key) => {\n if (mergedClassNames[key]) {\n mergedClassNames[key] = `${mergedClassNames[key]} ${o[key]}`;\n } else {\n mergedClassNames[key] = o[key];\n }\n });\n }\n\n // arrowSize must be a JS number prop — Mantine uses it for inline width/height\n // and positioning offset (-arrowSize/2) calculations that cannot be CSS-driven.\n // Default to 16 to match the Recursica beak-size token (16px).\n const arrowSize =\n ((sanitizedProps as Record<string, unknown>).arrowSize as\n | number\n | undefined) ?? 16;\n\n // Resolve withBeak (Recursica) vs withArrow (Mantine).\n // withBeak takes precedence when both are provided.\n const withArrow = (sanitizedProps as Record<string, unknown>).withArrow as\n | boolean\n | undefined;\n const resolvedWithArrow = withBeak ?? withArrow;\n\n return (\n <MantineTooltip\n position=\"top\" /* Recursica default; Mantine defaults to \"bottom\" */\n multiline /* Always allow text wrapping within max-width */\n arrowSize={arrowSize}\n withArrow={resolvedWithArrow}\n classNames={mergedClassNames}\n {...(sanitizedProps as unknown as MantineTooltipProps)}\n />\n );\n};\nTooltipBase.displayName = \"Tooltip\";\n\n// ============================================================\n// DOT NOTATION EXPORT\n// ============================================================\n\ntype TooltipComponent = typeof TooltipBase & {\n Floating: typeof MantineTooltip.Floating;\n Group: typeof MantineTooltip.Group;\n};\n\nexport const Tooltip = TooltipBase as TooltipComponent;\nTooltip.Floating = MantineTooltip.Floating;\nTooltip.Group = MantineTooltip.Group;\n","import React from \"react\";\nimport { type RecursicaTransferListProps } from \"@recursica/adapter-common\";\n\nexport type TransferListProps = React.HTMLAttributes<HTMLDivElement> &\n RecursicaTransferListProps;\n\nexport const TransferList: React.FC<TransferListProps> = (props) => {\n return <div {...props}>TransferList</div>;\n};\n","import React, { forwardRef } from \"react\";\nimport { type RecursicaOverStyled } from \"../../utils/filterStylingProps\";\nimport styles from \"./Tree.module.css\";\n\nexport interface TreeProps extends React.ComponentPropsWithoutRef<\"div\"> {\n overStyled?: boolean;\n}\n\n/**\n * Placeholder component for Tree (Coming Soon).\n */\nexport const Tree = forwardRef<HTMLDivElement, RecursicaOverStyled<TreeProps>>(\n function Tree({ overStyled: _overStyled = false, className, ...rest }, ref) {\n void _overStyled;\n const finalClass = className ? `${styles.root} ${className}` : styles.root;\n return (\n <div ref={ref} className={finalClass} {...rest}>\n Tree (Coming Soon)\n </div>\n );\n },\n);\n\nTree.displayName = \"Tree\";\n","import \"@recursica/adapter-common/style.css\";\nimport * as rawComponents from \"./components\";\nimport { wrapComponent } from \"@recursica/adapter-common\";\n\nexport * from \"@recursica/adapter-common\";\n\n// Expose unwrapped structural layout primitives to preserve their polymorphic types\nexport const Flex = rawComponents.Flex;\nexport const Group = rawComponents.Group;\nexport const Stack = rawComponents.Stack;\nexport const Container = rawComponents.Container;\nexport const Link = rawComponents.Link;\nexport const Text = rawComponents.Text;\n\n// Statically wrap and export components to inject overStyled visual highlight in dev mode\nexport const Accordion = wrapComponent(\n rawComponents.Accordion,\n) as typeof rawComponents.Accordion;\nexport const AccordionItem = wrapComponent(\n rawComponents.AccordionItem,\n) as typeof rawComponents.AccordionItem;\nexport const AccordionControl = wrapComponent(\n rawComponents.AccordionControl,\n) as typeof rawComponents.AccordionControl;\nexport const AccordionPanel = wrapComponent(\n rawComponents.AccordionPanel,\n) as typeof rawComponents.AccordionPanel;\nexport const AutoComplete = wrapComponent(\n rawComponents.AutoComplete,\n) as typeof rawComponents.AutoComplete;\nexport const Avatar = wrapComponent(\n rawComponents.Avatar,\n) as typeof rawComponents.Avatar;\nexport const Badge = wrapComponent(\n rawComponents.Badge,\n) as typeof rawComponents.Badge;\nexport const Breadcrumb = wrapComponent(\n rawComponents.Breadcrumb,\n) as typeof rawComponents.Breadcrumb;\nexport const Button = wrapComponent(\n rawComponents.Button,\n) as typeof rawComponents.Button;\nexport const Card = wrapComponent(\n rawComponents.Card,\n) as typeof rawComponents.Card;\nexport const Checkbox = wrapComponent(\n rawComponents.Checkbox,\n) as typeof rawComponents.Checkbox;\nexport const CheckboxGroup = wrapComponent(\n rawComponents.CheckboxGroup,\n) as typeof rawComponents.CheckboxGroup;\nexport const Chip = wrapComponent(\n rawComponents.Chip,\n) as typeof rawComponents.Chip;\nexport const DatePicker = wrapComponent(\n rawComponents.DatePicker,\n) as typeof rawComponents.DatePicker;\nexport const Dropdown = wrapComponent(\n rawComponents.Dropdown,\n) as typeof rawComponents.Dropdown;\nexport const FileInput = wrapComponent(\n rawComponents.FileInput,\n) as typeof rawComponents.FileInput;\nexport const FileUpload = wrapComponent(\n rawComponents.FileUpload,\n) as typeof rawComponents.FileUpload;\nexport const FormControlLayout = wrapComponent(\n rawComponents.FormControlLayout,\n) as typeof rawComponents.FormControlLayout;\nexport const HoverCard = wrapComponent(\n rawComponents.HoverCard,\n) as typeof rawComponents.HoverCard;\nexport const Loader = wrapComponent(\n rawComponents.Loader,\n) as typeof rawComponents.Loader;\nexport const Label = wrapComponent(\n rawComponents.Label,\n) as typeof rawComponents.Label;\nexport const Menu = wrapComponent(\n rawComponents.Menu,\n) as typeof rawComponents.Menu;\nexport const Modal = wrapComponent(\n rawComponents.Modal,\n) as typeof rawComponents.Modal;\nexport const NumberInput = wrapComponent(\n rawComponents.NumberInput,\n) as typeof rawComponents.NumberInput;\nexport const Pagination = wrapComponent(\n rawComponents.Pagination,\n) as typeof rawComponents.Pagination;\nexport const Panel = wrapComponent(\n rawComponents.Panel,\n) as typeof rawComponents.Panel;\nexport const PanelFooter = wrapComponent(\n rawComponents.PanelFooter,\n) as typeof rawComponents.PanelFooter;\nexport const Popover = wrapComponent(\n rawComponents.Popover,\n) as typeof rawComponents.Popover;\nexport const Radio = wrapComponent(\n rawComponents.Radio,\n) as typeof rawComponents.Radio;\nexport const RadioGroup = wrapComponent(\n rawComponents.RadioGroup,\n) as typeof rawComponents.RadioGroup;\nexport const ReadOnlyField = wrapComponent(\n rawComponents.ReadOnlyField,\n) as typeof rawComponents.ReadOnlyField;\nexport const SegmentedControl = wrapComponent(\n rawComponents.SegmentedControl,\n) as typeof rawComponents.SegmentedControl;\nexport const Slider = wrapComponent(\n rawComponents.Slider,\n) as typeof rawComponents.Slider;\nexport const Stepper = wrapComponent(\n rawComponents.Stepper,\n) as typeof rawComponents.Stepper;\nexport const Switch = wrapComponent(\n rawComponents.Switch,\n) as typeof rawComponents.Switch;\nexport const SwitchGroup = wrapComponent(\n rawComponents.SwitchGroup,\n) as typeof rawComponents.SwitchGroup;\nexport const Table = wrapComponent(\n rawComponents.Table,\n) as typeof rawComponents.Table;\nexport const Tabs = wrapComponent(\n rawComponents.Tabs,\n) as typeof rawComponents.Tabs;\nexport const TextArea = wrapComponent(\n rawComponents.TextArea,\n) as typeof rawComponents.TextArea;\nexport const TextField = wrapComponent(\n rawComponents.TextField,\n) as typeof rawComponents.TextField;\nexport const TimePicker = wrapComponent(\n rawComponents.TimePicker,\n) as typeof rawComponents.TimePicker;\nexport const Timeline = wrapComponent(\n rawComponents.Timeline,\n) as typeof rawComponents.Timeline;\nexport const TimelineItem = wrapComponent(\n rawComponents.TimelineItem,\n) as typeof rawComponents.TimelineItem;\nexport const Title = wrapComponent(\n rawComponents.Title,\n) as typeof rawComponents.Title;\nexport const Toast = wrapComponent(\n rawComponents.Toast,\n) as typeof rawComponents.Toast;\nexport const Tooltip = wrapComponent(\n rawComponents.Tooltip,\n) as typeof rawComponents.Tooltip;\nexport const TransferList = wrapComponent(\n rawComponents.TransferList,\n) as typeof rawComponents.TransferList;\nexport const Tree = wrapComponent(\n rawComponents.Tree,\n) as typeof rawComponents.Tree;\n\nexport type {\n RecursicaCheckboxGroupProps,\n RecursicaDatePickerProps,\n RecursicaDropdownProps,\n RecursicaNumberInputProps,\n RecursicaRadioGroupProps,\n RecursicaReadOnlyFieldProps,\n RecursicaReadOnlyTextFieldProps,\n RecursicaSliderProps,\n RecursicaSwitchGroupProps,\n RecursicaTextAreaProps,\n RecursicaTextFieldProps,\n} from \"./components\";\n"],"names":["BLOCKED_STYLING_KEYS","LAYOUT_PROPS","SPACING_MAP","mapLayoutProps","props","mapped","key","value","filterStylingProps","overStyled","sanitized","prop","AccordionBase","variant","rest","sanitizedProps","mergedClassNames","styles","classNamesProp","o","classNameProp","jsx","MantineAccordion","AccordionItem","forwardRef","title","leftIcon","divider","children","ref","finalClass","jsxs","Fragment","AccordionControl","AccordionPanel","Accordion","Label","labelSize","labelAlignment","required","labelOptionalText","labelWithEditIcon","labelActionArea","onLabelEditClick","resolvedAlignment","resolvedOptionalText","restRecord","Input","FormControlLayout","formLayout","controlMaxWidth","controlMinWidth","leftSection","className","style","rootClass","shouldRenderLeft","InfoIcon","AlertIcon","AssistiveElement","assistiveVariant","assistiveWithIcon","IconComponent","FormControlWrapper","label","description","assistiveText","error","withAsterisk","userProvidedId","labelElement","generatedId","useId","id","resolvedAssistive","assistiveId","errorId","content","React","labelNode","T","C","a","g","S","t","r","n","c","d","w","u","E","e","y","A","s","_documentCurrentScript","p","i","I","V","b","R","f","h","v","m","x","_","L","$","O","l","ReadOnlyTextField","Box","ReadOnlyField","type","emptyValueComponent","Renderer","EmptyValueRenderer","displayValue","wrapperClass","WithReadOnlyWrapper","readOnly","readOnlyComponent","readOnlyType","readOnlyValue","readOnlyNativeProps","activeComponent","wrapperProps","ReadOnlyComponent","AutoComplete","disabled","defaultValue","MantineAutocomplete","_Avatar","size","icon","src","mapVariant","mapSize","computedStyle","MantineAvatar","Avatar","createPolymorphicComponent","_Badge","MantineBadge","Badge","Breadcrumb","separator","MantineBreadcrumbs","Loader","resolvedSize","MantineLoader","hasVisibleChildren","_Button","loaderVariant","loaderSize","useRecursicaLoader","hasLeftSection","hasRightSection","hasVisibleText","isIconOnly","contentType","userLoaderProps","resolvedLoaderSize","mergedLoaderProps","MantineButton","Button","CardBase","MantineCard","CardSection","CardHeader","CardFooter","CardContent","PolymorphicCard","_card","Card","CheckboxGroup","MantineCheckbox","Checkbox","isChecked","ReadOnlyComp","roNode","checkboxNode","CloseIcon","Chip","onRemove","removeLabel","dataError","isInteractive","MantineChip","Container","MantineContainer","DatePicker","DatePickerInput","Dropdown","containerWidth","data","injectedStyles","MantineSelect","FileInput","FileUpload","_Flex","gap","rowGap","columnGap","MantineFlex","Flex","Group","MantineGroup","HoverCardBase","withBeak","arrowSize","withArrow","resolvedWithArrow","MantineHoverCard","HoverCardTarget","HoverCardDropdown","HoverCard","_Link","MantineAnchor","Link","MenuBase","MantineMenu","MenuTarget","MenuDropdown","_MenuItem","MenuItem","MenuDivider","MenuLabel","MenuSubBase","MenuSubTarget","_MenuSubItem","MenuSubItem","MenuSubDropdown","MenuSub","Menu","ModalInner","withCloseButton","overlayProps","withOverlay","closeButtonProps","MantineModal","ModalBody","ModalFooter","onScroll","internalRef","scrolledTop","setScrolledTop","scrolledBottom","setScrolledBottom","checkScroll","scrollTop","scrollHeight","clientHeight","handleScroll","footer","bodyChildren","child","_a","node","Modal","NumberInput","hideControls","MantineNumberInput","NextPath","PrevPath","FirstPath","LastPath","paths","PaginationIcon","NextWithLabel","PrevWithLabel","FirstWithLabel","LastWithLabel","usePaginationClassNames","_PaginationRoot","stylingParams","MantinePagination","_PaginationNext","withLabel","renderIcon","_PaginationPrevious","_PaginationFirst","_PaginationLast","_Pagination","getControlProps","withLabels","mergedGetControlProps","control","baseProps","labelsIcons","Pagination","PanelBase","placement","keepMounted","wrapHeaderText","MantineDrawer","PanelFooter","finalClassName","Panel","PopoverBase","MantinePopover","PopoverTarget","PopoverDropdown","Popover","RadioGroup","MantineRadio","RadioIcon","Radio","radioNode","useSegmentedControlClassNames","_SegmentedControl","orientation","fullWidth","MantineSegmentedControl","SegmentedControl","SliderReadOnlyValue","Slider","tooltipLabel","showInput","showMinMaxLabels","min","max","step","onChange","onChangeEnd","internalValue","setInternalValue","useState","resolvedValue","inputValue","setInputValue","useEffect","handleValueChange","val","handleInputChange","valStr","parsed","clamped","handleInputBlur","leadingIcon","MantineSlider","_Stack","MantineStack","Stack","_Stepper","MantineStepper","Stepper","SwitchGroup","MantineSwitch","Switch","thumbIcon","FinalThumbIcon","CheckIcon","switchNode","TableBase","MantineTable","Table","_Tabs","MantineTabs","_TabsList","_TabsTab","_TabsPanel","Tabs","_Text","typographyClass","mergedClassName","MantineText","Text","TextArea","MantineTextarea","TextField","TimePicker","TimelineItem","timestamp","bulletVariant","MantineTimelineItem","TimelineInner","MantineTimeline","Timeline","Title","order","MantineTitle","Toast","MantineNotification","TooltipBase","MantineTooltip","Tooltip","TransferList","Tree","_overStyled","rawComponents.Flex","rawComponents.Group","rawComponents.Stack","rawComponents.Container","rawComponents.Link","rawComponents.Text","wrapComponent","rawComponents.Accordion","rawComponents.AccordionItem","rawComponents.AccordionControl","rawComponents.AccordionPanel","rawComponents.AutoComplete","rawComponents.Avatar","rawComponents.Badge","rawComponents.Breadcrumb","rawComponents.Button","rawComponents.Card","rawComponents.Checkbox","rawComponents.CheckboxGroup","rawComponents.Chip","rawComponents.DatePicker","rawComponents.Dropdown","rawComponents.FileInput","rawComponents.FileUpload","rawComponents.FormControlLayout","rawComponents.HoverCard","rawComponents.Loader","rawComponents.Label","rawComponents.Menu","rawComponents.Modal","rawComponents.NumberInput","rawComponents.Pagination","rawComponents.Panel","rawComponents.PanelFooter","rawComponents.Popover","rawComponents.Radio","rawComponents.RadioGroup","rawComponents.ReadOnlyField","rawComponents.SegmentedControl","rawComponents.Slider","rawComponents.Stepper","rawComponents.Switch","rawComponents.SwitchGroup","rawComponents.Table","rawComponents.Tabs","rawComponents.TextArea","rawComponents.TextField","rawComponents.TimePicker","rawComponents.Timeline","rawComponents.TimelineItem","rawComponents.Title","rawComponents.Toast","rawComponents.Tooltip","rawComponents.TransferList","rawComponents.Tree"],"mappings":"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O,GAASuO,EACpBS,EACF,EACavO,GAAO8N,EAClBU,EACF,EACarO,GAAW2N,EACtBW,EACF,EACaxO,GAAgB6N,EAC3BY,EACF,EACajO,GAAOqN,EAClBa,EACF,EACa1N,GAAa6M,EACxBc,EACF,EACazN,GAAW2M,EACtBe,EACF,EACarN,GAAYsM,EACvBgB,EACF,EACarN,GAAaqM,EACxBiB,EACF,EACajX,GAAoBgW,EAC/BkB,EACF,EACatM,GAAYoL,EACvBmB,EACF,EACa3Q,GAASwP,EACpBoB,EACF,EACahY,GAAQ4W,EACnBqB,EACF,EACavL,GAAOkK,EAClBsB,EACF,EACa/J,GAAQyI,EACnBuB,EACF,EACa/J,GAAcwI,EACzBwB,EACF,EACalI,GAAa0G,EACxByB,EACF,EACa3H,GAAQkG,EACnB0B,EACF,EACa9H,GAAcoG,EACzB2B,EACF,EACaxH,GAAU6F,EACrB4B,EACF,EACarH,GAAQyF,EACnB6B,EACF,EACazH,GAAa4F,EACxB8B,EACF,EACa1T,GAAgB4R,EAC3B+B,EACF,EACajH,GAAmBkF,EAC9BgC,EACF,EACahH,GAASgF,EACpBiC,EACF,EACanF,GAAUkD,EACrBkC,EACF,EACajF,GAAS+C,EACpBmC,EACF,EACapF,GAAciD,EACzBoC,EACF,EACa5E,GAAQwC,EACnBqC,EACF,EACavE,GAAOkC,EAClBsC,EACF,EACalE,GAAW4B,EACtBuC,EACF,EACajE,GAAY0B,EACvBwC,EACF,EACajE,GAAayB,EACxByC,EACF,EACa3D,GAAWkB,EACtB0C,EACF,EACalE,GAAewB,EAC1B2C,EACF,EACa5D,GAAQiB,EACnB4C,EACF,EACa1D,GAAQc,EACnB6C,EACF,EACavD,GAAUU,EACrB8C,EACF,EACavD,GAAeS,EAC1B+C,EACF,EACavD,GAAOQ,EAClBgD,EACF"}
|