@monkey-mini-app/dsh-mini-app 0.1.1 → 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 +29 -27
- package/lib/client.js +2024 -783
- package/lib/index.d.ts +2 -0
- package/lib/index.js +20 -7
- package/package.json +10 -9
- package/skills/monkey-mini-app/SKILL.md +181 -114
- 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 +12 -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 +12 -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 +12 -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 +12 -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 +12 -2
- package/skills/monkey-mini-app/references/contracts/spinner.md +31 -0
- package/skills/monkey-mini-app/references/contracts/stacked-bar-chart.md +16 -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,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @group editors
|
|
3
|
+
* @title JiraWiki
|
|
4
|
+
* @scenario JiraWiki markup rendered live next to the raw Textarea source (wiki tables, code blocks, colours).
|
|
5
|
+
* @hint Left markup, right live preview
|
|
6
|
+
*/
|
|
7
|
+
import * as React from "react";
|
|
8
|
+
|
|
9
|
+
import { JiraWiki, Textarea } from "@monkey-mini-app/ui";
|
|
10
|
+
|
|
11
|
+
import { JIRA_WIKI_SAMPLE } from "../shared/jira-wiki-sample";
|
|
12
|
+
|
|
13
|
+
export default function MiscEditors02Example() {
|
|
14
|
+
const [wiki, setWiki] = React.useState(JIRA_WIKI_SAMPLE);
|
|
15
|
+
|
|
16
|
+
return (
|
|
17
|
+
<>
|
|
18
|
+
<div className="overflow-hidden rounded-xl border bg-card">
|
|
19
|
+
<div className="grid min-h-[280px] md:grid-cols-2">
|
|
20
|
+
<Textarea
|
|
21
|
+
value={wiki}
|
|
22
|
+
onChange={(event) => setWiki(event.target.value)}
|
|
23
|
+
spellCheck={false}
|
|
24
|
+
className="min-h-[280px] resize-none rounded-none border-0 border-b font-mono md:border-r md:border-b-0"
|
|
25
|
+
/>
|
|
26
|
+
<div className="overflow-auto p-3">
|
|
27
|
+
<JiraWiki>{wiki}</JiraWiki>
|
|
28
|
+
</div>
|
|
29
|
+
</div>
|
|
30
|
+
</div>
|
|
31
|
+
</>
|
|
32
|
+
);
|
|
33
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @group forms
|
|
3
|
+
* @title Input / Textarea
|
|
4
|
+
* @scenario Free-text pair side by side: single-line Input vs multi-line Textarea, both controlled — the baseline before picking a specialised field.
|
|
5
|
+
*/
|
|
6
|
+
import * as React from "react";
|
|
7
|
+
|
|
8
|
+
import { Input, Textarea } from "@monkey-mini-app/ui";
|
|
9
|
+
|
|
10
|
+
export default function MiscForms01Example() {
|
|
11
|
+
const [text, setText] = React.useState("");
|
|
12
|
+
const [area, setArea] = React.useState("notes");
|
|
13
|
+
|
|
14
|
+
return (
|
|
15
|
+
<>
|
|
16
|
+
<div className="flex max-w-sm flex-col gap-2">
|
|
17
|
+
<Input value={text} onChange={(e) => setText(e.target.value)} placeholder="Type here" />
|
|
18
|
+
<Textarea value={area} onChange={(e) => setArea(e.target.value)} />
|
|
19
|
+
</div>
|
|
20
|
+
</>
|
|
21
|
+
);
|
|
22
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @group forms
|
|
3
|
+
* @title Checkbox / Switch / Radio
|
|
4
|
+
* @scenario Three boolean-ish choices compared: Checkbox (agree), Switch (instant-effect setting), RadioGroup (one of N). Pick by semantics, not looks.
|
|
5
|
+
*/
|
|
6
|
+
import * as React from "react";
|
|
7
|
+
|
|
8
|
+
import { Checkbox, RadioGroup, RadioGroupItem, Switch } from "@monkey-mini-app/ui";
|
|
9
|
+
|
|
10
|
+
export default function MiscForms02Example() {
|
|
11
|
+
const [on, setOn] = React.useState(true);
|
|
12
|
+
const [checked, setChecked] = React.useState(true);
|
|
13
|
+
const [radio, setRadio] = React.useState("a");
|
|
14
|
+
|
|
15
|
+
return (
|
|
16
|
+
<>
|
|
17
|
+
<div className="flex flex-col gap-3">
|
|
18
|
+
<label className="flex items-center gap-2 text-sm">
|
|
19
|
+
<Checkbox checked={checked} onCheckedChange={(v) => setChecked(!!v)} />
|
|
20
|
+
Accept
|
|
21
|
+
</label>
|
|
22
|
+
<label className="flex items-center gap-2 text-sm">
|
|
23
|
+
<Switch checked={on} onCheckedChange={setOn} />
|
|
24
|
+
Enabled {on ? "on" : "off"}
|
|
25
|
+
</label>
|
|
26
|
+
<RadioGroup value={radio} onValueChange={setRadio}>
|
|
27
|
+
<label className="flex items-center gap-2 text-sm">
|
|
28
|
+
<RadioGroupItem value="a" /> A
|
|
29
|
+
</label>
|
|
30
|
+
<label className="flex items-center gap-2 text-sm">
|
|
31
|
+
<RadioGroupItem value="b" /> B
|
|
32
|
+
</label>
|
|
33
|
+
</RadioGroup>
|
|
34
|
+
</div>
|
|
35
|
+
</>
|
|
36
|
+
);
|
|
37
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @group forms
|
|
3
|
+
* @title Select / NativeSelect
|
|
4
|
+
* @scenario Custom styled Select (compound parts, own trigger width) next to NativeSelect, which uses the OS picker — cheaper on mobile and keyboard.
|
|
5
|
+
*/
|
|
6
|
+
import * as React from "react";
|
|
7
|
+
|
|
8
|
+
import {
|
|
9
|
+
NativeSelect,
|
|
10
|
+
NativeSelectOption,
|
|
11
|
+
Select,
|
|
12
|
+
SelectContent,
|
|
13
|
+
SelectItem,
|
|
14
|
+
SelectTrigger,
|
|
15
|
+
SelectValue,
|
|
16
|
+
} from "@monkey-mini-app/ui";
|
|
17
|
+
|
|
18
|
+
export default function MiscForms03Example() {
|
|
19
|
+
const [select, setSelect] = React.useState("stg");
|
|
20
|
+
const [native, setNative] = React.useState("dev");
|
|
21
|
+
|
|
22
|
+
return (
|
|
23
|
+
<>
|
|
24
|
+
<div className="flex flex-wrap gap-3">
|
|
25
|
+
<Select value={select} onValueChange={(value) => value && setSelect(value)}>
|
|
26
|
+
<SelectTrigger className="w-40">
|
|
27
|
+
<SelectValue />
|
|
28
|
+
</SelectTrigger>
|
|
29
|
+
<SelectContent>
|
|
30
|
+
<SelectItem value="dev">dev</SelectItem>
|
|
31
|
+
<SelectItem value="stg">stg</SelectItem>
|
|
32
|
+
<SelectItem value="prd">prd</SelectItem>
|
|
33
|
+
</SelectContent>
|
|
34
|
+
</Select>
|
|
35
|
+
<NativeSelect value={native} onChange={(e) => setNative(e.target.value)}>
|
|
36
|
+
<NativeSelectOption value="dev">dev</NativeSelectOption>
|
|
37
|
+
<NativeSelectOption value="stg">stg</NativeSelectOption>
|
|
38
|
+
</NativeSelect>
|
|
39
|
+
</div>
|
|
40
|
+
</>
|
|
41
|
+
);
|
|
42
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @group forms
|
|
3
|
+
* @title Phone / Password / Currency / Copyable
|
|
4
|
+
* @scenario Format-aware text fields that validate while typing: PhoneInput, PasswordField (mask toggle), CurrencyInput, plus Copyable for read-only tokens/ids.
|
|
5
|
+
*/
|
|
6
|
+
import * as React from "react";
|
|
7
|
+
|
|
8
|
+
import { Copyable, CurrencyInput, PasswordField, PhoneInput } from "@monkey-mini-app/ui";
|
|
9
|
+
|
|
10
|
+
export default function MiscForms04Example() {
|
|
11
|
+
const [phone, setPhone] = React.useState("");
|
|
12
|
+
const [pwd, setPwd] = React.useState("secret");
|
|
13
|
+
const [money, setMoney] = React.useState("12.50");
|
|
14
|
+
|
|
15
|
+
return (
|
|
16
|
+
<>
|
|
17
|
+
<div className="flex max-w-sm flex-col gap-2">
|
|
18
|
+
<PhoneInput value={phone} onChange={setPhone} />
|
|
19
|
+
<PasswordField value={pwd} onChange={setPwd} />
|
|
20
|
+
<CurrencyInput value={money} onChange={setMoney} />
|
|
21
|
+
<Copyable value="TMS-55357" />
|
|
22
|
+
</div>
|
|
23
|
+
</>
|
|
24
|
+
);
|
|
25
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @group forms
|
|
3
|
+
* @title SearchInput / Autocomplete
|
|
4
|
+
* @scenario Two ways to narrow a list: SearchInput (free text with clear) vs Autocomplete (suggest from a fixed option list).
|
|
5
|
+
*/
|
|
6
|
+
import * as React from "react";
|
|
7
|
+
|
|
8
|
+
import { Autocomplete, SearchInput } from "@monkey-mini-app/ui";
|
|
9
|
+
|
|
10
|
+
export default function MiscForms05Example() {
|
|
11
|
+
const [search, setSearch] = React.useState("");
|
|
12
|
+
const [auto, setAuto] = React.useState("");
|
|
13
|
+
|
|
14
|
+
return (
|
|
15
|
+
<>
|
|
16
|
+
<div className="flex max-w-sm flex-col gap-2">
|
|
17
|
+
<SearchInput value={search} onChange={setSearch} />
|
|
18
|
+
<Autocomplete
|
|
19
|
+
value={auto}
|
|
20
|
+
onChange={setAuto}
|
|
21
|
+
options={["alpha", "bravo", "charlie", "delta"]}
|
|
22
|
+
placeholder="Type a…"
|
|
23
|
+
/>
|
|
24
|
+
</div>
|
|
25
|
+
</>
|
|
26
|
+
);
|
|
27
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @group forms
|
|
3
|
+
* @title TagInput / UserPicker / Rating / ColorPicker
|
|
4
|
+
* @scenario Compact pickers that all store their own value shape: TagInput (string[]), UserPicker (user object), Rating (0–5), ColorPicker (hex).
|
|
5
|
+
*/
|
|
6
|
+
import * as React from "react";
|
|
7
|
+
|
|
8
|
+
import { ColorPicker, Rating, TagInput, UserPicker } from "@monkey-mini-app/ui";
|
|
9
|
+
|
|
10
|
+
export default function MiscForms06Example() {
|
|
11
|
+
const [color, setColor] = React.useState("#2563eb");
|
|
12
|
+
const [stars, setStars] = React.useState(3);
|
|
13
|
+
const [tags, setTags] = React.useState(["qa", "ci"]);
|
|
14
|
+
const [user, setUser] = React.useState("ada");
|
|
15
|
+
|
|
16
|
+
return (
|
|
17
|
+
<>
|
|
18
|
+
<div className="flex max-w-sm flex-col gap-3">
|
|
19
|
+
<TagInput value={tags} onChange={setTags} />
|
|
20
|
+
<UserPicker
|
|
21
|
+
value={user}
|
|
22
|
+
onChange={setUser}
|
|
23
|
+
users={[
|
|
24
|
+
{ id: "ada", name: "Ada" },
|
|
25
|
+
{ id: "lin", name: "Lin" },
|
|
26
|
+
]}
|
|
27
|
+
/>
|
|
28
|
+
<Rating value={stars} onChange={setStars} />
|
|
29
|
+
<ColorPicker value={color} onChange={setColor} />
|
|
30
|
+
</div>
|
|
31
|
+
</>
|
|
32
|
+
);
|
|
33
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @group forms
|
|
3
|
+
* @title Cascader / Transfer
|
|
4
|
+
* @scenario Multi-value selection patterns: Cascader walks a nested option tree, Transfer moves whole items between available/selected lists.
|
|
5
|
+
*/
|
|
6
|
+
import * as React from "react";
|
|
7
|
+
|
|
8
|
+
import { Cascader, Transfer } from "@monkey-mini-app/ui";
|
|
9
|
+
|
|
10
|
+
export default function MiscForms07Example() {
|
|
11
|
+
const [cascade, setCascade] = React.useState<string[]>([]);
|
|
12
|
+
const [transfer, setTransfer] = React.useState(["b"]);
|
|
13
|
+
|
|
14
|
+
return (
|
|
15
|
+
<>
|
|
16
|
+
<div className="flex flex-col gap-4">
|
|
17
|
+
<Cascader
|
|
18
|
+
value={cascade}
|
|
19
|
+
onChange={setCascade}
|
|
20
|
+
options={[
|
|
21
|
+
{
|
|
22
|
+
value: "cn",
|
|
23
|
+
label: "China",
|
|
24
|
+
children: [
|
|
25
|
+
{ value: "sh", label: "Shanghai" },
|
|
26
|
+
{ value: "bj", label: "Beijing" },
|
|
27
|
+
],
|
|
28
|
+
},
|
|
29
|
+
{ value: "us", label: "US", children: [{ value: "sf", label: "SF" }] },
|
|
30
|
+
]}
|
|
31
|
+
/>
|
|
32
|
+
<Transfer
|
|
33
|
+
value={transfer}
|
|
34
|
+
onChange={setTransfer}
|
|
35
|
+
items={[
|
|
36
|
+
{ id: "a", label: "Alpha" },
|
|
37
|
+
{ id: "b", label: "Bravo" },
|
|
38
|
+
{ id: "c", label: "Charlie" },
|
|
39
|
+
]}
|
|
40
|
+
/>
|
|
41
|
+
</div>
|
|
42
|
+
</>
|
|
43
|
+
);
|
|
44
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @group overlays
|
|
3
|
+
* @title Sheet / Drawer
|
|
4
|
+
* @scenario Two side surfaces: Sheet (persistent app side panel, desktop) vs Drawer (bottom-anchored, touch-first). Same trigger/content API.
|
|
5
|
+
*/
|
|
6
|
+
import {
|
|
7
|
+
Button,
|
|
8
|
+
Drawer,
|
|
9
|
+
DrawerContent,
|
|
10
|
+
DrawerHeader,
|
|
11
|
+
DrawerTitle,
|
|
12
|
+
DrawerTrigger,
|
|
13
|
+
Sheet,
|
|
14
|
+
SheetContent,
|
|
15
|
+
SheetHeader,
|
|
16
|
+
SheetTitle,
|
|
17
|
+
SheetTrigger,
|
|
18
|
+
} from "@monkey-mini-app/ui";
|
|
19
|
+
|
|
20
|
+
export default function MiscOverlays01Example() {
|
|
21
|
+
return (
|
|
22
|
+
<>
|
|
23
|
+
<div className="flex gap-2">
|
|
24
|
+
<Sheet>
|
|
25
|
+
<SheetTrigger render={<Button variant="outline" />}>Open sheet</SheetTrigger>
|
|
26
|
+
<SheetContent>
|
|
27
|
+
<SheetHeader>
|
|
28
|
+
<SheetTitle>Inspector</SheetTitle>
|
|
29
|
+
</SheetHeader>
|
|
30
|
+
</SheetContent>
|
|
31
|
+
</Sheet>
|
|
32
|
+
<Drawer>
|
|
33
|
+
<DrawerTrigger render={<Button variant="outline" />}>Open drawer</DrawerTrigger>
|
|
34
|
+
<DrawerContent>
|
|
35
|
+
<DrawerHeader>
|
|
36
|
+
<DrawerTitle>Drawer</DrawerTitle>
|
|
37
|
+
</DrawerHeader>
|
|
38
|
+
</DrawerContent>
|
|
39
|
+
</Drawer>
|
|
40
|
+
</div>
|
|
41
|
+
</>
|
|
42
|
+
);
|
|
43
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @group overlays
|
|
3
|
+
* @title Popover / Tooltip / HoverCard
|
|
4
|
+
* @scenario Hover/click surfaces ranked by commitment: Popover (anchored editor, e.g. filters), Tooltip (short read-only label), HoverCard (preview of a referenced record).
|
|
5
|
+
*/
|
|
6
|
+
import {
|
|
7
|
+
Button,
|
|
8
|
+
HoverCard,
|
|
9
|
+
HoverCardContent,
|
|
10
|
+
HoverCardTrigger,
|
|
11
|
+
Popover,
|
|
12
|
+
PopoverContent,
|
|
13
|
+
PopoverTrigger,
|
|
14
|
+
Tooltip,
|
|
15
|
+
TooltipContent,
|
|
16
|
+
TooltipTrigger,
|
|
17
|
+
} from "@monkey-mini-app/ui";
|
|
18
|
+
|
|
19
|
+
export default function MiscOverlays02Example() {
|
|
20
|
+
return (
|
|
21
|
+
<>
|
|
22
|
+
<div className="flex flex-wrap gap-3">
|
|
23
|
+
<Popover>
|
|
24
|
+
<PopoverTrigger render={<Button variant="outline" />}>Popover</PopoverTrigger>
|
|
25
|
+
<PopoverContent>Filter options</PopoverContent>
|
|
26
|
+
</Popover>
|
|
27
|
+
<Tooltip>
|
|
28
|
+
<TooltipTrigger render={<Button variant="outline" />}>Hover me</TooltipTrigger>
|
|
29
|
+
<TooltipContent>Tooltip text</TooltipContent>
|
|
30
|
+
</Tooltip>
|
|
31
|
+
<HoverCard>
|
|
32
|
+
<HoverCardTrigger render={<Button variant="ghost" />}>User</HoverCardTrigger>
|
|
33
|
+
<HoverCardContent>Ada · QA</HoverCardContent>
|
|
34
|
+
</HoverCard>
|
|
35
|
+
</div>
|
|
36
|
+
</>
|
|
37
|
+
);
|
|
38
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @group primitives
|
|
3
|
+
* @title Badge / Avatar / Kbd
|
|
4
|
+
* @scenario Inline identity atoms: Badge for labels/counts, Avatar with initials fallback when a picture is missing, Kbd for shortcuts.
|
|
5
|
+
*/
|
|
6
|
+
import { Avatar, AvatarFallback, Badge, Kbd } from "@monkey-mini-app/ui";
|
|
7
|
+
|
|
8
|
+
export default function MiscPrimitives01Example() {
|
|
9
|
+
return (
|
|
10
|
+
<>
|
|
11
|
+
<div className="flex items-center gap-2">
|
|
12
|
+
<Badge>New</Badge>
|
|
13
|
+
<Badge variant="secondary">Secondary</Badge>
|
|
14
|
+
<Avatar className="size-8">
|
|
15
|
+
<AvatarFallback>AD</AvatarFallback>
|
|
16
|
+
</Avatar>
|
|
17
|
+
<Kbd>⌘K</Kbd>
|
|
18
|
+
</div>
|
|
19
|
+
</>
|
|
20
|
+
);
|
|
21
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @group primitives
|
|
3
|
+
* @title Tabs / Accordion / Collapsible
|
|
4
|
+
* @scenario Three ways to switch content in place — Tabs (parallel views), Accordion (stacked, multiple open), Collapsible (one region folded inside a card).
|
|
5
|
+
*/
|
|
6
|
+
import * as React from "react";
|
|
7
|
+
|
|
8
|
+
import {
|
|
9
|
+
Accordion,
|
|
10
|
+
AccordionContent,
|
|
11
|
+
AccordionItem,
|
|
12
|
+
AccordionTrigger,
|
|
13
|
+
Button,
|
|
14
|
+
Collapsible,
|
|
15
|
+
CollapsibleContent,
|
|
16
|
+
CollapsibleTrigger,
|
|
17
|
+
Tabs,
|
|
18
|
+
TabsContent,
|
|
19
|
+
TabsList,
|
|
20
|
+
TabsTrigger,
|
|
21
|
+
} from "@monkey-mini-app/ui";
|
|
22
|
+
|
|
23
|
+
export default function MiscPrimitives02Example() {
|
|
24
|
+
const [open, setOpen] = React.useState(false);
|
|
25
|
+
|
|
26
|
+
return (
|
|
27
|
+
<>
|
|
28
|
+
<div className="flex max-w-lg flex-col gap-4">
|
|
29
|
+
<Tabs defaultValue="one">
|
|
30
|
+
<TabsList>
|
|
31
|
+
<TabsTrigger value="one">One</TabsTrigger>
|
|
32
|
+
<TabsTrigger value="two">Two</TabsTrigger>
|
|
33
|
+
</TabsList>
|
|
34
|
+
<TabsContent value="one">First panel</TabsContent>
|
|
35
|
+
<TabsContent value="two">Second panel</TabsContent>
|
|
36
|
+
</Tabs>
|
|
37
|
+
<Accordion>
|
|
38
|
+
<AccordionItem value="a">
|
|
39
|
+
<AccordionTrigger>What is this?</AccordionTrigger>
|
|
40
|
+
<AccordionContent>An interactive accordion.</AccordionContent>
|
|
41
|
+
</AccordionItem>
|
|
42
|
+
</Accordion>
|
|
43
|
+
<Collapsible open={open} onOpenChange={setOpen}>
|
|
44
|
+
<CollapsibleTrigger render={<Button variant="outline" size="sm" />}>
|
|
45
|
+
{open ? "Hide" : "Show"} extra
|
|
46
|
+
</CollapsibleTrigger>
|
|
47
|
+
<CollapsibleContent className="pt-2 text-sm">Hidden details</CollapsibleContent>
|
|
48
|
+
</Collapsible>
|
|
49
|
+
</div>
|
|
50
|
+
</>
|
|
51
|
+
);
|
|
52
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @group primitives
|
|
3
|
+
* @title ScrollArea / Resizable / InputGroup / Calendar / Message
|
|
4
|
+
* @scenario Layout primitives that fight resizing: ScrollArea (custom, fixed-height), Resizable split panes (orientation + min size), InputGroup (addon prefix + icon).
|
|
5
|
+
*/
|
|
6
|
+
import {
|
|
7
|
+
Calendar,
|
|
8
|
+
InputGroup,
|
|
9
|
+
InputGroupAddon,
|
|
10
|
+
InputGroupInput,
|
|
11
|
+
Message,
|
|
12
|
+
MessageContent,
|
|
13
|
+
ResizableHandle,
|
|
14
|
+
ResizablePanel,
|
|
15
|
+
ResizablePanelGroup,
|
|
16
|
+
ScrollArea,
|
|
17
|
+
} from "@monkey-mini-app/ui";
|
|
18
|
+
|
|
19
|
+
export default function MiscPrimitives03Example() {
|
|
20
|
+
return (
|
|
21
|
+
<>
|
|
22
|
+
<div className="flex flex-col gap-4">
|
|
23
|
+
<ScrollArea className="h-24 rounded-lg border p-2 text-sm">
|
|
24
|
+
{Array.from({ length: 20 }, (_, i) => (
|
|
25
|
+
<div key={i}>Row {i + 1}</div>
|
|
26
|
+
))}
|
|
27
|
+
</ScrollArea>
|
|
28
|
+
<ResizablePanelGroup orientation="horizontal" className="min-h-24 rounded-lg border">
|
|
29
|
+
<ResizablePanel defaultSize={50}>Left</ResizablePanel>
|
|
30
|
+
<ResizableHandle />
|
|
31
|
+
<ResizablePanel>Right</ResizablePanel>
|
|
32
|
+
</ResizablePanelGroup>
|
|
33
|
+
<InputGroup className="max-w-xs">
|
|
34
|
+
<InputGroupAddon>@</InputGroupAddon>
|
|
35
|
+
<InputGroupInput placeholder="username" />
|
|
36
|
+
</InputGroup>
|
|
37
|
+
<Calendar mode="single" />
|
|
38
|
+
<Message>
|
|
39
|
+
<MessageContent>Assistant reply</MessageContent>
|
|
40
|
+
</Message>
|
|
41
|
+
</div>
|
|
42
|
+
</>
|
|
43
|
+
);
|
|
44
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @exampleOf NumberField
|
|
3
|
+
* @title NumberField
|
|
4
|
+
* @scenario Numeric input with stepper buttons and clamped min/max, so quantity fields never receive NaN or out-of-range text.
|
|
5
|
+
* @hint Plus/minus and typing
|
|
6
|
+
*/
|
|
7
|
+
import * as React from "react";
|
|
8
|
+
|
|
9
|
+
import { NumberField } from "@monkey-mini-app/ui";
|
|
10
|
+
|
|
11
|
+
export default function NumberField01Example() {
|
|
12
|
+
const [n, setN] = React.useState(3);
|
|
13
|
+
|
|
14
|
+
return (
|
|
15
|
+
<>
|
|
16
|
+
<NumberField value={n} onChange={setN} min={0} max={99} />
|
|
17
|
+
<p className="text-muted-foreground mt-2 text-xs" data-testid="number-field-value">
|
|
18
|
+
value: {n}
|
|
19
|
+
</p>
|
|
20
|
+
</>
|
|
21
|
+
);
|
|
22
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<!-- generated by scripts/gen/skill — do not edit -->
|
|
2
|
+
|
|
3
|
+
# Examples · overlays
|
|
4
|
+
|
|
5
|
+
Multi-component demos: layout/pattern recipes with no single subject component.
|
|
6
|
+
Copy the whole file into `ui.tsx` (or split it) — imports are `react` + `@monkey-mini-app/ui` only.
|
|
7
|
+
|
|
8
|
+
| example | what it shows | scenario |
|
|
9
|
+
|---|---|---|
|
|
10
|
+
| [`misc-overlays-01.tsx`](./misc-overlays/misc-overlays-01.tsx) | Sheet / Drawer | Two side surfaces: Sheet (persistent app side panel, desktop) vs Drawer (bottom-anchored, touch-first). Same trigger/content API. |
|
|
11
|
+
| [`misc-overlays-02.tsx`](./misc-overlays/misc-overlays-02.tsx) | Popover / Tooltip / HoverCard | Hover/click surfaces ranked by commitment: Popover (anchored editor, e.g. filters), Tooltip (short read-only label), HoverCard (preview of a referenced record). |
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @exampleOf Pagination
|
|
3
|
+
* @title Pagination
|
|
4
|
+
* @scenario Numbered page nav with prev/next and an active page, driven by your own state; DataGrid already includes this when you need a full table.
|
|
5
|
+
*/
|
|
6
|
+
import * as React from "react";
|
|
7
|
+
|
|
8
|
+
import {
|
|
9
|
+
Pagination,
|
|
10
|
+
PaginationContent,
|
|
11
|
+
PaginationItem,
|
|
12
|
+
PaginationLink,
|
|
13
|
+
PaginationNext,
|
|
14
|
+
PaginationPrevious,
|
|
15
|
+
} from "@monkey-mini-app/ui";
|
|
16
|
+
|
|
17
|
+
export default function Pagination01Example() {
|
|
18
|
+
const [page, setPage] = React.useState(1);
|
|
19
|
+
|
|
20
|
+
return (
|
|
21
|
+
<>
|
|
22
|
+
<Pagination>
|
|
23
|
+
<PaginationContent>
|
|
24
|
+
<PaginationItem>
|
|
25
|
+
<PaginationPrevious
|
|
26
|
+
href="#"
|
|
27
|
+
onClick={(e) => {
|
|
28
|
+
e.preventDefault();
|
|
29
|
+
setPage((p) => Math.max(1, p - 1));
|
|
30
|
+
}}
|
|
31
|
+
/>
|
|
32
|
+
</PaginationItem>
|
|
33
|
+
<PaginationItem>
|
|
34
|
+
<PaginationLink href="#" isActive>
|
|
35
|
+
{page}
|
|
36
|
+
</PaginationLink>
|
|
37
|
+
</PaginationItem>
|
|
38
|
+
<PaginationItem>
|
|
39
|
+
<PaginationNext
|
|
40
|
+
href="#"
|
|
41
|
+
onClick={(e) => {
|
|
42
|
+
e.preventDefault();
|
|
43
|
+
setPage((p) => p + 1);
|
|
44
|
+
}}
|
|
45
|
+
/>
|
|
46
|
+
</PaginationItem>
|
|
47
|
+
</PaginationContent>
|
|
48
|
+
</Pagination>
|
|
49
|
+
</>
|
|
50
|
+
);
|
|
51
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<!-- generated by scripts/gen/skill — do not edit -->
|
|
2
|
+
|
|
3
|
+
# Examples · primitives
|
|
4
|
+
|
|
5
|
+
Multi-component demos: layout/pattern recipes with no single subject component.
|
|
6
|
+
Copy the whole file into `ui.tsx` (or split it) — imports are `react` + `@monkey-mini-app/ui` only.
|
|
7
|
+
|
|
8
|
+
| example | what it shows | scenario |
|
|
9
|
+
|---|---|---|
|
|
10
|
+
| [`misc-primitives-01.tsx`](./misc-primitives/misc-primitives-01.tsx) | Badge / Avatar / Kbd | Inline identity atoms: Badge for labels/counts, Avatar with initials fallback when a picture is missing, Kbd for shortcuts. |
|
|
11
|
+
| [`misc-primitives-02.tsx`](./misc-primitives/misc-primitives-02.tsx) | Tabs / Accordion / Collapsible | Three ways to switch content in place — Tabs (parallel views), Accordion (stacked, multiple open), Collapsible (one region folded inside a card). |
|
|
12
|
+
| [`misc-primitives-03.tsx`](./misc-primitives/misc-primitives-03.tsx) | ScrollArea / Resizable / InputGroup / Calendar / Message | Layout primitives that fight resizing: ScrollArea (custom, fixed-height), Resizable split panes (orientation + min size), InputGroup (addon prefix + icon). |
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @exampleOf Progress
|
|
3
|
+
* @title Progress
|
|
4
|
+
* @scenario Determinate percentage bar for a known-length task (upload, batch done/total); use Spinner when progress is unknown.
|
|
5
|
+
*/
|
|
6
|
+
import { Progress } from "@monkey-mini-app/ui";
|
|
7
|
+
|
|
8
|
+
export default function Progress01Example() {
|
|
9
|
+
return <Progress value={48} />;
|
|
10
|
+
}
|
package/skills/monkey-mini-app/references/examples/relative-date-picker/relative-date-picker-01.tsx
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @exampleOf RelativeDatePicker
|
|
3
|
+
* @title RelativeDatePicker
|
|
4
|
+
* @scenario Preset ranges ('last 7 days', 'this month') that resolve to absolute timestamps on submit — the usual filter on dashboards and log screens.
|
|
5
|
+
*/
|
|
6
|
+
import * as React from "react";
|
|
7
|
+
|
|
8
|
+
import { type DateRange, RelativeDatePicker, type RelativePreset } from "@monkey-mini-app/ui";
|
|
9
|
+
|
|
10
|
+
export default function RelativeDatePicker01Example() {
|
|
11
|
+
const [preset, setPreset] = React.useState<RelativePreset>("7d");
|
|
12
|
+
const [rel, setRel] = React.useState<DateRange | undefined>();
|
|
13
|
+
|
|
14
|
+
return (
|
|
15
|
+
<>
|
|
16
|
+
<RelativeDatePicker preset={preset} value={rel} onPresetChange={setPreset} onChange={setRel} />
|
|
17
|
+
</>
|
|
18
|
+
);
|
|
19
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @exampleOf RichTextEditor
|
|
3
|
+
* @title RichTextEditor
|
|
4
|
+
* @scenario WYSIWYG editing with a local contentEditable toolbar (bold/list/quote) — no CDN, no dependency; use when users are not writing raw markdown.
|
|
5
|
+
* @hint Tiptap — toolbar is live
|
|
6
|
+
*/
|
|
7
|
+
import * as React from "react";
|
|
8
|
+
|
|
9
|
+
import { RichTextEditor } from "@monkey-mini-app/ui";
|
|
10
|
+
|
|
11
|
+
export default function RichTextEditor01Example() {
|
|
12
|
+
const [html, setHtml] = React.useState("<p>Write a <strong>run note</strong>.</p>");
|
|
13
|
+
|
|
14
|
+
return <RichTextEditor value={html} onChange={setHtml} />;
|
|
15
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @exampleOf RunTimeline
|
|
3
|
+
* @title RunTimeline
|
|
4
|
+
* @scenario Ordered steps of one job (queued → running → done) with per-step status; denser than a Table when the story is sequence.
|
|
5
|
+
*/
|
|
6
|
+
import { RunTimeline } from "@monkey-mini-app/ui";
|
|
7
|
+
|
|
8
|
+
export default function RunTimeline01Example() {
|
|
9
|
+
return (
|
|
10
|
+
<RunTimeline
|
|
11
|
+
items={[
|
|
12
|
+
{ id: "1", title: "Queued" },
|
|
13
|
+
{ id: "2", title: "Running" },
|
|
14
|
+
]}
|
|
15
|
+
/>
|
|
16
|
+
);
|
|
17
|
+
}
|