@yewdiel21/motion-kit 0.17.0 → 0.19.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 (181) hide show
  1. package/README.md +240 -199
  2. package/dist/auto/index.d.ts +19 -3
  3. package/dist/auto/index.js +35 -3
  4. package/dist/auto/index.js.map +1 -1
  5. package/dist/{chunk-QFBOHPWZ.js → chunk-CQP66AZK.js} +2 -2
  6. package/dist/{chunk-QP4QJOEN.js → chunk-H4STLMCM.js} +2 -2
  7. package/dist/{chunk-BZLMCHUD.js → chunk-KDIJX6G4.js} +3 -3
  8. package/dist/{chunk-DOOMULVV.js → chunk-OLT3CWDJ.js} +4 -2
  9. package/dist/chunk-OLT3CWDJ.js.map +1 -0
  10. package/dist/{chunk-VJFPTLAK.js → chunk-PEDYJ2TV.js} +8 -22
  11. package/dist/chunk-PEDYJ2TV.js.map +1 -0
  12. package/dist/{chunk-7IQTMF7Y.js → chunk-Y4GIBTRG.js} +5130 -2153
  13. package/dist/chunk-Y4GIBTRG.js.map +1 -0
  14. package/dist/css/components/badge-button.css +16 -0
  15. package/dist/css/components/bento-grid.css +13 -0
  16. package/dist/css/components/code-block.css +267 -0
  17. package/dist/css/components/command-search.css +274 -2
  18. package/dist/css/components/dialog.css +264 -0
  19. package/dist/css/components/drilldown-menu.css +11 -7
  20. package/dist/css/components/equalizer-slider.css +26 -0
  21. package/dist/css/components/handwriting-text.css +15 -0
  22. package/dist/css/components/heatmap-chart.css +267 -1
  23. package/dist/css/components/magnetize-button.css +18 -0
  24. package/dist/css/components/morphing-page-dots.css +13 -0
  25. package/dist/css/components/not-found.css +22 -0
  26. package/dist/css/components/notification-stack.css +42 -0
  27. package/dist/css/components/particle-button.css +14 -0
  28. package/dist/css/components/radio-group.css +29 -0
  29. package/dist/css/components/rating-scale.css +23 -0
  30. package/dist/css/components/scroll-area.css +261 -0
  31. package/dist/css/components/scroll-preview-dock.css +18 -0
  32. package/dist/css/components/select.css +300 -4
  33. package/dist/css/components/signature-pad.css +130 -103
  34. package/dist/css/components/stepper.css +36 -0
  35. package/dist/css/components/sticky-header.css +10 -0
  36. package/dist/css/components/temperature-slider.css +29 -0
  37. package/dist/css/components/voice-message-bubble.css +62 -45
  38. package/dist/css/components/waveform-player.css +49 -34
  39. package/dist/css/components/wheel-picker.css +16 -15
  40. package/dist/css/tokens.css +4 -0
  41. package/dist/elements/index.d.ts +217 -4
  42. package/dist/elements/index.js +614 -9
  43. package/dist/elements/index.js.map +1 -1
  44. package/dist/{engine-Bn6hC87X.d.ts → engine-D6XV-WNt.d.ts} +390 -1
  45. package/dist/gl/index.js +2 -2
  46. package/dist/index.css +886 -177
  47. package/dist/index.d.ts +23 -23
  48. package/dist/index.js +37 -5
  49. package/dist/index.js.map +1 -1
  50. package/dist/react/index.d.ts +126 -7
  51. package/dist/react/index.js +722 -7
  52. package/dist/react/index.js.map +1 -1
  53. package/dist/{reduced-YS6TZjpa.d.ts → reduced-4croIXl-.d.ts} +1 -1
  54. package/dist/{store-CZ6vdtIE.d.ts → store-CAHWkurn.d.ts} +1 -1
  55. package/package.json +110 -110
  56. package/registry.json +1357 -1160
  57. package/src/auto/auto-init.ts +341 -308
  58. package/src/components/badge-button/README.md +28 -0
  59. package/src/components/badge-button/badge-button.css +15 -0
  60. package/src/components/badge-button/element.ts +16 -0
  61. package/src/components/badge-button/engine.ts +85 -0
  62. package/src/components/badge-button/react.tsx +31 -0
  63. package/src/components/bento-grid/README.md +26 -0
  64. package/src/components/bento-grid/bento-grid.css +12 -0
  65. package/src/components/bento-grid/element.ts +22 -0
  66. package/src/components/bento-grid/engine.ts +153 -0
  67. package/src/components/bento-grid/react.tsx +25 -0
  68. package/src/components/code-block/README.md +1 -1
  69. package/src/components/code-block/code-block.css +5 -0
  70. package/src/components/code-block/engine.ts +5 -0
  71. package/src/components/command-search/README.md +1 -1
  72. package/src/components/command-search/command-search.css +12 -2
  73. package/src/components/command-search/engine.ts +6 -0
  74. package/src/components/dialog/README.md +104 -103
  75. package/src/components/dialog/dialog.css +2 -0
  76. package/src/components/dialog/engine.ts +465 -449
  77. package/src/components/drilldown-menu/drilldown-menu.css +11 -7
  78. package/src/components/drilldown-menu/engine.ts +44 -4
  79. package/src/components/equalizer-slider/README.md +43 -0
  80. package/src/components/equalizer-slider/element.ts +41 -0
  81. package/src/components/equalizer-slider/engine.ts +32 -0
  82. package/src/components/equalizer-slider/equalizer-slider.css +26 -0
  83. package/src/components/equalizer-slider/react.tsx +60 -0
  84. package/src/components/equalizer-slider/shared.ts +161 -0
  85. package/src/components/handwriting-text/README.md +29 -0
  86. package/src/components/handwriting-text/element.ts +14 -0
  87. package/src/components/handwriting-text/engine.ts +108 -0
  88. package/src/components/handwriting-text/glyphs.ts +71 -0
  89. package/src/components/handwriting-text/handwriting-text.css +14 -0
  90. package/src/components/handwriting-text/react.tsx +23 -0
  91. package/src/components/heatmap-chart/README.md +48 -48
  92. package/src/components/heatmap-chart/engine.ts +6 -1
  93. package/src/components/heatmap-chart/heatmap-chart.css +5 -1
  94. package/src/components/icons.ts +1 -0
  95. package/src/components/magnetize-button/README.md +26 -0
  96. package/src/components/magnetize-button/element.ts +13 -0
  97. package/src/components/magnetize-button/engine.ts +84 -0
  98. package/src/components/magnetize-button/magnetize-button.css +17 -0
  99. package/src/components/magnetize-button/react.tsx +22 -0
  100. package/src/components/morphing-page-dots/README.md +28 -0
  101. package/src/components/morphing-page-dots/element.ts +16 -0
  102. package/src/components/morphing-page-dots/engine.ts +89 -0
  103. package/src/components/morphing-page-dots/morphing-page-dots.css +12 -0
  104. package/src/components/morphing-page-dots/react.tsx +32 -0
  105. package/src/components/not-found/README.md +26 -0
  106. package/src/components/not-found/element.ts +15 -0
  107. package/src/components/not-found/engine.ts +57 -0
  108. package/src/components/not-found/not-found.css +21 -0
  109. package/src/components/not-found/react.tsx +23 -0
  110. package/src/components/notification-stack/README.md +24 -0
  111. package/src/components/notification-stack/element.ts +26 -0
  112. package/src/components/notification-stack/engine.ts +329 -0
  113. package/src/components/notification-stack/notification-stack.css +41 -0
  114. package/src/components/notification-stack/react.tsx +28 -0
  115. package/src/components/particle-button/README.md +26 -0
  116. package/src/components/particle-button/element.ts +13 -0
  117. package/src/components/particle-button/engine.ts +52 -0
  118. package/src/components/particle-button/particle-button.css +13 -0
  119. package/src/components/particle-button/react.tsx +22 -0
  120. package/src/components/radio-group/README.md +43 -0
  121. package/src/components/radio-group/element.ts +41 -0
  122. package/src/components/radio-group/engine.ts +11 -0
  123. package/src/components/radio-group/radio-group.css +28 -0
  124. package/src/components/radio-group/react.tsx +60 -0
  125. package/src/components/radio-group/shared.ts +118 -0
  126. package/src/components/rating-scale/README.md +43 -0
  127. package/src/components/rating-scale/element.ts +41 -0
  128. package/src/components/rating-scale/engine.ts +63 -0
  129. package/src/components/rating-scale/rating-scale.css +22 -0
  130. package/src/components/rating-scale/react.tsx +60 -0
  131. package/src/components/scroll-area/README.md +89 -0
  132. package/src/components/scroll-area/element.ts +35 -0
  133. package/src/components/scroll-area/engine.ts +528 -0
  134. package/src/components/scroll-area/react.tsx +67 -0
  135. package/src/components/scroll-area/scroll-area.css +260 -0
  136. package/src/components/scroll-preview-dock/README.md +24 -0
  137. package/src/components/scroll-preview-dock/element.ts +20 -0
  138. package/src/components/scroll-preview-dock/engine.ts +228 -0
  139. package/src/components/scroll-preview-dock/react.tsx +26 -0
  140. package/src/components/scroll-preview-dock/scroll-preview-dock.css +17 -0
  141. package/src/components/select/README.md +23 -9
  142. package/src/components/select/engine.ts +16 -4
  143. package/src/components/select/select.css +38 -4
  144. package/src/components/signature-pad/engine.ts +550 -437
  145. package/src/components/signature-pad/signature-pad.css +130 -103
  146. package/src/components/stepper/README.md +46 -0
  147. package/src/components/stepper/element.ts +42 -0
  148. package/src/components/stepper/engine.ts +103 -0
  149. package/src/components/stepper/react.tsx +60 -0
  150. package/src/components/stepper/stepper.css +35 -0
  151. package/src/components/sticky-header/README.md +30 -0
  152. package/src/components/sticky-header/element.ts +19 -0
  153. package/src/components/sticky-header/engine.ts +95 -0
  154. package/src/components/sticky-header/react.tsx +25 -0
  155. package/src/components/sticky-header/sticky-header.css +9 -0
  156. package/src/components/temperature-slider/README.md +42 -0
  157. package/src/components/temperature-slider/element.ts +53 -0
  158. package/src/components/temperature-slider/engine.ts +44 -0
  159. package/src/components/temperature-slider/react.tsx +66 -0
  160. package/src/components/temperature-slider/temperature-slider.css +29 -0
  161. package/src/components/voice-message-bubble/engine.ts +11 -0
  162. package/src/components/voice-message-bubble/voice-message-bubble.css +14 -12
  163. package/src/components/waveform-player/README.md +1 -1
  164. package/src/components/waveform-player/engine.ts +344 -261
  165. package/src/components/waveform-player/waveform-player.css +50 -35
  166. package/src/components/wheel-picker/README.md +3 -1
  167. package/src/components/wheel-picker/element.ts +12 -5
  168. package/src/components/wheel-picker/engine.ts +37 -8
  169. package/src/components/wheel-picker/wheel-picker.css +17 -16
  170. package/src/core/timing.ts +2 -0
  171. package/src/css/tokens.css +4 -0
  172. package/src/elements/index.ts +321 -273
  173. package/src/index.ts +312 -295
  174. package/src/motion/morph.ts +5 -2
  175. package/src/react/index.ts +17 -0
  176. package/dist/chunk-7IQTMF7Y.js.map +0 -1
  177. package/dist/chunk-DOOMULVV.js.map +0 -1
  178. package/dist/chunk-VJFPTLAK.js.map +0 -1
  179. /package/dist/{chunk-QFBOHPWZ.js.map → chunk-CQP66AZK.js.map} +0 -0
  180. /package/dist/{chunk-QP4QJOEN.js.map → chunk-H4STLMCM.js.map} +0 -0
  181. /package/dist/{chunk-BZLMCHUD.js.map → chunk-KDIJX6G4.js.map} +0 -0
@@ -15,13 +15,14 @@ import {
15
15
  createToaster,
16
16
  createToolbar,
17
17
  createVoiceDots,
18
- iconSvg,
19
18
  toast
20
- } from "../chunk-VJFPTLAK.js";
19
+ } from "../chunk-PEDYJ2TV.js";
21
20
  import {
22
21
  createActivityFeed,
23
22
  createAddToCart,
24
23
  createAttachment,
24
+ createBadgeButton,
25
+ createBentoGrid,
25
26
  createBreadcrumb,
26
27
  createCalendar,
27
28
  createChart,
@@ -43,8 +44,10 @@ import {
43
44
  createDrilldownMenu,
44
45
  createEditableTable,
45
46
  createEmptyState,
47
+ createEqualizerSlider,
46
48
  createFileExplorer,
47
49
  createFilterBuilder,
50
+ createHandwritingText,
48
51
  createHoldConfirm,
49
52
  createHoverCard,
50
53
  createImagePreview,
@@ -53,21 +56,30 @@ import {
53
56
  createLikeButton,
54
57
  createLinkPreview,
55
58
  createLoadingButton,
59
+ createMagnetizeButton,
56
60
  createMenu,
61
+ createMorphingPageDots,
57
62
  createMultiSelect,
63
+ createNotFound,
58
64
  createNotificationBell,
65
+ createNotificationStack,
59
66
  createPagination,
67
+ createParticleButton,
60
68
  createPasswordStrength,
61
69
  createPopover,
62
70
  createProgress,
63
71
  createQuantity,
64
72
  createQuestionnaire,
73
+ createRadioGroup,
65
74
  createRangeCalendar,
66
75
  createRangeSlider,
76
+ createRatingScale,
67
77
  createResizablePanel,
68
78
  createRichTextEditor,
69
79
  createScratchCard,
80
+ createScrollArea,
70
81
  createScrollIsland,
82
+ createScrollPreviewDock,
71
83
  createSelect,
72
84
  createSignaturePad,
73
85
  createSkeleton,
@@ -75,10 +87,13 @@ import {
75
87
  createSplitView,
76
88
  createStarRating,
77
89
  createStatCard,
90
+ createStepper,
78
91
  createSteps,
92
+ createStickyHeader,
79
93
  createStudioDock,
80
94
  createSwipeActions,
81
95
  createTagInput,
96
+ createTemperatureSlider,
82
97
  createTimeField,
83
98
  createTimeline,
84
99
  createTooltip,
@@ -87,10 +102,11 @@ import {
87
102
  createVirtualList,
88
103
  createVoiceMessageBubble,
89
104
  createWaveformPlayer,
90
- createWheelPicker
91
- } from "../chunk-7IQTMF7Y.js";
105
+ createWheelPicker,
106
+ iconSvg
107
+ } from "../chunk-Y4GIBTRG.js";
92
108
  import "../chunk-RVSKEBIC.js";
93
- import "../chunk-DOOMULVV.js";
109
+ import "../chunk-OLT3CWDJ.js";
94
110
  import "../chunk-TGV27ZWM.js";
95
111
 
96
112
  // src/elements/base.ts
@@ -2328,11 +2344,18 @@ var defineDrilldownMenu = () => defineElement("mk-drilldown-menu", MkDrilldownMe
2328
2344
  // src/components/wheel-picker/element.ts
2329
2345
  var MkWheelPickerElement = class extends MkElement {
2330
2346
  static options = { items: "json", value: "string", name: "string", label: "string", disabled: "boolean", visibleItems: "number", itemHeight: "number" };
2347
+ savedValue;
2348
+ savedItems;
2331
2349
  create(options) {
2332
- return createWheelPicker(this, options);
2350
+ return createWheelPicker(this, { ...options, ...this.savedItems ? { items: this.savedItems } : {}, value: this.savedValue ?? options.value });
2333
2351
  }
2334
2352
  attributeChangedCallback(name, previous, next) {
2335
- if (previous === next || !this.instance) return;
2353
+ if (previous === next) return;
2354
+ if (name === "items") this.savedItems = void 0;
2355
+ if (!this.instance) {
2356
+ if (name === "value") this.savedValue = next ?? void 0;
2357
+ return;
2358
+ }
2336
2359
  if (name === "value" && next !== null) {
2337
2360
  this.instance.setValue(next);
2338
2361
  return;
@@ -2342,7 +2365,13 @@ var MkWheelPickerElement = class extends MkElement {
2342
2365
  if (this.options.value !== void 0) this.instance.setValue(String(this.options.value));
2343
2366
  return;
2344
2367
  }
2345
- super.attributeChangedCallback(name, previous, next);
2368
+ this.savedValue = name === "value" ? void 0 : this.instance.value;
2369
+ this.instance.destroy();
2370
+ this.instance = this.create(this.options);
2371
+ }
2372
+ disconnectedCallback() {
2373
+ this.savedValue = this.instance?.value ?? this.savedValue;
2374
+ super.disconnectedCallback();
2346
2375
  }
2347
2376
  get value() {
2348
2377
  return this.instance?.value ?? "";
@@ -2354,11 +2383,539 @@ var MkWheelPickerElement = class extends MkElement {
2354
2383
  this.instance?.setValue(value, notify);
2355
2384
  }
2356
2385
  setItems(items, notify = false) {
2386
+ this.savedItems = items.map((item) => typeof item === "string" ? item : { ...item });
2357
2387
  this.instance?.setItems(items, notify);
2358
2388
  }
2359
2389
  };
2360
2390
  var defineWheelPicker = () => defineElement("mk-wheel-picker", MkWheelPickerElement);
2361
2391
 
2392
+ // src/components/stepper/element.ts
2393
+ var MkStepperElement = class extends MkElement {
2394
+ static options = { "items": "json", "value": "number", "label": "string", "name": "string", "variant": "string", "linear": "boolean", "disabled": "boolean" };
2395
+ baseline;
2396
+ saved;
2397
+ create(options) {
2398
+ const created = createStepper(this, { ...options, value: this.saved !== void 0 ? this.saved : options.value, defaultValue: this.baseline });
2399
+ if (this.baseline === void 0) this.baseline = created.value;
2400
+ this.saved = void 0;
2401
+ return created;
2402
+ }
2403
+ disconnectedCallback() {
2404
+ this.saved = this.instance?.value;
2405
+ super.disconnectedCallback();
2406
+ }
2407
+ attributeChangedCallback(name, previous, next) {
2408
+ if (previous === next) return;
2409
+ if (name === "value" && (!this.instance || !this.isConnected)) {
2410
+ this.saved = next === null ? this.baseline ?? 0 : Number.isFinite(Number(next)) ? Number(next) : this.baseline ?? 0;
2411
+ return;
2412
+ }
2413
+ if (!this.instance || !this.isConnected) return;
2414
+ if (name === "value") {
2415
+ const parsed = next === null ? this.baseline ?? 0 : Number(next);
2416
+ this.instance.setValue(parsed, false);
2417
+ return;
2418
+ }
2419
+ this.saved = this.instance.value;
2420
+ super.attributeChangedCallback(name, previous, next);
2421
+ }
2422
+ get value() {
2423
+ return this.instance?.value ?? this.saved ?? 0;
2424
+ }
2425
+ set value(next) {
2426
+ this.setValue(next);
2427
+ }
2428
+ setValue(value, notify = false) {
2429
+ if (this.instance) this.instance.setValue(value, notify);
2430
+ else this.saved = value;
2431
+ }
2432
+ reset(notify = false) {
2433
+ this.instance?.reset(notify);
2434
+ }
2435
+ next(notify = true) {
2436
+ this.instance?.next(notify);
2437
+ }
2438
+ previous(notify = true) {
2439
+ this.instance?.previous(notify);
2440
+ }
2441
+ };
2442
+ var defineStepper = () => defineElement("mk-stepper", MkStepperElement);
2443
+
2444
+ // src/components/radio-group/element.ts
2445
+ var MkRadioGroupElement = class extends MkElement {
2446
+ static options = { "items": "json", "value": "string", "name": "string", "label": "string", "disabled": "boolean", "required": "boolean", "error": "string", "variant": "string" };
2447
+ baseline;
2448
+ saved;
2449
+ create(options) {
2450
+ const created = createRadioGroup(this, { ...options, value: this.saved !== void 0 ? this.saved : options.value, defaultValue: this.baseline });
2451
+ if (this.baseline === void 0) this.baseline = created.value;
2452
+ this.saved = void 0;
2453
+ return created;
2454
+ }
2455
+ disconnectedCallback() {
2456
+ this.saved = this.instance?.value;
2457
+ super.disconnectedCallback();
2458
+ }
2459
+ attributeChangedCallback(name, previous, next) {
2460
+ if (previous === next) return;
2461
+ if (name === "value" && (!this.instance || !this.isConnected)) {
2462
+ this.saved = next === null ? this.baseline ?? null : next;
2463
+ return;
2464
+ }
2465
+ if (!this.instance || !this.isConnected) return;
2466
+ if (name === "value") {
2467
+ const parsed = next === null ? this.baseline ?? null : next;
2468
+ this.instance.setValue(parsed, false);
2469
+ return;
2470
+ }
2471
+ this.saved = this.instance.value;
2472
+ super.attributeChangedCallback(name, previous, next);
2473
+ }
2474
+ get value() {
2475
+ return this.instance?.value ?? this.saved ?? null;
2476
+ }
2477
+ set value(next) {
2478
+ this.setValue(next);
2479
+ }
2480
+ setValue(value, notify = false) {
2481
+ if (this.instance) this.instance.setValue(value, notify);
2482
+ else this.saved = value;
2483
+ }
2484
+ reset(notify = false) {
2485
+ this.instance?.reset(notify);
2486
+ }
2487
+ };
2488
+ var defineRadioGroup = () => defineElement("mk-radio-group", MkRadioGroupElement);
2489
+
2490
+ // src/components/equalizer-slider/element.ts
2491
+ var MkEqualizerSliderElement = class extends MkElement {
2492
+ static options = { "min": "number", "max": "number", "step": "number", "value": "number", "label": "string", "name": "string", "disabled": "boolean", "error": "string", "waveform": "json", "bars": "number" };
2493
+ baseline;
2494
+ saved;
2495
+ create(options) {
2496
+ const created = createEqualizerSlider(this, { ...options, value: this.saved !== void 0 ? this.saved : options.value, defaultValue: this.baseline });
2497
+ if (this.baseline === void 0) this.baseline = created.value;
2498
+ this.saved = void 0;
2499
+ return created;
2500
+ }
2501
+ disconnectedCallback() {
2502
+ this.saved = this.instance?.value;
2503
+ super.disconnectedCallback();
2504
+ }
2505
+ attributeChangedCallback(name, previous, next) {
2506
+ if (previous === next) return;
2507
+ if (name === "value" && (!this.instance || !this.isConnected)) {
2508
+ this.saved = next === null ? this.baseline ?? 60 : Number.isFinite(Number(next)) ? Number(next) : this.baseline ?? 60;
2509
+ return;
2510
+ }
2511
+ if (!this.instance || !this.isConnected) return;
2512
+ if (name === "value") {
2513
+ const parsed = next === null ? this.baseline ?? 60 : Number(next);
2514
+ this.instance.setValue(parsed, false);
2515
+ return;
2516
+ }
2517
+ this.saved = this.instance.value;
2518
+ super.attributeChangedCallback(name, previous, next);
2519
+ }
2520
+ get value() {
2521
+ return this.instance?.value ?? this.saved ?? 60;
2522
+ }
2523
+ set value(next) {
2524
+ this.setValue(next);
2525
+ }
2526
+ setValue(value, notify = false) {
2527
+ if (this.instance) this.instance.setValue(value, notify);
2528
+ else this.saved = value;
2529
+ }
2530
+ reset(notify = false) {
2531
+ this.instance?.reset(notify);
2532
+ }
2533
+ };
2534
+ var defineEqualizerSlider = () => defineElement("mk-equalizer-slider", MkEqualizerSliderElement);
2535
+
2536
+ // src/components/temperature-slider/element.ts
2537
+ var MkTemperatureSliderElement = class extends MkElement {
2538
+ static options = { "min": "number", "max": "number", "step": "number", "value": "number", "label": "string", "name": "string", "disabled": "boolean", "error": "string", "unit": "string" };
2539
+ baseline;
2540
+ saved;
2541
+ syncing = false;
2542
+ create(options) {
2543
+ const created = createTemperatureSlider(this, { ...options, value: this.saved !== void 0 ? this.saved : options.value, defaultValue: this.baseline });
2544
+ if (this.baseline === void 0) this.baseline = created.value;
2545
+ this.saved = void 0;
2546
+ return created;
2547
+ }
2548
+ disconnectedCallback() {
2549
+ this.saved = this.instance?.value;
2550
+ super.disconnectedCallback();
2551
+ }
2552
+ attributeChangedCallback(name, previous, next) {
2553
+ if (previous === next || this.syncing) return;
2554
+ if (name === "value" && (!this.instance || !this.isConnected)) {
2555
+ this.saved = next === null ? this.baseline ?? 22 : Number.isFinite(Number(next)) ? Number(next) : this.baseline ?? 22;
2556
+ return;
2557
+ }
2558
+ if (!this.instance || !this.isConnected) return;
2559
+ if (name === "value") {
2560
+ const parsed = next === null ? this.baseline ?? 22 : Number(next);
2561
+ this.instance.setValue(parsed, false);
2562
+ return;
2563
+ }
2564
+ this.saved = this.instance.value;
2565
+ super.attributeChangedCallback(name, previous, next);
2566
+ }
2567
+ get value() {
2568
+ return this.instance?.value ?? this.saved ?? 22;
2569
+ }
2570
+ set value(next) {
2571
+ this.setValue(next);
2572
+ }
2573
+ setValue(value, notify = false) {
2574
+ if (this.instance) this.instance.setValue(value, notify);
2575
+ else this.saved = value;
2576
+ }
2577
+ reset(notify = false) {
2578
+ this.instance?.reset(notify);
2579
+ }
2580
+ get unit() {
2581
+ return this.instance?.unit ?? (this.getAttribute("unit") === "F" ? "F" : "C");
2582
+ }
2583
+ /** Converts in place and glides; the unit, min and max attributes follow without remounting. */
2584
+ setUnit(unit, notify = false) {
2585
+ if (!this.instance) {
2586
+ this.setAttribute("unit", unit);
2587
+ return;
2588
+ }
2589
+ this.instance.setUnit(unit, {}, notify);
2590
+ this.syncing = true;
2591
+ try {
2592
+ this.setAttribute("unit", this.instance.unit);
2593
+ for (const name of ["min", "max"]) this.removeAttribute(name);
2594
+ } finally {
2595
+ this.syncing = false;
2596
+ }
2597
+ }
2598
+ };
2599
+ var defineTemperatureSlider = () => defineElement("mk-temperature-slider", MkTemperatureSliderElement);
2600
+
2601
+ // src/components/rating-scale/element.ts
2602
+ var MkRatingScaleElement = class extends MkElement {
2603
+ static options = { "min": "number", "max": "number", "value": "number", "variant": "string", "labels": "json", "label": "string", "name": "string", "disabled": "boolean", "required": "boolean", "error": "string" };
2604
+ baseline;
2605
+ saved;
2606
+ create(options) {
2607
+ const created = createRatingScale(this, { ...options, value: this.saved !== void 0 ? this.saved : options.value, defaultValue: this.baseline });
2608
+ if (this.baseline === void 0) this.baseline = created.value;
2609
+ this.saved = void 0;
2610
+ return created;
2611
+ }
2612
+ disconnectedCallback() {
2613
+ this.saved = this.instance?.value;
2614
+ super.disconnectedCallback();
2615
+ }
2616
+ attributeChangedCallback(name, previous, next) {
2617
+ if (previous === next) return;
2618
+ if (name === "value" && (!this.instance || !this.isConnected)) {
2619
+ this.saved = next === null ? this.baseline ?? null : Number.isFinite(Number(next)) ? Number(next) : this.baseline ?? null;
2620
+ return;
2621
+ }
2622
+ if (!this.instance || !this.isConnected) return;
2623
+ if (name === "value") {
2624
+ const parsed = next === null ? this.baseline ?? null : Number(next);
2625
+ this.instance.setValue(parsed, false);
2626
+ return;
2627
+ }
2628
+ this.saved = this.instance.value;
2629
+ super.attributeChangedCallback(name, previous, next);
2630
+ }
2631
+ get value() {
2632
+ return this.instance?.value ?? this.saved ?? null;
2633
+ }
2634
+ set value(next) {
2635
+ this.setValue(next);
2636
+ }
2637
+ setValue(value, notify = false) {
2638
+ if (this.instance) this.instance.setValue(value, notify);
2639
+ else this.saved = value;
2640
+ }
2641
+ reset(notify = false) {
2642
+ this.instance?.reset(notify);
2643
+ }
2644
+ };
2645
+ var defineRatingScale = () => defineElement("mk-rating-scale", MkRatingScaleElement);
2646
+
2647
+ // src/components/notification-stack/element.ts
2648
+ var MkNotificationStackElement = class extends MkElement {
2649
+ static options = { "items": "json", "expanded": "boolean", "direction": "string", "duration": "number", "disabled": "boolean", "label": "string", "labels": "json" };
2650
+ create(options) {
2651
+ return createNotificationStack(this, options);
2652
+ }
2653
+ setOptions(options) {
2654
+ this.instance?.setOptions(options);
2655
+ }
2656
+ push(item) {
2657
+ this.instance?.push(item);
2658
+ }
2659
+ dismiss(id) {
2660
+ this.instance?.dismiss(id);
2661
+ }
2662
+ clear() {
2663
+ this.instance?.clear();
2664
+ }
2665
+ expand() {
2666
+ this.instance?.expand();
2667
+ }
2668
+ collapse() {
2669
+ this.instance?.collapse();
2670
+ }
2671
+ toggle() {
2672
+ this.instance?.toggle();
2673
+ }
2674
+ get expanded() {
2675
+ return this.instance?.expanded ?? false;
2676
+ }
2677
+ set expanded(value) {
2678
+ this.instance?.setOptions({ expanded: value });
2679
+ }
2680
+ get items() {
2681
+ return [...this.instance?.items ?? []];
2682
+ }
2683
+ set items(value) {
2684
+ this.instance?.setOptions({ items: value });
2685
+ }
2686
+ attributeChangedCallback(name, previous, next) {
2687
+ if (previous === next || !this.isConnected || !this.instance) return;
2688
+ const option = name.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
2689
+ const defaults = { "items": [], "expanded": false, "direction": "down", "duration": 6e3, "disabled": false, "label": "Notificaciones", "labels": {} };
2690
+ this.instance.setOptions({ [option]: this.options[option] ?? defaults[option] });
2691
+ }
2692
+ };
2693
+ var defineNotificationStack = () => defineElement("mk-notification-stack", MkNotificationStackElement);
2694
+
2695
+ // src/components/bento-grid/element.ts
2696
+ var MkBentoGridElement = class extends MkElement {
2697
+ static options = { "columns": "number", "gap": "number", "filter": "string", "duration": "number" };
2698
+ create(options) {
2699
+ return createBentoGrid(this, options);
2700
+ }
2701
+ setOptions(options) {
2702
+ this.instance?.setOptions(options);
2703
+ }
2704
+ refresh() {
2705
+ this.instance?.refresh();
2706
+ }
2707
+ setFilter(filter) {
2708
+ this.instance?.setFilter(filter);
2709
+ }
2710
+ reorder(keys) {
2711
+ this.instance?.reorder(keys);
2712
+ }
2713
+ mutate(change) {
2714
+ this.instance?.mutate(change);
2715
+ }
2716
+ get filter() {
2717
+ return this.instance?.filter ?? null;
2718
+ }
2719
+ get keys() {
2720
+ return this.instance?.keys ?? [];
2721
+ }
2722
+ attributeChangedCallback(name, previous, next) {
2723
+ if (previous === next || !this.isConnected || !this.instance) return;
2724
+ const option = name.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
2725
+ const defaults = { "columns": 3, "gap": 12, "filter": null, "duration": 0.55 };
2726
+ this.instance.setOptions({ [option]: this.options[option] ?? defaults[option] });
2727
+ }
2728
+ };
2729
+ var defineBentoGrid = () => defineElement("mk-bento-grid", MkBentoGridElement);
2730
+
2731
+ // src/components/scroll-preview-dock/element.ts
2732
+ var MkScrollPreviewDockElement = class extends MkElement {
2733
+ static options = { "items": "json", "scroller": "string", "offset": "number", "label": "string", "disabled": "boolean" };
2734
+ create(options) {
2735
+ return createScrollPreviewDock(this, options);
2736
+ }
2737
+ setOptions(options) {
2738
+ this.instance?.setOptions(options);
2739
+ }
2740
+ select(id) {
2741
+ this.instance?.select(id);
2742
+ }
2743
+ update() {
2744
+ this.instance?.update();
2745
+ }
2746
+ get value() {
2747
+ return this.instance?.value ?? "";
2748
+ }
2749
+ set items(value) {
2750
+ this.instance?.setOptions({ items: value });
2751
+ }
2752
+ attributeChangedCallback(name, previous, next) {
2753
+ if (previous === next || !this.isConnected || !this.instance) return;
2754
+ const option = name.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
2755
+ const defaults = { "items": [], "scroller": null, "offset": 0, "label": "Explorar secciones", "disabled": false };
2756
+ this.instance.setOptions({ [option]: this.options[option] ?? defaults[option] });
2757
+ }
2758
+ };
2759
+ var defineScrollPreviewDock = () => defineElement("mk-scroll-preview-dock", MkScrollPreviewDockElement);
2760
+
2761
+ // src/components/sticky-header/element.ts
2762
+ var MkStickyHeaderElement = class extends MkElement {
2763
+ static options = { "scroller": "string", "expandedHeight": "number", "compactHeight": "number", "threshold": "number", "range": "number", "top": "number", "disabled": "boolean" };
2764
+ create(options) {
2765
+ return createStickyHeader(this, options);
2766
+ }
2767
+ setOptions(options) {
2768
+ this.instance?.setOptions(options);
2769
+ }
2770
+ update() {
2771
+ this.instance?.update();
2772
+ }
2773
+ get compact() {
2774
+ return this.instance?.compact ?? false;
2775
+ }
2776
+ get progress() {
2777
+ return this.instance?.progress ?? 0;
2778
+ }
2779
+ attributeChangedCallback(name, previous, next) {
2780
+ if (previous === next || !this.isConnected || !this.instance) return;
2781
+ const option = name.replace(/-([a-z])/g, (_, letter) => letter.toUpperCase());
2782
+ const defaults = { "scroller": null, "expandedHeight": 104, "compactHeight": 64, "threshold": 8, "range": 96, "top": 0, "disabled": false };
2783
+ this.instance.setOptions({ [option]: this.options[option] ?? defaults[option] });
2784
+ }
2785
+ };
2786
+ var defineStickyHeader = () => defineElement("mk-sticky-header", MkStickyHeaderElement);
2787
+
2788
+ // src/components/handwriting-text/element.ts
2789
+ var MkHandwritingTextElement = class extends MkElement {
2790
+ static options = { text: "string", duration: "number", autoplay: "boolean" };
2791
+ retained;
2792
+ create(options) {
2793
+ return createHandwritingText(this, { ...options, ...this.retained === void 0 ? {} : { text: this.retained } });
2794
+ }
2795
+ disconnectedCallback() {
2796
+ this.retained = this.instance?.text ?? this.retained;
2797
+ super.disconnectedCallback();
2798
+ }
2799
+ attributeChangedCallback(name, previous, next) {
2800
+ if (previous !== next) this.retained = name === "text" ? void 0 : this.instance?.text ?? this.retained;
2801
+ super.attributeChangedCallback(name, previous, next);
2802
+ }
2803
+ };
2804
+ var defineHandwritingText = () => defineElement("mk-handwriting-text", MkHandwritingTextElement);
2805
+
2806
+ // src/components/particle-button/element.ts
2807
+ var MkParticleButtonElement = class extends MkElement {
2808
+ static options = { label: "string", count: "number", distance: "number" };
2809
+ create(options) {
2810
+ return createParticleButton(this, options);
2811
+ }
2812
+ attributeChangedCallback(name, previous, next) {
2813
+ const focused = this.contains(document.activeElement);
2814
+ super.attributeChangedCallback(name, previous, next);
2815
+ if (focused) this.querySelector("button")?.focus({ preventScroll: true });
2816
+ }
2817
+ };
2818
+ var defineParticleButton = () => defineElement("mk-particle-button", MkParticleButtonElement);
2819
+
2820
+ // src/components/magnetize-button/element.ts
2821
+ var MkMagnetizeButtonElement = class extends MkElement {
2822
+ static options = { label: "string", count: "number", reach: "number" };
2823
+ create(options) {
2824
+ return createMagnetizeButton(this, options);
2825
+ }
2826
+ attributeChangedCallback(name, previous, next) {
2827
+ const focused = this.contains(document.activeElement);
2828
+ super.attributeChangedCallback(name, previous, next);
2829
+ if (focused) this.querySelector("button")?.focus({ preventScroll: true });
2830
+ }
2831
+ };
2832
+ var defineMagnetizeButton = () => defineElement("mk-magnetize-button", MkMagnetizeButtonElement);
2833
+
2834
+ // src/components/badge-button/element.ts
2835
+ var MkBadgeButtonElement = class extends MkElement {
2836
+ static options = { label: "string", count: "number", step: "number", hideZero: "boolean", max: "number" };
2837
+ retained;
2838
+ create(options) {
2839
+ return createBadgeButton(this, { ...options, ...this.retained === void 0 ? {} : { count: this.retained } });
2840
+ }
2841
+ disconnectedCallback() {
2842
+ this.retained = this.instance?.count ?? this.retained;
2843
+ super.disconnectedCallback();
2844
+ }
2845
+ attributeChangedCallback(name, previous, next) {
2846
+ const focused = this.contains(document.activeElement);
2847
+ if (previous !== next) this.retained = name === "count" ? void 0 : this.instance?.count ?? this.retained;
2848
+ super.attributeChangedCallback(name, previous, next);
2849
+ if (focused) this.querySelector("button")?.focus({ preventScroll: true });
2850
+ }
2851
+ };
2852
+ var defineBadgeButton = () => defineElement("mk-badge-button", MkBadgeButtonElement);
2853
+
2854
+ // src/components/morphing-page-dots/element.ts
2855
+ var MkMorphingPageDotsElement = class extends MkElement {
2856
+ static options = { count: "number", value: "number", label: "string", labels: "json", pageIds: "json", disabled: "boolean" };
2857
+ retained;
2858
+ create(options) {
2859
+ return createMorphingPageDots(this, { ...options, ...this.retained === void 0 ? {} : { value: this.retained } });
2860
+ }
2861
+ disconnectedCallback() {
2862
+ this.retained = this.instance?.value ?? this.retained;
2863
+ super.disconnectedCallback();
2864
+ }
2865
+ attributeChangedCallback(name, previous, next) {
2866
+ const focusIndex = [...this.querySelectorAll("button")].findIndex((button) => button === document.activeElement);
2867
+ if (previous !== next) this.retained = name === "value" ? void 0 : this.instance?.value ?? this.retained;
2868
+ super.attributeChangedCallback(name, previous, next);
2869
+ if (focusIndex >= 0) {
2870
+ const buttons = this.querySelectorAll("button");
2871
+ buttons[Math.min(focusIndex, buttons.length - 1)]?.focus({ preventScroll: true });
2872
+ }
2873
+ }
2874
+ };
2875
+ var defineMorphingPageDots = () => defineElement("mk-morphing-page-dots", MkMorphingPageDotsElement);
2876
+
2877
+ // src/components/not-found/element.ts
2878
+ var MkNotFoundElement = class extends MkElement {
2879
+ static options = { brand: "string", title: "string", description: "string", homeHref: "string", homeLabel: "string", backLabel: "string", showBack: "boolean" };
2880
+ create(options) {
2881
+ return createNotFound(this, options);
2882
+ }
2883
+ attributeChangedCallback(name, previous, next) {
2884
+ const active = document.activeElement;
2885
+ const focused = this.contains(active);
2886
+ const back = active?.tagName === "BUTTON";
2887
+ super.attributeChangedCallback(name, previous, next);
2888
+ if (focused) (this.querySelector(back ? "button:not(:disabled)" : "a") ?? this.querySelector("a"))?.focus({ preventScroll: true });
2889
+ }
2890
+ };
2891
+ var defineNotFound = () => defineElement("mk-not-found", MkNotFoundElement);
2892
+
2893
+ // src/components/scroll-area/element.ts
2894
+ var flagOrNumber = (raw) => {
2895
+ if (raw === void 0) return void 0;
2896
+ const text = String(raw).trim();
2897
+ if (text === "" || text === "true") return true;
2898
+ if (text === "false") return false;
2899
+ const value = Number(text);
2900
+ return Number.isFinite(value) ? value : true;
2901
+ };
2902
+ var MkScrollAreaElement = class extends MkElement {
2903
+ static options = {
2904
+ visibility: "string",
2905
+ axis: "string",
2906
+ idle: "number",
2907
+ fade: "string",
2908
+ backToTop: "string",
2909
+ label: "string",
2910
+ focusable: "boolean",
2911
+ decorative: "boolean"
2912
+ };
2913
+ create(options) {
2914
+ return createScrollArea(this, { ...options, fade: flagOrNumber(options.fade), backToTop: flagOrNumber(options.backToTop) });
2915
+ }
2916
+ };
2917
+ var defineScrollArea = () => defineElement("mk-scroll-area", MkScrollAreaElement);
2918
+
2362
2919
  // src/elements/index.ts
2363
2920
  var ELEMENTS = {
2364
2921
  "mk-theme-picker": MkThemePickerElement,
@@ -2445,7 +3002,23 @@ var ELEMENTS = {
2445
3002
  "mk-waveform-player": MkWaveformPlayerElement,
2446
3003
  "mk-voice-message-bubble": MkVoiceMessageBubbleElement,
2447
3004
  "mk-drilldown-menu": MkDrilldownMenuElement,
2448
- "mk-wheel-picker": MkWheelPickerElement
3005
+ "mk-wheel-picker": MkWheelPickerElement,
3006
+ "mk-stepper": MkStepperElement,
3007
+ "mk-radio-group": MkRadioGroupElement,
3008
+ "mk-equalizer-slider": MkEqualizerSliderElement,
3009
+ "mk-temperature-slider": MkTemperatureSliderElement,
3010
+ "mk-rating-scale": MkRatingScaleElement,
3011
+ "mk-notification-stack": MkNotificationStackElement,
3012
+ "mk-bento-grid": MkBentoGridElement,
3013
+ "mk-scroll-preview-dock": MkScrollPreviewDockElement,
3014
+ "mk-sticky-header": MkStickyHeaderElement,
3015
+ "mk-handwriting-text": MkHandwritingTextElement,
3016
+ "mk-particle-button": MkParticleButtonElement,
3017
+ "mk-magnetize-button": MkMagnetizeButtonElement,
3018
+ "mk-badge-button": MkBadgeButtonElement,
3019
+ "mk-morphing-page-dots": MkMorphingPageDotsElement,
3020
+ "mk-not-found": MkNotFoundElement,
3021
+ "mk-scroll-area": MkScrollAreaElement
2449
3022
  // new-component:entries
2450
3023
  };
2451
3024
  function defineElements(names = Object.keys(ELEMENTS)) {
@@ -2456,6 +3029,8 @@ export {
2456
3029
  MkActivityFeedElement,
2457
3030
  MkAddToCartElement,
2458
3031
  MkAttachmentElement,
3032
+ MkBadgeButtonElement,
3033
+ MkBentoGridElement,
2459
3034
  MkBidirectionalSliderElement,
2460
3035
  MkBreadcrumbElement,
2461
3036
  MkCalendarElement,
@@ -2481,8 +3056,10 @@ export {
2481
3056
  MkEditableTableElement,
2482
3057
  MkElement,
2483
3058
  MkEmptyStateElement,
3059
+ MkEqualizerSliderElement,
2484
3060
  MkFileExplorerElement,
2485
3061
  MkFilterBuilderElement,
3062
+ MkHandwritingTextElement,
2486
3063
  MkHeatmapChartElement,
2487
3064
  MkHoldConfirmElement,
2488
3065
  MkHoverCardElement,
@@ -2493,12 +3070,17 @@ export {
2493
3070
  MkLikeButtonElement,
2494
3071
  MkLinkPreviewElement,
2495
3072
  MkLoadingButtonElement,
3073
+ MkMagnetizeButtonElement,
2496
3074
  MkMenuElement,
3075
+ MkMorphingPageDotsElement,
2497
3076
  MkMultiSelectElement,
2498
3077
  MkNavElement,
3078
+ MkNotFoundElement,
2499
3079
  MkNotificationBellElement,
3080
+ MkNotificationStackElement,
2500
3081
  MkOrbitMenuElement,
2501
3082
  MkPaginationElement,
3083
+ MkParticleButtonElement,
2502
3084
  MkPasswordStrengthElement,
2503
3085
  MkPieChartElement,
2504
3086
  MkPillButtonElement,
@@ -2508,13 +3090,17 @@ export {
2508
3090
  MkQuestionnaireElement,
2509
3091
  MkRadarChartElement,
2510
3092
  MkRadialChartElement,
3093
+ MkRadioGroupElement,
2511
3094
  MkRangeCalendarElement,
2512
3095
  MkRangeSliderElement,
3096
+ MkRatingScaleElement,
2513
3097
  MkResizablePanelElement,
2514
3098
  MkRichTextEditorElement,
2515
3099
  MkSankeyChartElement,
2516
3100
  MkScratchCardElement,
3101
+ MkScrollAreaElement,
2517
3102
  MkScrollIslandElement,
3103
+ MkScrollPreviewDockElement,
2518
3104
  MkSelectElement,
2519
3105
  MkSignaturePadElement,
2520
3106
  MkSkeletonElement,
@@ -2522,10 +3108,13 @@ export {
2522
3108
  MkSplitViewElement,
2523
3109
  MkStarRatingElement,
2524
3110
  MkStatCardElement,
3111
+ MkStepperElement,
2525
3112
  MkStepsElement,
3113
+ MkStickyHeaderElement,
2526
3114
  MkStudioDockElement,
2527
3115
  MkSwipeActionsElement,
2528
3116
  MkTagInputElement,
3117
+ MkTemperatureSliderElement,
2529
3118
  MkThemePickerElement,
2530
3119
  MkTimeFieldElement,
2531
3120
  MkTimelineElement,
@@ -2540,11 +3129,27 @@ export {
2540
3129
  MkWaveformPlayerElement,
2541
3130
  MkWheelPickerElement,
2542
3131
  SafeHTMLElement,
3132
+ defineBadgeButton,
3133
+ defineBentoGrid,
2543
3134
  defineDrilldownMenu,
2544
3135
  defineElement,
2545
3136
  defineElements,
3137
+ defineEqualizerSlider,
3138
+ defineHandwritingText,
3139
+ defineMagnetizeButton,
3140
+ defineMorphingPageDots,
3141
+ defineNotFound,
3142
+ defineNotificationStack,
3143
+ defineParticleButton,
3144
+ defineRadioGroup,
3145
+ defineRatingScale,
3146
+ defineScrollArea,
3147
+ defineScrollPreviewDock,
2546
3148
  defineSignaturePad,
3149
+ defineStepper,
3150
+ defineStickyHeader,
2547
3151
  defineStudioDock,
3152
+ defineTemperatureSlider,
2548
3153
  defineTrailer,
2549
3154
  defineVoiceMessageBubble,
2550
3155
  defineWaveformPlayer,