@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,32 @@
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
+
3
+ # Popover (L1 primitive)
4
+
5
+ Anchored floating panel.
6
+
7
+ **when** Small editor/filter anchored to a control. Menus of commands → `DropdownMenu`.
8
+
9
+ Compound: compose the parts below — **do not invent part names**.
10
+
11
+ `import { Popover, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger } from "@monkey-mini-app/ui"`
12
+
13
+ `packages/ui/src/components/popover.tsx` · family: Surface · type: component · primitive
14
+
15
+ ## Parts
16
+
17
+ | part | own props |
18
+ |---|---|
19
+ | `Popover` | `actionsRef?` `defaultOpen?` `defaultTriggerId?` `handle?` `modal?` `onOpenChange?` `onOpenChangeComplete?` `open?` `triggerId?` |
20
+ | `PopoverContent` | `align?` `alignOffset?` `finalFocus?` `initialFocus?` `render?` `side?` `sideOffset?` |
21
+ | `PopoverDescription` | `render?` |
22
+ | `PopoverHeader` | — |
23
+ | `PopoverTitle` | `render?` |
24
+ | `PopoverTrigger` | `closeDelay?` `delay?` `handle?` `nativeButton?` `openOnHover?` `payload?` `render?` |
25
+
26
+ _Inherited HTML/ARIA props (`className`, `style`, `id`, `onClick`, `aria-*`, …) omitted — every component takes them._
27
+
28
+ ## Skeleton
29
+
30
+ ```tsx
31
+ <Popover><PopoverTrigger asChild><Button>筛选</Button></PopoverTrigger><PopoverContent>…</PopoverContent></Popover>
32
+ ```
@@ -1,13 +1,25 @@
1
- <!-- generated by scripts/generate-skill.mjs — do not edit -->
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
2
 
3
3
  # ProgressRing
4
4
 
5
+ Circular determinate progress.
6
+
7
+ **when** One percent-done value in a tight space (card corner, table cell).
8
+
5
9
  `import { ProgressRing } from "@monkey-mini-app/ui"`
6
10
 
7
- `packages/ui/src/blocks/progress-ring.tsx` · blocks
11
+ `packages/ui/src/blocks/progress-ring.tsx` · family: Feedback & status · type: block
8
12
 
9
13
  ## Props
10
14
 
11
15
  | field | type | required | note |
12
16
  |---|---|:---:|---|
17
+ | `className` | `string \| undefined` | | |
18
+ | `size` | `number \| undefined` | | |
13
19
  | `value` | `number` | ✓ | |
20
+
21
+ ## Example
22
+
23
+ ```tsx
24
+ <ProgressRing value={45} size={56} />
25
+ ```
@@ -0,0 +1,39 @@
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
+
3
+ # Progress (L1 primitive)
4
+
5
+ Linear determinate progress bar.
6
+
7
+ **when** Full-width scan/import progress. Compact circle → `ProgressRing`.
8
+
9
+ Compound: compose the parts below — **do not invent part names**.
10
+
11
+ `import { Progress, ProgressIndicator, ProgressLabel, ProgressTrack, ProgressValue } from "@monkey-mini-app/ui"`
12
+
13
+ `packages/ui/src/components/progress.tsx` · family: Feedback & status · type: component · primitive
14
+
15
+ ## Parts
16
+
17
+ | part | own props |
18
+ |---|---|
19
+ | `Progress` | `format?` `getAriaValueText?` `locale?` `max?` `min?` `render?` `value` |
20
+ | `ProgressIndicator` | `render?` |
21
+ | `ProgressLabel` | `render?` |
22
+ | `ProgressTrack` | `render?` |
23
+ | `ProgressValue` | `render?` |
24
+
25
+ _Inherited HTML/ARIA props (`className`, `style`, `id`, `onClick`, `aria-*`, …) omitted — every component takes them._
26
+
27
+ ## Skeleton
28
+
29
+ ```tsx
30
+ <Progress value={scan.progress} />
31
+ ```
32
+
33
+ ## Examples
34
+
35
+ Runnable files under `references/examples/` — portable by construction (`react` +
36
+ `@monkey-mini-app/ui` + relatives), so copy the closest one into `ui.tsx` / `ui/`.
37
+ Pick by **scenario**, then open the file you need.
38
+
39
+ - **[progress-01.tsx](../examples/progress/progress-01.tsx)** — Progress — Determinate percentage bar for a known-length task (upload, batch done/total); use Spinner when progress is unknown.
@@ -0,0 +1,33 @@
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
+
3
+ # Questionnaire (L1 primitive)
4
+
5
+ **when** Structured ask-the-user blocks; you persist the answers.
6
+
7
+ Compound: compose the parts below — **do not invent part names**.
8
+
9
+ `import { Questionnaire, QuestionnaireActions, QuestionnaireChoice, QuestionnaireChoiceDescription, QuestionnaireChoices, QuestionnaireDescription, QuestionnaireError, QuestionnaireInput, QuestionnaireItem, QuestionnaireNext, QuestionnairePrevious, QuestionnaireProgress, QuestionnaireSkip, QuestionnaireSubmit, QuestionnaireTitle } from "@monkey-mini-app/ui"`
10
+
11
+ `packages/ui/src/components/questionnaire.tsx` · family: Form · type: component · primitive
12
+
13
+ ## Parts
14
+
15
+ | part | own props |
16
+ |---|---|
17
+ | `Questionnaire` | `defaultItem?` `item?` `items?` `onItemChange?` `shortcuts?` |
18
+ | `QuestionnaireActions` | — |
19
+ | `QuestionnaireChoice` | `checked?` `disabled?` `render?` `value` |
20
+ | `QuestionnaireChoiceDescription` | — |
21
+ | `QuestionnaireChoices` | `render?` |
22
+ | `QuestionnaireDescription` | `render?` |
23
+ | `QuestionnaireError` | `render?` |
24
+ | `QuestionnaireInput` | `render?` `type?` |
25
+ | `QuestionnaireItem` | `invalid?` `multiple?` `name` `onStatusChange?` `required?` |
26
+ | `QuestionnaireNext` | `render?` `size?=default/xs/sm/lg/icon/icon-xs/icon-sm/icon-lg` `variant?=link/default/outline/secondary/ghost/destructive` |
27
+ | `QuestionnairePrevious` | `render?` `size?=default/xs/sm/lg/icon/icon-xs/icon-sm/icon-lg` `variant?=link/default/outline/secondary/ghost/destructive` |
28
+ | `QuestionnaireProgress` | `render?` |
29
+ | `QuestionnaireSkip` | `render?` `size?=default/xs/sm/lg/icon/icon-xs/icon-sm/icon-lg` `variant?=link/default/outline/secondary/ghost/destructive` |
30
+ | `QuestionnaireSubmit` | `render?` `size?=default/xs/sm/lg/icon/icon-xs/icon-sm/icon-lg` `variant?=link/default/outline/secondary/ghost/destructive` |
31
+ | `QuestionnaireTitle` | `render?` |
32
+
33
+ _Inherited HTML/ARIA props (`className`, `style`, `id`, `onClick`, `aria-*`, …) omitted — every component takes them._
@@ -1,18 +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
  # RadarChart
4
4
 
5
+ Multi-axis radar chart.
6
+
7
+ **when** Comparing an item across 4–8 dimensions (scores, coverage).
8
+
5
9
  `import { RadarChart, ChartConfig } from "@monkey-mini-app/ui"`
6
10
 
7
- `packages/ui/src/blocks/radar-chart.tsx` · blocks
11
+ `packages/ui/src/blocks/radar-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` | `{ label: string; value: number; }[]` | ✓ | |
15
20
  | `dataKey` | `string \| undefined` | | |
21
+ | `size` | `number \| undefined` | | |
16
22
 
17
23
  ## Types
18
24
 
@@ -21,3 +27,9 @@
21
27
  ```ts
22
28
  Record< string, { label?: React.ReactNode icon?: React.ComponentType } & ( | { color?: string; theme?: never } | { color?: never; theme: Record<keyof typeof THEMES, string> } ) >
23
29
  ```
30
+
31
+ ## Example
32
+
33
+ ```tsx
34
+ <RadarChart data={[{ label: "性能", value: 70 }]} />
35
+ ```
@@ -0,0 +1,20 @@
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
+
3
+ # RadioGroup (L1 primitive)
4
+
5
+ **when** 2–5 mutually exclusive options. Many options → `Select`.
6
+
7
+ Compound: compose the parts below — **do not invent part names**.
8
+
9
+ `import { RadioGroup, RadioGroupItem } from "@monkey-mini-app/ui"`
10
+
11
+ `packages/ui/src/components/radio-group.tsx` · family: Form · type: component · primitive
12
+
13
+ ## Parts
14
+
15
+ | part | own props |
16
+ |---|---|
17
+ | `RadioGroup` | `disabled?` `form?` `inputRef?` `name?` `onValueChange?` `readOnly?` `render?` `required?` `value?` |
18
+ | `RadioGroupItem` | `disabled?` `inputRef?` `nativeButton?` `readOnly?` `render?` `required?` `value` |
19
+
20
+ _Inherited HTML/ARIA props (`className`, `style`, `id`, `onClick`, `aria-*`, …) omitted — every component takes them._
@@ -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
  # Rating
4
4
 
5
+ Star rating.
6
+
7
+ **when** Feedback/score capture, 1–max.
8
+
5
9
  `import { Rating } from "@monkey-mini-app/ui"`
6
10
 
7
- `packages/ui/src/composites/rating.tsx` · composites
11
+ `packages/ui/src/composites/rating.tsx` · family: Form · type: composite
8
12
 
9
13
  ## Props
10
14
 
@@ -13,3 +17,9 @@
13
17
  | `max` | `number \| undefined` | | |
14
18
  | `onChange` | `((value: number) => void) \| undefined` | | |
15
19
  | `value` | `number \| undefined` | | |
20
+
21
+ ## Example
22
+
23
+ ```tsx
24
+ <Rating value={r} onChange={(v) => set(v)} />
25
+ ```
@@ -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
  # RelativeDatePicker
4
4
 
5
+ Preset ranges (today / last 7 days) → a concrete date range.
6
+
7
+ **when** Dashboard filters where “last 7 days” beats two calendars.
8
+
5
9
  `import { RelativeDatePicker, RelativePreset } from "@monkey-mini-app/ui"`
6
10
 
7
- `packages/ui/src/composites/relative-date-picker.tsx` · composites
11
+ `packages/ui/src/composites/relative-date-picker.tsx` · family: Calendar & date · type: composite
8
12
 
9
13
  ## Props
10
14
 
@@ -22,3 +26,17 @@
22
26
  ```ts
23
27
  "today" | "7d" | "30d" | "sprint" | "custom"
24
28
  ```
29
+
30
+ ## Example
31
+
32
+ ```tsx
33
+ <RelativeDatePicker onChange={(range, preset) => set(range)} />
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
+ - **[relative-date-picker-01.tsx](../examples/relative-date-picker/relative-date-picker-01.tsx)** — RelativeDatePicker — Preset ranges ('last 7 days', 'this month') that resolve to absolute timestamps on submit — the usual filter on dashboards and log screens.
@@ -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
  # RequestInspector
4
4
 
5
+ Side-by-side HTTP request/response panel.
6
+
7
+ **when** Debugging one API call: method, url, bodies. Multiple calls streaming → `LogViewer`.
8
+
5
9
  `import { RequestInspector } from "@monkey-mini-app/ui"`
6
10
 
7
- `packages/ui/src/blocks/request-inspector.tsx` · blocks
11
+ `packages/ui/src/blocks/request-inspector.tsx` · family: Discovery & inspect · type: block
8
12
 
9
13
  ## Props
10
14
 
@@ -14,3 +18,9 @@
14
18
  | `request` | `string \| undefined` | | |
15
19
  | `response` | `string \| undefined` | | |
16
20
  | `url` | `string` | ✓ | |
21
+
22
+ ## Example
23
+
24
+ ```tsx
25
+ <RequestInspector method="POST" url="/api/x" response="{\"ok\":true}" />
26
+ ```
@@ -0,0 +1,29 @@
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
+
3
+ # Resizable (L1 primitive)
4
+
5
+ Draggable split panes.
6
+
7
+ **when** Master-detail or editor + preview inside the app body.
8
+
9
+ Compound: compose the parts below — **do not invent part names**.
10
+
11
+ `import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from "@monkey-mini-app/ui"`
12
+
13
+ `packages/ui/src/components/resizable.tsx` · family: Layout & structure · type: component · primitive
14
+
15
+ ## Parts
16
+
17
+ | part | own props |
18
+ |---|---|
19
+ | `ResizableHandle` | `disabled?` `disableDoubleClick?` `elementRef?` `withHandle?` |
20
+ | `ResizablePanel` | `collapsedSize?` `collapsible?` `defaultSize?` `disabled?` `elementRef?` `groupResizeBehavior?=preserve-relative-size/preserve-pixel-size` `maxSize?` `minSize?` `onResize?` `panelRef?` |
21
+ | `ResizablePanelGroup` | `defaultLayout?` `disableCursor?` `disabled?` `elementRef?` `groupRef?` `onLayoutChange?` `onLayoutChanged?` `orientation?=vertical/horizontal` `resizeTargetMinimumSize?` |
22
+
23
+ _Inherited HTML/ARIA props (`className`, `style`, `id`, `onClick`, `aria-*`, …) omitted — every component takes them._
24
+
25
+ ## Skeleton
26
+
27
+ ```tsx
28
+ <ResizablePanelGroup orientation="horizontal"><ResizablePanel>list</ResizablePanel><ResizableHandle /><ResizablePanel>detail</ResizablePanel></ResizablePanelGroup>
29
+ ```
@@ -0,0 +1,31 @@
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
+
3
+ # Reveal
4
+
5
+ Entrance reveal — fade and rise, with a per-item `delay` for a stagger. This is the kit's front door to the platform `motion` build (`/mma/vendors/motion.js`, one shared React). Use it for the common case and reach for `import { motion, AnimatePresence } from "motion/react"` when you need exit, layout, or gesture animation — `AnimatePresence` in particular is what keeps a removing row from vanishing mid-transition.
6
+
7
+ **when** A card, row, or section appearing on first paint or after a filter change. Not for a hover/press response (one property: use a Tailwind `transition`) and not for animating an element out (use `AnimatePresence`).
8
+
9
+ `import { Reveal } from "@monkey-mini-app/ui"`
10
+
11
+ `packages/ui/src/blocks/reveal.tsx` · family: Animation · type: block
12
+
13
+ ## Props
14
+
15
+ | field | type | required | note |
16
+ |---|---|:---:|---|
17
+ | `children` | `React.ReactNode` | ✓ | |
18
+ | `className` | `string \| undefined` | | |
19
+ | `delay` | `number \| undefined` | | Stagger in ms — pass `i * 60` for a list. |
20
+ | `distance` | `number \| undefined` | | Rise distance in px. `0` fades in place. |
21
+ | `style` | `React.CSSProperties \| undefined` | | |
22
+
23
+ ## Example
24
+
25
+ ```tsx
26
+ {rows.map((r, i) => (
27
+ <Reveal key={r.id} delay={i * 60}>
28
+ <Card>{r.title}</Card>
29
+ </Reveal>
30
+ ))}
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
  # RichTextEditor
4
4
 
5
+ Lightweight rich-text editor (contentEditable + toolbar), same idea as `react-simple-wysiwyg`. HTML is browser-generated — sanitize server-side if needed.
6
+
7
+ **when** Notes/descriptions you store as **HTML**. Markdown → `MarkdownEditor`; code → `CodeEditor`. Sanitize server-side before rendering elsewhere.
8
+
5
9
  `import { RichTextEditor } from "@monkey-mini-app/ui"`
6
10
 
7
- `packages/ui/src/products/rich-text-editor.tsx` · products
11
+ `packages/ui/src/products/rich-text-editor.tsx` · family: Rich text · type: product
8
12
 
9
13
  ## Props
10
14
 
@@ -13,3 +17,11 @@
13
17
  | `onChange` | `((html: string) => void) \| undefined` | | |
14
18
  | `placeholder` | `string \| undefined` | | |
15
19
  | `value` | `string \| undefined` | | |
20
+
21
+ ## Examples
22
+
23
+ Runnable files under `references/examples/` — portable by construction (`react` +
24
+ `@monkey-mini-app/ui` + relatives), so copy the closest one into `ui.tsx` / `ui/`.
25
+ Pick by **scenario**, then open the file you need.
26
+
27
+ - **[rich-text-editor-01.tsx](../examples/rich-text-editor/rich-text-editor-01.tsx)** — RichTextEditor — WYSIWYG editing with a local contentEditable toolbar (bold/list/quote) — no CDN, no dependency; use when users are not writing raw markdown. — _*Tiptap — toolbar is live*_
@@ -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
  # RunTimeline
4
4
 
5
+ Timeline of run phases with duration + status.
6
+
7
+ **when** CI/agent/job phases on a time axis. Plain ordered events → `Timeline`.
8
+
5
9
  `import { RunTimeline, TimelineItem } from "@monkey-mini-app/ui"`
6
10
 
7
- `packages/ui/src/blocks/run-timeline.tsx` · blocks
11
+ `packages/ui/src/blocks/run-timeline.tsx` · family: Realtime · type: block
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
+ <RunTimeline items={[{ id: "p1", title: "checkout", status: "pass", time: "3s" }]} />
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
+ - **[run-timeline-01.tsx](../examples/run-timeline/run-timeline-01.tsx)** — RunTimeline — Ordered steps of one job (queued → running → done) with per-step status; denser than a Table when the story is sequence.
@@ -0,0 +1,20 @@
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
+
3
+ # ScrollArea (L1 primitive)
4
+
5
+ **when** A bounded panel (list in a card). Whole-page scroll → plain div.
6
+
7
+ Compound: compose the parts below — **do not invent part names**.
8
+
9
+ `import { ScrollArea, ScrollBar } from "@monkey-mini-app/ui"`
10
+
11
+ `packages/ui/src/components/scroll-area.tsx` · family: Layout & structure · type: component · primitive
12
+
13
+ ## Parts
14
+
15
+ | part | own props |
16
+ |---|---|
17
+ | `ScrollArea` | `overflowEdgeThreshold?` `render?` |
18
+ | `ScrollBar` | `keepMounted?` `orientation?=vertical/horizontal` `render?` |
19
+
20
+ _Inherited HTML/ARIA props (`className`, `style`, `id`, `onClick`, `aria-*`, …) omitted — every component takes them._
@@ -1,13 +1,31 @@
1
- <!-- generated by scripts/generate-skill.mjs — do not edit -->
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
2
 
3
3
  # Scrollspy
4
4
 
5
+ Anchor nav that highlights the section in view.
6
+
7
+ **when** Long settings/report page with jump links.
8
+
5
9
  `import { Scrollspy } from "@monkey-mini-app/ui"`
6
10
 
7
- `packages/ui/src/blocks/scrollspy.tsx` · blocks
11
+ `packages/ui/src/blocks/scrollspy.tsx` · family: Navigation · type: block
8
12
 
9
13
  ## Props
10
14
 
11
15
  | field | type | required | note |
12
16
  |---|---|:---:|---|
13
17
  | `sections` | `{ id: string; label: string; }[]` | ✓ | |
18
+
19
+ ## Example
20
+
21
+ ```tsx
22
+ <Scrollspy sections={[{ id: "overview", label: "概览" }]} />
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
+ - **[scrollspy-01.tsx](../examples/scrollspy/scrollspy-01.tsx)** — Scrollspy — Section nav that highlights whichever section is currently in view — long settings/docs pages; wire it to element ids.
@@ -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
  # SearchInput
4
4
 
5
+ Search box with debounce.
6
+
7
+ **when** Filter-as-you-type against `DataGrid`/lists — use `onDebouncedChange` for network calls.
8
+
5
9
  `import { SearchInput } from "@monkey-mini-app/ui"`
6
10
 
7
- `packages/ui/src/composites/search-input.tsx` · composites
11
+ `packages/ui/src/composites/search-input.tsx` · family: Form · type: composite
8
12
 
9
13
  ## Props
10
14
 
@@ -15,3 +19,9 @@
15
19
  | `onDebouncedChange` | `((value: string) => void) \| undefined` | | |
16
20
  | `placeholder` | `string \| undefined` | | |
17
21
  | `value` | `string \| undefined` | | |
22
+
23
+ ## Example
24
+
25
+ ```tsx
26
+ <SearchInput onDebouncedChange={(q) => call("list", { q })} />
27
+ ```
@@ -0,0 +1,36 @@
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
+
3
+ # Select (L1 primitive)
4
+
5
+ Dropdown single-choice from a fixed list.
6
+
7
+ **when** Closed set of options (searchable/large → `Autocomplete` or `DataGrid` filter).
8
+
9
+ Compound: compose the parts below — **do not invent part names**.
10
+
11
+ `import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue } from "@monkey-mini-app/ui"`
12
+
13
+ `packages/ui/src/components/select.tsx` · family: Form · type: component · primitive
14
+
15
+ ## Parts
16
+
17
+ | part | own props |
18
+ |---|---|
19
+ | `Select` | `actionsRef?` `autoComplete?` `defaultOpen?` `disabled?` `form?` `highlightItemOnHover?` `inputRef?` `isItemEqualToValue?` `items?` `itemToStringLabel?` `itemToStringValue?` `modal?` +9 |
20
+ | `SelectContent` | `align?` `alignItemWithTrigger?` `alignOffset?` `finalFocus?` `render?` `side?` `sideOffset?` |
21
+ | `SelectGroup` | `render?` |
22
+ | `SelectItem` | `disabled?` `label?` `nativeButton?` `render?` `value?` |
23
+ | `SelectLabel` | `render?` |
24
+ | `SelectScrollDownButton` | `keepMounted?` `render?` |
25
+ | `SelectScrollUpButton` | `keepMounted?` `render?` |
26
+ | `SelectSeparator` | `orientation?` `render?` |
27
+ | `SelectTrigger` | `disabled?` `nativeButton?` `render?` `size?=default/sm` |
28
+ | `SelectValue` | `placeholder?` `render?` |
29
+
30
+ _Inherited HTML/ARIA props (`className`, `style`, `id`, `onClick`, `aria-*`, …) omitted — every component takes them._
31
+
32
+ ## Skeleton
33
+
34
+ ```tsx
35
+ <Select value={v} onValueChange={set}><SelectTrigger><SelectValue placeholder="选择" /></SelectTrigger><SelectContent><SelectItem value="a">A</SelectItem></SelectContent></Select>
36
+ ```
@@ -0,0 +1,27 @@
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
+
3
+ # Separator (L1 primitive)
4
+
5
+ Horizontal/vertical rule.
6
+
7
+ **when** Grouping inside panels.
8
+
9
+ `import { Separator } from "@monkey-mini-app/ui"`
10
+
11
+ `packages/ui/src/components/separator.tsx` · family: Layout & structure · type: component · primitive
12
+
13
+ ## Parts
14
+
15
+ | part | own props |
16
+ |---|---|
17
+ | `Separator` | `orientation?` `render?` |
18
+
19
+ _Inherited HTML/ARIA props (`className`, `style`, `id`, `onClick`, `aria-*`, …) omitted — every component takes them._
20
+
21
+ ## Examples
22
+
23
+ Runnable files under `references/examples/` — portable by construction (`react` +
24
+ `@monkey-mini-app/ui` + relatives), so copy the closest one into `ui.tsx` / `ui/`.
25
+ Pick by **scenario**, then open the file you need.
26
+
27
+ - **[separator-01.tsx](../examples/separator/separator-01.tsx)** — Separator — Horizontal or vertical rule that inherits theme spacing, for splitting toolbar groups and metadata rows.
@@ -0,0 +1,53 @@
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
+
3
+ # SettingsSplit
4
+
5
+ Preferences / long-form page: a jump list that always matches the sections it scrolls to. Hand-rolled, this shape fails in three quiet ways: the nav's `href="#x"` and the section's `id` drift apart and the highlight never moves; the whole page scrolls so the nav scrolls out of view with the content it navigates; and a save bar placed after the content disappears below the fold. Here the ids come from one array, the nav and the content are independent scrollers, the jump list collapses to a pinned row when the panel is narrow, and `footer` is a sibling of the scroller — always visible, never part of the scroll.
6
+
7
+ **when** Page shape: a settings page, integration config, or a long report with anchored sections
8
+
9
+ `import { SettingsSplit, SettingsSection } from "@monkey-mini-app/ui"`
10
+
11
+ `packages/ui/src/blocks/settings-split.tsx` · family: Layout & structure · type: block
12
+
13
+ ## Props
14
+
15
+ | field | type | required | note |
16
+ |---|---|:---:|---|
17
+ | `className` | `string \| undefined` | | |
18
+ | `footer` | `React.ReactNode` | | Pinned to the bottom of the **content** pane — an unsaved-changes bar belongs to what it applies to, not to the window. |
19
+ | `nav` | `React.ReactNode` | | Anything above the jump list: page title, search, a plan badge. |
20
+ | `navWidth` | `number \| undefined` | | Jump-list width on wide screens, px. Default 224. |
21
+ | `sections` | `SettingsSection[]` | ✓ | The page's sections, in nav order. |
22
+
23
+ ## Types
24
+
25
+ ### `SettingsSection`
26
+
27
+ | field | type | required | note |
28
+ |---|---|:---:|---|
29
+ | `content` | `React.ReactNode` | ✓ | |
30
+ | `description` | `string \| undefined` | | One line under the heading — what this section is for. |
31
+ | `id` | `string` | ✓ | The anchor id. The preset puts it on the section **and** hands the same value to the jump list, so a nav that silently never highlights is not reachable from outside. |
32
+ | `label` | `string` | ✓ | |
33
+
34
+ ## Example
35
+
36
+ ```tsx
37
+ <SettingsSplit
38
+ sections={[
39
+ { id: "general", label: "通用", content: <GeneralForm /> },
40
+ { id: "hooks", label: "Webhook", description: "出站事件", content: <HooksForm /> },
41
+ ]}
42
+ nav={<PageHeader title="设置" />}
43
+ footer={dirty ? <UnsavedBar onSave={save} /> : undefined}
44
+ />
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
+ - **[settings-split-01.tsx](../examples/settings-split/settings-split-01.tsx)** — SettingsSplit — A settings page in a fixed-height panel: the jump list tracks the section you are reading, each side scrolls on its own, and the unsaved bar stays pinned to the content pane. — _*Scroll the sections — the nav highlight follows; edit a field and the save bar appears without the layout moving*_
@@ -1,13 +1,23 @@
1
- <!-- generated by scripts/generate-skill.mjs — do not edit -->
1
+ <!-- generated by scripts/gen/skill — do not edit -->
2
2
 
3
3
  # SeverityChip
4
4
 
5
+ Chip for severity/blocker level.
6
+
7
+ **when** P0–P4, blocker/critical columns. Run outcome → `StatusBadge`.
8
+
5
9
  `import { SeverityChip } from "@monkey-mini-app/ui"`
6
10
 
7
- `packages/ui/src/blocks/severity-chip.tsx` · blocks
11
+ `packages/ui/src/blocks/severity-chip.tsx` · family: Feedback & status · type: block
8
12
 
9
13
  ## Props
10
14
 
11
15
  | field | type | required | note |
12
16
  |---|---|:---:|---|
13
17
  | `severity` | `string` | ✓ | |
18
+
19
+ ## Example
20
+
21
+ ```tsx
22
+ <SeverityChip severity="critical" />
23
+ ```