@xwadex/fesd-next 0.3.3 → 0.3.4-11

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.
Files changed (38) hide show
  1. package/README.md +1 -26
  2. package/dist/components/index.d.mts +2 -0
  3. package/dist/components/index.mjs +2 -0
  4. package/dist/components-DMsIAeFi.mjs +975 -0
  5. package/dist/components-DMsIAeFi.mjs.map +1 -0
  6. package/dist/hooks/index.d.mts +2 -0
  7. package/dist/hooks/index.mjs +2 -0
  8. package/dist/index-1SzidEVJ.d.mts +213 -0
  9. package/dist/index-OVM4Yt0j.d.mts +169 -0
  10. package/dist/index.d.mts +6 -0
  11. package/dist/index.mjs +5 -0
  12. package/dist/shadcns/index.d.mts +1332 -0
  13. package/dist/shadcns/index.mjs +2607 -0
  14. package/dist/shadcns/index.mjs.map +1 -0
  15. package/dist/types/index.d.mts +20 -0
  16. package/dist/utils/index.d.mts +17 -0
  17. package/dist/utils/index.mjs +60 -0
  18. package/dist/utils/index.mjs.map +1 -0
  19. package/package.json +59 -47
  20. package/dist/components/index.d.ts +0 -1
  21. package/dist/components/index.js +0 -1
  22. package/dist/components/myComponents/MyComponent.d.ts +0 -2
  23. package/dist/components/myComponents/MyComponent.js +0 -4
  24. package/dist/components/myComponents/MyComponent.module.scss +0 -3
  25. package/dist/components/myComponents/index.d.ts +0 -1
  26. package/dist/components/myComponents/index.js +0 -1
  27. package/dist/hooks/index.d.ts +0 -1
  28. package/dist/hooks/index.js +0 -1
  29. package/dist/hooks/useHooks.d.ts +0 -1
  30. package/dist/hooks/useHooks.js +0 -3
  31. package/dist/index.d.ts +0 -4
  32. package/dist/index.js +0 -4
  33. package/dist/types/index.d.ts +0 -4
  34. package/dist/utils/index.d.ts +0 -1
  35. package/dist/utils/index.js +0 -1
  36. package/dist/utils/someUtil.d.ts +0 -1
  37. package/dist/utils/someUtil.js +0 -3
  38. /package/dist/types/{index.js → index.mjs} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"components-DMsIAeFi.mjs","names":[],"sources":["../src/hooks/useDebounce.tsx","../src/hooks/useDebounceValue.tsx","../src/hooks/useCookies.tsx","../src/hooks/useDragResize.tsx","../src/hooks/useAsyncFetcher.tsx","../src/hooks/useMounted.tsx","../src/hooks/useEffectOne.tsx","../src/hooks/useEffectLeave.tsx","../src/hooks/useAnchors.tsx","../src/hooks/useHash.tsx","../src/components/anchors/anchors.tsx","../src/components/scroll-containers/lenis-scroll.tsx","../src/components/scroll-containers/scroll-containers.tsx","../src/components/scroll-containers/native-scroll.tsx","../src/components/embla-carousels/embla-carousels-hooks.tsx","../src/components/embla-carousels/embla-carousels.tsx","../src/components/emblas/embla-context.tsx","../src/components/emblas/embla.tsx","../src/components/emblas/embla-container.tsx","../src/components/emblas/emblas-pagination.tsx","../src/components/tests/tests.tsx"],"sourcesContent":["\n\nimport { useCallback, useEffect, useRef } from \"react\"\n\nexport interface DebounceTypes {\n\tcallback: () => any,\n\tdependency: any[],\n\tdelay?: number,\n\tactive?: boolean,\n}\n\nexport function useDebounce({\n\tcallback,\n\tdependency = [],\n\tdelay = 500,\n\tactive = true,\n}: DebounceTypes\n) {\n\n\tif (!active || !callback) return\n\n\tconst timerRef = useRef<any>(null)\n\n\tuseEffect(() => {\n\t\tif (timerRef.current) clearTimeout(timerRef.current)\n\t\ttimerRef.current = setTimeout(callback, delay)\n\n\t\treturn () => {\n\t\t\tif (timerRef.current) clearTimeout(timerRef.current)\n\t\t}\n\t}, [...dependency]);\n\n}\n","\n\nimport { useEffect, useRef, useState } from \"react\"\n\nexport function useDebounceValue<T>(value: T, delay = 500): T {\n\n\tconst [debounceValue, setDebounceValue] = useState<T>(value);\n\tconst timerRef = useRef<NodeJS.Timeout | string | number | undefined>(undefined)\n\n\tuseEffect(() => {\n\t\tif (timerRef.current) clearTimeout(timerRef.current);\n\t\ttimerRef.current = setTimeout(() => setDebounceValue(value), delay);\n\n\t\treturn () => {\n\t\t\tif (timerRef.current) clearTimeout(timerRef.current);\n\t\t};\n\t}, [value, delay]);\n\n\treturn debounceValue;\n};\n","\n\nimport Cookies from 'js-cookie'\n\n// wade 2024.12.06 (js-cookie 版本)\n\nexport function useCookies() {\n\tconst setCookies = (name: string, value: string, days = 7) => {\n\t\tCookies.set(name, value, { expires: days, path: \"/\" })\n\t}\n\n\tconst getCookies = (name: string): string | null => {\n\t\treturn Cookies.get(name) ?? null\n\t}\n\n\tconst updateCookies = (name: string, value: string, days = 7) => {\n\t\tif (getCookies(name) !== null) setCookies(name, value, days)\n\t}\n\n\tconst deleteCookies = (name: string) => {\n\t\tCookies.remove(name, { path: \"/\" })\n\t}\n\n\treturn { setCookies, getCookies, updateCookies, deleteCookies };\n}\n\n\n//\n\n// //wade 2024.12.06\n\n// export function useCookies() {\n\n// \tconst setCookies = (name: string, value: string, days = 7) => {\n// \t\tconst date = new Date();\n// \t\tdate.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n// \t\tconst expires = `expires=${date.toUTCString()}`;\n// \t\tdocument.cookie = `${name}=${encodeURIComponent(value)}; ${expires}; path=/`;\n// \t}\n\n// \tconst getCookies = (name: string) => {\n// \t\tconst cookies = document.cookie.split(\"; \");\n\n// \t\tfor (const cookie of cookies) {\n// \t\t\tconst [key, value] = cookie.split(\"=\");\n// \t\t\tif (key === name) return decodeURIComponent(value);\n// \t\t}\n\n// \t\treturn null; // 如果找不到,返回 null\n// \t}\n\n// \tconst updateCookies = (name: string, value: string, days = 7) =>\n// \t\tgetCookies(name) !== null && setCookies(name, value, days);\n\n\n// \tconst deleteCookies = (name: string) => {\n// \t\tdocument.cookie = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/`;\n// \t}\n\n// \treturn { setCookies, getCookies, updateCookies, deleteCookies }\n\n// }\n","\n\n//wade 2024.12.06\nimport { useEffect, useRef, useState } from \"react\"\n\nexport interface ResizeTypes {\n\twidth?: number | string\n\theight?: number | string\n}\n\nexport interface DragResizeProps {\n\tactive?: boolean\n\tdirection?:\n\t| \"horizontal\"\n\t| \"vertical\"\n\tminWidth?: number\n\tmaxWidth?: number\n\tminHeight?: number\n\tmaxHeight?: number\n\tonInit?: (size: ResizeTypes) => void\n\tonResizeStart?: (size: ResizeTypes) => void\n\tonResizing?: (size: ResizeTypes) => void\n\tonResizeEnd?: (size: ResizeTypes) => void\n}\n\nexport type DragResizeTypes = {\n\tdragRef: React.RefObject<HTMLDivElement | null>,\n\tresizeRef: React.RefObject<HTMLDivElement | null>\n\tresize?: ResizeTypes\n}\n\nexport function useDragResize({\n\tactive = true,\n\tdirection = \"horizontal\",\n\tminWidth,\n\tmaxWidth,\n\tminHeight,\n\tmaxHeight,\n\tonInit,\n\tonResizeStart,\n\tonResizing,\n\tonResizeEnd\n}: DragResizeProps\n): DragResizeTypes {\n\n\tconst dragRef = useRef<HTMLDivElement>(null)\n\tconst resizeRef = useRef<HTMLDivElement>(null)\n\n\tconst [resize, setResize] = useState<ResizeTypes>({ width: 0, height: 0 })\n\n\tconst getResizeSizeValue = () => {\n\t\tif (!resizeRef.current) return\n\n\t\tconst { width: w, height: h } = resizeRef.current.style\n\t\tconst width = Number(w.replace(\"px\", \"\")) ?? \"inherit\"\n\t\tconst height = Number(h.replace(\"px\", \"\")) ?? \"inherit\"\n\n\t\treturn { width }\n\t}\n\n\tconst setResizeValue = (clientX: number, clientY: number) => {\n\t\tif (!resizeRef.current) return\n\n\t\tconst rect = resizeRef.current.getBoundingClientRect()\n\t\tconst resizeWidth = clientX - rect.left\n\t\tconst resizeHeight = clientY - rect.top\n\n\t\tif (direction == \"horizontal\"\n\t\t\t&& (minWidth && resizeWidth >= minWidth)\n\t\t\t&& (maxWidth && resizeWidth <= maxWidth)\n\t\t) {\n\t\t\tresizeRef.current.style.width = resizeWidth + \"px\"\n\t\t\treturn { width: resizeWidth, height: undefined }\n\t\t}\n\n\t\tif (direction == \"vertical\"\n\t\t\t&& (minHeight && resizeWidth >= minHeight)\n\t\t\t&& (maxHeight && resizeWidth <= maxHeight)\n\t\t) {\n\t\t\tresizeRef.current.style.height = resizeHeight + \"px\"\n\t\t\treturn { width: undefined, height: resizeHeight }\n\t\t}\n\n\t}\n\n\tconst onInitCallback = () => {\n\t\tconst resizeValue = getResizeSizeValue()\n\t\tresizeValue && onInit?.(resizeValue)\n\t}\n\n\tconst removeEventListeners = () => {\n\t\tdocument.removeEventListener(\"mousemove\", onMouseMove)\n\t\tdocument.removeEventListener(\"mouseup\", onMouseUp)\n\t}\n\n\tconst onMouseMove = (e: MouseEvent) => {\n\t\tconst resizeValue = setResizeValue(e.clientX, e.clientY)\n\t\tif (!resizeValue) return\n\t\tsetResize(() => ({ ...resizeValue }))\n\t\tonResizing?.(resizeValue)\n\t}\n\n\tconst onMouseUp = () => {\n\t\tconst resizeValue = getResizeSizeValue()\n\t\tresizeValue && onResizeEnd?.(resizeValue)\n\t\tremoveEventListeners()\n\t}\n\n\tconst onDragRefMouseDown = (e: MouseEvent) => {\n\t\te.preventDefault()\n\n\t\tconst resizeValue = getResizeSizeValue()\n\t\tresizeValue && onResizeStart?.(resizeValue)\n\n\t\tdocument.addEventListener(\"mousemove\", onMouseMove)\n\t\tdocument.addEventListener(\"mouseup\", onMouseUp)\n\t}\n\n\tuseEffect(() => {\n\t\tif (active && dragRef.current && resizeRef.current) {\n\t\t\tdragRef.current.onmousedown = onDragRefMouseDown\n\t\t\tonInit && onInitCallback()\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (!dragRef?.current) return\n\t\t\tdragRef.current.onmousedown = null\n\t\t\tremoveEventListeners()\n\n\t\t}\n\t}, [active])\n\n\treturn { dragRef, resizeRef, resize }\n\n}\n","\n\nimport { useRef, useState, useEffect, useCallback } from \"react\"\n\ntype ReturnDatasTypes = {\n\tfetcher: (payload: PayloadTypes) => Promise<any>\n\tcancel: () => void\n\tpending: boolean\n}\n\ninterface PayloadTypes {\n\turl: string | URL | globalThis.Request,\n\toptions?: RequestInit\n}\n\nexport function useAsyncFetcher(): ReturnDatasTypes {\n\n\tconst [isPending, setPending] = useState(false)\n\tconst controllerRef = useRef<AbortController | null>(null)\n\n\tconst startFetch = useCallback(async ({ url, options }: PayloadTypes) => {\n\t\tif (isPending || !url) return\n\n\t\tconst controller = new AbortController()\n\t\tcontrollerRef.current = controller\n\n\t\tsetPending(true)\n\n\t\ttry {\n\t\t\tconst response = await fetch(url, {\n\t\t\t\tsignal: controller.signal,\n\t\t\t\t...options,\n\t\t\t})\n\t\t\tconst datas = await response.json()\n\t\t\treturn datas\n\n\t\t} catch (error) {\n\t\t\tconsole.error(\"useAsyncFetche startFetch error:\", error)\n\t\t\treturn { status: false, error: error }\n\n\t\t} finally {\n\t\t\tsetPending(false)\n\t\t}\n\n\t}, [isPending])\n\n\tconst cancelFetch = () => {\n\t\tcontrollerRef.current?.abort()\n\t\tsetPending(false)\n\t}\n\n\tuseEffect(() => {\n\t\treturn () => controllerRef.current?.abort()\n\t}, [])\n\n\treturn {\n\t\tpending: isPending,\n\t\tcancel: cancelFetch,\n\t\tfetcher: startFetch\n\t}\n}\n","\n\nimport { useEffect, useState } from \"react\"\n\nexport function useMounted() {\n\tconst [isMounded, setMounded] = useState(false)\n\tuseEffect(() => { setMounded(true) }, [])\n\treturn { isMounded }\n}\n","\n\nimport { useEffect, useRef } from \"react\"\n\nexport function useEffectOne(callback: () => void) {\n\tconst callbackRef = useRef<(() => void) | null>(callback)\n\tcallbackRef.current = callback\n\n\tuseEffect(() => {\n\t\tcallbackRef.current?.()\n\t\treturn () => {\n\t\t\tcallbackRef.current = null\n\t\t}\n\t}, [])\n}\n","\n\nimport { useEffect, useRef } from \"react\"\n\nexport function useEffectLeave(callback: () => void) {\n\tconst callbackRef = useRef<(() => void) | null>(callback)\n\tcallbackRef.current = callback\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tcallbackRef.current?.()\n\t\t\tcallbackRef.current = null\n\t\t}\n\t}, [])\n}\n","\n\n// update: 2025.11.12\n// version: 0.0.3.bate\n// dev: wade\n\nimport { useCallback, useLayoutEffect, useMemo, useRef } from \"react\"\nimport { useAnimate, motionValue } from \"motion/react\"\nimport { create } from \"zustand\"\nimport { getScrollContainerStores, getRootLenis } from \"@/packages/components\"\n\nimport type { AnimationPlaybackControlsWithThen, Easing } from \"motion/react\"\nimport Lenis from \"lenis\"\n\nconst ANCHOR_ATTRIBUTE = \"data-anchor\"\nconst OFFSETER_ATTRIBUTE = \"data-anchor-offseter\"\n\nexport interface AnimateOptions {\n\tduration?: number\n\tdelay?: number\n\tease?: Easing | Easing[] | undefined\n\tonScroll?: (lenis?: Lenis) => void\n\tonScrolling?: (value: number) => void\n\tonScrolled?: (lenis?: Lenis) => void\n}\n\nexport interface AnchorOptions extends AnimateOptions {\n\tanchor: string,\n\tcontainer?: string,\n\toffseters?: string | string[]\n\tdirection?: \"x\" | \"y\"\n\talign?: \"start\" | \"center\" | \"end\"\n\toffset?: number\n}\n\nexport interface ScrollOptions extends AnimateOptions {\n\tcontrollerKey: string\n\tcontainerDom: HTMLElement | Window\n\tanchorScrollValue: { left: number, top: number }\n\tcontainerScrollValue: { left: number, top: number }\n\tdirection?: AnchorOptions[\"direction\"]\n}\n\nexport type AnimateController = AnimationPlaybackControlsWithThen\n\nexport interface AnchorsMethods {\n\tregisterAnchors: (name: string) => {\n\t\t[key: string]: string | React.RefObject<null>;\n\t\tref: React.RefObject<null>;\n\t};\n\tregisterOffseters: (name: string) => {\n\t\t[key: string]: string | React.RefObject<null>;\n\t\tref: React.RefObject<null>;\n\t};\n\tsetStores: (options: AnchorStoreOptions) => void;\n\tgetStores: () => AnchorsStores;\n\tscrollToAnchor: (anchorOptions: AnchorOptions) => void;\n}\n\nexport function useAnchors(): AnchorsMethods {\n\tconst [_, animate] = useAnimate()\n\n\tconst controllerRef = useRef<Map<string, AnimateController>>(new Map())\n\n\tconst scrollAnimations = useCallback(({\n\t\tcontrollerKey,\n\t\tcontainerDom,\n\t\tanchorScrollValue,\n\t\tcontainerScrollValue,\n\t\tdirection = \"y\",\n\t\tduration = 1,\n\t\tdelay = 0,\n\t\tease = [0, 1, .5, .99],\n\t\tonScroll: onPlay,\n\t\tonScrolled,\n\t\tonScrolling,\n\t\t...props\n\t}: ScrollOptions) => {\n\n\t\tif (direction !== \"y\" && direction !== \"x\") {\n\t\t\tconsole.error(`Scroll Direction isn't 'x' or 'y' `)\n\t\t\treturn\n\t\t}\n\n\t\tconst { left: scrollLeft, top: scrollTop } = containerScrollValue\n\t\tconst { left: anchorLeft, top: anchorTop } = anchorScrollValue\n\n\t\tconst isScrollX = direction === \"x\"\n\t\tconst isScrollY = direction === \"y\"\n\n\t\tconst startValue = isScrollX ? scrollLeft : scrollTop\n\t\tconst endValue = isScrollX ? anchorLeft : anchorTop\n\n\t\tif (startValue == endValue) {\n\t\t\tcontrollerRef.current.delete(controllerKey)\n\t\t\treturn\n\t\t}\n\n\t\tconst motionStartValue = motionValue(startValue)\n\n\t\tconst onUpdate = (value: number) => {\n\t\t\tconst left = isScrollX ? value : undefined\n\t\t\tconst top = isScrollY ? value : undefined\n\t\t\tcontainerDom.scrollTo({ left, top })\n\t\t\tonScrolling?.(value)\n\t\t}\n\n\t\tconst onComplete = () => {\n\t\t\tcontrollerRef.current.delete(controllerKey)\n\t\t\tonScrolled?.()\n\t\t}\n\n\t\tconst options = {\n\t\t\tduration,\n\t\t\tease,\n\t\t\tdelay,\n\t\t\tonPlay,\n\t\t\tonUpdate,\n\t\t\tonComplete,\n\t\t\t...props\n\t\t}\n\n\t\tcontrollerRef.current.set(\n\t\t\tcontrollerKey, animate(motionStartValue, endValue, options)\n\t\t)\n\t}, [])\n\n\tconst scrollToAnchor = useCallback((\n\t\tanchorOptions: AnchorOptions\n\t) => {\n\t\tconst {\n\t\t\tanchor: anchorName,\n\t\t\tcontainer: containerName,\n\t\t\toffseters,\n\t\t\talign,\n\t\t\toffset = 0,\n\t\t\tdirection = \"y\",\n\t\t\t...options\n\t\t} = anchorOptions\n\n\t\tconst anchorsStores = getAnchorsStores()\n\t\tconst scrollContainersStores = getScrollContainerStores()\n\n\t\tconst isScrolltoAnchor = anchorName !== \"#\"\n\t\tconst isScrollContainer = containerName && containerName !== \"window\"\n\t\tconst controllerKey = containerName ?? \"window\"\n\n\t\tif (controllerRef.current.has(controllerKey)) {\n\t\t\tcontrollerRef.current.get(controllerKey)?.stop()\n\t\t\tcontrollerRef.current.delete(controllerKey)\n\t\t}\n\n\t\tconst anchorDom = isScrolltoAnchor\n\t\t\t? anchorsStores.anchors.get(anchorName) as HTMLElement\n\t\t\t: undefined\n\t\tif (isScrolltoAnchor && !(anchorDom instanceof HTMLElement)) return\n\n\t\tconst containerDom = isScrollContainer\n\t\t\t? scrollContainersStores.containers.get(containerName) as HTMLElement\n\t\t\t: window\n\n\t\tif (!containerDom) return\n\n\t\tconst getOffseterDomClient = (offseters: string) => {\n\t\t\tconst offseterDom = anchorsStores.offseters.get(offseters) as HTMLElement\n\t\t\tconst { clientWidth, clientHeight } = offseterDom || {}\n\t\t\treturn { width: clientWidth ?? 0, height: clientHeight ?? 0 }\n\t\t}\n\n\t\tconst offsets = Array.isArray(offseters)\n\t\t\t? offseters.reduce((init: Record<string, number>, offseter: string) => {\n\t\t\t\tconst { width, height } = getOffseterDomClient(offseter)\n\t\t\t\treturn {\n\t\t\t\t\twidth: (init.width ?? 0) + width,\n\t\t\t\t\theight: (init.height ?? 0) + height\n\t\t\t\t}\n\t\t\t}, {})\n\t\t\t: typeof offseters == \"string\"\n\t\t\t\t? getOffseterDomClient(offseters as string)\n\t\t\t\t: { width: 0, height: 0 }\n\n\t\tconst offsetValue = {\n\t\t\twidth: direction === \"x\" ? offsets.width + offset : 0,\n\t\t\theight: direction === \"y\" ? offsets.height + offset : 0,\n\t\t}\n\n\t\tconst isLenisScroll = containerDom == window\n\t\t\t&& window.document.documentElement.classList.contains(\"lenis\")\n\t\t\t|| containerDom instanceof Lenis\n\n\t\tif (isLenisScroll) {\n\t\t\tconst lenis = (isScrollContainer ? (containerDom as Lenis) : getRootLenis()?.root)\n\t\t\t// TODO 尚未找到可以判斷已經移動到錨點位置的方式\n\t\t\tif (!lenis) return\n\n\t\t\tconst directionOffset = direction === \"x\"\n\t\t\t\t? offsetValue.width + offset\n\t\t\t\t: offsetValue.height + offset\n\n\t\t\t// TODO 尚未建立lenis options完整設定\n\t\t\tlenis.scrollTo(\n\t\t\t\tanchorDom ?? 0, {\n\t\t\t\toffset: (directionOffset * -1),\n\t\t\t\tonStart: (lenis) => options?.onScroll?.(lenis),\n\t\t\t\tonComplete: (lenis) => options?.onScrolled?.(lenis)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\tconst containerScrollValue = {\n\t\t\ttop: Math.round(isScrollContainer\n\t\t\t\t? (containerDom as HTMLElement).scrollTop\n\t\t\t\t: (containerDom as Window).pageYOffset),\n\t\t\tleft: Math.round(isScrollContainer\n\t\t\t\t? (containerDom as HTMLElement).scrollLeft\n\t\t\t\t: pageXOffset)\n\t\t}\n\n\t\tconst containerRect = isScrollContainer\n\t\t\t? (containerDom as HTMLElement).getBoundingClientRect()\n\t\t\t: { top: 0, left: 0 }\n\n\t\tconst containerOffsetValue = {\n\t\t\tleft: containerScrollValue.left - (isScrollContainer ? containerRect.left : 0),\n\t\t\ttop: containerScrollValue.top - (isScrollContainer ? containerRect.top : 0)\n\t\t}\n\n\t\tconst anchorRect = anchorDom ? anchorDom.getBoundingClientRect() : { left: 0, top: 0 }\n\n\t\tconst anchorScrollValue = {\n\t\t\tleft: isScrolltoAnchor\n\t\t\t\t? Math.round(anchorRect.left + containerOffsetValue.left - offsetValue.width)\n\t\t\t\t: offsetValue.width,\n\t\t\ttop: isScrolltoAnchor\n\t\t\t\t? Math.round(anchorRect.top + containerOffsetValue.top - offsetValue.height)\n\t\t\t\t: offsetValue.height\n\t\t}\n\n\t\tscrollAnimations({\n\t\t\tcontrollerKey,\n\t\t\tcontainerDom,\n\t\t\tcontainerScrollValue,\n\t\t\tanchorScrollValue,\n\t\t\tdirection,\n\t\t\t...options\n\t\t})\n\n\t}, [])\n\n\tconst returnsMemo = useMemo(() => ({\n\t\tregisterAnchors,\n\t\tregisterOffseters,\n\t\tsetStores: setAnchorsStore,\n\t\tgetStores: getAnchorsStores,\n\t\tscrollToAnchor\n\t}), [scrollToAnchor])\n\n\treturn returnsMemo\n}\n\nexport interface RegistrationDatas {\n\tkey: keyof AnchorsStores\n\tname: string\n}\n\nexport function useRegistration({ key, name }: RegistrationDatas) {\n\tconst ref = useRef(null)\n\tconst attribute = key == \"anchors\" ? ANCHOR_ATTRIBUTE : OFFSETER_ATTRIBUTE\n\n\tuseLayoutEffect(() => {\n\t\tsetAnchorsStore({ key, action: \"add\", node: ref.current, name })\n\t\treturn () => { setAnchorsStore({ key, action: \"remove\", node: ref.current, name }) }\n\t}, [])\n\n\treturn { ref, [attribute]: name }\n}\n\nexport function registerAnchors(name: string) {\n\treturn useRegistration({ key: \"anchors\", name })\n}\n\nexport function registerOffseters(name: string) {\n\treturn useRegistration({ key: \"offseters\", name })\n}\n\nexport interface AnchorsStores {\n\tanchors: Map<string, HTMLElement | null>\n\toffseters: Map<string, HTMLElement | null>\n}\n\nexport const useAnchorsStores = create<AnchorsStores>()(() => ({\n\tanchors: new Map(),\n\toffseters: new Map(),\n}))\n\nexport const getAnchorsStores = () => useAnchorsStores.getState()\n\nexport interface AnchorStoreOptions extends RegistrationDatas {\n\tnode: HTMLDivElement | null\n\taction: \"add\" | \"remove\",\n}\n\nexport const setAnchorsStore = (options: AnchorStoreOptions) => {\n\tconst { key, action, name, node } = options\n\n\tuseAnchorsStores.setState(stores => {\n\t\tswitch (key) {\n\t\t\tcase \"anchors\":\n\t\t\t\tconst anchorDom = stores.anchors?.get(name)\n\t\t\t\tif (action == \"add\" && node instanceof HTMLElement) {\n\t\t\t\t\tif (anchorDom == node) return stores\n\t\t\t\t\tstores.anchors?.set(name, node)\n\n\t\t\t\t} else if (action == \"remove\" && anchorDom) {\n\t\t\t\t\tstores.anchors?.delete(name)\n\t\t\t\t}\n\n\t\t\t\treturn { anchors: stores.anchors }\n\n\t\t\tcase \"offseters\":\n\t\t\t\tconst offseterDom = stores.offseters?.get(name)\n\n\t\t\t\tif (action == \"add\" && node instanceof HTMLElement) {\n\t\t\t\t\tif (offseterDom == node) return stores\n\t\t\t\t\tstores.offseters?.set(name, node)\n\n\t\t\t\t} else if (action == \"remove\" && offseterDom) {\n\t\t\t\t\tstores.offseters?.delete(name)\n\t\t\t\t}\n\t\t\t\treturn { offseters: stores.offseters }\n\n\t\t\tdefault:\n\t\t\t\treturn stores\n\t\t}\n\t})\n}\n\n\n","\n\nimport { useEffect, useState } from \"react\"\n\nexport function useHash() {\n\n\tconst [hash, setHash] = useState<string>(\"\")\n\n\tconst updateHash = () => setHash(window.location.hash)\n\n\tconst hashchangeEvent = (e: HashChangeEvent) => {\n\t\te.preventDefault?.()\n\t\tupdateHash()\n\t}\n\n\t// 初始化\n\n\tuseEffect(() => {\n\t\tupdateHash()\n\t\twindow.addEventListener(\"hashchange\", hashchangeEvent)\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"hashchange\", hashchangeEvent)\n\t\t}\n\t}, [])\n\n\treturn hash\n}\n","\n\n// update: 2025.11.12\n// version: 0.0.2.bate\n// dev: wade\n\nimport { useAnchors } from \"@/packages/hooks\"\nimport type { AnchorOptions } from \"@/packages/hooks\"\nimport { cn } from \"@/packages/shadcns\"\n\n\ninterface PropsType extends React.ComponentProps<\"div\"> {\n\tname: string\n}\n\nexport const AnchorTarget: React.FC<PropsType> = ({ name, ...props }) => {\n\tconst { registerAnchors } = useAnchors()\n\treturn (\n\t\t<div\n\t\t\t{...props}\n\t\t\t{...registerAnchors(name)}\n\t\t/>\n\t)\n}\n\nexport const AnchorOffseter: React.FC<PropsType> = ({ name, ...props }) => {\n\tconst { registerOffseters } = useAnchors()\n\treturn (\n\t\t<div\n\t\t\t{...props}\n\t\t\t{...registerOffseters(name)}\n\t\t/>\n\t)\n}\n\ntype TriggerProps = AnchorOptions & React.ComponentProps<\"div\"> & {}\n\nexport const AnchorTrigger: React.FC<TriggerProps> = ({\n\tchildren,\n\tclassName,\n\t...options\n}) => {\n\tconst { scrollToAnchor } = useAnchors()\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(className)}\n\t\t\tonClick={() => scrollToAnchor(options)}\n\t\t>{children}</div>\n\t)\n}\n\nexport const Anchors = {\n\tTrigger: AnchorTrigger,\n\tTarget: AnchorTarget,\n\tOffseter: AnchorOffseter\n}\n","\n\n// update: 2025.11.12\n// version: 0.0.1.bate\n// dev: wade\n\nimport { memo, useEffect, useEffectEvent, useLayoutEffect, useRef, useState } from \"react\"\nimport { ReactLenis, useLenis, } from \"lenis/react\"\nimport Lenis from 'lenis'\nimport { create } from \"zustand\"\nimport { ScrollContainerContext, setScrollContainerStore } from \"./scroll-containers\"\nimport { cn } from \"@/packages/shadcns\"\nimport type { LenisRef } from \"lenis/react\"\nimport type { LenisOptions } from \"lenis\"\n\nexport interface LenisScrollProps {\n\troot?: boolean | \"asChild\"\n\tname?: string\n\toptions?: LenisOptions\n\tchildren?: React.ReactNode\n\tclassName?: string\n}\n\nexport const LenisScroll: React.FC<LenisScrollProps> = memo((props) => {\n\n\treturn (\n\t\t<>{props?.root == true\n\t\t\t? <LenisRootScroll {...props} />\n\t\t\t: <LenisContainerScroll {...props} />\n\t\t}\t</>)\n})\n\nexport const LenisRootScroll: React.FC<LenisScrollProps> = memo(({\n\troot,\n\toptions\n}) => {\n\n\tconst lenis = useLenis()\n\tconst lenisRef = useRef<LenisRef>(null)\n\n\tconst registerRootLenis = useEffectEvent(() => {\n\t\tif (!root == true || !lenis) return\n\t\tsetRootLenis(lenis)\n\t})\n\n\tuseEffect(() => { registerRootLenis() }, [lenis])\n\n\treturn (\n\t\t<ReactLenis\n\t\t\tref={lenisRef}\n\t\t\troot={root}\n\t\t\toptions={{\n\t\t\t\tautoRaf: true,\n\t\t\t\tlerp: 0.0005,\n\t\t\t\tduration: 1.5,\n\t\t\t\tsmoothWheel: true,\n\t\t\t\t...options\n\t\t\t}} />\n\t)\n})\n\ntype LenisScrollContainerProps = Omit<LenisScrollProps, \"root\">\ntype RefStateType = React.RefObject<HTMLDivElement | null> | undefined\n\nexport const LenisContainerScroll: React.FC<LenisScrollContainerProps> = memo(({\n\tname,\n\tclassName,\n\tchildren,\n\toptions,\n\t...restProps\n}) => {\n\n\tconst [containerRef, setContainerRef] = useState<RefStateType>();\n\n\tconst wrapperRef = useRef<HTMLDivElement>(null)\n\tconst contentRef = useRef<HTMLDivElement>(null)\n\n\tconst initLenis = useEffectEvent(() => {\n\t\tif (!wrapperRef.current || !contentRef.current || !name) return\n\n\t\tconst lenis = new Lenis({\n\t\t\twrapper: wrapperRef.current,\n\t\t\tcontent: contentRef.current,\n\t\t\tautoRaf: true,\n\t\t\t...options\n\t\t})\n\n\t\tsetContainerRef(contentRef)\n\t\tsetScrollContainerStore({ name, action: \"add\", node: lenis })\n\n\t\treturn () => {\n\t\t\tsetScrollContainerStore({ name, action: \"remove\" })\n\t\t\tlenis?.destroy?.()\n\t\t}\n\t})\n\n\tuseLayoutEffect(() => {\n\t\tconst effect = initLenis()\n\t\treturn effect\n\t}, [name, options])\n\n\treturn (\n\t\t<div\n\t\t\tref={wrapperRef}\n\t\t\tdata-lenis-scroll={name}\n\t\t\tclassName={cn(\"group overflow-hidden\", className)}\n\t\t\t{...restProps}\n\n\t\t>\n\t\t\t<div\n\t\t\t\tref={contentRef}\n\t\t\t\tclassName={cn(\"h-full\", \"relative\", \"will-change-transform overscroll-contain\")}\n\t\t\t>\n\t\t\t\t<ScrollContainerContext value={{ containerRef }}>\n\t\t\t\t\t{children}\n\t\t\t\t</ScrollContainerContext>\n\t\t\t</div>\n\t\t</div>\n\t)\n})\n\ninterface LenisStores {\n\troot?: Lenis | null\n}\n\nexport const useLenisStores = create<LenisStores>()(() => ({\n\troot: null,\n}))\n\nexport const setRootLenis = (lenis: Lenis) => useLenisStores.setState(() => {\n\treturn { root: lenis }\n})\n\nexport const getRootLenis = () => useLenisStores.getState()\n\n\n\n","\n\n// update: 2025.11.12\n// version: 0.0.1.bate\n// dev: wade\n\nimport { createContext, use } from \"react\"\nimport Lenis from \"lenis\"\nimport { create } from \"zustand\"\nimport { NativeScroll } from \"./native-scroll\"\nimport { LenisScroll, LenisScrollProps } from \"./lenis-scroll\"\n\ntype PropsType<T extends React.ElementType = \"div\"> = React.ComponentProps<T> & LenisScrollProps & {\n\tname: string\n\tlenis?: boolean\n}\n\nexport const ScrollContainer = <T extends React.ElementType = \"div\">({\n\tname, lenis = false, ...props\n}: PropsType<T>) => {\n\n\treturn (\n\t\t<>{lenis\n\t\t\t? <LenisScroll name={name} {...props} />\n\t\t\t: <NativeScroll name={name} {...props} />\n\t\t}</>\n\t)\n}\n\nexport interface ScrollContainerContext {\n\tcontainerRef: React.RefObject<HTMLDivElement | null> | undefined\n}\n\nexport const ScrollContainerContext = createContext<ScrollContainerContext | null>(null)\n\nexport const useScrollContainerContext = () => {\n\tconst context = use(ScrollContainerContext)\n\tif (!context) throw new Error(\"useScrollContainerContext must be used inside ScrollContainerProvider\")\n\treturn context\n}\n\nexport interface ScrollContainersStores {\n\tcontainers: Map<string, Lenis | HTMLDivElement | null>\n}\n\nexport const useScrollContainersStores = create<ScrollContainersStores>()(() => ({\n\tcontainers: new Map(),\n}))\n\n\nexport const getScrollContainer = (name: string) => {\n\tconst stores = useScrollContainersStores.getState()\n\treturn stores.containers?.get(name)\n}\n\nexport const getScrollContainerStores = () => useScrollContainersStores.getState()\n\nexport interface SetStoreOptions {\n\tname: string\n\tnode?: Lenis | HTMLDivElement | null\n\taction: \"add\" | \"remove\",\n}\n\nexport const setScrollContainerStore = (options: SetStoreOptions) => {\n\tconst { action, name, node } = options\n\n\tuseScrollContainersStores.setState(stores => {\n\t\tconst containerDom = stores.containers?.get(name)\n\t\tconst isContainerNode = node instanceof Lenis || node instanceof HTMLDivElement\n\n\t\tif (action == \"add\" && isContainerNode) {\n\t\t\tif (containerDom == node) return stores\n\t\t\t// console.log(\"node\", node, name);\n\t\t\tstores.containers?.set(name, node)\n\n\t\t} else if (action == \"remove\" && containerDom) {\n\t\t\tstores.containers?.delete(name)\n\t\t}\n\n\t\treturn { containers: stores.containers }\n\t})\n}\n","\n\n// update: 2025.11.12\n// version: 0.0.1.bate\n// dev: wade\n\nimport { memo, useEffectEvent, useEffect, useRef, useState } from \"react\"\nimport { ScrollContainerContext, setScrollContainerStore } from \"./scroll-containers\"\nimport { cn } from \"@/packages/shadcns\"\n\ntype PropsType<T extends React.ElementType = \"div\"> = React.ComponentProps<T> & {\n\tname: string\n\ttag?: T\n}\n\nexport const NativeScroll = memo(<T extends React.ElementType = \"div\">({\n\ttag: Component = \"div\",\n\tname,\n\tclassName,\n\t...restProps\n}: PropsType<T>) => {\n\n\tconst componentRef = useRef<HTMLDivElement | null>(null)\n\tconst [containerRef, setContainerRef] = useState<React.RefObject<HTMLDivElement | null> | undefined>();\n\n\tconst nativeEffect = useEffectEvent(() => {\n\t\tif (!componentRef.current) return\n\t\tsetContainerRef(componentRef)\n\t\tsetScrollContainerStore({ name, action: \"add\", node: componentRef.current })\n\t\treturn () => { setScrollContainerStore({ name, action: \"remove\" }) }\n\t})\n\n\tuseEffect(() => {\n\t\tconst effect = nativeEffect()\n\t\treturn effect\n\t}, [componentRef?.current])\n\n\treturn (\n\t\t<ScrollContainerContext value={{ containerRef }} >\n\t\t\t<Component\n\t\t\t\tref={componentRef}\n\t\t\t\tdata-native-scroll={name}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"overflow-auto\",\n\t\t\t\t\t\"will-change-transform\",\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\t{...restProps}\n\t\t\t/>\n\t\t</ScrollContainerContext>\n\t)\n})\n","\n\n// update: 2025.11.20\n// version: 0.0.1.bate\n// dev: wade\n\nimport { useCallback, useEffect, useEffectEvent, useMemo, useState } from \"react\"\nimport useEmblaCarousel from \"embla-carousel-react\"\nimport { WheelGesturesPlugin } from \"embla-carousel-wheel-gestures\"\nimport Autoplay from \"embla-carousel-autoplay\"\nimport AutoScroll from \"embla-carousel-auto-scroll\"\nimport AutoHeight from \"embla-carousel-auto-height\"\nimport ClassNames from \"embla-carousel-class-names\"\nimport Fade from \"embla-carousel-fade\"\nimport type { UseEmblaCarouselType } from \"embla-carousel-react\"\nimport type { AutoplayOptionsType } from \"embla-carousel-autoplay\"\nimport type { AutoScrollOptionsType } from \"embla-carousel-auto-scroll\"\nimport type { AutoHeightOptionsType } from \"embla-carousel-auto-height\"\nimport type { ClassNamesOptionsType } from \"embla-carousel-class-names\"\nimport type { FadeOptionsType } from \"embla-carousel-fade\"\n\ntype CarouselApi = UseEmblaCarouselType[1]\ntype UseCarouselParameters = Parameters<typeof useEmblaCarousel>\ntype CarouselOptions = UseCarouselParameters[0]\n\nexport interface EmblaCarouselsHooksTypes {\n\toptions?: CarouselOptions\n\tautoplay?: AutoplayOptionsType | true\n\tautoScroll?: AutoScrollOptionsType | true\n\tclassNames?: ClassNamesOptionsType | true\n\tautoHeight?: AutoHeightOptionsType | true\n\tfade?: FadeOptionsType | true\n\twheel?: {\n\t\twheelDraggingClass?: string\n\t\tforceWheelAxis?: \"x\" | \"y\"\n\t\ttarget?: Element\n\t} | true\n\tsetApi?: (api: CarouselApi) => void\n}\n\nexport function emblaCarouselsHooks({\n\toptions,\n\tautoplay,\n\tautoScroll,\n\tclassNames,\n\tautoHeight,\n\tfade,\n\twheel,\n\tsetApi,\n}: EmblaCarouselsHooksTypes) {\n\n\tconst orientation = options?.axis ?? \"x\"\n\n\tconst plugins = useMemo(() => ([\n\t\tautoplay && Autoplay(typeof autoplay == \"boolean\" ? undefined : autoplay),\n\t\tautoScroll && AutoScroll(typeof autoScroll == \"boolean\" ? undefined : autoScroll),\n\t\tautoHeight && AutoHeight(typeof autoHeight == \"boolean\" ? undefined : autoHeight),\n\t\tclassNames && ClassNames(typeof classNames == \"boolean\" ? undefined : classNames),\n\t\tfade && Fade(typeof fade == \"boolean\" ? undefined : fade),\n\t\twheel && WheelGesturesPlugin(typeof wheel == \"boolean\" ? undefined : wheel),\n\t].filter(\n\t\tplugin => plugin\n\t)), [\n\t\tautoplay,\n\t\tautoScroll,\n\t\tclassNames,\n\t\tfade,\n\t\twheel,\n\t\tautoHeight\n\t]) as any[]\n\n\tconst [emblaRef, emblaApi] = useEmblaCarousel(options, plugins)\n\n\tconst [currentIndex, setCurrentIndex] = useState(0)\n\n\tconst [isScrollPrev, setIsScrollPrev] = useState(false)\n\tconst [isScrollNext, setIsScrollNext] = useState(false)\n\n\tconst scrollPrev = useCallback(() => {\n\t\temblaApi?.scrollPrev()\n\t}, [emblaApi])\n\n\tconst scrollNext = useCallback(() => {\n\t\temblaApi?.scrollNext()\n\t}, [emblaApi])\n\n\tconst onKeyDownCapture = useCallback((event: React.KeyboardEvent<HTMLDivElement>) => {\n\t\tconsole.log(\"key...\")\n\t\tif (event.key === \"ArrowLeft\") {\n\t\t\tevent.preventDefault()\n\t\t\tscrollPrev()\n\t\t} else if (event.key === \"ArrowRight\") {\n\t\t\tevent.preventDefault()\n\t\t\tscrollNext()\n\t\t}\n\t}, [scrollPrev, scrollNext])\n\n\tconst onSelect = useCallback((api: CarouselApi) => {\n\t\tif (!api) return\n\t\tsetCurrentIndex(api?.selectedScrollSnap())\n\t\tsetIsScrollPrev(api.canScrollPrev())\n\t\tsetIsScrollNext(api.canScrollNext())\n\t}, [])\n\n\tconst initalEffect = useEffectEvent(() => {\n\t\tif (!emblaApi || !setApi) return\n\n\t\tsetApi?.(emblaApi)\n\t\tonSelect(emblaApi)\n\n\t\temblaApi.on(\"reInit\", onSelect)\n\t\temblaApi.on(\"select\", onSelect)\n\n\t\treturn () => {\n\t\t\temblaApi?.off(\"select\", onSelect)\n\t\t}\n\t})\n\n\tuseEffect(() => {\n\t\tconst events = initalEffect()\n\t\treturn () => { events?.() }\n\t}, [emblaApi])\n\n\n\treturn {\n\t\temblaRef,\n\t\temblaApi,\n\t\torientation,\n\t\tcurrentIndex,\n\t\tisScrollPrev,\n\t\tisScrollNext,\n\t\tscrollPrev,\n\t\tscrollNext,\n\t\tonKeyDownCapture\n\t} as {\n\t\temblaRef: (node: HTMLElement | null) => void\n\t\temblaApi: CarouselApi\n\t\torientation: \"x\" | \"y\"\n\t\tcurrentIndex: number\n\t\tisScrollPrev: boolean\n\t\tisScrollNext: boolean\n\t\tscrollPrev: () => void\n\t\tscrollNext: () => void\n\t\tonKeyDownCapture: (event: React.KeyboardEvent<HTMLDivElement>) => void\n\t}\n\n}\n","\n\n// update: 2025.11.20\n// version: 0.0.1.bate\n// dev: wade\n\nimport { createContext, memo, use, useMemo } from \"react\"\nimport useEmblaCarousel from \"embla-carousel-react\"\nimport { emblaCarouselsHooks, } from \"./embla-carousels-hooks\"\nimport { cn } from \"@/packages/shadcns\"\nimport type { EmblaCarouselsHooksTypes } from \"./embla-carousels-hooks\"\n\nexport type CarouselsContextProps = {\n\temblaRef: ReturnType<typeof useEmblaCarousel>[0]\n\temblaApi: ReturnType<typeof useEmblaCarousel>[1]\n\tcurrentIndex?: number\n\torientation: \"x\" | \"y\"\n\tisScrollPrev: boolean\n\tisScrollNext: boolean\n\tscrollPrev: () => void\n\tscrollNext: () => void\n}\n\nconst CarouselsContext = createContext<CarouselsContextProps | null>(null)\n\nexport const useCarouselsContext = () => {\n\tconst context = use(CarouselsContext)\n\tif (!context) throw new Error(\"useCarousel must be used within a <Carousel />\")\n\treturn context\n}\n\nexport interface PropsTypes extends EmblaCarouselsHooksTypes, React.ComponentProps<\"div\"> { }\n\nexport const EmblaCarouselsRoots: React.FC<PropsTypes> = memo(({\n\tchildren,\n\tclassName,\n\tsetApi,\n\toptions,\n\tautoplay,\n\tautoScroll,\n\tclassNames,\n\tautoHeight,\n\tfade,\n\twheel,\n\t...props\n}) => {\n\n\tconst {\n\t\temblaRef,\n\t\temblaApi,\n\t\torientation,\n\t\tcurrentIndex,\n\t\tisScrollPrev,\n\t\tisScrollNext,\n\t\tscrollPrev,\n\t\tscrollNext,\n\t\tonKeyDownCapture,\n\t} = emblaCarouselsHooks({\n\t\tsetApi,\n\t\toptions,\n\t\tautoplay,\n\t\tautoScroll,\n\t\tclassNames,\n\t\tautoHeight,\n\t\tfade,\n\t\twheel,\n\t})\n\n\tconst contextValue = useMemo(() => ({\n\t\temblaRef,\n\t\temblaApi,\n\t\torientation,\n\t\tcurrentIndex,\n\t\tisScrollPrev,\n\t\tisScrollNext,\n\t\tscrollPrev,\n\t\tscrollNext,\n\t}), [\n\t\temblaRef,\n\t\temblaApi,\n\t\torientation,\n\t\tcurrentIndex,\n\t\tisScrollPrev,\n\t\tisScrollNext,\n\t\tscrollPrev,\n\t\tscrollNext,\n\t])\n\n\treturn (\n\t\t<CarouselsContext value={contextValue}>\n\t\t\t<div\n\t\t\t\tdata-component=\"embla-carousels\"\n\t\t\t\tonKeyDownCapture={onKeyDownCapture}\n\t\t\t\tclassName={cn(\"relative overflow-hidden\", className)}\n\t\t\t\taria-roledescription=\"embla-carousels\"\n\t\t\t\trole=\"region\"\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t</CarouselsContext>\n\t)\n})\n\nexport const EmblaCarouselsContents: React.FC<React.ComponentProps<\"div\">> = memo(({ className, ...props }) => {\n\tconst { emblaRef, orientation } = useCarouselsContext()\n\n\treturn (\n\t\t<div\n\t\t\tref={emblaRef}\n\t\t\tclassName=\"overflow-hidden\"\n\t\t\tdata-component=\"embla-carousels-contents\"\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"flex\",\n\t\t\t\t\torientation === \"x\" ? \"flex-row\" : \"flex-col\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</div>\n\t)\n})\n\nexport const EmblaCarouselsSlides: React.FC<React.ComponentProps<\"div\">> = memo(({ className, ...props }) => {\n\n\treturn (\n\t\t<div\n\t\t\trole=\"group\"\n\t\t\taria-roledescription=\"slide\"\n\t\t\tdata-component=\"embla-carousels-slides\"\n\t\t\tclassName={cn(\n\t\t\t\t\"min-w-0 shrink-0 grow-0 basis-full\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t)\n})\n\nexport const EmblaCarousels = {\n\tRoots: EmblaCarouselsRoots,\n\tContents: EmblaCarouselsContents,\n\tSlides: EmblaCarouselsSlides,\n}\n\n","\n\n\nimport { createContext, use } from \"react\"\nimport type { EmblaViewportRefType } from \"embla-carousel-react\"\nimport type { EmblaCarouselType } from 'embla-carousel';\n\ninterface CarouselContextTypes {\n\tdatas: []\n\temblaRef?: EmblaViewportRefType\n\temblaApi?: EmblaCarouselType | null\n\n\tselectIndex: number\n\tscrollSnaps: number[]\n\n\tnextScroll: () => void\n\tprevScroll: () => void\n\tscrollToIndex: (index: number) => void\n\n\tautoPlayReset: () => void\n\tautoPlayStop: () => void\n\tautoPlayPlay: () => void\n}\n\nconst CarouselContext = createContext<CarouselContextTypes | null>(null)\n\nexport const CarouselContextProvider = (props: {\n\tchildren: React.ReactNode\n\tvalue: CarouselContextTypes\n}) => {\n\treturn <CarouselContext {...props} />\n}\n\nexport const useCarouselContext = () => {\n\tconst context = use(CarouselContext)\n\tif (!context) throw new Error(\"useCMSData must be used inside CMSProvider\")\n\treturn context\n}\n\n","\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\"\nimport useEmblaCarousel from \"embla-carousel-react\"\nimport { EmblaCarouselType, EmblaOptionsType } from \"embla-carousel\"\nimport { cn } from \"@/packages/shadcns\"\nimport { CarouselContextProvider } from \"./embla-context\"\nimport type { AutoplayOptionsType } from \"embla-carousel-autoplay\"\nimport Autoplay from \"embla-carousel-autoplay\"\n\n// 1. Autoplay\n// 2. 頁碼 2-1動態點點 / 2-2頁碼要跟張數整除\n// 3. fade\n\nexport interface PropsTypes extends EmblaOptionsType {\n\tchildren?: React.ReactNode\n\tclassName?: string\n\toptions?: EmblaOptionsType\n\tdatas?: any\n\n\tautoplayEnabled?: boolean // 預設開啟\n\tautoplayOptions?: AutoplayOptionsType\n\n\tsetApi?: any\n\tsetMethods?: any\n\tsetRef?: any\n\tstyle?: any\n\tcontrols?: any\n\n\tplugins?: any\n\n\tonScrolled?: (index: number) => void\n}\n\nconst Embla: React.FC<PropsTypes> = ({\n\tchildren,\n\tclassName,\n\toptions,\n\tdatas,\n\n\tautoplayEnabled = true,\n\tautoplayOptions,\n\n\tsetApi,\n\tsetMethods,\n\tsetRef,\n\n\tstyle,\n\tcontrols,\n\n\tonScrolled\n}) => {\n\n\tconst { loop, duration = 40 } = options || {}\n\n\tconst autoplaySetting = useMemo(() => {\n\t\tif (!autoplayEnabled) return\n\t\treturn [Autoplay({ playOnInit: true, delay: 5000, stopOnInteraction: false, ...autoplayOptions })]\n\t}, [autoplayEnabled, autoplayOptions])\n\n\tconst [emblaRef, emblaApi] = useEmblaCarousel({ ...options, loop, duration }, autoplaySetting)\n\n\tconst [selectIndex, setSelectIndex] = useState(0)\n\n\tconst [scrollSnaps, setScrollSnaps] = useState<number[]>([])\n\n\tconst nextScroll = useCallback(() => {\n\t\tif (!emblaApi) return\n\t\tconst { canScrollNext, scrollNext } = emblaApi\n\t\tcanScrollNext() && scrollNext() && autoPlayReset()\n\t}, [emblaApi])\n\n\tconst prevScroll = useCallback(() => {\n\t\tif (!emblaApi) return\n\t\tconst { canScrollPrev, scrollPrev } = emblaApi\n\t\tcanScrollPrev() && scrollPrev() && autoPlayReset()\n\t}, [emblaApi])\n\n\tconst scrollToIndex = useCallback((index: number) => {\n\t\tif (!emblaApi || typeof index !== \"number\") return\n\t\temblaApi.scrollTo(index)\n\n\t}, [emblaApi])\n\n\t// 自動輪播啟動\n\tconst autoPlayReset = useCallback(() => {\n\t\tif (!emblaApi) return\n\t\t// console.log(\"autoplay.reset\");\n\t\tconst autoplay = emblaApi?.plugins()?.autoplay\n\t\tautoplay && autoplay.reset()\n\t}, [emblaApi])\n\n\tconst autoPlayPlay = useCallback(() => {\n\t\tif (!emblaApi) return\n\t\t// console.log(\"autoplay.play\");\n\n\t\tif (!emblaApi.canScrollNext()) return // 防呆\n\t\tconst autoplay = emblaApi?.plugins()?.autoplay\n\t\tautoplay && autoplay.play()\n\t}, [emblaApi])\n\n\t// 自動輪播暫停\n\tconst autoPlayStop = useCallback(() => {\n\t\tif (!emblaApi) return\n\t\t// console.log(\"autoplay.stop\");\n\t\tconst autoplay = emblaApi?.plugins()?.autoplay\n\t\tautoplay && autoplay.stop()\n\t}, [emblaApi])\n\n\tconst contextValue = useMemo(() => ({\n\t\tdatas,\n\t\temblaRef,\n\t\temblaApi,\n\n\t\tselectIndex,\n\t\tscrollSnaps,\n\n\t\tnextScroll,\n\t\tprevScroll,\n\t\tscrollToIndex,\n\n\t\tautoPlayReset,\n\t\tautoPlayStop,\n\t\tautoPlayPlay\n\t}), [\n\t\tdatas,\n\t\temblaRef,\n\t\temblaApi,\n\n\t\tselectIndex,\n\t\tscrollSnaps,\n\n\t\tnextScroll,\n\t\tprevScroll,\n\t\tscrollToIndex,\n\n\t\tautoPlayReset,\n\t\tautoPlayStop,\n\t\tautoPlayPlay\n\t])\n\n\tconst onInit = useCallback((emblaApi: any) => {\n\t\tconst snapList = emblaApi.scrollSnapList();\n\t\tsetScrollSnaps(snapList);\n\t}, []);\n\n\tconst onSelectEvent = (emblaApi: EmblaCarouselType) => {\n\t\temblaApi.on(\"select\", () => {\n\t\t\tonScrolled?.(emblaApi.selectedScrollSnap())\n\t\t\tsetSelectIndex(emblaApi.selectedScrollSnap());\n\t\t})\n\t}\n\n\tuseEffect(() => {\n\n\t\tif (!emblaApi) return\n\n\t\tsetRef?.(emblaRef)\n\t\tsetApi?.(emblaApi)\n\t\tsetMethods?.({})\n\n\t\tonInit(emblaApi)\n\t\tonSelectEvent(emblaApi)\n\n\t}, [emblaApi])\n\n\n\treturn (\n\n\t\t<CarouselContextProvider value={contextValue}>\n\t\t\t{/* 最外層:現在只是 Provider 的容器,沒有 overflow-hidden */}\n\t\t\t<div\n\t\t\t\tdata-component=\"embla-root\"\n\t\t\t\tclassName={cn(\"relative w-full\")}\n\t\t\t>\n\t\t\t\t{/* Embla Viewport */}\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"overflow-hidden\",\n\t\t\t\t\t\t\"w-full\",\n\t\t\t\t\t\tclassName\n\t\t\t\t\t)}\n\t\t\t\t\tref={emblaRef}\n\t\t\t\t\tstyle={style}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\n\t\t\t\t{/* 控制區 可放多組 */}\n\t\t\t\t{Array.isArray(controls) ? controls.map((ctrl, i) => (\n\t\t\t\t\t<React.Fragment key={i}>{ctrl}</React.Fragment>\n\t\t\t\t)) : controls}\n\t\t\t</div>\n\n\t\t</CarouselContextProvider>\n\t\t// <CarouselContextProvider\n\t\t// \tvalue={contextValue}\n\t\t// >\n\t\t// \t<div\n\t\t// \t\tdata-component=\"embla-root\"\n\t\t// \t\tclassName={cn(\n\t\t// \t\t\t\"overflow-hidden\",\n\t\t// \t\t\t\"relative\",\n\t\t// \t\t\t\"w-full\",\n\t\t// \t\t\tclassName\n\t\t// \t\t)}\n\t\t// \t\tref={emblaRef}\n\t\t// \t\tstyle={style}\n\t\t// \t>\n\t\t// \t\t{children}\n\t\t// \t</div>\n\t\t// </CarouselContextProvider>\n\t)\n}\n\nEmbla.displayName = \"Embla\"\nexport default Embla\n","\n\nimport { cn } from \"@/packages/shadcns\"\nimport { useCarouselContext } from \"./embla-context\";\n\ntype PropsTypes = {\n\tclassName?: string\n\t// slideRender: (datas: any) => React.ReactNode // 方式1.\n\tslide?: React.FC<any> //方式2.\n\tchildren?: any\n\tstyle?: any\n}\n\nconst EmblaContainer: React.FC<PropsTypes> = ({\n\tslide: SlideComponent,\n\tclassName,\n\tchildren,\n\tstyle,\n\t...props\n}) => {\n\n\tconst { datas, emblaApi } = useCarouselContext()\n\tconst cantSlide = !emblaApi?.canScrollNext() && !emblaApi?.canScrollPrev()\n\n\treturn (\n\t\t<div\n\t\t\tdata-component=\"embla-container\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex\",\n\t\t\t\tclassName,\n\t\t\t\tcantSlide && [\n\t\t\t\t\t\"transform-[unset!important]\"\n\t\t\t\t]\n\t\t\t)}\n\t\t\tstyle={{ ...style }}\n\t\t>\n\t\t\t{/* slide */}\n\n\t\t\t{/* 方式1. */}\n\t\t\t{/* {slideRender?.(datas)} */}\n\n\t\t\t{/* 方式2. 資料型別不能指定*/}\n\t\t\t{SlideComponent && datas?.map((item: any, index) => (\n\t\t\t\t<SlideComponent key={item?.multipurpose?.key ?? item?.id ?? index}\n\t\t\t\t\t{...item} index={index} {...props} />\n\t\t\t))}\n\t\t\t{children}\n\t\t</div>\n\t)\n}\n\nEmblaContainer.displayName = \"EmblaContainer\"\nexport default EmblaContainer\n\n","\n\nimport { cn } from \"@/packages/shadcns\"\nimport { useCarouselContext } from \"./embla-context\"\nimport { useEffect, useState } from \"react\";\n\ntype EmblaPaginationPropsTypes = {\n\tcolor?: \"black\" | \"white\" | string\n\talign?: \"start\" | \"center\" | \"end\";\n\tclassName?: string;\n\tmaxDots?: number; // 預設 5\n\tdynamic?: boolean; // 預設 true\n\tswiperNumber?: boolean; // 預設 true\n\tstyle?: string\n};\n\nexport const EmblaPagination: React.FC<EmblaPaginationPropsTypes> = ({\n\tcolor = \"black\",\n\talign,\n\tclassName,\n\tmaxDots = 5,\n\tdynamic = true,\n\tswiperNumber = true,\n}) => {\n\n\tconst { selectIndex, scrollToIndex, scrollSnaps, autoPlayReset, emblaApi } = useCarouselContext()\n\n\t// 點點計算\n\tconst total = scrollSnaps?.length ?? 0;\n\tconst active = Math.max(0, Math.min(selectIndex ?? 0, Math.max(0, total - 1)));\n\n\t// 顯示數字\n\tconst paginationNumber = `${Number(active + 1) < 10 ? \"0\" + Number(active + 1) : Number(active + 1)}`;\n\n\tconst isWhite = color === \"white\";\n\n\t// 點擊事件\n\tconst clickEvent = (index: number) => {\n\t\tscrollToIndex(index) // 移動到當澤輪播\n\t\tautoPlayReset() // 如果有開啟自動輪播要重置輪播時間\n\t}\n\n\t// 點點是否為當前\n\tconst isSelected = (index: number) => {\n\t\treturn index === selectIndex\n\t}\n\n\t// -- 動態點點 Start --\n\tconst [selectedIndex, setSelectedIndex] = useState(0)\n\tconst [slideCount, setSlideCount] = useState(0)\n\n\tuseEffect(() => {\n\t\tif (!emblaApi || !dynamic) return\n\n\t\tconst update = () => {\n\t\t\tsetSelectedIndex(emblaApi.selectedScrollSnap())\n\t\t\tsetSlideCount(emblaApi.scrollSnapList().length)\n\t\t}\n\n\t\temblaApi.on('select', update)\n\t\temblaApi.on('reInit', update) // 重新初始化時也更新\n\t\tupdate()\n\n\t\treturn () => {\n\t\t\temblaApi.off('select', update)\n\t\t\temblaApi.off('reInit', update)\n\t\t}\n\t}, [emblaApi, dynamic])\n\n\tconst getVisibleBullets = () => {\n\t\tconst total = slideCount ?? 0\n\t\tif (total === 0) return []\n\n\t\tconst limit = Math.max(1, Number(maxDots))\n\t\tconst windowSize = Math.min(total, limit)\n\n\t\tconst left = Math.floor((windowSize - 1) / 2)\n\t\tconst right = windowSize - left - 1\n\n\t\tlet start = selectedIndex - left\n\t\tlet end = selectedIndex + right\n\n\t\tif (start < 0) { end = Math.min(end - start, total - 1); start = 0 }\n\t\tif (end > total - 1) { start = Math.max(0, start - (end - (total - 1))); end = total - 1 }\n\n\t\treturn Array.from({ length: end - start + 1 }, (_, i) => start + i)\n\t}\n\n\tconst visibleRange = getVisibleBullets()\n\n\t// -- 動態點點 End --\n\n\t// 是否開啟動態點點決定點點跑陣列的方式\n\tconst dots = dynamic ? visibleRange : scrollSnaps?.map((_, i) => i) ?? []\n\n\t// WE - 頁碼\n\tconst swiperSnap = [\n\t\t\"text-[16px]\",\n\t\t\"font-semibold\",\n\t\t\" leading-[1.4]\",\n\t]\n\n\tconst paginationColorStyle = {\n\t\t\"black\": \"#000\",\n\t\t\"white\": \"#fff\",\n\t}[color] || `${color}`;\n\n\tconst paginationColorStyle2 = {\n\t\t\"--pagination-color\": paginationColorStyle,\n\t} as React.CSSProperties;\n\n\treturn (\n\t\t<div\n\t\t\tdata-compoents=\"emblas-pagination\"\n\t\t\tclassName={cn(\n\t\t\t\t\"flex\",\n\t\t\t\t\"items-center\",\n\t\t\t\t\"gap-7.25\",\n\t\t\t\talign === \"center\" && [\n\t\t\t\t\t\"justify-center\",\n\t\t\t\t],\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tstyle={paginationColorStyle2}\n\t\t>\n\t\t\t{swiperNumber &&\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\tswiperSnap,\n\t\t\t\t\t\t\"relative\",\n\n\t\t\t\t\t\t\"after:absolute\",\n\t\t\t\t\t\t\"after:top-1/2\",\n\t\t\t\t\t\t\"after:right-[-15px]\",\n\t\t\t\t\t\t\"after:-translate-y-1/2\",\n\n\t\t\t\t\t\t\"after:block\",\n\n\t\t\t\t\t\t// \"after:bg-black\",\n\t\t\t\t\t\t\"after:bg-(--pagination-color)\",\n\t\t\t\t\t\t\"after:w-0.5\",\n\t\t\t\t\t\t\"after:h-3.75\",\n\t\t\t\t\t\t\"after:opacity-20\",\n\n\t\t\t\t\t\tisWhite && [\n\t\t\t\t\t\t\t\"after:bg-white\",\n\t\t\t\t\t\t]\n\t\t\t\t\t)}>\n\t\t\t\t\t{paginationNumber}\n\t\t\t\t</div>}\n\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"flex\",\n\t\t\t\t\t\"flex-wrap\",\n\t\t\t\t\t\"justify-end\",\n\t\t\t\t\t\"items-center\",\n\t\t\t\t\t\"gap-y-0\",\n\t\t\t\t\t\"gap-x-2.5\",\n\t\t\t\t\t\"**:data-[component='emblas-pagination-dots']:bg-(--pagination-color)\",\n\t\t\t\t\tisWhite && [\n\t\t\t\t\t\t\"**:data-[component='emblas-pagination-dots']:bg-white\",\n\t\t\t\t\t]\n\t\t\t\t)}>\n\t\t\t\t{/* 點點在這邊跑 */}\n\t\t\t\t{dots.map((index) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tdata-component=\"emblas-pagination-dots\"\n\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\tonClick={() => clickEvent(index)}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\"w-1.5\",\n\t\t\t\t\t\t\t\"h-1.5\",\n\t\t\t\t\t\t\t\"rounded-full\",\n\t\t\t\t\t\t\t\"cursor-pointer\",\n\t\t\t\t\t\t\t\"opacity-30\",\n\t\t\t\t\t\t\tisSelected(index) && (\"opacity-100\"),\n\t\t\t\t\t\t)}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n\n\nEmblaPagination.displayName = \"EmblaPagination\"\nexport default EmblaPagination\n\n\n\n\n\n\n","\n\nimport { Button } from \"@/packages/shadcns\"\nimport { CarouselPrevious } from \"@/packages/shadcns\"\nimport { Carousel } from \"@/packages/shadcns\"\n\nexport interface PropsTypes { }\n\nconst Tests: React.FC<PropsTypes> = () => {\n\n\treturn (\n\t\t<>\n\t\t\t<Carousel>\n\t\t\t\t<CarouselPrevious />\n\t\t\t</Carousel>\n\t\t\t<Button>test123133232</Button>\n\t\t</>\n\t)\n}\n\nTests.displayName = \"Tests\"\nexport default Tests\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { C as ResizeTypes, D as DebounceTypes, E as useDebounceValue, O as useDebounce, S as DragResizeTypes, T as useCookies, _ as useEffectLeave, a as AnchorsStores, b as useAsyncFetcher, c as RegistrationDatas, d as registerAnchors, f as registerOffseters, g as useRegistration, h as useAnchorsStores, i as AnchorsMethods, l as ScrollOptions, m as useAnchors, n as AnchorOptions, o as AnimateController, p as setAnchorsStore, r as AnchorStoreOptions, s as AnimateOptions, t as useHash, u as getAnchorsStores, v as useEffectOne, w as useDragResize, x as DragResizeProps, y as useMounted } from "../index-OVM4Yt0j.mjs";
2
+ export { AnchorOptions, AnchorStoreOptions, AnchorsMethods, AnchorsStores, AnimateController, AnimateOptions, DebounceTypes, DragResizeProps, DragResizeTypes, RegistrationDatas, ResizeTypes, ScrollOptions, getAnchorsStores, registerAnchors, registerOffseters, setAnchorsStore, useAnchors, useAnchorsStores, useAsyncFetcher, useCookies, useDebounce, useDebounceValue, useDragResize, useEffectLeave, useEffectOne, useHash, useMounted, useRegistration };
@@ -0,0 +1,2 @@
1
+ import { B as useEffectOne, F as setAnchorsStore, G as useDebounceValue, H as useAsyncFetcher, I as useAnchors, K as useDebounce, L as useAnchorsStores, M as getAnchorsStores, N as registerAnchors, P as registerOffseters, R as useRegistration, U as useDragResize, V as useMounted, W as useCookies, j as useHash, z as useEffectLeave } from "../components-DMsIAeFi.mjs";
2
+ export { getAnchorsStores, registerAnchors, registerOffseters, setAnchorsStore, useAnchors, useAnchorsStores, useAsyncFetcher, useCookies, useDebounce, useDebounceValue, useDragResize, useEffectLeave, useEffectOne, useHash, useMounted, useRegistration };
@@ -0,0 +1,213 @@
1
+ import { n as AnchorOptions } from "./index-OVM4Yt0j.mjs";
2
+ import * as _$react from "react";
3
+ import React$1 from "react";
4
+ import * as _$zustand from "zustand";
5
+ import Lenis, { LenisOptions } from "lenis";
6
+ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
7
+ import useEmblaCarousel, { EmblaViewportRefType, UseEmblaCarouselType } from "embla-carousel-react";
8
+ import { AutoplayOptionsType } from "embla-carousel-autoplay";
9
+ import { AutoScrollOptionsType } from "embla-carousel-auto-scroll";
10
+ import { AutoHeightOptionsType } from "embla-carousel-auto-height";
11
+ import { ClassNamesOptionsType } from "embla-carousel-class-names";
12
+ import { FadeOptionsType } from "embla-carousel-fade";
13
+ import { EmblaCarouselType, EmblaOptionsType } from "embla-carousel";
14
+
15
+ //#region src/components/anchors/anchors.d.ts
16
+ interface PropsType$2 extends React.ComponentProps<"div"> {
17
+ name: string;
18
+ }
19
+ declare const AnchorTarget: React.FC<PropsType$2>;
20
+ declare const AnchorOffseter: React.FC<PropsType$2>;
21
+ type TriggerProps = AnchorOptions & React.ComponentProps<"div"> & {};
22
+ declare const AnchorTrigger: React.FC<TriggerProps>;
23
+ declare const Anchors: {
24
+ Trigger: _$react.FC<TriggerProps>;
25
+ Target: _$react.FC<PropsType$2>;
26
+ Offseter: _$react.FC<PropsType$2>;
27
+ };
28
+ //#endregion
29
+ //#region src/components/scroll-containers/native-scroll.d.ts
30
+ type PropsType$1<T extends React.ElementType = "div"> = React.ComponentProps<T> & {
31
+ name: string;
32
+ tag?: T;
33
+ };
34
+ declare const NativeScroll: _$react.MemoExoticComponent<(<T extends React.ElementType = "div">({
35
+ tag: Component,
36
+ name,
37
+ className,
38
+ ...restProps
39
+ }: PropsType$1<T>) => _$react_jsx_runtime0.JSX.Element)>;
40
+ //#endregion
41
+ //#region src/components/scroll-containers/lenis-scroll.d.ts
42
+ interface LenisScrollProps {
43
+ root?: boolean | "asChild";
44
+ name?: string;
45
+ options?: LenisOptions;
46
+ children?: React.ReactNode;
47
+ className?: string;
48
+ }
49
+ declare const LenisScroll: React.FC<LenisScrollProps>;
50
+ declare const LenisRootScroll: React.FC<LenisScrollProps>;
51
+ type LenisScrollContainerProps = Omit<LenisScrollProps, "root">;
52
+ declare const LenisContainerScroll: React.FC<LenisScrollContainerProps>;
53
+ interface LenisStores {
54
+ root?: Lenis | null;
55
+ }
56
+ declare const useLenisStores: _$zustand.UseBoundStore<_$zustand.StoreApi<LenisStores>>;
57
+ declare const setRootLenis: (lenis: Lenis) => void;
58
+ declare const getRootLenis: () => LenisStores;
59
+ //#endregion
60
+ //#region src/components/scroll-containers/scroll-containers.d.ts
61
+ type PropsType<T extends React.ElementType = "div"> = React.ComponentProps<T> & LenisScrollProps & {
62
+ name: string;
63
+ lenis?: boolean;
64
+ };
65
+ declare const ScrollContainer: <T extends React.ElementType = "div">({
66
+ name,
67
+ lenis,
68
+ ...props
69
+ }: PropsType<T>) => _$react_jsx_runtime0.JSX.Element;
70
+ interface ScrollContainerContext {
71
+ containerRef: React.RefObject<HTMLDivElement | null> | undefined;
72
+ }
73
+ declare const ScrollContainerContext: _$react.Context<ScrollContainerContext | null>;
74
+ declare const useScrollContainerContext: () => ScrollContainerContext;
75
+ interface ScrollContainersStores {
76
+ containers: Map<string, Lenis | HTMLDivElement | null>;
77
+ }
78
+ declare const useScrollContainersStores: _$zustand.UseBoundStore<_$zustand.StoreApi<ScrollContainersStores>>;
79
+ declare const getScrollContainer: (name: string) => HTMLDivElement | Lenis | null | undefined;
80
+ declare const getScrollContainerStores: () => ScrollContainersStores;
81
+ interface SetStoreOptions {
82
+ name: string;
83
+ node?: Lenis | HTMLDivElement | null;
84
+ action: "add" | "remove";
85
+ }
86
+ declare const setScrollContainerStore: (options: SetStoreOptions) => void;
87
+ //#endregion
88
+ //#region src/components/embla-carousels/embla-carousels-hooks.d.ts
89
+ type CarouselApi = UseEmblaCarouselType[1];
90
+ type UseCarouselParameters = Parameters<typeof useEmblaCarousel>;
91
+ type CarouselOptions = UseCarouselParameters[0];
92
+ interface EmblaCarouselsHooksTypes {
93
+ options?: CarouselOptions;
94
+ autoplay?: AutoplayOptionsType | true;
95
+ autoScroll?: AutoScrollOptionsType | true;
96
+ classNames?: ClassNamesOptionsType | true;
97
+ autoHeight?: AutoHeightOptionsType | true;
98
+ fade?: FadeOptionsType | true;
99
+ wheel?: {
100
+ wheelDraggingClass?: string;
101
+ forceWheelAxis?: "x" | "y";
102
+ target?: Element;
103
+ } | true;
104
+ setApi?: (api: CarouselApi) => void;
105
+ }
106
+ declare function emblaCarouselsHooks({
107
+ options,
108
+ autoplay,
109
+ autoScroll,
110
+ classNames,
111
+ autoHeight,
112
+ fade,
113
+ wheel,
114
+ setApi
115
+ }: EmblaCarouselsHooksTypes): {
116
+ emblaRef: (node: HTMLElement | null) => void;
117
+ emblaApi: CarouselApi;
118
+ orientation: "x" | "y";
119
+ currentIndex: number;
120
+ isScrollPrev: boolean;
121
+ isScrollNext: boolean;
122
+ scrollPrev: () => void;
123
+ scrollNext: () => void;
124
+ onKeyDownCapture: (event: React.KeyboardEvent<HTMLDivElement>) => void;
125
+ };
126
+ //#endregion
127
+ //#region src/components/embla-carousels/embla-carousels.d.ts
128
+ type CarouselsContextProps = {
129
+ emblaRef: ReturnType<typeof useEmblaCarousel>[0];
130
+ emblaApi: ReturnType<typeof useEmblaCarousel>[1];
131
+ currentIndex?: number;
132
+ orientation: "x" | "y";
133
+ isScrollPrev: boolean;
134
+ isScrollNext: boolean;
135
+ scrollPrev: () => void;
136
+ scrollNext: () => void;
137
+ };
138
+ declare const useCarouselsContext: () => CarouselsContextProps;
139
+ interface PropsTypes$3 extends EmblaCarouselsHooksTypes, React.ComponentProps<"div"> {}
140
+ declare const EmblaCarouselsRoots: React.FC<PropsTypes$3>;
141
+ declare const EmblaCarouselsContents: React.FC<React.ComponentProps<"div">>;
142
+ declare const EmblaCarouselsSlides: React.FC<React.ComponentProps<"div">>;
143
+ declare const EmblaCarousels: {
144
+ Roots: _$react.FC<PropsTypes$3>;
145
+ Contents: _$react.FC<_$react.DetailedHTMLProps<_$react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>>;
146
+ Slides: _$react.FC<_$react.DetailedHTMLProps<_$react.HTMLAttributes<HTMLDivElement>, HTMLDivElement>>;
147
+ };
148
+ //#endregion
149
+ //#region src/components/emblas/embla-context.d.ts
150
+ interface CarouselContextTypes {
151
+ datas: [];
152
+ emblaRef?: EmblaViewportRefType;
153
+ emblaApi?: EmblaCarouselType | null;
154
+ selectIndex: number;
155
+ scrollSnaps: number[];
156
+ nextScroll: () => void;
157
+ prevScroll: () => void;
158
+ scrollToIndex: (index: number) => void;
159
+ autoPlayReset: () => void;
160
+ autoPlayStop: () => void;
161
+ autoPlayPlay: () => void;
162
+ }
163
+ declare const CarouselContextProvider: (props: {
164
+ children: React.ReactNode;
165
+ value: CarouselContextTypes;
166
+ }) => _$react_jsx_runtime0.JSX.Element;
167
+ declare const useCarouselContext: () => CarouselContextTypes;
168
+ //#endregion
169
+ //#region src/components/emblas/embla.d.ts
170
+ interface PropsTypes$2 extends EmblaOptionsType {
171
+ children?: React$1.ReactNode;
172
+ className?: string;
173
+ options?: EmblaOptionsType;
174
+ datas?: any;
175
+ autoplayEnabled?: boolean;
176
+ autoplayOptions?: AutoplayOptionsType;
177
+ setApi?: any;
178
+ setMethods?: any;
179
+ setRef?: any;
180
+ style?: any;
181
+ controls?: any;
182
+ plugins?: any;
183
+ onScrolled?: (index: number) => void;
184
+ }
185
+ declare const Embla: React$1.FC<PropsTypes$2>;
186
+ //#endregion
187
+ //#region src/components/emblas/embla-container.d.ts
188
+ type PropsTypes$1 = {
189
+ className?: string;
190
+ slide?: React.FC<any>;
191
+ children?: any;
192
+ style?: any;
193
+ };
194
+ declare const EmblaContainer: React.FC<PropsTypes$1>;
195
+ //#endregion
196
+ //#region src/components/emblas/emblas-pagination.d.ts
197
+ type EmblaPaginationPropsTypes = {
198
+ color?: "black" | "white" | string;
199
+ align?: "start" | "center" | "end";
200
+ className?: string;
201
+ maxDots?: number;
202
+ dynamic?: boolean;
203
+ swiperNumber?: boolean;
204
+ style?: string;
205
+ };
206
+ declare const EmblaPagination: React.FC<EmblaPaginationPropsTypes>;
207
+ //#endregion
208
+ //#region src/components/tests/tests.d.ts
209
+ interface PropsTypes {}
210
+ declare const Tests: React.FC<PropsTypes>;
211
+ //#endregion
212
+ export { setRootLenis as A, useScrollContainerContext as C, LenisScroll as D, LenisRootScroll as E, AnchorTrigger as F, Anchors as I, NativeScroll as M, AnchorOffseter as N, LenisScrollProps as O, AnchorTarget as P, setScrollContainerStore as S, LenisContainerScroll as T, ScrollContainerContext as _, CarouselContextProvider as a, getScrollContainer as b, EmblaCarousels as c, EmblaCarouselsSlides as d, PropsTypes$3 as f, ScrollContainer as g, emblaCarouselsHooks as h, Embla as i, useLenisStores as j, getRootLenis as k, EmblaCarouselsContents as l, EmblaCarouselsHooksTypes as m, EmblaPagination as n, useCarouselContext as o, useCarouselsContext as p, EmblaContainer as r, CarouselsContextProps as s, Tests as t, EmblaCarouselsRoots as u, ScrollContainersStores as v, useScrollContainersStores as w, getScrollContainerStores as x, SetStoreOptions as y };
213
+ //# sourceMappingURL=index-1SzidEVJ.d.mts.map
@@ -0,0 +1,169 @@
1
+ import * as _$react from "react";
2
+ import { AnimationPlaybackControlsWithThen, Easing } from "motion/react";
3
+ import * as _$zustand from "zustand";
4
+ import Lenis from "lenis";
5
+
6
+ //#region src/hooks/useDebounce.d.ts
7
+ interface DebounceTypes {
8
+ callback: () => any;
9
+ dependency: any[];
10
+ delay?: number;
11
+ active?: boolean;
12
+ }
13
+ declare function useDebounce({
14
+ callback,
15
+ dependency,
16
+ delay,
17
+ active
18
+ }: DebounceTypes): void;
19
+ //#endregion
20
+ //#region src/hooks/useDebounceValue.d.ts
21
+ declare function useDebounceValue<T>(value: T, delay?: number): T;
22
+ //#endregion
23
+ //#region src/hooks/useCookies.d.ts
24
+ declare function useCookies(): {
25
+ setCookies: (name: string, value: string, days?: number) => void;
26
+ getCookies: (name: string) => string | null;
27
+ updateCookies: (name: string, value: string, days?: number) => void;
28
+ deleteCookies: (name: string) => void;
29
+ };
30
+ //#endregion
31
+ //#region src/hooks/useDragResize.d.ts
32
+ interface ResizeTypes {
33
+ width?: number | string;
34
+ height?: number | string;
35
+ }
36
+ interface DragResizeProps {
37
+ active?: boolean;
38
+ direction?: "horizontal" | "vertical";
39
+ minWidth?: number;
40
+ maxWidth?: number;
41
+ minHeight?: number;
42
+ maxHeight?: number;
43
+ onInit?: (size: ResizeTypes) => void;
44
+ onResizeStart?: (size: ResizeTypes) => void;
45
+ onResizing?: (size: ResizeTypes) => void;
46
+ onResizeEnd?: (size: ResizeTypes) => void;
47
+ }
48
+ type DragResizeTypes = {
49
+ dragRef: React.RefObject<HTMLDivElement | null>;
50
+ resizeRef: React.RefObject<HTMLDivElement | null>;
51
+ resize?: ResizeTypes;
52
+ };
53
+ declare function useDragResize({
54
+ active,
55
+ direction,
56
+ minWidth,
57
+ maxWidth,
58
+ minHeight,
59
+ maxHeight,
60
+ onInit,
61
+ onResizeStart,
62
+ onResizing,
63
+ onResizeEnd
64
+ }: DragResizeProps): DragResizeTypes;
65
+ //#endregion
66
+ //#region src/hooks/useAsyncFetcher.d.ts
67
+ type ReturnDatasTypes = {
68
+ fetcher: (payload: PayloadTypes) => Promise<any>;
69
+ cancel: () => void;
70
+ pending: boolean;
71
+ };
72
+ interface PayloadTypes {
73
+ url: string | URL | globalThis.Request;
74
+ options?: RequestInit;
75
+ }
76
+ declare function useAsyncFetcher(): ReturnDatasTypes;
77
+ //#endregion
78
+ //#region src/hooks/useMounted.d.ts
79
+ declare function useMounted(): {
80
+ isMounded: boolean;
81
+ };
82
+ //#endregion
83
+ //#region src/hooks/useEffectOne.d.ts
84
+ declare function useEffectOne(callback: () => void): void;
85
+ //#endregion
86
+ //#region src/hooks/useEffectLeave.d.ts
87
+ declare function useEffectLeave(callback: () => void): void;
88
+ //#endregion
89
+ //#region src/hooks/useAnchors.d.ts
90
+ interface AnimateOptions {
91
+ duration?: number;
92
+ delay?: number;
93
+ ease?: Easing | Easing[] | undefined;
94
+ onScroll?: (lenis?: Lenis) => void;
95
+ onScrolling?: (value: number) => void;
96
+ onScrolled?: (lenis?: Lenis) => void;
97
+ }
98
+ interface AnchorOptions extends AnimateOptions {
99
+ anchor: string;
100
+ container?: string;
101
+ offseters?: string | string[];
102
+ direction?: "x" | "y";
103
+ align?: "start" | "center" | "end";
104
+ offset?: number;
105
+ }
106
+ interface ScrollOptions extends AnimateOptions {
107
+ controllerKey: string;
108
+ containerDom: HTMLElement | Window;
109
+ anchorScrollValue: {
110
+ left: number;
111
+ top: number;
112
+ };
113
+ containerScrollValue: {
114
+ left: number;
115
+ top: number;
116
+ };
117
+ direction?: AnchorOptions["direction"];
118
+ }
119
+ type AnimateController = AnimationPlaybackControlsWithThen;
120
+ interface AnchorsMethods {
121
+ registerAnchors: (name: string) => {
122
+ [key: string]: string | React.RefObject<null>;
123
+ ref: React.RefObject<null>;
124
+ };
125
+ registerOffseters: (name: string) => {
126
+ [key: string]: string | React.RefObject<null>;
127
+ ref: React.RefObject<null>;
128
+ };
129
+ setStores: (options: AnchorStoreOptions) => void;
130
+ getStores: () => AnchorsStores;
131
+ scrollToAnchor: (anchorOptions: AnchorOptions) => void;
132
+ }
133
+ declare function useAnchors(): AnchorsMethods;
134
+ interface RegistrationDatas {
135
+ key: keyof AnchorsStores;
136
+ name: string;
137
+ }
138
+ declare function useRegistration({
139
+ key,
140
+ name
141
+ }: RegistrationDatas): {
142
+ [x: string]: string | _$react.RefObject<null>;
143
+ ref: _$react.RefObject<null>;
144
+ };
145
+ declare function registerAnchors(name: string): {
146
+ [x: string]: string | _$react.RefObject<null>;
147
+ ref: _$react.RefObject<null>;
148
+ };
149
+ declare function registerOffseters(name: string): {
150
+ [x: string]: string | _$react.RefObject<null>;
151
+ ref: _$react.RefObject<null>;
152
+ };
153
+ interface AnchorsStores {
154
+ anchors: Map<string, HTMLElement | null>;
155
+ offseters: Map<string, HTMLElement | null>;
156
+ }
157
+ declare const useAnchorsStores: _$zustand.UseBoundStore<_$zustand.StoreApi<AnchorsStores>>;
158
+ declare const getAnchorsStores: () => AnchorsStores;
159
+ interface AnchorStoreOptions extends RegistrationDatas {
160
+ node: HTMLDivElement | null;
161
+ action: "add" | "remove";
162
+ }
163
+ declare const setAnchorsStore: (options: AnchorStoreOptions) => void;
164
+ //#endregion
165
+ //#region src/hooks/useHash.d.ts
166
+ declare function useHash(): string;
167
+ //#endregion
168
+ export { ResizeTypes as C, DebounceTypes as D, useDebounceValue as E, useDebounce as O, DragResizeTypes as S, useCookies as T, useEffectLeave as _, AnchorsStores as a, useAsyncFetcher as b, RegistrationDatas as c, registerAnchors as d, registerOffseters as f, useRegistration as g, useAnchorsStores as h, AnchorsMethods as i, ScrollOptions as l, useAnchors as m, AnchorOptions as n, AnimateController as o, setAnchorsStore as p, AnchorStoreOptions as r, AnimateOptions as s, useHash as t, getAnchorsStores as u, useEffectOne as v, useDragResize as w, DragResizeProps as x, useMounted as y };
169
+ //# sourceMappingURL=index-OVM4Yt0j.d.mts.map
@@ -0,0 +1,6 @@
1
+ import { C as ResizeTypes, D as DebounceTypes, E as useDebounceValue, O as useDebounce, S as DragResizeTypes, T as useCookies, _ as useEffectLeave, a as AnchorsStores, b as useAsyncFetcher, c as RegistrationDatas, d as registerAnchors, f as registerOffseters, g as useRegistration, h as useAnchorsStores, i as AnchorsMethods, l as ScrollOptions, m as useAnchors, n as AnchorOptions, o as AnimateController, p as setAnchorsStore, r as AnchorStoreOptions, s as AnimateOptions, t as useHash, u as getAnchorsStores, v as useEffectOne, w as useDragResize, x as DragResizeProps, y as useMounted } from "./index-OVM4Yt0j.mjs";
2
+ import { A as setRootLenis, C as useScrollContainerContext, D as LenisScroll, E as LenisRootScroll, F as AnchorTrigger, I as Anchors, M as NativeScroll, N as AnchorOffseter, O as LenisScrollProps, P as AnchorTarget, S as setScrollContainerStore, T as LenisContainerScroll, _ as ScrollContainerContext, a as CarouselContextProvider, b as getScrollContainer, c as EmblaCarousels, d as EmblaCarouselsSlides, f as PropsTypes, g as ScrollContainer, h as emblaCarouselsHooks, i as Embla, j as useLenisStores, k as getRootLenis, l as EmblaCarouselsContents, m as EmblaCarouselsHooksTypes, n as EmblaPagination, o as useCarouselContext, p as useCarouselsContext, r as EmblaContainer, s as CarouselsContextProps, t as Tests, u as EmblaCarouselsRoots, v as ScrollContainersStores, w as useScrollContainersStores, x as getScrollContainerStores, y as SetStoreOptions } from "./index-1SzidEVJ.mjs";
3
+ import { getDomTransTime, getSearchParams, getURLSearchParams, lockBody, mediaRatio, mergeClassName, querySearchWord, regexParse, regexReplaceEach, sleep } from "./utils/index.mjs";
4
+ import { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Label, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cn, navigationMenuTriggerStyle, toggleVariants, useFormField, useIsMobile, useSidebar } from "./shadcns/index.mjs";
5
+ import { AsPropsTypes, BaseProps, ShadcnBaseProps, SlotsPropsTypes } from "./types/index.mjs";
6
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AnchorOffseter, AnchorOptions, AnchorStoreOptions, AnchorTarget, AnchorTrigger, Anchors, AnchorsMethods, AnchorsStores, AnimateController, AnimateOptions, AsPropsTypes, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, BaseProps, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselApi, CarouselContent, CarouselContextProvider, CarouselItem, CarouselNext, CarouselPrevious, CarouselsContextProps, ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DebounceTypes, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DragResizeProps, DragResizeTypes, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Embla, EmblaCarousels, EmblaCarouselsContents, EmblaCarouselsHooksTypes, EmblaCarouselsRoots, EmblaCarouselsSlides, EmblaContainer, EmblaPagination, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Label, LenisContainerScroll, LenisRootScroll, LenisScroll, LenisScrollProps, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NativeScroll, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, PropsTypes, RadioGroup, RadioGroupItem, RegistrationDatas, ResizableHandle, ResizablePanel, ResizablePanelGroup, ResizeTypes, ScrollArea, ScrollBar, ScrollContainer, ScrollContainerContext, ScrollContainersStores, ScrollOptions, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, SetStoreOptions, ShadcnBaseProps, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, SlotsPropsTypes, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Tests, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cn, emblaCarouselsHooks, getAnchorsStores, getDomTransTime, getRootLenis, getScrollContainer, getScrollContainerStores, getSearchParams, getURLSearchParams, lockBody, mediaRatio, mergeClassName, navigationMenuTriggerStyle, querySearchWord, regexParse, regexReplaceEach, registerAnchors, registerOffseters, setAnchorsStore, setRootLenis, setScrollContainerStore, sleep, toggleVariants, useAnchors, useAnchorsStores, useAsyncFetcher, useCarouselContext, useCarouselsContext, useCookies, useDebounce, useDebounceValue, useDragResize, useEffectLeave, useEffectOne, useFormField, useHash, useIsMobile, useLenisStores, useMounted, useRegistration, useScrollContainerContext, useScrollContainersStores, useSidebar };
package/dist/index.mjs ADDED
@@ -0,0 +1,5 @@
1
+ import { A as Anchors, B as useEffectOne, C as LenisScroll, D as AnchorOffseter, E as useLenisStores, F as setAnchorsStore, G as useDebounceValue, H as useAsyncFetcher, I as useAnchors, K as useDebounce, L as useAnchorsStores, M as getAnchorsStores, N as registerAnchors, O as AnchorTarget, P as registerOffseters, R as useRegistration, S as LenisRootScroll, T as setRootLenis, U as useDragResize, V as useMounted, W as useCookies, _ as getScrollContainerStores, a as CarouselContextProvider, b as useScrollContainersStores, c as EmblaCarouselsContents, d as useCarouselsContext, f as emblaCarouselsHooks, g as getScrollContainer, h as ScrollContainerContext, i as Embla, j as useHash, k as AnchorTrigger, l as EmblaCarouselsRoots, m as ScrollContainer, n as EmblaPagination, o as useCarouselContext, p as NativeScroll, r as EmblaContainer, s as EmblaCarousels, t as Tests, u as EmblaCarouselsSlides, v as setScrollContainerStore, w as getRootLenis, x as LenisContainerScroll, y as useScrollContainerContext, z as useEffectLeave } from "./components-DMsIAeFi.mjs";
2
+ import { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Label, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cn, navigationMenuTriggerStyle, toggleVariants, useFormField, useIsMobile, useSidebar } from "./shadcns/index.mjs";
3
+ import { getDomTransTime, getSearchParams, getURLSearchParams, lockBody, mediaRatio, mergeClassName, querySearchWord, regexParse, regexReplaceEach, sleep } from "./utils/index.mjs";
4
+ import "./types/index.mjs";
5
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AnchorOffseter, AnchorTarget, AnchorTrigger, Anchors, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, CarouselContent, CarouselContextProvider, CarouselItem, CarouselNext, CarouselPrevious, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Embla, EmblaCarousels, EmblaCarouselsContents, EmblaCarouselsRoots, EmblaCarouselsSlides, EmblaContainer, EmblaPagination, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, HoverCard, HoverCardContent, HoverCardTrigger, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, Label, LenisContainerScroll, LenisRootScroll, LenisScroll, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, NativeScroll, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, Progress, RadioGroup, RadioGroupItem, ResizableHandle, ResizablePanel, ResizablePanelGroup, ScrollArea, ScrollBar, ScrollContainer, ScrollContainerContext, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Skeleton, Slider, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Tests, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, badgeVariants, buttonVariants, cn, emblaCarouselsHooks, getAnchorsStores, getDomTransTime, getRootLenis, getScrollContainer, getScrollContainerStores, getSearchParams, getURLSearchParams, lockBody, mediaRatio, mergeClassName, navigationMenuTriggerStyle, querySearchWord, regexParse, regexReplaceEach, registerAnchors, registerOffseters, setAnchorsStore, setRootLenis, setScrollContainerStore, sleep, toggleVariants, useAnchors, useAnchorsStores, useAsyncFetcher, useCarouselContext, useCarouselsContext, useCookies, useDebounce, useDebounceValue, useDragResize, useEffectLeave, useEffectOne, useFormField, useHash, useIsMobile, useLenisStores, useMounted, useRegistration, useScrollContainerContext, useScrollContainersStores, useSidebar };