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