{"version":3,"file":"TocMobile.mjs","names":["useControlledState"],"sources":["../../src/Toc/TocMobile.tsx"],"sourcesContent":["'use client';\n\nimport { Anchor, Collapse, ConfigProvider } from 'antd';\nimport { PanelTopClose, PanelTopOpen } from 'lucide-react';\nimport { memo, useMemo } from 'react';\nimport useControlledState from 'use-merge-value';\n\nimport ActionIcon from '@/ActionIcon';\n\nimport { styles } from './style';\nimport type { TocMobileProps } from './type';\nimport { mapItems } from './utils';\n\nconst TocMobile = memo<TocMobileProps>(\n  ({ items, activeKey, onChange, getContainer, headerHeight = 64, tocWidth = 176 }) => {\n    // tocWidth is part of the interface but not used in this component\n    void tocWidth;\n    const [activeLink, setActiveLink] = useControlledState<string>('', {\n      onChange,\n      value: activeKey,\n    });\n\n    const activeAnchor = items.find((item) => item.id === activeLink);\n\n    const tocItems = useMemo(() => mapItems(items), [items]);\n\n    return (\n      <ConfigProvider theme={{ token: { fontSize: 12, sizeStep: 3 } }}>\n        <section className={styles.mobileCtn}>\n          <Collapse\n            ghost\n            className={styles.expand}\n            expandIconPlacement={'end'}\n            expandIcon={({ isActive }) => (\n              <ActionIcon icon={isActive ? PanelTopClose : PanelTopOpen} size={'small'} />\n            )}\n          >\n            <Collapse.Panel\n              forceRender\n              header={activeAnchor ? activeAnchor.title : 'TOC'}\n              key={'toc'}\n            >\n              <ConfigProvider theme={{ token: { fontSize: 14, sizeStep: 4 } }}>\n                <Anchor\n                  getContainer={getContainer}\n                  items={tocItems}\n                  targetOffset={headerHeight + 48}\n                  onChange={(currentLink) => {\n                    setActiveLink(currentLink.replace('#', ''));\n                  }}\n                />\n              </ConfigProvider>\n            </Collapse.Panel>\n          </Collapse>\n        </section>\n      </ConfigProvider>\n    );\n  },\n);\n\nTocMobile.displayName = 'TocMobile';\n\nexport default TocMobile;\n"],"mappings":";;;;;;;;;;AAaA,MAAM,YAAY,MACf,EAAE,OAAO,WAAW,UAAU,cAAc,eAAe,IAAI,WAAW,UAAU;CAGnF,MAAM,CAAC,YAAY,iBAAiBA,cAA2B,IAAI;EACjE;EACA,OAAO;EACR,CAAC;CAEF,MAAM,eAAe,MAAM,MAAM,SAAS,KAAK,OAAO,WAAW;CAEjE,MAAM,WAAW,cAAc,SAAS,MAAM,EAAE,CAAC,MAAM,CAAC;AAExD,QACE,oBAAC,gBAAD;EAAgB,OAAO,EAAE,OAAO;GAAE,UAAU;GAAI,UAAU;GAAG,EAAE;YAC7D,oBAAC,WAAD;GAAS,WAAW,OAAO;aACzB,oBAAC,UAAD;IACE,OAAA;IACA,WAAW,OAAO;IAClB,qBAAqB;IACrB,aAAa,EAAE,eACb,oBAAC,YAAD;KAAY,MAAM,WAAW,gBAAgB;KAAc,MAAM;KAAW,CAAA;cAG9E,oBAAC,SAAS,OAAV;KACE,aAAA;KACA,QAAQ,eAAe,aAAa,QAAQ;eAG5C,oBAAC,gBAAD;MAAgB,OAAO,EAAE,OAAO;OAAE,UAAU;OAAI,UAAU;OAAG,EAAE;gBAC7D,oBAAC,QAAD;OACgB;OACd,OAAO;OACP,cAAc,eAAe;OAC7B,WAAW,gBAAgB;AACzB,sBAAc,YAAY,QAAQ,KAAK,GAAG,CAAC;;OAE7C,CAAA;MACa,CAAA;KACF,EAZV,MAYU;IACR,CAAA;GACH,CAAA;EACK,CAAA;EAGtB;AAED,UAAU,cAAc"}