@yewdiel21/motion-kit 0.9.1 → 0.14.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 (458) hide show
  1. package/README.md +72 -0
  2. package/dist/auto/index.d.ts +72 -3
  3. package/dist/auto/index.js +139 -3
  4. package/dist/auto/index.js.map +1 -1
  5. package/dist/{chunk-BFC27F2G.js → chunk-6P4P7NU6.js} +2 -218
  6. package/dist/chunk-6P4P7NU6.js.map +1 -0
  7. package/dist/chunk-CU6SXW3E.js +20334 -0
  8. package/dist/chunk-CU6SXW3E.js.map +1 -0
  9. package/dist/{chunk-XDWBVFHQ.js → chunk-EY4BJKC4.js} +1203 -29
  10. package/dist/chunk-EY4BJKC4.js.map +1 -0
  11. package/dist/chunk-QP4QJOEN.js +72 -0
  12. package/dist/chunk-QP4QJOEN.js.map +1 -0
  13. package/dist/css/components/activity-feed.css +240 -0
  14. package/dist/css/components/attachment.css +266 -0
  15. package/dist/css/components/breadcrumb.css +110 -0
  16. package/dist/css/components/calendar.css +159 -0
  17. package/dist/css/components/chart-tooltip.css +168 -0
  18. package/dist/css/components/chart.css +296 -0
  19. package/dist/css/components/code-block.css +264 -0
  20. package/dist/css/components/color-area.css +82 -0
  21. package/dist/css/components/color-field.css +67 -0
  22. package/dist/css/components/color-picker.css +131 -0
  23. package/dist/css/components/color-slider.css +113 -0
  24. package/dist/css/components/command-search.css +252 -0
  25. package/dist/css/components/context-menu.css +23 -0
  26. package/dist/css/components/credit-card.css +288 -0
  27. package/dist/css/components/data-table.css +591 -0
  28. package/dist/css/components/date-range-picker.css +168 -0
  29. package/dist/css/components/date-time-picker.css +178 -0
  30. package/dist/css/components/drawer.css +58 -0
  31. package/dist/css/components/editable-table.css +201 -0
  32. package/dist/css/components/empty-state.css +61 -0
  33. package/dist/css/components/file-explorer.css +633 -0
  34. package/dist/css/components/filter-builder.css +232 -0
  35. package/dist/css/components/hold-confirm.css +87 -0
  36. package/dist/css/components/hover-card.css +20 -0
  37. package/dist/css/components/image-preview.css +195 -0
  38. package/dist/css/components/input-otp.css +10 -0
  39. package/dist/css/components/json-viewer.css +272 -0
  40. package/dist/css/components/like-button.css +78 -0
  41. package/dist/css/components/link-preview.css +275 -0
  42. package/dist/css/components/loading-button.css +77 -0
  43. package/dist/css/components/multi-select.css +267 -0
  44. package/dist/css/components/notification-bell.css +127 -0
  45. package/dist/css/components/pagination.css +11 -0
  46. package/dist/css/components/password-strength.css +183 -0
  47. package/dist/css/components/popover.css +25 -0
  48. package/dist/css/components/progress.css +140 -0
  49. package/dist/css/components/quantity.css +16 -0
  50. package/dist/css/components/questionnaire.css +217 -0
  51. package/dist/css/components/range-calendar.css +186 -0
  52. package/dist/css/components/range-slider.css +192 -0
  53. package/dist/css/components/resizable-panel.css +243 -0
  54. package/dist/css/components/rich-text-editor.css +284 -0
  55. package/dist/css/components/scratch-card.css +75 -0
  56. package/dist/css/components/skeleton.css +108 -0
  57. package/dist/css/components/slot-picker.css +126 -0
  58. package/dist/css/components/split-view.css +19 -0
  59. package/dist/css/components/star-rating.css +80 -0
  60. package/dist/css/components/stat-card.css +164 -0
  61. package/dist/css/components/studio-dock.css +35 -0
  62. package/dist/css/components/swipe-actions.css +105 -0
  63. package/dist/css/components/tag-input.css +244 -0
  64. package/dist/css/components/time-field.css +88 -0
  65. package/dist/css/components/timeline.css +219 -0
  66. package/dist/css/components/tooltip.css +79 -0
  67. package/dist/css/components/trailer.css +37 -0
  68. package/dist/css/components/tree-view.css +210 -0
  69. package/dist/css/components/virtual-list.css +195 -0
  70. package/dist/css/controls.css +65 -0
  71. package/dist/css/tokens.css +185 -181
  72. package/dist/elements/index.d.ts +742 -5
  73. package/dist/elements/index.js +1527 -8
  74. package/dist/elements/index.js.map +1 -1
  75. package/dist/{engine-GDGwQnJE.d.ts → engine-Cn6IhE3z.d.ts} +1 -1
  76. package/dist/engine-QECQnGz1.d.ts +33 -0
  77. package/dist/index.css +10113 -181
  78. package/dist/index.d.ts +89 -5
  79. package/dist/index.js +285 -9
  80. package/dist/index.js.map +1 -1
  81. package/dist/react/index.d.ts +678 -23
  82. package/dist/react/index.js +2389 -7
  83. package/dist/react/index.js.map +1 -1
  84. package/dist/{reduced-B98f8LPs.d.ts → reduced-BBUusld6.d.ts} +206 -2
  85. package/dist/reveal-DEvp6U6T.d.ts +2381 -0
  86. package/dist/{store-pHiUvxP8.d.ts → store-DjkTBX7f.d.ts} +2 -2
  87. package/package.json +1 -1
  88. package/registry.json +583 -104
  89. package/skills/motion-kit/SKILL.md +209 -189
  90. package/src/auto/auto-init.ts +136 -0
  91. package/src/components/activity-feed/README.md +56 -0
  92. package/src/components/activity-feed/activity-feed.css +239 -0
  93. package/src/components/activity-feed/element.ts +36 -0
  94. package/src/components/activity-feed/engine.ts +351 -0
  95. package/src/components/activity-feed/react.tsx +32 -0
  96. package/src/components/attachment/README.md +27 -0
  97. package/src/components/attachment/attachment.css +265 -0
  98. package/src/components/attachment/element.ts +50 -0
  99. package/src/components/attachment/engine.ts +469 -0
  100. package/src/components/attachment/react.tsx +65 -0
  101. package/src/components/breadcrumb/README.md +38 -0
  102. package/src/components/breadcrumb/breadcrumb.css +109 -0
  103. package/src/components/breadcrumb/element.ts +27 -0
  104. package/src/components/breadcrumb/engine.ts +249 -0
  105. package/src/components/breadcrumb/react.tsx +30 -0
  106. package/src/components/calendar/README.md +82 -0
  107. package/src/components/calendar/calendar.css +158 -0
  108. package/src/components/calendar/element.ts +27 -0
  109. package/src/components/calendar/engine.ts +412 -0
  110. package/src/components/calendar/react.tsx +69 -0
  111. package/src/components/chart/README.md +24 -0
  112. package/src/components/chart/chart.css +295 -0
  113. package/src/components/chart/element.ts +41 -0
  114. package/src/components/chart/engine.ts +811 -0
  115. package/src/components/chart/react.tsx +50 -0
  116. package/src/components/chart-tooltip/README.md +53 -0
  117. package/src/components/chart-tooltip/chart-tooltip.css +167 -0
  118. package/src/components/chart-tooltip/element.ts +37 -0
  119. package/src/components/chart-tooltip/engine.ts +442 -0
  120. package/src/components/chart-tooltip/react.tsx +47 -0
  121. package/src/components/code-block/README.md +19 -0
  122. package/src/components/code-block/code-block.css +263 -0
  123. package/src/components/code-block/element.ts +34 -0
  124. package/src/components/code-block/engine.ts +254 -0
  125. package/src/components/code-block/highlight.ts +244 -0
  126. package/src/components/code-block/react.tsx +94 -0
  127. package/src/components/color-area/README.md +50 -0
  128. package/src/components/color-area/color-area.css +81 -0
  129. package/src/components/color-area/element.ts +26 -0
  130. package/src/components/color-area/engine.ts +246 -0
  131. package/src/components/color-area/react.tsx +42 -0
  132. package/src/components/color-field/README.md +43 -0
  133. package/src/components/color-field/color-field.css +66 -0
  134. package/src/components/color-field/element.ts +26 -0
  135. package/src/components/color-field/engine.ts +174 -0
  136. package/src/components/color-field/react.tsx +42 -0
  137. package/src/components/color-picker/README.md +45 -0
  138. package/src/components/color-picker/color-picker.css +130 -0
  139. package/src/components/color-picker/element.ts +45 -0
  140. package/src/components/color-picker/engine.ts +314 -0
  141. package/src/components/color-picker/react.tsx +47 -0
  142. package/src/components/color-slider/README.md +55 -0
  143. package/src/components/color-slider/color-slider.css +112 -0
  144. package/src/components/color-slider/element.ts +26 -0
  145. package/src/components/color-slider/engine.ts +234 -0
  146. package/src/components/color-slider/react.tsx +45 -0
  147. package/src/components/command-search/README.md +15 -0
  148. package/src/components/command-search/command-search.css +251 -0
  149. package/src/components/command-search/element.ts +36 -0
  150. package/src/components/command-search/engine.ts +356 -0
  151. package/src/components/command-search/match.ts +53 -0
  152. package/src/components/command-search/react.tsx +66 -0
  153. package/src/components/context-menu/README.md +31 -0
  154. package/src/components/context-menu/context-menu.css +22 -0
  155. package/src/components/context-menu/element.ts +40 -0
  156. package/src/components/context-menu/engine.ts +153 -0
  157. package/src/components/context-menu/react.tsx +57 -0
  158. package/src/components/credit-card/README.md +20 -0
  159. package/src/components/credit-card/card.ts +77 -0
  160. package/src/components/credit-card/credit-card.css +287 -0
  161. package/src/components/credit-card/element.ts +33 -0
  162. package/src/components/credit-card/engine.ts +410 -0
  163. package/src/components/credit-card/react.tsx +36 -0
  164. package/src/components/data-table/README.md +83 -0
  165. package/src/components/data-table/data-table.css +590 -0
  166. package/src/components/data-table/element.ts +54 -0
  167. package/src/components/data-table/engine.ts +1059 -0
  168. package/src/components/data-table/react.tsx +94 -0
  169. package/src/components/date-range-picker/README.md +51 -0
  170. package/src/components/date-range-picker/date-range-picker.css +167 -0
  171. package/src/components/date-range-picker/element.ts +52 -0
  172. package/src/components/date-range-picker/engine.ts +352 -0
  173. package/src/components/date-range-picker/react.tsx +57 -0
  174. package/src/components/date-time-picker/README.md +48 -0
  175. package/src/components/date-time-picker/date-time-picker.css +177 -0
  176. package/src/components/date-time-picker/element.ts +47 -0
  177. package/src/components/date-time-picker/engine.ts +350 -0
  178. package/src/components/date-time-picker/react.tsx +54 -0
  179. package/src/components/dialog/README.md +103 -102
  180. package/src/components/dialog/element.ts +123 -118
  181. package/src/components/dialog/engine.ts +449 -432
  182. package/src/components/drawer/README.md +28 -0
  183. package/src/components/drawer/drawer.css +57 -0
  184. package/src/components/drawer/element.ts +21 -0
  185. package/src/components/drawer/engine.ts +56 -0
  186. package/src/components/drawer/react.tsx +85 -0
  187. package/src/components/editable-table/README.md +67 -0
  188. package/src/components/editable-table/editable-table.css +200 -0
  189. package/src/components/editable-table/element.ts +45 -0
  190. package/src/components/editable-table/engine.ts +775 -0
  191. package/src/components/editable-table/react.tsx +79 -0
  192. package/src/components/empty-state/README.md +41 -0
  193. package/src/components/empty-state/element.ts +23 -0
  194. package/src/components/empty-state/empty-state.css +60 -0
  195. package/src/components/empty-state/engine.ts +232 -0
  196. package/src/components/empty-state/react.tsx +34 -0
  197. package/src/components/file-explorer/README.md +67 -0
  198. package/src/components/file-explorer/element.ts +39 -0
  199. package/src/components/file-explorer/engine.ts +1307 -0
  200. package/src/components/file-explorer/file-explorer.css +632 -0
  201. package/src/components/file-explorer/react.tsx +77 -0
  202. package/src/components/filter-builder/README.md +47 -0
  203. package/src/components/filter-builder/element.ts +34 -0
  204. package/src/components/filter-builder/engine.ts +365 -0
  205. package/src/components/filter-builder/filter-builder.css +231 -0
  206. package/src/components/filter-builder/react.tsx +36 -0
  207. package/src/components/hold-confirm/README.md +13 -0
  208. package/src/components/hold-confirm/element.ts +24 -0
  209. package/src/components/hold-confirm/engine.ts +216 -0
  210. package/src/components/hold-confirm/hold-confirm.css +86 -0
  211. package/src/components/hold-confirm/react.tsx +28 -0
  212. package/src/components/hover-card/README.md +20 -0
  213. package/src/components/hover-card/element.ts +8 -0
  214. package/src/components/hover-card/engine.ts +131 -0
  215. package/src/components/hover-card/hover-card.css +19 -0
  216. package/src/components/hover-card/react.tsx +19 -0
  217. package/src/components/image-preview/README.md +16 -0
  218. package/src/components/image-preview/element.ts +26 -0
  219. package/src/components/image-preview/engine.ts +325 -0
  220. package/src/components/image-preview/image-preview.css +194 -0
  221. package/src/components/image-preview/react.tsx +43 -0
  222. package/src/components/input-otp/README.md +18 -0
  223. package/src/components/input-otp/element.ts +14 -0
  224. package/src/components/input-otp/engine.ts +106 -0
  225. package/src/components/input-otp/input-otp.css +9 -0
  226. package/src/components/input-otp/react.tsx +21 -0
  227. package/src/components/json-viewer/README.md +56 -0
  228. package/src/components/json-viewer/element.ts +37 -0
  229. package/src/components/json-viewer/engine.ts +440 -0
  230. package/src/components/json-viewer/json-viewer.css +271 -0
  231. package/src/components/json-viewer/react.tsx +56 -0
  232. package/src/components/like-button/README.md +13 -0
  233. package/src/components/like-button/element.ts +47 -0
  234. package/src/components/like-button/engine.ts +145 -0
  235. package/src/components/like-button/like-button.css +77 -0
  236. package/src/components/like-button/react.tsx +39 -0
  237. package/src/components/link-preview/README.md +19 -0
  238. package/src/components/link-preview/element.ts +29 -0
  239. package/src/components/link-preview/engine.ts +192 -0
  240. package/src/components/link-preview/link-preview.css +274 -0
  241. package/src/components/link-preview/react.tsx +101 -0
  242. package/src/components/loading-button/README.md +45 -0
  243. package/src/components/loading-button/element.ts +34 -0
  244. package/src/components/loading-button/engine.ts +201 -0
  245. package/src/components/loading-button/loading-button.css +76 -0
  246. package/src/components/loading-button/react.tsx +43 -0
  247. package/src/components/multi-select/README.md +48 -0
  248. package/src/components/multi-select/element.ts +28 -0
  249. package/src/components/multi-select/engine.ts +294 -0
  250. package/src/components/multi-select/multi-select.css +266 -0
  251. package/src/components/multi-select/react.tsx +39 -0
  252. package/src/components/notification-bell/README.md +14 -0
  253. package/src/components/notification-bell/element.ts +48 -0
  254. package/src/components/notification-bell/engine.ts +202 -0
  255. package/src/components/notification-bell/notification-bell.css +126 -0
  256. package/src/components/notification-bell/react.tsx +57 -0
  257. package/src/components/pagination/README.md +17 -0
  258. package/src/components/pagination/element.ts +14 -0
  259. package/src/components/pagination/engine.ts +102 -0
  260. package/src/components/pagination/pagination.css +10 -0
  261. package/src/components/pagination/react.tsx +22 -0
  262. package/src/components/password-strength/README.md +17 -0
  263. package/src/components/password-strength/element.ts +22 -0
  264. package/src/components/password-strength/engine.ts +212 -0
  265. package/src/components/password-strength/password-strength.css +182 -0
  266. package/src/components/password-strength/react.tsx +36 -0
  267. package/src/components/password-strength/score.ts +62 -0
  268. package/src/components/popover/README.md +44 -0
  269. package/src/components/popover/element.ts +31 -0
  270. package/src/components/popover/engine.ts +114 -0
  271. package/src/components/popover/popover.css +24 -0
  272. package/src/components/popover/react.tsx +50 -0
  273. package/src/components/progress/README.md +17 -0
  274. package/src/components/progress/element.ts +30 -0
  275. package/src/components/progress/engine.ts +173 -0
  276. package/src/components/progress/progress.css +139 -0
  277. package/src/components/progress/react.tsx +35 -0
  278. package/src/components/quantity/README.md +20 -0
  279. package/src/components/quantity/element.ts +14 -0
  280. package/src/components/quantity/engine.ts +85 -0
  281. package/src/components/quantity/quantity.css +15 -0
  282. package/src/components/quantity/react.tsx +21 -0
  283. package/src/components/questionnaire/README.md +32 -0
  284. package/src/components/questionnaire/element.ts +118 -0
  285. package/src/components/questionnaire/engine.ts +255 -0
  286. package/src/components/questionnaire/questionnaire.css +216 -0
  287. package/src/components/questionnaire/react.tsx +140 -0
  288. package/src/components/range-calendar/README.md +58 -0
  289. package/src/components/range-calendar/element.ts +42 -0
  290. package/src/components/range-calendar/engine.ts +390 -0
  291. package/src/components/range-calendar/range-calendar.css +185 -0
  292. package/src/components/range-calendar/react.tsx +56 -0
  293. package/src/components/range-slider/README.md +23 -0
  294. package/src/components/range-slider/element.ts +53 -0
  295. package/src/components/range-slider/engine.ts +316 -0
  296. package/src/components/range-slider/range-slider.css +191 -0
  297. package/src/components/range-slider/react.tsx +66 -0
  298. package/src/components/resizable-panel/README.md +61 -0
  299. package/src/components/resizable-panel/element.ts +36 -0
  300. package/src/components/resizable-panel/engine.ts +551 -0
  301. package/src/components/resizable-panel/react.tsx +74 -0
  302. package/src/components/resizable-panel/resizable-panel.css +242 -0
  303. package/src/components/rich-text-editor/README.md +57 -0
  304. package/src/components/rich-text-editor/element.ts +34 -0
  305. package/src/components/rich-text-editor/engine.ts +673 -0
  306. package/src/components/rich-text-editor/react.tsx +60 -0
  307. package/src/components/rich-text-editor/rich-text-editor.css +283 -0
  308. package/src/components/scratch-card/README.md +15 -0
  309. package/src/components/scratch-card/element.ts +30 -0
  310. package/src/components/scratch-card/engine.ts +257 -0
  311. package/src/components/scratch-card/react.tsx +40 -0
  312. package/src/components/scratch-card/scratch-card.css +74 -0
  313. package/src/components/skeleton/README.md +15 -0
  314. package/src/components/skeleton/element.ts +32 -0
  315. package/src/components/skeleton/engine.ts +104 -0
  316. package/src/components/skeleton/react.tsx +41 -0
  317. package/src/components/skeleton/skeleton.css +107 -0
  318. package/src/components/slot-picker/README.md +68 -0
  319. package/src/components/slot-picker/element.ts +27 -0
  320. package/src/components/slot-picker/engine.ts +412 -0
  321. package/src/components/slot-picker/react.tsx +76 -0
  322. package/src/components/slot-picker/slot-picker.css +125 -0
  323. package/src/components/split-view/README.md +50 -0
  324. package/src/components/split-view/element.ts +34 -0
  325. package/src/components/split-view/engine.ts +114 -0
  326. package/src/components/split-view/react.tsx +63 -0
  327. package/src/components/split-view/split-view.css +18 -0
  328. package/src/components/star-rating/README.md +14 -0
  329. package/src/components/star-rating/element.ts +26 -0
  330. package/src/components/star-rating/engine.ts +217 -0
  331. package/src/components/star-rating/react.tsx +33 -0
  332. package/src/components/star-rating/star-rating.css +79 -0
  333. package/src/components/stat-card/README.md +42 -0
  334. package/src/components/stat-card/element.ts +40 -0
  335. package/src/components/stat-card/engine.ts +283 -0
  336. package/src/components/stat-card/react.tsx +36 -0
  337. package/src/components/stat-card/stat-card.css +163 -0
  338. package/src/components/studio-dock/README.md +44 -0
  339. package/src/components/studio-dock/element.ts +11 -0
  340. package/src/components/studio-dock/engine.ts +212 -0
  341. package/src/components/studio-dock/react.tsx +23 -0
  342. package/src/components/studio-dock/studio-dock.css +34 -0
  343. package/src/components/swipe-actions/README.md +19 -0
  344. package/src/components/swipe-actions/element.ts +26 -0
  345. package/src/components/swipe-actions/engine.ts +260 -0
  346. package/src/components/swipe-actions/react.tsx +80 -0
  347. package/src/components/swipe-actions/swipe-actions.css +104 -0
  348. package/src/components/tag-input/README.md +42 -0
  349. package/src/components/tag-input/element.ts +39 -0
  350. package/src/components/tag-input/engine.ts +313 -0
  351. package/src/components/tag-input/react.tsx +54 -0
  352. package/src/components/tag-input/tag-input.css +243 -0
  353. package/src/components/time-field/README.md +54 -0
  354. package/src/components/time-field/element.ts +38 -0
  355. package/src/components/time-field/engine.ts +110 -0
  356. package/src/components/time-field/react.tsx +45 -0
  357. package/src/components/time-field/time-field.css +87 -0
  358. package/src/components/timeline/README.md +57 -0
  359. package/src/components/timeline/element.ts +31 -0
  360. package/src/components/timeline/engine.ts +300 -0
  361. package/src/components/timeline/react.tsx +59 -0
  362. package/src/components/timeline/timeline.css +218 -0
  363. package/src/components/tooltip/README.md +46 -0
  364. package/src/components/tooltip/element.ts +22 -0
  365. package/src/components/tooltip/engine.ts +288 -0
  366. package/src/components/tooltip/react.tsx +30 -0
  367. package/src/components/tooltip/tooltip.css +78 -0
  368. package/src/components/trailer/README.md +28 -0
  369. package/src/components/trailer/element.ts +13 -0
  370. package/src/components/trailer/engine.ts +189 -0
  371. package/src/components/trailer/react.tsx +16 -0
  372. package/src/components/trailer/trailer.css +36 -0
  373. package/src/components/tree-view/README.md +61 -0
  374. package/src/components/tree-view/element.ts +32 -0
  375. package/src/components/tree-view/engine.ts +569 -0
  376. package/src/components/tree-view/react.tsx +78 -0
  377. package/src/components/tree-view/tree-view.css +209 -0
  378. package/src/components/virtual-list/README.md +81 -0
  379. package/src/components/virtual-list/element.ts +42 -0
  380. package/src/components/virtual-list/engine.ts +678 -0
  381. package/src/components/virtual-list/react.tsx +101 -0
  382. package/src/components/virtual-list/virtual-list.css +194 -0
  383. package/src/core/chips.ts +196 -0
  384. package/src/core/color.ts +304 -0
  385. package/src/core/date-range.ts +67 -0
  386. package/src/core/dates.ts +108 -0
  387. package/src/core/files.ts +107 -0
  388. package/src/core/filter.ts +229 -0
  389. package/src/core/gsap.ts +80 -65
  390. package/src/core/listbox.ts +332 -0
  391. package/src/core/mark.ts +29 -0
  392. package/src/core/position.ts +89 -0
  393. package/src/core/relative-time.ts +77 -0
  394. package/src/core/segment-field.ts +373 -0
  395. package/src/core/segments.ts +153 -0
  396. package/src/core/tree.ts +116 -0
  397. package/src/core/virtual.ts +79 -0
  398. package/src/css/controls/README.md +14 -0
  399. package/src/css/controls/status.css +63 -0
  400. package/src/css/tokens.css +186 -182
  401. package/src/elements/index.ts +171 -0
  402. package/src/index.ts +97 -0
  403. package/src/motion/micro.ts +248 -0
  404. package/src/motion/sheet.ts +88 -65
  405. package/src/motion/surface.ts +9 -0
  406. package/src/react/index.ts +78 -0
  407. package/src/react/use-action-button.ts +6 -0
  408. package/src/react/use-editorial-reveal.ts +7 -0
  409. package/src/react/use-film-hero.ts +6 -0
  410. package/src/react/use-font-cycle.ts +7 -0
  411. package/src/react/use-image-zoom.ts +5 -0
  412. package/src/react/use-joined-cta.ts +5 -0
  413. package/src/react/use-local-clock.ts +5 -0
  414. package/src/react/use-scroll-dock.ts +5 -0
  415. package/src/react/use-sticker.ts +5 -0
  416. package/src/react/use-studio-dock.ts +8 -0
  417. package/src/react/use-thumbnail-nav.ts +7 -0
  418. package/src/react/use-trailer.ts +6 -0
  419. package/src/react/use-weight-hover.ts +5 -0
  420. package/src/recipes/action-button/README.md +31 -0
  421. package/src/recipes/action-button/action-button.css +113 -0
  422. package/src/recipes/action-button/create-action-button.ts +56 -0
  423. package/src/recipes/editorial-reveal/README.md +35 -0
  424. package/src/recipes/editorial-reveal/create-editorial-reveal.ts +91 -0
  425. package/src/recipes/editorial-reveal/editorial-reveal.css +17 -0
  426. package/src/recipes/film-hero/README.md +23 -0
  427. package/src/recipes/film-hero/create-film-hero.ts +65 -0
  428. package/src/recipes/film-hero/film-hero.css +29 -0
  429. package/src/recipes/font-cycle/README.md +11 -0
  430. package/src/recipes/font-cycle/create-font-cycle.ts +126 -0
  431. package/src/recipes/font-cycle/font-cycle.css +36 -0
  432. package/src/recipes/image-zoom/README.md +16 -0
  433. package/src/recipes/image-zoom/create-image-zoom.ts +27 -0
  434. package/src/recipes/image-zoom/image-zoom.css +7 -0
  435. package/src/recipes/joined-cta/README.md +13 -0
  436. package/src/recipes/joined-cta/create-joined-cta.ts +22 -0
  437. package/src/recipes/joined-cta/joined-cta.css +17 -0
  438. package/src/recipes/local-clock/README.md +31 -0
  439. package/src/recipes/local-clock/create-local-clock.ts +61 -0
  440. package/src/recipes/scroll-dock/README.md +46 -0
  441. package/src/recipes/scroll-dock/create-scroll-dock.ts +72 -0
  442. package/src/recipes/scroll-dock/scroll-dock.css +70 -0
  443. package/src/recipes/sticker/README.md +59 -0
  444. package/src/recipes/sticker/create-sticker.ts +490 -0
  445. package/src/recipes/sticker/sticker.css +112 -0
  446. package/src/recipes/thumbnail-nav/README.md +16 -0
  447. package/src/recipes/thumbnail-nav/create-thumbnail-nav.ts +165 -0
  448. package/src/recipes/thumbnail-nav/thumbnail-nav.css +108 -0
  449. package/src/recipes/weight-hover/README.md +37 -0
  450. package/src/recipes/weight-hover/create-weight-hover.ts +136 -0
  451. package/src/recipes/weight-hover/weight-hover.css +7 -0
  452. package/dist/chunk-BFC27F2G.js.map +0 -1
  453. package/dist/chunk-J6OCFNGU.js +0 -177
  454. package/dist/chunk-J6OCFNGU.js.map +0 -1
  455. package/dist/chunk-JQMJQSXD.js +0 -2374
  456. package/dist/chunk-JQMJQSXD.js.map +0 -1
  457. package/dist/chunk-XDWBVFHQ.js.map +0 -1
  458. package/dist/reveal-C0hCDcB_.d.ts +0 -415
@@ -1,19 +1,76 @@
1
1
  import {
2
2
  createChat,
3
- createChatBackground,
4
3
  createCursor,
5
4
  createIsland,
6
5
  createNav,
7
- createSteps,
8
6
  createThemePicker,
9
7
  createToaster,
10
8
  iconSvg,
11
9
  toast
12
- } from "../chunk-BFC27F2G.js";
10
+ } from "../chunk-6P4P7NU6.js";
13
11
  import {
12
+ createActivityFeed,
13
+ createAttachment,
14
+ createBreadcrumb,
15
+ createCalendar,
16
+ createChart,
17
+ createChartTooltip,
18
+ createChatBackground,
19
+ createCodeBlock,
20
+ createColorArea,
21
+ createColorField,
22
+ createColorPicker,
23
+ createColorSlider,
24
+ createCommandSearch,
25
+ createContextMenu,
26
+ createCreditCard,
27
+ createDataTable,
28
+ createDateRangePicker,
29
+ createDateTimePicker,
14
30
  createDialog,
15
- createMenu
16
- } from "../chunk-JQMJQSXD.js";
31
+ createDrawer,
32
+ createEditableTable,
33
+ createEmptyState,
34
+ createFileExplorer,
35
+ createFilterBuilder,
36
+ createHoldConfirm,
37
+ createHoverCard,
38
+ createImagePreview,
39
+ createInputOtp,
40
+ createJsonViewer,
41
+ createLikeButton,
42
+ createLinkPreview,
43
+ createLoadingButton,
44
+ createMenu,
45
+ createMultiSelect,
46
+ createNotificationBell,
47
+ createPagination,
48
+ createPasswordStrength,
49
+ createPopover,
50
+ createProgress,
51
+ createQuantity,
52
+ createQuestionnaire,
53
+ createRangeCalendar,
54
+ createRangeSlider,
55
+ createResizablePanel,
56
+ createRichTextEditor,
57
+ createScratchCard,
58
+ createSkeleton,
59
+ createSlotPicker,
60
+ createSplitView,
61
+ createStarRating,
62
+ createStatCard,
63
+ createSteps,
64
+ createStudioDock,
65
+ createSwipeActions,
66
+ createTagInput,
67
+ createTimeField,
68
+ createTimeline,
69
+ createTooltip,
70
+ createTrailer,
71
+ createTreeView,
72
+ createVirtualList
73
+ } from "../chunk-CU6SXW3E.js";
17
74
  import "../chunk-RVSKEBIC.js";
18
75
  import "../chunk-DOOMULVV.js";
19
76
  import "../chunk-TGV27ZWM.js";
@@ -72,6 +129,42 @@ function defineElement(name, ctor) {
72
129
  customElements.define(name, ctor);
73
130
  }
74
131
 
132
+ // src/components/studio-dock/element.ts
133
+ var MkStudioDockElement = class extends MkElement {
134
+ static options = { duration: "number", ease: "string", focusOnOpen: "boolean", trapFocus: "boolean" };
135
+ create(options) {
136
+ return createStudioDock(this, options);
137
+ }
138
+ open(view) {
139
+ this.instance?.open(view);
140
+ }
141
+ close() {
142
+ this.instance?.close();
143
+ }
144
+ toggle() {
145
+ this.instance?.toggle();
146
+ }
147
+ selectPage(index) {
148
+ this.instance?.selectPage(index);
149
+ }
150
+ };
151
+ var defineStudioDock = () => defineElement("mk-studio-dock", MkStudioDockElement);
152
+
153
+ // src/components/trailer/element.ts
154
+ var MkTrailerElement = class extends MkElement {
155
+ static options = { autoplay: "boolean", triggers: "string", closeOnBackdrop: "boolean" };
156
+ create(options) {
157
+ return createTrailer(this.querySelector("dialog"), options);
158
+ }
159
+ open(origin) {
160
+ this.instance?.open(origin);
161
+ }
162
+ close() {
163
+ this.instance?.close();
164
+ }
165
+ };
166
+ var defineTrailer = () => defineElement("mk-trailer", MkTrailerElement);
167
+
75
168
  // src/components/theme-picker/element.ts
76
169
  var MkThemePickerElement = class extends MkElement {
77
170
  static options = { showHidden: "boolean", themes: "list" };
@@ -151,7 +244,7 @@ var MkDialogElement = class extends MkElement {
151
244
  dialog.append(body);
152
245
  }
153
246
  this.append(dialog);
154
- const engine = createDialog(dialog, {
247
+ const engine = this.createEngine(dialog, {
155
248
  variant: options.variant ?? "morph",
156
249
  placement: options.placement ?? "center",
157
250
  backdrop: !options.noBackdrop,
@@ -160,7 +253,7 @@ var MkDialogElement = class extends MkElement {
160
253
  float: options.float || false,
161
254
  triggers: this.id || false,
162
255
  labels: { close: closeLabel }
163
- });
256
+ }, options);
164
257
  this.dialog = engine;
165
258
  return {
166
259
  destroy: () => {
@@ -171,6 +264,10 @@ var MkDialogElement = class extends MkElement {
171
264
  }
172
265
  };
173
266
  }
267
+ /** The engine on the built <dialog> (Drawer swaps it). */
268
+ createEngine(dialog, options, _attributes) {
269
+ return createDialog(dialog, options);
270
+ }
174
271
  open(origin) {
175
272
  this.dialog?.open(origin);
176
273
  }
@@ -434,6 +531,1312 @@ var MkIslandElement = class extends MkElement {
434
531
  }
435
532
  };
436
533
 
534
+ // src/components/quantity/element.ts
535
+ var MkQuantityElement = class extends MkElement {
536
+ static options = { min: "number", max: "number", step: "number", value: "number", disabled: "boolean" };
537
+ create(options) {
538
+ return createQuantity(this, options);
539
+ }
540
+ attributeChangedCallback(name, previous, next) {
541
+ if (previous === next || !this.isConnected || !this.instance) return;
542
+ const value = this.instance.value;
543
+ this.instance.destroy();
544
+ this.instance = this.create({ ...!this.hasAttribute("value") ? { value } : {}, ...this.options });
545
+ }
546
+ };
547
+
548
+ // src/components/pagination/element.ts
549
+ var MkPaginationElement = class extends MkElement {
550
+ static options = { totalPages: "number", page: "number", siblings: "number" };
551
+ create(options) {
552
+ return createPagination(this, options);
553
+ }
554
+ attributeChangedCallback(name, previous, next) {
555
+ if (previous === next || !this.isConnected || !this.instance) return;
556
+ const page = this.instance.page;
557
+ this.instance.destroy();
558
+ this.instance = this.create({ ...!this.hasAttribute("page") ? { page } : {}, ...this.options });
559
+ }
560
+ };
561
+
562
+ // src/components/hover-card/element.ts
563
+ var MkHoverCardElement = class extends MkElement {
564
+ static options = { openDelay: "number", closeDelay: "number", placement: "string" };
565
+ create(options) {
566
+ return createHoverCard(this, options);
567
+ }
568
+ };
569
+
570
+ // src/components/input-otp/element.ts
571
+ var MkInputOtpElement = class extends MkElement {
572
+ static options = { length: "number", value: "string", mask: "boolean" };
573
+ create(options) {
574
+ return createInputOtp(this, options);
575
+ }
576
+ attributeChangedCallback(name, previous, next) {
577
+ if (previous === next || !this.isConnected || !this.instance) return;
578
+ const value = this.instance.value;
579
+ this.instance.destroy();
580
+ this.instance = this.create({ ...!this.hasAttribute("value") ? { value } : {}, ...this.options });
581
+ }
582
+ };
583
+
584
+ // src/components/calendar/element.ts
585
+ var MkCalendarElement = class extends MkElement {
586
+ static options = {
587
+ date: "string",
588
+ view: "string",
589
+ firstDay: "number",
590
+ locale: "string",
591
+ maxEvents: "number",
592
+ events: "json",
593
+ selected: "string",
594
+ today: "string"
595
+ };
596
+ create(options) {
597
+ return createCalendar(this, options);
598
+ }
599
+ attributeChangedCallback(name, previous, next) {
600
+ if (previous === next || !this.isConnected || !this.instance) return;
601
+ if (name === "events") {
602
+ this.instance.setEvents(this.options.events ?? []);
603
+ return;
604
+ }
605
+ const { date, view, selected } = this.instance;
606
+ this.instance.destroy();
607
+ this.instance = this.create({ date, view, selected, ...this.options });
608
+ }
609
+ };
610
+
611
+ // src/components/slot-picker/element.ts
612
+ var MkSlotPickerElement = class extends MkElement {
613
+ static options = {
614
+ date: "string",
615
+ value: "string",
616
+ slots: "json",
617
+ min: "string",
618
+ max: "string",
619
+ closedDays: "json",
620
+ firstDay: "number",
621
+ locale: "string"
622
+ };
623
+ create(options) {
624
+ return createSlotPicker(this, options);
625
+ }
626
+ attributeChangedCallback(name, previous, next) {
627
+ if (previous === next || !this.isConnected || !this.instance) return;
628
+ if (name === "slots") {
629
+ this.instance.setSlots(this.options.slots ?? []);
630
+ return;
631
+ }
632
+ const value = this.instance.value ?? (this.instance.date ? this.instance.date : void 0);
633
+ this.instance.destroy();
634
+ this.instance = this.create({ ...name !== "value" && value ? typeof value === "string" ? { value } : { date: value } : {}, ...this.options });
635
+ }
636
+ };
637
+
638
+ // src/components/attachment/element.ts
639
+ var MkAttachmentElement = class extends MkElement {
640
+ static options = {
641
+ accept: "string",
642
+ multiple: "boolean",
643
+ maxFiles: "number",
644
+ maxSize: "number",
645
+ disabled: "boolean",
646
+ name: "string",
647
+ hint: "string",
648
+ initialFiles: "json"
649
+ };
650
+ create(options) {
651
+ return createAttachment(this, options);
652
+ }
653
+ attributeChangedCallback(name, previous, next) {
654
+ if (previous === next || !this.isConnected || !this.instance) return;
655
+ const files = this.instance.files;
656
+ this.instance.destroy();
657
+ this.instance = this.create({ ...this.options, initialFiles: files });
658
+ }
659
+ addFiles(files) {
660
+ return this.instance?.addFiles(files) ?? [];
661
+ }
662
+ /** Remove one file (HTMLElement.remove() still removes the element). */
663
+ removeFile(id) {
664
+ this.instance?.remove(id);
665
+ }
666
+ setProgress(id, value, status) {
667
+ this.instance?.setProgress(id, value, status);
668
+ }
669
+ get files() {
670
+ return this.instance?.files ?? [];
671
+ }
672
+ };
673
+
674
+ // src/components/skeleton/element.ts
675
+ var MkSkeletonElement = class extends MkElement {
676
+ static options = { loaded: "boolean", animation: "string", shape: "string", lines: "number", label: "string" };
677
+ create(options) {
678
+ return createSkeleton(this, { ...options, loading: !options.loaded });
679
+ }
680
+ attributeChangedCallback(name, previous, next) {
681
+ if (previous === next || !this.instance) return;
682
+ if (name === "loaded") this.instance.setLoading(next === null || next === "false");
683
+ else super.attributeChangedCallback(name, previous, next);
684
+ }
685
+ setLoading(loading) {
686
+ this.instance?.setLoading(loading);
687
+ }
688
+ get loading() {
689
+ return this.instance?.loading ?? false;
690
+ }
691
+ };
692
+
693
+ // src/components/questionnaire/element.ts
694
+ var el = (tag, attrs = {}, text) => {
695
+ const element = document.createElement(tag);
696
+ for (const [name, value] of Object.entries(attrs)) element.setAttribute(name, value);
697
+ if (text !== void 0) element.textContent = text;
698
+ return element;
699
+ };
700
+ function buildForm(questions) {
701
+ const form = el("form", { class: "mk-questionnaire", novalidate: "" });
702
+ const progress = el("div", { "data-mk-question-progress": "", "aria-hidden": "true" });
703
+ progress.append(el("span", { "data-mk-question-bar": "" }));
704
+ form.append(progress);
705
+ questions.forEach((question, i) => {
706
+ const titleId = `${question.id}-title`;
707
+ const section = el("section", { "data-mk-question": "", "aria-labelledby": titleId });
708
+ if (i) section.hidden = true;
709
+ section.append(el("p", { "data-mk-question-step": "" }, `Pregunta ${i + 1} de ${questions.length}`));
710
+ const title = el("h3", { id: titleId, "data-mk-step-title": "", "data-mk-flow-item": "" }, question.label);
711
+ if (question.required) title.append(el("span", { "data-mk-question-required": "", "aria-hidden": "true" }, " *"));
712
+ section.append(title);
713
+ if (question.description) section.append(el("p", { "data-mk-question-description": "", "data-mk-flow-item": "" }, question.description));
714
+ const field = el("div", { "data-mk-question-field": "", "data-mk-flow-item": "" });
715
+ if (question.type === "text" || question.type === "textarea") {
716
+ const input = question.type === "text" ? el("input", { type: "text" }) : el("textarea", { rows: "4" });
717
+ input.name = question.id;
718
+ input.required = Boolean(question.required);
719
+ input.setAttribute("aria-labelledby", titleId);
720
+ field.append(input);
721
+ } else {
722
+ const group = el("div", { role: question.type === "single" ? "radiogroup" : "group", "aria-labelledby": titleId, "data-mk-question-options": "" });
723
+ for (const raw of question.options ?? []) {
724
+ const option = typeof raw === "string" ? { value: raw, label: raw } : raw;
725
+ const label = el("label", { "data-mk-question-option": "" });
726
+ const input = el("input", { type: question.type === "single" ? "radio" : "checkbox" });
727
+ input.name = question.id;
728
+ input.value = option.value;
729
+ input.required = Boolean(question.required);
730
+ label.append(input, el("span", {}, option.label));
731
+ group.append(label);
732
+ }
733
+ field.append(group);
734
+ }
735
+ section.append(field);
736
+ const actions = el("div", { "data-mk-question-actions": "", "data-mk-flow-item": "" });
737
+ if (i) actions.append(el("button", { type: "button", class: "mk-button mk-button--text", "data-mk-question-prev": "" }, "Anterior"));
738
+ actions.append(
739
+ i < questions.length - 1 ? el("button", { type: "button", class: "mk-button", "data-mk-question-next": "" }, "Siguiente") : el("button", { type: "submit", class: "mk-button" }, "Finalizar")
740
+ );
741
+ section.append(actions);
742
+ form.append(section);
743
+ });
744
+ form.append(el("p", { "data-mk-question-error": "", role: "alert" }));
745
+ const done = el("div", { "data-mk-question-complete": "" });
746
+ done.hidden = true;
747
+ done.append(el("p", {}, "\xA1Gracias! Respuestas enviadas."), el("button", { type: "reset", class: "mk-button mk-button--tonal" }, "Empezar de nuevo"));
748
+ form.append(done);
749
+ return form;
750
+ }
751
+ var MkQuestionnaireElement = class extends MkElement {
752
+ static options = { questions: "json", index: "number" };
753
+ questionnaire = null;
754
+ create(options) {
755
+ const questions = Array.isArray(options.questions) ? options.questions : null;
756
+ const built = questions && !this.querySelector("[data-mk-question]") ? buildForm(questions) : null;
757
+ if (built) this.append(built);
758
+ const engine = createQuestionnaire(this, { index: options.index });
759
+ this.questionnaire = engine;
760
+ return {
761
+ destroy: () => {
762
+ engine.destroy();
763
+ built?.remove();
764
+ this.questionnaire = null;
765
+ }
766
+ };
767
+ }
768
+ next() {
769
+ return this.questionnaire?.next() ?? Promise.resolve(false);
770
+ }
771
+ prev() {
772
+ return this.questionnaire?.prev() ?? Promise.resolve();
773
+ }
774
+ reset() {
775
+ this.questionnaire?.reset();
776
+ }
777
+ get answers() {
778
+ return this.questionnaire?.answers ?? {};
779
+ }
780
+ };
781
+
782
+ // src/components/code-block/element.ts
783
+ var MkCodeBlockElement = class extends MkElement {
784
+ static options = {
785
+ code: "string",
786
+ language: "string",
787
+ title: "string",
788
+ lineNumbers: "boolean",
789
+ copyLabel: "string",
790
+ copiedLabel: "string",
791
+ errorLabel: "string"
792
+ };
793
+ create(options) {
794
+ return createCodeBlock(this, options);
795
+ }
796
+ setCode(code) {
797
+ this.instance?.setCode(code);
798
+ }
799
+ copy() {
800
+ return this.instance?.copy() ?? Promise.resolve(false);
801
+ }
802
+ };
803
+
804
+ // src/components/context-menu/element.ts
805
+ var MkContextMenuElement = class extends MkElement {
806
+ static options = { keepOpen: "boolean", overrideEditable: "boolean", longPress: "number", variant: "string" };
807
+ create(options) {
808
+ const { keepOpen, ...rest } = options;
809
+ return createContextMenu(this, { ...rest, closeOnSelect: !keepOpen });
810
+ }
811
+ openAt(x, y) {
812
+ this.instance?.openAt(x, y);
813
+ }
814
+ open(origin) {
815
+ this.instance?.open(origin);
816
+ }
817
+ close() {
818
+ this.instance?.close();
819
+ }
820
+ get isOpen() {
821
+ return this.instance?.isOpen ?? false;
822
+ }
823
+ };
824
+
825
+ // src/components/drawer/element.ts
826
+ var MkDrawerElement = class extends MkDialogElement {
827
+ static options = { ...MkDialogElement.options, side: "string" };
828
+ createEngine(dialog, options, attributes) {
829
+ dialog.classList.add("mk-drawer");
830
+ const { variant: _variant, placement: _placement, float: _float, ...rest } = options;
831
+ return createDrawer(dialog, { ...rest, side: attributes.side });
832
+ }
833
+ };
834
+
835
+ // src/components/link-preview/element.ts
836
+ var MkLinkPreviewElement = class extends MkElement {
837
+ static options = {
838
+ url: "string",
839
+ title: "string",
840
+ description: "string",
841
+ image: "string",
842
+ imageAlt: "string",
843
+ siteName: "string",
844
+ variant: "string",
845
+ label: "string",
846
+ target: "string",
847
+ openDelay: "number",
848
+ closeDelay: "number",
849
+ placement: "string"
850
+ };
851
+ create(options) {
852
+ return createLinkPreview(this, options);
853
+ }
854
+ };
855
+
856
+ // src/components/progress/element.ts
857
+ var MkProgressElement = class extends MkElement {
858
+ static options = { value: "number", min: "number", max: "number", label: "string", variant: "string", showValue: "boolean" };
859
+ create(options) {
860
+ return createProgress(this, { ...options, value: typeof options.value === "number" ? options.value : null });
861
+ }
862
+ attributeChangedCallback(name, previous, next) {
863
+ if (previous === next || !this.instance) return;
864
+ if (name === "value") this.instance.setValue(next === null || !Number.isFinite(Number(next)) ? null : Number(next));
865
+ else super.attributeChangedCallback(name, previous, next);
866
+ }
867
+ setValue(value) {
868
+ this.instance?.setValue(value);
869
+ }
870
+ get value() {
871
+ return this.instance?.value ?? null;
872
+ }
873
+ };
874
+
875
+ // src/components/range-slider/element.ts
876
+ var MkRangeSliderElement = class extends MkElement {
877
+ static options = { min: "number", max: "number", step: "number", value: "json", disabled: "boolean", name: "string", label: "string" };
878
+ format;
879
+ /** Formatter for the output and aria-valuetext (code, so a property rather than an attribute). */
880
+ get formatValue() {
881
+ return this.format;
882
+ }
883
+ set formatValue(format) {
884
+ this.format = format;
885
+ this.rebuild(true);
886
+ }
887
+ create(options) {
888
+ return createRangeSlider(this, { ...options, formatValue: this.format });
889
+ }
890
+ /** Rebuild with the current attributes; keepValue keeps the edited value over the `value` attribute. */
891
+ rebuild(keepValue) {
892
+ if (!this.isConnected || !this.instance) return;
893
+ const value = this.instance.value;
894
+ this.instance.destroy();
895
+ this.instance = this.create(keepValue ? { ...this.options, value } : { value, ...this.options });
896
+ }
897
+ // Bounds rebuild the engine but keep the edited value unless `value` is set.
898
+ attributeChangedCallback(_name, previous, next) {
899
+ if (previous !== next) this.rebuild(false);
900
+ }
901
+ setValue(value, notify) {
902
+ this.instance?.setValue(value, notify);
903
+ }
904
+ get value() {
905
+ return this.instance?.value;
906
+ }
907
+ };
908
+
909
+ // src/components/chart/element.ts
910
+ var MkChartElement = class extends MkElement {
911
+ static options = {
912
+ type: "string",
913
+ labels: "list",
914
+ series: "json",
915
+ points: "json",
916
+ stacked: "boolean",
917
+ label: "string",
918
+ height: "number",
919
+ emptyLabel: "string",
920
+ legend: "boolean",
921
+ tooltip: "boolean"
922
+ };
923
+ create(options) {
924
+ return createChart(this, options);
925
+ }
926
+ attributeChangedCallback(_name, previous, next) {
927
+ if (previous === next || !this.instance) return;
928
+ this.instance.update({ stacked: false, legend: void 0, ...this.options });
929
+ }
930
+ update(options) {
931
+ this.instance?.update(options);
932
+ }
933
+ select(index) {
934
+ this.instance?.select(index);
935
+ }
936
+ };
937
+
938
+ // src/components/credit-card/element.ts
939
+ var MkCreditCardElement = class extends MkElement {
940
+ static options = { tilt: "boolean", labels: "json", names: "json" };
941
+ create(options) {
942
+ return createCreditCard(this, options);
943
+ }
944
+ focusField(field) {
945
+ this.instance?.focus(field);
946
+ }
947
+ flip(back) {
948
+ this.instance?.flip(back);
949
+ }
950
+ get values() {
951
+ return this.instance?.values;
952
+ }
953
+ get brand() {
954
+ return this.instance?.brand ?? "unknown";
955
+ }
956
+ };
957
+
958
+ // src/components/command-search/element.ts
959
+ var MkCommandSearchElement = class extends MkElement {
960
+ static options = { items: "json", placeholder: "string", emptyLabel: "string", label: "string", shortcut: "boolean", limit: "number" };
961
+ create(options) {
962
+ return createCommandSearch(this, options);
963
+ }
964
+ attributeChangedCallback(name, previous, next) {
965
+ if (previous === next || !this.instance) return;
966
+ if (name === "items") this.instance.setItems(this.options.items ?? []);
967
+ else super.attributeChangedCallback(name, previous, next);
968
+ }
969
+ open() {
970
+ this.instance?.open();
971
+ }
972
+ close() {
973
+ this.instance?.close();
974
+ }
975
+ setItems(items) {
976
+ this.instance?.setItems(items);
977
+ }
978
+ };
979
+
980
+ // src/components/hold-confirm/element.ts
981
+ var MkHoldConfirmElement = class extends MkElement {
982
+ static options = { duration: "number", resetAfter: "number", holdingLabel: "string", doneLabel: "string", hint: "string", disabled: "boolean" };
983
+ create(options) {
984
+ return createHoldConfirm(this, options);
985
+ }
986
+ reset() {
987
+ this.instance?.reset();
988
+ }
989
+ get confirmed() {
990
+ return this.instance?.confirmed ?? false;
991
+ }
992
+ };
993
+
994
+ // src/components/image-preview/element.ts
995
+ var MkImagePreviewElement = class extends MkElement {
996
+ static options = { loop: "boolean", labels: "json" };
997
+ create(options) {
998
+ return createImagePreview(this, options);
999
+ }
1000
+ open(index) {
1001
+ this.instance?.open(index);
1002
+ }
1003
+ close() {
1004
+ this.instance?.close();
1005
+ }
1006
+ };
1007
+
1008
+ // src/components/like-button/element.ts
1009
+ var MkLikeButtonElement = class extends MkElement {
1010
+ static options = { liked: "boolean", count: "number", label: "string", hideCount: "boolean" };
1011
+ create(options) {
1012
+ let made = null;
1013
+ if (!this.querySelector("button")) {
1014
+ made = document.createElement("button");
1015
+ made.type = "button";
1016
+ this.append(made);
1017
+ }
1018
+ const engine = createLikeButton(this, options);
1019
+ if (made) {
1020
+ const destroy = engine.destroy;
1021
+ engine.destroy = () => {
1022
+ destroy();
1023
+ made.remove();
1024
+ };
1025
+ }
1026
+ return engine;
1027
+ }
1028
+ // A new `liked` or `count` attribute updates in place (with the animation).
1029
+ attributeChangedCallback(name, previous, next) {
1030
+ if (previous === next || !this.instance) return;
1031
+ if (name === "liked") this.instance.setLiked(next !== null && next !== "false", false);
1032
+ else if (name === "count") this.instance.setCount(Number(next));
1033
+ else super.attributeChangedCallback(name, previous, next);
1034
+ }
1035
+ get liked() {
1036
+ return this.instance?.liked ?? false;
1037
+ }
1038
+ get count() {
1039
+ return this.instance?.count ?? 0;
1040
+ }
1041
+ };
1042
+
1043
+ // src/components/notification-bell/element.ts
1044
+ var MkNotificationBellElement = class extends MkElement {
1045
+ static options = { count: "number", label: "string", messageDuration: "number", max: "number" };
1046
+ create(options) {
1047
+ let made = null;
1048
+ if (!this.querySelector("button")) {
1049
+ made = document.createElement("button");
1050
+ made.type = "button";
1051
+ this.append(made);
1052
+ }
1053
+ const engine = createNotificationBell(this, options);
1054
+ if (made) {
1055
+ const destroy = engine.destroy;
1056
+ engine.destroy = () => {
1057
+ destroy();
1058
+ made.remove();
1059
+ };
1060
+ }
1061
+ return engine;
1062
+ }
1063
+ attributeChangedCallback(name, previous, next) {
1064
+ if (previous === next || !this.instance) return;
1065
+ if (name === "count") this.instance.setCount(Number(next) || 0);
1066
+ else super.attributeChangedCallback(name, previous, next);
1067
+ }
1068
+ notify(message) {
1069
+ this.instance?.notify(message);
1070
+ }
1071
+ clear() {
1072
+ this.instance?.clear();
1073
+ }
1074
+ get count() {
1075
+ return this.instance?.count ?? 0;
1076
+ }
1077
+ };
1078
+
1079
+ // src/components/password-strength/element.ts
1080
+ var MkPasswordStrengthElement = class extends MkElement {
1081
+ static options = { minLength: "number", requireScore: "number", labels: "json" };
1082
+ create(options) {
1083
+ return createPasswordStrength(this, options);
1084
+ }
1085
+ get score() {
1086
+ return this.instance?.score ?? 0;
1087
+ }
1088
+ };
1089
+
1090
+ // src/components/scratch-card/element.ts
1091
+ var MkScratchCardElement = class extends MkElement {
1092
+ static options = { threshold: "number", brush: "number", coverLabel: "string", revealLabel: "string", revealedLabel: "string", celebrate: "boolean" };
1093
+ create(options) {
1094
+ return createScratchCard(this, options);
1095
+ }
1096
+ reveal() {
1097
+ this.instance?.reveal();
1098
+ }
1099
+ reset() {
1100
+ this.instance?.reset();
1101
+ }
1102
+ get revealed() {
1103
+ return this.instance?.revealed ?? false;
1104
+ }
1105
+ };
1106
+
1107
+ // src/components/star-rating/element.ts
1108
+ var MkStarRatingElement = class extends MkElement {
1109
+ static options = { max: "number", value: "number", name: "string", label: "string", labels: "list", readonly: "boolean", allowClear: "boolean", disabled: "boolean" };
1110
+ create(options) {
1111
+ return createStarRating(this, options);
1112
+ }
1113
+ attributeChangedCallback(name, previous, next) {
1114
+ if (previous === next || !this.instance) return;
1115
+ if (name === "value") this.instance.setValue(Number(next) || 0);
1116
+ else super.attributeChangedCallback(name, previous, next);
1117
+ }
1118
+ get value() {
1119
+ return this.instance?.value ?? 0;
1120
+ }
1121
+ };
1122
+
1123
+ // src/components/swipe-actions/element.ts
1124
+ var MkSwipeActionsElement = class extends MkElement {
1125
+ static options = { fullSwipe: "number" };
1126
+ create(options) {
1127
+ return createSwipeActions(this, options);
1128
+ }
1129
+ close() {
1130
+ this.instance?.close();
1131
+ }
1132
+ };
1133
+
1134
+ // src/components/color-slider/element.ts
1135
+ var MkColorSliderElement = class extends MkElement {
1136
+ static options = { channel: "string", value: "string", label: "string", orientation: "string", step: "number", showValue: "boolean", name: "string", disabled: "boolean" };
1137
+ create(options) {
1138
+ return createColorSlider(this, options);
1139
+ }
1140
+ attributeChangedCallback(name, previous, next) {
1141
+ if (previous === next || !this.instance) return;
1142
+ if (name === "value" && next) this.instance.setColor(next, false);
1143
+ else super.attributeChangedCallback(name, previous, next);
1144
+ }
1145
+ get value() {
1146
+ return this.instance?.value ?? "";
1147
+ }
1148
+ };
1149
+
1150
+ // src/components/color-area/element.ts
1151
+ var MkColorAreaElement = class extends MkElement {
1152
+ static options = { value: "string", label: "string", step: "number", name: "string", disabled: "boolean" };
1153
+ create(options) {
1154
+ return createColorArea(this, options);
1155
+ }
1156
+ attributeChangedCallback(name, previous, next) {
1157
+ if (previous === next || !this.instance) return;
1158
+ if (name === "value" && next) this.instance.setColor(next, false);
1159
+ else super.attributeChangedCallback(name, previous, next);
1160
+ }
1161
+ get value() {
1162
+ return this.instance?.value ?? "";
1163
+ }
1164
+ };
1165
+
1166
+ // src/components/color-field/element.ts
1167
+ var MkColorFieldElement = class extends MkElement {
1168
+ static options = { value: "string", format: "string", alpha: "boolean", label: "string", name: "string", disabled: "boolean", readOnly: "boolean" };
1169
+ create(options) {
1170
+ return createColorField(this, options);
1171
+ }
1172
+ attributeChangedCallback(name, previous, next) {
1173
+ if (previous === next || !this.instance) return;
1174
+ if (name === "value" && next) this.instance.setColor(next, false);
1175
+ else super.attributeChangedCallback(name, previous, next);
1176
+ }
1177
+ get value() {
1178
+ return this.instance?.value ?? "";
1179
+ }
1180
+ };
1181
+
1182
+ // src/components/color-picker/element.ts
1183
+ var MkColorPickerElement = class extends MkElement {
1184
+ static options = {
1185
+ value: "string",
1186
+ alpha: "boolean",
1187
+ format: "string",
1188
+ swatches: "list",
1189
+ label: "string",
1190
+ name: "string",
1191
+ disabled: "boolean",
1192
+ inline: "boolean",
1193
+ eyedropper: "boolean"
1194
+ };
1195
+ create(options) {
1196
+ return createColorPicker(this, options);
1197
+ }
1198
+ attributeChangedCallback(name, previous, next) {
1199
+ if (previous === next || !this.instance) return;
1200
+ if (name === "value" && next) this.instance.setColor(next, false);
1201
+ else super.attributeChangedCallback(name, previous, next);
1202
+ }
1203
+ open() {
1204
+ this.instance?.open();
1205
+ }
1206
+ close() {
1207
+ this.instance?.close();
1208
+ }
1209
+ get value() {
1210
+ return this.instance?.value ?? "";
1211
+ }
1212
+ };
1213
+
1214
+ // src/components/time-field/element.ts
1215
+ var MkTimeFieldElement = class extends MkElement {
1216
+ static options = {
1217
+ value: "string",
1218
+ locale: "string",
1219
+ hourCycle: "number",
1220
+ seconds: "boolean",
1221
+ minuteStep: "number",
1222
+ min: "string",
1223
+ max: "string",
1224
+ label: "string",
1225
+ name: "string",
1226
+ disabled: "boolean",
1227
+ readOnly: "boolean"
1228
+ };
1229
+ create(options) {
1230
+ return createTimeField(this, options);
1231
+ }
1232
+ attributeChangedCallback(name, previous, next) {
1233
+ if (previous === next || !this.instance) return;
1234
+ if (name === "value") this.instance.setValue(next);
1235
+ else super.attributeChangedCallback(name, previous, next);
1236
+ }
1237
+ get value() {
1238
+ return this.instance?.value ?? null;
1239
+ }
1240
+ };
1241
+
1242
+ // src/components/range-calendar/element.ts
1243
+ var MkRangeCalendarElement = class extends MkElement {
1244
+ static options = {
1245
+ start: "string",
1246
+ end: "string",
1247
+ month: "string",
1248
+ visibleMonths: "number",
1249
+ firstDay: "number",
1250
+ min: "string",
1251
+ max: "string",
1252
+ unavailable: "list",
1253
+ locale: "string",
1254
+ today: "string"
1255
+ };
1256
+ create(options) {
1257
+ const { start, end, ...rest } = options;
1258
+ return createRangeCalendar(this, { ...rest, value: start && end ? { start, end } : null });
1259
+ }
1260
+ attributeChangedCallback(name, previous, next) {
1261
+ if (previous === next || !this.instance) return;
1262
+ if (name === "start" || name === "end") {
1263
+ const start = this.getAttribute("start");
1264
+ const end = this.getAttribute("end");
1265
+ this.instance.setValue(start && end ? { start, end } : null);
1266
+ } else super.attributeChangedCallback(name, previous, next);
1267
+ }
1268
+ get value() {
1269
+ return this.instance?.value ?? null;
1270
+ }
1271
+ };
1272
+
1273
+ // src/components/date-range-picker/element.ts
1274
+ var MkDateRangePickerElement = class extends MkElement {
1275
+ static options = {
1276
+ start: "string",
1277
+ end: "string",
1278
+ min: "string",
1279
+ max: "string",
1280
+ unavailable: "list",
1281
+ firstDay: "number",
1282
+ locale: "string",
1283
+ today: "string",
1284
+ label: "string",
1285
+ name: "string",
1286
+ presets: "json",
1287
+ disabled: "boolean"
1288
+ };
1289
+ create(options) {
1290
+ const { start, end, ...rest } = options;
1291
+ return createDateRangePicker(this, { ...rest, value: start && end ? { start, end } : null });
1292
+ }
1293
+ attributeChangedCallback(name, previous, next) {
1294
+ if (previous === next || !this.instance) return;
1295
+ if (name === "start" || name === "end") {
1296
+ const start = this.getAttribute("start");
1297
+ const end = this.getAttribute("end");
1298
+ this.instance.setValue(start && end ? { start, end } : null);
1299
+ } else super.attributeChangedCallback(name, previous, next);
1300
+ }
1301
+ open() {
1302
+ this.instance?.open();
1303
+ }
1304
+ close() {
1305
+ this.instance?.close();
1306
+ }
1307
+ get value() {
1308
+ return this.instance?.value ?? null;
1309
+ }
1310
+ };
1311
+
1312
+ // src/components/tooltip/element.ts
1313
+ var MkTooltipElement = class extends MkElement {
1314
+ static options = { content: "string", placement: "string", openDelay: "number", closeDelay: "number", interactive: "boolean", arrow: "boolean" };
1315
+ create(options) {
1316
+ return createTooltip(this, options);
1317
+ }
1318
+ attributeChangedCallback(name, previous, next) {
1319
+ if (previous === next || !this.instance) return;
1320
+ if (name === "content") this.instance.setContent(next ?? "");
1321
+ else super.attributeChangedCallback(name, previous, next);
1322
+ }
1323
+ };
1324
+
1325
+ // src/components/popover/element.ts
1326
+ var MkPopoverElement = class extends MkElement {
1327
+ static options = { label: "string" };
1328
+ create(options) {
1329
+ return createPopover(this, options);
1330
+ }
1331
+ open() {
1332
+ this.instance?.open();
1333
+ }
1334
+ close() {
1335
+ this.instance?.close();
1336
+ }
1337
+ get isOpen() {
1338
+ return this.instance?.isOpen ?? false;
1339
+ }
1340
+ };
1341
+
1342
+ // src/components/loading-button/element.ts
1343
+ var MkLoadingButtonElement = class extends MkElement {
1344
+ static options = { labels: "json", compact: "boolean", resetAfter: "number", state: "string" };
1345
+ create(options) {
1346
+ const { state, ...rest } = options;
1347
+ const instance = createLoadingButton(this, rest);
1348
+ if (state) instance.setState(state);
1349
+ return instance;
1350
+ }
1351
+ attributeChangedCallback(name, previous, next) {
1352
+ if (previous === next || !this.instance) return;
1353
+ if (name === "state") this.instance.setState(next || "idle");
1354
+ else super.attributeChangedCallback(name, previous, next);
1355
+ }
1356
+ run(action) {
1357
+ return this.instance?.run(action) ?? Promise.resolve(false);
1358
+ }
1359
+ get state() {
1360
+ return this.instance?.state ?? "idle";
1361
+ }
1362
+ };
1363
+
1364
+ // src/components/breadcrumb/element.ts
1365
+ var MkBreadcrumbElement = class extends MkElement {
1366
+ static options = { items: "json", label: "string", maxItems: "number" };
1367
+ create(options) {
1368
+ return createBreadcrumb(this, options);
1369
+ }
1370
+ attributeChangedCallback(name, previous, next) {
1371
+ if (previous === next || !this.instance) return;
1372
+ if (name === "items") {
1373
+ try {
1374
+ this.instance.setItems(JSON.parse(next ?? "[]"));
1375
+ } catch {
1376
+ }
1377
+ } else super.attributeChangedCallback(name, previous, next);
1378
+ }
1379
+ };
1380
+
1381
+ // src/components/empty-state/element.ts
1382
+ var MkEmptyStateElement = class extends MkElement {
1383
+ static options = { illustration: "string", title: "string", description: "string", actions: "json", loop: "boolean" };
1384
+ create(options) {
1385
+ return createEmptyState(this, options);
1386
+ }
1387
+ attributeChangedCallback(name, previous, next) {
1388
+ if (previous === next || !this.instance) return;
1389
+ if (name === "loop") return super.attributeChangedCallback(name, previous, next);
1390
+ this.instance.update(this.options);
1391
+ }
1392
+ };
1393
+
1394
+ // src/components/stat-card/element.ts
1395
+ var MkStatCardElement = class extends MkElement {
1396
+ static options = {
1397
+ label: "string",
1398
+ value: "number",
1399
+ previous: "number",
1400
+ format: "json",
1401
+ locale: "string",
1402
+ positive: "string",
1403
+ comparison: "string",
1404
+ series: "list",
1405
+ target: "number",
1406
+ countOnView: "boolean"
1407
+ };
1408
+ create(options) {
1409
+ return createStatCard(this, normalise(options));
1410
+ }
1411
+ attributeChangedCallback(name, previous, next) {
1412
+ if (previous === next || !this.instance) return;
1413
+ if (name === "locale" || name === "count-on-view") return super.attributeChangedCallback(name, previous, next);
1414
+ this.instance.update(normalise(this.options));
1415
+ }
1416
+ };
1417
+ var normalise = (options) => ({
1418
+ ...options,
1419
+ series: Array.isArray(options.series) ? options.series.map(Number).filter(Number.isFinite) : void 0
1420
+ });
1421
+
1422
+ // src/components/chart-tooltip/element.ts
1423
+ var MkChartTooltipElement = class extends MkElement {
1424
+ static options = {
1425
+ labels: "list",
1426
+ series: "json",
1427
+ align: "string",
1428
+ inset: "json",
1429
+ min: "number",
1430
+ max: "number",
1431
+ delta: "boolean",
1432
+ share: "boolean",
1433
+ total: "boolean",
1434
+ sort: "boolean",
1435
+ pin: "boolean",
1436
+ label: "string"
1437
+ };
1438
+ create(options) {
1439
+ return createChartTooltip(this, options);
1440
+ }
1441
+ attributeChangedCallback(_name, previous, next) {
1442
+ if (previous === next || !this.instance) return;
1443
+ this.instance.update(this.options);
1444
+ }
1445
+ };
1446
+
1447
+ // src/components/multi-select/element.ts
1448
+ var MkMultiSelectElement = class extends MkElement {
1449
+ static options = { options: "json", value: "list", placeholder: "string", label: "string", name: "string", max: "number", closeOnSelect: "boolean", disabled: "boolean" };
1450
+ create(options) {
1451
+ return createMultiSelect(this, options);
1452
+ }
1453
+ attributeChangedCallback(name, previous, next) {
1454
+ if (previous === next || !this.instance) return;
1455
+ if (name === "value") this.instance.setValue((next ?? "").split(",").map((item) => item.trim()).filter(Boolean));
1456
+ else super.attributeChangedCallback(name, previous, next);
1457
+ }
1458
+ get value() {
1459
+ return this.instance?.value ?? [];
1460
+ }
1461
+ };
1462
+
1463
+ // src/components/tag-input/element.ts
1464
+ var MkTagInputElement = class extends MkElement {
1465
+ static options = {
1466
+ value: "list",
1467
+ suggestions: "list",
1468
+ placeholder: "string",
1469
+ label: "string",
1470
+ name: "string",
1471
+ max: "number",
1472
+ restrict: "boolean",
1473
+ allowDuplicates: "boolean",
1474
+ disabled: "boolean"
1475
+ };
1476
+ create(options) {
1477
+ return createTagInput(this, options);
1478
+ }
1479
+ attributeChangedCallback(name, previous, next) {
1480
+ if (previous === next || !this.instance) return;
1481
+ const list = (next ?? "").split(",").map((item) => item.trim()).filter(Boolean);
1482
+ if (name === "value") this.instance.setValue(list);
1483
+ else if (name === "suggestions") this.instance.setSuggestions(list);
1484
+ else super.attributeChangedCallback(name, previous, next);
1485
+ }
1486
+ get value() {
1487
+ return this.instance?.value ?? [];
1488
+ }
1489
+ };
1490
+
1491
+ // src/components/date-time-picker/element.ts
1492
+ var MkDateTimePickerElement = class extends MkElement {
1493
+ static options = {
1494
+ value: "string",
1495
+ min: "string",
1496
+ max: "string",
1497
+ locale: "string",
1498
+ hourCycle: "number",
1499
+ minuteStep: "number",
1500
+ firstDay: "number",
1501
+ unavailable: "list",
1502
+ today: "string",
1503
+ label: "string",
1504
+ name: "string",
1505
+ disabled: "boolean"
1506
+ };
1507
+ create(options) {
1508
+ return createDateTimePicker(this, options);
1509
+ }
1510
+ attributeChangedCallback(name, previous, next) {
1511
+ if (previous === next || !this.instance) return;
1512
+ if (name === "value") this.instance.setValue(next);
1513
+ else super.attributeChangedCallback(name, previous, next);
1514
+ }
1515
+ open() {
1516
+ this.instance?.open();
1517
+ }
1518
+ close() {
1519
+ this.instance?.close();
1520
+ }
1521
+ get value() {
1522
+ return this.instance?.value ?? null;
1523
+ }
1524
+ };
1525
+
1526
+ // src/components/filter-builder/element.ts
1527
+ var MkFilterBuilderElement = class extends MkElement {
1528
+ static options = { fields: "json", value: "json", maxDepth: "number", label: "string", summary: "boolean" };
1529
+ create(options) {
1530
+ return createFilterBuilder(this, options);
1531
+ }
1532
+ attributeChangedCallback(name, previous, next) {
1533
+ if (previous === next || !this.instance) return;
1534
+ if (name === "value" && next) {
1535
+ try {
1536
+ this.instance.setValue(JSON.parse(next));
1537
+ } catch {
1538
+ }
1539
+ } else super.attributeChangedCallback(name, previous, next);
1540
+ }
1541
+ get value() {
1542
+ return this.instance?.value ?? null;
1543
+ }
1544
+ };
1545
+
1546
+ // src/components/timeline/element.ts
1547
+ var MkTimelineElement = class extends MkElement {
1548
+ static options = { events: "json", layout: "string", group: "boolean", relative: "boolean", locale: "string", label: "string" };
1549
+ create(options) {
1550
+ return createTimeline(this, options);
1551
+ }
1552
+ attributeChangedCallback(name, previous, next) {
1553
+ if (previous === next || !this.instance) return;
1554
+ if (name === "events") {
1555
+ try {
1556
+ this.instance.setEvents(JSON.parse(next ?? "[]"));
1557
+ } catch {
1558
+ }
1559
+ } else super.attributeChangedCallback(name, previous, next);
1560
+ }
1561
+ add(event, at) {
1562
+ this.instance?.add(event, at);
1563
+ }
1564
+ };
1565
+
1566
+ // src/components/activity-feed/element.ts
1567
+ var MkActivityFeedElement = class extends MkElement {
1568
+ static options = { items: "json", locale: "string", label: "string", emptyLabel: "string" };
1569
+ create(options) {
1570
+ return createActivityFeed(this, options);
1571
+ }
1572
+ attributeChangedCallback(name, previous, next) {
1573
+ if (previous === next || !this.instance) return;
1574
+ if (name === "items") {
1575
+ try {
1576
+ this.instance.setItems(JSON.parse(next ?? "[]"));
1577
+ } catch {
1578
+ }
1579
+ } else super.attributeChangedCallback(name, previous, next);
1580
+ }
1581
+ /** New activity on top (not Element.prepend). */
1582
+ prependItems(items) {
1583
+ this.instance?.prepend(items);
1584
+ }
1585
+ appendItems(items) {
1586
+ this.instance?.append(items);
1587
+ }
1588
+ };
1589
+
1590
+ // src/components/tree-view/element.ts
1591
+ var MkTreeViewElement = class extends MkElement {
1592
+ static options = { nodes: "json", checkable: "boolean", checked: "list", expanded: "list", selected: "string", search: "string", label: "string" };
1593
+ create(options) {
1594
+ const search = this.hasAttribute("search") ? this.getAttribute("search") || true : void 0;
1595
+ const expanded = this.getAttribute("expanded") === "all" ? true : options.expanded;
1596
+ return createTreeView(this, { ...options, search, expanded });
1597
+ }
1598
+ attributeChangedCallback(name, previous, next) {
1599
+ if (previous === next || !this.instance) return;
1600
+ if (name === "nodes") {
1601
+ try {
1602
+ this.instance.setNodes(JSON.parse(next ?? "[]"));
1603
+ } catch {
1604
+ }
1605
+ } else if (name === "selected") this.instance.select(next);
1606
+ else super.attributeChangedCallback(name, previous, next);
1607
+ }
1608
+ };
1609
+
1610
+ // src/components/file-explorer/element.ts
1611
+ var MkFileExplorerElement = class extends MkElement {
1612
+ static options = {
1613
+ files: "json",
1614
+ rootLabel: "string",
1615
+ folder: "string",
1616
+ view: "string",
1617
+ tree: "boolean",
1618
+ readOnly: "boolean",
1619
+ locale: "string",
1620
+ label: "string"
1621
+ };
1622
+ create(options) {
1623
+ return createFileExplorer(this, options);
1624
+ }
1625
+ attributeChangedCallback(name, previous, next) {
1626
+ if (previous === next || !this.instance) return;
1627
+ if (name === "files") {
1628
+ try {
1629
+ this.instance.setFiles(JSON.parse(next ?? "[]"));
1630
+ } catch {
1631
+ }
1632
+ } else if (name === "view") this.instance.setView(next === "grid" ? "grid" : "list");
1633
+ else if (name === "folder") this.instance.open(next || "/");
1634
+ else super.attributeChangedCallback(name, previous, next);
1635
+ }
1636
+ };
1637
+
1638
+ // src/components/json-viewer/element.ts
1639
+ var MkJsonViewerElement = class extends MkElement {
1640
+ static options = {
1641
+ data: "json",
1642
+ expandDepth: "number",
1643
+ rootName: "string",
1644
+ search: "string",
1645
+ toolbar: "boolean",
1646
+ sortKeys: "boolean",
1647
+ label: "string"
1648
+ };
1649
+ create(options) {
1650
+ const search = this.hasAttribute("search") ? this.getAttribute("search") || true : void 0;
1651
+ return createJsonViewer(this, { ...options, search });
1652
+ }
1653
+ attributeChangedCallback(name, previous, next) {
1654
+ if (previous === next || !this.instance) return;
1655
+ if (name === "data") {
1656
+ try {
1657
+ this.instance.setData(JSON.parse(next ?? "null"));
1658
+ } catch {
1659
+ }
1660
+ } else super.attributeChangedCallback(name, previous, next);
1661
+ }
1662
+ };
1663
+
1664
+ // src/components/virtual-list/element.ts
1665
+ var MkVirtualListElement = class extends MkElement {
1666
+ static options = {
1667
+ items: "json",
1668
+ itemHeight: "number",
1669
+ estimatedHeight: "number",
1670
+ overscan: "number",
1671
+ selectable: "string",
1672
+ selected: "list",
1673
+ label: "string",
1674
+ emptyLabel: "string",
1675
+ locale: "string"
1676
+ };
1677
+ create(options) {
1678
+ const raw = this.getAttribute("selectable");
1679
+ const selectable = raw === null || raw === "false" ? false : raw === "multiple" ? "multiple" : "single";
1680
+ return createVirtualList(this, { ...options, selectable });
1681
+ }
1682
+ attributeChangedCallback(name, previous, next) {
1683
+ if (previous === next || !this.instance) return;
1684
+ if (name === "items") {
1685
+ try {
1686
+ this.instance.setItems(JSON.parse(next ?? "[]"));
1687
+ } catch {
1688
+ }
1689
+ } else if (name === "selected") this.instance.select((next ?? "").split(",").map((key) => key.trim()).filter(Boolean));
1690
+ else super.attributeChangedCallback(name, previous, next);
1691
+ }
1692
+ };
1693
+
1694
+ // src/components/resizable-panel/element.ts
1695
+ var MkResizablePanelElement = class extends MkElement {
1696
+ static options = {
1697
+ orientation: "string",
1698
+ sizes: "list",
1699
+ min: "number",
1700
+ max: "number",
1701
+ collapsible: "list",
1702
+ collapsed: "list",
1703
+ step: "number",
1704
+ storageKey: "string",
1705
+ handleButtons: "boolean",
1706
+ labels: "list"
1707
+ };
1708
+ create(options) {
1709
+ const numbers = (value) => Array.isArray(value) ? value.map(Number).filter(Number.isFinite) : void 0;
1710
+ return createResizablePanel(this, { ...options, sizes: numbers(options.sizes), collapsible: numbers(options.collapsible), collapsed: numbers(options.collapsed) });
1711
+ }
1712
+ attributeChangedCallback(name, previous, next) {
1713
+ if (previous === next || !this.instance) return;
1714
+ if (name === "orientation") this.instance.setOrientation(next === "vertical" ? "vertical" : "horizontal");
1715
+ else if (name === "sizes") this.instance.setSizes((next ?? "").split(",").map(Number).filter(Number.isFinite));
1716
+ else super.attributeChangedCallback(name, previous, next);
1717
+ }
1718
+ };
1719
+
1720
+ // src/components/split-view/element.ts
1721
+ var MkSplitViewElement = class extends MkElement {
1722
+ static options = {
1723
+ orientation: "string",
1724
+ ratio: "number",
1725
+ min: "number",
1726
+ collapsible: "string",
1727
+ stackBelow: "number",
1728
+ storageKey: "string",
1729
+ labels: "list"
1730
+ };
1731
+ create(options) {
1732
+ const raw = this.getAttribute("collapsible");
1733
+ const collapsible = raw === null || raw === "" || raw === "true" ? true : raw === "false" ? false : raw === "start" || raw === "end" ? raw : true;
1734
+ const labels = Array.isArray(options.labels) && options.labels.length === 2 ? options.labels : void 0;
1735
+ return createSplitView(this, { ...options, collapsible, labels });
1736
+ }
1737
+ attributeChangedCallback(name, previous, next) {
1738
+ if (previous === next || !this.instance) return;
1739
+ if (name === "ratio" && next !== null && Number.isFinite(Number(next))) this.instance.setRatio(Number(next));
1740
+ else super.attributeChangedCallback(name, previous, next);
1741
+ }
1742
+ };
1743
+
1744
+ // src/components/data-table/element.ts
1745
+ var MkDataTableElement = class extends MkElement {
1746
+ static options = {
1747
+ columns: "json",
1748
+ rows: "json",
1749
+ rowKey: "string",
1750
+ caption: "string",
1751
+ pageSize: "number",
1752
+ pageSizes: "json",
1753
+ selectable: "boolean",
1754
+ search: "string",
1755
+ filters: "boolean",
1756
+ columnsMenu: "boolean",
1757
+ actions: "json",
1758
+ bulkActions: "json",
1759
+ sort: "string",
1760
+ loading: "boolean",
1761
+ emptyTitle: "string",
1762
+ emptyDescription: "string",
1763
+ locale: "string"
1764
+ };
1765
+ create(options) {
1766
+ const raw = this.getAttribute("search");
1767
+ const search = raw === null || raw === "" ? true : raw === "false" ? false : raw;
1768
+ const [key, direction] = String(options.sort ?? "").split(":");
1769
+ const sort = key ? { key, direction: direction === "desc" ? "desc" : "asc" } : null;
1770
+ return createDataTable(this, { ...options, search, sort });
1771
+ }
1772
+ attributeChangedCallback(name, previous, next) {
1773
+ if (previous === next || !this.instance) return;
1774
+ if (name === "rows") {
1775
+ try {
1776
+ this.instance.setRows(JSON.parse(next ?? "[]"));
1777
+ } catch {
1778
+ }
1779
+ } else if (name === "loading") this.instance.setLoading(next !== null && next !== "false");
1780
+ else super.attributeChangedCallback(name, previous, next);
1781
+ }
1782
+ };
1783
+
1784
+ // src/components/editable-table/element.ts
1785
+ var MkEditableTableElement = class extends MkElement {
1786
+ static options = {
1787
+ columns: "json",
1788
+ rows: "json",
1789
+ rowKey: "string",
1790
+ caption: "string",
1791
+ pageSize: "number",
1792
+ selectable: "boolean",
1793
+ search: "string",
1794
+ filters: "boolean",
1795
+ columnsMenu: "boolean",
1796
+ newRow: "json",
1797
+ locale: "string"
1798
+ };
1799
+ create(options) {
1800
+ const raw = this.getAttribute("search");
1801
+ const search = raw === null || raw === "" ? true : raw === "false" ? false : raw;
1802
+ const template = options.newRow;
1803
+ return createEditableTable(this, { ...options, search, newRow: template ? () => ({ ...template }) : void 0 });
1804
+ }
1805
+ attributeChangedCallback(name, previous, next) {
1806
+ if (previous === next || !this.instance) return;
1807
+ if (name === "rows") {
1808
+ try {
1809
+ this.instance.setRows(JSON.parse(next ?? "[]"));
1810
+ } catch {
1811
+ }
1812
+ } else super.attributeChangedCallback(name, previous, next);
1813
+ }
1814
+ };
1815
+
1816
+ // src/components/rich-text-editor/element.ts
1817
+ var MkRichTextEditorElement = class extends MkElement {
1818
+ static options = {
1819
+ value: "string",
1820
+ placeholder: "string",
1821
+ toolbar: "list",
1822
+ maxLength: "number",
1823
+ counter: "string",
1824
+ name: "string",
1825
+ label: "string",
1826
+ readOnly: "boolean",
1827
+ markdown: "boolean"
1828
+ };
1829
+ create(options) {
1830
+ const counter = options.counter === "false" ? false : options.counter === "characters" ? "characters" : options.counter === "words" ? "words" : void 0;
1831
+ return createRichTextEditor(this, { ...options, counter, toolbar: options.toolbar });
1832
+ }
1833
+ attributeChangedCallback(name, previous, next) {
1834
+ if (previous === next || !this.instance) return;
1835
+ if (name === "value") this.instance.setValue(next ?? "");
1836
+ else super.attributeChangedCallback(name, previous, next);
1837
+ }
1838
+ };
1839
+
437
1840
  // src/elements/index.ts
438
1841
  var ELEMENTS = {
439
1842
  "mk-theme-picker": MkThemePickerElement,
@@ -445,7 +1848,64 @@ var ELEMENTS = {
445
1848
  "mk-nav": MkNavElement,
446
1849
  "mk-steps": MkStepsElement,
447
1850
  "mk-cursor": MkCursorElement,
448
- "mk-island": MkIslandElement
1851
+ "mk-island": MkIslandElement,
1852
+ "mk-quantity": MkQuantityElement,
1853
+ "mk-pagination": MkPaginationElement,
1854
+ "mk-hover-card": MkHoverCardElement,
1855
+ "mk-input-otp": MkInputOtpElement,
1856
+ "mk-studio-dock": MkStudioDockElement,
1857
+ "mk-trailer": MkTrailerElement,
1858
+ "mk-calendar": MkCalendarElement,
1859
+ "mk-slot-picker": MkSlotPickerElement,
1860
+ "mk-attachment": MkAttachmentElement,
1861
+ "mk-skeleton": MkSkeletonElement,
1862
+ "mk-questionnaire": MkQuestionnaireElement,
1863
+ "mk-code-block": MkCodeBlockElement,
1864
+ "mk-context-menu": MkContextMenuElement,
1865
+ "mk-drawer": MkDrawerElement,
1866
+ "mk-link-preview": MkLinkPreviewElement,
1867
+ "mk-progress": MkProgressElement,
1868
+ "mk-range-slider": MkRangeSliderElement,
1869
+ "mk-chart": MkChartElement,
1870
+ "mk-credit-card": MkCreditCardElement,
1871
+ "mk-command-search": MkCommandSearchElement,
1872
+ "mk-hold-confirm": MkHoldConfirmElement,
1873
+ "mk-image-preview": MkImagePreviewElement,
1874
+ "mk-like-button": MkLikeButtonElement,
1875
+ "mk-notification-bell": MkNotificationBellElement,
1876
+ "mk-password-strength": MkPasswordStrengthElement,
1877
+ "mk-scratch-card": MkScratchCardElement,
1878
+ "mk-star-rating": MkStarRatingElement,
1879
+ "mk-swipe-actions": MkSwipeActionsElement,
1880
+ "mk-color-slider": MkColorSliderElement,
1881
+ "mk-color-area": MkColorAreaElement,
1882
+ "mk-color-field": MkColorFieldElement,
1883
+ "mk-color-picker": MkColorPickerElement,
1884
+ "mk-time-field": MkTimeFieldElement,
1885
+ "mk-range-calendar": MkRangeCalendarElement,
1886
+ "mk-date-range-picker": MkDateRangePickerElement,
1887
+ "mk-tooltip": MkTooltipElement,
1888
+ "mk-popover": MkPopoverElement,
1889
+ "mk-loading-button": MkLoadingButtonElement,
1890
+ "mk-breadcrumb": MkBreadcrumbElement,
1891
+ "mk-empty-state": MkEmptyStateElement,
1892
+ "mk-stat-card": MkStatCardElement,
1893
+ "mk-chart-tooltip": MkChartTooltipElement,
1894
+ "mk-multi-select": MkMultiSelectElement,
1895
+ "mk-tag-input": MkTagInputElement,
1896
+ "mk-date-time-picker": MkDateTimePickerElement,
1897
+ "mk-filter-builder": MkFilterBuilderElement,
1898
+ "mk-timeline": MkTimelineElement,
1899
+ "mk-activity-feed": MkActivityFeedElement,
1900
+ "mk-tree-view": MkTreeViewElement,
1901
+ "mk-file-explorer": MkFileExplorerElement,
1902
+ "mk-json-viewer": MkJsonViewerElement,
1903
+ "mk-virtual-list": MkVirtualListElement,
1904
+ "mk-resizable-panel": MkResizablePanelElement,
1905
+ "mk-split-view": MkSplitViewElement,
1906
+ "mk-data-table": MkDataTableElement,
1907
+ "mk-editable-table": MkEditableTableElement,
1908
+ "mk-rich-text-editor": MkRichTextEditorElement
449
1909
  // new-component:entries
450
1910
  };
451
1911
  function defineElements(names = Object.keys(ELEMENTS)) {
@@ -453,20 +1913,79 @@ function defineElements(names = Object.keys(ELEMENTS)) {
453
1913
  }
454
1914
  export {
455
1915
  ELEMENTS,
1916
+ MkActivityFeedElement,
1917
+ MkAttachmentElement,
1918
+ MkBreadcrumbElement,
1919
+ MkCalendarElement,
1920
+ MkChartElement,
1921
+ MkChartTooltipElement,
456
1922
  MkChatBackgroundElement,
457
1923
  MkChatElement,
1924
+ MkCodeBlockElement,
1925
+ MkColorAreaElement,
1926
+ MkColorFieldElement,
1927
+ MkColorPickerElement,
1928
+ MkColorSliderElement,
1929
+ MkCommandSearchElement,
1930
+ MkContextMenuElement,
1931
+ MkCreditCardElement,
458
1932
  MkCursorElement,
1933
+ MkDataTableElement,
1934
+ MkDateRangePickerElement,
1935
+ MkDateTimePickerElement,
459
1936
  MkDialogElement,
1937
+ MkDrawerElement,
1938
+ MkEditableTableElement,
460
1939
  MkElement,
1940
+ MkEmptyStateElement,
1941
+ MkFileExplorerElement,
1942
+ MkFilterBuilderElement,
1943
+ MkHoldConfirmElement,
1944
+ MkHoverCardElement,
1945
+ MkImagePreviewElement,
1946
+ MkInputOtpElement,
461
1947
  MkIslandElement,
1948
+ MkJsonViewerElement,
1949
+ MkLikeButtonElement,
1950
+ MkLinkPreviewElement,
1951
+ MkLoadingButtonElement,
462
1952
  MkMenuElement,
1953
+ MkMultiSelectElement,
463
1954
  MkNavElement,
1955
+ MkNotificationBellElement,
1956
+ MkPaginationElement,
1957
+ MkPasswordStrengthElement,
1958
+ MkPopoverElement,
1959
+ MkProgressElement,
1960
+ MkQuantityElement,
1961
+ MkQuestionnaireElement,
1962
+ MkRangeCalendarElement,
1963
+ MkRangeSliderElement,
1964
+ MkResizablePanelElement,
1965
+ MkRichTextEditorElement,
1966
+ MkScratchCardElement,
1967
+ MkSkeletonElement,
1968
+ MkSlotPickerElement,
1969
+ MkSplitViewElement,
1970
+ MkStarRatingElement,
1971
+ MkStatCardElement,
464
1972
  MkStepsElement,
1973
+ MkStudioDockElement,
1974
+ MkSwipeActionsElement,
1975
+ MkTagInputElement,
465
1976
  MkThemePickerElement,
1977
+ MkTimeFieldElement,
1978
+ MkTimelineElement,
466
1979
  MkToasterElement,
1980
+ MkTooltipElement,
1981
+ MkTrailerElement,
1982
+ MkTreeViewElement,
1983
+ MkVirtualListElement,
467
1984
  SafeHTMLElement,
468
1985
  defineElement,
469
1986
  defineElements,
1987
+ defineStudioDock,
1988
+ defineTrailer,
470
1989
  toast
471
1990
  };
472
1991
  //# sourceMappingURL=index.js.map