{"version":3,"sources":["../src/components/MultipleChoice/MultipleChoice.tsx","../src/components/CheckBox/CheckboxList.tsx"],"sourcesContent":["import { HtmlHTMLAttributes, useEffect, useState } from 'react';\nimport CheckboxList, { CheckboxListItem } from '../CheckBox/CheckboxList';\nimport { cn } from '../../utils/utils';\nimport { CheckCircleIcon } from '@phosphor-icons/react/dist/csr/CheckCircle';\nimport { XCircleIcon } from '@phosphor-icons/react/dist/csr/XCircle';\nimport { CheckIcon } from '@phosphor-icons/react/dist/csr/Check';\nimport Badge from '../Badge/Badge';\nimport { HtmlMathRenderer } from '../HtmlMathRenderer';\nimport { QuizVariant } from '../Quiz/Quiz.types';\nimport { OptionStatus } from '../../enums/Options';\n\ninterface Choice {\n  value: string;\n  label: string;\n  status?: OptionStatus;\n  disabled?: boolean;\n}\n\ninterface MultipleChoiceListProps extends HtmlHTMLAttributes<HTMLDivElement> {\n  choices: Choice[];\n  disabled?: boolean;\n  name?: string;\n  selectedValues?: string[];\n  onHandleSelectedValues?: (values: string[]) => void;\n  mode?: 'interactive' | 'readonly';\n}\n\nconst MultipleChoiceList = ({\n  disabled = false,\n  className = '',\n  choices,\n  name,\n  selectedValues,\n  onHandleSelectedValues,\n  mode = QuizVariant.INTERACTIVE,\n}: MultipleChoiceListProps) => {\n  const [actualValue, setActualValue] = useState(selectedValues);\n\n  // Mirror the incoming prop into local state, but only when its *value*\n  // actually changed. Comparing by reference alone would re-set state on every\n  // render where the parent hands us a new-but-equal array, which feeds an\n  // infinite re-render loop when the parent also subscribes to the store.\n  useEffect(() => {\n    setActualValue((prev) =>\n      JSON.stringify(prev) === JSON.stringify(selectedValues)\n        ? prev\n        : selectedValues\n    );\n  }, [selectedValues]);\n  const getStatusBadge = (status: Choice['status']) => {\n    switch (status) {\n      case OptionStatus.CORRECT:\n        return (\n          <Badge\n            variant=\"solid\"\n            action=\"success\"\n            iconLeft={<CheckCircleIcon />}\n          >\n            Resposta correta\n          </Badge>\n        );\n      case OptionStatus.INCORRECT:\n        return (\n          <Badge variant=\"solid\" action=\"error\" iconLeft={<XCircleIcon />}>\n            Resposta incorreta\n          </Badge>\n        );\n      default:\n        return null;\n    }\n  };\n\n  const getStatusStyles = (status: Choice['status']) => {\n    switch (status) {\n      case OptionStatus.CORRECT:\n        return 'bg-success-background border-success-300';\n      case OptionStatus.INCORRECT:\n        return 'bg-error-background border-error-300';\n      default:\n        return `bg-background border-border-100`;\n    }\n  };\n\n  const renderVisualCheckbox = (isSelected: boolean, isDisabled: boolean) => {\n    const checkboxClasses = cn(\n      'w-5 h-5 rounded border-2 cursor-default transition-all duration-200 flex items-center justify-center',\n      isSelected\n        ? 'border-primary-950 bg-primary-950 text-text'\n        : 'border-border-400 bg-background',\n      isDisabled && 'opacity-40 cursor-not-allowed'\n    );\n\n    return (\n      <div className={checkboxClasses}>\n        {isSelected && <CheckIcon size={16} weight=\"bold\" />}\n      </div>\n    );\n  };\n\n  if (mode === 'readonly') {\n    return (\n      <div className={cn('flex flex-col gap-2', className)}>\n        {choices.map((choice, i) => {\n          const isSelected = actualValue?.includes(choice.value) || false;\n          const statusStyles = getStatusStyles(choice.status);\n          const statusBadge = getStatusBadge(choice.status);\n\n          return (\n            <div\n              key={`readonly-${choice.value}-${i}`}\n              className={cn(\n                'flex flex-row justify-between gap-2 items-start p-2 rounded-lg transition-all',\n                statusStyles,\n                choice.disabled ? 'opacity-50 cursor-not-allowed' : ''\n              )}\n            >\n              <div className=\"flex items-center gap-2 flex-1\">\n                {renderVisualCheckbox(isSelected, choice.disabled || disabled)}\n                <HtmlMathRenderer\n                  content={choice.label}\n                  className={cn(\n                    'flex-1',\n                    isSelected ||\n                      (choice.status && choice.status != OptionStatus.NEUTRAL)\n                      ? 'text-text-950'\n                      : 'text-text-600',\n                    choice.disabled || disabled\n                      ? 'cursor-not-allowed'\n                      : 'cursor-default'\n                  )}\n                />\n              </div>\n              {statusBadge && (\n                <div className=\"flex-shrink-0\">{statusBadge}</div>\n              )}\n            </div>\n          );\n        })}\n      </div>\n    );\n  }\n  return (\n    <div\n      className={cn(\n        'flex flex-row justify-between gap-2 items-start p-2 rounded-lg transition-all',\n        disabled ? 'opacity-50 cursor-not-allowed' : '',\n        className\n      )}\n    >\n      <CheckboxList\n        name={name}\n        values={actualValue}\n        onValuesChange={(v) => {\n          setActualValue(v);\n          onHandleSelectedValues?.(v);\n        }}\n        disabled={disabled}\n      >\n        {choices.map((choice, i) => (\n          <div\n            key={`interactive-${choice.value}-${i}`}\n            className=\"flex flex-row gap-2 items-center\"\n          >\n            <CheckboxListItem\n              value={choice.value}\n              id={`interactive-${choice.value}-${i}`}\n              disabled={choice.disabled || disabled}\n            />\n\n            <label\n              htmlFor={`interactive-${choice.value}-${i}`}\n              className={cn(\n                'flex-1',\n                actualValue?.includes(choice.value)\n                  ? 'text-text-950'\n                  : 'text-text-600',\n                choice.disabled || disabled\n                  ? 'cursor-not-allowed'\n                  : 'cursor-pointer'\n              )}\n            >\n              <HtmlMathRenderer content={choice.label} />\n            </label>\n          </div>\n        ))}\n      </CheckboxList>\n    </div>\n  );\n};\n\nexport { MultipleChoiceList };\n","import {\n  InputHTMLAttributes,\n  HTMLAttributes,\n  ReactNode,\n  forwardRef,\n  useId,\n  useEffect,\n  useRef,\n  Children,\n  cloneElement,\n  isValidElement,\n  ReactElement,\n} from 'react';\nimport { create, StoreApi, useStore } from 'zustand';\nimport CheckBox from './CheckBox';\nimport { cn } from '../../utils/utils';\n\n/**\n * CheckboxList size variants\n */\ntype CheckboxListSize = 'small' | 'medium' | 'large';\n\n/**\n * CheckboxList visual state\n */\ntype CheckboxListState =\n  | 'default'\n  | 'hovered'\n  | 'focused'\n  | 'invalid'\n  | 'disabled';\n\n/**\n * CheckboxList store interface\n */\ninterface CheckboxListStore {\n  values: string[];\n  setValues: (values: string[]) => void;\n  toggleValue: (value: string) => void;\n  onValuesChange?: (values: string[]) => void;\n  disabled: boolean;\n  name: string;\n}\n\ntype CheckboxListStoreApi = StoreApi<CheckboxListStore>;\n\n/**\n * Create a new CheckboxList store\n */\nconst createCheckboxListStore = (\n  name: string,\n  defaultValues: string[],\n  disabled: boolean,\n  onValuesChange?: (values: string[]) => void\n): CheckboxListStoreApi =>\n  create<CheckboxListStore>((set, get) => ({\n    values: defaultValues,\n    setValues: (values) => {\n      if (!get().disabled) {\n        set({ values });\n        get().onValuesChange?.(values);\n      }\n    },\n    toggleValue: (value) => {\n      if (!get().disabled) {\n        const currentValues = get().values;\n        const newValues = currentValues.includes(value)\n          ? currentValues.filter((v) => v !== value)\n          : [...currentValues, value];\n        set({ values: newValues });\n        get().onValuesChange?.(newValues);\n      }\n    },\n    onValuesChange,\n    disabled,\n    name,\n  }));\n\n/**\n * Hook to access CheckboxList store\n */\nexport const useCheckboxListStore = (externalStore?: CheckboxListStoreApi) => {\n  if (!externalStore) {\n    throw new Error('CheckboxListItem must be used within a CheckboxList');\n  }\n  return externalStore;\n};\n\n/**\n * Inject store into CheckboxListItem children\n */\nconst injectStore = (\n  children: ReactNode,\n  store: CheckboxListStoreApi\n): ReactNode =>\n  Children.map(children, (child) => {\n    if (!isValidElement(child)) return child;\n    const typedChild = child as ReactElement<CheckboxListItemProps>;\n    const shouldInject = typedChild.type === CheckboxListItem;\n    return cloneElement(typedChild, {\n      ...(shouldInject ? { store } : {}),\n      ...(typedChild.props.children\n        ? { children: injectStore(typedChild.props.children, store) }\n        : {}),\n    });\n  });\n\n/**\n * CheckboxList component props interface\n */\nexport type CheckboxListProps = {\n  /** Current selected values */\n  values?: string[];\n  /** Default selected values for uncontrolled usage */\n  defaultValues?: string[];\n  /** Callback when selection changes */\n  onValuesChange?: (values: string[]) => void;\n  /** Group name for all checkboxes */\n  name?: string;\n  /** Disabled state for the entire group */\n  disabled?: boolean;\n  /** Additional CSS classes */\n  className?: string;\n  /** Children components */\n  children: ReactNode;\n} & Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValues'>;\n\n/**\n * CheckboxList component for flexible checkbox group composition\n *\n * Uses Zustand for state management with automatic store injection.\n * Allows complete control over layout and styling by composing with CheckboxListItem.\n *\n * @example\n * ```tsx\n * <CheckboxList defaultValues={[\"option1\"]} onValuesChange={setValues}>\n *   <div className=\"flex items-center gap-3\">\n *     <CheckboxListItem value=\"option1\" id=\"c1\" />\n *     <label htmlFor=\"c1\">Option 1</label>\n *   </div>\n *   <div className=\"flex items-center gap-3\">\n *     <CheckboxListItem value=\"option2\" id=\"c2\" />\n *     <label htmlFor=\"c2\">Option 2</label>\n *   </div>\n * </CheckboxList>\n * ```\n */\nconst CheckboxList = forwardRef<HTMLDivElement, CheckboxListProps>(\n  (\n    {\n      values: propValues,\n      defaultValues = [],\n      onValuesChange,\n      name: propName,\n      disabled = false,\n      className = '',\n      children,\n      ...props\n    },\n    ref\n  ) => {\n    // Generate unique name if not provided\n    const generatedId = useId();\n    const name = propName || `checkbox-list-${generatedId}`;\n\n    // Create store reference\n    const storeRef = useRef<CheckboxListStoreApi>(null);\n    storeRef.current ??= createCheckboxListStore(\n      name,\n      defaultValues,\n      disabled,\n      onValuesChange\n    );\n    const store = storeRef.current;\n\n    // Get store actions\n    const { setValues } = useStore(store, (s) => s);\n\n    // Call onValuesChange with initial values\n    useEffect(() => {\n      const currentValues = store.getState().values;\n      if (currentValues.length > 0 && onValuesChange) {\n        onValuesChange(currentValues);\n      }\n    }, []);\n\n    // Handle controlled values changes\n    useEffect(() => {\n      if (propValues !== undefined) {\n        setValues(propValues);\n      }\n    }, [propValues, setValues]);\n\n    // Update disabled state\n    useEffect(() => {\n      store.setState({ disabled });\n    }, [disabled, store]);\n\n    return (\n      <div\n        ref={ref}\n        className={cn('flex flex-col gap-2 w-full', className)}\n        aria-label={name}\n        {...props}\n      >\n        {injectStore(children, store)}\n      </div>\n    );\n  }\n);\n\nCheckboxList.displayName = 'CheckboxList';\n\n/**\n * CheckboxListItem component props interface\n */\nexport type CheckboxListItemProps = {\n  /** Value for this checkbox item */\n  value: string;\n  /** Store reference (automatically injected by CheckboxList) */\n  store?: CheckboxListStoreApi;\n  /** Disabled state for this specific item */\n  disabled?: boolean;\n  /** Size variant */\n  size?: CheckboxListSize;\n  /** Visual state */\n  state?: CheckboxListState;\n  /** Additional CSS classes */\n  className?: string;\n} & Omit<\n  InputHTMLAttributes<HTMLInputElement>,\n  'type' | 'name' | 'value' | 'checked' | 'onChange' | 'size'\n>;\n\n/**\n * CheckboxListItem component for use within CheckboxList\n *\n * A checkbox without label that works within CheckboxList context.\n * Provides just the checkbox input for maximum flexibility in composition.\n *\n * @example\n * ```tsx\n * <CheckboxList defaultValues={[\"option1\"]}>\n *   <div className=\"flex items-center gap-3\">\n *     <CheckboxListItem value=\"option1\" id=\"c1\" />\n *     <label htmlFor=\"c1\">Option 1</label>\n *   </div>\n * </CheckboxList>\n * ```\n */\nconst CheckboxListItem = forwardRef<HTMLInputElement, CheckboxListItemProps>(\n  (\n    {\n      value,\n      store: externalStore,\n      disabled: itemDisabled,\n      size = 'medium',\n      state = 'default',\n      className = '',\n      id,\n      ...props\n    },\n    ref\n  ) => {\n    // Get store and state\n    const store = useCheckboxListStore(externalStore);\n    const {\n      values: groupValues,\n      toggleValue,\n      disabled: groupDisabled,\n      name,\n    } = useStore(store);\n\n    // Generate unique ID if not provided\n    const generatedId = useId();\n    const inputId = id ?? `checkbox-item-${generatedId}`;\n\n    // Determine states\n    const isChecked = groupValues.includes(value);\n    const isDisabled = groupDisabled || itemDisabled;\n    const currentState = isDisabled ? 'disabled' : state;\n\n    // Use standard CheckBox component for consistency and simplicity\n    return (\n      <CheckBox\n        ref={ref}\n        id={inputId}\n        name={name}\n        value={value}\n        checked={isChecked}\n        disabled={isDisabled}\n        size={size}\n        state={currentState}\n        className={className}\n        onChange={() => {\n          if (!isDisabled) {\n            toggleValue(value);\n          }\n        }}\n        {...props}\n      />\n    );\n  }\n);\n\nCheckboxListItem.displayName = 'CheckboxListItem';\n\nexport default CheckboxList;\nexport { CheckboxListItem };\n"],"mappings":"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","names":["useEffect","jsx","useEffect"]}