@yewdiel21/motion-kit 0.18.0 → 0.19.1

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 (75) hide show
  1. package/README.md +245 -222
  2. package/bin/motion-kit.mjs +0 -0
  3. package/dist/auto/index.d.ts +4 -3
  4. package/dist/auto/index.js +5 -3
  5. package/dist/auto/index.js.map +1 -1
  6. package/dist/{chunk-QFBOHPWZ.js → chunk-CQP66AZK.js} +2 -2
  7. package/dist/{chunk-QP4QJOEN.js → chunk-H4STLMCM.js} +2 -2
  8. package/dist/{chunk-AWDEKDEJ.js → chunk-LIXSOGS2.js} +8 -22
  9. package/dist/chunk-LIXSOGS2.js.map +1 -0
  10. package/dist/{chunk-Q7IW4FV3.js → chunk-NCGNIPJE.js} +1430 -968
  11. package/dist/chunk-NCGNIPJE.js.map +1 -0
  12. package/dist/{chunk-DOOMULVV.js → chunk-OLT3CWDJ.js} +4 -2
  13. package/dist/chunk-OLT3CWDJ.js.map +1 -0
  14. package/dist/{chunk-EDMXWUW3.js → chunk-PVN7YVKV.js} +3 -3
  15. package/dist/css/components/code-block.css +267 -0
  16. package/dist/css/components/command-search.css +274 -2
  17. package/dist/css/components/dialog.css +264 -0
  18. package/dist/css/components/heatmap-chart.css +267 -1
  19. package/dist/css/components/pill-button.css +7 -5
  20. package/dist/css/components/scroll-area.css +261 -0
  21. package/dist/css/components/scroll-island.css +6 -0
  22. package/dist/css/components/select.css +284 -4
  23. package/dist/elements/index.d.ts +15 -4
  24. package/dist/elements/index.js +36 -6
  25. package/dist/elements/index.js.map +1 -1
  26. package/dist/{engine-t8d7brjn.d.ts → engine-D6XV-WNt.d.ts} +50 -1
  27. package/dist/gl/index.js +2 -2
  28. package/dist/index.css +321 -12
  29. package/dist/index.d.ts +3 -3
  30. package/dist/index.js +7 -5
  31. package/dist/index.js.map +1 -1
  32. package/dist/react/index.d.ts +20 -7
  33. package/dist/react/index.js +56 -7
  34. package/dist/react/index.js.map +1 -1
  35. package/dist/{reduced-dPsZYqtI.d.ts → reduced-4croIXl-.d.ts} +1 -1
  36. package/dist/{store-6hZNKiee.d.ts → store-CAHWkurn.d.ts} +1 -1
  37. package/package.json +117 -110
  38. package/registry.json +1357 -1340
  39. package/src/auto/auto-init.ts +341 -339
  40. package/src/components/code-block/README.md +1 -1
  41. package/src/components/code-block/code-block.css +5 -0
  42. package/src/components/code-block/engine.ts +5 -0
  43. package/src/components/command-search/README.md +1 -1
  44. package/src/components/command-search/command-search.css +12 -2
  45. package/src/components/command-search/engine.ts +6 -0
  46. package/src/components/dialog/README.md +104 -103
  47. package/src/components/dialog/dialog.css +2 -0
  48. package/src/components/dialog/engine.ts +465 -449
  49. package/src/components/heatmap-chart/README.md +48 -48
  50. package/src/components/heatmap-chart/engine.ts +6 -1
  51. package/src/components/heatmap-chart/heatmap-chart.css +5 -1
  52. package/src/components/icons.ts +1 -0
  53. package/src/components/pill-button/engine.ts +1 -1
  54. package/src/components/pill-button/pill-button.css +7 -5
  55. package/src/components/scroll-area/README.md +89 -0
  56. package/src/components/scroll-area/element.ts +35 -0
  57. package/src/components/scroll-area/engine.ts +528 -0
  58. package/src/components/scroll-area/react.tsx +67 -0
  59. package/src/components/scroll-area/scroll-area.css +260 -0
  60. package/src/components/scroll-island/engine.ts +10 -1
  61. package/src/components/scroll-island/scroll-island.css +6 -0
  62. package/src/components/select/README.md +1 -1
  63. package/src/components/select/engine.ts +16 -4
  64. package/src/components/select/select.css +22 -4
  65. package/src/core/timing.ts +2 -0
  66. package/src/elements/index.ts +321 -318
  67. package/src/index.ts +1 -0
  68. package/src/motion/morph.ts +5 -2
  69. package/src/react/index.ts +2 -1
  70. package/dist/chunk-AWDEKDEJ.js.map +0 -1
  71. package/dist/chunk-DOOMULVV.js.map +0 -1
  72. package/dist/chunk-Q7IW4FV3.js.map +0 -1
  73. /package/dist/{chunk-QFBOHPWZ.js.map → chunk-CQP66AZK.js.map} +0 -0
  74. /package/dist/{chunk-QP4QJOEN.js.map → chunk-H4STLMCM.js.map} +0 -0
  75. /package/dist/{chunk-EDMXWUW3.js.map → chunk-PVN7YVKV.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/react/use-recipe.ts","../../src/react/use-spring-cards.ts","../../src/react/use-curved-carousel.ts","../../src/react/use-pile.ts","../../src/react/use-words.ts","../../src/react/use-flow.ts","../../src/react/use-pop.ts","../../src/react/use-fit-text.ts","../../src/react/use-stretch-footer.ts","../../src/react/use-radial-menu.ts","../../src/react/use-tabs.ts","../../src/react/use-counter.ts","../../src/react/use-details.ts","../../src/react/use-reveal.ts","../../src/react/use-reflow.ts","../../src/react/use-slot-text.ts","../../src/react/use-sortable.ts","../../src/react/use-mask-text.ts","../../src/react/use-cascade.ts","../../src/react/use-text-roll.ts","../../src/react/use-letters.ts","../../src/react/use-parallax.ts","../../src/react/use-depth-grid.ts","../../src/react/use-frame-zoom.ts","../../src/react/use-contrast.ts","../../src/react/use-marquee.ts","../../src/react/use-card-dock.ts","../../src/react/use-snap-strip.ts","../../src/react/use-fill-text.ts","../../src/react/use-ticket-menu.ts","../../src/react/use-infinite-reel.ts","../../src/react/use-repel-bento.ts","../../src/react/use-rotator.ts","../../src/react/use-drag-ruler.ts","../../src/react/use-dock-pill.ts","../../src/react/use-liquid-blend.ts","../../src/react/use-matcap.ts","../../src/react/use-shader-grain.ts","../../src/react/use-shader-blur.ts","../../src/react/use-particle-hero.ts","../../src/react/theme-provider.tsx","../../src/components/theme-picker/react.tsx","../../src/react/slot-text.tsx","../../src/react/animated-number.tsx","../../src/react/flip-group.tsx","../../src/components/dialog/react.tsx","../../src/components/icon.tsx","../../src/components/menu/react.tsx","../../src/components/toast/react.tsx","../../src/components/chat-background/react.tsx","../../src/components/chat/react.tsx","../../src/components/nav/react.tsx","../../src/components/steps/react.tsx","../../src/components/cursor/react.tsx","../../src/react/frost.tsx","../../src/components/island/react.tsx","../../src/components/quantity/react.tsx","../../src/components/pagination/react.tsx","../../src/components/hover-card/react.tsx","../../src/components/input-otp/react.tsx","../../src/react/use-joined-cta.ts","../../src/react/use-image-zoom.ts","../../src/react/use-font-cycle.ts","../../src/react/use-thumbnail-nav.ts","../../src/react/use-action-button.ts","../../src/react/use-film-hero.ts","../../src/react/use-editorial-reveal.ts","../../src/react/use-studio-dock.ts","../../src/react/use-trailer.ts","../../src/components/studio-dock/react.tsx","../../src/components/trailer/react.tsx","../../src/components/calendar/react.tsx","../../src/components/slot-picker/react.tsx","../../src/react/use-weight-hover.ts","../../src/react/use-sticker.ts","../../src/react/use-scroll-dock.ts","../../src/react/use-local-clock.ts","../../src/components/attachment/react.tsx","../../src/components/skeleton/react.tsx","../../src/components/questionnaire/react.tsx","../../src/components/code-block/react.tsx","../../src/components/context-menu/react.tsx","../../src/components/drawer/react.tsx","../../src/components/link-preview/react.tsx","../../src/components/progress/react.tsx","../../src/components/range-slider/react.tsx","../../src/components/chart/react.tsx","../../src/components/credit-card/react.tsx","../../src/components/command-search/react.tsx","../../src/components/hold-confirm/react.tsx","../../src/components/image-preview/react.tsx","../../src/components/like-button/react.tsx","../../src/components/notification-bell/react.tsx","../../src/components/password-strength/react.tsx","../../src/components/scratch-card/react.tsx","../../src/components/star-rating/react.tsx","../../src/components/swipe-actions/react.tsx","../../src/components/color-slider/react.tsx","../../src/components/color-area/react.tsx","../../src/components/color-field/react.tsx","../../src/components/color-picker/react.tsx","../../src/components/time-field/react.tsx","../../src/components/range-calendar/react.tsx","../../src/components/date-range-picker/react.tsx","../../src/components/tooltip/react.tsx","../../src/components/popover/react.tsx","../../src/components/loading-button/react.tsx","../../src/components/breadcrumb/react.tsx","../../src/components/empty-state/react.tsx","../../src/components/stat-card/react.tsx","../../src/components/chart-tooltip/react.tsx","../../src/components/multi-select/react.tsx","../../src/components/tag-input/react.tsx","../../src/components/date-time-picker/react.tsx","../../src/components/filter-builder/react.tsx","../../src/components/timeline/react.tsx","../../src/components/activity-feed/react.tsx","../../src/components/tree-view/react.tsx","../../src/components/file-explorer/react.tsx","../../src/components/json-viewer/react.tsx","../../src/components/virtual-list/react.tsx","../../src/components/resizable-panel/react.tsx","../../src/components/split-view/react.tsx","../../src/components/data-table/react.tsx","../../src/components/editable-table/react.tsx","../../src/components/rich-text-editor/react.tsx","../../src/components/select/react.tsx","../../src/components/add-to-cart/react.tsx","../../src/components/scroll-island/react.tsx","../../src/components/pill-button/react.tsx","../../src/components/toolbar/react.tsx","../../src/components/bidirectional-slider/react.tsx","../../src/components/voice-dots/react.tsx","../../src/components/chart/use-chart.ts","../../src/components/pie-chart/react.tsx","../../src/components/radar-chart/react.tsx","../../src/components/radial-chart/react.tsx","../../src/components/sankey-chart/react.tsx","../../src/components/heatmap-chart/react.tsx","../../src/components/orbit-menu/react.tsx","../../src/components/signature-pad/react.tsx","../../src/components/waveform-player/react.tsx","../../src/components/voice-message-bubble/react.tsx","../../src/components/drilldown-menu/react.tsx","../../src/components/wheel-picker/react.tsx","../../src/components/stepper/react.tsx","../../src/components/radio-group/react.tsx","../../src/components/equalizer-slider/react.tsx","../../src/components/temperature-slider/react.tsx","../../src/components/rating-scale/react.tsx","../../src/components/notification-stack/react.tsx","../../src/components/bento-grid/react.tsx","../../src/components/scroll-preview-dock/react.tsx","../../src/components/sticky-header/react.tsx","../../src/components/handwriting-text/react.tsx","../../src/components/particle-button/react.tsx","../../src/components/magnetize-button/react.tsx","../../src/components/badge-button/react.tsx","../../src/components/morphing-page-dots/react.tsx","../../src/components/not-found/react.tsx"],"sourcesContent":["'use client';\n\nimport { useEffect, useLayoutEffect, useRef, type DependencyList, type RefObject } from 'react';\nimport type { Instance } from '../core/types';\n\n/** useLayoutEffect in the browser (no flash), useEffect during SSR (no warning). */\nexport const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\n/**\n * Create a recipe on `ref.current` after mount and destroy it on unmount or when\n * `deps` change. Returns a ref holding the live instance (controls like `next()`).\n */\nexport function useRecipe<I extends Instance, O>(\n ref: RefObject<HTMLElement | null>,\n factory: (el: HTMLElement | null, options?: O) => I,\n options?: O,\n deps: DependencyList = [],\n): RefObject<I | null> {\n const instance = useRef<I | null>(null);\n useIsomorphicLayoutEffect(() => {\n const created = factory(ref.current, options);\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // Options are read once per creation; pass `deps` to recreate when they change.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n return instance;\n}\n\n/** Keep the latest callback in a ref so recipes do not restart on every render. */\nexport function useLatest<T>(value: T) {\n const ref = useRef(value);\n ref.current = value;\n return ref;\n}\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createSpringCards, type SpringCardsOptions } from '../recipes/spring-cards/create-spring-cards';\n\nexport const useSpringCards = (ref: RefObject<HTMLElement | null>, options?: SpringCardsOptions, deps?: DependencyList) =>\n useRecipe(ref, createSpringCards, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useLatest, useRecipe } from './use-recipe';\nimport { createCurvedCarousel, type CurvedCarouselOptions } from '../recipes/curved-carousel/create-curved-carousel';\n\nexport function useCurvedCarousel(ref: RefObject<HTMLElement | null>, options: CurvedCarouselOptions = {}, deps?: DependencyList) {\n const onSelect = useLatest(options.onSelect);\n return useRecipe(ref, createCurvedCarousel, { ...options, onSelect: (index, slide) => onSelect.current?.(index, slide) }, deps);\n}\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createPile, type PileOptions } from '../recipes/pile/create-pile';\n\nexport const usePile = (ref: RefObject<HTMLElement | null>, options?: PileOptions, deps?: DependencyList) =>\n useRecipe(ref, createPile, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createWords, type WordsOptions } from '../recipes/words/create-words';\n\nexport const useWords = (ref: RefObject<HTMLElement | null>, options?: WordsOptions, deps?: DependencyList) =>\n useRecipe(ref, createWords, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createFlow, type FlowOptions } from '../recipes/flow/create-flow';\n\nexport const useFlow = (ref: RefObject<HTMLElement | null>, options?: FlowOptions, deps?: DependencyList) =>\n useRecipe(ref, createFlow, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createPop, type PopOptions } from '../recipes/pop/create-pop';\n\nexport const usePop = (ref: RefObject<HTMLElement | null>, options?: PopOptions, deps?: DependencyList) =>\n useRecipe(ref, createPop, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createFitText, type FitTextOptions } from '../recipes/fit-text/create-fit-text';\n\nexport const useFitText = (ref: RefObject<HTMLElement | null>, options?: FitTextOptions, deps?: DependencyList) =>\n useRecipe(ref, createFitText, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createStretchFooter, type StretchFooterOptions } from '../recipes/stretch-footer/create-stretch-footer';\n\nexport interface UseStretchFooterOptions extends Omit<StretchFooterOptions, 'phantom' | 'title'> {\n phantomRef?: RefObject<HTMLElement | null>;\n titleRef?: RefObject<HTMLElement | null>;\n}\n\nexport function useStretchFooter(ref: RefObject<HTMLElement | null>, options: UseStretchFooterOptions = {}, deps?: DependencyList) {\n const { phantomRef, titleRef, ...rest } = options;\n return useRecipe(\n ref,\n (el) => createStretchFooter(el, { ...rest, phantom: phantomRef?.current ?? undefined, title: titleRef?.current ?? undefined }),\n undefined,\n deps,\n );\n}\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useLatest, useRecipe } from './use-recipe';\nimport { createRadialMenu, type RadialMenuOptions } from '../recipes/radial-menu/create-radial-menu';\n\nexport function useRadialMenu(ref: RefObject<HTMLElement | null>, options: RadialMenuOptions = {}, deps?: DependencyList) {\n const onToggle = useLatest(options.onToggle);\n return useRecipe(ref, createRadialMenu, { ...options, onToggle: (open) => onToggle.current?.(open) }, deps);\n}\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useLatest, useRecipe } from './use-recipe';\nimport { createTabs, type TabsOptions } from '../recipes/tabs/create-tabs';\n\nexport function useTabs(ref: RefObject<HTMLElement | null>, options: TabsOptions = {}, deps?: DependencyList) {\n const onSelect = useLatest(options.onSelect);\n return useRecipe(ref, createTabs, { ...options, onSelect: (index, tab) => onSelect.current?.(index, tab) }, deps);\n}\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createCounter, type CounterOptions } from '../recipes/counter/create-counter';\n\nexport const useCounter = (ref: RefObject<HTMLElement | null>, options?: CounterOptions, deps?: DependencyList) =>\n useRecipe(ref, createCounter, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createDetails } from '../recipes/details/create-details';\n\nexport const useDetails = (ref: RefObject<HTMLElement | null>, deps?: DependencyList) => useRecipe(ref, createDetails, undefined, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createReveal, type RevealRecipeOptions } from '../recipes/reveal/create-reveal';\n\nexport const useReveal = (ref: RefObject<HTMLElement | null>, options?: RevealRecipeOptions, deps?: DependencyList) =>\n useRecipe(ref, createReveal, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createReflow, type ReflowOptions } from '../recipes/reflow/create-reflow';\n\n/** Call `.current.capture()` before the state change and `.current.play()` in a layout effect after it. */\nexport const useReflow = (ref: RefObject<HTMLElement | null>, options?: ReflowOptions, deps?: DependencyList) =>\n useRecipe(ref, createReflow, options, deps);\n","'use client';\n\nimport type { RefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useRecipe } from './use-recipe';\nimport { createSlotText, type SlotTextOptions } from '../recipes/slot-text/create-slot-text';\n\n/**\n * Rolls `text` into `ref` whenever it changes. The element must render no\n * children of its own: the recipe writes the letters (see `<SlotText>`).\n */\nexport function useSlotText(ref: RefObject<HTMLElement | null>, text: string, options: Omit<SlotTextOptions, 'text'> = {}) {\n const instance = useRecipe(ref, createSlotText, { ...options, text });\n useIsomorphicLayoutEffect(() => {\n instance.current?.set(text);\n }, [text]);\n return instance;\n}\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useLatest, useRecipe } from './use-recipe';\nimport { createSortable, type SortableOptions } from '../recipes/sortable/create-sortable';\n\n/**\n * Drag to reorder a list React renders: answer `onReorder` by updating your state\n * (React moves the DOM; the engine waits for it and lands the item). `mutate` is off.\n */\nexport function useSortable(ref: RefObject<HTMLElement | null>, options: SortableOptions = {}, deps?: DependencyList) {\n const onReorder = useLatest(options.onReorder);\n return useRecipe(ref, createSortable, { mutate: false, ...options, onReorder: (detail) => onReorder.current?.(detail) }, deps);\n}\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createMaskText, type MaskTextOptions } from '../recipes/mask-text/create-mask-text';\n\n/** Masked lines / words / letters rising into view. */\nexport const useMaskText = (ref: RefObject<HTMLElement | null>, options?: MaskTextOptions, deps?: DependencyList) =>\n useRecipe(ref, createMaskText, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createCascade, type CascadeOptions } from '../recipes/cascade/create-cascade';\n\n/** reveal group: rules, fades and rises one after another. */\nexport const useCascade = (ref: RefObject<HTMLElement | null>, options?: CascadeOptions, deps?: DependencyList) =>\n useRecipe(ref, createCascade, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createTextRoll, type TextRollOptions } from '../recipes/text-roll/create-text-roll';\n\n/** slot title. `.current.play()` spins it. */\nexport const useTextRoll = (ref: RefObject<HTMLElement | null>, options?: TextRollOptions, deps?: DependencyList) =>\n useRecipe(ref, createTextRoll, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createLetters, type LettersOptions } from '../recipes/letters/create-letters';\n\n/** hero letters (scale on hover or pastel blink). */\nexport const useLetters = (ref: RefObject<HTMLElement | null>, options?: LettersOptions, deps?: DependencyList) =>\n useRecipe(ref, createLetters, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createParallax, type ParallaxOptions } from '../recipes/parallax/create-parallax';\n\n/** photo parallax inside its frame. */\nexport const useParallax = (ref: RefObject<HTMLElement | null>, options?: ParallaxOptions, deps?: DependencyList) =>\n useRecipe(ref, createParallax, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createDepthGrid, type DepthGridOptions } from '../recipes/depth-grid/create-depth-grid';\n\n/** grid gathering from depth as it scrolls. */\nexport const useDepthGrid = (ref: RefObject<HTMLElement | null>, options?: DepthGridOptions, deps?: DependencyList) =>\n useRecipe(ref, createDepthGrid, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createFrameZoom, type FrameZoomOptions } from '../recipes/frame-zoom/create-frame-zoom';\n\n/** video mask: frame and picture scale in opposite directions. */\nexport const useFrameZoom = (ref: RefObject<HTMLElement | null>, options?: FrameZoomOptions, deps?: DependencyList) =>\n useRecipe(ref, createFrameZoom, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createContrast, type ContrastOptions } from '../recipes/contrast/create-contrast';\n\n/** header contrast from the section under it. */\nexport const useContrast = (ref: RefObject<HTMLElement | null>, options?: ContrastOptions, deps?: DependencyList) =>\n useRecipe(ref, createContrast, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createMarquee, type MarqueeOptions } from '../recipes/marquee/create-marquee';\n\n/** seamless marquee. */\nexport const useMarquee = (ref: RefObject<HTMLElement | null>, options?: MarqueeOptions, deps?: DependencyList) =>\n useRecipe(ref, createMarquee, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createCardDock, type CardDockOptions } from '../recipes/card-dock/create-card-dock';\n\n/** product dock (stacked glass cards that spread on hover). */\nexport const useCardDock = (ref: RefObject<HTMLElement | null>, options?: CardDockOptions, deps?: DependencyList) =>\n useRecipe(ref, createCardDock, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createSnapStrip, type SnapStripOptions } from '../recipes/snap-strip/create-snap-strip';\n\n/** phone cards: an autoplaying scroll-snap strip. */\nexport const useSnapStrip = (ref: RefObject<HTMLElement | null>, options?: SnapStripOptions, deps?: DependencyList) =>\n useRecipe(ref, createSnapStrip, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createFillText, type FillTextOptions } from '../recipes/fill-text/create-fill-text';\n\n/** fill-text: letters fill in as the text scrolls up. */\nexport const useFillText = (ref: RefObject<HTMLElement | null>, options?: FillTextOptions, deps?: DependencyList) =>\n useRecipe(ref, createFillText, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useLatest, useRecipe } from './use-recipe';\nimport { createTicketMenu, type TicketMenuOptions } from '../recipes/ticket-menu/create-ticket-menu';\n\nexport function useTicketMenu(ref: RefObject<HTMLElement | null>, options: TicketMenuOptions = {}, deps?: DependencyList) {\n const latest = useLatest(options);\n return useRecipe(ref, createTicketMenu, {\n ...options,\n onSelect: (value, item) => latest.current.onSelect?.(value, item),\n onOpen: () => latest.current.onOpen?.(),\n onClose: () => latest.current.onClose?.(),\n }, deps);\n}\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createInfiniteReel, type InfiniteReelOptions } from '../recipes/infinite-reel/create-infinite-reel';\n\nexport const useInfiniteReel = (ref: RefObject<HTMLElement | null>, options?: InfiniteReelOptions, deps?: DependencyList) =>\n useRecipe(ref, createInfiniteReel, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createRepelBento, type RepelBentoOptions } from '../recipes/repel-bento/create-repel-bento';\n\nexport const useRepelBento = (ref: RefObject<HTMLElement | null>, options?: RepelBentoOptions, deps?: DependencyList) =>\n useRecipe(ref, createRepelBento, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useLatest, useRecipe } from './use-recipe';\nimport { createRotator, type RotatorOptions } from '../recipes/rotator/create-rotator';\n\nexport function useRotator(ref: RefObject<HTMLElement | null>, options: RotatorOptions = {}, deps?: DependencyList) {\n const callback = useLatest(options.onChange);\n return useRecipe(ref, createRotator, { ...options, onChange: (index) => callback.current?.(index) }, deps);\n}\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useLatest, useRecipe } from './use-recipe';\nimport { createDragRuler, type DragRulerOptions } from '../recipes/drag-ruler/create-drag-ruler';\n\nexport function useDragRuler(ref: RefObject<HTMLElement | null>, options: DragRulerOptions = {}, deps?: DependencyList) {\n const callback = useLatest(options.onChange);\n return useRecipe(ref, createDragRuler, { ...options, onChange: (value) => callback.current?.(value) }, deps);\n}\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useLatest, useRecipe } from './use-recipe';\nimport { createDockPill, type DockPillOptions } from '../recipes/dock-pill/create-dock-pill';\n\nexport function useDockPill(ref: RefObject<HTMLElement | null>, options: DockPillOptions = {}, deps?: DependencyList) {\n const callback = useLatest(options.onSelect);\n return useRecipe(ref, createDockPill, { ...options, onSelect: (index, item) => callback.current?.(index, item) }, deps);\n}\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createLiquidBlend, type LiquidBlendOptions } from '../gl/liquid-blend/create-liquid-blend';\n\nexport const useLiquidBlend = (ref: RefObject<HTMLElement | null>, options?: LiquidBlendOptions, deps?: DependencyList) =>\n useRecipe(ref, createLiquidBlend, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createMatcap, type MatcapOptions } from '../gl/matcap/create-matcap';\n\nexport const useMatcap = (ref: RefObject<HTMLElement | null>, options?: MatcapOptions, deps?: DependencyList) =>\n useRecipe(ref, createMatcap, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createShaderGrain, type ShaderGrainOptions } from '../gl/shader-grain/create-shader-grain';\n\nexport const useShaderGrain = (ref: RefObject<HTMLElement | null>, options?: ShaderGrainOptions, deps?: DependencyList) =>\n useRecipe(ref, createShaderGrain, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createShaderBlur, type ShaderBlurOptions } from '../gl/shader-blur/create-shader-blur';\n\nexport const useShaderBlur = (ref: RefObject<HTMLElement | null>, options?: ShaderBlurOptions, deps?: DependencyList) =>\n useRecipe(ref, createShaderBlur, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createParticleHero, type ParticleHeroOptions } from '../gl/particle-hero/create-particle-hero';\n\n/** particle hero (WebGL2, Canvas2D fallback). The canvas joins the ref's element. */\nexport const useParticleHero = (ref: RefObject<HTMLElement | null>, options?: ParticleHeroOptions, deps?: DependencyList) =>\n useRecipe(ref, createParticleHero, options, deps);\n","'use client';\n\nimport { createContext, useContext, useMemo, useState, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect } from './use-recipe';\nimport { DEFAULT_THEME } from '../theme/presets';\nimport { THEME_EVENT, initTheme, setMode, setTheme, type InitThemeOptions, type ThemeMode, type ThemeState } from '../theme/theme';\n\nexport interface ThemeContextValue extends ThemeState {\n setTheme: typeof setTheme;\n setMode: typeof setMode;\n}\n\nconst ThemeContext = createContext<ThemeContextValue | null>(null);\n\nexport interface ThemeProviderProps {\n children?: ReactNode;\n defaultTheme?: InitThemeOptions['default'];\n mode?: ThemeMode;\n storageKey?: string;\n}\n\n/**\n * Applies the stored (or default) theme on mount and shares it. Add\n * MK_THEME_HEAD_SCRIPT to <head> as well, so the first paint already has it.\n */\nexport function ThemeProvider({ children, defaultTheme, mode, storageKey }: ThemeProviderProps) {\n const [state, setState] = useState<ThemeState>(() => ({ id: defaultTheme ?? DEFAULT_THEME, mode: mode ?? 'system', resolved: 'light' }));\n useIsomorphicLayoutEffect(() => {\n const onChange = (event: Event) => setState((event as CustomEvent<ThemeState>).detail);\n document.addEventListener(THEME_EVENT, onChange);\n setState(initTheme({ default: defaultTheme, mode, storageKey }));\n return () => document.removeEventListener(THEME_EVENT, onChange);\n }, [defaultTheme, mode, storageKey]);\n const value = useMemo(() => ({ ...state, setTheme, setMode }), [state]);\n return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>;\n}\n\nexport function useTheme(): ThemeContextValue {\n const value = useContext(ThemeContext);\n if (!value) throw new Error('useTheme() needs a <ThemeProvider> above it');\n return value;\n}\n","'use client';\n\nimport { useRef, type CSSProperties } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createThemePicker, type ThemePickerOptions } from './engine';\n\nexport interface ThemePickerProps extends ThemePickerOptions {\n className?: string;\n style?: CSSProperties;\n /** Skip the base class (style it yourself). */\n unstyled?: boolean;\n}\n\n/** theme picker. Wrap the app in <ThemeProvider> to read the choice. */\nexport function ThemePicker({ className, style, unstyled, themes, showHidden, labels, onChange }: ThemePickerProps) {\n const ref = useRef<HTMLDivElement>(null);\n const change = useLatest(onChange);\n const themeKey = themes?.join(',');\n useIsomorphicLayoutEffect(() => {\n const picker = createThemePicker(ref.current, {\n themes: themeKey ? themeKey.split(',') : undefined,\n showHidden,\n labels,\n onChange: (id) => change.current?.(id),\n });\n return () => picker.destroy();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [themeKey, showHidden, labels?.group]);\n const classes = [unstyled ? null : 'mk-theme-picker', className].filter(Boolean).join(' ');\n return <div ref={ref} className={classes || undefined} style={style} />;\n}\n","'use client';\n\nimport { useRef, useState } from 'react';\nimport { useIsomorphicLayoutEffect } from './use-recipe';\nimport { createSlotText, type SlotTextInstance, type SlotTextOptions } from '../recipes/slot-text/create-slot-text';\n\nexport interface SlotTextProps extends Omit<SlotTextOptions, 'text' | 'accessibleCopy'> {\n text: string;\n className?: string;\n}\n\nconst escapeHtml = (text: string) => text.replace(/[&<>\"']/g, (c) => `&#${c.charCodeAt(0)};`);\n\n/**\n * Text whose letters roll when it changes. The server\n * renders the text itself; React never reconciles the letters (they belong to\n * the recipe), and screen readers read the plain copy.\n */\nexport function SlotText({ text, className, direction, duration, stagger, exitOffset, colorFade, maxTilt }: SlotTextProps) {\n const ref = useRef<HTMLSpanElement>(null);\n const instance = useRef<SlotTextInstance | null>(null);\n const [initial] = useState(text);\n // A stable object: React 19 re-applies innerHTML when this prop changes identity.\n const [html] = useState(() => ({ __html: escapeHtml(text) }));\n useIsomorphicLayoutEffect(() => {\n const created = createSlotText(ref.current, { direction, duration, stagger, exitOffset, colorFade, maxTilt, text: initial, accessibleCopy: false });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // The recipe is created once; the text is pushed below.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n useIsomorphicLayoutEffect(() => {\n instance.current?.set(text);\n }, [text]);\n return (\n <span className={className}>\n <span className=\"mk-sr-only\">{text}</span>\n <span ref={ref} aria-hidden=\"true\" dangerouslySetInnerHTML={html} />\n </span>\n );\n}\n","'use client';\n\nimport { useEffect, useRef, useState } from 'react';\nimport { tweenNumber } from '../motion/count';\n\nexport interface AnimatedNumberProps {\n value: number;\n /** How the shown value is written. Default: whole numbers. */\n format?: (shown: number) => string;\n /** Seconds. Default 0.6; prices use 0.7. */\n duration?: number;\n}\n\nconst whole = (shown: number) => String(Math.round(shown));\n\n/** A number that counts to each new value from the one shown. */\nexport function AnimatedNumber({ value, format = whole, duration }: AnimatedNumberProps) {\n const [shown, setShown] = useState(value);\n const current = useRef(value);\n useEffect(() => {\n const tween = tweenNumber(current.current, value, (next) => {\n current.current = next;\n setShown(next);\n }, { duration });\n return () => {\n tween?.kill();\n };\n }, [value, duration]);\n return <>{format(shown)}</>;\n}\n","'use client';\n\nimport { Component, type ReactNode, type RefObject } from 'react';\nimport { captureLayout, reflowLayout, type CapturedLayout } from '../motion/layout';\n\nexport interface FlipGroupProps {\n /** The list element. */\n root: RefObject<HTMLElement | null>;\n /** Items inside it; they need a stable `data-flip-id`. */\n selector?: string;\n /** Changes whenever the layout should animate (order, filter, grouping): e.g. the ids joined. */\n signature: string;\n children?: ReactNode;\n}\n\n/**\n * Plays layout reflow when `signature` changes: the layout is\n * measured just before React commits and the items travel from there. A class\n * component, because only `getSnapshotBeforeUpdate` reads the DOM before the commit.\n */\nexport class FlipGroup extends Component<FlipGroupProps> {\n private flip: ReturnType<typeof reflowLayout> = null;\n\n override getSnapshotBeforeUpdate(previous: Readonly<FlipGroupProps>): CapturedLayout | null {\n const node = this.props.root.current;\n if (previous.signature === this.props.signature || !node) return null;\n return captureLayout(node, this.props.selector ?? '[data-flip-id]');\n }\n\n override componentDidUpdate(_previous: unknown, _state: unknown, before: CapturedLayout | null) {\n const node = this.props.root.current;\n if (!before || !node) return;\n this.flip?.kill();\n this.flip = reflowLayout(node, this.props.selector ?? '[data-flip-id]', before);\n }\n\n override componentWillUnmount() {\n this.flip?.kill();\n }\n\n override render() {\n return this.props.children;\n }\n}\n","'use client';\n\nimport {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useRef,\n useState,\n type ButtonHTMLAttributes,\n type DialogHTMLAttributes,\n type HTMLAttributes,\n type MutableRefObject,\n type ReactNode,\n} from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { MkIcon } from '../icon';\nimport { createDialog, type DialogInstance, type DialogOptions } from './engine';\n\nexport { MkIcon };\n\nexport type SurfaceOptions = Omit<DialogOptions, 'onOpen' | 'onClose' | 'triggers'>;\n\nexport interface SurfaceContextValue<I> {\n open: boolean;\n setOpen: (open: boolean) => void;\n /** The control the next open grows from (set by the Trigger). */\n origin: MutableRefObject<HTMLElement | null>;\n instance: MutableRefObject<I | null>;\n options: SurfaceOptions;\n}\n\nexport interface SurfaceRootProps extends SurfaceOptions {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n children?: ReactNode;\n}\n\n/** Open state (controlled or not) shared by a surface's parts. Used by Dialog and Menu. */\nexport function useSurfaceRoot<I>({ open: controlled, defaultOpen = false, onOpenChange, children: _children, ...options }: SurfaceRootProps): SurfaceContextValue<I> {\n const [uncontrolled, setUncontrolled] = useState(defaultOpen);\n const open = controlled ?? uncontrolled;\n const current = useLatest(open);\n const change = useLatest(onOpenChange);\n const isControlled = controlled !== undefined;\n const setOpen = useCallback(\n (next: boolean) => {\n if (next === current.current) return;\n current.current = next;\n if (!isControlled) setUncontrolled(next);\n change.current?.(next);\n },\n [isControlled, current, change],\n );\n const origin = useRef<HTMLElement | null>(null);\n const instance = useRef<I | null>(null);\n const optionKey = JSON.stringify(options);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const stable = useMemo(() => options, [optionKey]);\n return useMemo(() => ({ open, setOpen, origin, instance, options: stable }), [open, setOpen, stable]);\n}\n\nconst DialogContext = createContext<SurfaceContextValue<DialogInstance> | null>(null);\n\nfunction useDialogContext(part: string) {\n const value = useContext(DialogContext);\n if (!value) throw new Error(`<Dialog.${part}> must be inside <Dialog.Root>`);\n return value;\n}\n\nfunction Root(props: SurfaceRootProps) {\n const value = useSurfaceRoot<DialogInstance>(props);\n return <DialogContext.Provider value={value}>{props.children}</DialogContext.Provider>;\n}\n\n/** A button that opens the dialog and is the shape it grows from. */\nfunction Trigger({ onClick, children, ...props }: ButtonHTMLAttributes<HTMLButtonElement>) {\n const context = useDialogContext('Trigger');\n return (\n <button\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={context.open}\n {...props}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n context.origin.current = event.currentTarget;\n context.setOpen(!context.open);\n }}\n >\n {children}\n </button>\n );\n}\n\nexport interface DialogContentProps extends Omit<DialogHTMLAttributes<HTMLDialogElement>, 'open'> {\n size?: 'sm' | 'md' | 'lg' | 'xl';\n /** Skip the base class (style it yourself). */\n unstyled?: boolean;\n}\n\n/**\n * Runs a surface engine on a <dialog> and follows the root's open state.\n * Shared with Menu (which passes its own engine).\n */\nexport function useSurfaceEngine<I extends DialogInstance>(\n context: SurfaceContextValue<I>,\n create: (dialog: HTMLDialogElement, options: DialogOptions) => I,\n) {\n const ref = useRef<HTMLDialogElement>(null);\n const setOpen = useLatest(context.setOpen);\n useIsomorphicLayoutEffect(() => {\n const dialog = ref.current;\n if (!dialog) return;\n const created = create(dialog, { ...context.options, triggers: false, onClose: () => setOpen.current(false) });\n context.instance.current = created;\n if (context.open) created.open(context.origin.current ?? undefined);\n return () => {\n created.destroy();\n context.instance.current = null;\n };\n // The engine is rebuilt only when its options change; open state is followed below.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [context.options]);\n useIsomorphicLayoutEffect(() => {\n const instance = context.instance.current;\n if (!instance) return;\n if (context.open && !instance.isOpen) {\n instance.open(context.origin.current ?? undefined);\n context.origin.current = null;\n } else if (!context.open && instance.isOpen) instance.close();\n }, [context.open]);\n return ref;\n}\n\nfunction Content({ size = 'md', unstyled, className, children, ...props }: DialogContentProps) {\n const context = useDialogContext('Content');\n const ref = useSurfaceEngine(context, createDialog);\n const classes = [unstyled ? null : 'mk-dialog', !unstyled && size !== 'md' ? `mk-dialog--${size}` : null, className].filter(Boolean).join(' ');\n return (\n <dialog ref={ref} className={classes || undefined} {...props}>\n {children}\n </dialog>\n );\n}\n\nconst partOf = (name: string) =>\n function Part({ children, ...props }: HTMLAttributes<HTMLElement>) {\n const Tag = (name === 'header' ? 'header' : name === 'footer' ? 'footer' : name === 'title' ? 'h2' : name === 'description' ? 'p' : 'div') as 'div';\n return (\n <Tag data-mk-part={name} {...props}>\n {children}\n </Tag>\n );\n };\n\nfunction Close({ children, label = 'Cerrar', ...props }: ButtonHTMLAttributes<HTMLButtonElement> & { label?: string }) {\n return (\n <button type=\"button\" data-mk-part=\"close\" aria-label={children ? undefined : label} {...props}>\n {children ?? <MkIcon name=\"close\" />}\n </button>\n );\n}\n\nfunction Handle({ children, ...props }: ButtonHTMLAttributes<HTMLButtonElement>) {\n return (\n <button type=\"button\" data-mk-part=\"handle\" {...props}>\n {children ?? <MkIcon name=\"expand\" size={18} />}\n </button>\n );\n}\n\n/**\n * dialog for React:\n * <Dialog.Root><Dialog.Trigger>Crear</Dialog.Trigger><Dialog.Content>\n * <Dialog.Header><Dialog.Title>…</Dialog.Title><Dialog.Close /></Dialog.Header>\n * <Dialog.Body>…</Dialog.Body><Dialog.Footer>…</Dialog.Footer>\n * </Dialog.Content></Dialog.Root>\n */\nexport const Dialog = {\n Root,\n Trigger,\n Content,\n Header: partOf('header'),\n Title: partOf('title'),\n Description: partOf('description'),\n Actions: partOf('actions'),\n Body: partOf('body'),\n Footer: partOf('footer'),\n Close,\n Handle,\n};\n\n/** The dialog instance of the surrounding <Dialog.Root> (open, close, float…). */\nexport function useDialog() {\n const context = useDialogContext('useDialog');\n return { open: context.open, setOpen: context.setOpen, instance: context.instance };\n}\n","import { ICON_PATHS, type IconName } from './icons';\n\n/** The same stroke icons the vanilla components use (aria-hidden). */\nexport function MkIcon({ name, size = 20 }: { name: IconName; size?: number }) {\n return (\n <svg aria-hidden=\"true\" width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2} strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d={ICON_PATHS[name]} />\n </svg>\n );\n}\n","'use client';\n\nimport { createContext, useContext, useRef, type ButtonHTMLAttributes, type DialogHTMLAttributes, type MutableRefObject, type ReactNode } from 'react';\nimport { useLatest } from '../../react/use-recipe';\nimport { useSurfaceEngine, useSurfaceRoot, type SurfaceContextValue, type SurfaceRootProps } from '../dialog/react';\nimport { createMenu, type MenuInstance } from './engine';\n\ninterface MenuContextValue extends SurfaceContextValue<MenuInstance> {\n ticket: boolean;\n onSelect: MutableRefObject<((value: string, item: HTMLElement) => void) | undefined>;\n closeOnSelect: boolean;\n}\n\nconst MenuContext = createContext<MenuContextValue | null>(null);\n\nfunction useMenuContext(part: string) {\n const value = useContext(MenuContext);\n if (!value) throw new Error(`<Menu.${part}> must be inside <Menu.Root>`);\n return value;\n}\n\nexport interface MenuRootProps extends Omit<SurfaceRootProps, 'placement' | 'backdrop' | 'drag' | 'autoResize'> {\n ticket?: boolean;\n onSelect?: (value: string, item: HTMLElement) => void;\n closeOnSelect?: boolean;\n children?: ReactNode;\n}\n\nfunction Root({ onSelect, closeOnSelect = true, ticket = false, children, ...props }: MenuRootProps) {\n const surface = useSurfaceRoot<MenuInstance>(props);\n const select = useLatest(onSelect);\n return <MenuContext.Provider value={{ ...surface, onSelect: select, closeOnSelect, ticket }}>{children}</MenuContext.Provider>;\n}\n\nfunction Trigger({ onClick, children, ...props }: ButtonHTMLAttributes<HTMLButtonElement>) {\n const context = useMenuContext('Trigger');\n return (\n <button\n type=\"button\"\n aria-haspopup=\"menu\"\n aria-expanded={context.open}\n {...props}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n context.origin.current = event.currentTarget;\n context.setOpen(!context.open);\n }}\n >\n {children}\n </button>\n );\n}\n\nfunction Content({ className, children, ...props }: Omit<DialogHTMLAttributes<HTMLDialogElement>, 'open'>) {\n const context = useMenuContext('Content');\n const closeOnSelect = useRef(context.closeOnSelect);\n closeOnSelect.current = context.closeOnSelect;\n const ref = useSurfaceEngine(context, (dialog, options) =>\n createMenu(dialog, { ...options, ticket: context.ticket, closeOnSelect: closeOnSelect.current, onSelect: (value, item) => context.onSelect.current?.(value, item) }),\n );\n return (\n <dialog ref={ref} className={['mk-dialog mk-menu', className].filter(Boolean).join(' ')} {...props}>\n {children}\n </dialog>\n );\n}\n\nfunction Item({ value, children, ...props }: ButtonHTMLAttributes<HTMLButtonElement> & { value?: string }) {\n return (\n <button type=\"button\" data-mk-item=\"\" data-mk-value={value} {...props}>\n {children}\n </button>\n );\n}\n\nfunction Separator() {\n return <hr data-mk-separator=\"\" />;\n}\n\n/** options menu: <Menu.Root onSelect><Menu.Trigger/><Menu.Content><Menu.Item value/>…</Menu.Content></Menu.Root>. */\nexport const Menu = { Root, Trigger, Content, Item, Separator };\n","'use client';\n\nimport { useRef } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../react/use-recipe';\nimport { createToaster, type ToasterLabels } from './engine';\n\nexport interface ToasterProps {\n labels?: ToasterLabels;\n}\n\n/** toast deck. Mount once near the root; show toasts with `toast()`. */\nexport function Toaster({ labels }: ToasterProps) {\n const ref = useRef<HTMLDivElement>(null);\n const dismiss = labels?.dismiss;\n useIsomorphicLayoutEffect(() => {\n const toaster = createToaster(ref.current, { labels: { dismiss } });\n return () => toaster.destroy();\n }, [dismiss]);\n return <div ref={ref} className=\"mk-toaster\" />;\n}\n\nexport { toast, dismissToast, clearToasts, type ToastOptions, type ToastTone, type ToastAction } from './store';\n","'use client';\n\nimport { useRef, type CSSProperties } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../react/use-recipe';\nimport { createChatBackground, type ChatBackgroundInstance } from './engine';\n\nexport interface ChatBackgroundProps {\n /** 0…1 (the microphone's, see audioEnergy); onboarding's busy state goes to 1.6. */\n energy?: number;\n scale?: number;\n className?: string;\n style?: CSSProperties;\n}\n\n/** chat background. Put it first inside a positioned container. */\nexport function ChatBackground({ energy = 0, scale = 1, className, style }: ChatBackgroundProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<ChatBackgroundInstance | null>(null);\n useIsomorphicLayoutEffect(() => {\n const created = createChatBackground(ref.current, { energy, scale });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // Created once; energy and scale are pushed below.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n useIsomorphicLayoutEffect(() => {\n instance.current?.setEnergy(energy);\n }, [energy]);\n useIsomorphicLayoutEffect(() => {\n instance.current?.setScale(scale);\n }, [scale]);\n return <div ref={ref} className={['mk-chat-background', className].filter(Boolean).join(' ')} style={style} />;\n}\n","'use client';\n\nimport {\n Component,\n createContext,\n useContext,\n useRef,\n type ContextType,\n type HTMLAttributes,\n type MutableRefObject,\n type ReactNode,\n type TextareaHTMLAttributes,\n} from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { MkIcon } from '../icon';\nimport { TIMING } from '../../core/timing';\nimport { PENDING_ID, capturePending, createChat, morphPendingToReply, type ChatInstance, type ChatLabels, type ChatRole } from './engine';\n\ninterface ChatContextValue {\n instance: MutableRefObject<ChatInstance | null>;\n labels: ChatLabels;\n}\n\nconst ChatContext = createContext<ChatContextValue | null>(null);\n\nexport interface ChatRootProps extends HTMLAttributes<HTMLDivElement> {\n onSend?: (text: string) => void;\n animateExisting?: boolean;\n labels?: ChatLabels;\n children?: ReactNode;\n}\n\nfunction Root({ onSend, animateExisting, labels = {}, className, children, ...props }: ChatRootProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<ChatInstance | null>(null);\n const send = useLatest(onSend);\n useIsomorphicLayoutEffect(() => {\n const created = createChat(ref.current, { animateExisting, labels, onSend: (text) => send.current?.(text) });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // The engine is created once; callbacks are read through refs.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return (\n <ChatContext.Provider value={{ instance, labels }}>\n <div ref={ref} className={['mk-chat', className].filter(Boolean).join(' ')} {...props}>\n {children}\n </div>\n </ChatContext.Provider>\n );\n}\n\nexport interface ChatMessagesProps {\n /** Waiting for an answer: \"Pensando…\" shows after 500 ms and morphs into the next assistant message. */\n pending?: boolean;\n children?: ReactNode;\n}\n\ninterface MessagesState {\n showPending: boolean;\n}\n\ntype Snapshot = ReturnType<typeof capturePending>;\n\n/**\n * The message list. A class component: only getSnapshotBeforeUpdate can measure\n * the placeholder before React replaces it with the answer.\n */\nclass Messages extends Component<ChatMessagesProps, MessagesState> {\n static contextType = ChatContext;\n declare context: ContextType<typeof ChatContext>;\n state: MessagesState = { showPending: false };\n private list: HTMLDivElement | null = null;\n private timer: ReturnType<typeof setTimeout> | undefined;\n\n override componentDidMount() {\n if (this.props.pending) this.wait();\n }\n\n override componentDidUpdate(previous: ChatMessagesProps, _state: MessagesState, snapshot: Snapshot) {\n if (this.props.pending && !previous.pending) this.wait();\n if (!this.props.pending && previous.pending) {\n clearTimeout(this.timer);\n if (this.state.showPending) this.setState({ showPending: false });\n }\n if (!snapshot || !this.list) return;\n const answers = [...this.list.querySelectorAll<HTMLElement>('[data-mk-message][data-mk-role=\"assistant\"]:not([data-mk-pending])')];\n const reply = answers[answers.length - 1];\n if (!reply) return;\n this.context?.instance.current?.adopt(reply);\n morphPendingToReply(snapshot, reply, this.list);\n }\n\n override getSnapshotBeforeUpdate(previous: ChatMessagesProps): Snapshot {\n // The answer arrives as `pending` turns off: measure the placeholder while it is still there.\n if (!previous.pending || this.props.pending || !this.state.showPending || !this.list) return null;\n return capturePending(this.list.querySelector('[data-mk-pending]'));\n }\n\n override componentWillUnmount() {\n clearTimeout(this.timer);\n }\n\n private wait() {\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n if (this.props.pending) this.setState({ showPending: true });\n }, TIMING.chat.pendingDelayMs);\n }\n\n override render() {\n const thinking = this.context?.labels.thinking ?? 'Pensando...';\n return (\n <div\n ref={(node) => {\n this.list = node;\n }}\n data-mk-part=\"messages\"\n >\n {this.props.children}\n {this.props.pending && this.state.showPending ? (\n <div data-mk-message=\"\" data-mk-role=\"assistant\" data-mk-pending=\"\" data-flip-id={PENDING_ID}>\n <span className=\"mk-chat__thinking\">\n <MkIcon name=\"sparkle\" size={18} />\n <span>{thinking}</span>\n </span>\n </div>\n ) : null}\n </div>\n );\n }\n}\n\nexport interface ChatMessageProps extends HTMLAttributes<HTMLDivElement> {\n role?: ChatRole;\n children?: ReactNode;\n}\n\nfunction Message({ role = 'assistant', children, ...props }: ChatMessageProps) {\n return (\n <div data-mk-message=\"\" data-mk-role={role} {...props}>\n <div data-mk-text=\"\">{children}</div>\n </div>\n );\n}\n\nexport interface ChatComposerProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {\n /** Extra buttons before send (a microphone…). */\n actions?: ReactNode;\n sendLabel?: string;\n}\n\nfunction Composer({ actions, sendLabel = 'Enviar', placeholder = 'Escribe un mensaje...', ...props }: ChatComposerProps) {\n return (\n <form data-mk-part=\"composer\">\n <textarea data-mk-part=\"input\" rows={1} placeholder={placeholder} aria-label={placeholder} {...props} />\n <div data-mk-part=\"buttons\">\n {actions}\n <button type=\"submit\" data-mk-part=\"send\" aria-label={sendLabel}>\n <MkIcon name=\"send\" size={22} />\n </button>\n </div>\n </form>\n );\n}\n\nfunction Confirm({ children, ...props }: HTMLAttributes<HTMLDivElement>) {\n const ref = useRef<HTMLDivElement>(null);\n const context = useContext(ChatContext);\n useIsomorphicLayoutEffect(() => {\n if (ref.current) context?.instance.current?.confirm(ref.current);\n // Plays once, when the bar appears.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return (\n <div ref={ref} data-mk-part=\"confirm\" {...props}>\n {children}\n </div>\n );\n}\n\n/**\n * chat: <Chat.Root onSend><ChatBackground /><Chat.Messages pending>{messages.map(m =>\n * <Chat.Message role>)}</Chat.Messages><Chat.Composer /></Chat.Root>.\n */\nexport const Chat = { Root, Messages, Message, Composer, Confirm };\n\n/** The chat engine of the surrounding <Chat.Root> (setRecording, scrollToLatest…). */\nexport function useChat() {\n const context = useContext(ChatContext);\n if (!context) throw new Error('useChat() needs a <Chat.Root> above it');\n return context.instance;\n}\n","'use client';\n\nimport { useRef, type HTMLAttributes, type MouseEvent, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../react/use-recipe';\nimport { revealShell, toNavStyle, type NavStyle, type NavStyleAlias } from './engine';\n\nexport interface NavItem {\n value: string;\n label: ReactNode;\n icon?: ReactNode;\n /** Render a link instead of a button. */\n href?: string;\n /** Hidden in the phone bar. */\n hideOnMobile?: boolean;\n}\n\nexport interface NavProps extends Omit<HTMLAttributes<HTMLElement>, 'onSelect'> {\n items: NavItem[];\n /** Value of the current page. */\n active?: string;\n onSelect?: (value: string, event: MouseEvent<HTMLElement>) => void;\n navStyle?: NavStyle | NavStyleAlias;\n accent?: boolean;\n /** Reveal the surrounding .mk-shell from the first button on mount. */\n reveal?: boolean;\n /** The top button (workspace, account…): give it className \"mk-nav__button mk-nav__button--first\". */\n first?: ReactNode;\n /** Buttons at the end (className \"mk-nav__button mk-nav__button--action\"). */\n actions?: ReactNode;\n}\n\n/** navigation. Put it inside a <div className=\"mk-shell\"> next to <main className=\"mk-shell__view\">. */\nexport function Nav({\n items,\n active,\n onSelect,\n navStyle = 'pills',\n accent = false,\n reveal = false,\n first,\n actions,\n className,\n ...props\n}: NavProps) {\n const ref = useRef<HTMLElement>(null);\n useIsomorphicLayoutEffect(() => {\n if (!reveal || !ref.current) return;\n const handle = revealShell(ref.current);\n return () => handle?.cancel();\n // Only on mount.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const classes = ['mk-nav', `mk-nav--${toNavStyle(navStyle) ?? 'pills'}`, accent && 'mk-nav--accent', className].filter(Boolean).join(' ');\n return (\n <nav ref={ref} aria-label=\"Principal\" {...props} className={classes}>\n {first}\n <div className=\"mk-nav__buttons\">\n {items.map((item) => {\n const shared = {\n className: 'mk-nav__button',\n 'aria-current': item.value === active ? ('page' as const) : undefined,\n 'data-mk-value': item.value,\n 'data-mk-hide-mobile': item.hideOnMobile ? '' : undefined,\n onClick: (event: MouseEvent<HTMLElement>) => onSelect?.(item.value, event),\n };\n const content = (\n <>\n {item.icon ? (\n <span className=\"mk-nav__icon\" aria-hidden=\"true\">\n {item.icon}\n </span>\n ) : null}\n <span className=\"mk-nav__name\">{item.label}</span>\n </>\n );\n return item.href ? (\n <a key={item.value} href={item.href} {...shared}>\n {content}\n </a>\n ) : (\n <button key={item.value} type=\"button\" {...shared}>\n {content}\n </button>\n );\n })}\n </div>\n {actions ? <div className=\"mk-nav__actions\">{actions}</div> : null}\n </nav>\n );\n}\n","'use client';\n\nimport {\n Children,\n createContext,\n isValidElement,\n useContext,\n useRef,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createSteps, type StepsInstance } from './engine';\n\ninterface StepsContextValue {\n /** The step shown on the first render: React sets `hidden` once, then the engine owns it. */\n initial: number;\n}\n\nconst StepsContext = createContext<StepsContextValue>({ initial: 0 });\nconst StepIndex = createContext(-1);\n\nexport interface StepsProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\n /** Current step (0-based). Changing it flows to that step. */\n index?: number;\n onChange?: (index: number, previous: number) => void;\n /** A step is working: the chat background inside speeds up. */\n busy?: boolean;\n duration?: number;\n children?: ReactNode;\n}\n\nfunction Root({ index = 0, onChange, busy = false, duration, className, children, ...props }: StepsProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<StepsInstance | null>(null);\n const initial = useRef(index);\n const change = useLatest(onChange);\n useIsomorphicLayoutEffect(() => {\n const created = createSteps(ref.current, { index: initial.current, duration, onChange: (i, previous) => change.current?.(i, previous) });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // Created once; index and busy are pushed below.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n useIsomorphicLayoutEffect(() => {\n void instance.current?.goTo(index);\n }, [index]);\n useIsomorphicLayoutEffect(() => {\n instance.current?.busy(busy);\n }, [busy]);\n let count = 0;\n const numbered = Children.map(children, (child) =>\n isValidElement(child) && child.type === Step ? <StepIndex.Provider value={count++}>{child}</StepIndex.Provider> : child,\n );\n return (\n <StepsContext.Provider value={{ initial: initial.current }}>\n <div ref={ref} className={['mk-steps', className].filter(Boolean).join(' ')} {...props}>\n {numbered}\n </div>\n </StepsContext.Provider>\n );\n}\n\nfunction Step({ children, ...props }: HTMLAttributes<HTMLElement>) {\n const { initial } = useContext(StepsContext);\n const index = useContext(StepIndex);\n return (\n <section data-mk-step=\"\" hidden={index !== initial} {...props}>\n {children}\n </section>\n );\n}\n\n/** The step number; the engine rolls it (React only writes the first value). */\nfunction Counter(props: HTMLAttributes<HTMLSpanElement>) {\n const { initial } = useContext(StepsContext);\n return (\n <span data-mk-counter=\"\" suppressHydrationWarning {...props}>\n {initial + 1}\n </span>\n );\n}\n\n/**\n * onboarding: <Steps index={i} busy={working}><ChatBackground /><Steps.Counter />\n * <Steps.Step><h2 data-mk-flow-item>…</h2></Steps.Step>…</Steps>. Steps must be direct children.\n */\nexport const Steps = Object.assign(Root, { Step, Counter });\n","'use client';\n\nimport { useRef } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../react/use-recipe';\nimport { createCursor, type CursorOptions, type CursorVariant } from './engine';\n\nexport interface CursorProps {\n /** 'chip' (default) or 'dot'. */\n variant?: CursorVariant;\n /** dot: the word when nothing under the pointer gives one. */\n text?: string;\n arrows?: CursorOptions['arrows'];\n /** CSS selector of the zone (dot: default the parent). */\n zone?: string;\n className?: string;\n}\n\n/** Put <Cursor /> once in the layout (chip), or inside the zone (dot). */\nexport function Cursor({ variant = 'chip', text, arrows, zone, className }: CursorProps) {\n const ref = useRef<HTMLDivElement>(null);\n useIsomorphicLayoutEffect(() => {\n const cursor = createCursor(ref.current, { variant, text, arrows, zone: zone ? document.querySelector(zone) : undefined });\n return () => cursor.destroy();\n }, [variant, text, arrows, zone]);\n return <div ref={ref} className={className} />;\n}\n","import type { CSSProperties } from 'react';\n\nexport interface FrostProps {\n /** Which edge the blur grows toward (default bottom). */\n position?: 'bottom' | 'top';\n /** Pin it to the window instead of the positioned parent. */\n fixed?: boolean;\n height?: number | string;\n /** Multiplies the five blurs (default 1). */\n strength?: number;\n className?: string;\n style?: CSSProperties;\n}\n\n/** progressive frost: five blur layers. Put it inside a positioned container (or use `fixed`). */\nexport function Frost({ position = 'bottom', fixed = false, height, strength, className, style }: FrostProps) {\n const vars: Record<string, string> = {};\n if (height !== undefined) vars['--mk-frost-height'] = typeof height === 'number' ? `${height}px` : height;\n if (strength !== undefined) vars['--mk-frost-strength'] = String(strength);\n return (\n <div\n aria-hidden=\"true\"\n className={['mk-frost', position === 'top' && 'mk-frost--top', fixed && 'mk-frost--fixed', className].filter(Boolean).join(' ')}\n style={{ ...style, ...vars } as CSSProperties}\n >\n <i />\n <i />\n <i />\n <i />\n <i />\n </div>\n );\n}\n","'use client';\n\nimport { useRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createIsland, type IslandInstance, type IslandOptions } from './engine';\n\nexport interface IslandPanel {\n name: string;\n /** Accessible name of its button. */\n label: string;\n /** Button content; the menu's nine dots by default. */\n icon?: ReactNode;\n /** Light button. */\n light?: boolean;\n content: ReactNode;\n}\n\nexport interface IslandProps extends Omit<HTMLAttributes<HTMLElement>, 'onChange'>, Omit<IslandOptions, 'onChange'> {\n brand?: ReactNode;\n /** The call to action that fades out while a panel is open. */\n cta?: { href: string; label: ReactNode };\n panels: IslandPanel[];\n /** Keep it (and its backdrop) inside a positioned parent instead of fixed over the page. */\n contained?: boolean;\n onChange?: (active: string | null) => void;\n /** Receives the live instance (open, close, toggle, ready). */\n instanceRef?: { current: IslandInstance | null };\n}\n\n/** The nine static dots of the island menu button. */\nexport function IslandDots() {\n return (\n <span className=\"mk-island__dots\" aria-hidden=\"true\">\n {Array.from({ length: 9 }, (_, i) => (\n <i key={i} />\n ))}\n </span>\n );\n}\n\n/** floating navbar. */\nexport function Island({\n brand,\n cta,\n panels,\n contained = false,\n entrance,\n closeOnScroll,\n closeOnNavigate,\n focusOnOpen,\n onChange,\n instanceRef,\n className,\n ...props\n}: IslandProps) {\n const ref = useRef<HTMLElement>(null);\n const change = useLatest(onChange);\n useIsomorphicLayoutEffect(() => {\n const instance = createIsland(ref.current, {\n entrance,\n closeOnScroll,\n closeOnNavigate,\n focusOnOpen,\n onChange: (active) => change.current?.(active),\n });\n if (instanceRef) instanceRef.current = instance;\n return () => {\n instance.destroy();\n if (instanceRef) instanceRef.current = null;\n };\n // The panels' names define the markup the engine reads.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [panels.map((panel) => panel.name).join(), entrance, closeOnScroll, closeOnNavigate, focusOnOpen]);\n const classes = ['mk-island', contained && 'mk-island--contained', className].filter(Boolean).join(' ');\n return (\n <nav ref={ref} aria-label=\"Principal\" {...props} className={classes}>\n <button type=\"button\" className=\"mk-island__backdrop\" data-mk-island-close tabIndex={-1} aria-label=\"Cerrar\" />\n <div className=\"mk-island__shell\">\n <div className=\"mk-island__glass\" aria-hidden=\"true\" />\n <div className=\"mk-island__header\">\n {brand ? <span className=\"mk-island__brand\">{brand}</span> : <span />}\n <div className=\"mk-island__actions\">\n {cta ? (\n <a className=\"mk-island__cta\" href={cta.href}>\n {cta.label}\n </a>\n ) : null}\n {panels.map((panel, i) => (\n <span key={panel.name} style={{ display: 'contents' }}>\n {i > 0 ? <span className=\"mk-island__separator\" aria-hidden=\"true\" /> : null}\n <button\n type=\"button\"\n className={panel.light ? 'mk-island__button mk-island__button--light' : 'mk-island__button'}\n data-mk-island-toggle={panel.name}\n aria-label={panel.label}\n >\n {panel.icon ?? <IslandDots />}\n </button>\n </span>\n ))}\n </div>\n </div>\n <div className=\"mk-island__content\">\n <div>\n {panels.map((panel) => (\n <section key={panel.name} className=\"mk-island__panel\" data-mk-island-panel={panel.name} aria-label={panel.label}>\n {panel.content}\n </section>\n ))}\n </div>\n </div>\n </div>\n </nav>\n );\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createQuantity, type QuantityOptions } from './engine';\nexport interface QuantityProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'>, QuantityOptions {\n label?: string; decreaseLabel?: string; increaseLabel?: string; name?: string;\n}\nexport function Quantity({ min, max, step, value, disabled, onChange, label = 'Cantidad', decreaseLabel = 'Disminuir', increaseLabel = 'Aumentar', name, className, ...props }: QuantityProps) {\n const ref = useRef<HTMLDivElement>(null);\n const edited = useRef<number | undefined>(undefined);\n const change = useLatest(onChange);\n useIsomorphicLayoutEffect(() => {\n const instance = createQuantity(ref.current, { min, max, step, value: value ?? edited.current, disabled, onChange: (n) => change.current?.(n) });\n return () => { edited.current = instance.value; instance.destroy(); };\n }, [min, max, step, value, disabled]);\n return <div {...props} ref={ref} className={['mk-quantity', className].filter(Boolean).join(' ')} role=\"group\" aria-label={label}>\n <button type=\"button\" data-mk-quantity-decrease aria-label={decreaseLabel}>−</button>\n <input data-mk-quantity-input type=\"number\" aria-label={label} name={name} defaultValue={value ?? min ?? 1} disabled={disabled} />\n <button type=\"button\" data-mk-quantity-increase aria-label={increaseLabel}>+</button>\n </div>;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createPagination, type PaginationOptions } from './engine';\nexport interface PaginationProps extends Omit<HTMLAttributes<HTMLElement>, 'onChange'>, PaginationOptions {\n previousLabel?: string; nextLabel?: string;\n}\nexport function Pagination({ totalPages, page, siblings, pageLabel, onChange, previousLabel = 'Página anterior', nextLabel = 'Página siguiente', className, ...props }: PaginationProps) {\n const ref = useRef<HTMLElement>(null);\n const selected = useRef<number | undefined>(undefined);\n const change = useLatest(onChange);\n const label = useLatest(pageLabel);\n useIsomorphicLayoutEffect(() => {\n const instance = createPagination(ref.current, { totalPages, page: page ?? selected.current, siblings, pageLabel: (n) => label.current?.(n) ?? `Página ${n}`, onChange: (n) => change.current?.(n) });\n return () => { selected.current = instance.page; instance.destroy(); };\n }, [totalPages, page, siblings, pageLabel]);\n return <nav aria-label=\"Paginación\" {...props} ref={ref} className={['mk-pagination', className].filter(Boolean).join(' ')}>\n <button type=\"button\" data-mk-pagination-previous aria-label={previousLabel}>←</button>\n <span data-mk-pagination-pages />\n <button type=\"button\" data-mk-pagination-next aria-label={nextLabel}>→</button>\n </nav>;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createHoverCard, type HoverCardOptions } from './engine';\nexport interface HoverCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>, HoverCardOptions {\n trigger: ReactNode; children: ReactNode; triggerLabel?: string; panelLabel?: string;\n}\nexport function HoverCard({ trigger, children, triggerLabel, panelLabel = 'Vista previa', openDelay, closeDelay, placement, onOpenChange, className, ...props }: HoverCardProps) {\n const ref = useRef<HTMLDivElement>(null);\n const change = useLatest(onOpenChange);\n useIsomorphicLayoutEffect(() => {\n const instance = createHoverCard(ref.current, { openDelay, closeDelay, placement, onOpenChange: (n) => change.current?.(n) });\n return () => instance.destroy();\n }, [openDelay, closeDelay, placement]);\n return <div {...props} ref={ref} className={['mk-hover-card', className].filter(Boolean).join(' ')}>\n <button type=\"button\" className=\"mk-button mk-button--tonal\" data-mk-hover-trigger aria-label={triggerLabel} aria-expanded=\"false\">{trigger}</button>\n <div data-mk-hover-panel role=\"region\" aria-label={panelLabel} hidden>{children}</div>\n </div>;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createInputOtp, type InputOtpOptions } from './engine';\nexport interface InputOtpProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'onComplete' | 'defaultValue'>, InputOtpOptions {\n label?: string; name?: string; disabled?: boolean; required?: boolean; invalid?: boolean; defaultValue?: string;\n}\nexport function InputOtp({ length, value, defaultValue, mask, onChange, onComplete, label = 'Código de verificación', name, disabled, required, invalid, className, ...props }: InputOtpProps) {\n const ref = useRef<HTMLDivElement>(null);\n const edited = useRef<string | undefined>(undefined);\n const change = useLatest(onChange);\n const complete = useLatest(onComplete);\n useIsomorphicLayoutEffect(() => {\n const instance = createInputOtp(ref.current, { length, value: value ?? edited.current, mask, onChange: (n) => change.current?.(n), onComplete: (n) => complete.current?.(n) });\n return () => { edited.current = instance.value; instance.destroy(); };\n }, [length, value, mask]);\n return <div {...props} ref={ref} className={['mk-input-otp', className].filter(Boolean).join(' ')}>\n <span data-mk-otp-slots aria-hidden=\"true\" />\n <input data-mk-otp-input type=\"text\" aria-label={label} name={name} defaultValue={value ?? defaultValue ?? ''} disabled={disabled} required={required} aria-invalid={invalid || undefined} />\n </div>;\n}\n","'use client';\nimport type { RefObject, DependencyList } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createJoinedCta, type JoinedCtaOptions } from '../recipes/joined-cta/create-joined-cta';\nexport const useJoinedCta = (ref: RefObject<HTMLElement | null>, options?: JoinedCtaOptions, deps?: DependencyList) => useRecipe(ref, createJoinedCta, options, deps);\n","'use client';\nimport type { RefObject, DependencyList } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createImageZoom, type ImageZoomOptions } from '../recipes/image-zoom/create-image-zoom';\nexport const useImageZoom = (ref: RefObject<HTMLElement | null>, options?: ImageZoomOptions, deps?: DependencyList) => useRecipe(ref, createImageZoom, options, deps);\n","'use client';\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createFontCycle, type FontCycleOptions } from '../recipes/font-cycle/create-font-cycle';\n\nexport const useFontCycle = (ref: RefObject<HTMLElement | null>, options?: FontCycleOptions, deps?: DependencyList) =>\n useRecipe(ref, createFontCycle, options, deps);\n","'use client';\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createThumbnailNav, type ThumbnailNavOptions } from '../recipes/thumbnail-nav/create-thumbnail-nav';\n\nexport const useThumbnailNav = (ref: RefObject<HTMLElement | null>, options?: ThumbnailNavOptions, deps?: DependencyList) =>\n useRecipe(ref, createThumbnailNav, options, deps);\n","'use client';\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createActionButton, type ActionButtonOptions } from '../recipes/action-button/create-action-button';\nexport const useActionButton = (ref: RefObject<HTMLElement | null>, options?: ActionButtonOptions, deps?: DependencyList) =>\n useRecipe(ref, createActionButton, options, deps);\n","'use client';\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createFilmHero, type FilmHeroOptions } from '../recipes/film-hero/create-film-hero';\nexport const useFilmHero = (ref: RefObject<HTMLElement | null>, options?: FilmHeroOptions, deps?: DependencyList) =>\n useRecipe(ref, createFilmHero, options, deps);\n","'use client';\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createEditorialReveal, type EditorialRevealOptions } from '../recipes/editorial-reveal/create-editorial-reveal';\nexport function useEditorialReveal(ref: RefObject<HTMLElement | null>, options: EditorialRevealOptions = {}, deps?: DependencyList) {\n return useRecipe(ref, createEditorialReveal, options, deps);\n}\n","'use client';\nimport type { DependencyList, RefObject } from 'react';\nimport { useLatest, useRecipe } from './use-recipe';\nimport { createStudioDock, type StudioDockOptions } from '../components/studio-dock/engine';\nexport function useStudioDock(ref: RefObject<HTMLElement | null>, options: StudioDockOptions = {}, deps?: DependencyList) {\n const change = useLatest(options.onChange);\n return useRecipe(ref, createStudioDock, { ...options, onChange: state => change.current?.(state) }, deps);\n}\n","'use client';\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createTrailer, type TrailerOptions } from '../components/trailer/engine';\nexport const useTrailer = (ref: RefObject<HTMLElement | null>, options?: TrailerOptions, deps?: DependencyList) =>\n useRecipe(ref, createTrailer, options, deps);\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createStudioDock, type StudioDockInstance, type StudioDockOptions } from './engine';\n\nexport interface StudioDockProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>, StudioDockOptions {\n /** Default stays inside its positioned demo/app panel. */\n fixed?: boolean;\n instanceRef?: { current: StudioDockInstance | null };\n}\n/** Composable light-DOM shell; use the data-mk-studio-* slots shown in the README. */\nexport function StudioDock({ duration, ease, focusOnOpen, trapFocus, onChange, fixed = false, instanceRef, className, children, ...props }: StudioDockProps) {\n const ref = useRef<HTMLDivElement>(null);\n const change = useLatest(onChange);\n useIsomorphicLayoutEffect(() => {\n const instance = createStudioDock(ref.current, { duration, ease, focusOnOpen, trapFocus, onChange: state => change.current?.(state) });\n if (instanceRef) instanceRef.current = instance;\n return () => { instance.destroy(); if (instanceRef) instanceRef.current = null; };\n }, [duration, ease, focusOnOpen, trapFocus]);\n return <div {...props} ref={ref} className={['mk-studio-dock', fixed && 'mk-studio-dock--fixed', className].filter(Boolean).join(' ')}>{children}</div>;\n}\n\nexport { useStudioDock } from '../../react/use-studio-dock';\n","'use client';\nimport { useRef, type DialogHTMLAttributes } from 'react';\nimport { useRecipe } from '../../react/use-recipe';\nimport { createTrailer, type TrailerOptions } from './engine';\n\nexport interface TrailerProps extends Omit<DialogHTMLAttributes<HTMLDialogElement>, 'open' | 'onClose'> {\n options?: TrailerOptions;\n}\n/** Consumer supplies <video>, optional controls and tracks; no remote media is injected. */\nexport function Trailer({ options, className, children, ...props }: TrailerProps) {\n const ref = useRef<HTMLDialogElement>(null);\n useRecipe(ref, createTrailer, options);\n return <dialog {...props} ref={ref} className={['mk-trailer', className].filter(Boolean).join(' ')}>{children}</dialog>;\n}\n\nexport { useTrailer } from '../../react/use-trailer';\n","'use client';\n\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createCalendar, type CalendarInstance, type CalendarOptions, type CalendarView } from './engine';\nimport type { DateInput } from '../../core/dates';\n\nexport interface CalendarProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect'>, CalendarOptions {\n /** Hide the month/week switch. */\n hideViews?: boolean;\n labels?: CalendarOptions['labels'] & { previous?: string; next?: string; today?: string; month?: string; week?: string };\n}\n\nexport function Calendar({\n date, view, firstDay, locale, events, maxEvents, selected, today, labels, onSelect, onEventClick, onNavigate,\n hideViews, className, ...props\n}: CalendarProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<CalendarInstance | null>(null);\n const kept = useRef<{ date?: DateInput; view?: CalendarView; selected?: DateInput | null }>({});\n const select = useLatest(onSelect);\n const eventClick = useLatest(onEventClick);\n const navigate = useLatest(onNavigate);\n useIsomorphicLayoutEffect(() => {\n const created = createCalendar(ref.current, {\n date: date ?? kept.current.date,\n view: view ?? kept.current.view,\n selected: selected !== undefined ? selected : kept.current.selected,\n firstDay, locale, events, maxEvents, today, labels,\n onSelect: (d) => select.current?.(d),\n onEventClick: (e) => eventClick.current?.(e),\n onNavigate: (r) => navigate.current?.(r),\n });\n instance.current = created;\n return () => {\n kept.current = { date: created.date, view: created.view, selected: created.selected };\n created.destroy();\n instance.current = null;\n };\n // Events and selection update in place; the rest recreates the grid.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [date, view, firstDay, locale, maxEvents, today]);\n // Re-index only when the events' content changes, not on every new array identity.\n const eventsKey = JSON.stringify(events ?? []);\n const firstEvents = useRef(true);\n useIsomorphicLayoutEffect(() => {\n if (firstEvents.current) { firstEvents.current = false; return; }\n instance.current?.setEvents(events ?? []);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [eventsKey]);\n useIsomorphicLayoutEffect(() => { if (selected !== undefined) instance.current?.select(selected, false); }, [selected]);\n return (\n <div {...props} ref={ref} className={['mk-calendar', className].filter(Boolean).join(' ')}>\n <div className=\"mk-calendar__header\">\n <h3 className=\"mk-calendar__title\" data-mk-calendar-title />\n {!hideViews && (\n <div className=\"mk-calendar__views\" role=\"group\" aria-label=\"Vista\">\n <button type=\"button\" data-mk-calendar-view=\"month\">{labels?.month ?? 'Mes'}</button>\n <button type=\"button\" data-mk-calendar-view=\"week\">{labels?.week ?? 'Semana'}</button>\n </div>\n )}\n <button type=\"button\" className=\"mk-calendar__nav\" data-mk-calendar-prev aria-label={labels?.previous ?? 'Anterior'}>←</button>\n <button type=\"button\" className=\"mk-calendar__nav\" data-mk-calendar-today>{labels?.today ?? 'Hoy'}</button>\n <button type=\"button\" className=\"mk-calendar__nav\" data-mk-calendar-next aria-label={labels?.next ?? 'Siguiente'}>→</button>\n </div>\n <div data-mk-calendar-grid />\n </div>\n );\n}\n","'use client';\n\nimport { useRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createSlotPicker, type SlotPickerInstance, type SlotPickerOptions } from './engine';\n\nexport interface SlotPickerProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>, SlotPickerOptions {\n /** Form field name: a hidden input carries \"YYYY-MM-DDTHH:mm\". */\n name?: string;\n labels?: SlotPickerOptions['labels'] & { previous?: string; next?: string };\n /** Rendered under the times (e.g. a submit button). */\n actions?: ReactNode;\n}\n\nexport function SlotPicker({\n date, value, slots, min, max, closedDays, isDisabled, firstDay, locale, labels, onChange, onDateChange,\n name, actions, className, ...props\n}: SlotPickerProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<SlotPickerInstance | null>(null);\n const kept = useRef<string | Date | null>(null);\n const change = useLatest(onChange);\n const dateChange = useLatest(onDateChange);\n const disabledFn = useLatest(isDisabled);\n // A function source is read through a ref (inline functions do not reload);\n // lists and maps reload when their content changes.\n const source = useLatest(slots);\n const slotsKey = typeof slots === 'function' ? 'function' : JSON.stringify(slots ?? []);\n const stable = () => {\n const current = source.current;\n return typeof current === 'function' ? (d: Date) => (source.current as (day: Date) => string[] | Promise<string[]>)(d) : current ?? [];\n };\n useIsomorphicLayoutEffect(() => {\n const keep = kept.current;\n const created = createSlotPicker(ref.current, {\n date: date ?? (keep instanceof Date ? keep : undefined),\n value: value !== undefined ? value : typeof keep === 'string' ? keep : undefined,\n slots: stable(), min, max, closedDays, firstDay, locale, labels,\n isDisabled: (d) => disabledFn.current?.(d) ?? false,\n onChange: (v) => change.current?.(v),\n onDateChange: (d) => dateChange.current?.(d),\n });\n instance.current = created;\n return () => {\n kept.current = created.value ?? created.date;\n created.destroy();\n instance.current = null;\n };\n // `slots` updates in place; the rest recreates the picker.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [date, value, min, max, firstDay, locale, JSON.stringify(closedDays ?? [])]);\n const firstSlots = useRef(true);\n useIsomorphicLayoutEffect(() => {\n if (firstSlots.current) { firstSlots.current = false; return; }\n instance.current?.setSlots(stable());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [slotsKey]);\n return (\n <div {...props} ref={ref} className={['mk-slot-picker', className].filter(Boolean).join(' ')}>\n <div className=\"mk-slot-picker__calendar\">\n <div className=\"mk-slot-picker__month\">\n <h3 className=\"mk-slot-picker__title\" data-mk-slot-title />\n <button type=\"button\" className=\"mk-slot-picker__nav\" data-mk-slot-prev aria-label={labels?.previous ?? 'Mes anterior'}>←</button>\n <button type=\"button\" className=\"mk-slot-picker__nav\" data-mk-slot-next aria-label={labels?.next ?? 'Mes siguiente'}>→</button>\n </div>\n <div data-mk-slot-days />\n </div>\n <div className=\"mk-slot-picker__panel\">\n <p className=\"mk-slot-picker__heading\" data-mk-slot-heading />\n <div data-mk-slot-times />\n {name && <input type=\"hidden\" name={name} data-mk-slot-value />}\n {actions && <div className=\"mk-slot-picker__actions\">{actions}</div>}\n </div>\n </div>\n );\n}\n","'use client';\nimport type { RefObject, DependencyList } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createWeightHover, type WeightHoverOptions } from '../recipes/weight-hover/create-weight-hover';\nexport const useWeightHover = (ref: RefObject<HTMLElement | null>, options?: WeightHoverOptions, deps?: DependencyList) => useRecipe(ref, createWeightHover, options, deps);\n","'use client';\nimport type { RefObject, DependencyList } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createSticker, type StickerOptions } from '../recipes/sticker/create-sticker';\nexport const useSticker = (ref: RefObject<HTMLElement | null>, options?: StickerOptions, deps?: DependencyList) => useRecipe(ref, createSticker, options, deps);\n","'use client';\nimport type { RefObject, DependencyList } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createScrollDock, type ScrollDockOptions } from '../recipes/scroll-dock/create-scroll-dock';\nexport const useScrollDock = (ref: RefObject<HTMLElement | null>, options?: ScrollDockOptions, deps?: DependencyList) => useRecipe(ref, createScrollDock, options, deps);\n","'use client';\nimport type { RefObject, DependencyList } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createLocalClock, type LocalClockOptions } from '../recipes/local-clock/create-local-clock';\nexport const useLocalClock = (ref: RefObject<HTMLElement | null>, options?: LocalClockOptions, deps?: DependencyList) => useRecipe(ref, createLocalClock, options, deps);\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createAttachment, type AttachmentFile, type AttachmentInstance, type AttachmentOptions, type AttachmentStatus } from './engine';\n\nexport interface AttachmentUpload {\n progress: number;\n status?: AttachmentStatus;\n}\n\nexport interface AttachmentProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'>, AttachmentOptions {\n /** Upload state by file id, reported by the app (from onFiles ids). */\n uploads?: Record<string, AttachmentUpload>;\n /** Receives the live instance (addFiles, remove, setProgress…). */\n instanceRef?: MutableRefObject<AttachmentInstance | null>;\n}\n\n/**\n * <Attachment multiple accept=\"image/*,.pdf\" maxSize={5_000_000} onFiles={upload} uploads={progressById} />.\n * The engine draws the chooser and cards; picked files survive rerenders and option changes.\n */\nexport function Attachment({ accept, multiple, maxFiles, maxSize, disabled, name, initialFiles, hint, labels, onFiles, onRemove, onReject, uploads, instanceRef, className, ...props }: AttachmentProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<AttachmentInstance | null>(null);\n const kept = useRef<AttachmentFile[] | undefined>(undefined);\n const files = useLatest(onFiles);\n const removed = useLatest(onRemove);\n const rejected = useLatest(onReject);\n const latestUploads = useLatest(uploads);\n const seed = useLatest(initialFiles);\n const labelKey = JSON.stringify(labels ?? {});\n useIsomorphicLayoutEffect(() => {\n const created = createAttachment(ref.current, {\n accept,\n multiple,\n maxFiles,\n maxSize,\n disabled,\n name,\n hint,\n labels,\n initialFiles: kept.current ?? seed.current,\n onFiles: (added, all) => files.current?.(added, all),\n onRemove: (file, all) => removed.current?.(file, all),\n onReject: (list) => rejected.current?.(list),\n });\n for (const [id, upload] of Object.entries(latestUploads.current ?? {})) created.setProgress(id, upload.progress, upload.status);\n instance.current = created;\n if (instanceRef) instanceRef.current = created;\n return () => {\n kept.current = created.files;\n created.destroy();\n instance.current = null;\n if (instanceRef) instanceRef.current = null;\n };\n // labels are compared by content (labelKey); callbacks are read through refs.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [accept, multiple, maxFiles, maxSize, disabled, name, hint, labelKey]);\n const uploadKey = JSON.stringify(uploads ?? {});\n useIsomorphicLayoutEffect(() => {\n for (const [id, upload] of Object.entries(uploads ?? {})) instance.current?.setProgress(id, upload.progress, upload.status);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [uploadKey]);\n return <div {...props} ref={ref} className={['mk-attachment', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../react/use-recipe';\nimport { createSkeleton, skeletonBones, type SkeletonInstance, type SkeletonOptions } from './engine';\n\nexport interface SkeletonProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'>, SkeletonOptions {\n /** The real content, shown when loading ends. */\n children?: ReactNode;\n /** Custom placeholder instead of the shape's bones. */\n placeholder?: ReactNode;\n}\n\n/**\n * <Skeleton loading={pending} shape=\"card\" label=\"Cargando perfil\"><ProfileCard /></Skeleton>.\n * React owns placeholder and content; the engine only toggles hidden and the busy state.\n */\nexport function Skeleton({ loading = true, animation, shape = 'text', lines, label, placeholder, children, className, ...props }: SkeletonProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<SkeletonInstance | null>(null);\n const current = useRef(loading);\n current.current = loading;\n useIsomorphicLayoutEffect(() => {\n const created = createSkeleton(ref.current, { loading: current.current, animation, shape, lines, label });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n }, [animation, shape, lines, label]);\n useIsomorphicLayoutEffect(() => {\n instance.current?.setLoading(loading);\n }, [loading]);\n return (\n <div {...props} ref={ref} className={['mk-skeleton', className].filter(Boolean).join(' ')} data-mk-ssr-loading={loading ? '' : undefined}>\n <div data-mk-skeleton-placeholder=\"\" data-mk-shape={shape}>\n {placeholder ?? skeletonBones(shape, lines).map((bone, i) => <span key={i} data-mk-bone={bone} />)}\n </div>\n <div data-mk-skeleton-content=\"\">{children}</div>\n </div>\n );\n}\n","'use client';\nimport { useRef, useState, type FormHTMLAttributes, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createQuestionnaire, type QuestionnaireAnswers, type QuestionnaireInstance, type QuestionnaireLabels } from './engine';\n\nexport type QuestionType = 'text' | 'textarea' | 'single' | 'multiple';\n\nexport interface QuestionOption {\n value: string;\n label: string;\n}\n\nexport interface Question {\n /** Field name and answer key. */\n id: string;\n label: string;\n type: QuestionType;\n options?: Array<string | QuestionOption>;\n required?: boolean;\n description?: string;\n placeholder?: string;\n}\n\nexport interface QuestionnaireProps extends Omit<FormHTMLAttributes<HTMLFormElement>, 'onChange' | 'children'> {\n questions: Question[];\n /** Answers the fields start with. */\n defaultAnswers?: QuestionnaireAnswers;\n labels?: QuestionnaireLabels & { next?: string; prev?: string; finish?: string; restart?: string; step?: (index: number, count: number) => ReactNode };\n onChange?: (index: number, answers: QuestionnaireAnswers) => void;\n onComplete?: (answers: QuestionnaireAnswers) => void;\n /** Shown after the last step; a function receives the answers. */\n complete?: ReactNode | ((answers: QuestionnaireAnswers) => ReactNode);\n instanceRef?: { current: QuestionnaireInstance | null };\n}\n\nconst optionOf = (option: string | QuestionOption): QuestionOption => (typeof option === 'string' ? { value: option, label: option } : option);\n\n/**\n * <Questionnaire questions={[{ id: 'name', label: 'Nombre', type: 'text', required: true }, …]} onComplete={save} />.\n * Fields are native and uncontrolled, so answers survive steps and rerenders; the app owns persistence.\n */\nexport function Questionnaire({ questions, defaultAnswers = {}, labels = {}, onChange, onComplete, complete, instanceRef, className, ...props }: QuestionnaireProps) {\n const ref = useRef<HTMLFormElement>(null);\n const [answers, setAnswers] = useState<QuestionnaireAnswers | null>(null);\n const change = useLatest(onChange);\n const completed = useLatest(onComplete);\n const key = JSON.stringify(questions.map(({ id, type, required, options }) => [id, type, required, options]));\n const { required, choice } = labels;\n useIsomorphicLayoutEffect(() => {\n const created = createQuestionnaire(ref.current, {\n labels: { required, choice },\n onChange: (index, current) => change.current?.(index, current),\n onComplete: (current) => {\n setAnswers(current);\n completed.current?.(current);\n },\n });\n if (instanceRef) instanceRef.current = created;\n return () => {\n created.destroy();\n if (instanceRef) instanceRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [key, required, choice]);\n const count = questions.length;\n const defaults = (id: string) => defaultAnswers[id];\n return (\n <form {...props} ref={ref} noValidate className={['mk-questionnaire', className].filter(Boolean).join(' ')} onReset={() => setAnswers(null)}>\n <div data-mk-question-progress=\"\" aria-hidden=\"true\">\n <span data-mk-question-bar=\"\" />\n </div>\n {questions.map((question, i) => {\n const titleId = `${question.id}-title`;\n const describedBy = question.description ? `${question.id}-description` : undefined;\n const value = defaults(question.id);\n return (\n <section key={question.id} data-mk-question=\"\" data-mk-step=\"\" hidden={i !== 0} aria-labelledby={titleId}>\n <p data-mk-question-step=\"\">{labels.step ? labels.step(i, count) : `Pregunta ${i + 1} de ${count}`}</p>\n <h3 id={titleId} data-mk-step-title=\"\" data-mk-flow-item=\"\">\n {question.label}\n {question.required ? <span data-mk-question-required=\"\" aria-hidden=\"true\"> *</span> : null}\n </h3>\n {question.description && (\n <p id={describedBy} data-mk-question-description=\"\" data-mk-flow-item=\"\">\n {question.description}\n </p>\n )}\n <div data-mk-question-field=\"\" data-mk-flow-item=\"\">\n {question.type === 'text' && (\n <input name={question.id} type=\"text\" required={question.required} aria-labelledby={titleId} aria-describedby={describedBy} placeholder={question.placeholder} defaultValue={typeof value === 'string' ? value : ''} />\n )}\n {question.type === 'textarea' && (\n <textarea name={question.id} rows={4} required={question.required} aria-labelledby={titleId} aria-describedby={describedBy} placeholder={question.placeholder} defaultValue={typeof value === 'string' ? value : ''} />\n )}\n {(question.type === 'single' || question.type === 'multiple') && (\n <div role={question.type === 'single' ? 'radiogroup' : 'group'} aria-labelledby={titleId} aria-describedby={describedBy} data-mk-question-options=\"\">\n {(question.options ?? []).map(optionOf).map((option) => (\n <label key={option.value} data-mk-question-option=\"\">\n <input\n type={question.type === 'single' ? 'radio' : 'checkbox'}\n name={question.id}\n value={option.value}\n required={question.required}\n defaultChecked={Array.isArray(value) ? value.includes(option.value) : value === option.value}\n />\n <span>{option.label}</span>\n </label>\n ))}\n </div>\n )}\n </div>\n <div data-mk-question-actions=\"\" data-mk-flow-item=\"\">\n {i > 0 && (\n <button type=\"button\" className=\"mk-button mk-button--text\" data-mk-question-prev=\"\">\n {labels.prev ?? 'Anterior'}\n </button>\n )}\n {i < count - 1 ? (\n <button type=\"button\" className=\"mk-button\" data-mk-question-next=\"\">\n {labels.next ?? 'Siguiente'}\n </button>\n ) : (\n <button type=\"submit\" className=\"mk-button\">\n {labels.finish ?? 'Finalizar'}\n </button>\n )}\n </div>\n </section>\n );\n })}\n <p data-mk-question-error=\"\" role=\"alert\" />\n <div data-mk-question-complete=\"\" hidden>\n {answers && (typeof complete === 'function' ? complete(answers) : complete)}\n <button type=\"reset\" className=\"mk-button mk-button--tonal\">\n {labels.restart ?? 'Empezar de nuevo'}\n </button>\n </div>\n </form>\n );\n}\n","'use client';\r\nimport { Fragment, useMemo, useRef, type HTMLAttributes } from 'react';\r\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\r\nimport { createCodeBlock, flowLines, type CodeBlockInstance, type CodeBlockOptions } from './engine';\r\nimport { languageFamily, tokenLines, tokenize } from './highlight';\r\n\r\n/** `onCopy` is the copy result (not the DOM clipboard event). */\r\nexport interface CodeBlockProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'title' | 'onCopy'>, Omit<CodeBlockOptions, 'code'> {\r\n code: string;\r\n}\r\n\r\n/**\r\n * <CodeBlock code={source} language=\"ts\" title=\"main.ts\" lineNumbers />.\r\n * React renders the highlighted lines (text only); the engine copies the current text and owns the feedback.\r\n */\r\nexport function CodeBlock({ code, language, title, lineNumbers, highlight, highlightLines, copyLabel = 'Copiar', copiedLabel, errorLabel, onCopy, className, ...props }: CodeBlockProps) {\r\n const ref = useRef<HTMLDivElement>(null);\r\n const instance = useRef<CodeBlockInstance | null>(null);\r\n const copied = useLatest(onCopy);\r\n const latest = useLatest(code);\r\n useIsomorphicLayoutEffect(() => {\r\n const created = createCodeBlock(ref.current, { copyLabel, copiedLabel, errorLabel, onCopy: (ok) => copied.current?.(ok) });\r\n // The engine copies the exact string, not the rendered DOM.\r\n created.setCode(latest.current);\r\n instance.current = created;\r\n return () => {\r\n created.destroy();\r\n instance.current = null;\r\n };\r\n }, [copyLabel, copiedLabel, errorLabel]);\r\n useIsomorphicLayoutEffect(() => {\r\n instance.current?.setCode(code);\r\n }, [code]);\r\n // New code flows in line by line (not on the first render).\r\n const first = useRef(true);\r\n useIsomorphicLayoutEffect(() => {\r\n if (first.current) {\r\n first.current = false;\r\n return;\r\n }\r\n const animation = flowLines(ref.current?.querySelector('code') ?? null);\r\n return () => {\r\n animation?.progress(1).kill();\r\n };\r\n }, [code, language]);\r\n const colour = highlight ?? languageFamily(language) !== 'plain';\r\n const lines = useMemo(() => tokenLines(tokenize(code, colour ? language : undefined)), [code, language, colour]);\r\n // A final newline ends the last line; it does not open an empty one.\r\n const trailing = lines.length > 1 && !lines[lines.length - 1]!.length;\r\n const shown = trailing ? lines.slice(0, -1) : lines;\r\n const marked = new Set(highlightLines ?? []);\r\n return (\r\n <div {...props} ref={ref} className={['mk-code-block', className].filter(Boolean).join(' ')} data-mk-language={language} data-mk-line-numbers={lineNumbers ? '' : undefined}>\r\n <div data-mk-code-header=\"\">\r\n <span data-mk-code-dots=\"\" aria-hidden=\"true\">\r\n <i />\r\n <i />\r\n <i />\r\n </span>\r\n <span data-mk-code-title=\"\">{title}</span>\r\n {language && <span data-mk-code-language=\"\">{language}</span>}\r\n <button type=\"button\" data-mk-code-copy=\"\">\r\n <svg aria-hidden=\"true\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2} strokeLinecap=\"round\" strokeLinejoin=\"round\">\r\n <rect x=\"9\" y=\"9\" width=\"11\" height=\"11\" rx=\"2.5\" />\r\n <path d=\"M5 15V6a2 2 0 0 1 2-2h8\" />\r\n </svg>\r\n <span data-mk-code-copy-text=\"\">{copyLabel}</span>\r\n </button>\r\n </div>\r\n <pre tabIndex={0}>\r\n <code>\r\n {shown.map((line, i) => (\r\n <Fragment key={i}>\r\n {i ? '\\n' : null}\r\n <span data-mk-code-line=\"\" data-mk-highlight={marked.has(i + 1) ? '' : undefined}>\r\n {line.map((token, k) =>\r\n token.type === 'plain' ? (\r\n <Fragment key={k}>{token.text}</Fragment>\r\n ) : (\r\n <span key={k} data-mk-token={token.type}>\r\n {token.text}\r\n </span>\r\n ),\r\n )}\r\n </span>\r\n </Fragment>\r\n ))}\r\n {trailing ? '\\n' : null}\r\n </code>\r\n </pre>\r\n <span data-mk-code-status=\"\" className=\"mk-sr-only\" role=\"status\" />\r\n </div>\r\n );\r\n}\r\n","'use client';\nimport { useRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport type { DialogVariant } from '../dialog/engine';\nimport { Menu } from '../menu/react';\nimport { createContextMenu, type ContextMenuInstance } from './engine';\n\nexport interface ContextMenuProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect'> {\n /** The options: <ContextMenu.Item value=\"…\">, <ContextMenu.Separator />. */\n menu: ReactNode;\n /** Accessible name of the menu. */\n label?: string;\n onSelect?: (value: string, item: HTMLElement) => void;\n onOpenChange?: (open: boolean) => void;\n closeOnSelect?: boolean;\n overrideEditable?: boolean;\n longPress?: number;\n variant?: Exclude<DialogVariant, 'sheet' | 'drawer'>;\n instanceRef?: { current: ContextMenuInstance | null };\n}\n\nfunction Root({ menu, label = 'Acciones', onSelect, onOpenChange, closeOnSelect = true, overrideEditable, longPress, variant, instanceRef, className, children, ...props }: ContextMenuProps) {\n const ref = useRef<HTMLDivElement>(null);\n const select = useLatest(onSelect);\n const change = useLatest(onOpenChange);\n useIsomorphicLayoutEffect(() => {\n const created = createContextMenu(ref.current, {\n closeOnSelect,\n overrideEditable,\n longPress,\n variant,\n onSelect: (value, item) => select.current?.(value, item),\n onOpenChange: (open) => change.current?.(open),\n });\n if (instanceRef) instanceRef.current = created;\n return () => {\n created.destroy();\n if (instanceRef) instanceRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [closeOnSelect, overrideEditable, longPress, variant]);\n return (\n <div {...props} ref={ref} className={['mk-context-menu', className].filter(Boolean).join(' ')} data-mk-context-trigger=\"\">\n {children}\n <dialog data-mk-context-menu=\"\" className=\"mk-dialog mk-menu\" aria-label={label}>\n {menu}\n </dialog>\n </div>\n );\n}\n\n/**\n * context menu for React: the children are the area that answers a right click,\n * Menu key, Shift+F10 or long press; `menu` holds the options.\n * <ContextMenu menu={<><ContextMenu.Item value=\"rename\">Renombrar</ContextMenu.Item><ContextMenu.Separator /></>} onSelect={run}>…</ContextMenu>\n */\nexport const ContextMenu = Object.assign(Root, { Item: Menu.Item, Separator: Menu.Separator });\n","'use client';\r\nimport { createContext, useContext, useMemo, type ButtonHTMLAttributes, type DialogHTMLAttributes, type ReactNode } from 'react';\r\nimport { Dialog, useSurfaceEngine, useSurfaceRoot, type SurfaceContextValue, type SurfaceRootProps } from '../dialog/react';\r\nimport { createDrawer, type DrawerInstance, type DrawerOptions, type DrawerSide } from './engine';\r\n\r\ninterface DrawerContextValue extends SurfaceContextValue<DrawerInstance> {\r\n side: DrawerSide;\r\n}\r\n\r\nconst DrawerContext = createContext<DrawerContextValue | null>(null);\r\n\r\nfunction useDrawerContext(part: string) {\r\n const value = useContext(DrawerContext);\r\n if (!value) throw new Error(`<Drawer.${part}> must be inside <Drawer.Root>`);\r\n return value;\r\n}\r\n\r\nexport interface DrawerRootProps extends Omit<SurfaceRootProps, 'variant' | 'placement' | 'float' | 'anchor' | 'animateContent'> {\r\n side?: DrawerSide;\r\n children?: ReactNode;\r\n}\r\n\r\nfunction Root({ side = 'right', children, ...props }: DrawerRootProps) {\r\n const surface = useSurfaceRoot<DrawerInstance>(props);\r\n return <DrawerContext.Provider value={{ ...surface, side }}>{children}</DrawerContext.Provider>;\r\n}\r\n\r\n/** A button that opens the drawer; focus returns to it on close. */\r\nfunction Trigger({ onClick, children, ...props }: ButtonHTMLAttributes<HTMLButtonElement>) {\r\n const context = useDrawerContext('Trigger');\r\n return (\r\n <button\r\n type=\"button\"\r\n aria-haspopup=\"dialog\"\r\n aria-expanded={context.open}\r\n {...props}\r\n onClick={(event) => {\r\n onClick?.(event);\r\n if (event.defaultPrevented) return;\r\n context.origin.current = event.currentTarget;\r\n context.setOpen(!context.open);\r\n }}\r\n >\r\n {children}\r\n </button>\r\n );\r\n}\r\n\r\nfunction Content({ className, children, ...props }: Omit<DialogHTMLAttributes<HTMLDialogElement>, 'open'>) {\r\n const context = useDrawerContext('Content');\r\n // The side is part of the engine's options: changing it rebuilds the drawer.\r\n const options = useMemo(() => ({ ...context.options, side: context.side }) as typeof context.options, [context.options, context.side]);\r\n const ref = useSurfaceEngine({ ...context, options }, (dialog, engineOptions) => createDrawer(dialog, engineOptions as DrawerOptions));\r\n return (\r\n <dialog ref={ref} className={['mk-dialog mk-drawer', className].filter(Boolean).join(' ')} {...props}>\r\n {children}\r\n </dialog>\r\n );\r\n}\r\n\r\n/**\r\n * drawer for React (the Dialog parts inside):\r\n * <Drawer.Root side=\"left\"><Drawer.Trigger>Filtros</Drawer.Trigger><Drawer.Content>\r\n * <Drawer.Header><Drawer.Title>…</Drawer.Title><Drawer.Close /></Drawer.Header>\r\n * <Drawer.Body>…</Drawer.Body><Drawer.Footer>…</Drawer.Footer>\r\n * </Drawer.Content></Drawer.Root>\r\n */\r\nexport const Drawer = {\r\n Root,\r\n Trigger,\r\n Content,\r\n Header: Dialog.Header,\r\n Title: Dialog.Title,\r\n Description: Dialog.Description,\r\n Actions: Dialog.Actions,\r\n Body: Dialog.Body,\r\n Footer: Dialog.Footer,\r\n Close: Dialog.Close,\r\n};\r\n\r\n/** Open state of the surrounding <Drawer.Root>. */\r\nexport function useDrawer() {\r\n const context = useDrawerContext('useDrawer');\r\n return { open: context.open, setOpen: context.setOpen, side: context.side, instance: context.instance };\r\n}\r\n","'use client';\r\nimport { useEffect, useId, useRef, useState, type HTMLAttributes } from 'react';\r\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\r\nimport { createHoverCard } from '../hover-card/engine';\r\nimport { linkDomain, safeHref, safeImage, type LinkPreviewOptions } from './engine';\r\n\r\nexport interface LinkPreviewProps extends Omit<HTMLAttributes<HTMLElement>, 'title'>, LinkPreviewOptions {}\r\n\r\nfunction Card({ url, title, description, image, imageAlt, siteName, target }: LinkPreviewOptions) {\r\n const id = useId();\r\n const href = safeHref(url);\r\n const domain = linkDomain(href);\r\n const source = safeImage(image);\r\n const [failed, setFailed] = useState(false);\r\n useEffect(() => setFailed(false), [source]);\r\n const site = [siteName, domain].filter(Boolean).filter((value, i, all) => all.indexOf(value) === i).join(' · ');\r\n const content = (\r\n <>\r\n <span data-mk-part=\"media\">\r\n <span data-mk-part=\"fallback\" aria-hidden=\"true\">\r\n {(siteName || domain || title || '?').trim().charAt(0).toUpperCase()}\r\n </span>\r\n {source && !failed ? <img data-mk-link-image=\"\" src={source} alt={imageAlt ?? ''} loading=\"lazy\" decoding=\"async\" onError={() => setFailed(true)} /> : null}\r\n </span>\r\n <span data-mk-part=\"text\">\r\n {site && (\r\n <span data-mk-part=\"meta\">\r\n <span data-mk-part=\"favicon\" aria-hidden=\"true\">\r\n {(siteName || domain).trim().charAt(0).toUpperCase()}\r\n </span>\r\n <span data-mk-part=\"site\">{site}</span>\r\n </span>\r\n )}\r\n <span data-mk-part=\"title\" id={`${id}-title`}>\r\n {title || domain || href}\r\n </span>\r\n {description && (\r\n <span data-mk-part=\"description\" id={`${id}-description`}>\r\n {description}\r\n </span>\r\n )}\r\n </span>\r\n <span data-mk-part=\"go\" aria-hidden=\"true\">\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2} strokeLinecap=\"round\" strokeLinejoin=\"round\">\r\n <path d=\"M7 17L17 7M9 7h8v8\" />\r\n </svg>\r\n </span>\r\n </>\r\n );\r\n const labelled = { 'aria-labelledby': `${id}-title`, 'aria-describedby': description ? `${id}-description` : undefined };\r\n return href ? (\r\n <a data-mk-link-card=\"\" href={href} target={target} rel={target === '_blank' ? 'noopener noreferrer' : undefined} {...labelled}>\r\n {content}\r\n </a>\r\n ) : (\r\n <span data-mk-link-card=\"\" {...labelled}>\r\n {content}\r\n </span>\r\n );\r\n}\r\n\r\n/**\r\n * <LinkPreview url=\"https://…\" title=\"…\" description=\"…\" image=\"/thumb.jpg\" siteName=\"Blog\" />, or\r\n * variant=\"hover\" for a link that previews the card on pointer, focus or tap. Metadata comes from the app.\r\n */\r\nexport function LinkPreview({ url, title, description, image, imageAlt, siteName, variant = 'card', label, target, openDelay, closeDelay, placement, onOpenChange, className, ...props }: LinkPreviewProps) {\r\n const ref = useRef<HTMLSpanElement>(null);\r\n const change = useLatest(onOpenChange);\r\n const href = safeHref(url);\r\n const hover = variant === 'hover';\r\n useIsomorphicLayoutEffect(() => {\r\n if (!hover) return;\r\n const instance = createHoverCard(ref.current, { openDelay, closeDelay, placement, onOpenChange: (open) => change.current?.(open) });\r\n return () => instance.destroy();\r\n }, [hover, openDelay, closeDelay, placement]);\r\n const card = <Card url={url} title={title} description={description} image={image} imageAlt={imageAlt} siteName={siteName} target={target} />;\r\n if (!hover) {\r\n return (\r\n <div {...props} className={['mk-link-preview', className].filter(Boolean).join(' ')} data-mk-link-variant={variant === 'row' ? 'row' : 'card'}>\r\n {card}\r\n </div>\r\n );\r\n }\r\n const text = label || title || linkDomain(href) || href;\r\n return (\r\n <span {...props} ref={ref} className={['mk-link-preview mk-hover-card', className].filter(Boolean).join(' ')} data-mk-link-variant=\"hover\">\r\n {href ? (\r\n <a data-mk-hover-trigger=\"\" href={href} target={target} rel={target === '_blank' ? 'noopener noreferrer' : undefined}>\r\n {text}\r\n </a>\r\n ) : (\r\n <span data-mk-hover-trigger=\"\" tabIndex={0}>\r\n {text}\r\n </span>\r\n )}\r\n <span data-mk-hover-panel=\"\" role=\"region\" aria-label={`Vista previa: ${title || linkDomain(href)}`} hidden>\r\n {card}\r\n </span>\r\n </span>\r\n );\r\n}\r\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createProgress, type ProgressInstance, type ProgressOptions } from './engine';\n\nexport interface ProgressProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'>, ProgressOptions {}\n\n/** <Progress value={42} label=\"Subida\" showValue />; value={null} is indeterminate. The engine owns the drawing and ARIA. */\nexport function Progress({ value, min, max, label, variant, showValue, formatValue, className, ...props }: ProgressProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<ProgressInstance | null>(null);\n const current = useLatest(value);\n const format = useLatest(formatValue);\n const formatted = formatValue !== undefined;\n useIsomorphicLayoutEffect(() => {\n const created = createProgress(ref.current, {\n value: current.current,\n min,\n max,\n label,\n variant,\n showValue,\n formatValue: formatted ? (n, ratio) => format.current?.(n, ratio) ?? '' : undefined,\n });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n }, [min, max, label, variant, showValue, formatted]);\n useIsomorphicLayoutEffect(() => {\n instance.current?.setValue(value === undefined ? (min ?? 0) : value);\n }, [value]);\n return <div {...props} ref={ref} className={['mk-progress', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createRangeSlider, type RangeSliderInstance, type RangeSliderOptions, type RangeValue } from './engine';\n\nexport interface RangeSliderProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'onInput' | 'defaultValue'>, RangeSliderOptions {\n /** Uncontrolled start; an array makes an interval. */\n defaultValue?: RangeValue;\n /** Show the formatted value beside the track (default true). */\n showOutput?: boolean;\n}\n\n/**\n * <RangeSlider min={0} max={100} defaultValue={[20, 80]} label=\"Precio\" onChange={setRange} />.\n * Controlled with `value`; otherwise the edited value survives rerenders and new bounds.\n */\nexport function RangeSlider({ min, max, step, value, defaultValue, disabled, name, label, formatValue, onInput, onChange, showOutput = true, className, ...props }: RangeSliderProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<RangeSliderInstance | null>(null);\n const edited = useRef<RangeValue | undefined>(undefined);\n const input = useLatest(onInput);\n const change = useLatest(onChange);\n const format = useLatest(formatValue);\n const formatted = formatValue !== undefined;\n const start = value ?? defaultValue;\n const count = Array.isArray(start) ? 2 : 1;\n const current = useLatest(value);\n useIsomorphicLayoutEffect(() => {\n const created = createRangeSlider(ref.current, {\n min,\n max,\n step,\n disabled,\n name,\n label,\n value: current.current ?? edited.current ?? start,\n formatValue: formatted ? (n) => format.current?.(n) ?? String(n) : undefined,\n onInput: (next) => input.current?.(next),\n onChange: (next) => change.current?.(next),\n });\n instance.current = created;\n return () => {\n edited.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // `start` only seeds the first creation; edits and `value` take over after it.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [min, max, step, disabled, name, label, formatted, count]);\n const valueKey = JSON.stringify(value);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined) instance.current?.setValue(value, false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [valueKey]);\n const initial = Array.isArray(start) ? start : [start ?? min ?? 0];\n return (\n <div {...props} ref={ref} className={['mk-range-slider', className].filter(Boolean).join(' ')}>\n <div data-mk-range-track=\"\">\n {initial.map((n, i) => (\n <input key={i} type=\"range\" data-mk-range-input=\"\" defaultValue={n} />\n ))}\n </div>\n {showOutput && <output data-mk-range-output=\"\" />}\n </div>\n );\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createChart, type ChartInstance, type ChartOptions } from './engine';\n\nexport interface ChartProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect' | 'children'>, ChartOptions {\n instanceRef?: { current: ChartInstance | null };\n}\n\n/**\n * <Chart type=\"bar\" stacked labels={weeks} series={[{ name: 'Ana', values }]} formatValue={money} label=\"Sesiones por semana\" />.\n * Data changes redraw in place; the selection survives when its point still exists.\n */\nexport function Chart({ type, labels, series, points, stacked, barStyle, barTrack, barFill, barWidth, curve, formatValue, label, height, emptyLabel, legend, tooltip, axis, endLabel, onSelect, instanceRef, className, ...props }: ChartProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<ChartInstance | null>(null);\n const format = useLatest(formatValue);\n const select = useLatest(onSelect);\n const formatted = formatValue !== undefined;\n const data = { type, labels, series, points, stacked, barStyle, barTrack, barFill, barWidth, curve, label, height, emptyLabel, legend, tooltip, axis, endLabel };\n const key = JSON.stringify(data);\n const latest = useLatest(data);\n const options = (): ChartOptions => ({\n ...latest.current,\n formatValue: formatted ? (value) => format.current?.(value) ?? String(value) : undefined,\n onSelect: (index) => select.current?.(index),\n });\n useIsomorphicLayoutEffect(() => {\n const created = createChart(ref.current, options());\n instance.current = created;\n if (instanceRef) instanceRef.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n if (instanceRef) instanceRef.current = null;\n };\n // Created once; data is pushed below.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const first = useRef(true);\n useIsomorphicLayoutEffect(() => {\n if (first.current) {\n first.current = false;\n return;\n }\n instance.current?.update(options());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [key, formatted]);\n return <div {...props} ref={ref} className={['mk-chart', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createCreditCard, type CreditCardInstance, type CreditCardOptions } from './engine';\n\nexport interface CreditCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'children'>, CreditCardOptions {\n instanceRef?: MutableRefObject<CreditCardInstance | null>;\n}\n\n/**\n * <CreditCard onComplete={() => setReady(true)} /> inside a <form>: the engine makes the card and the\n * native cc-* fields; the app reads the form when it submits. Callbacks carry no card data.\n */\nexport function CreditCard({ labels, names, tilt, onChange, onComplete, instanceRef, className, ...props }: CreditCardProps) {\n const ref = useRef<HTMLDivElement>(null);\n const change = useLatest(onChange);\n const complete = useLatest(onComplete);\n const key = JSON.stringify([labels ?? {}, names ?? {}]);\n useIsomorphicLayoutEffect(() => {\n const created = createCreditCard(ref.current, {\n labels,\n names,\n tilt,\n onChange: (state) => change.current?.(state),\n onComplete: () => complete.current?.(),\n });\n if (instanceRef) instanceRef.current = created;\n return () => {\n created.destroy();\n if (instanceRef) instanceRef.current = null;\n };\n // labels and names are compared by content.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [key, tilt]);\n return <div {...props} ref={ref} className={['mk-credit-card', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createCommandSearch, type CommandItem, type CommandSearchInstance } from './engine';\n\nexport interface CommandSearchProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'onSelect' | 'children'> {\n items: CommandItem[];\n placeholder?: string;\n emptyLabel?: string;\n label?: string;\n shortcut?: boolean;\n limit?: number;\n /** The trigger's content (default: «Buscar» and the shortcut). null hides the trigger. */\n trigger?: ReactNode;\n onSelect?: (item: CommandItem) => void;\n onOpenChange?: (open: boolean) => void;\n instanceRef?: MutableRefObject<CommandSearchInstance | null>;\n}\n\n/** <CommandSearch items={commands} onSelect={(item) => navigate(item.id)} />: ⌘K / Ctrl+K or the trigger opens it. */\nexport function CommandSearch({ items, placeholder, emptyLabel, label, shortcut, limit, trigger, onSelect, onOpenChange, instanceRef, className, ...props }: CommandSearchProps) {\n const ref = useRef<HTMLSpanElement>(null);\n const instance = useRef<CommandSearchInstance | null>(null);\n const select = useLatest(onSelect);\n const change = useLatest(onOpenChange);\n const latest = useLatest(items);\n useIsomorphicLayoutEffect(() => {\n const created = createCommandSearch(ref.current, {\n items: latest.current,\n placeholder,\n emptyLabel,\n label,\n shortcut,\n limit,\n onSelect: (item) => select.current?.(item),\n onOpenChange: (open) => change.current?.(open),\n });\n instance.current = created;\n if (instanceRef) instanceRef.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n if (instanceRef) instanceRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [placeholder, emptyLabel, label, shortcut, limit]);\n const key = JSON.stringify(items);\n useIsomorphicLayoutEffect(() => {\n instance.current?.setItems(latest.current);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [key]);\n return (\n <span {...props} ref={ref} className={['mk-command-search', className].filter(Boolean).join(' ')}>\n {trigger === null ? null : (\n <button type=\"button\" data-mk-command-open=\"\" aria-haspopup=\"dialog\">\n {trigger ?? (\n <>\n <span>Buscar…</span>\n <kbd aria-hidden=\"true\">⌘K</kbd>\n </>\n )}\n </button>\n )}\n </span>\n );\n}\n","'use client';\nimport { useRef, type ButtonHTMLAttributes, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createHoldConfirm, type HoldConfirmOptions } from './engine';\n\nexport interface HoldConfirmProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'onClick'>, HoldConfirmOptions {\n children?: ReactNode;\n}\n\n/**\n * <HoldConfirm onConfirm={removeAccount}>Eliminar cuenta</HoldConfirm>: hold the button to confirm.\n * The engine moves the label into its own span, so pass plain text or inline content.\n */\nexport function HoldConfirm({ duration, resetAfter, holdingLabel, doneLabel, hint, disabled, onConfirm, className, children, ...props }: HoldConfirmProps) {\n const ref = useRef<HTMLSpanElement>(null);\n const confirm = useLatest(onConfirm);\n useIsomorphicLayoutEffect(() => {\n const instance = createHoldConfirm(ref.current, { duration, resetAfter, holdingLabel, doneLabel, hint, disabled, onConfirm: () => confirm.current?.() });\n return () => instance.destroy();\n }, [duration, resetAfter, holdingLabel, doneLabel, hint, disabled]);\n return (\n <span ref={ref} className={['mk-hold-confirm', className].filter(Boolean).join(' ')}>\n <button type=\"button\" {...props}>\n <span data-mk-hold-text=\"\">{children}</span>\n </button>\n </span>\n );\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createImagePreview, type ImagePreviewInstance, type ImagePreviewOptions } from './engine';\n\nexport interface PreviewImage {\n src: string;\n /** Smaller image for the thumbnail (default: src). */\n thumb?: string;\n alt: string;\n caption?: string;\n}\n\nexport interface ImagePreviewProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>, ImagePreviewOptions {\n images: PreviewImage[];\n instanceRef?: MutableRefObject<ImagePreviewInstance | null>;\n}\n\n/** <ImagePreview images={[{ src, thumb, alt, caption }]} />: a grid of thumbnails that open a viewer. */\nexport function ImagePreview({ images, labels, loop, strip, onChange, onOpenChange, instanceRef, className, ...props }: ImagePreviewProps) {\n const ref = useRef<HTMLDivElement>(null);\n const change = useLatest(onChange);\n const openChange = useLatest(onOpenChange);\n const key = JSON.stringify(labels ?? {});\n useIsomorphicLayoutEffect(() => {\n const created = createImagePreview(ref.current, { labels, loop, strip, onChange: (i) => change.current?.(i), onOpenChange: (open) => openChange.current?.(open) });\n if (instanceRef) instanceRef.current = created;\n return () => {\n created.destroy();\n if (instanceRef) instanceRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [key, loop, strip]);\n return (\n <div {...props} ref={ref} className={['mk-image-preview', className].filter(Boolean).join(' ')}>\n {images.map((image, i) => (\n <button key={`${image.src}-${i}`} type=\"button\" data-mk-image=\"\" data-mk-src={image.src} data-mk-caption={image.caption} aria-label={`Ver ${image.alt}`}>\n <img src={image.thumb ?? image.src} alt={image.alt} loading=\"lazy\" decoding=\"async\" />\n </button>\n ))}\n </div>\n );\n}\n","'use client';\r\nimport { useRef, type ButtonHTMLAttributes } from 'react';\r\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\r\nimport { createLikeButton, type LikeButtonInstance } from './engine';\r\n\r\nexport interface LikeButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onChange' | 'children'> {\r\n /** Controlled state; without it the button keeps its own. */\r\n liked?: boolean;\r\n defaultLiked?: boolean;\r\n count?: number;\r\n label?: string;\r\n hideCount?: boolean;\r\n onChange?: (liked: boolean, count: number) => void;\r\n}\r\n\r\n/** <LikeButton count={128} onChange={(liked, count) => save(liked)} />. */\r\nexport function LikeButton({ liked, defaultLiked, count = 0, label, hideCount, onChange, className, ...props }: LikeButtonProps) {\r\n const ref = useRef<HTMLButtonElement>(null);\r\n const instance = useRef<LikeButtonInstance | null>(null);\r\n const change = useLatest(onChange);\r\n const start = useRef({ liked: liked ?? defaultLiked ?? false, count });\r\n useIsomorphicLayoutEffect(() => {\r\n const created = createLikeButton(ref.current, { ...start.current, label, hideCount, onChange: (next, total) => change.current?.(next, total) });\r\n instance.current = created;\r\n return () => {\r\n start.current = { liked: created.liked, count: created.count };\r\n created.destroy();\r\n instance.current = null;\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [label, hideCount]);\r\n useIsomorphicLayoutEffect(() => {\r\n if (liked !== undefined && instance.current && instance.current.liked !== liked) instance.current.setLiked(liked, false);\r\n }, [liked]);\r\n useIsomorphicLayoutEffect(() => {\r\n if (instance.current && instance.current.count !== count) instance.current.setCount(count);\r\n }, [count]);\r\n return <button type=\"button\" {...props} ref={ref} className={['mk-like-button', className].filter(Boolean).join(' ')} />;\r\n}\r\n","'use client';\nimport { useRef, type ButtonHTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createNotificationBell, type NotificationBellInstance } from './engine';\n\nexport interface NotificationBellProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n /** Unread count. A higher count than before rings the bell. */\n count?: number;\n /** The newest message: a new value rings the bell and shows it. */\n message?: string;\n label?: string;\n messageDuration?: number;\n max?: number;\n onOpen?: () => void;\n instanceRef?: MutableRefObject<NotificationBellInstance | null>;\n}\n\n/** <NotificationBell count={unread} message={latest} onOpen={openPanel} />. */\nexport function NotificationBell({ count = 0, message, label, messageDuration, max, onOpen, instanceRef, className, ...props }: NotificationBellProps) {\n const ref = useRef<HTMLSpanElement>(null);\n const instance = useRef<NotificationBellInstance | null>(null);\n const open = useLatest(onOpen);\n const initial = useRef(count);\n useIsomorphicLayoutEffect(() => {\n const created = createNotificationBell(ref.current, { count: initial.current, label, messageDuration, max, onOpen: () => open.current?.() });\n instance.current = created;\n if (instanceRef) instanceRef.current = created;\n return () => {\n initial.current = created.count;\n created.destroy();\n instance.current = null;\n if (instanceRef) instanceRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [label, messageDuration, max]);\n const seen = useRef({ count, message });\n useIsomorphicLayoutEffect(() => {\n const bell = instance.current;\n if (!bell) return;\n const before = seen.current;\n seen.current = { count, message };\n const fresh = message !== undefined && message !== before.message;\n if (count > bell.count) {\n // One ring for the newest; the rest of the jump is set at once.\n bell.setCount(count - 1);\n bell.notify(fresh ? message : undefined);\n } else {\n bell.setCount(count);\n if (fresh && message) bell.notify(message);\n }\n }, [count, message]);\n return (\n <span ref={ref} className={['mk-notification-bell', className].filter(Boolean).join(' ')}>\n <button type=\"button\" {...props} />\n </span>\n );\n}\n","'use client';\nimport { useRef, type InputHTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createPasswordStrength, type PasswordStrengthOptions } from './engine';\n\nexport interface PasswordStrengthProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'onChange'>, Omit<PasswordStrengthOptions, 'onChange'> {\n onStrength?: PasswordStrengthOptions['onChange'];\n /** The text of the field as it changes. */\n onValueChange?: (value: string) => void;\n}\n\n/** <PasswordStrength name=\"password\" aria-label=\"Contraseña\" requireScore={3} onStrength={setResult} />. The field stays uncontrolled. */\nexport function PasswordStrength({ minLength, score, requireScore, labels, onStrength, onValueChange, className, ...props }: PasswordStrengthProps) {\n const ref = useRef<HTMLDivElement>(null);\n const strength = useLatest(onStrength);\n const value = useLatest(onValueChange);\n const scorer = useLatest(score);\n const custom = score !== undefined;\n const key = JSON.stringify(labels ?? {});\n useIsomorphicLayoutEffect(() => {\n const instance = createPasswordStrength(ref.current, {\n minLength,\n requireScore,\n labels,\n score: custom ? (text) => scorer.current!(text) : undefined,\n onChange: (result) => strength.current?.(result),\n });\n return () => instance.destroy();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [minLength, requireScore, key, custom]);\n return (\n <div ref={ref} className={['mk-password-strength', className].filter(Boolean).join(' ')}>\n <input autoComplete=\"new-password\" aria-label=\"Contraseña\" {...props} type=\"password\" onInput={(event) => value.current?.(event.currentTarget.value)} />\n </div>\n );\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createScratchCard, type ScratchCardInstance, type ScratchCardOptions } from './engine';\n\nexport interface ScratchCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'onProgress'>, ScratchCardOptions {\n /** What the cover hides. */\n children?: ReactNode;\n instanceRef?: MutableRefObject<ScratchCardInstance | null>;\n}\n\n/** <ScratchCard onReveal={claim}><Coupon code=\"OTOÑO25\" /></ScratchCard>. */\nexport function ScratchCard({ threshold, brush, coverLabel, revealLabel, revealedLabel, celebrate, onProgress, onReveal, instanceRef, className, children, ...props }: ScratchCardProps) {\n const ref = useRef<HTMLDivElement>(null);\n const progress = useLatest(onProgress);\n const reveal = useLatest(onReveal);\n useIsomorphicLayoutEffect(() => {\n const created = createScratchCard(ref.current, {\n threshold,\n brush,\n coverLabel,\n revealLabel,\n revealedLabel,\n celebrate,\n onProgress: (value) => progress.current?.(value),\n onReveal: () => reveal.current?.(),\n });\n if (instanceRef) instanceRef.current = created;\n return () => {\n created.destroy();\n if (instanceRef) instanceRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [threshold, brush, coverLabel, revealLabel, revealedLabel, celebrate]);\n return (\n <div {...props} ref={ref} className={['mk-scratch-card', className].filter(Boolean).join(' ')}>\n <div data-mk-scratch-content=\"\">{children}</div>\n </div>\n );\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createStarRating, type StarRatingInstance, type StarRatingOptions } from './engine';\n\nexport interface StarRatingProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'>, Omit<StarRatingOptions, 'value'> {\n /** Controlled value; without it the stars keep their own (defaultValue). */\n value?: number;\n defaultValue?: number;\n}\n\n/** <StarRating value={stars} onChange={setStars} allowClear /> or <StarRating readonly value={4.5} />. */\nexport function StarRating({ value, defaultValue, max, name, label, labels, readonly, allowClear, disabled, onChange, className, ...props }: StarRatingProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<StarRatingInstance | null>(null);\n const change = useLatest(onChange);\n const start = useRef(value ?? defaultValue ?? 0);\n const key = JSON.stringify(labels ?? null);\n useIsomorphicLayoutEffect(() => {\n const created = createStarRating(ref.current, { value: value ?? start.current, max, name, label, labels, readonly, allowClear, disabled, onChange: (next) => change.current?.(next) });\n instance.current = created;\n return () => {\n start.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [max, name, label, key, readonly, allowClear, disabled]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined && instance.current && instance.current.value !== value) instance.current.setValue(value);\n }, [value]);\n return <div {...props} ref={ref} className={['mk-star-rating', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createSwipeActions } from './engine';\n\nexport interface SwipeAction {\n id: string;\n label: string;\n /** Glyph or icon inside the round button. */\n icon?: ReactNode;\n tone?: 'neutral' | 'danger' | 'accent';\n /** The row folds away after it runs (the app then removes it). */\n remove?: boolean;\n /** Run by a long swipe on its side. */\n primary?: boolean;\n}\n\nexport interface SwipeRowProps extends Omit<HTMLAttributes<HTMLLIElement>, 'children'> {\n left?: SwipeAction[];\n right?: SwipeAction[];\n children?: ReactNode;\n}\n\nfunction Actions({ side, actions }: { side: 'left' | 'right'; actions: SwipeAction[] }) {\n return (\n <div data-mk-swipe-actions={side}>\n {actions.map((action) => (\n <button\n key={action.id}\n type=\"button\"\n data-mk-swipe-action={action.id}\n data-mk-tone={action.tone}\n data-mk-swipe-remove={action.remove ? '' : undefined}\n data-mk-swipe-primary={action.primary ? '' : undefined}\n aria-label={action.label}\n >\n {action.icon ?? action.label}\n </button>\n ))}\n </div>\n );\n}\n\n/** One row: its face (children) and the actions behind each side. */\nfunction Row({ left, right, children, ...props }: SwipeRowProps) {\n return (\n <li {...props} data-mk-swipe-row=\"\">\n {left?.length ? <Actions side=\"left\" actions={left} /> : null}\n <div data-mk-swipe-content=\"\">{children}</div>\n {right?.length ? <Actions side=\"right\" actions={right} /> : null}\n </li>\n );\n}\n\nexport interface SwipeActionsProps extends Omit<HTMLAttributes<HTMLUListElement>, 'onChange'> {\n fullSwipe?: number;\n /** An action ran (a removing one after its row folded away): update your data here. */\n onAction?: (action: string, row: HTMLElement) => void;\n children?: ReactNode;\n}\n\nfunction Root({ fullSwipe, onAction, className, children, ...props }: SwipeActionsProps) {\n const ref = useRef<HTMLUListElement>(null);\n const action = useLatest(onAction);\n useIsomorphicLayoutEffect(() => {\n const instance = createSwipeActions(ref.current, { fullSwipe, onAction: (id, row) => action.current?.(id, row) });\n return () => instance.destroy();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fullSwipe]);\n return (\n <ul {...props} ref={ref} className={['mk-swipe-actions', className].filter(Boolean).join(' ')}>\n {children}\n </ul>\n );\n}\n\n/**\n * <SwipeActions onAction={(id, row) => …}><SwipeActions.Row key={mail.id} data-id={mail.id} right={[{ id: 'delete', label: 'Eliminar', remove: true, tone: 'danger' }]}>…</SwipeActions.Row></SwipeActions>\n */\nexport const SwipeActions = Object.assign(Root, { Row });\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { toHex, toHsva } from '../../core/color';\nimport { createColorSlider, type ColorSliderInstance, type ColorSliderOptions } from './engine';\n\nexport interface ColorSliderProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onInput' | 'onChange' | 'defaultValue'>, Omit<ColorSliderOptions, 'value'> {\n /** Controlled colour; without it the slider keeps its own (defaultValue). */\n value?: string;\n defaultValue?: string;\n}\n\n/** <ColorSlider channel=\"hue\" value={color} onInput={setColor} />. */\nexport function ColorSlider({ value, defaultValue, channel, label, orientation, step, showValue, name, disabled, onInput, onChange, className, ...props }: ColorSliderProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<ColorSliderInstance | null>(null);\n const input = useLatest(onInput);\n const change = useLatest(onChange);\n const start = useRef(value ?? defaultValue);\n useIsomorphicLayoutEffect(() => {\n const created = createColorSlider(ref.current, {\n value: value ?? start.current,\n channel,\n label,\n orientation,\n step,\n showValue,\n name,\n disabled,\n onInput: (hex, color) => input.current?.(hex, color),\n onChange: (hex, color) => change.current?.(hex, color),\n });\n instance.current = created;\n return () => {\n start.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [channel, label, orientation, step, showValue, name, disabled]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined && instance.current && instance.current.value !== toHex(toHsva(value))) instance.current.setColor(value, false);\n }, [value]);\n return <div {...props} ref={ref} className={['mk-color-slider', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { toHex, toHsva } from '../../core/color';\nimport { createColorArea, type ColorAreaInstance, type ColorAreaOptions } from './engine';\n\nexport interface ColorAreaProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onInput' | 'onChange' | 'defaultValue'>, Omit<ColorAreaOptions, 'value'> {\n /** Controlled colour; without it the area keeps its own (defaultValue). */\n value?: string;\n defaultValue?: string;\n}\n\n/** <ColorArea value={color} onInput={setColor} />. */\nexport function ColorArea({ value, defaultValue, label, step, name, disabled, onInput, onChange, className, ...props }: ColorAreaProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<ColorAreaInstance | null>(null);\n const input = useLatest(onInput);\n const change = useLatest(onChange);\n const start = useRef(value ?? defaultValue);\n useIsomorphicLayoutEffect(() => {\n const created = createColorArea(ref.current, {\n value: value ?? start.current,\n label,\n step,\n name,\n disabled,\n onInput: (hex, color) => input.current?.(hex, color),\n onChange: (hex, color) => change.current?.(hex, color),\n });\n instance.current = created;\n return () => {\n start.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [label, step, name, disabled]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined && instance.current && instance.current.value !== toHex(toHsva(value))) instance.current.setColor(value, false);\n }, [value]);\n return <div {...props} ref={ref} className={['mk-color-area', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { toHex, toHsva } from '../../core/color';\nimport { createColorField, type ColorFieldInstance, type ColorFieldOptions } from './engine';\n\nexport interface ColorFieldProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'>, Omit<ColorFieldOptions, 'value'> {\n /** Controlled colour; without it the field keeps its own (defaultValue). */\n value?: string;\n defaultValue?: string;\n}\n\n/** <ColorField value={color} onChange={setColor} format=\"rgb\" />. The engine creates the input. */\nexport function ColorField({ value, defaultValue, format, alpha, label, name, disabled, readOnly, onChange, className, ...props }: ColorFieldProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<ColorFieldInstance | null>(null);\n const change = useLatest(onChange);\n const start = useRef(value ?? defaultValue);\n useIsomorphicLayoutEffect(() => {\n const created = createColorField(ref.current, {\n value: value ?? start.current,\n format,\n alpha,\n label,\n name,\n disabled,\n readOnly,\n onChange: (hex, color) => change.current?.(hex, color),\n });\n instance.current = created;\n return () => {\n start.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [format, alpha, label, name, disabled, readOnly]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined && instance.current && instance.current.value !== toHex(toHsva(value))) instance.current.setColor(value, false);\n }, [value]);\n return <div {...props} ref={ref} className={['mk-color-field', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { toHex, toHsva } from '../../core/color';\nimport { createColorPicker, type ColorPickerInstance, type ColorPickerOptions } from './engine';\n\nexport interface ColorPickerProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onInput' | 'onChange' | 'defaultValue'>, Omit<ColorPickerOptions, 'value'> {\n /** Controlled colour; without it the picker keeps its own (defaultValue). */\n value?: string;\n defaultValue?: string;\n}\n\n/** <ColorPicker value={color} onInput={setColor} alpha /> or <ColorPicker inline … />. */\nexport function ColorPicker({ value, defaultValue, alpha, format, swatches, label, name, disabled, inline, eyedropper, onInput, onChange, className, ...props }: ColorPickerProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<ColorPickerInstance | null>(null);\n const input = useLatest(onInput);\n const change = useLatest(onChange);\n const start = useRef(value ?? defaultValue);\n const key = JSON.stringify(swatches ?? null);\n useIsomorphicLayoutEffect(() => {\n const created = createColorPicker(ref.current, {\n value: value ?? start.current,\n alpha,\n format,\n swatches,\n label,\n name,\n disabled,\n inline,\n eyedropper,\n onInput: (hex, color) => input.current?.(hex, color),\n onChange: (hex, color) => change.current?.(hex, color),\n });\n instance.current = created;\n return () => {\n start.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [alpha, format, key, label, name, disabled, inline, eyedropper]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined && instance.current && instance.current.value !== toHex(toHsva(value))) instance.current.setColor(value, false);\n }, [value]);\n return <div {...props} ref={ref} className={['mk-color-picker', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createTimeField, type TimeFieldInstance, type TimeFieldOptions } from './engine';\n\nexport interface TimeFieldProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'>, Omit<TimeFieldOptions, 'value'> {\n /** Controlled time ('HH:MM', 24 h); without it the field keeps its own (defaultValue). */\n value?: string | null;\n defaultValue?: string | null;\n}\n\n/** <TimeField value={time} onChange={setTime} minuteStep={15} />. */\nexport function TimeField({ value, defaultValue, locale, hourCycle, seconds, minuteStep, min, max, label, name, disabled, readOnly, onChange, className, ...props }: TimeFieldProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<TimeFieldInstance | null>(null);\n const change = useLatest(onChange);\n const start = useRef(value !== undefined ? value : (defaultValue ?? null));\n useIsomorphicLayoutEffect(() => {\n const created = createTimeField(ref.current, {\n value: value !== undefined ? value : start.current,\n locale,\n hourCycle,\n seconds,\n minuteStep,\n min,\n max,\n label,\n name,\n disabled,\n readOnly,\n onChange: (next) => change.current?.(next),\n });\n instance.current = created;\n return () => {\n start.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale, hourCycle, seconds, minuteStep, min, max, label, name, disabled, readOnly]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined && instance.current && instance.current.value !== value) instance.current.setValue(value);\n }, [value]);\n return <div {...props} ref={ref} className={['mk-time-field', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { rangeKeys, toRange } from '../../core/date-range';\nimport type { DateInput } from '../../core/dates';\nimport { createRangeCalendar, type RangeCalendarInstance, type RangeCalendarOptions } from './engine';\n\ntype RangeValue = { start: DateInput; end: DateInput } | null;\n\nexport interface RangeCalendarProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'>, Omit<RangeCalendarOptions, 'value'> {\n /** Controlled range; without it the calendar keeps its own (defaultValue). */\n value?: RangeValue;\n defaultValue?: RangeValue;\n}\n\nconst keyOf = (value: RangeValue | undefined) => {\n const range = toRange(value);\n return range ? JSON.stringify(rangeKeys(range)) : 'null';\n};\n\n/** <RangeCalendar value={range} onChange={setRange} visibleMonths={2} />. */\nexport function RangeCalendar({ value, defaultValue, month, visibleMonths, firstDay, min, max, unavailable, locale, today, labels, onChange, className, ...props }: RangeCalendarProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<RangeCalendarInstance | null>(null);\n const change = useLatest(onChange);\n const test = useLatest(unavailable);\n const start = useRef<RangeValue>(value !== undefined ? value : (defaultValue ?? null));\n const rules = typeof unavailable === 'function' ? 'function' : JSON.stringify(unavailable ?? null);\n useIsomorphicLayoutEffect(() => {\n const created = createRangeCalendar(ref.current, {\n value: value !== undefined ? value : start.current,\n month,\n visibleMonths,\n firstDay,\n min,\n max,\n // A function is read through a ref so a new closure each render does not rebuild the calendar.\n unavailable: typeof unavailable === 'function' ? (day) => (typeof test.current === 'function' ? test.current(day) : false) : unavailable,\n locale,\n today,\n labels,\n onChange: (range) => change.current?.(range),\n });\n instance.current = created;\n return () => {\n start.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [String(month ?? ''), visibleMonths, firstDay, String(min ?? ''), String(max ?? ''), rules, locale, String(today ?? '')]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined && instance.current && keyOf(value) !== keyOf(instance.current.value)) instance.current.setValue(value);\n }, [keyOf(value)]);\n return <div {...props} ref={ref} className={['mk-range-calendar', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { rangeKeys, toRange } from '../../core/date-range';\nimport type { DateInput } from '../../core/dates';\nimport { createDateRangePicker, type DateRangePickerInstance, type DateRangePickerOptions } from './engine';\n\ntype RangeValue = { start: DateInput; end: DateInput } | null;\n\nexport interface DateRangePickerProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'>, Omit<DateRangePickerOptions, 'value'> {\n /** Controlled range; without it the picker keeps its own (defaultValue). */\n value?: RangeValue;\n defaultValue?: RangeValue;\n}\n\nconst keyOf = (value: RangeValue | undefined) => {\n const range = toRange(value);\n return range ? JSON.stringify(rangeKeys(range)) : 'null';\n};\n\n/** <DateRangePicker value={range} onChange={setRange} presets={[…]} />. */\nexport function DateRangePicker({ value, defaultValue, min, max, unavailable, firstDay, locale, today, label, name, presets, disabled, onChange, className, ...props }: DateRangePickerProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<DateRangePickerInstance | null>(null);\n const change = useLatest(onChange);\n const test = useLatest(unavailable);\n const start = useRef<RangeValue>(value !== undefined ? value : (defaultValue ?? null));\n const rules = typeof unavailable === 'function' ? 'function' : JSON.stringify(unavailable ?? null);\n const presetKey = JSON.stringify(presets ?? null);\n useIsomorphicLayoutEffect(() => {\n const created = createDateRangePicker(ref.current, {\n value: value !== undefined ? value : start.current,\n min,\n max,\n unavailable: typeof unavailable === 'function' ? (day) => (typeof test.current === 'function' ? test.current(day) : false) : unavailable,\n firstDay,\n locale,\n today,\n label,\n name,\n presets,\n disabled,\n onChange: (range) => change.current?.(range),\n });\n instance.current = created;\n return () => {\n start.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [String(min ?? ''), String(max ?? ''), rules, firstDay, locale, String(today ?? ''), label, name, presetKey, disabled]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined && instance.current && keyOf(value) !== keyOf(instance.current.value)) instance.current.setValue(value);\n }, [keyOf(value)]);\n return <div {...props} ref={ref} className={['mk-date-range-picker', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createTooltip, type TooltipInstance, type TooltipOptions } from './engine';\n\nexport interface TooltipProps extends HTMLAttributes<HTMLSpanElement>, TooltipOptions {}\n\n/** <Tooltip content=\"Copiar enlace\"><button>…</button></Tooltip>: the first focusable child is the trigger. */\nexport function Tooltip({ content, placement, openDelay, closeDelay, interactive, arrow, onOpenChange, className, children, ...props }: TooltipProps) {\n const ref = useRef<HTMLSpanElement>(null);\n const instance = useRef<TooltipInstance | null>(null);\n const change = useLatest(onOpenChange);\n useIsomorphicLayoutEffect(() => {\n const created = createTooltip(ref.current, { content, placement, openDelay, closeDelay, interactive, arrow, onOpenChange: (open) => change.current?.(open) });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [placement, openDelay, closeDelay, interactive, arrow]);\n useIsomorphicLayoutEffect(() => {\n instance.current?.setContent(content ?? '');\n }, [content]);\n return (\n <span {...props} ref={ref} className={['mk-tooltip', className].filter(Boolean).join(' ')}>\n {children}\n </span>\n );\n}\n","'use client';\nimport { forwardRef, useImperativeHandle, useRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createPopover, type PopoverInstance, type PopoverOptions } from './engine';\n\nexport interface PopoverProps extends Omit<HTMLAttributes<HTMLDivElement>, 'content'>, PopoverOptions {\n /** The control that opens it (a button). */\n trigger: ReactNode;\n /** Controlled open state (optional). */\n open?: boolean;\n /** Extra class for the panel. */\n panelClassName?: string;\n}\n\nexport interface PopoverHandle {\n open(): void;\n close(): void;\n}\n\n/** <Popover trigger={<button>Filtros</button>}>…</Popover>: the panel grows out of the trigger. */\nexport const Popover = forwardRef<PopoverHandle, PopoverProps>(function Popover({ trigger, open, label, onOpenChange, panelClassName, className, children, ...props }, handle) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<PopoverInstance | null>(null);\n const change = useLatest(onOpenChange);\n useImperativeHandle(handle, () => ({ open: () => instance.current?.open(), close: () => instance.current?.close() }), []);\n useIsomorphicLayoutEffect(() => {\n const created = createPopover(ref.current, { label, onOpenChange: (value) => change.current?.(value) });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [label]);\n useIsomorphicLayoutEffect(() => {\n if (open === undefined || !instance.current || instance.current.isOpen === open) return;\n if (open) instance.current.open();\n else instance.current.close();\n }, [open]);\n return (\n <div {...props} ref={ref} className={['mk-popover', className].filter(Boolean).join(' ')}>\n <span data-mk-popover-trigger-slot=\"\" style={{ display: 'contents' }}>\n {trigger}\n </span>\n <dialog data-mk-popover-panel=\"\" className={panelClassName}>\n {children}\n </dialog>\n </div>\n );\n});\n","'use client';\nimport { useRef, type ButtonHTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createLoadingButton, type LoadingButtonInstance, type LoadingButtonOptions, type LoadingState } from './engine';\n\nexport interface LoadingButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onClick'>, Omit<LoadingButtonOptions, 'action'> {\n /** Runs on click; its promise drives loading → success / error. */\n action?: () => unknown;\n /** Controlled state (optional): drive it yourself instead of `action`. */\n state?: LoadingState;\n}\n\n/** <LoadingButton action={save} className=\"mk-button\">Guardar</LoadingButton>. */\nexport function LoadingButton({ action, state, labels, compact, resetAfter, onStateChange, className, children, type = 'button', ...props }: LoadingButtonProps) {\n const ref = useRef<HTMLButtonElement>(null);\n const instance = useRef<LoadingButtonInstance | null>(null);\n const run = useLatest(action);\n const change = useLatest(onStateChange);\n const key = JSON.stringify(labels ?? null);\n useIsomorphicLayoutEffect(() => {\n const created = createLoadingButton(ref.current, {\n labels,\n compact,\n resetAfter,\n action: action ? () => run.current?.() : undefined,\n onStateChange: (next) => change.current?.(next),\n });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [key, compact, resetAfter, Boolean(action)]);\n useIsomorphicLayoutEffect(() => {\n if (state && instance.current && instance.current.state !== state) instance.current.setState(state);\n }, [state]);\n return (\n <button {...props} type={type} ref={ref} className={['mk-loading-button', className].filter(Boolean).join(' ')}>\n <span data-mk-loading-label=\"\">{children}</span>\n </button>\n );\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createBreadcrumb, type BreadcrumbInstance, type BreadcrumbItem, type BreadcrumbOptions } from './engine';\n\nexport interface BreadcrumbProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'>, Omit<BreadcrumbOptions, 'items'> {\n items: BreadcrumbItem[];\n}\n\n/** <Breadcrumb items={path} onNavigate={(item, i, event) => { event.preventDefault(); go(item.href) }} />. */\nexport function Breadcrumb({ items, label, maxItems, onNavigate, className, ...props }: BreadcrumbProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<BreadcrumbInstance | null>(null);\n const navigate = useLatest(onNavigate);\n const key = JSON.stringify(items);\n useIsomorphicLayoutEffect(() => {\n const created = createBreadcrumb(ref.current, { items, label, maxItems, onNavigate: (item, index, event) => navigate.current?.(item, index, event) });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [label, maxItems]);\n useIsomorphicLayoutEffect(() => {\n if (instance.current && JSON.stringify(instance.current.items) !== key) instance.current.setItems(items);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [key]);\n return <div {...props} ref={ref} className={['mk-breadcrumb', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createEmptyState, type EmptyStateInstance, type EmptyStateOptions } from './engine';\n\nexport interface EmptyStateProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title' | 'children'>, EmptyStateOptions {}\n\n/** <EmptyState illustration=\"search\" title=\"Sin resultados\" actions={[{ id: 'clear', label: 'Borrar filtros' }]} onAction={…} />. */\nexport function EmptyState({ illustration, title, description, actions, loop, onAction, className, ...props }: EmptyStateProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<EmptyStateInstance | null>(null);\n const action = useLatest(onAction);\n const content = { illustration, title, description, actions };\n const key = JSON.stringify(content);\n useIsomorphicLayoutEffect(() => {\n const created = createEmptyState(ref.current, { ...content, loop, onAction: (id, event) => action.current?.(id, event) });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [loop]);\n const first = useRef(true);\n useIsomorphicLayoutEffect(() => {\n if (first.current) {\n first.current = false;\n return;\n }\n instance.current?.update(content);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [key]);\n return <div {...props} ref={ref} className={['mk-empty-state', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createStatCard, type StatCardInstance, type StatCardOptions } from './engine';\n\nexport interface StatCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'>, StatCardOptions {}\n\n/** <StatCard label=\"Ingresos\" value={128400} previous={118900} format={{ style: 'currency', currency: 'MXN' }} series={week} />. */\nexport function StatCard({ label, value, previous, format, locale, positive, comparison, series, target, countOnView, className, ...props }: StatCardProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<StatCardInstance | null>(null);\n const formatter = useLatest(format);\n const custom = typeof format === 'function';\n const data = { label, value, previous, positive, comparison, series, target, format: custom ? undefined : format };\n const key = JSON.stringify(data);\n const options = () => ({ ...data, format: custom ? (n: number) => (formatter.current as (n: number) => string)(n) : data.format });\n useIsomorphicLayoutEffect(() => {\n const created = createStatCard(ref.current, { ...options(), locale, countOnView });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale, countOnView]);\n const first = useRef(true);\n useIsomorphicLayoutEffect(() => {\n if (first.current) {\n first.current = false;\n return;\n }\n instance.current?.update(options());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [key, custom]);\n return <div {...props} ref={ref} className={['mk-stat-card', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createChartTooltip, type ChartTooltipInstance, type ChartTooltipOptions } from './engine';\n\nexport interface ChartTooltipProps extends HTMLAttributes<HTMLDivElement>, ChartTooltipOptions {}\n\n/**\n * <ChartTooltip share><Chart tooltip={false} … /></ChartTooltip>, or over any chart with labels, series,\n * inset, min and max.\n */\nexport function ChartTooltip({ labels, series, align, inset, min, max, formatValue, delta, share, total, sort, pin, label, onIndexChange, className, children, ...props }: ChartTooltipProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<ChartTooltipInstance | null>(null);\n const format = useLatest(formatValue);\n const change = useLatest(onIndexChange);\n const data = { labels, series, align, inset, min, max, delta, share, total, sort, pin, label };\n const key = JSON.stringify(data);\n const options = (): ChartTooltipOptions => ({\n ...data,\n formatValue: formatValue ? (value) => format.current?.(value) ?? String(value) : undefined,\n onIndexChange: (index) => change.current?.(index),\n });\n useIsomorphicLayoutEffect(() => {\n const created = createChartTooltip(ref.current, options());\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const first = useRef(true);\n useIsomorphicLayoutEffect(() => {\n if (first.current) {\n first.current = false;\n return;\n }\n instance.current?.update(options());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [key, Boolean(formatValue)]);\n return (\n <div {...props} ref={ref} className={['mk-chart-tooltip', className].filter(Boolean).join(' ')}>\n {children}\n </div>\n );\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createMultiSelect, type MultiSelectInstance, type MultiSelectOptions } from './engine';\n\nexport interface MultiSelectProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'>, MultiSelectOptions {\n /** Controlled values; without it the field keeps its own (defaultValue). */\n value?: string[];\n defaultValue?: string[];\n}\n\n/** <MultiSelect options={people} value={chosen} onChange={setChosen} max={3} />. */\nexport function MultiSelect({ options, value, defaultValue, placeholder, label, name, max, closeOnSelect, disabled, onChange, className, ...props }: MultiSelectProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<MultiSelectInstance | null>(null);\n const change = useLatest(onChange);\n const start = useRef(value ?? defaultValue ?? []);\n const optionsKey = JSON.stringify(options ?? null);\n useIsomorphicLayoutEffect(() => {\n const created = createMultiSelect(ref.current, { options, value: value ?? start.current, placeholder, label, name, max, closeOnSelect, disabled, onChange: (next) => change.current?.(next) });\n instance.current = created;\n return () => {\n start.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [placeholder, label, name, max, closeOnSelect, disabled]);\n useIsomorphicLayoutEffect(() => {\n if (options && instance.current) instance.current.setOptions(options);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [optionsKey]);\n const valueKey = JSON.stringify(value ?? null);\n useIsomorphicLayoutEffect(() => {\n if (value && instance.current && JSON.stringify(instance.current.value) !== valueKey) instance.current.setValue(value);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [valueKey]);\n return <div {...props} ref={ref} className={['mk-multi-select', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createTagInput, type TagInputInstance, type TagInputOptions } from './engine';\n\nexport interface TagInputProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'>, TagInputOptions {\n /** Controlled tags; without it the field keeps its own (defaultValue). */\n value?: string[];\n defaultValue?: string[];\n}\n\n/** <TagInput value={tags} onChange={setTags} suggestions={known} max={8} />. */\nexport function TagInput({ value, defaultValue, suggestions, placeholder, label, name, max, restrict, allowDuplicates, validate, transform, disabled, onChange, className, ...props }: TagInputProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<TagInputInstance | null>(null);\n const change = useLatest(onChange);\n const check = useLatest(validate);\n const shape = useLatest(transform);\n const start = useRef(value ?? defaultValue ?? []);\n useIsomorphicLayoutEffect(() => {\n const created = createTagInput(ref.current, {\n value: value ?? start.current,\n suggestions,\n placeholder,\n label,\n name,\n max,\n restrict,\n allowDuplicates,\n disabled,\n validate: validate ? (tag, tags) => check.current?.(tag, tags) : undefined,\n transform: transform ? (tag) => shape.current?.(tag) ?? tag : undefined,\n onChange: (next) => change.current?.(next),\n });\n instance.current = created;\n return () => {\n start.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [placeholder, label, name, max, restrict, allowDuplicates, disabled, Boolean(validate), Boolean(transform)]);\n const suggestionsKey = JSON.stringify(suggestions ?? null);\n useIsomorphicLayoutEffect(() => {\n if (suggestions) instance.current?.setSuggestions(suggestions);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [suggestionsKey]);\n const valueKey = JSON.stringify(value ?? null);\n useIsomorphicLayoutEffect(() => {\n if (value && instance.current && JSON.stringify(instance.current.value) !== valueKey) instance.current.setValue(value);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [valueKey]);\n return <div {...props} ref={ref} className={['mk-tag-input', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport type { DateInput } from '../../core/dates';\nimport { createDateTimePicker, dateTimeKey, toDateTimeValue, type DateTimePickerInstance, type DateTimePickerOptions } from './engine';\n\nexport interface DateTimePickerProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'>, Omit<DateTimePickerOptions, 'value'> {\n /** Controlled value (Date or 'YYYY-MM-DDTHH:MM'); without it the picker keeps its own (defaultValue). */\n value?: DateInput | null;\n defaultValue?: DateInput | null;\n}\n\nconst keyOf = (value: DateInput | null | undefined) => {\n const date = toDateTimeValue(value);\n return date ? dateTimeKey(date) : 'null';\n};\n\n/** <DateTimePicker value={when} onChange={setWhen} minuteStep={15} />. */\nexport function DateTimePicker({ value, defaultValue, min, max, locale, hourCycle, minuteStep, firstDay, unavailable, today, label, name, disabled, onChange, className, ...props }: DateTimePickerProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<DateTimePickerInstance | null>(null);\n const change = useLatest(onChange);\n const test = useLatest(unavailable);\n const start = useRef<DateInput | null>(value !== undefined ? value : (defaultValue ?? null));\n const rules = typeof unavailable === 'function' ? 'function' : JSON.stringify(unavailable ?? null);\n useIsomorphicLayoutEffect(() => {\n const created = createDateTimePicker(ref.current, {\n value: value !== undefined ? value : start.current,\n min,\n max,\n locale,\n hourCycle,\n minuteStep,\n firstDay,\n unavailable: typeof unavailable === 'function' ? (day) => (typeof test.current === 'function' ? test.current(day) : false) : unavailable,\n today,\n label,\n name,\n disabled,\n onChange: (next) => change.current?.(next),\n });\n instance.current = created;\n return () => {\n start.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [String(min ?? ''), String(max ?? ''), locale, hourCycle, minuteStep, firstDay, rules, String(today ?? ''), label, name, disabled]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined && instance.current && keyOf(value) !== keyOf(instance.current.value)) instance.current.setValue(value);\n }, [keyOf(value)]);\n return <div {...props} ref={ref} className={['mk-date-time-picker', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport type { FilterGroup } from '../../core/filter';\nimport { createFilterBuilder, type FilterBuilderInstance, type FilterBuilderOptions } from './engine';\n\nexport interface FilterBuilderProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'>, FilterBuilderOptions {\n /** Controlled filter; without it the builder keeps its own (defaultValue). */\n value?: FilterGroup;\n defaultValue?: FilterGroup;\n}\n\n/** <FilterBuilder fields={fields} value={filter} onChange={setFilter} />. */\nexport function FilterBuilder({ fields, value, defaultValue, maxDepth, label, summary, onChange, className, ...props }: FilterBuilderProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<FilterBuilderInstance | null>(null);\n const change = useLatest(onChange);\n const start = useRef(value ?? defaultValue);\n const fieldsKey = JSON.stringify(fields);\n useIsomorphicLayoutEffect(() => {\n const created = createFilterBuilder(ref.current, { fields, value: value ?? start.current, maxDepth, label, summary, onChange: (next) => change.current?.(next) });\n instance.current = created;\n return () => {\n start.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fieldsKey, maxDepth, label, summary]);\n const valueKey = JSON.stringify(value ?? null);\n useIsomorphicLayoutEffect(() => {\n if (value && instance.current && JSON.stringify(instance.current.value) !== valueKey) instance.current.setValue(value);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [valueKey]);\n return <div {...props} ref={ref} className={['mk-filter-builder', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../react/use-recipe';\nimport { createTimeline, type TimelineEvent, type TimelineInstance, type TimelineOptions } from './engine';\n\nexport interface TimelineProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'>, Omit<TimelineOptions, 'events'> {\n events: TimelineEvent[];\n}\n\n/**\n * <Timeline events={history} group />. Changing `events` updates in place: an event added at either end grows in,\n * one that changes state recolours its dot, one that goes folds away.\n */\nexport function Timeline({ events, layout, group, relative, locale, label, className, ...props }: TimelineProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<TimelineInstance | null>(null);\n const shown = useRef<TimelineEvent[]>(events);\n useIsomorphicLayoutEffect(() => {\n const created = createTimeline(ref.current, { events: shown.current, layout, group, relative, locale, label });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [layout, group, relative, locale, label]);\n const key = JSON.stringify(events);\n useIsomorphicLayoutEffect(() => {\n const timeline = instance.current;\n const before = shown.current;\n shown.current = events;\n if (!timeline || JSON.stringify(timeline.events) === key) return;\n const ids = new Set(before.map((event) => event.id));\n const fresh = events.filter((event) => !ids.has(event.id));\n const kept = events.filter((event) => ids.has(event.id));\n const gone = before.filter((old) => !events.some((event) => event.id === old.id));\n const stayed = before.filter((old) => !gone.includes(old));\n const sameOrder = kept.every((event, i) => stayed[i]?.id === event.id);\n /** The events that stayed take their changes (a new state recolours a dot). */\n const patch = () => {\n for (const event of kept) {\n const old = before.find((entry) => entry.id === event.id);\n // Keys the new version dropped are cleared too.\n if (old && JSON.stringify(old) !== JSON.stringify(event)) timeline.update(event.id, { ...Object.fromEntries(Object.keys(old).map((name) => [name, undefined])), ...event });\n }\n };\n const first = events[0]?.id;\n const last = events[events.length - 1]?.id;\n // One event added at an end grows in; one taken out folds away; anything else is redrawn.\n if (sameOrder && !gone.length && fresh.length === 1 && (fresh[0]!.id === first || fresh[0]!.id === last)) {\n patch();\n timeline.add(fresh[0]!, fresh[0]!.id === first ? 'start' : 'end');\n } else if (sameOrder && !fresh.length && gone.length <= 1) {\n patch();\n if (gone[0]) timeline.remove(gone[0].id);\n } else timeline.setEvents(events);\n }, [key]);\n return <div {...props} ref={ref} className={['mk-timeline', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { forwardRef, useImperativeHandle, useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createActivityFeed, type ActivityFeedInstance, type ActivityFeedOptions, type ActivityItem } from './engine';\n\nexport interface ActivityFeedProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'>, Omit<ActivityFeedOptions, 'items'> {\n /** Initial entries; later activity goes through the handle (prepend / append). */\n items?: ActivityItem[];\n}\n\nexport interface ActivityFeedHandle {\n prepend(items: ActivityItem[]): void;\n append(items: ActivityItem[]): void;\n}\n\n/** <ActivityFeed ref={feed} items={recent} onLoadMore={loadOlder} />, then feed.current.prepend(live). */\nexport const ActivityFeed = forwardRef<ActivityFeedHandle, ActivityFeedProps>(function ActivityFeed({ items, locale, label, emptyLabel, onLoadMore, className, ...props }, handle) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<ActivityFeedInstance | null>(null);\n const load = useLatest(onLoadMore);\n useImperativeHandle(handle, () => ({ prepend: (next) => instance.current?.prepend(next), append: (next) => instance.current?.append(next) }), []);\n useIsomorphicLayoutEffect(() => {\n const created = createActivityFeed(ref.current, { items, locale, label, emptyLabel, onLoadMore: onLoadMore ? () => load.current?.() ?? [] : undefined });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale, label, emptyLabel, Boolean(onLoadMore)]);\n return <div {...props} ref={ref} className={['mk-activity-feed', className].filter(Boolean).join(' ')} />;\n});\n","'use client';\nimport { forwardRef, useImperativeHandle, useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createTreeView, type TreeNode, type TreeViewInstance, type TreeViewOptions } from './engine';\n\nexport interface TreeViewProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect' | 'children' | 'draggable'>, Omit<TreeViewOptions, 'nodes'> {\n nodes: TreeNode[];\n}\n\nexport type TreeViewHandle = Pick<TreeViewInstance, 'expand' | 'collapse' | 'expandAll' | 'collapseAll' | 'reveal' | 'filter'>;\n\n/** <TreeView nodes={tree} checkable checked={ids} onCheck={setIds} search />. */\nexport const TreeView = forwardRef<TreeViewHandle, TreeViewProps>(function TreeView(\n { nodes, checkable, checked, expanded, selected, search, label, loadChildren, renderLabel, searchText, icons, draggable, onSelect, onCheck, onExpand, onMove, className, ...props },\n handle,\n) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<TreeViewInstance | null>(null);\n const select = useLatest(onSelect);\n const check = useLatest(onCheck);\n const expand = useLatest(onExpand);\n const load = useLatest(loadChildren);\n const draw = useLatest(renderLabel);\n const text = useLatest(searchText);\n const moved = useLatest(onMove);\n useImperativeHandle(\n handle,\n () => ({\n expand: (id, animate) => instance.current?.expand(id, animate),\n collapse: (id, animate) => instance.current?.collapse(id, animate),\n expandAll: () => instance.current?.expandAll(),\n collapseAll: () => instance.current?.collapseAll(),\n reveal: (id) => instance.current?.reveal(id),\n filter: (query) => instance.current?.filter(query),\n }),\n [],\n );\n const nodesKey = JSON.stringify(nodes);\n useIsomorphicLayoutEffect(() => {\n const created = createTreeView(ref.current, {\n nodes: JSON.parse(nodesKey) as TreeNode[],\n checkable,\n checked,\n expanded,\n selected,\n search,\n label,\n loadChildren: loadChildren ? (node) => load.current?.(node) ?? [] : undefined,\n renderLabel: renderLabel ? (node, element, query) => draw.current?.(node, element, query) : undefined,\n searchText: searchText ? (node) => text.current?.(node) ?? node.label : undefined,\n onSelect: (node) => select.current?.(node),\n onCheck: (ids) => check.current?.(ids),\n onExpand: (node, open) => expand.current?.(node, open),\n icons,\n draggable,\n onMove: (node, into) => moved.current?.(node, into),\n });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [checkable, String(search), label, Boolean(loadChildren), Boolean(renderLabel), Boolean(searchText), icons, draggable]);\n const first = useRef(true);\n useIsomorphicLayoutEffect(() => {\n if (first.current) {\n first.current = false;\n return;\n }\n instance.current?.setNodes(JSON.parse(nodesKey) as TreeNode[]);\n }, [nodesKey]);\n const checkedKey = JSON.stringify(checked ?? null);\n useIsomorphicLayoutEffect(() => {\n if (checked && instance.current && JSON.stringify([...instance.current.checked].sort()) !== JSON.stringify([...checked].sort())) instance.current.setChecked(checked);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [checkedKey]);\n useIsomorphicLayoutEffect(() => {\n if (selected !== undefined && instance.current && instance.current.selected !== selected) instance.current.select(selected);\n }, [selected]);\n return <div {...props} ref={ref} className={['mk-tree-view', className].filter(Boolean).join(' ')} />;\n});\n","'use client';\nimport { forwardRef, useImperativeHandle, useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createFileExplorer, type FileEntry, type FileExplorerInstance, type FileExplorerOptions } from './engine';\n\nexport interface FileExplorerProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'children'>, Omit<FileExplorerOptions, 'files'> {\n files: FileEntry[];\n}\n\nexport type FileExplorerHandle = Pick<FileExplorerInstance, 'open' | 'up' | 'setView' | 'select' | 'createFolder' | 'rename' | 'remove' | 'move'>;\n\n/**\n * <FileExplorer files={files} onChange={setFiles} onOpen={preview} />. Hand back what onChange gives (or nothing:\n * the explorer keeps its own copy); different files from the app replace the shown ones.\n */\nexport const FileExplorer = forwardRef<FileExplorerHandle, FileExplorerProps>(function FileExplorer(\n { files, rootLabel, folder, view, tree, readOnly, locale, label, onOpen, onNavigate, onSelectionChange, onViewChange, onChange, className, ...props },\n handle,\n) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<FileExplorerInstance | null>(null);\n const open = useLatest(onOpen);\n const navigate = useLatest(onNavigate);\n const select = useLatest(onSelectionChange);\n const switchView = useLatest(onViewChange);\n const change = useLatest(onChange);\n useImperativeHandle(\n handle,\n () => ({\n open: (id) => instance.current?.open(id),\n up: () => instance.current?.up(),\n setView: (next) => instance.current?.setView(next),\n select: (ids) => instance.current?.select(ids),\n createFolder: (name) => instance.current?.createFolder(name) ?? null,\n rename: (id, name) => instance.current?.rename(id, name),\n remove: (ids) => instance.current?.remove(ids),\n move: (ids, to) => instance.current?.move(ids, to),\n }),\n [],\n );\n const filesKey = JSON.stringify(files);\n useIsomorphicLayoutEffect(() => {\n const created = createFileExplorer(ref.current, {\n files: JSON.parse(filesKey) as FileEntry[],\n rootLabel,\n folder,\n view,\n tree,\n readOnly,\n locale,\n label,\n onOpen: (entry) => open.current?.(entry),\n onNavigate: (entry) => navigate.current?.(entry),\n onSelectionChange: (ids) => select.current?.(ids),\n onViewChange: (next) => switchView.current?.(next),\n onChange: (next, detail) => change.current?.(next, detail),\n });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [rootLabel, tree, readOnly, locale, label]);\n useIsomorphicLayoutEffect(() => {\n const explorer = instance.current;\n // The echo of a change made in the explorer is already shown.\n if (explorer && JSON.stringify(explorer.files) !== filesKey) explorer.setFiles(JSON.parse(filesKey) as FileEntry[]);\n }, [filesKey]);\n useIsomorphicLayoutEffect(() => {\n if (view && instance.current && instance.current.view !== view) instance.current.setView(view);\n }, [view]);\n useIsomorphicLayoutEffect(() => {\n if (folder && instance.current && instance.current.folder !== folder) instance.current.open(folder);\n }, [folder]);\n return <div {...props} ref={ref} className={['mk-file-explorer', className].filter(Boolean).join(' ')} />;\n});\n","'use client';\nimport { forwardRef, useImperativeHandle, useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createJsonViewer, type JsonViewerInstance, type JsonViewerOptions } from './engine';\n\nexport interface JsonViewerProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect' | 'onCopy' | 'children'>, JsonViewerOptions {}\n\nexport type JsonViewerHandle = Pick<JsonViewerInstance, 'expandAll' | 'collapseAll' | 'reveal' | 'filter' | 'copy'>;\n\n/** <JsonViewer data={response} expandDepth={2} search />. New data keeps what was open and flashes what changed. */\nexport const JsonViewer = forwardRef<JsonViewerHandle, JsonViewerProps>(function JsonViewer(\n { data, expandDepth, rootName, search, toolbar, sortKeys, label, onSelect, onCopy, className, ...props },\n handle,\n) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<JsonViewerInstance | null>(null);\n const select = useLatest(onSelect);\n const copied = useLatest(onCopy);\n const shown = useRef(data);\n useImperativeHandle(\n handle,\n () => ({\n expandAll: () => instance.current?.expandAll(),\n collapseAll: () => instance.current?.collapseAll(),\n reveal: (path) => instance.current?.reveal(path),\n filter: (query) => instance.current?.filter(query),\n copy: (path) => instance.current?.copy(path) ?? Promise.resolve(false),\n }),\n [],\n );\n useIsomorphicLayoutEffect(() => {\n const created = createJsonViewer(ref.current, {\n data: shown.current,\n expandDepth,\n rootName,\n search,\n toolbar,\n sortKeys,\n label,\n onSelect: (path, value) => select.current?.(path, value),\n onCopy: (text, path) => copied.current?.(text, path),\n });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [expandDepth, rootName, String(search), toolbar, sortKeys, label]);\n useIsomorphicLayoutEffect(() => {\n if (shown.current === data) return;\n shown.current = data;\n instance.current?.setData(data);\n }, [data]);\n return <div {...props} ref={ref} className={['mk-json-viewer', className].filter(Boolean).join(' ')} />;\n});\n","'use client';\nimport { forwardRef, useImperativeHandle, useRef, useState, type HTMLAttributes, type ReactElement, type ReactNode, type Ref } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport type { VirtualRange } from '../../core/virtual';\nimport { createVirtualList, type VirtualKey, type VirtualListInstance, type VirtualListOptions, type VirtualScrollOptions } from './engine';\n\nexport interface VirtualListProps<T> extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect' | 'children'>, Omit<VirtualListOptions<T>, 'items' | 'renderItem' | 'onRange'> {\n items: T[];\n /** A row's content; without it, its text. */\n renderItem?: (item: T, index: number) => ReactNode;\n}\n\nexport interface VirtualListHandle {\n scrollToIndex(index: number, options?: VirtualScrollOptions): void;\n}\n\nconst keyFor = <T,>(getKey: VirtualListOptions<T>['getKey'], item: T, index: number): VirtualKey => {\n if (getKey) return getKey(item, index);\n const id = item && typeof item === 'object' ? (item as { id?: unknown }).id : undefined;\n return typeof id === 'string' || typeof id === 'number' ? id : index;\n};\n\n/**\n * <VirtualList items={rows} itemHeight={44} renderItem={(row) => <Row {...row} />} selectable=\"multiple\" />.\n * React renders only the rows in view; the engine adopts its viewport, and places, measures and picks the rows.\n */\nfunction VirtualListInner<T>(\n { items, renderItem, itemHeight, estimatedHeight, overscan, itemText, getKey, selectable, selected, label, emptyLabel, locale, onSelect, onActivate, onEndReached, className, ...props }: VirtualListProps<T>,\n handle: Ref<VirtualListHandle>,\n) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<VirtualListInstance<T> | null>(null);\n const [range, setRange] = useState<VirtualRange>({ start: 0, end: 0 });\n const shown = useRef(items);\n const select = useLatest(onSelect);\n const activate = useLatest(onActivate);\n const more = useLatest(onEndReached);\n const text = useLatest(itemText);\n const key = useLatest(getKey);\n useImperativeHandle(handle, () => ({ scrollToIndex: (index, options) => instance.current?.scrollToIndex(index, options) }), []);\n const custom = Boolean(renderItem);\n useIsomorphicLayoutEffect(() => {\n const created = createVirtualList<T>(ref.current, {\n items: shown.current,\n itemHeight,\n estimatedHeight,\n overscan,\n selectable,\n selected,\n label,\n emptyLabel,\n locale,\n itemText: itemText ? (item) => text.current?.(item) ?? '' : undefined,\n getKey: (item, index) => keyFor(key.current, item, index),\n onSelect: (keys, chosen) => select.current?.(keys, chosen),\n onActivate: (item, index) => activate.current?.(item, index),\n onEndReached: onEndReached ? () => more.current?.() : undefined,\n onRange: custom ? setRange : undefined,\n });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [itemHeight, estimatedHeight, overscan, String(selectable), label, emptyLabel, locale, custom, Boolean(onEndReached), Boolean(itemText)]);\n useIsomorphicLayoutEffect(() => {\n if (shown.current === items) return;\n shown.current = items;\n instance.current?.setItems(items);\n }, [items]);\n const selectedKey = JSON.stringify(selected ?? null);\n useIsomorphicLayoutEffect(() => {\n if (selected && instance.current && JSON.stringify(instance.current.selected) !== JSON.stringify(selected)) instance.current.select(selected);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedKey]);\n // After React drew the window: place and measure it.\n useIsomorphicLayoutEffect(() => {\n if (custom) instance.current?.refresh();\n });\n return (\n <div {...props} ref={ref} className={['mk-virtual-list', className].filter(Boolean).join(' ')}>\n <div data-mk-vl-viewport=\"\">\n <div data-mk-vl-spacer=\"\">\n {renderItem\n ? items.slice(range.start, Math.min(range.end, items.length)).map((item, i) => {\n const index = range.start + i;\n return (\n <div key={keyFor(getKey, item, index)} data-mk-vl-item=\"\" data-index={index}>\n {renderItem(item, index)}\n </div>\n );\n })\n : null}\n </div>\n </div>\n </div>\n );\n}\n\nexport const VirtualList = forwardRef(VirtualListInner) as <T>(props: VirtualListProps<T> & { ref?: Ref<VirtualListHandle> }) => ReactElement;\n","'use client';\nimport { Children, forwardRef, useImperativeHandle, useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createResizablePanel, type ResizablePanelInstance, type ResizablePanelOptions } from './engine';\n\nexport interface ResizablePanelProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onResize'>, ResizablePanelOptions {}\n\nexport type ResizablePanelHandle = Pick<ResizablePanelInstance, 'setSizes' | 'collapse' | 'expand' | 'toggle' | 'reset'>;\n\n/**\n * <ResizablePanel sizes={[25, 75]} collapsible={[0]} onResizeEnd={save}><aside /><main /></ResizablePanel>.\n * New `sizes` glide there; adding or taking away a panel starts it again.\n */\nexport const ResizablePanel = forwardRef<ResizablePanelHandle, ResizablePanelProps>(function ResizablePanel(\n { orientation, sizes, min, max, collapsible, collapsed, step, storageKey, handleButtons, labels, onResize, onResizeEnd, onCollapse, className, children, ...props },\n handle,\n) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<ResizablePanelInstance | null>(null);\n const resize = useLatest(onResize);\n const resizeEnd = useLatest(onResizeEnd);\n const collapse = useLatest(onCollapse);\n const shown = useRef(sizes);\n useImperativeHandle(\n handle,\n () => ({\n setSizes: (next, animate) => instance.current?.setSizes(next, animate),\n collapse: (index) => instance.current?.collapse(index),\n expand: (index) => instance.current?.expand(index),\n toggle: (index) => instance.current?.toggle(index),\n reset: () => instance.current?.reset(),\n }),\n [],\n );\n const count = Children.count(children);\n useIsomorphicLayoutEffect(() => {\n const created = createResizablePanel(ref.current, {\n orientation,\n sizes: shown.current,\n min,\n max,\n collapsible,\n collapsed,\n step,\n storageKey,\n handleButtons,\n labels,\n onResize: (next) => resize.current?.(next),\n onResizeEnd: (next) => resizeEnd.current?.(next),\n onCollapse: (index, shut) => collapse.current?.(index, shut),\n });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [count, min, max, String(collapsible), step, storageKey, handleButtons, String(labels)]);\n useIsomorphicLayoutEffect(() => {\n if (orientation) instance.current?.setOrientation(orientation);\n }, [orientation]);\n const sizesKey = JSON.stringify(sizes ?? null);\n useIsomorphicLayoutEffect(() => {\n if (!sizes || JSON.stringify(shown.current ?? null) === sizesKey) return;\n shown.current = sizes;\n instance.current?.setSizes(sizes);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [sizesKey]);\n return (\n <div {...props} ref={ref} className={['mk-resizable-panel', className].filter(Boolean).join(' ')}>\n {children}\n </div>\n );\n});\n","'use client';\nimport { forwardRef, useImperativeHandle, useRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createSplitView, type SplitViewInstance, type SplitViewOptions } from './engine';\n\nexport interface SplitViewProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'children'>, SplitViewOptions {\n /** The two areas. */\n children: [ReactNode, ReactNode];\n}\n\nexport type SplitViewHandle = Pick<SplitViewInstance, 'setRatio' | 'collapse' | 'expand' | 'toggle'>;\n\n/** <SplitView ratio={0.35} stackBelow={640} labels={['Bandeja', 'Mensaje']}><List /><Detail /></SplitView>. A new `ratio` glides there. */\nexport const SplitView = forwardRef<SplitViewHandle, SplitViewProps>(function SplitView(\n { orientation, ratio, min, collapsible, stackBelow, storageKey, labels, onChange, onCollapse, className, children, ...props },\n handle,\n) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<SplitViewInstance | null>(null);\n const change = useLatest(onChange);\n const collapse = useLatest(onCollapse);\n const shown = useRef(ratio);\n useImperativeHandle(\n handle,\n () => ({\n setRatio: (next, animate) => instance.current?.setRatio(next, animate),\n collapse: (side) => instance.current?.collapse(side),\n expand: () => instance.current?.expand(),\n toggle: (side) => instance.current?.toggle(side),\n }),\n [],\n );\n useIsomorphicLayoutEffect(() => {\n const created = createSplitView(ref.current, {\n orientation,\n ratio: shown.current,\n min,\n collapsible,\n stackBelow,\n storageKey,\n labels,\n onChange: (next) => change.current?.(next),\n onCollapse: (side) => collapse.current?.(side),\n });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [orientation, min, String(collapsible), stackBelow, storageKey, String(labels)]);\n useIsomorphicLayoutEffect(() => {\n if (ratio === undefined || ratio === shown.current) return;\n shown.current = ratio;\n instance.current?.setRatio(ratio);\n }, [ratio]);\n return (\n <div {...props} ref={ref} className={['mk-split-view', className].filter(Boolean).join(' ')}>\n {children[0]}\n {children[1]}\n </div>\n );\n});\n","'use client';\nimport { forwardRef, useImperativeHandle, useRef, type HTMLAttributes, type ReactElement, type Ref } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createDataTable, type DataRow, type DataTableInstance, type DataTableOptions } from './engine';\n\nexport interface DataTableProps<T extends DataRow> extends Omit<HTMLAttributes<HTMLDivElement>, 'children'>, Omit<DataTableOptions<T>, 'rows'> {\n rows: T[];\n}\n\nexport type DataTableHandle<T extends DataRow = DataRow> = Pick<\n DataTableInstance<T>,\n 'sortBy' | 'setPage' | 'setPageSize' | 'setQuery' | 'setFilter' | 'setColumnVisible' | 'select' | 'removeRows' | 'updateRow'\n>;\n\n/**\n * <DataTable columns={columns} rows={rows} selectable actions={[…]} onAction={(id, row) => …} />.\n * New rows go in place (sorting, filters and selection stay); cells are text (`format`) or drawn by `render`.\n */\nfunction DataTableInner<T extends DataRow>(\n {\n columns, rows, rowKey, caption, pageSize, pageSizes, selectable, search, filters, filter, columnsMenu, actions, bulkActions, sort, loading, emptyTitle, emptyDescription, locale,\n onSortChange, onSelectionChange, onAction, onBulkAction, onPageChange, onFilterChange, onRender, className, ...props\n }: DataTableProps<T>,\n handle: Ref<DataTableHandle<T>>,\n) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<DataTableInstance<T> | null>(null);\n const shown = useRef(rows);\n const callbacks = useLatest({ onSortChange, onSelectionChange, onAction, onBulkAction, onPageChange, onFilterChange, onRender });\n useImperativeHandle(\n handle,\n () => ({\n sortBy: (key, direction) => instance.current?.sortBy(key, direction),\n setPage: (page) => instance.current?.setPage(page),\n setPageSize: (size) => instance.current?.setPageSize(size),\n setQuery: (query) => instance.current?.setQuery(query),\n setFilter: (next) => instance.current?.setFilter(next),\n setColumnVisible: (key, visible) => instance.current?.setColumnVisible(key, visible),\n select: (ids) => instance.current?.select(ids),\n removeRows: (ids) => instance.current?.removeRows(ids),\n updateRow: (id, patch) => instance.current?.updateRow(id, patch),\n }),\n [],\n );\n // Columns are compared by what they show (functions in them do not restart the table).\n const columnsKey = JSON.stringify((columns ?? []).map(({ key, label, type, hidden, sortable, filterable, align, width, options: choices }) => [key, label, type, hidden, sortable, filterable, align, width, choices]));\n const setupKey = JSON.stringify([columnsKey, rowKey, caption, pageSize, pageSizes, selectable, search, filters, columnsMenu, actions, bulkActions, emptyTitle, emptyDescription, locale]);\n useIsomorphicLayoutEffect(() => {\n const created = createDataTable<T>(ref.current, {\n columns,\n rows: shown.current,\n rowKey,\n caption,\n pageSize,\n pageSizes,\n selectable,\n search,\n filters,\n filter,\n columnsMenu,\n actions,\n bulkActions,\n sort,\n loading,\n emptyTitle,\n emptyDescription,\n locale,\n onSortChange: (next) => callbacks.current.onSortChange?.(next),\n onSelectionChange: (ids, chosen) => callbacks.current.onSelectionChange?.(ids, chosen),\n onAction: (action, row) => callbacks.current.onAction?.(action, row),\n onBulkAction: (action, chosen) => callbacks.current.onBulkAction?.(action, chosen),\n onPageChange: (page) => callbacks.current.onPageChange?.(page),\n onFilterChange: (next, query) => callbacks.current.onFilterChange?.(next, query),\n onRender: (body) => callbacks.current.onRender?.(body),\n });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [setupKey]);\n useIsomorphicLayoutEffect(() => {\n if (shown.current === rows) return;\n shown.current = rows;\n instance.current?.setRows(rows);\n }, [rows]);\n useIsomorphicLayoutEffect(() => {\n instance.current?.setLoading(Boolean(loading));\n }, [loading]);\n return <div {...props} ref={ref} className={['mk-data-table', className].filter(Boolean).join(' ')} />;\n}\n\nexport const DataTable = forwardRef(DataTableInner) as <T extends DataRow>(props: DataTableProps<T> & { ref?: Ref<DataTableHandle<T>> }) => ReactElement;\n","'use client';\nimport { forwardRef, useImperativeHandle, useRef, type HTMLAttributes, type ReactElement, type Ref } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport type { DataRow } from '../data-table/engine';\nimport { createEditableTable, type EditableTableInstance, type EditableTableOptions } from './engine';\n\nexport interface EditableTableProps<T extends DataRow> extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'children'>, Omit<EditableTableOptions<T>, 'rows'> {\n rows: T[];\n}\n\nexport type EditableTableHandle<T extends DataRow = DataRow> = Pick<EditableTableInstance<T>, 'edit' | 'setValue' | 'addRow' | 'removeRows' | 'save' | 'discard'>;\n\n/**\n * <EditableTable columns={columns} rows={rows} onSave={async (changes, rows) => { await api.save(changes); setRows(rows); }} />.\n * New `rows` from the app replace the table's (pending edits go with them): hand them back after a save.\n */\nfunction EditableTableInner<T extends DataRow>(\n { columns, rows, rowKey, caption, pageSize, pageSizes, selectable, search, filters, columnsMenu, actions, bulkActions, sort, emptyTitle, emptyDescription, locale, onSave, onChange, newRow, onAction, onBulkAction, onSelectionChange, className, ...props }: EditableTableProps<T>,\n handle: Ref<EditableTableHandle<T>>,\n) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<EditableTableInstance<T> | null>(null);\n const shown = useRef(rows);\n const callbacks = useLatest({ onSave, onChange, newRow, onAction, onBulkAction, onSelectionChange });\n useImperativeHandle(\n handle,\n () => ({\n edit: (id, key) => instance.current?.edit(id, key),\n setValue: (id, key, value) => instance.current?.setValue(id, key, value) ?? false,\n addRow: (values) => instance.current?.addRow(values) ?? '',\n removeRows: (ids) => instance.current?.removeRows(ids),\n save: () => instance.current?.save() ?? Promise.resolve(false),\n discard: () => instance.current?.discard(),\n }),\n [],\n );\n const columnsKey = JSON.stringify((columns ?? []).map(({ key, label, type, editable, editor, required, min, max, hidden, options: choices }) => [key, label, type, editable, editor, required, min, max, hidden, choices]));\n const setupKey = JSON.stringify([columnsKey, rowKey, caption, pageSize, pageSizes, selectable, search, filters, columnsMenu, actions, bulkActions, emptyTitle, emptyDescription, locale, Boolean(newRow)]);\n useIsomorphicLayoutEffect(() => {\n const created = createEditableTable<T>(ref.current, {\n columns,\n rows: shown.current,\n rowKey,\n caption,\n pageSize,\n pageSizes,\n selectable,\n search,\n filters,\n columnsMenu,\n actions,\n bulkActions,\n sort,\n emptyTitle,\n emptyDescription,\n locale,\n onSave: (changes, next) => callbacks.current.onSave?.(changes, next),\n onChange: (changes) => callbacks.current.onChange?.(changes),\n newRow: newRow ? () => callbacks.current.newRow?.() ?? {} : undefined,\n onAction: (action, row) => callbacks.current.onAction?.(action, row),\n onBulkAction: (action, chosen) => callbacks.current.onBulkAction?.(action, chosen),\n onSelectionChange: (ids, chosen) => callbacks.current.onSelectionChange?.(ids, chosen),\n });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [setupKey]);\n useIsomorphicLayoutEffect(() => {\n if (shown.current === rows) return;\n shown.current = rows;\n instance.current?.setRows(rows);\n }, [rows]);\n return <div {...props} ref={ref} className={['mk-data-table', 'mk-editable-table', className].filter(Boolean).join(' ')} />;\n}\n\nexport const EditableTable = forwardRef(EditableTableInner) as <T extends DataRow>(props: EditableTableProps<T> & { ref?: Ref<EditableTableHandle<T>> }) => ReactElement;\n","'use client';\nimport { forwardRef, useImperativeHandle, useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createRichTextEditor, type RichTextEditorInstance, type RichTextEditorOptions } from './engine';\n\nexport interface RichTextEditorProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'children' | 'defaultValue'>, RichTextEditorOptions {}\n\nexport type RichTextEditorHandle = Pick<RichTextEditorInstance, 'focus' | 'exec' | 'setValue'>;\n\n/**\n * <RichTextEditor value={html} onChange={(html) => setHtml(html)} maxLength={500} />.\n * `value` is the first content; later a different value from the app replaces it (the echo of onChange does not).\n */\nexport const RichTextEditor = forwardRef<RichTextEditorHandle, RichTextEditorProps>(function RichTextEditor(\n { value, placeholder, toolbar, maxLength, counter, name, label, readOnly, markdown, onChange, className, ...props },\n handle,\n) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<RichTextEditorInstance | null>(null);\n const change = useLatest(onChange);\n const shown = useRef(value);\n useImperativeHandle(\n handle,\n () => ({\n focus: () => instance.current?.focus(),\n exec: (command, argument) => instance.current?.exec(command, argument),\n setValue: (html) => instance.current?.setValue(html),\n }),\n [],\n );\n useIsomorphicLayoutEffect(() => {\n const created = createRichTextEditor(ref.current, {\n value: shown.current,\n placeholder,\n toolbar,\n maxLength,\n counter,\n name,\n label,\n readOnly,\n markdown,\n onChange: (html, text) => {\n shown.current = html;\n change.current?.(html, text);\n },\n });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [placeholder, String(toolbar), maxLength, String(counter), name, label, readOnly, markdown]);\n useIsomorphicLayoutEffect(() => {\n if (value === undefined || value === shown.current) return;\n shown.current = value;\n instance.current?.setValue(value);\n }, [value]);\n return <div {...props} ref={ref} className={['mk-rich-text-editor', className].filter(Boolean).join(' ')} />;\n});\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createSelect, type SelectInstance, type SelectOptions } from './engine';\n\nexport interface SelectProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'>, Omit<SelectOptions, 'value'> {\n /** Controlled value; without it the select keeps its own (defaultValue). */\n value?: string;\n defaultValue?: string;\n}\n\n/** <Select label=\"Equipo\" options={teams} value={team} onChange={setTeam} />. */\nexport function Select({ options, value, defaultValue, name, label, placeholder, disabled, onChange, className, ...props }: SelectProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<SelectInstance | null>(null);\n const change = useLatest(onChange);\n const start = useRef(value ?? defaultValue);\n const key = JSON.stringify(options ?? null);\n useIsomorphicLayoutEffect(() => {\n const created = createSelect(ref.current, { options, value: value ?? start.current, name, label, placeholder, disabled, onChange: (next) => change.current?.(next) });\n instance.current = created;\n return () => {\n start.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [key, name, label, placeholder, disabled]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined && instance.current && instance.current.value !== value) instance.current.setValue(value, false);\n }, [value]);\n return <div {...props} ref={ref} className={['mk-select', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createAddToCart, type AddToCartInstance, type AddToCartOptions } from './engine';\n\nexport interface AddToCartProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onAdd'>, AddToCartOptions {\n instanceRef?: MutableRefObject<AddToCartInstance | null>;\n}\n\n/** <AddToCart target=\"#carrito\" onAdd={setCount}><button className=\"mk-button\">Agregar</button></AddToCart>. */\nexport function AddToCart({ target, image, quantity, count, label, onAdd, onLand, instanceRef, className, children, ...props }: AddToCartProps) {\n const ref = useRef<HTMLDivElement>(null);\n const add = useLatest(onAdd);\n const landed = useLatest(onLand);\n const instance = useRef<AddToCartInstance | null>(null);\n useIsomorphicLayoutEffect(() => {\n const created = createAddToCart(ref.current, { target, image, quantity, count, label, onAdd: (n) => add.current?.(n), onLand: (n) => landed.current?.(n) });\n instance.current = created;\n if (instanceRef) instanceRef.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n if (instanceRef) instanceRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [typeof target === 'string' ? target : null, typeof image === 'string' ? image : null, quantity, label]);\n useIsomorphicLayoutEffect(() => { if (count !== undefined) instance.current?.setCount(count); }, [count]);\n return (\n <div {...props} ref={ref} className={['mk-add-to-cart', className].filter(Boolean).join(' ')}>\n {children}\n </div>\n );\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createScrollIsland, type ScrollIslandOptions } from './engine';\n\nexport interface ScrollIslandProps extends HTMLAttributes<HTMLDivElement>, ScrollIslandOptions {}\n\n/**\n * <ScrollIsland style={{ height: 400, overflow: 'auto' }}>…</ScrollIsland> scrolls its children with the island;\n * <ScrollIsland page /> puts it on the page (it renders nothing of its own then).\n */\nexport function ScrollIsland({ sections, reach, idle, persistent, page, onSection, className, children, ...props }: ScrollIslandProps) {\n const ref = useRef<HTMLDivElement>(null);\n const section = useLatest(onSection);\n useIsomorphicLayoutEffect(() => {\n const created = createScrollIsland(page ? document.documentElement : ref.current, { sections, reach, idle, persistent, page, onSection: (name) => section.current?.(name) });\n return () => created.destroy();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [sections, reach, idle, persistent, page]);\n if (page) return null;\n return (\n <div {...props} ref={ref} className={['mk-scroll-island', className].filter(Boolean).join(' ')}>\n {children}\n </div>\n );\n}\n","'use client';\nimport { useRef, type ButtonHTMLAttributes, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../react/use-recipe';\nimport { createPillButton, PILL_ARROW } from './engine';\n\nexport interface PillButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Start as the circle and spread into the pill on hover. */\n expand?: boolean;\n /** The icon (default: an arrow). */\n icon?: ReactNode;\n}\n\n/** <PillButton onClick={ask}>Haz una pregunta</PillButton> */\nexport function PillButton({ expand, icon, className, children, type = 'button', ...props }: PillButtonProps) {\n const ref = useRef<HTMLButtonElement>(null);\n useIsomorphicLayoutEffect(() => {\n const instance = createPillButton(ref.current, { expand });\n return () => instance.destroy();\n }, [expand]);\n return (\n <button {...props} type={type} ref={ref} className={['mk-pill-button', className].filter(Boolean).join(' ')}>\n <span data-mk-pill-label=\"\">{children}</span>\n {icon ? (\n <span data-mk-pill-icon=\"\" aria-hidden=\"true\">\n {icon}\n </span>\n ) : (\n <span data-mk-pill-icon=\"\" aria-hidden=\"true\" dangerouslySetInnerHTML={{ __html: PILL_ARROW }} />\n )}\n </button>\n );\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createToolbar, type ToolbarInstance, type ToolbarOptions } from './engine';\n\nexport interface ToolbarProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>, ToolbarOptions {\n instanceRef?: MutableRefObject<ToolbarInstance | null>;\n}\n\n/** <Toolbar aria-label=\"Herramientas\" value={tool} onChange={setTool}><button data-mk-tool=\"lapiz\" aria-label=\"Lápiz\">…</button></Toolbar> */\nexport function Toolbar({ value, orientation, tips, onChange, instanceRef, className, children, ...props }: ToolbarProps) {\n const ref = useRef<HTMLDivElement>(null);\n const changed = useLatest(onChange);\n const instance = useRef<ToolbarInstance | null>(null);\n useIsomorphicLayoutEffect(() => {\n const created = createToolbar(ref.current, { value, orientation, tips, onChange: (next) => changed.current?.(next) });\n instance.current = created;\n if (instanceRef) instanceRef.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n if (instanceRef) instanceRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [orientation, tips]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined && instance.current && instance.current.value !== value) instance.current.setValue(value);\n }, [value]);\n return (\n <div {...props} ref={ref} className={['mk-toolbar', className].filter(Boolean).join(' ')}>\n {children}\n </div>\n );\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createBidirectionalSlider, type BidirectionalSliderInstance, type BidirectionalSliderOptions } from './engine';\n\nexport interface BidirectionalSliderProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'onInput'>, BidirectionalSliderOptions {\n instanceRef?: MutableRefObject<BidirectionalSliderInstance | null>;\n}\n\n/** <BidirectionalSlider label=\"Volumen\" icons=\"volume\" value={volume} onChange={setVolume} /> */\nexport function BidirectionalSlider({ min, max, origin, step, value, disabled, name, label, icons, formatValue, onInput, onChange, instanceRef, className, ...props }: BidirectionalSliderProps) {\n const ref = useRef<HTMLDivElement>(null);\n const input = useLatest(onInput);\n const change = useLatest(onChange);\n const format = useLatest(formatValue);\n const instance = useRef<BidirectionalSliderInstance | null>(null);\n useIsomorphicLayoutEffect(() => {\n const created = createBidirectionalSlider(ref.current, {\n min,\n max,\n origin,\n step,\n value,\n disabled,\n name,\n label,\n icons,\n formatValue: formatValue ? (n) => format.current!(n) : undefined,\n onInput: (n) => input.current?.(n),\n onChange: (n) => change.current?.(n),\n });\n instance.current = created;\n if (instanceRef) instanceRef.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n if (instanceRef) instanceRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [min, max, origin, step, disabled, name, label, icons]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined && instance.current && instance.current.value !== value) instance.current.setValue(value);\n }, [value]);\n return <div {...props} ref={ref} className={['mk-bidirectional-slider', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../react/use-recipe';\nimport { createVoiceDots, type VoiceDotsInstance, type VoiceDotsOptions } from './engine';\n\nexport interface VoiceDotsProps extends HTMLAttributes<HTMLDivElement>, VoiceDotsOptions {\n /** A microphone stream or a playing <audio>/<video> to follow. */\n source?: MediaStream | HTMLMediaElement | null;\n /** The voice's level, 0…1 (one or one per dot), when the app measures it. */\n level?: number | number[];\n instanceRef?: MutableRefObject<VoiceDotsInstance | null>;\n}\n\n/** <VoiceDots state={listening ? 'listening' : 'idle'} source={micStream} /> */\nexport function VoiceDots({ state = 'idle', count, colorful, size, labels, source, level, instanceRef, className, ...props }: VoiceDotsProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<VoiceDotsInstance | null>(null);\n useIsomorphicLayoutEffect(() => {\n const created = createVoiceDots(ref.current, { state, count, colorful, size, labels });\n instance.current = created;\n if (instanceRef) instanceRef.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n if (instanceRef) instanceRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [count, colorful, size]);\n useIsomorphicLayoutEffect(() => {\n if (instance.current && instance.current.state !== state) instance.current.setState(state);\n }, [state]);\n useIsomorphicLayoutEffect(() => {\n const dots = instance.current;\n if (!dots || !source) return;\n let stop: (() => void) | null = null;\n let gone = false;\n void dots.listen(source).then((done) => {\n if (gone) done();\n else stop = done;\n }).catch((error: unknown) => {\n if (!gone) ref.current?.dispatchEvent(new CustomEvent('mk:error', { bubbles: true, detail: { error } }));\n });\n return () => {\n gone = true;\n stop?.();\n };\n }, [source, count, colorful, size]);\n useIsomorphicLayoutEffect(() => {\n if (level !== undefined) instance.current?.setLevel(level);\n }, [level]);\n return <div {...props} ref={ref} className={['mk-voice-dots', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type RefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport type { Instance } from '../../core/types';\n\ninterface Updatable<O> extends Instance {\n update(options: O): void;\n}\n\n/**\n * The React side of the round and flow charts: the engine is created once and\n * data changes are pushed with update(), so the chart glides instead of being\n * drawn again. `data` is compared as JSON; callbacks always call the latest.\n */\nexport function useChart<O extends object, I extends Updatable<O>>(\n create: (root: HTMLElement | null, options: O) => I,\n data: O,\n callbacks: { formatValue?: (value: number) => string; onSelect?: (...args: never[]) => void },\n instanceRef?: { current: I | null },\n): RefObject<HTMLDivElement | null> {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<I | null>(null);\n const format = useLatest(callbacks.formatValue);\n const select = useLatest(callbacks.onSelect);\n const formatted = callbacks.formatValue !== undefined;\n const key = JSON.stringify(data);\n const latest = useLatest(data);\n const options = (): O => ({\n ...latest.current,\n formatValue: formatted ? (value: number) => format.current?.(value) ?? String(value) : undefined,\n onSelect: (...args: never[]) => (select.current as ((...a: never[]) => void) | undefined)?.(...args),\n });\n useIsomorphicLayoutEffect(() => {\n const created = create(ref.current, options());\n instance.current = created;\n if (instanceRef) instanceRef.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n if (instanceRef) instanceRef.current = null;\n };\n // Created once; data is pushed below.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const first = useRef(true);\n useIsomorphicLayoutEffect(() => {\n if (first.current) {\n first.current = false;\n return;\n }\n instance.current?.update(options());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [key, formatted]);\n return ref;\n}\n","'use client';\nimport type { HTMLAttributes } from 'react';\nimport { useChart } from '../chart/use-chart';\nimport { createPieChart, type PieChartInstance, type PieChartOptions } from './engine';\n\nexport interface PieChartProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect' | 'children'>, PieChartOptions {\n instanceRef?: { current: PieChartInstance | null };\n}\n\n/** <PieChart label=\"Ventas por canal\" data={[{ label: 'Tienda', value: 420 }, …]} formatValue={money} /> */\nexport function PieChart({ data, donut, gap, size, label, totalLabel, legend, emptyLabel, formatValue, onSelect, instanceRef, className, ...props }: PieChartProps) {\n const ref = useChart(createPieChart, { data, donut, gap, size, label, totalLabel, legend, emptyLabel } as PieChartOptions, { formatValue, onSelect }, instanceRef);\n return <div {...props} ref={ref} className={['mk-chart mk-pie-chart', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport type { HTMLAttributes } from 'react';\nimport { useChart } from '../chart/use-chart';\nimport { createRadarChart, type RadarChartInstance, type RadarChartOptions } from './engine';\n\nexport interface RadarChartProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect' | 'children'>, RadarChartOptions {\n instanceRef?: { current: RadarChartInstance | null };\n}\n\n/** <RadarChart label=\"Perfil\" axes={['Velocidad', 'Calidad', …]} series={[{ name: 'Ana', values }]} /> */\nexport function RadarChart({ axes, series, max, levels, grid, size, label, legend, emptyLabel, formatValue, onSelect, instanceRef, className, ...props }: RadarChartProps) {\n const ref = useChart(createRadarChart, { axes, series, max, levels, grid, size, label, legend, emptyLabel } as RadarChartOptions, { formatValue, onSelect }, instanceRef);\n return <div {...props} ref={ref} className={['mk-chart mk-radar-chart', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport type { HTMLAttributes } from 'react';\nimport { useChart } from '../chart/use-chart';\nimport { createRadialChart, type RadialChartInstance, type RadialChartOptions } from './engine';\n\nexport interface RadialChartProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect' | 'children'>, RadialChartOptions {\n instanceRef?: { current: RadialChartInstance | null };\n}\n\n/** <RadialChart label=\"Metas\" data={[{ label: 'Pasos', value: 7400, max: 10000 }, …]} /> */\nexport function RadialChart({ data, max, sweep, size, thickness, segments, center, label, totalLabel, legend, emptyLabel, formatValue, onSelect, instanceRef, className, ...props }: RadialChartProps) {\n const ref = useChart(createRadialChart, { data, max, sweep, size, thickness, segments, center, label, totalLabel, legend, emptyLabel } as RadialChartOptions, { formatValue, onSelect }, instanceRef);\n return <div {...props} ref={ref} className={['mk-chart mk-radial-chart', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport type { HTMLAttributes } from 'react';\nimport { useChart } from '../chart/use-chart';\nimport { createSankeyChart, type SankeyChartInstance, type SankeyChartOptions } from './engine';\n\nexport interface SankeyChartProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect' | 'children'>, SankeyChartOptions {\n instanceRef?: { current: SankeyChartInstance | null };\n}\n\n/** <SankeyChart label=\"Embudo\" nodes={[{ id: 'visitas' }, …]} links={[{ source: 'visitas', target: 'carrito', value: 420 }, …]} /> */\nexport function SankeyChart({ nodes, links, height, nodeWidth, nodePadding, label, emptyLabel, formatValue, onSelect, instanceRef, className, ...props }: SankeyChartProps) {\n const ref = useChart(createSankeyChart, { nodes, links, height, nodeWidth, nodePadding, label, emptyLabel } as SankeyChartOptions, { formatValue, onSelect }, instanceRef);\n return <div {...props} ref={ref} className={['mk-chart mk-sankey-chart', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\n\nimport type { HTMLAttributes } from 'react';\nimport { useChart } from '../chart/use-chart';\nimport { createHeatmapChart, type HeatmapChartInstance, type HeatmapChartOptions } from './engine';\n\nexport interface HeatmapChartProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect' | 'children'>, HeatmapChartOptions {\n instanceRef?: { current: HeatmapChartInstance | null };\n}\n\nexport function HeatmapChart({ data, end, weeks, firstDay, locale, levels, color, unit, label, legend, formatValue, emptyLabel, onSelect, instanceRef, className, ...props }: HeatmapChartProps) {\n const ref = useChart(createHeatmapChart, { data, end, weeks, firstDay, locale, levels, color, unit, label, legend, emptyLabel }, { formatValue, onSelect }, instanceRef);\n return <div {...props} ref={ref} className={['mk-heatmap-chart', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createOrbitMenu, type OrbitMenuInstance, type OrbitMenuOptions } from './engine';\n\nexport interface OrbitMenuItem {\n value: string;\n label: string;\n icon: ReactNode;\n}\n\nexport interface OrbitMenuProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect' | 'onToggle'>, OrbitMenuOptions {\n items: OrbitMenuItem[];\n /** The middle button's name (default 'Menú'). */\n label?: string;\n instanceRef?: MutableRefObject<OrbitMenuInstance | null>;\n}\n\n/** <OrbitMenu label=\"Acciones\" items={[{ value: 'nuevo', label: 'Nuevo', icon: <Plus /> }, …]} onSelect={run} /> */\nexport function OrbitMenu({ items, label = 'Menú', radius, start, closeOnSelect, onToggle, onSelect, instanceRef, className, ...props }: OrbitMenuProps) {\n const ref = useRef<HTMLDivElement>(null);\n const toggled = useLatest(onToggle);\n const selected = useLatest(onSelect);\n const keys = items.map((item) => item.value).join('\\u0000');\n useIsomorphicLayoutEffect(() => {\n const created = createOrbitMenu(ref.current, { radius, start, closeOnSelect, onToggle: (open) => toggled.current?.(open), onSelect: (value) => selected.current?.(value) });\n if (instanceRef) instanceRef.current = created;\n return () => {\n created.destroy();\n if (instanceRef) instanceRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [keys, radius, start, closeOnSelect]);\n return (\n <div {...props} ref={ref} className={['mk-orbit-menu', className].filter(Boolean).join(' ')}>\n <button type=\"button\" data-mk-orbit-toggle=\"\" aria-label={label} />\n {items.map((item) => (\n <button key={item.value} type=\"button\" data-mk-orbit-item=\"\" data-mk-value={item.value} aria-label={item.label}>\n {item.icon}\n </button>\n ))}\n </div>\n );\n}\n","'use client';\nimport { useReducer, useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createSignaturePad, type SignatureData, type SignaturePadInstance, type SignaturePadOptions } from './engine';\n\nexport interface SignaturePadProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'children' | 'dangerouslySetInnerHTML' | 'defaultValue'>, Omit<SignaturePadOptions, 'data'> {\n /** Controlled data. Accept edits through onChange; rejected edits are restored after rendering. */\n value?: SignatureData;\n defaultValue?: SignatureData;\n instanceRef?: MutableRefObject<SignaturePadInstance | null>;\n}\n\n/** <SignaturePad value={signature} onChange={setSignature} name=\"signature\" />. */\nexport function SignaturePad({ value, defaultValue, label, hint, placeholder, color, width, disabled, readOnly, toolbar, name, historyLimit, onChange, instanceRef, className, ...props }: SignaturePadProps) {\n // JavaScript callers can still supply these props; the engine owns all child nodes.\n const { children: _children, dangerouslySetInnerHTML: _html, ...rootProps } = props as HTMLAttributes<HTMLDivElement>;\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<SignaturePadInstance | null>(null);\n const edited = useRef(value ?? defaultValue);\n const current = useLatest(value);\n const change = useLatest(onChange);\n const [, refresh] = useReducer((revision: number) => revision + 1, 0);\n useIsomorphicLayoutEffect(() => {\n const created = createSignaturePad(ref.current, {\n data: current.current ?? edited.current,\n label, hint, placeholder, color, width, disabled, readOnly, toolbar, name, historyLimit,\n onChange: (data, detail) => {\n edited.current = data;\n change.current?.(data, detail);\n // A render also reconciles an unchanged controlled prop when the owner rejects an edit.\n if (current.current !== undefined) refresh();\n },\n });\n instance.current = created;\n return () => {\n edited.current = created.exportData();\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [label, hint, placeholder, color, width, toolbar, name, historyLimit]);\n useIsomorphicLayoutEffect(() => {\n const created = instance.current;\n if (!created) return;\n created.setDisabled(Boolean(disabled));\n created.setReadOnly(Boolean(readOnly));\n }, [disabled, readOnly]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined) instance.current?.importData(value, false);\n });\n useIsomorphicLayoutEffect(() => {\n if (instanceRef) instanceRef.current = instance.current;\n return () => { if (instanceRef) instanceRef.current = null; };\n }, [instanceRef, label, hint, placeholder, color, width, toolbar, name, historyLimit]);\n return <div {...rootProps} ref={ref} className={['mk-signature-pad', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../react/use-recipe';\nimport { createWaveformPlayer, type WaveformPlayerInstance, type WaveformPlayerOptions } from './engine';\n\nexport interface WaveformPlayerProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onPlay' | 'onPause' | 'onEnded' | 'onError' | 'onTimeUpdate' | 'children' | 'dangerouslySetInnerHTML'>, WaveformPlayerOptions {\n instanceRef?: MutableRefObject<WaveformPlayerInstance | null>;\n}\nexport function WaveformPlayer({ src, peaks, label, disabled, playbackRates, onStateChange, onTimeUpdate, onPlay, onPause, onEnded, onError, instanceRef, className, ...props }: WaveformPlayerProps) {\n // The engine owns descendants. Also filter runtime JS props that bypass the public type.\n const { children: _children, dangerouslySetInnerHTML: _html, ...rootProps } = props as HTMLAttributes<HTMLDivElement>;\n const root = useRef<HTMLDivElement>(null);\n const instance = useRef<WaveformPlayerInstance | null>(null);\n useIsomorphicLayoutEffect(() => {\n const created = createWaveformPlayer(root.current);\n instance.current = created;\n return () => { created.destroy(); instance.current = null; };\n }, []);\n useIsomorphicLayoutEffect(() => {\n instance.current?.update({ src, peaks, label, disabled, playbackRates, onStateChange, onTimeUpdate, onPlay, onPause, onEnded, onError });\n });\n useIsomorphicLayoutEffect(() => {\n if (instanceRef) instanceRef.current = instance.current;\n return () => { if (instanceRef) instanceRef.current = null; };\n }, [instanceRef]);\n return <div {...rootProps} ref={root} className={['mk-waveform-player', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../react/use-recipe';\nimport { createVoiceMessageBubble, type VoiceMessageBubbleInstance, type VoiceMessageBubbleOptions } from './engine';\n\nexport interface VoiceMessageBubbleProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onPlay' | 'onPause' | 'onEnded' | 'onError' | 'onTimeUpdate' | 'children' | 'dangerouslySetInnerHTML'>, VoiceMessageBubbleOptions {\n instanceRef?: MutableRefObject<VoiceMessageBubbleInstance | null>;\n}\nexport function VoiceMessageBubble({ src, peaks, label, disabled, playbackRates, onStateChange, onTimeUpdate, onPlay, onPause, onEnded, onError, direction, author, timestamp, dateTime, status, instanceRef, className, ...props }: VoiceMessageBubbleProps) {\n // React must never reconcile descendants owned by the composed player engine.\n const { children: _children, dangerouslySetInnerHTML: _html, ...rootProps } = props as HTMLAttributes<HTMLDivElement>;\n const root = useRef<HTMLDivElement>(null);\n const instance = useRef<VoiceMessageBubbleInstance | null>(null);\n useIsomorphicLayoutEffect(() => {\n const created = createVoiceMessageBubble(root.current);\n instance.current = created;\n return () => { created.destroy(); instance.current = null; };\n }, []);\n useIsomorphicLayoutEffect(() => {\n instance.current?.update({ src, peaks, label, disabled, playbackRates, onStateChange, onTimeUpdate, onPlay, onPause, onEnded, onError, direction, author, timestamp, dateTime, status });\n });\n useIsomorphicLayoutEffect(() => {\n if (instanceRef) instanceRef.current = instance.current;\n return () => { if (instanceRef) instanceRef.current = null; };\n }, [instanceRef]);\n return <div {...rootProps} ref={root} className={['mk-voice-message-bubble', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\n\nimport { forwardRef, useImperativeHandle, useReducer, useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createDrilldownMenu, type DrilldownMenuInstance, type DrilldownMenuItem, type DrilldownMenuOptions } from './engine';\n\nexport interface DrilldownMenuProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'dangerouslySetInnerHTML' | 'onSelect'>, Omit<DrilldownMenuOptions, 'items' | 'path'> {\n items: DrilldownMenuItem[];\n /** Controlled branch path; pair with onPathChange. */\n path?: string[];\n /** Initial branch path when uncontrolled. */\n defaultPath?: string[];\n}\n\nexport type DrilldownMenuHandle = Pick<DrilldownMenuInstance, 'open' | 'back' | 'root' | 'reset' | 'setPath' | 'focusItem'>;\n\n/** Data-driven hierarchical actions with controlled or internal navigation. */\nexport const DrilldownMenu = forwardRef<DrilldownMenuHandle, DrilldownMenuProps>(function DrilldownMenu(\n { items, path, defaultPath, label, backLabel, emptyText, onSelect, onPathChange, className, ...props },\n handle,\n) {\n const { children: _children, dangerouslySetInnerHTML: _html, ...rootProps } = props as HTMLAttributes<HTMLDivElement>;\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<DrilldownMenuInstance | null>(null);\n const select = useLatest(onSelect);\n const changed = useLatest(onPathChange);\n const controlled = useLatest(path);\n const [, refresh] = useReducer((value: number) => value + 1, 0);\n useImperativeHandle(handle, () => ({\n open: (id) => instance.current?.open(id) ?? false,\n back: () => instance.current?.back() ?? false,\n root: () => instance.current?.root(),\n reset: () => instance.current?.reset(),\n setPath: (next, notify) => {\n instance.current?.setPath(next, notify);\n // Silent engine synchronization does not invoke onPathChange. Controlled\n // refs must still reconcile with the parent's current path on a render.\n if (controlled.current !== undefined) refresh();\n },\n focusItem: (id) => instance.current?.focusItem(id),\n }), []);\n const itemsKey = JSON.stringify(items);\n useIsomorphicLayoutEffect(() => {\n const created = createDrilldownMenu(ref.current, {\n items,\n path: path ?? defaultPath,\n label,\n backLabel,\n emptyText,\n onSelect: (item, selectedPath) => select.current?.(item, selectedPath),\n onPathChange: (next) => {\n changed.current?.(next);\n // Also render if a controlled parent declines the navigation request.\n if (controlled.current !== undefined) refresh();\n },\n });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // The engine owns its DOM for this mount; subsequent props update it below.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n useIsomorphicLayoutEffect(() => {\n // Controlled data and its path are one external model. Applying the path in\n // this update avoids repairing a stale level against replacement items.\n instance.current?.update({ items, label, backLabel, emptyText, ...(path !== undefined ? { path } : {}) });\n // JSON keys also catch edited data without forcing redraws on equal arrays.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [itemsKey, label, backLabel, emptyText]);\n useIsomorphicLayoutEffect(() => {\n if (path !== undefined) instance.current?.setPath(path);\n });\n return <div {...rootProps} ref={ref} className={['mk-drilldown-menu', className].filter(Boolean).join(' ')} />;\n});\n","'use client';\nimport { useReducer, useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createWheelPicker, type WheelPickerInstance, type WheelPickerOptions } from './engine';\n\nexport interface WheelPickerProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'onInput' | 'defaultValue' | 'children' | 'dangerouslySetInnerHTML'>, WheelPickerOptions {\n defaultValue?: string;\n instanceRef?: { current: WheelPickerInstance | null };\n}\nexport function WheelPicker({ items, value, defaultValue, name, label, disabled, visibleItems, itemHeight, onInput, onChange, instanceRef, className, ...props }: WheelPickerProps) {\n const ref = useRef<HTMLDivElement>(null), instance = useRef<WheelPickerInstance | null>(null);\n const changed = useLatest(onChange), input = useLatest(onInput), latestItems = useLatest(items);\n const controlled = useLatest(value);\n const [, refresh] = useReducer((revision: number) => revision + 1, 0);\n const last = useRef(value ?? defaultValue);\n useIsomorphicLayoutEffect(() => {\n const created = createWheelPicker(ref.current, { items: latestItems.current, value: value ?? last.current, name, label, disabled, visibleItems, itemHeight,\n onInput: next => { last.current = next; input.current?.(next); }, onChange: next => { last.current = next; changed.current?.(next); if (controlled.current !== undefined) refresh(); } });\n instance.current = created;\n return () => { last.current = created.value; created.destroy(); instance.current = null; };\n }, [name, label, disabled, visibleItems, itemHeight]);\n const key = JSON.stringify(items ?? []);\n useIsomorphicLayoutEffect(() => { instance.current?.setItems(items ?? []); }, [key]);\n useIsomorphicLayoutEffect(() => { if (value !== undefined) instance.current?.setValue(value); });\n useIsomorphicLayoutEffect(() => {\n if (instanceRef) instanceRef.current = instance.current;\n return () => { if (instanceRef) instanceRef.current = null; };\n }, [instanceRef, name, label, disabled, visibleItems, itemHeight]);\n const domProps: HTMLAttributes<HTMLDivElement> = { ...props };\n delete domProps.children; delete domProps.dangerouslySetInnerHTML;\n return <div {...domProps} ref={ref} className={['mk-wheel-picker', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createStepper, type StepperOptions, type StepperInstance } from './engine';\n\nexport interface StepperProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'onInput' | 'defaultValue' | 'children' | 'dangerouslySetInnerHTML'>, Omit<StepperOptions, 'value' | 'defaultValue'> {\n value?: number;\n defaultValue?: number;\n instanceRef?: MutableRefObject<StepperInstance | null>;\n /** The engine owns this component's DOM. */\n children?: never;\n dangerouslySetInnerHTML?: never;\n}\nexport function Stepper({ value, defaultValue, items, label, name, variant, linear, disabled, onChange, instanceRef, className, children: _children, dangerouslySetInnerHTML: _html, ...props }: StepperProps) {\n const root = useRef<HTMLDivElement>(null);\n const engine = useRef<StepperInstance | null>(null);\n const latestValue = useLatest(value);\n const change = useLatest(onChange);\n \n const baseline = useRef(value !== undefined ? value : defaultValue);\n const current = useRef(baseline.current);\n const reconcile = () => queueMicrotask(() => {\n if (latestValue.current !== undefined) engine.current?.setValue(latestValue.current, false);\n });\n useIsomorphicLayoutEffect(() => {\n const created = createStepper(root.current, {\n items, label, name, variant, linear, disabled, value: latestValue.current !== undefined ? latestValue.current : current.current, defaultValue: baseline.current,\n onChange: (next) => { change.current?.(next); reconcile(); },\n \n });\n engine.current = created;\n const form = root.current?.closest('form');\n const pending = new Set<ReturnType<typeof setTimeout>>();\n const reset = (event: Event) => {\n const timer = setTimeout(() => {\n pending.delete(timer);\n if (!event.defaultPrevented && latestValue.current !== undefined) created.setValue(latestValue.current, false);\n }, 0);\n pending.add(timer);\n };\n form?.addEventListener('reset', reset);\n return () => {\n form?.removeEventListener('reset', reset);\n pending.forEach((timer) => clearTimeout(timer));\n current.current = created.value; created.destroy(); engine.current = null;\n };\n // Callbacks and controlled value are read through refs.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items, label, name, variant, linear, disabled]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined) engine.current?.setValue(value, false);\n });\n useIsomorphicLayoutEffect(() => {\n if (!instanceRef) return;\n instanceRef.current = engine.current;\n return () => { instanceRef.current = null; };\n }, [instanceRef, items, label, name, variant, linear, disabled]);\n return <div {...props} ref={root} className={['mk-stepper', className].filter(Boolean).join(' ')} />;\n}\n\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createRadioGroup, type RadioGroupOptions, type RadioGroupInstance } from './engine';\n\nexport interface RadioGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'onInput' | 'defaultValue' | 'children' | 'dangerouslySetInnerHTML'>, Omit<RadioGroupOptions, 'value' | 'defaultValue'> {\n value?: string | null;\n defaultValue?: string | null;\n instanceRef?: MutableRefObject<RadioGroupInstance | null>;\n /** The engine owns this component's DOM. */\n children?: never;\n dangerouslySetInnerHTML?: never;\n}\nexport function RadioGroup({ value, defaultValue, items, name, label, disabled, required, error, variant, onChange, instanceRef, className, children: _children, dangerouslySetInnerHTML: _html, ...props }: RadioGroupProps) {\n const root = useRef<HTMLDivElement>(null);\n const engine = useRef<RadioGroupInstance | null>(null);\n const latestValue = useLatest(value);\n const change = useLatest(onChange);\n \n const baseline = useRef(value !== undefined ? value : defaultValue);\n const current = useRef(baseline.current);\n const reconcile = () => queueMicrotask(() => {\n if (latestValue.current !== undefined) engine.current?.setValue(latestValue.current, false);\n });\n useIsomorphicLayoutEffect(() => {\n const created = createRadioGroup(root.current, {\n items, name, label, disabled, required, error, variant, value: latestValue.current !== undefined ? latestValue.current : current.current, defaultValue: baseline.current,\n onChange: (next) => { change.current?.(next); reconcile(); },\n \n });\n engine.current = created;\n const form = root.current?.closest('form');\n const pending = new Set<ReturnType<typeof setTimeout>>();\n const reset = (event: Event) => {\n const timer = setTimeout(() => {\n pending.delete(timer);\n if (!event.defaultPrevented && latestValue.current !== undefined) created.setValue(latestValue.current, false);\n }, 0);\n pending.add(timer);\n };\n form?.addEventListener('reset', reset);\n return () => {\n form?.removeEventListener('reset', reset);\n pending.forEach((timer) => clearTimeout(timer));\n current.current = created.value; created.destroy(); engine.current = null;\n };\n // Callbacks and controlled value are read through refs.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items, name, label, disabled, required, error, variant]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined) engine.current?.setValue(value, false);\n });\n useIsomorphicLayoutEffect(() => {\n if (!instanceRef) return;\n instanceRef.current = engine.current;\n return () => { instanceRef.current = null; };\n }, [instanceRef, items, name, label, disabled, required, error, variant]);\n return <div {...props} ref={root} className={['mk-radio-group', className].filter(Boolean).join(' ')} />;\n}\n\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createEqualizerSlider, type EqualizerSliderOptions, type EqualizerSliderInstance } from './engine';\n\nexport interface EqualizerSliderProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'onInput' | 'defaultValue' | 'children' | 'dangerouslySetInnerHTML'>, Omit<EqualizerSliderOptions, 'value' | 'defaultValue'> {\n value?: number;\n defaultValue?: number;\n instanceRef?: MutableRefObject<EqualizerSliderInstance | null>;\n /** The engine owns this component's DOM. */\n children?: never;\n dangerouslySetInnerHTML?: never;\n}\nexport function EqualizerSlider({ value, defaultValue, min, max, step, label, name, disabled, error, formatValue, waveform, bars, onChange, onInput, instanceRef, className, children: _children, dangerouslySetInnerHTML: _html, ...props }: EqualizerSliderProps) {\n const root = useRef<HTMLDivElement>(null);\n const engine = useRef<EqualizerSliderInstance | null>(null);\n const latestValue = useLatest(value);\n const change = useLatest(onChange);\n const input = useLatest(onInput);\n const baseline = useRef(value !== undefined ? value : defaultValue);\n const current = useRef(baseline.current);\n const reconcile = () => queueMicrotask(() => {\n if (latestValue.current !== undefined) engine.current?.setValue(latestValue.current, false);\n });\n useIsomorphicLayoutEffect(() => {\n const created = createEqualizerSlider(root.current, {\n min, max, step, label, name, disabled, error, formatValue, waveform, bars, value: latestValue.current !== undefined ? latestValue.current : current.current, defaultValue: baseline.current,\n onChange: (next) => { change.current?.(next); reconcile(); },\n onInput: (next) => { input.current?.(next); if (input.current || !change.current) reconcile(); },\n });\n engine.current = created;\n const form = root.current?.closest('form');\n const pending = new Set<ReturnType<typeof setTimeout>>();\n const reset = (event: Event) => {\n const timer = setTimeout(() => {\n pending.delete(timer);\n if (!event.defaultPrevented && latestValue.current !== undefined) created.setValue(latestValue.current, false);\n }, 0);\n pending.add(timer);\n };\n form?.addEventListener('reset', reset);\n return () => {\n form?.removeEventListener('reset', reset);\n pending.forEach((timer) => clearTimeout(timer));\n current.current = created.value; created.destroy(); engine.current = null;\n };\n // Callbacks and controlled value are read through refs.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [min, max, step, label, name, disabled, error, formatValue, waveform, bars]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined) engine.current?.setValue(value, false);\n });\n useIsomorphicLayoutEffect(() => {\n if (!instanceRef) return;\n instanceRef.current = engine.current;\n return () => { instanceRef.current = null; };\n }, [instanceRef, min, max, step, label, name, disabled, error, formatValue, waveform, bars]);\n return <div {...props} ref={root} className={['mk-equalizer-slider', className].filter(Boolean).join(' ')} />;\n}\n\n","'use client';\r\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\r\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\r\nimport { createTemperatureSlider, type TemperatureSliderOptions, type TemperatureSliderInstance } from './engine';\r\n\r\nexport interface TemperatureSliderProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'onInput' | 'defaultValue' | 'children' | 'dangerouslySetInnerHTML'>, Omit<TemperatureSliderOptions, 'value' | 'defaultValue'> {\r\n value?: number;\r\n defaultValue?: number;\r\n instanceRef?: MutableRefObject<TemperatureSliderInstance | null>;\r\n /** The engine owns this component's DOM. */\r\n children?: never;\r\n dangerouslySetInnerHTML?: never;\r\n}\r\nexport function TemperatureSlider({ value, defaultValue, min, max, step, label, name, disabled, error, formatValue, unit, onChange, onInput, instanceRef, className, children: _children, dangerouslySetInnerHTML: _html, ...props }: TemperatureSliderProps) {\r\n const root = useRef<HTMLDivElement>(null);\r\n const engine = useRef<TemperatureSliderInstance | null>(null);\r\n const latestValue = useLatest(value);\r\n const change = useLatest(onChange);\r\n const input = useLatest(onInput);\r\n const baseline = useRef(value !== undefined ? value : defaultValue);\r\n const current = useRef(baseline.current);\r\n const reconcile = () => queueMicrotask(() => {\r\n if (latestValue.current !== undefined) engine.current?.setValue(latestValue.current, false);\r\n });\r\n useIsomorphicLayoutEffect(() => {\r\n const created = createTemperatureSlider(root.current, {\r\n min, max, step, label, name, disabled, error, formatValue, unit, value: latestValue.current !== undefined ? latestValue.current : current.current, defaultValue: baseline.current,\r\n onChange: (next) => { change.current?.(next); reconcile(); },\r\n onInput: (next) => { input.current?.(next); if (input.current || !change.current) reconcile(); },\r\n });\r\n engine.current = created;\r\n const form = root.current?.closest('form');\r\n const pending = new Set<ReturnType<typeof setTimeout>>();\r\n const reset = (event: Event) => {\r\n const timer = setTimeout(() => {\r\n pending.delete(timer);\r\n if (!event.defaultPrevented && latestValue.current !== undefined) created.setValue(latestValue.current, false);\r\n }, 0);\r\n pending.add(timer);\r\n };\r\n form?.addEventListener('reset', reset);\r\n return () => {\r\n form?.removeEventListener('reset', reset);\r\n pending.forEach((timer) => clearTimeout(timer));\r\n current.current = created.value; created.destroy(); engine.current = null;\r\n };\r\n // Callbacks and controlled value are read through refs.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [min, max, step, label, name, disabled, error, formatValue]);\r\n // A unit change converts and glides in place instead of remounting the slider.\r\n useIsomorphicLayoutEffect(() => {\r\n const next = unit === 'F' ? 'F' : 'C';\r\n if (engine.current && engine.current.unit !== next) engine.current.setUnit(next, { min, max, step });\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [unit]);\r\n useIsomorphicLayoutEffect(() => {\r\n if (value !== undefined) engine.current?.setValue(value, false);\r\n });\r\n useIsomorphicLayoutEffect(() => {\r\n if (!instanceRef) return;\r\n instanceRef.current = engine.current;\r\n return () => { instanceRef.current = null; };\r\n }, [instanceRef, min, max, step, label, name, disabled, error, formatValue]);\r\n return <div {...props} ref={root} className={['mk-temperature-slider', className].filter(Boolean).join(' ')} />;\r\n}\r\n\r\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createRatingScale, type RatingScaleOptions, type RatingScaleInstance } from './engine';\n\nexport interface RatingScaleProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'onInput' | 'defaultValue' | 'children' | 'dangerouslySetInnerHTML'>, Omit<RatingScaleOptions, 'value' | 'defaultValue'> {\n value?: number | null;\n defaultValue?: number | null;\n instanceRef?: MutableRefObject<RatingScaleInstance | null>;\n /** The engine owns this component's DOM. */\n children?: never;\n dangerouslySetInnerHTML?: never;\n}\nexport function RatingScale({ value, defaultValue, min, max, variant, labels, label, name, disabled, required, error, onChange, instanceRef, className, children: _children, dangerouslySetInnerHTML: _html, ...props }: RatingScaleProps) {\n const root = useRef<HTMLDivElement>(null);\n const engine = useRef<RatingScaleInstance | null>(null);\n const latestValue = useLatest(value);\n const change = useLatest(onChange);\n \n const baseline = useRef(value !== undefined ? value : defaultValue);\n const current = useRef(baseline.current);\n const reconcile = () => queueMicrotask(() => {\n if (latestValue.current !== undefined) engine.current?.setValue(latestValue.current, false);\n });\n useIsomorphicLayoutEffect(() => {\n const created = createRatingScale(root.current, {\n min, max, variant, labels, label, name, disabled, required, error, value: latestValue.current !== undefined ? latestValue.current : current.current, defaultValue: baseline.current,\n onChange: (next) => { change.current?.(next); reconcile(); },\n \n });\n engine.current = created;\n const form = root.current?.closest('form');\n const pending = new Set<ReturnType<typeof setTimeout>>();\n const reset = (event: Event) => {\n const timer = setTimeout(() => {\n pending.delete(timer);\n if (!event.defaultPrevented && latestValue.current !== undefined) created.setValue(latestValue.current, false);\n }, 0);\n pending.add(timer);\n };\n form?.addEventListener('reset', reset);\n return () => {\n form?.removeEventListener('reset', reset);\n pending.forEach((timer) => clearTimeout(timer));\n current.current = created.value; created.destroy(); engine.current = null;\n };\n // Callbacks and controlled value are read through refs.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [min, max, variant, labels, label, name, disabled, required, error]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined) engine.current?.setValue(value, false);\n });\n useIsomorphicLayoutEffect(() => {\n if (!instanceRef) return;\n instanceRef.current = engine.current;\n return () => { instanceRef.current = null; };\n }, [instanceRef, min, max, variant, labels, label, name, disabled, required, error]);\n return <div {...props} ref={root} className={['mk-rating-scale', className].filter(Boolean).join(' ')} />;\n}\n\n","'use client';\r\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\r\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\r\nimport { createNotificationStack, type NotificationStackOptions, type NotificationStackInstance } from './engine';\r\n\r\nexport interface NotificationStackProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'children' | 'dangerouslySetInnerHTML'>, NotificationStackOptions {\r\n instanceRef?: MutableRefObject<NotificationStackInstance | null>;\r\n children?: never;\r\n dangerouslySetInnerHTML?: never;\r\n}\r\nexport function NotificationStack({ items, expanded, direction, duration, disabled, label, labels, onDismiss, onAction, onExpandedChange, instanceRef, className, children, dangerouslySetInnerHTML: _html, ...props }: NotificationStackProps) {\r\n const root = useRef<HTMLDivElement>(null);\r\n const instance = useRef<NotificationStackInstance | null>(null);\r\n const onDismissRef = useLatest(onDismiss);\r\n const onActionRef = useLatest(onAction);\r\n const onExpandedChangeRef = useLatest(onExpandedChange);\r\n useIsomorphicLayoutEffect(() => {\r\n const created = createNotificationStack(root.current, { items, expanded, direction, duration, disabled, label, labels, onDismiss: (...args) => onDismissRef.current?.(...args), onAction: (...args) => onActionRef.current?.(...args), onExpandedChange: (...args) => onExpandedChangeRef.current?.(...args) });\r\n instance.current = created;\r\n return () => { created.destroy(); instance.current = null; };\r\n // Options update the existing engine so timers, selection and scroll state survive.\r\n }, []);\r\n useIsomorphicLayoutEffect(() => {\r\n instance.current?.setOptions({ items, expanded, direction, duration, disabled, label, labels });\r\n }, [items, expanded, direction, duration, disabled, label, labels]);\r\n useIsomorphicLayoutEffect(() => { if (instanceRef) instanceRef.current = instance.current; return () => { if (instanceRef) instanceRef.current = null; }; }, [instanceRef]);\r\n return <div {...props} ref={root} className={['mk-notification-stack', className].filter(Boolean).join(' ')}></div>;\r\n}\r\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createBentoGrid, type BentoGridOptions, type BentoGridInstance } from './engine';\n\nexport interface BentoGridProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>, BentoGridOptions {\n instanceRef?: MutableRefObject<BentoGridInstance | null>;\n\n}\nexport function BentoGrid({ columns, gap, filter, duration, onChange, instanceRef, className, children, ...props }: BentoGridProps) {\n const root = useRef<HTMLDivElement>(null);\n const instance = useRef<BentoGridInstance | null>(null);\n const onChangeRef = useLatest(onChange);\n useIsomorphicLayoutEffect(() => {\n const created = createBentoGrid(root.current, { columns, gap, filter, duration, onChange: (...args) => onChangeRef.current?.(...args) });\n instance.current = created;\n return () => { created.destroy(); instance.current = null; };\n // Options update the existing engine so timers, selection and scroll state survive.\n }, []);\n useIsomorphicLayoutEffect(() => {\n instance.current?.setOptions({ columns, gap, filter, duration });\n }, [columns, gap, filter, duration]);\n useIsomorphicLayoutEffect(() => { if (instanceRef) instanceRef.current = instance.current; return () => { if (instanceRef) instanceRef.current = null; }; }, [instanceRef]);\n return <div {...props} ref={root} className={['mk-bento-grid', className].filter(Boolean).join(' ')}>{children}</div>;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createScrollPreviewDock, type ScrollPreviewDockOptions, type ScrollPreviewDockInstance } from './engine';\n\nexport interface ScrollPreviewDockProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'children' | 'dangerouslySetInnerHTML'>, ScrollPreviewDockOptions {\n instanceRef?: MutableRefObject<ScrollPreviewDockInstance | null>;\n children?: never;\n dangerouslySetInnerHTML?: never;\n}\nexport function ScrollPreviewDock({ items, scroller, offset, label, disabled, onChange, instanceRef, className, children, dangerouslySetInnerHTML: _html, ...props }: ScrollPreviewDockProps) {\n const root = useRef<HTMLDivElement>(null);\n const instance = useRef<ScrollPreviewDockInstance | null>(null);\n const onChangeRef = useLatest(onChange);\n useIsomorphicLayoutEffect(() => {\n const created = createScrollPreviewDock(root.current, { items, scroller, offset, label, disabled, onChange: (...args) => onChangeRef.current?.(...args) });\n instance.current = created;\n return () => { created.destroy(); instance.current = null; };\n // Options update the existing engine so timers, selection and scroll state survive.\n }, []);\n useIsomorphicLayoutEffect(() => {\n instance.current?.setOptions({ items, scroller, offset, label, disabled });\n }, [items, scroller, offset, label, disabled]);\n useIsomorphicLayoutEffect(() => { if (instanceRef) instanceRef.current = instance.current; return () => { if (instanceRef) instanceRef.current = null; }; }, [instanceRef]);\n return <div {...props} ref={root} className={['mk-scroll-preview-dock', className].filter(Boolean).join(' ')}></div>;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createStickyHeader, type StickyHeaderOptions, type StickyHeaderInstance } from './engine';\n\nexport interface StickyHeaderProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>, StickyHeaderOptions {\n instanceRef?: MutableRefObject<StickyHeaderInstance | null>;\n\n}\nexport function StickyHeader({ scroller, expandedHeight, compactHeight, threshold, range, top, disabled, onChange, instanceRef, className, children, ...props }: StickyHeaderProps) {\n const root = useRef<HTMLDivElement>(null);\n const instance = useRef<StickyHeaderInstance | null>(null);\n const onChangeRef = useLatest(onChange);\n useIsomorphicLayoutEffect(() => {\n const created = createStickyHeader(root.current, { scroller, expandedHeight, compactHeight, threshold, range, top, disabled, onChange: (...args) => onChangeRef.current?.(...args) });\n instance.current = created;\n return () => { created.destroy(); instance.current = null; };\n // Options update the existing engine so timers, selection and scroll state survive.\n }, []);\n useIsomorphicLayoutEffect(() => {\n instance.current?.setOptions({ scroller, expandedHeight, compactHeight, threshold, range, top, disabled });\n }, [scroller, expandedHeight, compactHeight, threshold, range, top, disabled]);\n useIsomorphicLayoutEffect(() => { if (instanceRef) instanceRef.current = instance.current; return () => { if (instanceRef) instanceRef.current = null; }; }, [instanceRef]);\n return <div {...props} ref={root} className={['mk-sticky-header', className].filter(Boolean).join(' ')}><div data-mk-sticky-surface=\"\" className=\"mk-sticky-header__surface\">{children}</div></div>;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type Ref } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createHandwritingText, type HandwritingTextInstance, type HandwritingTextOptions } from './engine';\n\nexport interface HandwritingTextProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'children' | 'dangerouslySetInnerHTML' | 'onComplete'>, HandwritingTextOptions { instanceRef?: Ref<HandwritingTextInstance>; }\nexport function HandwritingText({ text = 'make it move.', duration, autoplay, onComplete, instanceRef, className, ...props }: HandwritingTextProps) {\n const { children: _children, dangerouslySetInnerHTML: _html, ...safe } = props as HTMLAttributes<HTMLSpanElement>;\n const root = useRef<HTMLSpanElement>(null);\n const instance = useRef<HandwritingTextInstance | null>(null);\n const latest = useLatest({ text, onComplete });\n useIsomorphicLayoutEffect(() => {\n const created = createHandwritingText(root.current, { text: latest.current.text, duration, autoplay, onComplete: () => latest.current.onComplete?.() });\n instance.current = created;\n return () => { created.destroy(); instance.current = null; };\n }, [duration, autoplay]);\n useIsomorphicLayoutEffect(() => { instance.current?.setText(text, autoplay !== false); }, [text, autoplay]);\n useIsomorphicLayoutEffect(() => {\n if (typeof instanceRef === 'function') instanceRef(instance.current); else if (instanceRef) instanceRef.current = instance.current;\n return () => { if (typeof instanceRef === 'function') instanceRef(null); else if (instanceRef) instanceRef.current = null; };\n }, [instanceRef, duration, autoplay]);\n return <span {...safe} ref={root} role=\"img\" aria-label={text} className={['mk-handwriting-text', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type ButtonHTMLAttributes, type Ref } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createParticleButton, type ParticleButtonInstance, type ParticleButtonOptions } from './engine';\n\nexport interface ParticleButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'dangerouslySetInnerHTML'>, ParticleButtonOptions { instanceRef?: Ref<ParticleButtonInstance>; }\nexport function ParticleButton({ label = 'Celebrar', count, distance, onAction, instanceRef, type = 'button', className, ...props }: ParticleButtonProps) {\n const { children: _children, dangerouslySetInnerHTML: _html, ...safe } = props as ButtonHTMLAttributes<HTMLButtonElement>;\n const root = useRef<HTMLButtonElement>(null);\n const instance = useRef<ParticleButtonInstance | null>(null);\n const action = useLatest(onAction);\n useIsomorphicLayoutEffect(() => {\n const created = createParticleButton(root.current, { label, count, distance, onAction: () => action.current?.() });\n instance.current = created;\n return () => { created.destroy(); instance.current = null; };\n }, [label, count, distance]);\n useIsomorphicLayoutEffect(() => {\n if (typeof instanceRef === 'function') instanceRef(instance.current); else if (instanceRef) instanceRef.current = instance.current;\n return () => { if (typeof instanceRef === 'function') instanceRef(null); else if (instanceRef) instanceRef.current = null; };\n }, [instanceRef, label, count, distance]);\n return <button {...safe} type={type} ref={root} className={['mk-particle-button', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type ButtonHTMLAttributes, type Ref } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createMagnetizeButton, type MagnetizeButtonInstance, type MagnetizeButtonOptions } from './engine';\n\nexport interface MagnetizeButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'dangerouslySetInnerHTML'>, MagnetizeButtonOptions { instanceRef?: Ref<MagnetizeButtonInstance>; }\nexport function MagnetizeButton({ label = 'Reunir ideas', count, reach, onAction, instanceRef, type = 'button', className, ...props }: MagnetizeButtonProps) {\n const { children: _children, dangerouslySetInnerHTML: _html, ...safe } = props as ButtonHTMLAttributes<HTMLButtonElement>;\n const root = useRef<HTMLButtonElement>(null);\n const instance = useRef<MagnetizeButtonInstance | null>(null);\n const action = useLatest(onAction);\n useIsomorphicLayoutEffect(() => {\n const created = createMagnetizeButton(root.current, { label, count, reach, onAction: () => action.current?.() });\n instance.current = created;\n return () => { created.destroy(); instance.current = null; };\n }, [label, count, reach]);\n useIsomorphicLayoutEffect(() => {\n if (typeof instanceRef === 'function') instanceRef(instance.current); else if (instanceRef) instanceRef.current = instance.current;\n return () => { if (typeof instanceRef === 'function') instanceRef(null); else if (instanceRef) instanceRef.current = null; };\n }, [instanceRef, label, count, reach]);\n return <button {...safe} type={type} ref={root} className={['mk-magnetize-button', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type ButtonHTMLAttributes, type Ref } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createBadgeButton, type BadgeButtonInstance, type BadgeButtonOptions } from './engine';\n\nexport interface BadgeButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'dangerouslySetInnerHTML' | 'onChange'>, BadgeButtonOptions {\n defaultCount?: number;\n instanceRef?: Ref<BadgeButtonInstance>;\n}\nexport function BadgeButton({ label = 'Guardar', count, defaultCount = 0, step, hideZero, max, onChange, instanceRef, type = 'button', className, ...props }: BadgeButtonProps) {\n const { children: _children, dangerouslySetInnerHTML: _html, ...safe } = props as ButtonHTMLAttributes<HTMLButtonElement>;\n const root = useRef<HTMLButtonElement>(null);\n const instance = useRef<BadgeButtonInstance | null>(null);\n const current = useLatest({ count, onChange });\n const retained = useRef(defaultCount);\n useIsomorphicLayoutEffect(() => {\n let created: BadgeButtonInstance;\n created = createBadgeButton(root.current, {\n label, count: current.current.count ?? retained.current, step, hideZero, max,\n onChange: (next) => { current.current.onChange?.(next); if (current.current.count !== undefined) created.setCount(current.current.count); },\n });\n instance.current = created;\n return () => { retained.current = created.count; created.destroy(); instance.current = null; };\n }, [label, step, hideZero, max]);\n useIsomorphicLayoutEffect(() => { if (count !== undefined) instance.current?.setCount(count); }, [count]);\n useIsomorphicLayoutEffect(() => {\n if (typeof instanceRef === 'function') instanceRef(instance.current); else if (instanceRef) instanceRef.current = instance.current;\n return () => { if (typeof instanceRef === 'function') instanceRef(null); else if (instanceRef) instanceRef.current = null; };\n }, [instanceRef, label, step, hideZero, max]);\n return <button {...safe} type={type} ref={root} className={['mk-badge-button', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type Ref } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createMorphingPageDots, type MorphingPageDotsInstance, type MorphingPageDotsOptions } from './engine';\n\nexport interface MorphingPageDotsProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'dangerouslySetInnerHTML' | 'onChange'>, MorphingPageDotsOptions {\n defaultValue?: number;\n instanceRef?: Ref<MorphingPageDotsInstance>;\n}\nexport function MorphingPageDots({ count, value, defaultValue = 0, label, labels, pageIds, disabled, onChange, instanceRef, className, ...props }: MorphingPageDotsProps) {\n const { children: _children, dangerouslySetInnerHTML: _html, ...safe } = props as HTMLAttributes<HTMLDivElement>;\n const root = useRef<HTMLDivElement>(null);\n const instance = useRef<MorphingPageDotsInstance | null>(null);\n const current = useLatest({ value, onChange });\n const retained = useRef(defaultValue);\n const labelsKey = JSON.stringify(labels); const pagesKey = JSON.stringify(pageIds);\n useIsomorphicLayoutEffect(() => {\n let created: MorphingPageDotsInstance;\n created = createMorphingPageDots(root.current, {\n count, value: current.current.value ?? retained.current, label, labels, pageIds, disabled,\n onChange: (next) => { current.current.onChange?.(next); if (current.current.value !== undefined) created.setValue(current.current.value); },\n });\n instance.current = created;\n return () => { retained.current = created.value; created.destroy(); instance.current = null; };\n }, [count, label, labelsKey, pagesKey, disabled]);\n useIsomorphicLayoutEffect(() => { if (value !== undefined) instance.current?.setValue(value); }, [value]);\n useIsomorphicLayoutEffect(() => {\n if (typeof instanceRef === 'function') instanceRef(instance.current); else if (instanceRef) instanceRef.current = instance.current;\n return () => { if (typeof instanceRef === 'function') instanceRef(null); else if (instanceRef) instanceRef.current = null; };\n }, [instanceRef, count, label, labelsKey, pagesKey, disabled]);\n return <div {...safe} ref={root} className={['mk-morphing-page-dots', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type Ref } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createNotFound, type NotFoundInstance, type NotFoundOptions } from './engine';\n\nexport interface NotFoundProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'dangerouslySetInnerHTML' | 'title'>, NotFoundOptions { instanceRef?: Ref<NotFoundInstance>; }\nexport function NotFound({ brand, title, description, homeHref, homeLabel, backLabel, showBack, onBack, instanceRef, className, ...props }: NotFoundProps) {\n const { children: _children, dangerouslySetInnerHTML: _html, ...safe } = props as HTMLAttributes<HTMLDivElement>;\n const root = useRef<HTMLDivElement>(null);\n const instance = useRef<NotFoundInstance | null>(null);\n const current = useLatest(onBack);\n const hasBack = Boolean(onBack);\n useIsomorphicLayoutEffect(() => {\n const created = createNotFound(root.current, { brand, title, description, homeHref, homeLabel, backLabel, showBack, onBack: hasBack ? () => current.current?.() : undefined });\n instance.current = created;\n return () => { created.destroy(); instance.current = null; };\n }, [brand, title, description, homeHref, homeLabel, backLabel, showBack, hasBack]);\n useIsomorphicLayoutEffect(() => {\n if (typeof instanceRef === 'function') instanceRef(instance.current); else if (instanceRef) instanceRef.current = instance.current;\n return () => { if (typeof instanceRef === 'function') instanceRef(null); else if (instanceRef) instanceRef.current = null; };\n }, [instanceRef, brand, title, description, homeHref, homeLabel, backLabel, showBack, hasBack]);\n return <div {...safe} ref={root} className={['mk-not-found', className].filter(Boolean).join(' ')} />;\n}\n"],"mappings":"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","names":["useRef","jsx","useRef","useRef","useState","jsx","useRef","useState","useEffect","useRef","useState","jsx","useState","useRef","useEffect","createContext","useContext","useMemo","useRef","useState","jsx","jsx","useState","useRef","useMemo","createContext","useContext","jsx","createContext","useContext","useRef","jsx","createContext","useContext","Root","Trigger","Content","useRef","useRef","jsx","useRef","useRef","jsx","useRef","Component","createContext","useContext","useRef","jsx","jsxs","createContext","Root","useRef","Component","useContext","useRef","Fragment","jsx","jsxs","useRef","createContext","useContext","useRef","jsx","createContext","Root","useRef","useContext","useRef","jsx","useRef","jsx","jsxs","useRef","jsx","jsxs","useRef","useRef","jsx","jsxs","useRef","useRef","jsx","jsxs","useRef","useRef","jsx","jsxs","useRef","useRef","jsx","jsxs","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","jsxs","useRef","useRef","jsx","jsxs","useRef","useRef","jsx","useRef","useRef","jsx","jsxs","useRef","useRef","useState","jsx","jsxs","useRef","useState","required","Fragment","useMemo","useRef","jsx","jsxs","useRef","useMemo","Fragment","useRef","jsx","jsxs","Root","useRef","createContext","useContext","useMemo","jsx","createContext","useContext","Root","Trigger","Content","useMemo","useEffect","useRef","useState","Fragment","jsx","jsxs","useState","useEffect","useRef","useRef","jsx","useRef","useRef","jsx","jsxs","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","Fragment","jsx","jsxs","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","jsxs","Root","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","keyOf","useRef","useRef","jsx","useRef","useRef","jsx","jsxs","Popover","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","keyOf","useRef","useRef","jsx","useRef","useRef","jsx","useRef","forwardRef","useImperativeHandle","useRef","jsx","forwardRef","ActivityFeed","useRef","useImperativeHandle","forwardRef","useImperativeHandle","useRef","jsx","forwardRef","TreeView","useRef","useImperativeHandle","animate","forwardRef","useImperativeHandle","useRef","jsx","forwardRef","FileExplorer","useRef","useImperativeHandle","forwardRef","useImperativeHandle","useRef","jsx","forwardRef","JsonViewer","useRef","useImperativeHandle","forwardRef","useImperativeHandle","useRef","useState","jsx","useRef","useState","useImperativeHandle","forwardRef","Children","forwardRef","useImperativeHandle","useRef","jsx","forwardRef","ResizablePanel","useRef","useImperativeHandle","animate","Children","forwardRef","useImperativeHandle","useRef","jsxs","forwardRef","SplitView","useRef","useImperativeHandle","animate","forwardRef","useImperativeHandle","useRef","jsx","useRef","useImperativeHandle","forwardRef","forwardRef","useImperativeHandle","useRef","jsx","useRef","useImperativeHandle","forwardRef","forwardRef","useImperativeHandle","useRef","jsx","forwardRef","RichTextEditor","useRef","useImperativeHandle","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","jsxs","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","useRef","jsx","jsx","jsx","jsx","jsx","useRef","jsx","jsxs","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","forwardRef","useImperativeHandle","useReducer","useRef","jsx","forwardRef","DrilldownMenu","useRef","useReducer","useImperativeHandle","useReducer","useRef","jsx","useRef","useReducer","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef"]}
1
+ {"version":3,"sources":["../../src/react/use-recipe.ts","../../src/react/use-spring-cards.ts","../../src/react/use-curved-carousel.ts","../../src/react/use-pile.ts","../../src/react/use-words.ts","../../src/react/use-flow.ts","../../src/react/use-pop.ts","../../src/react/use-fit-text.ts","../../src/react/use-stretch-footer.ts","../../src/react/use-radial-menu.ts","../../src/react/use-tabs.ts","../../src/react/use-counter.ts","../../src/react/use-details.ts","../../src/react/use-reveal.ts","../../src/react/use-reflow.ts","../../src/react/use-slot-text.ts","../../src/react/use-sortable.ts","../../src/react/use-mask-text.ts","../../src/react/use-cascade.ts","../../src/react/use-text-roll.ts","../../src/react/use-letters.ts","../../src/react/use-parallax.ts","../../src/react/use-depth-grid.ts","../../src/react/use-frame-zoom.ts","../../src/react/use-contrast.ts","../../src/react/use-marquee.ts","../../src/react/use-card-dock.ts","../../src/react/use-snap-strip.ts","../../src/react/use-fill-text.ts","../../src/react/use-ticket-menu.ts","../../src/react/use-infinite-reel.ts","../../src/react/use-repel-bento.ts","../../src/react/use-rotator.ts","../../src/react/use-drag-ruler.ts","../../src/react/use-dock-pill.ts","../../src/react/use-liquid-blend.ts","../../src/react/use-matcap.ts","../../src/react/use-shader-grain.ts","../../src/react/use-shader-blur.ts","../../src/react/use-particle-hero.ts","../../src/react/theme-provider.tsx","../../src/components/theme-picker/react.tsx","../../src/react/slot-text.tsx","../../src/react/animated-number.tsx","../../src/react/flip-group.tsx","../../src/components/dialog/react.tsx","../../src/components/icon.tsx","../../src/components/menu/react.tsx","../../src/components/toast/react.tsx","../../src/components/chat-background/react.tsx","../../src/components/chat/react.tsx","../../src/components/nav/react.tsx","../../src/components/steps/react.tsx","../../src/components/cursor/react.tsx","../../src/react/frost.tsx","../../src/components/island/react.tsx","../../src/components/quantity/react.tsx","../../src/components/pagination/react.tsx","../../src/components/hover-card/react.tsx","../../src/components/input-otp/react.tsx","../../src/react/use-joined-cta.ts","../../src/react/use-image-zoom.ts","../../src/react/use-font-cycle.ts","../../src/react/use-thumbnail-nav.ts","../../src/react/use-action-button.ts","../../src/react/use-film-hero.ts","../../src/react/use-editorial-reveal.ts","../../src/react/use-studio-dock.ts","../../src/react/use-trailer.ts","../../src/components/studio-dock/react.tsx","../../src/components/trailer/react.tsx","../../src/components/calendar/react.tsx","../../src/components/slot-picker/react.tsx","../../src/react/use-weight-hover.ts","../../src/react/use-sticker.ts","../../src/react/use-scroll-dock.ts","../../src/react/use-local-clock.ts","../../src/components/attachment/react.tsx","../../src/components/skeleton/react.tsx","../../src/components/questionnaire/react.tsx","../../src/components/code-block/react.tsx","../../src/components/context-menu/react.tsx","../../src/components/drawer/react.tsx","../../src/components/link-preview/react.tsx","../../src/components/progress/react.tsx","../../src/components/range-slider/react.tsx","../../src/components/chart/react.tsx","../../src/components/credit-card/react.tsx","../../src/components/command-search/react.tsx","../../src/components/hold-confirm/react.tsx","../../src/components/image-preview/react.tsx","../../src/components/like-button/react.tsx","../../src/components/notification-bell/react.tsx","../../src/components/password-strength/react.tsx","../../src/components/scratch-card/react.tsx","../../src/components/star-rating/react.tsx","../../src/components/swipe-actions/react.tsx","../../src/components/color-slider/react.tsx","../../src/components/color-area/react.tsx","../../src/components/color-field/react.tsx","../../src/components/color-picker/react.tsx","../../src/components/time-field/react.tsx","../../src/components/range-calendar/react.tsx","../../src/components/date-range-picker/react.tsx","../../src/components/tooltip/react.tsx","../../src/components/popover/react.tsx","../../src/components/loading-button/react.tsx","../../src/components/breadcrumb/react.tsx","../../src/components/empty-state/react.tsx","../../src/components/stat-card/react.tsx","../../src/components/chart-tooltip/react.tsx","../../src/components/multi-select/react.tsx","../../src/components/tag-input/react.tsx","../../src/components/date-time-picker/react.tsx","../../src/components/filter-builder/react.tsx","../../src/components/timeline/react.tsx","../../src/components/activity-feed/react.tsx","../../src/components/tree-view/react.tsx","../../src/components/file-explorer/react.tsx","../../src/components/json-viewer/react.tsx","../../src/components/virtual-list/react.tsx","../../src/components/resizable-panel/react.tsx","../../src/components/split-view/react.tsx","../../src/components/data-table/react.tsx","../../src/components/editable-table/react.tsx","../../src/components/rich-text-editor/react.tsx","../../src/components/select/react.tsx","../../src/components/add-to-cart/react.tsx","../../src/components/scroll-island/react.tsx","../../src/components/pill-button/react.tsx","../../src/components/toolbar/react.tsx","../../src/components/bidirectional-slider/react.tsx","../../src/components/voice-dots/react.tsx","../../src/components/chart/use-chart.ts","../../src/components/pie-chart/react.tsx","../../src/components/radar-chart/react.tsx","../../src/components/radial-chart/react.tsx","../../src/components/sankey-chart/react.tsx","../../src/components/heatmap-chart/react.tsx","../../src/components/orbit-menu/react.tsx","../../src/components/signature-pad/react.tsx","../../src/components/waveform-player/react.tsx","../../src/components/voice-message-bubble/react.tsx","../../src/components/drilldown-menu/react.tsx","../../src/components/wheel-picker/react.tsx","../../src/components/stepper/react.tsx","../../src/components/radio-group/react.tsx","../../src/components/equalizer-slider/react.tsx","../../src/components/temperature-slider/react.tsx","../../src/components/rating-scale/react.tsx","../../src/components/notification-stack/react.tsx","../../src/components/bento-grid/react.tsx","../../src/components/scroll-preview-dock/react.tsx","../../src/components/sticky-header/react.tsx","../../src/components/handwriting-text/react.tsx","../../src/components/particle-button/react.tsx","../../src/components/magnetize-button/react.tsx","../../src/components/badge-button/react.tsx","../../src/components/morphing-page-dots/react.tsx","../../src/components/not-found/react.tsx","../../src/components/scroll-area/react.tsx"],"sourcesContent":["'use client';\n\nimport { useEffect, useLayoutEffect, useRef, type DependencyList, type RefObject } from 'react';\nimport type { Instance } from '../core/types';\n\n/** useLayoutEffect in the browser (no flash), useEffect during SSR (no warning). */\nexport const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\n/**\n * Create a recipe on `ref.current` after mount and destroy it on unmount or when\n * `deps` change. Returns a ref holding the live instance (controls like `next()`).\n */\nexport function useRecipe<I extends Instance, O>(\n ref: RefObject<HTMLElement | null>,\n factory: (el: HTMLElement | null, options?: O) => I,\n options?: O,\n deps: DependencyList = [],\n): RefObject<I | null> {\n const instance = useRef<I | null>(null);\n useIsomorphicLayoutEffect(() => {\n const created = factory(ref.current, options);\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // Options are read once per creation; pass `deps` to recreate when they change.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, deps);\n return instance;\n}\n\n/** Keep the latest callback in a ref so recipes do not restart on every render. */\nexport function useLatest<T>(value: T) {\n const ref = useRef(value);\n ref.current = value;\n return ref;\n}\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createSpringCards, type SpringCardsOptions } from '../recipes/spring-cards/create-spring-cards';\n\nexport const useSpringCards = (ref: RefObject<HTMLElement | null>, options?: SpringCardsOptions, deps?: DependencyList) =>\n useRecipe(ref, createSpringCards, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useLatest, useRecipe } from './use-recipe';\nimport { createCurvedCarousel, type CurvedCarouselOptions } from '../recipes/curved-carousel/create-curved-carousel';\n\nexport function useCurvedCarousel(ref: RefObject<HTMLElement | null>, options: CurvedCarouselOptions = {}, deps?: DependencyList) {\n const onSelect = useLatest(options.onSelect);\n return useRecipe(ref, createCurvedCarousel, { ...options, onSelect: (index, slide) => onSelect.current?.(index, slide) }, deps);\n}\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createPile, type PileOptions } from '../recipes/pile/create-pile';\n\nexport const usePile = (ref: RefObject<HTMLElement | null>, options?: PileOptions, deps?: DependencyList) =>\n useRecipe(ref, createPile, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createWords, type WordsOptions } from '../recipes/words/create-words';\n\nexport const useWords = (ref: RefObject<HTMLElement | null>, options?: WordsOptions, deps?: DependencyList) =>\n useRecipe(ref, createWords, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createFlow, type FlowOptions } from '../recipes/flow/create-flow';\n\nexport const useFlow = (ref: RefObject<HTMLElement | null>, options?: FlowOptions, deps?: DependencyList) =>\n useRecipe(ref, createFlow, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createPop, type PopOptions } from '../recipes/pop/create-pop';\n\nexport const usePop = (ref: RefObject<HTMLElement | null>, options?: PopOptions, deps?: DependencyList) =>\n useRecipe(ref, createPop, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createFitText, type FitTextOptions } from '../recipes/fit-text/create-fit-text';\n\nexport const useFitText = (ref: RefObject<HTMLElement | null>, options?: FitTextOptions, deps?: DependencyList) =>\n useRecipe(ref, createFitText, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createStretchFooter, type StretchFooterOptions } from '../recipes/stretch-footer/create-stretch-footer';\n\nexport interface UseStretchFooterOptions extends Omit<StretchFooterOptions, 'phantom' | 'title'> {\n phantomRef?: RefObject<HTMLElement | null>;\n titleRef?: RefObject<HTMLElement | null>;\n}\n\nexport function useStretchFooter(ref: RefObject<HTMLElement | null>, options: UseStretchFooterOptions = {}, deps?: DependencyList) {\n const { phantomRef, titleRef, ...rest } = options;\n return useRecipe(\n ref,\n (el) => createStretchFooter(el, { ...rest, phantom: phantomRef?.current ?? undefined, title: titleRef?.current ?? undefined }),\n undefined,\n deps,\n );\n}\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useLatest, useRecipe } from './use-recipe';\nimport { createRadialMenu, type RadialMenuOptions } from '../recipes/radial-menu/create-radial-menu';\n\nexport function useRadialMenu(ref: RefObject<HTMLElement | null>, options: RadialMenuOptions = {}, deps?: DependencyList) {\n const onToggle = useLatest(options.onToggle);\n return useRecipe(ref, createRadialMenu, { ...options, onToggle: (open) => onToggle.current?.(open) }, deps);\n}\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useLatest, useRecipe } from './use-recipe';\nimport { createTabs, type TabsOptions } from '../recipes/tabs/create-tabs';\n\nexport function useTabs(ref: RefObject<HTMLElement | null>, options: TabsOptions = {}, deps?: DependencyList) {\n const onSelect = useLatest(options.onSelect);\n return useRecipe(ref, createTabs, { ...options, onSelect: (index, tab) => onSelect.current?.(index, tab) }, deps);\n}\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createCounter, type CounterOptions } from '../recipes/counter/create-counter';\n\nexport const useCounter = (ref: RefObject<HTMLElement | null>, options?: CounterOptions, deps?: DependencyList) =>\n useRecipe(ref, createCounter, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createDetails } from '../recipes/details/create-details';\n\nexport const useDetails = (ref: RefObject<HTMLElement | null>, deps?: DependencyList) => useRecipe(ref, createDetails, undefined, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createReveal, type RevealRecipeOptions } from '../recipes/reveal/create-reveal';\n\nexport const useReveal = (ref: RefObject<HTMLElement | null>, options?: RevealRecipeOptions, deps?: DependencyList) =>\n useRecipe(ref, createReveal, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createReflow, type ReflowOptions } from '../recipes/reflow/create-reflow';\n\n/** Call `.current.capture()` before the state change and `.current.play()` in a layout effect after it. */\nexport const useReflow = (ref: RefObject<HTMLElement | null>, options?: ReflowOptions, deps?: DependencyList) =>\n useRecipe(ref, createReflow, options, deps);\n","'use client';\n\nimport type { RefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useRecipe } from './use-recipe';\nimport { createSlotText, type SlotTextOptions } from '../recipes/slot-text/create-slot-text';\n\n/**\n * Rolls `text` into `ref` whenever it changes. The element must render no\n * children of its own: the recipe writes the letters (see `<SlotText>`).\n */\nexport function useSlotText(ref: RefObject<HTMLElement | null>, text: string, options: Omit<SlotTextOptions, 'text'> = {}) {\n const instance = useRecipe(ref, createSlotText, { ...options, text });\n useIsomorphicLayoutEffect(() => {\n instance.current?.set(text);\n }, [text]);\n return instance;\n}\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useLatest, useRecipe } from './use-recipe';\nimport { createSortable, type SortableOptions } from '../recipes/sortable/create-sortable';\n\n/**\n * Drag to reorder a list React renders: answer `onReorder` by updating your state\n * (React moves the DOM; the engine waits for it and lands the item). `mutate` is off.\n */\nexport function useSortable(ref: RefObject<HTMLElement | null>, options: SortableOptions = {}, deps?: DependencyList) {\n const onReorder = useLatest(options.onReorder);\n return useRecipe(ref, createSortable, { mutate: false, ...options, onReorder: (detail) => onReorder.current?.(detail) }, deps);\n}\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createMaskText, type MaskTextOptions } from '../recipes/mask-text/create-mask-text';\n\n/** Masked lines / words / letters rising into view. */\nexport const useMaskText = (ref: RefObject<HTMLElement | null>, options?: MaskTextOptions, deps?: DependencyList) =>\n useRecipe(ref, createMaskText, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createCascade, type CascadeOptions } from '../recipes/cascade/create-cascade';\n\n/** reveal group: rules, fades and rises one after another. */\nexport const useCascade = (ref: RefObject<HTMLElement | null>, options?: CascadeOptions, deps?: DependencyList) =>\n useRecipe(ref, createCascade, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createTextRoll, type TextRollOptions } from '../recipes/text-roll/create-text-roll';\n\n/** slot title. `.current.play()` spins it. */\nexport const useTextRoll = (ref: RefObject<HTMLElement | null>, options?: TextRollOptions, deps?: DependencyList) =>\n useRecipe(ref, createTextRoll, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createLetters, type LettersOptions } from '../recipes/letters/create-letters';\n\n/** hero letters (scale on hover or pastel blink). */\nexport const useLetters = (ref: RefObject<HTMLElement | null>, options?: LettersOptions, deps?: DependencyList) =>\n useRecipe(ref, createLetters, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createParallax, type ParallaxOptions } from '../recipes/parallax/create-parallax';\n\n/** photo parallax inside its frame. */\nexport const useParallax = (ref: RefObject<HTMLElement | null>, options?: ParallaxOptions, deps?: DependencyList) =>\n useRecipe(ref, createParallax, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createDepthGrid, type DepthGridOptions } from '../recipes/depth-grid/create-depth-grid';\n\n/** grid gathering from depth as it scrolls. */\nexport const useDepthGrid = (ref: RefObject<HTMLElement | null>, options?: DepthGridOptions, deps?: DependencyList) =>\n useRecipe(ref, createDepthGrid, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createFrameZoom, type FrameZoomOptions } from '../recipes/frame-zoom/create-frame-zoom';\n\n/** video mask: frame and picture scale in opposite directions. */\nexport const useFrameZoom = (ref: RefObject<HTMLElement | null>, options?: FrameZoomOptions, deps?: DependencyList) =>\n useRecipe(ref, createFrameZoom, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createContrast, type ContrastOptions } from '../recipes/contrast/create-contrast';\n\n/** header contrast from the section under it. */\nexport const useContrast = (ref: RefObject<HTMLElement | null>, options?: ContrastOptions, deps?: DependencyList) =>\n useRecipe(ref, createContrast, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createMarquee, type MarqueeOptions } from '../recipes/marquee/create-marquee';\n\n/** seamless marquee. */\nexport const useMarquee = (ref: RefObject<HTMLElement | null>, options?: MarqueeOptions, deps?: DependencyList) =>\n useRecipe(ref, createMarquee, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createCardDock, type CardDockOptions } from '../recipes/card-dock/create-card-dock';\n\n/** product dock (stacked glass cards that spread on hover). */\nexport const useCardDock = (ref: RefObject<HTMLElement | null>, options?: CardDockOptions, deps?: DependencyList) =>\n useRecipe(ref, createCardDock, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createSnapStrip, type SnapStripOptions } from '../recipes/snap-strip/create-snap-strip';\n\n/** phone cards: an autoplaying scroll-snap strip. */\nexport const useSnapStrip = (ref: RefObject<HTMLElement | null>, options?: SnapStripOptions, deps?: DependencyList) =>\n useRecipe(ref, createSnapStrip, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createFillText, type FillTextOptions } from '../recipes/fill-text/create-fill-text';\n\n/** fill-text: letters fill in as the text scrolls up. */\nexport const useFillText = (ref: RefObject<HTMLElement | null>, options?: FillTextOptions, deps?: DependencyList) =>\n useRecipe(ref, createFillText, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useLatest, useRecipe } from './use-recipe';\nimport { createTicketMenu, type TicketMenuOptions } from '../recipes/ticket-menu/create-ticket-menu';\n\nexport function useTicketMenu(ref: RefObject<HTMLElement | null>, options: TicketMenuOptions = {}, deps?: DependencyList) {\n const latest = useLatest(options);\n return useRecipe(ref, createTicketMenu, {\n ...options,\n onSelect: (value, item) => latest.current.onSelect?.(value, item),\n onOpen: () => latest.current.onOpen?.(),\n onClose: () => latest.current.onClose?.(),\n }, deps);\n}\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createInfiniteReel, type InfiniteReelOptions } from '../recipes/infinite-reel/create-infinite-reel';\n\nexport const useInfiniteReel = (ref: RefObject<HTMLElement | null>, options?: InfiniteReelOptions, deps?: DependencyList) =>\n useRecipe(ref, createInfiniteReel, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createRepelBento, type RepelBentoOptions } from '../recipes/repel-bento/create-repel-bento';\n\nexport const useRepelBento = (ref: RefObject<HTMLElement | null>, options?: RepelBentoOptions, deps?: DependencyList) =>\n useRecipe(ref, createRepelBento, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useLatest, useRecipe } from './use-recipe';\nimport { createRotator, type RotatorOptions } from '../recipes/rotator/create-rotator';\n\nexport function useRotator(ref: RefObject<HTMLElement | null>, options: RotatorOptions = {}, deps?: DependencyList) {\n const callback = useLatest(options.onChange);\n return useRecipe(ref, createRotator, { ...options, onChange: (index) => callback.current?.(index) }, deps);\n}\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useLatest, useRecipe } from './use-recipe';\nimport { createDragRuler, type DragRulerOptions } from '../recipes/drag-ruler/create-drag-ruler';\n\nexport function useDragRuler(ref: RefObject<HTMLElement | null>, options: DragRulerOptions = {}, deps?: DependencyList) {\n const callback = useLatest(options.onChange);\n return useRecipe(ref, createDragRuler, { ...options, onChange: (value) => callback.current?.(value) }, deps);\n}\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useLatest, useRecipe } from './use-recipe';\nimport { createDockPill, type DockPillOptions } from '../recipes/dock-pill/create-dock-pill';\n\nexport function useDockPill(ref: RefObject<HTMLElement | null>, options: DockPillOptions = {}, deps?: DependencyList) {\n const callback = useLatest(options.onSelect);\n return useRecipe(ref, createDockPill, { ...options, onSelect: (index, item) => callback.current?.(index, item) }, deps);\n}\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createLiquidBlend, type LiquidBlendOptions } from '../gl/liquid-blend/create-liquid-blend';\n\nexport const useLiquidBlend = (ref: RefObject<HTMLElement | null>, options?: LiquidBlendOptions, deps?: DependencyList) =>\n useRecipe(ref, createLiquidBlend, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createMatcap, type MatcapOptions } from '../gl/matcap/create-matcap';\n\nexport const useMatcap = (ref: RefObject<HTMLElement | null>, options?: MatcapOptions, deps?: DependencyList) =>\n useRecipe(ref, createMatcap, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createShaderGrain, type ShaderGrainOptions } from '../gl/shader-grain/create-shader-grain';\n\nexport const useShaderGrain = (ref: RefObject<HTMLElement | null>, options?: ShaderGrainOptions, deps?: DependencyList) =>\n useRecipe(ref, createShaderGrain, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createShaderBlur, type ShaderBlurOptions } from '../gl/shader-blur/create-shader-blur';\n\nexport const useShaderBlur = (ref: RefObject<HTMLElement | null>, options?: ShaderBlurOptions, deps?: DependencyList) =>\n useRecipe(ref, createShaderBlur, options, deps);\n","'use client';\n\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createParticleHero, type ParticleHeroOptions } from '../gl/particle-hero/create-particle-hero';\n\n/** particle hero (WebGL2, Canvas2D fallback). The canvas joins the ref's element. */\nexport const useParticleHero = (ref: RefObject<HTMLElement | null>, options?: ParticleHeroOptions, deps?: DependencyList) =>\n useRecipe(ref, createParticleHero, options, deps);\n","'use client';\n\nimport { createContext, useContext, useMemo, useState, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect } from './use-recipe';\nimport { DEFAULT_THEME } from '../theme/presets';\nimport { THEME_EVENT, initTheme, setMode, setTheme, type InitThemeOptions, type ThemeMode, type ThemeState } from '../theme/theme';\n\nexport interface ThemeContextValue extends ThemeState {\n setTheme: typeof setTheme;\n setMode: typeof setMode;\n}\n\nconst ThemeContext = createContext<ThemeContextValue | null>(null);\n\nexport interface ThemeProviderProps {\n children?: ReactNode;\n defaultTheme?: InitThemeOptions['default'];\n mode?: ThemeMode;\n storageKey?: string;\n}\n\n/**\n * Applies the stored (or default) theme on mount and shares it. Add\n * MK_THEME_HEAD_SCRIPT to <head> as well, so the first paint already has it.\n */\nexport function ThemeProvider({ children, defaultTheme, mode, storageKey }: ThemeProviderProps) {\n const [state, setState] = useState<ThemeState>(() => ({ id: defaultTheme ?? DEFAULT_THEME, mode: mode ?? 'system', resolved: 'light' }));\n useIsomorphicLayoutEffect(() => {\n const onChange = (event: Event) => setState((event as CustomEvent<ThemeState>).detail);\n document.addEventListener(THEME_EVENT, onChange);\n setState(initTheme({ default: defaultTheme, mode, storageKey }));\n return () => document.removeEventListener(THEME_EVENT, onChange);\n }, [defaultTheme, mode, storageKey]);\n const value = useMemo(() => ({ ...state, setTheme, setMode }), [state]);\n return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>;\n}\n\nexport function useTheme(): ThemeContextValue {\n const value = useContext(ThemeContext);\n if (!value) throw new Error('useTheme() needs a <ThemeProvider> above it');\n return value;\n}\n","'use client';\n\nimport { useRef, type CSSProperties } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createThemePicker, type ThemePickerOptions } from './engine';\n\nexport interface ThemePickerProps extends ThemePickerOptions {\n className?: string;\n style?: CSSProperties;\n /** Skip the base class (style it yourself). */\n unstyled?: boolean;\n}\n\n/** theme picker. Wrap the app in <ThemeProvider> to read the choice. */\nexport function ThemePicker({ className, style, unstyled, themes, showHidden, labels, onChange }: ThemePickerProps) {\n const ref = useRef<HTMLDivElement>(null);\n const change = useLatest(onChange);\n const themeKey = themes?.join(',');\n useIsomorphicLayoutEffect(() => {\n const picker = createThemePicker(ref.current, {\n themes: themeKey ? themeKey.split(',') : undefined,\n showHidden,\n labels,\n onChange: (id) => change.current?.(id),\n });\n return () => picker.destroy();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [themeKey, showHidden, labels?.group]);\n const classes = [unstyled ? null : 'mk-theme-picker', className].filter(Boolean).join(' ');\n return <div ref={ref} className={classes || undefined} style={style} />;\n}\n","'use client';\n\nimport { useRef, useState } from 'react';\nimport { useIsomorphicLayoutEffect } from './use-recipe';\nimport { createSlotText, type SlotTextInstance, type SlotTextOptions } from '../recipes/slot-text/create-slot-text';\n\nexport interface SlotTextProps extends Omit<SlotTextOptions, 'text' | 'accessibleCopy'> {\n text: string;\n className?: string;\n}\n\nconst escapeHtml = (text: string) => text.replace(/[&<>\"']/g, (c) => `&#${c.charCodeAt(0)};`);\n\n/**\n * Text whose letters roll when it changes. The server\n * renders the text itself; React never reconciles the letters (they belong to\n * the recipe), and screen readers read the plain copy.\n */\nexport function SlotText({ text, className, direction, duration, stagger, exitOffset, colorFade, maxTilt }: SlotTextProps) {\n const ref = useRef<HTMLSpanElement>(null);\n const instance = useRef<SlotTextInstance | null>(null);\n const [initial] = useState(text);\n // A stable object: React 19 re-applies innerHTML when this prop changes identity.\n const [html] = useState(() => ({ __html: escapeHtml(text) }));\n useIsomorphicLayoutEffect(() => {\n const created = createSlotText(ref.current, { direction, duration, stagger, exitOffset, colorFade, maxTilt, text: initial, accessibleCopy: false });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // The recipe is created once; the text is pushed below.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n useIsomorphicLayoutEffect(() => {\n instance.current?.set(text);\n }, [text]);\n return (\n <span className={className}>\n <span className=\"mk-sr-only\">{text}</span>\n <span ref={ref} aria-hidden=\"true\" dangerouslySetInnerHTML={html} />\n </span>\n );\n}\n","'use client';\n\nimport { useEffect, useRef, useState } from 'react';\nimport { tweenNumber } from '../motion/count';\n\nexport interface AnimatedNumberProps {\n value: number;\n /** How the shown value is written. Default: whole numbers. */\n format?: (shown: number) => string;\n /** Seconds. Default 0.6; prices use 0.7. */\n duration?: number;\n}\n\nconst whole = (shown: number) => String(Math.round(shown));\n\n/** A number that counts to each new value from the one shown. */\nexport function AnimatedNumber({ value, format = whole, duration }: AnimatedNumberProps) {\n const [shown, setShown] = useState(value);\n const current = useRef(value);\n useEffect(() => {\n const tween = tweenNumber(current.current, value, (next) => {\n current.current = next;\n setShown(next);\n }, { duration });\n return () => {\n tween?.kill();\n };\n }, [value, duration]);\n return <>{format(shown)}</>;\n}\n","'use client';\n\nimport { Component, type ReactNode, type RefObject } from 'react';\nimport { captureLayout, reflowLayout, type CapturedLayout } from '../motion/layout';\n\nexport interface FlipGroupProps {\n /** The list element. */\n root: RefObject<HTMLElement | null>;\n /** Items inside it; they need a stable `data-flip-id`. */\n selector?: string;\n /** Changes whenever the layout should animate (order, filter, grouping): e.g. the ids joined. */\n signature: string;\n children?: ReactNode;\n}\n\n/**\n * Plays layout reflow when `signature` changes: the layout is\n * measured just before React commits and the items travel from there. A class\n * component, because only `getSnapshotBeforeUpdate` reads the DOM before the commit.\n */\nexport class FlipGroup extends Component<FlipGroupProps> {\n private flip: ReturnType<typeof reflowLayout> = null;\n\n override getSnapshotBeforeUpdate(previous: Readonly<FlipGroupProps>): CapturedLayout | null {\n const node = this.props.root.current;\n if (previous.signature === this.props.signature || !node) return null;\n return captureLayout(node, this.props.selector ?? '[data-flip-id]');\n }\n\n override componentDidUpdate(_previous: unknown, _state: unknown, before: CapturedLayout | null) {\n const node = this.props.root.current;\n if (!before || !node) return;\n this.flip?.kill();\n this.flip = reflowLayout(node, this.props.selector ?? '[data-flip-id]', before);\n }\n\n override componentWillUnmount() {\n this.flip?.kill();\n }\n\n override render() {\n return this.props.children;\n }\n}\n","'use client';\n\nimport {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useRef,\n useState,\n type ButtonHTMLAttributes,\n type DialogHTMLAttributes,\n type HTMLAttributes,\n type MutableRefObject,\n type ReactNode,\n} from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { MkIcon } from '../icon';\nimport { createDialog, type DialogInstance, type DialogOptions } from './engine';\n\nexport { MkIcon };\n\nexport type SurfaceOptions = Omit<DialogOptions, 'onOpen' | 'onClose' | 'triggers'>;\n\nexport interface SurfaceContextValue<I> {\n open: boolean;\n setOpen: (open: boolean) => void;\n /** The control the next open grows from (set by the Trigger). */\n origin: MutableRefObject<HTMLElement | null>;\n instance: MutableRefObject<I | null>;\n options: SurfaceOptions;\n}\n\nexport interface SurfaceRootProps extends SurfaceOptions {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n children?: ReactNode;\n}\n\n/** Open state (controlled or not) shared by a surface's parts. Used by Dialog and Menu. */\nexport function useSurfaceRoot<I>({ open: controlled, defaultOpen = false, onOpenChange, children: _children, ...options }: SurfaceRootProps): SurfaceContextValue<I> {\n const [uncontrolled, setUncontrolled] = useState(defaultOpen);\n const open = controlled ?? uncontrolled;\n const current = useLatest(open);\n const change = useLatest(onOpenChange);\n const isControlled = controlled !== undefined;\n const setOpen = useCallback(\n (next: boolean) => {\n if (next === current.current) return;\n current.current = next;\n if (!isControlled) setUncontrolled(next);\n change.current?.(next);\n },\n [isControlled, current, change],\n );\n const origin = useRef<HTMLElement | null>(null);\n const instance = useRef<I | null>(null);\n const optionKey = JSON.stringify(options);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const stable = useMemo(() => options, [optionKey]);\n return useMemo(() => ({ open, setOpen, origin, instance, options: stable }), [open, setOpen, stable]);\n}\n\nconst DialogContext = createContext<SurfaceContextValue<DialogInstance> | null>(null);\n\nfunction useDialogContext(part: string) {\n const value = useContext(DialogContext);\n if (!value) throw new Error(`<Dialog.${part}> must be inside <Dialog.Root>`);\n return value;\n}\n\nfunction Root(props: SurfaceRootProps) {\n const value = useSurfaceRoot<DialogInstance>(props);\n return <DialogContext.Provider value={value}>{props.children}</DialogContext.Provider>;\n}\n\n/** A button that opens the dialog and is the shape it grows from. */\nfunction Trigger({ onClick, children, ...props }: ButtonHTMLAttributes<HTMLButtonElement>) {\n const context = useDialogContext('Trigger');\n return (\n <button\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={context.open}\n {...props}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n context.origin.current = event.currentTarget;\n context.setOpen(!context.open);\n }}\n >\n {children}\n </button>\n );\n}\n\nexport interface DialogContentProps extends Omit<DialogHTMLAttributes<HTMLDialogElement>, 'open'> {\n size?: 'sm' | 'md' | 'lg' | 'xl';\n /** Skip the base class (style it yourself). */\n unstyled?: boolean;\n}\n\n/**\n * Runs a surface engine on a <dialog> and follows the root's open state.\n * Shared with Menu (which passes its own engine).\n */\nexport function useSurfaceEngine<I extends DialogInstance>(\n context: SurfaceContextValue<I>,\n create: (dialog: HTMLDialogElement, options: DialogOptions) => I,\n) {\n const ref = useRef<HTMLDialogElement>(null);\n const setOpen = useLatest(context.setOpen);\n useIsomorphicLayoutEffect(() => {\n const dialog = ref.current;\n if (!dialog) return;\n const created = create(dialog, { ...context.options, triggers: false, onClose: () => setOpen.current(false) });\n context.instance.current = created;\n if (context.open) created.open(context.origin.current ?? undefined);\n return () => {\n created.destroy();\n context.instance.current = null;\n };\n // The engine is rebuilt only when its options change; open state is followed below.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [context.options]);\n useIsomorphicLayoutEffect(() => {\n const instance = context.instance.current;\n if (!instance) return;\n if (context.open && !instance.isOpen) {\n instance.open(context.origin.current ?? undefined);\n context.origin.current = null;\n } else if (!context.open && instance.isOpen) instance.close();\n }, [context.open]);\n return ref;\n}\n\nfunction Content({ size = 'md', unstyled, className, children, ...props }: DialogContentProps) {\n const context = useDialogContext('Content');\n const ref = useSurfaceEngine(context, createDialog);\n const classes = [unstyled ? null : 'mk-dialog', !unstyled && size !== 'md' ? `mk-dialog--${size}` : null, className].filter(Boolean).join(' ');\n return (\n <dialog ref={ref} className={classes || undefined} {...props}>\n {children}\n </dialog>\n );\n}\n\nconst partOf = (name: string) =>\n function Part({ children, ...props }: HTMLAttributes<HTMLElement>) {\n const Tag = (name === 'header' ? 'header' : name === 'footer' ? 'footer' : name === 'title' ? 'h2' : name === 'description' ? 'p' : 'div') as 'div';\n return (\n <Tag data-mk-part={name} {...props}>\n {children}\n </Tag>\n );\n };\n\nfunction Close({ children, label = 'Cerrar', ...props }: ButtonHTMLAttributes<HTMLButtonElement> & { label?: string }) {\n return (\n <button type=\"button\" data-mk-part=\"close\" aria-label={children ? undefined : label} {...props}>\n {children ?? <MkIcon name=\"close\" />}\n </button>\n );\n}\n\nfunction Handle({ children, ...props }: ButtonHTMLAttributes<HTMLButtonElement>) {\n return (\n <button type=\"button\" data-mk-part=\"handle\" {...props}>\n {children ?? <MkIcon name=\"expand\" size={18} />}\n </button>\n );\n}\n\n/**\n * dialog for React:\n * <Dialog.Root><Dialog.Trigger>Crear</Dialog.Trigger><Dialog.Content>\n * <Dialog.Header><Dialog.Title>…</Dialog.Title><Dialog.Close /></Dialog.Header>\n * <Dialog.Body>…</Dialog.Body><Dialog.Footer>…</Dialog.Footer>\n * </Dialog.Content></Dialog.Root>\n */\nexport const Dialog = {\n Root,\n Trigger,\n Content,\n Header: partOf('header'),\n Title: partOf('title'),\n Description: partOf('description'),\n Actions: partOf('actions'),\n Body: partOf('body'),\n Footer: partOf('footer'),\n Close,\n Handle,\n};\n\n/** The dialog instance of the surrounding <Dialog.Root> (open, close, float…). */\nexport function useDialog() {\n const context = useDialogContext('useDialog');\n return { open: context.open, setOpen: context.setOpen, instance: context.instance };\n}\n","import { ICON_PATHS, type IconName } from './icons';\n\n/** The same stroke icons the vanilla components use (aria-hidden). */\nexport function MkIcon({ name, size = 20 }: { name: IconName; size?: number }) {\n return (\n <svg aria-hidden=\"true\" width={size} height={size} viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2} strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d={ICON_PATHS[name]} />\n </svg>\n );\n}\n","'use client';\n\nimport { createContext, useContext, useRef, type ButtonHTMLAttributes, type DialogHTMLAttributes, type MutableRefObject, type ReactNode } from 'react';\nimport { useLatest } from '../../react/use-recipe';\nimport { useSurfaceEngine, useSurfaceRoot, type SurfaceContextValue, type SurfaceRootProps } from '../dialog/react';\nimport { createMenu, type MenuInstance } from './engine';\n\ninterface MenuContextValue extends SurfaceContextValue<MenuInstance> {\n ticket: boolean;\n onSelect: MutableRefObject<((value: string, item: HTMLElement) => void) | undefined>;\n closeOnSelect: boolean;\n}\n\nconst MenuContext = createContext<MenuContextValue | null>(null);\n\nfunction useMenuContext(part: string) {\n const value = useContext(MenuContext);\n if (!value) throw new Error(`<Menu.${part}> must be inside <Menu.Root>`);\n return value;\n}\n\nexport interface MenuRootProps extends Omit<SurfaceRootProps, 'placement' | 'backdrop' | 'drag' | 'autoResize'> {\n ticket?: boolean;\n onSelect?: (value: string, item: HTMLElement) => void;\n closeOnSelect?: boolean;\n children?: ReactNode;\n}\n\nfunction Root({ onSelect, closeOnSelect = true, ticket = false, children, ...props }: MenuRootProps) {\n const surface = useSurfaceRoot<MenuInstance>(props);\n const select = useLatest(onSelect);\n return <MenuContext.Provider value={{ ...surface, onSelect: select, closeOnSelect, ticket }}>{children}</MenuContext.Provider>;\n}\n\nfunction Trigger({ onClick, children, ...props }: ButtonHTMLAttributes<HTMLButtonElement>) {\n const context = useMenuContext('Trigger');\n return (\n <button\n type=\"button\"\n aria-haspopup=\"menu\"\n aria-expanded={context.open}\n {...props}\n onClick={(event) => {\n onClick?.(event);\n if (event.defaultPrevented) return;\n context.origin.current = event.currentTarget;\n context.setOpen(!context.open);\n }}\n >\n {children}\n </button>\n );\n}\n\nfunction Content({ className, children, ...props }: Omit<DialogHTMLAttributes<HTMLDialogElement>, 'open'>) {\n const context = useMenuContext('Content');\n const closeOnSelect = useRef(context.closeOnSelect);\n closeOnSelect.current = context.closeOnSelect;\n const ref = useSurfaceEngine(context, (dialog, options) =>\n createMenu(dialog, { ...options, ticket: context.ticket, closeOnSelect: closeOnSelect.current, onSelect: (value, item) => context.onSelect.current?.(value, item) }),\n );\n return (\n <dialog ref={ref} className={['mk-dialog mk-menu', className].filter(Boolean).join(' ')} {...props}>\n {children}\n </dialog>\n );\n}\n\nfunction Item({ value, children, ...props }: ButtonHTMLAttributes<HTMLButtonElement> & { value?: string }) {\n return (\n <button type=\"button\" data-mk-item=\"\" data-mk-value={value} {...props}>\n {children}\n </button>\n );\n}\n\nfunction Separator() {\n return <hr data-mk-separator=\"\" />;\n}\n\n/** options menu: <Menu.Root onSelect><Menu.Trigger/><Menu.Content><Menu.Item value/>…</Menu.Content></Menu.Root>. */\nexport const Menu = { Root, Trigger, Content, Item, Separator };\n","'use client';\n\nimport { useRef } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../react/use-recipe';\nimport { createToaster, type ToasterLabels } from './engine';\n\nexport interface ToasterProps {\n labels?: ToasterLabels;\n}\n\n/** toast deck. Mount once near the root; show toasts with `toast()`. */\nexport function Toaster({ labels }: ToasterProps) {\n const ref = useRef<HTMLDivElement>(null);\n const dismiss = labels?.dismiss;\n useIsomorphicLayoutEffect(() => {\n const toaster = createToaster(ref.current, { labels: { dismiss } });\n return () => toaster.destroy();\n }, [dismiss]);\n return <div ref={ref} className=\"mk-toaster\" />;\n}\n\nexport { toast, dismissToast, clearToasts, type ToastOptions, type ToastTone, type ToastAction } from './store';\n","'use client';\n\nimport { useRef, type CSSProperties } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../react/use-recipe';\nimport { createChatBackground, type ChatBackgroundInstance } from './engine';\n\nexport interface ChatBackgroundProps {\n /** 0…1 (the microphone's, see audioEnergy); onboarding's busy state goes to 1.6. */\n energy?: number;\n scale?: number;\n className?: string;\n style?: CSSProperties;\n}\n\n/** chat background. Put it first inside a positioned container. */\nexport function ChatBackground({ energy = 0, scale = 1, className, style }: ChatBackgroundProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<ChatBackgroundInstance | null>(null);\n useIsomorphicLayoutEffect(() => {\n const created = createChatBackground(ref.current, { energy, scale });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // Created once; energy and scale are pushed below.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n useIsomorphicLayoutEffect(() => {\n instance.current?.setEnergy(energy);\n }, [energy]);\n useIsomorphicLayoutEffect(() => {\n instance.current?.setScale(scale);\n }, [scale]);\n return <div ref={ref} className={['mk-chat-background', className].filter(Boolean).join(' ')} style={style} />;\n}\n","'use client';\n\nimport {\n Component,\n createContext,\n useContext,\n useRef,\n type ContextType,\n type HTMLAttributes,\n type MutableRefObject,\n type ReactNode,\n type TextareaHTMLAttributes,\n} from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { MkIcon } from '../icon';\nimport { TIMING } from '../../core/timing';\nimport { PENDING_ID, capturePending, createChat, morphPendingToReply, type ChatInstance, type ChatLabels, type ChatRole } from './engine';\n\ninterface ChatContextValue {\n instance: MutableRefObject<ChatInstance | null>;\n labels: ChatLabels;\n}\n\nconst ChatContext = createContext<ChatContextValue | null>(null);\n\nexport interface ChatRootProps extends HTMLAttributes<HTMLDivElement> {\n onSend?: (text: string) => void;\n animateExisting?: boolean;\n labels?: ChatLabels;\n children?: ReactNode;\n}\n\nfunction Root({ onSend, animateExisting, labels = {}, className, children, ...props }: ChatRootProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<ChatInstance | null>(null);\n const send = useLatest(onSend);\n useIsomorphicLayoutEffect(() => {\n const created = createChat(ref.current, { animateExisting, labels, onSend: (text) => send.current?.(text) });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // The engine is created once; callbacks are read through refs.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return (\n <ChatContext.Provider value={{ instance, labels }}>\n <div ref={ref} className={['mk-chat', className].filter(Boolean).join(' ')} {...props}>\n {children}\n </div>\n </ChatContext.Provider>\n );\n}\n\nexport interface ChatMessagesProps {\n /** Waiting for an answer: \"Pensando…\" shows after 500 ms and morphs into the next assistant message. */\n pending?: boolean;\n children?: ReactNode;\n}\n\ninterface MessagesState {\n showPending: boolean;\n}\n\ntype Snapshot = ReturnType<typeof capturePending>;\n\n/**\n * The message list. A class component: only getSnapshotBeforeUpdate can measure\n * the placeholder before React replaces it with the answer.\n */\nclass Messages extends Component<ChatMessagesProps, MessagesState> {\n static contextType = ChatContext;\n declare context: ContextType<typeof ChatContext>;\n state: MessagesState = { showPending: false };\n private list: HTMLDivElement | null = null;\n private timer: ReturnType<typeof setTimeout> | undefined;\n\n override componentDidMount() {\n if (this.props.pending) this.wait();\n }\n\n override componentDidUpdate(previous: ChatMessagesProps, _state: MessagesState, snapshot: Snapshot) {\n if (this.props.pending && !previous.pending) this.wait();\n if (!this.props.pending && previous.pending) {\n clearTimeout(this.timer);\n if (this.state.showPending) this.setState({ showPending: false });\n }\n if (!snapshot || !this.list) return;\n const answers = [...this.list.querySelectorAll<HTMLElement>('[data-mk-message][data-mk-role=\"assistant\"]:not([data-mk-pending])')];\n const reply = answers[answers.length - 1];\n if (!reply) return;\n this.context?.instance.current?.adopt(reply);\n morphPendingToReply(snapshot, reply, this.list);\n }\n\n override getSnapshotBeforeUpdate(previous: ChatMessagesProps): Snapshot {\n // The answer arrives as `pending` turns off: measure the placeholder while it is still there.\n if (!previous.pending || this.props.pending || !this.state.showPending || !this.list) return null;\n return capturePending(this.list.querySelector('[data-mk-pending]'));\n }\n\n override componentWillUnmount() {\n clearTimeout(this.timer);\n }\n\n private wait() {\n clearTimeout(this.timer);\n this.timer = setTimeout(() => {\n if (this.props.pending) this.setState({ showPending: true });\n }, TIMING.chat.pendingDelayMs);\n }\n\n override render() {\n const thinking = this.context?.labels.thinking ?? 'Pensando...';\n return (\n <div\n ref={(node) => {\n this.list = node;\n }}\n data-mk-part=\"messages\"\n >\n {this.props.children}\n {this.props.pending && this.state.showPending ? (\n <div data-mk-message=\"\" data-mk-role=\"assistant\" data-mk-pending=\"\" data-flip-id={PENDING_ID}>\n <span className=\"mk-chat__thinking\">\n <MkIcon name=\"sparkle\" size={18} />\n <span>{thinking}</span>\n </span>\n </div>\n ) : null}\n </div>\n );\n }\n}\n\nexport interface ChatMessageProps extends HTMLAttributes<HTMLDivElement> {\n role?: ChatRole;\n children?: ReactNode;\n}\n\nfunction Message({ role = 'assistant', children, ...props }: ChatMessageProps) {\n return (\n <div data-mk-message=\"\" data-mk-role={role} {...props}>\n <div data-mk-text=\"\">{children}</div>\n </div>\n );\n}\n\nexport interface ChatComposerProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {\n /** Extra buttons before send (a microphone…). */\n actions?: ReactNode;\n sendLabel?: string;\n}\n\nfunction Composer({ actions, sendLabel = 'Enviar', placeholder = 'Escribe un mensaje...', ...props }: ChatComposerProps) {\n return (\n <form data-mk-part=\"composer\">\n <textarea data-mk-part=\"input\" rows={1} placeholder={placeholder} aria-label={placeholder} {...props} />\n <div data-mk-part=\"buttons\">\n {actions}\n <button type=\"submit\" data-mk-part=\"send\" aria-label={sendLabel}>\n <MkIcon name=\"send\" size={22} />\n </button>\n </div>\n </form>\n );\n}\n\nfunction Confirm({ children, ...props }: HTMLAttributes<HTMLDivElement>) {\n const ref = useRef<HTMLDivElement>(null);\n const context = useContext(ChatContext);\n useIsomorphicLayoutEffect(() => {\n if (ref.current) context?.instance.current?.confirm(ref.current);\n // Plays once, when the bar appears.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return (\n <div ref={ref} data-mk-part=\"confirm\" {...props}>\n {children}\n </div>\n );\n}\n\n/**\n * chat: <Chat.Root onSend><ChatBackground /><Chat.Messages pending>{messages.map(m =>\n * <Chat.Message role>)}</Chat.Messages><Chat.Composer /></Chat.Root>.\n */\nexport const Chat = { Root, Messages, Message, Composer, Confirm };\n\n/** The chat engine of the surrounding <Chat.Root> (setRecording, scrollToLatest…). */\nexport function useChat() {\n const context = useContext(ChatContext);\n if (!context) throw new Error('useChat() needs a <Chat.Root> above it');\n return context.instance;\n}\n","'use client';\n\nimport { useRef, type HTMLAttributes, type MouseEvent, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../react/use-recipe';\nimport { revealShell, toNavStyle, type NavStyle, type NavStyleAlias } from './engine';\n\nexport interface NavItem {\n value: string;\n label: ReactNode;\n icon?: ReactNode;\n /** Render a link instead of a button. */\n href?: string;\n /** Hidden in the phone bar. */\n hideOnMobile?: boolean;\n}\n\nexport interface NavProps extends Omit<HTMLAttributes<HTMLElement>, 'onSelect'> {\n items: NavItem[];\n /** Value of the current page. */\n active?: string;\n onSelect?: (value: string, event: MouseEvent<HTMLElement>) => void;\n navStyle?: NavStyle | NavStyleAlias;\n accent?: boolean;\n /** Reveal the surrounding .mk-shell from the first button on mount. */\n reveal?: boolean;\n /** The top button (workspace, account…): give it className \"mk-nav__button mk-nav__button--first\". */\n first?: ReactNode;\n /** Buttons at the end (className \"mk-nav__button mk-nav__button--action\"). */\n actions?: ReactNode;\n}\n\n/** navigation. Put it inside a <div className=\"mk-shell\"> next to <main className=\"mk-shell__view\">. */\nexport function Nav({\n items,\n active,\n onSelect,\n navStyle = 'pills',\n accent = false,\n reveal = false,\n first,\n actions,\n className,\n ...props\n}: NavProps) {\n const ref = useRef<HTMLElement>(null);\n useIsomorphicLayoutEffect(() => {\n if (!reveal || !ref.current) return;\n const handle = revealShell(ref.current);\n return () => handle?.cancel();\n // Only on mount.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const classes = ['mk-nav', `mk-nav--${toNavStyle(navStyle) ?? 'pills'}`, accent && 'mk-nav--accent', className].filter(Boolean).join(' ');\n return (\n <nav ref={ref} aria-label=\"Principal\" {...props} className={classes}>\n {first}\n <div className=\"mk-nav__buttons\">\n {items.map((item) => {\n const shared = {\n className: 'mk-nav__button',\n 'aria-current': item.value === active ? ('page' as const) : undefined,\n 'data-mk-value': item.value,\n 'data-mk-hide-mobile': item.hideOnMobile ? '' : undefined,\n onClick: (event: MouseEvent<HTMLElement>) => onSelect?.(item.value, event),\n };\n const content = (\n <>\n {item.icon ? (\n <span className=\"mk-nav__icon\" aria-hidden=\"true\">\n {item.icon}\n </span>\n ) : null}\n <span className=\"mk-nav__name\">{item.label}</span>\n </>\n );\n return item.href ? (\n <a key={item.value} href={item.href} {...shared}>\n {content}\n </a>\n ) : (\n <button key={item.value} type=\"button\" {...shared}>\n {content}\n </button>\n );\n })}\n </div>\n {actions ? <div className=\"mk-nav__actions\">{actions}</div> : null}\n </nav>\n );\n}\n","'use client';\n\nimport {\n Children,\n createContext,\n isValidElement,\n useContext,\n useRef,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createSteps, type StepsInstance } from './engine';\n\ninterface StepsContextValue {\n /** The step shown on the first render: React sets `hidden` once, then the engine owns it. */\n initial: number;\n}\n\nconst StepsContext = createContext<StepsContextValue>({ initial: 0 });\nconst StepIndex = createContext(-1);\n\nexport interface StepsProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\n /** Current step (0-based). Changing it flows to that step. */\n index?: number;\n onChange?: (index: number, previous: number) => void;\n /** A step is working: the chat background inside speeds up. */\n busy?: boolean;\n duration?: number;\n children?: ReactNode;\n}\n\nfunction Root({ index = 0, onChange, busy = false, duration, className, children, ...props }: StepsProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<StepsInstance | null>(null);\n const initial = useRef(index);\n const change = useLatest(onChange);\n useIsomorphicLayoutEffect(() => {\n const created = createSteps(ref.current, { index: initial.current, duration, onChange: (i, previous) => change.current?.(i, previous) });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // Created once; index and busy are pushed below.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n useIsomorphicLayoutEffect(() => {\n void instance.current?.goTo(index);\n }, [index]);\n useIsomorphicLayoutEffect(() => {\n instance.current?.busy(busy);\n }, [busy]);\n let count = 0;\n const numbered = Children.map(children, (child) =>\n isValidElement(child) && child.type === Step ? <StepIndex.Provider value={count++}>{child}</StepIndex.Provider> : child,\n );\n return (\n <StepsContext.Provider value={{ initial: initial.current }}>\n <div ref={ref} className={['mk-steps', className].filter(Boolean).join(' ')} {...props}>\n {numbered}\n </div>\n </StepsContext.Provider>\n );\n}\n\nfunction Step({ children, ...props }: HTMLAttributes<HTMLElement>) {\n const { initial } = useContext(StepsContext);\n const index = useContext(StepIndex);\n return (\n <section data-mk-step=\"\" hidden={index !== initial} {...props}>\n {children}\n </section>\n );\n}\n\n/** The step number; the engine rolls it (React only writes the first value). */\nfunction Counter(props: HTMLAttributes<HTMLSpanElement>) {\n const { initial } = useContext(StepsContext);\n return (\n <span data-mk-counter=\"\" suppressHydrationWarning {...props}>\n {initial + 1}\n </span>\n );\n}\n\n/**\n * onboarding: <Steps index={i} busy={working}><ChatBackground /><Steps.Counter />\n * <Steps.Step><h2 data-mk-flow-item>…</h2></Steps.Step>…</Steps>. Steps must be direct children.\n */\nexport const Steps = Object.assign(Root, { Step, Counter });\n","'use client';\n\nimport { useRef } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../react/use-recipe';\nimport { createCursor, type CursorOptions, type CursorVariant } from './engine';\n\nexport interface CursorProps {\n /** 'chip' (default) or 'dot'. */\n variant?: CursorVariant;\n /** dot: the word when nothing under the pointer gives one. */\n text?: string;\n arrows?: CursorOptions['arrows'];\n /** CSS selector of the zone (dot: default the parent). */\n zone?: string;\n className?: string;\n}\n\n/** Put <Cursor /> once in the layout (chip), or inside the zone (dot). */\nexport function Cursor({ variant = 'chip', text, arrows, zone, className }: CursorProps) {\n const ref = useRef<HTMLDivElement>(null);\n useIsomorphicLayoutEffect(() => {\n const cursor = createCursor(ref.current, { variant, text, arrows, zone: zone ? document.querySelector(zone) : undefined });\n return () => cursor.destroy();\n }, [variant, text, arrows, zone]);\n return <div ref={ref} className={className} />;\n}\n","import type { CSSProperties } from 'react';\n\nexport interface FrostProps {\n /** Which edge the blur grows toward (default bottom). */\n position?: 'bottom' | 'top';\n /** Pin it to the window instead of the positioned parent. */\n fixed?: boolean;\n height?: number | string;\n /** Multiplies the five blurs (default 1). */\n strength?: number;\n className?: string;\n style?: CSSProperties;\n}\n\n/** progressive frost: five blur layers. Put it inside a positioned container (or use `fixed`). */\nexport function Frost({ position = 'bottom', fixed = false, height, strength, className, style }: FrostProps) {\n const vars: Record<string, string> = {};\n if (height !== undefined) vars['--mk-frost-height'] = typeof height === 'number' ? `${height}px` : height;\n if (strength !== undefined) vars['--mk-frost-strength'] = String(strength);\n return (\n <div\n aria-hidden=\"true\"\n className={['mk-frost', position === 'top' && 'mk-frost--top', fixed && 'mk-frost--fixed', className].filter(Boolean).join(' ')}\n style={{ ...style, ...vars } as CSSProperties}\n >\n <i />\n <i />\n <i />\n <i />\n <i />\n </div>\n );\n}\n","'use client';\n\nimport { useRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createIsland, type IslandInstance, type IslandOptions } from './engine';\n\nexport interface IslandPanel {\n name: string;\n /** Accessible name of its button. */\n label: string;\n /** Button content; the menu's nine dots by default. */\n icon?: ReactNode;\n /** Light button. */\n light?: boolean;\n content: ReactNode;\n}\n\nexport interface IslandProps extends Omit<HTMLAttributes<HTMLElement>, 'onChange'>, Omit<IslandOptions, 'onChange'> {\n brand?: ReactNode;\n /** The call to action that fades out while a panel is open. */\n cta?: { href: string; label: ReactNode };\n panels: IslandPanel[];\n /** Keep it (and its backdrop) inside a positioned parent instead of fixed over the page. */\n contained?: boolean;\n onChange?: (active: string | null) => void;\n /** Receives the live instance (open, close, toggle, ready). */\n instanceRef?: { current: IslandInstance | null };\n}\n\n/** The nine static dots of the island menu button. */\nexport function IslandDots() {\n return (\n <span className=\"mk-island__dots\" aria-hidden=\"true\">\n {Array.from({ length: 9 }, (_, i) => (\n <i key={i} />\n ))}\n </span>\n );\n}\n\n/** floating navbar. */\nexport function Island({\n brand,\n cta,\n panels,\n contained = false,\n entrance,\n closeOnScroll,\n closeOnNavigate,\n focusOnOpen,\n onChange,\n instanceRef,\n className,\n ...props\n}: IslandProps) {\n const ref = useRef<HTMLElement>(null);\n const change = useLatest(onChange);\n useIsomorphicLayoutEffect(() => {\n const instance = createIsland(ref.current, {\n entrance,\n closeOnScroll,\n closeOnNavigate,\n focusOnOpen,\n onChange: (active) => change.current?.(active),\n });\n if (instanceRef) instanceRef.current = instance;\n return () => {\n instance.destroy();\n if (instanceRef) instanceRef.current = null;\n };\n // The panels' names define the markup the engine reads.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [panels.map((panel) => panel.name).join(), entrance, closeOnScroll, closeOnNavigate, focusOnOpen]);\n const classes = ['mk-island', contained && 'mk-island--contained', className].filter(Boolean).join(' ');\n return (\n <nav ref={ref} aria-label=\"Principal\" {...props} className={classes}>\n <button type=\"button\" className=\"mk-island__backdrop\" data-mk-island-close tabIndex={-1} aria-label=\"Cerrar\" />\n <div className=\"mk-island__shell\">\n <div className=\"mk-island__glass\" aria-hidden=\"true\" />\n <div className=\"mk-island__header\">\n {brand ? <span className=\"mk-island__brand\">{brand}</span> : <span />}\n <div className=\"mk-island__actions\">\n {cta ? (\n <a className=\"mk-island__cta\" href={cta.href}>\n {cta.label}\n </a>\n ) : null}\n {panels.map((panel, i) => (\n <span key={panel.name} style={{ display: 'contents' }}>\n {i > 0 ? <span className=\"mk-island__separator\" aria-hidden=\"true\" /> : null}\n <button\n type=\"button\"\n className={panel.light ? 'mk-island__button mk-island__button--light' : 'mk-island__button'}\n data-mk-island-toggle={panel.name}\n aria-label={panel.label}\n >\n {panel.icon ?? <IslandDots />}\n </button>\n </span>\n ))}\n </div>\n </div>\n <div className=\"mk-island__content\">\n <div>\n {panels.map((panel) => (\n <section key={panel.name} className=\"mk-island__panel\" data-mk-island-panel={panel.name} aria-label={panel.label}>\n {panel.content}\n </section>\n ))}\n </div>\n </div>\n </div>\n </nav>\n );\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createQuantity, type QuantityOptions } from './engine';\nexport interface QuantityProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'>, QuantityOptions {\n label?: string; decreaseLabel?: string; increaseLabel?: string; name?: string;\n}\nexport function Quantity({ min, max, step, value, disabled, onChange, label = 'Cantidad', decreaseLabel = 'Disminuir', increaseLabel = 'Aumentar', name, className, ...props }: QuantityProps) {\n const ref = useRef<HTMLDivElement>(null);\n const edited = useRef<number | undefined>(undefined);\n const change = useLatest(onChange);\n useIsomorphicLayoutEffect(() => {\n const instance = createQuantity(ref.current, { min, max, step, value: value ?? edited.current, disabled, onChange: (n) => change.current?.(n) });\n return () => { edited.current = instance.value; instance.destroy(); };\n }, [min, max, step, value, disabled]);\n return <div {...props} ref={ref} className={['mk-quantity', className].filter(Boolean).join(' ')} role=\"group\" aria-label={label}>\n <button type=\"button\" data-mk-quantity-decrease aria-label={decreaseLabel}>−</button>\n <input data-mk-quantity-input type=\"number\" aria-label={label} name={name} defaultValue={value ?? min ?? 1} disabled={disabled} />\n <button type=\"button\" data-mk-quantity-increase aria-label={increaseLabel}>+</button>\n </div>;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createPagination, type PaginationOptions } from './engine';\nexport interface PaginationProps extends Omit<HTMLAttributes<HTMLElement>, 'onChange'>, PaginationOptions {\n previousLabel?: string; nextLabel?: string;\n}\nexport function Pagination({ totalPages, page, siblings, pageLabel, onChange, previousLabel = 'Página anterior', nextLabel = 'Página siguiente', className, ...props }: PaginationProps) {\n const ref = useRef<HTMLElement>(null);\n const selected = useRef<number | undefined>(undefined);\n const change = useLatest(onChange);\n const label = useLatest(pageLabel);\n useIsomorphicLayoutEffect(() => {\n const instance = createPagination(ref.current, { totalPages, page: page ?? selected.current, siblings, pageLabel: (n) => label.current?.(n) ?? `Página ${n}`, onChange: (n) => change.current?.(n) });\n return () => { selected.current = instance.page; instance.destroy(); };\n }, [totalPages, page, siblings, pageLabel]);\n return <nav aria-label=\"Paginación\" {...props} ref={ref} className={['mk-pagination', className].filter(Boolean).join(' ')}>\n <button type=\"button\" data-mk-pagination-previous aria-label={previousLabel}>←</button>\n <span data-mk-pagination-pages />\n <button type=\"button\" data-mk-pagination-next aria-label={nextLabel}>→</button>\n </nav>;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createHoverCard, type HoverCardOptions } from './engine';\nexport interface HoverCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>, HoverCardOptions {\n trigger: ReactNode; children: ReactNode; triggerLabel?: string; panelLabel?: string;\n}\nexport function HoverCard({ trigger, children, triggerLabel, panelLabel = 'Vista previa', openDelay, closeDelay, placement, onOpenChange, className, ...props }: HoverCardProps) {\n const ref = useRef<HTMLDivElement>(null);\n const change = useLatest(onOpenChange);\n useIsomorphicLayoutEffect(() => {\n const instance = createHoverCard(ref.current, { openDelay, closeDelay, placement, onOpenChange: (n) => change.current?.(n) });\n return () => instance.destroy();\n }, [openDelay, closeDelay, placement]);\n return <div {...props} ref={ref} className={['mk-hover-card', className].filter(Boolean).join(' ')}>\n <button type=\"button\" className=\"mk-button mk-button--tonal\" data-mk-hover-trigger aria-label={triggerLabel} aria-expanded=\"false\">{trigger}</button>\n <div data-mk-hover-panel role=\"region\" aria-label={panelLabel} hidden>{children}</div>\n </div>;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createInputOtp, type InputOtpOptions } from './engine';\nexport interface InputOtpProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'onComplete' | 'defaultValue'>, InputOtpOptions {\n label?: string; name?: string; disabled?: boolean; required?: boolean; invalid?: boolean; defaultValue?: string;\n}\nexport function InputOtp({ length, value, defaultValue, mask, onChange, onComplete, label = 'Código de verificación', name, disabled, required, invalid, className, ...props }: InputOtpProps) {\n const ref = useRef<HTMLDivElement>(null);\n const edited = useRef<string | undefined>(undefined);\n const change = useLatest(onChange);\n const complete = useLatest(onComplete);\n useIsomorphicLayoutEffect(() => {\n const instance = createInputOtp(ref.current, { length, value: value ?? edited.current, mask, onChange: (n) => change.current?.(n), onComplete: (n) => complete.current?.(n) });\n return () => { edited.current = instance.value; instance.destroy(); };\n }, [length, value, mask]);\n return <div {...props} ref={ref} className={['mk-input-otp', className].filter(Boolean).join(' ')}>\n <span data-mk-otp-slots aria-hidden=\"true\" />\n <input data-mk-otp-input type=\"text\" aria-label={label} name={name} defaultValue={value ?? defaultValue ?? ''} disabled={disabled} required={required} aria-invalid={invalid || undefined} />\n </div>;\n}\n","'use client';\nimport type { RefObject, DependencyList } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createJoinedCta, type JoinedCtaOptions } from '../recipes/joined-cta/create-joined-cta';\nexport const useJoinedCta = (ref: RefObject<HTMLElement | null>, options?: JoinedCtaOptions, deps?: DependencyList) => useRecipe(ref, createJoinedCta, options, deps);\n","'use client';\nimport type { RefObject, DependencyList } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createImageZoom, type ImageZoomOptions } from '../recipes/image-zoom/create-image-zoom';\nexport const useImageZoom = (ref: RefObject<HTMLElement | null>, options?: ImageZoomOptions, deps?: DependencyList) => useRecipe(ref, createImageZoom, options, deps);\n","'use client';\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createFontCycle, type FontCycleOptions } from '../recipes/font-cycle/create-font-cycle';\n\nexport const useFontCycle = (ref: RefObject<HTMLElement | null>, options?: FontCycleOptions, deps?: DependencyList) =>\n useRecipe(ref, createFontCycle, options, deps);\n","'use client';\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createThumbnailNav, type ThumbnailNavOptions } from '../recipes/thumbnail-nav/create-thumbnail-nav';\n\nexport const useThumbnailNav = (ref: RefObject<HTMLElement | null>, options?: ThumbnailNavOptions, deps?: DependencyList) =>\n useRecipe(ref, createThumbnailNav, options, deps);\n","'use client';\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createActionButton, type ActionButtonOptions } from '../recipes/action-button/create-action-button';\nexport const useActionButton = (ref: RefObject<HTMLElement | null>, options?: ActionButtonOptions, deps?: DependencyList) =>\n useRecipe(ref, createActionButton, options, deps);\n","'use client';\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createFilmHero, type FilmHeroOptions } from '../recipes/film-hero/create-film-hero';\nexport const useFilmHero = (ref: RefObject<HTMLElement | null>, options?: FilmHeroOptions, deps?: DependencyList) =>\n useRecipe(ref, createFilmHero, options, deps);\n","'use client';\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createEditorialReveal, type EditorialRevealOptions } from '../recipes/editorial-reveal/create-editorial-reveal';\nexport function useEditorialReveal(ref: RefObject<HTMLElement | null>, options: EditorialRevealOptions = {}, deps?: DependencyList) {\n return useRecipe(ref, createEditorialReveal, options, deps);\n}\n","'use client';\nimport type { DependencyList, RefObject } from 'react';\nimport { useLatest, useRecipe } from './use-recipe';\nimport { createStudioDock, type StudioDockOptions } from '../components/studio-dock/engine';\nexport function useStudioDock(ref: RefObject<HTMLElement | null>, options: StudioDockOptions = {}, deps?: DependencyList) {\n const change = useLatest(options.onChange);\n return useRecipe(ref, createStudioDock, { ...options, onChange: state => change.current?.(state) }, deps);\n}\n","'use client';\nimport type { DependencyList, RefObject } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createTrailer, type TrailerOptions } from '../components/trailer/engine';\nexport const useTrailer = (ref: RefObject<HTMLElement | null>, options?: TrailerOptions, deps?: DependencyList) =>\n useRecipe(ref, createTrailer, options, deps);\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createStudioDock, type StudioDockInstance, type StudioDockOptions } from './engine';\n\nexport interface StudioDockProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>, StudioDockOptions {\n /** Default stays inside its positioned demo/app panel. */\n fixed?: boolean;\n instanceRef?: { current: StudioDockInstance | null };\n}\n/** Composable light-DOM shell; use the data-mk-studio-* slots shown in the README. */\nexport function StudioDock({ duration, ease, focusOnOpen, trapFocus, onChange, fixed = false, instanceRef, className, children, ...props }: StudioDockProps) {\n const ref = useRef<HTMLDivElement>(null);\n const change = useLatest(onChange);\n useIsomorphicLayoutEffect(() => {\n const instance = createStudioDock(ref.current, { duration, ease, focusOnOpen, trapFocus, onChange: state => change.current?.(state) });\n if (instanceRef) instanceRef.current = instance;\n return () => { instance.destroy(); if (instanceRef) instanceRef.current = null; };\n }, [duration, ease, focusOnOpen, trapFocus]);\n return <div {...props} ref={ref} className={['mk-studio-dock', fixed && 'mk-studio-dock--fixed', className].filter(Boolean).join(' ')}>{children}</div>;\n}\n\nexport { useStudioDock } from '../../react/use-studio-dock';\n","'use client';\nimport { useRef, type DialogHTMLAttributes } from 'react';\nimport { useRecipe } from '../../react/use-recipe';\nimport { createTrailer, type TrailerOptions } from './engine';\n\nexport interface TrailerProps extends Omit<DialogHTMLAttributes<HTMLDialogElement>, 'open' | 'onClose'> {\n options?: TrailerOptions;\n}\n/** Consumer supplies <video>, optional controls and tracks; no remote media is injected. */\nexport function Trailer({ options, className, children, ...props }: TrailerProps) {\n const ref = useRef<HTMLDialogElement>(null);\n useRecipe(ref, createTrailer, options);\n return <dialog {...props} ref={ref} className={['mk-trailer', className].filter(Boolean).join(' ')}>{children}</dialog>;\n}\n\nexport { useTrailer } from '../../react/use-trailer';\n","'use client';\n\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createCalendar, type CalendarInstance, type CalendarOptions, type CalendarView } from './engine';\nimport type { DateInput } from '../../core/dates';\n\nexport interface CalendarProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect'>, CalendarOptions {\n /** Hide the month/week switch. */\n hideViews?: boolean;\n labels?: CalendarOptions['labels'] & { previous?: string; next?: string; today?: string; month?: string; week?: string };\n}\n\nexport function Calendar({\n date, view, firstDay, locale, events, maxEvents, selected, today, labels, onSelect, onEventClick, onNavigate,\n hideViews, className, ...props\n}: CalendarProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<CalendarInstance | null>(null);\n const kept = useRef<{ date?: DateInput; view?: CalendarView; selected?: DateInput | null }>({});\n const select = useLatest(onSelect);\n const eventClick = useLatest(onEventClick);\n const navigate = useLatest(onNavigate);\n useIsomorphicLayoutEffect(() => {\n const created = createCalendar(ref.current, {\n date: date ?? kept.current.date,\n view: view ?? kept.current.view,\n selected: selected !== undefined ? selected : kept.current.selected,\n firstDay, locale, events, maxEvents, today, labels,\n onSelect: (d) => select.current?.(d),\n onEventClick: (e) => eventClick.current?.(e),\n onNavigate: (r) => navigate.current?.(r),\n });\n instance.current = created;\n return () => {\n kept.current = { date: created.date, view: created.view, selected: created.selected };\n created.destroy();\n instance.current = null;\n };\n // Events and selection update in place; the rest recreates the grid.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [date, view, firstDay, locale, maxEvents, today]);\n // Re-index only when the events' content changes, not on every new array identity.\n const eventsKey = JSON.stringify(events ?? []);\n const firstEvents = useRef(true);\n useIsomorphicLayoutEffect(() => {\n if (firstEvents.current) { firstEvents.current = false; return; }\n instance.current?.setEvents(events ?? []);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [eventsKey]);\n useIsomorphicLayoutEffect(() => { if (selected !== undefined) instance.current?.select(selected, false); }, [selected]);\n return (\n <div {...props} ref={ref} className={['mk-calendar', className].filter(Boolean).join(' ')}>\n <div className=\"mk-calendar__header\">\n <h3 className=\"mk-calendar__title\" data-mk-calendar-title />\n {!hideViews && (\n <div className=\"mk-calendar__views\" role=\"group\" aria-label=\"Vista\">\n <button type=\"button\" data-mk-calendar-view=\"month\">{labels?.month ?? 'Mes'}</button>\n <button type=\"button\" data-mk-calendar-view=\"week\">{labels?.week ?? 'Semana'}</button>\n </div>\n )}\n <button type=\"button\" className=\"mk-calendar__nav\" data-mk-calendar-prev aria-label={labels?.previous ?? 'Anterior'}>←</button>\n <button type=\"button\" className=\"mk-calendar__nav\" data-mk-calendar-today>{labels?.today ?? 'Hoy'}</button>\n <button type=\"button\" className=\"mk-calendar__nav\" data-mk-calendar-next aria-label={labels?.next ?? 'Siguiente'}>→</button>\n </div>\n <div data-mk-calendar-grid />\n </div>\n );\n}\n","'use client';\n\nimport { useRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createSlotPicker, type SlotPickerInstance, type SlotPickerOptions } from './engine';\n\nexport interface SlotPickerProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>, SlotPickerOptions {\n /** Form field name: a hidden input carries \"YYYY-MM-DDTHH:mm\". */\n name?: string;\n labels?: SlotPickerOptions['labels'] & { previous?: string; next?: string };\n /** Rendered under the times (e.g. a submit button). */\n actions?: ReactNode;\n}\n\nexport function SlotPicker({\n date, value, slots, min, max, closedDays, isDisabled, firstDay, locale, labels, onChange, onDateChange,\n name, actions, className, ...props\n}: SlotPickerProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<SlotPickerInstance | null>(null);\n const kept = useRef<string | Date | null>(null);\n const change = useLatest(onChange);\n const dateChange = useLatest(onDateChange);\n const disabledFn = useLatest(isDisabled);\n // A function source is read through a ref (inline functions do not reload);\n // lists and maps reload when their content changes.\n const source = useLatest(slots);\n const slotsKey = typeof slots === 'function' ? 'function' : JSON.stringify(slots ?? []);\n const stable = () => {\n const current = source.current;\n return typeof current === 'function' ? (d: Date) => (source.current as (day: Date) => string[] | Promise<string[]>)(d) : current ?? [];\n };\n useIsomorphicLayoutEffect(() => {\n const keep = kept.current;\n const created = createSlotPicker(ref.current, {\n date: date ?? (keep instanceof Date ? keep : undefined),\n value: value !== undefined ? value : typeof keep === 'string' ? keep : undefined,\n slots: stable(), min, max, closedDays, firstDay, locale, labels,\n isDisabled: (d) => disabledFn.current?.(d) ?? false,\n onChange: (v) => change.current?.(v),\n onDateChange: (d) => dateChange.current?.(d),\n });\n instance.current = created;\n return () => {\n kept.current = created.value ?? created.date;\n created.destroy();\n instance.current = null;\n };\n // `slots` updates in place; the rest recreates the picker.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [date, value, min, max, firstDay, locale, JSON.stringify(closedDays ?? [])]);\n const firstSlots = useRef(true);\n useIsomorphicLayoutEffect(() => {\n if (firstSlots.current) { firstSlots.current = false; return; }\n instance.current?.setSlots(stable());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [slotsKey]);\n return (\n <div {...props} ref={ref} className={['mk-slot-picker', className].filter(Boolean).join(' ')}>\n <div className=\"mk-slot-picker__calendar\">\n <div className=\"mk-slot-picker__month\">\n <h3 className=\"mk-slot-picker__title\" data-mk-slot-title />\n <button type=\"button\" className=\"mk-slot-picker__nav\" data-mk-slot-prev aria-label={labels?.previous ?? 'Mes anterior'}>←</button>\n <button type=\"button\" className=\"mk-slot-picker__nav\" data-mk-slot-next aria-label={labels?.next ?? 'Mes siguiente'}>→</button>\n </div>\n <div data-mk-slot-days />\n </div>\n <div className=\"mk-slot-picker__panel\">\n <p className=\"mk-slot-picker__heading\" data-mk-slot-heading />\n <div data-mk-slot-times />\n {name && <input type=\"hidden\" name={name} data-mk-slot-value />}\n {actions && <div className=\"mk-slot-picker__actions\">{actions}</div>}\n </div>\n </div>\n );\n}\n","'use client';\nimport type { RefObject, DependencyList } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createWeightHover, type WeightHoverOptions } from '../recipes/weight-hover/create-weight-hover';\nexport const useWeightHover = (ref: RefObject<HTMLElement | null>, options?: WeightHoverOptions, deps?: DependencyList) => useRecipe(ref, createWeightHover, options, deps);\n","'use client';\nimport type { RefObject, DependencyList } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createSticker, type StickerOptions } from '../recipes/sticker/create-sticker';\nexport const useSticker = (ref: RefObject<HTMLElement | null>, options?: StickerOptions, deps?: DependencyList) => useRecipe(ref, createSticker, options, deps);\n","'use client';\nimport type { RefObject, DependencyList } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createScrollDock, type ScrollDockOptions } from '../recipes/scroll-dock/create-scroll-dock';\nexport const useScrollDock = (ref: RefObject<HTMLElement | null>, options?: ScrollDockOptions, deps?: DependencyList) => useRecipe(ref, createScrollDock, options, deps);\n","'use client';\nimport type { RefObject, DependencyList } from 'react';\nimport { useRecipe } from './use-recipe';\nimport { createLocalClock, type LocalClockOptions } from '../recipes/local-clock/create-local-clock';\nexport const useLocalClock = (ref: RefObject<HTMLElement | null>, options?: LocalClockOptions, deps?: DependencyList) => useRecipe(ref, createLocalClock, options, deps);\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createAttachment, type AttachmentFile, type AttachmentInstance, type AttachmentOptions, type AttachmentStatus } from './engine';\n\nexport interface AttachmentUpload {\n progress: number;\n status?: AttachmentStatus;\n}\n\nexport interface AttachmentProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'>, AttachmentOptions {\n /** Upload state by file id, reported by the app (from onFiles ids). */\n uploads?: Record<string, AttachmentUpload>;\n /** Receives the live instance (addFiles, remove, setProgress…). */\n instanceRef?: MutableRefObject<AttachmentInstance | null>;\n}\n\n/**\n * <Attachment multiple accept=\"image/*,.pdf\" maxSize={5_000_000} onFiles={upload} uploads={progressById} />.\n * The engine draws the chooser and cards; picked files survive rerenders and option changes.\n */\nexport function Attachment({ accept, multiple, maxFiles, maxSize, disabled, name, initialFiles, hint, labels, onFiles, onRemove, onReject, uploads, instanceRef, className, ...props }: AttachmentProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<AttachmentInstance | null>(null);\n const kept = useRef<AttachmentFile[] | undefined>(undefined);\n const files = useLatest(onFiles);\n const removed = useLatest(onRemove);\n const rejected = useLatest(onReject);\n const latestUploads = useLatest(uploads);\n const seed = useLatest(initialFiles);\n const labelKey = JSON.stringify(labels ?? {});\n useIsomorphicLayoutEffect(() => {\n const created = createAttachment(ref.current, {\n accept,\n multiple,\n maxFiles,\n maxSize,\n disabled,\n name,\n hint,\n labels,\n initialFiles: kept.current ?? seed.current,\n onFiles: (added, all) => files.current?.(added, all),\n onRemove: (file, all) => removed.current?.(file, all),\n onReject: (list) => rejected.current?.(list),\n });\n for (const [id, upload] of Object.entries(latestUploads.current ?? {})) created.setProgress(id, upload.progress, upload.status);\n instance.current = created;\n if (instanceRef) instanceRef.current = created;\n return () => {\n kept.current = created.files;\n created.destroy();\n instance.current = null;\n if (instanceRef) instanceRef.current = null;\n };\n // labels are compared by content (labelKey); callbacks are read through refs.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [accept, multiple, maxFiles, maxSize, disabled, name, hint, labelKey]);\n const uploadKey = JSON.stringify(uploads ?? {});\n useIsomorphicLayoutEffect(() => {\n for (const [id, upload] of Object.entries(uploads ?? {})) instance.current?.setProgress(id, upload.progress, upload.status);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [uploadKey]);\n return <div {...props} ref={ref} className={['mk-attachment', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../react/use-recipe';\nimport { createSkeleton, skeletonBones, type SkeletonInstance, type SkeletonOptions } from './engine';\n\nexport interface SkeletonProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'>, SkeletonOptions {\n /** The real content, shown when loading ends. */\n children?: ReactNode;\n /** Custom placeholder instead of the shape's bones. */\n placeholder?: ReactNode;\n}\n\n/**\n * <Skeleton loading={pending} shape=\"card\" label=\"Cargando perfil\"><ProfileCard /></Skeleton>.\n * React owns placeholder and content; the engine only toggles hidden and the busy state.\n */\nexport function Skeleton({ loading = true, animation, shape = 'text', lines, label, placeholder, children, className, ...props }: SkeletonProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<SkeletonInstance | null>(null);\n const current = useRef(loading);\n current.current = loading;\n useIsomorphicLayoutEffect(() => {\n const created = createSkeleton(ref.current, { loading: current.current, animation, shape, lines, label });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n }, [animation, shape, lines, label]);\n useIsomorphicLayoutEffect(() => {\n instance.current?.setLoading(loading);\n }, [loading]);\n return (\n <div {...props} ref={ref} className={['mk-skeleton', className].filter(Boolean).join(' ')} data-mk-ssr-loading={loading ? '' : undefined}>\n <div data-mk-skeleton-placeholder=\"\" data-mk-shape={shape}>\n {placeholder ?? skeletonBones(shape, lines).map((bone, i) => <span key={i} data-mk-bone={bone} />)}\n </div>\n <div data-mk-skeleton-content=\"\">{children}</div>\n </div>\n );\n}\n","'use client';\nimport { useRef, useState, type FormHTMLAttributes, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createQuestionnaire, type QuestionnaireAnswers, type QuestionnaireInstance, type QuestionnaireLabels } from './engine';\n\nexport type QuestionType = 'text' | 'textarea' | 'single' | 'multiple';\n\nexport interface QuestionOption {\n value: string;\n label: string;\n}\n\nexport interface Question {\n /** Field name and answer key. */\n id: string;\n label: string;\n type: QuestionType;\n options?: Array<string | QuestionOption>;\n required?: boolean;\n description?: string;\n placeholder?: string;\n}\n\nexport interface QuestionnaireProps extends Omit<FormHTMLAttributes<HTMLFormElement>, 'onChange' | 'children'> {\n questions: Question[];\n /** Answers the fields start with. */\n defaultAnswers?: QuestionnaireAnswers;\n labels?: QuestionnaireLabels & { next?: string; prev?: string; finish?: string; restart?: string; step?: (index: number, count: number) => ReactNode };\n onChange?: (index: number, answers: QuestionnaireAnswers) => void;\n onComplete?: (answers: QuestionnaireAnswers) => void;\n /** Shown after the last step; a function receives the answers. */\n complete?: ReactNode | ((answers: QuestionnaireAnswers) => ReactNode);\n instanceRef?: { current: QuestionnaireInstance | null };\n}\n\nconst optionOf = (option: string | QuestionOption): QuestionOption => (typeof option === 'string' ? { value: option, label: option } : option);\n\n/**\n * <Questionnaire questions={[{ id: 'name', label: 'Nombre', type: 'text', required: true }, …]} onComplete={save} />.\n * Fields are native and uncontrolled, so answers survive steps and rerenders; the app owns persistence.\n */\nexport function Questionnaire({ questions, defaultAnswers = {}, labels = {}, onChange, onComplete, complete, instanceRef, className, ...props }: QuestionnaireProps) {\n const ref = useRef<HTMLFormElement>(null);\n const [answers, setAnswers] = useState<QuestionnaireAnswers | null>(null);\n const change = useLatest(onChange);\n const completed = useLatest(onComplete);\n const key = JSON.stringify(questions.map(({ id, type, required, options }) => [id, type, required, options]));\n const { required, choice } = labels;\n useIsomorphicLayoutEffect(() => {\n const created = createQuestionnaire(ref.current, {\n labels: { required, choice },\n onChange: (index, current) => change.current?.(index, current),\n onComplete: (current) => {\n setAnswers(current);\n completed.current?.(current);\n },\n });\n if (instanceRef) instanceRef.current = created;\n return () => {\n created.destroy();\n if (instanceRef) instanceRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [key, required, choice]);\n const count = questions.length;\n const defaults = (id: string) => defaultAnswers[id];\n return (\n <form {...props} ref={ref} noValidate className={['mk-questionnaire', className].filter(Boolean).join(' ')} onReset={() => setAnswers(null)}>\n <div data-mk-question-progress=\"\" aria-hidden=\"true\">\n <span data-mk-question-bar=\"\" />\n </div>\n {questions.map((question, i) => {\n const titleId = `${question.id}-title`;\n const describedBy = question.description ? `${question.id}-description` : undefined;\n const value = defaults(question.id);\n return (\n <section key={question.id} data-mk-question=\"\" data-mk-step=\"\" hidden={i !== 0} aria-labelledby={titleId}>\n <p data-mk-question-step=\"\">{labels.step ? labels.step(i, count) : `Pregunta ${i + 1} de ${count}`}</p>\n <h3 id={titleId} data-mk-step-title=\"\" data-mk-flow-item=\"\">\n {question.label}\n {question.required ? <span data-mk-question-required=\"\" aria-hidden=\"true\"> *</span> : null}\n </h3>\n {question.description && (\n <p id={describedBy} data-mk-question-description=\"\" data-mk-flow-item=\"\">\n {question.description}\n </p>\n )}\n <div data-mk-question-field=\"\" data-mk-flow-item=\"\">\n {question.type === 'text' && (\n <input name={question.id} type=\"text\" required={question.required} aria-labelledby={titleId} aria-describedby={describedBy} placeholder={question.placeholder} defaultValue={typeof value === 'string' ? value : ''} />\n )}\n {question.type === 'textarea' && (\n <textarea name={question.id} rows={4} required={question.required} aria-labelledby={titleId} aria-describedby={describedBy} placeholder={question.placeholder} defaultValue={typeof value === 'string' ? value : ''} />\n )}\n {(question.type === 'single' || question.type === 'multiple') && (\n <div role={question.type === 'single' ? 'radiogroup' : 'group'} aria-labelledby={titleId} aria-describedby={describedBy} data-mk-question-options=\"\">\n {(question.options ?? []).map(optionOf).map((option) => (\n <label key={option.value} data-mk-question-option=\"\">\n <input\n type={question.type === 'single' ? 'radio' : 'checkbox'}\n name={question.id}\n value={option.value}\n required={question.required}\n defaultChecked={Array.isArray(value) ? value.includes(option.value) : value === option.value}\n />\n <span>{option.label}</span>\n </label>\n ))}\n </div>\n )}\n </div>\n <div data-mk-question-actions=\"\" data-mk-flow-item=\"\">\n {i > 0 && (\n <button type=\"button\" className=\"mk-button mk-button--text\" data-mk-question-prev=\"\">\n {labels.prev ?? 'Anterior'}\n </button>\n )}\n {i < count - 1 ? (\n <button type=\"button\" className=\"mk-button\" data-mk-question-next=\"\">\n {labels.next ?? 'Siguiente'}\n </button>\n ) : (\n <button type=\"submit\" className=\"mk-button\">\n {labels.finish ?? 'Finalizar'}\n </button>\n )}\n </div>\n </section>\n );\n })}\n <p data-mk-question-error=\"\" role=\"alert\" />\n <div data-mk-question-complete=\"\" hidden>\n {answers && (typeof complete === 'function' ? complete(answers) : complete)}\n <button type=\"reset\" className=\"mk-button mk-button--tonal\">\n {labels.restart ?? 'Empezar de nuevo'}\n </button>\n </div>\n </form>\n );\n}\n","'use client';\r\nimport { Fragment, useMemo, useRef, type HTMLAttributes } from 'react';\r\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\r\nimport { createCodeBlock, flowLines, type CodeBlockInstance, type CodeBlockOptions } from './engine';\r\nimport { languageFamily, tokenLines, tokenize } from './highlight';\r\n\r\n/** `onCopy` is the copy result (not the DOM clipboard event). */\r\nexport interface CodeBlockProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'title' | 'onCopy'>, Omit<CodeBlockOptions, 'code'> {\r\n code: string;\r\n}\r\n\r\n/**\r\n * <CodeBlock code={source} language=\"ts\" title=\"main.ts\" lineNumbers />.\r\n * React renders the highlighted lines (text only); the engine copies the current text and owns the feedback.\r\n */\r\nexport function CodeBlock({ code, language, title, lineNumbers, highlight, highlightLines, copyLabel = 'Copiar', copiedLabel, errorLabel, onCopy, className, ...props }: CodeBlockProps) {\r\n const ref = useRef<HTMLDivElement>(null);\r\n const instance = useRef<CodeBlockInstance | null>(null);\r\n const copied = useLatest(onCopy);\r\n const latest = useLatest(code);\r\n useIsomorphicLayoutEffect(() => {\r\n const created = createCodeBlock(ref.current, { copyLabel, copiedLabel, errorLabel, onCopy: (ok) => copied.current?.(ok) });\r\n // The engine copies the exact string, not the rendered DOM.\r\n created.setCode(latest.current);\r\n instance.current = created;\r\n return () => {\r\n created.destroy();\r\n instance.current = null;\r\n };\r\n }, [copyLabel, copiedLabel, errorLabel]);\r\n useIsomorphicLayoutEffect(() => {\r\n instance.current?.setCode(code);\r\n }, [code]);\r\n // New code flows in line by line (not on the first render).\r\n const first = useRef(true);\r\n useIsomorphicLayoutEffect(() => {\r\n if (first.current) {\r\n first.current = false;\r\n return;\r\n }\r\n const animation = flowLines(ref.current?.querySelector('code') ?? null);\r\n return () => {\r\n animation?.progress(1).kill();\r\n };\r\n }, [code, language]);\r\n const colour = highlight ?? languageFamily(language) !== 'plain';\r\n const lines = useMemo(() => tokenLines(tokenize(code, colour ? language : undefined)), [code, language, colour]);\r\n // A final newline ends the last line; it does not open an empty one.\r\n const trailing = lines.length > 1 && !lines[lines.length - 1]!.length;\r\n const shown = trailing ? lines.slice(0, -1) : lines;\r\n const marked = new Set(highlightLines ?? []);\r\n return (\r\n <div {...props} ref={ref} className={['mk-code-block', className].filter(Boolean).join(' ')} data-mk-language={language} data-mk-line-numbers={lineNumbers ? '' : undefined}>\r\n <div data-mk-code-header=\"\">\r\n <span data-mk-code-dots=\"\" aria-hidden=\"true\">\r\n <i />\r\n <i />\r\n <i />\r\n </span>\r\n <span data-mk-code-title=\"\">{title}</span>\r\n {language && <span data-mk-code-language=\"\">{language}</span>}\r\n <button type=\"button\" data-mk-code-copy=\"\">\r\n <svg aria-hidden=\"true\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2} strokeLinecap=\"round\" strokeLinejoin=\"round\">\r\n <rect x=\"9\" y=\"9\" width=\"11\" height=\"11\" rx=\"2.5\" />\r\n <path d=\"M5 15V6a2 2 0 0 1 2-2h8\" />\r\n </svg>\r\n <span data-mk-code-copy-text=\"\">{copyLabel}</span>\r\n </button>\r\n </div>\r\n <pre tabIndex={0}>\r\n <code>\r\n {shown.map((line, i) => (\r\n <Fragment key={i}>\r\n {i ? '\\n' : null}\r\n <span data-mk-code-line=\"\" data-mk-highlight={marked.has(i + 1) ? '' : undefined}>\r\n {line.map((token, k) =>\r\n token.type === 'plain' ? (\r\n <Fragment key={k}>{token.text}</Fragment>\r\n ) : (\r\n <span key={k} data-mk-token={token.type}>\r\n {token.text}\r\n </span>\r\n ),\r\n )}\r\n </span>\r\n </Fragment>\r\n ))}\r\n {trailing ? '\\n' : null}\r\n </code>\r\n </pre>\r\n <span data-mk-code-status=\"\" className=\"mk-sr-only\" role=\"status\" />\r\n </div>\r\n );\r\n}\r\n","'use client';\nimport { useRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport type { DialogVariant } from '../dialog/engine';\nimport { Menu } from '../menu/react';\nimport { createContextMenu, type ContextMenuInstance } from './engine';\n\nexport interface ContextMenuProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect'> {\n /** The options: <ContextMenu.Item value=\"…\">, <ContextMenu.Separator />. */\n menu: ReactNode;\n /** Accessible name of the menu. */\n label?: string;\n onSelect?: (value: string, item: HTMLElement) => void;\n onOpenChange?: (open: boolean) => void;\n closeOnSelect?: boolean;\n overrideEditable?: boolean;\n longPress?: number;\n variant?: Exclude<DialogVariant, 'sheet' | 'drawer'>;\n instanceRef?: { current: ContextMenuInstance | null };\n}\n\nfunction Root({ menu, label = 'Acciones', onSelect, onOpenChange, closeOnSelect = true, overrideEditable, longPress, variant, instanceRef, className, children, ...props }: ContextMenuProps) {\n const ref = useRef<HTMLDivElement>(null);\n const select = useLatest(onSelect);\n const change = useLatest(onOpenChange);\n useIsomorphicLayoutEffect(() => {\n const created = createContextMenu(ref.current, {\n closeOnSelect,\n overrideEditable,\n longPress,\n variant,\n onSelect: (value, item) => select.current?.(value, item),\n onOpenChange: (open) => change.current?.(open),\n });\n if (instanceRef) instanceRef.current = created;\n return () => {\n created.destroy();\n if (instanceRef) instanceRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [closeOnSelect, overrideEditable, longPress, variant]);\n return (\n <div {...props} ref={ref} className={['mk-context-menu', className].filter(Boolean).join(' ')} data-mk-context-trigger=\"\">\n {children}\n <dialog data-mk-context-menu=\"\" className=\"mk-dialog mk-menu\" aria-label={label}>\n {menu}\n </dialog>\n </div>\n );\n}\n\n/**\n * context menu for React: the children are the area that answers a right click,\n * Menu key, Shift+F10 or long press; `menu` holds the options.\n * <ContextMenu menu={<><ContextMenu.Item value=\"rename\">Renombrar</ContextMenu.Item><ContextMenu.Separator /></>} onSelect={run}>…</ContextMenu>\n */\nexport const ContextMenu = Object.assign(Root, { Item: Menu.Item, Separator: Menu.Separator });\n","'use client';\r\nimport { createContext, useContext, useMemo, type ButtonHTMLAttributes, type DialogHTMLAttributes, type ReactNode } from 'react';\r\nimport { Dialog, useSurfaceEngine, useSurfaceRoot, type SurfaceContextValue, type SurfaceRootProps } from '../dialog/react';\r\nimport { createDrawer, type DrawerInstance, type DrawerOptions, type DrawerSide } from './engine';\r\n\r\ninterface DrawerContextValue extends SurfaceContextValue<DrawerInstance> {\r\n side: DrawerSide;\r\n}\r\n\r\nconst DrawerContext = createContext<DrawerContextValue | null>(null);\r\n\r\nfunction useDrawerContext(part: string) {\r\n const value = useContext(DrawerContext);\r\n if (!value) throw new Error(`<Drawer.${part}> must be inside <Drawer.Root>`);\r\n return value;\r\n}\r\n\r\nexport interface DrawerRootProps extends Omit<SurfaceRootProps, 'variant' | 'placement' | 'float' | 'anchor' | 'animateContent'> {\r\n side?: DrawerSide;\r\n children?: ReactNode;\r\n}\r\n\r\nfunction Root({ side = 'right', children, ...props }: DrawerRootProps) {\r\n const surface = useSurfaceRoot<DrawerInstance>(props);\r\n return <DrawerContext.Provider value={{ ...surface, side }}>{children}</DrawerContext.Provider>;\r\n}\r\n\r\n/** A button that opens the drawer; focus returns to it on close. */\r\nfunction Trigger({ onClick, children, ...props }: ButtonHTMLAttributes<HTMLButtonElement>) {\r\n const context = useDrawerContext('Trigger');\r\n return (\r\n <button\r\n type=\"button\"\r\n aria-haspopup=\"dialog\"\r\n aria-expanded={context.open}\r\n {...props}\r\n onClick={(event) => {\r\n onClick?.(event);\r\n if (event.defaultPrevented) return;\r\n context.origin.current = event.currentTarget;\r\n context.setOpen(!context.open);\r\n }}\r\n >\r\n {children}\r\n </button>\r\n );\r\n}\r\n\r\nfunction Content({ className, children, ...props }: Omit<DialogHTMLAttributes<HTMLDialogElement>, 'open'>) {\r\n const context = useDrawerContext('Content');\r\n // The side is part of the engine's options: changing it rebuilds the drawer.\r\n const options = useMemo(() => ({ ...context.options, side: context.side }) as typeof context.options, [context.options, context.side]);\r\n const ref = useSurfaceEngine({ ...context, options }, (dialog, engineOptions) => createDrawer(dialog, engineOptions as DrawerOptions));\r\n return (\r\n <dialog ref={ref} className={['mk-dialog mk-drawer', className].filter(Boolean).join(' ')} {...props}>\r\n {children}\r\n </dialog>\r\n );\r\n}\r\n\r\n/**\r\n * drawer for React (the Dialog parts inside):\r\n * <Drawer.Root side=\"left\"><Drawer.Trigger>Filtros</Drawer.Trigger><Drawer.Content>\r\n * <Drawer.Header><Drawer.Title>…</Drawer.Title><Drawer.Close /></Drawer.Header>\r\n * <Drawer.Body>…</Drawer.Body><Drawer.Footer>…</Drawer.Footer>\r\n * </Drawer.Content></Drawer.Root>\r\n */\r\nexport const Drawer = {\r\n Root,\r\n Trigger,\r\n Content,\r\n Header: Dialog.Header,\r\n Title: Dialog.Title,\r\n Description: Dialog.Description,\r\n Actions: Dialog.Actions,\r\n Body: Dialog.Body,\r\n Footer: Dialog.Footer,\r\n Close: Dialog.Close,\r\n};\r\n\r\n/** Open state of the surrounding <Drawer.Root>. */\r\nexport function useDrawer() {\r\n const context = useDrawerContext('useDrawer');\r\n return { open: context.open, setOpen: context.setOpen, side: context.side, instance: context.instance };\r\n}\r\n","'use client';\r\nimport { useEffect, useId, useRef, useState, type HTMLAttributes } from 'react';\r\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\r\nimport { createHoverCard } from '../hover-card/engine';\r\nimport { linkDomain, safeHref, safeImage, type LinkPreviewOptions } from './engine';\r\n\r\nexport interface LinkPreviewProps extends Omit<HTMLAttributes<HTMLElement>, 'title'>, LinkPreviewOptions {}\r\n\r\nfunction Card({ url, title, description, image, imageAlt, siteName, target }: LinkPreviewOptions) {\r\n const id = useId();\r\n const href = safeHref(url);\r\n const domain = linkDomain(href);\r\n const source = safeImage(image);\r\n const [failed, setFailed] = useState(false);\r\n useEffect(() => setFailed(false), [source]);\r\n const site = [siteName, domain].filter(Boolean).filter((value, i, all) => all.indexOf(value) === i).join(' · ');\r\n const content = (\r\n <>\r\n <span data-mk-part=\"media\">\r\n <span data-mk-part=\"fallback\" aria-hidden=\"true\">\r\n {(siteName || domain || title || '?').trim().charAt(0).toUpperCase()}\r\n </span>\r\n {source && !failed ? <img data-mk-link-image=\"\" src={source} alt={imageAlt ?? ''} loading=\"lazy\" decoding=\"async\" onError={() => setFailed(true)} /> : null}\r\n </span>\r\n <span data-mk-part=\"text\">\r\n {site && (\r\n <span data-mk-part=\"meta\">\r\n <span data-mk-part=\"favicon\" aria-hidden=\"true\">\r\n {(siteName || domain).trim().charAt(0).toUpperCase()}\r\n </span>\r\n <span data-mk-part=\"site\">{site}</span>\r\n </span>\r\n )}\r\n <span data-mk-part=\"title\" id={`${id}-title`}>\r\n {title || domain || href}\r\n </span>\r\n {description && (\r\n <span data-mk-part=\"description\" id={`${id}-description`}>\r\n {description}\r\n </span>\r\n )}\r\n </span>\r\n <span data-mk-part=\"go\" aria-hidden=\"true\">\r\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth={2} strokeLinecap=\"round\" strokeLinejoin=\"round\">\r\n <path d=\"M7 17L17 7M9 7h8v8\" />\r\n </svg>\r\n </span>\r\n </>\r\n );\r\n const labelled = { 'aria-labelledby': `${id}-title`, 'aria-describedby': description ? `${id}-description` : undefined };\r\n return href ? (\r\n <a data-mk-link-card=\"\" href={href} target={target} rel={target === '_blank' ? 'noopener noreferrer' : undefined} {...labelled}>\r\n {content}\r\n </a>\r\n ) : (\r\n <span data-mk-link-card=\"\" {...labelled}>\r\n {content}\r\n </span>\r\n );\r\n}\r\n\r\n/**\r\n * <LinkPreview url=\"https://…\" title=\"…\" description=\"…\" image=\"/thumb.jpg\" siteName=\"Blog\" />, or\r\n * variant=\"hover\" for a link that previews the card on pointer, focus or tap. Metadata comes from the app.\r\n */\r\nexport function LinkPreview({ url, title, description, image, imageAlt, siteName, variant = 'card', label, target, openDelay, closeDelay, placement, onOpenChange, className, ...props }: LinkPreviewProps) {\r\n const ref = useRef<HTMLSpanElement>(null);\r\n const change = useLatest(onOpenChange);\r\n const href = safeHref(url);\r\n const hover = variant === 'hover';\r\n useIsomorphicLayoutEffect(() => {\r\n if (!hover) return;\r\n const instance = createHoverCard(ref.current, { openDelay, closeDelay, placement, onOpenChange: (open) => change.current?.(open) });\r\n return () => instance.destroy();\r\n }, [hover, openDelay, closeDelay, placement]);\r\n const card = <Card url={url} title={title} description={description} image={image} imageAlt={imageAlt} siteName={siteName} target={target} />;\r\n if (!hover) {\r\n return (\r\n <div {...props} className={['mk-link-preview', className].filter(Boolean).join(' ')} data-mk-link-variant={variant === 'row' ? 'row' : 'card'}>\r\n {card}\r\n </div>\r\n );\r\n }\r\n const text = label || title || linkDomain(href) || href;\r\n return (\r\n <span {...props} ref={ref} className={['mk-link-preview mk-hover-card', className].filter(Boolean).join(' ')} data-mk-link-variant=\"hover\">\r\n {href ? (\r\n <a data-mk-hover-trigger=\"\" href={href} target={target} rel={target === '_blank' ? 'noopener noreferrer' : undefined}>\r\n {text}\r\n </a>\r\n ) : (\r\n <span data-mk-hover-trigger=\"\" tabIndex={0}>\r\n {text}\r\n </span>\r\n )}\r\n <span data-mk-hover-panel=\"\" role=\"region\" aria-label={`Vista previa: ${title || linkDomain(href)}`} hidden>\r\n {card}\r\n </span>\r\n </span>\r\n );\r\n}\r\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createProgress, type ProgressInstance, type ProgressOptions } from './engine';\n\nexport interface ProgressProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'>, ProgressOptions {}\n\n/** <Progress value={42} label=\"Subida\" showValue />; value={null} is indeterminate. The engine owns the drawing and ARIA. */\nexport function Progress({ value, min, max, label, variant, showValue, formatValue, className, ...props }: ProgressProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<ProgressInstance | null>(null);\n const current = useLatest(value);\n const format = useLatest(formatValue);\n const formatted = formatValue !== undefined;\n useIsomorphicLayoutEffect(() => {\n const created = createProgress(ref.current, {\n value: current.current,\n min,\n max,\n label,\n variant,\n showValue,\n formatValue: formatted ? (n, ratio) => format.current?.(n, ratio) ?? '' : undefined,\n });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n }, [min, max, label, variant, showValue, formatted]);\n useIsomorphicLayoutEffect(() => {\n instance.current?.setValue(value === undefined ? (min ?? 0) : value);\n }, [value]);\n return <div {...props} ref={ref} className={['mk-progress', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createRangeSlider, type RangeSliderInstance, type RangeSliderOptions, type RangeValue } from './engine';\n\nexport interface RangeSliderProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'onInput' | 'defaultValue'>, RangeSliderOptions {\n /** Uncontrolled start; an array makes an interval. */\n defaultValue?: RangeValue;\n /** Show the formatted value beside the track (default true). */\n showOutput?: boolean;\n}\n\n/**\n * <RangeSlider min={0} max={100} defaultValue={[20, 80]} label=\"Precio\" onChange={setRange} />.\n * Controlled with `value`; otherwise the edited value survives rerenders and new bounds.\n */\nexport function RangeSlider({ min, max, step, value, defaultValue, disabled, name, label, formatValue, onInput, onChange, showOutput = true, className, ...props }: RangeSliderProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<RangeSliderInstance | null>(null);\n const edited = useRef<RangeValue | undefined>(undefined);\n const input = useLatest(onInput);\n const change = useLatest(onChange);\n const format = useLatest(formatValue);\n const formatted = formatValue !== undefined;\n const start = value ?? defaultValue;\n const count = Array.isArray(start) ? 2 : 1;\n const current = useLatest(value);\n useIsomorphicLayoutEffect(() => {\n const created = createRangeSlider(ref.current, {\n min,\n max,\n step,\n disabled,\n name,\n label,\n value: current.current ?? edited.current ?? start,\n formatValue: formatted ? (n) => format.current?.(n) ?? String(n) : undefined,\n onInput: (next) => input.current?.(next),\n onChange: (next) => change.current?.(next),\n });\n instance.current = created;\n return () => {\n edited.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // `start` only seeds the first creation; edits and `value` take over after it.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [min, max, step, disabled, name, label, formatted, count]);\n const valueKey = JSON.stringify(value);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined) instance.current?.setValue(value, false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [valueKey]);\n const initial = Array.isArray(start) ? start : [start ?? min ?? 0];\n return (\n <div {...props} ref={ref} className={['mk-range-slider', className].filter(Boolean).join(' ')}>\n <div data-mk-range-track=\"\">\n {initial.map((n, i) => (\n <input key={i} type=\"range\" data-mk-range-input=\"\" defaultValue={n} />\n ))}\n </div>\n {showOutput && <output data-mk-range-output=\"\" />}\n </div>\n );\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createChart, type ChartInstance, type ChartOptions } from './engine';\n\nexport interface ChartProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect' | 'children'>, ChartOptions {\n instanceRef?: { current: ChartInstance | null };\n}\n\n/**\n * <Chart type=\"bar\" stacked labels={weeks} series={[{ name: 'Ana', values }]} formatValue={money} label=\"Sesiones por semana\" />.\n * Data changes redraw in place; the selection survives when its point still exists.\n */\nexport function Chart({ type, labels, series, points, stacked, barStyle, barTrack, barFill, barWidth, curve, formatValue, label, height, emptyLabel, legend, tooltip, axis, endLabel, onSelect, instanceRef, className, ...props }: ChartProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<ChartInstance | null>(null);\n const format = useLatest(formatValue);\n const select = useLatest(onSelect);\n const formatted = formatValue !== undefined;\n const data = { type, labels, series, points, stacked, barStyle, barTrack, barFill, barWidth, curve, label, height, emptyLabel, legend, tooltip, axis, endLabel };\n const key = JSON.stringify(data);\n const latest = useLatest(data);\n const options = (): ChartOptions => ({\n ...latest.current,\n formatValue: formatted ? (value) => format.current?.(value) ?? String(value) : undefined,\n onSelect: (index) => select.current?.(index),\n });\n useIsomorphicLayoutEffect(() => {\n const created = createChart(ref.current, options());\n instance.current = created;\n if (instanceRef) instanceRef.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n if (instanceRef) instanceRef.current = null;\n };\n // Created once; data is pushed below.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const first = useRef(true);\n useIsomorphicLayoutEffect(() => {\n if (first.current) {\n first.current = false;\n return;\n }\n instance.current?.update(options());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [key, formatted]);\n return <div {...props} ref={ref} className={['mk-chart', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createCreditCard, type CreditCardInstance, type CreditCardOptions } from './engine';\n\nexport interface CreditCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'children'>, CreditCardOptions {\n instanceRef?: MutableRefObject<CreditCardInstance | null>;\n}\n\n/**\n * <CreditCard onComplete={() => setReady(true)} /> inside a <form>: the engine makes the card and the\n * native cc-* fields; the app reads the form when it submits. Callbacks carry no card data.\n */\nexport function CreditCard({ labels, names, tilt, onChange, onComplete, instanceRef, className, ...props }: CreditCardProps) {\n const ref = useRef<HTMLDivElement>(null);\n const change = useLatest(onChange);\n const complete = useLatest(onComplete);\n const key = JSON.stringify([labels ?? {}, names ?? {}]);\n useIsomorphicLayoutEffect(() => {\n const created = createCreditCard(ref.current, {\n labels,\n names,\n tilt,\n onChange: (state) => change.current?.(state),\n onComplete: () => complete.current?.(),\n });\n if (instanceRef) instanceRef.current = created;\n return () => {\n created.destroy();\n if (instanceRef) instanceRef.current = null;\n };\n // labels and names are compared by content.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [key, tilt]);\n return <div {...props} ref={ref} className={['mk-credit-card', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createCommandSearch, type CommandItem, type CommandSearchInstance } from './engine';\n\nexport interface CommandSearchProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'onSelect' | 'children'> {\n items: CommandItem[];\n placeholder?: string;\n emptyLabel?: string;\n label?: string;\n shortcut?: boolean;\n limit?: number;\n /** The trigger's content (default: «Buscar» and the shortcut). null hides the trigger. */\n trigger?: ReactNode;\n onSelect?: (item: CommandItem) => void;\n onOpenChange?: (open: boolean) => void;\n instanceRef?: MutableRefObject<CommandSearchInstance | null>;\n}\n\n/** <CommandSearch items={commands} onSelect={(item) => navigate(item.id)} />: ⌘K / Ctrl+K or the trigger opens it. */\nexport function CommandSearch({ items, placeholder, emptyLabel, label, shortcut, limit, trigger, onSelect, onOpenChange, instanceRef, className, ...props }: CommandSearchProps) {\n const ref = useRef<HTMLSpanElement>(null);\n const instance = useRef<CommandSearchInstance | null>(null);\n const select = useLatest(onSelect);\n const change = useLatest(onOpenChange);\n const latest = useLatest(items);\n useIsomorphicLayoutEffect(() => {\n const created = createCommandSearch(ref.current, {\n items: latest.current,\n placeholder,\n emptyLabel,\n label,\n shortcut,\n limit,\n onSelect: (item) => select.current?.(item),\n onOpenChange: (open) => change.current?.(open),\n });\n instance.current = created;\n if (instanceRef) instanceRef.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n if (instanceRef) instanceRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [placeholder, emptyLabel, label, shortcut, limit]);\n const key = JSON.stringify(items);\n useIsomorphicLayoutEffect(() => {\n instance.current?.setItems(latest.current);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [key]);\n return (\n <span {...props} ref={ref} className={['mk-command-search', className].filter(Boolean).join(' ')}>\n {trigger === null ? null : (\n <button type=\"button\" data-mk-command-open=\"\" aria-haspopup=\"dialog\">\n {trigger ?? (\n <>\n <span>Buscar…</span>\n <kbd aria-hidden=\"true\">⌘K</kbd>\n </>\n )}\n </button>\n )}\n </span>\n );\n}\n","'use client';\nimport { useRef, type ButtonHTMLAttributes, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createHoldConfirm, type HoldConfirmOptions } from './engine';\n\nexport interface HoldConfirmProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'onClick'>, HoldConfirmOptions {\n children?: ReactNode;\n}\n\n/**\n * <HoldConfirm onConfirm={removeAccount}>Eliminar cuenta</HoldConfirm>: hold the button to confirm.\n * The engine moves the label into its own span, so pass plain text or inline content.\n */\nexport function HoldConfirm({ duration, resetAfter, holdingLabel, doneLabel, hint, disabled, onConfirm, className, children, ...props }: HoldConfirmProps) {\n const ref = useRef<HTMLSpanElement>(null);\n const confirm = useLatest(onConfirm);\n useIsomorphicLayoutEffect(() => {\n const instance = createHoldConfirm(ref.current, { duration, resetAfter, holdingLabel, doneLabel, hint, disabled, onConfirm: () => confirm.current?.() });\n return () => instance.destroy();\n }, [duration, resetAfter, holdingLabel, doneLabel, hint, disabled]);\n return (\n <span ref={ref} className={['mk-hold-confirm', className].filter(Boolean).join(' ')}>\n <button type=\"button\" {...props}>\n <span data-mk-hold-text=\"\">{children}</span>\n </button>\n </span>\n );\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createImagePreview, type ImagePreviewInstance, type ImagePreviewOptions } from './engine';\n\nexport interface PreviewImage {\n src: string;\n /** Smaller image for the thumbnail (default: src). */\n thumb?: string;\n alt: string;\n caption?: string;\n}\n\nexport interface ImagePreviewProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>, ImagePreviewOptions {\n images: PreviewImage[];\n instanceRef?: MutableRefObject<ImagePreviewInstance | null>;\n}\n\n/** <ImagePreview images={[{ src, thumb, alt, caption }]} />: a grid of thumbnails that open a viewer. */\nexport function ImagePreview({ images, labels, loop, strip, onChange, onOpenChange, instanceRef, className, ...props }: ImagePreviewProps) {\n const ref = useRef<HTMLDivElement>(null);\n const change = useLatest(onChange);\n const openChange = useLatest(onOpenChange);\n const key = JSON.stringify(labels ?? {});\n useIsomorphicLayoutEffect(() => {\n const created = createImagePreview(ref.current, { labels, loop, strip, onChange: (i) => change.current?.(i), onOpenChange: (open) => openChange.current?.(open) });\n if (instanceRef) instanceRef.current = created;\n return () => {\n created.destroy();\n if (instanceRef) instanceRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [key, loop, strip]);\n return (\n <div {...props} ref={ref} className={['mk-image-preview', className].filter(Boolean).join(' ')}>\n {images.map((image, i) => (\n <button key={`${image.src}-${i}`} type=\"button\" data-mk-image=\"\" data-mk-src={image.src} data-mk-caption={image.caption} aria-label={`Ver ${image.alt}`}>\n <img src={image.thumb ?? image.src} alt={image.alt} loading=\"lazy\" decoding=\"async\" />\n </button>\n ))}\n </div>\n );\n}\n","'use client';\r\nimport { useRef, type ButtonHTMLAttributes } from 'react';\r\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\r\nimport { createLikeButton, type LikeButtonInstance } from './engine';\r\n\r\nexport interface LikeButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onChange' | 'children'> {\r\n /** Controlled state; without it the button keeps its own. */\r\n liked?: boolean;\r\n defaultLiked?: boolean;\r\n count?: number;\r\n label?: string;\r\n hideCount?: boolean;\r\n onChange?: (liked: boolean, count: number) => void;\r\n}\r\n\r\n/** <LikeButton count={128} onChange={(liked, count) => save(liked)} />. */\r\nexport function LikeButton({ liked, defaultLiked, count = 0, label, hideCount, onChange, className, ...props }: LikeButtonProps) {\r\n const ref = useRef<HTMLButtonElement>(null);\r\n const instance = useRef<LikeButtonInstance | null>(null);\r\n const change = useLatest(onChange);\r\n const start = useRef({ liked: liked ?? defaultLiked ?? false, count });\r\n useIsomorphicLayoutEffect(() => {\r\n const created = createLikeButton(ref.current, { ...start.current, label, hideCount, onChange: (next, total) => change.current?.(next, total) });\r\n instance.current = created;\r\n return () => {\r\n start.current = { liked: created.liked, count: created.count };\r\n created.destroy();\r\n instance.current = null;\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [label, hideCount]);\r\n useIsomorphicLayoutEffect(() => {\r\n if (liked !== undefined && instance.current && instance.current.liked !== liked) instance.current.setLiked(liked, false);\r\n }, [liked]);\r\n useIsomorphicLayoutEffect(() => {\r\n if (instance.current && instance.current.count !== count) instance.current.setCount(count);\r\n }, [count]);\r\n return <button type=\"button\" {...props} ref={ref} className={['mk-like-button', className].filter(Boolean).join(' ')} />;\r\n}\r\n","'use client';\nimport { useRef, type ButtonHTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createNotificationBell, type NotificationBellInstance } from './engine';\n\nexport interface NotificationBellProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n /** Unread count. A higher count than before rings the bell. */\n count?: number;\n /** The newest message: a new value rings the bell and shows it. */\n message?: string;\n label?: string;\n messageDuration?: number;\n max?: number;\n onOpen?: () => void;\n instanceRef?: MutableRefObject<NotificationBellInstance | null>;\n}\n\n/** <NotificationBell count={unread} message={latest} onOpen={openPanel} />. */\nexport function NotificationBell({ count = 0, message, label, messageDuration, max, onOpen, instanceRef, className, ...props }: NotificationBellProps) {\n const ref = useRef<HTMLSpanElement>(null);\n const instance = useRef<NotificationBellInstance | null>(null);\n const open = useLatest(onOpen);\n const initial = useRef(count);\n useIsomorphicLayoutEffect(() => {\n const created = createNotificationBell(ref.current, { count: initial.current, label, messageDuration, max, onOpen: () => open.current?.() });\n instance.current = created;\n if (instanceRef) instanceRef.current = created;\n return () => {\n initial.current = created.count;\n created.destroy();\n instance.current = null;\n if (instanceRef) instanceRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [label, messageDuration, max]);\n const seen = useRef({ count, message });\n useIsomorphicLayoutEffect(() => {\n const bell = instance.current;\n if (!bell) return;\n const before = seen.current;\n seen.current = { count, message };\n const fresh = message !== undefined && message !== before.message;\n if (count > bell.count) {\n // One ring for the newest; the rest of the jump is set at once.\n bell.setCount(count - 1);\n bell.notify(fresh ? message : undefined);\n } else {\n bell.setCount(count);\n if (fresh && message) bell.notify(message);\n }\n }, [count, message]);\n return (\n <span ref={ref} className={['mk-notification-bell', className].filter(Boolean).join(' ')}>\n <button type=\"button\" {...props} />\n </span>\n );\n}\n","'use client';\nimport { useRef, type InputHTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createPasswordStrength, type PasswordStrengthOptions } from './engine';\n\nexport interface PasswordStrengthProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'type' | 'onChange'>, Omit<PasswordStrengthOptions, 'onChange'> {\n onStrength?: PasswordStrengthOptions['onChange'];\n /** The text of the field as it changes. */\n onValueChange?: (value: string) => void;\n}\n\n/** <PasswordStrength name=\"password\" aria-label=\"Contraseña\" requireScore={3} onStrength={setResult} />. The field stays uncontrolled. */\nexport function PasswordStrength({ minLength, score, requireScore, labels, onStrength, onValueChange, className, ...props }: PasswordStrengthProps) {\n const ref = useRef<HTMLDivElement>(null);\n const strength = useLatest(onStrength);\n const value = useLatest(onValueChange);\n const scorer = useLatest(score);\n const custom = score !== undefined;\n const key = JSON.stringify(labels ?? {});\n useIsomorphicLayoutEffect(() => {\n const instance = createPasswordStrength(ref.current, {\n minLength,\n requireScore,\n labels,\n score: custom ? (text) => scorer.current!(text) : undefined,\n onChange: (result) => strength.current?.(result),\n });\n return () => instance.destroy();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [minLength, requireScore, key, custom]);\n return (\n <div ref={ref} className={['mk-password-strength', className].filter(Boolean).join(' ')}>\n <input autoComplete=\"new-password\" aria-label=\"Contraseña\" {...props} type=\"password\" onInput={(event) => value.current?.(event.currentTarget.value)} />\n </div>\n );\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createScratchCard, type ScratchCardInstance, type ScratchCardOptions } from './engine';\n\nexport interface ScratchCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'onProgress'>, ScratchCardOptions {\n /** What the cover hides. */\n children?: ReactNode;\n instanceRef?: MutableRefObject<ScratchCardInstance | null>;\n}\n\n/** <ScratchCard onReveal={claim}><Coupon code=\"OTOÑO25\" /></ScratchCard>. */\nexport function ScratchCard({ threshold, brush, coverLabel, revealLabel, revealedLabel, celebrate, onProgress, onReveal, instanceRef, className, children, ...props }: ScratchCardProps) {\n const ref = useRef<HTMLDivElement>(null);\n const progress = useLatest(onProgress);\n const reveal = useLatest(onReveal);\n useIsomorphicLayoutEffect(() => {\n const created = createScratchCard(ref.current, {\n threshold,\n brush,\n coverLabel,\n revealLabel,\n revealedLabel,\n celebrate,\n onProgress: (value) => progress.current?.(value),\n onReveal: () => reveal.current?.(),\n });\n if (instanceRef) instanceRef.current = created;\n return () => {\n created.destroy();\n if (instanceRef) instanceRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [threshold, brush, coverLabel, revealLabel, revealedLabel, celebrate]);\n return (\n <div {...props} ref={ref} className={['mk-scratch-card', className].filter(Boolean).join(' ')}>\n <div data-mk-scratch-content=\"\">{children}</div>\n </div>\n );\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createStarRating, type StarRatingInstance, type StarRatingOptions } from './engine';\n\nexport interface StarRatingProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'>, Omit<StarRatingOptions, 'value'> {\n /** Controlled value; without it the stars keep their own (defaultValue). */\n value?: number;\n defaultValue?: number;\n}\n\n/** <StarRating value={stars} onChange={setStars} allowClear /> or <StarRating readonly value={4.5} />. */\nexport function StarRating({ value, defaultValue, max, name, label, labels, readonly, allowClear, disabled, onChange, className, ...props }: StarRatingProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<StarRatingInstance | null>(null);\n const change = useLatest(onChange);\n const start = useRef(value ?? defaultValue ?? 0);\n const key = JSON.stringify(labels ?? null);\n useIsomorphicLayoutEffect(() => {\n const created = createStarRating(ref.current, { value: value ?? start.current, max, name, label, labels, readonly, allowClear, disabled, onChange: (next) => change.current?.(next) });\n instance.current = created;\n return () => {\n start.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [max, name, label, key, readonly, allowClear, disabled]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined && instance.current && instance.current.value !== value) instance.current.setValue(value);\n }, [value]);\n return <div {...props} ref={ref} className={['mk-star-rating', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createSwipeActions } from './engine';\n\nexport interface SwipeAction {\n id: string;\n label: string;\n /** Glyph or icon inside the round button. */\n icon?: ReactNode;\n tone?: 'neutral' | 'danger' | 'accent';\n /** The row folds away after it runs (the app then removes it). */\n remove?: boolean;\n /** Run by a long swipe on its side. */\n primary?: boolean;\n}\n\nexport interface SwipeRowProps extends Omit<HTMLAttributes<HTMLLIElement>, 'children'> {\n left?: SwipeAction[];\n right?: SwipeAction[];\n children?: ReactNode;\n}\n\nfunction Actions({ side, actions }: { side: 'left' | 'right'; actions: SwipeAction[] }) {\n return (\n <div data-mk-swipe-actions={side}>\n {actions.map((action) => (\n <button\n key={action.id}\n type=\"button\"\n data-mk-swipe-action={action.id}\n data-mk-tone={action.tone}\n data-mk-swipe-remove={action.remove ? '' : undefined}\n data-mk-swipe-primary={action.primary ? '' : undefined}\n aria-label={action.label}\n >\n {action.icon ?? action.label}\n </button>\n ))}\n </div>\n );\n}\n\n/** One row: its face (children) and the actions behind each side. */\nfunction Row({ left, right, children, ...props }: SwipeRowProps) {\n return (\n <li {...props} data-mk-swipe-row=\"\">\n {left?.length ? <Actions side=\"left\" actions={left} /> : null}\n <div data-mk-swipe-content=\"\">{children}</div>\n {right?.length ? <Actions side=\"right\" actions={right} /> : null}\n </li>\n );\n}\n\nexport interface SwipeActionsProps extends Omit<HTMLAttributes<HTMLUListElement>, 'onChange'> {\n fullSwipe?: number;\n /** An action ran (a removing one after its row folded away): update your data here. */\n onAction?: (action: string, row: HTMLElement) => void;\n children?: ReactNode;\n}\n\nfunction Root({ fullSwipe, onAction, className, children, ...props }: SwipeActionsProps) {\n const ref = useRef<HTMLUListElement>(null);\n const action = useLatest(onAction);\n useIsomorphicLayoutEffect(() => {\n const instance = createSwipeActions(ref.current, { fullSwipe, onAction: (id, row) => action.current?.(id, row) });\n return () => instance.destroy();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fullSwipe]);\n return (\n <ul {...props} ref={ref} className={['mk-swipe-actions', className].filter(Boolean).join(' ')}>\n {children}\n </ul>\n );\n}\n\n/**\n * <SwipeActions onAction={(id, row) => …}><SwipeActions.Row key={mail.id} data-id={mail.id} right={[{ id: 'delete', label: 'Eliminar', remove: true, tone: 'danger' }]}>…</SwipeActions.Row></SwipeActions>\n */\nexport const SwipeActions = Object.assign(Root, { Row });\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { toHex, toHsva } from '../../core/color';\nimport { createColorSlider, type ColorSliderInstance, type ColorSliderOptions } from './engine';\n\nexport interface ColorSliderProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onInput' | 'onChange' | 'defaultValue'>, Omit<ColorSliderOptions, 'value'> {\n /** Controlled colour; without it the slider keeps its own (defaultValue). */\n value?: string;\n defaultValue?: string;\n}\n\n/** <ColorSlider channel=\"hue\" value={color} onInput={setColor} />. */\nexport function ColorSlider({ value, defaultValue, channel, label, orientation, step, showValue, name, disabled, onInput, onChange, className, ...props }: ColorSliderProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<ColorSliderInstance | null>(null);\n const input = useLatest(onInput);\n const change = useLatest(onChange);\n const start = useRef(value ?? defaultValue);\n useIsomorphicLayoutEffect(() => {\n const created = createColorSlider(ref.current, {\n value: value ?? start.current,\n channel,\n label,\n orientation,\n step,\n showValue,\n name,\n disabled,\n onInput: (hex, color) => input.current?.(hex, color),\n onChange: (hex, color) => change.current?.(hex, color),\n });\n instance.current = created;\n return () => {\n start.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [channel, label, orientation, step, showValue, name, disabled]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined && instance.current && instance.current.value !== toHex(toHsva(value))) instance.current.setColor(value, false);\n }, [value]);\n return <div {...props} ref={ref} className={['mk-color-slider', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { toHex, toHsva } from '../../core/color';\nimport { createColorArea, type ColorAreaInstance, type ColorAreaOptions } from './engine';\n\nexport interface ColorAreaProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onInput' | 'onChange' | 'defaultValue'>, Omit<ColorAreaOptions, 'value'> {\n /** Controlled colour; without it the area keeps its own (defaultValue). */\n value?: string;\n defaultValue?: string;\n}\n\n/** <ColorArea value={color} onInput={setColor} />. */\nexport function ColorArea({ value, defaultValue, label, step, name, disabled, onInput, onChange, className, ...props }: ColorAreaProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<ColorAreaInstance | null>(null);\n const input = useLatest(onInput);\n const change = useLatest(onChange);\n const start = useRef(value ?? defaultValue);\n useIsomorphicLayoutEffect(() => {\n const created = createColorArea(ref.current, {\n value: value ?? start.current,\n label,\n step,\n name,\n disabled,\n onInput: (hex, color) => input.current?.(hex, color),\n onChange: (hex, color) => change.current?.(hex, color),\n });\n instance.current = created;\n return () => {\n start.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [label, step, name, disabled]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined && instance.current && instance.current.value !== toHex(toHsva(value))) instance.current.setColor(value, false);\n }, [value]);\n return <div {...props} ref={ref} className={['mk-color-area', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { toHex, toHsva } from '../../core/color';\nimport { createColorField, type ColorFieldInstance, type ColorFieldOptions } from './engine';\n\nexport interface ColorFieldProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'>, Omit<ColorFieldOptions, 'value'> {\n /** Controlled colour; without it the field keeps its own (defaultValue). */\n value?: string;\n defaultValue?: string;\n}\n\n/** <ColorField value={color} onChange={setColor} format=\"rgb\" />. The engine creates the input. */\nexport function ColorField({ value, defaultValue, format, alpha, label, name, disabled, readOnly, onChange, className, ...props }: ColorFieldProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<ColorFieldInstance | null>(null);\n const change = useLatest(onChange);\n const start = useRef(value ?? defaultValue);\n useIsomorphicLayoutEffect(() => {\n const created = createColorField(ref.current, {\n value: value ?? start.current,\n format,\n alpha,\n label,\n name,\n disabled,\n readOnly,\n onChange: (hex, color) => change.current?.(hex, color),\n });\n instance.current = created;\n return () => {\n start.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [format, alpha, label, name, disabled, readOnly]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined && instance.current && instance.current.value !== toHex(toHsva(value))) instance.current.setColor(value, false);\n }, [value]);\n return <div {...props} ref={ref} className={['mk-color-field', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { toHex, toHsva } from '../../core/color';\nimport { createColorPicker, type ColorPickerInstance, type ColorPickerOptions } from './engine';\n\nexport interface ColorPickerProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onInput' | 'onChange' | 'defaultValue'>, Omit<ColorPickerOptions, 'value'> {\n /** Controlled colour; without it the picker keeps its own (defaultValue). */\n value?: string;\n defaultValue?: string;\n}\n\n/** <ColorPicker value={color} onInput={setColor} alpha /> or <ColorPicker inline … />. */\nexport function ColorPicker({ value, defaultValue, alpha, format, swatches, label, name, disabled, inline, eyedropper, onInput, onChange, className, ...props }: ColorPickerProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<ColorPickerInstance | null>(null);\n const input = useLatest(onInput);\n const change = useLatest(onChange);\n const start = useRef(value ?? defaultValue);\n const key = JSON.stringify(swatches ?? null);\n useIsomorphicLayoutEffect(() => {\n const created = createColorPicker(ref.current, {\n value: value ?? start.current,\n alpha,\n format,\n swatches,\n label,\n name,\n disabled,\n inline,\n eyedropper,\n onInput: (hex, color) => input.current?.(hex, color),\n onChange: (hex, color) => change.current?.(hex, color),\n });\n instance.current = created;\n return () => {\n start.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [alpha, format, key, label, name, disabled, inline, eyedropper]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined && instance.current && instance.current.value !== toHex(toHsva(value))) instance.current.setColor(value, false);\n }, [value]);\n return <div {...props} ref={ref} className={['mk-color-picker', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createTimeField, type TimeFieldInstance, type TimeFieldOptions } from './engine';\n\nexport interface TimeFieldProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'>, Omit<TimeFieldOptions, 'value'> {\n /** Controlled time ('HH:MM', 24 h); without it the field keeps its own (defaultValue). */\n value?: string | null;\n defaultValue?: string | null;\n}\n\n/** <TimeField value={time} onChange={setTime} minuteStep={15} />. */\nexport function TimeField({ value, defaultValue, locale, hourCycle, seconds, minuteStep, min, max, label, name, disabled, readOnly, onChange, className, ...props }: TimeFieldProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<TimeFieldInstance | null>(null);\n const change = useLatest(onChange);\n const start = useRef(value !== undefined ? value : (defaultValue ?? null));\n useIsomorphicLayoutEffect(() => {\n const created = createTimeField(ref.current, {\n value: value !== undefined ? value : start.current,\n locale,\n hourCycle,\n seconds,\n minuteStep,\n min,\n max,\n label,\n name,\n disabled,\n readOnly,\n onChange: (next) => change.current?.(next),\n });\n instance.current = created;\n return () => {\n start.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale, hourCycle, seconds, minuteStep, min, max, label, name, disabled, readOnly]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined && instance.current && instance.current.value !== value) instance.current.setValue(value);\n }, [value]);\n return <div {...props} ref={ref} className={['mk-time-field', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { rangeKeys, toRange } from '../../core/date-range';\nimport type { DateInput } from '../../core/dates';\nimport { createRangeCalendar, type RangeCalendarInstance, type RangeCalendarOptions } from './engine';\n\ntype RangeValue = { start: DateInput; end: DateInput } | null;\n\nexport interface RangeCalendarProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'>, Omit<RangeCalendarOptions, 'value'> {\n /** Controlled range; without it the calendar keeps its own (defaultValue). */\n value?: RangeValue;\n defaultValue?: RangeValue;\n}\n\nconst keyOf = (value: RangeValue | undefined) => {\n const range = toRange(value);\n return range ? JSON.stringify(rangeKeys(range)) : 'null';\n};\n\n/** <RangeCalendar value={range} onChange={setRange} visibleMonths={2} />. */\nexport function RangeCalendar({ value, defaultValue, month, visibleMonths, firstDay, min, max, unavailable, locale, today, labels, onChange, className, ...props }: RangeCalendarProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<RangeCalendarInstance | null>(null);\n const change = useLatest(onChange);\n const test = useLatest(unavailable);\n const start = useRef<RangeValue>(value !== undefined ? value : (defaultValue ?? null));\n const rules = typeof unavailable === 'function' ? 'function' : JSON.stringify(unavailable ?? null);\n useIsomorphicLayoutEffect(() => {\n const created = createRangeCalendar(ref.current, {\n value: value !== undefined ? value : start.current,\n month,\n visibleMonths,\n firstDay,\n min,\n max,\n // A function is read through a ref so a new closure each render does not rebuild the calendar.\n unavailable: typeof unavailable === 'function' ? (day) => (typeof test.current === 'function' ? test.current(day) : false) : unavailable,\n locale,\n today,\n labels,\n onChange: (range) => change.current?.(range),\n });\n instance.current = created;\n return () => {\n start.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [String(month ?? ''), visibleMonths, firstDay, String(min ?? ''), String(max ?? ''), rules, locale, String(today ?? '')]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined && instance.current && keyOf(value) !== keyOf(instance.current.value)) instance.current.setValue(value);\n }, [keyOf(value)]);\n return <div {...props} ref={ref} className={['mk-range-calendar', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { rangeKeys, toRange } from '../../core/date-range';\nimport type { DateInput } from '../../core/dates';\nimport { createDateRangePicker, type DateRangePickerInstance, type DateRangePickerOptions } from './engine';\n\ntype RangeValue = { start: DateInput; end: DateInput } | null;\n\nexport interface DateRangePickerProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'>, Omit<DateRangePickerOptions, 'value'> {\n /** Controlled range; without it the picker keeps its own (defaultValue). */\n value?: RangeValue;\n defaultValue?: RangeValue;\n}\n\nconst keyOf = (value: RangeValue | undefined) => {\n const range = toRange(value);\n return range ? JSON.stringify(rangeKeys(range)) : 'null';\n};\n\n/** <DateRangePicker value={range} onChange={setRange} presets={[…]} />. */\nexport function DateRangePicker({ value, defaultValue, min, max, unavailable, firstDay, locale, today, label, name, presets, disabled, onChange, className, ...props }: DateRangePickerProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<DateRangePickerInstance | null>(null);\n const change = useLatest(onChange);\n const test = useLatest(unavailable);\n const start = useRef<RangeValue>(value !== undefined ? value : (defaultValue ?? null));\n const rules = typeof unavailable === 'function' ? 'function' : JSON.stringify(unavailable ?? null);\n const presetKey = JSON.stringify(presets ?? null);\n useIsomorphicLayoutEffect(() => {\n const created = createDateRangePicker(ref.current, {\n value: value !== undefined ? value : start.current,\n min,\n max,\n unavailable: typeof unavailable === 'function' ? (day) => (typeof test.current === 'function' ? test.current(day) : false) : unavailable,\n firstDay,\n locale,\n today,\n label,\n name,\n presets,\n disabled,\n onChange: (range) => change.current?.(range),\n });\n instance.current = created;\n return () => {\n start.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [String(min ?? ''), String(max ?? ''), rules, firstDay, locale, String(today ?? ''), label, name, presetKey, disabled]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined && instance.current && keyOf(value) !== keyOf(instance.current.value)) instance.current.setValue(value);\n }, [keyOf(value)]);\n return <div {...props} ref={ref} className={['mk-date-range-picker', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createTooltip, type TooltipInstance, type TooltipOptions } from './engine';\n\nexport interface TooltipProps extends HTMLAttributes<HTMLSpanElement>, TooltipOptions {}\n\n/** <Tooltip content=\"Copiar enlace\"><button>…</button></Tooltip>: the first focusable child is the trigger. */\nexport function Tooltip({ content, placement, openDelay, closeDelay, interactive, arrow, onOpenChange, className, children, ...props }: TooltipProps) {\n const ref = useRef<HTMLSpanElement>(null);\n const instance = useRef<TooltipInstance | null>(null);\n const change = useLatest(onOpenChange);\n useIsomorphicLayoutEffect(() => {\n const created = createTooltip(ref.current, { content, placement, openDelay, closeDelay, interactive, arrow, onOpenChange: (open) => change.current?.(open) });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [placement, openDelay, closeDelay, interactive, arrow]);\n useIsomorphicLayoutEffect(() => {\n instance.current?.setContent(content ?? '');\n }, [content]);\n return (\n <span {...props} ref={ref} className={['mk-tooltip', className].filter(Boolean).join(' ')}>\n {children}\n </span>\n );\n}\n","'use client';\nimport { forwardRef, useImperativeHandle, useRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createPopover, type PopoverInstance, type PopoverOptions } from './engine';\n\nexport interface PopoverProps extends Omit<HTMLAttributes<HTMLDivElement>, 'content'>, PopoverOptions {\n /** The control that opens it (a button). */\n trigger: ReactNode;\n /** Controlled open state (optional). */\n open?: boolean;\n /** Extra class for the panel. */\n panelClassName?: string;\n}\n\nexport interface PopoverHandle {\n open(): void;\n close(): void;\n}\n\n/** <Popover trigger={<button>Filtros</button>}>…</Popover>: the panel grows out of the trigger. */\nexport const Popover = forwardRef<PopoverHandle, PopoverProps>(function Popover({ trigger, open, label, onOpenChange, panelClassName, className, children, ...props }, handle) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<PopoverInstance | null>(null);\n const change = useLatest(onOpenChange);\n useImperativeHandle(handle, () => ({ open: () => instance.current?.open(), close: () => instance.current?.close() }), []);\n useIsomorphicLayoutEffect(() => {\n const created = createPopover(ref.current, { label, onOpenChange: (value) => change.current?.(value) });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [label]);\n useIsomorphicLayoutEffect(() => {\n if (open === undefined || !instance.current || instance.current.isOpen === open) return;\n if (open) instance.current.open();\n else instance.current.close();\n }, [open]);\n return (\n <div {...props} ref={ref} className={['mk-popover', className].filter(Boolean).join(' ')}>\n <span data-mk-popover-trigger-slot=\"\" style={{ display: 'contents' }}>\n {trigger}\n </span>\n <dialog data-mk-popover-panel=\"\" className={panelClassName}>\n {children}\n </dialog>\n </div>\n );\n});\n","'use client';\nimport { useRef, type ButtonHTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createLoadingButton, type LoadingButtonInstance, type LoadingButtonOptions, type LoadingState } from './engine';\n\nexport interface LoadingButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onClick'>, Omit<LoadingButtonOptions, 'action'> {\n /** Runs on click; its promise drives loading → success / error. */\n action?: () => unknown;\n /** Controlled state (optional): drive it yourself instead of `action`. */\n state?: LoadingState;\n}\n\n/** <LoadingButton action={save} className=\"mk-button\">Guardar</LoadingButton>. */\nexport function LoadingButton({ action, state, labels, compact, resetAfter, onStateChange, className, children, type = 'button', ...props }: LoadingButtonProps) {\n const ref = useRef<HTMLButtonElement>(null);\n const instance = useRef<LoadingButtonInstance | null>(null);\n const run = useLatest(action);\n const change = useLatest(onStateChange);\n const key = JSON.stringify(labels ?? null);\n useIsomorphicLayoutEffect(() => {\n const created = createLoadingButton(ref.current, {\n labels,\n compact,\n resetAfter,\n action: action ? () => run.current?.() : undefined,\n onStateChange: (next) => change.current?.(next),\n });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [key, compact, resetAfter, Boolean(action)]);\n useIsomorphicLayoutEffect(() => {\n if (state && instance.current && instance.current.state !== state) instance.current.setState(state);\n }, [state]);\n return (\n <button {...props} type={type} ref={ref} className={['mk-loading-button', className].filter(Boolean).join(' ')}>\n <span data-mk-loading-label=\"\">{children}</span>\n </button>\n );\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createBreadcrumb, type BreadcrumbInstance, type BreadcrumbItem, type BreadcrumbOptions } from './engine';\n\nexport interface BreadcrumbProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'>, Omit<BreadcrumbOptions, 'items'> {\n items: BreadcrumbItem[];\n}\n\n/** <Breadcrumb items={path} onNavigate={(item, i, event) => { event.preventDefault(); go(item.href) }} />. */\nexport function Breadcrumb({ items, label, maxItems, onNavigate, className, ...props }: BreadcrumbProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<BreadcrumbInstance | null>(null);\n const navigate = useLatest(onNavigate);\n const key = JSON.stringify(items);\n useIsomorphicLayoutEffect(() => {\n const created = createBreadcrumb(ref.current, { items, label, maxItems, onNavigate: (item, index, event) => navigate.current?.(item, index, event) });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [label, maxItems]);\n useIsomorphicLayoutEffect(() => {\n if (instance.current && JSON.stringify(instance.current.items) !== key) instance.current.setItems(items);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [key]);\n return <div {...props} ref={ref} className={['mk-breadcrumb', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createEmptyState, type EmptyStateInstance, type EmptyStateOptions } from './engine';\n\nexport interface EmptyStateProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title' | 'children'>, EmptyStateOptions {}\n\n/** <EmptyState illustration=\"search\" title=\"Sin resultados\" actions={[{ id: 'clear', label: 'Borrar filtros' }]} onAction={…} />. */\nexport function EmptyState({ illustration, title, description, actions, loop, onAction, className, ...props }: EmptyStateProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<EmptyStateInstance | null>(null);\n const action = useLatest(onAction);\n const content = { illustration, title, description, actions };\n const key = JSON.stringify(content);\n useIsomorphicLayoutEffect(() => {\n const created = createEmptyState(ref.current, { ...content, loop, onAction: (id, event) => action.current?.(id, event) });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [loop]);\n const first = useRef(true);\n useIsomorphicLayoutEffect(() => {\n if (first.current) {\n first.current = false;\n return;\n }\n instance.current?.update(content);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [key]);\n return <div {...props} ref={ref} className={['mk-empty-state', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createStatCard, type StatCardInstance, type StatCardOptions } from './engine';\n\nexport interface StatCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'>, StatCardOptions {}\n\n/** <StatCard label=\"Ingresos\" value={128400} previous={118900} format={{ style: 'currency', currency: 'MXN' }} series={week} />. */\nexport function StatCard({ label, value, previous, format, locale, positive, comparison, series, target, countOnView, className, ...props }: StatCardProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<StatCardInstance | null>(null);\n const formatter = useLatest(format);\n const custom = typeof format === 'function';\n const data = { label, value, previous, positive, comparison, series, target, format: custom ? undefined : format };\n const key = JSON.stringify(data);\n const options = () => ({ ...data, format: custom ? (n: number) => (formatter.current as (n: number) => string)(n) : data.format });\n useIsomorphicLayoutEffect(() => {\n const created = createStatCard(ref.current, { ...options(), locale, countOnView });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale, countOnView]);\n const first = useRef(true);\n useIsomorphicLayoutEffect(() => {\n if (first.current) {\n first.current = false;\n return;\n }\n instance.current?.update(options());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [key, custom]);\n return <div {...props} ref={ref} className={['mk-stat-card', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createChartTooltip, type ChartTooltipInstance, type ChartTooltipOptions } from './engine';\n\nexport interface ChartTooltipProps extends HTMLAttributes<HTMLDivElement>, ChartTooltipOptions {}\n\n/**\n * <ChartTooltip share><Chart tooltip={false} … /></ChartTooltip>, or over any chart with labels, series,\n * inset, min and max.\n */\nexport function ChartTooltip({ labels, series, align, inset, min, max, formatValue, delta, share, total, sort, pin, label, onIndexChange, className, children, ...props }: ChartTooltipProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<ChartTooltipInstance | null>(null);\n const format = useLatest(formatValue);\n const change = useLatest(onIndexChange);\n const data = { labels, series, align, inset, min, max, delta, share, total, sort, pin, label };\n const key = JSON.stringify(data);\n const options = (): ChartTooltipOptions => ({\n ...data,\n formatValue: formatValue ? (value) => format.current?.(value) ?? String(value) : undefined,\n onIndexChange: (index) => change.current?.(index),\n });\n useIsomorphicLayoutEffect(() => {\n const created = createChartTooltip(ref.current, options());\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const first = useRef(true);\n useIsomorphicLayoutEffect(() => {\n if (first.current) {\n first.current = false;\n return;\n }\n instance.current?.update(options());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [key, Boolean(formatValue)]);\n return (\n <div {...props} ref={ref} className={['mk-chart-tooltip', className].filter(Boolean).join(' ')}>\n {children}\n </div>\n );\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createMultiSelect, type MultiSelectInstance, type MultiSelectOptions } from './engine';\n\nexport interface MultiSelectProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'>, MultiSelectOptions {\n /** Controlled values; without it the field keeps its own (defaultValue). */\n value?: string[];\n defaultValue?: string[];\n}\n\n/** <MultiSelect options={people} value={chosen} onChange={setChosen} max={3} />. */\nexport function MultiSelect({ options, value, defaultValue, placeholder, label, name, max, closeOnSelect, disabled, onChange, className, ...props }: MultiSelectProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<MultiSelectInstance | null>(null);\n const change = useLatest(onChange);\n const start = useRef(value ?? defaultValue ?? []);\n const optionsKey = JSON.stringify(options ?? null);\n useIsomorphicLayoutEffect(() => {\n const created = createMultiSelect(ref.current, { options, value: value ?? start.current, placeholder, label, name, max, closeOnSelect, disabled, onChange: (next) => change.current?.(next) });\n instance.current = created;\n return () => {\n start.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [placeholder, label, name, max, closeOnSelect, disabled]);\n useIsomorphicLayoutEffect(() => {\n if (options && instance.current) instance.current.setOptions(options);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [optionsKey]);\n const valueKey = JSON.stringify(value ?? null);\n useIsomorphicLayoutEffect(() => {\n if (value && instance.current && JSON.stringify(instance.current.value) !== valueKey) instance.current.setValue(value);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [valueKey]);\n return <div {...props} ref={ref} className={['mk-multi-select', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createTagInput, type TagInputInstance, type TagInputOptions } from './engine';\n\nexport interface TagInputProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'>, TagInputOptions {\n /** Controlled tags; without it the field keeps its own (defaultValue). */\n value?: string[];\n defaultValue?: string[];\n}\n\n/** <TagInput value={tags} onChange={setTags} suggestions={known} max={8} />. */\nexport function TagInput({ value, defaultValue, suggestions, placeholder, label, name, max, restrict, allowDuplicates, validate, transform, disabled, onChange, className, ...props }: TagInputProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<TagInputInstance | null>(null);\n const change = useLatest(onChange);\n const check = useLatest(validate);\n const shape = useLatest(transform);\n const start = useRef(value ?? defaultValue ?? []);\n useIsomorphicLayoutEffect(() => {\n const created = createTagInput(ref.current, {\n value: value ?? start.current,\n suggestions,\n placeholder,\n label,\n name,\n max,\n restrict,\n allowDuplicates,\n disabled,\n validate: validate ? (tag, tags) => check.current?.(tag, tags) : undefined,\n transform: transform ? (tag) => shape.current?.(tag) ?? tag : undefined,\n onChange: (next) => change.current?.(next),\n });\n instance.current = created;\n return () => {\n start.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [placeholder, label, name, max, restrict, allowDuplicates, disabled, Boolean(validate), Boolean(transform)]);\n const suggestionsKey = JSON.stringify(suggestions ?? null);\n useIsomorphicLayoutEffect(() => {\n if (suggestions) instance.current?.setSuggestions(suggestions);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [suggestionsKey]);\n const valueKey = JSON.stringify(value ?? null);\n useIsomorphicLayoutEffect(() => {\n if (value && instance.current && JSON.stringify(instance.current.value) !== valueKey) instance.current.setValue(value);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [valueKey]);\n return <div {...props} ref={ref} className={['mk-tag-input', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport type { DateInput } from '../../core/dates';\nimport { createDateTimePicker, dateTimeKey, toDateTimeValue, type DateTimePickerInstance, type DateTimePickerOptions } from './engine';\n\nexport interface DateTimePickerProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'>, Omit<DateTimePickerOptions, 'value'> {\n /** Controlled value (Date or 'YYYY-MM-DDTHH:MM'); without it the picker keeps its own (defaultValue). */\n value?: DateInput | null;\n defaultValue?: DateInput | null;\n}\n\nconst keyOf = (value: DateInput | null | undefined) => {\n const date = toDateTimeValue(value);\n return date ? dateTimeKey(date) : 'null';\n};\n\n/** <DateTimePicker value={when} onChange={setWhen} minuteStep={15} />. */\nexport function DateTimePicker({ value, defaultValue, min, max, locale, hourCycle, minuteStep, firstDay, unavailable, today, label, name, disabled, onChange, className, ...props }: DateTimePickerProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<DateTimePickerInstance | null>(null);\n const change = useLatest(onChange);\n const test = useLatest(unavailable);\n const start = useRef<DateInput | null>(value !== undefined ? value : (defaultValue ?? null));\n const rules = typeof unavailable === 'function' ? 'function' : JSON.stringify(unavailable ?? null);\n useIsomorphicLayoutEffect(() => {\n const created = createDateTimePicker(ref.current, {\n value: value !== undefined ? value : start.current,\n min,\n max,\n locale,\n hourCycle,\n minuteStep,\n firstDay,\n unavailable: typeof unavailable === 'function' ? (day) => (typeof test.current === 'function' ? test.current(day) : false) : unavailable,\n today,\n label,\n name,\n disabled,\n onChange: (next) => change.current?.(next),\n });\n instance.current = created;\n return () => {\n start.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [String(min ?? ''), String(max ?? ''), locale, hourCycle, minuteStep, firstDay, rules, String(today ?? ''), label, name, disabled]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined && instance.current && keyOf(value) !== keyOf(instance.current.value)) instance.current.setValue(value);\n }, [keyOf(value)]);\n return <div {...props} ref={ref} className={['mk-date-time-picker', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport type { FilterGroup } from '../../core/filter';\nimport { createFilterBuilder, type FilterBuilderInstance, type FilterBuilderOptions } from './engine';\n\nexport interface FilterBuilderProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'>, FilterBuilderOptions {\n /** Controlled filter; without it the builder keeps its own (defaultValue). */\n value?: FilterGroup;\n defaultValue?: FilterGroup;\n}\n\n/** <FilterBuilder fields={fields} value={filter} onChange={setFilter} />. */\nexport function FilterBuilder({ fields, value, defaultValue, maxDepth, label, summary, onChange, className, ...props }: FilterBuilderProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<FilterBuilderInstance | null>(null);\n const change = useLatest(onChange);\n const start = useRef(value ?? defaultValue);\n const fieldsKey = JSON.stringify(fields);\n useIsomorphicLayoutEffect(() => {\n const created = createFilterBuilder(ref.current, { fields, value: value ?? start.current, maxDepth, label, summary, onChange: (next) => change.current?.(next) });\n instance.current = created;\n return () => {\n start.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fieldsKey, maxDepth, label, summary]);\n const valueKey = JSON.stringify(value ?? null);\n useIsomorphicLayoutEffect(() => {\n if (value && instance.current && JSON.stringify(instance.current.value) !== valueKey) instance.current.setValue(value);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [valueKey]);\n return <div {...props} ref={ref} className={['mk-filter-builder', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../react/use-recipe';\nimport { createTimeline, type TimelineEvent, type TimelineInstance, type TimelineOptions } from './engine';\n\nexport interface TimelineProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'>, Omit<TimelineOptions, 'events'> {\n events: TimelineEvent[];\n}\n\n/**\n * <Timeline events={history} group />. Changing `events` updates in place: an event added at either end grows in,\n * one that changes state recolours its dot, one that goes folds away.\n */\nexport function Timeline({ events, layout, group, relative, locale, label, className, ...props }: TimelineProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<TimelineInstance | null>(null);\n const shown = useRef<TimelineEvent[]>(events);\n useIsomorphicLayoutEffect(() => {\n const created = createTimeline(ref.current, { events: shown.current, layout, group, relative, locale, label });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [layout, group, relative, locale, label]);\n const key = JSON.stringify(events);\n useIsomorphicLayoutEffect(() => {\n const timeline = instance.current;\n const before = shown.current;\n shown.current = events;\n if (!timeline || JSON.stringify(timeline.events) === key) return;\n const ids = new Set(before.map((event) => event.id));\n const fresh = events.filter((event) => !ids.has(event.id));\n const kept = events.filter((event) => ids.has(event.id));\n const gone = before.filter((old) => !events.some((event) => event.id === old.id));\n const stayed = before.filter((old) => !gone.includes(old));\n const sameOrder = kept.every((event, i) => stayed[i]?.id === event.id);\n /** The events that stayed take their changes (a new state recolours a dot). */\n const patch = () => {\n for (const event of kept) {\n const old = before.find((entry) => entry.id === event.id);\n // Keys the new version dropped are cleared too.\n if (old && JSON.stringify(old) !== JSON.stringify(event)) timeline.update(event.id, { ...Object.fromEntries(Object.keys(old).map((name) => [name, undefined])), ...event });\n }\n };\n const first = events[0]?.id;\n const last = events[events.length - 1]?.id;\n // One event added at an end grows in; one taken out folds away; anything else is redrawn.\n if (sameOrder && !gone.length && fresh.length === 1 && (fresh[0]!.id === first || fresh[0]!.id === last)) {\n patch();\n timeline.add(fresh[0]!, fresh[0]!.id === first ? 'start' : 'end');\n } else if (sameOrder && !fresh.length && gone.length <= 1) {\n patch();\n if (gone[0]) timeline.remove(gone[0].id);\n } else timeline.setEvents(events);\n }, [key]);\n return <div {...props} ref={ref} className={['mk-timeline', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { forwardRef, useImperativeHandle, useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createActivityFeed, type ActivityFeedInstance, type ActivityFeedOptions, type ActivityItem } from './engine';\n\nexport interface ActivityFeedProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'>, Omit<ActivityFeedOptions, 'items'> {\n /** Initial entries; later activity goes through the handle (prepend / append). */\n items?: ActivityItem[];\n}\n\nexport interface ActivityFeedHandle {\n prepend(items: ActivityItem[]): void;\n append(items: ActivityItem[]): void;\n}\n\n/** <ActivityFeed ref={feed} items={recent} onLoadMore={loadOlder} />, then feed.current.prepend(live). */\nexport const ActivityFeed = forwardRef<ActivityFeedHandle, ActivityFeedProps>(function ActivityFeed({ items, locale, label, emptyLabel, onLoadMore, className, ...props }, handle) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<ActivityFeedInstance | null>(null);\n const load = useLatest(onLoadMore);\n useImperativeHandle(handle, () => ({ prepend: (next) => instance.current?.prepend(next), append: (next) => instance.current?.append(next) }), []);\n useIsomorphicLayoutEffect(() => {\n const created = createActivityFeed(ref.current, { items, locale, label, emptyLabel, onLoadMore: onLoadMore ? () => load.current?.() ?? [] : undefined });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [locale, label, emptyLabel, Boolean(onLoadMore)]);\n return <div {...props} ref={ref} className={['mk-activity-feed', className].filter(Boolean).join(' ')} />;\n});\n","'use client';\nimport { forwardRef, useImperativeHandle, useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createTreeView, type TreeNode, type TreeViewInstance, type TreeViewOptions } from './engine';\n\nexport interface TreeViewProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect' | 'children' | 'draggable'>, Omit<TreeViewOptions, 'nodes'> {\n nodes: TreeNode[];\n}\n\nexport type TreeViewHandle = Pick<TreeViewInstance, 'expand' | 'collapse' | 'expandAll' | 'collapseAll' | 'reveal' | 'filter'>;\n\n/** <TreeView nodes={tree} checkable checked={ids} onCheck={setIds} search />. */\nexport const TreeView = forwardRef<TreeViewHandle, TreeViewProps>(function TreeView(\n { nodes, checkable, checked, expanded, selected, search, label, loadChildren, renderLabel, searchText, icons, draggable, onSelect, onCheck, onExpand, onMove, className, ...props },\n handle,\n) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<TreeViewInstance | null>(null);\n const select = useLatest(onSelect);\n const check = useLatest(onCheck);\n const expand = useLatest(onExpand);\n const load = useLatest(loadChildren);\n const draw = useLatest(renderLabel);\n const text = useLatest(searchText);\n const moved = useLatest(onMove);\n useImperativeHandle(\n handle,\n () => ({\n expand: (id, animate) => instance.current?.expand(id, animate),\n collapse: (id, animate) => instance.current?.collapse(id, animate),\n expandAll: () => instance.current?.expandAll(),\n collapseAll: () => instance.current?.collapseAll(),\n reveal: (id) => instance.current?.reveal(id),\n filter: (query) => instance.current?.filter(query),\n }),\n [],\n );\n const nodesKey = JSON.stringify(nodes);\n useIsomorphicLayoutEffect(() => {\n const created = createTreeView(ref.current, {\n nodes: JSON.parse(nodesKey) as TreeNode[],\n checkable,\n checked,\n expanded,\n selected,\n search,\n label,\n loadChildren: loadChildren ? (node) => load.current?.(node) ?? [] : undefined,\n renderLabel: renderLabel ? (node, element, query) => draw.current?.(node, element, query) : undefined,\n searchText: searchText ? (node) => text.current?.(node) ?? node.label : undefined,\n onSelect: (node) => select.current?.(node),\n onCheck: (ids) => check.current?.(ids),\n onExpand: (node, open) => expand.current?.(node, open),\n icons,\n draggable,\n onMove: (node, into) => moved.current?.(node, into),\n });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [checkable, String(search), label, Boolean(loadChildren), Boolean(renderLabel), Boolean(searchText), icons, draggable]);\n const first = useRef(true);\n useIsomorphicLayoutEffect(() => {\n if (first.current) {\n first.current = false;\n return;\n }\n instance.current?.setNodes(JSON.parse(nodesKey) as TreeNode[]);\n }, [nodesKey]);\n const checkedKey = JSON.stringify(checked ?? null);\n useIsomorphicLayoutEffect(() => {\n if (checked && instance.current && JSON.stringify([...instance.current.checked].sort()) !== JSON.stringify([...checked].sort())) instance.current.setChecked(checked);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [checkedKey]);\n useIsomorphicLayoutEffect(() => {\n if (selected !== undefined && instance.current && instance.current.selected !== selected) instance.current.select(selected);\n }, [selected]);\n return <div {...props} ref={ref} className={['mk-tree-view', className].filter(Boolean).join(' ')} />;\n});\n","'use client';\nimport { forwardRef, useImperativeHandle, useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createFileExplorer, type FileEntry, type FileExplorerInstance, type FileExplorerOptions } from './engine';\n\nexport interface FileExplorerProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'children'>, Omit<FileExplorerOptions, 'files'> {\n files: FileEntry[];\n}\n\nexport type FileExplorerHandle = Pick<FileExplorerInstance, 'open' | 'up' | 'setView' | 'select' | 'createFolder' | 'rename' | 'remove' | 'move'>;\n\n/**\n * <FileExplorer files={files} onChange={setFiles} onOpen={preview} />. Hand back what onChange gives (or nothing:\n * the explorer keeps its own copy); different files from the app replace the shown ones.\n */\nexport const FileExplorer = forwardRef<FileExplorerHandle, FileExplorerProps>(function FileExplorer(\n { files, rootLabel, folder, view, tree, readOnly, locale, label, onOpen, onNavigate, onSelectionChange, onViewChange, onChange, className, ...props },\n handle,\n) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<FileExplorerInstance | null>(null);\n const open = useLatest(onOpen);\n const navigate = useLatest(onNavigate);\n const select = useLatest(onSelectionChange);\n const switchView = useLatest(onViewChange);\n const change = useLatest(onChange);\n useImperativeHandle(\n handle,\n () => ({\n open: (id) => instance.current?.open(id),\n up: () => instance.current?.up(),\n setView: (next) => instance.current?.setView(next),\n select: (ids) => instance.current?.select(ids),\n createFolder: (name) => instance.current?.createFolder(name) ?? null,\n rename: (id, name) => instance.current?.rename(id, name),\n remove: (ids) => instance.current?.remove(ids),\n move: (ids, to) => instance.current?.move(ids, to),\n }),\n [],\n );\n const filesKey = JSON.stringify(files);\n useIsomorphicLayoutEffect(() => {\n const created = createFileExplorer(ref.current, {\n files: JSON.parse(filesKey) as FileEntry[],\n rootLabel,\n folder,\n view,\n tree,\n readOnly,\n locale,\n label,\n onOpen: (entry) => open.current?.(entry),\n onNavigate: (entry) => navigate.current?.(entry),\n onSelectionChange: (ids) => select.current?.(ids),\n onViewChange: (next) => switchView.current?.(next),\n onChange: (next, detail) => change.current?.(next, detail),\n });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [rootLabel, tree, readOnly, locale, label]);\n useIsomorphicLayoutEffect(() => {\n const explorer = instance.current;\n // The echo of a change made in the explorer is already shown.\n if (explorer && JSON.stringify(explorer.files) !== filesKey) explorer.setFiles(JSON.parse(filesKey) as FileEntry[]);\n }, [filesKey]);\n useIsomorphicLayoutEffect(() => {\n if (view && instance.current && instance.current.view !== view) instance.current.setView(view);\n }, [view]);\n useIsomorphicLayoutEffect(() => {\n if (folder && instance.current && instance.current.folder !== folder) instance.current.open(folder);\n }, [folder]);\n return <div {...props} ref={ref} className={['mk-file-explorer', className].filter(Boolean).join(' ')} />;\n});\n","'use client';\nimport { forwardRef, useImperativeHandle, useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createJsonViewer, type JsonViewerInstance, type JsonViewerOptions } from './engine';\n\nexport interface JsonViewerProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect' | 'onCopy' | 'children'>, JsonViewerOptions {}\n\nexport type JsonViewerHandle = Pick<JsonViewerInstance, 'expandAll' | 'collapseAll' | 'reveal' | 'filter' | 'copy'>;\n\n/** <JsonViewer data={response} expandDepth={2} search />. New data keeps what was open and flashes what changed. */\nexport const JsonViewer = forwardRef<JsonViewerHandle, JsonViewerProps>(function JsonViewer(\n { data, expandDepth, rootName, search, toolbar, sortKeys, label, onSelect, onCopy, className, ...props },\n handle,\n) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<JsonViewerInstance | null>(null);\n const select = useLatest(onSelect);\n const copied = useLatest(onCopy);\n const shown = useRef(data);\n useImperativeHandle(\n handle,\n () => ({\n expandAll: () => instance.current?.expandAll(),\n collapseAll: () => instance.current?.collapseAll(),\n reveal: (path) => instance.current?.reveal(path),\n filter: (query) => instance.current?.filter(query),\n copy: (path) => instance.current?.copy(path) ?? Promise.resolve(false),\n }),\n [],\n );\n useIsomorphicLayoutEffect(() => {\n const created = createJsonViewer(ref.current, {\n data: shown.current,\n expandDepth,\n rootName,\n search,\n toolbar,\n sortKeys,\n label,\n onSelect: (path, value) => select.current?.(path, value),\n onCopy: (text, path) => copied.current?.(text, path),\n });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [expandDepth, rootName, String(search), toolbar, sortKeys, label]);\n useIsomorphicLayoutEffect(() => {\n if (shown.current === data) return;\n shown.current = data;\n instance.current?.setData(data);\n }, [data]);\n return <div {...props} ref={ref} className={['mk-json-viewer', className].filter(Boolean).join(' ')} />;\n});\n","'use client';\nimport { forwardRef, useImperativeHandle, useRef, useState, type HTMLAttributes, type ReactElement, type ReactNode, type Ref } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport type { VirtualRange } from '../../core/virtual';\nimport { createVirtualList, type VirtualKey, type VirtualListInstance, type VirtualListOptions, type VirtualScrollOptions } from './engine';\n\nexport interface VirtualListProps<T> extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect' | 'children'>, Omit<VirtualListOptions<T>, 'items' | 'renderItem' | 'onRange'> {\n items: T[];\n /** A row's content; without it, its text. */\n renderItem?: (item: T, index: number) => ReactNode;\n}\n\nexport interface VirtualListHandle {\n scrollToIndex(index: number, options?: VirtualScrollOptions): void;\n}\n\nconst keyFor = <T,>(getKey: VirtualListOptions<T>['getKey'], item: T, index: number): VirtualKey => {\n if (getKey) return getKey(item, index);\n const id = item && typeof item === 'object' ? (item as { id?: unknown }).id : undefined;\n return typeof id === 'string' || typeof id === 'number' ? id : index;\n};\n\n/**\n * <VirtualList items={rows} itemHeight={44} renderItem={(row) => <Row {...row} />} selectable=\"multiple\" />.\n * React renders only the rows in view; the engine adopts its viewport, and places, measures and picks the rows.\n */\nfunction VirtualListInner<T>(\n { items, renderItem, itemHeight, estimatedHeight, overscan, itemText, getKey, selectable, selected, label, emptyLabel, locale, onSelect, onActivate, onEndReached, className, ...props }: VirtualListProps<T>,\n handle: Ref<VirtualListHandle>,\n) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<VirtualListInstance<T> | null>(null);\n const [range, setRange] = useState<VirtualRange>({ start: 0, end: 0 });\n const shown = useRef(items);\n const select = useLatest(onSelect);\n const activate = useLatest(onActivate);\n const more = useLatest(onEndReached);\n const text = useLatest(itemText);\n const key = useLatest(getKey);\n useImperativeHandle(handle, () => ({ scrollToIndex: (index, options) => instance.current?.scrollToIndex(index, options) }), []);\n const custom = Boolean(renderItem);\n useIsomorphicLayoutEffect(() => {\n const created = createVirtualList<T>(ref.current, {\n items: shown.current,\n itemHeight,\n estimatedHeight,\n overscan,\n selectable,\n selected,\n label,\n emptyLabel,\n locale,\n itemText: itemText ? (item) => text.current?.(item) ?? '' : undefined,\n getKey: (item, index) => keyFor(key.current, item, index),\n onSelect: (keys, chosen) => select.current?.(keys, chosen),\n onActivate: (item, index) => activate.current?.(item, index),\n onEndReached: onEndReached ? () => more.current?.() : undefined,\n onRange: custom ? setRange : undefined,\n });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [itemHeight, estimatedHeight, overscan, String(selectable), label, emptyLabel, locale, custom, Boolean(onEndReached), Boolean(itemText)]);\n useIsomorphicLayoutEffect(() => {\n if (shown.current === items) return;\n shown.current = items;\n instance.current?.setItems(items);\n }, [items]);\n const selectedKey = JSON.stringify(selected ?? null);\n useIsomorphicLayoutEffect(() => {\n if (selected && instance.current && JSON.stringify(instance.current.selected) !== JSON.stringify(selected)) instance.current.select(selected);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedKey]);\n // After React drew the window: place and measure it.\n useIsomorphicLayoutEffect(() => {\n if (custom) instance.current?.refresh();\n });\n return (\n <div {...props} ref={ref} className={['mk-virtual-list', className].filter(Boolean).join(' ')}>\n <div data-mk-vl-viewport=\"\">\n <div data-mk-vl-spacer=\"\">\n {renderItem\n ? items.slice(range.start, Math.min(range.end, items.length)).map((item, i) => {\n const index = range.start + i;\n return (\n <div key={keyFor(getKey, item, index)} data-mk-vl-item=\"\" data-index={index}>\n {renderItem(item, index)}\n </div>\n );\n })\n : null}\n </div>\n </div>\n </div>\n );\n}\n\nexport const VirtualList = forwardRef(VirtualListInner) as <T>(props: VirtualListProps<T> & { ref?: Ref<VirtualListHandle> }) => ReactElement;\n","'use client';\nimport { Children, forwardRef, useImperativeHandle, useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createResizablePanel, type ResizablePanelInstance, type ResizablePanelOptions } from './engine';\n\nexport interface ResizablePanelProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onResize'>, ResizablePanelOptions {}\n\nexport type ResizablePanelHandle = Pick<ResizablePanelInstance, 'setSizes' | 'collapse' | 'expand' | 'toggle' | 'reset'>;\n\n/**\n * <ResizablePanel sizes={[25, 75]} collapsible={[0]} onResizeEnd={save}><aside /><main /></ResizablePanel>.\n * New `sizes` glide there; adding or taking away a panel starts it again.\n */\nexport const ResizablePanel = forwardRef<ResizablePanelHandle, ResizablePanelProps>(function ResizablePanel(\n { orientation, sizes, min, max, collapsible, collapsed, step, storageKey, handleButtons, labels, onResize, onResizeEnd, onCollapse, className, children, ...props },\n handle,\n) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<ResizablePanelInstance | null>(null);\n const resize = useLatest(onResize);\n const resizeEnd = useLatest(onResizeEnd);\n const collapse = useLatest(onCollapse);\n const shown = useRef(sizes);\n useImperativeHandle(\n handle,\n () => ({\n setSizes: (next, animate) => instance.current?.setSizes(next, animate),\n collapse: (index) => instance.current?.collapse(index),\n expand: (index) => instance.current?.expand(index),\n toggle: (index) => instance.current?.toggle(index),\n reset: () => instance.current?.reset(),\n }),\n [],\n );\n const count = Children.count(children);\n useIsomorphicLayoutEffect(() => {\n const created = createResizablePanel(ref.current, {\n orientation,\n sizes: shown.current,\n min,\n max,\n collapsible,\n collapsed,\n step,\n storageKey,\n handleButtons,\n labels,\n onResize: (next) => resize.current?.(next),\n onResizeEnd: (next) => resizeEnd.current?.(next),\n onCollapse: (index, shut) => collapse.current?.(index, shut),\n });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [count, min, max, String(collapsible), step, storageKey, handleButtons, String(labels)]);\n useIsomorphicLayoutEffect(() => {\n if (orientation) instance.current?.setOrientation(orientation);\n }, [orientation]);\n const sizesKey = JSON.stringify(sizes ?? null);\n useIsomorphicLayoutEffect(() => {\n if (!sizes || JSON.stringify(shown.current ?? null) === sizesKey) return;\n shown.current = sizes;\n instance.current?.setSizes(sizes);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [sizesKey]);\n return (\n <div {...props} ref={ref} className={['mk-resizable-panel', className].filter(Boolean).join(' ')}>\n {children}\n </div>\n );\n});\n","'use client';\nimport { forwardRef, useImperativeHandle, useRef, type HTMLAttributes, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createSplitView, type SplitViewInstance, type SplitViewOptions } from './engine';\n\nexport interface SplitViewProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'children'>, SplitViewOptions {\n /** The two areas. */\n children: [ReactNode, ReactNode];\n}\n\nexport type SplitViewHandle = Pick<SplitViewInstance, 'setRatio' | 'collapse' | 'expand' | 'toggle'>;\n\n/** <SplitView ratio={0.35} stackBelow={640} labels={['Bandeja', 'Mensaje']}><List /><Detail /></SplitView>. A new `ratio` glides there. */\nexport const SplitView = forwardRef<SplitViewHandle, SplitViewProps>(function SplitView(\n { orientation, ratio, min, collapsible, stackBelow, storageKey, labels, onChange, onCollapse, className, children, ...props },\n handle,\n) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<SplitViewInstance | null>(null);\n const change = useLatest(onChange);\n const collapse = useLatest(onCollapse);\n const shown = useRef(ratio);\n useImperativeHandle(\n handle,\n () => ({\n setRatio: (next, animate) => instance.current?.setRatio(next, animate),\n collapse: (side) => instance.current?.collapse(side),\n expand: () => instance.current?.expand(),\n toggle: (side) => instance.current?.toggle(side),\n }),\n [],\n );\n useIsomorphicLayoutEffect(() => {\n const created = createSplitView(ref.current, {\n orientation,\n ratio: shown.current,\n min,\n collapsible,\n stackBelow,\n storageKey,\n labels,\n onChange: (next) => change.current?.(next),\n onCollapse: (side) => collapse.current?.(side),\n });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [orientation, min, String(collapsible), stackBelow, storageKey, String(labels)]);\n useIsomorphicLayoutEffect(() => {\n if (ratio === undefined || ratio === shown.current) return;\n shown.current = ratio;\n instance.current?.setRatio(ratio);\n }, [ratio]);\n return (\n <div {...props} ref={ref} className={['mk-split-view', className].filter(Boolean).join(' ')}>\n {children[0]}\n {children[1]}\n </div>\n );\n});\n","'use client';\nimport { forwardRef, useImperativeHandle, useRef, type HTMLAttributes, type ReactElement, type Ref } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createDataTable, type DataRow, type DataTableInstance, type DataTableOptions } from './engine';\n\nexport interface DataTableProps<T extends DataRow> extends Omit<HTMLAttributes<HTMLDivElement>, 'children'>, Omit<DataTableOptions<T>, 'rows'> {\n rows: T[];\n}\n\nexport type DataTableHandle<T extends DataRow = DataRow> = Pick<\n DataTableInstance<T>,\n 'sortBy' | 'setPage' | 'setPageSize' | 'setQuery' | 'setFilter' | 'setColumnVisible' | 'select' | 'removeRows' | 'updateRow'\n>;\n\n/**\n * <DataTable columns={columns} rows={rows} selectable actions={[…]} onAction={(id, row) => …} />.\n * New rows go in place (sorting, filters and selection stay); cells are text (`format`) or drawn by `render`.\n */\nfunction DataTableInner<T extends DataRow>(\n {\n columns, rows, rowKey, caption, pageSize, pageSizes, selectable, search, filters, filter, columnsMenu, actions, bulkActions, sort, loading, emptyTitle, emptyDescription, locale,\n onSortChange, onSelectionChange, onAction, onBulkAction, onPageChange, onFilterChange, onRender, className, ...props\n }: DataTableProps<T>,\n handle: Ref<DataTableHandle<T>>,\n) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<DataTableInstance<T> | null>(null);\n const shown = useRef(rows);\n const callbacks = useLatest({ onSortChange, onSelectionChange, onAction, onBulkAction, onPageChange, onFilterChange, onRender });\n useImperativeHandle(\n handle,\n () => ({\n sortBy: (key, direction) => instance.current?.sortBy(key, direction),\n setPage: (page) => instance.current?.setPage(page),\n setPageSize: (size) => instance.current?.setPageSize(size),\n setQuery: (query) => instance.current?.setQuery(query),\n setFilter: (next) => instance.current?.setFilter(next),\n setColumnVisible: (key, visible) => instance.current?.setColumnVisible(key, visible),\n select: (ids) => instance.current?.select(ids),\n removeRows: (ids) => instance.current?.removeRows(ids),\n updateRow: (id, patch) => instance.current?.updateRow(id, patch),\n }),\n [],\n );\n // Columns are compared by what they show (functions in them do not restart the table).\n const columnsKey = JSON.stringify((columns ?? []).map(({ key, label, type, hidden, sortable, filterable, align, width, options: choices }) => [key, label, type, hidden, sortable, filterable, align, width, choices]));\n const setupKey = JSON.stringify([columnsKey, rowKey, caption, pageSize, pageSizes, selectable, search, filters, columnsMenu, actions, bulkActions, emptyTitle, emptyDescription, locale]);\n useIsomorphicLayoutEffect(() => {\n const created = createDataTable<T>(ref.current, {\n columns,\n rows: shown.current,\n rowKey,\n caption,\n pageSize,\n pageSizes,\n selectable,\n search,\n filters,\n filter,\n columnsMenu,\n actions,\n bulkActions,\n sort,\n loading,\n emptyTitle,\n emptyDescription,\n locale,\n onSortChange: (next) => callbacks.current.onSortChange?.(next),\n onSelectionChange: (ids, chosen) => callbacks.current.onSelectionChange?.(ids, chosen),\n onAction: (action, row) => callbacks.current.onAction?.(action, row),\n onBulkAction: (action, chosen) => callbacks.current.onBulkAction?.(action, chosen),\n onPageChange: (page) => callbacks.current.onPageChange?.(page),\n onFilterChange: (next, query) => callbacks.current.onFilterChange?.(next, query),\n onRender: (body) => callbacks.current.onRender?.(body),\n });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [setupKey]);\n useIsomorphicLayoutEffect(() => {\n if (shown.current === rows) return;\n shown.current = rows;\n instance.current?.setRows(rows);\n }, [rows]);\n useIsomorphicLayoutEffect(() => {\n instance.current?.setLoading(Boolean(loading));\n }, [loading]);\n return <div {...props} ref={ref} className={['mk-data-table', className].filter(Boolean).join(' ')} />;\n}\n\nexport const DataTable = forwardRef(DataTableInner) as <T extends DataRow>(props: DataTableProps<T> & { ref?: Ref<DataTableHandle<T>> }) => ReactElement;\n","'use client';\nimport { forwardRef, useImperativeHandle, useRef, type HTMLAttributes, type ReactElement, type Ref } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport type { DataRow } from '../data-table/engine';\nimport { createEditableTable, type EditableTableInstance, type EditableTableOptions } from './engine';\n\nexport interface EditableTableProps<T extends DataRow> extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'children'>, Omit<EditableTableOptions<T>, 'rows'> {\n rows: T[];\n}\n\nexport type EditableTableHandle<T extends DataRow = DataRow> = Pick<EditableTableInstance<T>, 'edit' | 'setValue' | 'addRow' | 'removeRows' | 'save' | 'discard'>;\n\n/**\n * <EditableTable columns={columns} rows={rows} onSave={async (changes, rows) => { await api.save(changes); setRows(rows); }} />.\n * New `rows` from the app replace the table's (pending edits go with them): hand them back after a save.\n */\nfunction EditableTableInner<T extends DataRow>(\n { columns, rows, rowKey, caption, pageSize, pageSizes, selectable, search, filters, columnsMenu, actions, bulkActions, sort, emptyTitle, emptyDescription, locale, onSave, onChange, newRow, onAction, onBulkAction, onSelectionChange, className, ...props }: EditableTableProps<T>,\n handle: Ref<EditableTableHandle<T>>,\n) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<EditableTableInstance<T> | null>(null);\n const shown = useRef(rows);\n const callbacks = useLatest({ onSave, onChange, newRow, onAction, onBulkAction, onSelectionChange });\n useImperativeHandle(\n handle,\n () => ({\n edit: (id, key) => instance.current?.edit(id, key),\n setValue: (id, key, value) => instance.current?.setValue(id, key, value) ?? false,\n addRow: (values) => instance.current?.addRow(values) ?? '',\n removeRows: (ids) => instance.current?.removeRows(ids),\n save: () => instance.current?.save() ?? Promise.resolve(false),\n discard: () => instance.current?.discard(),\n }),\n [],\n );\n const columnsKey = JSON.stringify((columns ?? []).map(({ key, label, type, editable, editor, required, min, max, hidden, options: choices }) => [key, label, type, editable, editor, required, min, max, hidden, choices]));\n const setupKey = JSON.stringify([columnsKey, rowKey, caption, pageSize, pageSizes, selectable, search, filters, columnsMenu, actions, bulkActions, emptyTitle, emptyDescription, locale, Boolean(newRow)]);\n useIsomorphicLayoutEffect(() => {\n const created = createEditableTable<T>(ref.current, {\n columns,\n rows: shown.current,\n rowKey,\n caption,\n pageSize,\n pageSizes,\n selectable,\n search,\n filters,\n columnsMenu,\n actions,\n bulkActions,\n sort,\n emptyTitle,\n emptyDescription,\n locale,\n onSave: (changes, next) => callbacks.current.onSave?.(changes, next),\n onChange: (changes) => callbacks.current.onChange?.(changes),\n newRow: newRow ? () => callbacks.current.newRow?.() ?? {} : undefined,\n onAction: (action, row) => callbacks.current.onAction?.(action, row),\n onBulkAction: (action, chosen) => callbacks.current.onBulkAction?.(action, chosen),\n onSelectionChange: (ids, chosen) => callbacks.current.onSelectionChange?.(ids, chosen),\n });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [setupKey]);\n useIsomorphicLayoutEffect(() => {\n if (shown.current === rows) return;\n shown.current = rows;\n instance.current?.setRows(rows);\n }, [rows]);\n return <div {...props} ref={ref} className={['mk-data-table', 'mk-editable-table', className].filter(Boolean).join(' ')} />;\n}\n\nexport const EditableTable = forwardRef(EditableTableInner) as <T extends DataRow>(props: EditableTableProps<T> & { ref?: Ref<EditableTableHandle<T>> }) => ReactElement;\n","'use client';\nimport { forwardRef, useImperativeHandle, useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createRichTextEditor, type RichTextEditorInstance, type RichTextEditorOptions } from './engine';\n\nexport interface RichTextEditorProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'children' | 'defaultValue'>, RichTextEditorOptions {}\n\nexport type RichTextEditorHandle = Pick<RichTextEditorInstance, 'focus' | 'exec' | 'setValue'>;\n\n/**\n * <RichTextEditor value={html} onChange={(html) => setHtml(html)} maxLength={500} />.\n * `value` is the first content; later a different value from the app replaces it (the echo of onChange does not).\n */\nexport const RichTextEditor = forwardRef<RichTextEditorHandle, RichTextEditorProps>(function RichTextEditor(\n { value, placeholder, toolbar, maxLength, counter, name, label, readOnly, markdown, onChange, className, ...props },\n handle,\n) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<RichTextEditorInstance | null>(null);\n const change = useLatest(onChange);\n const shown = useRef(value);\n useImperativeHandle(\n handle,\n () => ({\n focus: () => instance.current?.focus(),\n exec: (command, argument) => instance.current?.exec(command, argument),\n setValue: (html) => instance.current?.setValue(html),\n }),\n [],\n );\n useIsomorphicLayoutEffect(() => {\n const created = createRichTextEditor(ref.current, {\n value: shown.current,\n placeholder,\n toolbar,\n maxLength,\n counter,\n name,\n label,\n readOnly,\n markdown,\n onChange: (html, text) => {\n shown.current = html;\n change.current?.(html, text);\n },\n });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [placeholder, String(toolbar), maxLength, String(counter), name, label, readOnly, markdown]);\n useIsomorphicLayoutEffect(() => {\n if (value === undefined || value === shown.current) return;\n shown.current = value;\n instance.current?.setValue(value);\n }, [value]);\n return <div {...props} ref={ref} className={['mk-rich-text-editor', className].filter(Boolean).join(' ')} />;\n});\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createSelect, type SelectInstance, type SelectOptions } from './engine';\n\nexport interface SelectProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'>, Omit<SelectOptions, 'value'> {\n /** Controlled value; without it the select keeps its own (defaultValue). */\n value?: string;\n defaultValue?: string;\n}\n\n/** <Select label=\"Equipo\" options={teams} value={team} onChange={setTeam} />. */\nexport function Select({ options, value, defaultValue, name, label, placeholder, disabled, onChange, className, ...props }: SelectProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<SelectInstance | null>(null);\n const change = useLatest(onChange);\n const start = useRef(value ?? defaultValue);\n const key = JSON.stringify(options ?? null);\n useIsomorphicLayoutEffect(() => {\n const created = createSelect(ref.current, { options, value: value ?? start.current, name, label, placeholder, disabled, onChange: (next) => change.current?.(next) });\n instance.current = created;\n return () => {\n start.current = created.value;\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [key, name, label, placeholder, disabled]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined && instance.current && instance.current.value !== value) instance.current.setValue(value, false);\n }, [value]);\n return <div {...props} ref={ref} className={['mk-select', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createAddToCart, type AddToCartInstance, type AddToCartOptions } from './engine';\n\nexport interface AddToCartProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onAdd'>, AddToCartOptions {\n instanceRef?: MutableRefObject<AddToCartInstance | null>;\n}\n\n/** <AddToCart target=\"#carrito\" onAdd={setCount}><button className=\"mk-button\">Agregar</button></AddToCart>. */\nexport function AddToCart({ target, image, quantity, count, label, onAdd, onLand, instanceRef, className, children, ...props }: AddToCartProps) {\n const ref = useRef<HTMLDivElement>(null);\n const add = useLatest(onAdd);\n const landed = useLatest(onLand);\n const instance = useRef<AddToCartInstance | null>(null);\n useIsomorphicLayoutEffect(() => {\n const created = createAddToCart(ref.current, { target, image, quantity, count, label, onAdd: (n) => add.current?.(n), onLand: (n) => landed.current?.(n) });\n instance.current = created;\n if (instanceRef) instanceRef.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n if (instanceRef) instanceRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [typeof target === 'string' ? target : null, typeof image === 'string' ? image : null, quantity, label]);\n useIsomorphicLayoutEffect(() => { if (count !== undefined) instance.current?.setCount(count); }, [count]);\n return (\n <div {...props} ref={ref} className={['mk-add-to-cart', className].filter(Boolean).join(' ')}>\n {children}\n </div>\n );\n}\n","'use client';\nimport { useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createScrollIsland, type ScrollIslandOptions } from './engine';\n\nexport interface ScrollIslandProps extends HTMLAttributes<HTMLDivElement>, ScrollIslandOptions {}\n\n/**\n * <ScrollIsland style={{ height: 400, overflow: 'auto' }}>…</ScrollIsland> scrolls its children with the island;\n * <ScrollIsland page /> puts it on the page (it renders nothing of its own then).\n */\nexport function ScrollIsland({ sections, reach, idle, persistent, page, onSection, className, children, ...props }: ScrollIslandProps) {\n const ref = useRef<HTMLDivElement>(null);\n const section = useLatest(onSection);\n useIsomorphicLayoutEffect(() => {\n const created = createScrollIsland(page ? document.documentElement : ref.current, { sections, reach, idle, persistent, page, onSection: (name) => section.current?.(name) });\n return () => created.destroy();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [sections, reach, idle, persistent, page]);\n if (page) return null;\n return (\n <div {...props} ref={ref} className={['mk-scroll-island', className].filter(Boolean).join(' ')}>\n {children}\n </div>\n );\n}\n","'use client';\nimport { useRef, type ButtonHTMLAttributes, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../react/use-recipe';\nimport { createPillButton, PILL_ARROW } from './engine';\n\nexport interface PillButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Start as the circle and spread into the pill on hover. */\n expand?: boolean;\n /** The icon (default: an arrow). */\n icon?: ReactNode;\n}\n\n/** <PillButton onClick={ask}>Haz una pregunta</PillButton> */\nexport function PillButton({ expand, icon, className, children, type = 'button', ...props }: PillButtonProps) {\n const ref = useRef<HTMLButtonElement>(null);\n useIsomorphicLayoutEffect(() => {\n const instance = createPillButton(ref.current, { expand });\n return () => instance.destroy();\n }, [expand]);\n return (\n <button {...props} type={type} ref={ref} className={['mk-pill-button', className].filter(Boolean).join(' ')}>\n <span data-mk-pill-label=\"\">{children}</span>\n {icon ? (\n <span data-mk-pill-icon=\"\" aria-hidden=\"true\">\n {icon}\n </span>\n ) : (\n <span data-mk-pill-icon=\"\" aria-hidden=\"true\" dangerouslySetInnerHTML={{ __html: PILL_ARROW }} />\n )}\n </button>\n );\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createToolbar, type ToolbarInstance, type ToolbarOptions } from './engine';\n\nexport interface ToolbarProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>, ToolbarOptions {\n instanceRef?: MutableRefObject<ToolbarInstance | null>;\n}\n\n/** <Toolbar aria-label=\"Herramientas\" value={tool} onChange={setTool}><button data-mk-tool=\"lapiz\" aria-label=\"Lápiz\">…</button></Toolbar> */\nexport function Toolbar({ value, orientation, tips, onChange, instanceRef, className, children, ...props }: ToolbarProps) {\n const ref = useRef<HTMLDivElement>(null);\n const changed = useLatest(onChange);\n const instance = useRef<ToolbarInstance | null>(null);\n useIsomorphicLayoutEffect(() => {\n const created = createToolbar(ref.current, { value, orientation, tips, onChange: (next) => changed.current?.(next) });\n instance.current = created;\n if (instanceRef) instanceRef.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n if (instanceRef) instanceRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [orientation, tips]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined && instance.current && instance.current.value !== value) instance.current.setValue(value);\n }, [value]);\n return (\n <div {...props} ref={ref} className={['mk-toolbar', className].filter(Boolean).join(' ')}>\n {children}\n </div>\n );\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createBidirectionalSlider, type BidirectionalSliderInstance, type BidirectionalSliderOptions } from './engine';\n\nexport interface BidirectionalSliderProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'onInput'>, BidirectionalSliderOptions {\n instanceRef?: MutableRefObject<BidirectionalSliderInstance | null>;\n}\n\n/** <BidirectionalSlider label=\"Volumen\" icons=\"volume\" value={volume} onChange={setVolume} /> */\nexport function BidirectionalSlider({ min, max, origin, step, value, disabled, name, label, icons, formatValue, onInput, onChange, instanceRef, className, ...props }: BidirectionalSliderProps) {\n const ref = useRef<HTMLDivElement>(null);\n const input = useLatest(onInput);\n const change = useLatest(onChange);\n const format = useLatest(formatValue);\n const instance = useRef<BidirectionalSliderInstance | null>(null);\n useIsomorphicLayoutEffect(() => {\n const created = createBidirectionalSlider(ref.current, {\n min,\n max,\n origin,\n step,\n value,\n disabled,\n name,\n label,\n icons,\n formatValue: formatValue ? (n) => format.current!(n) : undefined,\n onInput: (n) => input.current?.(n),\n onChange: (n) => change.current?.(n),\n });\n instance.current = created;\n if (instanceRef) instanceRef.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n if (instanceRef) instanceRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [min, max, origin, step, disabled, name, label, icons]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined && instance.current && instance.current.value !== value) instance.current.setValue(value);\n }, [value]);\n return <div {...props} ref={ref} className={['mk-bidirectional-slider', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../react/use-recipe';\nimport { createVoiceDots, type VoiceDotsInstance, type VoiceDotsOptions } from './engine';\n\nexport interface VoiceDotsProps extends HTMLAttributes<HTMLDivElement>, VoiceDotsOptions {\n /** A microphone stream or a playing <audio>/<video> to follow. */\n source?: MediaStream | HTMLMediaElement | null;\n /** The voice's level, 0…1 (one or one per dot), when the app measures it. */\n level?: number | number[];\n instanceRef?: MutableRefObject<VoiceDotsInstance | null>;\n}\n\n/** <VoiceDots state={listening ? 'listening' : 'idle'} source={micStream} /> */\nexport function VoiceDots({ state = 'idle', count, colorful, size, labels, source, level, instanceRef, className, ...props }: VoiceDotsProps) {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<VoiceDotsInstance | null>(null);\n useIsomorphicLayoutEffect(() => {\n const created = createVoiceDots(ref.current, { state, count, colorful, size, labels });\n instance.current = created;\n if (instanceRef) instanceRef.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n if (instanceRef) instanceRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [count, colorful, size]);\n useIsomorphicLayoutEffect(() => {\n if (instance.current && instance.current.state !== state) instance.current.setState(state);\n }, [state]);\n useIsomorphicLayoutEffect(() => {\n const dots = instance.current;\n if (!dots || !source) return;\n let stop: (() => void) | null = null;\n let gone = false;\n void dots.listen(source).then((done) => {\n if (gone) done();\n else stop = done;\n }).catch((error: unknown) => {\n if (!gone) ref.current?.dispatchEvent(new CustomEvent('mk:error', { bubbles: true, detail: { error } }));\n });\n return () => {\n gone = true;\n stop?.();\n };\n }, [source, count, colorful, size]);\n useIsomorphicLayoutEffect(() => {\n if (level !== undefined) instance.current?.setLevel(level);\n }, [level]);\n return <div {...props} ref={ref} className={['mk-voice-dots', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type RefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport type { Instance } from '../../core/types';\n\ninterface Updatable<O> extends Instance {\n update(options: O): void;\n}\n\n/**\n * The React side of the round and flow charts: the engine is created once and\n * data changes are pushed with update(), so the chart glides instead of being\n * drawn again. `data` is compared as JSON; callbacks always call the latest.\n */\nexport function useChart<O extends object, I extends Updatable<O>>(\n create: (root: HTMLElement | null, options: O) => I,\n data: O,\n callbacks: { formatValue?: (value: number) => string; onSelect?: (...args: never[]) => void },\n instanceRef?: { current: I | null },\n): RefObject<HTMLDivElement | null> {\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<I | null>(null);\n const format = useLatest(callbacks.formatValue);\n const select = useLatest(callbacks.onSelect);\n const formatted = callbacks.formatValue !== undefined;\n const key = JSON.stringify(data);\n const latest = useLatest(data);\n const options = (): O => ({\n ...latest.current,\n formatValue: formatted ? (value: number) => format.current?.(value) ?? String(value) : undefined,\n onSelect: (...args: never[]) => (select.current as ((...a: never[]) => void) | undefined)?.(...args),\n });\n useIsomorphicLayoutEffect(() => {\n const created = create(ref.current, options());\n instance.current = created;\n if (instanceRef) instanceRef.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n if (instanceRef) instanceRef.current = null;\n };\n // Created once; data is pushed below.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const first = useRef(true);\n useIsomorphicLayoutEffect(() => {\n if (first.current) {\n first.current = false;\n return;\n }\n instance.current?.update(options());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [key, formatted]);\n return ref;\n}\n","'use client';\nimport type { HTMLAttributes } from 'react';\nimport { useChart } from '../chart/use-chart';\nimport { createPieChart, type PieChartInstance, type PieChartOptions } from './engine';\n\nexport interface PieChartProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect' | 'children'>, PieChartOptions {\n instanceRef?: { current: PieChartInstance | null };\n}\n\n/** <PieChart label=\"Ventas por canal\" data={[{ label: 'Tienda', value: 420 }, …]} formatValue={money} /> */\nexport function PieChart({ data, donut, gap, size, label, totalLabel, legend, emptyLabel, formatValue, onSelect, instanceRef, className, ...props }: PieChartProps) {\n const ref = useChart(createPieChart, { data, donut, gap, size, label, totalLabel, legend, emptyLabel } as PieChartOptions, { formatValue, onSelect }, instanceRef);\n return <div {...props} ref={ref} className={['mk-chart mk-pie-chart', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport type { HTMLAttributes } from 'react';\nimport { useChart } from '../chart/use-chart';\nimport { createRadarChart, type RadarChartInstance, type RadarChartOptions } from './engine';\n\nexport interface RadarChartProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect' | 'children'>, RadarChartOptions {\n instanceRef?: { current: RadarChartInstance | null };\n}\n\n/** <RadarChart label=\"Perfil\" axes={['Velocidad', 'Calidad', …]} series={[{ name: 'Ana', values }]} /> */\nexport function RadarChart({ axes, series, max, levels, grid, size, label, legend, emptyLabel, formatValue, onSelect, instanceRef, className, ...props }: RadarChartProps) {\n const ref = useChart(createRadarChart, { axes, series, max, levels, grid, size, label, legend, emptyLabel } as RadarChartOptions, { formatValue, onSelect }, instanceRef);\n return <div {...props} ref={ref} className={['mk-chart mk-radar-chart', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport type { HTMLAttributes } from 'react';\nimport { useChart } from '../chart/use-chart';\nimport { createRadialChart, type RadialChartInstance, type RadialChartOptions } from './engine';\n\nexport interface RadialChartProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect' | 'children'>, RadialChartOptions {\n instanceRef?: { current: RadialChartInstance | null };\n}\n\n/** <RadialChart label=\"Metas\" data={[{ label: 'Pasos', value: 7400, max: 10000 }, …]} /> */\nexport function RadialChart({ data, max, sweep, size, thickness, segments, center, label, totalLabel, legend, emptyLabel, formatValue, onSelect, instanceRef, className, ...props }: RadialChartProps) {\n const ref = useChart(createRadialChart, { data, max, sweep, size, thickness, segments, center, label, totalLabel, legend, emptyLabel } as RadialChartOptions, { formatValue, onSelect }, instanceRef);\n return <div {...props} ref={ref} className={['mk-chart mk-radial-chart', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport type { HTMLAttributes } from 'react';\nimport { useChart } from '../chart/use-chart';\nimport { createSankeyChart, type SankeyChartInstance, type SankeyChartOptions } from './engine';\n\nexport interface SankeyChartProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect' | 'children'>, SankeyChartOptions {\n instanceRef?: { current: SankeyChartInstance | null };\n}\n\n/** <SankeyChart label=\"Embudo\" nodes={[{ id: 'visitas' }, …]} links={[{ source: 'visitas', target: 'carrito', value: 420 }, …]} /> */\nexport function SankeyChart({ nodes, links, height, nodeWidth, nodePadding, label, emptyLabel, formatValue, onSelect, instanceRef, className, ...props }: SankeyChartProps) {\n const ref = useChart(createSankeyChart, { nodes, links, height, nodeWidth, nodePadding, label, emptyLabel } as SankeyChartOptions, { formatValue, onSelect }, instanceRef);\n return <div {...props} ref={ref} className={['mk-chart mk-sankey-chart', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\n\nimport type { HTMLAttributes } from 'react';\nimport { useChart } from '../chart/use-chart';\nimport { createHeatmapChart, type HeatmapChartInstance, type HeatmapChartOptions } from './engine';\n\nexport interface HeatmapChartProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect' | 'children'>, HeatmapChartOptions {\n instanceRef?: { current: HeatmapChartInstance | null };\n}\n\nexport function HeatmapChart({ data, end, weeks, firstDay, locale, levels, color, unit, label, legend, formatValue, emptyLabel, onSelect, instanceRef, className, ...props }: HeatmapChartProps) {\n const ref = useChart(createHeatmapChart, { data, end, weeks, firstDay, locale, levels, color, unit, label, legend, emptyLabel }, { formatValue, onSelect }, instanceRef);\n return <div {...props} ref={ref} className={['mk-heatmap-chart', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject, type ReactNode } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createOrbitMenu, type OrbitMenuInstance, type OrbitMenuOptions } from './engine';\n\nexport interface OrbitMenuItem {\n value: string;\n label: string;\n icon: ReactNode;\n}\n\nexport interface OrbitMenuProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect' | 'onToggle'>, OrbitMenuOptions {\n items: OrbitMenuItem[];\n /** The middle button's name (default 'Menú'). */\n label?: string;\n instanceRef?: MutableRefObject<OrbitMenuInstance | null>;\n}\n\n/** <OrbitMenu label=\"Acciones\" items={[{ value: 'nuevo', label: 'Nuevo', icon: <Plus /> }, …]} onSelect={run} /> */\nexport function OrbitMenu({ items, label = 'Menú', radius, start, closeOnSelect, onToggle, onSelect, instanceRef, className, ...props }: OrbitMenuProps) {\n const ref = useRef<HTMLDivElement>(null);\n const toggled = useLatest(onToggle);\n const selected = useLatest(onSelect);\n const keys = items.map((item) => item.value).join('\\u0000');\n useIsomorphicLayoutEffect(() => {\n const created = createOrbitMenu(ref.current, { radius, start, closeOnSelect, onToggle: (open) => toggled.current?.(open), onSelect: (value) => selected.current?.(value) });\n if (instanceRef) instanceRef.current = created;\n return () => {\n created.destroy();\n if (instanceRef) instanceRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [keys, radius, start, closeOnSelect]);\n return (\n <div {...props} ref={ref} className={['mk-orbit-menu', className].filter(Boolean).join(' ')}>\n <button type=\"button\" data-mk-orbit-toggle=\"\" aria-label={label} />\n {items.map((item) => (\n <button key={item.value} type=\"button\" data-mk-orbit-item=\"\" data-mk-value={item.value} aria-label={item.label}>\n {item.icon}\n </button>\n ))}\n </div>\n );\n}\n","'use client';\nimport { useReducer, useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createSignaturePad, type SignatureData, type SignaturePadInstance, type SignaturePadOptions } from './engine';\n\nexport interface SignaturePadProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'children' | 'dangerouslySetInnerHTML' | 'defaultValue'>, Omit<SignaturePadOptions, 'data'> {\n /** Controlled data. Accept edits through onChange; rejected edits are restored after rendering. */\n value?: SignatureData;\n defaultValue?: SignatureData;\n instanceRef?: MutableRefObject<SignaturePadInstance | null>;\n}\n\n/** <SignaturePad value={signature} onChange={setSignature} name=\"signature\" />. */\nexport function SignaturePad({ value, defaultValue, label, hint, placeholder, color, width, disabled, readOnly, toolbar, name, historyLimit, onChange, instanceRef, className, ...props }: SignaturePadProps) {\n // JavaScript callers can still supply these props; the engine owns all child nodes.\n const { children: _children, dangerouslySetInnerHTML: _html, ...rootProps } = props as HTMLAttributes<HTMLDivElement>;\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<SignaturePadInstance | null>(null);\n const edited = useRef(value ?? defaultValue);\n const current = useLatest(value);\n const change = useLatest(onChange);\n const [, refresh] = useReducer((revision: number) => revision + 1, 0);\n useIsomorphicLayoutEffect(() => {\n const created = createSignaturePad(ref.current, {\n data: current.current ?? edited.current,\n label, hint, placeholder, color, width, disabled, readOnly, toolbar, name, historyLimit,\n onChange: (data, detail) => {\n edited.current = data;\n change.current?.(data, detail);\n // A render also reconciles an unchanged controlled prop when the owner rejects an edit.\n if (current.current !== undefined) refresh();\n },\n });\n instance.current = created;\n return () => {\n edited.current = created.exportData();\n created.destroy();\n instance.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [label, hint, placeholder, color, width, toolbar, name, historyLimit]);\n useIsomorphicLayoutEffect(() => {\n const created = instance.current;\n if (!created) return;\n created.setDisabled(Boolean(disabled));\n created.setReadOnly(Boolean(readOnly));\n }, [disabled, readOnly]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined) instance.current?.importData(value, false);\n });\n useIsomorphicLayoutEffect(() => {\n if (instanceRef) instanceRef.current = instance.current;\n return () => { if (instanceRef) instanceRef.current = null; };\n }, [instanceRef, label, hint, placeholder, color, width, toolbar, name, historyLimit]);\n return <div {...rootProps} ref={ref} className={['mk-signature-pad', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../react/use-recipe';\nimport { createWaveformPlayer, type WaveformPlayerInstance, type WaveformPlayerOptions } from './engine';\n\nexport interface WaveformPlayerProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onPlay' | 'onPause' | 'onEnded' | 'onError' | 'onTimeUpdate' | 'children' | 'dangerouslySetInnerHTML'>, WaveformPlayerOptions {\n instanceRef?: MutableRefObject<WaveformPlayerInstance | null>;\n}\nexport function WaveformPlayer({ src, peaks, label, disabled, playbackRates, onStateChange, onTimeUpdate, onPlay, onPause, onEnded, onError, instanceRef, className, ...props }: WaveformPlayerProps) {\n // The engine owns descendants. Also filter runtime JS props that bypass the public type.\n const { children: _children, dangerouslySetInnerHTML: _html, ...rootProps } = props as HTMLAttributes<HTMLDivElement>;\n const root = useRef<HTMLDivElement>(null);\n const instance = useRef<WaveformPlayerInstance | null>(null);\n useIsomorphicLayoutEffect(() => {\n const created = createWaveformPlayer(root.current);\n instance.current = created;\n return () => { created.destroy(); instance.current = null; };\n }, []);\n useIsomorphicLayoutEffect(() => {\n instance.current?.update({ src, peaks, label, disabled, playbackRates, onStateChange, onTimeUpdate, onPlay, onPause, onEnded, onError });\n });\n useIsomorphicLayoutEffect(() => {\n if (instanceRef) instanceRef.current = instance.current;\n return () => { if (instanceRef) instanceRef.current = null; };\n }, [instanceRef]);\n return <div {...rootProps} ref={root} className={['mk-waveform-player', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect } from '../../react/use-recipe';\nimport { createVoiceMessageBubble, type VoiceMessageBubbleInstance, type VoiceMessageBubbleOptions } from './engine';\n\nexport interface VoiceMessageBubbleProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onPlay' | 'onPause' | 'onEnded' | 'onError' | 'onTimeUpdate' | 'children' | 'dangerouslySetInnerHTML'>, VoiceMessageBubbleOptions {\n instanceRef?: MutableRefObject<VoiceMessageBubbleInstance | null>;\n}\nexport function VoiceMessageBubble({ src, peaks, label, disabled, playbackRates, onStateChange, onTimeUpdate, onPlay, onPause, onEnded, onError, direction, author, timestamp, dateTime, status, instanceRef, className, ...props }: VoiceMessageBubbleProps) {\n // React must never reconcile descendants owned by the composed player engine.\n const { children: _children, dangerouslySetInnerHTML: _html, ...rootProps } = props as HTMLAttributes<HTMLDivElement>;\n const root = useRef<HTMLDivElement>(null);\n const instance = useRef<VoiceMessageBubbleInstance | null>(null);\n useIsomorphicLayoutEffect(() => {\n const created = createVoiceMessageBubble(root.current);\n instance.current = created;\n return () => { created.destroy(); instance.current = null; };\n }, []);\n useIsomorphicLayoutEffect(() => {\n instance.current?.update({ src, peaks, label, disabled, playbackRates, onStateChange, onTimeUpdate, onPlay, onPause, onEnded, onError, direction, author, timestamp, dateTime, status });\n });\n useIsomorphicLayoutEffect(() => {\n if (instanceRef) instanceRef.current = instance.current;\n return () => { if (instanceRef) instanceRef.current = null; };\n }, [instanceRef]);\n return <div {...rootProps} ref={root} className={['mk-voice-message-bubble', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\n\nimport { forwardRef, useImperativeHandle, useReducer, useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createDrilldownMenu, type DrilldownMenuInstance, type DrilldownMenuItem, type DrilldownMenuOptions } from './engine';\n\nexport interface DrilldownMenuProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'dangerouslySetInnerHTML' | 'onSelect'>, Omit<DrilldownMenuOptions, 'items' | 'path'> {\n items: DrilldownMenuItem[];\n /** Controlled branch path; pair with onPathChange. */\n path?: string[];\n /** Initial branch path when uncontrolled. */\n defaultPath?: string[];\n}\n\nexport type DrilldownMenuHandle = Pick<DrilldownMenuInstance, 'open' | 'back' | 'root' | 'reset' | 'setPath' | 'focusItem'>;\n\n/** Data-driven hierarchical actions with controlled or internal navigation. */\nexport const DrilldownMenu = forwardRef<DrilldownMenuHandle, DrilldownMenuProps>(function DrilldownMenu(\n { items, path, defaultPath, label, backLabel, emptyText, onSelect, onPathChange, className, ...props },\n handle,\n) {\n const { children: _children, dangerouslySetInnerHTML: _html, ...rootProps } = props as HTMLAttributes<HTMLDivElement>;\n const ref = useRef<HTMLDivElement>(null);\n const instance = useRef<DrilldownMenuInstance | null>(null);\n const select = useLatest(onSelect);\n const changed = useLatest(onPathChange);\n const controlled = useLatest(path);\n const [, refresh] = useReducer((value: number) => value + 1, 0);\n useImperativeHandle(handle, () => ({\n open: (id) => instance.current?.open(id) ?? false,\n back: () => instance.current?.back() ?? false,\n root: () => instance.current?.root(),\n reset: () => instance.current?.reset(),\n setPath: (next, notify) => {\n instance.current?.setPath(next, notify);\n // Silent engine synchronization does not invoke onPathChange. Controlled\n // refs must still reconcile with the parent's current path on a render.\n if (controlled.current !== undefined) refresh();\n },\n focusItem: (id) => instance.current?.focusItem(id),\n }), []);\n const itemsKey = JSON.stringify(items);\n useIsomorphicLayoutEffect(() => {\n const created = createDrilldownMenu(ref.current, {\n items,\n path: path ?? defaultPath,\n label,\n backLabel,\n emptyText,\n onSelect: (item, selectedPath) => select.current?.(item, selectedPath),\n onPathChange: (next) => {\n changed.current?.(next);\n // Also render if a controlled parent declines the navigation request.\n if (controlled.current !== undefined) refresh();\n },\n });\n instance.current = created;\n return () => {\n created.destroy();\n instance.current = null;\n };\n // The engine owns its DOM for this mount; subsequent props update it below.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n useIsomorphicLayoutEffect(() => {\n // Controlled data and its path are one external model. Applying the path in\n // this update avoids repairing a stale level against replacement items.\n instance.current?.update({ items, label, backLabel, emptyText, ...(path !== undefined ? { path } : {}) });\n // JSON keys also catch edited data without forcing redraws on equal arrays.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [itemsKey, label, backLabel, emptyText]);\n useIsomorphicLayoutEffect(() => {\n if (path !== undefined) instance.current?.setPath(path);\n });\n return <div {...rootProps} ref={ref} className={['mk-drilldown-menu', className].filter(Boolean).join(' ')} />;\n});\n","'use client';\nimport { useReducer, useRef, type HTMLAttributes } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createWheelPicker, type WheelPickerInstance, type WheelPickerOptions } from './engine';\n\nexport interface WheelPickerProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'onInput' | 'defaultValue' | 'children' | 'dangerouslySetInnerHTML'>, WheelPickerOptions {\n defaultValue?: string;\n instanceRef?: { current: WheelPickerInstance | null };\n}\nexport function WheelPicker({ items, value, defaultValue, name, label, disabled, visibleItems, itemHeight, onInput, onChange, instanceRef, className, ...props }: WheelPickerProps) {\n const ref = useRef<HTMLDivElement>(null), instance = useRef<WheelPickerInstance | null>(null);\n const changed = useLatest(onChange), input = useLatest(onInput), latestItems = useLatest(items);\n const controlled = useLatest(value);\n const [, refresh] = useReducer((revision: number) => revision + 1, 0);\n const last = useRef(value ?? defaultValue);\n useIsomorphicLayoutEffect(() => {\n const created = createWheelPicker(ref.current, { items: latestItems.current, value: value ?? last.current, name, label, disabled, visibleItems, itemHeight,\n onInput: next => { last.current = next; input.current?.(next); }, onChange: next => { last.current = next; changed.current?.(next); if (controlled.current !== undefined) refresh(); } });\n instance.current = created;\n return () => { last.current = created.value; created.destroy(); instance.current = null; };\n }, [name, label, disabled, visibleItems, itemHeight]);\n const key = JSON.stringify(items ?? []);\n useIsomorphicLayoutEffect(() => { instance.current?.setItems(items ?? []); }, [key]);\n useIsomorphicLayoutEffect(() => { if (value !== undefined) instance.current?.setValue(value); });\n useIsomorphicLayoutEffect(() => {\n if (instanceRef) instanceRef.current = instance.current;\n return () => { if (instanceRef) instanceRef.current = null; };\n }, [instanceRef, name, label, disabled, visibleItems, itemHeight]);\n const domProps: HTMLAttributes<HTMLDivElement> = { ...props };\n delete domProps.children; delete domProps.dangerouslySetInnerHTML;\n return <div {...domProps} ref={ref} className={['mk-wheel-picker', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createStepper, type StepperOptions, type StepperInstance } from './engine';\n\nexport interface StepperProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'onInput' | 'defaultValue' | 'children' | 'dangerouslySetInnerHTML'>, Omit<StepperOptions, 'value' | 'defaultValue'> {\n value?: number;\n defaultValue?: number;\n instanceRef?: MutableRefObject<StepperInstance | null>;\n /** The engine owns this component's DOM. */\n children?: never;\n dangerouslySetInnerHTML?: never;\n}\nexport function Stepper({ value, defaultValue, items, label, name, variant, linear, disabled, onChange, instanceRef, className, children: _children, dangerouslySetInnerHTML: _html, ...props }: StepperProps) {\n const root = useRef<HTMLDivElement>(null);\n const engine = useRef<StepperInstance | null>(null);\n const latestValue = useLatest(value);\n const change = useLatest(onChange);\n \n const baseline = useRef(value !== undefined ? value : defaultValue);\n const current = useRef(baseline.current);\n const reconcile = () => queueMicrotask(() => {\n if (latestValue.current !== undefined) engine.current?.setValue(latestValue.current, false);\n });\n useIsomorphicLayoutEffect(() => {\n const created = createStepper(root.current, {\n items, label, name, variant, linear, disabled, value: latestValue.current !== undefined ? latestValue.current : current.current, defaultValue: baseline.current,\n onChange: (next) => { change.current?.(next); reconcile(); },\n \n });\n engine.current = created;\n const form = root.current?.closest('form');\n const pending = new Set<ReturnType<typeof setTimeout>>();\n const reset = (event: Event) => {\n const timer = setTimeout(() => {\n pending.delete(timer);\n if (!event.defaultPrevented && latestValue.current !== undefined) created.setValue(latestValue.current, false);\n }, 0);\n pending.add(timer);\n };\n form?.addEventListener('reset', reset);\n return () => {\n form?.removeEventListener('reset', reset);\n pending.forEach((timer) => clearTimeout(timer));\n current.current = created.value; created.destroy(); engine.current = null;\n };\n // Callbacks and controlled value are read through refs.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items, label, name, variant, linear, disabled]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined) engine.current?.setValue(value, false);\n });\n useIsomorphicLayoutEffect(() => {\n if (!instanceRef) return;\n instanceRef.current = engine.current;\n return () => { instanceRef.current = null; };\n }, [instanceRef, items, label, name, variant, linear, disabled]);\n return <div {...props} ref={root} className={['mk-stepper', className].filter(Boolean).join(' ')} />;\n}\n\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createRadioGroup, type RadioGroupOptions, type RadioGroupInstance } from './engine';\n\nexport interface RadioGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'onInput' | 'defaultValue' | 'children' | 'dangerouslySetInnerHTML'>, Omit<RadioGroupOptions, 'value' | 'defaultValue'> {\n value?: string | null;\n defaultValue?: string | null;\n instanceRef?: MutableRefObject<RadioGroupInstance | null>;\n /** The engine owns this component's DOM. */\n children?: never;\n dangerouslySetInnerHTML?: never;\n}\nexport function RadioGroup({ value, defaultValue, items, name, label, disabled, required, error, variant, onChange, instanceRef, className, children: _children, dangerouslySetInnerHTML: _html, ...props }: RadioGroupProps) {\n const root = useRef<HTMLDivElement>(null);\n const engine = useRef<RadioGroupInstance | null>(null);\n const latestValue = useLatest(value);\n const change = useLatest(onChange);\n \n const baseline = useRef(value !== undefined ? value : defaultValue);\n const current = useRef(baseline.current);\n const reconcile = () => queueMicrotask(() => {\n if (latestValue.current !== undefined) engine.current?.setValue(latestValue.current, false);\n });\n useIsomorphicLayoutEffect(() => {\n const created = createRadioGroup(root.current, {\n items, name, label, disabled, required, error, variant, value: latestValue.current !== undefined ? latestValue.current : current.current, defaultValue: baseline.current,\n onChange: (next) => { change.current?.(next); reconcile(); },\n \n });\n engine.current = created;\n const form = root.current?.closest('form');\n const pending = new Set<ReturnType<typeof setTimeout>>();\n const reset = (event: Event) => {\n const timer = setTimeout(() => {\n pending.delete(timer);\n if (!event.defaultPrevented && latestValue.current !== undefined) created.setValue(latestValue.current, false);\n }, 0);\n pending.add(timer);\n };\n form?.addEventListener('reset', reset);\n return () => {\n form?.removeEventListener('reset', reset);\n pending.forEach((timer) => clearTimeout(timer));\n current.current = created.value; created.destroy(); engine.current = null;\n };\n // Callbacks and controlled value are read through refs.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [items, name, label, disabled, required, error, variant]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined) engine.current?.setValue(value, false);\n });\n useIsomorphicLayoutEffect(() => {\n if (!instanceRef) return;\n instanceRef.current = engine.current;\n return () => { instanceRef.current = null; };\n }, [instanceRef, items, name, label, disabled, required, error, variant]);\n return <div {...props} ref={root} className={['mk-radio-group', className].filter(Boolean).join(' ')} />;\n}\n\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createEqualizerSlider, type EqualizerSliderOptions, type EqualizerSliderInstance } from './engine';\n\nexport interface EqualizerSliderProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'onInput' | 'defaultValue' | 'children' | 'dangerouslySetInnerHTML'>, Omit<EqualizerSliderOptions, 'value' | 'defaultValue'> {\n value?: number;\n defaultValue?: number;\n instanceRef?: MutableRefObject<EqualizerSliderInstance | null>;\n /** The engine owns this component's DOM. */\n children?: never;\n dangerouslySetInnerHTML?: never;\n}\nexport function EqualizerSlider({ value, defaultValue, min, max, step, label, name, disabled, error, formatValue, waveform, bars, onChange, onInput, instanceRef, className, children: _children, dangerouslySetInnerHTML: _html, ...props }: EqualizerSliderProps) {\n const root = useRef<HTMLDivElement>(null);\n const engine = useRef<EqualizerSliderInstance | null>(null);\n const latestValue = useLatest(value);\n const change = useLatest(onChange);\n const input = useLatest(onInput);\n const baseline = useRef(value !== undefined ? value : defaultValue);\n const current = useRef(baseline.current);\n const reconcile = () => queueMicrotask(() => {\n if (latestValue.current !== undefined) engine.current?.setValue(latestValue.current, false);\n });\n useIsomorphicLayoutEffect(() => {\n const created = createEqualizerSlider(root.current, {\n min, max, step, label, name, disabled, error, formatValue, waveform, bars, value: latestValue.current !== undefined ? latestValue.current : current.current, defaultValue: baseline.current,\n onChange: (next) => { change.current?.(next); reconcile(); },\n onInput: (next) => { input.current?.(next); if (input.current || !change.current) reconcile(); },\n });\n engine.current = created;\n const form = root.current?.closest('form');\n const pending = new Set<ReturnType<typeof setTimeout>>();\n const reset = (event: Event) => {\n const timer = setTimeout(() => {\n pending.delete(timer);\n if (!event.defaultPrevented && latestValue.current !== undefined) created.setValue(latestValue.current, false);\n }, 0);\n pending.add(timer);\n };\n form?.addEventListener('reset', reset);\n return () => {\n form?.removeEventListener('reset', reset);\n pending.forEach((timer) => clearTimeout(timer));\n current.current = created.value; created.destroy(); engine.current = null;\n };\n // Callbacks and controlled value are read through refs.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [min, max, step, label, name, disabled, error, formatValue, waveform, bars]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined) engine.current?.setValue(value, false);\n });\n useIsomorphicLayoutEffect(() => {\n if (!instanceRef) return;\n instanceRef.current = engine.current;\n return () => { instanceRef.current = null; };\n }, [instanceRef, min, max, step, label, name, disabled, error, formatValue, waveform, bars]);\n return <div {...props} ref={root} className={['mk-equalizer-slider', className].filter(Boolean).join(' ')} />;\n}\n\n","'use client';\r\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\r\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\r\nimport { createTemperatureSlider, type TemperatureSliderOptions, type TemperatureSliderInstance } from './engine';\r\n\r\nexport interface TemperatureSliderProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'onInput' | 'defaultValue' | 'children' | 'dangerouslySetInnerHTML'>, Omit<TemperatureSliderOptions, 'value' | 'defaultValue'> {\r\n value?: number;\r\n defaultValue?: number;\r\n instanceRef?: MutableRefObject<TemperatureSliderInstance | null>;\r\n /** The engine owns this component's DOM. */\r\n children?: never;\r\n dangerouslySetInnerHTML?: never;\r\n}\r\nexport function TemperatureSlider({ value, defaultValue, min, max, step, label, name, disabled, error, formatValue, unit, onChange, onInput, instanceRef, className, children: _children, dangerouslySetInnerHTML: _html, ...props }: TemperatureSliderProps) {\r\n const root = useRef<HTMLDivElement>(null);\r\n const engine = useRef<TemperatureSliderInstance | null>(null);\r\n const latestValue = useLatest(value);\r\n const change = useLatest(onChange);\r\n const input = useLatest(onInput);\r\n const baseline = useRef(value !== undefined ? value : defaultValue);\r\n const current = useRef(baseline.current);\r\n const reconcile = () => queueMicrotask(() => {\r\n if (latestValue.current !== undefined) engine.current?.setValue(latestValue.current, false);\r\n });\r\n useIsomorphicLayoutEffect(() => {\r\n const created = createTemperatureSlider(root.current, {\r\n min, max, step, label, name, disabled, error, formatValue, unit, value: latestValue.current !== undefined ? latestValue.current : current.current, defaultValue: baseline.current,\r\n onChange: (next) => { change.current?.(next); reconcile(); },\r\n onInput: (next) => { input.current?.(next); if (input.current || !change.current) reconcile(); },\r\n });\r\n engine.current = created;\r\n const form = root.current?.closest('form');\r\n const pending = new Set<ReturnType<typeof setTimeout>>();\r\n const reset = (event: Event) => {\r\n const timer = setTimeout(() => {\r\n pending.delete(timer);\r\n if (!event.defaultPrevented && latestValue.current !== undefined) created.setValue(latestValue.current, false);\r\n }, 0);\r\n pending.add(timer);\r\n };\r\n form?.addEventListener('reset', reset);\r\n return () => {\r\n form?.removeEventListener('reset', reset);\r\n pending.forEach((timer) => clearTimeout(timer));\r\n current.current = created.value; created.destroy(); engine.current = null;\r\n };\r\n // Callbacks and controlled value are read through refs.\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [min, max, step, label, name, disabled, error, formatValue]);\r\n // A unit change converts and glides in place instead of remounting the slider.\r\n useIsomorphicLayoutEffect(() => {\r\n const next = unit === 'F' ? 'F' : 'C';\r\n if (engine.current && engine.current.unit !== next) engine.current.setUnit(next, { min, max, step });\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [unit]);\r\n useIsomorphicLayoutEffect(() => {\r\n if (value !== undefined) engine.current?.setValue(value, false);\r\n });\r\n useIsomorphicLayoutEffect(() => {\r\n if (!instanceRef) return;\r\n instanceRef.current = engine.current;\r\n return () => { instanceRef.current = null; };\r\n }, [instanceRef, min, max, step, label, name, disabled, error, formatValue]);\r\n return <div {...props} ref={root} className={['mk-temperature-slider', className].filter(Boolean).join(' ')} />;\r\n}\r\n\r\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createRatingScale, type RatingScaleOptions, type RatingScaleInstance } from './engine';\n\nexport interface RatingScaleProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'onInput' | 'defaultValue' | 'children' | 'dangerouslySetInnerHTML'>, Omit<RatingScaleOptions, 'value' | 'defaultValue'> {\n value?: number | null;\n defaultValue?: number | null;\n instanceRef?: MutableRefObject<RatingScaleInstance | null>;\n /** The engine owns this component's DOM. */\n children?: never;\n dangerouslySetInnerHTML?: never;\n}\nexport function RatingScale({ value, defaultValue, min, max, variant, labels, label, name, disabled, required, error, onChange, instanceRef, className, children: _children, dangerouslySetInnerHTML: _html, ...props }: RatingScaleProps) {\n const root = useRef<HTMLDivElement>(null);\n const engine = useRef<RatingScaleInstance | null>(null);\n const latestValue = useLatest(value);\n const change = useLatest(onChange);\n \n const baseline = useRef(value !== undefined ? value : defaultValue);\n const current = useRef(baseline.current);\n const reconcile = () => queueMicrotask(() => {\n if (latestValue.current !== undefined) engine.current?.setValue(latestValue.current, false);\n });\n useIsomorphicLayoutEffect(() => {\n const created = createRatingScale(root.current, {\n min, max, variant, labels, label, name, disabled, required, error, value: latestValue.current !== undefined ? latestValue.current : current.current, defaultValue: baseline.current,\n onChange: (next) => { change.current?.(next); reconcile(); },\n \n });\n engine.current = created;\n const form = root.current?.closest('form');\n const pending = new Set<ReturnType<typeof setTimeout>>();\n const reset = (event: Event) => {\n const timer = setTimeout(() => {\n pending.delete(timer);\n if (!event.defaultPrevented && latestValue.current !== undefined) created.setValue(latestValue.current, false);\n }, 0);\n pending.add(timer);\n };\n form?.addEventListener('reset', reset);\n return () => {\n form?.removeEventListener('reset', reset);\n pending.forEach((timer) => clearTimeout(timer));\n current.current = created.value; created.destroy(); engine.current = null;\n };\n // Callbacks and controlled value are read through refs.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [min, max, variant, labels, label, name, disabled, required, error]);\n useIsomorphicLayoutEffect(() => {\n if (value !== undefined) engine.current?.setValue(value, false);\n });\n useIsomorphicLayoutEffect(() => {\n if (!instanceRef) return;\n instanceRef.current = engine.current;\n return () => { instanceRef.current = null; };\n }, [instanceRef, min, max, variant, labels, label, name, disabled, required, error]);\n return <div {...props} ref={root} className={['mk-rating-scale', className].filter(Boolean).join(' ')} />;\n}\n\n","'use client';\r\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\r\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\r\nimport { createNotificationStack, type NotificationStackOptions, type NotificationStackInstance } from './engine';\r\n\r\nexport interface NotificationStackProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'children' | 'dangerouslySetInnerHTML'>, NotificationStackOptions {\r\n instanceRef?: MutableRefObject<NotificationStackInstance | null>;\r\n children?: never;\r\n dangerouslySetInnerHTML?: never;\r\n}\r\nexport function NotificationStack({ items, expanded, direction, duration, disabled, label, labels, onDismiss, onAction, onExpandedChange, instanceRef, className, children, dangerouslySetInnerHTML: _html, ...props }: NotificationStackProps) {\r\n const root = useRef<HTMLDivElement>(null);\r\n const instance = useRef<NotificationStackInstance | null>(null);\r\n const onDismissRef = useLatest(onDismiss);\r\n const onActionRef = useLatest(onAction);\r\n const onExpandedChangeRef = useLatest(onExpandedChange);\r\n useIsomorphicLayoutEffect(() => {\r\n const created = createNotificationStack(root.current, { items, expanded, direction, duration, disabled, label, labels, onDismiss: (...args) => onDismissRef.current?.(...args), onAction: (...args) => onActionRef.current?.(...args), onExpandedChange: (...args) => onExpandedChangeRef.current?.(...args) });\r\n instance.current = created;\r\n return () => { created.destroy(); instance.current = null; };\r\n // Options update the existing engine so timers, selection and scroll state survive.\r\n }, []);\r\n useIsomorphicLayoutEffect(() => {\r\n instance.current?.setOptions({ items, expanded, direction, duration, disabled, label, labels });\r\n }, [items, expanded, direction, duration, disabled, label, labels]);\r\n useIsomorphicLayoutEffect(() => { if (instanceRef) instanceRef.current = instance.current; return () => { if (instanceRef) instanceRef.current = null; }; }, [instanceRef]);\r\n return <div {...props} ref={root} className={['mk-notification-stack', className].filter(Boolean).join(' ')}></div>;\r\n}\r\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createBentoGrid, type BentoGridOptions, type BentoGridInstance } from './engine';\n\nexport interface BentoGridProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>, BentoGridOptions {\n instanceRef?: MutableRefObject<BentoGridInstance | null>;\n\n}\nexport function BentoGrid({ columns, gap, filter, duration, onChange, instanceRef, className, children, ...props }: BentoGridProps) {\n const root = useRef<HTMLDivElement>(null);\n const instance = useRef<BentoGridInstance | null>(null);\n const onChangeRef = useLatest(onChange);\n useIsomorphicLayoutEffect(() => {\n const created = createBentoGrid(root.current, { columns, gap, filter, duration, onChange: (...args) => onChangeRef.current?.(...args) });\n instance.current = created;\n return () => { created.destroy(); instance.current = null; };\n // Options update the existing engine so timers, selection and scroll state survive.\n }, []);\n useIsomorphicLayoutEffect(() => {\n instance.current?.setOptions({ columns, gap, filter, duration });\n }, [columns, gap, filter, duration]);\n useIsomorphicLayoutEffect(() => { if (instanceRef) instanceRef.current = instance.current; return () => { if (instanceRef) instanceRef.current = null; }; }, [instanceRef]);\n return <div {...props} ref={root} className={['mk-bento-grid', className].filter(Boolean).join(' ')}>{children}</div>;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createScrollPreviewDock, type ScrollPreviewDockOptions, type ScrollPreviewDockInstance } from './engine';\n\nexport interface ScrollPreviewDockProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'children' | 'dangerouslySetInnerHTML'>, ScrollPreviewDockOptions {\n instanceRef?: MutableRefObject<ScrollPreviewDockInstance | null>;\n children?: never;\n dangerouslySetInnerHTML?: never;\n}\nexport function ScrollPreviewDock({ items, scroller, offset, label, disabled, onChange, instanceRef, className, children, dangerouslySetInnerHTML: _html, ...props }: ScrollPreviewDockProps) {\n const root = useRef<HTMLDivElement>(null);\n const instance = useRef<ScrollPreviewDockInstance | null>(null);\n const onChangeRef = useLatest(onChange);\n useIsomorphicLayoutEffect(() => {\n const created = createScrollPreviewDock(root.current, { items, scroller, offset, label, disabled, onChange: (...args) => onChangeRef.current?.(...args) });\n instance.current = created;\n return () => { created.destroy(); instance.current = null; };\n // Options update the existing engine so timers, selection and scroll state survive.\n }, []);\n useIsomorphicLayoutEffect(() => {\n instance.current?.setOptions({ items, scroller, offset, label, disabled });\n }, [items, scroller, offset, label, disabled]);\n useIsomorphicLayoutEffect(() => { if (instanceRef) instanceRef.current = instance.current; return () => { if (instanceRef) instanceRef.current = null; }; }, [instanceRef]);\n return <div {...props} ref={root} className={['mk-scroll-preview-dock', className].filter(Boolean).join(' ')}></div>;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createStickyHeader, type StickyHeaderOptions, type StickyHeaderInstance } from './engine';\n\nexport interface StickyHeaderProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>, StickyHeaderOptions {\n instanceRef?: MutableRefObject<StickyHeaderInstance | null>;\n\n}\nexport function StickyHeader({ scroller, expandedHeight, compactHeight, threshold, range, top, disabled, onChange, instanceRef, className, children, ...props }: StickyHeaderProps) {\n const root = useRef<HTMLDivElement>(null);\n const instance = useRef<StickyHeaderInstance | null>(null);\n const onChangeRef = useLatest(onChange);\n useIsomorphicLayoutEffect(() => {\n const created = createStickyHeader(root.current, { scroller, expandedHeight, compactHeight, threshold, range, top, disabled, onChange: (...args) => onChangeRef.current?.(...args) });\n instance.current = created;\n return () => { created.destroy(); instance.current = null; };\n // Options update the existing engine so timers, selection and scroll state survive.\n }, []);\n useIsomorphicLayoutEffect(() => {\n instance.current?.setOptions({ scroller, expandedHeight, compactHeight, threshold, range, top, disabled });\n }, [scroller, expandedHeight, compactHeight, threshold, range, top, disabled]);\n useIsomorphicLayoutEffect(() => { if (instanceRef) instanceRef.current = instance.current; return () => { if (instanceRef) instanceRef.current = null; }; }, [instanceRef]);\n return <div {...props} ref={root} className={['mk-sticky-header', className].filter(Boolean).join(' ')}><div data-mk-sticky-surface=\"\" className=\"mk-sticky-header__surface\">{children}</div></div>;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type Ref } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createHandwritingText, type HandwritingTextInstance, type HandwritingTextOptions } from './engine';\n\nexport interface HandwritingTextProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'children' | 'dangerouslySetInnerHTML' | 'onComplete'>, HandwritingTextOptions { instanceRef?: Ref<HandwritingTextInstance>; }\nexport function HandwritingText({ text = 'make it move.', duration, autoplay, onComplete, instanceRef, className, ...props }: HandwritingTextProps) {\n const { children: _children, dangerouslySetInnerHTML: _html, ...safe } = props as HTMLAttributes<HTMLSpanElement>;\n const root = useRef<HTMLSpanElement>(null);\n const instance = useRef<HandwritingTextInstance | null>(null);\n const latest = useLatest({ text, onComplete });\n useIsomorphicLayoutEffect(() => {\n const created = createHandwritingText(root.current, { text: latest.current.text, duration, autoplay, onComplete: () => latest.current.onComplete?.() });\n instance.current = created;\n return () => { created.destroy(); instance.current = null; };\n }, [duration, autoplay]);\n useIsomorphicLayoutEffect(() => { instance.current?.setText(text, autoplay !== false); }, [text, autoplay]);\n useIsomorphicLayoutEffect(() => {\n if (typeof instanceRef === 'function') instanceRef(instance.current); else if (instanceRef) instanceRef.current = instance.current;\n return () => { if (typeof instanceRef === 'function') instanceRef(null); else if (instanceRef) instanceRef.current = null; };\n }, [instanceRef, duration, autoplay]);\n return <span {...safe} ref={root} role=\"img\" aria-label={text} className={['mk-handwriting-text', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type ButtonHTMLAttributes, type Ref } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createParticleButton, type ParticleButtonInstance, type ParticleButtonOptions } from './engine';\n\nexport interface ParticleButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'dangerouslySetInnerHTML'>, ParticleButtonOptions { instanceRef?: Ref<ParticleButtonInstance>; }\nexport function ParticleButton({ label = 'Celebrar', count, distance, onAction, instanceRef, type = 'button', className, ...props }: ParticleButtonProps) {\n const { children: _children, dangerouslySetInnerHTML: _html, ...safe } = props as ButtonHTMLAttributes<HTMLButtonElement>;\n const root = useRef<HTMLButtonElement>(null);\n const instance = useRef<ParticleButtonInstance | null>(null);\n const action = useLatest(onAction);\n useIsomorphicLayoutEffect(() => {\n const created = createParticleButton(root.current, { label, count, distance, onAction: () => action.current?.() });\n instance.current = created;\n return () => { created.destroy(); instance.current = null; };\n }, [label, count, distance]);\n useIsomorphicLayoutEffect(() => {\n if (typeof instanceRef === 'function') instanceRef(instance.current); else if (instanceRef) instanceRef.current = instance.current;\n return () => { if (typeof instanceRef === 'function') instanceRef(null); else if (instanceRef) instanceRef.current = null; };\n }, [instanceRef, label, count, distance]);\n return <button {...safe} type={type} ref={root} className={['mk-particle-button', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type ButtonHTMLAttributes, type Ref } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createMagnetizeButton, type MagnetizeButtonInstance, type MagnetizeButtonOptions } from './engine';\n\nexport interface MagnetizeButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'dangerouslySetInnerHTML'>, MagnetizeButtonOptions { instanceRef?: Ref<MagnetizeButtonInstance>; }\nexport function MagnetizeButton({ label = 'Reunir ideas', count, reach, onAction, instanceRef, type = 'button', className, ...props }: MagnetizeButtonProps) {\n const { children: _children, dangerouslySetInnerHTML: _html, ...safe } = props as ButtonHTMLAttributes<HTMLButtonElement>;\n const root = useRef<HTMLButtonElement>(null);\n const instance = useRef<MagnetizeButtonInstance | null>(null);\n const action = useLatest(onAction);\n useIsomorphicLayoutEffect(() => {\n const created = createMagnetizeButton(root.current, { label, count, reach, onAction: () => action.current?.() });\n instance.current = created;\n return () => { created.destroy(); instance.current = null; };\n }, [label, count, reach]);\n useIsomorphicLayoutEffect(() => {\n if (typeof instanceRef === 'function') instanceRef(instance.current); else if (instanceRef) instanceRef.current = instance.current;\n return () => { if (typeof instanceRef === 'function') instanceRef(null); else if (instanceRef) instanceRef.current = null; };\n }, [instanceRef, label, count, reach]);\n return <button {...safe} type={type} ref={root} className={['mk-magnetize-button', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type ButtonHTMLAttributes, type Ref } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createBadgeButton, type BadgeButtonInstance, type BadgeButtonOptions } from './engine';\n\nexport interface BadgeButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children' | 'dangerouslySetInnerHTML' | 'onChange'>, BadgeButtonOptions {\n defaultCount?: number;\n instanceRef?: Ref<BadgeButtonInstance>;\n}\nexport function BadgeButton({ label = 'Guardar', count, defaultCount = 0, step, hideZero, max, onChange, instanceRef, type = 'button', className, ...props }: BadgeButtonProps) {\n const { children: _children, dangerouslySetInnerHTML: _html, ...safe } = props as ButtonHTMLAttributes<HTMLButtonElement>;\n const root = useRef<HTMLButtonElement>(null);\n const instance = useRef<BadgeButtonInstance | null>(null);\n const current = useLatest({ count, onChange });\n const retained = useRef(defaultCount);\n useIsomorphicLayoutEffect(() => {\n let created: BadgeButtonInstance;\n created = createBadgeButton(root.current, {\n label, count: current.current.count ?? retained.current, step, hideZero, max,\n onChange: (next) => { current.current.onChange?.(next); if (current.current.count !== undefined) created.setCount(current.current.count); },\n });\n instance.current = created;\n return () => { retained.current = created.count; created.destroy(); instance.current = null; };\n }, [label, step, hideZero, max]);\n useIsomorphicLayoutEffect(() => { if (count !== undefined) instance.current?.setCount(count); }, [count]);\n useIsomorphicLayoutEffect(() => {\n if (typeof instanceRef === 'function') instanceRef(instance.current); else if (instanceRef) instanceRef.current = instance.current;\n return () => { if (typeof instanceRef === 'function') instanceRef(null); else if (instanceRef) instanceRef.current = null; };\n }, [instanceRef, label, step, hideZero, max]);\n return <button {...safe} type={type} ref={root} className={['mk-badge-button', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type Ref } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createMorphingPageDots, type MorphingPageDotsInstance, type MorphingPageDotsOptions } from './engine';\n\nexport interface MorphingPageDotsProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'dangerouslySetInnerHTML' | 'onChange'>, MorphingPageDotsOptions {\n defaultValue?: number;\n instanceRef?: Ref<MorphingPageDotsInstance>;\n}\nexport function MorphingPageDots({ count, value, defaultValue = 0, label, labels, pageIds, disabled, onChange, instanceRef, className, ...props }: MorphingPageDotsProps) {\n const { children: _children, dangerouslySetInnerHTML: _html, ...safe } = props as HTMLAttributes<HTMLDivElement>;\n const root = useRef<HTMLDivElement>(null);\n const instance = useRef<MorphingPageDotsInstance | null>(null);\n const current = useLatest({ value, onChange });\n const retained = useRef(defaultValue);\n const labelsKey = JSON.stringify(labels); const pagesKey = JSON.stringify(pageIds);\n useIsomorphicLayoutEffect(() => {\n let created: MorphingPageDotsInstance;\n created = createMorphingPageDots(root.current, {\n count, value: current.current.value ?? retained.current, label, labels, pageIds, disabled,\n onChange: (next) => { current.current.onChange?.(next); if (current.current.value !== undefined) created.setValue(current.current.value); },\n });\n instance.current = created;\n return () => { retained.current = created.value; created.destroy(); instance.current = null; };\n }, [count, label, labelsKey, pagesKey, disabled]);\n useIsomorphicLayoutEffect(() => { if (value !== undefined) instance.current?.setValue(value); }, [value]);\n useIsomorphicLayoutEffect(() => {\n if (typeof instanceRef === 'function') instanceRef(instance.current); else if (instanceRef) instanceRef.current = instance.current;\n return () => { if (typeof instanceRef === 'function') instanceRef(null); else if (instanceRef) instanceRef.current = null; };\n }, [instanceRef, count, label, labelsKey, pagesKey, disabled]);\n return <div {...safe} ref={root} className={['mk-morphing-page-dots', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\nimport { useRef, type HTMLAttributes, type Ref } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createNotFound, type NotFoundInstance, type NotFoundOptions } from './engine';\n\nexport interface NotFoundProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'dangerouslySetInnerHTML' | 'title'>, NotFoundOptions { instanceRef?: Ref<NotFoundInstance>; }\nexport function NotFound({ brand, title, description, homeHref, homeLabel, backLabel, showBack, onBack, instanceRef, className, ...props }: NotFoundProps) {\n const { children: _children, dangerouslySetInnerHTML: _html, ...safe } = props as HTMLAttributes<HTMLDivElement>;\n const root = useRef<HTMLDivElement>(null);\n const instance = useRef<NotFoundInstance | null>(null);\n const current = useLatest(onBack);\n const hasBack = Boolean(onBack);\n useIsomorphicLayoutEffect(() => {\n const created = createNotFound(root.current, { brand, title, description, homeHref, homeLabel, backLabel, showBack, onBack: hasBack ? () => current.current?.() : undefined });\n instance.current = created;\n return () => { created.destroy(); instance.current = null; };\n }, [brand, title, description, homeHref, homeLabel, backLabel, showBack, hasBack]);\n useIsomorphicLayoutEffect(() => {\n if (typeof instanceRef === 'function') instanceRef(instance.current); else if (instanceRef) instanceRef.current = instance.current;\n return () => { if (typeof instanceRef === 'function') instanceRef(null); else if (instanceRef) instanceRef.current = null; };\n }, [instanceRef, brand, title, description, homeHref, homeLabel, backLabel, showBack, hasBack]);\n return <div {...safe} ref={root} className={['mk-not-found', className].filter(Boolean).join(' ')} />;\n}\n","'use client';\n\nimport { useRef, type CSSProperties, type HTMLAttributes, type MutableRefObject } from 'react';\nimport { useIsomorphicLayoutEffect, useLatest } from '../../react/use-recipe';\nimport { createScrollArea, type ScrollAreaInstance, type ScrollAreaOptions } from './engine';\n\nexport interface ScrollAreaProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onScroll'>, Omit<ScrollAreaOptions, 'viewport'> {\n /** Class and style of the element that scrolls (padding, gap, layout of the content). */\n viewportClassName?: string;\n viewportStyle?: CSSProperties;\n unstyled?: boolean;\n instanceRef?: MutableRefObject<ScrollAreaInstance | null>;\n}\n\n/**\n * <ScrollArea style={{ height: 320 }} backToTop>…</ScrollArea>: the children scroll in a viewport with the kit's bars.\n */\nexport function ScrollArea({\n visibility,\n axis,\n idle,\n fade,\n backToTop,\n label,\n focusable,\n decorative,\n onScroll,\n viewportClassName,\n viewportStyle,\n unstyled,\n instanceRef,\n className,\n children,\n ...props\n}: ScrollAreaProps) {\n const ref = useRef<HTMLDivElement>(null);\n const viewport = useRef<HTMLDivElement>(null);\n const scrolled = useLatest(onScroll);\n useIsomorphicLayoutEffect(() => {\n const instance = createScrollArea(ref.current, {\n visibility,\n axis,\n idle,\n fade,\n backToTop,\n label,\n focusable,\n decorative,\n viewport: viewport.current,\n onScroll: (progress) => scrolled.current?.(progress),\n });\n if (instanceRef) instanceRef.current = instance;\n return () => {\n instance.destroy();\n if (instanceRef) instanceRef.current = null;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [visibility, axis, idle, fade, backToTop, label, focusable, decorative]);\n const classes = [unstyled ? null : 'mk-scroll-area', className].filter(Boolean).join(' ');\n return (\n <div {...props} ref={ref} className={classes || undefined}>\n <div ref={viewport} data-mk-scroll-viewport=\"\" className={viewportClassName} style={viewportStyle}>\n {children}\n </div>\n </div>\n );\n}\n"],"mappings":"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","names":["useRef","jsx","useRef","useRef","useState","jsx","useRef","useState","useEffect","useRef","useState","jsx","useState","useRef","useEffect","createContext","useContext","useMemo","useRef","useState","jsx","jsx","useState","useRef","useMemo","createContext","useContext","jsx","createContext","useContext","useRef","jsx","createContext","useContext","Root","Trigger","Content","useRef","useRef","jsx","useRef","useRef","jsx","useRef","Component","createContext","useContext","useRef","jsx","jsxs","createContext","Root","useRef","Component","useContext","useRef","Fragment","jsx","jsxs","useRef","createContext","useContext","useRef","jsx","createContext","Root","useRef","useContext","useRef","jsx","useRef","jsx","jsxs","useRef","jsx","jsxs","useRef","useRef","jsx","jsxs","useRef","useRef","jsx","jsxs","useRef","useRef","jsx","jsxs","useRef","useRef","jsx","jsxs","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","jsxs","useRef","useRef","jsx","jsxs","useRef","useRef","jsx","useRef","useRef","jsx","jsxs","useRef","useRef","useState","jsx","jsxs","useRef","useState","required","Fragment","useMemo","useRef","jsx","jsxs","useRef","useMemo","Fragment","useRef","jsx","jsxs","Root","useRef","createContext","useContext","useMemo","jsx","createContext","useContext","Root","Trigger","Content","useMemo","useEffect","useRef","useState","Fragment","jsx","jsxs","useState","useEffect","useRef","useRef","jsx","useRef","useRef","jsx","jsxs","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","Fragment","jsx","jsxs","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","jsxs","Root","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","keyOf","useRef","useRef","jsx","useRef","useRef","jsx","jsxs","Popover","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","keyOf","useRef","useRef","jsx","useRef","useRef","jsx","useRef","forwardRef","useImperativeHandle","useRef","jsx","forwardRef","ActivityFeed","useRef","useImperativeHandle","forwardRef","useImperativeHandle","useRef","jsx","forwardRef","TreeView","useRef","useImperativeHandle","animate","forwardRef","useImperativeHandle","useRef","jsx","forwardRef","FileExplorer","useRef","useImperativeHandle","forwardRef","useImperativeHandle","useRef","jsx","forwardRef","JsonViewer","useRef","useImperativeHandle","forwardRef","useImperativeHandle","useRef","useState","jsx","useRef","useState","useImperativeHandle","forwardRef","Children","forwardRef","useImperativeHandle","useRef","jsx","forwardRef","ResizablePanel","useRef","useImperativeHandle","animate","Children","forwardRef","useImperativeHandle","useRef","jsxs","forwardRef","SplitView","useRef","useImperativeHandle","animate","forwardRef","useImperativeHandle","useRef","jsx","useRef","useImperativeHandle","forwardRef","forwardRef","useImperativeHandle","useRef","jsx","useRef","useImperativeHandle","forwardRef","forwardRef","useImperativeHandle","useRef","jsx","forwardRef","RichTextEditor","useRef","useImperativeHandle","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","jsxs","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","useRef","jsx","jsx","jsx","jsx","jsx","useRef","jsx","jsxs","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","forwardRef","useImperativeHandle","useReducer","useRef","jsx","forwardRef","DrilldownMenu","useRef","useReducer","useImperativeHandle","useReducer","useRef","jsx","useRef","useReducer","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef","useRef","jsx","useRef"]}