@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/auto/parse-options.ts","../../src/auto/auto-init.ts"],"sourcesContent":["/** Attributes the recipes write themselves or use for children; never options. */\nconst RESERVED = new Set([\n '',\n 'ready',\n 'inview',\n 'carousel',\n 'open',\n 'card',\n 'slide',\n 'toggle',\n 'item',\n 'phantom',\n 'footerTitle',\n 'tab',\n 'indicator',\n 'chevron',\n 'text',\n 'role',\n 'motion',\n 'veil',\n 'swatch',\n 'part',\n 'sorting',\n 'sortableGroup',\n 'sortableLocked',\n 'cascade',\n 'on',\n 'tone',\n 'cursorZone',\n 'hidden',\n 'pressed',\n 'parallaxTarget',\n 'spread',\n 'expanded',\n 'settled',\n 'mode',\n 'active',\n 'islandToggle',\n 'islandPanel',\n 'islandItem',\n 'islandClose',\n 'reelTrack',\n 'reelCopy',\n 'dragging',\n 'dockItem',\n]);\n\nconst coerce = (value: string): unknown => {\n if (value === '' || value === 'true') return true;\n if (value === 'false') return false;\n if (/^-?\\d*\\.?\\d+$/.test(value)) return Number(value);\n return value;\n};\n\n/**\n * `data-mk-<option>` attributes → options object.\n * `data-mk-throw-boost=\"2.5\"` → `{ throwBoost: 2.5 }`, `data-mk-trigger=\"load\"` → `{ trigger: 'load' }`.\n */\nexport function parseOptions(el: HTMLElement): Record<string, unknown> {\n const options: Record<string, unknown> = {};\n for (const [key, raw] of Object.entries(el.dataset)) {\n if (!key.startsWith('mk') || key.length === 2) continue;\n const name = key.charAt(2).toLowerCase() + key.slice(3);\n if (RESERVED.has(name)) continue;\n options[name] = coerce(raw ?? '');\n }\n return options;\n}\n","import { createNotFound } from '../components/not-found/engine';\r\nimport { createMorphingPageDots } from '../components/morphing-page-dots/engine';\r\nimport { createBadgeButton } from '../components/badge-button/engine';\r\nimport { createMagnetizeButton } from '../components/magnetize-button/engine';\r\nimport { createParticleButton } from '../components/particle-button/engine';\r\nimport { createHandwritingText } from '../components/handwriting-text/engine';\r\nimport { createStickyHeader } from '../components/sticky-header/engine';\r\nimport { createScrollPreviewDock } from '../components/scroll-preview-dock/engine';\r\nimport { createBentoGrid } from '../components/bento-grid/engine';\r\nimport { createNotificationStack } from '../components/notification-stack/engine';\r\nimport { createRatingScale } from '../components/rating-scale/engine';\r\nimport { createTemperatureSlider } from '../components/temperature-slider/engine';\r\nimport { createEqualizerSlider } from '../components/equalizer-slider/engine';\r\nimport { createRadioGroup } from '../components/radio-group/engine';\r\nimport { createStepper } from '../components/stepper/engine';\r\nimport { createQuantity } from '../components/quantity/engine';\r\nimport { createPagination } from '../components/pagination/engine';\r\nimport { createHoverCard } from '../components/hover-card/engine';\r\nimport { createInputOtp } from '../components/input-otp/engine';\r\nimport { createJoinedCta } from '../recipes/joined-cta/create-joined-cta';\r\nimport { createImageZoom } from '../recipes/image-zoom/create-image-zoom';\r\nimport { createFontCycle } from '../recipes/font-cycle/create-font-cycle';\r\nimport { createThumbnailNav } from '../recipes/thumbnail-nav/create-thumbnail-nav';\r\nimport { createActionButton } from '../recipes/action-button/create-action-button';\r\nimport { createFilmHero } from '../recipes/film-hero/create-film-hero';\r\nimport { createEditorialReveal } from '../recipes/editorial-reveal/create-editorial-reveal';\r\nimport { createStudioDock } from '../components/studio-dock/engine';\r\nimport { createCalendar } from '../components/calendar/engine';\r\nimport { createSlotPicker } from '../components/slot-picker/engine';\r\nimport { createWeightHover } from '../recipes/weight-hover/create-weight-hover';\r\nimport { createSticker } from '../recipes/sticker/create-sticker';\r\nimport { createScrollDock } from '../recipes/scroll-dock/create-scroll-dock';\r\nimport { createLocalClock } from '../recipes/local-clock/create-local-clock';\r\nimport { createTrailer } from '../components/trailer/engine';\r\nimport { createCreditCard } from '../components/credit-card/engine';\r\nimport { createCommandSearch } from '../components/command-search/engine';\r\nimport { createHoldConfirm } from '../components/hold-confirm/engine';\r\nimport { createImagePreview } from '../components/image-preview/engine';\r\nimport { createLikeButton } from '../components/like-button/engine';\r\nimport { createNotificationBell } from '../components/notification-bell/engine';\r\nimport { createPasswordStrength } from '../components/password-strength/engine';\r\nimport { createScratchCard } from '../components/scratch-card/engine';\r\nimport { createStarRating } from '../components/star-rating/engine';\r\nimport { createSwipeActions } from '../components/swipe-actions/engine';\r\nimport { createAttachment } from '../components/attachment/engine';\r\nimport { createSkeleton } from '../components/skeleton/engine';\r\nimport { createQuestionnaire } from '../components/questionnaire/engine';\r\nimport { createCodeBlock } from '../components/code-block/engine';\r\nimport { createContextMenu } from '../components/context-menu/engine';\r\nimport { createDrawer } from '../components/drawer/engine';\r\nimport { createLinkPreview } from '../components/link-preview/engine';\r\nimport { createProgress } from '../components/progress/engine';\r\nimport { createRangeSlider } from '../components/range-slider/engine';\r\nimport { createChart } from '../components/chart/engine';\r\nimport { createColorSlider } from '../components/color-slider/engine';\r\nimport { createColorArea } from '../components/color-area/engine';\r\nimport { createColorField } from '../components/color-field/engine';\r\nimport { createColorPicker } from '../components/color-picker/engine';\r\nimport { createTimeField } from '../components/time-field/engine';\r\nimport { createRangeCalendar } from '../components/range-calendar/engine';\r\nimport { createDateRangePicker } from '../components/date-range-picker/engine';\r\nimport { createTooltip } from '../components/tooltip/engine';\r\nimport { createPopover } from '../components/popover/engine';\r\nimport { createLoadingButton } from '../components/loading-button/engine';\r\nimport { createBreadcrumb } from '../components/breadcrumb/engine';\r\nimport { createEmptyState } from '../components/empty-state/engine';\r\nimport { createStatCard } from '../components/stat-card/engine';\r\nimport { createChartTooltip } from '../components/chart-tooltip/engine';\r\nimport { createMultiSelect } from '../components/multi-select/engine';\r\nimport { createTagInput } from '../components/tag-input/engine';\r\nimport { createDateTimePicker } from '../components/date-time-picker/engine';\r\nimport { createFilterBuilder } from '../components/filter-builder/engine';\r\nimport { createTimeline } from '../components/timeline/engine';\r\nimport { createActivityFeed } from '../components/activity-feed/engine';\r\nimport { createTreeView } from '../components/tree-view/engine';\r\nimport { createFileExplorer } from '../components/file-explorer/engine';\r\nimport { createJsonViewer } from '../components/json-viewer/engine';\r\nimport { createVirtualList } from '../components/virtual-list/engine';\r\nimport { createResizablePanel } from '../components/resizable-panel/engine';\r\nimport { createSplitView } from '../components/split-view/engine';\r\nimport { createDataTable } from '../components/data-table/engine';\r\nimport { createEditableTable } from '../components/editable-table/engine';\r\nimport { createRichTextEditor } from '../components/rich-text-editor/engine';\r\nimport { createSelect } from '../components/select/engine';\r\nimport { createAddToCart } from '../components/add-to-cart/engine';\r\nimport { createScrollIsland } from '../components/scroll-island/engine';\r\nimport { ScrollTrigger } from '../core/gsap';\r\nimport { warnOnce, type Instance } from '../core/types';\r\nimport { createSpringCards } from '../recipes/spring-cards/create-spring-cards';\r\nimport { createCurvedCarousel } from '../recipes/curved-carousel/create-curved-carousel';\r\nimport { createPile } from '../recipes/pile/create-pile';\r\nimport { createWords } from '../recipes/words/create-words';\r\nimport { createFlow } from '../recipes/flow/create-flow';\r\nimport { createPop } from '../recipes/pop/create-pop';\r\nimport { createFitText } from '../recipes/fit-text/create-fit-text';\r\nimport { createStretchFooter } from '../recipes/stretch-footer/create-stretch-footer';\r\nimport { createRadialMenu } from '../recipes/radial-menu/create-radial-menu';\r\nimport { createTabs } from '../recipes/tabs/create-tabs';\r\nimport { createCounter } from '../recipes/counter/create-counter';\r\nimport { createDetails } from '../recipes/details/create-details';\r\nimport { createReveal } from '../recipes/reveal/create-reveal';\r\nimport { createReflow } from '../recipes/reflow/create-reflow';\r\nimport { createSlotText } from '../recipes/slot-text/create-slot-text';\r\nimport { createSortable } from '../recipes/sortable/create-sortable';\r\nimport { createMaskText } from '../recipes/mask-text/create-mask-text';\r\nimport { createCascade } from '../recipes/cascade/create-cascade';\r\nimport { createTextRoll } from '../recipes/text-roll/create-text-roll';\r\nimport { createLetters } from '../recipes/letters/create-letters';\r\nimport { createParallax } from '../recipes/parallax/create-parallax';\r\nimport { createDepthGrid } from '../recipes/depth-grid/create-depth-grid';\r\nimport { createFrameZoom } from '../recipes/frame-zoom/create-frame-zoom';\r\nimport { createContrast } from '../recipes/contrast/create-contrast';\r\nimport { createMarquee } from '../recipes/marquee/create-marquee';\r\nimport { createCardDock } from '../recipes/card-dock/create-card-dock';\r\nimport { createSnapStrip } from '../recipes/snap-strip/create-snap-strip';\r\nimport { createFillText } from '../recipes/fill-text/create-fill-text';\r\nimport { parseOptions } from './parse-options';\r\nimport { createTicketMenu } from '../recipes/ticket-menu/create-ticket-menu';\r\nimport { createInfiniteReel } from '../recipes/infinite-reel/create-infinite-reel';\r\nimport { createRepelBento } from '../recipes/repel-bento/create-repel-bento';\r\nimport { createRotator } from '../recipes/rotator/create-rotator';\r\nimport { createDragRuler } from '../recipes/drag-ruler/create-drag-ruler';\r\nimport { createDockPill } from '../recipes/dock-pill/create-dock-pill';\r\n\r\nimport { createSignaturePad } from '../components/signature-pad/engine';\r\n\r\nimport { createWaveformPlayer } from '../components/waveform-player/engine';\r\n\r\nimport { createVoiceMessageBubble } from '../components/voice-message-bubble/engine';\r\n\r\nimport { createDrilldownMenu } from '../components/drilldown-menu/engine';\r\n\r\nimport { createWheelPicker } from '../components/wheel-picker/engine';\r\n\r\ntype Factory = (el: HTMLElement, options: Record<string, unknown>) => Instance;\r\n\r\nconst factories = {\r\n 'stepper': createStepper,\r\n 'radio-group': createRadioGroup,\r\n 'equalizer-slider': createEqualizerSlider,\r\n 'temperature-slider': createTemperatureSlider,\r\n 'rating-scale': createRatingScale,\r\n 'notification-stack': createNotificationStack,\r\n 'bento-grid': createBentoGrid,\r\n 'scroll-preview-dock': createScrollPreviewDock,\r\n 'sticky-header': createStickyHeader,\r\n 'handwriting-text': createHandwritingText,\r\n 'particle-button': createParticleButton,\r\n 'magnetize-button': createMagnetizeButton,\r\n 'badge-button': createBadgeButton,\r\n 'morphing-page-dots': createMorphingPageDots,\r\n 'not-found': createNotFound,\r\n\r\n 'wheel-picker': createWheelPicker,\r\n 'drilldown-menu': createDrilldownMenu,\r\n 'voice-message-bubble': createVoiceMessageBubble,\r\n 'waveform-player': createWaveformPlayer,\r\n 'signature-pad': createSignaturePad,\r\n 'joined-cta': createJoinedCta,\r\n 'image-zoom': createImageZoom,\r\n 'font-cycle': createFontCycle,\r\n 'thumbnail-nav': createThumbnailNav,\r\n 'action-button': createActionButton,\r\n 'film-hero': createFilmHero,\r\n 'editorial-reveal': createEditorialReveal,\r\n 'studio-dock': createStudioDock,\r\n 'trailer': createTrailer,\r\n 'quantity': createQuantity,\r\n 'pagination': createPagination,\r\n 'hover-card': createHoverCard,\r\n 'input-otp': createInputOtp,\r\n 'calendar': createCalendar,\r\n 'slot-picker': createSlotPicker,\r\n 'credit-card': createCreditCard,\r\n 'command-search': createCommandSearch,\r\n 'hold-confirm': createHoldConfirm,\r\n 'image-preview': createImagePreview,\r\n 'like-button': createLikeButton,\r\n 'notification-bell': createNotificationBell,\r\n 'password-strength': createPasswordStrength,\r\n 'scratch-card': createScratchCard,\r\n 'star-rating': createStarRating,\r\n 'swipe-actions': createSwipeActions,\r\n 'attachment': createAttachment,\r\n 'skeleton': createSkeleton,\r\n 'questionnaire': createQuestionnaire,\r\n 'code-block': createCodeBlock,\r\n 'context-menu': createContextMenu,\r\n 'drawer': createDrawer,\r\n 'link-preview': createLinkPreview,\r\n 'progress': createProgress,\r\n 'range-slider': createRangeSlider,\r\n 'chart': createChart,\r\n 'color-slider': createColorSlider,\r\n 'color-area': createColorArea,\r\n 'color-field': createColorField,\r\n 'color-picker': createColorPicker,\r\n 'time-field': createTimeField,\r\n 'range-calendar': createRangeCalendar,\r\n 'date-range-picker': createDateRangePicker,\r\n 'tooltip': createTooltip,\r\n 'popover': createPopover,\r\n 'loading-button': createLoadingButton,\r\n 'breadcrumb': createBreadcrumb,\r\n 'empty-state': createEmptyState,\r\n 'stat-card': createStatCard,\r\n 'chart-tooltip': createChartTooltip,\r\n 'multi-select': createMultiSelect,\r\n 'tag-input': createTagInput,\r\n 'date-time-picker': createDateTimePicker,\r\n 'filter-builder': createFilterBuilder,\r\n 'timeline': createTimeline,\r\n 'activity-feed': createActivityFeed,\r\n 'tree-view': createTreeView,\r\n 'file-explorer': createFileExplorer,\r\n 'json-viewer': createJsonViewer,\r\n 'virtual-list': createVirtualList,\r\n 'resizable-panel': createResizablePanel,\r\n 'split-view': createSplitView,\r\n 'data-table': createDataTable,\r\n 'editable-table': createEditableTable,\r\n 'rich-text-editor': createRichTextEditor,\r\n 'select': createSelect,\r\n 'add-to-cart': createAddToCart,\r\n 'scroll-island': createScrollIsland,\r\n 'weight-hover': createWeightHover,\r\n 'sticker': createSticker,\r\n 'scroll-dock': createScrollDock,\r\n 'local-clock': createLocalClock,\r\n 'spring-cards': createSpringCards,\r\n 'curved-carousel': (el, options) =>\r\n createCurvedCarousel(el, {\r\n ...options,\r\n onSelect: (index, slide) => el.dispatchEvent(new CustomEvent('mk:select', { detail: { index, slide }, bubbles: true })),\r\n }),\r\n pile: createPile,\r\n words: createWords,\r\n flow: createFlow,\r\n pop: createPop,\r\n 'fit-text': createFitText,\r\n 'stretch-footer': createStretchFooter,\r\n 'radial-menu': createRadialMenu,\r\n tabs: createTabs,\r\n counter: createCounter,\r\n details: (el) => createDetails(el),\r\n reveal: createReveal,\r\n reflow: createReflow,\r\n 'slot-text': createSlotText,\r\n sortable: createSortable,\r\n 'mask-text': createMaskText,\r\n cascade: createCascade,\r\n 'text-roll': createTextRoll,\r\n letters: createLetters,\r\n parallax: createParallax,\r\n 'depth-grid': createDepthGrid,\r\n 'frame-zoom': createFrameZoom,\r\n contrast: createContrast,\r\n marquee: createMarquee,\r\n 'card-dock': createCardDock,\r\n 'snap-strip': createSnapStrip,\r\n 'fill-text': createFillText,\r\n 'ticket-menu': createTicketMenu,\r\n 'infinite-reel': createInfiniteReel,\r\n 'repel-bento': createRepelBento,\r\n 'rotator': createRotator,\r\n 'drag-ruler': createDragRuler,\r\n 'dock-pill': createDockPill,\r\n} satisfies Record<string, Factory>;\r\n\r\nexport type RecipeName = keyof typeof factories;\r\nexport const recipeNames = Object.keys(factories) as RecipeName[];\r\n\r\n/** Measured text: wait for web fonts, fit before splitting into words. */\r\nconst AFTER_FONTS: RecipeName[] = ['fit-text', 'words', 'slot-text'];\r\n\r\nconst instances = new WeakMap<HTMLElement, Map<RecipeName, Instance>>();\r\n\r\nexport interface AutoInitOptions {\r\n /** Only start these recipes. */\r\n only?: RecipeName[];\r\n}\r\n\r\n/**\r\n * Start every `[data-mk]` recipe inside `root` (an element may list several:\r\n * `data-mk=\"fit-text words\"`). Options come from `data-mk-*` attributes.\r\n * Returns a function that destroys what this call created. Safe to call again:\r\n * elements that already run a recipe are skipped.\r\n */\r\nexport function autoInit(root: ParentNode = document, { only }: AutoInitOptions = {}): () => void {\r\n if (typeof window === 'undefined') return () => {};\r\n const created: Array<[HTMLElement, RecipeName, Instance]> = [];\r\n let cancelled = false;\r\n\r\n const elements = [...root.querySelectorAll<HTMLElement>('[data-mk]')];\r\n if (root instanceof HTMLElement && root.matches('[data-mk]')) elements.unshift(root);\r\n\r\n const start = (el: HTMLElement, name: RecipeName) => {\r\n if (cancelled) return;\r\n const running = instances.get(el) ?? new Map<RecipeName, Instance>();\r\n if (running.has(name)) return;\r\n const instance = (factories[name] as Factory)(el, parseOptions(el));\r\n running.set(name, instance);\r\n instances.set(el, running);\r\n created.push([el, name, instance]);\r\n };\r\n\r\n const now: Array<[HTMLElement, RecipeName]> = [];\r\n const later: Array<[HTMLElement, RecipeName]> = [];\r\n for (const el of elements) {\r\n for (const raw of (el.dataset.mk ?? '').split(/\\s+/).filter(Boolean)) {\r\n if (!(raw in factories)) {\r\n warnOnce(`autoInit: unknown recipe \"${raw}\" (known: ${recipeNames.join(', ')})`);\r\n continue;\r\n }\r\n const name = raw as RecipeName;\r\n if (only && !only.includes(name)) continue;\r\n (AFTER_FONTS.includes(name) ? later : now).push([el, name]);\r\n }\r\n }\r\n\r\n now.forEach(([el, name]) => start(el, name));\r\n if (later.length) {\r\n later.sort((a, b) => AFTER_FONTS.indexOf(a[1]) - AFTER_FONTS.indexOf(b[1]));\r\n const fonts = document.fonts?.ready ?? Promise.resolve();\r\n void Promise.race([fonts, new Promise((resolve) => setTimeout(resolve, 1500))]).then(() => {\r\n later.forEach(([el, name]) => start(el, name));\r\n if (!cancelled) ScrollTrigger.refresh();\r\n });\r\n }\r\n\r\n return () => {\r\n cancelled = true;\r\n for (const [el, name, instance] of created.reverse()) {\r\n instance.destroy();\r\n instances.get(el)?.delete(name);\r\n }\r\n created.length = 0;\r\n };\r\n}\r\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/auto/parse-options.ts","../../src/auto/auto-init.ts"],"sourcesContent":["/** Attributes the recipes write themselves or use for children; never options. */\nconst RESERVED = new Set([\n '',\n 'ready',\n 'inview',\n 'carousel',\n 'open',\n 'card',\n 'slide',\n 'toggle',\n 'item',\n 'phantom',\n 'footerTitle',\n 'tab',\n 'indicator',\n 'chevron',\n 'text',\n 'role',\n 'motion',\n 'veil',\n 'swatch',\n 'part',\n 'sorting',\n 'sortableGroup',\n 'sortableLocked',\n 'cascade',\n 'on',\n 'tone',\n 'cursorZone',\n 'hidden',\n 'pressed',\n 'parallaxTarget',\n 'spread',\n 'expanded',\n 'settled',\n 'mode',\n 'active',\n 'islandToggle',\n 'islandPanel',\n 'islandItem',\n 'islandClose',\n 'reelTrack',\n 'reelCopy',\n 'dragging',\n 'dockItem',\n]);\n\nconst coerce = (value: string): unknown => {\n if (value === '' || value === 'true') return true;\n if (value === 'false') return false;\n if (/^-?\\d*\\.?\\d+$/.test(value)) return Number(value);\n return value;\n};\n\n/**\n * `data-mk-<option>` attributes → options object.\n * `data-mk-throw-boost=\"2.5\"` → `{ throwBoost: 2.5 }`, `data-mk-trigger=\"load\"` → `{ trigger: 'load' }`.\n */\nexport function parseOptions(el: HTMLElement): Record<string, unknown> {\n const options: Record<string, unknown> = {};\n for (const [key, raw] of Object.entries(el.dataset)) {\n if (!key.startsWith('mk') || key.length === 2) continue;\n const name = key.charAt(2).toLowerCase() + key.slice(3);\n if (RESERVED.has(name)) continue;\n options[name] = coerce(raw ?? '');\n }\n return options;\n}\n","import { createNotFound } from '../components/not-found/engine';\nimport { createMorphingPageDots } from '../components/morphing-page-dots/engine';\nimport { createBadgeButton } from '../components/badge-button/engine';\nimport { createMagnetizeButton } from '../components/magnetize-button/engine';\nimport { createParticleButton } from '../components/particle-button/engine';\nimport { createHandwritingText } from '../components/handwriting-text/engine';\nimport { createStickyHeader } from '../components/sticky-header/engine';\nimport { createScrollPreviewDock } from '../components/scroll-preview-dock/engine';\nimport { createBentoGrid } from '../components/bento-grid/engine';\nimport { createNotificationStack } from '../components/notification-stack/engine';\nimport { createRatingScale } from '../components/rating-scale/engine';\nimport { createTemperatureSlider } from '../components/temperature-slider/engine';\nimport { createEqualizerSlider } from '../components/equalizer-slider/engine';\nimport { createRadioGroup } from '../components/radio-group/engine';\nimport { createStepper } from '../components/stepper/engine';\nimport { createQuantity } from '../components/quantity/engine';\nimport { createPagination } from '../components/pagination/engine';\nimport { createHoverCard } from '../components/hover-card/engine';\nimport { createInputOtp } from '../components/input-otp/engine';\nimport { createJoinedCta } from '../recipes/joined-cta/create-joined-cta';\nimport { createImageZoom } from '../recipes/image-zoom/create-image-zoom';\nimport { createFontCycle } from '../recipes/font-cycle/create-font-cycle';\nimport { createThumbnailNav } from '../recipes/thumbnail-nav/create-thumbnail-nav';\nimport { createActionButton } from '../recipes/action-button/create-action-button';\nimport { createFilmHero } from '../recipes/film-hero/create-film-hero';\nimport { createEditorialReveal } from '../recipes/editorial-reveal/create-editorial-reveal';\nimport { createStudioDock } from '../components/studio-dock/engine';\nimport { createCalendar } from '../components/calendar/engine';\nimport { createSlotPicker } from '../components/slot-picker/engine';\nimport { createWeightHover } from '../recipes/weight-hover/create-weight-hover';\nimport { createSticker } from '../recipes/sticker/create-sticker';\nimport { createScrollDock } from '../recipes/scroll-dock/create-scroll-dock';\nimport { createLocalClock } from '../recipes/local-clock/create-local-clock';\nimport { createTrailer } from '../components/trailer/engine';\nimport { createCreditCard } from '../components/credit-card/engine';\nimport { createCommandSearch } from '../components/command-search/engine';\nimport { createHoldConfirm } from '../components/hold-confirm/engine';\nimport { createImagePreview } from '../components/image-preview/engine';\nimport { createLikeButton } from '../components/like-button/engine';\nimport { createNotificationBell } from '../components/notification-bell/engine';\nimport { createPasswordStrength } from '../components/password-strength/engine';\nimport { createScratchCard } from '../components/scratch-card/engine';\nimport { createStarRating } from '../components/star-rating/engine';\nimport { createSwipeActions } from '../components/swipe-actions/engine';\nimport { createAttachment } from '../components/attachment/engine';\nimport { createSkeleton } from '../components/skeleton/engine';\nimport { createQuestionnaire } from '../components/questionnaire/engine';\nimport { createCodeBlock } from '../components/code-block/engine';\nimport { createContextMenu } from '../components/context-menu/engine';\nimport { createDrawer } from '../components/drawer/engine';\nimport { createLinkPreview } from '../components/link-preview/engine';\nimport { createProgress } from '../components/progress/engine';\nimport { createRangeSlider } from '../components/range-slider/engine';\nimport { createChart } from '../components/chart/engine';\nimport { createColorSlider } from '../components/color-slider/engine';\nimport { createColorArea } from '../components/color-area/engine';\nimport { createColorField } from '../components/color-field/engine';\nimport { createColorPicker } from '../components/color-picker/engine';\nimport { createTimeField } from '../components/time-field/engine';\nimport { createRangeCalendar } from '../components/range-calendar/engine';\nimport { createDateRangePicker } from '../components/date-range-picker/engine';\nimport { createTooltip } from '../components/tooltip/engine';\nimport { createPopover } from '../components/popover/engine';\nimport { createLoadingButton } from '../components/loading-button/engine';\nimport { createBreadcrumb } from '../components/breadcrumb/engine';\nimport { createEmptyState } from '../components/empty-state/engine';\nimport { createStatCard } from '../components/stat-card/engine';\nimport { createChartTooltip } from '../components/chart-tooltip/engine';\nimport { createMultiSelect } from '../components/multi-select/engine';\nimport { createTagInput } from '../components/tag-input/engine';\nimport { createDateTimePicker } from '../components/date-time-picker/engine';\nimport { createFilterBuilder } from '../components/filter-builder/engine';\nimport { createTimeline } from '../components/timeline/engine';\nimport { createActivityFeed } from '../components/activity-feed/engine';\nimport { createTreeView } from '../components/tree-view/engine';\nimport { createFileExplorer } from '../components/file-explorer/engine';\nimport { createJsonViewer } from '../components/json-viewer/engine';\nimport { createVirtualList } from '../components/virtual-list/engine';\nimport { createResizablePanel } from '../components/resizable-panel/engine';\nimport { createSplitView } from '../components/split-view/engine';\nimport { createDataTable } from '../components/data-table/engine';\nimport { createEditableTable } from '../components/editable-table/engine';\nimport { createRichTextEditor } from '../components/rich-text-editor/engine';\nimport { createSelect } from '../components/select/engine';\nimport { createAddToCart } from '../components/add-to-cart/engine';\nimport { createScrollIsland } from '../components/scroll-island/engine';\nimport { createScrollArea } from '../components/scroll-area/engine';\nimport { ScrollTrigger } from '../core/gsap';\nimport { warnOnce, type Instance } from '../core/types';\nimport { createSpringCards } from '../recipes/spring-cards/create-spring-cards';\nimport { createCurvedCarousel } from '../recipes/curved-carousel/create-curved-carousel';\nimport { createPile } from '../recipes/pile/create-pile';\nimport { createWords } from '../recipes/words/create-words';\nimport { createFlow } from '../recipes/flow/create-flow';\nimport { createPop } from '../recipes/pop/create-pop';\nimport { createFitText } from '../recipes/fit-text/create-fit-text';\nimport { createStretchFooter } from '../recipes/stretch-footer/create-stretch-footer';\nimport { createRadialMenu } from '../recipes/radial-menu/create-radial-menu';\nimport { createTabs } from '../recipes/tabs/create-tabs';\nimport { createCounter } from '../recipes/counter/create-counter';\nimport { createDetails } from '../recipes/details/create-details';\nimport { createReveal } from '../recipes/reveal/create-reveal';\nimport { createReflow } from '../recipes/reflow/create-reflow';\nimport { createSlotText } from '../recipes/slot-text/create-slot-text';\nimport { createSortable } from '../recipes/sortable/create-sortable';\nimport { createMaskText } from '../recipes/mask-text/create-mask-text';\nimport { createCascade } from '../recipes/cascade/create-cascade';\nimport { createTextRoll } from '../recipes/text-roll/create-text-roll';\nimport { createLetters } from '../recipes/letters/create-letters';\nimport { createParallax } from '../recipes/parallax/create-parallax';\nimport { createDepthGrid } from '../recipes/depth-grid/create-depth-grid';\nimport { createFrameZoom } from '../recipes/frame-zoom/create-frame-zoom';\nimport { createContrast } from '../recipes/contrast/create-contrast';\nimport { createMarquee } from '../recipes/marquee/create-marquee';\nimport { createCardDock } from '../recipes/card-dock/create-card-dock';\nimport { createSnapStrip } from '../recipes/snap-strip/create-snap-strip';\nimport { createFillText } from '../recipes/fill-text/create-fill-text';\nimport { parseOptions } from './parse-options';\nimport { createTicketMenu } from '../recipes/ticket-menu/create-ticket-menu';\nimport { createInfiniteReel } from '../recipes/infinite-reel/create-infinite-reel';\nimport { createRepelBento } from '../recipes/repel-bento/create-repel-bento';\nimport { createRotator } from '../recipes/rotator/create-rotator';\nimport { createDragRuler } from '../recipes/drag-ruler/create-drag-ruler';\nimport { createDockPill } from '../recipes/dock-pill/create-dock-pill';\n\nimport { createSignaturePad } from '../components/signature-pad/engine';\n\nimport { createWaveformPlayer } from '../components/waveform-player/engine';\n\nimport { createVoiceMessageBubble } from '../components/voice-message-bubble/engine';\n\nimport { createDrilldownMenu } from '../components/drilldown-menu/engine';\n\nimport { createWheelPicker } from '../components/wheel-picker/engine';\n\ntype Factory = (el: HTMLElement, options: Record<string, unknown>) => Instance;\n\nconst factories = {\n 'stepper': createStepper,\n 'radio-group': createRadioGroup,\n 'equalizer-slider': createEqualizerSlider,\n 'temperature-slider': createTemperatureSlider,\n 'rating-scale': createRatingScale,\n 'notification-stack': createNotificationStack,\n 'bento-grid': createBentoGrid,\n 'scroll-preview-dock': createScrollPreviewDock,\n 'sticky-header': createStickyHeader,\n 'handwriting-text': createHandwritingText,\n 'particle-button': createParticleButton,\n 'magnetize-button': createMagnetizeButton,\n 'badge-button': createBadgeButton,\n 'morphing-page-dots': createMorphingPageDots,\n 'not-found': createNotFound,\n\n 'wheel-picker': createWheelPicker,\n 'drilldown-menu': createDrilldownMenu,\n 'voice-message-bubble': createVoiceMessageBubble,\n 'waveform-player': createWaveformPlayer,\n 'signature-pad': createSignaturePad,\n 'joined-cta': createJoinedCta,\n 'image-zoom': createImageZoom,\n 'font-cycle': createFontCycle,\n 'thumbnail-nav': createThumbnailNav,\n 'action-button': createActionButton,\n 'film-hero': createFilmHero,\n 'editorial-reveal': createEditorialReveal,\n 'studio-dock': createStudioDock,\n 'trailer': createTrailer,\n 'quantity': createQuantity,\n 'pagination': createPagination,\n 'hover-card': createHoverCard,\n 'input-otp': createInputOtp,\n 'calendar': createCalendar,\n 'slot-picker': createSlotPicker,\n 'credit-card': createCreditCard,\n 'command-search': createCommandSearch,\n 'hold-confirm': createHoldConfirm,\n 'image-preview': createImagePreview,\n 'like-button': createLikeButton,\n 'notification-bell': createNotificationBell,\n 'password-strength': createPasswordStrength,\n 'scratch-card': createScratchCard,\n 'star-rating': createStarRating,\n 'swipe-actions': createSwipeActions,\n 'attachment': createAttachment,\n 'skeleton': createSkeleton,\n 'questionnaire': createQuestionnaire,\n 'code-block': createCodeBlock,\n 'context-menu': createContextMenu,\n 'drawer': createDrawer,\n 'link-preview': createLinkPreview,\n 'progress': createProgress,\n 'range-slider': createRangeSlider,\n 'chart': createChart,\n 'color-slider': createColorSlider,\n 'color-area': createColorArea,\n 'color-field': createColorField,\n 'color-picker': createColorPicker,\n 'time-field': createTimeField,\n 'range-calendar': createRangeCalendar,\n 'date-range-picker': createDateRangePicker,\n 'tooltip': createTooltip,\n 'popover': createPopover,\n 'loading-button': createLoadingButton,\n 'breadcrumb': createBreadcrumb,\n 'empty-state': createEmptyState,\n 'stat-card': createStatCard,\n 'chart-tooltip': createChartTooltip,\n 'multi-select': createMultiSelect,\n 'tag-input': createTagInput,\n 'date-time-picker': createDateTimePicker,\n 'filter-builder': createFilterBuilder,\n 'timeline': createTimeline,\n 'activity-feed': createActivityFeed,\n 'tree-view': createTreeView,\n 'file-explorer': createFileExplorer,\n 'json-viewer': createJsonViewer,\n 'virtual-list': createVirtualList,\n 'resizable-panel': createResizablePanel,\n 'split-view': createSplitView,\n 'data-table': createDataTable,\n 'editable-table': createEditableTable,\n 'rich-text-editor': createRichTextEditor,\n 'select': createSelect,\n 'add-to-cart': createAddToCart,\n 'scroll-island': createScrollIsland,\n 'scroll-area': createScrollArea,\n 'weight-hover': createWeightHover,\n 'sticker': createSticker,\n 'scroll-dock': createScrollDock,\n 'local-clock': createLocalClock,\n 'spring-cards': createSpringCards,\n 'curved-carousel': (el, options) =>\n createCurvedCarousel(el, {\n ...options,\n onSelect: (index, slide) => el.dispatchEvent(new CustomEvent('mk:select', { detail: { index, slide }, bubbles: true })),\n }),\n pile: createPile,\n words: createWords,\n flow: createFlow,\n pop: createPop,\n 'fit-text': createFitText,\n 'stretch-footer': createStretchFooter,\n 'radial-menu': createRadialMenu,\n tabs: createTabs,\n counter: createCounter,\n details: (el) => createDetails(el),\n reveal: createReveal,\n reflow: createReflow,\n 'slot-text': createSlotText,\n sortable: createSortable,\n 'mask-text': createMaskText,\n cascade: createCascade,\n 'text-roll': createTextRoll,\n letters: createLetters,\n parallax: createParallax,\n 'depth-grid': createDepthGrid,\n 'frame-zoom': createFrameZoom,\n contrast: createContrast,\n marquee: createMarquee,\n 'card-dock': createCardDock,\n 'snap-strip': createSnapStrip,\n 'fill-text': createFillText,\n 'ticket-menu': createTicketMenu,\n 'infinite-reel': createInfiniteReel,\n 'repel-bento': createRepelBento,\n 'rotator': createRotator,\n 'drag-ruler': createDragRuler,\n 'dock-pill': createDockPill,\n} satisfies Record<string, Factory>;\n\nexport type RecipeName = keyof typeof factories;\nexport const recipeNames = Object.keys(factories) as RecipeName[];\n\n/** Measured text: wait for web fonts, fit before splitting into words. */\nconst AFTER_FONTS: RecipeName[] = ['fit-text', 'words', 'slot-text'];\n\nconst instances = new WeakMap<HTMLElement, Map<RecipeName, Instance>>();\n\nexport interface AutoInitOptions {\n /** Only start these recipes. */\n only?: RecipeName[];\n}\n\n/**\n * Start every `[data-mk]` recipe inside `root` (an element may list several:\n * `data-mk=\"fit-text words\"`). Options come from `data-mk-*` attributes.\n * Returns a function that destroys what this call created. Safe to call again:\n * elements that already run a recipe are skipped.\n */\nexport function autoInit(root: ParentNode = document, { only }: AutoInitOptions = {}): () => void {\n if (typeof window === 'undefined') return () => {};\n const created: Array<[HTMLElement, RecipeName, Instance]> = [];\n let cancelled = false;\n\n const elements = [...root.querySelectorAll<HTMLElement>('[data-mk]')];\n if (root instanceof HTMLElement && root.matches('[data-mk]')) elements.unshift(root);\n\n const start = (el: HTMLElement, name: RecipeName) => {\n if (cancelled) return;\n const running = instances.get(el) ?? new Map<RecipeName, Instance>();\n if (running.has(name)) return;\n const instance = (factories[name] as Factory)(el, parseOptions(el));\n running.set(name, instance);\n instances.set(el, running);\n created.push([el, name, instance]);\n };\n\n const now: Array<[HTMLElement, RecipeName]> = [];\n const later: Array<[HTMLElement, RecipeName]> = [];\n for (const el of elements) {\n for (const raw of (el.dataset.mk ?? '').split(/\\s+/).filter(Boolean)) {\n if (!(raw in factories)) {\n warnOnce(`autoInit: unknown recipe \"${raw}\" (known: ${recipeNames.join(', ')})`);\n continue;\n }\n const name = raw as RecipeName;\n if (only && !only.includes(name)) continue;\n (AFTER_FONTS.includes(name) ? later : now).push([el, name]);\n }\n }\n\n now.forEach(([el, name]) => start(el, name));\n if (later.length) {\n later.sort((a, b) => AFTER_FONTS.indexOf(a[1]) - AFTER_FONTS.indexOf(b[1]));\n const fonts = document.fonts?.ready ?? Promise.resolve();\n void Promise.race([fonts, new Promise((resolve) => setTimeout(resolve, 1500))]).then(() => {\n later.forEach(([el, name]) => start(el, name));\n if (!cancelled) ScrollTrigger.refresh();\n });\n }\n\n return () => {\n cancelled = true;\n for (const [el, name, instance] of created.reverse()) {\n instance.destroy();\n instances.get(el)?.delete(name);\n }\n created.length = 0;\n };\n}\n"],"mappings":"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","names":[]}
@@ -6,7 +6,7 @@ import {
6
6
  createScope,
7
7
  reduced,
8
8
  whileVisible
9
- } from "./chunk-DOOMULVV.js";
9
+ } from "./chunk-OLT3CWDJ.js";
10
10
  import {
11
11
  inert,
12
12
  warnOnce
@@ -829,4 +829,4 @@ export {
829
829
  createShaderBlur,
830
830
  createParticleHero
831
831
  };
832
- //# sourceMappingURL=chunk-QFBOHPWZ.js.map
832
+ //# sourceMappingURL=chunk-CQP66AZK.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  TIMING,
3
3
  reduced
4
- } from "./chunk-DOOMULVV.js";
4
+ } from "./chunk-OLT3CWDJ.js";
5
5
  import {
6
6
  warnOnce
7
7
  } from "./chunk-TGV27ZWM.js";
@@ -69,4 +69,4 @@ export {
69
69
  animate,
70
70
  leave
71
71
  };
72
- //# sourceMappingURL=chunk-QP4QJOEN.js.map
72
+ //# sourceMappingURL=chunk-H4STLMCM.js.map
@@ -1,11 +1,13 @@
1
1
  import {
2
2
  EASE,
3
3
  Flip,
4
+ ICON_PATHS,
4
5
  addDays,
5
6
  bezier,
6
7
  blurIn,
7
8
  capitalize,
8
9
  channels,
10
+ createScrollArea,
9
11
  dayKey,
10
12
  easeInCubic,
11
13
  easeOut,
@@ -14,6 +16,7 @@ import {
14
16
  flowIn,
15
17
  flowInPalette,
16
18
  gsap,
19
+ iconSvg,
17
20
  motionSpring,
18
21
  press,
19
22
  registerMotion,
@@ -27,7 +30,7 @@ import {
27
30
  startOfWeek,
28
31
  toDate,
29
32
  weekdayNames
30
- } from "./chunk-Q7IW4FV3.js";
33
+ } from "./chunk-NCGNIPJE.js";
31
34
  import {
32
35
  THEMES,
33
36
  THEME_EVENT,
@@ -41,7 +44,7 @@ import {
41
44
  reduced,
42
45
  subscribe,
43
46
  whileVisible
44
- } from "./chunk-DOOMULVV.js";
47
+ } from "./chunk-OLT3CWDJ.js";
45
48
  import {
46
49
  inert,
47
50
  warnOnce
@@ -259,23 +262,6 @@ var toastTimers = {
259
262
  }
260
263
  };
261
264
 
262
- // src/components/icons.ts
263
- var ICON_PATHS = {
264
- close: "M6 6l12 12M18 6L6 18",
265
- expand: "M14 4h6v6M10 20H4v-6M20 4l-7 7M4 20l7-7",
266
- shrink: "M4 14h6v6M20 10h-6V4M10 14l-7 7M14 10l7-7",
267
- check: "M5 12.5l4.5 4.5L19 7.5",
268
- alert: "M12 8v5M12 16.5v.01M10.3 3.9L2.6 17.3a2 2 0 001.7 3h15.4a2 2 0 001.7-3L13.7 3.9a2 2 0 00-3.4 0z",
269
- info: "M12 11v6M12 7.5v.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z",
270
- send: "M12 19V5M5.5 11.5L12 5l6.5 6.5",
271
- mic: "M12 3a3 3 0 00-3 3v6a3 3 0 006 0V6a3 3 0 00-3-3zM5.5 11a6.5 6.5 0 0013 0M12 17.5V21",
272
- sparkle: "M12 3l1.9 5.1L19 10l-5.1 1.9L12 17l-1.9-5.1L5 10l5.1-1.9z",
273
- grip: "M9 6h.01M15 6h.01M9 12h.01M15 12h.01M9 18h.01M15 18h.01"
274
- };
275
- function iconSvg(name, size = 20) {
276
- return `<svg aria-hidden="true" width="${size}" height="${size}" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="${ICON_PATHS[name]}"/></svg>`;
277
- }
278
-
279
265
  // src/components/toast/engine.ts
280
266
  var STACK = { peek: 16, scaleStep: 0.05, minScale: 0.7, maxVisible: 3, gap: 8, baseZ: 1e3 };
281
267
  var DISTANCE = { enter: 12, enterBlur: 6, exit: 24, exitBlur: 4, fade: 120 };
@@ -3288,6 +3274,8 @@ function createHeatmapChart(root, initial = {}) {
3288
3274
  plot.prepend(scroller);
3289
3275
  scroller.append(canvas);
3290
3276
  scope.add(() => scroller.remove());
3277
+ const area = createScrollArea(plot, { viewport: scroller, axis: "x", focusable: false, decorative: true });
3278
+ scope.add(() => area.destroy());
3291
3279
  const scale = document.createElement("div");
3292
3280
  scale.dataset.mkHeatmapScale = "";
3293
3281
  scale.setAttribute("aria-hidden", "true");
@@ -3622,8 +3610,6 @@ export {
3622
3610
  fitComposer,
3623
3611
  scrollToLatest,
3624
3612
  createThemePicker,
3625
- ICON_PATHS,
3626
- iconSvg,
3627
3613
  TOAST_LIMIT,
3628
3614
  getToasts,
3629
3615
  subscribeToasts,
@@ -3657,4 +3643,4 @@ export {
3657
3643
  createHeatmapChart,
3658
3644
  createOrbitMenu
3659
3645
  };
3660
- //# sourceMappingURL=chunk-AWDEKDEJ.js.map
3646
+ //# sourceMappingURL=chunk-LIXSOGS2.js.map