@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.
- package/README.md +59 -0
- package/assets/apps-list.png +0 -0
- package/assets/complex-demo-app.png +0 -0
- package/assets/demo-app.png +0 -0
- package/assets/home.png +0 -0
- package/assets/sidebar-mode.png +0 -0
- package/lib/client.js +2024 -783
- package/lib/index.d.ts +5 -2
- package/lib/index.js +29 -16
- package/package.json +12 -10
- package/skills/monkey-mini-app/SKILL.md +182 -106
- package/skills/monkey-mini-app/references/catalog.md +236 -99
- package/skills/monkey-mini-app/references/contracts/accordion.md +30 -0
- package/skills/monkey-mini-app/references/contracts/activity-feed.md +12 -2
- package/skills/monkey-mini-app/references/contracts/alert-dialog.md +38 -0
- package/skills/monkey-mini-app/references/contracts/alert.md +38 -0
- package/skills/monkey-mini-app/references/contracts/app-shell.md +2 -2
- package/skills/monkey-mini-app/references/contracts/aspect-ratio.md +25 -0
- package/skills/monkey-mini-app/references/contracts/attachment-gallery.md +12 -2
- package/skills/monkey-mini-app/references/contracts/attachment.md +35 -0
- package/skills/monkey-mini-app/references/contracts/autocomplete.md +12 -2
- package/skills/monkey-mini-app/references/contracts/avatar.md +24 -0
- package/skills/monkey-mini-app/references/contracts/badge.md +26 -0
- package/skills/monkey-mini-app/references/contracts/breadcrumb.md +33 -0
- package/skills/monkey-mini-app/references/contracts/bubble.md +30 -0
- package/skills/monkey-mini-app/references/contracts/button-group.md +36 -0
- package/skills/monkey-mini-app/references/contracts/button.md +26 -0
- package/skills/monkey-mini-app/references/contracts/calendar.md +20 -0
- package/skills/monkey-mini-app/references/contracts/card.md +41 -0
- package/skills/monkey-mini-app/references/contracts/cascader.md +12 -2
- package/skills/monkey-mini-app/references/contracts/chart.md +32 -0
- package/skills/monkey-mini-app/references/contracts/checkbox.md +19 -0
- package/skills/monkey-mini-app/references/contracts/code-block.md +20 -2
- package/skills/monkey-mini-app/references/contracts/code-editor.md +30 -4
- package/skills/monkey-mini-app/references/contracts/collapsible.md +21 -0
- package/skills/monkey-mini-app/references/contracts/color-picker.md +12 -2
- package/skills/monkey-mini-app/references/contracts/combobox.md +34 -0
- package/skills/monkey-mini-app/references/contracts/command.md +41 -0
- package/skills/monkey-mini-app/references/contracts/comment-thread.md +12 -2
- package/skills/monkey-mini-app/references/contracts/commit-graph.md +50 -0
- package/skills/monkey-mini-app/references/contracts/confirm-dialog.md +20 -2
- package/skills/monkey-mini-app/references/contracts/context-menu.md +41 -0
- package/skills/monkey-mini-app/references/contracts/copyable.md +12 -2
- package/skills/monkey-mini-app/references/contracts/currency-input.md +12 -2
- package/skills/monkey-mini-app/references/contracts/dashboard-shell.md +41 -0
- package/skills/monkey-mini-app/references/contracts/data-grid.md +13 -6
- package/skills/monkey-mini-app/references/contracts/date-picker.md +20 -2
- package/skills/monkey-mini-app/references/contracts/date-range-picker.md +10 -2
- package/skills/monkey-mini-app/references/contracts/date-time-picker.md +20 -2
- package/skills/monkey-mini-app/references/contracts/date-time-range-picker.md +20 -2
- package/skills/monkey-mini-app/references/contracts/description-list.md +12 -2
- package/skills/monkey-mini-app/references/contracts/detail-panel.md +10 -2
- package/skills/monkey-mini-app/references/contracts/dialog.md +44 -0
- package/skills/monkey-mini-app/references/contracts/diff-viewer.md +21 -2
- package/skills/monkey-mini-app/references/contracts/donut-chart.md +14 -2
- package/skills/monkey-mini-app/references/contracts/drawer.md +29 -0
- package/skills/monkey-mini-app/references/contracts/dropdown-menu.md +49 -0
- package/skills/monkey-mini-app/references/contracts/duration-input.md +20 -2
- package/skills/monkey-mini-app/references/contracts/empty.md +40 -0
- package/skills/monkey-mini-app/references/contracts/env-badge.md +12 -2
- package/skills/monkey-mini-app/references/contracts/env-table.md +46 -0
- package/skills/monkey-mini-app/references/contracts/event-calendar.md +28 -20
- package/skills/monkey-mini-app/references/contracts/field.md +34 -0
- package/skills/monkey-mini-app/references/contracts/file-dropzone.md +20 -2
- package/skills/monkey-mini-app/references/contracts/file-tree.md +12 -2
- package/skills/monkey-mini-app/references/contracts/filter-bar.md +2 -2
- package/skills/monkey-mini-app/references/contracts/form-sheet.md +51 -0
- package/skills/monkey-mini-app/references/contracts/gantt.md +20 -2
- package/skills/monkey-mini-app/references/contracts/gauge.md +14 -2
- package/skills/monkey-mini-app/references/contracts/hover-card.md +21 -0
- package/skills/monkey-mini-app/references/contracts/input-group.md +24 -0
- package/skills/monkey-mini-app/references/contracts/input.md +33 -0
- package/skills/monkey-mini-app/references/contracts/item.md +36 -0
- package/skills/monkey-mini-app/references/contracts/jira-wiki.md +3 -4
- package/skills/monkey-mini-app/references/contracts/jql-input.md +15 -8
- package/skills/monkey-mini-app/references/contracts/json-viewer.md +20 -2
- package/skills/monkey-mini-app/references/contracts/kanban-issue-panel.md +12 -2
- package/skills/monkey-mini-app/references/contracts/kanban.md +10 -2
- package/skills/monkey-mini-app/references/contracts/kbd.md +20 -0
- package/skills/monkey-mini-app/references/contracts/label.md +33 -0
- package/skills/monkey-mini-app/references/contracts/list-detail.md +46 -0
- package/skills/monkey-mini-app/references/contracts/log-viewer.md +45 -4
- package/skills/monkey-mini-app/references/contracts/markdown-editor.md +20 -2
- package/skills/monkey-mini-app/references/contracts/markdown.md +12 -2
- package/skills/monkey-mini-app/references/contracts/marker.md +30 -0
- package/skills/monkey-mini-app/references/contracts/menubar.md +34 -0
- package/skills/monkey-mini-app/references/contracts/message-scroller.md +24 -0
- package/skills/monkey-mini-app/references/contracts/message.md +24 -0
- package/skills/monkey-mini-app/references/contracts/mini-calendar.md +20 -2
- package/skills/monkey-mini-app/references/contracts/native-select.md +21 -0
- package/skills/monkey-mini-app/references/contracts/navigation-menu.md +27 -0
- package/skills/monkey-mini-app/references/contracts/notification-center.md +12 -2
- package/skills/monkey-mini-app/references/contracts/number-field.md +20 -2
- package/skills/monkey-mini-app/references/contracts/page-header.md +2 -2
- package/skills/monkey-mini-app/references/contracts/pagination.md +33 -0
- package/skills/monkey-mini-app/references/contracts/password-field.md +12 -2
- package/skills/monkey-mini-app/references/contracts/phone-input.md +12 -2
- package/skills/monkey-mini-app/references/contracts/popover.md +32 -0
- package/skills/monkey-mini-app/references/contracts/progress-ring.md +14 -2
- package/skills/monkey-mini-app/references/contracts/progress.md +39 -0
- package/skills/monkey-mini-app/references/contracts/questionnaire.md +33 -0
- package/skills/monkey-mini-app/references/contracts/radar-chart.md +14 -2
- package/skills/monkey-mini-app/references/contracts/radio-group.md +20 -0
- package/skills/monkey-mini-app/references/contracts/rating.md +12 -2
- package/skills/monkey-mini-app/references/contracts/relative-date-picker.md +20 -2
- package/skills/monkey-mini-app/references/contracts/request-inspector.md +12 -2
- package/skills/monkey-mini-app/references/contracts/resizable.md +29 -0
- package/skills/monkey-mini-app/references/contracts/reveal.md +31 -0
- package/skills/monkey-mini-app/references/contracts/rich-text-editor.md +14 -2
- package/skills/monkey-mini-app/references/contracts/run-timeline.md +20 -2
- package/skills/monkey-mini-app/references/contracts/scroll-area.md +20 -0
- package/skills/monkey-mini-app/references/contracts/scrollspy.md +20 -2
- package/skills/monkey-mini-app/references/contracts/search-input.md +12 -2
- package/skills/monkey-mini-app/references/contracts/select.md +36 -0
- package/skills/monkey-mini-app/references/contracts/separator.md +27 -0
- package/skills/monkey-mini-app/references/contracts/settings-split.md +53 -0
- package/skills/monkey-mini-app/references/contracts/severity-chip.md +12 -2
- package/skills/monkey-mini-app/references/contracts/sheet.md +34 -0
- package/skills/monkey-mini-app/references/contracts/sidebar.md +42 -0
- package/skills/monkey-mini-app/references/contracts/skeleton.md +33 -0
- package/skills/monkey-mini-app/references/contracts/slider-range.md +12 -2
- package/skills/monkey-mini-app/references/contracts/slider.md +25 -0
- package/skills/monkey-mini-app/references/contracts/sortable-list.md +20 -2
- package/skills/monkey-mini-app/references/contracts/sparkline.md +13 -2
- package/skills/monkey-mini-app/references/contracts/spinner.md +31 -0
- package/skills/monkey-mini-app/references/contracts/stacked-bar-chart.md +17 -2
- package/skills/monkey-mini-app/references/contracts/stat-card.md +2 -2
- package/skills/monkey-mini-app/references/contracts/status-badge.md +2 -2
- package/skills/monkey-mini-app/references/contracts/stepper-item.md +39 -0
- package/skills/monkey-mini-app/references/contracts/stepper.md +38 -11
- package/skills/monkey-mini-app/references/contracts/switch.md +25 -0
- package/skills/monkey-mini-app/references/contracts/table-page.md +41 -0
- package/skills/monkey-mini-app/references/contracts/table.md +42 -0
- package/skills/monkey-mini-app/references/contracts/tabs.md +31 -0
- package/skills/monkey-mini-app/references/contracts/tag-input.md +12 -2
- package/skills/monkey-mini-app/references/contracts/terminal.md +13 -2
- package/skills/monkey-mini-app/references/contracts/test-step-list.md +12 -2
- package/skills/monkey-mini-app/references/contracts/textarea.md +25 -0
- package/skills/monkey-mini-app/references/contracts/time-picker.md +18 -2
- package/skills/monkey-mini-app/references/contracts/time-range-picker.md +20 -2
- package/skills/monkey-mini-app/references/contracts/time-wheel.md +6 -2
- package/skills/monkey-mini-app/references/contracts/timeline.md +20 -2
- package/skills/monkey-mini-app/references/contracts/timezone-select.md +20 -2
- package/skills/monkey-mini-app/references/contracts/toast.md +39 -0
- package/skills/monkey-mini-app/references/contracts/toggle-group.md +28 -0
- package/skills/monkey-mini-app/references/contracts/toggle.md +26 -0
- package/skills/monkey-mini-app/references/contracts/tooltip.md +30 -0
- package/skills/monkey-mini-app/references/contracts/transfer.md +12 -2
- package/skills/monkey-mini-app/references/contracts/tree-view.md +20 -2
- package/skills/monkey-mini-app/references/contracts/trend-card.md +12 -2
- package/skills/monkey-mini-app/references/contracts/user-picker.md +12 -2
- package/skills/monkey-mini-app/references/contracts/wizard-shell.md +56 -0
- package/skills/monkey-mini-app/references/ctx.md +123 -53
- package/skills/monkey-mini-app/references/eval.md +115 -0
- package/skills/monkey-mini-app/references/examples/alert/alert-01.tsx +17 -0
- package/skills/monkey-mini-app/references/examples/aspect-ratio/aspect-ratio-01.tsx +16 -0
- package/skills/monkey-mini-app/references/examples/attachment/attachment-01.tsx +19 -0
- package/skills/monkey-mini-app/references/examples/breadcrumb/breadcrumb-01.tsx +31 -0
- package/skills/monkey-mini-app/references/examples/bubble/bubble-01.tsx +16 -0
- package/skills/monkey-mini-app/references/examples/button-group/button-group-01.tsx +23 -0
- package/skills/monkey-mini-app/references/examples/card/card-01.tsx +19 -0
- package/skills/monkey-mini-app/references/examples/charts-blocks.md +15 -0
- package/skills/monkey-mini-app/references/examples/code-block/code-block-01.tsx +14 -0
- package/skills/monkey-mini-app/references/examples/code-editor/code-editor-01.tsx +15 -0
- package/skills/monkey-mini-app/references/examples/command/command-01.tsx +30 -0
- package/skills/monkey-mini-app/references/examples/confirm-dialog/confirm-dialog-01.tsx +33 -0
- package/skills/monkey-mini-app/references/examples/context-menu/context-menu-01.tsx +29 -0
- package/skills/monkey-mini-app/references/examples/dashboard-shell/dashboard-shell-01.tsx +78 -0
- package/skills/monkey-mini-app/references/examples/data-grid/data-grid-01.tsx +34 -0
- package/skills/monkey-mini-app/references/examples/data-grid/data-grid-02.tsx +88 -0
- package/skills/monkey-mini-app/references/examples/date-picker/date-picker-01.tsx +14 -0
- package/skills/monkey-mini-app/references/examples/date-range-picker/date-range-picker-01.tsx +14 -0
- package/skills/monkey-mini-app/references/examples/date-time-picker/date-time-picker-01.tsx +16 -0
- package/skills/monkey-mini-app/references/examples/date-time-range-picker/date-time-range-picker-01.tsx +15 -0
- package/skills/monkey-mini-app/references/examples/detail-panel/detail-panel-01.tsx +21 -0
- package/skills/monkey-mini-app/references/examples/dialog/dialog-01.tsx +30 -0
- package/skills/monkey-mini-app/references/examples/diff-viewer/diff-viewer-01.tsx +10 -0
- package/skills/monkey-mini-app/references/examples/dropdown-menu/dropdown-menu-01.tsx +31 -0
- package/skills/monkey-mini-app/references/examples/duration-input/duration-input-01.tsx +20 -0
- package/skills/monkey-mini-app/references/examples/editors.md +11 -0
- package/skills/monkey-mini-app/references/examples/empty/empty-01.tsx +19 -0
- package/skills/monkey-mini-app/references/examples/event-calendar/event-calendar-01.tsx +53 -0
- package/skills/monkey-mini-app/references/examples/file-dropzone/file-dropzone-01.tsx +14 -0
- package/skills/monkey-mini-app/references/examples/form-sheet/form-sheet-01.tsx +85 -0
- package/skills/monkey-mini-app/references/examples/forms.md +16 -0
- package/skills/monkey-mini-app/references/examples/gantt/gantt-01.tsx +29 -0
- package/skills/monkey-mini-app/references/examples/input/input-01.tsx +10 -0
- package/skills/monkey-mini-app/references/examples/item/item-01.tsx +19 -0
- package/skills/monkey-mini-app/references/examples/jql-input/jql-input-01.tsx +33 -0
- package/skills/monkey-mini-app/references/examples/json-viewer/json-viewer-01.tsx +10 -0
- package/skills/monkey-mini-app/references/examples/kanban/kanban-01.tsx +60 -0
- package/skills/monkey-mini-app/references/examples/label/label-01.tsx +10 -0
- package/skills/monkey-mini-app/references/examples/list-detail/list-detail-01.tsx +117 -0
- package/skills/monkey-mini-app/references/examples/log-viewer/log-viewer-01.tsx +20 -0
- package/skills/monkey-mini-app/references/examples/markdown-editor/markdown-editor-01.tsx +18 -0
- package/skills/monkey-mini-app/references/examples/marker/marker-01.tsx +16 -0
- package/skills/monkey-mini-app/references/examples/mini-calendar/mini-calendar-01.tsx +14 -0
- package/skills/monkey-mini-app/references/examples/misc-charts-blocks/misc-charts-blocks-01.tsx +20 -0
- package/skills/monkey-mini-app/references/examples/misc-charts-blocks/misc-charts-blocks-02.tsx +32 -0
- package/skills/monkey-mini-app/references/examples/misc-charts-blocks/misc-charts-blocks-03.tsx +47 -0
- package/skills/monkey-mini-app/references/examples/misc-charts-blocks/misc-charts-blocks-04.tsx +20 -0
- package/skills/monkey-mini-app/references/examples/misc-charts-blocks/misc-charts-blocks-05.tsx +24 -0
- package/skills/monkey-mini-app/references/examples/misc-charts-blocks/misc-charts-blocks-06.tsx +89 -0
- package/skills/monkey-mini-app/references/examples/misc-editors/misc-editors-01.tsx +114 -0
- package/skills/monkey-mini-app/references/examples/misc-editors/misc-editors-02.tsx +33 -0
- package/skills/monkey-mini-app/references/examples/misc-forms/misc-forms-01.tsx +22 -0
- package/skills/monkey-mini-app/references/examples/misc-forms/misc-forms-02.tsx +37 -0
- package/skills/monkey-mini-app/references/examples/misc-forms/misc-forms-03.tsx +42 -0
- package/skills/monkey-mini-app/references/examples/misc-forms/misc-forms-04.tsx +25 -0
- package/skills/monkey-mini-app/references/examples/misc-forms/misc-forms-05.tsx +27 -0
- package/skills/monkey-mini-app/references/examples/misc-forms/misc-forms-06.tsx +33 -0
- package/skills/monkey-mini-app/references/examples/misc-forms/misc-forms-07.tsx +44 -0
- package/skills/monkey-mini-app/references/examples/misc-overlays/misc-overlays-01.tsx +43 -0
- package/skills/monkey-mini-app/references/examples/misc-overlays/misc-overlays-02.tsx +38 -0
- package/skills/monkey-mini-app/references/examples/misc-primitives/misc-primitives-01.tsx +21 -0
- package/skills/monkey-mini-app/references/examples/misc-primitives/misc-primitives-02.tsx +52 -0
- package/skills/monkey-mini-app/references/examples/misc-primitives/misc-primitives-03.tsx +44 -0
- package/skills/monkey-mini-app/references/examples/number-field/number-field-01.tsx +22 -0
- package/skills/monkey-mini-app/references/examples/overlays.md +11 -0
- package/skills/monkey-mini-app/references/examples/pagination/pagination-01.tsx +51 -0
- package/skills/monkey-mini-app/references/examples/primitives.md +12 -0
- package/skills/monkey-mini-app/references/examples/progress/progress-01.tsx +10 -0
- package/skills/monkey-mini-app/references/examples/relative-date-picker/relative-date-picker-01.tsx +19 -0
- package/skills/monkey-mini-app/references/examples/rich-text-editor/rich-text-editor-01.tsx +15 -0
- package/skills/monkey-mini-app/references/examples/run-timeline/run-timeline-01.tsx +17 -0
- package/skills/monkey-mini-app/references/examples/scrollspy/scrollspy-01.tsx +29 -0
- package/skills/monkey-mini-app/references/examples/separator/separator-01.tsx +10 -0
- package/skills/monkey-mini-app/references/examples/settings-split/settings-split-01.tsx +84 -0
- package/skills/monkey-mini-app/references/examples/shared/jira-wiki-sample.ts +38 -0
- package/skills/monkey-mini-app/references/examples/skeleton/skeleton-01.tsx +10 -0
- package/skills/monkey-mini-app/references/examples/slider/slider-01.tsx +22 -0
- package/skills/monkey-mini-app/references/examples/sortable-list/sortable-list-01.tsx +18 -0
- package/skills/monkey-mini-app/references/examples/spinner/spinner-01.tsx +10 -0
- package/skills/monkey-mini-app/references/examples/stepper/stepper-01.tsx +41 -0
- package/skills/monkey-mini-app/references/examples/table/table-01.tsx +25 -0
- package/skills/monkey-mini-app/references/examples/table-page/table-page-01.tsx +103 -0
- package/skills/monkey-mini-app/references/examples/time-picker/time-picker-01.tsx +19 -0
- package/skills/monkey-mini-app/references/examples/time-range-picker/time-range-picker-01.tsx +14 -0
- package/skills/monkey-mini-app/references/examples/timeline/timeline-01.tsx +18 -0
- package/skills/monkey-mini-app/references/examples/timezone-select/timezone-select-01.tsx +15 -0
- package/skills/monkey-mini-app/references/examples/toggle/toggle-01.tsx +20 -0
- package/skills/monkey-mini-app/references/examples/toggle-group/toggle-group-01.tsx +22 -0
- package/skills/monkey-mini-app/references/examples/tree-view/tree-view-01.tsx +25 -0
- package/skills/monkey-mini-app/references/examples/wizard-shell/wizard-shell-01.tsx +58 -0
- package/skills/monkey-mini-app/references/history.md +23 -7
- package/skills/monkey-mini-app/references/icons.md +99 -69
- package/skills/monkey-mini-app/references/llm-json.md +39 -26
- package/skills/monkey-mini-app/references/loader.md +47 -20
- package/skills/monkey-mini-app/references/looks/aurora-bento.md +88 -0
- package/skills/monkey-mini-app/references/looks/desk-split.md +89 -0
- package/skills/monkey-mini-app/references/looks/editorial.md +78 -0
- package/skills/monkey-mini-app/references/looks/glass-island.md +90 -0
- package/skills/monkey-mini-app/references/looks/index.md +18 -0
- package/skills/monkey-mini-app/references/looks/signage.md +74 -0
- package/skills/monkey-mini-app/references/looks/tape.md +22 -0
- package/skills/monkey-mini-app/references/looks/terminal.md +88 -0
- package/skills/monkey-mini-app/references/looks/void.md +22 -0
- package/skills/monkey-mini-app/references/styling.md +189 -0
- package/skills/monkey-mini-app/references/test.md +12 -12
- package/skills/monkey-mini-app/references/theme.md +197 -0
- package/skills/monkey-mini-app/references/tools.md +12 -12
- package/skills/monkey-mini-app/references/troubleshoot.md +165 -12
- package/skills/monkey-mini-app/templates/README.md +33 -21
- package/skills/monkey-mini-app/templates/{jira → board}/main.api.ts +11 -11
- package/skills/monkey-mini-app/templates/board/manifest.json +8 -0
- package/skills/monkey-mini-app/templates/board/theme.css +46 -0
- package/skills/monkey-mini-app/templates/board/ui.tsx +546 -0
- package/skills/monkey-mini-app/templates/chores/main.api.ts +35 -0
- package/skills/monkey-mini-app/templates/chores/manifest.json +8 -0
- package/skills/monkey-mini-app/templates/chores/theme.css +46 -0
- package/skills/monkey-mini-app/templates/chores/ui.tsx +117 -0
- package/skills/monkey-mini-app/templates/minimal/main.api.ts +5 -5
- package/skills/monkey-mini-app/templates/minimal/manifest.json +1 -2
- package/skills/monkey-mini-app/templates/minimal/ui.tsx +17 -8
- package/skills/monkey-mini-app/templates/radar/api/scan.ts +79 -0
- package/skills/monkey-mini-app/templates/radar/main.api.ts +29 -0
- package/skills/monkey-mini-app/templates/radar/manifest.json +8 -0
- package/skills/monkey-mini-app/templates/radar/shared/events.ts +25 -0
- package/skills/monkey-mini-app/templates/{insights/lib → radar/shared}/sample.ts +1 -1
- package/skills/monkey-mini-app/templates/radar/theme.css +47 -0
- package/skills/monkey-mini-app/templates/radar/ui/brief.tsx +31 -0
- package/skills/monkey-mini-app/templates/radar/ui.tsx +131 -0
- package/skills/monkey-mini-app/templates/runner/main.api.ts +91 -0
- package/skills/monkey-mini-app/templates/runner/manifest.json +8 -0
- package/skills/monkey-mini-app/templates/runner/shared/events.ts +14 -0
- package/skills/monkey-mini-app/templates/runner/theme.css +46 -0
- package/skills/monkey-mini-app/templates/runner/ui.tsx +213 -0
- package/skills/monkey-mini-app/templates/sheets/main.api.ts +276 -0
- package/skills/monkey-mini-app/templates/sheets/manifest.json +8 -0
- package/skills/monkey-mini-app/templates/sheets/theme.css +46 -0
- package/skills/monkey-mini-app/templates/sheets/ui.tsx +419 -0
- package/skills/monkey-mini-app/templates/{todo → today}/main.api.ts +8 -8
- package/skills/monkey-mini-app/templates/today/manifest.json +8 -0
- package/skills/monkey-mini-app/templates/today/theme.css +45 -0
- package/skills/monkey-mini-app/templates/today/ui/item-row.tsx +25 -0
- package/skills/monkey-mini-app/templates/today/ui.tsx +406 -0
- package/skills/monkey-mini-app/templates/{monitor → watch}/main.api.ts +8 -8
- package/skills/monkey-mini-app/templates/watch/manifest.json +8 -0
- package/skills/monkey-mini-app/templates/watch/ui.tsx +187 -0
- package/skills/monkey-mini-app/tsconfig.json +31 -0
- package/skills/monkey-mini-app/types/cdn.d.ts +1 -0
- package/tsup.config.ts +1 -0
- package/skills/monkey-mini-app/templates/agentrun/main.api.ts +0 -78
- package/skills/monkey-mini-app/templates/agentrun/manifest.json +0 -9
- package/skills/monkey-mini-app/templates/agentrun/ui.tsx +0 -125
- package/skills/monkey-mini-app/templates/insights/main.api.ts +0 -101
- package/skills/monkey-mini-app/templates/insights/manifest.json +0 -9
- package/skills/monkey-mini-app/templates/insights/ui.tsx +0 -138
- package/skills/monkey-mini-app/templates/jira/manifest.json +0 -9
- package/skills/monkey-mini-app/templates/jira/ui.tsx +0 -318
- package/skills/monkey-mini-app/templates/monitor/manifest.json +0 -9
- package/skills/monkey-mini-app/templates/monitor/ui.tsx +0 -176
- package/skills/monkey-mini-app/templates/review/main.api.ts +0 -68
- package/skills/monkey-mini-app/templates/review/manifest.json +0 -9
- package/skills/monkey-mini-app/templates/review/ui.tsx +0 -159
- package/skills/monkey-mini-app/templates/todo/manifest.json +0 -8
- 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/
|
|
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` ·
|
|
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/
|
|
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` ·
|
|
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/
|
|
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` ·
|
|
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/
|
|
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` ·
|
|
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/
|
|
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` ·
|
|
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/
|
|
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` ·
|
|
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/
|
|
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` ·
|
|
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/
|
|
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` ·
|
|
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/
|
|
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` ·
|
|
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/
|
|
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` ·
|
|
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
|
+
```
|