@yamada-ui/checkbox
Version:
Yamada UI checkbox component
1 lines • 4.89 kB
Source Map (JSON)
{"version":3,"sources":["../src/checkbox-card-group.tsx"],"sourcesContent":["import type { ComponentArgs, ThemeProps } from \"@yamada-ui/core\"\nimport type { ForwardedRef, ReactElement, RefAttributes } from \"react\"\nimport type { CheckboxCardProps } from \"./checkbox-card\"\nimport type { CheckboxCardGroupContext } from \"./checkbox-context\"\nimport type { CheckboxGroupSharedProps } from \"./checkbox-group\"\nimport { useFormControl } from \"@yamada-ui/form-control\"\nimport { Flex } from \"@yamada-ui/layouts\"\nimport { cx, getValidChildren } from \"@yamada-ui/utils\"\nimport { forwardRef } from \"react\"\nimport { CheckboxCard } from \"./checkbox-card\"\nimport { CheckboxCardGroupProvider } from \"./checkbox-context\"\nimport { useCheckboxGroup } from \"./use-checkbox-group\"\n\nexport type CheckboxCardItem<Y extends number | string = string> =\n CheckboxCardProps<Y>\n\nexport interface CheckboxCardGroupProps<Y extends number | string = string>\n extends CheckboxGroupSharedProps<Y>,\n Pick<\n CheckboxCardProps,\n \"addonProps\" | \"descriptionProps\" | \"labelProps\" | \"withIcon\"\n >,\n ThemeProps<\"CheckboxCard\"> {\n /**\n * If provided, generate checkbox cards based on items.\n *\n * @default '[]'\n */\n items?: CheckboxCardItem<Y>[]\n}\n\n/**\n * `CheckboxCardGroup` is a component that groups `CheckboxCard` components.\n *\n * @see Docs https://yamada-ui.com/components/forms/checkbox-card\n */\nexport const CheckboxCardGroup = forwardRef(\n <Y extends number | string = string>(\n {\n className,\n colorScheme,\n size,\n variant,\n children,\n direction = \"row\",\n gap = \"0.5rem\",\n items = [],\n withIcon = true,\n addonProps,\n descriptionProps,\n labelProps,\n ...props\n }: CheckboxCardGroupProps<Y>,\n ref: ForwardedRef<HTMLDivElement>,\n ) => {\n const {\n props: computedProps,\n value,\n getContainerProps,\n onChange,\n } = useCheckboxGroup<Y>(props)\n const {\n disabled,\n invalid,\n isDisabled: _isDisabled,\n isInvalid: _isInvalid,\n isReadOnly: _isReadOnly,\n isRequired: _isRequired,\n labelId,\n readOnly,\n required,\n ...rest\n } = useFormControl(computedProps)\n const validChildren = getValidChildren(children)\n\n let computedChildren: ReactElement[] = []\n\n if (!validChildren.length && items.length)\n computedChildren = items.map((props, i) => (\n <CheckboxCard key={i} {...props} />\n ))\n\n return (\n <CheckboxCardGroupProvider\n value={\n {\n colorScheme,\n size,\n variant,\n disabled,\n invalid,\n readOnly,\n required,\n value,\n withIcon,\n addonProps,\n descriptionProps,\n labelProps,\n onChange,\n } as CheckboxCardGroupContext\n }\n >\n <Flex\n ref={ref}\n className={cx(\"ui-checkbox-card-group\", className)}\n gap={gap}\n w=\"100%\"\n {...getContainerProps({\n \"aria-labelledby\": labelId,\n ...rest,\n })}\n direction={direction}\n >\n {children ?? computedChildren}\n </Flex>\n </CheckboxCardGroupProvider>\n )\n },\n) as {\n <Y extends number | string = string>(\n props: CheckboxCardGroupProps<Y> & RefAttributes<HTMLDivElement>,\n ): ReactElement\n} & ComponentArgs\n\nCheckboxCardGroup.displayName = \"CheckboxCardGroup\"\nCheckboxCardGroup.__ui__ = \"CheckboxCardGroup\"\n"],"mappings":";;;;;;;;;;;;AAKA,SAAS,sBAAsB;AAC/B,SAAS,YAAY;AACrB,SAAS,IAAI,wBAAwB;AACrC,SAAS,kBAAkB;AAuEnB;AA3CD,IAAM,oBAAoB;AAAA,EAC/B,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ,MAAM;AAAA,IACN,QAAQ,CAAC;AAAA,IACT,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM;AAAA,MACJ,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,IACF,IAAI,iBAAoB,KAAK;AAC7B,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA,YAAY;AAAA,MACZ,WAAW;AAAA,MACX,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACL,IAAI,eAAe,aAAa;AAChC,UAAM,gBAAgB,iBAAiB,QAAQ;AAE/C,QAAI,mBAAmC,CAAC;AAExC,QAAI,CAAC,cAAc,UAAU,MAAM;AACjC,yBAAmB,MAAM,IAAI,CAACA,QAAO,MACnC,oBAAC,gBAAsB,GAAGA,UAAP,CAAc,CAClC;AAEH,WACE;AAAA,MAAC;AAAA;AAAA,QACC,OACE;AAAA,UACE;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QAGF;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA,WAAW,GAAG,0BAA0B,SAAS;AAAA,YACjD;AAAA,YACA,GAAE;AAAA,YACD,GAAG,kBAAkB;AAAA,cACpB,mBAAmB;AAAA,cACnB,GAAG;AAAA,YACL,CAAC;AAAA,YACD;AAAA,YAEC,wCAAY;AAAA;AAAA,QACf;AAAA;AAAA,IACF;AAAA,EAEJ;AACF;AAMA,kBAAkB,cAAc;AAChC,kBAAkB,SAAS;","names":["props"]}