@yamada-ui/react 2.2.8-dev-20260901015546 → 2.2.8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"action-bar.cjs","names":["createSlotComponent","actionBarStyle","useValue","useSplitChildren","useActionBar","useMemo","AnimatePresence","Portal","styled","usePopupAnimationProps","motion"],"sources":["../../../../src/components/action-bar/action-bar.tsx"],"sourcesContent":["\"use client\"\n\nimport type { PropsWithChildren, ReactNode } from \"react\"\nimport type { HTMLProps, HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { HTMLMotionPropsWithoutAs } from \"../motion\"\nimport type { UsePopupAnimationProps } from \"../popover\"\nimport type { ActionBarStyle } from \"./action-bar.style\"\nimport type { UseActionBarProps, UseActionBarReturn } from \"./use-action-bar\"\nimport { AnimatePresence } from \"motion/react\"\nimport { useMemo } from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { useValue } from \"../../hooks/use-value\"\nimport { cast, useSplitChildren } from \"../../utils\"\nimport { motion } from \"../motion\"\nimport { usePopupAnimationProps } from \"../popover\"\nimport { Portal, type PortalProps } from \"../portal\"\nimport { actionBarStyle } from \"./action-bar.style\"\nimport { useActionBar } from \"./use-action-bar\"\n\ninterface ComponentContext\n extends\n Pick<\n UseActionBarReturn,\n \"getCloseTriggerProps\" | \"getContentProps\" | \"getOpenTriggerProps\"\n >,\n Pick<ActionBarRootProps, \"animationScheme\" | \"duration\"> {}\n\nexport interface ActionBarRootProps\n extends\n Omit<HTMLStyledProps, \"content\">,\n ThemeProps<ActionBarStyle>,\n UseActionBarProps,\n UsePopupAnimationProps {\n /**\n * The action bar content to use.\n */\n content?: ReactNode\n /**\n * The action bar trigger to use.\n */\n trigger?: ReactNode\n /**\n * Props to be forwarded to the portal component.\n */\n portalProps?: Omit<PortalProps, \"children\">\n /**\n * Callback function to run side effects after the action bar has closed.\n */\n onCloseComplete?: () => void\n}\n\nconst {\n ComponentContext,\n PropsContext: ActionBarPropsContext,\n useComponentContext,\n usePropsContext: useActionBarPropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<ActionBarRootProps, ActionBarStyle, ComponentContext>(\n \"action-bar\",\n actionBarStyle,\n)\n\nexport { ActionBarPropsContext, useActionBarPropsContext }\n\n/**\n * `ActionBar` is a component that is used to display a bottom action bar with a set of actions.\n *\n * @see https://yamada-ui.com/docs/components/action-bar\n */\nexport const ActionBarRoot = withProvider<\n \"div\",\n ActionBarRootProps,\n \"placement\"\n>(\n ({\n animationScheme,\n children,\n content: contentProp,\n duration,\n placement: placementProp,\n trigger,\n portalProps,\n onCloseComplete,\n ...rest\n }) => {\n const placement = useValue(placementProp)\n\n animationScheme ??= placement?.startsWith(\"start\")\n ? \"block-start\"\n : \"block-end\"\n\n const [omittedChildren, openTrigger, content] = useSplitChildren(\n children,\n ActionBarOpenTrigger,\n ActionBarContent,\n )\n const {\n open,\n getCloseTriggerProps,\n getContentProps,\n getOpenTriggerProps,\n getRootProps,\n } = useActionBar(rest)\n const customOpenTrigger = trigger ? (\n <ActionBarOpenTrigger>{trigger}</ActionBarOpenTrigger>\n ) : null\n const customContent = contentProp ? (\n <ActionBarContent>{contentProp}</ActionBarContent>\n ) : null\n const context = useMemo(\n () => ({\n animationScheme,\n duration,\n getCloseTriggerProps,\n getContentProps,\n getOpenTriggerProps,\n }),\n [\n animationScheme,\n duration,\n getCloseTriggerProps,\n getContentProps,\n getOpenTriggerProps,\n ],\n )\n\n return (\n <ComponentContext value={context}>\n {openTrigger ?? customOpenTrigger}\n\n <AnimatePresence onExitComplete={onCloseComplete}>\n {open ? (\n <Portal {...portalProps}>\n <styled.div {...getRootProps()}>\n {content ?? customContent ?? omittedChildren}\n </styled.div>\n </Portal>\n ) : null}\n </AnimatePresence>\n </ComponentContext>\n )\n },\n \"root\",\n { transferProps: [\"placement\"] },\n)()\n\nexport interface ActionBarOpenTriggerProps extends HTMLStyledProps<\"button\"> {}\n\nexport const ActionBarOpenTrigger = withContext<\n \"button\",\n ActionBarOpenTriggerProps\n>(\"button\", { name: \"OpenTrigger\", slot: [\"trigger\", \"open\"] })(\n undefined,\n (props) => {\n const { getOpenTriggerProps } = useComponentContext()\n\n return { asChild: true, ...getOpenTriggerProps(props) }\n },\n)\n\nexport interface ActionBarCloseTriggerProps extends HTMLStyledProps<\"button\"> {}\n\nexport const ActionBarCloseTrigger = withContext<\n \"button\",\n ActionBarCloseTriggerProps\n>(\"button\", { name: \"CloseTrigger\", slot: [\"trigger\", \"close\"] })(\n undefined,\n (props) => {\n const { getCloseTriggerProps } = useComponentContext()\n\n return { asChild: true, ...getCloseTriggerProps(props) }\n },\n)\n\nexport interface ActionBarContentProps\n extends Omit<HTMLStyledProps<\"section\">, \"children\">, PropsWithChildren {}\n\nexport const ActionBarContent = withContext<\"section\", ActionBarContentProps>(\n (props) => {\n const { animationScheme, duration, getContentProps } = useComponentContext()\n const popupAnimationProps = usePopupAnimationProps({\n animationScheme,\n duration,\n })\n\n return (\n <motion.section\n {...popupAnimationProps}\n {...cast<HTMLMotionPropsWithoutAs<\"section\">>(\n getContentProps(cast<HTMLProps<\"section\">>(props)),\n )}\n />\n )\n },\n \"content\",\n)()\n\nexport interface ActionBarSeparatorProps extends HTMLStyledProps {}\n\nexport const ActionBarSeparator = withContext<\"div\", ActionBarSeparatorProps>(\n \"div\",\n \"separator\",\n)()\n"],"mappings":";;;;;;;;;;;;;;;;AAmDA,MAAM,EACJ,kBACA,cAAc,uBACd,qBACA,iBAAiB,0BACjB,aACA,iBACEA,yBAAAA,oBACF,cACAC,yBAAAA,cACF;;;;;;AASA,MAAa,gBAAgB,cAK1B,EACC,iBACA,UACA,SAAS,aACT,UACA,WAAW,eACX,SACA,aACA,iBACA,GAAG,WACC;CACJ,MAAM,YAAYC,8BAAAA,SAAS,aAAa;CAExC,oBAAoB,WAAW,WAAW,OAAO,IAC7C,gBACA;CAEJ,MAAM,CAAC,iBAAiB,aAAa,WAAWC,iBAAAA,iBAC9C,UACA,sBACA,gBACF;CACA,MAAM,EACJ,MACA,sBACA,iBACA,qBACA,iBACEC,uBAAAA,aAAa,IAAI;CACrB,MAAM,oBAAoB,UACxB,iBAAA,GAAA,kBAAA,IAAA,CAAC,sBAAD,EAAA,UAAuB,QAA8B,CAAA,IACnD;CACJ,MAAM,gBAAgB,cACpB,iBAAA,GAAA,kBAAA,IAAA,CAAC,kBAAD,EAAA,UAAmB,YAA8B,CAAA,IAC/C;CACJ,MAAM,WAAA,GAAUC,MAAAA,QAAAA,QACP;EACL;EACA;EACA;EACA;EACA;CACF,IACA;EACE;EACA;EACA;EACA;EACA;CACF,CACF;CAEA,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,kBAAD;EAAkB,OAAO;EAAzB,UAAA,CACG,eAAe,mBAEhB,iBAAA,GAAA,kBAAA,IAAA,CAACC,aAAAA,iBAAD;GAAiB,gBAAgB;GAC9B,UAAA,OACC,iBAAA,GAAA,kBAAA,IAAA,CAACC,eAAAA,QAAD;IAAQ,GAAI;IACV,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,gBAAAA,OAAO,KAAR;KAAY,GAAI,aAAa;KAC1B,UAAA,WAAW,iBAAiB;IACnB,CAAA;GACN,CAAA,IACN;EACW,CAAA,CACD;;AAEtB,GACA,QACA,EAAE,eAAe,CAAC,WAAW,EAAE,CACjC,CAAC,CAAC;AAIF,MAAa,uBAAuB,YAGlC,UAAU;CAAE,MAAM;CAAe,MAAM,CAAC,WAAW,MAAM;AAAE,CAAC,CAAC,CAC7D,KAAA,IACC,UAAU;CACT,MAAM,EAAE,wBAAwB,oBAAoB;CAEpD,OAAO;EAAE,SAAS;EAAM,GAAG,oBAAoB,KAAK;CAAE;AACxD,CACF;AAIA,MAAa,wBAAwB,YAGnC,UAAU;CAAE,MAAM;CAAgB,MAAM,CAAC,WAAW,OAAO;AAAE,CAAC,CAAC,CAC/D,KAAA,IACC,UAAU;CACT,MAAM,EAAE,yBAAyB,oBAAoB;CAErD,OAAO;EAAE,SAAS;EAAM,GAAG,qBAAqB,KAAK;CAAE;AACzD,CACF;AAKA,MAAa,mBAAmB,aAC7B,UAAU;CACT,MAAM,EAAE,iBAAiB,UAAU,oBAAoB,oBAAoB;CAC3E,MAAM,sBAAsBC,gBAAAA,uBAAuB;EACjD;EACA;CACF,CAAC;CAED,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,kBAAAA,OAAO,SAAR;EACE,GAAI;EACJ,IAAA,GAAA,oBAAA,cAAI,KAAA,CACF,iBAAA,GAAA,oBAAA,cAAgB,KAAA,CAA2B,KAAK,CAAC,CACnD;CACD,CAAA;AAEL,GACA,SACF,CAAC,CAAC;AAIF,MAAa,qBAAqB,YAChC,OACA,WACF,CAAC,CAAC"}
1
+ {"version":3,"file":"action-bar.cjs","names":["createSlotComponent","actionBarStyle","useValue","useSplitChildren","useActionBar","useMemo","AnimatePresence","Portal","styled","usePopupAnimationProps","motion"],"sources":["../../../../src/components/action-bar/action-bar.tsx"],"sourcesContent":["\"use client\"\n\nimport type { PropsWithChildren, ReactNode } from \"react\"\nimport type { HTMLProps, HTMLStyledProps, ThemeProps } from \"../../core\"\nimport type { HTMLMotionPropsWithoutAs } from \"../motion\"\nimport type { UsePopupAnimationProps } from \"../popover\"\nimport type { PortalProps } from \"../portal\"\nimport type { ActionBarStyle } from \"./action-bar.style\"\nimport type { UseActionBarProps, UseActionBarReturn } from \"./use-action-bar\"\nimport { AnimatePresence } from \"motion/react\"\nimport { useMemo } from \"react\"\nimport { createSlotComponent, styled } from \"../../core\"\nimport { useValue } from \"../../hooks/use-value\"\nimport { cast, useSplitChildren } from \"../../utils\"\nimport { motion } from \"../motion\"\nimport { usePopupAnimationProps } from \"../popover\"\nimport { Portal } from \"../portal\"\nimport { actionBarStyle } from \"./action-bar.style\"\nimport { useActionBar } from \"./use-action-bar\"\n\ninterface ComponentContext\n extends\n Pick<\n UseActionBarReturn,\n \"getCloseTriggerProps\" | \"getContentProps\" | \"getOpenTriggerProps\"\n >,\n Pick<ActionBarRootProps, \"animationScheme\" | \"duration\"> {}\n\nexport interface ActionBarRootProps\n extends\n Omit<HTMLStyledProps, \"content\">,\n ThemeProps<ActionBarStyle>,\n UseActionBarProps,\n UsePopupAnimationProps {\n /**\n * The action bar content to use.\n */\n content?: ReactNode\n /**\n * The action bar trigger to use.\n */\n trigger?: ReactNode\n /**\n * Props to be forwarded to the portal component.\n */\n portalProps?: Omit<PortalProps, \"children\">\n /**\n * Callback function to run side effects after the action bar has closed.\n */\n onCloseComplete?: () => void\n}\n\nconst {\n ComponentContext,\n PropsContext: ActionBarPropsContext,\n useComponentContext,\n usePropsContext: useActionBarPropsContext,\n withContext,\n withProvider,\n} = createSlotComponent<ActionBarRootProps, ActionBarStyle, ComponentContext>(\n \"action-bar\",\n actionBarStyle,\n)\n\nexport { ActionBarPropsContext, useActionBarPropsContext }\n\n/**\n * `ActionBar` is a component that is used to display a bottom action bar with a set of actions.\n *\n * @see https://yamada-ui.com/docs/components/action-bar\n */\nexport const ActionBarRoot = withProvider<\n \"div\",\n ActionBarRootProps,\n \"placement\"\n>(\n ({\n animationScheme,\n children,\n content: contentProp,\n duration,\n placement: placementProp,\n trigger,\n portalProps,\n onCloseComplete,\n ...rest\n }) => {\n const placement = useValue(placementProp)\n\n animationScheme ??= placement?.startsWith(\"start\")\n ? \"block-start\"\n : \"block-end\"\n\n const [omittedChildren, openTrigger, content] = useSplitChildren(\n children,\n ActionBarOpenTrigger,\n ActionBarContent,\n )\n const {\n open,\n getCloseTriggerProps,\n getContentProps,\n getOpenTriggerProps,\n getRootProps,\n } = useActionBar(rest)\n const customOpenTrigger = trigger ? (\n <ActionBarOpenTrigger>{trigger}</ActionBarOpenTrigger>\n ) : null\n const customContent = contentProp ? (\n <ActionBarContent>{contentProp}</ActionBarContent>\n ) : null\n const context = useMemo(\n () => ({\n animationScheme,\n duration,\n getCloseTriggerProps,\n getContentProps,\n getOpenTriggerProps,\n }),\n [\n animationScheme,\n duration,\n getCloseTriggerProps,\n getContentProps,\n getOpenTriggerProps,\n ],\n )\n\n return (\n <ComponentContext value={context}>\n {openTrigger ?? customOpenTrigger}\n\n <AnimatePresence onExitComplete={onCloseComplete}>\n {open ? (\n <Portal {...portalProps}>\n <styled.div {...getRootProps()}>\n {content ?? customContent ?? omittedChildren}\n </styled.div>\n </Portal>\n ) : null}\n </AnimatePresence>\n </ComponentContext>\n )\n },\n \"root\",\n { transferProps: [\"placement\"] },\n)()\n\nexport interface ActionBarOpenTriggerProps extends HTMLStyledProps<\"button\"> {}\n\nexport const ActionBarOpenTrigger = withContext<\n \"button\",\n ActionBarOpenTriggerProps\n>(\"button\", { name: \"OpenTrigger\", slot: [\"trigger\", \"open\"] })(\n undefined,\n (props) => {\n const { getOpenTriggerProps } = useComponentContext()\n\n return { asChild: true, ...getOpenTriggerProps(props) }\n },\n)\n\nexport interface ActionBarCloseTriggerProps extends HTMLStyledProps<\"button\"> {}\n\nexport const ActionBarCloseTrigger = withContext<\n \"button\",\n ActionBarCloseTriggerProps\n>(\"button\", { name: \"CloseTrigger\", slot: [\"trigger\", \"close\"] })(\n undefined,\n (props) => {\n const { getCloseTriggerProps } = useComponentContext()\n\n return { asChild: true, ...getCloseTriggerProps(props) }\n },\n)\n\nexport interface ActionBarContentProps\n extends Omit<HTMLStyledProps<\"section\">, \"children\">, PropsWithChildren {}\n\nexport const ActionBarContent = withContext<\"section\", ActionBarContentProps>(\n (props) => {\n const { animationScheme, duration, getContentProps } = useComponentContext()\n const popupAnimationProps = usePopupAnimationProps({\n animationScheme,\n duration,\n })\n\n return (\n <motion.section\n {...popupAnimationProps}\n {...cast<HTMLMotionPropsWithoutAs<\"section\">>(\n getContentProps(cast<HTMLProps<\"section\">>(props)),\n )}\n />\n )\n },\n \"content\",\n)()\n\nexport interface ActionBarSeparatorProps extends HTMLStyledProps {}\n\nexport const ActionBarSeparator = withContext<\"div\", ActionBarSeparatorProps>(\n \"div\",\n \"separator\",\n)()\n"],"mappings":";;;;;;;;;;;;;;;;AAoDA,MAAM,EACJ,kBACA,cAAc,uBACd,qBACA,iBAAiB,0BACjB,aACA,iBACEA,yBAAAA,oBACF,cACAC,yBAAAA,cACF;;;;;;AASA,MAAa,gBAAgB,cAK1B,EACC,iBACA,UACA,SAAS,aACT,UACA,WAAW,eACX,SACA,aACA,iBACA,GAAG,WACC;CACJ,MAAM,YAAYC,8BAAAA,SAAS,aAAa;CAExC,oBAAoB,WAAW,WAAW,OAAO,IAC7C,gBACA;CAEJ,MAAM,CAAC,iBAAiB,aAAa,WAAWC,iBAAAA,iBAC9C,UACA,sBACA,gBACF;CACA,MAAM,EACJ,MACA,sBACA,iBACA,qBACA,iBACEC,uBAAAA,aAAa,IAAI;CACrB,MAAM,oBAAoB,UACxB,iBAAA,GAAA,kBAAA,IAAA,CAAC,sBAAD,EAAA,UAAuB,QAA8B,CAAA,IACnD;CACJ,MAAM,gBAAgB,cACpB,iBAAA,GAAA,kBAAA,IAAA,CAAC,kBAAD,EAAA,UAAmB,YAA8B,CAAA,IAC/C;CACJ,MAAM,WAAA,GAAUC,MAAAA,QAAAA,QACP;EACL;EACA;EACA;EACA;EACA;CACF,IACA;EACE;EACA;EACA;EACA;EACA;CACF,CACF;CAEA,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,kBAAD;EAAkB,OAAO;EAAzB,UAAA,CACG,eAAe,mBAEhB,iBAAA,GAAA,kBAAA,IAAA,CAACC,aAAAA,iBAAD;GAAiB,gBAAgB;GAC9B,UAAA,OACC,iBAAA,GAAA,kBAAA,IAAA,CAACC,eAAAA,QAAD;IAAQ,GAAI;IACV,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAACC,gBAAAA,OAAO,KAAR;KAAY,GAAI,aAAa;KAC1B,UAAA,WAAW,iBAAiB;IACnB,CAAA;GACN,CAAA,IACN;EACW,CAAA,CACD;;AAEtB,GACA,QACA,EAAE,eAAe,CAAC,WAAW,EAAE,CACjC,CAAC,CAAC;AAIF,MAAa,uBAAuB,YAGlC,UAAU;CAAE,MAAM;CAAe,MAAM,CAAC,WAAW,MAAM;AAAE,CAAC,CAAC,CAC7D,KAAA,IACC,UAAU;CACT,MAAM,EAAE,wBAAwB,oBAAoB;CAEpD,OAAO;EAAE,SAAS;EAAM,GAAG,oBAAoB,KAAK;CAAE;AACxD,CACF;AAIA,MAAa,wBAAwB,YAGnC,UAAU;CAAE,MAAM;CAAgB,MAAM,CAAC,WAAW,OAAO;AAAE,CAAC,CAAC,CAC/D,KAAA,IACC,UAAU;CACT,MAAM,EAAE,yBAAyB,oBAAoB;CAErD,OAAO;EAAE,SAAS;EAAM,GAAG,qBAAqB,KAAK;CAAE;AACzD,CACF;AAKA,MAAa,mBAAmB,aAC7B,UAAU;CACT,MAAM,EAAE,iBAAiB,UAAU,oBAAoB,oBAAoB;CAC3E,MAAM,sBAAsBC,gBAAAA,uBAAuB;EACjD;EACA;CACF,CAAC;CAED,OACE,iBAAA,GAAA,kBAAA,IAAA,CAACC,kBAAAA,OAAO,SAAR;EACE,GAAI;EACJ,IAAA,GAAA,oBAAA,cAAI,KAAA,CACF,iBAAA,GAAA,oBAAA,cAAgB,KAAA,CAA2B,KAAK,CAAC,CACnD;CACD,CAAA;AAEL,GACA,SACF,CAAC,CAAC;AAIF,MAAa,qBAAqB,YAChC,OACA,WACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-action-bar.cjs","names":["useEnvironment","useDisclosure","useIds","useI18n","useCallback","mergeProps"],"sources":["../../../../src/components/action-bar/use-action-bar.ts"],"sourcesContent":["\"use client\"\n\nimport type { HTMLProps, PropGetter } from \"../../core\"\nimport { useCallback } from \"react\"\nimport { mergeProps, useEnvironment } from \"../../core\"\nimport {\n useDisclosure,\n type UseDisclosureProps,\n} from \"../../hooks/use-disclosure\"\nimport { useEventListener } from \"../../hooks/use-event-listener\"\nimport { useI18n } from \"../../providers/i18n-provider\"\nimport { handlerAll, useIds } from \"../../utils\"\n\nexport interface UseActionBarProps\n extends HTMLProps, Omit<UseDisclosureProps, \"timing\"> {\n /**\n * If `true`, the action bar will close when the `Esc` key is pressed.\n *\n * @default true\n */\n closeOnEsc?: boolean\n}\n\nexport const useActionBar = ({\n closeOnEsc = true,\n defaultOpen,\n open: openProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n ...rest\n}: UseActionBarProps = {}) => {\n const { getDocument } = useEnvironment()\n const { open, onClose, onOpen } = useDisclosure({\n defaultOpen,\n open: openProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n })\n const [contentId] = useIds()\n const { t } = useI18n(\"actionBar\")\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent) => {\n if (ev.key !== \"Escape\") return\n\n if (!closeOnEsc) return\n\n ev.stopPropagation()\n onClose()\n },\n [closeOnEsc, onClose],\n )\n\n useEventListener(getDocument(), \"keydown\", onKeyDown)\n\n const getRootProps: PropGetter = useCallback(\n (props = {}) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getOpenTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n \"aria-controls\": open ? contentId : undefined,\n \"aria-expanded\": open,\n \"aria-haspopup\": \"dialog\",\n \"aria-label\": t(\"Open action bar\"),\n ...props,\n onClick: handlerAll(props.onClick, onOpen),\n }),\n [contentId, onOpen, open, t],\n )\n\n const getCloseTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n \"aria-label\": t(\"Close action bar\"),\n ...props,\n onClick: handlerAll(props.onClick, onClose),\n }),\n [onClose, t],\n )\n\n const getContentProps: PropGetter<\"section\"> = useCallback(\n (props = {}) => ({\n id: contentId,\n role: \"dialog\",\n ...props,\n }),\n [contentId],\n )\n\n return {\n open,\n getCloseTriggerProps,\n getContentProps,\n getOpenTriggerProps,\n getRootProps,\n onClose,\n onOpen,\n }\n}\n\nexport type UseActionBarReturn = ReturnType<typeof useActionBar>\n"],"mappings":";;;;;;;;;;;AAuBA,MAAa,gBAAgB,EAC3B,aAAa,MACb,aACA,MAAM,UACN,SAAS,aACT,QAAQ,YACR,GAAG,SACkB,CAAC,MAAM;CAC5B,MAAM,EAAE,gBAAgBA,6BAAAA,eAAe;CACvC,MAAM,EAAE,MAAM,SAAS,WAAWC,uBAAAA,cAAc;EAC9C;EACA,MAAM;EACN,SAAS;EACT,QAAQ;CACV,CAAC;CACD,MAAM,CAAC,aAAaC,YAAAA,OAAO;CAC3B,MAAM,EAAE,MAAMC,sBAAAA,QAAQ,WAAW;CAEjC,MAAM,aAAA,GAAYC,MAAAA,YAAAA,EACf,OAAsB;EACrB,IAAI,GAAG,QAAQ,UAAU;EAEzB,IAAI,CAAC,YAAY;EAEjB,GAAG,gBAAgB;EACnB,QAAQ;CACV,GACA,CAAC,YAAY,OAAO,CACtB;CAEA,uCAAA,iBAAiB,YAAY,GAAG,WAAW,SAAS;CAEpD,MAAM,gBAAA,GAA2BA,MAAAA,YAAAA,EAC9B,QAAQ,CAAC,MAAMC,cAAAA,WAAW,MAAM,KAAK,CAAC,CAAC,GACxC,CAAC,IAAI,CACP;CAEA,MAAM,uBAAA,GAA4CD,MAAAA,YAAAA,EAC/C,QAAQ,CAAC,OAAO;EACf,iBAAiB,OAAO,YAAY,KAAA;EACpC,iBAAiB;EACjB,iBAAiB;EACjB,cAAc,EAAE,iBAAiB;EACjC,GAAG;EACH,UAAA,GAAA,oBAAA,cAAS,WAAA,CAAW,MAAM,SAAS,MAAM;CAC3C,IACA;EAAC;EAAW;EAAQ;EAAM;CAAC,CAC7B;CAoBA,OAAO;EACL;EACA,uBAAA,GApBiDA,MAAAA,YAAAA,EAChD,QAAQ,CAAC,OAAO;GACf,cAAc,EAAE,kBAAkB;GAClC,GAAG;GACH,UAAA,GAAA,oBAAA,cAAS,WAAA,CAAW,MAAM,SAAS,OAAO;EAC5C,IACA,CAAC,SAAS,CAAC,CAcQ;EACnB,kBAAA,GAZ6CA,MAAAA,YAAAA,EAC5C,QAAQ,CAAC,OAAO;GACf,IAAI;GACJ,MAAM;GACN,GAAG;EACL,IACA,CAAC,SAAS,CAMI;EACd;EACA;EACA;EACA;CACF;AACF"}
1
+ {"version":3,"file":"use-action-bar.cjs","names":["useEnvironment","useDisclosure","useIds","useI18n","useCallback","mergeProps"],"sources":["../../../../src/components/action-bar/use-action-bar.ts"],"sourcesContent":["\"use client\"\n\nimport type { HTMLProps, PropGetter } from \"../../core\"\nimport type { UseDisclosureProps } from \"../../hooks/use-disclosure\"\nimport { useCallback } from \"react\"\nimport { mergeProps, useEnvironment } from \"../../core\"\nimport { useDisclosure } from \"../../hooks/use-disclosure\"\nimport { useEventListener } from \"../../hooks/use-event-listener\"\nimport { useI18n } from \"../../providers/i18n-provider\"\nimport { handlerAll, useIds } from \"../../utils\"\n\nexport interface UseActionBarProps\n extends HTMLProps, Omit<UseDisclosureProps, \"timing\"> {\n /**\n * If `true`, the action bar will close when the `Esc` key is pressed.\n *\n * @default true\n */\n closeOnEsc?: boolean\n}\n\nexport const useActionBar = ({\n closeOnEsc = true,\n defaultOpen,\n open: openProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n ...rest\n}: UseActionBarProps = {}) => {\n const { getDocument } = useEnvironment()\n const { open, onClose, onOpen } = useDisclosure({\n defaultOpen,\n open: openProp,\n onClose: onCloseProp,\n onOpen: onOpenProp,\n })\n const [contentId] = useIds()\n const { t } = useI18n(\"actionBar\")\n\n const onKeyDown = useCallback(\n (ev: KeyboardEvent) => {\n if (ev.key !== \"Escape\") return\n\n if (!closeOnEsc) return\n\n ev.stopPropagation()\n onClose()\n },\n [closeOnEsc, onClose],\n )\n\n useEventListener(getDocument(), \"keydown\", onKeyDown)\n\n const getRootProps: PropGetter = useCallback(\n (props = {}) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getOpenTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n \"aria-controls\": open ? contentId : undefined,\n \"aria-expanded\": open,\n \"aria-haspopup\": \"dialog\",\n \"aria-label\": t(\"Open action bar\"),\n ...props,\n onClick: handlerAll(props.onClick, onOpen),\n }),\n [contentId, onOpen, open, t],\n )\n\n const getCloseTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n \"aria-label\": t(\"Close action bar\"),\n ...props,\n onClick: handlerAll(props.onClick, onClose),\n }),\n [onClose, t],\n )\n\n const getContentProps: PropGetter<\"section\"> = useCallback(\n (props = {}) => ({\n id: contentId,\n role: \"dialog\",\n ...props,\n }),\n [contentId],\n )\n\n return {\n open,\n getCloseTriggerProps,\n getContentProps,\n getOpenTriggerProps,\n getRootProps,\n onClose,\n onOpen,\n }\n}\n\nexport type UseActionBarReturn = ReturnType<typeof useActionBar>\n"],"mappings":";;;;;;;;;;;AAqBA,MAAa,gBAAgB,EAC3B,aAAa,MACb,aACA,MAAM,UACN,SAAS,aACT,QAAQ,YACR,GAAG,SACkB,CAAC,MAAM;CAC5B,MAAM,EAAE,gBAAgBA,6BAAAA,eAAe;CACvC,MAAM,EAAE,MAAM,SAAS,WAAWC,uBAAAA,cAAc;EAC9C;EACA,MAAM;EACN,SAAS;EACT,QAAQ;CACV,CAAC;CACD,MAAM,CAAC,aAAaC,YAAAA,OAAO;CAC3B,MAAM,EAAE,MAAMC,sBAAAA,QAAQ,WAAW;CAEjC,MAAM,aAAA,GAAYC,MAAAA,YAAAA,EACf,OAAsB;EACrB,IAAI,GAAG,QAAQ,UAAU;EAEzB,IAAI,CAAC,YAAY;EAEjB,GAAG,gBAAgB;EACnB,QAAQ;CACV,GACA,CAAC,YAAY,OAAO,CACtB;CAEA,uCAAA,iBAAiB,YAAY,GAAG,WAAW,SAAS;CAEpD,MAAM,gBAAA,GAA2BA,MAAAA,YAAAA,EAC9B,QAAQ,CAAC,MAAMC,cAAAA,WAAW,MAAM,KAAK,CAAC,CAAC,GACxC,CAAC,IAAI,CACP;CAEA,MAAM,uBAAA,GAA4CD,MAAAA,YAAAA,EAC/C,QAAQ,CAAC,OAAO;EACf,iBAAiB,OAAO,YAAY,KAAA;EACpC,iBAAiB;EACjB,iBAAiB;EACjB,cAAc,EAAE,iBAAiB;EACjC,GAAG;EACH,UAAA,GAAA,oBAAA,cAAS,WAAA,CAAW,MAAM,SAAS,MAAM;CAC3C,IACA;EAAC;EAAW;EAAQ;EAAM;CAAC,CAC7B;CAoBA,OAAO;EACL;EACA,uBAAA,GApBiDA,MAAAA,YAAAA,EAChD,QAAQ,CAAC,OAAO;GACf,cAAc,EAAE,kBAAkB;GAClC,GAAG;GACH,UAAA,GAAA,oBAAA,cAAS,WAAA,CAAW,MAAM,SAAS,OAAO;EAC5C,IACA,CAAC,SAAS,CAAC,CAcQ;EACnB,kBAAA,GAZ6CA,MAAAA,YAAAA,EAC5C,QAAQ,CAAC,OAAO;GACf,IAAI;GACJ,MAAM;GACN,GAAG;EACL,IACA,CAAC,SAAS,CAMI;EACd;EACA;EACA;EACA;CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-avatar.cjs","names":["useRef","useState","useI18n","useCallback","mergeProps","mergeRefs"],"sources":["../../../../src/components/avatar/use-avatar.ts"],"sourcesContent":["\"use client\"\n\nimport type { ReactElement, ReactNode } from \"react\"\nimport { useCallback, useEffect, useRef, useState } from \"react\"\nimport { type HTMLProps, mergeProps, type PropGetter } from \"../../core\"\nimport { useI18n } from \"../../providers/i18n-provider\"\nimport { dataAttr, handlerAll, mergeRefs } from \"../../utils\"\n\nconst defaultFormat = (name: string) => {\n const names = name.trim().split(\" \")\n const firstName = names[0] ?? \"\"\n const lastName = names.length > 1 ? names[names.length - 1] : \"\"\n\n return firstName && lastName\n ? `${firstName.charAt(0)}${lastName.charAt(0)}`\n : firstName.charAt(0)\n}\n\nexport interface UseAvatarProps extends HTMLProps {\n /**\n * The `HTMLImageElement` property `alt`.\n */\n alt?: HTMLProps<\"img\">[\"alt\"]\n /**\n * The `HTMLImageElement` property `crossOrigin`.\n */\n crossOrigin?: HTMLProps<\"img\">[\"crossOrigin\"]\n /**\n * The fallback text to display if the image is not provided.\n */\n fallback?: ReactNode\n /**\n * The avatar icon to use.\n */\n icon?: ReactElement\n /**\n * Defines loading strategy.\n */\n loading?: HTMLProps<\"img\">[\"loading\"]\n /**\n * The name of the person in the avatar.\n *\n * - If `src` has loaded, the name will be used as the `alt` attribute of the `img`\n * - If `src` is not loaded, the name will be used to create the initials\n */\n name?: string\n /**\n * Defining which referrer is sent when fetching the resource.\n *\n * @default 'no-referrer'\n */\n referrerPolicy?: HTMLProps<\"img\">[\"referrerPolicy\"]\n /**\n * The image url of the avatar.\n */\n src?: HTMLProps<\"img\">[\"src\"]\n /**\n * List of sources to use for different screen resolutions.\n */\n srcSet?: HTMLProps<\"img\">[\"srcSet\"]\n /**\n * Function to get the initials to display.\n */\n format?: (name: string) => string\n}\n\nexport const useAvatar = ({\n name,\n src,\n srcSet,\n alt,\n crossOrigin,\n fallback: fallbackMessage,\n format = defaultFormat,\n icon,\n loading,\n referrerPolicy = \"no-referrer\",\n ...rest\n}: UseAvatarProps = {}) => {\n const imageRef = useRef<HTMLImageElement>(null)\n const initials = name ? format(name) : undefined\n const [loaded, setLoaded] = useState<boolean>(false)\n const fallback = !src || !loaded\n const { t } = useI18n(\"avatar\")\n\n useEffect(() => {\n if (!imageRef.current) return\n\n if (!!imageRef.current.src && imageRef.current.complete) setLoaded(true)\n }, [])\n\n const getGroupProps: PropGetter = useCallback((props) => ({ ...props }), [])\n\n const getRootProps: PropGetter = useCallback(\n (props) => ({\n ...mergeProps(rest, props)(),\n \"data-fallback\": dataAttr(!!fallbackMessage),\n \"data-loaded\": dataAttr(loaded),\n }),\n [loaded, fallbackMessage, rest],\n )\n\n const getImageProps: PropGetter<\"img\"> = useCallback(\n ({ ref, onLoad, ...props } = {}) => ({\n ...props,\n ref: mergeRefs(ref, imageRef),\n src,\n srcSet,\n alt: name || alt,\n crossOrigin,\n draggable: false,\n hidden: fallback,\n loading,\n referrerPolicy,\n onLoad: handlerAll(onLoad, () => setLoaded(true)),\n }),\n [src, srcSet, alt, crossOrigin, loading, referrerPolicy, fallback, name],\n )\n\n const getFallbackProps: PropGetter = useCallback(\n (props) => ({\n ...props,\n \"aria-label\": !fallbackMessage\n ? name || alt || t(\"Avatar Icon\")\n : undefined,\n children: fallbackMessage || initials || icon,\n hidden: !fallback,\n role: !fallbackMessage ? \"img\" : undefined,\n }),\n [name, initials, fallback, icon, fallbackMessage, alt, t],\n )\n\n return {\n name,\n loaded,\n getFallbackProps,\n getGroupProps,\n getImageProps,\n getRootProps,\n }\n}\n\nexport type UseAvatarReturn = ReturnType<typeof useAvatar>\n"],"mappings":";;;;;;;;AAQA,MAAM,iBAAiB,SAAiB;CACtC,MAAM,QAAQ,KAAK,KAAK,CAAC,CAAC,MAAM,GAAG;CACnC,MAAM,YAAY,MAAM,MAAM;CAC9B,MAAM,WAAW,MAAM,SAAS,IAAI,MAAM,MAAM,SAAS,KAAK;CAE9D,OAAO,aAAa,WAChB,GAAG,UAAU,OAAO,CAAC,IAAI,SAAS,OAAO,CAAC,MAC1C,UAAU,OAAO,CAAC;AACxB;AAkDA,MAAa,aAAa,EACxB,MACA,KACA,QACA,KACA,aACA,UAAU,iBACV,SAAS,eACT,MACA,SACA,iBAAiB,eACjB,GAAG,SACe,CAAC,MAAM;CACzB,MAAM,YAAA,GAAWA,MAAAA,OAAAA,CAAyB,IAAI;CAC9C,MAAM,WAAW,OAAO,OAAO,IAAI,IAAI,KAAA;CACvC,MAAM,CAAC,QAAQ,cAAA,GAAaC,MAAAA,SAAAA,CAAkB,KAAK;CACnD,MAAM,WAAW,CAAC,OAAO,CAAC;CAC1B,MAAM,EAAE,MAAMC,sBAAAA,QAAQ,QAAQ;CAE9B,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,IAAI,CAAC,SAAS,SAAS;EAEvB,IAAI,CAAC,CAAC,SAAS,QAAQ,OAAO,SAAS,QAAQ,UAAU,UAAU,IAAI;CACzE,GAAG,CAAC,CAAC;CAEL,MAAM,iBAAA,GAA4BC,MAAAA,YAAAA,EAAa,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC;CAE3E,MAAM,gBAAA,GAA2BA,MAAAA,YAAAA,EAC9B,WAAW;EACV,GAAGC,cAAAA,WAAW,MAAM,KAAK,CAAC,CAAC;EAC3B,kBAAA,GAAA,oBAAA,cAAiB,SAAA,CAAS,CAAC,CAAC,eAAe;EAC3C,gBAAA,GAAA,oBAAA,cAAe,SAAA,CAAS,MAAM;CAChC,IACA;EAAC;EAAQ;EAAiB;CAAI,CAChC;CAEA,MAAM,iBAAA,GAAmCD,MAAAA,YAAAA,EACtC,EAAE,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO;EACnC,GAAG;EACH,KAAKE,YAAAA,UAAU,KAAK,QAAQ;EAC5B;EACA;EACA,KAAK,QAAQ;EACb;EACA,WAAW;EACX,QAAQ;EACR;EACA;EACA,SAAA,GAAA,oBAAA,cAAQ,WAAA,CAAW,cAAc,UAAU,IAAI,CAAC;CAClD,IACA;EAAC;EAAK;EAAQ;EAAK;EAAa;EAAS;EAAgB;EAAU;CAAI,CACzE;CAeA,OAAO;EACL;EACA;EACA,mBAAA,GAhBmCF,MAAAA,YAAAA,EAClC,WAAW;GACV,GAAG;GACH,cAAc,CAAC,kBACX,QAAQ,OAAO,EAAE,aAAa,IAC9B,KAAA;GACJ,UAAU,mBAAmB,YAAY;GACzC,QAAQ,CAAC;GACT,MAAM,CAAC,kBAAkB,QAAQ,KAAA;EACnC,IACA;GAAC;GAAM;GAAU;GAAU;GAAM;GAAiB;GAAK;EAAC,CAMzC;EACf;EACA;EACA;CACF;AACF"}
1
+ {"version":3,"file":"use-avatar.cjs","names":["useRef","useState","useI18n","useCallback","mergeProps","mergeRefs"],"sources":["../../../../src/components/avatar/use-avatar.ts"],"sourcesContent":["\"use client\"\n\nimport type { ReactElement, ReactNode } from \"react\"\nimport type { HTMLProps, PropGetter } from \"../../core\"\nimport { useCallback, useEffect, useRef, useState } from \"react\"\nimport { mergeProps } from \"../../core\"\nimport { useI18n } from \"../../providers/i18n-provider\"\nimport { dataAttr, handlerAll, mergeRefs } from \"../../utils\"\n\nconst defaultFormat = (name: string) => {\n const names = name.trim().split(\" \")\n const firstName = names[0] ?? \"\"\n const lastName = names.length > 1 ? names[names.length - 1] : \"\"\n\n return firstName && lastName\n ? `${firstName.charAt(0)}${lastName.charAt(0)}`\n : firstName.charAt(0)\n}\n\nexport interface UseAvatarProps extends HTMLProps {\n /**\n * The `HTMLImageElement` property `alt`.\n */\n alt?: HTMLProps<\"img\">[\"alt\"]\n /**\n * The `HTMLImageElement` property `crossOrigin`.\n */\n crossOrigin?: HTMLProps<\"img\">[\"crossOrigin\"]\n /**\n * The fallback text to display if the image is not provided.\n */\n fallback?: ReactNode\n /**\n * The avatar icon to use.\n */\n icon?: ReactElement\n /**\n * Defines loading strategy.\n */\n loading?: HTMLProps<\"img\">[\"loading\"]\n /**\n * The name of the person in the avatar.\n *\n * - If `src` has loaded, the name will be used as the `alt` attribute of the `img`\n * - If `src` is not loaded, the name will be used to create the initials\n */\n name?: string\n /**\n * Defining which referrer is sent when fetching the resource.\n *\n * @default 'no-referrer'\n */\n referrerPolicy?: HTMLProps<\"img\">[\"referrerPolicy\"]\n /**\n * The image url of the avatar.\n */\n src?: HTMLProps<\"img\">[\"src\"]\n /**\n * List of sources to use for different screen resolutions.\n */\n srcSet?: HTMLProps<\"img\">[\"srcSet\"]\n /**\n * Function to get the initials to display.\n */\n format?: (name: string) => string\n}\n\nexport const useAvatar = ({\n name,\n src,\n srcSet,\n alt,\n crossOrigin,\n fallback: fallbackMessage,\n format = defaultFormat,\n icon,\n loading,\n referrerPolicy = \"no-referrer\",\n ...rest\n}: UseAvatarProps = {}) => {\n const imageRef = useRef<HTMLImageElement>(null)\n const initials = name ? format(name) : undefined\n const [loaded, setLoaded] = useState<boolean>(false)\n const fallback = !src || !loaded\n const { t } = useI18n(\"avatar\")\n\n useEffect(() => {\n if (!imageRef.current) return\n\n if (!!imageRef.current.src && imageRef.current.complete) setLoaded(true)\n }, [])\n\n const getGroupProps: PropGetter = useCallback((props) => ({ ...props }), [])\n\n const getRootProps: PropGetter = useCallback(\n (props) => ({\n ...mergeProps(rest, props)(),\n \"data-fallback\": dataAttr(!!fallbackMessage),\n \"data-loaded\": dataAttr(loaded),\n }),\n [loaded, fallbackMessage, rest],\n )\n\n const getImageProps: PropGetter<\"img\"> = useCallback(\n ({ ref, onLoad, ...props } = {}) => ({\n ...props,\n ref: mergeRefs(ref, imageRef),\n src,\n srcSet,\n alt: name || alt,\n crossOrigin,\n draggable: false,\n hidden: fallback,\n loading,\n referrerPolicy,\n onLoad: handlerAll(onLoad, () => setLoaded(true)),\n }),\n [src, srcSet, alt, crossOrigin, loading, referrerPolicy, fallback, name],\n )\n\n const getFallbackProps: PropGetter = useCallback(\n (props) => ({\n ...props,\n \"aria-label\": !fallbackMessage\n ? name || alt || t(\"Avatar Icon\")\n : undefined,\n children: fallbackMessage || initials || icon,\n hidden: !fallback,\n role: !fallbackMessage ? \"img\" : undefined,\n }),\n [name, initials, fallback, icon, fallbackMessage, alt, t],\n )\n\n return {\n name,\n loaded,\n getFallbackProps,\n getGroupProps,\n getImageProps,\n getRootProps,\n }\n}\n\nexport type UseAvatarReturn = ReturnType<typeof useAvatar>\n"],"mappings":";;;;;;;;AASA,MAAM,iBAAiB,SAAiB;CACtC,MAAM,QAAQ,KAAK,KAAK,CAAC,CAAC,MAAM,GAAG;CACnC,MAAM,YAAY,MAAM,MAAM;CAC9B,MAAM,WAAW,MAAM,SAAS,IAAI,MAAM,MAAM,SAAS,KAAK;CAE9D,OAAO,aAAa,WAChB,GAAG,UAAU,OAAO,CAAC,IAAI,SAAS,OAAO,CAAC,MAC1C,UAAU,OAAO,CAAC;AACxB;AAkDA,MAAa,aAAa,EACxB,MACA,KACA,QACA,KACA,aACA,UAAU,iBACV,SAAS,eACT,MACA,SACA,iBAAiB,eACjB,GAAG,SACe,CAAC,MAAM;CACzB,MAAM,YAAA,GAAWA,MAAAA,OAAAA,CAAyB,IAAI;CAC9C,MAAM,WAAW,OAAO,OAAO,IAAI,IAAI,KAAA;CACvC,MAAM,CAAC,QAAQ,cAAA,GAAaC,MAAAA,SAAAA,CAAkB,KAAK;CACnD,MAAM,WAAW,CAAC,OAAO,CAAC;CAC1B,MAAM,EAAE,MAAMC,sBAAAA,QAAQ,QAAQ;CAE9B,CAAA,GAAA,MAAA,UAAA,OAAgB;EACd,IAAI,CAAC,SAAS,SAAS;EAEvB,IAAI,CAAC,CAAC,SAAS,QAAQ,OAAO,SAAS,QAAQ,UAAU,UAAU,IAAI;CACzE,GAAG,CAAC,CAAC;CAEL,MAAM,iBAAA,GAA4BC,MAAAA,YAAAA,EAAa,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,CAAC;CAE3E,MAAM,gBAAA,GAA2BA,MAAAA,YAAAA,EAC9B,WAAW;EACV,GAAGC,cAAAA,WAAW,MAAM,KAAK,CAAC,CAAC;EAC3B,kBAAA,GAAA,oBAAA,cAAiB,SAAA,CAAS,CAAC,CAAC,eAAe;EAC3C,gBAAA,GAAA,oBAAA,cAAe,SAAA,CAAS,MAAM;CAChC,IACA;EAAC;EAAQ;EAAiB;CAAI,CAChC;CAEA,MAAM,iBAAA,GAAmCD,MAAAA,YAAAA,EACtC,EAAE,KAAK,QAAQ,GAAG,UAAU,CAAC,OAAO;EACnC,GAAG;EACH,KAAKE,YAAAA,UAAU,KAAK,QAAQ;EAC5B;EACA;EACA,KAAK,QAAQ;EACb;EACA,WAAW;EACX,QAAQ;EACR;EACA;EACA,SAAA,GAAA,oBAAA,cAAQ,WAAA,CAAW,cAAc,UAAU,IAAI,CAAC;CAClD,IACA;EAAC;EAAK;EAAQ;EAAK;EAAa;EAAS;EAAgB;EAAU;CAAI,CACzE;CAeA,OAAO;EACL;EACA;EACA,mBAAA,GAhBmCF,MAAAA,YAAAA,EAClC,WAAW;GACV,GAAG;GACH,cAAc,CAAC,kBACX,QAAQ,OAAO,EAAE,aAAa,IAC9B,KAAA;GACJ,UAAU,mBAAmB,YAAY;GACzC,QAAQ,CAAC;GACT,MAAM,CAAC,kBAAkB,QAAQ,KAAA;EACnC,IACA;GAAC;GAAM;GAAU;GAAU;GAAM;GAAiB;GAAK;EAAC,CAMzC;EACf;EACA;EACA;CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-carousel.cjs","names":["createContext","useI18n","useControllableState","useIds","useBoolean","useRef","useState","useCallback","useEmblaCarousel","mergeProps","mergeRefs"],"sources":["../../../../src/components/carousel/use-carousel.ts"],"sourcesContent":["\"use client\"\n\nimport type {\n EmblaCarouselType,\n EmblaOptionsType,\n EmblaPluginType,\n} from \"embla-carousel\"\nimport type { KeyboardEvent, RefObject } from \"react\"\nimport useEmblaCarousel from \"embla-carousel-react\"\nimport { useCallback, useEffect, useRef, useState } from \"react\"\nimport {\n type HTMLProps,\n mergeProps,\n type Orientation,\n type PropGetter,\n type RequiredPropGetter,\n} from \"../../core\"\nimport { useBoolean } from \"../../hooks/use-boolean\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { useI18n } from \"../../providers/i18n-provider\"\nimport {\n assignRef,\n createContext,\n dataAttr,\n handlerAll,\n isFunction,\n mergeRefs,\n runKeyAction,\n useIds,\n useUpdateEffect,\n} from \"../../utils\"\n\ntype EmblaOptions = Required<EmblaOptionsType>\nexport type CarouselAlign = EmblaOptions[\"align\"]\nexport type CarouselContainScroll = EmblaOptions[\"containScroll\"]\nexport type CarouselInViewThreshold = EmblaOptions[\"inViewThreshold\"]\nexport type CarouselWatchDrag = EmblaOptions[\"watchDrag\"]\nexport type CarouselWatchResize = EmblaOptions[\"watchResize\"]\nexport type CarouselWatchSlides = EmblaOptions[\"watchSlides\"]\nexport type CarouselControl = EmblaCarouselType\nexport type CarouselPlugin = EmblaPluginType\n\nexport interface CarouselContext extends Omit<\n UseCarouselReturn,\n \"getRootProps\"\n> {}\n\nconst [CarouselContext, useCarouselContext] = createContext<CarouselContext>({\n name: \"CarouselContext\",\n})\n\nexport { CarouselContext, useCarouselContext }\n\nexport interface UseCarouselProps extends Omit<\n HTMLProps<\"section\">,\n \"onChange\"\n> {\n /**\n * The alignment of the carousel.\n *\n * @default 'center'\n */\n align?: CarouselAlign\n /**\n * If `true`, the carousel will be autoplay.\n *\n * @default false\n */\n autoplay?: boolean\n /**\n * Clear leading and trailing empty space that causes excessive scrolling.\n * Use trimSnaps to only use snap points that trigger scrolling or keepSnaps to keep them.\n *\n * @default false\n */\n containScroll?: CarouselContainScroll\n /**\n * Ref of the resizable item callback.\n */\n controlRef?: RefObject<CarouselControl | null>\n /**\n * The initial index of the carousel slide.\n *\n * @default 0\n */\n defaultIndex?: number\n /**\n * The number for the autoplay interval of the carousel.\n *\n * @default 4000\n */\n delay?: number\n /**\n * If `true`, momentum scrolling will be enabled.\n *\n * @default false\n */\n dragFree?: boolean\n /**\n * If `true`, carousel can be scrolled with mouse and touch interactions.\n *\n * @default true\n */\n draggable?: boolean\n /**\n * Set scroll duration when triggered by any of the API methods.\n * Higher numbers enables slower scrolling.\n * Drag interactions are not affected because duration is then determined by the drag force.\n *\n * @default 25\n */\n duration?: number\n /**\n * The index of the carousel slide.\n */\n index?: number\n /**\n * Choose a fraction representing the percentage portion of a slide that needs to be visible in order to be considered in view.\n *\n * @default 0\n */\n inViewThreshold?: CarouselInViewThreshold\n /**\n * If `true`, infinite looping.\n * Automatically falls back to false if slide content isn't enough to loop.\n *\n * @default true\n */\n loop?: boolean\n /**\n * The orientation of the carousel.\n *\n * @default 'horizontal'\n */\n orientation?: Orientation\n /**\n * Embla plugins to use.\n */\n plugins?: CarouselPlugin[]\n /**\n * If `true`, allow the carousel to skip scroll snaps if it's dragged vigorously.\n * Note that this option will be ignored if the dragFree option is set to true.\n *\n * @default false\n */\n skipSnaps?: boolean\n /**\n * The number of slides that should be scrolled with next or previous buttons.\n *\n * @default 1\n */\n slidesToScroll?: number\n /**\n * If `true`, autoplay will pause when the mouse entries over.\n *\n * @default true\n */\n stopMouseEnterAutoplay?: boolean\n /**\n * Enables for scrolling the carousel with mouse and touch interactions.\n * Set this to `false` to disable drag events or pass a custom callback to add your own drag logic.\n *\n * @default true\n */\n watchDrag?: CarouselWatchDrag\n /**\n * Embla automatically watches the container and slides for size changes and runs `reInit` when any size has changed.\n * Set this to `false` to disable this behaviour or pass a custom callback to add your own resize logic.\n *\n * @default true\n */\n watchResize?: CarouselWatchResize\n /**\n * Embla automatically watches the container for added and/or removed slides and runs `reInit` if needed.\n * Set this to `false` to disable this behaviour or pass a custom callback to add your own slides changed logic.\n *\n * @default true\n */\n watchSlides?: CarouselWatchSlides\n /**\n * The callback invoked when carousel slide selected.\n */\n onChange?: (index: number) => void\n /**\n * A callback that return the current scroll amount when the carousel is scrolled.\n */\n onScrollProgress?: (progress: number) => void\n}\n\nexport const useCarousel = ({\n id,\n align = \"center\",\n autoplay = false,\n containScroll = false,\n controlRef,\n defaultIndex = 0,\n delay = 4000,\n dragFree = false,\n draggable = true,\n duration = 25,\n index: indexProp,\n inViewThreshold = 0,\n loop = true,\n orientation = \"horizontal\",\n plugins = [],\n skipSnaps = false,\n slidesToScroll = 1,\n stopMouseEnterAutoplay = true,\n watchDrag = draggable,\n watchResize: watchResizeProp = true,\n watchSlides = true,\n onChange,\n onScrollProgress,\n ...rest\n}: UseCarouselProps = {}) => {\n const { t } = useI18n(\"carousel\")\n const [index, setIndex] = useControllableState({\n defaultValue: defaultIndex,\n value: indexProp,\n onChange,\n })\n const [rootId, listId] = useIds()\n const [hover, { off: onMouseLeave, on: onMouseEnter }] = useBoolean()\n const timeoutId = useRef<NodeJS.Timeout | null>(null)\n const indicatorMapRef = useRef<Map<number, HTMLButtonElement | null>>(\n new Map(),\n )\n const listRef = useRef<HTMLDivElement>(null)\n const horizontal = orientation === \"horizontal\"\n const axis = horizontal ? \"x\" : \"y\"\n const [snapCount, setSnapCount] = useState(0)\n const [total, setTotal] = useState(0)\n const watchResize = useCallback<Extract<CarouselWatchResize, Function>>(\n (methods, entries) => {\n const result = isFunction(watchResizeProp)\n ? watchResizeProp(methods, entries)\n : true\n const snapCount = methods.scrollSnapList().length\n const total = methods.slideNodes().length\n\n setSnapCount(snapCount)\n setTotal(total)\n\n return result\n },\n [watchResizeProp],\n )\n const [carouselRef, carousel] = useEmblaCarousel(\n {\n align,\n axis,\n container: listRef.current,\n containScroll,\n dragFree,\n duration,\n inViewThreshold,\n loop,\n skipSnaps,\n slidesToScroll,\n startIndex: defaultIndex,\n watchDrag,\n watchResize,\n watchSlides,\n },\n plugins,\n )\n\n id ??= rootId\n\n const onInit = useCallback((methods: CarouselControl) => {\n const snapCount = methods.scrollSnapList().length\n const total = methods.slideNodes().length\n\n setSnapCount(snapCount)\n setTotal(total)\n }, [])\n\n const onScroll = useCallback(() => {\n if (!carousel) return\n\n const progress = Math.round(\n Math.max(0, Math.min(1, carousel.scrollProgress())) * 100,\n )\n\n onScrollProgress?.(progress)\n }, [carousel, onScrollProgress])\n\n const onSelect = useCallback(() => {\n if (!carousel) return\n\n const index = carousel.selectedScrollSnap()\n\n setIndex(index)\n }, [carousel, setIndex])\n\n const onFocusIndicator = useCallback(\n (index: number) => {\n const el = indicatorMapRef.current.get(index)\n\n el?.focus()\n carousel?.scrollTo(index)\n },\n [carousel],\n )\n\n const onKeyDown = useCallback(\n (index: number) => (ev: KeyboardEvent<HTMLButtonElement>) => {\n const lastIndex = snapCount - 1\n\n runKeyAction(ev, {\n ArrowDown: () => {\n if (horizontal) return\n\n index = index === lastIndex ? 0 : index + 1\n\n onFocusIndicator(index)\n },\n ArrowLeft: () => {\n if (!horizontal) return\n\n index = index === 0 ? lastIndex : index - 1\n\n onFocusIndicator(index)\n },\n ArrowRight: () => {\n if (!horizontal) return\n\n index = index === lastIndex ? 0 : index + 1\n\n onFocusIndicator(index)\n },\n ArrowUp: () => {\n if (horizontal) return\n\n index = index === 0 ? lastIndex : index - 1\n\n onFocusIndicator(index)\n },\n End: () => {\n onFocusIndicator(lastIndex)\n },\n Home: () => {\n onFocusIndicator(0)\n },\n })\n },\n [snapCount, horizontal, onFocusIndicator],\n )\n\n assignRef(controlRef, carousel)\n\n useEffect(() => {\n if (carousel) {\n carousel.on(\"reInit\", onInit)\n carousel.on(\"select\", onSelect)\n carousel.on(\"scroll\", onScroll)\n\n onScroll()\n\n return () => {\n carousel.off(\"reInit\", onInit)\n carousel.off(\"select\", onSelect)\n carousel.off(\"scroll\", onScroll)\n }\n }\n }, [carousel, onInit, onScroll, onSelect])\n\n useEffect(() => {\n const stop = hover && stopMouseEnterAutoplay\n const last = !carousel?.canScrollNext()\n\n if (carousel && autoplay && !stop && !last) {\n timeoutId.current = setInterval(() => {\n carousel.scrollNext()\n }, delay)\n } else {\n if (timeoutId.current) clearInterval(timeoutId.current)\n\n timeoutId.current = null\n }\n\n return () => {\n if (timeoutId.current) clearInterval(timeoutId.current)\n }\n }, [autoplay, carousel, delay, hover, stopMouseEnterAutoplay])\n\n useUpdateEffect(() => {\n if (!carousel) return\n\n if (indexProp === undefined) return\n\n carousel.scrollTo(indexProp)\n }, [indexProp])\n\n useUpdateEffect(() => {\n if (!carousel) return\n\n carousel.reInit()\n }, [\n carousel,\n total,\n align,\n axis,\n containScroll,\n dragFree,\n duration,\n inViewThreshold,\n loop,\n skipSnaps,\n slidesToScroll,\n ])\n\n const getRootProps: PropGetter<\"section\"> = useCallback(\n ({ ref, ...props } = {}) =>\n mergeProps(\n {\n id,\n \"aria-roledescription\": \"carousel\",\n \"data-orientation\": orientation,\n },\n rest,\n {\n ref,\n onMouseEnter,\n onMouseLeave,\n },\n props,\n )(),\n [id, onMouseEnter, onMouseLeave, rest, orientation],\n )\n\n const getListProps: PropGetter = useCallback(\n ({ ref, ...props } = {}) => ({\n id: listId,\n \"aria-live\": autoplay ? \"off\" : \"polite\",\n \"data-orientation\": orientation,\n ...props,\n ref: mergeRefs(ref, listRef, carouselRef),\n }),\n [autoplay, listId, orientation, carouselRef],\n )\n\n const getItemProps: RequiredPropGetter<\"div\", { index: number }> =\n useCallback(\n ({ index: indexProp, ...props }) => {\n const page = indexProp + 1\n const selected = index === indexProp\n\n return {\n id: `${listId}-${indexProp}`,\n \"aria-label\": t(\"{page} of {total}\", { page, total }),\n \"aria-roledescription\": \"slide\",\n \"data-index\": indexProp.toString(),\n \"data-orientation\": orientation,\n \"data-selected\": dataAttr(selected),\n role: \"tabpanel\",\n ...props,\n }\n },\n [index, listId, total, orientation, t],\n )\n\n const getPrevTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n \"aria-controls\": listId,\n \"aria-label\": t(\"Go to previous slide\"),\n \"data-orientation\": orientation,\n disabled: !carousel?.canScrollPrev(),\n ...props,\n onClick: handlerAll(props.onClick, () => carousel?.scrollPrev()),\n }),\n [carousel, listId, orientation, t],\n )\n\n const getNextTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n \"aria-controls\": listId,\n \"aria-label\": t(\"Go to next slide\"),\n \"data-orientation\": orientation,\n disabled: !carousel?.canScrollNext(),\n ...props,\n onClick: handlerAll(props.onClick, () => carousel?.scrollNext()),\n }),\n [carousel, listId, orientation, t],\n )\n\n const getIndicatorsProps: PropGetter = useCallback(\n (props = {}) => ({\n \"aria-label\": t(\"Slides\"),\n \"aria-orientation\": orientation,\n role: \"tablist\",\n ...props,\n }),\n [orientation, t],\n )\n\n const getIndicatorProps: RequiredPropGetter<\"button\", { index: number }> =\n useCallback(\n ({ ref, index: indexProp, ...props }) => {\n const page = indexProp + 1\n const selected = index === indexProp\n\n return {\n type: \"button\" as const,\n \"aria-controls\": `${listId}-${indexProp}`,\n \"aria-label\": t(\"Go to {page} slide\", { page }),\n \"aria-selected\": selected,\n \"data-index\": indexProp.toString(),\n \"data-orientation\": orientation,\n \"data-selected\": dataAttr(selected),\n role: \"tab\",\n tabIndex: selected ? 0 : -1,\n ...props,\n ref: mergeRefs(ref, (node) => {\n indicatorMapRef.current.set(indexProp, node)\n }),\n onClick: handlerAll(props.onClick, () =>\n carousel?.scrollTo(indexProp),\n ),\n onKeyDown: handlerAll(props.onKeyDown, onKeyDown(indexProp)),\n }\n },\n [index, listId, t, orientation, onKeyDown, carousel],\n )\n\n return {\n carousel,\n index,\n setIndex,\n snapCount,\n total,\n getIndicatorProps,\n getIndicatorsProps,\n getItemProps,\n getListProps,\n getNextTriggerProps,\n getPrevTriggerProps,\n getRootProps,\n }\n}\n\nexport type UseCarouselReturn = ReturnType<typeof useCarousel>\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-carousel.cjs","names":["createContext","useI18n","useControllableState","useIds","useBoolean","useRef","useState","useCallback","useEmblaCarousel","mergeProps","mergeRefs"],"sources":["../../../../src/components/carousel/use-carousel.ts"],"sourcesContent":["\"use client\"\n\nimport type {\n EmblaCarouselType,\n EmblaOptionsType,\n EmblaPluginType,\n} from \"embla-carousel\"\nimport type { KeyboardEvent, RefObject } from \"react\"\nimport type {\n HTMLProps,\n Orientation,\n PropGetter,\n RequiredPropGetter,\n} from \"../../core\"\nimport useEmblaCarousel from \"embla-carousel-react\"\nimport { useCallback, useEffect, useRef, useState } from \"react\"\nimport { mergeProps } from \"../../core\"\nimport { useBoolean } from \"../../hooks/use-boolean\"\nimport { useControllableState } from \"../../hooks/use-controllable-state\"\nimport { useI18n } from \"../../providers/i18n-provider\"\nimport {\n assignRef,\n createContext,\n dataAttr,\n handlerAll,\n isFunction,\n mergeRefs,\n runKeyAction,\n useIds,\n useUpdateEffect,\n} from \"../../utils\"\n\ntype EmblaOptions = Required<EmblaOptionsType>\nexport type CarouselAlign = EmblaOptions[\"align\"]\nexport type CarouselContainScroll = EmblaOptions[\"containScroll\"]\nexport type CarouselInViewThreshold = EmblaOptions[\"inViewThreshold\"]\nexport type CarouselWatchDrag = EmblaOptions[\"watchDrag\"]\nexport type CarouselWatchResize = EmblaOptions[\"watchResize\"]\nexport type CarouselWatchSlides = EmblaOptions[\"watchSlides\"]\nexport type CarouselControl = EmblaCarouselType\nexport type CarouselPlugin = EmblaPluginType\n\nexport interface CarouselContext extends Omit<\n UseCarouselReturn,\n \"getRootProps\"\n> {}\n\nconst [CarouselContext, useCarouselContext] = createContext<CarouselContext>({\n name: \"CarouselContext\",\n})\n\nexport { CarouselContext, useCarouselContext }\n\nexport interface UseCarouselProps extends Omit<\n HTMLProps<\"section\">,\n \"onChange\"\n> {\n /**\n * The alignment of the carousel.\n *\n * @default 'center'\n */\n align?: CarouselAlign\n /**\n * If `true`, the carousel will be autoplay.\n *\n * @default false\n */\n autoplay?: boolean\n /**\n * Clear leading and trailing empty space that causes excessive scrolling.\n * Use trimSnaps to only use snap points that trigger scrolling or keepSnaps to keep them.\n *\n * @default false\n */\n containScroll?: CarouselContainScroll\n /**\n * Ref of the resizable item callback.\n */\n controlRef?: RefObject<CarouselControl | null>\n /**\n * The initial index of the carousel slide.\n *\n * @default 0\n */\n defaultIndex?: number\n /**\n * The number for the autoplay interval of the carousel.\n *\n * @default 4000\n */\n delay?: number\n /**\n * If `true`, momentum scrolling will be enabled.\n *\n * @default false\n */\n dragFree?: boolean\n /**\n * If `true`, carousel can be scrolled with mouse and touch interactions.\n *\n * @default true\n */\n draggable?: boolean\n /**\n * Set scroll duration when triggered by any of the API methods.\n * Higher numbers enables slower scrolling.\n * Drag interactions are not affected because duration is then determined by the drag force.\n *\n * @default 25\n */\n duration?: number\n /**\n * The index of the carousel slide.\n */\n index?: number\n /**\n * Choose a fraction representing the percentage portion of a slide that needs to be visible in order to be considered in view.\n *\n * @default 0\n */\n inViewThreshold?: CarouselInViewThreshold\n /**\n * If `true`, infinite looping.\n * Automatically falls back to false if slide content isn't enough to loop.\n *\n * @default true\n */\n loop?: boolean\n /**\n * The orientation of the carousel.\n *\n * @default 'horizontal'\n */\n orientation?: Orientation\n /**\n * Embla plugins to use.\n */\n plugins?: CarouselPlugin[]\n /**\n * If `true`, allow the carousel to skip scroll snaps if it's dragged vigorously.\n * Note that this option will be ignored if the dragFree option is set to true.\n *\n * @default false\n */\n skipSnaps?: boolean\n /**\n * The number of slides that should be scrolled with next or previous buttons.\n *\n * @default 1\n */\n slidesToScroll?: number\n /**\n * If `true`, autoplay will pause when the mouse entries over.\n *\n * @default true\n */\n stopMouseEnterAutoplay?: boolean\n /**\n * Enables for scrolling the carousel with mouse and touch interactions.\n * Set this to `false` to disable drag events or pass a custom callback to add your own drag logic.\n *\n * @default true\n */\n watchDrag?: CarouselWatchDrag\n /**\n * Embla automatically watches the container and slides for size changes and runs `reInit` when any size has changed.\n * Set this to `false` to disable this behaviour or pass a custom callback to add your own resize logic.\n *\n * @default true\n */\n watchResize?: CarouselWatchResize\n /**\n * Embla automatically watches the container for added and/or removed slides and runs `reInit` if needed.\n * Set this to `false` to disable this behaviour or pass a custom callback to add your own slides changed logic.\n *\n * @default true\n */\n watchSlides?: CarouselWatchSlides\n /**\n * The callback invoked when carousel slide selected.\n */\n onChange?: (index: number) => void\n /**\n * A callback that return the current scroll amount when the carousel is scrolled.\n */\n onScrollProgress?: (progress: number) => void\n}\n\nexport const useCarousel = ({\n id,\n align = \"center\",\n autoplay = false,\n containScroll = false,\n controlRef,\n defaultIndex = 0,\n delay = 4000,\n dragFree = false,\n draggable = true,\n duration = 25,\n index: indexProp,\n inViewThreshold = 0,\n loop = true,\n orientation = \"horizontal\",\n plugins = [],\n skipSnaps = false,\n slidesToScroll = 1,\n stopMouseEnterAutoplay = true,\n watchDrag = draggable,\n watchResize: watchResizeProp = true,\n watchSlides = true,\n onChange,\n onScrollProgress,\n ...rest\n}: UseCarouselProps = {}) => {\n const { t } = useI18n(\"carousel\")\n const [index, setIndex] = useControllableState({\n defaultValue: defaultIndex,\n value: indexProp,\n onChange,\n })\n const [rootId, listId] = useIds()\n const [hover, { off: onMouseLeave, on: onMouseEnter }] = useBoolean()\n const timeoutId = useRef<NodeJS.Timeout | null>(null)\n const indicatorMapRef = useRef<Map<number, HTMLButtonElement | null>>(\n new Map(),\n )\n const listRef = useRef<HTMLDivElement>(null)\n const horizontal = orientation === \"horizontal\"\n const axis = horizontal ? \"x\" : \"y\"\n const [snapCount, setSnapCount] = useState(0)\n const [total, setTotal] = useState(0)\n const watchResize = useCallback<Extract<CarouselWatchResize, Function>>(\n (methods, entries) => {\n const result = isFunction(watchResizeProp)\n ? watchResizeProp(methods, entries)\n : true\n const snapCount = methods.scrollSnapList().length\n const total = methods.slideNodes().length\n\n setSnapCount(snapCount)\n setTotal(total)\n\n return result\n },\n [watchResizeProp],\n )\n const [carouselRef, carousel] = useEmblaCarousel(\n {\n align,\n axis,\n container: listRef.current,\n containScroll,\n dragFree,\n duration,\n inViewThreshold,\n loop,\n skipSnaps,\n slidesToScroll,\n startIndex: defaultIndex,\n watchDrag,\n watchResize,\n watchSlides,\n },\n plugins,\n )\n\n id ??= rootId\n\n const onInit = useCallback((methods: CarouselControl) => {\n const snapCount = methods.scrollSnapList().length\n const total = methods.slideNodes().length\n\n setSnapCount(snapCount)\n setTotal(total)\n }, [])\n\n const onScroll = useCallback(() => {\n if (!carousel) return\n\n const progress = Math.round(\n Math.max(0, Math.min(1, carousel.scrollProgress())) * 100,\n )\n\n onScrollProgress?.(progress)\n }, [carousel, onScrollProgress])\n\n const onSelect = useCallback(() => {\n if (!carousel) return\n\n const index = carousel.selectedScrollSnap()\n\n setIndex(index)\n }, [carousel, setIndex])\n\n const onFocusIndicator = useCallback(\n (index: number) => {\n const el = indicatorMapRef.current.get(index)\n\n el?.focus()\n carousel?.scrollTo(index)\n },\n [carousel],\n )\n\n const onKeyDown = useCallback(\n (index: number) => (ev: KeyboardEvent<HTMLButtonElement>) => {\n const lastIndex = snapCount - 1\n\n runKeyAction(ev, {\n ArrowDown: () => {\n if (horizontal) return\n\n index = index === lastIndex ? 0 : index + 1\n\n onFocusIndicator(index)\n },\n ArrowLeft: () => {\n if (!horizontal) return\n\n index = index === 0 ? lastIndex : index - 1\n\n onFocusIndicator(index)\n },\n ArrowRight: () => {\n if (!horizontal) return\n\n index = index === lastIndex ? 0 : index + 1\n\n onFocusIndicator(index)\n },\n ArrowUp: () => {\n if (horizontal) return\n\n index = index === 0 ? lastIndex : index - 1\n\n onFocusIndicator(index)\n },\n End: () => {\n onFocusIndicator(lastIndex)\n },\n Home: () => {\n onFocusIndicator(0)\n },\n })\n },\n [snapCount, horizontal, onFocusIndicator],\n )\n\n assignRef(controlRef, carousel)\n\n useEffect(() => {\n if (carousel) {\n carousel.on(\"reInit\", onInit)\n carousel.on(\"select\", onSelect)\n carousel.on(\"scroll\", onScroll)\n\n onScroll()\n\n return () => {\n carousel.off(\"reInit\", onInit)\n carousel.off(\"select\", onSelect)\n carousel.off(\"scroll\", onScroll)\n }\n }\n }, [carousel, onInit, onScroll, onSelect])\n\n useEffect(() => {\n const stop = hover && stopMouseEnterAutoplay\n const last = !carousel?.canScrollNext()\n\n if (carousel && autoplay && !stop && !last) {\n timeoutId.current = setInterval(() => {\n carousel.scrollNext()\n }, delay)\n } else {\n if (timeoutId.current) clearInterval(timeoutId.current)\n\n timeoutId.current = null\n }\n\n return () => {\n if (timeoutId.current) clearInterval(timeoutId.current)\n }\n }, [autoplay, carousel, delay, hover, stopMouseEnterAutoplay])\n\n useUpdateEffect(() => {\n if (!carousel) return\n\n if (indexProp === undefined) return\n\n carousel.scrollTo(indexProp)\n }, [indexProp])\n\n useUpdateEffect(() => {\n if (!carousel) return\n\n carousel.reInit()\n }, [\n carousel,\n total,\n align,\n axis,\n containScroll,\n dragFree,\n duration,\n inViewThreshold,\n loop,\n skipSnaps,\n slidesToScroll,\n ])\n\n const getRootProps: PropGetter<\"section\"> = useCallback(\n ({ ref, ...props } = {}) =>\n mergeProps(\n {\n id,\n \"aria-roledescription\": \"carousel\",\n \"data-orientation\": orientation,\n },\n rest,\n {\n ref,\n onMouseEnter,\n onMouseLeave,\n },\n props,\n )(),\n [id, onMouseEnter, onMouseLeave, rest, orientation],\n )\n\n const getListProps: PropGetter = useCallback(\n ({ ref, ...props } = {}) => ({\n id: listId,\n \"aria-live\": autoplay ? \"off\" : \"polite\",\n \"data-orientation\": orientation,\n ...props,\n ref: mergeRefs(ref, listRef, carouselRef),\n }),\n [autoplay, listId, orientation, carouselRef],\n )\n\n const getItemProps: RequiredPropGetter<\"div\", { index: number }> =\n useCallback(\n ({ index: indexProp, ...props }) => {\n const page = indexProp + 1\n const selected = index === indexProp\n\n return {\n id: `${listId}-${indexProp}`,\n \"aria-label\": t(\"{page} of {total}\", { page, total }),\n \"aria-roledescription\": \"slide\",\n \"data-index\": indexProp.toString(),\n \"data-orientation\": orientation,\n \"data-selected\": dataAttr(selected),\n role: \"tabpanel\",\n ...props,\n }\n },\n [index, listId, total, orientation, t],\n )\n\n const getPrevTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n \"aria-controls\": listId,\n \"aria-label\": t(\"Go to previous slide\"),\n \"data-orientation\": orientation,\n disabled: !carousel?.canScrollPrev(),\n ...props,\n onClick: handlerAll(props.onClick, () => carousel?.scrollPrev()),\n }),\n [carousel, listId, orientation, t],\n )\n\n const getNextTriggerProps: PropGetter<\"button\"> = useCallback(\n (props = {}) => ({\n \"aria-controls\": listId,\n \"aria-label\": t(\"Go to next slide\"),\n \"data-orientation\": orientation,\n disabled: !carousel?.canScrollNext(),\n ...props,\n onClick: handlerAll(props.onClick, () => carousel?.scrollNext()),\n }),\n [carousel, listId, orientation, t],\n )\n\n const getIndicatorsProps: PropGetter = useCallback(\n (props = {}) => ({\n \"aria-label\": t(\"Slides\"),\n \"aria-orientation\": orientation,\n role: \"tablist\",\n ...props,\n }),\n [orientation, t],\n )\n\n const getIndicatorProps: RequiredPropGetter<\"button\", { index: number }> =\n useCallback(\n ({ ref, index: indexProp, ...props }) => {\n const page = indexProp + 1\n const selected = index === indexProp\n\n return {\n type: \"button\" as const,\n \"aria-controls\": `${listId}-${indexProp}`,\n \"aria-label\": t(\"Go to {page} slide\", { page }),\n \"aria-selected\": selected,\n \"data-index\": indexProp.toString(),\n \"data-orientation\": orientation,\n \"data-selected\": dataAttr(selected),\n role: \"tab\",\n tabIndex: selected ? 0 : -1,\n ...props,\n ref: mergeRefs(ref, (node) => {\n indicatorMapRef.current.set(indexProp, node)\n }),\n onClick: handlerAll(props.onClick, () =>\n carousel?.scrollTo(indexProp),\n ),\n onKeyDown: handlerAll(props.onKeyDown, onKeyDown(indexProp)),\n }\n },\n [index, listId, t, orientation, onKeyDown, carousel],\n )\n\n return {\n carousel,\n index,\n setIndex,\n snapCount,\n total,\n getIndicatorProps,\n getIndicatorsProps,\n getItemProps,\n getListProps,\n getNextTriggerProps,\n getPrevTriggerProps,\n getRootProps,\n }\n}\n\nexport type UseCarouselReturn = ReturnType<typeof useCarousel>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-cartesian-chart.cjs","names":["useCallback","mergeProps","useMemo","isValidElement","useChartContext"],"sources":["../../../../src/components/chart/use-cartesian-chart.ts"],"sourcesContent":["\"use client\"\n\nimport type {\n AreaProps,\n BarProps,\n CartesianGridProps,\n LineProps,\n ReferenceLineProps,\n XAxisProps,\n YAxisProps,\n} from \"recharts\"\nimport type { CartesianChartProps } from \"recharts/types/util/types\"\nimport type { Dict, Merge } from \"../../utils\"\nimport { isValidElement, useCallback, useMemo } from \"react\"\nimport {\n type HTMLProps,\n mergeProps,\n type PropGetter,\n type SimpleDirection,\n} from \"../../core\"\nimport { dataAttr, isFunction, isObject, isUndefined } from \"../../utils\"\nimport { useChartContext } from \"./use-chart\"\n\nexport interface UseCartesianChartProps<Y extends Dict>\n extends\n HTMLProps,\n Pick<\n CartesianChartProps,\n | \"accessibilityLayer\"\n | \"compact\"\n | \"layout\"\n | \"responsive\"\n | \"syncId\"\n | \"syncMethod\"\n > {\n /**\n * Chart data.\n */\n data?: Y[]\n}\n\nexport const useCartesianChart = <Y extends Dict>({\n accessibilityLayer = true,\n compact,\n data,\n layout = \"horizontal\",\n responsive,\n syncId,\n syncMethod,\n ...rest\n}: UseCartesianChartProps<Y>) => {\n const getRootProps: PropGetter = useCallback(\n (props) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getChartProps: PropGetter<CartesianChartProps> = useCallback(\n (props) => ({\n accessibilityLayer,\n compact,\n data,\n layout,\n margin: { left: 16, right: 16 },\n responsive,\n syncId,\n syncMethod,\n ...props,\n }),\n [accessibilityLayer, compact, data, layout, responsive, syncId, syncMethod],\n )\n\n return {\n getChartProps,\n getRootProps,\n }\n}\n\nexport type UseCartesianChartReturn<Y extends Dict> = ReturnType<\n typeof useCartesianChart<Y>\n>\n\nexport interface UseChartXAxisProps extends Merge<\n HTMLProps<\"svg\">,\n Pick<\n XAxisProps,\n | \"allowDataOverflow\"\n | \"allowDecimals\"\n | \"allowDuplicatedCategory\"\n | \"angle\"\n | \"axisLine\"\n | \"dataKey\"\n | \"domain\"\n | \"height\"\n | \"hide\"\n | \"includeHidden\"\n | \"interval\"\n | \"label\"\n | \"minTickGap\"\n | \"mirror\"\n | \"name\"\n | \"niceTicks\"\n | \"orientation\"\n | \"padding\"\n | \"range\"\n | \"reversed\"\n | \"scale\"\n | \"tick\"\n | \"tickCount\"\n | \"tickFormatter\"\n | \"tickLine\"\n | \"tickMargin\"\n | \"ticks\"\n | \"tickSize\"\n | \"type\"\n | \"unit\"\n | \"xAxisId\"\n >\n> {}\n\nexport const useChartXAxis = ({\n type,\n name,\n allowDataOverflow,\n allowDecimals,\n allowDuplicatedCategory,\n angle,\n axisLine = false,\n children,\n dataKey,\n domain,\n height,\n hide,\n includeHidden,\n interval,\n label: labelProp = false,\n minTickGap = 8,\n mirror,\n niceTicks,\n orientation,\n padding,\n range,\n reversed,\n scale,\n tick: tickProp = true,\n tickCount,\n tickFormatter,\n tickLine: tickLineProp = false,\n tickMargin = 8,\n ticks,\n tickSize,\n unit,\n xAxisId,\n ...rest\n}: UseChartXAxisProps = {}) => {\n const tick = useMemo<UseChartXAxisProps[\"tick\"]>(() => {\n if (!tickProp) return tickProp\n if (isFunction(tickProp) || isValidElement(tickProp)) return tickProp\n\n return { ...(isObject(tickProp) ? tickProp : {}), fill: \"\" }\n }, [tickProp])\n const tickLine = useMemo<UseChartXAxisProps[\"tickLine\"]>(() => {\n if (!tickLineProp) return tickLineProp\n\n return {\n fill: \"\",\n stroke: \"\",\n ...(isObject(tickLineProp) ? tickLineProp : {}),\n }\n }, [tickLineProp])\n const label = useMemo<UseChartXAxisProps[\"label\"]>(() => {\n if (!labelProp) return labelProp\n if (isFunction(labelProp) || isValidElement(labelProp)) return labelProp\n\n return {\n fill: \"\",\n offset: 0,\n position: \"insideBottom\",\n ...(isObject(labelProp) ? labelProp : {}),\n }\n }, [labelProp])\n\n const getRootProps: PropGetter<\"svg\"> = useCallback(\n (props) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getXAxisProps: PropGetter<XAxisProps> = useCallback(\n (props) => ({\n type,\n name,\n allowDataOverflow,\n allowDecimals,\n allowDuplicatedCategory,\n angle,\n axisLine,\n children,\n dataKey,\n domain,\n height: height ?? (label ? 52 : undefined),\n hide,\n includeHidden,\n interval,\n label,\n minTickGap,\n mirror,\n niceTicks,\n orientation,\n padding,\n range,\n reversed,\n scale,\n tick,\n tickCount,\n tickFormatter,\n tickLine,\n tickMargin,\n ticks,\n tickSize,\n unit,\n xAxisId,\n ...props,\n }),\n [\n allowDataOverflow,\n allowDecimals,\n allowDuplicatedCategory,\n angle,\n axisLine,\n children,\n dataKey,\n domain,\n niceTicks,\n height,\n hide,\n includeHidden,\n interval,\n label,\n minTickGap,\n mirror,\n name,\n orientation,\n padding,\n range,\n reversed,\n scale,\n tick,\n tickCount,\n tickFormatter,\n tickLine,\n tickMargin,\n tickSize,\n ticks,\n type,\n unit,\n xAxisId,\n ],\n )\n\n return { getRootProps, getXAxisProps }\n}\n\nexport type UseChartXAxisReturn = ReturnType<typeof useChartXAxis>\n\nexport interface UseChartYAxisProps extends Merge<\n HTMLProps<\"svg\">,\n Pick<\n YAxisProps,\n | \"allowDataOverflow\"\n | \"allowDecimals\"\n | \"allowDuplicatedCategory\"\n | \"angle\"\n | \"axisLine\"\n | \"dataKey\"\n | \"domain\"\n | \"hide\"\n | \"includeHidden\"\n | \"interval\"\n | \"label\"\n | \"minTickGap\"\n | \"mirror\"\n | \"name\"\n | \"niceTicks\"\n | \"padding\"\n | \"range\"\n | \"reversed\"\n | \"scale\"\n | \"tick\"\n | \"tickCount\"\n | \"tickFormatter\"\n | \"tickLine\"\n | \"tickMargin\"\n | \"ticks\"\n | \"tickSize\"\n | \"type\"\n | \"unit\"\n | \"width\"\n | \"yAxisId\"\n >\n> {\n /**\n * The orientation of axis.\n *\n * @defaultValue \"start\"\n */\n orientation?: SimpleDirection\n}\n\nexport const useChartYAxis = ({\n type,\n name,\n allowDataOverflow,\n allowDecimals = true,\n allowDuplicatedCategory,\n angle,\n axisLine = false,\n children,\n dataKey,\n domain,\n hide,\n includeHidden,\n interval,\n label: labelProp = false,\n minTickGap,\n mirror,\n niceTicks,\n orientation,\n padding,\n range,\n reversed,\n scale,\n tick: tickProp = true,\n tickCount,\n tickFormatter,\n tickLine: tickLineProp = false,\n tickMargin,\n ticks,\n tickSize,\n unit,\n width,\n yAxisId,\n ...rest\n}: UseChartYAxisProps = {}) => {\n const tick = useMemo<UseChartYAxisProps[\"tick\"]>(() => {\n if (!tickProp) return tickProp\n if (isFunction(tickProp) || isValidElement(tickProp)) return tickProp\n\n return { fill: \"\", ...(isObject(tickProp) ? tickProp : {}) }\n }, [tickProp])\n const tickLine = useMemo<UseChartYAxisProps[\"tickLine\"]>(() => {\n if (!tickLineProp) return tickLineProp\n\n return {\n fill: \"\",\n stroke: \"\",\n ...(isObject(tickLineProp) ? tickLineProp : {}),\n }\n }, [tickLineProp])\n const label = useMemo<UseChartYAxisProps[\"label\"]>(() => {\n if (!labelProp) return labelProp\n if (isFunction(labelProp) || isValidElement(labelProp)) return labelProp\n\n return {\n angle: -90,\n fill: \"\",\n offset: 4,\n position: \"insideLeft\",\n transform:\n orientation === \"end\" ? \"translate(10, 0)\" : \"translate(-10, 0)\",\n ...(isObject(labelProp) ? labelProp : {}),\n }\n }, [labelProp, orientation])\n\n const getRootProps: PropGetter<\"svg\"> = useCallback(\n (props) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getYAxisProps: PropGetter<YAxisProps> = useCallback(\n (props = {}) => ({\n type,\n name,\n allowDataOverflow,\n allowDecimals,\n allowDuplicatedCategory,\n angle,\n axisLine,\n children,\n dataKey,\n domain,\n hide,\n includeHidden,\n interval,\n label,\n minTickGap,\n mirror,\n niceTicks,\n orientation:\n orientation === \"end\"\n ? \"right\"\n : orientation === \"start\"\n ? \"left\"\n : undefined,\n padding,\n range,\n reversed,\n scale,\n tick,\n tickCount,\n tickFormatter,\n tickLine,\n tickMargin,\n ticks,\n tickSize,\n unit,\n width: width ?? (label ? 64 : undefined),\n yAxisId,\n ...props,\n }),\n [\n allowDataOverflow,\n allowDecimals,\n allowDuplicatedCategory,\n angle,\n axisLine,\n children,\n dataKey,\n domain,\n hide,\n includeHidden,\n interval,\n label,\n minTickGap,\n mirror,\n niceTicks,\n name,\n orientation,\n padding,\n range,\n reversed,\n scale,\n tick,\n tickCount,\n tickFormatter,\n tickLine,\n tickMargin,\n tickSize,\n ticks,\n type,\n unit,\n width,\n yAxisId,\n ],\n )\n\n return { getRootProps, getYAxisProps }\n}\n\nexport type UseChartYAxisReturn = ReturnType<typeof useChartYAxis>\n\nexport interface UseChartLineProps extends Merge<\n HTMLProps<\"line\">,\n Pick<\n LineProps,\n | \"activeDot\"\n | \"animateNewValues\"\n | \"animationBegin\"\n | \"animationDuration\"\n | \"animationEasing\"\n | \"connectNulls\"\n | \"data\"\n | \"dataKey\"\n | \"dot\"\n | \"hide\"\n | \"isAnimationActive\"\n | \"label\"\n | \"legendType\"\n | \"name\"\n | \"onAnimationEnd\"\n | \"onAnimationStart\"\n | \"shape\"\n | \"stroke\"\n | \"tooltipType\"\n | \"type\"\n | \"unit\"\n | \"xAxisId\"\n | \"yAxisId\"\n | \"zIndex\"\n >\n> {}\n\nexport const useChartLine = ({\n type = \"monotone\",\n name,\n activeDot: activeDotProp,\n animateNewValues,\n animationBegin,\n animationDuration,\n animationEasing,\n children,\n connectNulls,\n data,\n dataKey: dataKeyProp,\n dot: dotProp,\n hide,\n isAnimationActive = false,\n label: labelProp = false,\n legendType,\n shape,\n stroke = \"\",\n tooltipType,\n unit,\n xAxisId,\n yAxisId,\n zIndex,\n onAnimationEnd,\n onAnimationStart,\n ...rest\n}: UseChartLineProps = {}) => {\n const { highlightedDataKey } = useChartContext()\n const label = useMemo<UseChartLineProps[\"label\"]>(() => {\n if (!labelProp) return labelProp\n if (isFunction(labelProp) || isValidElement(labelProp)) return labelProp\n\n return {\n fill: \"\",\n offset: 12,\n position: \"top\",\n ...(isObject(labelProp) ? labelProp : {}),\n }\n }, [labelProp])\n const dot = useMemo<UseChartLineProps[\"dot\"]>(() => {\n if (!dotProp) return dotProp\n if (isFunction(dotProp) || isValidElement(dotProp)) return dotProp\n\n return { fill: \"\", stroke: \"\", ...(isObject(dotProp) ? dotProp : {}) }\n }, [dotProp])\n const activeDot = useMemo<UseChartLineProps[\"activeDot\"]>(() => {\n if (!activeDotProp) return activeDotProp\n if (isFunction(activeDotProp) || isValidElement(activeDotProp))\n return activeDotProp\n\n return {\n fill: \"\",\n stroke: \"\",\n ...(isObject(activeDotProp) ? activeDotProp : {}),\n }\n }, [activeDotProp])\n\n const getRootProps: PropGetter<\"line\"> = useCallback(\n (props) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getLineProps: PropGetter<LineProps> = useCallback(\n ({ dataKey = dataKeyProp, ...props } = {}) => ({\n type,\n name,\n \"data-active\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey === dataKey,\n ),\n \"data-inactive\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey !== dataKey,\n ),\n activeDot,\n animateNewValues,\n animationBegin,\n animationDuration,\n animationEasing,\n children,\n connectNulls,\n data,\n dataKey,\n dot,\n hide,\n isAnimationActive,\n label,\n legendType,\n shape,\n stroke,\n strokeWidth: \"\",\n tooltipType,\n unit,\n xAxisId,\n yAxisId,\n zIndex,\n onAnimationEnd,\n onAnimationStart,\n ...props,\n }),\n [\n activeDot,\n animateNewValues,\n animationBegin,\n animationDuration,\n animationEasing,\n children,\n connectNulls,\n data,\n dataKeyProp,\n dot,\n hide,\n highlightedDataKey,\n isAnimationActive,\n label,\n legendType,\n name,\n onAnimationEnd,\n onAnimationStart,\n shape,\n stroke,\n tooltipType,\n type,\n unit,\n xAxisId,\n yAxisId,\n zIndex,\n ],\n )\n\n return { getLineProps, getRootProps }\n}\n\nexport type UseChartLineReturn = ReturnType<typeof useChartLine>\n\nexport interface UseChartAreaProps extends Merge<\n HTMLProps<\"line\">,\n Pick<\n AreaProps<any, any>,\n | \"activeDot\"\n | \"animationBegin\"\n | \"animationDuration\"\n | \"animationEasing\"\n | \"baseValue\"\n | \"connectNulls\"\n | \"data\"\n | \"dataKey\"\n | \"dot\"\n | \"hide\"\n | \"isAnimationActive\"\n | \"label\"\n | \"legendType\"\n | \"name\"\n | \"onAnimationEnd\"\n | \"onAnimationStart\"\n | \"stackId\"\n | \"stroke\"\n | \"tooltipType\"\n | \"type\"\n | \"unit\"\n | \"xAxisId\"\n | \"yAxisId\"\n | \"zIndex\"\n >\n> {}\n\nexport const useChartArea = ({\n type = \"monotone\",\n name,\n activeDot: activeDotProp,\n animationBegin,\n animationDuration,\n animationEasing,\n baseValue,\n children,\n connectNulls,\n data,\n dataKey: dataKeyProp,\n dot: dotProp,\n hide,\n isAnimationActive = false,\n label: labelProp = false,\n legendType,\n stackId,\n stroke = \"\",\n tooltipType,\n unit,\n xAxisId,\n yAxisId,\n zIndex,\n onAnimationEnd,\n onAnimationStart,\n ...rest\n}: UseChartAreaProps) => {\n const { highlightedDataKey } = useChartContext()\n const label = useMemo<UseChartAreaProps[\"label\"]>(() => {\n if (!labelProp) return labelProp\n if (isFunction(labelProp) || isValidElement(labelProp)) return labelProp\n\n return {\n fill: \"\",\n offset: 12,\n position: \"top\",\n ...(isObject(labelProp) ? labelProp : {}),\n }\n }, [labelProp])\n const dot = useMemo<UseChartAreaProps[\"dot\"]>(() => {\n if (!dotProp) return dotProp\n if (isFunction(dotProp) || isValidElement(dotProp)) return dotProp\n\n return { fill: \"\", stroke: \"\", ...(isObject(dotProp) ? dotProp : {}) }\n }, [dotProp])\n const activeDot = useMemo<UseChartAreaProps[\"activeDot\"]>(() => {\n if (!activeDotProp) return activeDotProp\n if (isFunction(activeDotProp) || isValidElement(activeDotProp))\n return activeDotProp\n\n return {\n fill: \"\",\n stroke: \"\",\n ...(isObject(activeDotProp) ? activeDotProp : {}),\n }\n }, [activeDotProp])\n\n const getRootProps: PropGetter<\"line\"> = useCallback(\n (props) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getAreaProps: PropGetter<\n Partial<AreaProps<any, any>>,\n undefined,\n AreaProps<any, any>\n > = useCallback(\n ({ dataKey = dataKeyProp, ...props } = {}) => ({\n type,\n name,\n \"data-active\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey === dataKey,\n ),\n \"data-inactive\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey !== dataKey,\n ),\n activeDot,\n animationBegin,\n animationDuration,\n animationEasing,\n baseValue,\n children,\n connectNulls,\n data,\n dataKey,\n dot,\n fill: \"\",\n fillOpacity: \"\",\n hide,\n isAnimationActive,\n label,\n legendType,\n stackId,\n stroke,\n strokeWidth: \"\",\n tooltipType,\n unit,\n xAxisId,\n yAxisId,\n zIndex,\n onAnimationEnd,\n onAnimationStart,\n ...props,\n }),\n [\n activeDot,\n animationBegin,\n animationDuration,\n animationEasing,\n baseValue,\n children,\n connectNulls,\n data,\n dataKeyProp,\n dot,\n hide,\n highlightedDataKey,\n isAnimationActive,\n label,\n legendType,\n name,\n onAnimationEnd,\n onAnimationStart,\n stackId,\n stroke,\n tooltipType,\n type,\n unit,\n xAxisId,\n yAxisId,\n zIndex,\n ],\n )\n\n return { getAreaProps, getRootProps }\n}\n\nexport type UseChartAreaReturn = ReturnType<typeof useChartArea>\n\nexport interface UseChartBarProps extends Merge<\n HTMLProps<\"path\">,\n Pick<\n BarProps,\n | \"activeBar\"\n | \"animationBegin\"\n | \"animationDuration\"\n | \"animationEasing\"\n | \"background\"\n | \"barSize\"\n | \"dangerouslySetInnerHTML\"\n | \"dataKey\"\n | \"fill\"\n | \"hide\"\n | \"index\"\n | \"isAnimationActive\"\n | \"label\"\n | \"legendType\"\n | \"maxBarSize\"\n | \"minPointSize\"\n | \"name\"\n | \"onAnimationEnd\"\n | \"onAnimationStart\"\n | \"radius\"\n | \"shape\"\n | \"stackId\"\n | \"tooltipType\"\n | \"unit\"\n | \"xAxisId\"\n | \"yAxisId\"\n | \"zIndex\"\n >\n> {}\n\nexport const useChartBar = ({\n name,\n activeBar,\n animationBegin,\n animationDuration,\n animationEasing,\n background,\n barSize,\n children,\n dangerouslySetInnerHTML,\n dataKey: dataKeyProp,\n fill,\n hide,\n index,\n isAnimationActive = false,\n label: labelProp = false,\n legendType,\n maxBarSize,\n minPointSize,\n radius = 4,\n shape,\n tooltipType,\n unit,\n xAxisId,\n yAxisId,\n zIndex,\n onAnimationEnd,\n onAnimationStart,\n ...rest\n}: UseChartBarProps = {}) => {\n const { highlightedDataKey } = useChartContext()\n\n const label = useMemo<UseChartBarProps[\"label\"]>(() => {\n if (!labelProp) return labelProp\n if (isFunction(labelProp) || isValidElement(labelProp)) return labelProp\n\n return {\n fill: \"\",\n offset: 12,\n position: \"top\",\n ...(isObject(labelProp) ? labelProp : {}),\n }\n }, [labelProp])\n\n const getRootProps: PropGetter<\"path\"> = useCallback(\n (props) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getBarProps: PropGetter<BarProps> = useCallback(\n ({ dataKey = dataKeyProp, ...props } = {}) => ({\n name,\n \"data-active\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey === dataKey,\n ),\n \"data-inactive\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey !== dataKey,\n ),\n activeBar,\n animationBegin,\n animationDuration,\n animationEasing,\n background,\n barSize,\n children,\n dangerouslySetInnerHTML,\n dataKey,\n fill,\n hide,\n index,\n isAnimationActive,\n label,\n legendType,\n maxBarSize,\n minPointSize,\n radius,\n shape,\n stroke: \"\",\n strokeWidth: \"\",\n tooltipType,\n unit,\n xAxisId,\n yAxisId,\n zIndex,\n onAnimationEnd,\n onAnimationStart,\n ...props,\n }),\n [\n activeBar,\n animationBegin,\n animationDuration,\n animationEasing,\n background,\n barSize,\n children,\n dangerouslySetInnerHTML,\n dataKeyProp,\n fill,\n hide,\n highlightedDataKey,\n index,\n isAnimationActive,\n label,\n legendType,\n maxBarSize,\n minPointSize,\n name,\n onAnimationEnd,\n onAnimationStart,\n radius,\n shape,\n tooltipType,\n unit,\n xAxisId,\n yAxisId,\n zIndex,\n ],\n )\n\n return { getBarProps, getRootProps }\n}\n\nexport type UseChartBarReturn = ReturnType<typeof useChartBar>\n\nexport interface UseChartReferenceLineProps extends Merge<\n HTMLProps<\"line\">,\n Pick<\n ReferenceLineProps,\n | \"ifOverflow\"\n | \"label\"\n | \"position\"\n | \"segment\"\n | \"shape\"\n | \"x\"\n | \"xAxisId\"\n | \"y\"\n | \"yAxisId\"\n | \"zIndex\"\n >\n> {}\n\nexport const useChartReferenceLine = ({\n children,\n ifOverflow,\n label: labelProp = false,\n position,\n segment,\n shape,\n viewBox,\n x,\n xAxisId,\n y,\n yAxisId,\n zIndex,\n ...rest\n}: UseChartReferenceLineProps = {}) => {\n const label = useMemo<UseChartReferenceLineProps[\"label\"]>(() => {\n if (!labelProp) return labelProp\n if (isFunction(labelProp) || isValidElement(labelProp)) return labelProp\n\n return {\n fill: \"\",\n offset: 8,\n position: \"insideBottomLeft\",\n ...(isObject(labelProp) ? labelProp : {}),\n }\n }, [labelProp])\n\n const getRootProps: PropGetter<\"line\"> = useCallback(\n (props) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getReferenceLineProps: PropGetter<Omit<ReferenceLineProps, \"ref\">> =\n useCallback(\n (props) => ({\n children,\n fill: \"\",\n fillOpacity: \"\",\n ifOverflow,\n label,\n position,\n segment,\n shape,\n stroke: \"\",\n strokeWidth: \"\",\n viewBox,\n x,\n xAxisId,\n y,\n yAxisId,\n zIndex,\n ...props,\n }),\n [\n children,\n ifOverflow,\n label,\n position,\n segment,\n shape,\n viewBox,\n x,\n xAxisId,\n y,\n yAxisId,\n zIndex,\n ],\n )\n\n return { getReferenceLineProps, getRootProps }\n}\n\nexport type UseChartReferenceLineReturn = ReturnType<\n typeof useChartReferenceLine\n>\n\nexport interface UseChartGridProps extends Merge<\n HTMLProps<\"line\">,\n Pick<\n CartesianGridProps,\n | \"horizontal\"\n | \"horizontalCoordinatesGenerator\"\n | \"horizontalFill\"\n | \"horizontalPoints\"\n | \"horizontalValues\"\n | \"syncWithTicks\"\n | \"vertical\"\n | \"verticalCoordinatesGenerator\"\n | \"verticalFill\"\n | \"verticalPoints\"\n | \"verticalValues\"\n | \"x\"\n | \"xAxisId\"\n | \"y\"\n | \"yAxisId\"\n | \"zIndex\"\n >\n> {}\n\nexport const useChartGrid = ({\n horizontal,\n horizontalCoordinatesGenerator,\n horizontalFill,\n horizontalPoints,\n horizontalValues,\n syncWithTicks,\n vertical = false,\n verticalCoordinatesGenerator,\n verticalFill,\n verticalPoints,\n verticalValues,\n x,\n xAxisId,\n y,\n yAxisId,\n zIndex,\n ...rest\n}: UseChartGridProps = {}) => {\n const getRootProps: PropGetter<\"line\"> = useCallback(\n (props) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getGridProps: PropGetter<CartesianGridProps> = useCallback(\n (props) => ({\n horizontal,\n horizontalCoordinatesGenerator,\n horizontalFill,\n horizontalPoints,\n horizontalValues,\n stroke: \"\",\n syncWithTicks,\n vertical,\n verticalCoordinatesGenerator,\n verticalFill,\n verticalPoints,\n verticalValues,\n x,\n xAxisId,\n y,\n yAxisId,\n zIndex,\n ...props,\n }),\n [\n horizontal,\n horizontalCoordinatesGenerator,\n horizontalFill,\n horizontalPoints,\n horizontalValues,\n syncWithTicks,\n vertical,\n verticalCoordinatesGenerator,\n verticalFill,\n verticalPoints,\n verticalValues,\n x,\n xAxisId,\n y,\n yAxisId,\n zIndex,\n ],\n )\n\n return { getGridProps, getRootProps }\n}\n\nexport type UseChartGridReturn = ReturnType<typeof useChartGrid>\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-cartesian-chart.cjs","names":["useCallback","mergeProps","useMemo","isValidElement","useChartContext"],"sources":["../../../../src/components/chart/use-cartesian-chart.ts"],"sourcesContent":["\"use client\"\n\nimport type {\n AreaProps,\n BarProps,\n CartesianGridProps,\n LineProps,\n ReferenceLineProps,\n XAxisProps,\n YAxisProps,\n} from \"recharts\"\nimport type { CartesianChartProps } from \"recharts/types/util/types\"\nimport type { HTMLProps, PropGetter, SimpleDirection } from \"../../core\"\nimport type { Dict, Merge } from \"../../utils\"\nimport { isValidElement, useCallback, useMemo } from \"react\"\nimport { mergeProps } from \"../../core\"\nimport { dataAttr, isFunction, isObject, isUndefined } from \"../../utils\"\nimport { useChartContext } from \"./use-chart\"\n\nexport interface UseCartesianChartProps<Y extends Dict>\n extends\n HTMLProps,\n Pick<\n CartesianChartProps,\n | \"accessibilityLayer\"\n | \"compact\"\n | \"layout\"\n | \"responsive\"\n | \"syncId\"\n | \"syncMethod\"\n > {\n /**\n * Chart data.\n */\n data?: Y[]\n}\n\nexport const useCartesianChart = <Y extends Dict>({\n accessibilityLayer = true,\n compact,\n data,\n layout = \"horizontal\",\n responsive,\n syncId,\n syncMethod,\n ...rest\n}: UseCartesianChartProps<Y>) => {\n const getRootProps: PropGetter = useCallback(\n (props) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getChartProps: PropGetter<CartesianChartProps> = useCallback(\n (props) => ({\n accessibilityLayer,\n compact,\n data,\n layout,\n margin: { left: 16, right: 16 },\n responsive,\n syncId,\n syncMethod,\n ...props,\n }),\n [accessibilityLayer, compact, data, layout, responsive, syncId, syncMethod],\n )\n\n return {\n getChartProps,\n getRootProps,\n }\n}\n\nexport type UseCartesianChartReturn<Y extends Dict> = ReturnType<\n typeof useCartesianChart<Y>\n>\n\nexport interface UseChartXAxisProps extends Merge<\n HTMLProps<\"svg\">,\n Pick<\n XAxisProps,\n | \"allowDataOverflow\"\n | \"allowDecimals\"\n | \"allowDuplicatedCategory\"\n | \"angle\"\n | \"axisLine\"\n | \"dataKey\"\n | \"domain\"\n | \"height\"\n | \"hide\"\n | \"includeHidden\"\n | \"interval\"\n | \"label\"\n | \"minTickGap\"\n | \"mirror\"\n | \"name\"\n | \"niceTicks\"\n | \"orientation\"\n | \"padding\"\n | \"range\"\n | \"reversed\"\n | \"scale\"\n | \"tick\"\n | \"tickCount\"\n | \"tickFormatter\"\n | \"tickLine\"\n | \"tickMargin\"\n | \"ticks\"\n | \"tickSize\"\n | \"type\"\n | \"unit\"\n | \"xAxisId\"\n >\n> {}\n\nexport const useChartXAxis = ({\n type,\n name,\n allowDataOverflow,\n allowDecimals,\n allowDuplicatedCategory,\n angle,\n axisLine = false,\n children,\n dataKey,\n domain,\n height,\n hide,\n includeHidden,\n interval,\n label: labelProp = false,\n minTickGap = 8,\n mirror,\n niceTicks,\n orientation,\n padding,\n range,\n reversed,\n scale,\n tick: tickProp = true,\n tickCount,\n tickFormatter,\n tickLine: tickLineProp = false,\n tickMargin = 8,\n ticks,\n tickSize,\n unit,\n xAxisId,\n ...rest\n}: UseChartXAxisProps = {}) => {\n const tick = useMemo<UseChartXAxisProps[\"tick\"]>(() => {\n if (!tickProp) return tickProp\n if (isFunction(tickProp) || isValidElement(tickProp)) return tickProp\n\n return { ...(isObject(tickProp) ? tickProp : {}), fill: \"\" }\n }, [tickProp])\n const tickLine = useMemo<UseChartXAxisProps[\"tickLine\"]>(() => {\n if (!tickLineProp) return tickLineProp\n\n return {\n fill: \"\",\n stroke: \"\",\n ...(isObject(tickLineProp) ? tickLineProp : {}),\n }\n }, [tickLineProp])\n const label = useMemo<UseChartXAxisProps[\"label\"]>(() => {\n if (!labelProp) return labelProp\n if (isFunction(labelProp) || isValidElement(labelProp)) return labelProp\n\n return {\n fill: \"\",\n offset: 0,\n position: \"insideBottom\",\n ...(isObject(labelProp) ? labelProp : {}),\n }\n }, [labelProp])\n\n const getRootProps: PropGetter<\"svg\"> = useCallback(\n (props) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getXAxisProps: PropGetter<XAxisProps> = useCallback(\n (props) => ({\n type,\n name,\n allowDataOverflow,\n allowDecimals,\n allowDuplicatedCategory,\n angle,\n axisLine,\n children,\n dataKey,\n domain,\n height: height ?? (label ? 52 : undefined),\n hide,\n includeHidden,\n interval,\n label,\n minTickGap,\n mirror,\n niceTicks,\n orientation,\n padding,\n range,\n reversed,\n scale,\n tick,\n tickCount,\n tickFormatter,\n tickLine,\n tickMargin,\n ticks,\n tickSize,\n unit,\n xAxisId,\n ...props,\n }),\n [\n allowDataOverflow,\n allowDecimals,\n allowDuplicatedCategory,\n angle,\n axisLine,\n children,\n dataKey,\n domain,\n niceTicks,\n height,\n hide,\n includeHidden,\n interval,\n label,\n minTickGap,\n mirror,\n name,\n orientation,\n padding,\n range,\n reversed,\n scale,\n tick,\n tickCount,\n tickFormatter,\n tickLine,\n tickMargin,\n tickSize,\n ticks,\n type,\n unit,\n xAxisId,\n ],\n )\n\n return { getRootProps, getXAxisProps }\n}\n\nexport type UseChartXAxisReturn = ReturnType<typeof useChartXAxis>\n\nexport interface UseChartYAxisProps extends Merge<\n HTMLProps<\"svg\">,\n Pick<\n YAxisProps,\n | \"allowDataOverflow\"\n | \"allowDecimals\"\n | \"allowDuplicatedCategory\"\n | \"angle\"\n | \"axisLine\"\n | \"dataKey\"\n | \"domain\"\n | \"hide\"\n | \"includeHidden\"\n | \"interval\"\n | \"label\"\n | \"minTickGap\"\n | \"mirror\"\n | \"name\"\n | \"niceTicks\"\n | \"padding\"\n | \"range\"\n | \"reversed\"\n | \"scale\"\n | \"tick\"\n | \"tickCount\"\n | \"tickFormatter\"\n | \"tickLine\"\n | \"tickMargin\"\n | \"ticks\"\n | \"tickSize\"\n | \"type\"\n | \"unit\"\n | \"width\"\n | \"yAxisId\"\n >\n> {\n /**\n * The orientation of axis.\n *\n * @defaultValue \"start\"\n */\n orientation?: SimpleDirection\n}\n\nexport const useChartYAxis = ({\n type,\n name,\n allowDataOverflow,\n allowDecimals = true,\n allowDuplicatedCategory,\n angle,\n axisLine = false,\n children,\n dataKey,\n domain,\n hide,\n includeHidden,\n interval,\n label: labelProp = false,\n minTickGap,\n mirror,\n niceTicks,\n orientation,\n padding,\n range,\n reversed,\n scale,\n tick: tickProp = true,\n tickCount,\n tickFormatter,\n tickLine: tickLineProp = false,\n tickMargin,\n ticks,\n tickSize,\n unit,\n width,\n yAxisId,\n ...rest\n}: UseChartYAxisProps = {}) => {\n const tick = useMemo<UseChartYAxisProps[\"tick\"]>(() => {\n if (!tickProp) return tickProp\n if (isFunction(tickProp) || isValidElement(tickProp)) return tickProp\n\n return { fill: \"\", ...(isObject(tickProp) ? tickProp : {}) }\n }, [tickProp])\n const tickLine = useMemo<UseChartYAxisProps[\"tickLine\"]>(() => {\n if (!tickLineProp) return tickLineProp\n\n return {\n fill: \"\",\n stroke: \"\",\n ...(isObject(tickLineProp) ? tickLineProp : {}),\n }\n }, [tickLineProp])\n const label = useMemo<UseChartYAxisProps[\"label\"]>(() => {\n if (!labelProp) return labelProp\n if (isFunction(labelProp) || isValidElement(labelProp)) return labelProp\n\n return {\n angle: -90,\n fill: \"\",\n offset: 4,\n position: \"insideLeft\",\n transform:\n orientation === \"end\" ? \"translate(10, 0)\" : \"translate(-10, 0)\",\n ...(isObject(labelProp) ? labelProp : {}),\n }\n }, [labelProp, orientation])\n\n const getRootProps: PropGetter<\"svg\"> = useCallback(\n (props) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getYAxisProps: PropGetter<YAxisProps> = useCallback(\n (props = {}) => ({\n type,\n name,\n allowDataOverflow,\n allowDecimals,\n allowDuplicatedCategory,\n angle,\n axisLine,\n children,\n dataKey,\n domain,\n hide,\n includeHidden,\n interval,\n label,\n minTickGap,\n mirror,\n niceTicks,\n orientation:\n orientation === \"end\"\n ? \"right\"\n : orientation === \"start\"\n ? \"left\"\n : undefined,\n padding,\n range,\n reversed,\n scale,\n tick,\n tickCount,\n tickFormatter,\n tickLine,\n tickMargin,\n ticks,\n tickSize,\n unit,\n width: width ?? (label ? 64 : undefined),\n yAxisId,\n ...props,\n }),\n [\n allowDataOverflow,\n allowDecimals,\n allowDuplicatedCategory,\n angle,\n axisLine,\n children,\n dataKey,\n domain,\n hide,\n includeHidden,\n interval,\n label,\n minTickGap,\n mirror,\n niceTicks,\n name,\n orientation,\n padding,\n range,\n reversed,\n scale,\n tick,\n tickCount,\n tickFormatter,\n tickLine,\n tickMargin,\n tickSize,\n ticks,\n type,\n unit,\n width,\n yAxisId,\n ],\n )\n\n return { getRootProps, getYAxisProps }\n}\n\nexport type UseChartYAxisReturn = ReturnType<typeof useChartYAxis>\n\nexport interface UseChartLineProps extends Merge<\n HTMLProps<\"line\">,\n Pick<\n LineProps,\n | \"activeDot\"\n | \"animateNewValues\"\n | \"animationBegin\"\n | \"animationDuration\"\n | \"animationEasing\"\n | \"connectNulls\"\n | \"data\"\n | \"dataKey\"\n | \"dot\"\n | \"hide\"\n | \"isAnimationActive\"\n | \"label\"\n | \"legendType\"\n | \"name\"\n | \"onAnimationEnd\"\n | \"onAnimationStart\"\n | \"shape\"\n | \"stroke\"\n | \"tooltipType\"\n | \"type\"\n | \"unit\"\n | \"xAxisId\"\n | \"yAxisId\"\n | \"zIndex\"\n >\n> {}\n\nexport const useChartLine = ({\n type = \"monotone\",\n name,\n activeDot: activeDotProp,\n animateNewValues,\n animationBegin,\n animationDuration,\n animationEasing,\n children,\n connectNulls,\n data,\n dataKey: dataKeyProp,\n dot: dotProp,\n hide,\n isAnimationActive = false,\n label: labelProp = false,\n legendType,\n shape,\n stroke = \"\",\n tooltipType,\n unit,\n xAxisId,\n yAxisId,\n zIndex,\n onAnimationEnd,\n onAnimationStart,\n ...rest\n}: UseChartLineProps = {}) => {\n const { highlightedDataKey } = useChartContext()\n const label = useMemo<UseChartLineProps[\"label\"]>(() => {\n if (!labelProp) return labelProp\n if (isFunction(labelProp) || isValidElement(labelProp)) return labelProp\n\n return {\n fill: \"\",\n offset: 12,\n position: \"top\",\n ...(isObject(labelProp) ? labelProp : {}),\n }\n }, [labelProp])\n const dot = useMemo<UseChartLineProps[\"dot\"]>(() => {\n if (!dotProp) return dotProp\n if (isFunction(dotProp) || isValidElement(dotProp)) return dotProp\n\n return { fill: \"\", stroke: \"\", ...(isObject(dotProp) ? dotProp : {}) }\n }, [dotProp])\n const activeDot = useMemo<UseChartLineProps[\"activeDot\"]>(() => {\n if (!activeDotProp) return activeDotProp\n if (isFunction(activeDotProp) || isValidElement(activeDotProp))\n return activeDotProp\n\n return {\n fill: \"\",\n stroke: \"\",\n ...(isObject(activeDotProp) ? activeDotProp : {}),\n }\n }, [activeDotProp])\n\n const getRootProps: PropGetter<\"line\"> = useCallback(\n (props) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getLineProps: PropGetter<LineProps> = useCallback(\n ({ dataKey = dataKeyProp, ...props } = {}) => ({\n type,\n name,\n \"data-active\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey === dataKey,\n ),\n \"data-inactive\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey !== dataKey,\n ),\n activeDot,\n animateNewValues,\n animationBegin,\n animationDuration,\n animationEasing,\n children,\n connectNulls,\n data,\n dataKey,\n dot,\n hide,\n isAnimationActive,\n label,\n legendType,\n shape,\n stroke,\n strokeWidth: \"\",\n tooltipType,\n unit,\n xAxisId,\n yAxisId,\n zIndex,\n onAnimationEnd,\n onAnimationStart,\n ...props,\n }),\n [\n activeDot,\n animateNewValues,\n animationBegin,\n animationDuration,\n animationEasing,\n children,\n connectNulls,\n data,\n dataKeyProp,\n dot,\n hide,\n highlightedDataKey,\n isAnimationActive,\n label,\n legendType,\n name,\n onAnimationEnd,\n onAnimationStart,\n shape,\n stroke,\n tooltipType,\n type,\n unit,\n xAxisId,\n yAxisId,\n zIndex,\n ],\n )\n\n return { getLineProps, getRootProps }\n}\n\nexport type UseChartLineReturn = ReturnType<typeof useChartLine>\n\nexport interface UseChartAreaProps extends Merge<\n HTMLProps<\"line\">,\n Pick<\n AreaProps<any, any>,\n | \"activeDot\"\n | \"animationBegin\"\n | \"animationDuration\"\n | \"animationEasing\"\n | \"baseValue\"\n | \"connectNulls\"\n | \"data\"\n | \"dataKey\"\n | \"dot\"\n | \"hide\"\n | \"isAnimationActive\"\n | \"label\"\n | \"legendType\"\n | \"name\"\n | \"onAnimationEnd\"\n | \"onAnimationStart\"\n | \"stackId\"\n | \"stroke\"\n | \"tooltipType\"\n | \"type\"\n | \"unit\"\n | \"xAxisId\"\n | \"yAxisId\"\n | \"zIndex\"\n >\n> {}\n\nexport const useChartArea = ({\n type = \"monotone\",\n name,\n activeDot: activeDotProp,\n animationBegin,\n animationDuration,\n animationEasing,\n baseValue,\n children,\n connectNulls,\n data,\n dataKey: dataKeyProp,\n dot: dotProp,\n hide,\n isAnimationActive = false,\n label: labelProp = false,\n legendType,\n stackId,\n stroke = \"\",\n tooltipType,\n unit,\n xAxisId,\n yAxisId,\n zIndex,\n onAnimationEnd,\n onAnimationStart,\n ...rest\n}: UseChartAreaProps) => {\n const { highlightedDataKey } = useChartContext()\n const label = useMemo<UseChartAreaProps[\"label\"]>(() => {\n if (!labelProp) return labelProp\n if (isFunction(labelProp) || isValidElement(labelProp)) return labelProp\n\n return {\n fill: \"\",\n offset: 12,\n position: \"top\",\n ...(isObject(labelProp) ? labelProp : {}),\n }\n }, [labelProp])\n const dot = useMemo<UseChartAreaProps[\"dot\"]>(() => {\n if (!dotProp) return dotProp\n if (isFunction(dotProp) || isValidElement(dotProp)) return dotProp\n\n return { fill: \"\", stroke: \"\", ...(isObject(dotProp) ? dotProp : {}) }\n }, [dotProp])\n const activeDot = useMemo<UseChartAreaProps[\"activeDot\"]>(() => {\n if (!activeDotProp) return activeDotProp\n if (isFunction(activeDotProp) || isValidElement(activeDotProp))\n return activeDotProp\n\n return {\n fill: \"\",\n stroke: \"\",\n ...(isObject(activeDotProp) ? activeDotProp : {}),\n }\n }, [activeDotProp])\n\n const getRootProps: PropGetter<\"line\"> = useCallback(\n (props) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getAreaProps: PropGetter<\n Partial<AreaProps<any, any>>,\n undefined,\n AreaProps<any, any>\n > = useCallback(\n ({ dataKey = dataKeyProp, ...props } = {}) => ({\n type,\n name,\n \"data-active\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey === dataKey,\n ),\n \"data-inactive\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey !== dataKey,\n ),\n activeDot,\n animationBegin,\n animationDuration,\n animationEasing,\n baseValue,\n children,\n connectNulls,\n data,\n dataKey,\n dot,\n fill: \"\",\n fillOpacity: \"\",\n hide,\n isAnimationActive,\n label,\n legendType,\n stackId,\n stroke,\n strokeWidth: \"\",\n tooltipType,\n unit,\n xAxisId,\n yAxisId,\n zIndex,\n onAnimationEnd,\n onAnimationStart,\n ...props,\n }),\n [\n activeDot,\n animationBegin,\n animationDuration,\n animationEasing,\n baseValue,\n children,\n connectNulls,\n data,\n dataKeyProp,\n dot,\n hide,\n highlightedDataKey,\n isAnimationActive,\n label,\n legendType,\n name,\n onAnimationEnd,\n onAnimationStart,\n stackId,\n stroke,\n tooltipType,\n type,\n unit,\n xAxisId,\n yAxisId,\n zIndex,\n ],\n )\n\n return { getAreaProps, getRootProps }\n}\n\nexport type UseChartAreaReturn = ReturnType<typeof useChartArea>\n\nexport interface UseChartBarProps extends Merge<\n HTMLProps<\"path\">,\n Pick<\n BarProps,\n | \"activeBar\"\n | \"animationBegin\"\n | \"animationDuration\"\n | \"animationEasing\"\n | \"background\"\n | \"barSize\"\n | \"dangerouslySetInnerHTML\"\n | \"dataKey\"\n | \"fill\"\n | \"hide\"\n | \"index\"\n | \"isAnimationActive\"\n | \"label\"\n | \"legendType\"\n | \"maxBarSize\"\n | \"minPointSize\"\n | \"name\"\n | \"onAnimationEnd\"\n | \"onAnimationStart\"\n | \"radius\"\n | \"shape\"\n | \"stackId\"\n | \"tooltipType\"\n | \"unit\"\n | \"xAxisId\"\n | \"yAxisId\"\n | \"zIndex\"\n >\n> {}\n\nexport const useChartBar = ({\n name,\n activeBar,\n animationBegin,\n animationDuration,\n animationEasing,\n background,\n barSize,\n children,\n dangerouslySetInnerHTML,\n dataKey: dataKeyProp,\n fill,\n hide,\n index,\n isAnimationActive = false,\n label: labelProp = false,\n legendType,\n maxBarSize,\n minPointSize,\n radius = 4,\n shape,\n tooltipType,\n unit,\n xAxisId,\n yAxisId,\n zIndex,\n onAnimationEnd,\n onAnimationStart,\n ...rest\n}: UseChartBarProps = {}) => {\n const { highlightedDataKey } = useChartContext()\n\n const label = useMemo<UseChartBarProps[\"label\"]>(() => {\n if (!labelProp) return labelProp\n if (isFunction(labelProp) || isValidElement(labelProp)) return labelProp\n\n return {\n fill: \"\",\n offset: 12,\n position: \"top\",\n ...(isObject(labelProp) ? labelProp : {}),\n }\n }, [labelProp])\n\n const getRootProps: PropGetter<\"path\"> = useCallback(\n (props) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getBarProps: PropGetter<BarProps> = useCallback(\n ({ dataKey = dataKeyProp, ...props } = {}) => ({\n name,\n \"data-active\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey === dataKey,\n ),\n \"data-inactive\": dataAttr(\n !isUndefined(highlightedDataKey) && highlightedDataKey !== dataKey,\n ),\n activeBar,\n animationBegin,\n animationDuration,\n animationEasing,\n background,\n barSize,\n children,\n dangerouslySetInnerHTML,\n dataKey,\n fill,\n hide,\n index,\n isAnimationActive,\n label,\n legendType,\n maxBarSize,\n minPointSize,\n radius,\n shape,\n stroke: \"\",\n strokeWidth: \"\",\n tooltipType,\n unit,\n xAxisId,\n yAxisId,\n zIndex,\n onAnimationEnd,\n onAnimationStart,\n ...props,\n }),\n [\n activeBar,\n animationBegin,\n animationDuration,\n animationEasing,\n background,\n barSize,\n children,\n dangerouslySetInnerHTML,\n dataKeyProp,\n fill,\n hide,\n highlightedDataKey,\n index,\n isAnimationActive,\n label,\n legendType,\n maxBarSize,\n minPointSize,\n name,\n onAnimationEnd,\n onAnimationStart,\n radius,\n shape,\n tooltipType,\n unit,\n xAxisId,\n yAxisId,\n zIndex,\n ],\n )\n\n return { getBarProps, getRootProps }\n}\n\nexport type UseChartBarReturn = ReturnType<typeof useChartBar>\n\nexport interface UseChartReferenceLineProps extends Merge<\n HTMLProps<\"line\">,\n Pick<\n ReferenceLineProps,\n | \"ifOverflow\"\n | \"label\"\n | \"position\"\n | \"segment\"\n | \"shape\"\n | \"x\"\n | \"xAxisId\"\n | \"y\"\n | \"yAxisId\"\n | \"zIndex\"\n >\n> {}\n\nexport const useChartReferenceLine = ({\n children,\n ifOverflow,\n label: labelProp = false,\n position,\n segment,\n shape,\n viewBox,\n x,\n xAxisId,\n y,\n yAxisId,\n zIndex,\n ...rest\n}: UseChartReferenceLineProps = {}) => {\n const label = useMemo<UseChartReferenceLineProps[\"label\"]>(() => {\n if (!labelProp) return labelProp\n if (isFunction(labelProp) || isValidElement(labelProp)) return labelProp\n\n return {\n fill: \"\",\n offset: 8,\n position: \"insideBottomLeft\",\n ...(isObject(labelProp) ? labelProp : {}),\n }\n }, [labelProp])\n\n const getRootProps: PropGetter<\"line\"> = useCallback(\n (props) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getReferenceLineProps: PropGetter<Omit<ReferenceLineProps, \"ref\">> =\n useCallback(\n (props) => ({\n children,\n fill: \"\",\n fillOpacity: \"\",\n ifOverflow,\n label,\n position,\n segment,\n shape,\n stroke: \"\",\n strokeWidth: \"\",\n viewBox,\n x,\n xAxisId,\n y,\n yAxisId,\n zIndex,\n ...props,\n }),\n [\n children,\n ifOverflow,\n label,\n position,\n segment,\n shape,\n viewBox,\n x,\n xAxisId,\n y,\n yAxisId,\n zIndex,\n ],\n )\n\n return { getReferenceLineProps, getRootProps }\n}\n\nexport type UseChartReferenceLineReturn = ReturnType<\n typeof useChartReferenceLine\n>\n\nexport interface UseChartGridProps extends Merge<\n HTMLProps<\"line\">,\n Pick<\n CartesianGridProps,\n | \"horizontal\"\n | \"horizontalCoordinatesGenerator\"\n | \"horizontalFill\"\n | \"horizontalPoints\"\n | \"horizontalValues\"\n | \"syncWithTicks\"\n | \"vertical\"\n | \"verticalCoordinatesGenerator\"\n | \"verticalFill\"\n | \"verticalPoints\"\n | \"verticalValues\"\n | \"x\"\n | \"xAxisId\"\n | \"y\"\n | \"yAxisId\"\n | \"zIndex\"\n >\n> {}\n\nexport const useChartGrid = ({\n horizontal,\n horizontalCoordinatesGenerator,\n horizontalFill,\n horizontalPoints,\n horizontalValues,\n syncWithTicks,\n vertical = false,\n verticalCoordinatesGenerator,\n verticalFill,\n verticalPoints,\n verticalValues,\n x,\n xAxisId,\n y,\n yAxisId,\n zIndex,\n ...rest\n}: UseChartGridProps = {}) => {\n const getRootProps: PropGetter<\"line\"> = useCallback(\n (props) => mergeProps(rest, props)(),\n [rest],\n )\n\n const getGridProps: PropGetter<CartesianGridProps> = useCallback(\n (props) => ({\n horizontal,\n horizontalCoordinatesGenerator,\n horizontalFill,\n horizontalPoints,\n horizontalValues,\n stroke: \"\",\n syncWithTicks,\n vertical,\n verticalCoordinatesGenerator,\n verticalFill,\n verticalPoints,\n verticalValues,\n x,\n xAxisId,\n y,\n yAxisId,\n zIndex,\n ...props,\n }),\n [\n horizontal,\n horizontalCoordinatesGenerator,\n horizontalFill,\n horizontalPoints,\n horizontalValues,\n syncWithTicks,\n vertical,\n verticalCoordinatesGenerator,\n verticalFill,\n verticalPoints,\n verticalValues,\n x,\n xAxisId,\n y,\n yAxisId,\n zIndex,\n ],\n )\n\n return { getGridProps, getRootProps }\n}\n\nexport type UseChartGridReturn = ReturnType<typeof useChartGrid>\n"],"mappings":"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"}