@ahrowe/ui 0.15.1 → 0.16.0

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 (40) hide show
  1. package/dist/esm/common/flip/flip.mjs +2 -0
  2. package/dist/esm/common/flip/flip.mjs.map +1 -0
  3. package/dist/esm/common/flip/flip.module.mjs +2 -0
  4. package/dist/esm/common/flip/flip.module.mjs.map +1 -0
  5. package/dist/esm/common/revealLens/revealLens.mjs +2 -0
  6. package/dist/esm/common/revealLens/revealLens.mjs.map +1 -0
  7. package/dist/esm/common/revealLens/revealLens.module.mjs +2 -0
  8. package/dist/esm/common/revealLens/revealLens.module.mjs.map +1 -0
  9. package/dist/esm/common/tilt/tilt.mjs +2 -0
  10. package/dist/esm/common/tilt/tilt.mjs.map +1 -0
  11. package/dist/esm/common/tilt/tilt.module.mjs +2 -0
  12. package/dist/esm/common/tilt/tilt.module.mjs.map +1 -0
  13. package/dist/esm/common/tilt/tiltMath.mjs +2 -0
  14. package/dist/esm/common/tilt/tiltMath.mjs.map +1 -0
  15. package/dist/esm/common/tiltGroup/tiltGroup.mjs +2 -0
  16. package/dist/esm/common/tiltGroup/tiltGroup.mjs.map +1 -0
  17. package/dist/esm/index.mjs +1 -1
  18. package/dist/index.cjs +5 -5
  19. package/dist/index.cjs.map +1 -1
  20. package/dist/style.css +1 -1
  21. package/dist/types/package/common/configProvider/configProvider.types.d.ts +6 -0
  22. package/dist/types/package/common/flip/flip.d.ts +3 -0
  23. package/dist/types/package/common/flip/flip.types.d.ts +42 -0
  24. package/dist/types/package/common/flip/index.d.ts +2 -0
  25. package/dist/types/package/common/revealLens/index.d.ts +2 -0
  26. package/dist/types/package/common/revealLens/revealLens.d.ts +4 -0
  27. package/dist/types/package/common/revealLens/revealLens.types.d.ts +24 -0
  28. package/dist/types/package/common/tilt/index.d.ts +4 -0
  29. package/dist/types/package/common/tilt/tilt.d.ts +3 -0
  30. package/dist/types/package/common/tilt/tilt.types.d.ts +38 -0
  31. package/dist/types/package/common/tilt/tiltMath.d.ts +24 -0
  32. package/dist/types/package/common/tiltGroup/index.d.ts +3 -0
  33. package/dist/types/package/common/tiltGroup/tiltGroup.d.ts +6 -0
  34. package/dist/types/package/common/tiltGroup/tiltGroup.types.d.ts +16 -0
  35. package/dist/types/package/index.d.ts +8 -0
  36. package/docs/CLAUDE.md +3 -0
  37. package/docs/Flip.md +97 -0
  38. package/docs/RevealLens.md +67 -0
  39. package/docs/Tilt.md +124 -0
  40. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+ import{useComponentDefaults as e}from"../configProvider/useComponentDefaults.mjs";import t from"./flip.module.mjs";import{forwardRef as n,useEffect as r,useImperativeHandle as i,useRef as a,useState as o}from"react";import s from"classnames";import{jsx as c,jsxs as l}from"react/jsx-runtime";function u(){return typeof process<`u`&&!1}function d(){return typeof window<`u`&&window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches===!0}var f=n(function(n,f){let{front:p,back:m,flipped:h,defaultFlipped:g=!1,flipOnClick:_=!1,flipAxis:v=`y`,reverse:y=!1,flipDuration:b=600,perspective:x=800,disabled:S=!1,onFlip:C,onFlipEnd:w,className:T,style:E,classNames:D,styles:O,...k}=e(`Flip`,n),A=h!==void 0,[j,M]=o(g),N=A?h:j;function P(e){A||M(e),C?.(e)}let F=()=>{!_||S||P(!N)},I=e=>{!_||S||e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),P(!N))},L=a(!1);r(()=>{if(!L.current){L.current=!0;return}d()&&w?.(N)},[N]);let R=e=>{e.target!==e.currentTarget||e.propertyName!==`transform`||w?.(N)};i(f,()=>({flip(){if(A){u()&&console.warn("Flip: flip() called on a controlled instance, update the `flipped` prop instead.");return}P(!N)},setFlipped(e){if(A){u()&&console.warn("Flip: setFlipped() called on a controlled instance, update the `flipped` prop instead.");return}P(e)},reset(){A||M(!1)}}));let z=y?-180:180,B=v===`x`&&N?z:0,V=v===`y`&&N?z:0,H=v===`x`?z:0,U=v===`y`?z:0;return c(`div`,{...k,className:s(t.flip,_&&t.flipClickable,T,D?.root),style:{...E,...O?.root},onClick:F,onKeyDown:_?I:void 0,role:_?`button`:void 0,tabIndex:_?0:void 0,"aria-pressed":_?N:void 0,children:c(`div`,{className:s(t.flipPerspective,D?.perspective),style:{perspective:x===`none`?`none`:`${x}px`,...O?.perspective},children:l(`div`,{className:s(t.flipSurface,D?.surface),style:{transform:`rotateX(${B}deg) rotateY(${V}deg)`,"--flip-duration":`${b}ms`,...O?.surface},"data-flipped":N,onTransitionEnd:R,children:[c(`div`,{className:s(t.flipFront,D?.front),style:O?.front,children:p}),c(`div`,{className:s(t.flipBack,D?.back),style:{transform:`rotateX(${H}deg) rotateY(${U}deg)`,...O?.back},children:m})]})})})});export{f as default};
2
+ //# sourceMappingURL=flip.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flip.mjs","names":[],"sources":["../../../../package/common/flip/flip.tsx"],"sourcesContent":["import {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n type CSSProperties,\n type KeyboardEvent,\n} from 'react';\nimport cx from 'classnames';\n\nimport { useComponentDefaults } from '../configProvider';\nimport type { FlipHandle, FlipProps } from './flip.types';\nimport styles from './flip.module.pcss';\n\n// Module-scoped ambient typing for the bundler-replaced NODE_ENV guard below. See bodyEnd.tsx.\ndeclare const process: { env: { NODE_ENV?: string } };\n\nfunction isDev(): boolean {\n return typeof process !== 'undefined' && process.env.NODE_ENV !== 'production';\n}\n\nfunction prefersReducedMotion(): boolean {\n return typeof window !== 'undefined' && window.matchMedia?.('(prefers-reduced-motion: reduce)').matches === true;\n}\n\nconst Flip = forwardRef<FlipHandle, FlipProps>(function Flip(props, ref) {\n const {\n front,\n back,\n flipped,\n defaultFlipped = false,\n flipOnClick = false,\n flipAxis = 'y',\n reverse = false,\n flipDuration = 600,\n perspective = 800,\n disabled = false,\n onFlip,\n onFlipEnd,\n className,\n style,\n classNames,\n styles: slotStyles,\n ...rest\n } = useComponentDefaults('Flip', props);\n\n const isControlled = flipped !== undefined;\n const [internalFlipped, setInternalFlipped] = useState(defaultFlipped);\n const effectiveFlipped = isControlled ? flipped : internalFlipped;\n\n function doFlip(nextFlipped: boolean) {\n if (!isControlled) setInternalFlipped(nextFlipped);\n onFlip?.(nextFlipped);\n }\n\n const handleClick = () => {\n if (!flipOnClick || disabled) return;\n doFlip(!effectiveFlipped);\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (!flipOnClick || disabled) return;\n if (event.key !== 'Enter' && event.key !== ' ') return;\n event.preventDefault();\n doFlip(!effectiveFlipped);\n };\n\n const mountedRef = useRef(false);\n useEffect(() => {\n if (!mountedRef.current) {\n mountedRef.current = true;\n return;\n }\n if (prefersReducedMotion()) onFlipEnd?.(effectiveFlipped);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [effectiveFlipped]);\n\n const handleTransitionEnd = (event: React.TransitionEvent<HTMLDivElement>) => {\n if (event.target !== event.currentTarget || event.propertyName !== 'transform') return;\n onFlipEnd?.(effectiveFlipped);\n };\n\n useImperativeHandle(ref, () => ({\n flip() {\n if (isControlled) {\n if (isDev()) {\n console.warn('Flip: flip() called on a controlled instance, update the `flipped` prop instead.');\n }\n return;\n }\n doFlip(!effectiveFlipped);\n },\n setFlipped(value: boolean) {\n if (isControlled) {\n if (isDev()) {\n console.warn('Flip: setFlipped() called on a controlled instance, update the `flipped` prop instead.');\n }\n return;\n }\n doFlip(value);\n },\n reset() {\n if (!isControlled) setInternalFlipped(false);\n },\n }));\n\n // `reverse` flips the rotation sign on the same hinge axis (+180deg vs -180deg), so adjacent\n // flips can sweep opposite ways without changing which edge they hinge on. The back face's\n // own static rotation (below) always uses this same sign, unconditionally: two rotations of\n // the same sign about the same axis (surface's + back's own) sum to +/-360deg, which is a full\n // turn back to a right-reading, forward-facing back, regardless of whether `reverse` is set.\n const turn = reverse ? -180 : 180;\n const flipOffsetX = flipAxis === 'x' && effectiveFlipped ? turn : 0;\n const flipOffsetY = flipAxis === 'y' && effectiveFlipped ? turn : 0;\n const backOffsetX = flipAxis === 'x' ? turn : 0;\n const backOffsetY = flipAxis === 'y' ? turn : 0;\n\n return (\n <div\n {...rest}\n className={cx(styles.flip, flipOnClick && styles.flipClickable, className, classNames?.root)}\n style={{ ...style, ...slotStyles?.root }}\n onClick={handleClick}\n onKeyDown={flipOnClick ? handleKeyDown : undefined}\n role={flipOnClick ? 'button' : undefined}\n tabIndex={flipOnClick ? 0 : undefined}\n aria-pressed={flipOnClick ? effectiveFlipped : undefined}\n >\n <div\n className={cx(styles.flipPerspective, classNames?.perspective)}\n style={{\n perspective: perspective === 'none' ? 'none' : `${perspective}px`,\n ...slotStyles?.perspective,\n }}\n >\n <div\n className={cx(styles.flipSurface, classNames?.surface)}\n style={{\n transform: `rotateX(${flipOffsetX}deg) rotateY(${flipOffsetY}deg)`,\n '--flip-duration': `${flipDuration}ms`,\n ...slotStyles?.surface,\n } as CSSProperties & Record<'--flip-duration', string>}\n data-flipped={effectiveFlipped}\n onTransitionEnd={handleTransitionEnd}\n >\n <div\n className={cx(styles.flipFront, classNames?.front)}\n style={slotStyles?.front}\n >\n {front}\n </div>\n <div\n className={cx(styles.flipBack, classNames?.back)}\n style={{\n transform: `rotateX(${backOffsetX}deg) rotateY(${backOffsetY}deg)`,\n ...slotStyles?.back,\n }}\n >\n {back}\n </div>\n </div>\n </div>\n </div>\n );\n});\n\nexport default Flip;\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ var e={flip:`flip_bL-UK`,"flip-clickable":`flip-clickable_YcfaN`,flipClickable:`flip-clickable_YcfaN`,"flip-perspective":`flip-perspective_i9Km7`,flipPerspective:`flip-perspective_i9Km7`,"flip-surface":`flip-surface_wu3Rt`,flipSurface:`flip-surface_wu3Rt`,"flip-front":`flip-front_2kwDN`,flipFront:`flip-front_2kwDN`,"flip-back":`flip-back_4eqrK`,flipBack:`flip-back_4eqrK`};export{e as default};
2
+ //# sourceMappingURL=flip.module.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flip.module.mjs","names":[],"sources":["../../../../package/common/flip/flip.module.pcss"],"sourcesContent":[".flip {\n display: inline-grid;\n\n &-clickable {\n cursor: pointer;\n -webkit-tap-highlight-color: transparent;\n }\n\n &-perspective {\n display: grid;\n min-width: 0;\n min-height: 0;\n }\n\n &-surface {\n display: grid;\n min-width: 0;\n min-height: 0;\n transform-style: preserve-3d;\n transition: transform var(--flip-duration, 0.6s) ease;\n will-change: transform;\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n\n &-front,\n &-back {\n grid-area: 1 / 1;\n min-width: 0;\n min-height: 0;\n backface-visibility: hidden;\n -webkit-backface-visibility: hidden;\n will-change: transform;\n }\n}\n"],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import{useComponentDefaults as e}from"../configProvider/useComponentDefaults.mjs";import t from"./revealLens.module.mjs";import{useRef as n}from"react";import r from"classnames";import{jsx as i,jsxs as a}from"react/jsx-runtime";function o(e,t,n,r){let i=Math.max(n-r,0);return`radial-gradient(circle ${n}px at ${e}px ${t}px, transparent ${i}px, transparent ${i}px, white ${n}px)`}function s(e,t){e.style.setProperty(`mask-image`,t),e.style.setProperty(`-webkit-mask-image`,t)}function c(e){e.style.removeProperty(`mask-image`),e.style.removeProperty(`-webkit-mask-image`)}function l(l){let{background:u,overlay:d,radius:f=120,feather:p=24,shape:m=`circle`,maskImage:h,disabled:g=!1,className:_,style:v,classNames:y,styles:b,...x}=e(`RevealLens`,l),S=n(null),C=n(null),w=(e,n)=>{let r=S.current,i=C.current;if(!r||!i)return;let a=r.getBoundingClientRect(),c=e-a.left,l=n-a.top;i.classList.remove(t.revealLensOverlayTransitioning),s(i,h??o(c,l,f,p))},T=()=>{let e=C.current;e&&(e.classList.add(t.revealLensOverlayTransitioning),c(e))},E=e=>{g||(e.currentTarget.setPointerCapture?.(e.pointerId),w(e.clientX,e.clientY))},D=e=>{g||w(e.clientX,e.clientY)},O=e=>{g||e.pointerType===`mouse`||T()},k=e=>{if(g)return;let t=S.current;if(t){let n=t.getBoundingClientRect();if(e.clientX>=n.left&&e.clientX<=n.right&&e.clientY>=n.top&&e.clientY<=n.bottom)return;if(typeof document.elementFromPoint==`function`){let n=document.elementFromPoint(e.clientX,e.clientY);if(n&&t.contains(n))return}}T()};return a(`div`,{...x,ref:S,className:r(t.revealLens,_,y?.root),style:{...v,...b?.root},"data-reveal-shape":m,onPointerDown:E,onPointerMove:D,onPointerUp:O,onPointerCancel:k,onPointerLeave:k,children:[i(`div`,{className:r(t.revealLensBackground,y?.background),style:b?.background,children:u}),i(`div`,{ref:C,className:r(t.revealLensOverlay,y?.overlay),style:b?.overlay,children:d})]})}export{l as default};
2
+ //# sourceMappingURL=revealLens.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revealLens.mjs","names":[],"sources":["../../../../package/common/revealLens/revealLens.tsx"],"sourcesContent":["import { useRef, type PointerEvent as ReactPointerEvent, type ReactElement } from 'react';\nimport cx from 'classnames';\n\nimport { useComponentDefaults } from '../configProvider';\nimport type { RevealLensProps } from './revealLens.types';\nimport styles from './revealLens.module.pcss';\n\nfunction buildMaskImage(x: number, y: number, radius: number, feather: number): string {\n const inner = Math.max(radius - feather, 0);\n return `radial-gradient(circle ${radius}px at ${x}px ${y}px, transparent ${inner}px, transparent ${inner}px, white ${radius}px)`;\n}\n\nfunction applyMask(overlay: HTMLDivElement, value: string) {\n overlay.style.setProperty('mask-image', value);\n overlay.style.setProperty('-webkit-mask-image', value);\n}\n\nfunction clearMask(overlay: HTMLDivElement) {\n overlay.style.removeProperty('mask-image');\n overlay.style.removeProperty('-webkit-mask-image');\n}\n\nfunction RevealLens(props: RevealLensProps): ReactElement {\n const {\n background,\n overlay,\n radius = 120,\n feather = 24,\n shape = 'circle',\n maskImage,\n disabled = false,\n className,\n style,\n classNames,\n styles: slotStyles,\n ...rest\n } = useComponentDefaults('RevealLens', props);\n\n const rootRef = useRef<HTMLDivElement>(null);\n const overlayRef = useRef<HTMLDivElement>(null);\n\n const updateMask = (clientX: number, clientY: number) => {\n const root = rootRef.current;\n const overlayEl = overlayRef.current;\n if (!root || !overlayEl) return;\n\n const rect = root.getBoundingClientRect();\n const x = clientX - rect.left;\n const y = clientY - rect.top;\n\n overlayEl.classList.remove(styles.revealLensOverlayTransitioning);\n applyMask(overlayEl, maskImage ?? buildMaskImage(x, y, radius, feather));\n };\n\n const resetMask = () => {\n const overlayEl = overlayRef.current;\n if (!overlayEl) return;\n\n overlayEl.classList.add(styles.revealLensOverlayTransitioning);\n clearMask(overlayEl);\n };\n\n const handlePointerDown = (event: ReactPointerEvent<HTMLDivElement>) => {\n if (disabled) return;\n event.currentTarget.setPointerCapture?.(event.pointerId);\n updateMask(event.clientX, event.clientY);\n };\n\n const handlePointerMove = (event: ReactPointerEvent<HTMLDivElement>) => {\n if (disabled) return;\n updateMask(event.clientX, event.clientY);\n };\n\n const handlePointerUp = (event: ReactPointerEvent<HTMLDivElement>) => {\n if (disabled || event.pointerType === 'mouse') return;\n resetMask();\n };\n\n // pointerleave/pointercancel can fire spuriously, with the pointer still physically over the\n // element, when it's nested inside two coincident 3D transform contexts (e.g. Tilt + Flip\n // composed per the docs, where Flip fills Tilt exactly and their perspective-origins land on\n // the same pixel). At that shared origin point, Chromium's hit-test can misresolve to an\n // ancestor instead of the actual topmost content. elementFromPoint reads that same broken\n // result, so it can't be trusted there either. The event's own clientX/clientY are real,\n // unaffected viewport coordinates, so check those directly against our own (transform-aware)\n // bounding rect first. A leave that's still geometrically inside us is never real.\n const handlePointerEnd = (event: ReactPointerEvent<HTMLDivElement>) => {\n if (disabled) return;\n const root = rootRef.current;\n if (root) {\n const rect = root.getBoundingClientRect();\n const stillInside =\n event.clientX >= rect.left &&\n event.clientX <= rect.right &&\n event.clientY >= rect.top &&\n event.clientY <= rect.bottom;\n if (stillInside) return;\n\n if (typeof document.elementFromPoint === 'function') {\n const target = document.elementFromPoint(event.clientX, event.clientY);\n if (target && root.contains(target)) return;\n }\n }\n resetMask();\n };\n\n return (\n <div\n {...rest}\n ref={rootRef}\n className={cx(styles.revealLens, className, classNames?.root)}\n style={{ ...style, ...slotStyles?.root }}\n data-reveal-shape={shape}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n onPointerCancel={handlePointerEnd}\n onPointerLeave={handlePointerEnd}\n >\n <div\n className={cx(styles.revealLensBackground, classNames?.background)}\n style={slotStyles?.background}\n >\n {background}\n </div>\n <div\n ref={overlayRef}\n className={cx(styles.revealLensOverlay, classNames?.overlay)}\n style={slotStyles?.overlay}\n >\n {overlay}\n </div>\n </div>\n );\n}\n\nexport default RevealLens;\n"],"mappings":"oOAOA,SAAS,EAAe,EAAW,EAAW,EAAgB,EAAyB,CACrF,IAAM,EAAQ,KAAK,IAAI,EAAS,EAAS,CAAC,EAC1C,MAAO,0BAA0B,EAAO,QAAQ,EAAE,KAAK,EAAE,kBAAkB,EAAM,kBAAkB,EAAM,YAAY,EAAO,IAC9H,CAEA,SAAS,EAAU,EAAyB,EAAe,CACzD,EAAQ,MAAM,YAAY,aAAc,CAAK,EAC7C,EAAQ,MAAM,YAAY,qBAAsB,CAAK,CACvD,CAEA,SAAS,EAAU,EAAyB,CAC1C,EAAQ,MAAM,eAAe,YAAY,EACzC,EAAQ,MAAM,eAAe,oBAAoB,CACnD,CAEA,SAAS,EAAW,EAAsC,CACxD,GAAM,CACJ,aACA,UACA,SAAS,IACT,UAAU,GACV,QAAQ,SACR,YACA,WAAW,GACX,YACA,QACA,aACA,OAAQ,EACR,GAAG,GACD,EAAqB,aAAc,CAAK,EAEtC,EAAU,EAAuB,IAAI,EACrC,EAAa,EAAuB,IAAI,EAExC,GAAc,EAAiB,IAAoB,CACvD,IAAM,EAAO,EAAQ,QACf,EAAY,EAAW,QAC7B,GAAI,CAAC,GAAQ,CAAC,EAAW,OAEzB,IAAM,EAAO,EAAK,sBAAsB,EAClC,EAAI,EAAU,EAAK,KACnB,EAAI,EAAU,EAAK,IAEzB,EAAU,UAAU,OAAO,EAAO,8BAA8B,EAChE,EAAU,EAAW,GAAa,EAAe,EAAG,EAAG,EAAQ,CAAO,CAAC,CACzE,EAEM,MAAkB,CACtB,IAAM,EAAY,EAAW,QACxB,IAEL,EAAU,UAAU,IAAI,EAAO,8BAA8B,EAC7D,EAAU,CAAS,EACrB,EAEM,EAAqB,GAA6C,CAClE,IACJ,EAAM,cAAc,oBAAoB,EAAM,SAAS,EACvD,EAAW,EAAM,QAAS,EAAM,OAAO,EACzC,EAEM,EAAqB,GAA6C,CAClE,GACJ,EAAW,EAAM,QAAS,EAAM,OAAO,CACzC,EAEM,EAAmB,GAA6C,CAChE,GAAY,EAAM,cAAgB,SACtC,EAAU,CACZ,EAUM,EAAoB,GAA6C,CACrE,GAAI,EAAU,OACd,IAAM,EAAO,EAAQ,QACrB,GAAI,EAAM,CACR,IAAM,EAAO,EAAK,sBAAsB,EAMxC,GAJE,EAAM,SAAW,EAAK,MACtB,EAAM,SAAW,EAAK,OACtB,EAAM,SAAW,EAAK,KACtB,EAAM,SAAW,EAAK,OACP,OAEjB,GAAI,OAAO,SAAS,kBAAqB,WAAY,CACnD,IAAM,EAAS,SAAS,iBAAiB,EAAM,QAAS,EAAM,OAAO,EACrE,GAAI,GAAU,EAAK,SAAS,CAAM,EAAG,MACvC,CACF,CACA,EAAU,CACZ,EAEA,OACE,EAAC,MAAD,CACE,GAAI,EACJ,IAAK,EACL,UAAW,EAAG,EAAO,WAAY,EAAW,GAAY,IAAI,EAC5D,MAAO,CAAE,GAAG,EAAO,GAAG,GAAY,IAAK,EACvC,oBAAmB,EACnB,cAAe,EACf,cAAe,EACf,YAAa,EACb,gBAAiB,EACjB,eAAgB,WAVlB,CAYE,EAAC,MAAD,CACE,UAAW,EAAG,EAAO,qBAAsB,GAAY,UAAU,EACjE,MAAO,GAAY,oBAElB,CACE,CAAA,EACL,EAAC,MAAD,CACE,IAAK,EACL,UAAW,EAAG,EAAO,kBAAmB,GAAY,OAAO,EAC3D,MAAO,GAAY,iBAElB,CACE,CAAA,CACF,GAET"}
@@ -0,0 +1,2 @@
1
+ var e={revealLens:`revealLens_V3Kkk`,"revealLens-background":`revealLens-background_pQyK9`,revealLensBackground:`revealLens-background_pQyK9`,"revealLens-overlay":`revealLens-overlay_NOUoj`,revealLensOverlay:`revealLens-overlay_NOUoj`,"revealLens-overlay-transitioning":`revealLens-overlay-transitioning_-co2e`,revealLensOverlayTransitioning:`revealLens-overlay-transitioning_-co2e`};export{e as default};
2
+ //# sourceMappingURL=revealLens.module.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revealLens.module.mjs","names":[],"sources":["../../../../package/common/revealLens/revealLens.module.pcss"],"sourcesContent":[".revealLens {\n display: grid;\n overflow: hidden;\n touch-action: none;\n\n &-background,\n &-overlay {\n grid-area: 1 / 1;\n min-width: 0;\n min-height: 0;\n }\n\n &-background {\n z-index: 0;\n }\n\n &-overlay {\n z-index: 1;\n }\n\n &-overlay-transitioning {\n transition: mask-image 0.25s ease, -webkit-mask-image 0.25s ease;\n\n @media (prefers-reduced-motion: reduce) {\n transition: none;\n }\n }\n}\n"],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import{useComponentDefaults as e}from"../configProvider/useComponentDefaults.mjs";import{useTiltGroup as t}from"../tiltGroup/tiltGroup.mjs";import{computeTilt as n,defaultTiltEasing as r}from"./tiltMath.mjs";import i from"./tilt.module.mjs";import{forwardRef as a,useEffect as o,useImperativeHandle as s,useRef as c}from"react";import l from"classnames";import{jsx as u}from"react/jsx-runtime";function d(){return typeof process<`u`&&!1}function f(){return typeof window<`u`&&window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches===!0}var p=.3,m=.05,h=a(function(a,h){let{children:g,maxTilt:_=15,maxTiltX:v,maxTiltY:y,perspective:b=800,easing:x=r,lockAxis:S=`none`,scaleOnHover:C=1,trackingMode:w=`self`,disabled:T=!1,onTiltChange:E,className:D,style:O,classNames:k,styles:A,...j}=e(`Tilt`,a),M=c(null),N=c(null),P=c(void 0),F=c(!1),I=c(!1),L=c(!1),R=c(null),z=c({rotateX:0,rotateY:0}),B=t(),V=w===`group`,H=V&&B!==null;o(()=>{V&&B===null&&d()&&console.warn(`Tilt: trackingMode="group" was set with no ancestor TiltGroup, falling back to self tracking.`)},[V,B===null]);let U=v??_,W=y??_;function G(e,t,n){let r=N.current;r&&(r.style.transform=`rotateX(${e}deg) rotateY(${t}deg)`+(n===1?``:` scale(${n})`))}function K(){P.current!==void 0&&(cancelAnimationFrame(P.current),P.current=void 0),F.current=!1}function q(){if(P.current=void 0,!N.current){F.current=!1;return}let e=I.current&&!T&&!f(),t=0,r=0;if(e){let e=R.current,i=M.current?.getBoundingClientRect();if(e&&i){let a=n(e.x-i.left,e.y-i.top,i,{maxTiltX:U,maxTiltY:W,easing:x,lockAxis:S});t=a.rotateX,r=a.rotateY}}let i=z.current,a,o;if(L.current?(a=i.rotateX+(t-i.rotateX)*p,o=i.rotateY+(r-i.rotateY)*p,Math.abs(t-a)<m&&Math.abs(r-o)<m&&(a=t,o=r,L.current=!1)):(a=t,o=r),z.current={rotateX:a,rotateY:o},G(a,o,e?C:1),E?.(a,o),!L.current){F.current=!1;return}P.current=requestAnimationFrame(q)}function J(){F.current||(F.current=!0,P.current=requestAnimationFrame(q))}function Y(e){I.current!==e&&(L.current=!0),I.current=e,J()}let X=e=>{T||H||f()||(R.current={x:e.clientX,y:e.clientY},Y(!0))},Z=()=>{H||Y(!1)};return o(()=>{if(H){if(T||f()){Y(!1);return}B?.pointer&&B.rect?(R.current={x:B.rect.left+B.pointer.x,y:B.rect.top+B.pointer.y},Y(!0)):Y(!1)}},[H,T,B?.pointer,B?.rect]),o(()=>()=>{K()},[]),s(h,()=>({setTilt(e,t){let n={rotateX:Math.max(-U,Math.min(U,e)),rotateY:Math.max(-W,Math.min(W,t))};K(),I.current=!1,L.current=!1,z.current=n,G(n.rotateX,n.rotateY,C),E?.(n.rotateX,n.rotateY)},reset(){K(),I.current=!1,L.current=!1,z.current={rotateX:0,rotateY:0},G(0,0,1)}})),u(`div`,{...j,ref:M,className:l(i.tilt,D,k?.root),style:{...O,...A?.root},onPointerMove:X,onPointerLeave:Z,onPointerCancel:Z,children:u(`div`,{className:l(i.tiltPerspective,k?.perspective),style:{perspective:`${b}px`,...A?.perspective},children:u(`div`,{ref:N,className:l(i.tiltSurface,k?.surface),style:A?.surface,children:g})})})});export{h as default};
2
+ //# sourceMappingURL=tilt.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tilt.mjs","names":[],"sources":["../../../../package/common/tilt/tilt.tsx"],"sourcesContent":["import {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useRef,\n type PointerEvent as ReactPointerEvent,\n} from 'react';\nimport cx from 'classnames';\n\nimport { useComponentDefaults } from '../configProvider';\nimport { useTiltGroup } from '../tiltGroup';\nimport { computeTilt, defaultTiltEasing } from './tiltMath';\nimport type { TiltHandle, TiltProps } from './tilt.types';\nimport styles from './tilt.module.pcss';\n\n// Module-scoped ambient typing for the bundler-replaced NODE_ENV guard below. See bodyEnd.tsx.\ndeclare const process: { env: { NODE_ENV?: string } };\n\nfunction isDev(): boolean {\n return typeof process !== 'undefined' && process.env.NODE_ENV !== 'production';\n}\n\nfunction prefersReducedMotion(): boolean {\n return typeof window !== 'undefined' && window.matchMedia?.('(prefers-reduced-motion: reduce)').matches === true;\n}\n\n// Per-frame catch-up rate (fraction of the remaining gap closed each tick) and the gap size,\n// in degrees, below which we consider the catch-up finished and switch to direct 1:1 writes.\nconst TILT_SMOOTHING = 0.3;\nconst TILT_CONVERGE_EPSILON = 0.05;\n\nconst Tilt = forwardRef<TiltHandle, TiltProps>(function Tilt(props, ref) {\n const {\n children,\n maxTilt = 15,\n maxTiltX,\n maxTiltY,\n perspective = 800,\n easing = defaultTiltEasing,\n lockAxis = 'none',\n scaleOnHover = 1,\n trackingMode = 'self',\n disabled = false,\n onTiltChange,\n className,\n style,\n classNames,\n styles: slotStyles,\n ...rest\n } = useComponentDefaults('Tilt', props);\n\n const rootRef = useRef<HTMLDivElement>(null);\n const surfaceRef = useRef<HTMLDivElement>(null);\n const rafRef = useRef<number | undefined>(undefined);\n const loopActiveRef = useRef(false);\n // Whether the pointer is currently \"over\" the element (self mode: within its own bounds;\n // group mode: the shared group pointer is set). The tilt loop's target is (0,0) whenever this\n // is false, and computed from `latestPointerRef` whenever it's true.\n const isHoveringRef = useRef(false);\n // True while the visually-applied tilt is still catching up to the target after a\n // discontinuity (entering from flat, or leaving back to flat), eased via a per-frame lerp\n // toward whatever the *current* target is. Once the gap closes, updates apply directly (1:1,\n // no lag) so continuous tracking stays crisp. A CSS transition can't do this cleanly: retargeting\n // one mid-flight restarts its full duration from scratch, so a continuously-moving cursor makes\n // it fall further and further behind instead of ever catching up.\n const isCatchingUpRef = useRef(false);\n const latestPointerRef = useRef<{ x: number; y: number } | null>(null);\n const currentTiltRef = useRef({ rotateX: 0, rotateY: 0 });\n\n const group = useTiltGroup();\n const usingGroup = trackingMode === 'group';\n const groupActive = usingGroup && group !== null;\n\n useEffect(() => {\n if (usingGroup && group === null && isDev()) {\n console.warn('Tilt: trackingMode=\"group\" was set with no ancestor TiltGroup, falling back to self tracking.');\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [usingGroup, group === null]);\n\n const clampX = maxTiltX ?? maxTilt;\n const clampY = maxTiltY ?? maxTilt;\n\n function writeTiltTransform(rotateX: number, rotateY: number, scale: number) {\n const surface = surfaceRef.current;\n if (!surface) return;\n surface.style.transform = `rotateX(${rotateX}deg) rotateY(${rotateY}deg)` + (scale !== 1 ? ` scale(${scale})` : '');\n }\n\n function stopTiltLoop() {\n if (rafRef.current !== undefined) {\n cancelAnimationFrame(rafRef.current);\n rafRef.current = undefined;\n }\n loopActiveRef.current = false;\n }\n\n // The single continuous per-frame driver for tilt. Reads live authoritative state\n // (`isHoveringRef`/`latestPointerRef`) fresh every tick rather than closing over values\n // captured at schedule time, so there's no possibility of a stale queued frame overwriting a\n // newer state.\n function tick() {\n rafRef.current = undefined;\n const surface = surfaceRef.current;\n if (!surface) {\n loopActiveRef.current = false;\n return;\n }\n\n const hovering = isHoveringRef.current && !disabled && !prefersReducedMotion();\n let targetX = 0;\n let targetY = 0;\n if (hovering) {\n const pos = latestPointerRef.current;\n const rect = rootRef.current?.getBoundingClientRect();\n if (pos && rect) {\n const target = computeTilt(pos.x - rect.left, pos.y - rect.top, rect, {\n maxTiltX: clampX,\n maxTiltY: clampY,\n easing,\n lockAxis,\n });\n targetX = target.rotateX;\n targetY = target.rotateY;\n }\n }\n\n const cur = currentTiltRef.current;\n let nextX: number;\n let nextY: number;\n if (isCatchingUpRef.current) {\n nextX = cur.rotateX + (targetX - cur.rotateX) * TILT_SMOOTHING;\n nextY = cur.rotateY + (targetY - cur.rotateY) * TILT_SMOOTHING;\n if (Math.abs(targetX - nextX) < TILT_CONVERGE_EPSILON && Math.abs(targetY - nextY) < TILT_CONVERGE_EPSILON) {\n nextX = targetX;\n nextY = targetY;\n isCatchingUpRef.current = false;\n }\n } else {\n // Locked on: apply the target directly, every frame. This is what keeps continuous\n // tracking crisp with zero added lag once the catch-up phase has finished.\n nextX = targetX;\n nextY = targetY;\n }\n\n currentTiltRef.current = { rotateX: nextX, rotateY: nextY };\n writeTiltTransform(nextX, nextY, hovering ? scaleOnHover : 1);\n onTiltChange?.(nextX, nextY);\n\n // Once locked on (nothing left to ease), stop rescheduling. The next native pointermove\n // (self mode) or group pointer update (group mode) calls `ensureTiltLoopRunning()` again on\n // its own, restarting the loop for exactly the one instant tick it needs.\n if (!isCatchingUpRef.current) {\n loopActiveRef.current = false;\n return;\n }\n rafRef.current = requestAnimationFrame(tick);\n }\n\n function ensureTiltLoopRunning() {\n if (loopActiveRef.current) return;\n loopActiveRef.current = true;\n rafRef.current = requestAnimationFrame(tick);\n }\n\n // Marks a hover-state transition (entering or leaving) so the loop re-arms its catch-up phase.\n // Only on an actual flip, not on every pointermove while already hovering, so continuous\n // tracking never re-triggers easing.\n function setHovering(next: boolean) {\n if (isHoveringRef.current !== next) {\n isCatchingUpRef.current = true;\n }\n isHoveringRef.current = next;\n ensureTiltLoopRunning();\n }\n\n // Self-mode pointer handlers.\n const handlePointerMove = (event: ReactPointerEvent<HTMLDivElement>) => {\n if (disabled || groupActive || prefersReducedMotion()) return;\n latestPointerRef.current = { x: event.clientX, y: event.clientY };\n setHovering(true);\n };\n\n const handlePointerLeave = () => {\n if (groupActive) return;\n setHovering(false);\n };\n\n // Group-mode tracking: react to the shared pointer position published by TiltGroup.\n useEffect(() => {\n if (!groupActive) return;\n if (disabled || prefersReducedMotion()) {\n setHovering(false);\n return;\n }\n if (group?.pointer && group.rect) {\n latestPointerRef.current = { x: group.rect.left + group.pointer.x, y: group.rect.top + group.pointer.y };\n setHovering(true);\n } else {\n setHovering(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [groupActive, disabled, group?.pointer, group?.rect]);\n\n useEffect(() => {\n // Must go through stopTiltLoop() (not just cancelAnimationFrame) so loopActiveRef is reset\n // too. Under React StrictMode, every effect's cleanup runs once synchronously right after\n // its setup, before setup runs again, so this fires even though the component isn't really\n // unmounting. The group-mode effect above runs on every mount (it schedules the loop as soon\n // as there's a group context, even with a still-null pointer), so cancelling its pending\n // frame here without also clearing loopActiveRef left the loop believing it was still\n // \"active\" with nothing actually scheduled: permanently wedged, since every later call to\n // ensureTiltLoopRunning() saw loopActiveRef already true and silently no-opped forever.\n return () => {\n stopTiltLoop();\n };\n }, []);\n\n useImperativeHandle(ref, () => ({\n setTilt(rotateX: number, rotateY: number) {\n const clamped = {\n rotateX: Math.max(-clampX, Math.min(clampX, rotateX)),\n rotateY: Math.max(-clampY, Math.min(clampY, rotateY)),\n };\n // Stops the loop so live tracking (if any is active) can't overwrite this explicit value\n // on the very next frame. An external caller driving custom choreography expects the\n // value it just set to actually stick. A later real pointer move restarts tracking fresh.\n stopTiltLoop();\n isHoveringRef.current = false;\n isCatchingUpRef.current = false;\n currentTiltRef.current = clamped;\n writeTiltTransform(clamped.rotateX, clamped.rotateY, scaleOnHover);\n onTiltChange?.(clamped.rotateX, clamped.rotateY);\n },\n reset() {\n stopTiltLoop();\n isHoveringRef.current = false;\n isCatchingUpRef.current = false;\n currentTiltRef.current = { rotateX: 0, rotateY: 0 };\n writeTiltTransform(0, 0, 1);\n },\n }));\n\n return (\n <div\n {...rest}\n ref={rootRef}\n className={cx(styles.tilt, className, classNames?.root)}\n style={{ ...style, ...slotStyles?.root }}\n onPointerMove={handlePointerMove}\n onPointerLeave={handlePointerLeave}\n onPointerCancel={handlePointerLeave}\n >\n <div\n className={cx(styles.tiltPerspective, classNames?.perspective)}\n style={{ perspective: `${perspective}px`, ...slotStyles?.perspective }}\n >\n <div\n ref={surfaceRef}\n className={cx(styles.tiltSurface, classNames?.surface)}\n style={slotStyles?.surface}\n >\n {children}\n </div>\n </div>\n </div>\n );\n});\n\nexport default Tilt;\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ var e={tilt:`tilt_gbX2b`,"tilt-perspective":`tilt-perspective_CFdP6`,tiltPerspective:`tilt-perspective_CFdP6`,"tilt-surface":`tilt-surface_Jyzwe`,tiltSurface:`tilt-surface_Jyzwe`};export{e as default};
2
+ //# sourceMappingURL=tilt.module.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tilt.module.mjs","names":[],"sources":["../../../../package/common/tilt/tilt.module.pcss"],"sourcesContent":[".tilt {\n display: inline-block;\n touch-action: none;\n\n &-perspective {\n width: 100%;\n height: 100%;\n }\n\n &-surface {\n position: relative;\n width: 100%;\n height: 100%;\n transform-style: preserve-3d;\n will-change: transform;\n }\n}\n"],"mappings":""}
@@ -0,0 +1,2 @@
1
+ function e(e){let t=Math.max(-1,Math.min(1,e));return Math.sign(t)*Math.abs(t)**1.6}function t(e,t){return Math.max(-t,Math.min(t,e))}function n(e,n,r,{maxTiltX:i,maxTiltY:a,easing:o,lockAxis:s}){let c=r.width>0?e/r.width*2-1:0,l=r.height>0?n/r.height*2-1:0;return{rotateX:s===`x`?0:t(-o(l)*i,i),rotateY:s===`y`?0:t(o(c)*a,a)}}export{n as computeTilt,e as defaultTiltEasing};
2
+ //# sourceMappingURL=tiltMath.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tiltMath.mjs","names":[],"sources":["../../../../package/common/tilt/tiltMath.ts"],"sourcesContent":["export type TiltAxisLock = 'x' | 'y' | 'none';\n\nexport interface ComputeTiltOptions {\n maxTiltX: number;\n maxTiltY: number;\n easing: (t: number) => number;\n lockAxis: TiltAxisLock;\n}\n\nexport interface TiltResult {\n rotateX: number;\n rotateY: number;\n}\n\n/**\n * Eases faster near the edges (|t| close to 1) and flatter near the center (|t| close to 0),\n * while staying odd-symmetric so tilt direction always matches cursor direction.\n */\nexport function defaultTiltEasing(t: number): number {\n const clamped = Math.max(-1, Math.min(1, t));\n return Math.sign(clamped) * Math.pow(Math.abs(clamped), 1.6);\n}\n\nfunction clamp(value: number, max: number): number {\n return Math.max(-max, Math.min(max, value));\n}\n\n/**\n * Computes the tilt rotation for a pointer at (x, y) relative to `rect`'s top-left corner.\n * Vertical cursor position drives rotateX (tilts top/bottom edges), horizontal drives rotateY.\n */\nexport function computeTilt(\n x: number,\n y: number,\n rect: { width: number; height: number },\n { maxTiltX, maxTiltY, easing, lockAxis }: ComputeTiltOptions,\n): TiltResult {\n const nx = rect.width > 0 ? (x / rect.width) * 2 - 1 : 0;\n const ny = rect.height > 0 ? (y / rect.height) * 2 - 1 : 0;\n\n const rotateX = lockAxis === 'x' ? 0 : clamp(-easing(ny) * maxTiltX, maxTiltX);\n const rotateY = lockAxis === 'y' ? 0 : clamp(easing(nx) * maxTiltY, maxTiltY);\n\n return { rotateX, rotateY };\n}\n"],"mappings":"AAkBA,SAAgB,EAAkB,EAAmB,CACnD,IAAM,EAAU,KAAK,IAAI,GAAI,KAAK,IAAI,EAAG,CAAC,CAAC,EAC3C,OAAO,KAAK,KAAK,CAAO,EAAa,KAAK,IAAI,CAAO,GAAG,GAC1D,CAEA,SAAS,EAAM,EAAe,EAAqB,CACjD,OAAO,KAAK,IAAI,CAAC,EAAK,KAAK,IAAI,EAAK,CAAK,CAAC,CAC5C,CAMA,SAAgB,EACd,EACA,EACA,EACA,CAAE,WAAU,WAAU,SAAQ,YAClB,CACZ,IAAM,EAAK,EAAK,MAAQ,EAAK,EAAI,EAAK,MAAS,EAAI,EAAI,EACjD,EAAK,EAAK,OAAS,EAAK,EAAI,EAAK,OAAU,EAAI,EAAI,EAKzD,MAAO,CAAE,QAHO,IAAa,IAAM,EAAI,EAAM,CAAC,EAAO,CAAE,EAAI,EAAU,CAAQ,EAG3D,QAFF,IAAa,IAAM,EAAI,EAAM,EAAO,CAAE,EAAI,EAAU,CAAQ,CAElD,CAC5B"}
@@ -0,0 +1,2 @@
1
+ import{createContext as e,useContext as t,useRef as n,useState as r}from"react";import{jsx as i}from"react/jsx-runtime";var a=e(null);function o(){return t(a)}function s({children:e,className:t,style:o,...s}){let c=n(null),l=n(void 0),u=n(!1),d=n(null),[f,p]=r({pointer:null,rect:null}),m=()=>{u.current||(u.current=!0,l.current=requestAnimationFrame(()=>{u.current=!1,l.current=void 0;let e=c.current,t=d.current;if(!e||!t)return;let n=e.getBoundingClientRect();p({pointer:{x:t.x-n.left,y:t.y-n.top},rect:n})}))},h=e=>{d.current={x:e.clientX,y:e.clientY},m()},g=()=>{d.current=null,u.current&&l.current!==void 0&&(cancelAnimationFrame(l.current),u.current=!1,l.current=void 0),p({pointer:null,rect:null})};return i(`div`,{...s,ref:c,className:t,style:o,onPointerMove:h,onPointerLeave:g,children:i(a.Provider,{value:f,children:e})})}export{a as TiltGroupContext,s as default,o as useTiltGroup};
2
+ //# sourceMappingURL=tiltGroup.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tiltGroup.mjs","names":[],"sources":["../../../../package/common/tiltGroup/tiltGroup.tsx"],"sourcesContent":["import { createContext, useContext, useRef, useState, type PointerEvent as ReactPointerEvent, type ReactElement } from 'react';\nimport type { TiltGroupContextValue, TiltGroupProps } from './tiltGroup.types';\n\nexport const TiltGroupContext = createContext<TiltGroupContextValue | null>(null);\n\nexport function useTiltGroup(): TiltGroupContextValue | null {\n return useContext(TiltGroupContext);\n}\n\nfunction TiltGroup({ children, className, style, ...rest }: TiltGroupProps): ReactElement {\n const rootRef = useRef<HTMLDivElement>(null);\n const rafRef = useRef<number | undefined>(undefined);\n // See Tilt's identical `rafPendingRef` for why this is tracked separately from `rafRef`.\n const rafPendingRef = useRef(false);\n const latestClientPos = useRef<{ x: number; y: number } | null>(null);\n const [value, setValue] = useState<TiltGroupContextValue>({ pointer: null, rect: null });\n\n const scheduleUpdate = () => {\n if (rafPendingRef.current) return;\n rafPendingRef.current = true;\n rafRef.current = requestAnimationFrame(() => {\n rafPendingRef.current = false;\n rafRef.current = undefined;\n const root = rootRef.current;\n const pos = latestClientPos.current;\n if (!root || !pos) return;\n const rect = root.getBoundingClientRect();\n setValue({ pointer: { x: pos.x - rect.left, y: pos.y - rect.top }, rect });\n });\n };\n\n const handlePointerMove = (event: ReactPointerEvent<HTMLDivElement>) => {\n latestClientPos.current = { x: event.clientX, y: event.clientY };\n scheduleUpdate();\n };\n\n const handlePointerLeave = () => {\n latestClientPos.current = null;\n if (rafPendingRef.current && rafRef.current !== undefined) {\n cancelAnimationFrame(rafRef.current);\n rafPendingRef.current = false;\n rafRef.current = undefined;\n }\n setValue({ pointer: null, rect: null });\n };\n\n return (\n <div\n {...rest}\n ref={rootRef}\n className={className}\n style={style}\n onPointerMove={handlePointerMove}\n onPointerLeave={handlePointerLeave}\n >\n <TiltGroupContext.Provider value={value}>{children}</TiltGroupContext.Provider>\n </div>\n );\n}\n\nexport default TiltGroup;\n"],"mappings":"wHAGA,IAAa,EAAmB,EAA4C,IAAI,EAEhF,SAAgB,GAA6C,CAC3D,OAAO,EAAW,CAAgB,CACpC,CAEA,SAAS,EAAU,CAAE,WAAU,YAAW,QAAO,GAAG,GAAsC,CACxF,IAAM,EAAU,EAAuB,IAAI,EACrC,EAAS,EAA2B,IAAA,EAAS,EAE7C,EAAgB,EAAO,EAAK,EAC5B,EAAkB,EAAwC,IAAI,EAC9D,CAAC,EAAO,GAAY,EAAgC,CAAE,QAAS,KAAM,KAAM,IAAK,CAAC,EAEjF,MAAuB,CACvB,EAAc,UAClB,EAAc,QAAU,GACxB,EAAO,QAAU,0BAA4B,CAC3C,EAAc,QAAU,GACxB,EAAO,QAAU,IAAA,GACjB,IAAM,EAAO,EAAQ,QACf,EAAM,EAAgB,QAC5B,GAAI,CAAC,GAAQ,CAAC,EAAK,OACnB,IAAM,EAAO,EAAK,sBAAsB,EACxC,EAAS,CAAE,QAAS,CAAE,EAAG,EAAI,EAAI,EAAK,KAAM,EAAG,EAAI,EAAI,EAAK,GAAI,EAAG,MAAK,CAAC,CAC3E,CAAC,EACH,EAEM,EAAqB,GAA6C,CACtE,EAAgB,QAAU,CAAE,EAAG,EAAM,QAAS,EAAG,EAAM,OAAQ,EAC/D,EAAe,CACjB,EAEM,MAA2B,CAC/B,EAAgB,QAAU,KACtB,EAAc,SAAW,EAAO,UAAY,IAAA,KAC9C,qBAAqB,EAAO,OAAO,EACnC,EAAc,QAAU,GACxB,EAAO,QAAU,IAAA,IAEnB,EAAS,CAAE,QAAS,KAAM,KAAM,IAAK,CAAC,CACxC,EAEA,OACE,EAAC,MAAD,CACE,GAAI,EACJ,IAAK,EACM,YACJ,QACP,cAAe,EACf,eAAgB,WAEhB,EAAC,EAAiB,SAAlB,CAAkC,QAAQ,UAAoC,CAAA,CAC3E,CAAA,CAET"}
@@ -1 +1 @@
1
- import{AccordionStyleType as e}from"./common/accordion/accordion.types.mjs";import t from"./common/configProvider/configProvider.mjs";import{useComponentDefaults as n}from"./common/configProvider/useComponentDefaults.mjs";import r from"./common/accordion/accordion.mjs";import i from"./common/loading/spinnerLoading/index.mjs";import{ButtonSize as a,ButtonStyleType as o,ButtonType as s}from"./common/button/button.types.mjs";import c from"./common/ripple/ripple.mjs";import l from"./common/button/button.mjs";import u from"./common/actionButtons/actionButtons.mjs";import d from"./common/interactableDiv/index.mjs";import f from"./common/actionIcon/actionIcon.mjs";import{AlertStyleType as p}from"./common/alert/alert.types.mjs";import m from"./common/alert/alert.mjs";import h from"./common/animatedLogo/animatedLogo.mjs";import{AnimatedTextUnit as g,AnimatedTextVariant as _}from"./common/animatedText/animatedText.types.mjs";import v from"./common/animatedText/animatedText.mjs";import{BadgePosition as y,BadgeStyleType as b}from"./common/badge/badge.types.mjs";import x from"./common/badge/badge.mjs";import S from"./common/avatar/avatar.mjs";import C from"./common/avatar/avatarGroup.mjs";import w from"./common/bodyEnd/bodyEnd.mjs";import{Align as T}from"./common/floatingMenu/floatingMenu.types.mjs";import E from"./common/floatingMenu/floatingMenu.mjs";import D from"./common/breadcrumb/breadcrumb.mjs";import{ButtonGroupOrientation as O}from"./common/buttonGroup/buttonGroup.types.mjs";import k from"./common/buttonGroup/buttonGroup.mjs";import{CardStyleType as A}from"./common/card/card.types.mjs";import j from"./common/card/Card.mjs";import M from"./common/card/CardHeader.mjs";import N from"./common/card/CardMedia.mjs";import P from"./common/card/CardContent.mjs";import F from"./common/card/CardActions.mjs";import I from"./common/carousel/carousel.mjs";import L from"./common/checkbox/checkbox.mjs";import{ChipStyleType as R}from"./common/chip/chip.types.mjs";import z from"./common/chip/chip.mjs";import B from"./common/chip/chipContainer.mjs";import V from"./common/tooltip/tooltip.mjs";import{InputIconPosition as H,InputType as U}from"./common/input/input.types.mjs";import W from"./common/input/input.mjs";import G from"./common/colorPicker/colorPicker.mjs";import K from"./common/modal/modal.mjs";import q from"./common/confirmModal/confirmModal.mjs";import{getLocale as J,mapLocale as Y,setLocale as X}from"./services/localization.mjs";import Z from"./common/infiniteBlock/infiniteBlock.mjs";import Q from"./common/dropdown/dropdown.mjs";import $ from"./common/datePicker/datePicker.mjs";import{DividerOrientation as ee,DividerTextPosition as te}from"./common/divider/divider.types.mjs";import ne from"./common/divider/divider.mjs";import re from"./common/drawer/drawer.mjs";import{DropZoneReturnType as ie,DropZoneStatus as ae}from"./common/dropZone/dropZone.types.mjs";import oe from"./common/dropZone/dropZone.mjs";import se from"./common/emptyState/emptyState.mjs";import{showToast as ce}from"./common/toast/toastService.mjs";import le from"./common/toast/toastProvider.mjs";import ue from"./common/errorBoundary/errorBoundary.mjs";import de from"./common/fab/fab.mjs";import fe from"./common/iconPicker/iconPicker.mjs";import pe from"./common/idleManager/idleManager.mjs";import me from"./common/inputDropdown/inputDropdown.mjs";import he from"./common/kanbanBoard/KanbanColumn.mjs";import ge from"./common/kanbanBoard/KanbanBoard.mjs";import _e from"./common/searchInput/searchInput.mjs";import ve from"./common/klipyPicker/klipyPicker.mjs";import ye from"./common/loading/iconLoading/index.mjs";import be from"./common/numberInput/index.mjs";import xe from"./common/optionPicker/optionPicker.mjs";import Se from"./common/overscroll/overscroll.mjs";import{PopoverAlign as Ce,PopoverPlacement as we,PopoverTrigger as Te}from"./common/popover/popover.types.mjs";import Ee from"./common/popover/popover.mjs";import De from"./common/progressBar/progressBar.mjs";import{RadioGroupOrientation as Oe}from"./common/radioGroup/radioGroup.types.mjs";import ke from"./common/radioGroup/radioGroup.mjs";import Ae from"./common/rating/rating.mjs";import je from"./common/roomDrawer/roomDrawer.mjs";import Me from"./common/roomViewer/roomViewer.mjs";import Ne from"./common/scrollbarProvider/index.mjs";import{SectionHeaderSize as Pe}from"./common/sectionHeader/sectionHeader.types.mjs";import Fe from"./common/sectionHeader/sectionHeader.mjs";import{SkeletonAnimation as Ie,SkeletonVariant as Le}from"./common/skeleton/skeleton.types.mjs";import Re from"./common/skeleton/skeleton.mjs";import ze from"./common/slider/slider.mjs";import Be from"./common/splitButton/splitButton.mjs";import{StepperAlignment as Ve,StepperCollapse as He,StepperLabelPlacement as Ue,StepperStyleType as We}from"./common/stepper/stepper.types.mjs";import Ge from"./common/stepper/stepper.mjs";import Ke from"./common/sticky/sticky.mjs";import qe from"./common/switch/switch.mjs";import Je from"./common/tabHeader/tabHeader.mjs";import Ye from"./common/textarea/textarea.mjs";import{defaultTheme as Xe}from"./common/themeProvider/defaultTheme.mjs";import Ze from"./common/themeProvider/themeProvider.mjs";import{useTheme as Qe}from"./common/themeProvider/useTheme.mjs";import $e from"./common/timeInput/timeInput.mjs";import{TimelineAlignment as et,TimelineItemStatus as tt}from"./common/timeline/timeline.types.mjs";import nt from"./common/timeline/timeline.mjs";import rt from"./common/virtualList/virtualList.mjs";import it from"./common/wizard/wizard.mjs";import at from"./services/formValidation/FormValidatorGroupWithForm.mjs";import ot from"./services/formValidation/validatableComponent.mjs";import{useFormValidatorGroup as st}from"./services/formValidation/useFormValidatorGroup.mjs";import{FormValidator as ct,Validators as lt,useFormValidator as ut}from"./services/formValidation/index.mjs";import{hasEightPasswordChars as dt,hasOnePasswordDigit as ft,hasOnePasswordLetter as pt,isBic as mt,isDate as ht,isEmail as gt,isISODate as _t,isNumber as vt,isPassword as yt,isURL as bt}from"@ahrowe/form-validation";export{r as Accordion,e as AccordionStyleType,u as ActionButtons,f as ActionIcon,m as Alert,p as AlertStyleType,T as Align,h as AnimatedLogo,v as AnimatedText,g as AnimatedTextUnit,_ as AnimatedTextVariant,S as Avatar,C as AvatarGroup,x as Badge,y as BadgePosition,b as BadgeStyleType,w as BodyEnd,D as Breadcrumb,l as Button,k as ButtonGroup,O as ButtonGroupOrientation,a as ButtonSize,o as ButtonStyleType,s as ButtonType,j as Card,F as CardActions,P as CardContent,M as CardHeader,N as CardMedia,A as CardStyleType,I as Carousel,L as Checkbox,z as Chip,B as ChipContainer,R as ChipStyleType,G as ColorPicker,t as ConfigProvider,q as ConfirmModal,$ as DatePicker,ne as Divider,ee as DividerOrientation,te as DividerTextPosition,re as Drawer,oe as DropZone,ie as DropZoneReturnType,ae as DropZoneStatus,Q as Dropdown,se as EmptyState,ue as ErrorBoundary,de as Fab,E as FloatingMenu,ct as FormValidator,at as FormValidatorGroup,ye as IconLoading,fe as IconPicker,pe as IdleManager,Z as InfiniteBlock,W as Input,me as InputDropdown,H as InputIconPosition,U as InputType,d as InteractableDiv,ge as KanbanBoard,he as KanbanColumn,ve as KlipyPicker,K as Modal,be as NumberInput,xe as OptionPicker,Se as Overscroll,Ee as Popover,Ce as PopoverAlign,we as PopoverPlacement,Te as PopoverTrigger,De as ProgressBar,ke as RadioGroup,Oe as RadioGroupOrientation,Ae as Rating,c as Ripple,je as RoomDrawer,Me as RoomViewer,Ne as ScrollbarProvider,_e as SearchInput,Fe as SectionHeader,Pe as SectionHeaderSize,Re as Skeleton,Ie as SkeletonAnimation,Le as SkeletonVariant,ze as Slider,i as SpinnerLoading,Be as SplitButton,Ge as Stepper,Ve as StepperAlignment,He as StepperCollapse,Ue as StepperLabelPlacement,We as StepperStyleType,Ke as Sticky,qe as Switch,Je as TabHeader,Ye as Textarea,Ze as ThemeProvider,$e as TimeInput,nt as Timeline,et as TimelineAlignment,tt as TimelineItemStatus,le as ToastProvider,V as Tooltip,ot as ValidatableComponent,lt as Validators,rt as VirtualList,it as Wizard,Xe as defaultTheme,J as getLocale,dt as hasEightPasswordChars,ft as hasOnePasswordDigit,pt as hasOnePasswordLetter,mt as isBic,ht as isDate,gt as isEmail,_t as isISODate,vt as isNumber,yt as isPassword,bt as isURL,Y as mapLocale,X as setLocale,ce as showToast,n as useComponentDefaults,ut as useFormValidator,st as useFormValidatorGroup,Qe as useTheme};
1
+ import{AccordionStyleType as e}from"./common/accordion/accordion.types.mjs";import t from"./common/configProvider/configProvider.mjs";import{useComponentDefaults as n}from"./common/configProvider/useComponentDefaults.mjs";import r from"./common/accordion/accordion.mjs";import i from"./common/loading/spinnerLoading/index.mjs";import{ButtonSize as a,ButtonStyleType as o,ButtonType as s}from"./common/button/button.types.mjs";import c from"./common/ripple/ripple.mjs";import l from"./common/button/button.mjs";import u from"./common/actionButtons/actionButtons.mjs";import d from"./common/interactableDiv/index.mjs";import f from"./common/actionIcon/actionIcon.mjs";import{AlertStyleType as p}from"./common/alert/alert.types.mjs";import m from"./common/alert/alert.mjs";import h from"./common/animatedLogo/animatedLogo.mjs";import{AnimatedTextUnit as g,AnimatedTextVariant as _}from"./common/animatedText/animatedText.types.mjs";import v from"./common/animatedText/animatedText.mjs";import{BadgePosition as y,BadgeStyleType as b}from"./common/badge/badge.types.mjs";import x from"./common/badge/badge.mjs";import S from"./common/avatar/avatar.mjs";import C from"./common/avatar/avatarGroup.mjs";import w from"./common/bodyEnd/bodyEnd.mjs";import{Align as T}from"./common/floatingMenu/floatingMenu.types.mjs";import E from"./common/floatingMenu/floatingMenu.mjs";import D from"./common/breadcrumb/breadcrumb.mjs";import{ButtonGroupOrientation as O}from"./common/buttonGroup/buttonGroup.types.mjs";import k from"./common/buttonGroup/buttonGroup.mjs";import{CardStyleType as A}from"./common/card/card.types.mjs";import j from"./common/card/Card.mjs";import M from"./common/card/CardHeader.mjs";import N from"./common/card/CardMedia.mjs";import P from"./common/card/CardContent.mjs";import F from"./common/card/CardActions.mjs";import I from"./common/carousel/carousel.mjs";import L from"./common/checkbox/checkbox.mjs";import{ChipStyleType as R}from"./common/chip/chip.types.mjs";import z from"./common/chip/chip.mjs";import B from"./common/chip/chipContainer.mjs";import V from"./common/tooltip/tooltip.mjs";import{InputIconPosition as H,InputType as U}from"./common/input/input.types.mjs";import W from"./common/input/input.mjs";import G from"./common/colorPicker/colorPicker.mjs";import K from"./common/modal/modal.mjs";import q from"./common/confirmModal/confirmModal.mjs";import{getLocale as J,mapLocale as Y,setLocale as X}from"./services/localization.mjs";import Z from"./common/infiniteBlock/infiniteBlock.mjs";import Q from"./common/dropdown/dropdown.mjs";import $ from"./common/datePicker/datePicker.mjs";import{DividerOrientation as ee,DividerTextPosition as te}from"./common/divider/divider.types.mjs";import ne from"./common/divider/divider.mjs";import re from"./common/drawer/drawer.mjs";import{DropZoneReturnType as ie,DropZoneStatus as ae}from"./common/dropZone/dropZone.types.mjs";import oe from"./common/dropZone/dropZone.mjs";import se from"./common/emptyState/emptyState.mjs";import{showToast as ce}from"./common/toast/toastService.mjs";import le from"./common/toast/toastProvider.mjs";import ue from"./common/errorBoundary/errorBoundary.mjs";import de from"./common/fab/fab.mjs";import fe from"./common/flip/flip.mjs";import pe from"./common/iconPicker/iconPicker.mjs";import me from"./common/idleManager/idleManager.mjs";import he from"./common/inputDropdown/inputDropdown.mjs";import ge from"./common/kanbanBoard/KanbanColumn.mjs";import _e from"./common/kanbanBoard/KanbanBoard.mjs";import ve from"./common/searchInput/searchInput.mjs";import ye from"./common/klipyPicker/klipyPicker.mjs";import be from"./common/loading/iconLoading/index.mjs";import xe from"./common/numberInput/index.mjs";import Se from"./common/optionPicker/optionPicker.mjs";import Ce from"./common/overscroll/overscroll.mjs";import{PopoverAlign as we,PopoverPlacement as Te,PopoverTrigger as Ee}from"./common/popover/popover.types.mjs";import De from"./common/popover/popover.mjs";import Oe from"./common/progressBar/progressBar.mjs";import{RadioGroupOrientation as ke}from"./common/radioGroup/radioGroup.types.mjs";import Ae from"./common/radioGroup/radioGroup.mjs";import je from"./common/rating/rating.mjs";import Me from"./common/revealLens/revealLens.mjs";import Ne from"./common/roomDrawer/roomDrawer.mjs";import Pe from"./common/roomViewer/roomViewer.mjs";import Fe from"./common/scrollbarProvider/index.mjs";import{SectionHeaderSize as Ie}from"./common/sectionHeader/sectionHeader.types.mjs";import Le from"./common/sectionHeader/sectionHeader.mjs";import{SkeletonAnimation as Re,SkeletonVariant as ze}from"./common/skeleton/skeleton.types.mjs";import Be from"./common/skeleton/skeleton.mjs";import Ve from"./common/slider/slider.mjs";import He from"./common/splitButton/splitButton.mjs";import{StepperAlignment as Ue,StepperCollapse as We,StepperLabelPlacement as Ge,StepperStyleType as Ke}from"./common/stepper/stepper.types.mjs";import qe from"./common/stepper/stepper.mjs";import Je from"./common/sticky/sticky.mjs";import Ye from"./common/switch/switch.mjs";import Xe from"./common/tabHeader/tabHeader.mjs";import Ze from"./common/textarea/textarea.mjs";import{defaultTheme as Qe}from"./common/themeProvider/defaultTheme.mjs";import $e from"./common/themeProvider/themeProvider.mjs";import{useTheme as et}from"./common/themeProvider/useTheme.mjs";import tt,{TiltGroupContext as nt,useTiltGroup as rt}from"./common/tiltGroup/tiltGroup.mjs";import{defaultTiltEasing as it}from"./common/tilt/tiltMath.mjs";import at from"./common/tilt/tilt.mjs";import ot from"./common/timeInput/timeInput.mjs";import{TimelineAlignment as st,TimelineItemStatus as ct}from"./common/timeline/timeline.types.mjs";import lt from"./common/timeline/timeline.mjs";import ut from"./common/virtualList/virtualList.mjs";import dt from"./common/wizard/wizard.mjs";import ft from"./services/formValidation/FormValidatorGroupWithForm.mjs";import pt from"./services/formValidation/validatableComponent.mjs";import{useFormValidatorGroup as mt}from"./services/formValidation/useFormValidatorGroup.mjs";import{FormValidator as ht,Validators as gt,useFormValidator as _t}from"./services/formValidation/index.mjs";import{hasEightPasswordChars as vt,hasOnePasswordDigit as yt,hasOnePasswordLetter as bt,isBic as xt,isDate as St,isEmail as Ct,isISODate as wt,isNumber as Tt,isPassword as Et,isURL as Dt}from"@ahrowe/form-validation";export{r as Accordion,e as AccordionStyleType,u as ActionButtons,f as ActionIcon,m as Alert,p as AlertStyleType,T as Align,h as AnimatedLogo,v as AnimatedText,g as AnimatedTextUnit,_ as AnimatedTextVariant,S as Avatar,C as AvatarGroup,x as Badge,y as BadgePosition,b as BadgeStyleType,w as BodyEnd,D as Breadcrumb,l as Button,k as ButtonGroup,O as ButtonGroupOrientation,a as ButtonSize,o as ButtonStyleType,s as ButtonType,j as Card,F as CardActions,P as CardContent,M as CardHeader,N as CardMedia,A as CardStyleType,I as Carousel,L as Checkbox,z as Chip,B as ChipContainer,R as ChipStyleType,G as ColorPicker,t as ConfigProvider,q as ConfirmModal,$ as DatePicker,ne as Divider,ee as DividerOrientation,te as DividerTextPosition,re as Drawer,oe as DropZone,ie as DropZoneReturnType,ae as DropZoneStatus,Q as Dropdown,se as EmptyState,ue as ErrorBoundary,de as Fab,fe as Flip,E as FloatingMenu,ht as FormValidator,ft as FormValidatorGroup,be as IconLoading,pe as IconPicker,me as IdleManager,Z as InfiniteBlock,W as Input,he as InputDropdown,H as InputIconPosition,U as InputType,d as InteractableDiv,_e as KanbanBoard,ge as KanbanColumn,ye as KlipyPicker,K as Modal,xe as NumberInput,Se as OptionPicker,Ce as Overscroll,De as Popover,we as PopoverAlign,Te as PopoverPlacement,Ee as PopoverTrigger,Oe as ProgressBar,Ae as RadioGroup,ke as RadioGroupOrientation,je as Rating,Me as RevealLens,c as Ripple,Ne as RoomDrawer,Pe as RoomViewer,Fe as ScrollbarProvider,ve as SearchInput,Le as SectionHeader,Ie as SectionHeaderSize,Be as Skeleton,Re as SkeletonAnimation,ze as SkeletonVariant,Ve as Slider,i as SpinnerLoading,He as SplitButton,qe as Stepper,Ue as StepperAlignment,We as StepperCollapse,Ge as StepperLabelPlacement,Ke as StepperStyleType,Je as Sticky,Ye as Switch,Xe as TabHeader,Ze as Textarea,$e as ThemeProvider,at as Tilt,tt as TiltGroup,nt as TiltGroupContext,ot as TimeInput,lt as Timeline,st as TimelineAlignment,ct as TimelineItemStatus,le as ToastProvider,V as Tooltip,pt as ValidatableComponent,gt as Validators,ut as VirtualList,dt as Wizard,Qe as defaultTheme,it as defaultTiltEasing,J as getLocale,vt as hasEightPasswordChars,yt as hasOnePasswordDigit,bt as hasOnePasswordLetter,xt as isBic,St as isDate,Ct as isEmail,wt as isISODate,Tt as isNumber,Et as isPassword,Dt as isURL,Y as mapLocale,X as setLocale,ce as showToast,n as useComponentDefaults,_t as useFormValidator,mt as useFormValidatorGroup,et as useTheme,rt as useTiltGroup};