{
  "version": 3,
  "sources": ["ssg:https://asset.29cm.co.kr/contents/framer/components/@shared/FoldableList/Root.js", "ssg:https://asset.29cm.co.kr/contents/framer/components/@shared/FoldableList/Root.hooks.js", "ssg:https://asset.29cm.co.kr/contents/framer/components/@shared/FoldableList/Content.hooks.js", "ssg:https://asset.29cm.co.kr/contents/framer/components/@shared/FoldableList/Content.js", "ssg:https://asset.29cm.co.kr/contents/framer/components/@shared/FoldableList/Root.constants.js", "ssg:https://asset.29cm.co.kr/contents/framer/components/@shared/FoldableList/Item.js", "ssg:https://asset.29cm.co.kr/contents/framer/components/@shared/FoldableList/Trigger.js", "ssg:https://asset.29cm.co.kr/contents/framer/components/@shared/FoldableList/index.js"],
  "sourcesContent": ["import { jsx } from \"react/jsx-runtime\";\nimport { createContext, forwardRef } from \"react\";\nimport { ComponentName } from \"../../../styles/ComponentName.js\";\nimport { createWithStyle } from \"../../../styles/createWithStyle.js\";\nimport { css } from \"../../../styles/css.js\";\nimport { useFold } from \"./Root.hooks.js\";\nimport { cx } from \"framer\";\nimport { Skeleton } from \"../Skeleton/Skeleton.js\";\nconst {\n  classNames,\n  withStyle\n} = createWithStyle(ComponentName.FoldableListRoot, {\n  container: css`\n    display: flex;\n    flex-direction: column;\n    align-items: flex-start;\n  `\n});\nconst FoldableListContext = createContext(null);\nconst Root = withStyle(forwardRef(({\n  children,\n  className,\n  theme = \"light\",\n  pending = false,\n  ...rest\n}, ref) => {\n  const {\n    isFolded,\n    toggleFold\n  } = useFold();\n  if (pending) {\n    return /* @__PURE__ */ jsx(Skeleton, { style: {\n      ...skeletonStyle,\n      ...skeletonStyleByTheme[theme]\n    } });\n  }\n  return /* @__PURE__ */ jsx(FoldableListContext.Provider, { value: {\n    theme,\n    isFolded,\n    toggleFold\n  }, children: /* @__PURE__ */ jsx(\"div\", { className: cx(className, classNames.container), ref, ...rest, children }) });\n}));\nconst skeletonStyle = {\n  width: 100,\n  height: 20,\n  borderRadius: 4\n};\nconst skeletonStyleByTheme = {\n  light: {\n    backgroundColor: \"#dee2e6\"\n  },\n  dark: {\n    backgroundColor: \"#27272a\"\n  }\n};\nexport {\n  FoldableListContext,\n  Root\n};\n", "import { useState, useContext } from \"react\";\nimport { FoldableListContext } from \"./Root.js\";\nconst useFold = () => {\n  const [isFolded, setIsFolded] = useState(true);\n  const toggleFold = () => {\n    setIsFolded((prev) => !prev);\n  };\n  return {\n    isFolded,\n    toggleFold\n  };\n};\nconst useFoldableListContext = () => {\n  const context = useContext(FoldableListContext);\n  if (!context) {\n    throw new Error(\"useFoldableListContext should be used within Root\");\n  }\n  return context;\n};\nexport {\n  useFold,\n  useFoldableListContext\n};\n", "import { useAnimationControls } from \"framer-motion\";\nimport { useFoldableListContext } from \"./Root.hooks.js\";\nimport { useEffect } from \"react\";\nconst useFoldControls = () => {\n  const {\n    isFolded\n  } = useFoldableListContext();\n  const controls = useAnimationControls();\n  useEffect(() => {\n    if (isFolded) {\n      controls.start({\n        height: 0\n      });\n    } else {\n      controls.start({\n        height: \"auto\"\n      });\n    }\n  }, [isFolded]);\n  return controls;\n};\nexport {\n  useFoldControls\n};\n", "import { jsx } from \"react/jsx-runtime\";\nimport { forwardRef } from \"react\";\nimport { ComponentName } from \"../../../styles/ComponentName.js\";\nimport { createWithStyle } from \"../../../styles/createWithStyle.js\";\nimport { css } from \"../../../styles/css.js\";\nimport { motion } from \"framer-motion\";\nimport { cx } from \"framer\";\nimport { useFoldControls } from \"./Content.hooks.js\";\nconst {\n  classNames,\n  withStyle\n} = createWithStyle(ComponentName.FoldableListContent, {\n  container: css`\n    display: flex;\n    flex-direction: column;\n    gap: 2px;\n    padding-top: 7px;\n  `\n});\nconst Content = withStyle(forwardRef(({\n  children,\n  className,\n  ...rest\n}, ref) => {\n  const controls = useFoldControls();\n  return /* @__PURE__ */ jsx(motion.div, { ref, initial: {\n    height: 0\n  }, animate: controls, style: {\n    overflow: \"hidden\"\n  }, transition: {\n    type: \"spring\",\n    stiffness: 500,\n    damping: 60,\n    mass: 1\n  }, children: /* @__PURE__ */ jsx(\"div\", { className: cx(className, classNames.container), ...rest, children }) });\n}));\nexport {\n  Content\n};\n", "const textStyleByTheme = {\n  light: {\n    color: \"#474747\"\n  },\n  dark: {\n    color: \"#a0a0a0\"\n  }\n};\nexport {\n  textStyleByTheme\n};\n", "import { jsx } from \"react/jsx-runtime\";\nimport { cx } from \"framer\";\nimport { forwardRef } from \"react\";\nimport { ComponentName } from \"../../../styles/ComponentName.js\";\nimport { createWithStyle } from \"../../../styles/createWithStyle.js\";\nimport { css } from \"../../../styles/css.js\";\nimport { typographyCSS } from \"../../../styles/typography.js\";\nimport { useFoldableListContext } from \"./Root.hooks.js\";\nimport { textStyleByTheme } from \"./Root.constants.js\";\nconst {\n  classNames,\n  withStyle\n} = createWithStyle(ComponentName.FoldableListItem, {\n  \"container\": css`\n    display: flex;\n\n    ${typographyCSS(12, 400)};\n\n    line-height: 1.6em;\n    white-space: pre-wrap;\n    word-break: keep-all;\n  `,\n  \"container::before\": css`\n    content: '\u2022';\n    font-size: 16px;\n    margin-right: 6px;\n  `\n});\nconst Item = withStyle(forwardRef(({\n  children,\n  className,\n  style,\n  ...rest\n}, ref) => {\n  const {\n    theme\n  } = useFoldableListContext();\n  return /* @__PURE__ */ jsx(\"div\", { ref, className: cx(className, classNames.container), style: {\n    ...textStyleByTheme[theme],\n    ...style\n  }, ...rest, children });\n}));\nexport {\n  Item\n};\n", "import { jsxs, jsx } from \"react/jsx-runtime\";\nimport { AnimatePresence, motion } from \"framer-motion\";\nimport { forwardRef } from \"react\";\nimport { ComponentName } from \"../../../styles/ComponentName.js\";\nimport { createWithStyle } from \"../../../styles/createWithStyle.js\";\nimport { css } from \"../../../styles/css.js\";\nimport { typographyCSS } from \"../../../styles/typography.js\";\nimport { Icon } from \"../Icon/Icon.js\";\nimport { cx } from \"framer\";\nimport { useFoldableListContext } from \"./Root.hooks.js\";\nimport \"../../../hooks/stores/content/content.store.js\";\nimport \"../../../utils/event-properties/source.js\";\nimport { isCanvas } from \"../../../utils/framer/isCanvas.js\";\nimport { textStyleByTheme } from \"./Root.constants.js\";\nconst {\n  classNames,\n  withStyle\n} = createWithStyle(ComponentName.FoldableListTrigger, {\n  container: css`\n    display: flex;\n    align-items: center;\n    gap: 4px;\n    cursor: pointer;\n  `,\n  text: typographyCSS(14, 500, 1.6)\n});\nconst Trigger = withStyle(forwardRef(({\n  children,\n  className,\n  textStyle,\n  icons,\n  onClick,\n  ...rest\n}, ref) => {\n  const {\n    theme,\n    isFolded,\n    toggleFold\n  } = useFoldableListContext();\n  const {\n    initial = \"chevronDown\",\n    active = \"chevronUp\",\n    size = 14\n  } = icons ?? {};\n  const handleClick = (e) => {\n    onClick == null ? void 0 : onClick(e);\n    toggleFold();\n  };\n  return /* @__PURE__ */ jsxs(\"div\", { ref, className: cx(className, classNames.container), onClick: handleClick, ...rest, children: [\n    /* @__PURE__ */ jsx(\"div\", { className: classNames.text, style: {\n      ...textStyleByTheme[theme],\n      ...baseTextStyle,\n      ...textStyle\n    }, children }),\n    /* @__PURE__ */ jsx(AnimatePresence, { mode: \"wait\", children: /* @__PURE__ */ jsx(motion.div, { style: {\n      display: \"flex\",\n      alignItems: \"center\",\n      justifyContent: \"center\"\n    }, animate: {\n      opacity: 1\n    }, initial: {\n      opacity: isCanvas() ? 1 : 0\n    }, exit: {\n      opacity: 0\n    }, transition: {\n      duration: 0.2\n    }, children: /* @__PURE__ */ jsx(Icon, { type: isFolded ? initial : active, color: textStyleByTheme[theme].color, size, weight: \"bold\" }) }, isFolded ? \"plus\" : \"minus\") })\n  ] });\n}));\nconst baseTextStyle = {\n  minHeight: 20,\n  display: \"flex\",\n  alignItems: \"center\"\n};\nexport {\n  Trigger\n};\n", "import { Content } from \"./Content.js\";\nimport { Item } from \"./Item.js\";\nimport { Root } from \"./Root.js\";\nimport { Trigger } from \"./Trigger.js\";\nconst FoldableList = {\n  Root,\n  Trigger,\n  Content,\n  Item\n};\nexport {\n  FoldableList\n};\n"],
  "mappings": "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",
  "names": ["classNames", "withStyle", "createWithStyle", "ComponentName", "css", "FoldableListContext", "z", "Root", "Y", "children", "className", "theme", "pending", "rest", "ref", "isFolded", "toggleFold", "useFold", "p", "Skeleton", "skeletonStyle", "skeletonStyleByTheme", "cx", "useFold", "isFolded", "setIsFolded", "ye", "prev", "useFoldableListContext", "context", "re", "FoldableListContext", "useFoldControls", "isFolded", "useFoldableListContext", "controls", "useAnimationControls", "ue", "classNames", "withStyle", "createWithStyle", "ComponentName", "css", "Content", "Y", "children", "className", "rest", "ref", "controls", "useFoldControls", "p", "motion", "cx", "textStyleByTheme", "classNames", "withStyle", "createWithStyle", "ComponentName", "css", "typographyCSS", "Item", "Y", "children", "className", "style", "rest", "ref", "theme", "useFoldableListContext", "p", "cx", "textStyleByTheme", "classNames", "withStyle", "createWithStyle", "ComponentName", "css", "typographyCSS", "Trigger", "Y", "children", "className", "textStyle", "icons", "onClick", "rest", "ref", "theme", "isFolded", "toggleFold", "useFoldableListContext", "initial", "active", "size", "handleClick", "e", "u", "cx", "p", "textStyleByTheme", "baseTextStyle", "AnimatePresence", "motion", "isCanvas", "Icon", "FoldableList", "Root", "Trigger", "Content", "Item"]
}
