microui-wc 0.1.1 → 0.1.2

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 (339) hide show
  1. package/AGENTS.md +71 -71
  2. package/CHANGELOG.md +1 -1
  3. package/README.md +14 -9
  4. package/dist/AGENTS.md +71 -71
  5. package/dist/README.md +14 -9
  6. package/dist/microui.css +1 -1
  7. package/dist/microui.esm.js.map +1 -1
  8. package/dist/microui.min.js.map +1 -1
  9. package/docs/getting-started.md +3 -3
  10. package/package.json +39 -11
  11. package/src/components/mu-schema-form.js +1 -1
  12. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -40
  13. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -33
  14. package/.github/PULL_REQUEST_TEMPLATE.md +0 -28
  15. package/.github/workflows/ci.yml +0 -42
  16. package/.github/workflows/deploy-pages.yml +0 -112
  17. package/CODE_OF_CONDUCT.md +0 -59
  18. package/CONTRIBUTING.md +0 -156
  19. package/SECURITY.md +0 -58
  20. package/app/.generated/routes/alerts.js +0 -8
  21. package/app/.generated/routes/avatars.js +0 -8
  22. package/app/.generated/routes/badges.js +0 -8
  23. package/app/.generated/routes/buttons.js +0 -10
  24. package/app/.generated/routes/cards.js +0 -10
  25. package/app/.generated/routes/checkboxes.js +0 -9
  26. package/app/.generated/routes/chips.js +0 -8
  27. package/app/.generated/routes/dropdowns.js +0 -9
  28. package/app/.generated/routes/home.js +0 -7
  29. package/app/.generated/routes/icons.js +0 -9
  30. package/app/.generated/routes/inputs.js +0 -10
  31. package/app/.generated/routes/installation.js +0 -7
  32. package/app/.generated/routes/layout.js +0 -9
  33. package/app/.generated/routes/modals.js +0 -9
  34. package/app/.generated/routes/navbar.js +0 -7
  35. package/app/.generated/routes/progress.js +0 -9
  36. package/app/.generated/routes/radios.js +0 -9
  37. package/app/.generated/routes/switches.js +0 -9
  38. package/app/.generated/routes/tabs.js +0 -8
  39. package/app/.generated/routes/toasts.js +0 -9
  40. package/app/index.html +0 -67
  41. package/app/pages/alerts.html +0 -23
  42. package/app/pages/avatars.html +0 -22
  43. package/app/pages/badges.html +0 -22
  44. package/app/pages/buttons.html +0 -71
  45. package/app/pages/cards.html +0 -54
  46. package/app/pages/checkboxes.html +0 -39
  47. package/app/pages/chips.html +0 -23
  48. package/app/pages/dropdowns.html +0 -41
  49. package/app/pages/home.html +0 -59
  50. package/app/pages/icons.html +0 -29
  51. package/app/pages/inputs.html +0 -66
  52. package/app/pages/installation.html +0 -34
  53. package/app/pages/layout.html +0 -30
  54. package/app/pages/modals.html +0 -21
  55. package/app/pages/navbar.html +0 -22
  56. package/app/pages/progress.html +0 -35
  57. package/app/pages/radios.html +0 -40
  58. package/app/pages/switches.html +0 -39
  59. package/app/pages/tabs.html +0 -30
  60. package/app/pages/toasts.html +0 -22
  61. package/app-dist/index.html +0 -67
  62. package/app-dist/pages/alerts.html +0 -23
  63. package/app-dist/pages/avatars.html +0 -22
  64. package/app-dist/pages/badges.html +0 -22
  65. package/app-dist/pages/buttons.html +0 -71
  66. package/app-dist/pages/cards.html +0 -54
  67. package/app-dist/pages/checkboxes.html +0 -39
  68. package/app-dist/pages/chips.html +0 -23
  69. package/app-dist/pages/dropdowns.html +0 -41
  70. package/app-dist/pages/home.html +0 -59
  71. package/app-dist/pages/icons.html +0 -29
  72. package/app-dist/pages/inputs.html +0 -66
  73. package/app-dist/pages/installation.html +0 -34
  74. package/app-dist/pages/layout.html +0 -30
  75. package/app-dist/pages/modals.html +0 -21
  76. package/app-dist/pages/navbar.html +0 -22
  77. package/app-dist/pages/progress.html +0 -35
  78. package/app-dist/pages/radios.html +0 -40
  79. package/app-dist/pages/switches.html +0 -39
  80. package/app-dist/pages/tabs.html +0 -30
  81. package/app-dist/pages/toasts.html +0 -22
  82. package/app-dist/pages.json +0 -217
  83. package/app-dist/routes/alerts.js +0 -5
  84. package/app-dist/routes/avatars.js +0 -1
  85. package/app-dist/routes/badges.js +0 -1
  86. package/app-dist/routes/buttons.js +0 -1
  87. package/app-dist/routes/cards.js +0 -1
  88. package/app-dist/routes/checkboxes.js +0 -9
  89. package/app-dist/routes/chips.js +0 -4
  90. package/app-dist/routes/chunk-019e5e2f.js +0 -5
  91. package/app-dist/routes/chunk-0m4j19yd.js +0 -2
  92. package/app-dist/routes/chunk-0tmmp5q0.js +0 -1
  93. package/app-dist/routes/chunk-10xn709r.js +0 -1
  94. package/app-dist/routes/chunk-15m2qcda.js +0 -2
  95. package/app-dist/routes/chunk-1bh8g23n.js +0 -1
  96. package/app-dist/routes/chunk-1vg0v937.js +0 -1
  97. package/app-dist/routes/chunk-1zvcgy3j.js +0 -1
  98. package/app-dist/routes/chunk-2afb0861.js +0 -1
  99. package/app-dist/routes/chunk-2c6ttpzt.js +0 -5
  100. package/app-dist/routes/chunk-3dy30fhs.js +0 -1
  101. package/app-dist/routes/chunk-426dnces.js +0 -13
  102. package/app-dist/routes/chunk-44kgxery.js +0 -1
  103. package/app-dist/routes/chunk-47fdnejd.js +0 -33
  104. package/app-dist/routes/chunk-49a6t2vq.js +0 -1
  105. package/app-dist/routes/chunk-4fe1rm5b.js +0 -1
  106. package/app-dist/routes/chunk-4ggmvkta.js +0 -33
  107. package/app-dist/routes/chunk-4vkz81q7.js +0 -33
  108. package/app-dist/routes/chunk-4w4tmj8f.js +0 -31
  109. package/app-dist/routes/chunk-532s62kr.js +0 -31
  110. package/app-dist/routes/chunk-5hm3bssy.js +0 -33
  111. package/app-dist/routes/chunk-5vrh24hc.js +0 -1
  112. package/app-dist/routes/chunk-61pcg25a.js +0 -1
  113. package/app-dist/routes/chunk-6nfhygvf.js +0 -1
  114. package/app-dist/routes/chunk-700e7je6.js +0 -33
  115. package/app-dist/routes/chunk-7fsn17kg.js +0 -1
  116. package/app-dist/routes/chunk-7k789b32.js +0 -1
  117. package/app-dist/routes/chunk-7r46q0ys.js +0 -36
  118. package/app-dist/routes/chunk-86fmc1fr.js +0 -5
  119. package/app-dist/routes/chunk-8qth37vw.js +0 -1
  120. package/app-dist/routes/chunk-924wv8n0.js +0 -1
  121. package/app-dist/routes/chunk-9mbhgxk9.js +0 -1
  122. package/app-dist/routes/chunk-a216hyd9.js +0 -1
  123. package/app-dist/routes/chunk-akzxykh9.js +0 -33
  124. package/app-dist/routes/chunk-b3dcvy8c.js +0 -1
  125. package/app-dist/routes/chunk-b74zahz5.js +0 -31
  126. package/app-dist/routes/chunk-bftj53p2.js +0 -5
  127. package/app-dist/routes/chunk-c01hnz3e.js +0 -1
  128. package/app-dist/routes/chunk-d8pvv5km.js +0 -1
  129. package/app-dist/routes/chunk-dev0aezr.js +0 -2
  130. package/app-dist/routes/chunk-dh6vnv0e.js +0 -1
  131. package/app-dist/routes/chunk-dn2cbpva.js +0 -36
  132. package/app-dist/routes/chunk-dvn0my90.js +0 -1
  133. package/app-dist/routes/chunk-dvq8mnve.js +0 -36
  134. package/app-dist/routes/chunk-e8c2gc4d.js +0 -5
  135. package/app-dist/routes/chunk-ejf9ak2x.js +0 -1
  136. package/app-dist/routes/chunk-f083m55s.js +0 -1
  137. package/app-dist/routes/chunk-fnrj28s1.js +0 -31
  138. package/app-dist/routes/chunk-fvg3yjdp.js +0 -31
  139. package/app-dist/routes/chunk-g7k381n1.js +0 -1
  140. package/app-dist/routes/chunk-h01kq2ae.js +0 -13
  141. package/app-dist/routes/chunk-h4dk761v.js +0 -5
  142. package/app-dist/routes/chunk-hmx91z2x.js +0 -5
  143. package/app-dist/routes/chunk-hxbg4m42.js +0 -36
  144. package/app-dist/routes/chunk-jbjnfp2b.js +0 -2
  145. package/app-dist/routes/chunk-jxtz5vv6.js +0 -36
  146. package/app-dist/routes/chunk-jxzcs0ey.js +0 -36
  147. package/app-dist/routes/chunk-kt7wwhcx.js +0 -1
  148. package/app-dist/routes/chunk-kzptszyc.js +0 -33
  149. package/app-dist/routes/chunk-mhgca4w4.js +0 -2
  150. package/app-dist/routes/chunk-mhswxa20.js +0 -1
  151. package/app-dist/routes/chunk-n8zfeex6.js +0 -1
  152. package/app-dist/routes/chunk-pee47b2r.js +0 -1
  153. package/app-dist/routes/chunk-pesmw829.js +0 -1
  154. package/app-dist/routes/chunk-pgc4c6f3.js +0 -36
  155. package/app-dist/routes/chunk-q8egegm1.js +0 -1
  156. package/app-dist/routes/chunk-q9mn2qyq.js +0 -36
  157. package/app-dist/routes/chunk-qh0rtaf3.js +0 -5
  158. package/app-dist/routes/chunk-qqhmk6ye.js +0 -2
  159. package/app-dist/routes/chunk-qrxygmf7.js +0 -33
  160. package/app-dist/routes/chunk-r46yzksx.js +0 -36
  161. package/app-dist/routes/chunk-rgpbw2w0.js +0 -5
  162. package/app-dist/routes/chunk-rnpzv3d8.js +0 -2
  163. package/app-dist/routes/chunk-s5v8cv05.js +0 -2
  164. package/app-dist/routes/chunk-sbwn5bpc.js +0 -1
  165. package/app-dist/routes/chunk-sqbg8jbt.js +0 -33
  166. package/app-dist/routes/chunk-sv8dqnf7.js +0 -1
  167. package/app-dist/routes/chunk-t67sw3za.js +0 -1
  168. package/app-dist/routes/chunk-tjdpqwdf.js +0 -31
  169. package/app-dist/routes/chunk-tq2mfghg.js +0 -1
  170. package/app-dist/routes/chunk-ttn10vt6.js +0 -1
  171. package/app-dist/routes/chunk-v2hzpjxr.js +0 -1
  172. package/app-dist/routes/chunk-wfjjkw9y.js +0 -1
  173. package/app-dist/routes/chunk-wt8cxzmf.js +0 -31
  174. package/app-dist/routes/chunk-x45d372k.js +0 -5
  175. package/app-dist/routes/chunk-y3wsazkt.js +0 -1
  176. package/app-dist/routes/chunk-y7pmgc7t.js +0 -33
  177. package/app-dist/routes/chunk-zefdt2q3.js +0 -31
  178. package/app-dist/routes/dropdowns.js +0 -6
  179. package/app-dist/routes/home.js +0 -1
  180. package/app-dist/routes/icons.js +0 -1
  181. package/app-dist/routes/inputs.js +0 -12
  182. package/app-dist/routes/installation.js +0 -1
  183. package/app-dist/routes/layout.js +0 -1
  184. package/app-dist/routes/modals.js +0 -7
  185. package/app-dist/routes/navbar.js +0 -1
  186. package/app-dist/routes/progress.js +0 -1
  187. package/app-dist/routes/radios.js +0 -6
  188. package/app-dist/routes/switches.js +0 -6
  189. package/app-dist/routes/tabs.js +0 -1
  190. package/app-dist/routes/toasts.js +0 -16
  191. package/assets/fonts/material-symbols-mini.woff2 +0 -0
  192. package/assets/fonts/material-symbols.woff2 +0 -0
  193. package/assets/fonts/roboto-400.woff2 +0 -0
  194. package/assets/fonts/roboto-500.woff2 +0 -0
  195. package/assets/fonts/roboto-700.woff2 +0 -0
  196. package/assets/logo-banner-400.jpg +0 -0
  197. package/assets/logo-banner-400.webp +0 -0
  198. package/assets/logo-banner-800.webp +0 -0
  199. package/assets/logo-banner.jpg +0 -0
  200. package/assets/logo-icon-64.jpg +0 -0
  201. package/assets/logo-icon-64.webp +0 -0
  202. package/assets/logo-icon.jpg +0 -0
  203. package/assets/logo-square.jpg +0 -0
  204. package/bun.lock +0 -312
  205. package/bunfig.toml +0 -4
  206. package/custom-elements.json +0 -1916
  207. package/demo/api/sample-data.json +0 -38
  208. package/demo/content/alerts.html +0 -115
  209. package/demo/content/avatars.html +0 -70
  210. package/demo/content/badges.html +0 -65
  211. package/demo/content/buttons.html +0 -188
  212. package/demo/content/callouts.html +0 -91
  213. package/demo/content/cards.html +0 -121
  214. package/demo/content/checkboxes.html +0 -178
  215. package/demo/content/chips.html +0 -67
  216. package/demo/content/codeblocks.html +0 -101
  217. package/demo/content/confirms.html +0 -115
  218. package/demo/content/datatables.html +0 -149
  219. package/demo/content/dividers.html +0 -119
  220. package/demo/content/dropdowns.html +0 -89
  221. package/demo/content/enterprise.html +0 -252
  222. package/demo/content/home.html +0 -149
  223. package/demo/content/icons.html +0 -89
  224. package/demo/content/inputs.html +0 -135
  225. package/demo/content/installation.html +0 -16
  226. package/demo/content/layout.html +0 -136
  227. package/demo/content/modals.html +0 -141
  228. package/demo/content/navbar.html +0 -70
  229. package/demo/content/progress.html +0 -119
  230. package/demo/content/radios.html +0 -88
  231. package/demo/content/skeletons.html +0 -109
  232. package/demo/content/spinners.html +0 -96
  233. package/demo/content/switches.html +0 -84
  234. package/demo/content/tables.html +0 -124
  235. package/demo/content/tabs.html +0 -85
  236. package/demo/content/toasts.html +0 -116
  237. package/demo/content/tooltips.html +0 -107
  238. package/demo/content/virtual-lists.html +0 -233
  239. package/demo/favicon.ico +0 -0
  240. package/demo/favicon.png +0 -0
  241. package/demo/full.html +0 -52
  242. package/demo/iife.html +0 -46
  243. package/demo/manifest.json +0 -34
  244. package/demo/pages/datatable-demo.html +0 -237
  245. package/demo/pages/prompt-ui-demo.html +0 -218
  246. package/demo/pages/responsive-demo.html +0 -122
  247. package/demo/pages/schema-form-demo.html +0 -270
  248. package/demo/robots.txt +0 -6
  249. package/demo/shell.html +0 -712
  250. package/demo/sw.js +0 -387
  251. package/lighthouse-audit.mjs +0 -113
  252. package/scripts/analyze-components.js +0 -105
  253. package/scripts/build-app.js +0 -193
  254. package/scripts/build-framework.js +0 -444
  255. package/scripts/build-utils.js +0 -101
  256. package/scripts/test-isolated.js +0 -151
  257. package/server.js +0 -256
  258. package/tests/agents/agent-integration.test.js +0 -76
  259. package/tests/benchmark.html +0 -296
  260. package/tests/build/scan-components.test.js +0 -173
  261. package/tests/components/all-components.test.js +0 -245
  262. package/tests/components/all-missing-components.test.js +0 -574
  263. package/tests/components/mu-alert.test.js +0 -113
  264. package/tests/components/mu-avatar.test.js +0 -148
  265. package/tests/components/mu-badge.test.js +0 -92
  266. package/tests/components/mu-button.test.js +0 -112
  267. package/tests/components/mu-card.test.js +0 -89
  268. package/tests/components/mu-checkbox.test.js +0 -158
  269. package/tests/components/mu-chip.test.js +0 -118
  270. package/tests/components/mu-container.test.js +0 -120
  271. package/tests/components/mu-divider.test.js +0 -98
  272. package/tests/components/mu-drawer-item.test.js +0 -199
  273. package/tests/components/mu-drawer.test.js +0 -96
  274. package/tests/components/mu-dropdown.test.js +0 -125
  275. package/tests/components/mu-form.test.js +0 -138
  276. package/tests/components/mu-grid.test.js +0 -135
  277. package/tests/components/mu-icon.test.js +0 -110
  278. package/tests/components/mu-input.test.js +0 -131
  279. package/tests/components/mu-lazy.test.js +0 -103
  280. package/tests/components/mu-modal.test.js +0 -275
  281. package/tests/components/mu-navbar.test.js +0 -101
  282. package/tests/components/mu-progress.test.js +0 -115
  283. package/tests/components/mu-radio.test.js +0 -114
  284. package/tests/components/mu-repeat.test.js +0 -106
  285. package/tests/components/mu-sidebar.test.js +0 -126
  286. package/tests/components/mu-skeleton.test.js +0 -162
  287. package/tests/components/mu-stack.test.js +0 -143
  288. package/tests/components/mu-switch.test.js +0 -292
  289. package/tests/components/mu-table.test.js +0 -124
  290. package/tests/components/mu-tabs.test.js +0 -104
  291. package/tests/components/mu-textarea.test.js +0 -115
  292. package/tests/components/mu-toast.test.js +0 -321
  293. package/tests/components/mu-tooltip.test.js +0 -133
  294. package/tests/components/mu-virtual-list.test.js +0 -109
  295. package/tests/core/MuElement.test.js +0 -120
  296. package/tests/core/agent-api.test.js +0 -125
  297. package/tests/core/all-core-modules.test.js +0 -442
  298. package/tests/core/bus.test.js +0 -364
  299. package/tests/core/component-schema.test.js +0 -160
  300. package/tests/core/feature-registry.test.js +0 -198
  301. package/tests/core/form-state.test.js +0 -167
  302. package/tests/core/http.test.js +0 -119
  303. package/tests/core/keyboard.test.js +0 -319
  304. package/tests/core/layers.test.js +0 -129
  305. package/tests/core/namespaced-stores.test.js +0 -114
  306. package/tests/core/render.test.js +0 -121
  307. package/tests/core/ripple.test.js +0 -131
  308. package/tests/core/router.test.js +0 -89
  309. package/tests/core/scheduler.test.js +0 -121
  310. package/tests/core/signals.test.js +0 -128
  311. package/tests/core/store.test.js +0 -171
  312. package/tests/core/transitions.test.js +0 -82
  313. package/tests/e2e/accessibility-harness.html +0 -58
  314. package/tests/e2e/accessibility.test.js +0 -401
  315. package/tests/e2e/agent-features.test.js +0 -372
  316. package/tests/e2e/card-spacing.test.js +0 -287
  317. package/tests/e2e/components.test.js +0 -439
  318. package/tests/e2e/demo-routes.test.js +0 -478
  319. package/tests/e2e/layout-css-fallback.test.js +0 -334
  320. package/tests/e2e/mu-alert.e2e.test.js +0 -111
  321. package/tests/e2e/mu-checkbox.test.js +0 -489
  322. package/tests/e2e/mu-chip.test.js +0 -347
  323. package/tests/e2e/mu-form.test.js +0 -499
  324. package/tests/e2e/mu-icon.test.js +0 -114
  325. package/tests/e2e/mu-radio.test.js +0 -113
  326. package/tests/e2e/mu-skeleton.test.js +0 -140
  327. package/tests/e2e/mu-switch.test.js +0 -415
  328. package/tests/e2e/mu-tabs.test.js +0 -494
  329. package/tests/e2e/mu-textarea.test.js +0 -242
  330. package/tests/e2e/mu-virtual-list.test.js +0 -427
  331. package/tests/e2e/perf-memory.test.js +0 -161
  332. package/tests/e2e/puppeteer-helper.js +0 -137
  333. package/tests/e2e/puppeteer.test.js +0 -226
  334. package/tests/e2e/pwa.test.js +0 -261
  335. package/tests/e2e/test-harness.html +0 -319
  336. package/tests/manual/test-components.html +0 -120
  337. package/tests/memory-test.html +0 -309
  338. package/tests/setup-dom.js +0 -93
  339. package/tests/visual-test.html +0 -301
@@ -1,149 +0,0 @@
1
- <div class="page active">
2
- <h1 class="page-title">DataTable</h1>
3
- <p class="page-subtitle">
4
- <code>&lt;mu-datatable&gt;</code> is an AI-First smart data table with
5
- built-in sorting, pagination, filtering, and row selection.
6
- </p>
7
-
8
- <mu-tabs active="0" id="datatable-doc-tabs" style="margin-bottom: 24px;">
9
- <mu-tab>OVERVIEW</mu-tab>
10
- <mu-tab>API</mu-tab>
11
- <mu-tab>STYLING</mu-tab>
12
- <mu-tab>EXAMPLES</mu-tab>
13
- </mu-tabs>
14
-
15
- <div id="datatable-overview" class="doc-tab-content">
16
- <mu-example title="Sortable DataTable with pagination">
17
- <div slot="demo">
18
- <mu-datatable id="demo-datatable" columns='[
19
- {"field": "name", "label": "Name", "sortable": true},
20
- {"field": "email", "label": "Email"},
21
- {"field": "role", "label": "Role", "sortable": true}
22
- ]' page-size="5" sortable filterable>
23
- </mu-datatable>
24
- </div>
25
- <div slot="code">&lt;mu-datatable
26
- columns='[{"field":"name","label":"Name","sortable":true},...]'
27
- page-size="5"
28
- sortable
29
- filterable&gt;
30
- &lt;/mu-datatable&gt;
31
-
32
- &lt;script&gt;
33
- document.querySelector('mu-datatable').setData(usersArray);
34
- &lt;/script&gt;</div>
35
- </mu-example>
36
-
37
- <script>
38
- // Initialize DataTable demo data after content loads
39
- setTimeout(() => {
40
- const usersData = [
41
- { name: 'John Doe', email: 'john@example.com', role: 'Admin' },
42
- { name: 'Jane Smith', email: 'jane@example.com', role: 'Editor' },
43
- { name: 'Bob Johnson', email: 'bob@example.com', role: 'Viewer' },
44
- { name: 'Alice Brown', email: 'alice@example.com', role: 'Admin' },
45
- { name: 'Charlie Wilson', email: 'charlie@example.com', role: 'Editor' },
46
- { name: 'Diana Ross', email: 'diana@example.com', role: 'Viewer' },
47
- { name: 'Edward King', email: 'edward@example.com', role: 'Editor' }
48
- ];
49
- const productsData = [
50
- { product: 'Widget Pro', price: '$99.00', stock: 42 },
51
- { product: 'Gadget Max', price: '$149.00', stock: 18 },
52
- { product: 'Tool Kit', price: '$79.00', stock: 56 },
53
- { product: 'Device X', price: '$199.00', stock: 7 }
54
- ];
55
- const dt1 = document.getElementById('demo-datatable');
56
- const dt2 = document.getElementById('demo-datatable-selectable');
57
- if (dt1 && typeof dt1.setData === 'function') dt1.setData(usersData);
58
- if (dt2 && typeof dt2.setData === 'function') dt2.setData(productsData);
59
- }, 100);
60
- </script>
61
-
62
- <div class="component-section">
63
- <h2 class="section-title">Key Features</h2>
64
- <mu-stack gap="sm">
65
- <p style="color: var(--md-sys-color-on-surface-variant); line-height: 1.6;">
66
- <strong>Sorting:</strong> Click column headers to sort ascending/descending
67
- </p>
68
- <p style="color: var(--md-sys-color-on-surface-variant); line-height: 1.6;">
69
- <strong>Pagination:</strong> Automatic page navigation with configurable page size
70
- </p>
71
- <p style="color: var(--md-sys-color-on-surface-variant); line-height: 1.6;">
72
- <strong>Filtering:</strong> Real-time search across all columns
73
- </p>
74
- <p style="color: var(--md-sys-color-on-surface-variant); line-height: 1.6;">
75
- <strong>Selection:</strong> Checkbox selection with "select all" support
76
- </p>
77
- </mu-stack>
78
- </div>
79
- </div>
80
-
81
- <div id="datatable-api" class="doc-tab-content" style="display: none;">
82
- <div class="component-section">
83
- <h2 class="section-title">Attributes</h2>
84
- <mu-api-table type="attributes">
85
- <mu-api-row name="columns" type="JSON string" default="[]">Array of column definitions with field,
86
- label, sortable</mu-api-row>
87
- <mu-api-row name="page-size" type="number" default="10">Rows per page</mu-api-row>
88
- <mu-api-row name="sortable" type="boolean" default="false">Enable column sorting</mu-api-row>
89
- <mu-api-row name="filterable" type="boolean" default="false">Enable search filtering</mu-api-row>
90
- <mu-api-row name="selectable" type="boolean" default="false">Enable row selection</mu-api-row>
91
- <mu-api-row name="empty-message" type="string" default="'No data available'">Message when table is
92
- empty</mu-api-row>
93
- </mu-api-table>
94
- </div>
95
- <div class="component-section">
96
- <h2 class="section-title">Methods</h2>
97
- <mu-api-table type="methods">
98
- <mu-api-row name="setData(array)" type="void">Set table data programmatically</mu-api-row>
99
- <mu-api-row name="getData()" type="Array">Get current data</mu-api-row>
100
- <mu-api-row name="sortBy(field, dir)" type="void">Sort by field ('asc' or 'desc')</mu-api-row>
101
- <mu-api-row name="filter(query)" type="void">Filter data by search query</mu-api-row>
102
- <mu-api-row name="goToPage(n)" type="void">Navigate to page n</mu-api-row>
103
- <mu-api-row name="getSelectedRows()" type="Array">Get selected row objects</mu-api-row>
104
- <mu-api-row name="getPageInfo()" type="Object">Get {page, pageSize, totalPages, totalRows}</mu-api-row>
105
- </mu-api-table>
106
- </div>
107
- <div class="component-section">
108
- <h2 class="section-title">Events</h2>
109
- <mu-api-table type="events">
110
- <mu-api-row name="mu-sort-change" type="CustomEvent">Fired when sort state changes</mu-api-row>
111
- <mu-api-row name="mu-page-change" type="CustomEvent">Fired when page changes</mu-api-row>
112
- <mu-api-row name="mu-selection-change" type="CustomEvent">Fired when selection changes</mu-api-row>
113
- <mu-api-row name="mu-data-change" type="CustomEvent">Fired when data is set</mu-api-row>
114
- </mu-api-table>
115
- </div>
116
- </div>
117
-
118
- <div id="datatable-styling" class="doc-tab-content" style="display: none;">
119
- <div class="component-section">
120
- <h2 class="section-title">CSS Classes</h2>
121
- <mu-api-table type="tokens">
122
- <mu-api-row name=".mu-datatable-wrapper" default="">Main container</mu-api-row>
123
- <mu-api-row name=".mu-datatable-table" default="">Table element</mu-api-row>
124
- <mu-api-row name=".mu-datatable-sortable" default="">Sortable header cell</mu-api-row>
125
- <mu-api-row name=".mu-datatable-sorted" default="">Currently sorted column</mu-api-row>
126
- <mu-api-row name=".mu-datatable-selected" default="">Selected row</mu-api-row>
127
- <mu-api-row name=".mu-datatable-pagination" default="">Pagination container</mu-api-row>
128
- </mu-api-table>
129
- </div>
130
- </div>
131
-
132
- <div id="datatable-examples" class="doc-tab-content" style="display: none;">
133
- <mu-example title="With row selection">
134
- <div slot="demo">
135
- <mu-datatable id="demo-datatable-selectable" columns='[
136
- {"field": "product", "label": "Product"},
137
- {"field": "price", "label": "Price", "sortable": true},
138
- {"field": "stock", "label": "Stock", "sortable": true}
139
- ]' page-size="3" sortable selectable>
140
- </mu-datatable>
141
- </div>
142
- <div slot="code">&lt;mu-datatable
143
- columns='[...]'
144
- sortable
145
- selectable&gt;
146
- &lt;/mu-datatable&gt;</div>
147
- </mu-example>
148
- </div>
149
- </div>
@@ -1,119 +0,0 @@
1
- <div class="page active">
2
- <h1 class="page-title">Divider</h1>
3
- <p class="page-subtitle">
4
- <code>&lt;mu-divider&gt;</code> is a thin line that separates content into clear groups.
5
- Supports horizontal and vertical orientations.
6
- </p>
7
-
8
- <mu-tabs active="0" id="divider-doc-tabs" style="margin-bottom: 24px;">
9
- <mu-tab>OVERVIEW</mu-tab>
10
- <mu-tab>API</mu-tab>
11
- <mu-tab>STYLING</mu-tab>
12
- <mu-tab>EXAMPLES</mu-tab>
13
- </mu-tabs>
14
-
15
- <div id="divider-overview" class="doc-tab-content">
16
- <!-- Horizontal divider in list context -->
17
- <mu-example title="List with dividers">
18
- <div slot="demo">
19
- <mu-card variant="outlined" style="max-width: 320px;">
20
- <mu-stack gap="0">
21
- <mu-stack direction="row" gap="md" align="center" style="padding: 12px 16px;">
22
- <mu-icon name="person" style="color: var(--md-sys-color-primary);"></mu-icon>
23
- <span>John Doe</span>
24
- </mu-stack>
25
- <mu-divider inset></mu-divider>
26
- <mu-stack direction="row" gap="md" align="center" style="padding: 12px 16px;">
27
- <mu-icon name="person" style="color: var(--md-sys-color-primary);"></mu-icon>
28
- <span>Jane Smith</span>
29
- </mu-stack>
30
- <mu-divider inset></mu-divider>
31
- <mu-stack direction="row" gap="md" align="center" style="padding: 12px 16px;">
32
- <mu-icon name="person" style="color: var(--md-sys-color-primary);"></mu-icon>
33
- <span>Bob Wilson</span>
34
- </mu-stack>
35
- </mu-stack>
36
- </mu-card>
37
- </div>
38
- <div slot="code">&lt;mu-stack gap="0"&gt;
39
- &lt;div&gt;Item 1&lt;/div&gt;
40
- &lt;mu-divider inset&gt;&lt;/mu-divider&gt;
41
- &lt;div&gt;Item 2&lt;/div&gt;
42
- &lt;/mu-stack&gt;</div>
43
- </mu-example>
44
-
45
- <!-- Vertical divider in toolbar -->
46
- <mu-example title="Toolbar with vertical divider">
47
- <div slot="demo">
48
- <mu-card variant="filled" style="display: inline-block; padding: 12px 16px;">
49
- <mu-stack direction="row" gap="lg" align="center">
50
- <mu-stack direction="row" gap="sm" align="center">
51
- <mu-icon name="edit" style="cursor: pointer;"></mu-icon>
52
- <mu-icon name="delete" style="cursor: pointer;"></mu-icon>
53
- </mu-stack>
54
- <mu-divider vertical></mu-divider>
55
- <mu-icon name="settings" style="cursor: pointer;"></mu-icon>
56
- </mu-stack>
57
- </mu-card>
58
- </div>
59
- <div slot="code">&lt;mu-stack direction="row" align="center"&gt;
60
- &lt;mu-icon name="edit"&gt;&lt;/mu-icon&gt;
61
- &lt;mu-icon name="delete"&gt;&lt;/mu-icon&gt;
62
- &lt;mu-divider vertical&gt;&lt;/mu-divider&gt;
63
- &lt;mu-icon name="settings"&gt;&lt;/mu-icon&gt;
64
- &lt;/mu-stack&gt;</div>
65
- </mu-example>
66
-
67
- <div class="component-section">
68
- <h2 class="section-title">When to use</h2>
69
- <p style="color: var(--md-sys-color-on-surface-variant); line-height: 1.6;">
70
- Use dividers to separate content into logical groups. They're ideal for lists,
71
- toolbars, and card sections. Add the <code>inset</code> attribute when dividing
72
- items with leading icons to align with the content.
73
- </p>
74
- </div>
75
- </div>
76
-
77
- <div id="divider-api" class="doc-tab-content" style="display: none;">
78
- <div class="component-section">
79
- <h2 class="section-title">Attributes</h2>
80
- <mu-api-table type="attributes">
81
- <mu-api-row name="vertical" type="boolean" default="false">Renders as vertical divider</mu-api-row>
82
- <mu-api-row name="inset" type="boolean" default="false">Adds padding on sides</mu-api-row>
83
- </mu-api-table>
84
- </div>
85
- </div>
86
-
87
- <div id="divider-styling" class="doc-tab-content" style="display: none;">
88
- <div class="component-section">
89
- <h2 class="section-title">CSS Custom Properties</h2>
90
- <mu-api-table type="tokens">
91
- <mu-api-row name="--md-sys-color-outline-variant" default="#cac4d0">Divider color</mu-api-row>
92
- </mu-api-table>
93
- </div>
94
- </div>
95
-
96
- <div id="divider-examples" class="doc-tab-content" style="display: none;">
97
- <mu-example title="Inset divider">
98
- <div slot="demo">
99
- <mu-stack gap="md">
100
- <p>Content above</p>
101
- <mu-divider inset></mu-divider>
102
- <p>Content below with inset</p>
103
- </mu-stack>
104
- </div>
105
- <div slot="code">&lt;mu-divider inset&gt;&lt;/mu-divider&gt;</div>
106
- </mu-example>
107
-
108
- <mu-example title="Vertical divider">
109
- <div slot="demo">
110
- <mu-stack direction="row" gap="md" align="center" style="height: 50px;">
111
- <span>Left</span>
112
- <mu-divider vertical></mu-divider>
113
- <span>Right</span>
114
- </mu-stack>
115
- </div>
116
- <div slot="code">&lt;mu-divider vertical&gt;&lt;/mu-divider&gt;</div>
117
- </mu-example>
118
- </div>
119
- </div>
@@ -1,89 +0,0 @@
1
- <!-- Dropdowns Content Fragment -->
2
- <div id="page-dropdowns" class="page active">
3
- <h1 class="page-title">Select / Dropdown</h1>
4
- <p class="page-subtitle">
5
- <code>&lt;mu-dropdown&gt;</code> allows users to choose from a predefined list of options.
6
- Similar to a native select, with MD3 styling and animations.
7
- </p>
8
-
9
- <mu-tabs active="0" id="dropdown-doc-tabs" style="margin-bottom: 24px;">
10
- <mu-tab>OVERVIEW</mu-tab>
11
- <mu-tab>API</mu-tab>
12
- <mu-tab>STYLING</mu-tab>
13
- <mu-tab>EXAMPLES</mu-tab>
14
- </mu-tabs>
15
-
16
- <div id="dropdown-overview" class="doc-tab-content">
17
- <mu-example title="Basic dropdown">
18
- <div slot="demo">
19
- <mu-dropdown placeholder="Select a fruit">
20
- <mu-option value="apple">Apple</mu-option>
21
- <mu-option value="banana">Banana</mu-option>
22
- <mu-option value="cherry">Cherry</mu-option>
23
- </mu-dropdown>
24
- </div>
25
-
26
- </mu-example>
27
-
28
- <div class="component-section"
29
- style="background: var(--md-sys-color-primary-container); border-left: 4px solid var(--md-sys-color-primary);">
30
- <h2 class="section-title" style="color: var(--md-sys-color-on-primary-container);">Accessibility
31
- </h2>
32
- <p style="color: var(--md-sys-color-on-primary-container); line-height: 1.6;">
33
- Uses <code>role="listbox"</code> with arrow key navigation.
34
- Options have <code>role="option"</code> with proper aria-selected states.
35
- </p>
36
- </div>
37
- </div>
38
-
39
- <div id="dropdown-api" class="doc-tab-content" style="display: none;">
40
- <div class="component-section">
41
- <h2 class="section-title">Attributes (mu-dropdown)</h2>
42
- <mu-api-table type="attributes">
43
- <mu-api-row name="placeholder" type="string" default="">Placeholder text when no
44
- selection</mu-api-row>
45
- <mu-api-row name="value" type="string" default="">Currently selected value</mu-api-row>
46
- <mu-api-row name="disabled" type="boolean" default="false">Whether dropdown is
47
- disabled</mu-api-row>
48
- </mu-api-table>
49
- </div>
50
- <div class="component-section">
51
- <h2 class="section-title">Attributes (mu-option)</h2>
52
- <mu-api-table type="attributes">
53
- <mu-api-row name="value" type="string" default="">Option value</mu-api-row>
54
- </mu-api-table>
55
- </div>
56
- <div class="component-section">
57
- <h2 class="section-title">Events</h2>
58
- <mu-api-table type="events">
59
- <mu-api-row name="mu-change" detail="{ value: string, label: string }">Emitted when
60
- selection changes</mu-api-row>
61
- </mu-api-table>
62
- </div>
63
- </div>
64
-
65
- <div id="dropdown-styling" class="doc-tab-content" style="display: none;">
66
- <div class="component-section">
67
- <h2 class="section-title">CSS Custom Properties</h2>
68
- <mu-api-table type="tokens">
69
- <mu-api-row name="--md-sys-color-surface-container" default="#f3edf7">Dropdown
70
- background</mu-api-row>
71
- <mu-api-row name="--md-sys-color-primary" default="#6750a4">Focus/selected
72
- color</mu-api-row>
73
- <mu-api-row name="--md-sys-color-outline" default="#79747e">Border color</mu-api-row>
74
- </mu-api-table>
75
- </div>
76
- </div>
77
-
78
- <div id="dropdown-examples" class="doc-tab-content" style="display: none;">
79
- <mu-example title="With preselected value">
80
- <div slot="demo">
81
- <mu-dropdown value="medium" placeholder="Size">
82
- <mu-option value="small">Small</mu-option>
83
- <mu-option value="medium">Medium</mu-option>
84
- <mu-option value="large">Large</mu-option>
85
- </mu-dropdown>
86
- </div>
87
- </mu-example>
88
- </div>
89
- </div>
@@ -1,252 +0,0 @@
1
- <!-- Enterprise Features Content Fragment -->
2
- <div id="page-enterprise" class="page active">
3
- <h1 class="page-title">Enterprise Features</h1>
4
- <p class="page-subtitle">
5
- Infrastructure for building large-scale, multi-team applications with microUI.
6
- </p>
7
-
8
- <!-- Documentation Tabs -->
9
- <mu-tabs active="0" id="enterprise-doc-tabs" style="margin-bottom: 24px;">
10
- <mu-tab>OVERVIEW</mu-tab>
11
- <mu-tab>API</mu-tab>
12
- <mu-tab>EXAMPLES</mu-tab>
13
- </mu-tabs>
14
-
15
- <!-- OVERVIEW Tab Content -->
16
- <div id="enterprise-overview" class="doc-tab-content">
17
- <div class="component-section"
18
- style="background: linear-gradient(135deg, var(--md-sys-color-tertiary-container), var(--md-sys-color-secondary-container));">
19
- <h2 class="section-title" style="color: var(--md-sys-color-on-tertiary-container);">🏗️ Built for Scale</h2>
20
- <mu-grid cols="2" gap="md" style="max-width: 800px;">
21
- <mu-card variant="elevated">
22
- <mu-stack direction="row" gap="sm" align="center">
23
- <mu-icon name="folder_managed"
24
- style="font-size: 32px; color: var(--md-sys-color-primary);"></mu-icon>
25
- <div>
26
- <strong>Namespaced Stores</strong>
27
- <p
28
- style="font-size: 14px; color: var(--md-sys-color-on-surface-variant); margin: 4px 0 0 0;">
29
- Isolated state per feature/team</p>
30
- </div>
31
- </mu-stack>
32
- </mu-card>
33
- <mu-card variant="elevated">
34
- <mu-stack direction="row" gap="sm" align="center">
35
- <mu-icon name="shield" style="font-size: 32px; color: var(--md-sys-color-primary);"></mu-icon>
36
- <div>
37
- <strong>Error Boundaries</strong>
38
- <p
39
- style="font-size: 14px; color: var(--md-sys-color-on-surface-variant); margin: 4px 0 0 0;">
40
- Graceful degradation</p>
41
- </div>
42
- </mu-stack>
43
- </mu-card>
44
- <mu-card variant="elevated">
45
- <mu-stack direction="row" gap="sm" align="center">
46
- <mu-icon name="apps" style="font-size: 32px; color: var(--md-sys-color-primary);"></mu-icon>
47
- <div>
48
- <strong>Feature Registry</strong>
49
- <p
50
- style="font-size: 14px; color: var(--md-sys-color-on-surface-variant); margin: 4px 0 0 0;">
51
- Multi-team organization</p>
52
- </div>
53
- </mu-stack>
54
- </mu-card>
55
- <mu-card variant="elevated">
56
- <mu-stack direction="row" gap="sm" align="center">
57
- <mu-icon name="monitoring"
58
- style="font-size: 32px; color: var(--md-sys-color-primary);"></mu-icon>
59
- <div>
60
- <strong>Observability</strong>
61
- <p
62
- style="font-size: 14px; color: var(--md-sys-color-on-surface-variant); margin: 4px 0 0 0;">
63
- State history & debugging</p>
64
- </div>
65
- </mu-stack>
66
- </mu-card>
67
- </mu-grid>
68
- </div>
69
-
70
- <div class="component-section"
71
- style="background: linear-gradient(135deg, rgba(0, 188, 212, 0.1), rgba(124, 77, 255, 0.1)); border: 2px solid rgba(0, 188, 212, 0.3);">
72
- <h2 class="section-title" style="display: flex; align-items: center; gap: 12px;">
73
- <mu-icon name="smart_toy" style="font-size: 28px;"></mu-icon>
74
- Agent Automation (v0.1.0)
75
- </h2>
76
- <p style="margin-bottom: 16px; color: var(--md-sys-color-on-surface-variant); line-height: 1.6;">
77
- 2026 features for multimodal AI agents: Visual Markers for screenshot parsing,
78
- Component Schema for type-safe code gen, and MCP Actions for standard protocols.
79
- </p>
80
- <mu-stack direction="row" gap="sm" style="flex-wrap: wrap;">
81
- <mu-chip variant="outlined">📸 Visual Markers</mu-chip>
82
- <mu-chip variant="outlined">📋 Component Schema</mu-chip>
83
- <mu-chip variant="outlined">📜 MCP Actions</mu-chip>
84
- </mu-stack>
85
- </div>
86
-
87
- <div class="component-section"
88
- style="background: var(--md-sys-color-primary-container); border-left: 4px solid var(--md-sys-color-primary);">
89
- <h2 class="section-title" style="color: var(--md-sys-color-on-primary-container);">When to Use</h2>
90
- <p style="color: var(--md-sys-color-on-primary-container); line-height: 1.6;">
91
- Enterprise features are designed for <strong>large-scale applications</strong> with multiple teams.
92
- Use namespaced stores to avoid state conflicts, error boundaries to prevent cascading failures,
93
- and the feature registry to organize code by domain.
94
- </p>
95
- </div>
96
- </div>
97
-
98
- <!-- API Tab Content -->
99
- <div id="enterprise-api" class="doc-tab-content" style="display: none;">
100
- <div class="component-section">
101
- <h2 class="section-title">Store Methods</h2>
102
- <mu-api-table type="methods">
103
- <mu-api-row name="createNamespacedStore(name, initial)" type="function" returns="Store">
104
- Creates an isolated store with the given namespace and initial state
105
- </mu-api-row>
106
- <mu-api-row name="getStore(name)" type="function" returns="Store | undefined">
107
- Retrieves a store by its namespace name
108
- </mu-api-row>
109
- <mu-api-row name="getAllStores()" type="function" returns="Record&lt;string, Store&gt;">
110
- Returns all registered namespaced stores
111
- </mu-api-row>
112
- <mu-api-row name="captureAppState()" type="function" returns="object">
113
- Serializes all store states for debugging or persistence
114
- </mu-api-row>
115
- <mu-api-row name="restoreAppState(snapshot)" type="function" returns="void">
116
- Restores all stores from a previously captured snapshot
117
- </mu-api-row>
118
- </mu-api-table>
119
- </div>
120
-
121
- <div class="component-section">
122
- <h2 class="section-title">Observability Methods</h2>
123
- <mu-api-table type="methods">
124
- <mu-api-row name="enableObservability()" type="function" returns="void">
125
- Starts tracking state changes for all stores
126
- </mu-api-row>
127
- <mu-api-row name="disableObservability()" type="function" returns="void">
128
- Stops tracking state changes
129
- </mu-api-row>
130
- <mu-api-row name="getStateHistory(namespace)" type="function" returns="Array&lt;{timestamp, state}&gt;">
131
- Returns the change history for a specific store
132
- </mu-api-row>
133
- <mu-api-row name="getErrors()" type="function" returns="Array&lt;Error&gt;">
134
- Returns all errors caught by error boundaries
135
- </mu-api-row>
136
- </mu-api-table>
137
- </div>
138
-
139
- <div class="component-section">
140
- <h2 class="section-title">Feature Registry Methods</h2>
141
- <mu-api-table type="methods">
142
- <mu-api-row name="createFeature(name, config)" type="function" returns="Feature">
143
- Registers a feature with routes, store, and components
144
- </mu-api-row>
145
- <mu-api-row name="getFeatures()" type="function" returns="Record&lt;string, Feature&gt;">
146
- Returns all registered features
147
- </mu-api-row>
148
- <mu-api-row name="getFeatureSummary()" type="function" returns="object">
149
- Returns an overview with stats for all features
150
- </mu-api-row>
151
- <mu-api-row name="getFeatureComponents(name)" type="function" returns="string[]">
152
- Returns component names registered to a feature
153
- </mu-api-row>
154
- </mu-api-table>
155
- </div>
156
-
157
- <div class="component-section">
158
- <h2 class="section-title">Agent Automation Methods</h2>
159
- <mu-api-table type="methods">
160
- <mu-api-row name="enableVisualMarkers(options)" type="function" returns="void">
161
- Adds visual markers (badges) to interactive elements for AI parsing
162
- </mu-api-row>
163
- <mu-api-row name="getMarkerElement(id)" type="function" returns="HTMLElement">
164
- Returns the element associated with a marker ID (e.g., 'B1')
165
- </mu-api-row>
166
- <mu-api-row name="getMarkerMap()" type="function" returns="Record&lt;string, MarkerInfo&gt;">
167
- Returns all marker-to-element mappings
168
- </mu-api-row>
169
- <mu-api-row name="getComponentSchema(tagName)" type="function" returns="JSONSchema">
170
- Returns the JSON schema for a component's properties and actions
171
- </mu-api-row>
172
- <mu-api-row name="getMCPActions()" type="function" returns="MCPAction[]">
173
- Returns standardized MCP actions for the current page
174
- </mu-api-row>
175
- </mu-api-table>
176
- </div>
177
- </div>
178
-
179
- <!-- EXAMPLES Tab Content -->
180
- <div id="enterprise-examples" class="doc-tab-content" style="display: none;">
181
- <mu-example title="Namespaced Store Demo">
182
- <div slot="demo">
183
- <mu-stack gap="md">
184
- <mu-stack direction="row" gap="md">
185
- <mu-button variant="filled" id="demo-create-store">Create Stores</mu-button>
186
- <mu-button variant="outlined" id="demo-capture-state">Capture State</mu-button>
187
- <mu-button variant="text" id="demo-clear-stores">Clear</mu-button>
188
- </mu-stack>
189
- <mu-card variant="outlined" id="store-demo-output"
190
- style="display: none; font-family: var(--md-sys-typescale-body-medium-font); padding: 16px; max-height: 200px; overflow: auto;">
191
- </mu-card>
192
- </mu-stack>
193
- </div>
194
- <div slot="code">// Create isolated stores for each feature
195
- const userStore = microUI.createNamespacedStore('user', {
196
- profile: { name: 'Demo User' },
197
- preferences: { theme: 'dark' }
198
- });
199
-
200
- const cartStore = microUI.createNamespacedStore('cart', {
201
- items: ['Item A', 'Item B'],
202
- total: 29.99
203
- });
204
-
205
- // Capture entire app state
206
- const snapshot = microUI.captureAppState();</div>
207
- </mu-example>
208
-
209
- <mu-example title="Visual Markers for AI Agents">
210
- <div slot="demo">
211
- <mu-stack gap="md">
212
- <mu-stack direction="row" gap="md" style="flex-wrap: wrap;">
213
- <mu-button variant="tonal" id="demo-visual-markers">📸 Enable Markers</mu-button>
214
- <mu-button variant="outlined" id="demo-get-schema">📋 Get Schema</mu-button>
215
- <mu-button variant="outlined" id="demo-mcp-actions">📜 MCP Actions</mu-button>
216
- </mu-stack>
217
- <mu-card variant="outlined" id="agent-demo-output"
218
- style="display: none; font-family: var(--md-sys-typescale-body-medium-font); padding: 16px; max-height: 200px; overflow: auto;">
219
- </mu-card>
220
- </mu-stack>
221
- </div>
222
- <div slot="code">// Enable visual markers for screenshot-based agents
223
- microUI.enableVisualMarkers({ style: 'badge' });
224
- // Agent sees: [B1] Save, [B2] Cancel, [I1] Email
225
-
226
- // Reference elements by marker ID
227
- microUI.getMarkerElement('B1').click();
228
-
229
- // Get component schema for code generation
230
- microUI.getComponentSchema('mu-button');
231
- // { properties: { variant: { enum: [...] } }, actions: ['click'] }</div>
232
- </mu-example>
233
-
234
- <mu-example title="Error Boundary">
235
- <div slot="demo">
236
- <mu-error-boundary
237
- fallback="<mu-alert severity='error'><strong>Error caught!</strong> The widget crashed but the app continues.</mu-alert>"
238
- id="demo-error-boundary">
239
- <mu-card variant="outlined" id="error-prone-card">
240
- <mu-stack direction="row" gap="md" align="center">
241
- <mu-icon name="verified" style="color: var(--md-sys-color-primary);"></mu-icon>
242
- <span>This component is protected by an error boundary</span>
243
- </mu-stack>
244
- </mu-card>
245
- </mu-error-boundary>
246
- </div>
247
- <div slot="code">&lt;mu-error-boundary fallback="&lt;p&gt;Something went wrong&lt;/p&gt;"&gt;
248
- &lt;mu-complex-widget&gt;&lt;/mu-complex-widget&gt;
249
- &lt;/mu-error-boundary&gt;</div>
250
- </mu-example>
251
- </div>
252
- </div>