@monkey-mini-app/dsh-mini-app 0.1.0 → 0.1.4

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 (317) hide show
  1. package/README.md +59 -0
  2. package/assets/apps-list.png +0 -0
  3. package/assets/complex-demo-app.png +0 -0
  4. package/assets/demo-app.png +0 -0
  5. package/assets/home.png +0 -0
  6. package/assets/sidebar-mode.png +0 -0
  7. package/lib/client.js +2024 -783
  8. package/lib/index.d.ts +5 -2
  9. package/lib/index.js +29 -16
  10. package/package.json +12 -10
  11. package/skills/monkey-mini-app/SKILL.md +182 -106
  12. package/skills/monkey-mini-app/references/catalog.md +236 -99
  13. package/skills/monkey-mini-app/references/contracts/accordion.md +30 -0
  14. package/skills/monkey-mini-app/references/contracts/activity-feed.md +12 -2
  15. package/skills/monkey-mini-app/references/contracts/alert-dialog.md +38 -0
  16. package/skills/monkey-mini-app/references/contracts/alert.md +38 -0
  17. package/skills/monkey-mini-app/references/contracts/app-shell.md +2 -2
  18. package/skills/monkey-mini-app/references/contracts/aspect-ratio.md +25 -0
  19. package/skills/monkey-mini-app/references/contracts/attachment-gallery.md +12 -2
  20. package/skills/monkey-mini-app/references/contracts/attachment.md +35 -0
  21. package/skills/monkey-mini-app/references/contracts/autocomplete.md +12 -2
  22. package/skills/monkey-mini-app/references/contracts/avatar.md +24 -0
  23. package/skills/monkey-mini-app/references/contracts/badge.md +26 -0
  24. package/skills/monkey-mini-app/references/contracts/breadcrumb.md +33 -0
  25. package/skills/monkey-mini-app/references/contracts/bubble.md +30 -0
  26. package/skills/monkey-mini-app/references/contracts/button-group.md +36 -0
  27. package/skills/monkey-mini-app/references/contracts/button.md +26 -0
  28. package/skills/monkey-mini-app/references/contracts/calendar.md +20 -0
  29. package/skills/monkey-mini-app/references/contracts/card.md +41 -0
  30. package/skills/monkey-mini-app/references/contracts/cascader.md +12 -2
  31. package/skills/monkey-mini-app/references/contracts/chart.md +32 -0
  32. package/skills/monkey-mini-app/references/contracts/checkbox.md +19 -0
  33. package/skills/monkey-mini-app/references/contracts/code-block.md +20 -2
  34. package/skills/monkey-mini-app/references/contracts/code-editor.md +30 -4
  35. package/skills/monkey-mini-app/references/contracts/collapsible.md +21 -0
  36. package/skills/monkey-mini-app/references/contracts/color-picker.md +12 -2
  37. package/skills/monkey-mini-app/references/contracts/combobox.md +34 -0
  38. package/skills/monkey-mini-app/references/contracts/command.md +41 -0
  39. package/skills/monkey-mini-app/references/contracts/comment-thread.md +12 -2
  40. package/skills/monkey-mini-app/references/contracts/commit-graph.md +50 -0
  41. package/skills/monkey-mini-app/references/contracts/confirm-dialog.md +20 -2
  42. package/skills/monkey-mini-app/references/contracts/context-menu.md +41 -0
  43. package/skills/monkey-mini-app/references/contracts/copyable.md +12 -2
  44. package/skills/monkey-mini-app/references/contracts/currency-input.md +12 -2
  45. package/skills/monkey-mini-app/references/contracts/dashboard-shell.md +41 -0
  46. package/skills/monkey-mini-app/references/contracts/data-grid.md +13 -6
  47. package/skills/monkey-mini-app/references/contracts/date-picker.md +20 -2
  48. package/skills/monkey-mini-app/references/contracts/date-range-picker.md +10 -2
  49. package/skills/monkey-mini-app/references/contracts/date-time-picker.md +20 -2
  50. package/skills/monkey-mini-app/references/contracts/date-time-range-picker.md +20 -2
  51. package/skills/monkey-mini-app/references/contracts/description-list.md +12 -2
  52. package/skills/monkey-mini-app/references/contracts/detail-panel.md +10 -2
  53. package/skills/monkey-mini-app/references/contracts/dialog.md +44 -0
  54. package/skills/monkey-mini-app/references/contracts/diff-viewer.md +21 -2
  55. package/skills/monkey-mini-app/references/contracts/donut-chart.md +14 -2
  56. package/skills/monkey-mini-app/references/contracts/drawer.md +29 -0
  57. package/skills/monkey-mini-app/references/contracts/dropdown-menu.md +49 -0
  58. package/skills/monkey-mini-app/references/contracts/duration-input.md +20 -2
  59. package/skills/monkey-mini-app/references/contracts/empty.md +40 -0
  60. package/skills/monkey-mini-app/references/contracts/env-badge.md +12 -2
  61. package/skills/monkey-mini-app/references/contracts/env-table.md +46 -0
  62. package/skills/monkey-mini-app/references/contracts/event-calendar.md +28 -20
  63. package/skills/monkey-mini-app/references/contracts/field.md +34 -0
  64. package/skills/monkey-mini-app/references/contracts/file-dropzone.md +20 -2
  65. package/skills/monkey-mini-app/references/contracts/file-tree.md +12 -2
  66. package/skills/monkey-mini-app/references/contracts/filter-bar.md +2 -2
  67. package/skills/monkey-mini-app/references/contracts/form-sheet.md +51 -0
  68. package/skills/monkey-mini-app/references/contracts/gantt.md +20 -2
  69. package/skills/monkey-mini-app/references/contracts/gauge.md +14 -2
  70. package/skills/monkey-mini-app/references/contracts/hover-card.md +21 -0
  71. package/skills/monkey-mini-app/references/contracts/input-group.md +24 -0
  72. package/skills/monkey-mini-app/references/contracts/input.md +33 -0
  73. package/skills/monkey-mini-app/references/contracts/item.md +36 -0
  74. package/skills/monkey-mini-app/references/contracts/jira-wiki.md +3 -4
  75. package/skills/monkey-mini-app/references/contracts/jql-input.md +15 -8
  76. package/skills/monkey-mini-app/references/contracts/json-viewer.md +20 -2
  77. package/skills/monkey-mini-app/references/contracts/kanban-issue-panel.md +12 -2
  78. package/skills/monkey-mini-app/references/contracts/kanban.md +10 -2
  79. package/skills/monkey-mini-app/references/contracts/kbd.md +20 -0
  80. package/skills/monkey-mini-app/references/contracts/label.md +33 -0
  81. package/skills/monkey-mini-app/references/contracts/list-detail.md +46 -0
  82. package/skills/monkey-mini-app/references/contracts/log-viewer.md +45 -4
  83. package/skills/monkey-mini-app/references/contracts/markdown-editor.md +20 -2
  84. package/skills/monkey-mini-app/references/contracts/markdown.md +12 -2
  85. package/skills/monkey-mini-app/references/contracts/marker.md +30 -0
  86. package/skills/monkey-mini-app/references/contracts/menubar.md +34 -0
  87. package/skills/monkey-mini-app/references/contracts/message-scroller.md +24 -0
  88. package/skills/monkey-mini-app/references/contracts/message.md +24 -0
  89. package/skills/monkey-mini-app/references/contracts/mini-calendar.md +20 -2
  90. package/skills/monkey-mini-app/references/contracts/native-select.md +21 -0
  91. package/skills/monkey-mini-app/references/contracts/navigation-menu.md +27 -0
  92. package/skills/monkey-mini-app/references/contracts/notification-center.md +12 -2
  93. package/skills/monkey-mini-app/references/contracts/number-field.md +20 -2
  94. package/skills/monkey-mini-app/references/contracts/page-header.md +2 -2
  95. package/skills/monkey-mini-app/references/contracts/pagination.md +33 -0
  96. package/skills/monkey-mini-app/references/contracts/password-field.md +12 -2
  97. package/skills/monkey-mini-app/references/contracts/phone-input.md +12 -2
  98. package/skills/monkey-mini-app/references/contracts/popover.md +32 -0
  99. package/skills/monkey-mini-app/references/contracts/progress-ring.md +14 -2
  100. package/skills/monkey-mini-app/references/contracts/progress.md +39 -0
  101. package/skills/monkey-mini-app/references/contracts/questionnaire.md +33 -0
  102. package/skills/monkey-mini-app/references/contracts/radar-chart.md +14 -2
  103. package/skills/monkey-mini-app/references/contracts/radio-group.md +20 -0
  104. package/skills/monkey-mini-app/references/contracts/rating.md +12 -2
  105. package/skills/monkey-mini-app/references/contracts/relative-date-picker.md +20 -2
  106. package/skills/monkey-mini-app/references/contracts/request-inspector.md +12 -2
  107. package/skills/monkey-mini-app/references/contracts/resizable.md +29 -0
  108. package/skills/monkey-mini-app/references/contracts/reveal.md +31 -0
  109. package/skills/monkey-mini-app/references/contracts/rich-text-editor.md +14 -2
  110. package/skills/monkey-mini-app/references/contracts/run-timeline.md +20 -2
  111. package/skills/monkey-mini-app/references/contracts/scroll-area.md +20 -0
  112. package/skills/monkey-mini-app/references/contracts/scrollspy.md +20 -2
  113. package/skills/monkey-mini-app/references/contracts/search-input.md +12 -2
  114. package/skills/monkey-mini-app/references/contracts/select.md +36 -0
  115. package/skills/monkey-mini-app/references/contracts/separator.md +27 -0
  116. package/skills/monkey-mini-app/references/contracts/settings-split.md +53 -0
  117. package/skills/monkey-mini-app/references/contracts/severity-chip.md +12 -2
  118. package/skills/monkey-mini-app/references/contracts/sheet.md +34 -0
  119. package/skills/monkey-mini-app/references/contracts/sidebar.md +42 -0
  120. package/skills/monkey-mini-app/references/contracts/skeleton.md +33 -0
  121. package/skills/monkey-mini-app/references/contracts/slider-range.md +12 -2
  122. package/skills/monkey-mini-app/references/contracts/slider.md +25 -0
  123. package/skills/monkey-mini-app/references/contracts/sortable-list.md +20 -2
  124. package/skills/monkey-mini-app/references/contracts/sparkline.md +13 -2
  125. package/skills/monkey-mini-app/references/contracts/spinner.md +31 -0
  126. package/skills/monkey-mini-app/references/contracts/stacked-bar-chart.md +17 -2
  127. package/skills/monkey-mini-app/references/contracts/stat-card.md +2 -2
  128. package/skills/monkey-mini-app/references/contracts/status-badge.md +2 -2
  129. package/skills/monkey-mini-app/references/contracts/stepper-item.md +39 -0
  130. package/skills/monkey-mini-app/references/contracts/stepper.md +38 -11
  131. package/skills/monkey-mini-app/references/contracts/switch.md +25 -0
  132. package/skills/monkey-mini-app/references/contracts/table-page.md +41 -0
  133. package/skills/monkey-mini-app/references/contracts/table.md +42 -0
  134. package/skills/monkey-mini-app/references/contracts/tabs.md +31 -0
  135. package/skills/monkey-mini-app/references/contracts/tag-input.md +12 -2
  136. package/skills/monkey-mini-app/references/contracts/terminal.md +13 -2
  137. package/skills/monkey-mini-app/references/contracts/test-step-list.md +12 -2
  138. package/skills/monkey-mini-app/references/contracts/textarea.md +25 -0
  139. package/skills/monkey-mini-app/references/contracts/time-picker.md +18 -2
  140. package/skills/monkey-mini-app/references/contracts/time-range-picker.md +20 -2
  141. package/skills/monkey-mini-app/references/contracts/time-wheel.md +6 -2
  142. package/skills/monkey-mini-app/references/contracts/timeline.md +20 -2
  143. package/skills/monkey-mini-app/references/contracts/timezone-select.md +20 -2
  144. package/skills/monkey-mini-app/references/contracts/toast.md +39 -0
  145. package/skills/monkey-mini-app/references/contracts/toggle-group.md +28 -0
  146. package/skills/monkey-mini-app/references/contracts/toggle.md +26 -0
  147. package/skills/monkey-mini-app/references/contracts/tooltip.md +30 -0
  148. package/skills/monkey-mini-app/references/contracts/transfer.md +12 -2
  149. package/skills/monkey-mini-app/references/contracts/tree-view.md +20 -2
  150. package/skills/monkey-mini-app/references/contracts/trend-card.md +12 -2
  151. package/skills/monkey-mini-app/references/contracts/user-picker.md +12 -2
  152. package/skills/monkey-mini-app/references/contracts/wizard-shell.md +56 -0
  153. package/skills/monkey-mini-app/references/ctx.md +123 -53
  154. package/skills/monkey-mini-app/references/eval.md +115 -0
  155. package/skills/monkey-mini-app/references/examples/alert/alert-01.tsx +17 -0
  156. package/skills/monkey-mini-app/references/examples/aspect-ratio/aspect-ratio-01.tsx +16 -0
  157. package/skills/monkey-mini-app/references/examples/attachment/attachment-01.tsx +19 -0
  158. package/skills/monkey-mini-app/references/examples/breadcrumb/breadcrumb-01.tsx +31 -0
  159. package/skills/monkey-mini-app/references/examples/bubble/bubble-01.tsx +16 -0
  160. package/skills/monkey-mini-app/references/examples/button-group/button-group-01.tsx +23 -0
  161. package/skills/monkey-mini-app/references/examples/card/card-01.tsx +19 -0
  162. package/skills/monkey-mini-app/references/examples/charts-blocks.md +15 -0
  163. package/skills/monkey-mini-app/references/examples/code-block/code-block-01.tsx +14 -0
  164. package/skills/monkey-mini-app/references/examples/code-editor/code-editor-01.tsx +15 -0
  165. package/skills/monkey-mini-app/references/examples/command/command-01.tsx +30 -0
  166. package/skills/monkey-mini-app/references/examples/confirm-dialog/confirm-dialog-01.tsx +33 -0
  167. package/skills/monkey-mini-app/references/examples/context-menu/context-menu-01.tsx +29 -0
  168. package/skills/monkey-mini-app/references/examples/dashboard-shell/dashboard-shell-01.tsx +78 -0
  169. package/skills/monkey-mini-app/references/examples/data-grid/data-grid-01.tsx +34 -0
  170. package/skills/monkey-mini-app/references/examples/data-grid/data-grid-02.tsx +88 -0
  171. package/skills/monkey-mini-app/references/examples/date-picker/date-picker-01.tsx +14 -0
  172. package/skills/monkey-mini-app/references/examples/date-range-picker/date-range-picker-01.tsx +14 -0
  173. package/skills/monkey-mini-app/references/examples/date-time-picker/date-time-picker-01.tsx +16 -0
  174. package/skills/monkey-mini-app/references/examples/date-time-range-picker/date-time-range-picker-01.tsx +15 -0
  175. package/skills/monkey-mini-app/references/examples/detail-panel/detail-panel-01.tsx +21 -0
  176. package/skills/monkey-mini-app/references/examples/dialog/dialog-01.tsx +30 -0
  177. package/skills/monkey-mini-app/references/examples/diff-viewer/diff-viewer-01.tsx +10 -0
  178. package/skills/monkey-mini-app/references/examples/dropdown-menu/dropdown-menu-01.tsx +31 -0
  179. package/skills/monkey-mini-app/references/examples/duration-input/duration-input-01.tsx +20 -0
  180. package/skills/monkey-mini-app/references/examples/editors.md +11 -0
  181. package/skills/monkey-mini-app/references/examples/empty/empty-01.tsx +19 -0
  182. package/skills/monkey-mini-app/references/examples/event-calendar/event-calendar-01.tsx +53 -0
  183. package/skills/monkey-mini-app/references/examples/file-dropzone/file-dropzone-01.tsx +14 -0
  184. package/skills/monkey-mini-app/references/examples/form-sheet/form-sheet-01.tsx +85 -0
  185. package/skills/monkey-mini-app/references/examples/forms.md +16 -0
  186. package/skills/monkey-mini-app/references/examples/gantt/gantt-01.tsx +29 -0
  187. package/skills/monkey-mini-app/references/examples/input/input-01.tsx +10 -0
  188. package/skills/monkey-mini-app/references/examples/item/item-01.tsx +19 -0
  189. package/skills/monkey-mini-app/references/examples/jql-input/jql-input-01.tsx +33 -0
  190. package/skills/monkey-mini-app/references/examples/json-viewer/json-viewer-01.tsx +10 -0
  191. package/skills/monkey-mini-app/references/examples/kanban/kanban-01.tsx +60 -0
  192. package/skills/monkey-mini-app/references/examples/label/label-01.tsx +10 -0
  193. package/skills/monkey-mini-app/references/examples/list-detail/list-detail-01.tsx +117 -0
  194. package/skills/monkey-mini-app/references/examples/log-viewer/log-viewer-01.tsx +20 -0
  195. package/skills/monkey-mini-app/references/examples/markdown-editor/markdown-editor-01.tsx +18 -0
  196. package/skills/monkey-mini-app/references/examples/marker/marker-01.tsx +16 -0
  197. package/skills/monkey-mini-app/references/examples/mini-calendar/mini-calendar-01.tsx +14 -0
  198. package/skills/monkey-mini-app/references/examples/misc-charts-blocks/misc-charts-blocks-01.tsx +20 -0
  199. package/skills/monkey-mini-app/references/examples/misc-charts-blocks/misc-charts-blocks-02.tsx +32 -0
  200. package/skills/monkey-mini-app/references/examples/misc-charts-blocks/misc-charts-blocks-03.tsx +47 -0
  201. package/skills/monkey-mini-app/references/examples/misc-charts-blocks/misc-charts-blocks-04.tsx +20 -0
  202. package/skills/monkey-mini-app/references/examples/misc-charts-blocks/misc-charts-blocks-05.tsx +24 -0
  203. package/skills/monkey-mini-app/references/examples/misc-charts-blocks/misc-charts-blocks-06.tsx +89 -0
  204. package/skills/monkey-mini-app/references/examples/misc-editors/misc-editors-01.tsx +114 -0
  205. package/skills/monkey-mini-app/references/examples/misc-editors/misc-editors-02.tsx +33 -0
  206. package/skills/monkey-mini-app/references/examples/misc-forms/misc-forms-01.tsx +22 -0
  207. package/skills/monkey-mini-app/references/examples/misc-forms/misc-forms-02.tsx +37 -0
  208. package/skills/monkey-mini-app/references/examples/misc-forms/misc-forms-03.tsx +42 -0
  209. package/skills/monkey-mini-app/references/examples/misc-forms/misc-forms-04.tsx +25 -0
  210. package/skills/monkey-mini-app/references/examples/misc-forms/misc-forms-05.tsx +27 -0
  211. package/skills/monkey-mini-app/references/examples/misc-forms/misc-forms-06.tsx +33 -0
  212. package/skills/monkey-mini-app/references/examples/misc-forms/misc-forms-07.tsx +44 -0
  213. package/skills/monkey-mini-app/references/examples/misc-overlays/misc-overlays-01.tsx +43 -0
  214. package/skills/monkey-mini-app/references/examples/misc-overlays/misc-overlays-02.tsx +38 -0
  215. package/skills/monkey-mini-app/references/examples/misc-primitives/misc-primitives-01.tsx +21 -0
  216. package/skills/monkey-mini-app/references/examples/misc-primitives/misc-primitives-02.tsx +52 -0
  217. package/skills/monkey-mini-app/references/examples/misc-primitives/misc-primitives-03.tsx +44 -0
  218. package/skills/monkey-mini-app/references/examples/number-field/number-field-01.tsx +22 -0
  219. package/skills/monkey-mini-app/references/examples/overlays.md +11 -0
  220. package/skills/monkey-mini-app/references/examples/pagination/pagination-01.tsx +51 -0
  221. package/skills/monkey-mini-app/references/examples/primitives.md +12 -0
  222. package/skills/monkey-mini-app/references/examples/progress/progress-01.tsx +10 -0
  223. package/skills/monkey-mini-app/references/examples/relative-date-picker/relative-date-picker-01.tsx +19 -0
  224. package/skills/monkey-mini-app/references/examples/rich-text-editor/rich-text-editor-01.tsx +15 -0
  225. package/skills/monkey-mini-app/references/examples/run-timeline/run-timeline-01.tsx +17 -0
  226. package/skills/monkey-mini-app/references/examples/scrollspy/scrollspy-01.tsx +29 -0
  227. package/skills/monkey-mini-app/references/examples/separator/separator-01.tsx +10 -0
  228. package/skills/monkey-mini-app/references/examples/settings-split/settings-split-01.tsx +84 -0
  229. package/skills/monkey-mini-app/references/examples/shared/jira-wiki-sample.ts +38 -0
  230. package/skills/monkey-mini-app/references/examples/skeleton/skeleton-01.tsx +10 -0
  231. package/skills/monkey-mini-app/references/examples/slider/slider-01.tsx +22 -0
  232. package/skills/monkey-mini-app/references/examples/sortable-list/sortable-list-01.tsx +18 -0
  233. package/skills/monkey-mini-app/references/examples/spinner/spinner-01.tsx +10 -0
  234. package/skills/monkey-mini-app/references/examples/stepper/stepper-01.tsx +41 -0
  235. package/skills/monkey-mini-app/references/examples/table/table-01.tsx +25 -0
  236. package/skills/monkey-mini-app/references/examples/table-page/table-page-01.tsx +103 -0
  237. package/skills/monkey-mini-app/references/examples/time-picker/time-picker-01.tsx +19 -0
  238. package/skills/monkey-mini-app/references/examples/time-range-picker/time-range-picker-01.tsx +14 -0
  239. package/skills/monkey-mini-app/references/examples/timeline/timeline-01.tsx +18 -0
  240. package/skills/monkey-mini-app/references/examples/timezone-select/timezone-select-01.tsx +15 -0
  241. package/skills/monkey-mini-app/references/examples/toggle/toggle-01.tsx +20 -0
  242. package/skills/monkey-mini-app/references/examples/toggle-group/toggle-group-01.tsx +22 -0
  243. package/skills/monkey-mini-app/references/examples/tree-view/tree-view-01.tsx +25 -0
  244. package/skills/monkey-mini-app/references/examples/wizard-shell/wizard-shell-01.tsx +58 -0
  245. package/skills/monkey-mini-app/references/history.md +23 -7
  246. package/skills/monkey-mini-app/references/icons.md +99 -69
  247. package/skills/monkey-mini-app/references/llm-json.md +39 -26
  248. package/skills/monkey-mini-app/references/loader.md +47 -20
  249. package/skills/monkey-mini-app/references/looks/aurora-bento.md +88 -0
  250. package/skills/monkey-mini-app/references/looks/desk-split.md +89 -0
  251. package/skills/monkey-mini-app/references/looks/editorial.md +78 -0
  252. package/skills/monkey-mini-app/references/looks/glass-island.md +90 -0
  253. package/skills/monkey-mini-app/references/looks/index.md +18 -0
  254. package/skills/monkey-mini-app/references/looks/signage.md +74 -0
  255. package/skills/monkey-mini-app/references/looks/tape.md +22 -0
  256. package/skills/monkey-mini-app/references/looks/terminal.md +88 -0
  257. package/skills/monkey-mini-app/references/looks/void.md +22 -0
  258. package/skills/monkey-mini-app/references/styling.md +189 -0
  259. package/skills/monkey-mini-app/references/test.md +12 -12
  260. package/skills/monkey-mini-app/references/theme.md +197 -0
  261. package/skills/monkey-mini-app/references/tools.md +12 -12
  262. package/skills/monkey-mini-app/references/troubleshoot.md +165 -12
  263. package/skills/monkey-mini-app/templates/README.md +33 -21
  264. package/skills/monkey-mini-app/templates/{jira → board}/main.api.ts +11 -11
  265. package/skills/monkey-mini-app/templates/board/manifest.json +8 -0
  266. package/skills/monkey-mini-app/templates/board/theme.css +46 -0
  267. package/skills/monkey-mini-app/templates/board/ui.tsx +546 -0
  268. package/skills/monkey-mini-app/templates/chores/main.api.ts +35 -0
  269. package/skills/monkey-mini-app/templates/chores/manifest.json +8 -0
  270. package/skills/monkey-mini-app/templates/chores/theme.css +46 -0
  271. package/skills/monkey-mini-app/templates/chores/ui.tsx +117 -0
  272. package/skills/monkey-mini-app/templates/minimal/main.api.ts +5 -5
  273. package/skills/monkey-mini-app/templates/minimal/manifest.json +1 -2
  274. package/skills/monkey-mini-app/templates/minimal/ui.tsx +17 -8
  275. package/skills/monkey-mini-app/templates/radar/api/scan.ts +79 -0
  276. package/skills/monkey-mini-app/templates/radar/main.api.ts +29 -0
  277. package/skills/monkey-mini-app/templates/radar/manifest.json +8 -0
  278. package/skills/monkey-mini-app/templates/radar/shared/events.ts +25 -0
  279. package/skills/monkey-mini-app/templates/{insights/lib → radar/shared}/sample.ts +1 -1
  280. package/skills/monkey-mini-app/templates/radar/theme.css +47 -0
  281. package/skills/monkey-mini-app/templates/radar/ui/brief.tsx +31 -0
  282. package/skills/monkey-mini-app/templates/radar/ui.tsx +131 -0
  283. package/skills/monkey-mini-app/templates/runner/main.api.ts +91 -0
  284. package/skills/monkey-mini-app/templates/runner/manifest.json +8 -0
  285. package/skills/monkey-mini-app/templates/runner/shared/events.ts +14 -0
  286. package/skills/monkey-mini-app/templates/runner/theme.css +46 -0
  287. package/skills/monkey-mini-app/templates/runner/ui.tsx +213 -0
  288. package/skills/monkey-mini-app/templates/sheets/main.api.ts +276 -0
  289. package/skills/monkey-mini-app/templates/sheets/manifest.json +8 -0
  290. package/skills/monkey-mini-app/templates/sheets/theme.css +46 -0
  291. package/skills/monkey-mini-app/templates/sheets/ui.tsx +419 -0
  292. package/skills/monkey-mini-app/templates/{todo → today}/main.api.ts +8 -8
  293. package/skills/monkey-mini-app/templates/today/manifest.json +8 -0
  294. package/skills/monkey-mini-app/templates/today/theme.css +45 -0
  295. package/skills/monkey-mini-app/templates/today/ui/item-row.tsx +25 -0
  296. package/skills/monkey-mini-app/templates/today/ui.tsx +406 -0
  297. package/skills/monkey-mini-app/templates/{monitor → watch}/main.api.ts +8 -8
  298. package/skills/monkey-mini-app/templates/watch/manifest.json +8 -0
  299. package/skills/monkey-mini-app/templates/watch/ui.tsx +187 -0
  300. package/skills/monkey-mini-app/tsconfig.json +31 -0
  301. package/skills/monkey-mini-app/types/cdn.d.ts +1 -0
  302. package/tsup.config.ts +1 -0
  303. package/skills/monkey-mini-app/templates/agentrun/main.api.ts +0 -78
  304. package/skills/monkey-mini-app/templates/agentrun/manifest.json +0 -9
  305. package/skills/monkey-mini-app/templates/agentrun/ui.tsx +0 -125
  306. package/skills/monkey-mini-app/templates/insights/main.api.ts +0 -101
  307. package/skills/monkey-mini-app/templates/insights/manifest.json +0 -9
  308. package/skills/monkey-mini-app/templates/insights/ui.tsx +0 -138
  309. package/skills/monkey-mini-app/templates/jira/manifest.json +0 -9
  310. package/skills/monkey-mini-app/templates/jira/ui.tsx +0 -318
  311. package/skills/monkey-mini-app/templates/monitor/manifest.json +0 -9
  312. package/skills/monkey-mini-app/templates/monitor/ui.tsx +0 -176
  313. package/skills/monkey-mini-app/templates/review/main.api.ts +0 -68
  314. package/skills/monkey-mini-app/templates/review/manifest.json +0 -9
  315. package/skills/monkey-mini-app/templates/review/ui.tsx +0 -159
  316. package/skills/monkey-mini-app/templates/todo/manifest.json +0 -8
  317. package/skills/monkey-mini-app/templates/todo/ui.tsx +0 -177
@@ -0,0 +1,25 @@
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
+
3
+ # Textarea (L1 primitive)
4
+
5
+ Multi-line text input.
6
+
7
+ **when** Notes/prompts. Code → `CodeEditor`; markdown → `MarkdownEditor`.
8
+
9
+ `import { Textarea } from "@monkey-mini-app/ui"`
10
+
11
+ `packages/ui/src/components/textarea.tsx` · family: Form · type: component · primitive
12
+
13
+ ## Parts
14
+
15
+ | part | own props |
16
+ |---|---|
17
+ | `Textarea` | — |
18
+
19
+ _Inherited HTML/ARIA props (`className`, `style`, `id`, `onClick`, `aria-*`, …) omitted — every component takes them._
20
+
21
+ ## Skeleton
22
+
23
+ ```tsx
24
+ <Textarea rows={4} value={v} onChange={(e) => set(e.target.value)} />
25
+ ```
@@ -1,12 +1,14 @@
1
- <!-- generated by scripts/generate-skill.mjs — do not edit -->
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
2
 
3
3
  # TimePicker
4
4
 
5
5
  `value` is `HH:mm` (24h).
6
6
 
7
+ **when** Clock-only fields. `value` is a string, not a Date.
8
+
7
9
  `import { TimePicker } from "@monkey-mini-app/ui"`
8
10
 
9
- `packages/ui/src/composites/time-picker.tsx` · composites
11
+ `packages/ui/src/composites/time-picker.tsx` · family: Calendar & date · type: composite
10
12
 
11
13
  ## Props
12
14
 
@@ -16,3 +18,17 @@
16
18
  | `disabled` | `boolean \| undefined` | | |
17
19
  | `onChange` | `((value: string) => void) \| undefined` | | |
18
20
  | `value` | `string \| undefined` | | |
21
+
22
+ ## Example
23
+
24
+ ```tsx
25
+ <TimePicker value="09:30" onChange={(v) => set(v)} />
26
+ ```
27
+
28
+ ## Examples
29
+
30
+ Runnable files under `references/examples/` — portable by construction (`react` +
31
+ `@monkey-mini-app/ui` + relatives), so copy the closest one into `ui.tsx` / `ui/`.
32
+ Pick by **scenario**, then open the file you need.
33
+
34
+ - **[time-picker-01.tsx](../examples/time-picker/time-picker-01.tsx)** — TimePicker — Time-of-day only (no date) for windows like a daily cron or shift start.
@@ -1,10 +1,14 @@
1
- <!-- generated by scripts/generate-skill.mjs — do not edit -->
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
2
 
3
3
  # TimeRangePicker
4
4
 
5
+ From/to time of day.
6
+
7
+ **when** Daily windows (maintenance 02:00–04:00).
8
+
5
9
  `import { TimeRangePicker, TimeRange } from "@monkey-mini-app/ui"`
6
10
 
7
- `packages/ui/src/composites/time-range-picker.tsx` · composites
11
+ `packages/ui/src/composites/time-range-picker.tsx` · family: Calendar & date · type: composite
8
12
 
9
13
  ## Props
10
14
 
@@ -21,3 +25,17 @@
21
25
  |---|---|:---:|---|
22
26
  | `end` | `string` | ✓ | |
23
27
  | `start` | `string` | ✓ | |
28
+
29
+ ## Example
30
+
31
+ ```tsx
32
+ <TimeRangePicker onChange={(r) => set(r)} />
33
+ ```
34
+
35
+ ## Examples
36
+
37
+ Runnable files under `references/examples/` — portable by construction (`react` +
38
+ `@monkey-mini-app/ui` + relatives), so copy the closest one into `ui.tsx` / `ui/`.
39
+ Pick by **scenario**, then open the file you need.
40
+
41
+ - **[time-range-picker-01.tsx](../examples/time-range-picker/time-range-picker-01.tsx)** — TimeRangePicker — Start/end time-of-day pair, e.g. a maintenance window inside one day.
@@ -1,10 +1,14 @@
1
- <!-- generated by scripts/generate-skill.mjs — do not edit -->
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
2
 
3
3
  # TimeWheel
4
4
 
5
+ Column wheel for picking a time value.
6
+
7
+ **when** Inside a time picker where tapping a list beats typing. Prefer `TimePicker` for a normal field.
8
+
5
9
  `import { TimeWheel, TimePickerProps } from "@monkey-mini-app/ui"`
6
10
 
7
- `packages/ui/src/composites/time-picker.tsx` · composites
11
+ `packages/ui/src/composites/time-picker.tsx` · family: Calendar & date · type: composite
8
12
 
9
13
  ## Props
10
14
 
@@ -1,10 +1,14 @@
1
- <!-- generated by scripts/generate-skill.mjs — do not edit -->
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
2
 
3
3
  # Timeline
4
4
 
5
+ Vertical ordered events.
6
+
7
+ **when** Statuses/history without durations. Durations → `RunTimeline`.
8
+
5
9
  `import { Timeline, TimelineItem } from "@monkey-mini-app/ui"`
6
10
 
7
- `packages/ui/src/products/timeline.tsx` · products
11
+ `packages/ui/src/products/timeline.tsx` · family: Realtime · type: product
8
12
 
9
13
  ## Props
10
14
 
@@ -22,3 +26,17 @@
22
26
  | `id` | `string` | ✓ | |
23
27
  | `time` | `string \| undefined` | | |
24
28
  | `title` | `string` | ✓ | |
29
+
30
+ ## Example
31
+
32
+ ```tsx
33
+ <Timeline items={[{ id: "1", title: "已创建", time: "09:00" }]} />
34
+ ```
35
+
36
+ ## Examples
37
+
38
+ Runnable files under `references/examples/` — portable by construction (`react` +
39
+ `@monkey-mini-app/ui` + relatives), so copy the closest one into `ui.tsx` / `ui/`.
40
+ Pick by **scenario**, then open the file you need.
41
+
42
+ - **[timeline-01.tsx](../examples/timeline/timeline-01.tsx)** — Timeline — Chronological feed of events with actor + timestamp — deploy history, audit trail (compare RunTimeline for one job's steps).
@@ -1,10 +1,14 @@
1
- <!-- generated by scripts/generate-skill.mjs — do not edit -->
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
2
 
3
3
  # TimezoneSelect
4
4
 
5
+ IANA timezone dropdown.
6
+
7
+ **when** Pair with `DateTimePicker` when data is UTC.
8
+
5
9
  `import { TimezoneSelect, ZoneInfo } from "@monkey-mini-app/ui"`
6
10
 
7
- `packages/ui/src/composites/timezone-select.tsx` · composites
11
+ `packages/ui/src/composites/timezone-select.tsx` · family: Calendar & date · type: composite
8
12
 
9
13
  ## Props
10
14
 
@@ -25,3 +29,17 @@
25
29
  | `offset` | `string` | ✓ | |
26
30
  | `region` | `string` | ✓ | |
27
31
  | `search` | `string` | ✓ | |
32
+
33
+ ## Example
34
+
35
+ ```tsx
36
+ <TimezoneSelect value={tz} onChange={(v) => set(v)} />
37
+ ```
38
+
39
+ ## Examples
40
+
41
+ Runnable files under `references/examples/` — portable by construction (`react` +
42
+ `@monkey-mini-app/ui` + relatives), so copy the closest one into `ui.tsx` / `ui/`.
43
+ Pick by **scenario**, then open the file you need.
44
+
45
+ - **[timezone-select-01.tsx](../examples/timezone-select/timezone-select-01.tsx)** — TimezoneSelect — IANA timezone chosen from common zones first, searchable — pair with DateTimePicker when schedules cross regions. — _*Common zones first; type to search the rest*_
@@ -0,0 +1,39 @@
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
+
3
+ # Toast (L1 primitive)
4
+
5
+ Transient notification (provider + viewport + `toast()`).
6
+
7
+ **when** Confirm/save failures. The host already mounts the provider — call `toast(...)`.
8
+
9
+ Compound: compose the parts below — **do not invent part names**.
10
+
11
+ `import { Toast, ToastAction, ToastClose, ToastContent, ToastDescription, ToastPortal, ToastProvider, ToastTitle, ToastViewport, Toaster, createToastManager, toast, useToastManager } from "@monkey-mini-app/ui"`
12
+
13
+ `packages/ui/src/components/toast.tsx` · family: Feedback & status · type: component · primitive
14
+
15
+ ## Parts
16
+
17
+ | part | own props |
18
+ |---|---|
19
+ | `Toast` | `render?` `swipeDirection?` `toast` |
20
+ | `ToastAction` | `nativeButton?` `render?` |
21
+ | `ToastClose` | `nativeButton?` `render?` |
22
+ | `ToastContent` | `render?` |
23
+ | `ToastDescription` | `render?` |
24
+ | `ToastPortal` | `container?` `render?` |
25
+ | `ToastProvider` | `limit?` `timeout?` `toastManager?` |
26
+ | `ToastTitle` | `render?` |
27
+ | `ToastViewport` | `render?` |
28
+ | `Toaster` | `limit?` `timeout?` `toastManager?` |
29
+ | `createToastManager` (hook/util) | — |
30
+ | `toast` (hook/util) | — |
31
+ | `useToastManager` (hook/util) | — |
32
+
33
+ _Inherited HTML/ARIA props (`className`, `style`, `id`, `onClick`, `aria-*`, …) omitted — every component takes them._
34
+
35
+ ## Skeleton
36
+
37
+ ```tsx
38
+ toast({ title: "已保存", description: "2 条更新" })
39
+ ```
@@ -0,0 +1,28 @@
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
+
3
+ # ToggleGroup (L1 primitive)
4
+
5
+ **when** Multiple independent on/off buttons; exclusive selection → `Tabs`/`ButtonGroup`.
6
+
7
+ Compound: compose the parts below — **do not invent part names**.
8
+
9
+ `import { ToggleGroup, ToggleGroupItem } from "@monkey-mini-app/ui"`
10
+
11
+ `packages/ui/src/components/toggle-group.tsx` · family: Form · type: component · primitive
12
+
13
+ ## Parts
14
+
15
+ | part | own props |
16
+ |---|---|
17
+ | `ToggleGroup` | `disabled?` `loopFocus?` `multiple?` `onValueChange?` `orientation?=vertical/horizontal` `render?` `size?=default/sm/lg` `spacing?` `value?` `variant?=default/outline` |
18
+ | `ToggleGroupItem` | `defaultPressed?` `disabled?` `nativeButton?` `onPressedChange?` `pressed?` `render?` `size?=default/sm/lg` `value?` `variant?=default/outline` |
19
+
20
+ _Inherited HTML/ARIA props (`className`, `style`, `id`, `onClick`, `aria-*`, …) omitted — every component takes them._
21
+
22
+ ## Examples
23
+
24
+ Runnable files under `references/examples/` — portable by construction (`react` +
25
+ `@monkey-mini-app/ui` + relatives), so copy the closest one into `ui.tsx` / `ui/`.
26
+ Pick by **scenario**, then open the file you need.
27
+
28
+ - **[toggle-group-01.tsx](../examples/toggle-group/toggle-group-01.tsx)** — ToggleGroup — Mutually exclusive set of Toggle buttons for a view choice (alignment, density) held as one value.
@@ -0,0 +1,26 @@
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
+
3
+ # Toggle (L1 primitive)
4
+
5
+ **when** Binary formatting switch (bold, filters on).
6
+
7
+ `import { Toggle, toggleVariants } from "@monkey-mini-app/ui"`
8
+
9
+ `packages/ui/src/components/toggle.tsx` · family: Form · type: component · primitive
10
+
11
+ ## Parts
12
+
13
+ | part | own props |
14
+ |---|---|
15
+ | `Toggle` | `defaultPressed?` `disabled?` `nativeButton?` `onPressedChange?` `pressed?` `render?` `size?=default/sm/lg` `value?` `variant?=default/outline` |
16
+ | `toggleVariants` (hook/util) | `class?` `size?=default/sm/lg` `variant?=default/outline` |
17
+
18
+ _Inherited HTML/ARIA props (`className`, `style`, `id`, `onClick`, `aria-*`, …) omitted — every component takes them._
19
+
20
+ ## Examples
21
+
22
+ Runnable files under `references/examples/` — portable by construction (`react` +
23
+ `@monkey-mini-app/ui` + relatives), so copy the closest one into `ui.tsx` / `ui/`.
24
+ Pick by **scenario**, then open the file you need.
25
+
26
+ - **[toggle-01.tsx](../examples/toggle/toggle-01.tsx)** — Toggle — Single pressed/unpressed icon button (bold, mute) — one binary view option, not a form value; use Switch for settings on/off.
@@ -0,0 +1,30 @@
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
+
3
+ # Tooltip (L1 primitive)
4
+
5
+ Hover/focus hint on an icon or truncated label.
6
+
7
+ **when** Explaining an icon-only button. Never put an action in it.
8
+
9
+ Compound: compose the parts below — **do not invent part names**.
10
+
11
+ `import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@monkey-mini-app/ui"`
12
+
13
+ `packages/ui/src/components/tooltip.tsx` · family: Surface · type: component · primitive
14
+
15
+ ## Parts
16
+
17
+ | part | own props |
18
+ |---|---|
19
+ | `Tooltip` | `actionsRef?` `defaultOpen?` `defaultTriggerId?` `disabled?` `disableHoverablePopup?` `handle?` `onOpenChange?` `onOpenChangeComplete?` `open?` `trackCursorAxis?=none/both/x/y` `triggerId?` |
20
+ | `TooltipContent` | `align?` `alignOffset?` `render?` `side?` `sideOffset?` |
21
+ | `TooltipProvider` | `closeDelay?` `delay?` `timeout?` |
22
+ | `TooltipTrigger` | `closeDelay?` `closeOnClick?` `delay?` `disabled?` `handle?` `payload?` `render?` |
23
+
24
+ _Inherited HTML/ARIA props (`className`, `style`, `id`, `onClick`, `aria-*`, …) omitted — every component takes them._
25
+
26
+ ## Skeleton
27
+
28
+ ```tsx
29
+ <Tooltip><TooltipTrigger asChild><Button size="icon" aria-label="刷新"><Icon.RefreshCw /></Button></TooltipTrigger><TooltipContent>刷新</TooltipContent></Tooltip>
30
+ ```
@@ -1,10 +1,14 @@
1
- <!-- generated by scripts/generate-skill.mjs — do not edit -->
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
2
 
3
3
  # Transfer
4
4
 
5
+ Two-panel move-between-lists picker.
6
+
7
+ **when** Selecting many items from a known pool (assign users to a shift).
8
+
5
9
  `import { Transfer, TransferItem } from "@monkey-mini-app/ui"`
6
10
 
7
- `packages/ui/src/composites/transfer.tsx` · composites
11
+ `packages/ui/src/composites/transfer.tsx` · family: Form · type: composite
8
12
 
9
13
  ## Props
10
14
 
@@ -22,3 +26,9 @@
22
26
  |---|---|:---:|---|
23
27
  | `id` | `string` | ✓ | |
24
28
  | `label` | `string` | ✓ | |
29
+
30
+ ## Example
31
+
32
+ ```tsx
33
+ <Transfer items={[{ id: "u1", label: "张三" }]} onChange={(ids) => set(ids)} />
34
+ ```
@@ -1,10 +1,14 @@
1
- <!-- generated by scripts/generate-skill.mjs — do not edit -->
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
2
 
3
3
  # TreeView
4
4
 
5
+ Generic expandable node list.
6
+
7
+ **when** Any hierarchy without file semantics. Files → `FileTree`.
8
+
5
9
  `import { TreeView, TreeNode } from "@monkey-mini-app/ui"`
6
10
 
7
- `packages/ui/src/products/tree-view.tsx` · products
11
+ `packages/ui/src/products/tree-view.tsx` · family: Data & tables · type: product
8
12
 
9
13
  ## Props
10
14
 
@@ -21,3 +25,17 @@
21
25
  | `children` | `TreeNode[] \| undefined` | | |
22
26
  | `id` | `string` | ✓ | |
23
27
  | `label` | `string` | ✓ | |
28
+
29
+ ## Example
30
+
31
+ ```tsx
32
+ <TreeView nodes={[{ id: "a", label: "华东" }]} />
33
+ ```
34
+
35
+ ## Examples
36
+
37
+ Runnable files under `references/examples/` — portable by construction (`react` +
38
+ `@monkey-mini-app/ui` + relatives), so copy the closest one into `ui.tsx` / `ui/`.
39
+ Pick by **scenario**, then open the file you need.
40
+
41
+ - **[tree-view-01.tsx](../examples/tree-view/tree-view-01.tsx)** — TreeView — Nested hierarchy with expand/collapse and selection — file tree, org chart, category taxonomy.
@@ -1,10 +1,14 @@
1
- <!-- generated by scripts/generate-skill.mjs — do not edit -->
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
2
 
3
3
  # TrendCard
4
4
 
5
+ KPI card with a trend series.
6
+
7
+ **when** Metric + direction over time. Metric only → `StatCard`.
8
+
5
9
  `import { TrendCard, TrendPoint } from "@monkey-mini-app/ui"`
6
10
 
7
- `packages/ui/src/blocks/trend-card.tsx` · blocks
11
+ `packages/ui/src/blocks/trend-card.tsx` · family: Chart & data · type: block
8
12
 
9
13
  ## Props
10
14
 
@@ -24,3 +28,9 @@
24
28
  |---|---|:---:|---|
25
29
  | `label` | `string` | ✓ | |
26
30
  | `value` | `number` | ✓ | |
31
+
32
+ ## Example
33
+
34
+ ```tsx
35
+ <TrendCard title="请求数" value="1.2k" trend="up" data={[{ value: 9 }, { value: 12 }]} />
36
+ ```
@@ -1,10 +1,14 @@
1
- <!-- generated by scripts/generate-skill.mjs — do not edit -->
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
2
 
3
3
  # UserPicker
4
4
 
5
+ Pick a user from a list (avatar + name).
6
+
7
+ **when** Assignee/owner fields; you supply the user list.
8
+
5
9
  `import { UserPicker, UserOption } from "@monkey-mini-app/ui"`
6
10
 
7
- `packages/ui/src/composites/user-picker.tsx` · composites
11
+ `packages/ui/src/composites/user-picker.tsx` · family: Form · type: composite
8
12
 
9
13
  ## Props
10
14
 
@@ -22,3 +26,9 @@
22
26
  |---|---|:---:|---|
23
27
  | `id` | `string` | ✓ | |
24
28
  | `name` | `string` | ✓ | |
29
+
30
+ ## Example
31
+
32
+ ```tsx
33
+ <UserPicker users={[{ id: "u1", name: "张三" }]} onChange={(id) => set(id)} />
34
+ ```
@@ -0,0 +1,56 @@
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
+
3
+ # WizardShell
4
+
5
+ Multi-step flow: step rail on top, scrolling body, action row that never moves. Hand-rolled, a wizard's footer rides along inside the scrolling column, so every step change jumps the buttons to a different height and the user chases them with the cursor; and Next is enabled into an invalid step because the validity check lives in the form and the button lives outside it. Here the footer is a `shrink-0` sibling of the scroller, and Next/Finish are disabled straight from `steps[index].valid`, which is the only place that can know.
6
+
7
+ **when** Page shape: create / import / onboarding, one step at a time with validation per step
8
+
9
+ `import { WizardShell, WizardStep } from "@monkey-mini-app/ui"`
10
+
11
+ `packages/ui/src/blocks/wizard-shell.tsx` · family: Layout & structure · type: block
12
+
13
+ ## Props
14
+
15
+ | field | type | required | note |
16
+ |---|---|:---:|---|
17
+ | `body` | `ReactNode` | ✓ | Current step's content. The only scrolling area. |
18
+ | `className` | `string \| undefined` | | |
19
+ | `footer` | `ReactNode` | | Replaces the generated Back/Next/Finish row (a preview pane, a second action…). |
20
+ | `index` | `number` | ✓ | Which step is showing. The app owns it — the preset never navigates on its own. |
21
+ | `onBack` | `(() => void) \| undefined` | | |
22
+ | `onNext` | `(() => void) \| undefined` | | |
23
+ | `onSubmit` | `(() => void) \| undefined` | | Fires on the last step's primary action. Without it the last step still shows Next. |
24
+ | `steps` | `WizardStep[]` | ✓ | The steps, in order. The rail is generated from this, so it cannot disagree with the body. |
25
+ | `submitting` | `boolean \| undefined` | | Greys the primary action and swaps in the busy label. |
26
+
27
+ ## Types
28
+
29
+ ### `WizardStep`
30
+
31
+ | field | type | required | note |
32
+ |---|---|:---:|---|
33
+ | `id` | `string` | ✓ | |
34
+ | `label` | `string` | ✓ | |
35
+ | `valid` | `boolean \| undefined` | | Pass `false` while the step's form is incomplete — Next disables itself. Omit to allow. |
36
+
37
+ ## Example
38
+
39
+ ```tsx
40
+ <WizardShell
41
+ steps={[{ id: "pick", label: "Choose file", valid: Boolean(file) }, { id: "map", label: "Map columns", valid: mapped }]}
42
+ index={step}
43
+ body={<StepBody />}
44
+ onBack={() => setStep((s) => s - 1)}
45
+ onNext={() => setStep((s) => s + 1)}
46
+ onSubmit={() => void run()}
47
+ />
48
+ ```
49
+
50
+ ## Examples
51
+
52
+ Runnable files under `references/examples/` — portable by construction (`react` +
53
+ `@monkey-mini-app/ui` + relatives), so copy the closest one into `ui.tsx` / `ui/`.
54
+ Pick by **scenario**, then open the file you need.
55
+
56
+ - **[wizard-shell-01.tsx](../examples/wizard-shell/wizard-shell-01.tsx)** — WizardShell — Three-step import in a fixed-height panel: the step rail tracks progress, the body scrolls, and Back/Next stay exactly where they were across every step change. — _*Step 2 starts invalid — Next is disabled until the mapping is filled in*_