@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,34 @@
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
+
3
+ # Sheet (L1 primitive)
4
+
5
+ Slide-in side panel.
6
+
7
+ **when** Detail/edit panel that keeps the list visible — the usual master-detail pattern. Size it with `width` on `SheetContent`: the panel carries its own `data-[side=right]:sm:max-w-sm` / `data-[side=left]:sm:max-w-sm`, so a `max-w-*` in `className` loses at ≥sm (inline style or `!max-w-*` also work).
8
+
9
+ Compound: compose the parts below — **do not invent part names**.
10
+
11
+ `import { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger } from "@monkey-mini-app/ui"`
12
+
13
+ `packages/ui/src/components/sheet.tsx` · family: Surface · type: component · primitive
14
+
15
+ ## Parts
16
+
17
+ | part | own props |
18
+ |---|---|
19
+ | `Sheet` | `actionsRef?` `defaultOpen?` `defaultTriggerId?` `disablePointerDismissal?` `handle?` `modal?` `onOpenChange?` `onOpenChangeComplete?` `open?` `triggerId?` |
20
+ | `SheetClose` | `nativeButton?` `render?` |
21
+ | `SheetContent` | `finalFocus?` `initialFocus?` `render?` `showCloseButton?` `side?=top/right/bottom/left` `width?` |
22
+ | `SheetDescription` | `render?` |
23
+ | `SheetFooter` | — |
24
+ | `SheetHeader` | — |
25
+ | `SheetTitle` | `render?` |
26
+ | `SheetTrigger` | `handle?` `nativeButton?` `payload?` `render?` |
27
+
28
+ _Inherited HTML/ARIA props (`className`, `style`, `id`, `onClick`, `aria-*`, …) omitted — every component takes them._
29
+
30
+ ## Skeleton
31
+
32
+ ```tsx
33
+ <Sheet open={open} onOpenChange={setOpen}><SheetContent side="right"><SheetHeader><SheetTitle>详情</SheetTitle></SheetHeader>…</SheetContent></Sheet>
34
+ ```
@@ -0,0 +1,42 @@
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
+
3
+ # Sidebar (L1 primitive)
4
+
5
+ **when** Many sections in one app; `AppShell` already wires one for you.
6
+
7
+ Compound: compose the parts below — **do not invent part names**.
8
+
9
+ `import { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar } from "@monkey-mini-app/ui"`
10
+
11
+ `packages/ui/src/components/sidebar.tsx` · family: Navigation · type: component · primitive
12
+
13
+ ## Parts
14
+
15
+ | part | own props |
16
+ |---|---|
17
+ | `Sidebar` | `collapsible?=none/icon/offcanvas` `side?=right/left` `variant?=sidebar/floating/inset` |
18
+ | `SidebarContent` | — |
19
+ | `SidebarFooter` | — |
20
+ | `SidebarGroup` | — |
21
+ | `SidebarGroupAction` | `render?` |
22
+ | `SidebarGroupContent` | — |
23
+ | `SidebarGroupLabel` | `render?` |
24
+ | `SidebarHeader` | — |
25
+ | `SidebarInput` | — |
26
+ | `SidebarInset` | — |
27
+ | `SidebarMenu` | — |
28
+ | `SidebarMenuAction` | `render?` `showOnHover?` |
29
+ | `SidebarMenuBadge` | — |
30
+ | `SidebarMenuButton` | `isActive?` `render?` `size?=default/sm/lg` `tooltip?` `variant?=default/outline` |
31
+ | `SidebarMenuItem` | — |
32
+ | `SidebarMenuSkeleton` | `showIcon?` |
33
+ | `SidebarMenuSub` | — |
34
+ | `SidebarMenuSubButton` | `isActive?` `render?` `size?=md/sm` |
35
+ | `SidebarMenuSubItem` | — |
36
+ | `SidebarProvider` | `defaultOpen?` `onOpenChange?` `open?` |
37
+ | `SidebarRail` | — |
38
+ | `SidebarSeparator` | `orientation?` `render?` |
39
+ | `SidebarTrigger` | `focusableWhenDisabled?` `nativeButton?` `render?` `size?=default/xs/sm/lg/icon/icon-xs/icon-sm/icon-lg` `variant?=link/default/outline/secondary/ghost/destructive` |
40
+ | `useSidebar` (hook/util) | — |
41
+
42
+ _Inherited HTML/ARIA props (`className`, `style`, `id`, `onClick`, `aria-*`, …) omitted — every component takes them._
@@ -0,0 +1,33 @@
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
+
3
+ # Skeleton (L1 primitive)
4
+
5
+ Pulse placeholder block.
6
+
7
+ **when** First paint while `call()` is pending — match the real layout's size.
8
+
9
+ `import { Skeleton } from "@monkey-mini-app/ui"`
10
+
11
+ `packages/ui/src/components/skeleton.tsx` · family: Feedback & status · type: component · primitive
12
+
13
+ ## Parts
14
+
15
+ | part | own props |
16
+ |---|---|
17
+ | `Skeleton` | — |
18
+
19
+ _Inherited HTML/ARIA props (`className`, `style`, `id`, `onClick`, `aria-*`, …) omitted — every component takes them._
20
+
21
+ ## Skeleton
22
+
23
+ ```tsx
24
+ <div className="flex flex-col gap-2">{[0,1,2].map((i) => <Skeleton key={i} className="h-16 w-full" />)}</div>
25
+ ```
26
+
27
+ ## Examples
28
+
29
+ Runnable files under `references/examples/` — portable by construction (`react` +
30
+ `@monkey-mini-app/ui` + relatives), so copy the closest one into `ui.tsx` / `ui/`.
31
+ Pick by **scenario**, then open the file you need.
32
+
33
+ - **[skeleton-01.tsx](../examples/skeleton/skeleton-01.tsx)** — Skeleton — Loading placeholder shaped like the content that will replace it (cards/rows), avoiding layout jump on first paint.
@@ -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
  # SliderRange
4
4
 
5
+ Two-thumb range slider.
6
+
7
+ **when** min/max numeric filters.
8
+
5
9
  `import { SliderRange } from "@monkey-mini-app/ui"`
6
10
 
7
- `packages/ui/src/composites/slider-range.tsx` · composites
11
+ `packages/ui/src/composites/slider-range.tsx` · family: Form · type: composite
8
12
 
9
13
  ## Props
10
14
 
@@ -14,3 +18,9 @@
14
18
  | `min` | `number \| undefined` | | |
15
19
  | `onChange` | `((value: number[]) => void) \| undefined` | | |
16
20
  | `value` | `number[] \| undefined` | | |
21
+
22
+ ## Example
23
+
24
+ ```tsx
25
+ <SliderRange min={0} max={100} value={[10, 40]} onChange={(v) => set(v)} />
26
+ ```
@@ -0,0 +1,25 @@
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
+
3
+ # Slider (L1 primitive)
4
+
5
+ **when** One numeric value. Range → `SliderRange`.
6
+
7
+ `import { Slider } from "@monkey-mini-app/ui"`
8
+
9
+ `packages/ui/src/components/slider.tsx` · family: Form · type: component · primitive
10
+
11
+ ## Parts
12
+
13
+ | part | own props |
14
+ |---|---|
15
+ | `Slider` | `disabled?` `form?` `format?` `largeStep?` `locale?` `max?` `min?` `minStepsBetweenValues?` `name?` `onValueChange?` `onValueCommitted?` `orientation?` +5 |
16
+
17
+ _Inherited HTML/ARIA props (`className`, `style`, `id`, `onClick`, `aria-*`, …) omitted — every component takes them._
18
+
19
+ ## Examples
20
+
21
+ Runnable files under `references/examples/` — portable by construction (`react` +
22
+ `@monkey-mini-app/ui` + relatives), so copy the closest one into `ui.tsx` / `ui/`.
23
+ Pick by **scenario**, then open the file you need.
24
+
25
+ - **[slider-01.tsx](../examples/slider/slider-01.tsx)** — Slider / SliderRange — One-handle range for 'pick a value' (thresholds, limits); SliderRange beside it for min–max filter pairs.
@@ -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
  # SortableList
4
4
 
5
+ Drag-to-reorder list.
6
+
7
+ **when** Priority queues / column order. Read-only ordered events → `Timeline`.
8
+
5
9
  `import { SortableList, SortableItem } from "@monkey-mini-app/ui"`
6
10
 
7
- `packages/ui/src/products/sortable-list.tsx` · products
11
+ `packages/ui/src/products/sortable-list.tsx` · family: Data & tables · type: product
8
12
 
9
13
  ## Props
10
14
 
@@ -21,3 +25,17 @@
21
25
  |---|---|:---:|---|
22
26
  | `id` | `string` | ✓ | |
23
27
  | `label` | `string` | ✓ | |
28
+
29
+ ## Example
30
+
31
+ ```tsx
32
+ <SortableList items={items} onChange={(next) => set(next)} />
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
+ - **[sortable-list-01.tsx](../examples/sortable-list/sortable-list-01.tsx)** — SortableList — Reorder by drag with the new order pushed back to state — priorities, playbooks, column order.
@@ -1,13 +1,24 @@
1
- <!-- generated by scripts/generate-skill.mjs — do not edit -->
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
2
 
3
3
  # Sparkline
4
4
 
5
+ Tiny inline trend line, no axes.
6
+
7
+ **when** Trend inside a table row or KPI card.
8
+
5
9
  `import { Sparkline } from "@monkey-mini-app/ui"`
6
10
 
7
- `packages/ui/src/blocks/sparkline.tsx` · blocks
11
+ `packages/ui/src/blocks/sparkline.tsx` · family: Chart & data · type: block
8
12
 
9
13
  ## Props
10
14
 
11
15
  | field | type | required | note |
12
16
  |---|---|:---:|---|
17
+ | `className` | `string \| undefined` | | |
13
18
  | `data` | `{ value: number; }[]` | ✓ | |
19
+
20
+ ## Example
21
+
22
+ ```tsx
23
+ <Sparkline data={[{ value: 3 }, { value: 9 }, { value: 6 }]} />
24
+ ```
@@ -0,0 +1,31 @@
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
+
3
+ # Spinner (L1 primitive)
4
+
5
+ **when** Inside a button while `call()` is pending. Known % → `Progress`.
6
+
7
+ `import { Spinner } from "@monkey-mini-app/ui"`
8
+
9
+ `packages/ui/src/components/spinner.tsx` · family: Feedback & status · type: component · primitive
10
+
11
+ ## Parts
12
+
13
+ | part | own props |
14
+ |---|---|
15
+ | `Spinner` | — |
16
+
17
+ _Inherited HTML/ARIA props (`className`, `style`, `id`, `onClick`, `aria-*`, …) omitted — every component takes them._
18
+
19
+ ## Skeleton
20
+
21
+ ```tsx
22
+ <Button disabled><Spinner /> 保存中</Button>
23
+ ```
24
+
25
+ ## Examples
26
+
27
+ Runnable files under `references/examples/` — portable by construction (`react` +
28
+ `@monkey-mini-app/ui` + relatives), so copy the closest one into `ui.tsx` / `ui/`.
29
+ Pick by **scenario**, then open the file you need.
30
+
31
+ - **[spinner-01.tsx](../examples/spinner/spinner-01.tsx)** — Spinner — Unknown-duration busy indicator inline in a button or row; prefer Progress when you can report percent.
@@ -1,15 +1,20 @@
1
- <!-- generated by scripts/generate-skill.mjs — do not edit -->
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
2
 
3
3
  # StackedBarChart
4
4
 
5
+ Stacked bar chart over flat rows.
6
+
7
+ **when** Comparing several series across categories (pass/fail per day). Single ratio → `DonutChart`; trend → `Sparkline`.
8
+
5
9
  `import { StackedBarChart, ChartConfig } from "@monkey-mini-app/ui"`
6
10
 
7
- `packages/ui/src/blocks/bar-chart.tsx` · blocks
11
+ `packages/ui/src/blocks/bar-chart.tsx` · family: Chart & data · type: block
8
12
 
9
13
  ## Props
10
14
 
11
15
  | field | type | required | note |
12
16
  |---|---|:---:|---|
17
+ | `className` | `string \| undefined` | | |
13
18
  | `config` | `ChartConfig` | ✓ | |
14
19
  | `data` | `Record<string, string \| number>[]` | ✓ | |
15
20
  | `keys` | `string[]` | ✓ | |
@@ -21,3 +26,13 @@
21
26
  ```ts
22
27
  Record< string, { label?: React.ReactNode icon?: React.ComponentType } & ( | { color?: string; theme?: never } | { color?: never; theme: Record<keyof typeof THEMES, string> } ) >
23
28
  ```
29
+
30
+ ## Example
31
+
32
+ ```tsx
33
+ <StackedBarChart
34
+ data={[{ label: "09-01", ok: 12, fail: 2 }]}
35
+ keys={["ok", "fail"]}
36
+ config={{ ok: { label: "通过", color: "var(--primary)" }, fail: { label: "失败", color: "var(--destructive)" } }}
37
+ />
38
+ ```
@@ -1,4 +1,4 @@
1
- <!-- generated by scripts/generate-skill.mjs — do not edit -->
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
2
 
3
3
  # StatCard
4
4
 
@@ -8,7 +8,7 @@ KPI card: title, value, optional delta/trend.
8
8
 
9
9
  `import { StatCard } from "@monkey-mini-app/ui"`
10
10
 
11
- `packages/ui/src/blocks/stat-card.tsx` · blocks
11
+ `packages/ui/src/blocks/stat-card.tsx` · family: Chart & data · type: block
12
12
 
13
13
  ## Props
14
14
 
@@ -1,4 +1,4 @@
1
- <!-- generated by scripts/generate-skill.mjs — do not edit -->
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
2
 
3
3
  # StatusBadge
4
4
 
@@ -8,7 +8,7 @@ Toned badge for run/test status.
8
8
 
9
9
  `import { StatusBadge } from "@monkey-mini-app/ui"`
10
10
 
11
- `packages/ui/src/blocks/status-badge.tsx` · blocks
11
+ `packages/ui/src/blocks/status-badge.tsx` · family: Feedback & status · type: block
12
12
 
13
13
  ## Props
14
14
 
@@ -0,0 +1,39 @@
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
+
3
+ # StepperItem
4
+
5
+ One step inside `Stepper` (title, description, status).
6
+
7
+ **when** As a child of `Stepper` only — status is `default | active | completed` (lowercase).
8
+
9
+ `import { StepperItem, StepStatus, StepperProps } from "@monkey-mini-app/ui"`
10
+
11
+ `packages/ui/src/products/stepper.tsx` · family: Feedback & status · type: product
12
+
13
+ ## Props
14
+
15
+ | field | type | required | note |
16
+ |---|---|:---:|---|
17
+ | `children` | `React.ReactNode` | | Content rendered below the step header (code blocks, text, etc.). |
18
+ | `className` | `string \| undefined` | | |
19
+ | `description` | `string \| undefined` | | Optional description below the title. |
20
+ | `icon` | `React.ReactNode` | | Custom icon to replace the step number circle. |
21
+ | `status` | `StepStatus \| undefined` | | Visual status of this step. Defaults to "default". |
22
+ | `step` | `number \| undefined` | | Override the auto-incremented step number. |
23
+ | `title` | `string` | ✓ | Step heading text. |
24
+
25
+ ## Types
26
+
27
+ ### `StepStatus`
28
+
29
+ ```ts
30
+ "default" | "active" | "completed"
31
+ ```
32
+
33
+ ### `StepperProps`
34
+
35
+ | field | type | required | note |
36
+ |---|---|:---:|---|
37
+ | `children` | `React.ReactNode` | ✓ | StepperItem elements. |
38
+ | `className` | `string \| undefined` | | |
39
+ | `orientation` | `"vertical" \| "horizontal" \| undefined` | | Layout direction. Defaults to "vertical". |
@@ -1,26 +1,53 @@
1
- <!-- generated by scripts/generate-skill.mjs — do not edit -->
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
2
 
3
3
  # Stepper
4
4
 
5
- `import { Stepper, Step } from "@monkey-mini-app/ui"`
5
+ Numbered steps with status; children are `StepperItem`.
6
6
 
7
- `packages/ui/src/products/stepper.tsx` · products
7
+ **when** Wizard/progress of an ordered process. Time axis → `RunTimeline`.
8
+
9
+ `import { Stepper, StepStatus, StepperItemProps } from "@monkey-mini-app/ui"`
10
+
11
+ `packages/ui/src/products/stepper.tsx` · family: Feedback & status · type: product
8
12
 
9
13
  ## Props
10
14
 
11
15
  | field | type | required | note |
12
16
  |---|---|:---:|---|
13
- | `current` | `number` | ✓ | |
14
- | `onStepClick` | `((index: number) => void) \| undefined` | | |
15
- | `orientation` | `"vertical" \| "horizontal" \| undefined` | | |
16
- | `steps` | `Step[]` | ✓ | |
17
+ | `children` | `React.ReactNode` | ✓ | StepperItem elements. |
18
+ | `className` | `string \| undefined` | | |
19
+ | `orientation` | `"vertical" \| "horizontal" \| undefined` | | Layout direction. Defaults to "vertical". |
17
20
 
18
21
  ## Types
19
22
 
20
- ### `Step`
23
+ ### `StepStatus`
24
+
25
+ ```ts
26
+ "default" | "active" | "completed"
27
+ ```
28
+
29
+ ### `StepperItemProps`
21
30
 
22
31
  | field | type | required | note |
23
32
  |---|---|:---:|---|
24
- | `description` | `string \| undefined` | | |
25
- | `id` | `string` | | |
26
- | `title` | `string` | | |
33
+ | `children` | `React.ReactNode` | | Content rendered below the step header (code blocks, text, etc.). |
34
+ | `className` | `string \| undefined` | | |
35
+ | `description` | `string \| undefined` | | Optional description below the title. |
36
+ | `icon` | `React.ReactNode` | | Custom icon to replace the step number circle. |
37
+ | `status` | `StepStatus \| undefined` | | Visual status of this step. Defaults to "default". |
38
+ | `step` | `number \| undefined` | | Override the auto-incremented step number. |
39
+ | `title` | `string` | ✓ | Step heading text. |
40
+
41
+ ## Example
42
+
43
+ ```tsx
44
+ <Stepper><StepperItem title="上传" status="pass" /><StepperItem title="校验" status="running" /></Stepper>
45
+ ```
46
+
47
+ ## Examples
48
+
49
+ Runnable files under `references/examples/` — portable by construction (`react` +
50
+ `@monkey-mini-app/ui` + relatives), so copy the closest one into `ui.tsx` / `ui/`.
51
+ Pick by **scenario**, then open the file you need.
52
+
53
+ - **[stepper-01.tsx](../examples/stepper/stepper-01.tsx)** — Stepper — Multi-step flow (draft → review → ship) with completed/active/pending states, vertical and horizontal. — _*Vertical and horizontal*_
@@ -0,0 +1,25 @@
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
+
3
+ # Switch (L1 primitive)
4
+
5
+ Boolean toggle.
6
+
7
+ **when** Immediate on/off settings (submit-on-toggle).
8
+
9
+ `import { Switch } from "@monkey-mini-app/ui"`
10
+
11
+ `packages/ui/src/components/switch.tsx` · family: Form · type: component · primitive
12
+
13
+ ## Parts
14
+
15
+ | part | own props |
16
+ |---|---|
17
+ | `Switch` | `checked?` `disabled?` `form?` `inputRef?` `name?` `nativeButton?` `onCheckedChange?` `readOnly?` `render?` `required?` `size?=default/sm` `uncheckedValue?` +1 |
18
+
19
+ _Inherited HTML/ARIA props (`className`, `style`, `id`, `onClick`, `aria-*`, …) omitted — every component takes them._
20
+
21
+ ## Skeleton
22
+
23
+ ```tsx
24
+ <Switch checked={on} onCheckedChange={set} />
25
+ ```
@@ -0,0 +1,41 @@
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
+
3
+ # TablePage
4
+
5
+ Full-height table page: toolbar pinned, one scrolling band for the grid, bulk bar floating. Without it a `DataGrid` is dropped into a plain flex column, the tallest child wins, and the page scrolls instead of the table: the toolbar slides off, pagination ends up below the fold, and selecting 200 rows shoves the table down every time the bulk bar appears. The band owns `min-h-0` + `overflow-y-auto` here, and the bulk bar is out of flow with `pointer-events-none` on its track so the rows under it stay clickable.
6
+
7
+ **when** Page shape: one wide filterable table is the product — inventories, ledgers, saved views
8
+
9
+ `import { TablePage } from "@monkey-mini-app/ui"`
10
+
11
+ `packages/ui/src/blocks/table-page.tsx` · family: Layout & structure · type: block
12
+
13
+ ## Props
14
+
15
+ | field | type | required | note |
16
+ |---|---|:---:|---|
17
+ | `bulk` | `ReactNode` | | Bulk actions. Floats over the bottom of the grid instead of pushing the rows around. |
18
+ | `className` | `string \| undefined` | | |
19
+ | `empty` | `ReactNode` | | First-run / no-match placeholder. Renders when `grid` is not given. |
20
+ | `grid` | `ReactNode` | | The table itself (a `DataGrid`, usually). The only slot that scrolls. |
21
+ | `pagination` | `ReactNode` | | A pager you own. `DataGrid` already renders its own when `features.pagination` is on. |
22
+ | `toolbar` | `ReactNode` | | Page-level actions above the table: search, filters, "New". Pinned; it never scrolls away. |
23
+
24
+ ## Example
25
+
26
+ ```tsx
27
+ <TablePage
28
+ toolbar={<FilterBar {...{ query, onQueryChange, filters }} />}
29
+ grid={rows.length ? <DataGrid columns={columns} data={rows} /> : undefined}
30
+ empty={<FirstRun onImport={import} />}
31
+ bulk={selected.size ? <BulkBar count={selected.size} onClear={clear} /> : undefined}
32
+ />
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
+ - **[table-page-01.tsx](../examples/table-page/table-page-01.tsx)** — TablePage — A wide table as the whole product: the filter bar stays pinned, only the grid scrolls, and ticking rows floats a bulk bar over the bottom without moving a single row. — _*Scroll the table — the toolbar stays put; select rows — the bar floats over the grid, it never pushes rows down*_
@@ -0,0 +1,42 @@
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
+
3
+ # Table (L1 primitive)
4
+
5
+ Raw HTML table primitives.
6
+
7
+ **when** Only when you need full control of cells. Otherwise use `DataGrid` (sorting/filter/paging/CSV built in).
8
+
9
+ Compound: compose the parts below — **do not invent part names**.
10
+
11
+ `import { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from "@monkey-mini-app/ui"`
12
+
13
+ `packages/ui/src/components/table.tsx` · family: Data & tables · type: component · primitive
14
+
15
+ ## Parts
16
+
17
+ | part | own props |
18
+ |---|---|
19
+ | `Table` | — |
20
+ | `TableBody` | — |
21
+ | `TableCaption` | — |
22
+ | `TableCell` | — |
23
+ | `TableFooter` | — |
24
+ | `TableHead` | — |
25
+ | `TableHeader` | — |
26
+ | `TableRow` | — |
27
+
28
+ _Inherited HTML/ARIA props (`className`, `style`, `id`, `onClick`, `aria-*`, …) omitted — every component takes them._
29
+
30
+ ## Skeleton
31
+
32
+ ```tsx
33
+ <Table><TableHeader><TableRow><TableHead>列</TableHead></TableRow></TableHeader><TableBody><TableRow><TableCell>v</TableCell></TableRow></TableBody></Table>
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
+ - **[table-01.tsx](../examples/table/table-01.tsx)** — Table — Static, semantic table you lay out by hand — small fixed datasets; switch to DataGrid the moment you need sort/filter/pagination.
@@ -0,0 +1,31 @@
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
+
3
+ # Tabs (L1 primitive)
4
+
5
+ Switch between views in one page.
6
+
7
+ **when** Board vs table, or settings sections. Navigation between routes/pages → keep it in your own state.
8
+
9
+ Compound: compose the parts below — **do not invent part names**.
10
+
11
+ `import { Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants } from "@monkey-mini-app/ui"`
12
+
13
+ `packages/ui/src/components/tabs.tsx` · family: Navigation · type: component · primitive
14
+
15
+ ## Parts
16
+
17
+ | part | own props |
18
+ |---|---|
19
+ | `Tabs` | `onValueChange?` `orientation?` `render?` `value?` |
20
+ | `TabsContent` | `keepMounted?` `render?` `value` |
21
+ | `TabsList` | `activateOnFocus?` `loopFocus?` `render?` `variant?=line/default` |
22
+ | `TabsTrigger` | `disabled?` `nativeButton?` `render?` `value` |
23
+ | `tabsListVariants` (hook/util) | `class?` `variant?=line/default` |
24
+
25
+ _Inherited HTML/ARIA props (`className`, `style`, `id`, `onClick`, `aria-*`, …) omitted — every component takes them._
26
+
27
+ ## Skeleton
28
+
29
+ ```tsx
30
+ <Tabs value={v} onValueChange={set}><TabsList><TabsTrigger value="a">A</TabsTrigger></TabsList><TabsContent value="a">…</TabsContent></Tabs>
31
+ ```
@@ -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
  # TagInput
4
4
 
5
+ Chip-style multi-value text input.
6
+
7
+ **when** Labels/owners where free values are allowed (`Transfer` when choosing from a fixed pool).
8
+
5
9
  `import { TagInput } from "@monkey-mini-app/ui"`
6
10
 
7
- `packages/ui/src/composites/tag-input.tsx` · composites
11
+ `packages/ui/src/composites/tag-input.tsx` · family: Form · type: composite
8
12
 
9
13
  ## Props
10
14
 
@@ -13,3 +17,9 @@
13
17
  | `onChange` | `((value: string[]) => void) \| undefined` | | |
14
18
  | `placeholder` | `string \| undefined` | | |
15
19
  | `value` | `string[] \| undefined` | | |
20
+
21
+ ## Example
22
+
23
+ ```tsx
24
+ <TagInput value={tags} onChange={(v) => set(v)} />
25
+ ```
@@ -1,13 +1,24 @@
1
- <!-- generated by scripts/generate-skill.mjs — do not edit -->
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
2
 
3
3
  # Terminal
4
4
 
5
+ Fixed-width console block.
6
+
7
+ **when** Showing a command + its output verbatim. Timestamped levels/scrolling → `LogViewer`.
8
+
5
9
  `import { Terminal } from "@monkey-mini-app/ui"`
6
10
 
7
- `packages/ui/src/blocks/terminal.tsx` · blocks
11
+ `packages/ui/src/blocks/terminal.tsx` · family: Realtime · type: block
8
12
 
9
13
  ## Props
10
14
 
11
15
  | field | type | required | note |
12
16
  |---|---|:---:|---|
17
+ | `className` | `string \| undefined` | | |
13
18
  | `lines` | `string[]` | ✓ | |
19
+
20
+ ## Example
21
+
22
+ ```tsx
23
+ <Terminal lines={["$ df -h", "/dev/disk1 62%"]} />
24
+ ```
@@ -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
  # TestStepList
4
4
 
5
+ Numbered test steps with expected/actual + status.
6
+
7
+ **when** QA cases, checklists that get executed and graded.
8
+
5
9
  `import { TestStepList, TestStep } from "@monkey-mini-app/ui"`
6
10
 
7
- `packages/ui/src/blocks/test-step-list.tsx` · blocks
11
+ `packages/ui/src/blocks/test-step-list.tsx` · family: Data & tables · type: block
8
12
 
9
13
  ## Props
10
14
 
@@ -21,3 +25,9 @@
21
25
  | `id` | `string` | ✓ | |
22
26
  | `status` | `string` | ✓ | |
23
27
  | `title` | `string` | ✓ | |
28
+
29
+ ## Example
30
+
31
+ ```tsx
32
+ <TestStepList steps={[{ id: "s1", name: "登录", status: "pass" }]} />
33
+ ```