@12min/ds 0.1.0 → 1.0.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/README.md +84 -51
- package/dist/chunk-CC3QVZS2.mjs +80 -0
- package/dist/chunk-CC3QVZS2.mjs.map +1 -0
- package/dist/chunk-NK4IHR7O.mjs +101 -0
- package/dist/chunk-NK4IHR7O.mjs.map +1 -0
- package/dist/darkTheme-gaad4-zD.d.mts +28 -0
- package/dist/darkTheme-gaad4-zD.d.ts +28 -0
- package/dist/index.native.d.mts +118 -2
- package/dist/index.native.d.ts +118 -2
- package/dist/index.native.js +686 -58
- package/dist/index.native.js.map +1 -1
- package/dist/index.native.mjs +528 -5
- package/dist/index.native.mjs.map +1 -1
- package/dist/index.web.d.mts +111 -22
- package/dist/index.web.d.ts +111 -22
- package/dist/index.web.js +522 -58
- package/dist/index.web.js.map +1 -1
- package/dist/index.web.mjs +378 -4
- package/dist/index.web.mjs.map +1 -1
- package/dist/tailwind/theme.css +160 -38
- package/dist/tokens/index.d.mts +162 -37
- package/dist/tokens/index.d.ts +162 -37
- package/dist/tokens/index.js +91 -34
- package/dist/tokens/index.js.map +1 -1
- package/dist/tokens/index.mjs +5 -3
- package/package.json +27 -5
- package/dist/chunk-E2C4G6H4.mjs +0 -45
- package/dist/chunk-E2C4G6H4.mjs.map +0 -1
- package/dist/chunk-QIJRSFZB.mjs +0 -41
- package/dist/chunk-QIJRSFZB.mjs.map +0 -1
package/dist/index.web.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../index.web.ts","../src/tokens/colors.ts","../src/themes/lightTheme.ts","../src/themes/darkTheme.ts"],"sourcesContent":["export * from './src/tokens'\nexport * from './src/themes'\n","export const colors = {\n brand: {\n primary: '#FF6B35',\n secondary: '#1A1A2E',\n },\n\n neutral: {\n 0: '#FFFFFF',\n 50: '#FAFAFA',\n 100: '#F5F5F5',\n 200: '#E5E5E5',\n 300: '#D4D4D4',\n 400: '#A3A3A3',\n 500: '#737373',\n 600: '#525252',\n 700: '#404040',\n 800: '#262626',\n 900: '#121212',\n },\n\n success: {\n light: '#4ADE80',\n default: '#22C55E',\n dark: '#16A34A',\n },\n\n error: {\n light: '#F87171',\n default: '#EF4444',\n dark: '#DC2626',\n },\n\n warning: {\n light: '#FCD34D',\n default: '#F59E0B',\n dark: '#D97706',\n },\n\n info: {\n light: '#60A5FA',\n default: '#3B82F6',\n dark: '#2563EB',\n },\n} as const\n\nexport type Colors = typeof colors\n","import { colors } from '../tokens/colors'\nimport type { Theme } from './types'\n\nexport const lightTheme: Theme = {\n background: colors.neutral[0],\n surface: colors.neutral[100],\n border: colors.neutral[200],\n onBackground: colors.neutral[900],\n onSurface: colors.neutral[800],\n muted: colors.neutral[500],\n primary: colors.brand.primary,\n secondary: colors.brand.secondary,\n success: colors.success.default,\n error: colors.error.default,\n warning: colors.warning.default,\n info: colors.info.default,\n}\n","import { colors } from '../tokens/colors'\nimport type { Theme } from './types'\n\nexport const darkTheme: Theme = {\n background: colors.neutral[900],\n surface: colors.neutral[800],\n border: colors.neutral[700],\n onBackground: colors.neutral[0],\n onSurface: colors.neutral[100],\n muted: colors.neutral[400],\n primary: colors.brand.primary,\n secondary: colors.brand.secondary,\n success: colors.success.light,\n error: colors.error.light,\n warning: colors.warning.light,\n info: colors.info.light,\n} as const\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAO,IAAM,SAAS;AAAA,EACpB,OAAO;AAAA,IACL,SAAW;AAAA,IACX,WAAW;AAAA,EACb;AAAA,EAEA,SAAS;AAAA,IACP,GAAK;AAAA,IACL,IAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,EACP;AAAA,EAEA,SAAS;AAAA,IACP,OAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAS;AAAA,EACX;AAAA,EAEA,OAAO;AAAA,IACL,OAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAS;AAAA,EACX;AAAA,EAEA,SAAS;AAAA,IACP,OAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAS;AAAA,EACX;AAAA,EAEA,MAAM;AAAA,IACJ,OAAS;AAAA,IACT,SAAS;AAAA,IACT,MAAS;AAAA,EACX;AACF;;;ACxCO,IAAM,aAAoB;AAAA,EAC/B,YAAc,OAAO,QAAQ,CAAC;AAAA,EAC9B,SAAc,OAAO,QAAQ,GAAG;AAAA,EAChC,QAAc,OAAO,QAAQ,GAAG;AAAA,EAChC,cAAc,OAAO,QAAQ,GAAG;AAAA,EAChC,WAAc,OAAO,QAAQ,GAAG;AAAA,EAChC,OAAc,OAAO,QAAQ,GAAG;AAAA,EAChC,SAAc,OAAO,MAAM;AAAA,EAC3B,WAAc,OAAO,MAAM;AAAA,EAC3B,SAAc,OAAO,QAAQ;AAAA,EAC7B,OAAc,OAAO,MAAM;AAAA,EAC3B,SAAc,OAAO,QAAQ;AAAA,EAC7B,MAAc,OAAO,KAAK;AAC5B;;;ACbO,IAAM,YAAmB;AAAA,EAC9B,YAAe,OAAO,QAAQ,GAAG;AAAA,EACjC,SAAe,OAAO,QAAQ,GAAG;AAAA,EACjC,QAAe,OAAO,QAAQ,GAAG;AAAA,EACjC,cAAe,OAAO,QAAQ,CAAC;AAAA,EAC/B,WAAe,OAAO,QAAQ,GAAG;AAAA,EACjC,OAAe,OAAO,QAAQ,GAAG;AAAA,EACjC,SAAe,OAAO,MAAM;AAAA,EAC5B,WAAe,OAAO,MAAM;AAAA,EAC5B,SAAe,OAAO,QAAQ;AAAA,EAC9B,OAAe,OAAO,MAAM;AAAA,EAC5B,SAAe,OAAO,QAAQ;AAAA,EAC9B,MAAe,OAAO,KAAK;AAC7B;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../index.web.ts","../src/tokens/colors.ts","../src/tokens/typography.ts","../src/themes/lightTheme.ts","../src/themes/darkTheme.ts","../src/components/Button/Button.web.tsx","../src/utils/cn.ts","../src/components/Chip/Chip.web.tsx","../src/components/Alert/Alert.web.tsx","../src/components/ProgressBar/ProgressBar.web.tsx","../src/components/Input/Input.web.tsx","../src/components/Checkbox/Checkbox.web.tsx","../src/components/RadioItem/RadioItem.web.tsx","../src/components/RadioGroup/RadioGroup.web.tsx","../src/components/ActionItem/ActionItem.web.tsx","../src/components/Stepper/Stepper.web.tsx","../src/components/RatingScale/RatingScale.styles.ts","../src/components/RatingScale/RatingScale.web.tsx"],"sourcesContent":["// DSThemeProvider and useTheme are intentionally not exported on web —\n// dark mode on web uses CSS dark: variants, not runtime theme switching.\nexport * from './src/tokens'\nexport * from './src/themes'\nexport { Button } from './src/components/Button/Button.web'\nexport { Chip } from './src/components/Chip/Chip.web'\nexport { Alert } from './src/components/Alert/Alert.web'\nexport { ProgressBar } from './src/components/ProgressBar/ProgressBar.web'\nexport { Input } from './src/components/Input/Input.web'\nexport { Checkbox } from './src/components/Checkbox/Checkbox.web'\nexport { RadioItem } from './src/components/RadioItem/RadioItem.web'\nexport { RadioGroup } from './src/components/RadioGroup/RadioGroup.web'\nexport { ActionItem } from './src/components/ActionItem/ActionItem.web'\nexport { Stepper } from './src/components/Stepper/Stepper.web'\nexport { RatingScale } from './src/components/RatingScale/RatingScale.web'\n","export const colors = {\n marianBlue: {\n 50: '#FAFBFF',\n 100: '#F1F4FE',\n 200: '#E1E7FF',\n 300: '#C3CCF7',\n 400: '#94A5F2',\n 500: '#697DD6',\n 600: '#475CBB',\n 700: '#31428B',\n 800: '#25326A',\n 900: '#131937',\n },\n\n midnight: {\n 50: '#707070',\n 100: '#5C5C5C',\n 200: '#525252',\n 300: '#474747',\n 400: '#3D3D3D',\n 500: '#333333',\n 600: '#1E1E1E',\n 700: '#161616',\n 800: '#141414',\n 900: '#0A0A0A',\n },\n\n gray: {\n 50: '#B1B5BE',\n 100: '#A6ABB5',\n 200: '#9BA0AB',\n 300: '#9095A2',\n 400: '#858B99',\n 500: '#7A8190',\n 600: '#6F7685',\n 700: '#5E6471',\n 800: '#5D636F',\n 900: '#545964',\n },\n\n mustard: {\n 50: '#FFF2D6',\n 100: '#FFECC2',\n 200: '#FFE5AD',\n 300: '#FFDF99',\n 400: '#FFD885',\n 500: '#FFD270',\n 600: '#FFCB5C',\n 700: '#FFC140',\n 800: '#FFBE33',\n 900: '#FFB81F',\n },\n\n ketchup: {\n 50: '#FFD6D6',\n 100: '#FFC2C2',\n 200: '#FFADAD',\n 300: '#FF9999',\n 400: '#FF8585',\n 500: '#FF7070',\n 600: '#FF5C5C',\n 700: '#FF4040',\n 800: '#FF3333',\n 900: '#FF1F1F',\n },\n\n mint: {\n 50: '#A7F1B7',\n 100: '#96EEA9',\n 200: '#84EB9A',\n 300: '#73E88C',\n 400: '#61E57E',\n 500: '#50E26F',\n 600: '#3EE061',\n 700: '#24DC4C',\n 800: '#22D348',\n 900: '#1FC142',\n },\n\n white: '#FFFFFF',\n successBg: '#E5FBE9',\n} as const\n\nexport type Colors = typeof colors\n","export const typography = {\n display: { fontSize: 32, fontWeight: '700', lineHeight: 1.2, fontFamily: 'Poppins' },\n h1: { fontSize: 24, fontWeight: '700', lineHeight: 1.3, fontFamily: 'Poppins' },\n h2: { fontSize: 20, fontWeight: '600', lineHeight: 1.3, fontFamily: 'Poppins' },\n h3: { fontSize: 18, fontWeight: '600', lineHeight: 1.4, fontFamily: 'Poppins' },\n bodyLarge: { fontSize: 16, fontWeight: '400', lineHeight: 1.5, fontFamily: 'Inter' },\n bodyDefault: { fontSize: 14, fontWeight: '400', lineHeight: 1.5, fontFamily: 'Inter' },\n bodySmall: { fontSize: 12, fontWeight: '400', lineHeight: 1.5, fontFamily: 'Inter' },\n labelLarge: { fontSize: 16, fontWeight: '500', lineHeight: 1.5, fontFamily: 'Inter' },\n labelDefault: { fontSize: 14, fontWeight: '500', lineHeight: 1.5, fontFamily: 'Inter' },\n labelSmall: { fontSize: 12, fontWeight: '500', lineHeight: 1.5, fontFamily: 'Inter' },\n caption: { fontSize: 12, fontWeight: '500', lineHeight: 1.5, fontFamily: 'Inter' },\n overline: { fontSize: 10, fontWeight: '600', lineHeight: 1.0, fontFamily: 'Inter' },\n buttonLarge: { fontSize: 16, fontWeight: '600', lineHeight: 1.5, fontFamily: 'Inter' },\n buttonDefault: { fontSize: 14, fontWeight: '600', lineHeight: 1.5, fontFamily: 'Inter' },\n} as const\n\nexport type Typography = typeof typography\n","import { colors } from '../tokens/colors'\nimport type { Theme } from './types'\n\nexport const lightTheme: Theme = {\n background: colors.marianBlue[50],\n surface: colors.marianBlue[100],\n border: colors.marianBlue[200],\n onBackground: colors.midnight[900],\n onSurface: colors.midnight[700],\n muted: colors.gray[500],\n primary: colors.marianBlue[600],\n secondary: colors.midnight[900],\n success: colors.mint[800],\n error: colors.ketchup[600],\n warning: colors.mustard[500],\n info: colors.marianBlue[500],\n\n surfaceDisabled: colors.gray[50],\n successBg: colors.successBg,\n textSecondary: colors.gray[700],\n textTertiary: colors.gray[500],\n textInverse: colors.white,\n borderStrong: colors.marianBlue[600],\n borderSubtle: colors.marianBlue[200],\n interactivePressed: colors.marianBlue[800],\n}\n","import { colors } from '../tokens/colors'\nimport type { Theme } from './types'\n\nexport const darkTheme: Theme = {\n background: colors.midnight[900],\n surface: colors.midnight[700],\n border: colors.midnight[500],\n onBackground: colors.marianBlue[50],\n onSurface: colors.gray[50],\n muted: colors.gray[600],\n primary: colors.marianBlue[400],\n secondary: colors.marianBlue[50],\n success: colors.mint[400],\n error: colors.ketchup[400],\n warning: colors.mustard[400],\n info: colors.marianBlue[300],\n\n surfaceDisabled: colors.midnight[600],\n successBg: colors.midnight[800],\n textSecondary: colors.gray[400],\n textTertiary: colors.gray[500],\n textInverse: colors.midnight[900],\n borderStrong: colors.marianBlue[400],\n borderSubtle: colors.midnight[600],\n interactivePressed: colors.marianBlue[300],\n} as const\n","import { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nconst button = cva(\n 'inline-flex items-center justify-center font-semibold rounded-full transition-opacity disabled:cursor-not-allowed',\n {\n variants: {\n variant: {\n primary:\n 'bg-marian-blue-700 text-white disabled:bg-gray-50 disabled:opacity-50 dark:bg-marian-blue-400 dark:text-midnight-900 dark:disabled:bg-midnight-600',\n secondary:\n 'bg-marian-blue-200 text-marian-blue-900 disabled:opacity-50 dark:bg-midnight-700 dark:text-marian-blue-200',\n ghost:\n 'bg-transparent text-marian-blue-700 disabled:opacity-50 dark:text-marian-blue-300',\n },\n size: {\n sm: 'h-9 px-3.5 text-sm',\n md: 'h-12 px-4 text-base',\n lg: 'h-14 px-6 text-lg',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n },\n }\n)\n\ntype ButtonProps = VariantProps<typeof button> & {\n children: React.ReactNode\n disabled?: boolean\n onClick?: React.MouseEventHandler<HTMLButtonElement>\n type?: 'button' | 'submit' | 'reset'\n className?: string\n}\n\nexport function Button({ variant, size, disabled, children, onClick, type = 'button', className }: ButtonProps) {\n return (\n <button\n type={type}\n disabled={disabled}\n onClick={onClick}\n className={cn(button({ variant, size }), className)}\n >\n {children}\n </button>\n )\n}\n","import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import { cn } from '../../utils/cn'\n\ntype ChipProps = {\n children: React.ReactNode\n checked?: boolean\n onClick?: () => void\n className?: string\n}\n\nexport function Chip({ children, checked = false, onClick, className }: ChipProps) {\n return (\n <button\n type=\"button\"\n onClick={onClick}\n className={cn(\n 'inline-flex items-center justify-center h-12 px-4 rounded-full text-sm transition-colors',\n checked\n ? 'bg-marian-blue-600 text-white font-semibold dark:bg-marian-blue-500 dark:text-white'\n : 'bg-marian-blue-100 text-marian-blue-900 font-medium dark:bg-midnight-700 dark:text-marian-blue-100',\n className\n )}\n >\n {children}\n </button>\n )\n}\n","import { cn } from '../../utils/cn'\n\ntype AlertVariant = 'success' | 'info'\n\ntype AlertProps = {\n variant?: AlertVariant\n title: string\n description?: string\n className?: string\n}\n\nexport function Alert({ variant = 'info', title, description, className }: AlertProps) {\n return (\n <div\n className={cn(\n 'w-full p-5 rounded-tl-[32px] rounded-tr-[32px] rounded-br-[32px] border border-marian-blue-200 dark:border-midnight-600',\n variant === 'success'\n ? 'bg-success-bg dark:bg-midnight-800'\n : 'bg-marian-blue-50 dark:bg-midnight-700',\n className\n )}\n >\n <p\n className=\"[font-family:'Poppins',sans-serif] font-semibold text-base leading-snug text-marian-blue-900 dark:text-marian-blue-100\"\n >\n {title}\n </p>\n {description && (\n <p className=\"mt-3 font-medium text-sm leading-normal text-gray-700 dark:text-gray-400\">\n {description}\n </p>\n )}\n </div>\n )\n}\n","import { cn } from '../../utils/cn'\n\ntype ProgressBarProps = {\n value: number\n className?: string\n}\n\nexport function ProgressBar({ value, className }: ProgressBarProps) {\n const pct = Math.min(100, Math.max(0, value))\n\n return (\n <div\n role=\"progressbar\"\n aria-valuenow={pct}\n aria-valuemin={0}\n aria-valuemax={100}\n className={cn(\n 'relative h-2 w-full rounded-full bg-marian-blue-200 overflow-hidden dark:bg-midnight-600',\n className\n )}\n >\n <div\n className=\"absolute inset-y-0 left-0 bg-marian-blue-700 rounded-[24px] transition-[width] dark:bg-marian-blue-400\"\n style={{ width: `${pct}%` }}\n />\n </div>\n )\n}\n","import { cn } from '../../utils/cn'\n\ntype InputState = 'default' | 'filled' | 'error' | 'disabled'\n\ntype InputProps = {\n value?: string\n placeholder?: string\n state?: InputState\n leadingIcon?: React.ReactNode\n onChange?: React.ChangeEventHandler<HTMLInputElement>\n className?: string\n}\n\nexport function Input({ value, placeholder = 'exemplo@email.com', state = 'default', leadingIcon, onChange, className }: InputProps) {\n const isDisabled = state === 'disabled'\n const isError = state === 'error'\n\n return (\n <div\n className={cn(\n 'flex items-center gap-2 h-12 px-3 rounded-xl border text-sm font-medium',\n 'focus-within:border-2 focus-within:border-marian-blue-600 dark:focus-within:border-marian-blue-400',\n isDisabled\n ? 'bg-marian-blue-50 border-gray-200 text-gray-200 cursor-not-allowed dark:bg-midnight-800 dark:border-midnight-500 dark:text-gray-600'\n : isError\n ? 'bg-marian-blue-100 border-ketchup-600 text-ketchup-700 dark:bg-midnight-700 dark:border-ketchup-400 dark:text-ketchup-400'\n : 'bg-marian-blue-100 border-marian-blue-200 text-gray-500 dark:bg-midnight-700 dark:border-midnight-600 dark:text-gray-500',\n className\n )}\n >\n {leadingIcon && (\n <span className=\"shrink-0 text-current\">{leadingIcon}</span>\n )}\n <input\n type=\"text\"\n value={value}\n placeholder={placeholder}\n disabled={isDisabled}\n onChange={onChange}\n className=\"flex-1 bg-transparent outline-none placeholder:text-current text-current min-w-0 focus:text-marian-blue-900 dark:focus:text-marian-blue-100\"\n />\n </div>\n )\n}\n","import { cn } from '../../utils/cn'\n\ntype CheckboxProps = {\n checked?: boolean\n onChange?: (checked: boolean) => void\n disabled?: boolean\n className?: string\n}\n\nfunction CheckIcon() {\n return (\n <svg width=\"12\" height=\"10\" viewBox=\"0 0 12 10\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M1 5L4.5 8.5L11 1.5\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n )\n}\n\nexport function Checkbox({ checked = false, onChange, disabled = false, className }: CheckboxProps) {\n return (\n <label\n className={cn(\n 'relative size-5 rounded-md flex items-center justify-center transition-colors',\n disabled ? 'cursor-not-allowed opacity-50' : 'cursor-pointer',\n checked\n ? 'bg-marian-blue-800 text-white dark:bg-marian-blue-400 dark:text-midnight-900'\n : 'border border-marian-blue-600 bg-transparent dark:border-marian-blue-400',\n className\n )}\n >\n <input\n type=\"checkbox\"\n checked={checked}\n disabled={disabled}\n onChange={() => onChange?.(!checked)}\n className=\"sr-only\"\n />\n {checked && <CheckIcon />}\n </label>\n )\n}\n","import { cn } from '../../utils/cn'\n\ntype RadioItemProps = {\n label: string\n description?: string\n selected?: boolean\n icon?: React.ReactNode\n onClick?: () => void\n className?: string\n}\n\nfunction RadioIndicator({ selected }: { selected: boolean }) {\n return (\n <div\n className={cn(\n 'size-5 rounded-full border flex items-center justify-center shrink-0',\n selected\n ? 'border-marian-blue-100'\n : 'border-marian-blue-800 dark:border-marian-blue-300'\n )}\n >\n {selected && (\n <svg width=\"10\" height=\"8\" viewBox=\"0 0 10 8\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M1 4L3.5 6.5L9 1\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n )}\n </div>\n )\n}\n\nexport function RadioItem({ label, description, selected = false, icon, onClick, className }: RadioItemProps) {\n return (\n <button\n type=\"button\"\n role=\"radio\"\n aria-checked={selected}\n onClick={onClick}\n className={cn(\n 'flex items-center justify-between h-12 px-4 rounded-2xl transition-colors text-left',\n selected\n ? 'bg-marian-blue-600 text-white dark:bg-marian-blue-500'\n : 'bg-marian-blue-100 text-marian-blue-900 dark:bg-midnight-700 dark:text-marian-blue-100',\n className\n )}\n >\n <div className=\"flex items-center gap-3\">\n {icon && <span className=\"shrink-0 size-5\">{icon}</span>}\n <div className=\"flex flex-col gap-0.5\">\n <span\n className={cn(\n 'text-sm leading-normal',\n selected ? 'font-bold' : 'font-medium'\n )}\n >\n {label}\n </span>\n {description && (\n <span\n className={cn(\n 'text-xs leading-normal tracking-[0.024px]',\n selected ? 'text-current opacity-80' : 'text-gray-700 dark:text-gray-500'\n )}\n >\n {description}\n </span>\n )}\n </div>\n </div>\n <RadioIndicator selected={selected} />\n </button>\n )\n}\n","import { cn } from '../../utils/cn'\n\ntype RadioGroupProps = {\n children: React.ReactNode\n label?: string\n className?: string\n}\n\nexport function RadioGroup({ children, label, className }: RadioGroupProps) {\n return (\n <div\n role=\"radiogroup\"\n aria-label={label}\n className={cn('flex flex-col gap-2', className)}\n >\n {children}\n </div>\n )\n}\n","import { cn } from '../../utils/cn'\n\ntype ActionItemProps = {\n label: string\n description?: string\n selected?: boolean\n icon?: React.ReactNode\n onClick?: () => void\n className?: string\n}\n\nfunction ChevronRight() {\n return (\n <svg width=\"8\" height=\"14\" viewBox=\"0 0 8 14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M1 1L7 7L1 13\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n )\n}\n\nexport function ActionItem({ label, description, selected = false, icon, onClick, className }: ActionItemProps) {\n return (\n <button\n type=\"button\"\n onClick={onClick}\n className={cn(\n 'flex items-center gap-5 h-14 px-4 rounded-2xl transition-colors text-left text-marian-blue-900 dark:text-marian-blue-100',\n selected\n ? 'bg-marian-blue-200 border-2 border-marian-blue-600 dark:bg-midnight-600 dark:border-marian-blue-400'\n : 'bg-marian-blue-100 dark:bg-midnight-700',\n className\n )}\n >\n <div className=\"flex flex-1 items-center gap-4 min-w-0\">\n {icon && <span className=\"shrink-0\">{icon}</span>}\n <div className=\"flex flex-col gap-1 flex-1 min-w-0\">\n <span className=\"text-sm font-medium leading-normal whitespace-nowrap\">\n {label}\n </span>\n {description && (\n <span className=\"text-xs font-normal text-gray-700 dark:text-gray-400 leading-normal tracking-[0.024px]\">\n {description}\n </span>\n )}\n </div>\n </div>\n <span className=\"shrink-0\">\n <ChevronRight />\n </span>\n </button>\n )\n}\n","import { cn } from '../../utils/cn'\n\ntype StepState = 'completed' | 'active' | 'upcoming'\n\ntype Step = {\n label: string\n}\n\ntype StepperProps = {\n steps: Step[]\n currentStep: number\n className?: string\n}\n\nfunction Dot({ state }: { state: StepState }) {\n return (\n <div\n className={cn(\n 'shrink-0 size-1 rounded-full',\n state === 'completed'\n ? 'bg-marian-blue-600 dark:bg-marian-blue-400'\n : 'bg-marian-blue-200 dark:bg-midnight-600'\n )}\n />\n )\n}\n\nfunction Track({ state }: { state: StepState }) {\n return (\n <div className=\"w-full h-1 rounded-lg overflow-hidden bg-marian-blue-200 dark:bg-midnight-600\">\n {state === 'completed' && (\n <div className=\"h-full w-full bg-marian-blue-600 rounded-lg dark:bg-marian-blue-400\" />\n )}\n {state === 'active' && (\n <div className=\"h-full w-[calc(100%-12px)] bg-marian-blue-900 rounded-lg dark:bg-marian-blue-100\" />\n )}\n </div>\n )\n}\n\nexport function Stepper({ steps, currentStep, className }: StepperProps) {\n return (\n <div className={cn('flex items-end gap-1 w-full', className)}>\n {steps.map((step, i) => {\n const state: StepState =\n i < currentStep ? 'completed' : i === currentStep ? 'active' : 'upcoming'\n\n return (\n <div key={step.label} className=\"flex flex-col gap-1 flex-1 min-w-0\">\n {state === 'active' && (\n <span className=\"text-[10px] font-semibold text-marian-blue-900 dark:text-marian-blue-100 leading-none tracking-[0.8px] uppercase truncate\">\n {step.label}\n </span>\n )}\n {(state === 'completed' || state === 'upcoming') && (\n <div className=\"h-[10px]\" />\n )}\n <Track state={state} />\n </div>\n )\n }).reduce<React.ReactNode[]>((acc, el, i) => {\n if (i === 0) return [el]\n const prevState: StepState =\n i - 1 < currentStep ? 'completed' : i - 1 === currentStep ? 'active' : 'upcoming'\n return [...acc, <Dot key={`dot-${i}`} state={prevState} />, el]\n }, [])}\n </div>\n )\n}\n","export const ratingScaleTokens = {\n itemWidth: 60,\n circleSize: 60,\n circlePadding: 8,\n circleRadius: 30,\n emojiFontSize: 38,\n emojiLineHeight: 44,\n labelFontSize: 12,\n numberFontSize: 10,\n itemGap: 8,\n labelNumberGap: 11,\n}\n\nexport const DEFAULT_OPTIONS = [\n { emoji: '😞', label: 'Nada\\na ver' },\n { emoji: '🙁', label: 'Pouco\\na ver' },\n { emoji: '😐', label: 'Mais ou\\nmenos' },\n { emoji: '🙂', label: 'Tem\\na ver' },\n { emoji: '😊', label: 'Totalmente\\neu' },\n] as const\n","import { cn } from '../../utils/cn'\nimport { DEFAULT_OPTIONS } from './RatingScale.styles'\n\ntype RatingScaleOption = {\n emoji: string\n label: string\n}\n\ntype RatingScaleProps = {\n value?: number | null\n onChange?: (value: number) => void\n options?: ReadonlyArray<RatingScaleOption>\n className?: string\n}\n\nexport function RatingScale({ value = null, onChange, options = DEFAULT_OPTIONS, className }: RatingScaleProps) {\n return (\n <div className={cn('flex items-start justify-between', className)}>\n {options.map((option, index) => {\n const itemValue = index + 1\n const selected = value === itemValue\n return (\n <button\n key={itemValue}\n type=\"button\"\n onClick={() => onChange?.(itemValue)}\n className=\"flex w-[60px] flex-col items-center gap-2\"\n aria-pressed={selected}\n >\n <div\n className={cn(\n 'flex size-[60px] items-center justify-center overflow-hidden rounded-full p-[8px] transition-colors',\n selected\n ? 'bg-marian-blue-600'\n : 'border border-marian-blue-200 bg-marian-blue-50 dark:border-midnight-500 dark:bg-midnight-700'\n )}\n >\n <span className=\"select-none text-[38px] leading-none\">{option.emoji}</span>\n </div>\n <div className=\"flex w-full flex-col items-center gap-[11px]\">\n <span\n className={cn(\n 'w-full whitespace-pre-line text-center text-[12px] leading-[1.3] tracking-[0.06px]',\n selected\n ? 'font-bold text-marian-blue-600'\n : 'font-medium text-marian-blue-900 dark:text-marian-blue-100'\n )}\n >\n {option.label}\n </span>\n <span className=\"text-[10px] font-semibold leading-none tracking-[0.8px] text-gray-500\">\n {itemValue}\n </span>\n </div>\n </button>\n )\n })}\n </div>\n )\n}\n"],"mappings":"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","names":["import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime"]}
|
package/dist/index.web.mjs
CHANGED
|
@@ -1,13 +1,387 @@
|
|
|
1
1
|
import {
|
|
2
|
+
DEFAULT_OPTIONS,
|
|
2
3
|
darkTheme,
|
|
3
4
|
lightTheme
|
|
4
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-CC3QVZS2.mjs";
|
|
5
6
|
import {
|
|
6
|
-
colors
|
|
7
|
-
|
|
7
|
+
colors,
|
|
8
|
+
typography
|
|
9
|
+
} from "./chunk-NK4IHR7O.mjs";
|
|
10
|
+
|
|
11
|
+
// src/components/Button/Button.web.tsx
|
|
12
|
+
import { cva } from "class-variance-authority";
|
|
13
|
+
|
|
14
|
+
// src/utils/cn.ts
|
|
15
|
+
import { clsx } from "clsx";
|
|
16
|
+
import { twMerge } from "tailwind-merge";
|
|
17
|
+
function cn(...inputs) {
|
|
18
|
+
return twMerge(clsx(inputs));
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// src/components/Button/Button.web.tsx
|
|
22
|
+
import { jsx } from "react/jsx-runtime";
|
|
23
|
+
var button = cva(
|
|
24
|
+
"inline-flex items-center justify-center font-semibold rounded-full transition-opacity disabled:cursor-not-allowed",
|
|
25
|
+
{
|
|
26
|
+
variants: {
|
|
27
|
+
variant: {
|
|
28
|
+
primary: "bg-marian-blue-700 text-white disabled:bg-gray-50 disabled:opacity-50 dark:bg-marian-blue-400 dark:text-midnight-900 dark:disabled:bg-midnight-600",
|
|
29
|
+
secondary: "bg-marian-blue-200 text-marian-blue-900 disabled:opacity-50 dark:bg-midnight-700 dark:text-marian-blue-200",
|
|
30
|
+
ghost: "bg-transparent text-marian-blue-700 disabled:opacity-50 dark:text-marian-blue-300"
|
|
31
|
+
},
|
|
32
|
+
size: {
|
|
33
|
+
sm: "h-9 px-3.5 text-sm",
|
|
34
|
+
md: "h-12 px-4 text-base",
|
|
35
|
+
lg: "h-14 px-6 text-lg"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
defaultVariants: {
|
|
39
|
+
variant: "primary",
|
|
40
|
+
size: "md"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
);
|
|
44
|
+
function Button({ variant, size, disabled, children, onClick, type = "button", className }) {
|
|
45
|
+
return /* @__PURE__ */ jsx(
|
|
46
|
+
"button",
|
|
47
|
+
{
|
|
48
|
+
type,
|
|
49
|
+
disabled,
|
|
50
|
+
onClick,
|
|
51
|
+
className: cn(button({ variant, size }), className),
|
|
52
|
+
children
|
|
53
|
+
}
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// src/components/Chip/Chip.web.tsx
|
|
58
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
59
|
+
function Chip({ children, checked = false, onClick, className }) {
|
|
60
|
+
return /* @__PURE__ */ jsx2(
|
|
61
|
+
"button",
|
|
62
|
+
{
|
|
63
|
+
type: "button",
|
|
64
|
+
onClick,
|
|
65
|
+
className: cn(
|
|
66
|
+
"inline-flex items-center justify-center h-12 px-4 rounded-full text-sm transition-colors",
|
|
67
|
+
checked ? "bg-marian-blue-600 text-white font-semibold dark:bg-marian-blue-500 dark:text-white" : "bg-marian-blue-100 text-marian-blue-900 font-medium dark:bg-midnight-700 dark:text-marian-blue-100",
|
|
68
|
+
className
|
|
69
|
+
),
|
|
70
|
+
children
|
|
71
|
+
}
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// src/components/Alert/Alert.web.tsx
|
|
76
|
+
import { jsx as jsx3, jsxs } from "react/jsx-runtime";
|
|
77
|
+
function Alert({ variant = "info", title, description, className }) {
|
|
78
|
+
return /* @__PURE__ */ jsxs(
|
|
79
|
+
"div",
|
|
80
|
+
{
|
|
81
|
+
className: cn(
|
|
82
|
+
"w-full p-5 rounded-tl-[32px] rounded-tr-[32px] rounded-br-[32px] border border-marian-blue-200 dark:border-midnight-600",
|
|
83
|
+
variant === "success" ? "bg-success-bg dark:bg-midnight-800" : "bg-marian-blue-50 dark:bg-midnight-700",
|
|
84
|
+
className
|
|
85
|
+
),
|
|
86
|
+
children: [
|
|
87
|
+
/* @__PURE__ */ jsx3(
|
|
88
|
+
"p",
|
|
89
|
+
{
|
|
90
|
+
className: "[font-family:'Poppins',sans-serif] font-semibold text-base leading-snug text-marian-blue-900 dark:text-marian-blue-100",
|
|
91
|
+
children: title
|
|
92
|
+
}
|
|
93
|
+
),
|
|
94
|
+
description && /* @__PURE__ */ jsx3("p", { className: "mt-3 font-medium text-sm leading-normal text-gray-700 dark:text-gray-400", children: description })
|
|
95
|
+
]
|
|
96
|
+
}
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// src/components/ProgressBar/ProgressBar.web.tsx
|
|
101
|
+
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
102
|
+
function ProgressBar({ value, className }) {
|
|
103
|
+
const pct = Math.min(100, Math.max(0, value));
|
|
104
|
+
return /* @__PURE__ */ jsx4(
|
|
105
|
+
"div",
|
|
106
|
+
{
|
|
107
|
+
role: "progressbar",
|
|
108
|
+
"aria-valuenow": pct,
|
|
109
|
+
"aria-valuemin": 0,
|
|
110
|
+
"aria-valuemax": 100,
|
|
111
|
+
className: cn(
|
|
112
|
+
"relative h-2 w-full rounded-full bg-marian-blue-200 overflow-hidden dark:bg-midnight-600",
|
|
113
|
+
className
|
|
114
|
+
),
|
|
115
|
+
children: /* @__PURE__ */ jsx4(
|
|
116
|
+
"div",
|
|
117
|
+
{
|
|
118
|
+
className: "absolute inset-y-0 left-0 bg-marian-blue-700 rounded-[24px] transition-[width] dark:bg-marian-blue-400",
|
|
119
|
+
style: { width: `${pct}%` }
|
|
120
|
+
}
|
|
121
|
+
)
|
|
122
|
+
}
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
// src/components/Input/Input.web.tsx
|
|
127
|
+
import { jsx as jsx5, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
128
|
+
function Input({ value, placeholder = "exemplo@email.com", state = "default", leadingIcon, onChange, className }) {
|
|
129
|
+
const isDisabled = state === "disabled";
|
|
130
|
+
const isError = state === "error";
|
|
131
|
+
return /* @__PURE__ */ jsxs2(
|
|
132
|
+
"div",
|
|
133
|
+
{
|
|
134
|
+
className: cn(
|
|
135
|
+
"flex items-center gap-2 h-12 px-3 rounded-xl border text-sm font-medium",
|
|
136
|
+
"focus-within:border-2 focus-within:border-marian-blue-600 dark:focus-within:border-marian-blue-400",
|
|
137
|
+
isDisabled ? "bg-marian-blue-50 border-gray-200 text-gray-200 cursor-not-allowed dark:bg-midnight-800 dark:border-midnight-500 dark:text-gray-600" : isError ? "bg-marian-blue-100 border-ketchup-600 text-ketchup-700 dark:bg-midnight-700 dark:border-ketchup-400 dark:text-ketchup-400" : "bg-marian-blue-100 border-marian-blue-200 text-gray-500 dark:bg-midnight-700 dark:border-midnight-600 dark:text-gray-500",
|
|
138
|
+
className
|
|
139
|
+
),
|
|
140
|
+
children: [
|
|
141
|
+
leadingIcon && /* @__PURE__ */ jsx5("span", { className: "shrink-0 text-current", children: leadingIcon }),
|
|
142
|
+
/* @__PURE__ */ jsx5(
|
|
143
|
+
"input",
|
|
144
|
+
{
|
|
145
|
+
type: "text",
|
|
146
|
+
value,
|
|
147
|
+
placeholder,
|
|
148
|
+
disabled: isDisabled,
|
|
149
|
+
onChange,
|
|
150
|
+
className: "flex-1 bg-transparent outline-none placeholder:text-current text-current min-w-0 focus:text-marian-blue-900 dark:focus:text-marian-blue-100"
|
|
151
|
+
}
|
|
152
|
+
)
|
|
153
|
+
]
|
|
154
|
+
}
|
|
155
|
+
);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
// src/components/Checkbox/Checkbox.web.tsx
|
|
159
|
+
import { jsx as jsx6, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
160
|
+
function CheckIcon() {
|
|
161
|
+
return /* @__PURE__ */ jsx6("svg", { width: "12", height: "10", viewBox: "0 0 12 10", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx6("path", { d: "M1 5L4.5 8.5L11 1.5", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
162
|
+
}
|
|
163
|
+
function Checkbox({ checked = false, onChange, disabled = false, className }) {
|
|
164
|
+
return /* @__PURE__ */ jsxs3(
|
|
165
|
+
"label",
|
|
166
|
+
{
|
|
167
|
+
className: cn(
|
|
168
|
+
"relative size-5 rounded-md flex items-center justify-center transition-colors",
|
|
169
|
+
disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer",
|
|
170
|
+
checked ? "bg-marian-blue-800 text-white dark:bg-marian-blue-400 dark:text-midnight-900" : "border border-marian-blue-600 bg-transparent dark:border-marian-blue-400",
|
|
171
|
+
className
|
|
172
|
+
),
|
|
173
|
+
children: [
|
|
174
|
+
/* @__PURE__ */ jsx6(
|
|
175
|
+
"input",
|
|
176
|
+
{
|
|
177
|
+
type: "checkbox",
|
|
178
|
+
checked,
|
|
179
|
+
disabled,
|
|
180
|
+
onChange: () => onChange?.(!checked),
|
|
181
|
+
className: "sr-only"
|
|
182
|
+
}
|
|
183
|
+
),
|
|
184
|
+
checked && /* @__PURE__ */ jsx6(CheckIcon, {})
|
|
185
|
+
]
|
|
186
|
+
}
|
|
187
|
+
);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
// src/components/RadioItem/RadioItem.web.tsx
|
|
191
|
+
import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
192
|
+
function RadioIndicator({ selected }) {
|
|
193
|
+
return /* @__PURE__ */ jsx7(
|
|
194
|
+
"div",
|
|
195
|
+
{
|
|
196
|
+
className: cn(
|
|
197
|
+
"size-5 rounded-full border flex items-center justify-center shrink-0",
|
|
198
|
+
selected ? "border-marian-blue-100" : "border-marian-blue-800 dark:border-marian-blue-300"
|
|
199
|
+
),
|
|
200
|
+
children: selected && /* @__PURE__ */ jsx7("svg", { width: "10", height: "8", viewBox: "0 0 10 8", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx7("path", { d: "M1 4L3.5 6.5L9 1", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) })
|
|
201
|
+
}
|
|
202
|
+
);
|
|
203
|
+
}
|
|
204
|
+
function RadioItem({ label, description, selected = false, icon, onClick, className }) {
|
|
205
|
+
return /* @__PURE__ */ jsxs4(
|
|
206
|
+
"button",
|
|
207
|
+
{
|
|
208
|
+
type: "button",
|
|
209
|
+
role: "radio",
|
|
210
|
+
"aria-checked": selected,
|
|
211
|
+
onClick,
|
|
212
|
+
className: cn(
|
|
213
|
+
"flex items-center justify-between h-12 px-4 rounded-2xl transition-colors text-left",
|
|
214
|
+
selected ? "bg-marian-blue-600 text-white dark:bg-marian-blue-500" : "bg-marian-blue-100 text-marian-blue-900 dark:bg-midnight-700 dark:text-marian-blue-100",
|
|
215
|
+
className
|
|
216
|
+
),
|
|
217
|
+
children: [
|
|
218
|
+
/* @__PURE__ */ jsxs4("div", { className: "flex items-center gap-3", children: [
|
|
219
|
+
icon && /* @__PURE__ */ jsx7("span", { className: "shrink-0 size-5", children: icon }),
|
|
220
|
+
/* @__PURE__ */ jsxs4("div", { className: "flex flex-col gap-0.5", children: [
|
|
221
|
+
/* @__PURE__ */ jsx7(
|
|
222
|
+
"span",
|
|
223
|
+
{
|
|
224
|
+
className: cn(
|
|
225
|
+
"text-sm leading-normal",
|
|
226
|
+
selected ? "font-bold" : "font-medium"
|
|
227
|
+
),
|
|
228
|
+
children: label
|
|
229
|
+
}
|
|
230
|
+
),
|
|
231
|
+
description && /* @__PURE__ */ jsx7(
|
|
232
|
+
"span",
|
|
233
|
+
{
|
|
234
|
+
className: cn(
|
|
235
|
+
"text-xs leading-normal tracking-[0.024px]",
|
|
236
|
+
selected ? "text-current opacity-80" : "text-gray-700 dark:text-gray-500"
|
|
237
|
+
),
|
|
238
|
+
children: description
|
|
239
|
+
}
|
|
240
|
+
)
|
|
241
|
+
] })
|
|
242
|
+
] }),
|
|
243
|
+
/* @__PURE__ */ jsx7(RadioIndicator, { selected })
|
|
244
|
+
]
|
|
245
|
+
}
|
|
246
|
+
);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
// src/components/RadioGroup/RadioGroup.web.tsx
|
|
250
|
+
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
251
|
+
function RadioGroup({ children, label, className }) {
|
|
252
|
+
return /* @__PURE__ */ jsx8(
|
|
253
|
+
"div",
|
|
254
|
+
{
|
|
255
|
+
role: "radiogroup",
|
|
256
|
+
"aria-label": label,
|
|
257
|
+
className: cn("flex flex-col gap-2", className),
|
|
258
|
+
children
|
|
259
|
+
}
|
|
260
|
+
);
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
// src/components/ActionItem/ActionItem.web.tsx
|
|
264
|
+
import { jsx as jsx9, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
265
|
+
function ChevronRight() {
|
|
266
|
+
return /* @__PURE__ */ jsx9("svg", { width: "8", height: "14", viewBox: "0 0 8 14", fill: "none", "aria-hidden": "true", children: /* @__PURE__ */ jsx9("path", { d: "M1 1L7 7L1 13", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }) });
|
|
267
|
+
}
|
|
268
|
+
function ActionItem({ label, description, selected = false, icon, onClick, className }) {
|
|
269
|
+
return /* @__PURE__ */ jsxs5(
|
|
270
|
+
"button",
|
|
271
|
+
{
|
|
272
|
+
type: "button",
|
|
273
|
+
onClick,
|
|
274
|
+
className: cn(
|
|
275
|
+
"flex items-center gap-5 h-14 px-4 rounded-2xl transition-colors text-left text-marian-blue-900 dark:text-marian-blue-100",
|
|
276
|
+
selected ? "bg-marian-blue-200 border-2 border-marian-blue-600 dark:bg-midnight-600 dark:border-marian-blue-400" : "bg-marian-blue-100 dark:bg-midnight-700",
|
|
277
|
+
className
|
|
278
|
+
),
|
|
279
|
+
children: [
|
|
280
|
+
/* @__PURE__ */ jsxs5("div", { className: "flex flex-1 items-center gap-4 min-w-0", children: [
|
|
281
|
+
icon && /* @__PURE__ */ jsx9("span", { className: "shrink-0", children: icon }),
|
|
282
|
+
/* @__PURE__ */ jsxs5("div", { className: "flex flex-col gap-1 flex-1 min-w-0", children: [
|
|
283
|
+
/* @__PURE__ */ jsx9("span", { className: "text-sm font-medium leading-normal whitespace-nowrap", children: label }),
|
|
284
|
+
description && /* @__PURE__ */ jsx9("span", { className: "text-xs font-normal text-gray-700 dark:text-gray-400 leading-normal tracking-[0.024px]", children: description })
|
|
285
|
+
] })
|
|
286
|
+
] }),
|
|
287
|
+
/* @__PURE__ */ jsx9("span", { className: "shrink-0", children: /* @__PURE__ */ jsx9(ChevronRight, {}) })
|
|
288
|
+
]
|
|
289
|
+
}
|
|
290
|
+
);
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
// src/components/Stepper/Stepper.web.tsx
|
|
294
|
+
import { jsx as jsx10, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
295
|
+
function Dot({ state }) {
|
|
296
|
+
return /* @__PURE__ */ jsx10(
|
|
297
|
+
"div",
|
|
298
|
+
{
|
|
299
|
+
className: cn(
|
|
300
|
+
"shrink-0 size-1 rounded-full",
|
|
301
|
+
state === "completed" ? "bg-marian-blue-600 dark:bg-marian-blue-400" : "bg-marian-blue-200 dark:bg-midnight-600"
|
|
302
|
+
)
|
|
303
|
+
}
|
|
304
|
+
);
|
|
305
|
+
}
|
|
306
|
+
function Track({ state }) {
|
|
307
|
+
return /* @__PURE__ */ jsxs6("div", { className: "w-full h-1 rounded-lg overflow-hidden bg-marian-blue-200 dark:bg-midnight-600", children: [
|
|
308
|
+
state === "completed" && /* @__PURE__ */ jsx10("div", { className: "h-full w-full bg-marian-blue-600 rounded-lg dark:bg-marian-blue-400" }),
|
|
309
|
+
state === "active" && /* @__PURE__ */ jsx10("div", { className: "h-full w-[calc(100%-12px)] bg-marian-blue-900 rounded-lg dark:bg-marian-blue-100" })
|
|
310
|
+
] });
|
|
311
|
+
}
|
|
312
|
+
function Stepper({ steps, currentStep, className }) {
|
|
313
|
+
return /* @__PURE__ */ jsx10("div", { className: cn("flex items-end gap-1 w-full", className), children: steps.map((step, i) => {
|
|
314
|
+
const state = i < currentStep ? "completed" : i === currentStep ? "active" : "upcoming";
|
|
315
|
+
return /* @__PURE__ */ jsxs6("div", { className: "flex flex-col gap-1 flex-1 min-w-0", children: [
|
|
316
|
+
state === "active" && /* @__PURE__ */ jsx10("span", { className: "text-[10px] font-semibold text-marian-blue-900 dark:text-marian-blue-100 leading-none tracking-[0.8px] uppercase truncate", children: step.label }),
|
|
317
|
+
(state === "completed" || state === "upcoming") && /* @__PURE__ */ jsx10("div", { className: "h-[10px]" }),
|
|
318
|
+
/* @__PURE__ */ jsx10(Track, { state })
|
|
319
|
+
] }, step.label);
|
|
320
|
+
}).reduce((acc, el, i) => {
|
|
321
|
+
if (i === 0) return [el];
|
|
322
|
+
const prevState = i - 1 < currentStep ? "completed" : i - 1 === currentStep ? "active" : "upcoming";
|
|
323
|
+
return [...acc, /* @__PURE__ */ jsx10(Dot, { state: prevState }, `dot-${i}`), el];
|
|
324
|
+
}, []) });
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
// src/components/RatingScale/RatingScale.web.tsx
|
|
328
|
+
import { jsx as jsx11, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
329
|
+
function RatingScale({ value = null, onChange, options = DEFAULT_OPTIONS, className }) {
|
|
330
|
+
return /* @__PURE__ */ jsx11("div", { className: cn("flex items-start justify-between", className), children: options.map((option, index) => {
|
|
331
|
+
const itemValue = index + 1;
|
|
332
|
+
const selected = value === itemValue;
|
|
333
|
+
return /* @__PURE__ */ jsxs7(
|
|
334
|
+
"button",
|
|
335
|
+
{
|
|
336
|
+
type: "button",
|
|
337
|
+
onClick: () => onChange?.(itemValue),
|
|
338
|
+
className: "flex w-[60px] flex-col items-center gap-2",
|
|
339
|
+
"aria-pressed": selected,
|
|
340
|
+
children: [
|
|
341
|
+
/* @__PURE__ */ jsx11(
|
|
342
|
+
"div",
|
|
343
|
+
{
|
|
344
|
+
className: cn(
|
|
345
|
+
"flex size-[60px] items-center justify-center overflow-hidden rounded-full p-[8px] transition-colors",
|
|
346
|
+
selected ? "bg-marian-blue-600" : "border border-marian-blue-200 bg-marian-blue-50 dark:border-midnight-500 dark:bg-midnight-700"
|
|
347
|
+
),
|
|
348
|
+
children: /* @__PURE__ */ jsx11("span", { className: "select-none text-[38px] leading-none", children: option.emoji })
|
|
349
|
+
}
|
|
350
|
+
),
|
|
351
|
+
/* @__PURE__ */ jsxs7("div", { className: "flex w-full flex-col items-center gap-[11px]", children: [
|
|
352
|
+
/* @__PURE__ */ jsx11(
|
|
353
|
+
"span",
|
|
354
|
+
{
|
|
355
|
+
className: cn(
|
|
356
|
+
"w-full whitespace-pre-line text-center text-[12px] leading-[1.3] tracking-[0.06px]",
|
|
357
|
+
selected ? "font-bold text-marian-blue-600" : "font-medium text-marian-blue-900 dark:text-marian-blue-100"
|
|
358
|
+
),
|
|
359
|
+
children: option.label
|
|
360
|
+
}
|
|
361
|
+
),
|
|
362
|
+
/* @__PURE__ */ jsx11("span", { className: "text-[10px] font-semibold leading-none tracking-[0.8px] text-gray-500", children: itemValue })
|
|
363
|
+
] })
|
|
364
|
+
]
|
|
365
|
+
},
|
|
366
|
+
itemValue
|
|
367
|
+
);
|
|
368
|
+
}) });
|
|
369
|
+
}
|
|
8
370
|
export {
|
|
371
|
+
ActionItem,
|
|
372
|
+
Alert,
|
|
373
|
+
Button,
|
|
374
|
+
Checkbox,
|
|
375
|
+
Chip,
|
|
376
|
+
Input,
|
|
377
|
+
ProgressBar,
|
|
378
|
+
RadioGroup,
|
|
379
|
+
RadioItem,
|
|
380
|
+
RatingScale,
|
|
381
|
+
Stepper,
|
|
9
382
|
colors,
|
|
10
383
|
darkTheme,
|
|
11
|
-
lightTheme
|
|
384
|
+
lightTheme,
|
|
385
|
+
typography
|
|
12
386
|
};
|
|
13
387
|
//# sourceMappingURL=index.web.mjs.map
|
package/dist/index.web.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/components/Button/Button.web.tsx","../src/utils/cn.ts","../src/components/Chip/Chip.web.tsx","../src/components/Alert/Alert.web.tsx","../src/components/ProgressBar/ProgressBar.web.tsx","../src/components/Input/Input.web.tsx","../src/components/Checkbox/Checkbox.web.tsx","../src/components/RadioItem/RadioItem.web.tsx","../src/components/RadioGroup/RadioGroup.web.tsx","../src/components/ActionItem/ActionItem.web.tsx","../src/components/Stepper/Stepper.web.tsx","../src/components/RatingScale/RatingScale.web.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority'\nimport { cn } from '../../utils/cn'\n\nconst button = cva(\n 'inline-flex items-center justify-center font-semibold rounded-full transition-opacity disabled:cursor-not-allowed',\n {\n variants: {\n variant: {\n primary:\n 'bg-marian-blue-700 text-white disabled:bg-gray-50 disabled:opacity-50 dark:bg-marian-blue-400 dark:text-midnight-900 dark:disabled:bg-midnight-600',\n secondary:\n 'bg-marian-blue-200 text-marian-blue-900 disabled:opacity-50 dark:bg-midnight-700 dark:text-marian-blue-200',\n ghost:\n 'bg-transparent text-marian-blue-700 disabled:opacity-50 dark:text-marian-blue-300',\n },\n size: {\n sm: 'h-9 px-3.5 text-sm',\n md: 'h-12 px-4 text-base',\n lg: 'h-14 px-6 text-lg',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'md',\n },\n }\n)\n\ntype ButtonProps = VariantProps<typeof button> & {\n children: React.ReactNode\n disabled?: boolean\n onClick?: React.MouseEventHandler<HTMLButtonElement>\n type?: 'button' | 'submit' | 'reset'\n className?: string\n}\n\nexport function Button({ variant, size, disabled, children, onClick, type = 'button', className }: ButtonProps) {\n return (\n <button\n type={type}\n disabled={disabled}\n onClick={onClick}\n className={cn(button({ variant, size }), className)}\n >\n {children}\n </button>\n )\n}\n","import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import { cn } from '../../utils/cn'\n\ntype ChipProps = {\n children: React.ReactNode\n checked?: boolean\n onClick?: () => void\n className?: string\n}\n\nexport function Chip({ children, checked = false, onClick, className }: ChipProps) {\n return (\n <button\n type=\"button\"\n onClick={onClick}\n className={cn(\n 'inline-flex items-center justify-center h-12 px-4 rounded-full text-sm transition-colors',\n checked\n ? 'bg-marian-blue-600 text-white font-semibold dark:bg-marian-blue-500 dark:text-white'\n : 'bg-marian-blue-100 text-marian-blue-900 font-medium dark:bg-midnight-700 dark:text-marian-blue-100',\n className\n )}\n >\n {children}\n </button>\n )\n}\n","import { cn } from '../../utils/cn'\n\ntype AlertVariant = 'success' | 'info'\n\ntype AlertProps = {\n variant?: AlertVariant\n title: string\n description?: string\n className?: string\n}\n\nexport function Alert({ variant = 'info', title, description, className }: AlertProps) {\n return (\n <div\n className={cn(\n 'w-full p-5 rounded-tl-[32px] rounded-tr-[32px] rounded-br-[32px] border border-marian-blue-200 dark:border-midnight-600',\n variant === 'success'\n ? 'bg-success-bg dark:bg-midnight-800'\n : 'bg-marian-blue-50 dark:bg-midnight-700',\n className\n )}\n >\n <p\n className=\"[font-family:'Poppins',sans-serif] font-semibold text-base leading-snug text-marian-blue-900 dark:text-marian-blue-100\"\n >\n {title}\n </p>\n {description && (\n <p className=\"mt-3 font-medium text-sm leading-normal text-gray-700 dark:text-gray-400\">\n {description}\n </p>\n )}\n </div>\n )\n}\n","import { cn } from '../../utils/cn'\n\ntype ProgressBarProps = {\n value: number\n className?: string\n}\n\nexport function ProgressBar({ value, className }: ProgressBarProps) {\n const pct = Math.min(100, Math.max(0, value))\n\n return (\n <div\n role=\"progressbar\"\n aria-valuenow={pct}\n aria-valuemin={0}\n aria-valuemax={100}\n className={cn(\n 'relative h-2 w-full rounded-full bg-marian-blue-200 overflow-hidden dark:bg-midnight-600',\n className\n )}\n >\n <div\n className=\"absolute inset-y-0 left-0 bg-marian-blue-700 rounded-[24px] transition-[width] dark:bg-marian-blue-400\"\n style={{ width: `${pct}%` }}\n />\n </div>\n )\n}\n","import { cn } from '../../utils/cn'\n\ntype InputState = 'default' | 'filled' | 'error' | 'disabled'\n\ntype InputProps = {\n value?: string\n placeholder?: string\n state?: InputState\n leadingIcon?: React.ReactNode\n onChange?: React.ChangeEventHandler<HTMLInputElement>\n className?: string\n}\n\nexport function Input({ value, placeholder = 'exemplo@email.com', state = 'default', leadingIcon, onChange, className }: InputProps) {\n const isDisabled = state === 'disabled'\n const isError = state === 'error'\n\n return (\n <div\n className={cn(\n 'flex items-center gap-2 h-12 px-3 rounded-xl border text-sm font-medium',\n 'focus-within:border-2 focus-within:border-marian-blue-600 dark:focus-within:border-marian-blue-400',\n isDisabled\n ? 'bg-marian-blue-50 border-gray-200 text-gray-200 cursor-not-allowed dark:bg-midnight-800 dark:border-midnight-500 dark:text-gray-600'\n : isError\n ? 'bg-marian-blue-100 border-ketchup-600 text-ketchup-700 dark:bg-midnight-700 dark:border-ketchup-400 dark:text-ketchup-400'\n : 'bg-marian-blue-100 border-marian-blue-200 text-gray-500 dark:bg-midnight-700 dark:border-midnight-600 dark:text-gray-500',\n className\n )}\n >\n {leadingIcon && (\n <span className=\"shrink-0 text-current\">{leadingIcon}</span>\n )}\n <input\n type=\"text\"\n value={value}\n placeholder={placeholder}\n disabled={isDisabled}\n onChange={onChange}\n className=\"flex-1 bg-transparent outline-none placeholder:text-current text-current min-w-0 focus:text-marian-blue-900 dark:focus:text-marian-blue-100\"\n />\n </div>\n )\n}\n","import { cn } from '../../utils/cn'\n\ntype CheckboxProps = {\n checked?: boolean\n onChange?: (checked: boolean) => void\n disabled?: boolean\n className?: string\n}\n\nfunction CheckIcon() {\n return (\n <svg width=\"12\" height=\"10\" viewBox=\"0 0 12 10\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M1 5L4.5 8.5L11 1.5\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n )\n}\n\nexport function Checkbox({ checked = false, onChange, disabled = false, className }: CheckboxProps) {\n return (\n <label\n className={cn(\n 'relative size-5 rounded-md flex items-center justify-center transition-colors',\n disabled ? 'cursor-not-allowed opacity-50' : 'cursor-pointer',\n checked\n ? 'bg-marian-blue-800 text-white dark:bg-marian-blue-400 dark:text-midnight-900'\n : 'border border-marian-blue-600 bg-transparent dark:border-marian-blue-400',\n className\n )}\n >\n <input\n type=\"checkbox\"\n checked={checked}\n disabled={disabled}\n onChange={() => onChange?.(!checked)}\n className=\"sr-only\"\n />\n {checked && <CheckIcon />}\n </label>\n )\n}\n","import { cn } from '../../utils/cn'\n\ntype RadioItemProps = {\n label: string\n description?: string\n selected?: boolean\n icon?: React.ReactNode\n onClick?: () => void\n className?: string\n}\n\nfunction RadioIndicator({ selected }: { selected: boolean }) {\n return (\n <div\n className={cn(\n 'size-5 rounded-full border flex items-center justify-center shrink-0',\n selected\n ? 'border-marian-blue-100'\n : 'border-marian-blue-800 dark:border-marian-blue-300'\n )}\n >\n {selected && (\n <svg width=\"10\" height=\"8\" viewBox=\"0 0 10 8\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M1 4L3.5 6.5L9 1\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n )}\n </div>\n )\n}\n\nexport function RadioItem({ label, description, selected = false, icon, onClick, className }: RadioItemProps) {\n return (\n <button\n type=\"button\"\n role=\"radio\"\n aria-checked={selected}\n onClick={onClick}\n className={cn(\n 'flex items-center justify-between h-12 px-4 rounded-2xl transition-colors text-left',\n selected\n ? 'bg-marian-blue-600 text-white dark:bg-marian-blue-500'\n : 'bg-marian-blue-100 text-marian-blue-900 dark:bg-midnight-700 dark:text-marian-blue-100',\n className\n )}\n >\n <div className=\"flex items-center gap-3\">\n {icon && <span className=\"shrink-0 size-5\">{icon}</span>}\n <div className=\"flex flex-col gap-0.5\">\n <span\n className={cn(\n 'text-sm leading-normal',\n selected ? 'font-bold' : 'font-medium'\n )}\n >\n {label}\n </span>\n {description && (\n <span\n className={cn(\n 'text-xs leading-normal tracking-[0.024px]',\n selected ? 'text-current opacity-80' : 'text-gray-700 dark:text-gray-500'\n )}\n >\n {description}\n </span>\n )}\n </div>\n </div>\n <RadioIndicator selected={selected} />\n </button>\n )\n}\n","import { cn } from '../../utils/cn'\n\ntype RadioGroupProps = {\n children: React.ReactNode\n label?: string\n className?: string\n}\n\nexport function RadioGroup({ children, label, className }: RadioGroupProps) {\n return (\n <div\n role=\"radiogroup\"\n aria-label={label}\n className={cn('flex flex-col gap-2', className)}\n >\n {children}\n </div>\n )\n}\n","import { cn } from '../../utils/cn'\n\ntype ActionItemProps = {\n label: string\n description?: string\n selected?: boolean\n icon?: React.ReactNode\n onClick?: () => void\n className?: string\n}\n\nfunction ChevronRight() {\n return (\n <svg width=\"8\" height=\"14\" viewBox=\"0 0 8 14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M1 1L7 7L1 13\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n )\n}\n\nexport function ActionItem({ label, description, selected = false, icon, onClick, className }: ActionItemProps) {\n return (\n <button\n type=\"button\"\n onClick={onClick}\n className={cn(\n 'flex items-center gap-5 h-14 px-4 rounded-2xl transition-colors text-left text-marian-blue-900 dark:text-marian-blue-100',\n selected\n ? 'bg-marian-blue-200 border-2 border-marian-blue-600 dark:bg-midnight-600 dark:border-marian-blue-400'\n : 'bg-marian-blue-100 dark:bg-midnight-700',\n className\n )}\n >\n <div className=\"flex flex-1 items-center gap-4 min-w-0\">\n {icon && <span className=\"shrink-0\">{icon}</span>}\n <div className=\"flex flex-col gap-1 flex-1 min-w-0\">\n <span className=\"text-sm font-medium leading-normal whitespace-nowrap\">\n {label}\n </span>\n {description && (\n <span className=\"text-xs font-normal text-gray-700 dark:text-gray-400 leading-normal tracking-[0.024px]\">\n {description}\n </span>\n )}\n </div>\n </div>\n <span className=\"shrink-0\">\n <ChevronRight />\n </span>\n </button>\n )\n}\n","import { cn } from '../../utils/cn'\n\ntype StepState = 'completed' | 'active' | 'upcoming'\n\ntype Step = {\n label: string\n}\n\ntype StepperProps = {\n steps: Step[]\n currentStep: number\n className?: string\n}\n\nfunction Dot({ state }: { state: StepState }) {\n return (\n <div\n className={cn(\n 'shrink-0 size-1 rounded-full',\n state === 'completed'\n ? 'bg-marian-blue-600 dark:bg-marian-blue-400'\n : 'bg-marian-blue-200 dark:bg-midnight-600'\n )}\n />\n )\n}\n\nfunction Track({ state }: { state: StepState }) {\n return (\n <div className=\"w-full h-1 rounded-lg overflow-hidden bg-marian-blue-200 dark:bg-midnight-600\">\n {state === 'completed' && (\n <div className=\"h-full w-full bg-marian-blue-600 rounded-lg dark:bg-marian-blue-400\" />\n )}\n {state === 'active' && (\n <div className=\"h-full w-[calc(100%-12px)] bg-marian-blue-900 rounded-lg dark:bg-marian-blue-100\" />\n )}\n </div>\n )\n}\n\nexport function Stepper({ steps, currentStep, className }: StepperProps) {\n return (\n <div className={cn('flex items-end gap-1 w-full', className)}>\n {steps.map((step, i) => {\n const state: StepState =\n i < currentStep ? 'completed' : i === currentStep ? 'active' : 'upcoming'\n\n return (\n <div key={step.label} className=\"flex flex-col gap-1 flex-1 min-w-0\">\n {state === 'active' && (\n <span className=\"text-[10px] font-semibold text-marian-blue-900 dark:text-marian-blue-100 leading-none tracking-[0.8px] uppercase truncate\">\n {step.label}\n </span>\n )}\n {(state === 'completed' || state === 'upcoming') && (\n <div className=\"h-[10px]\" />\n )}\n <Track state={state} />\n </div>\n )\n }).reduce<React.ReactNode[]>((acc, el, i) => {\n if (i === 0) return [el]\n const prevState: StepState =\n i - 1 < currentStep ? 'completed' : i - 1 === currentStep ? 'active' : 'upcoming'\n return [...acc, <Dot key={`dot-${i}`} state={prevState} />, el]\n }, [])}\n </div>\n )\n}\n","import { cn } from '../../utils/cn'\nimport { DEFAULT_OPTIONS } from './RatingScale.styles'\n\ntype RatingScaleOption = {\n emoji: string\n label: string\n}\n\ntype RatingScaleProps = {\n value?: number | null\n onChange?: (value: number) => void\n options?: ReadonlyArray<RatingScaleOption>\n className?: string\n}\n\nexport function RatingScale({ value = null, onChange, options = DEFAULT_OPTIONS, className }: RatingScaleProps) {\n return (\n <div className={cn('flex items-start justify-between', className)}>\n {options.map((option, index) => {\n const itemValue = index + 1\n const selected = value === itemValue\n return (\n <button\n key={itemValue}\n type=\"button\"\n onClick={() => onChange?.(itemValue)}\n className=\"flex w-[60px] flex-col items-center gap-2\"\n aria-pressed={selected}\n >\n <div\n className={cn(\n 'flex size-[60px] items-center justify-center overflow-hidden rounded-full p-[8px] transition-colors',\n selected\n ? 'bg-marian-blue-600'\n : 'border border-marian-blue-200 bg-marian-blue-50 dark:border-midnight-500 dark:bg-midnight-700'\n )}\n >\n <span className=\"select-none text-[38px] leading-none\">{option.emoji}</span>\n </div>\n <div className=\"flex w-full flex-col items-center gap-[11px]\">\n <span\n className={cn(\n 'w-full whitespace-pre-line text-center text-[12px] leading-[1.3] tracking-[0.06px]',\n selected\n ? 'font-bold text-marian-blue-600'\n : 'font-medium text-marian-blue-900 dark:text-marian-blue-100'\n )}\n >\n {option.label}\n </span>\n <span className=\"text-[10px] font-semibold leading-none tracking-[0.8px] text-gray-500\">\n {itemValue}\n </span>\n </div>\n </button>\n )\n })}\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;;AAAA,SAAS,WAA8B;;;ACAvC,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;ADiCI;AAnCJ,IAAM,SAAS;AAAA,EACb;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,WACE;AAAA,QACF,OACE;AAAA,MACJ;AAAA,MACA,MAAM;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAUO,SAAS,OAAO,EAAE,SAAS,MAAM,UAAU,UAAU,SAAS,OAAO,UAAU,UAAU,GAAgB;AAC9G,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW,GAAG,OAAO,EAAE,SAAS,KAAK,CAAC,GAAG,SAAS;AAAA,MAEjD;AAAA;AAAA,EACH;AAEJ;;;AEpCI,gBAAAA,YAAA;AAFG,SAAS,KAAK,EAAE,UAAU,UAAU,OAAO,SAAS,UAAU,GAAc;AACjF,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA,UACI,wFACA;AAAA,QACJ;AAAA,MACF;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ;;;ACZI,SASE,OAAAC,MATF;AAFG,SAAS,MAAM,EAAE,UAAU,QAAQ,OAAO,aAAa,UAAU,GAAe;AACrF,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,YAAY,YACR,uCACA;AAAA,QACJ;AAAA,MACF;AAAA,MAEA;AAAA,wBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YAET;AAAA;AAAA,QACH;AAAA,QACC,eACC,gBAAAA,KAAC,OAAE,WAAU,4EACV,uBACH;AAAA;AAAA;AAAA,EAEJ;AAEJ;;;ACbM,gBAAAC,YAAA;AAdC,SAAS,YAAY,EAAE,OAAO,UAAU,GAAqB;AAClE,QAAM,MAAM,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC;AAE5C,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,iBAAe;AAAA,MACf,iBAAe;AAAA,MACf,iBAAe;AAAA,MACf,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MAEA,0BAAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,OAAO,EAAE,OAAO,GAAG,GAAG,IAAI;AAAA;AAAA,MAC5B;AAAA;AAAA,EACF;AAEJ;;;ACTI,SAaI,OAAAC,MAbJ,QAAAC,aAAA;AALG,SAAS,MAAM,EAAE,OAAO,cAAc,qBAAqB,QAAQ,WAAW,aAAa,UAAU,UAAU,GAAe;AACnI,QAAM,aAAa,UAAU;AAC7B,QAAM,UAAU,UAAU;AAE1B,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA,aACI,wIACA,UACE,8HACA;AAAA,QACN;AAAA,MACF;AAAA,MAEC;AAAA,uBACC,gBAAAD,KAAC,UAAK,WAAU,yBAAyB,uBAAY;AAAA,QAEvD,gBAAAA;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL;AAAA,YACA;AAAA,YACA,UAAU;AAAA,YACV;AAAA,YACA,WAAU;AAAA;AAAA,QACZ;AAAA;AAAA;AAAA,EACF;AAEJ;;;AC/BM,gBAAAE,MAOF,QAAAC,aAPE;AAHN,SAAS,YAAY;AACnB,SACE,gBAAAD,KAAC,SAAI,OAAM,MAAK,QAAO,MAAK,SAAQ,aAAY,MAAK,QAAO,eAAY,QACtE,0BAAAA,KAAC,UAAK,GAAE,uBAAsB,QAAO,gBAAe,aAAY,KAAI,eAAc,SAAQ,gBAAe,SAAQ,GACnH;AAEJ;AAEO,SAAS,SAAS,EAAE,UAAU,OAAO,UAAU,WAAW,OAAO,UAAU,GAAkB;AAClG,SACE,gBAAAC;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,WAAW,kCAAkC;AAAA,QAC7C,UACI,iFACA;AAAA,QACJ;AAAA,MACF;AAAA,MAEA;AAAA,wBAAAD;AAAA,UAAC;AAAA;AAAA,YACC,MAAK;AAAA,YACL;AAAA,YACA;AAAA,YACA,UAAU,MAAM,WAAW,CAAC,OAAO;AAAA,YACnC,WAAU;AAAA;AAAA,QACZ;AAAA,QACC,WAAW,gBAAAA,KAAC,aAAU;AAAA;AAAA;AAAA,EACzB;AAEJ;;;AChBU,gBAAAE,MAwBF,QAAAC,aAxBE;AAZV,SAAS,eAAe,EAAE,SAAS,GAA0B;AAC3D,SACE,gBAAAD;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,WACI,2BACA;AAAA,MACN;AAAA,MAEC,sBACC,gBAAAA,KAAC,SAAI,OAAM,MAAK,QAAO,KAAI,SAAQ,YAAW,MAAK,QAAO,eAAY,QACpE,0BAAAA,KAAC,UAAK,GAAE,oBAAmB,QAAO,gBAAe,aAAY,OAAM,eAAc,SAAQ,gBAAe,SAAQ,GAClH;AAAA;AAAA,EAEJ;AAEJ;AAEO,SAAS,UAAU,EAAE,OAAO,aAAa,WAAW,OAAO,MAAM,SAAS,UAAU,GAAmB;AAC5G,SACE,gBAAAC;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,MAAK;AAAA,MACL,gBAAc;AAAA,MACd;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA,WACI,0DACA;AAAA,QACJ;AAAA,MACF;AAAA,MAEA;AAAA,wBAAAA,MAAC,SAAI,WAAU,2BACZ;AAAA,kBAAQ,gBAAAD,KAAC,UAAK,WAAU,mBAAmB,gBAAK;AAAA,UACjD,gBAAAC,MAAC,SAAI,WAAU,yBACb;AAAA,4BAAAD;AAAA,cAAC;AAAA;AAAA,gBACC,WAAW;AAAA,kBACT;AAAA,kBACA,WAAW,cAAc;AAAA,gBAC3B;AAAA,gBAEC;AAAA;AAAA,YACH;AAAA,YACC,eACC,gBAAAA;AAAA,cAAC;AAAA;AAAA,gBACC,WAAW;AAAA,kBACT;AAAA,kBACA,WAAW,4BAA4B;AAAA,gBACzC;AAAA,gBAEC;AAAA;AAAA,YACH;AAAA,aAEJ;AAAA,WACF;AAAA,QACA,gBAAAA,KAAC,kBAAe,UAAoB;AAAA;AAAA;AAAA,EACtC;AAEJ;;;AC7DI,gBAAAE,YAAA;AAFG,SAAS,WAAW,EAAE,UAAU,OAAO,UAAU,GAAoB;AAC1E,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,cAAY;AAAA,MACZ,WAAW,GAAG,uBAAuB,SAAS;AAAA,MAE7C;AAAA;AAAA,EACH;AAEJ;;;ACJM,gBAAAC,MAoBE,QAAAC,aApBF;AAHN,SAAS,eAAe;AACtB,SACE,gBAAAD,KAAC,SAAI,OAAM,KAAI,QAAO,MAAK,SAAQ,YAAW,MAAK,QAAO,eAAY,QACpE,0BAAAA,KAAC,UAAK,GAAE,iBAAgB,QAAO,gBAAe,aAAY,OAAM,eAAc,SAAQ,gBAAe,SAAQ,GAC/G;AAEJ;AAEO,SAAS,WAAW,EAAE,OAAO,aAAa,WAAW,OAAO,MAAM,SAAS,UAAU,GAAoB;AAC9G,SACE,gBAAAC;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA,WACI,wGACA;AAAA,QACJ;AAAA,MACF;AAAA,MAEA;AAAA,wBAAAA,MAAC,SAAI,WAAU,0CACZ;AAAA,kBAAQ,gBAAAD,KAAC,UAAK,WAAU,YAAY,gBAAK;AAAA,UAC1C,gBAAAC,MAAC,SAAI,WAAU,sCACb;AAAA,4BAAAD,KAAC,UAAK,WAAU,wDACb,iBACH;AAAA,YACC,eACC,gBAAAA,KAAC,UAAK,WAAU,0FACb,uBACH;AAAA,aAEJ;AAAA,WACF;AAAA,QACA,gBAAAA,KAAC,UAAK,WAAU,YACd,0BAAAA,KAAC,gBAAa,GAChB;AAAA;AAAA;AAAA,EACF;AAEJ;;;AClCI,gBAAAE,OAaA,QAAAC,aAbA;AAFJ,SAAS,IAAI,EAAE,MAAM,GAAyB;AAC5C,SACE,gBAAAD;AAAA,IAAC;AAAA;AAAA,MACC,WAAW;AAAA,QACT;AAAA,QACA,UAAU,cACN,+CACA;AAAA,MACN;AAAA;AAAA,EACF;AAEJ;AAEA,SAAS,MAAM,EAAE,MAAM,GAAyB;AAC9C,SACE,gBAAAC,MAAC,SAAI,WAAU,iFACZ;AAAA,cAAU,eACT,gBAAAD,MAAC,SAAI,WAAU,uEAAsE;AAAA,IAEtF,UAAU,YACT,gBAAAA,MAAC,SAAI,WAAU,oFAAmF;AAAA,KAEtG;AAEJ;AAEO,SAAS,QAAQ,EAAE,OAAO,aAAa,UAAU,GAAiB;AACvE,SACE,gBAAAA,MAAC,SAAI,WAAW,GAAG,+BAA+B,SAAS,GACxD,gBAAM,IAAI,CAAC,MAAM,MAAM;AACtB,UAAM,QACJ,IAAI,cAAc,cAAc,MAAM,cAAc,WAAW;AAEjE,WACE,gBAAAC,MAAC,SAAqB,WAAU,sCAC7B;AAAA,gBAAU,YACT,gBAAAD,MAAC,UAAK,WAAU,6HACb,eAAK,OACR;AAAA,OAEA,UAAU,eAAe,UAAU,eACnC,gBAAAA,MAAC,SAAI,WAAU,YAAW;AAAA,MAE5B,gBAAAA,MAAC,SAAM,OAAc;AAAA,SATb,KAAK,KAUf;AAAA,EAEJ,CAAC,EAAE,OAA0B,CAAC,KAAK,IAAI,MAAM;AAC3C,QAAI,MAAM,EAAG,QAAO,CAAC,EAAE;AACvB,UAAM,YACJ,IAAI,IAAI,cAAc,cAAc,IAAI,MAAM,cAAc,WAAW;AACzE,WAAO,CAAC,GAAG,KAAK,gBAAAA,MAAC,OAAqB,OAAO,aAAnB,OAAO,CAAC,EAAsB,GAAI,EAAE;AAAA,EAChE,GAAG,CAAC,CAAC,GACP;AAEJ;;;AC/Bc,gBAAAE,OAEF,QAAAC,aAFE;AAtBP,SAAS,YAAY,EAAE,QAAQ,MAAM,UAAU,UAAU,iBAAiB,UAAU,GAAqB;AAC9G,SACE,gBAAAD,MAAC,SAAI,WAAW,GAAG,oCAAoC,SAAS,GAC7D,kBAAQ,IAAI,CAAC,QAAQ,UAAU;AAC9B,UAAM,YAAY,QAAQ;AAC1B,UAAM,WAAW,UAAU;AAC3B,WACE,gBAAAC;AAAA,MAAC;AAAA;AAAA,QAEC,MAAK;AAAA,QACL,SAAS,MAAM,WAAW,SAAS;AAAA,QACnC,WAAU;AAAA,QACV,gBAAc;AAAA,QAEd;AAAA,0BAAAD;AAAA,YAAC;AAAA;AAAA,cACC,WAAW;AAAA,gBACT;AAAA,gBACA,WACI,uBACA;AAAA,cACN;AAAA,cAEA,0BAAAA,MAAC,UAAK,WAAU,wCAAwC,iBAAO,OAAM;AAAA;AAAA,UACvE;AAAA,UACA,gBAAAC,MAAC,SAAI,WAAU,gDACb;AAAA,4BAAAD;AAAA,cAAC;AAAA;AAAA,gBACC,WAAW;AAAA,kBACT;AAAA,kBACA,WACI,mCACA;AAAA,gBACN;AAAA,gBAEC,iBAAO;AAAA;AAAA,YACV;AAAA,YACA,gBAAAA,MAAC,UAAK,WAAU,yEACb,qBACH;AAAA,aACF;AAAA;AAAA;AAAA,MA9BK;AAAA,IA+BP;AAAA,EAEJ,CAAC,GACH;AAEJ;","names":["jsx","jsx","jsx","jsx","jsxs","jsx","jsxs","jsx","jsxs","jsx","jsx","jsxs","jsx","jsxs","jsx","jsxs"]}
|