@getdom/studio 0.1.1 → 0.2.1
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/CHANGELOG.md +54 -0
- package/README.md +31 -0
- package/SKILL.md +21 -1
- package/package.json +10 -4
- package/public/llms.txt +13 -2
- package/src/pages/_layout/componentCatalog.generated.js +1185 -44
- package/src/pages/_layout/componentLoaders.js +41 -0
- package/src/pages/_layout/componentManager.js +38 -27
- package/src/pages/_layout/componentRuntimeRecords.js +3 -1
- package/src/pages/charts/_shared/ChartContainer.vue +67 -0
- package/src/pages/charts/_shared/ChartLegend.vue +22 -0
- package/src/pages/charts/_shared/ChartTooltip.vue +18 -0
- package/src/pages/charts/_shared/DonutRenderer.vue +33 -0
- package/src/pages/charts/_shared/XYChart.vue +140 -0
- package/src/pages/charts/_shared/XYRenderer.vue +90 -0
- package/src/pages/charts/_shared/chartProps.js +23 -0
- package/src/pages/charts/_shared/chartUtils.js +95 -0
- package/src/pages/charts/area-chart/DomAreaChart.vue +27 -0
- package/src/pages/charts/bar-chart/DomBarChart.vue +29 -0
- package/src/pages/charts/date-range-picker/DomDateRangePicker.vue +104 -0
- package/src/pages/charts/date-range-picker/dateRange.js +69 -0
- package/src/pages/charts/donut-chart/DomDonutChart.vue +117 -0
- package/src/pages/charts/line-chart/DomLineChart.vue +26 -0
- package/src/pages/charts/metric-card/DomMetricCard.vue +49 -0
- package/src/pages/charts/sparkline/DomSparkline.vue +30 -0
- package/src/pages/components/_shared/media/MediaDeviceSelect.vue +28 -0
- package/src/pages/components/_shared/media/useMediaInput.js +200 -0
- package/src/pages/components/audio-controls/DomAudioControls.vue +91 -0
- package/src/pages/components/audio-input/DomAudioInput.vue +58 -0
- package/src/pages/components/button/DomButton.vue +10 -4
- package/src/pages/components/button/buttonStyles.js +5 -0
- package/src/pages/components/camera-input/DomCameraInput.vue +75 -0
- package/src/pages/components/command-palette/DomCommandPalette.vue +12 -2
- package/src/pages/components/dialog/DomDialog.vue +338 -36
- package/src/pages/components/icon-button/DomIconButton.vue +8 -2
- package/src/pages/components/menu-stack/DomMenuStack.vue +111 -0
- package/src/pages/components/menu-stack/menuTree.js +35 -0
- package/src/pages/components/popover/DomPopover.vue +1 -53
- package/src/pages/components/popover/popover.css +50 -0
- package/src/pages/components/video-feed/DomVideoFeed.vue +551 -0
- package/src/pages/data/agent-chat/DomAgentChatShell.vue +1 -0
- package/src/pages/data/agent-chat/DomAgentConversation.vue +1 -0
- package/src/pages/data/agent-chat/DomAgentConversationList.vue +1 -0
- package/src/pages/data/gantt/DomGantt.vue +788 -0
- package/src/pages/data/gantt/ganttTime.js +223 -0
- package/src/pages/data/month-calendar/DomMonthCalendar.vue +84 -9
- package/src/pages/data/notification-inbox/DomNotificationInbox.vue +505 -0
- package/src/pages/data/notification-inbox/notificationPresentation.js +34 -0
- package/src/pages/designer/_shared/ControlIconButton.vue +62 -0
- package/src/pages/designer/_shared/StyleControlSection.vue +59 -0
- package/src/pages/designer/_shared/cssEditorContext.js +19 -0
- package/src/pages/designer/backdrop-editor/BackdropControl.vue +57 -0
- package/src/pages/designer/backdrop-editor/DomBackdropEditor.vue +33 -0
- package/src/pages/designer/backdrop-editor/backdropModel.js +39 -0
- package/src/pages/designer/background-editor/BackgroundLayers.vue +210 -0
- package/src/pages/designer/background-editor/DomBackgroundEditor.vue +33 -0
- package/src/pages/designer/background-editor/backgroundModel.js +102 -0
- package/src/pages/designer/border-editor/BorderControl.vue +72 -0
- package/src/pages/designer/border-editor/DomBorderEditor.vue +34 -0
- package/src/pages/designer/border-editor/borderModel.js +21 -0
- package/src/pages/designer/color-swatch/DomColorSwatch.vue +95 -0
- package/src/pages/designer/frame/DomDesignerFrame.vue +16 -0
- package/src/pages/designer/frame/DomFrameLayoutEditor.vue +41 -0
- package/src/pages/designer/frame/frameLayout.js +93 -0
- package/src/pages/designer/layers/DomDesignerLayers.vue +11 -0
- package/src/pages/designer/shadow-editor/DomShadowEditor.vue +32 -0
- package/src/pages/designer/shadow-editor/ShadowLayers.vue +185 -0
- package/src/pages/designer/shadow-editor/shadowModel.js +73 -0
- package/src/pages/designer/stage/DesignerBounds.vue +31 -0
- package/src/pages/designer/stage/DomDesignerStage.vue +237 -0
- package/src/pages/designer/stage/SpacingGuides.vue +33 -0
- package/src/pages/designer/stage/resizeGeometry.js +15 -0
- package/src/pages/designer/stage/snapGeometry.js +69 -0
- package/src/pages/designer/stage/snapPipeline.js +17 -0
- package/src/pages/designer/stage/spacingGeometry.js +129 -0
- package/src/pages/forms/native-select/DomNativeSelect.vue +8 -3
- package/src/pages/forms/number-input/DomNumberInput.vue +39 -3
- package/src/pages/forms/range-input/DomRangeInput.vue +75 -23
- package/src/pages/forms/textarea-composer/DomTextareaComposer.vue +91 -9
- package/src/pages/forms/toggle/DomToggle.vue +1 -1
- package/src/pages/lib/headless/base.js +10 -5
- package/src/pages/lib/headless/dialog.js +25 -6
- package/src/pages/lib/headless/drawer.js +49 -21
- package/src/pages/lib/vue/index.d.ts +1161 -14
- package/src/pages/lib/vue/index.js +43 -0
- package/src/pages/mobile/_shared/interactionMath.js +46 -0
- package/src/pages/mobile/_shared/useKeyboardViewport.js +91 -0
- package/src/pages/mobile/action-sheet/DomActionSheet.vue +102 -65
- package/src/pages/mobile/bottom-nav/DomAppBottomNav.vue +4 -2
- package/src/pages/mobile/bottom-sheet/DomBottomSheet.vue +221 -0
- package/src/pages/mobile/list-item/DomAppListItem.vue +6 -6
- package/src/pages/mobile/profile/DomAppProfile.vue +42 -0
- package/src/pages/mobile/safe-area/DomSafeArea.vue +6 -6
- package/src/pages/mobile/shell/DomAppShell.vue +60 -9
- package/src/pages/mobile/stack/DomAppStack.vue +214 -55
- package/src/pages/mobile/swipe-actions/DomSwipeActions.vue +346 -0
- package/src/pages/mobile/top-bar/DomAppTopBar.vue +3 -3
- package/src/pages/visual/audio-visualizer/DomAudioVisualizer.vue +143 -0
- package/src/theme.css +13 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.2.1 - 2026-09-21
|
|
4
|
+
|
|
5
|
+
Vue Router 5 support and a public home for DOM Studio release notes.
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
|
|
9
|
+
- A release history at `/releases`, with publication dates, version links and
|
|
10
|
+
upgrade notes. Published GitHub Releases supply the notes through the server.
|
|
11
|
+
- A release preparation command and tag-triggered publishing workflow that checks
|
|
12
|
+
the package, verifies npm publication, then creates matching GitHub Release notes.
|
|
13
|
+
|
|
14
|
+
### Improved
|
|
15
|
+
|
|
16
|
+
- Added Vue Router 5 support while retaining compatibility with Vue Router 4.
|
|
17
|
+
- Updated the development and package-smoke toolchains to validate the current
|
|
18
|
+
Vue, Pinia, Vite, and Vue Router release line.
|
|
19
|
+
|
|
20
|
+
### Upgrade notes
|
|
21
|
+
|
|
22
|
+
- Vue must be version 3.5.34 or newer within Vue 3. Vue Router 4 remains supported.
|
|
23
|
+
- When using Vue Router 5.3 with Pinia, use Pinia 3.0.4 or newer within Pinia 3.
|
|
24
|
+
Vue Router 5.3 also requires Vite 7.3 or 8 when Vite is installed.
|
|
25
|
+
|
|
26
|
+
## 0.2.0 - 2026-09-20
|
|
27
|
+
|
|
28
|
+
This release expands DOM Studio from its initial public package with new
|
|
29
|
+
application UI, reporting, media, mobile, and visual-design surfaces.
|
|
30
|
+
|
|
31
|
+
### Added
|
|
32
|
+
|
|
33
|
+
- `DomNotificationInbox` for durable, application-owned in-app notifications,
|
|
34
|
+
plus `notificationTone()` and `notificationToast()` presentation helpers.
|
|
35
|
+
- A reporting chart family with line, area, bar, donut, sparkline, metric-card,
|
|
36
|
+
date-range, legend, tooltip, and container components powered by Unovis.
|
|
37
|
+
- `DomGantt` for project schedules and resource planning, including keyboard and
|
|
38
|
+
pointer movement, resizing, row changes, zoom levels, and working-time views.
|
|
39
|
+
- Audio and camera input components, audio visualisation, and a vertical video
|
|
40
|
+
feed with captions and controlled playback.
|
|
41
|
+
- Mobile application primitives for bottom sheets, swipe actions, profile
|
|
42
|
+
headers, nested stacks, keyboard-aware shells, and contained action sheets.
|
|
43
|
+
- `DomMenuStack` for bounded nested navigation inside popovers and other app
|
|
44
|
+
surfaces.
|
|
45
|
+
- Responsive dialog companion panels for assistant and reference workflows.
|
|
46
|
+
- Beta visual designer components for frames, stages, layers, backgrounds,
|
|
47
|
+
borders, shadows, snapping, spacing, and layout controls.
|
|
48
|
+
|
|
49
|
+
### Improved
|
|
50
|
+
|
|
51
|
+
- Expanded generated TypeScript declarations and public Vue exports for the new
|
|
52
|
+
components, props, events, helpers, and data contracts.
|
|
53
|
+
- Refined touch gestures, mobile safe-area and keyboard behaviour, popovers,
|
|
54
|
+
drawers, dialogs, form controls, themes, documentation, and agent guidance.
|
package/README.md
CHANGED
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
DOM Studio is a Vue 3 and Web Component interface system for application UI.
|
|
4
4
|
|
|
5
|
+
It is designed for the complete controls that product applications need—not
|
|
6
|
+
only UI primitives:
|
|
7
|
+
|
|
8
|
+
- **DataGrid** with typed filters, sorting, selection, virtual rows, custom cells, and remote query state.
|
|
9
|
+
- **Kanban** with controlled resources, keyboard movement, drag ordering, custom cards, and persistence-ready events.
|
|
10
|
+
- **Media browser** with folders, uploads, file inspection, selection, and application-owned storage boundaries.
|
|
11
|
+
- **Month calendar and week planner** for scheduling, custom records, drag-to-reschedule, and server-loaded date windows.
|
|
12
|
+
- Forms, overlays, navigation, feedback, mobile shells, headless elements, and complete application blocks.
|
|
13
|
+
|
|
5
14
|
## Install
|
|
6
15
|
|
|
7
16
|
```sh
|
|
@@ -48,6 +57,20 @@ Register the framework-neutral custom elements when required:
|
|
|
48
57
|
import '@getdom/studio/headless';
|
|
49
58
|
```
|
|
50
59
|
|
|
60
|
+
## Examples and walkthroughs
|
|
61
|
+
|
|
62
|
+
Every component page includes live examples, copyable Vue source, its public
|
|
63
|
+
props and events, and implementation notes:
|
|
64
|
+
|
|
65
|
+
- [Install and theme setup](https://getdom.studio/install)
|
|
66
|
+
- [DataGrid examples](https://getdom.studio/data/data-grid)
|
|
67
|
+
- [Kanban, DataGrid, and calendar sharing one resource list](https://getdom.studio/data/kanban)
|
|
68
|
+
- [Media browser and file-picker walkthrough](https://getdom.studio/data/media-browser)
|
|
69
|
+
- [Month calendar planning examples](https://getdom.studio/data/month-calendar)
|
|
70
|
+
- [Week planner and drag-to-create scheduling](https://getdom.studio/data/week-planner)
|
|
71
|
+
- [Application blocks](https://getdom.studio/blocks)
|
|
72
|
+
- [Theming guide](https://getdom.studio/theming)
|
|
73
|
+
|
|
51
74
|
## Peer dependencies
|
|
52
75
|
|
|
53
76
|
- Vue 3.5 or later.
|
|
@@ -63,3 +86,11 @@ client use. See `LICENSE.md` in this package for the complete terms.
|
|
|
63
86
|
|
|
64
87
|
Documentation, examples, licences, and source access are available from
|
|
65
88
|
[getdom.studio](https://getdom.studio).
|
|
89
|
+
|
|
90
|
+
## Charts and reporting
|
|
91
|
+
|
|
92
|
+
Data Visualisation lives at `/charts`. Use `DomLineChart`, `DomAreaChart`, `DomBarChart`, `DomDonutChart`, and `DomSparkline` for application-owned records, `DomMetricCard` for summary measurements, and `DomDateRangePicker` for inclusive reporting dates and comparison periods. The chart family uses Unovis 1.7 and loads the drawing engine after browser mount. Headings and data tables render on the server.
|
|
93
|
+
|
|
94
|
+
Cartesian charts accept `rows`, `xKey`, and `series` definitions with stable keys, labels, and optional colours. Use `xType="time"` for proportional date spacing and `xType="number"` for numeric coordinates. Default category axes preserve record order. Missing measurements remain distinct from zero. Percentage stacks require non-negative values; `format="percent"` expects fractional values. Applications own aggregation, queries, and comparison calculations.
|
|
95
|
+
|
|
96
|
+
Chart colours use `--chart-1` through `--chart-5` from the default theme. Consumers supplying their own theme should define these tokens; charts fall back to the primary colour. `DomChartContainer`, `DomChartLegend`, and `DomChartTooltip` are available for custom Unovis compositions. Unovis dependencies are included with the package; source-copy consumers must also install matching `@unovis/vue` and `@unovis/ts` versions (`1.7.0`).
|
package/SKILL.md
CHANGED
|
@@ -41,6 +41,7 @@ The package root exports the same Vue surface as `@getdom/studio/vue`. Use headl
|
|
|
41
41
|
- Use `DomDialog`, `DomDrawer`, `DomPopover`, `DomDropdown`, `DomMenu`, `DomContextMenu`, and `DomCommandPalette` instead of recreating overlays, focus handling, or keyboard navigation.
|
|
42
42
|
- Use `DomTabs`, `DomAccordion`, `DomTreeView`, and `DomScrollMenu` for structured navigation, disclosure, and scroll-linked page contents. Use `DomBreadcrumbs` for an application-owned route or resource path and `DomStepper` for controlled multi-step progress.
|
|
43
43
|
- Use `DomToastStack`, `DomToastItem`, and `useToasts` for notifications.
|
|
44
|
+
- Use `DomNotificationInbox` for a durable in-app inbox trigger and panel. Pass application-owned recipient items, persist its `transition` events through the backend, and keep HTTP, auth, realtime invalidation, pagination cursors, and retries outside the component. Pair `notificationToast()` with `DomToastStack` only for a newly observed live arrival; do not replay stored history as fresh toasts.
|
|
44
45
|
- Use `DomNativeSelect` for small native option lists, `DomListbox` for custom single-choice lists, `DomCombobox` for search plus committed selection, and `DomAutocomplete` for free text with suggestions.
|
|
45
46
|
- Use `DomCalendar` for month-grid date picking and `DomDatePicker` for typed date entry with a popover calendar.
|
|
46
47
|
- Use `DomTextareaInput` for fixed or autosizing multiline fields. Use `DomTextareaComposer` when attachment previews, leading controls, trailing actions, and submit behavior belong inside one autosizing input frame; keep upload state and attachment records in the application.
|
|
@@ -48,10 +49,15 @@ The package root exports the same Vue surface as `@getdom/studio/vue`. Use headl
|
|
|
48
49
|
- Use `DomFilterBar` when search and logical filter values should form one controlled query shared by resource lists, grids, timelines, routes, or Pinia stores. Translate its `FilterBarQuery` at the application API boundary.
|
|
49
50
|
- Use `DomActivityTimeline` to project ordered application-owned rows into an activity trail through logical field keys. Keep querying, chronology, pagination, permissions, and persistence in the application layer.
|
|
50
51
|
- Use `DomMonthCalendar` for date-led month planning and `DomWeekPlanner` when fixed-width day swim lanes need precise timed placement, configurable drag-to-create ranges, a live current-time marker, or virtualized horizontal ranges such as a full year.
|
|
52
|
+
- Use `DomGantt` for horizontal resource planning, project schedules, and roadmaps. Supply application-owned `rows` and `items`, map `itemRowKey` to each row, and provide a start plus an exclusive end or positive duration. Handle `row-create`, `time-range-select`, and `item-click` in the application; hiding non-working time compresses the display without changing stored dates. Enable `draggableItems` and `resizableItems` independently, and handle `item-move` / `item-resize` in the application. Enable `allowRowChange` for resource bookings; leave it off for feature-based Gantt rows.
|
|
51
53
|
- Use `DomCodeInput` for prompts, snippets, templates, and structured text; use `DomJsonInput` for parsed JSON values; use `DomJsonListInput` for schema-aware arrays such as options, commands, menu rows, and inspector data.
|
|
52
54
|
- Use `DomCodeBlock` for highlighted read-only code and `DomJsonViewer` for inspecting JSON payloads, diagnostics, and implementation data.
|
|
53
55
|
- Use `DomTextDiff` for reviewable before-and-after copy, AI rewrite suggestions, SEO field replacements, and unified or split code edits.
|
|
54
|
-
- Use `DomAppShell`, `DomAppTopBar`, `DomAppBottomNav`, `DomAppListItem`, `DomSafeArea`, and `DomActionSheet` for Capacitor-style app screens.
|
|
56
|
+
- Use `DomAppShell`, `DomAppTopBar`, `DomAppBottomNav`, `DomAppListItem`, `DomAppProfile`, `DomSafeArea`, and `DomActionSheet` for Capacitor-style app screens. `DomAppProfile` combines an image, account name, email, and action above settings rows; stack screen slots can contain any Vue components, forms, or toggles.
|
|
57
|
+
- `DomAppShell` and `DomAppStack` default to `height="100dvh"`; use `height="100%"` only in a sized parent. Nest a stack in `<DomAppShell :content-scroll="false">` with stack `height="100%"` so each screen owns scrolling. Both reserve safe areas without another wrapper. Mobile stack headers show Back and the current title; the `breadcrumb` slot is desktop-only and the `header` slot customizes mobile. Visited screens retain local state and scroll while the stack stays mounted.
|
|
58
|
+
- `DomActionSheet` works independently as a viewport overlay on mobile or desktop. In a shell, put it in `#overlay` for app-contained positioning. Use `DomAppListItem as="div"` for rows with switches or inputs. Use `DomToggle` with `label` and `chrome="none"` when the row supplies the visible label.
|
|
59
|
+
- Use `DomSwipeActions` for leading/trailing row commands with gesture and button access. Full-swipe execution requires `fullSwipe` on the component and on the first action for that side. Applications own mutations, pending state, and undo. Use `DomBottomSheet` for arbitrary content at configurable snap heights, with native body scrolling and a pinned footer. Put it in the shell's `overlay` slot for containment. The combined example is `/mobile/inbox`.
|
|
60
|
+
- `DomAppShell` detects keyboard-sized visual viewport changes while editing. Set `hideBottomOnKeyboard` for navigation, leave it false for a composer, or use `keyboardBehavior="none"` when the native host owns layout. `keyboardInset` accepts a native keyboard height in CSS pixels. Device keyboard verification needs the full-screen `/mobile/inbox?preview=1` page, because iframe previews do not expose the top-level visual viewport.
|
|
55
61
|
|
|
56
62
|
## Studio Specs
|
|
57
63
|
|
|
@@ -81,3 +87,17 @@ Return a Studio spec when generated UI should be editable later. A spec is a UI
|
|
|
81
87
|
```
|
|
82
88
|
|
|
83
89
|
Use component export names such as `DomTextInput` or ordinary HTML tags such as `section`, `h2`, and `p`. Avoid anonymous layers and large unstructured HTML blobs when a spec would preserve intent.
|
|
90
|
+
|
|
91
|
+
## Realtime media input
|
|
92
|
+
|
|
93
|
+
Use `/ai` as the entry point for AI components and examples. `/ai/ui` covers interaction patterns; `/ai/builders` covers generating interfaces with DOM Studio. Set `__doc.nav.section: 'ai'` on component metadata to include it in the AI sidebar, search category, and overview while preserving its source location and public URL.
|
|
94
|
+
|
|
95
|
+
Use `DomAudioControls` for click-to-talk capture with a waveform, stop, mute, and microphone picker. Use `DomAudioInput` for a standalone microphone setup and `DomCameraInput` for independent webcam selection and local preview. Each owns its capture stream and emits `@stream` with replacements or `null` on stop. Use one capture component per input session; pass its stream to `DomAudioVisualizer` for additional displays. The visualizer never owns or stops media tracks. Consumers own AI processing, recording, network transport, and remote connection state. Capture requires HTTPS/localhost and explicit user interaction; embeds need a microphone/camera permissions policy. See `/components/audio-controls` for examples and lifecycle details.
|
|
96
|
+
|
|
97
|
+
## Charts and reporting
|
|
98
|
+
|
|
99
|
+
Data Visualisation lives at `/charts`. Use `DomLineChart`, `DomAreaChart`, `DomBarChart`, `DomDonutChart`, and `DomSparkline` for application-owned records, `DomMetricCard` for summary measurements, and `DomDateRangePicker` for inclusive reporting dates and comparison periods. The chart family uses Unovis 1.7 and loads the drawing engine after browser mount. Headings and data tables render on the server.
|
|
100
|
+
|
|
101
|
+
Cartesian charts accept `rows`, `xKey`, and `series` definitions with stable keys, labels, and optional colours. Use `xType="time"` for proportional date spacing and `xType="number"` for numeric coordinates. Default category axes preserve record order. Missing measurements remain distinct from zero. Percentage stacks require non-negative values; `format="percent"` expects fractional values. Applications own aggregation, queries, and comparison calculations.
|
|
102
|
+
|
|
103
|
+
Chart colours use `--chart-1` through `--chart-5` from the default theme. Consumers supplying their own theme should define these tokens; charts fall back to the primary colour. `DomChartContainer`, `DomChartLegend`, and `DomChartTooltip` are available for custom Unovis compositions. Unovis dependencies are included with the package; source-copy consumers must also install matching `@unovis/vue` and `@unovis/ts` versions (`1.7.0`).
|
package/package.json
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@getdom/studio",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "A Vue 3 and Web Component interface system for application UI.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
7
7
|
"author": "Steve O'Brien",
|
|
8
8
|
"homepage": "https://getdom.studio",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/steve-obrien/dom.studio.git"
|
|
12
|
+
},
|
|
9
13
|
"keywords": [
|
|
10
14
|
"vue",
|
|
11
15
|
"web-components",
|
|
@@ -50,8 +54,8 @@
|
|
|
50
54
|
"peerDependencies": {
|
|
51
55
|
"pinia": "^2.3.0 || ^3.0.0",
|
|
52
56
|
"tailwindcss": "^4.2.0",
|
|
53
|
-
"vue": "^3.5.
|
|
54
|
-
"vue-router": "^4.6.0"
|
|
57
|
+
"vue": "^3.5.34",
|
|
58
|
+
"vue-router": "^4.6.0 || ^5.0.0"
|
|
55
59
|
},
|
|
56
60
|
"dependencies": {
|
|
57
61
|
"@tiptap/extension-code-block": "3.27.3",
|
|
@@ -64,7 +68,9 @@
|
|
|
64
68
|
"@tiptap/extension-underline": "^3.27.3",
|
|
65
69
|
"@tiptap/pm": "^3.27.3",
|
|
66
70
|
"@tiptap/starter-kit": "^3.27.3",
|
|
67
|
-
"@tiptap/vue-3": "^3.27.3"
|
|
71
|
+
"@tiptap/vue-3": "^3.27.3",
|
|
72
|
+
"@unovis/vue": "1.7.0",
|
|
73
|
+
"@unovis/ts": "1.7.0"
|
|
68
74
|
},
|
|
69
75
|
"publishConfig": {
|
|
70
76
|
"access": "public"
|
package/public/llms.txt
CHANGED
|
@@ -11,9 +11,11 @@ The package root and `@getdom/studio/vue` export the same Vue surface. Import `@
|
|
|
11
11
|
## Core Documentation
|
|
12
12
|
|
|
13
13
|
- [Overview](https://getdom.studio/): Product positioning, package usage, and the main DOM Studio surfaces.
|
|
14
|
-
- [AI
|
|
14
|
+
- [AI components and UI](https://getdom.studio/ai): Agent conversations, voice and camera controls, shared composers, review components, and examples.
|
|
15
|
+
- [AI UI guide](https://getdom.studio/ai/ui): Practical patterns for prompts, context, streaming, tool actions, review, voice, accessibility, and recovery.
|
|
16
|
+
- [AI builders](https://getdom.studio/ai/builders): Rules for reliable LLM-generated interfaces and when to return Studio specs.
|
|
15
17
|
- [Theming](https://getdom.studio/theming): Semantic colour tokens, light and dark themes, material skins, radii, and shadows.
|
|
16
|
-
- [Component
|
|
18
|
+
- [Component metadata](https://getdom.studio/component-spec): Vue props, `defineOptions({ __doc })`, and `_edit` hints for generated documentation and editing controls, with a working component example.
|
|
17
19
|
- [Studio](https://getdom.studio/components/studio): Visual editing and saved UI trees made from components, props, children, stable ids, and human labels.
|
|
18
20
|
|
|
19
21
|
## UI Library
|
|
@@ -23,6 +25,7 @@ The package root and `@getdom/studio/vue` export the same Vue surface. Import `@
|
|
|
23
25
|
- [Data components](https://getdom.studio/data): Controlled filter queries, data grids, timelines, Kanban boards, calendars, media workflows, document editing, and agent conversations.
|
|
24
26
|
- [Filter bar](https://getdom.studio/data/filter-bar): Transport-free search and logical filter definitions that emit one controlled resource query.
|
|
25
27
|
- [Activity timeline](https://getdom.studio/data/activity-timeline): Ordered resource activity with logical field mappings, semantic status, controlled loading, and customizable slots.
|
|
28
|
+
- [Gantt](https://getdom.studio/data/gantt): Horizontal resource planning, project schedules, and roadmaps from application-owned rows and dated items, with time zoom, working-hour visibility, and drag-to-plan intent.
|
|
26
29
|
- [Developer components](https://getdom.studio/dev): Code, JSON, payload, and implementation-data inspection utilities.
|
|
27
30
|
- [Visual components](https://getdom.studio/visual/card): Cards, badges, status, alerts, empty states, progress, skeletons, avatars, and diffs.
|
|
28
31
|
- [Mobile components](https://getdom.studio/mobile): App shells, top and bottom navigation, screen stacks, safe areas, list rows, and action sheets.
|
|
@@ -55,3 +58,11 @@ The package root and `@getdom/studio/vue` export the same Vue surface. Import `@
|
|
|
55
58
|
- [JSON viewer](https://getdom.studio/dev/json-viewer): Structured payload and diagnostic-data inspection.
|
|
56
59
|
- [Text diff](https://getdom.studio/visual/text-diff): Reviewable before-and-after text and code changes.
|
|
57
60
|
- [Scroll menu](https://getdom.studio/components/scroll-menu): Scrollspy page contents built from real fragment links and current-location semantics.
|
|
61
|
+
|
|
62
|
+
## Charts and reporting
|
|
63
|
+
|
|
64
|
+
Data Visualisation lives at `/charts`. Use `DomLineChart`, `DomAreaChart`, `DomBarChart`, `DomDonutChart`, and `DomSparkline` for application-owned records, `DomMetricCard` for summary measurements, and `DomDateRangePicker` for inclusive reporting dates and comparison periods. The chart family uses Unovis 1.7 and loads the drawing engine after browser mount. Headings and data tables render on the server.
|
|
65
|
+
|
|
66
|
+
Cartesian charts accept `rows`, `xKey`, and `series` definitions with stable keys, labels, and optional colours. Use `xType="time"` for proportional date spacing and `xType="number"` for numeric coordinates. Default category axes preserve record order. Missing measurements remain distinct from zero. Percentage stacks require non-negative values; `format="percent"` expects fractional values. Applications own aggregation, queries, and comparison calculations.
|
|
67
|
+
|
|
68
|
+
Chart colours use `--chart-1` through `--chart-5` from the default theme. Consumers supplying their own theme should define these tokens; charts fall back to the primary colour. `DomChartContainer`, `DomChartLegend`, and `DomChartTooltip` are available for custom Unovis compositions. Unovis dependencies are included with the package; source-copy consumers must also install matching `@unovis/vue` and `@unovis/ts` versions (`1.7.0`).
|