@yewdiel21/motion-kit 0.16.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/README.md +21 -0
  2. package/dist/auto/index.d.ts +8 -3
  3. package/dist/auto/index.js +13 -3
  4. package/dist/auto/index.js.map +1 -1
  5. package/dist/{chunk-SDQ776LG.js → chunk-7IQTMF7Y.js} +1414 -38
  6. package/dist/chunk-7IQTMF7Y.js.map +1 -0
  7. package/dist/{chunk-NFZIX3IA.js → chunk-BZLMCHUD.js} +2 -2
  8. package/dist/{chunk-RBEKR5UZ.js → chunk-VJFPTLAK.js} +2 -2
  9. package/dist/css/components/drilldown-menu.css +130 -0
  10. package/dist/css/components/signature-pad.css +104 -0
  11. package/dist/css/components/voice-message-bubble.css +50 -0
  12. package/dist/css/components/waveform-player.css +36 -0
  13. package/dist/css/components/wheel-picker.css +17 -0
  14. package/dist/elements/index.d.ts +90 -4
  15. package/dist/elements/index.js +281 -4
  16. package/dist/elements/index.js.map +1 -1
  17. package/dist/{reveal-DRpNO4KP.d.ts → engine-Bn6hC87X.d.ts} +194 -1
  18. package/dist/index.css +305 -0
  19. package/dist/index.d.ts +3 -3
  20. package/dist/index.js +13 -3
  21. package/dist/index.js.map +1 -1
  22. package/dist/react/index.d.ts +45 -7
  23. package/dist/react/index.js +227 -3
  24. package/dist/react/index.js.map +1 -1
  25. package/dist/{reduced-DQwVXQYb.d.ts → reduced-YS6TZjpa.d.ts} +1 -1
  26. package/dist/{store-Da3zSh8Z.d.ts → store-CZ6vdtIE.d.ts} +1 -1
  27. package/package.json +110 -110
  28. package/registry.json +64 -0
  29. package/src/auto/auto-init.ts +308 -293
  30. package/src/components/drilldown-menu/README.md +163 -0
  31. package/src/components/drilldown-menu/drilldown-menu.css +129 -0
  32. package/src/components/drilldown-menu/element.ts +59 -0
  33. package/src/components/drilldown-menu/engine.ts +338 -0
  34. package/src/components/drilldown-menu/react.tsx +76 -0
  35. package/src/components/signature-pad/README.md +97 -0
  36. package/src/components/signature-pad/element.ts +57 -0
  37. package/src/components/signature-pad/engine.ts +437 -0
  38. package/src/components/signature-pad/react.tsx +56 -0
  39. package/src/components/signature-pad/signature-pad.css +103 -0
  40. package/src/components/voice-message-bubble/README.md +31 -0
  41. package/src/components/voice-message-bubble/element.ts +20 -0
  42. package/src/components/voice-message-bubble/engine.ts +68 -0
  43. package/src/components/voice-message-bubble/react.tsx +27 -0
  44. package/src/components/voice-message-bubble/voice-message-bubble.css +12 -0
  45. package/src/components/waveform-player/README.md +30 -0
  46. package/src/components/waveform-player/element.ts +21 -0
  47. package/src/components/waveform-player/engine.ts +261 -0
  48. package/src/components/waveform-player/react.tsx +27 -0
  49. package/src/components/waveform-player/waveform-player.css +35 -0
  50. package/src/components/wheel-picker/README.md +33 -0
  51. package/src/components/wheel-picker/element.ts +18 -0
  52. package/src/components/wheel-picker/engine.ts +210 -0
  53. package/src/components/wheel-picker/react.tsx +32 -0
  54. package/src/components/wheel-picker/wheel-picker.css +16 -0
  55. package/src/elements/index.ts +273 -258
  56. package/src/index.ts +295 -290
  57. package/src/react/index.ts +176 -171
  58. package/dist/chunk-SDQ776LG.js.map +0 -1
  59. /package/dist/{chunk-NFZIX3IA.js.map → chunk-BZLMCHUD.js.map} +0 -0
  60. /package/dist/{chunk-RBEKR5UZ.js.map → chunk-VJFPTLAK.js.map} +0 -0
package/dist/index.js CHANGED
@@ -58,7 +58,7 @@ import {
58
58
  reflowLayout,
59
59
  toggleDetails,
60
60
  trackScroll
61
- } from "./chunk-NFZIX3IA.js";
61
+ } from "./chunk-BZLMCHUD.js";
62
62
  import {
63
63
  NAV_STYLES,
64
64
  NAV_STYLE_ALIASES,
@@ -95,7 +95,7 @@ import {
95
95
  toNavStyle,
96
96
  toast,
97
97
  toastTimers
98
- } from "./chunk-RBEKR5UZ.js";
98
+ } from "./chunk-VJFPTLAK.js";
99
99
  import {
100
100
  BRAND_LABELS,
101
101
  CHANNEL_LABELS,
@@ -156,6 +156,7 @@ import {
156
156
  createDateTimePicker,
157
157
  createDialog,
158
158
  createDrawer,
159
+ createDrilldownMenu,
159
160
  createEditableTable,
160
161
  createEmptyState,
161
162
  createFileExplorer,
@@ -184,6 +185,7 @@ import {
184
185
  createScratchCard,
185
186
  createScrollIsland,
186
187
  createSelect,
188
+ createSignaturePad,
187
189
  createSizes,
188
190
  createSkeleton,
189
191
  createSlotPicker,
@@ -200,6 +202,9 @@ import {
200
202
  createTrailer,
201
203
  createTreeView,
202
204
  createVirtualList,
205
+ createVoiceMessageBubble,
206
+ createWaveformPlayer,
207
+ createWheelPicker,
203
208
  cvcLength,
204
209
  dateTimeKey,
205
210
  dayKey,
@@ -310,7 +315,7 @@ import {
310
315
  tokenize,
311
316
  transparentColor,
312
317
  tweenNumber
313
- } from "./chunk-SDQ776LG.js";
318
+ } from "./chunk-7IQTMF7Y.js";
314
319
  import "./chunk-RVSKEBIC.js";
315
320
  import {
316
321
  clamp,
@@ -460,6 +465,7 @@ export {
460
465
  createDockPill,
461
466
  createDragRuler,
462
467
  createDrawer,
468
+ createDrilldownMenu,
463
469
  createEditableTable,
464
470
  createEditorialReveal,
465
471
  createEmptyState,
@@ -521,6 +527,7 @@ export {
521
527
  createScrollDock,
522
528
  createScrollIsland,
523
529
  createSelect,
530
+ createSignaturePad,
524
531
  createSizes,
525
532
  createSkeleton,
526
533
  createSlotPicker,
@@ -552,7 +559,10 @@ export {
552
559
  createTreeView,
553
560
  createVirtualList,
554
561
  createVoiceDots,
562
+ createVoiceMessageBubble,
563
+ createWaveformPlayer,
555
564
  createWeightHover,
565
+ createWheelPicker,
556
566
  createWords,
557
567
  cvcLength,
558
568
  damp,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/chat-background/audio.ts"],"sourcesContent":["/*\n * Microphone energy for the chat background: FFT 256,\n * smoothing .3, −90…−10 dB; the lowest 40 % of the bins, ×3, clamped to 1, with\n * attack .8 and release .15. The caller passes a MediaStream it already has\n * permission for: this never asks for the microphone.\n */\n\nexport interface AudioEnergy {\n stop(): void;\n}\n\nexport function audioEnergy(\n stream: MediaStream,\n onEnergy: (energy: number) => void,\n { fftSize = 256, smoothing = 0.3 }: { fftSize?: number; smoothing?: number } = {},\n): AudioEnergy {\n const AudioCtor = (globalThis as { AudioContext?: typeof AudioContext }).AudioContext;\n if (!AudioCtor) {\n onEnergy(0);\n return { stop() {} };\n }\n const context = new AudioCtor();\n const analyser = context.createAnalyser();\n analyser.fftSize = fftSize;\n analyser.smoothingTimeConstant = smoothing;\n analyser.minDecibels = -90;\n analyser.maxDecibels = -10;\n const input = context.createMediaStreamSource(stream);\n input.connect(analyser);\n const bins = new Uint8Array(analyser.frequencyBinCount);\n let energy = 0;\n let frame = 0;\n let stopped = false;\n const tick = () => {\n if (stopped) return;\n analyser.getByteFrequencyData(bins);\n const count = Math.ceil(bins.length * 0.4);\n let sum = 0;\n for (let i = 0; i < count; i++) sum += bins[i] ?? 0;\n const target = Math.min(((sum / (count * 255)) * 3), 1);\n energy += (target - energy) * (target > energy ? 0.8 : 0.15);\n onEnergy(energy);\n frame = requestAnimationFrame(tick);\n };\n tick();\n return {\n stop() {\n if (stopped) return;\n stopped = true;\n cancelAnimationFrame(frame);\n input.disconnect();\n void context.close();\n onEnergy(0);\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWO,SAAS,YACd,QACA,UACA,EAAE,UAAU,KAAK,YAAY,IAAI,IAA8C,CAAC,GACnE;AACb,QAAM,YAAa,WAAsD;AACzE,MAAI,CAAC,WAAW;AACd,aAAS,CAAC;AACV,WAAO,EAAE,OAAO;AAAA,IAAC,EAAE;AAAA,EACrB;AACA,QAAM,UAAU,IAAI,UAAU;AAC9B,QAAM,WAAW,QAAQ,eAAe;AACxC,WAAS,UAAU;AACnB,WAAS,wBAAwB;AACjC,WAAS,cAAc;AACvB,WAAS,cAAc;AACvB,QAAM,QAAQ,QAAQ,wBAAwB,MAAM;AACpD,QAAM,QAAQ,QAAQ;AACtB,QAAM,OAAO,IAAI,WAAW,SAAS,iBAAiB;AACtD,MAAI,SAAS;AACb,MAAI,QAAQ;AACZ,MAAI,UAAU;AACd,QAAM,OAAO,MAAM;AACjB,QAAI,QAAS;AACb,aAAS,qBAAqB,IAAI;AAClC,UAAM,QAAQ,KAAK,KAAK,KAAK,SAAS,GAAG;AACzC,QAAI,MAAM;AACV,aAAS,IAAI,GAAG,IAAI,OAAO,IAAK,QAAO,KAAK,CAAC,KAAK;AAClD,UAAM,SAAS,KAAK,IAAM,OAAO,QAAQ,OAAQ,GAAI,CAAC;AACtD,eAAW,SAAS,WAAW,SAAS,SAAS,MAAM;AACvD,aAAS,MAAM;AACf,YAAQ,sBAAsB,IAAI;AAAA,EACpC;AACA,OAAK;AACL,SAAO;AAAA,IACL,OAAO;AACL,UAAI,QAAS;AACb,gBAAU;AACV,2BAAqB,KAAK;AAC1B,YAAM,WAAW;AACjB,WAAK,QAAQ,MAAM;AACnB,eAAS,CAAC;AAAA,IACZ;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../src/components/chat-background/audio.ts"],"sourcesContent":["/*\n * Microphone energy for the chat background: FFT 256,\n * smoothing .3, −90…−10 dB; the lowest 40 % of the bins, ×3, clamped to 1, with\n * attack .8 and release .15. The caller passes a MediaStream it already has\n * permission for: this never asks for the microphone.\n */\n\nexport interface AudioEnergy {\n stop(): void;\n}\n\nexport function audioEnergy(\n stream: MediaStream,\n onEnergy: (energy: number) => void,\n { fftSize = 256, smoothing = 0.3 }: { fftSize?: number; smoothing?: number } = {},\n): AudioEnergy {\n const AudioCtor = (globalThis as { AudioContext?: typeof AudioContext }).AudioContext;\n if (!AudioCtor) {\n onEnergy(0);\n return { stop() {} };\n }\n const context = new AudioCtor();\n const analyser = context.createAnalyser();\n analyser.fftSize = fftSize;\n analyser.smoothingTimeConstant = smoothing;\n analyser.minDecibels = -90;\n analyser.maxDecibels = -10;\n const input = context.createMediaStreamSource(stream);\n input.connect(analyser);\n const bins = new Uint8Array(analyser.frequencyBinCount);\n let energy = 0;\n let frame = 0;\n let stopped = false;\n const tick = () => {\n if (stopped) return;\n analyser.getByteFrequencyData(bins);\n const count = Math.ceil(bins.length * 0.4);\n let sum = 0;\n for (let i = 0; i < count; i++) sum += bins[i] ?? 0;\n const target = Math.min(((sum / (count * 255)) * 3), 1);\n energy += (target - energy) * (target > energy ? 0.8 : 0.15);\n onEnergy(energy);\n frame = requestAnimationFrame(tick);\n };\n tick();\n return {\n stop() {\n if (stopped) return;\n stopped = true;\n cancelAnimationFrame(frame);\n input.disconnect();\n void context.close();\n onEnergy(0);\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWO,SAAS,YACd,QACA,UACA,EAAE,UAAU,KAAK,YAAY,IAAI,IAA8C,CAAC,GACnE;AACb,QAAM,YAAa,WAAsD;AACzE,MAAI,CAAC,WAAW;AACd,aAAS,CAAC;AACV,WAAO,EAAE,OAAO;AAAA,IAAC,EAAE;AAAA,EACrB;AACA,QAAM,UAAU,IAAI,UAAU;AAC9B,QAAM,WAAW,QAAQ,eAAe;AACxC,WAAS,UAAU;AACnB,WAAS,wBAAwB;AACjC,WAAS,cAAc;AACvB,WAAS,cAAc;AACvB,QAAM,QAAQ,QAAQ,wBAAwB,MAAM;AACpD,QAAM,QAAQ,QAAQ;AACtB,QAAM,OAAO,IAAI,WAAW,SAAS,iBAAiB;AACtD,MAAI,SAAS;AACb,MAAI,QAAQ;AACZ,MAAI,UAAU;AACd,QAAM,OAAO,MAAM;AACjB,QAAI,QAAS;AACb,aAAS,qBAAqB,IAAI;AAClC,UAAM,QAAQ,KAAK,KAAK,KAAK,SAAS,GAAG;AACzC,QAAI,MAAM;AACV,aAAS,IAAI,GAAG,IAAI,OAAO,IAAK,QAAO,KAAK,CAAC,KAAK;AAClD,UAAM,SAAS,KAAK,IAAM,OAAO,QAAQ,OAAQ,GAAI,CAAC;AACtD,eAAW,SAAS,WAAW,SAAS,SAAS,MAAM;AACvD,aAAS,MAAM;AACf,YAAQ,sBAAsB,IAAI;AAAA,EACpC;AACA,OAAK;AACL,SAAO;AAAA,IACL,OAAO;AACL,UAAI,QAAS;AACb,gBAAU;AACV,2BAAqB,KAAK;AAC1B,YAAM,WAAW;AACjB,WAAK,QAAQ,MAAM;AACnB,eAAS,CAAC;AAAA,IACZ;AAAA,EACF;AACF;","names":[]}
@@ -1,16 +1,16 @@
1
1
  import * as react from 'react';
2
2
  import { useLayoutEffect, RefObject, DependencyList, ReactNode, CSSProperties, Component, ButtonHTMLAttributes, DialogHTMLAttributes, HTMLAttributes, MutableRefObject, ContextType, TextareaHTMLAttributes, MouseEvent, FormHTMLAttributes, InputHTMLAttributes, Ref, ReactElement } from 'react';
3
3
  import { I as Instance } from '../types-BkS_raL8.js';
4
- import { b9 as SpringCardsOptions, a4 as CurvedCarouselOptions, C as CurvedCarouselInstance, aN as PileOptions, bo as WordsOptions, bn as WordsInstance, ao as FlowOptions, an as FlowInstance, aP as PopOptions, aO as PopInstance, al as FitTextOptions, ak as FitTextInstance, be as StretchFooterOptions, aR as RadialMenuOptions, aQ as RadialMenuInstance, bg as TabsOptions, bf as TabsInstance, a3 as CounterOptions, a2 as CounterInstance, aY as RevealRecipeOptions, aX as RevealInstance, aT as ReflowOptions, aS as ReflowInstance, b2 as SlotTextOptions, b1 as SlotTextInstance, b7 as SortableOptions, b5 as SortableInstance, aI as MaskTextOptions, aH as MaskTextInstance, $ as CascadeOptions, _ as CascadeInstance, bi as TextRollOptions, bh as TextRollInstance, aC as LettersOptions, aB as LettersInstance, aK as ParallaxOptions, aJ as ParallaxInstance, a6 as DepthGridOptions, a5 as DepthGridInstance, au as FrameZoomOptions, at as FrameZoomInstance, a1 as ContrastOptions, a0 as ContrastInstance, aG as MarqueeOptions, aF as MarqueeInstance, Z as CardDockOptions, Y as CardDockInstance, b4 as SnapStripOptions, b3 as SnapStripInstance, ah as FillTextOptions, ag as FillTextInstance, T as TicketMenuOptions, ay as InfiniteReelOptions, ax as InfiniteReelInstance, aW as RepelBentoOptions, aV as RepelBentoInstance, a_ as RotatorOptions, aZ as RotatorInstance, aa as DragRulerOptions, a9 as DragRulerInstance, a8 as DockPillOptions, a7 as DockPillInstance, aA as JoinedCtaOptions, az as JoinedCtaInstance, aw as ImageZoomOptions, av as ImageZoomInstance, as as FontCycleOptions, ar as FontCycleInstance, bk as ThumbnailNavOptions, bj as ThumbnailNavInstance, W as ActionButtonOptions, V as ActionButtonInstance, aj as FilmHeroOptions, ai as FilmHeroInstance, af as EditorialRevealOptions, ae as EditorialRevealInstance, bm as WeightHoverOptions, bl as WeightHoverInstance, bb as StickerOptions, ba as StickerInstance, b0 as ScrollDockOptions, a$ as ScrollDockInstance, aE as LocalClockOptions, aD as LocalClockInstance, ad as DrawerSide } from '../reduced-DQwVXQYb.js';
5
- export { U as MK_HEAD_SCRIPT, aM as PileLayer, aU as ReorderDetail, bu as moveItem, bv as pileLayers, bw as pileStyle } from '../reduced-DQwVXQYb.js';
6
- import { bX as MenuInstance, bd as DialogOptions, bb as DialogInstance, ci as QuantityOptions, c4 as PaginationOptions, bH as HoverCardOptions, bN as InputOtpOptions, d1 as StudioDockOptions, d0 as StudioDockInstance, dh as TrailerOptions, dg as TrailerInstance, as as CalendarOptions, cR as SlotPickerOptions, af as AttachmentOptions, ai as AttachmentStatus, ad as AttachmentInstance, cN as SkeletonOptions, cj as QuestionnaireAnswers, cl as QuestionnaireLabels, ck as QuestionnaireInstance, aG as CodeBlockOptions, bf as DialogVariant, aU as ContextMenuInstance, bS as LinkPreviewOptions, cf as ProgressOptions, cq as RangeSliderOptions, cr as RangeValue$2, ax as ChartOptions, aw as ChartInstance, aZ as CreditCardOptions, aX as CreditCardInstance, aR as CommandItem, aS as CommandSearchInstance, bF as HoldConfirmOptions, bL as ImagePreviewOptions, bK as ImagePreviewInstance, c0 as NotificationBellInstance, c9 as PasswordStrengthOptions, cE as ScratchCardOptions, cD as ScratchCardInstance, cZ as StarRatingOptions, aQ as ColorSliderOptions, aI as ColorAreaOptions, aL as ColorFieldOptions, aO as ColorPickerOptions, d8 as TimeFieldOptions, co as RangeCalendarOptions, a4 as DateInput, b8 as DateRangePickerOptions, df as TooltipOptions, cd as PopoverOptions, bV as LoadingButtonOptions, bW as LoadingState, am as BreadcrumbOptions, al as BreadcrumbItem, bn as EmptyStateOptions, c$ as StatCardOptions, aB as ChartTooltipOptions, b$ as MultiSelectOptions, d6 as TagInputOptions, ba as DateTimePickerOptions, bx as FilterBuilderOptions, bA as FilterGroup, dc as TimelineOptions, da as TimelineEvent, a7 as ActivityFeedOptions, a8 as ActivityItem, dk as TreeViewOptions, di as TreeNode, dj as TreeViewInstance, bs as FileExplorerOptions, bq as FileEntry, br as FileExplorerInstance, bQ as JsonViewerOptions, bP as JsonViewerInstance, dn as VirtualListOptions, dq as VirtualScrollOptions, ct as ResizablePanelOptions, cs as ResizablePanelInstance, cX as SplitViewOptions, cW as SplitViewInstance, b2 as DataRow, b5 as DataTableOptions, b4 as DataTableInstance, bi as EditableTableOptions, bh as EditableTableInstance, cz as RichTextEditorOptions, cy as RichTextEditorInstance, cJ as SelectOptions, ab as AddToCartOptions, aa as AddToCartInstance, cG as ScrollIslandOptions } from '../reveal-DRpNO4KP.js';
7
- export { a5 as ActivityActor, a9 as ActivityKind, a$ as DataAction, b0 as DataColumn, b3 as DataSort, bg as EditableColumn, bj as EditorKind, bp as FileChange, bv as FileView, cx as RichCommand, cA as RowChange, cB as RowId, dd as TimelineStatus } from '../reveal-DRpNO4KP.js';
4
+ import { b9 as SpringCardsOptions, a4 as CurvedCarouselOptions, C as CurvedCarouselInstance, aN as PileOptions, bo as WordsOptions, bn as WordsInstance, ao as FlowOptions, an as FlowInstance, aP as PopOptions, aO as PopInstance, al as FitTextOptions, ak as FitTextInstance, be as StretchFooterOptions, aR as RadialMenuOptions, aQ as RadialMenuInstance, bg as TabsOptions, bf as TabsInstance, a3 as CounterOptions, a2 as CounterInstance, aY as RevealRecipeOptions, aX as RevealInstance, aT as ReflowOptions, aS as ReflowInstance, b2 as SlotTextOptions, b1 as SlotTextInstance, b7 as SortableOptions, b5 as SortableInstance, aI as MaskTextOptions, aH as MaskTextInstance, $ as CascadeOptions, _ as CascadeInstance, bi as TextRollOptions, bh as TextRollInstance, aC as LettersOptions, aB as LettersInstance, aK as ParallaxOptions, aJ as ParallaxInstance, a6 as DepthGridOptions, a5 as DepthGridInstance, au as FrameZoomOptions, at as FrameZoomInstance, a1 as ContrastOptions, a0 as ContrastInstance, aG as MarqueeOptions, aF as MarqueeInstance, Z as CardDockOptions, Y as CardDockInstance, b4 as SnapStripOptions, b3 as SnapStripInstance, ah as FillTextOptions, ag as FillTextInstance, T as TicketMenuOptions, ay as InfiniteReelOptions, ax as InfiniteReelInstance, aW as RepelBentoOptions, aV as RepelBentoInstance, a_ as RotatorOptions, aZ as RotatorInstance, aa as DragRulerOptions, a9 as DragRulerInstance, a8 as DockPillOptions, a7 as DockPillInstance, aA as JoinedCtaOptions, az as JoinedCtaInstance, aw as ImageZoomOptions, av as ImageZoomInstance, as as FontCycleOptions, ar as FontCycleInstance, bk as ThumbnailNavOptions, bj as ThumbnailNavInstance, W as ActionButtonOptions, V as ActionButtonInstance, aj as FilmHeroOptions, ai as FilmHeroInstance, af as EditorialRevealOptions, ae as EditorialRevealInstance, bm as WeightHoverOptions, bl as WeightHoverInstance, bb as StickerOptions, ba as StickerInstance, b0 as ScrollDockOptions, a$ as ScrollDockInstance, aE as LocalClockOptions, aD as LocalClockInstance, ad as DrawerSide } from '../reduced-YS6TZjpa.js';
5
+ export { U as MK_HEAD_SCRIPT, aM as PileLayer, aU as ReorderDetail, bu as moveItem, bv as pileLayers, bw as pileStyle } from '../reduced-YS6TZjpa.js';
6
+ import { c3 as MenuInstance, bi as DialogOptions, bg as DialogInstance, cq as QuantityOptions, cc as PaginationOptions, bP as HoverCardOptions, bV as InputOtpOptions, di as StudioDockOptions, dh as StudioDockInstance, dz as TrailerOptions, dy as TrailerInstance, ax as CalendarOptions, d6 as SlotPickerOptions, ak as AttachmentOptions, an as AttachmentStatus, ai as AttachmentInstance, d2 as SkeletonOptions, cr as QuestionnaireAnswers, ct as QuestionnaireLabels, cs as QuestionnaireInstance, aL as CodeBlockOptions, bk as DialogVariant, aZ as ContextMenuInstance, b_ as LinkPreviewOptions, cn as ProgressOptions, cy as RangeSliderOptions, cz as RangeValue$2, aC as ChartOptions, aB as ChartInstance, b2 as CreditCardOptions, b0 as CreditCardInstance, aW as CommandItem, aX as CommandSearchInstance, bN as HoldConfirmOptions, bT as ImagePreviewOptions, bS as ImagePreviewInstance, c8 as NotificationBellInstance, ch as PasswordStrengthOptions, cM as ScratchCardOptions, cL as ScratchCardInstance, de as StarRatingOptions, aV as ColorSliderOptions, aN as ColorAreaOptions, aQ as ColorFieldOptions, aT as ColorPickerOptions, dq as TimeFieldOptions, cw as RangeCalendarOptions, a9 as DateInput, bd as DateRangePickerOptions, dx as TooltipOptions, cl as PopoverOptions, c1 as LoadingButtonOptions, c2 as LoadingState, ar as BreadcrumbOptions, aq as BreadcrumbItem, bv as EmptyStateOptions, dg as StatCardOptions, aG as ChartTooltipOptions, c7 as MultiSelectOptions, dn as TagInputOptions, bf as DateTimePickerOptions, bF as FilterBuilderOptions, bI as FilterGroup, du as TimelineOptions, ds as TimelineEvent, ac as ActivityFeedOptions, ad as ActivityItem, dC as TreeViewOptions, dA as TreeNode, dB as TreeViewInstance, bA as FileExplorerOptions, by as FileEntry, bz as FileExplorerInstance, bY as JsonViewerOptions, bX as JsonViewerInstance, dF as VirtualListOptions, dH as VirtualScrollOptions, cB as ResizablePanelOptions, cA as ResizablePanelInstance, dc as SplitViewOptions, db as SplitViewInstance, b7 as DataRow, ba as DataTableOptions, b9 as DataTableInstance, bq as EditableTableOptions, bp as EditableTableInstance, cH as RichTextEditorOptions, cG as RichTextEditorInstance, cR as SelectOptions, ag as AddToCartOptions, af as AddToCartInstance, cO as ScrollIslandOptions, cZ as SignaturePadOptions, cT as SignatureData, cY as SignaturePadInstance, dN as WaveformPlayerOptions, dM as WaveformPlayerInstance, dK as VoiceMessageBubbleOptions, dJ as VoiceMessageBubbleInstance, bn as DrilldownMenuOptions, bm as DrilldownMenuItem, bl as DrilldownMenuInstance, dT as WheelPickerOptions, dR as WheelPickerInstance } from '../engine-Bn6hC87X.js';
7
+ export { aa as ActivityActor, ae as ActivityKind, b4 as DataAction, b5 as DataColumn, b8 as DataSort, bo as EditableColumn, br as EditorKind, bx as FileChange, bD as FileView, cF as RichCommand, cI as RowChange, cJ as RowId, dv as TimelineStatus } from '../engine-Bn6hC87X.js';
8
8
  import { LiquidBlendOptions, ShaderEffectInstance, MatcapOptions, ShaderGrainOptions, ShaderBlurOptions, ParticleHeroOptions, ParticleHeroInstance } from '../gl/index.js';
9
9
  import * as react_jsx_runtime from 'react/jsx-runtime';
10
10
  import { T as ThemeState, s as setTheme, a as setMode, I as InitThemeOptions, b as ThemeMode } from '../theme-Bjf9qIIy.js';
11
11
  export { M as MK_THEME_HEAD_SCRIPT, t as themeHeadScript } from '../theme-Bjf9qIIy.js';
12
- import { F as ThemePickerOptions, Q as ToasterLabels, b as ChatLabels, C as ChatInstance, _ as capturePending, d as ChatRole, n as NavStyle, o as NavStyleAlias, g as CursorVariant, f as CursorOptions, j as IslandOptions, I as IslandInstance, W as ToolbarOptions, V as ToolbarInstance, a as BidirectionalSliderOptions, B as BidirectionalSliderInstance, Y as VoiceDotsOptions, X as VoiceDotsInstance, s as PieChartOptions, r as PieChartInstance, u as RadarChartOptions, R as RadarChartInstance, x as RadialChartOptions, w as RadialChartInstance, z as SankeyChartOptions, S as SankeyChartInstance, h as HeatmapChartOptions, H as HeatmapChartInstance, q as OrbitMenuOptions, O as OrbitMenuInstance } from '../store-Da3zSh8Z.js';
13
- export { N as NAV_STYLES, k as NAV_STYLE_ALIASES, G as ToastAction, K as ToastOptions, L as ToastTone, a0 as clearToasts, ag as dismissToast, am as toNavStyle, an as toast } from '../store-Da3zSh8Z.js';
12
+ import { F as ThemePickerOptions, Q as ToasterLabels, b as ChatLabels, C as ChatInstance, _ as capturePending, d as ChatRole, n as NavStyle, o as NavStyleAlias, g as CursorVariant, f as CursorOptions, j as IslandOptions, I as IslandInstance, W as ToolbarOptions, V as ToolbarInstance, a as BidirectionalSliderOptions, B as BidirectionalSliderInstance, Y as VoiceDotsOptions, X as VoiceDotsInstance, s as PieChartOptions, r as PieChartInstance, u as RadarChartOptions, R as RadarChartInstance, x as RadialChartOptions, w as RadialChartInstance, z as SankeyChartOptions, S as SankeyChartInstance, h as HeatmapChartOptions, H as HeatmapChartInstance, q as OrbitMenuOptions, O as OrbitMenuInstance } from '../store-CZ6vdtIE.js';
13
+ export { N as NAV_STYLES, k as NAV_STYLE_ALIASES, G as ToastAction, K as ToastOptions, L as ToastTone, a0 as clearToasts, ag as dismissToast, am as toNavStyle, an as toast } from '../store-CZ6vdtIE.js';
14
14
  import { C as CapturedLayout } from '../confetti-BSX1CLLV.js';
15
15
  export { A as ANIMATIONS, b as AnimationName, d as ConfettiOptions, e as animate, g as confetti, l as leave } from '../confetti-BSX1CLLV.js';
16
16
  import 'gsap/SplitText';
@@ -1234,4 +1234,42 @@ interface OrbitMenuProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onSelect'
1234
1234
  /** <OrbitMenu label="Acciones" items={[{ value: 'nuevo', label: 'Nuevo', icon: <Plus /> }, …]} onSelect={run} /> */
1235
1235
  declare function OrbitMenu({ items, label, radius, start, closeOnSelect, onToggle, onSelect, instanceRef, className, ...props }: OrbitMenuProps): react_jsx_runtime.JSX.Element;
1236
1236
 
1237
- export { ActivityFeed, type ActivityFeedHandle, type ActivityFeedProps, ActivityItem, AddToCart, type AddToCartProps, AnimatedNumber, type AnimatedNumberProps, Attachment, type AttachmentProps, type AttachmentUpload, BidirectionalSlider, type BidirectionalSliderProps, Breadcrumb, type BreadcrumbProps, Calendar, type CalendarProps, Chart, type ChartProps, ChartTooltip, type ChartTooltipProps, Chat, ChatBackground, type ChatBackgroundProps, type ChatComposerProps, type ChatMessageProps, type ChatMessagesProps, type ChatRootProps, CodeBlock, type CodeBlockProps, ColorArea, type ColorAreaProps, ColorField, type ColorFieldProps, ColorPicker, type ColorPickerProps, ColorSlider, type ColorSliderProps, CommandItem, CommandSearch, type CommandSearchProps, ContextMenu, type ContextMenuProps, CreditCard, type CreditCardProps, Cursor, type CursorProps, DataRow, DataTable, type DataTableHandle, type DataTableProps, DateRangePicker, type DateRangePickerProps, DateTimePicker, type DateTimePickerProps, Dialog, type DialogContentProps, Drawer, type DrawerRootProps, EditableTable, type EditableTableHandle, type EditableTableProps, EmptyState, type EmptyStateProps, FileEntry, FileExplorer, type FileExplorerHandle, type FileExplorerProps, FilterBuilder, type FilterBuilderProps, FlipGroup, type FlipGroupProps, Frost, type FrostProps, HeatmapChart, type HeatmapChartProps, HoldConfirm, type HoldConfirmProps, HoverCard, type HoverCardProps, ImagePreview, type ImagePreviewProps, InputOtp, type InputOtpProps, Island, IslandDots, type IslandPanel, type IslandProps, JsonViewer, type JsonViewerHandle, type JsonViewerProps, LikeButton, type LikeButtonProps, LinkPreview, type LinkPreviewProps, LoadingButton, type LoadingButtonProps, Menu, type MenuRootProps, MkIcon, MultiSelect, type MultiSelectProps, Nav, type NavItem, type NavProps, NavStyle, NavStyleAlias, NotificationBell, type NotificationBellProps, OrbitMenu, type OrbitMenuProps, Pagination, type PaginationProps, PasswordStrength, type PasswordStrengthProps, PieChart, type PieChartProps, PillButton, type PillButtonProps, Popover, type PopoverProps, type PreviewImage, Progress, type ProgressProps, Quantity, type QuantityProps, type Question, type QuestionOption, type QuestionType, Questionnaire, type QuestionnaireProps, RadarChart, type RadarChartProps, RadialChart, type RadialChartProps, RangeCalendar, type RangeCalendarProps, RangeSlider, type RangeSliderProps, ResizablePanel, type ResizablePanelHandle, type ResizablePanelProps, RichTextEditor, type RichTextEditorHandle, type RichTextEditorProps, SankeyChart, type SankeyChartProps, ScratchCard, type ScratchCardProps, ScrollIsland, type ScrollIslandProps, Select, type SelectProps, Skeleton, type SkeletonProps, SlotPicker, type SlotPickerProps, SlotText, type SlotTextProps, SplitView, type SplitViewHandle, type SplitViewProps, StarRating, type StarRatingProps, StatCard, type StatCardProps, Steps, type StepsProps, StudioDock, type StudioDockProps, type SurfaceRootProps, type SwipeAction, SwipeActions, type SwipeActionsProps, type SwipeRowProps, TagInput, type TagInputProps, type ThemeContextValue, ThemePicker, type ThemePickerProps, ThemeProvider, type ThemeProviderProps, TimeField, type TimeFieldProps, Timeline, TimelineEvent, type TimelineProps, Toaster, type ToasterProps, Toolbar, type ToolbarProps, Tooltip, type TooltipProps, Trailer, type TrailerProps, TreeNode, TreeView, type TreeViewHandle, type TreeViewProps, type UseStretchFooterOptions, VirtualList, type VirtualListHandle, type VirtualListProps, VoiceDots, type VoiceDotsProps, useActionButton, useCardDock, useCascade, useChat, useContrast, useCounter, useCurvedCarousel, useDepthGrid, useDetails, useDialog, useDockPill, useDragRuler, useDrawer, useEditorialReveal, useFillText, useFilmHero, useFitText, useFlow, useFontCycle, useFrameZoom, useImageZoom, useInfiniteReel, useIsomorphicLayoutEffect, useJoinedCta, useLatest, useLetters, useLiquidBlend, useLocalClock, useMarquee, useMaskText, useMatcap, useParallax, useParticleHero, usePile, usePop, useRadialMenu, useRecipe, useReflow, useRepelBento, useReveal, useRotator, useScrollDock, useShaderBlur, useShaderGrain, useSlotText, useSnapStrip, useSortable, useSpringCards, useSticker, useStretchFooter, useStudioDock, useTabs, useTextRoll, useTheme, useThumbnailNav, useTicketMenu, useTrailer, useWeightHover, useWords };
1237
+ interface SignaturePadProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'children' | 'dangerouslySetInnerHTML' | 'defaultValue'>, Omit<SignaturePadOptions, 'data'> {
1238
+ /** Controlled data. Accept edits through onChange; rejected edits are restored after rendering. */
1239
+ value?: SignatureData;
1240
+ defaultValue?: SignatureData;
1241
+ instanceRef?: MutableRefObject<SignaturePadInstance | null>;
1242
+ }
1243
+ /** <SignaturePad value={signature} onChange={setSignature} name="signature" />. */
1244
+ declare function SignaturePad({ value, defaultValue, label, hint, placeholder, color, width, disabled, readOnly, toolbar, name, historyLimit, onChange, instanceRef, className, ...props }: SignaturePadProps): react_jsx_runtime.JSX.Element;
1245
+
1246
+ interface WaveformPlayerProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onPlay' | 'onPause' | 'onEnded' | 'onError' | 'onTimeUpdate' | 'children' | 'dangerouslySetInnerHTML'>, WaveformPlayerOptions {
1247
+ instanceRef?: MutableRefObject<WaveformPlayerInstance | null>;
1248
+ }
1249
+ declare function WaveformPlayer({ src, peaks, label, disabled, playbackRates, onStateChange, onTimeUpdate, onPlay, onPause, onEnded, onError, instanceRef, className, ...props }: WaveformPlayerProps): react_jsx_runtime.JSX.Element;
1250
+
1251
+ interface VoiceMessageBubbleProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onPlay' | 'onPause' | 'onEnded' | 'onError' | 'onTimeUpdate' | 'children' | 'dangerouslySetInnerHTML'>, VoiceMessageBubbleOptions {
1252
+ instanceRef?: MutableRefObject<VoiceMessageBubbleInstance | null>;
1253
+ }
1254
+ declare function VoiceMessageBubble({ src, peaks, label, disabled, playbackRates, onStateChange, onTimeUpdate, onPlay, onPause, onEnded, onError, direction, author, timestamp, dateTime, status, instanceRef, className, ...props }: VoiceMessageBubbleProps): react_jsx_runtime.JSX.Element;
1255
+
1256
+ interface DrilldownMenuProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'dangerouslySetInnerHTML' | 'onSelect'>, Omit<DrilldownMenuOptions, 'items' | 'path'> {
1257
+ items: DrilldownMenuItem[];
1258
+ /** Controlled branch path; pair with onPathChange. */
1259
+ path?: string[];
1260
+ /** Initial branch path when uncontrolled. */
1261
+ defaultPath?: string[];
1262
+ }
1263
+ type DrilldownMenuHandle = Pick<DrilldownMenuInstance, 'open' | 'back' | 'root' | 'reset' | 'setPath' | 'focusItem'>;
1264
+ /** Data-driven hierarchical actions with controlled or internal navigation. */
1265
+ declare const DrilldownMenu: react.ForwardRefExoticComponent<DrilldownMenuProps & react.RefAttributes<DrilldownMenuHandle>>;
1266
+
1267
+ interface WheelPickerProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange' | 'onInput' | 'defaultValue' | 'children' | 'dangerouslySetInnerHTML'>, WheelPickerOptions {
1268
+ defaultValue?: string;
1269
+ instanceRef?: {
1270
+ current: WheelPickerInstance | null;
1271
+ };
1272
+ }
1273
+ declare function WheelPicker({ items, value, defaultValue, name, label, disabled, visibleItems, itemHeight, onInput, onChange, instanceRef, className, ...props }: WheelPickerProps): react_jsx_runtime.JSX.Element;
1274
+
1275
+ export { ActivityFeed, type ActivityFeedHandle, type ActivityFeedProps, ActivityItem, AddToCart, type AddToCartProps, AnimatedNumber, type AnimatedNumberProps, Attachment, type AttachmentProps, type AttachmentUpload, BidirectionalSlider, type BidirectionalSliderProps, Breadcrumb, type BreadcrumbProps, Calendar, type CalendarProps, Chart, type ChartProps, ChartTooltip, type ChartTooltipProps, Chat, ChatBackground, type ChatBackgroundProps, type ChatComposerProps, type ChatMessageProps, type ChatMessagesProps, type ChatRootProps, CodeBlock, type CodeBlockProps, ColorArea, type ColorAreaProps, ColorField, type ColorFieldProps, ColorPicker, type ColorPickerProps, ColorSlider, type ColorSliderProps, CommandItem, CommandSearch, type CommandSearchProps, ContextMenu, type ContextMenuProps, CreditCard, type CreditCardProps, Cursor, type CursorProps, DataRow, DataTable, type DataTableHandle, type DataTableProps, DateRangePicker, type DateRangePickerProps, DateTimePicker, type DateTimePickerProps, Dialog, type DialogContentProps, Drawer, type DrawerRootProps, DrilldownMenu, type DrilldownMenuHandle, type DrilldownMenuProps, EditableTable, type EditableTableHandle, type EditableTableProps, EmptyState, type EmptyStateProps, FileEntry, FileExplorer, type FileExplorerHandle, type FileExplorerProps, FilterBuilder, type FilterBuilderProps, FlipGroup, type FlipGroupProps, Frost, type FrostProps, HeatmapChart, type HeatmapChartProps, HoldConfirm, type HoldConfirmProps, HoverCard, type HoverCardProps, ImagePreview, type ImagePreviewProps, InputOtp, type InputOtpProps, Island, IslandDots, type IslandPanel, type IslandProps, JsonViewer, type JsonViewerHandle, type JsonViewerProps, LikeButton, type LikeButtonProps, LinkPreview, type LinkPreviewProps, LoadingButton, type LoadingButtonProps, Menu, type MenuRootProps, MkIcon, MultiSelect, type MultiSelectProps, Nav, type NavItem, type NavProps, NavStyle, NavStyleAlias, NotificationBell, type NotificationBellProps, OrbitMenu, type OrbitMenuProps, Pagination, type PaginationProps, PasswordStrength, type PasswordStrengthProps, PieChart, type PieChartProps, PillButton, type PillButtonProps, Popover, type PopoverProps, type PreviewImage, Progress, type ProgressProps, Quantity, type QuantityProps, type Question, type QuestionOption, type QuestionType, Questionnaire, type QuestionnaireProps, RadarChart, type RadarChartProps, RadialChart, type RadialChartProps, RangeCalendar, type RangeCalendarProps, RangeSlider, type RangeSliderProps, ResizablePanel, type ResizablePanelHandle, type ResizablePanelProps, RichTextEditor, type RichTextEditorHandle, type RichTextEditorProps, SankeyChart, type SankeyChartProps, ScratchCard, type ScratchCardProps, ScrollIsland, type ScrollIslandProps, Select, type SelectProps, SignaturePad, type SignaturePadProps, Skeleton, type SkeletonProps, SlotPicker, type SlotPickerProps, SlotText, type SlotTextProps, SplitView, type SplitViewHandle, type SplitViewProps, StarRating, type StarRatingProps, StatCard, type StatCardProps, Steps, type StepsProps, StudioDock, type StudioDockProps, type SurfaceRootProps, type SwipeAction, SwipeActions, type SwipeActionsProps, type SwipeRowProps, TagInput, type TagInputProps, type ThemeContextValue, ThemePicker, type ThemePickerProps, ThemeProvider, type ThemeProviderProps, TimeField, type TimeFieldProps, Timeline, TimelineEvent, type TimelineProps, Toaster, type ToasterProps, Toolbar, type ToolbarProps, Tooltip, type TooltipProps, Trailer, type TrailerProps, TreeNode, TreeView, type TreeViewHandle, type TreeViewProps, type UseStretchFooterOptions, VirtualList, type VirtualListHandle, type VirtualListProps, VoiceDots, type VoiceDotsProps, VoiceMessageBubble, type VoiceMessageBubbleProps, WaveformPlayer, type WaveformPlayerProps, WheelPicker, type WheelPickerProps, useActionButton, useCardDock, useCascade, useChat, useContrast, useCounter, useCurvedCarousel, useDepthGrid, useDetails, useDialog, useDockPill, useDragRuler, useDrawer, useEditorialReveal, useFillText, useFilmHero, useFitText, useFlow, useFontCycle, useFrameZoom, useImageZoom, useInfiniteReel, useIsomorphicLayoutEffect, useJoinedCta, useLatest, useLetters, useLiquidBlend, useLocalClock, useMarquee, useMaskText, useMatcap, useParallax, useParticleHero, usePile, usePop, useRadialMenu, useRecipe, useReflow, useRepelBento, useReveal, useRotator, useScrollDock, useShaderBlur, useShaderGrain, useSlotText, useSnapStrip, useSortable, useSpringCards, useSticker, useStretchFooter, useStudioDock, useTabs, useTextRoll, useTheme, useThumbnailNav, useTicketMenu, useTrailer, useWeightHover, useWords };
@@ -55,7 +55,7 @@ import {
55
55
  pileLayers,
56
56
  pileStyle,
57
57
  reflowLayout
58
- } from "../chunk-NFZIX3IA.js";
58
+ } from "../chunk-BZLMCHUD.js";
59
59
  import {
60
60
  ICON_PATHS,
61
61
  NAV_STYLES,
@@ -84,7 +84,7 @@ import {
84
84
  revealShell,
85
85
  toNavStyle,
86
86
  toast
87
- } from "../chunk-RBEKR5UZ.js";
87
+ } from "../chunk-VJFPTLAK.js";
88
88
  import {
89
89
  confetti,
90
90
  createActivityFeed,
@@ -108,6 +108,7 @@ import {
108
108
  createDateTimePicker,
109
109
  createDialog,
110
110
  createDrawer,
111
+ createDrilldownMenu,
111
112
  createEditableTable,
112
113
  createEmptyState,
113
114
  createFileExplorer,
@@ -135,6 +136,7 @@ import {
135
136
  createScratchCard,
136
137
  createScrollIsland,
137
138
  createSelect,
139
+ createSignaturePad,
138
140
  createSkeleton,
139
141
  createSlotPicker,
140
142
  createSplitView,
@@ -150,6 +152,9 @@ import {
150
152
  createTrailer,
151
153
  createTreeView,
152
154
  createVirtualList,
155
+ createVoiceMessageBubble,
156
+ createWaveformPlayer,
157
+ createWheelPicker,
153
158
  dateTimeKey,
154
159
  flowLines,
155
160
  languageFamily,
@@ -165,7 +170,7 @@ import {
165
170
  tokenLines,
166
171
  tokenize,
167
172
  tweenNumber
168
- } from "../chunk-SDQ776LG.js";
173
+ } from "../chunk-7IQTMF7Y.js";
169
174
  import {
170
175
  DEFAULT_THEME,
171
176
  MK_THEME_HEAD_SCRIPT,
@@ -3491,6 +3496,220 @@ function OrbitMenu({ items, label = "Men\xFA", radius, start, closeOnSelect, onT
3491
3496
  items.map((item) => /* @__PURE__ */ jsx84("button", { type: "button", "data-mk-orbit-item": "", "data-mk-value": item.value, "aria-label": item.label, children: item.icon }, item.value))
3492
3497
  ] });
3493
3498
  }
3499
+
3500
+ // src/components/signature-pad/react.tsx
3501
+ import { useReducer, useRef as useRef79 } from "react";
3502
+ import { jsx as jsx85 } from "react/jsx-runtime";
3503
+ function SignaturePad({ value, defaultValue, label, hint, placeholder, color, width, disabled, readOnly, toolbar, name, historyLimit, onChange, instanceRef, className, ...props }) {
3504
+ const { children: _children, dangerouslySetInnerHTML: _html, ...rootProps } = props;
3505
+ const ref = useRef79(null);
3506
+ const instance = useRef79(null);
3507
+ const edited = useRef79(value ?? defaultValue);
3508
+ const current = useLatest(value);
3509
+ const change = useLatest(onChange);
3510
+ const [, refresh] = useReducer((revision) => revision + 1, 0);
3511
+ useIsomorphicLayoutEffect(() => {
3512
+ const created = createSignaturePad(ref.current, {
3513
+ data: current.current ?? edited.current,
3514
+ label,
3515
+ hint,
3516
+ placeholder,
3517
+ color,
3518
+ width,
3519
+ disabled,
3520
+ readOnly,
3521
+ toolbar,
3522
+ name,
3523
+ historyLimit,
3524
+ onChange: (data, detail) => {
3525
+ edited.current = data;
3526
+ change.current?.(data, detail);
3527
+ if (current.current !== void 0) refresh();
3528
+ }
3529
+ });
3530
+ instance.current = created;
3531
+ return () => {
3532
+ edited.current = created.exportData();
3533
+ created.destroy();
3534
+ instance.current = null;
3535
+ };
3536
+ }, [label, hint, placeholder, color, width, toolbar, name, historyLimit]);
3537
+ useIsomorphicLayoutEffect(() => {
3538
+ const created = instance.current;
3539
+ if (!created) return;
3540
+ created.setDisabled(Boolean(disabled));
3541
+ created.setReadOnly(Boolean(readOnly));
3542
+ }, [disabled, readOnly]);
3543
+ useIsomorphicLayoutEffect(() => {
3544
+ if (value !== void 0) instance.current?.importData(value, false);
3545
+ });
3546
+ useIsomorphicLayoutEffect(() => {
3547
+ if (instanceRef) instanceRef.current = instance.current;
3548
+ return () => {
3549
+ if (instanceRef) instanceRef.current = null;
3550
+ };
3551
+ }, [instanceRef, label, hint, placeholder, color, width, toolbar, name, historyLimit]);
3552
+ return /* @__PURE__ */ jsx85("div", { ...rootProps, ref, className: ["mk-signature-pad", className].filter(Boolean).join(" ") });
3553
+ }
3554
+
3555
+ // src/components/waveform-player/react.tsx
3556
+ import { useRef as useRef80 } from "react";
3557
+ import { jsx as jsx86 } from "react/jsx-runtime";
3558
+ function WaveformPlayer({ src, peaks, label, disabled, playbackRates, onStateChange, onTimeUpdate, onPlay, onPause, onEnded, onError, instanceRef, className, ...props }) {
3559
+ const { children: _children, dangerouslySetInnerHTML: _html, ...rootProps } = props;
3560
+ const root = useRef80(null);
3561
+ const instance = useRef80(null);
3562
+ useIsomorphicLayoutEffect(() => {
3563
+ const created = createWaveformPlayer(root.current);
3564
+ instance.current = created;
3565
+ return () => {
3566
+ created.destroy();
3567
+ instance.current = null;
3568
+ };
3569
+ }, []);
3570
+ useIsomorphicLayoutEffect(() => {
3571
+ instance.current?.update({ src, peaks, label, disabled, playbackRates, onStateChange, onTimeUpdate, onPlay, onPause, onEnded, onError });
3572
+ });
3573
+ useIsomorphicLayoutEffect(() => {
3574
+ if (instanceRef) instanceRef.current = instance.current;
3575
+ return () => {
3576
+ if (instanceRef) instanceRef.current = null;
3577
+ };
3578
+ }, [instanceRef]);
3579
+ return /* @__PURE__ */ jsx86("div", { ...rootProps, ref: root, className: ["mk-waveform-player", className].filter(Boolean).join(" ") });
3580
+ }
3581
+
3582
+ // src/components/voice-message-bubble/react.tsx
3583
+ import { useRef as useRef81 } from "react";
3584
+ import { jsx as jsx87 } from "react/jsx-runtime";
3585
+ function VoiceMessageBubble({ src, peaks, label, disabled, playbackRates, onStateChange, onTimeUpdate, onPlay, onPause, onEnded, onError, direction, author, timestamp, dateTime, status, instanceRef, className, ...props }) {
3586
+ const { children: _children, dangerouslySetInnerHTML: _html, ...rootProps } = props;
3587
+ const root = useRef81(null);
3588
+ const instance = useRef81(null);
3589
+ useIsomorphicLayoutEffect(() => {
3590
+ const created = createVoiceMessageBubble(root.current);
3591
+ instance.current = created;
3592
+ return () => {
3593
+ created.destroy();
3594
+ instance.current = null;
3595
+ };
3596
+ }, []);
3597
+ useIsomorphicLayoutEffect(() => {
3598
+ instance.current?.update({ src, peaks, label, disabled, playbackRates, onStateChange, onTimeUpdate, onPlay, onPause, onEnded, onError, direction, author, timestamp, dateTime, status });
3599
+ });
3600
+ useIsomorphicLayoutEffect(() => {
3601
+ if (instanceRef) instanceRef.current = instance.current;
3602
+ return () => {
3603
+ if (instanceRef) instanceRef.current = null;
3604
+ };
3605
+ }, [instanceRef]);
3606
+ return /* @__PURE__ */ jsx87("div", { ...rootProps, ref: root, className: ["mk-voice-message-bubble", className].filter(Boolean).join(" ") });
3607
+ }
3608
+
3609
+ // src/components/drilldown-menu/react.tsx
3610
+ import { forwardRef as forwardRef12, useImperativeHandle as useImperativeHandle12, useReducer as useReducer2, useRef as useRef82 } from "react";
3611
+ import { jsx as jsx88 } from "react/jsx-runtime";
3612
+ var DrilldownMenu = forwardRef12(function DrilldownMenu2({ items, path, defaultPath, label, backLabel, emptyText, onSelect, onPathChange, className, ...props }, handle) {
3613
+ const { children: _children, dangerouslySetInnerHTML: _html, ...rootProps } = props;
3614
+ const ref = useRef82(null);
3615
+ const instance = useRef82(null);
3616
+ const select = useLatest(onSelect);
3617
+ const changed = useLatest(onPathChange);
3618
+ const controlled = useLatest(path);
3619
+ const [, refresh] = useReducer2((value) => value + 1, 0);
3620
+ useImperativeHandle12(handle, () => ({
3621
+ open: (id) => instance.current?.open(id) ?? false,
3622
+ back: () => instance.current?.back() ?? false,
3623
+ root: () => instance.current?.root(),
3624
+ reset: () => instance.current?.reset(),
3625
+ setPath: (next, notify) => {
3626
+ instance.current?.setPath(next, notify);
3627
+ if (controlled.current !== void 0) refresh();
3628
+ },
3629
+ focusItem: (id) => instance.current?.focusItem(id)
3630
+ }), []);
3631
+ const itemsKey = JSON.stringify(items);
3632
+ useIsomorphicLayoutEffect(() => {
3633
+ const created = createDrilldownMenu(ref.current, {
3634
+ items,
3635
+ path: path ?? defaultPath,
3636
+ label,
3637
+ backLabel,
3638
+ emptyText,
3639
+ onSelect: (item, selectedPath) => select.current?.(item, selectedPath),
3640
+ onPathChange: (next) => {
3641
+ changed.current?.(next);
3642
+ if (controlled.current !== void 0) refresh();
3643
+ }
3644
+ });
3645
+ instance.current = created;
3646
+ return () => {
3647
+ created.destroy();
3648
+ instance.current = null;
3649
+ };
3650
+ }, []);
3651
+ useIsomorphicLayoutEffect(() => {
3652
+ instance.current?.update({ items, label, backLabel, emptyText, ...path !== void 0 ? { path } : {} });
3653
+ }, [itemsKey, label, backLabel, emptyText]);
3654
+ useIsomorphicLayoutEffect(() => {
3655
+ if (path !== void 0) instance.current?.setPath(path);
3656
+ });
3657
+ return /* @__PURE__ */ jsx88("div", { ...rootProps, ref, className: ["mk-drilldown-menu", className].filter(Boolean).join(" ") });
3658
+ });
3659
+
3660
+ // src/components/wheel-picker/react.tsx
3661
+ import { useReducer as useReducer3, useRef as useRef83 } from "react";
3662
+ import { jsx as jsx89 } from "react/jsx-runtime";
3663
+ function WheelPicker({ items, value, defaultValue, name, label, disabled, visibleItems, itemHeight, onInput, onChange, instanceRef, className, ...props }) {
3664
+ const ref = useRef83(null), instance = useRef83(null);
3665
+ const changed = useLatest(onChange), input = useLatest(onInput), latestItems = useLatest(items);
3666
+ const controlled = useLatest(value);
3667
+ const [, refresh] = useReducer3((revision) => revision + 1, 0);
3668
+ const last = useRef83(value ?? defaultValue);
3669
+ useIsomorphicLayoutEffect(() => {
3670
+ const created = createWheelPicker(ref.current, {
3671
+ items: latestItems.current,
3672
+ value: value ?? last.current,
3673
+ name,
3674
+ label,
3675
+ disabled,
3676
+ visibleItems,
3677
+ itemHeight,
3678
+ onInput: (next) => {
3679
+ last.current = next;
3680
+ input.current?.(next);
3681
+ },
3682
+ onChange: (next) => {
3683
+ last.current = next;
3684
+ changed.current?.(next);
3685
+ if (controlled.current !== void 0) refresh();
3686
+ }
3687
+ });
3688
+ instance.current = created;
3689
+ return () => {
3690
+ last.current = created.value;
3691
+ created.destroy();
3692
+ instance.current = null;
3693
+ };
3694
+ }, [name, label, disabled, visibleItems, itemHeight]);
3695
+ const key = JSON.stringify(items ?? []);
3696
+ useIsomorphicLayoutEffect(() => {
3697
+ instance.current?.setItems(items ?? []);
3698
+ }, [key]);
3699
+ useIsomorphicLayoutEffect(() => {
3700
+ if (value !== void 0) instance.current?.setValue(value);
3701
+ });
3702
+ useIsomorphicLayoutEffect(() => {
3703
+ if (instanceRef) instanceRef.current = instance.current;
3704
+ return () => {
3705
+ if (instanceRef) instanceRef.current = null;
3706
+ };
3707
+ }, [instanceRef, name, label, disabled, visibleItems, itemHeight]);
3708
+ const domProps = { ...props };
3709
+ delete domProps.children;
3710
+ delete domProps.dangerouslySetInnerHTML;
3711
+ return /* @__PURE__ */ jsx89("div", { ...domProps, ref, className: ["mk-wheel-picker", className].filter(Boolean).join(" ") });
3712
+ }
3494
3713
  export {
3495
3714
  ANIMATIONS,
3496
3715
  ActivityFeed,
@@ -3518,6 +3737,7 @@ export {
3518
3737
  DateTimePicker,
3519
3738
  Dialog,
3520
3739
  Drawer,
3740
+ DrilldownMenu,
3521
3741
  EditableTable,
3522
3742
  EmptyState,
3523
3743
  FileExplorer,
@@ -3563,6 +3783,7 @@ export {
3563
3783
  ScratchCard,
3564
3784
  ScrollIsland,
3565
3785
  Select,
3786
+ SignaturePad,
3566
3787
  Skeleton,
3567
3788
  SlotPicker,
3568
3789
  SlotText,
@@ -3584,6 +3805,9 @@ export {
3584
3805
  TreeView,
3585
3806
  VirtualList,
3586
3807
  VoiceDots,
3808
+ VoiceMessageBubble,
3809
+ WaveformPlayer,
3810
+ WheelPicker,
3587
3811
  animate,
3588
3812
  clearToasts,
3589
3813
  confetti,