@rabelo-digital/ds-rd 1.1.1

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/atoms/Button/Button.module.css","../src/components/atoms/Button/Button.tsx","../src/components/atoms/Input/Input.module.css","../src/components/atoms/Input/Input.tsx","../src/components/atoms/Textarea/Textarea.module.css","../src/components/atoms/Textarea/Textarea.tsx","../src/components/atoms/Badge/Badge.module.css","../src/components/atoms/Badge/Badge.tsx","../src/components/atoms/Avatar/Avatar.module.css","../src/components/atoms/Avatar/Avatar.tsx","../src/components/atoms/Checkbox/Checkbox.module.css","../src/components/atoms/Checkbox/Checkbox.tsx","../src/components/atoms/Radio/Radio.module.css","../src/components/atoms/Radio/Radio.tsx","../src/components/atoms/Select/Select.module.css","../src/components/atoms/Select/Select.tsx","../src/components/atoms/Tooltip/Tooltip.module.css","../src/components/atoms/Tooltip/Tooltip.tsx","../src/components/atoms/SocialIcons/SocialIcons.module.css","../src/components/atoms/SocialIcons/SocialIcons.tsx","../src/components/molecules/Card/Card.module.css","../src/components/molecules/Card/Card.tsx","../src/components/molecules/Modal/Modal.module.css","../src/components/molecules/Modal/Modal.tsx","../src/components/molecules/Drawer/Drawer.module.css","../src/components/molecules/Drawer/Drawer.tsx","../src/components/molecules/Tabs/Tabs.module.css","../src/components/molecules/Tabs/Tabs.tsx","../src/components/molecules/Accordion/Accordion.module.css","../src/components/molecules/Accordion/Accordion.tsx","../src/components/molecules/Toast/Toast.module.css","../src/components/molecules/Toast/Toast.tsx","../src/components/molecules/Table/Table.module.css","../src/components/molecules/Table/Table.tsx"],"names":["React","jsxs","jsx","useId","useState","RadixCheckbox","RadixRadio","RadixSelect","RadixTooltip","FaLinkedinIn","FaInstagram","FaGithub","FaYoutube","FaWhatsapp","FaFacebookF","FaTwitter","Icon","elevation","Dialog","Dialog2","RadixTabs","RadixAccordion","createContext","useContext","useCallback","RadixToast"],"mappings":"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","file":"index.js","sourcesContent":[".button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--ds-space-2);\n border: 1px solid transparent;\n border-radius: var(--ds-radius-md);\n font-family: var(--ds-font-family-base);\n font-weight: var(--ds-font-weight-medium);\n line-height: var(--ds-line-height-tight);\n cursor: pointer;\n text-decoration: none;\n transition:\n background-color var(--ds-motion-duration-fast) var(--ds-motion-easing-out),\n border-color var(--ds-motion-duration-fast) var(--ds-motion-easing-out),\n color var(--ds-motion-duration-fast) var(--ds-motion-easing-out),\n box-shadow var(--ds-motion-duration-fast) var(--ds-motion-easing-out);\n white-space: nowrap;\n user-select: none;\n}\n\n.button:focus-visible {\n outline: 2px solid var(--ds-color-border-focus);\n outline-offset: 2px;\n}\n\n/* Sizes */\n.sm {\n padding: var(--ds-space-1) var(--ds-space-3);\n font-size: var(--ds-font-size-sm);\n min-height: 32px;\n}\n\n.md {\n padding: var(--ds-space-2) var(--ds-space-4);\n font-size: var(--ds-font-size-md);\n min-height: 40px;\n}\n\n.lg {\n padding: var(--ds-space-3) var(--ds-space-6);\n font-size: var(--ds-font-size-lg);\n min-height: 48px;\n}\n\n/* Variants */\n.primary {\n background: var(--ds-color-primary);\n color: var(--ds-color-on-primary);\n border-color: var(--ds-color-primary);\n}\n\n.primary:hover:not(:disabled):not([aria-disabled=\"true\"]) {\n background: var(--ds-color-primary-hover);\n border-color: var(--ds-color-primary-hover);\n}\n\n.primary:active:not(:disabled) {\n background: var(--ds-color-primary-active);\n border-color: var(--ds-color-primary-active);\n}\n\n.secondary {\n background: var(--ds-color-secondary);\n color: var(--ds-color-on-secondary);\n border-color: var(--ds-color-secondary);\n}\n\n.secondary:hover:not(:disabled):not([aria-disabled=\"true\"]) {\n background: var(--ds-color-secondary-hover);\n border-color: var(--ds-color-secondary-hover);\n}\n\n.ghost {\n background: transparent;\n color: var(--ds-color-primary);\n border-color: var(--ds-color-border);\n}\n\n.ghost:hover:not(:disabled):not([aria-disabled=\"true\"]) {\n background: var(--ds-color-primary-subtle);\n border-color: var(--ds-color-primary);\n}\n\n.danger {\n background: var(--ds-color-error);\n color: var(--ds-color-on-error);\n border-color: var(--ds-color-error);\n}\n\n.danger:hover:not(:disabled):not([aria-disabled=\"true\"]) {\n background: var(--ds-color-error-hover);\n border-color: var(--ds-color-error-hover);\n}\n\n/* States */\n.button:disabled,\n.button[aria-disabled=\"true\"] {\n background: var(--ds-color-disabled-bg);\n color: var(--ds-color-disabled-text);\n border-color: var(--ds-color-disabled-border);\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* Loading */\n.loading {\n position: relative;\n cursor: wait;\n pointer-events: none;\n}\n\n.label {\n display: inline-flex;\n align-items: center;\n gap: var(--ds-space-2);\n}\n\n.labelHidden {\n visibility: hidden;\n}\n\n.spinner {\n position: absolute;\n width: 1em;\n height: 1em;\n border: 2px solid currentColor;\n border-top-color: transparent;\n border-radius: var(--ds-radius-full);\n animation: spin 0.6s linear infinite;\n}\n\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n","import React from \"react\";\n\nimport styles from \"./Button.module.css\";\n\nexport type ButtonVariant = \"primary\" | \"secondary\" | \"ghost\" | \"danger\";\nexport type ButtonSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: ButtonVariant;\n size?: ButtonSize;\n loading?: boolean;\n children: React.ReactNode;\n}\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n variant = \"primary\",\n size = \"md\",\n loading = false,\n disabled,\n className,\n children,\n onClick,\n ...props\n },\n ref\n ) => {\n const isDisabled = disabled || loading;\n\n return (\n <button\n ref={ref}\n className={[\n styles.button,\n styles[variant],\n styles[size],\n loading ? styles.loading : \"\",\n className ?? \"\"\n ]\n .filter(Boolean)\n .join(\" \")}\n disabled={isDisabled}\n aria-disabled={isDisabled || undefined}\n aria-busy={loading || undefined}\n onClick={isDisabled ? undefined : onClick}\n {...props}\n >\n <span className={loading ? styles.labelHidden : styles.label}>{children}</span>\n {loading && <span className={styles.spinner} aria-hidden=\"true\" />}\n </button>\n );\n }\n);\n\nButton.displayName = \"Button\";\n",".wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--ds-space-1);\n width: 100%;\n}\n\n.label {\n font-family: var(--ds-font-family-base);\n font-size: var(--ds-font-size-sm);\n font-weight: var(--ds-font-weight-medium);\n color: var(--ds-color-text);\n line-height: var(--ds-line-height-normal);\n}\n\n.input {\n width: 100%;\n font-family: var(--ds-font-family-base);\n font-size: var(--ds-font-size-md);\n color: var(--ds-color-text);\n background: var(--ds-color-bg);\n border: 1px solid var(--ds-color-border);\n border-radius: var(--ds-radius-md);\n transition:\n border-color var(--ds-motion-duration-fast) var(--ds-motion-easing-out),\n box-shadow var(--ds-motion-duration-fast) var(--ds-motion-easing-out);\n outline: none;\n box-sizing: border-box;\n}\n\n.input::placeholder {\n color: var(--ds-color-text-subtle);\n}\n\n.input:hover:not(:disabled) {\n border-color: var(--ds-color-border-strong);\n}\n\n.input:focus {\n border-color: var(--ds-color-border-focus);\n box-shadow: 0 0 0 3px var(--ds-color-primary-muted);\n}\n\n.input:disabled {\n background: var(--ds-color-disabled-bg);\n color: var(--ds-color-disabled-text);\n border-color: var(--ds-color-disabled-border);\n cursor: not-allowed;\n}\n\n.input.error {\n border-color: var(--ds-color-border-error);\n}\n\n.input.error:focus {\n box-shadow: 0 0 0 3px var(--ds-color-error-muted);\n}\n\n/* Sizes */\n.sm {\n padding: var(--ds-space-1) var(--ds-space-2);\n font-size: var(--ds-font-size-sm);\n min-height: 32px;\n}\n.md {\n padding: var(--ds-space-2) var(--ds-space-3);\n font-size: var(--ds-font-size-md);\n min-height: 40px;\n}\n.lg {\n padding: var(--ds-space-3) var(--ds-space-4);\n font-size: var(--ds-font-size-lg);\n min-height: 48px;\n}\n\n.helperText {\n font-size: var(--ds-font-size-xs);\n color: var(--ds-color-text-muted);\n line-height: var(--ds-line-height-normal);\n}\n\n.errorText {\n font-size: var(--ds-font-size-xs);\n color: var(--ds-color-error);\n line-height: var(--ds-line-height-normal);\n}\n","import React, { useId } from \"react\";\n\nimport styles from \"./Input.module.css\";\n\nexport type InputSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, \"size\"> {\n label?: string;\n error?: string;\n helperText?: string;\n size?: InputSize;\n}\n\nexport const Input = React.forwardRef<HTMLInputElement, InputProps>(\n ({ label, error, helperText, size = \"md\", className, id, ...props }, ref) => {\n const generatedId = useId();\n const inputId = id ?? generatedId;\n const errorId = `${inputId}-error`;\n const helperId = `${inputId}-helper`;\n\n return (\n <div className={styles.wrapper}>\n {label && (\n <label htmlFor={inputId} className={styles.label}>\n {label}\n </label>\n )}\n <input\n ref={ref}\n id={inputId}\n className={[styles.input, styles[size], error ? styles.error : \"\", className ?? \"\"]\n .filter(Boolean)\n .join(\" \")}\n aria-invalid={!!error}\n aria-describedby={\n [error ? errorId : null, helperText ? helperId : null].filter(Boolean).join(\" \") ||\n undefined\n }\n {...props}\n />\n {error && (\n <span id={errorId} className={styles.errorText} role=\"alert\">\n {error}\n </span>\n )}\n {helperText && !error && (\n <span id={helperId} className={styles.helperText}>\n {helperText}\n </span>\n )}\n </div>\n );\n }\n);\n\nInput.displayName = \"Input\";\n",".wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--ds-space-1);\n width: 100%;\n}\n\n.label {\n font-family: var(--ds-font-family-base);\n font-size: var(--ds-font-size-sm);\n font-weight: var(--ds-font-weight-medium);\n color: var(--ds-color-text);\n}\n\n.textarea {\n width: 100%;\n min-height: 100px;\n padding: var(--ds-space-2) var(--ds-space-3);\n font-family: var(--ds-font-family-base);\n font-size: var(--ds-font-size-md);\n color: var(--ds-color-text);\n background: var(--ds-color-bg);\n border: 1px solid var(--ds-color-border);\n border-radius: var(--ds-radius-md);\n resize: vertical;\n outline: none;\n transition:\n border-color var(--ds-motion-duration-fast) var(--ds-motion-easing-out),\n box-shadow var(--ds-motion-duration-fast) var(--ds-motion-easing-out);\n box-sizing: border-box;\n}\n\n.textarea:focus {\n border-color: var(--ds-color-border-focus);\n box-shadow: 0 0 0 3px var(--ds-color-primary-muted);\n}\n.textarea:disabled {\n background: var(--ds-color-disabled-bg);\n color: var(--ds-color-disabled-text);\n cursor: not-allowed;\n}\n.textarea.error {\n border-color: var(--ds-color-border-error);\n}\n.textarea.error:focus {\n box-shadow: 0 0 0 3px var(--ds-color-error-muted);\n}\n\n.footer {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n}\n.helperText {\n font-size: var(--ds-font-size-xs);\n color: var(--ds-color-text-muted);\n}\n.errorText {\n font-size: var(--ds-font-size-xs);\n color: var(--ds-color-error);\n}\n.counter {\n font-size: var(--ds-font-size-xs);\n color: var(--ds-color-text-muted);\n margin-left: auto;\n}\n","import React, { useId, useState } from \"react\";\n\nimport styles from \"./Textarea.module.css\";\n\nexport interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {\n label?: string;\n error?: string;\n helperText?: string;\n showCount?: boolean;\n}\n\nexport const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\n (\n { label, error, helperText, showCount = false, maxLength, className, id, onChange, ...props },\n ref\n ) => {\n const generatedId = useId();\n const textareaId = id ?? generatedId;\n const errorId = `${textareaId}-error`;\n const helperId = `${textareaId}-helper`;\n const [count, setCount] = useState(typeof props.value === \"string\" ? props.value.length : 0);\n\n const handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n setCount(e.target.value.length);\n onChange?.(e);\n };\n\n return (\n <div className={styles.wrapper}>\n {label && (\n <label htmlFor={textareaId} className={styles.label}>\n {label}\n </label>\n )}\n <textarea\n ref={ref}\n id={textareaId}\n className={[styles.textarea, error ? styles.error : \"\", className ?? \"\"]\n .filter(Boolean)\n .join(\" \")}\n maxLength={maxLength}\n onChange={handleChange}\n aria-invalid={!!error}\n aria-describedby={\n [error ? errorId : null, helperText ? helperId : null].filter(Boolean).join(\" \") ||\n undefined\n }\n {...props}\n />\n <div className={styles.footer}>\n {error && (\n <span id={errorId} className={styles.errorText} role=\"alert\">\n {error}\n </span>\n )}\n {helperText && !error && (\n <span id={helperId} className={styles.helperText}>\n {helperText}\n </span>\n )}\n {showCount && maxLength && (\n <span className={styles.counter} aria-live=\"polite\">\n {count}/{maxLength}\n </span>\n )}\n </div>\n </div>\n );\n }\n);\n\nTextarea.displayName = \"Textarea\";\n",".badge {\n display: inline-flex;\n align-items: center;\n font-family: var(--ds-font-family-base);\n font-weight: var(--ds-font-weight-medium);\n border-radius: var(--ds-radius-full);\n white-space: nowrap;\n}\n\n.sm {\n padding: 2px var(--ds-space-2);\n font-size: var(--ds-font-size-xs);\n}\n.md {\n padding: var(--ds-space-1) var(--ds-space-2);\n font-size: var(--ds-font-size-sm);\n}\n\n.default {\n background: var(--ds-color-bg-muted);\n color: var(--ds-color-text);\n}\n.primary {\n background: var(--ds-color-primary-muted);\n color: var(--ds-color-primary);\n}\n.success {\n background: var(--ds-color-success-muted);\n color: var(--ds-color-success);\n}\n.warning {\n background: var(--ds-color-warning-muted);\n color: var(--ds-color-warning-hover);\n}\n.error {\n background: var(--ds-color-error-muted);\n color: var(--ds-color-error);\n}\n.info {\n background: var(--ds-color-info-muted);\n color: var(--ds-color-info);\n}\n","import React from \"react\";\n\nimport styles from \"./Badge.module.css\";\n\nexport type BadgeVariant = \"default\" | \"primary\" | \"success\" | \"warning\" | \"error\" | \"info\";\nexport type BadgeSize = \"sm\" | \"md\";\n\nexport interface BadgeProps {\n variant?: BadgeVariant;\n size?: BadgeSize;\n children: React.ReactNode;\n className?: string;\n}\n\nexport const Badge: React.FC<BadgeProps> = ({\n variant = \"default\",\n size = \"md\",\n children,\n className\n}) => (\n <span\n className={[styles.badge, styles[variant], styles[size], className ?? \"\"]\n .filter(Boolean)\n .join(\" \")}\n >\n {children}\n </span>\n);\n\nBadge.displayName = \"Badge\";\n",".avatar {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n background: var(--ds-color-primary-muted);\n color: var(--ds-color-primary);\n font-family: var(--ds-font-family-base);\n font-weight: var(--ds-font-weight-semibold);\n overflow: hidden;\n flex-shrink: 0;\n}\n\n.circle {\n border-radius: var(--ds-radius-full);\n}\n.square {\n border-radius: var(--ds-radius-lg);\n}\n\n.xs {\n width: 24px;\n height: 24px;\n font-size: var(--ds-font-size-xs);\n}\n.sm {\n width: 32px;\n height: 32px;\n font-size: var(--ds-font-size-xs);\n}\n.md {\n width: 40px;\n height: 40px;\n font-size: var(--ds-font-size-sm);\n}\n.lg {\n width: 56px;\n height: 56px;\n font-size: var(--ds-font-size-md);\n}\n.xl {\n width: 80px;\n height: 80px;\n font-size: var(--ds-font-size-xl);\n}\n\n.image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n}\n.initials {\n line-height: 1;\n}\n","import React, { useState } from \"react\";\n\nimport styles from \"./Avatar.module.css\";\n\nexport type AvatarSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\nexport type AvatarShape = \"circle\" | \"square\";\n\nexport interface AvatarProps {\n src?: string;\n alt?: string;\n name?: string;\n size?: AvatarSize;\n shape?: AvatarShape;\n className?: string;\n}\n\nfunction getInitials(name: string): string {\n return name\n .split(\" \")\n .map((part) => part[0])\n .filter(Boolean)\n .slice(0, 2)\n .join(\"\")\n .toUpperCase();\n}\n\nexport const Avatar: React.FC<AvatarProps> = ({\n src,\n alt,\n name,\n size = \"md\",\n shape = \"circle\",\n className\n}) => {\n const [imgError, setImgError] = useState(false);\n const initials = name ? getInitials(name) : null;\n const showImage = src && !imgError;\n\n const wrapperClass = [styles.avatar, styles[size], styles[shape], className ?? \"\"]\n .filter(Boolean)\n .join(\" \");\n\n if (showImage) {\n return (\n <span className={wrapperClass}>\n <img\n src={src}\n alt={alt ?? name ?? \"\"}\n className={styles.image}\n onError={() => setImgError(true)}\n />\n </span>\n );\n }\n\n return (\n <span className={wrapperClass} role=\"img\" aria-label={alt ?? name ?? \"Avatar\"}>\n <span className={styles.initials} aria-hidden=\"true\">\n {initials ?? \"?\"}\n </span>\n </span>\n );\n};\n\nAvatar.displayName = \"Avatar\";\n",".wrapper {\n display: flex;\n align-items: center;\n gap: var(--ds-space-2);\n}\n\n.root {\n width: 18px;\n height: 18px;\n border: 2px solid var(--ds-color-border-strong);\n border-radius: var(--ds-radius-sm);\n background: var(--ds-color-bg);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n flex-shrink: 0;\n transition:\n border-color var(--ds-motion-duration-fast) var(--ds-motion-easing-out),\n background var(--ds-motion-duration-fast) var(--ds-motion-easing-out);\n outline: none;\n}\n\n.root[data-state=\"checked\"],\n.root[data-state=\"indeterminate\"] {\n background: var(--ds-color-primary);\n border-color: var(--ds-color-primary);\n color: var(--ds-color-on-primary);\n}\n\n.root:focus-visible {\n outline: 2px solid var(--ds-color-border-focus);\n outline-offset: 2px;\n}\n.root:disabled {\n background: var(--ds-color-disabled-bg);\n border-color: var(--ds-color-disabled-border);\n cursor: not-allowed;\n}\n\n.indicator {\n display: flex;\n align-items: center;\n justify-content: center;\n color: currentColor;\n}\n.label {\n font-size: var(--ds-font-size-sm);\n color: var(--ds-color-text);\n cursor: pointer;\n line-height: var(--ds-line-height-normal);\n}\n","import * as RadixCheckbox from \"@radix-ui/react-checkbox\";\nimport React, { useId } from \"react\";\n\nimport styles from \"./Checkbox.module.css\";\n\nexport interface CheckboxProps {\n checked?: boolean | \"indeterminate\";\n defaultChecked?: boolean;\n onCheckedChange?: (checked: boolean | \"indeterminate\") => void;\n disabled?: boolean;\n label?: string;\n id?: string;\n className?: string;\n}\n\nexport const Checkbox: React.FC<CheckboxProps> = ({\n checked,\n defaultChecked,\n onCheckedChange,\n disabled,\n label,\n id,\n className\n}) => {\n const generatedId = useId();\n const checkboxId = id ?? generatedId;\n\n return (\n <div className={[styles.wrapper, className ?? \"\"].filter(Boolean).join(\" \")}>\n <RadixCheckbox.Root\n id={checkboxId}\n checked={checked}\n defaultChecked={defaultChecked}\n onCheckedChange={onCheckedChange}\n disabled={disabled}\n className={styles.root}\n >\n <RadixCheckbox.Indicator className={styles.indicator}>\n {checked === \"indeterminate\" ? (\n <svg width=\"10\" height=\"2\" viewBox=\"0 0 10 2\" fill=\"currentColor\" aria-hidden=\"true\">\n <rect width=\"10\" height=\"2\" rx=\"1\" />\n </svg>\n ) : (\n <svg width=\"10\" height=\"8\" viewBox=\"0 0 10 8\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M1 4l2.5 2.5L9 1\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </RadixCheckbox.Indicator>\n </RadixCheckbox.Root>\n {label && (\n <label htmlFor={checkboxId} className={styles.label}>\n {label}\n </label>\n )}\n </div>\n );\n};\n\nCheckbox.displayName = \"Checkbox\";\n",".group {\n display: flex;\n}\n.vertical {\n flex-direction: column;\n gap: var(--ds-space-2);\n}\n.horizontal {\n flex-direction: row;\n flex-wrap: wrap;\n gap: var(--ds-space-4);\n}\n\n.item {\n display: flex;\n align-items: center;\n gap: var(--ds-space-2);\n}\n\n.radio {\n width: 18px;\n height: 18px;\n border-radius: var(--ds-radius-full);\n border: 2px solid var(--ds-color-border-strong);\n background: var(--ds-color-bg);\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n flex-shrink: 0;\n outline: none;\n transition: border-color var(--ds-motion-duration-fast) var(--ds-motion-easing-out);\n}\n\n.radio[data-state=\"checked\"] {\n border-color: var(--ds-color-primary);\n}\n.radio:focus-visible {\n outline: 2px solid var(--ds-color-border-focus);\n outline-offset: 2px;\n}\n.radio:disabled {\n background: var(--ds-color-disabled-bg);\n border-color: var(--ds-color-disabled-border);\n cursor: not-allowed;\n}\n\n.indicator {\n width: 8px;\n height: 8px;\n border-radius: var(--ds-radius-full);\n background: var(--ds-color-primary);\n}\n\n.label {\n font-size: var(--ds-font-size-sm);\n color: var(--ds-color-text);\n cursor: pointer;\n}\n","import * as RadixRadio from \"@radix-ui/react-radio-group\";\nimport React, { useId } from \"react\";\n\nimport styles from \"./Radio.module.css\";\n\nexport interface RadioOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\nexport interface RadioGroupProps {\n options: RadioOption[];\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n disabled?: boolean;\n name?: string;\n orientation?: \"horizontal\" | \"vertical\";\n className?: string;\n}\n\nexport const RadioGroup: React.FC<RadioGroupProps> = ({\n options,\n value,\n defaultValue,\n onValueChange,\n disabled,\n name,\n orientation = \"vertical\",\n className\n}) => {\n const baseId = useId();\n\n return (\n <RadixRadio.Root\n value={value}\n defaultValue={defaultValue}\n onValueChange={onValueChange}\n disabled={disabled}\n name={name}\n orientation={orientation}\n className={[styles.group, styles[orientation], className ?? \"\"].filter(Boolean).join(\" \")}\n >\n {options.map((option) => {\n const radioId = `${baseId}-${option.value}`;\n return (\n <div key={option.value} className={styles.item}>\n <RadixRadio.Item\n id={radioId}\n value={option.value}\n disabled={option.disabled ?? disabled}\n className={styles.radio}\n >\n <RadixRadio.Indicator className={styles.indicator} />\n </RadixRadio.Item>\n <label htmlFor={radioId} className={styles.label}>\n {option.label}\n </label>\n </div>\n );\n })}\n </RadixRadio.Root>\n );\n};\n\nRadioGroup.displayName = \"RadioGroup\";\n",".wrapper {\n display: flex;\n flex-direction: column;\n gap: var(--ds-space-1);\n width: 100%;\n}\n.label {\n font-size: var(--ds-font-size-sm);\n font-weight: var(--ds-font-weight-medium);\n color: var(--ds-color-text);\n}\n\n.trigger {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--ds-space-2);\n width: 100%;\n font-family: var(--ds-font-family-base);\n color: var(--ds-color-text);\n background: var(--ds-color-bg);\n border: 1px solid var(--ds-color-border);\n border-radius: var(--ds-radius-md);\n cursor: pointer;\n outline: none;\n transition: border-color var(--ds-motion-duration-fast) var(--ds-motion-easing-out);\n}\n\n.trigger:hover:not(:disabled) {\n border-color: var(--ds-color-border-strong);\n}\n.trigger:focus {\n border-color: var(--ds-color-border-focus);\n box-shadow: 0 0 0 3px var(--ds-color-primary-muted);\n}\n.trigger[data-disabled] {\n background: var(--ds-color-disabled-bg);\n color: var(--ds-color-disabled-text);\n cursor: not-allowed;\n}\n.trigger.error {\n border-color: var(--ds-color-border-error);\n}\n\n.sm {\n padding: var(--ds-space-1) var(--ds-space-2);\n font-size: var(--ds-font-size-sm);\n min-height: 32px;\n}\n.md {\n padding: var(--ds-space-2) var(--ds-space-3);\n font-size: var(--ds-font-size-md);\n min-height: 40px;\n}\n.lg {\n padding: var(--ds-space-3) var(--ds-space-4);\n font-size: var(--ds-font-size-lg);\n min-height: 48px;\n}\n\n.icon {\n color: var(--ds-color-text-muted);\n flex-shrink: 0;\n}\n\n.content {\n background: var(--ds-color-surface);\n border: 1px solid var(--ds-color-border);\n border-radius: var(--ds-radius-lg);\n box-shadow: var(--ds-elevation-md);\n z-index: var(--ds-z-dropdown);\n min-width: var(--radix-select-trigger-width);\n max-height: var(--radix-select-content-available-height);\n overflow: hidden;\n}\n\n.viewport {\n padding: var(--ds-space-1);\n}\n\n.item {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--ds-space-2);\n padding: var(--ds-space-2) var(--ds-space-3);\n border-radius: var(--ds-radius-md);\n font-size: var(--ds-font-size-sm);\n color: var(--ds-color-text);\n cursor: pointer;\n outline: none;\n transition: background var(--ds-motion-duration-fast) var(--ds-motion-easing-out);\n user-select: none;\n}\n\n.item[data-highlighted] {\n background: var(--ds-color-primary-subtle);\n color: var(--ds-color-primary);\n}\n.item[data-disabled] {\n color: var(--ds-color-disabled-text);\n cursor: not-allowed;\n}\n.itemIndicator {\n color: var(--ds-color-primary);\n}\n\n.errorText {\n font-size: var(--ds-font-size-xs);\n color: var(--ds-color-error);\n}\n.helperText {\n font-size: var(--ds-font-size-xs);\n color: var(--ds-color-text-muted);\n}\n","import * as RadixSelect from \"@radix-ui/react-select\";\nimport React, { useId } from \"react\";\n\nimport styles from \"./Select.module.css\";\n\nexport interface SelectOption {\n value: string;\n label: string;\n disabled?: boolean;\n}\n\nexport type SelectSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface SelectProps {\n options: SelectOption[];\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n label?: string;\n placeholder?: string;\n error?: string;\n helperText?: string;\n disabled?: boolean;\n size?: SelectSize;\n id?: string;\n className?: string;\n}\n\nexport const Select: React.FC<SelectProps> = ({\n options,\n value,\n defaultValue,\n onValueChange,\n label,\n placeholder = \"Selecione...\",\n error,\n helperText,\n disabled,\n size = \"md\",\n id,\n className\n}) => {\n const generatedId = useId();\n const selectId = id ?? generatedId;\n\n return (\n <div className={[styles.wrapper, className ?? \"\"].filter(Boolean).join(\" \")}>\n {label && (\n <label id={`${selectId}-label`} className={styles.label}>\n {label}\n </label>\n )}\n <RadixSelect.Root\n value={value}\n defaultValue={defaultValue}\n onValueChange={onValueChange}\n disabled={disabled}\n >\n <RadixSelect.Trigger\n id={selectId}\n aria-labelledby={label ? `${selectId}-label` : undefined}\n aria-invalid={!!error}\n className={[styles.trigger, styles[size], error ? styles.error : \"\"]\n .filter(Boolean)\n .join(\" \")}\n >\n <RadixSelect.Value placeholder={placeholder} />\n <RadixSelect.Icon className={styles.icon}>\n <svg width=\"12\" height=\"8\" viewBox=\"0 0 12 8\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M1 1l5 5 5-5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </RadixSelect.Icon>\n </RadixSelect.Trigger>\n\n <RadixSelect.Portal>\n <RadixSelect.Content className={styles.content} position=\"popper\" sideOffset={4}>\n <RadixSelect.Viewport className={styles.viewport}>\n {options.map((option) => (\n <RadixSelect.Item\n key={option.value}\n value={option.value}\n disabled={option.disabled}\n className={styles.item}\n >\n <RadixSelect.ItemText>{option.label}</RadixSelect.ItemText>\n <RadixSelect.ItemIndicator className={styles.itemIndicator}>\n <svg width=\"12\" height=\"10\" viewBox=\"0 0 12 10\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M1 5l3 3 7-7\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </RadixSelect.ItemIndicator>\n </RadixSelect.Item>\n ))}\n </RadixSelect.Viewport>\n </RadixSelect.Content>\n </RadixSelect.Portal>\n </RadixSelect.Root>\n\n {error && (\n <span className={styles.errorText} role=\"alert\">\n {error}\n </span>\n )}\n {helperText && !error && <span className={styles.helperText}>{helperText}</span>}\n </div>\n );\n};\n\nSelect.displayName = \"Select\";\n",".content {\n background: var(--ds-color-text);\n color: var(--ds-color-text-inverse);\n font-family: var(--ds-font-family-base);\n font-size: var(--ds-font-size-xs);\n line-height: var(--ds-line-height-normal);\n padding: var(--ds-space-1) var(--ds-space-2);\n border-radius: var(--ds-radius-md);\n box-shadow: var(--ds-elevation-md);\n z-index: var(--ds-z-tooltip);\n max-width: 250px;\n animation: fadeIn var(--ds-motion-duration-fast) var(--ds-motion-easing-out);\n}\n\n.arrow {\n fill: var(--ds-color-text);\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n transform: scale(0.96);\n }\n to {\n opacity: 1;\n transform: scale(1);\n }\n}\n","import * as RadixTooltip from \"@radix-ui/react-tooltip\";\nimport React from \"react\";\n\nimport styles from \"./Tooltip.module.css\";\n\nexport type TooltipSide = \"top\" | \"right\" | \"bottom\" | \"left\";\n\nexport interface TooltipProps {\n content: React.ReactNode;\n children: React.ReactElement;\n side?: TooltipSide;\n delayDuration?: number;\n}\n\nexport const TooltipProvider = RadixTooltip.Provider;\n\nexport const Tooltip: React.FC<TooltipProps> = ({\n content,\n children,\n side = \"top\",\n delayDuration = 300\n}) => (\n <RadixTooltip.Root delayDuration={delayDuration}>\n <RadixTooltip.Trigger asChild>{children}</RadixTooltip.Trigger>\n <RadixTooltip.Portal>\n <RadixTooltip.Content side={side} className={styles.content} sideOffset={6}>\n {content}\n <RadixTooltip.Arrow className={styles.arrow} />\n </RadixTooltip.Content>\n </RadixTooltip.Portal>\n </RadixTooltip.Root>\n);\n\nTooltip.displayName = \"Tooltip\";\n",".list {\n display: flex;\n gap: var(--ds-space-2);\n list-style: none;\n margin: 0;\n padding: 0;\n flex-wrap: wrap;\n}\n\n.link {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: var(--ds-radius-full);\n color: var(--ds-color-text-muted);\n background: var(--ds-color-bg-subtle);\n transition:\n color var(--ds-motion-duration-fast) var(--ds-motion-easing-out),\n background var(--ds-motion-duration-fast) var(--ds-motion-easing-out);\n text-decoration: none;\n}\n\n.link:hover {\n color: var(--ds-color-primary);\n background: var(--ds-color-primary-subtle);\n}\n.link:focus-visible {\n outline: 2px solid var(--ds-color-border-focus);\n outline-offset: 2px;\n}\n\n.sm {\n width: 32px;\n height: 32px;\n font-size: 14px;\n}\n.md {\n width: 40px;\n height: 40px;\n font-size: 16px;\n}\n.lg {\n width: 48px;\n height: 48px;\n font-size: 20px;\n}\n","import React from \"react\";\nimport {\n FaLinkedinIn,\n FaInstagram,\n FaGithub,\n FaYoutube,\n FaWhatsapp,\n FaFacebookF,\n FaTwitter\n} from \"react-icons/fa\";\n\nimport styles from \"./SocialIcons.module.css\";\n\nexport type SocialPlatform =\n | \"linkedin\"\n | \"instagram\"\n | \"github\"\n | \"youtube\"\n | \"whatsapp\"\n | \"facebook\"\n | \"twitter\";\n\nexport type SocialIconSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface SocialLink {\n platform: SocialPlatform;\n url: string;\n label?: string;\n}\n\nexport interface SocialIconsProps {\n links: SocialLink[];\n size?: SocialIconSize;\n className?: string;\n}\n\nconst ICON_MAP: Record<SocialPlatform, React.ElementType> = {\n linkedin: FaLinkedinIn,\n instagram: FaInstagram,\n github: FaGithub,\n youtube: FaYoutube,\n whatsapp: FaWhatsapp,\n facebook: FaFacebookF,\n twitter: FaTwitter\n};\n\nconst DEFAULT_LABELS: Record<SocialPlatform, string> = {\n linkedin: \"Seguir no LinkedIn\",\n instagram: \"Seguir no Instagram\",\n github: \"Ver no GitHub\",\n youtube: \"Assistir no YouTube\",\n whatsapp: \"Conversar no WhatsApp\",\n facebook: \"Seguir no Facebook\",\n twitter: \"Seguir no Twitter\"\n};\n\nexport const SocialIcons: React.FC<SocialIconsProps> = ({ links, size = \"md\", className }) => (\n <ul className={[styles.list, className ?? \"\"].filter(Boolean).join(\" \")}>\n {links.map(({ platform, url, label }) => {\n const Icon = ICON_MAP[platform];\n const ariaLabel = label ?? DEFAULT_LABELS[platform];\n return (\n <li key={platform}>\n <a\n href={url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-label={ariaLabel}\n className={[styles.link, styles[size]].join(\" \")}\n >\n <Icon aria-hidden=\"true\" />\n </a>\n </li>\n );\n })}\n </ul>\n);\n\nSocialIcons.displayName = \"SocialIcons\";\n",".card {\n background: var(--ds-color-surface);\n border: 1px solid var(--ds-color-border);\n overflow: hidden;\n}\n\n.header {\n padding: var(--ds-space-4) var(--ds-space-6);\n border-bottom: 1px solid var(--ds-color-border-muted);\n font-weight: var(--ds-font-weight-semibold);\n font-size: var(--ds-font-size-lg);\n color: var(--ds-color-text);\n}\n\n.body {\n padding: var(--ds-space-6);\n color: var(--ds-color-text);\n}\n\n.footer {\n padding: var(--ds-space-4) var(--ds-space-6);\n border-top: 1px solid var(--ds-color-border-muted);\n background: var(--ds-color-bg-subtle);\n display: flex;\n align-items: center;\n gap: var(--ds-space-2);\n}\n","import React from \"react\";\n\nimport type { ElevationKey, RadiiKey } from \"../../../tokens\";\n\nimport styles from \"./Card.module.css\";\n\nexport interface CardProps {\n elevation?: ElevationKey;\n radius?: RadiiKey;\n className?: string;\n children: React.ReactNode;\n}\n\ninterface CardSectionProps {\n className?: string;\n children: React.ReactNode;\n}\n\nconst CardHeader: React.FC<CardSectionProps> = ({ children, className }) => (\n <div className={[styles.header, className ?? \"\"].filter(Boolean).join(\" \")}>{children}</div>\n);\n\nconst CardBody: React.FC<CardSectionProps> = ({ children, className }) => (\n <div className={[styles.body, className ?? \"\"].filter(Boolean).join(\" \")}>{children}</div>\n);\n\nconst CardFooter: React.FC<CardSectionProps> = ({ children, className }) => (\n <div className={[styles.footer, className ?? \"\"].filter(Boolean).join(\" \")}>{children}</div>\n);\n\nexport const Card: React.FC<CardProps> & {\n Header: typeof CardHeader;\n Body: typeof CardBody;\n Footer: typeof CardFooter;\n} = ({ elevation = \"sm\", radius = \"lg\", className, children }) => (\n <div\n className={[styles.card, className ?? \"\"].filter(Boolean).join(\" \")}\n style={{\n boxShadow: `var(--ds-elevation-${elevation})`,\n borderRadius: `var(--ds-radius-${radius})`\n }}\n >\n {children}\n </div>\n);\n\nCard.Header = CardHeader;\nCard.Body = CardBody;\nCard.Footer = CardFooter;\nCard.displayName = \"Card\";\n",".overlay {\n position: fixed;\n inset: 0;\n background: var(--ds-color-bg-overlay);\n z-index: var(--ds-z-overlay);\n animation: overlayIn var(--ds-motion-duration-normal) var(--ds-motion-easing-out);\n}\n\n.content {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background: var(--ds-color-surface);\n border-radius: var(--ds-radius-xl);\n box-shadow: var(--ds-elevation-xl);\n z-index: var(--ds-z-modal);\n max-height: 90vh;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n animation: contentIn var(--ds-motion-duration-normal) var(--ds-motion-easing-spring);\n}\n\n.sm {\n width: min(400px, 90vw);\n}\n.md {\n width: min(560px, 90vw);\n}\n.lg {\n width: min(720px, 90vw);\n}\n.xl {\n width: min(900px, 90vw);\n}\n.full {\n width: calc(100vw - 32px);\n height: calc(100vh - 32px);\n top: 16px;\n left: 16px;\n transform: none;\n}\n\n.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--ds-space-4);\n padding: var(--ds-space-4) var(--ds-space-6);\n border-bottom: 1px solid var(--ds-color-border-muted);\n}\n\n.title {\n font-family: var(--ds-font-family-heading);\n font-size: var(--ds-font-size-xl);\n font-weight: var(--ds-font-weight-semibold);\n color: var(--ds-color-text);\n margin: 0;\n}\n\n.description {\n padding: var(--ds-space-2) var(--ds-space-6) 0;\n font-size: var(--ds-font-size-sm);\n color: var(--ds-color-text-muted);\n}\n\n.body {\n padding: var(--ds-space-6);\n flex: 1;\n}\n\n.close {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border-radius: var(--ds-radius-md);\n border: none;\n background: transparent;\n color: var(--ds-color-text-muted);\n cursor: pointer;\n transition:\n background var(--ds-motion-duration-fast) var(--ds-motion-easing-out),\n color var(--ds-motion-duration-fast) var(--ds-motion-easing-out);\n flex-shrink: 0;\n}\n\n.close:hover {\n background: var(--ds-color-bg-subtle);\n color: var(--ds-color-text);\n}\n.close:focus-visible {\n outline: 2px solid var(--ds-color-border-focus);\n outline-offset: 2px;\n}\n\n@keyframes overlayIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes contentIn {\n from {\n opacity: 0;\n transform: translate(-50%, -48%) scale(0.96);\n }\n to {\n opacity: 1;\n transform: translate(-50%, -50%) scale(1);\n }\n}\n","import * as Dialog from \"@radix-ui/react-dialog\";\nimport React from \"react\";\n\nimport styles from \"./Modal.module.css\";\n\nexport type ModalSize = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n\nexport interface ModalProps {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n title?: string;\n description?: string;\n size?: ModalSize;\n children: React.ReactNode;\n trigger?: React.ReactElement;\n}\n\nexport const Modal: React.FC<ModalProps> = ({\n open,\n onOpenChange,\n title,\n description,\n size = \"md\",\n children,\n trigger\n}) => (\n <Dialog.Root open={open} onOpenChange={onOpenChange}>\n {trigger && <Dialog.Trigger asChild>{trigger}</Dialog.Trigger>}\n <Dialog.Portal>\n <Dialog.Overlay className={styles.overlay} />\n <Dialog.Content\n className={[styles.content, styles[size]].join(\" \")}\n aria-describedby={description ? \"modal-description\" : undefined}\n >\n <div className={styles.header}>\n {title && <Dialog.Title className={styles.title}>{title}</Dialog.Title>}\n <Dialog.Close asChild>\n <button className={styles.close} aria-label=\"Fechar\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M2 2l12 12M14 2L2 14\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n </svg>\n </button>\n </Dialog.Close>\n </div>\n {description && (\n <Dialog.Description id=\"modal-description\" className={styles.description}>\n {description}\n </Dialog.Description>\n )}\n <div className={styles.body}>{children}</div>\n </Dialog.Content>\n </Dialog.Portal>\n </Dialog.Root>\n);\n\nModal.displayName = \"Modal\";\n",".overlay {\n position: fixed;\n inset: 0;\n background: var(--ds-color-bg-overlay);\n z-index: var(--ds-z-overlay);\n animation: fadeIn var(--ds-motion-duration-normal) var(--ds-motion-easing-out);\n}\n\n.content {\n position: fixed;\n background: var(--ds-color-surface);\n box-shadow: var(--ds-elevation-xl);\n z-index: var(--ds-z-modal);\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n}\n\n.right {\n top: 0;\n right: 0;\n bottom: 0;\n width: min(480px, 90vw);\n animation: slideInRight var(--ds-motion-duration-normal) var(--ds-motion-easing-out);\n}\n.left {\n top: 0;\n left: 0;\n bottom: 0;\n width: min(480px, 90vw);\n animation: slideInLeft var(--ds-motion-duration-normal) var(--ds-motion-easing-out);\n}\n.top {\n top: 0;\n left: 0;\n right: 0;\n height: min(360px, 60vh);\n animation: slideInTop var(--ds-motion-duration-normal) var(--ds-motion-easing-out);\n}\n.bottom {\n bottom: 0;\n left: 0;\n right: 0;\n height: min(360px, 60vh);\n animation: slideInBottom var(--ds-motion-duration-normal) var(--ds-motion-easing-out);\n}\n\n.header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: var(--ds-space-4) var(--ds-space-6);\n border-bottom: 1px solid var(--ds-color-border-muted);\n}\n.title {\n font-size: var(--ds-font-size-xl);\n font-weight: var(--ds-font-weight-semibold);\n color: var(--ds-color-text);\n margin: 0;\n}\n.body {\n padding: var(--ds-space-6);\n flex: 1;\n}\n.close {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border-radius: var(--ds-radius-md);\n border: none;\n background: transparent;\n color: var(--ds-color-text-muted);\n cursor: pointer;\n}\n.close:hover {\n background: var(--ds-color-bg-subtle);\n color: var(--ds-color-text);\n}\n.close:focus-visible {\n outline: 2px solid var(--ds-color-border-focus);\n outline-offset: 2px;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes slideInRight {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0);\n }\n}\n@keyframes slideInLeft {\n from {\n transform: translateX(-100%);\n }\n to {\n transform: translateX(0);\n }\n}\n@keyframes slideInTop {\n from {\n transform: translateY(-100%);\n }\n to {\n transform: translateY(0);\n }\n}\n@keyframes slideInBottom {\n from {\n transform: translateY(100%);\n }\n to {\n transform: translateY(0);\n }\n}\n","import * as Dialog from \"@radix-ui/react-dialog\";\nimport React from \"react\";\n\nimport styles from \"./Drawer.module.css\";\n\nexport type DrawerSide = \"left\" | \"right\" | \"top\" | \"bottom\";\n\nexport interface DrawerProps {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n title?: string;\n side?: DrawerSide;\n children: React.ReactNode;\n trigger?: React.ReactElement;\n}\n\nexport const Drawer: React.FC<DrawerProps> = ({\n open,\n onOpenChange,\n title,\n side = \"right\",\n children,\n trigger\n}) => (\n <Dialog.Root open={open} onOpenChange={onOpenChange}>\n {trigger && <Dialog.Trigger asChild>{trigger}</Dialog.Trigger>}\n <Dialog.Portal>\n <Dialog.Overlay className={styles.overlay} />\n <Dialog.Content className={[styles.content, styles[side]].join(\" \")}>\n <div className={styles.header}>\n {title && <Dialog.Title className={styles.title}>{title}</Dialog.Title>}\n <Dialog.Close asChild>\n <button className={styles.close} aria-label=\"Fechar\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M2 2l12 12M14 2L2 14\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n </svg>\n </button>\n </Dialog.Close>\n </div>\n <div className={styles.body}>{children}</div>\n </Dialog.Content>\n </Dialog.Portal>\n </Dialog.Root>\n);\n\nDrawer.displayName = \"Drawer\";\n",".root {\n display: flex;\n flex-direction: column;\n}\n.list {\n display: flex;\n border-bottom: 2px solid var(--ds-color-border);\n gap: 0;\n}\n.trigger {\n padding: var(--ds-space-2) var(--ds-space-4);\n font-family: var(--ds-font-family-base);\n font-size: var(--ds-font-size-sm);\n font-weight: var(--ds-font-weight-medium);\n color: var(--ds-color-text-muted);\n background: transparent;\n border: none;\n border-bottom: 2px solid transparent;\n margin-bottom: -2px;\n cursor: pointer;\n transition:\n color var(--ds-motion-duration-fast) var(--ds-motion-easing-out),\n border-color var(--ds-motion-duration-fast) var(--ds-motion-easing-out);\n outline: none;\n}\n.trigger:hover:not([disabled]) {\n color: var(--ds-color-text);\n}\n.trigger[data-state=\"active\"] {\n color: var(--ds-color-primary);\n border-bottom-color: var(--ds-color-primary);\n}\n.trigger[disabled] {\n color: var(--ds-color-disabled-text);\n cursor: not-allowed;\n}\n.trigger:focus-visible {\n outline: 2px solid var(--ds-color-border-focus);\n outline-offset: 2px;\n border-radius: var(--ds-radius-sm);\n}\n.content {\n padding: var(--ds-space-6) 0;\n}\n","import * as RadixTabs from \"@radix-ui/react-tabs\";\nimport React from \"react\";\n\nimport styles from \"./Tabs.module.css\";\n\nexport interface TabItem {\n value: string;\n label: string;\n content: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface TabsProps {\n tabs: TabItem[];\n defaultValue?: string;\n value?: string;\n onValueChange?: (value: string) => void;\n className?: string;\n}\n\nexport const Tabs: React.FC<TabsProps> = ({\n tabs,\n defaultValue,\n value,\n onValueChange,\n className\n}) => (\n <RadixTabs.Root\n defaultValue={defaultValue ?? tabs[0]?.value}\n value={value}\n onValueChange={onValueChange}\n className={[styles.root, className ?? \"\"].filter(Boolean).join(\" \")}\n >\n <RadixTabs.List className={styles.list} aria-label=\"Tabs\">\n {tabs.map((tab) => (\n <RadixTabs.Trigger\n key={tab.value}\n value={tab.value}\n disabled={tab.disabled}\n className={styles.trigger}\n >\n {tab.label}\n </RadixTabs.Trigger>\n ))}\n </RadixTabs.List>\n {tabs.map((tab) => (\n <RadixTabs.Content key={tab.value} value={tab.value} className={styles.content}>\n {tab.content}\n </RadixTabs.Content>\n ))}\n </RadixTabs.Root>\n);\n\nTabs.displayName = \"Tabs\";\n",".root {\n border: 1px solid var(--ds-color-border);\n border-radius: var(--ds-radius-lg);\n overflow: hidden;\n}\n.item {\n border-bottom: 1px solid var(--ds-color-border);\n}\n.item:last-child {\n border-bottom: none;\n}\n.item[data-disabled] {\n opacity: 0.5;\n}\n.trigger {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--ds-space-4);\n width: 100%;\n padding: var(--ds-space-4) var(--ds-space-6);\n font-family: var(--ds-font-family-base);\n font-size: var(--ds-font-size-md);\n font-weight: var(--ds-font-weight-medium);\n color: var(--ds-color-text);\n background: transparent;\n border: none;\n cursor: pointer;\n text-align: left;\n transition: background var(--ds-motion-duration-fast) var(--ds-motion-easing-out);\n outline: none;\n}\n.trigger:hover {\n background: var(--ds-color-bg-subtle);\n}\n.trigger:focus-visible {\n outline: 2px solid var(--ds-color-border-focus);\n outline-offset: -2px;\n}\n.chevron {\n flex-shrink: 0;\n transition: transform var(--ds-motion-duration-normal) var(--ds-motion-easing-in-out);\n}\n.trigger[data-state=\"open\"] .chevron {\n transform: rotate(180deg);\n}\n.content {\n overflow: hidden;\n}\n.content[data-state=\"open\"] {\n animation: slideDown var(--ds-motion-duration-normal) var(--ds-motion-easing-out);\n}\n.content[data-state=\"closed\"] {\n animation: slideUp var(--ds-motion-duration-normal) var(--ds-motion-easing-out);\n}\n.contentInner {\n padding: 0 var(--ds-space-6) var(--ds-space-4);\n color: var(--ds-color-text-muted);\n font-size: var(--ds-font-size-md);\n}\n@keyframes slideDown {\n from {\n height: 0;\n }\n to {\n height: var(--radix-accordion-content-height);\n }\n}\n@keyframes slideUp {\n from {\n height: var(--radix-accordion-content-height);\n }\n to {\n height: 0;\n }\n}\n","import * as RadixAccordion from \"@radix-ui/react-accordion\";\nimport React from \"react\";\n\nimport styles from \"./Accordion.module.css\";\n\nexport interface AccordionItem {\n value: string;\n trigger: React.ReactNode;\n content: React.ReactNode;\n disabled?: boolean;\n}\n\nexport interface AccordionProps {\n items: AccordionItem[];\n type?: \"single\" | \"multiple\";\n defaultValue?: string | string[];\n value?: string | string[];\n onValueChange?: (value: string | string[]) => void;\n collapsible?: boolean;\n className?: string;\n}\n\nexport const Accordion: React.FC<AccordionProps> = ({\n items,\n type = \"single\",\n defaultValue,\n value,\n onValueChange,\n collapsible = true,\n className\n}) => {\n const rootClassName = [styles.root, className ?? \"\"].filter(Boolean).join(\" \");\n\n const content = items.map((item) => (\n <RadixAccordion.Item\n key={item.value}\n value={item.value}\n disabled={item.disabled}\n className={styles.item}\n >\n <RadixAccordion.Header>\n <RadixAccordion.Trigger className={styles.trigger}>\n {item.trigger}\n <svg\n className={styles.chevron}\n width=\"14\"\n height=\"9\"\n viewBox=\"0 0 14 9\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n d=\"M1 1l6 6 6-6\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </RadixAccordion.Trigger>\n </RadixAccordion.Header>\n <RadixAccordion.Content className={styles.content}>\n <div className={styles.contentInner}>{item.content}</div>\n </RadixAccordion.Content>\n </RadixAccordion.Item>\n ));\n\n if (type === \"multiple\") {\n return (\n <RadixAccordion.Root\n type=\"multiple\"\n className={rootClassName}\n defaultValue={defaultValue as string[] | undefined}\n value={value as string[] | undefined}\n onValueChange={onValueChange as ((v: string[]) => void) | undefined}\n >\n {content}\n </RadixAccordion.Root>\n );\n }\n\n return (\n <RadixAccordion.Root\n type=\"single\"\n collapsible={collapsible}\n className={rootClassName}\n defaultValue={defaultValue as string | undefined}\n value={value as string | undefined}\n onValueChange={onValueChange as ((v: string) => void) | undefined}\n >\n {content}\n </RadixAccordion.Root>\n );\n};\n\nAccordion.displayName = \"Accordion\";\n",".viewport {\n position: fixed;\n bottom: var(--ds-space-6);\n right: var(--ds-space-6);\n display: flex;\n flex-direction: column;\n gap: var(--ds-space-2);\n width: 360px;\n max-width: calc(100vw - var(--ds-space-8));\n z-index: var(--ds-z-toast);\n list-style: none;\n padding: 0;\n margin: 0;\n outline: none;\n}\n\n.root {\n background: var(--ds-color-surface);\n border-radius: var(--ds-radius-lg);\n box-shadow: var(--ds-elevation-lg);\n border-left: 4px solid;\n animation: slideIn var(--ds-motion-duration-normal) var(--ds-motion-easing-out);\n}\n\n.root[data-state=\"closed\"] {\n animation: slideOut var(--ds-motion-duration-normal) var(--ds-motion-easing-in);\n}\n\n.default {\n border-color: var(--ds-color-border-strong);\n}\n.success {\n border-color: var(--ds-color-success);\n}\n.warning {\n border-color: var(--ds-color-warning);\n}\n.error {\n border-color: var(--ds-color-error);\n}\n.info {\n border-color: var(--ds-color-info);\n}\n\n.content {\n display: flex;\n align-items: flex-start;\n gap: var(--ds-space-3);\n padding: var(--ds-space-4);\n}\n.text {\n flex: 1;\n min-width: 0;\n}\n.title {\n font-size: var(--ds-font-size-sm);\n font-weight: var(--ds-font-weight-semibold);\n color: var(--ds-color-text);\n margin: 0;\n}\n.description {\n font-size: var(--ds-font-size-xs);\n color: var(--ds-color-text-muted);\n margin-top: var(--ds-space-1);\n}\n.close {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n border-radius: var(--ds-radius-sm);\n border: none;\n background: transparent;\n color: var(--ds-color-text-muted);\n cursor: pointer;\n flex-shrink: 0;\n padding: 0;\n}\n.close:hover {\n background: var(--ds-color-bg-subtle);\n}\n.close:focus-visible {\n outline: 2px solid var(--ds-color-border-focus);\n outline-offset: 2px;\n}\n\n@keyframes slideIn {\n from {\n transform: translateX(calc(100% + var(--ds-space-6)));\n opacity: 0;\n }\n to {\n transform: translateX(0);\n opacity: 1;\n }\n}\n@keyframes slideOut {\n from {\n transform: translateX(0);\n opacity: 1;\n }\n to {\n transform: translateX(calc(100% + var(--ds-space-6)));\n opacity: 0;\n }\n}\n","import * as RadixToast from \"@radix-ui/react-toast\";\nimport React, { createContext, useCallback, useContext, useState } from \"react\";\n\nimport styles from \"./Toast.module.css\";\n\nexport type ToastVariant = \"default\" | \"success\" | \"warning\" | \"error\" | \"info\";\n\nexport interface ToastMessage {\n id: string;\n title: string;\n description?: string;\n variant?: ToastVariant;\n duration?: number;\n}\n\ninterface ToastContextValue {\n show: (message: Omit<ToastMessage, \"id\">) => void;\n}\n\nconst ToastContext = createContext<ToastContextValue | null>(null);\n\nexport const useToast = (): ToastContextValue => {\n const ctx = useContext(ToastContext);\n if (!ctx) throw new Error(\"useToast must be used within ToastProvider\");\n return ctx;\n};\n\nexport const ToastProvider: React.FC<{ children: React.ReactNode }> = ({ children }) => {\n const [toasts, setToasts] = useState<ToastMessage[]>([]);\n\n const show = useCallback((message: Omit<ToastMessage, \"id\">) => {\n const id = Math.random().toString(36).slice(2);\n setToasts((prev) => [...prev, { ...message, id }]);\n }, []);\n\n const dismiss = useCallback((id: string) => {\n setToasts((prev) => prev.filter((t) => t.id !== id));\n }, []);\n\n return (\n <ToastContext.Provider value={{ show }}>\n <RadixToast.Provider swipeDirection=\"right\">\n {children}\n {toasts.map((toast) => (\n <RadixToast.Root\n key={toast.id}\n duration={toast.duration ?? 4000}\n className={[styles.root, styles[toast.variant ?? \"default\"]].join(\" \")}\n onOpenChange={(open) => {\n if (!open) dismiss(toast.id);\n }}\n >\n <div className={styles.content}>\n <div className={styles.text}>\n <RadixToast.Title className={styles.title}>{toast.title}</RadixToast.Title>\n {toast.description && (\n <RadixToast.Description className={styles.description}>\n {toast.description}\n </RadixToast.Description>\n )}\n </div>\n <RadixToast.Close asChild>\n <button className={styles.close} aria-label=\"Fechar notificação\">\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M1 1l10 10M11 1L1 11\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n </button>\n </RadixToast.Close>\n </div>\n </RadixToast.Root>\n ))}\n <RadixToast.Viewport className={styles.viewport} aria-label=\"Notificações\" role=\"region\" />\n </RadixToast.Provider>\n </ToastContext.Provider>\n );\n};\n",".wrapper {\n width: 100%;\n overflow-x: auto;\n border: 1px solid var(--ds-color-border);\n border-radius: var(--ds-radius-lg);\n}\n.table {\n width: 100%;\n border-collapse: collapse;\n font-family: var(--ds-font-family-base);\n font-size: var(--ds-font-size-sm);\n}\n.caption {\n padding: var(--ds-space-3) var(--ds-space-4);\n text-align: left;\n font-size: var(--ds-font-size-sm);\n color: var(--ds-color-text-muted);\n}\n.head {\n background: var(--ds-color-bg-subtle);\n}\n.stickyHeader .head {\n position: sticky;\n top: 0;\n z-index: var(--ds-z-raised);\n}\n.th {\n padding: var(--ds-space-3) var(--ds-space-4);\n text-align: left;\n font-weight: var(--ds-font-weight-semibold);\n color: var(--ds-color-text);\n border-bottom: 2px solid var(--ds-color-border);\n white-space: nowrap;\n}\n.td {\n padding: var(--ds-space-3) var(--ds-space-4);\n color: var(--ds-color-text);\n border-bottom: 1px solid var(--ds-color-border-muted);\n vertical-align: middle;\n}\n.row:last-child .td {\n border-bottom: none;\n}\n.body .row:hover {\n background: var(--ds-color-bg-subtle);\n}\n","import React from \"react\";\n\nimport styles from \"./Table.module.css\";\n\ntype TableHeadProps = React.HTMLAttributes<HTMLTableSectionElement>;\ntype TableBodyProps = React.HTMLAttributes<HTMLTableSectionElement>;\ntype TableRowProps = React.HTMLAttributes<HTMLTableRowElement>;\n\ninterface TableCellProps extends React.TdHTMLAttributes<HTMLTableCellElement> {\n as?: \"td\" | \"th\";\n scope?: \"col\" | \"row\" | \"colgroup\" | \"rowgroup\";\n}\n\ninterface TableRootProps extends React.TableHTMLAttributes<HTMLTableElement> {\n caption?: string;\n stickyHeader?: boolean;\n}\n\nconst TableHead: React.FC<TableHeadProps> = ({ className, children, ...props }) => (\n <thead className={[styles.head, className ?? \"\"].filter(Boolean).join(\" \")} {...props}>\n {children}\n </thead>\n);\n\nconst TableBody: React.FC<TableBodyProps> = ({ className, children, ...props }) => (\n <tbody className={[styles.body, className ?? \"\"].filter(Boolean).join(\" \")} {...props}>\n {children}\n </tbody>\n);\n\nconst TableRow: React.FC<TableRowProps> = ({ className, children, ...props }) => (\n <tr className={[styles.row, className ?? \"\"].filter(Boolean).join(\" \")} {...props}>\n {children}\n </tr>\n);\n\nconst TableCell: React.FC<TableCellProps> = ({\n as: Tag = \"td\",\n scope,\n className,\n children,\n ...props\n}) => {\n const cellClass = [Tag === \"th\" ? styles.th : styles.td, className ?? \"\"]\n .filter(Boolean)\n .join(\" \");\n return (\n <Tag\n className={cellClass}\n scope={scope}\n {...(props as React.HTMLAttributes<HTMLTableCellElement>)}\n >\n {children}\n </Tag>\n );\n};\n\nexport const Table: React.FC<TableRootProps> & {\n Head: typeof TableHead;\n Body: typeof TableBody;\n Row: typeof TableRow;\n Cell: typeof TableCell;\n} = ({ caption, stickyHeader, className, children, ...props }) => (\n <div className={styles.wrapper}>\n <table\n className={[styles.table, stickyHeader ? styles.stickyHeader : \"\", className ?? \"\"]\n .filter(Boolean)\n .join(\" \")}\n {...props}\n >\n {caption && <caption className={styles.caption}>{caption}</caption>}\n {children}\n </table>\n </div>\n);\n\nTable.Head = TableHead;\nTable.Body = TableBody;\nTable.Row = TableRow;\nTable.Cell = TableCell;\nTable.displayName = \"Table\";\n"]}