@synopackageland/ui 0.9.4 → 0.9.6
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 +92 -0
- package/README.md +6 -1
- package/dist/components/app/page-header/PageHeader.vue.d.ts +4 -2
- package/dist/components/composite/callout/Callout.vue.d.ts +2 -0
- package/dist/components/composite/form/Form.vue.d.ts +1 -1
- package/dist/components/composite/form-actions/FormActions.vue.d.ts +6 -0
- package/dist/components/composite/list-item/ListItem.vue.d.ts +25 -0
- package/dist/components/composite/settings-row/SettingsRow.vue.d.ts +1 -0
- package/dist/components/composite/settings-section/SettingsSection.vue.d.ts +1 -0
- package/dist/components/composite/statistic/Statistic.vue.d.ts +24 -0
- package/dist/components/composite/table-cell/CellStatus.vue.d.ts +24 -0
- package/dist/components/composite/table-cell/CellText.vue.d.ts +36 -0
- package/dist/components/feedback/notification/NotificationProvider.vue.d.ts +1 -1
- package/dist/components/primitives/button/Button.vue.d.ts +3 -0
- package/dist/components/primitives/button/IconButton.vue.d.ts +5 -2
- package/dist/components/primitives/dropdown-menu/DropdownMenu.vue.d.ts +2 -2
- package/dist/components/primitives/dropdown-menu/DropdownMenuItems.vue.d.ts +3 -0
- package/dist/components/primitives/input-group/InputGroup.vue.d.ts +13 -0
- package/dist/components/primitives/popover/Popover.vue.d.ts +3 -3
- package/dist/components/primitives/progress/Progress.vue.d.ts +3 -0
- package/dist/components/primitives/space/Space.vue.d.ts +4 -1
- package/dist/composables/collisionBoundary.d.ts +4 -0
- package/dist/composables/floatingHost.d.ts +5 -2
- package/dist/composables/floatingPlacement.d.ts +1 -1
- package/dist/composables/pendingClick.d.ts +12 -0
- package/dist/composables/stickyRoom.d.ts +8 -0
- package/dist/i18n/text.d.ts +1 -0
- package/dist/index.d.ts +9 -1
- package/dist/index.js +9046 -8544
- package/dist/json/catalog.d.ts +98 -0
- package/dist/json/registry.d.ts +3548 -22
- package/dist/json-ai-prompt.md +8 -4
- package/dist/json-catalog.schema.json +290 -3
- package/dist/json-preview/preview.js +6371 -6019
- package/dist/json.js +453 -413
- package/dist/lib/clipboard.d.ts +7 -1
- package/dist/lib/fileSize.d.ts +9 -1
- package/dist/lib/floatingDialog.d.ts +9 -2
- package/dist/lib/format.d.ts +13 -0
- package/dist/lib/slots.d.ts +4 -0
- package/dist/reka-runtime.json +1 -1
- package/dist/theme.css +1 -1
- package/dist/themes/dsm7-embedded-theme.css +1 -1
- package/dist/themes/dsm7-embedded.css +1 -1
- package/dist/themes/dsm7.css +1 -1
- package/docs/layout-rules.md +36 -3
- package/package.json +62 -1
package/dist/json-ai-prompt.md
CHANGED
|
@@ -47,13 +47,13 @@ For lists where users can add/remove items (todos, carts, etc.), use pushState a
|
|
|
47
47
|
|
|
48
48
|
IMPORTANT: State paths use RFC 6901 JSON Pointer syntax (e.g. "/todos/0/title"). Do NOT use JavaScript-style dot notation (e.g. "/todos.length" is WRONG). To generate unique IDs for new items, use "$id" instead of trying to read array length.
|
|
49
49
|
|
|
50
|
-
AVAILABLE COMPONENTS (
|
|
50
|
+
AVAILABLE COMPONENTS (34):
|
|
51
51
|
|
|
52
52
|
- AppRoot: { modalScope?: "document" | "app" } - Root of a DSM application. Use once around the application shell. Dialogs stay inside the app by default (modalScope "app"); "document" is only for full-page web/Portal apps. [accepts children]
|
|
53
53
|
- AppShell: { sidebarWidth?: string, minHeight?: string, responsive?: boolean, wideLayout?: "window" | "web" } - DSM application interior with optional sidebar, toolbar, main content and footer regions. Set wideLayout "web" only for a standalone Portal page; DSM windows keep the default "window" at every width. [accepts children; slots: sidebar, toolbar, footer]
|
|
54
54
|
- ResponsiveView: { mode?: "auto" | "mobile" | "window" | "web" } - Optionally replace a specialized element with a phone-friendly alternative. mobile/window/web slots follow AppShell container width (web only with AppShell wideLayout "web"); default is always the fallback. [accepts children; slots: mobile, window, web]
|
|
55
55
|
- Page: { width?: string, surface?: "auto" | "flat" | "card" } - Page content area. Use width "fill" for data-heavy screens and "readable" for forms/settings. [accepts children]
|
|
56
|
-
- PageHeader: { title: string, description?: string } - Page heading with optional description and page-level actions. [slots: actions]
|
|
56
|
+
- PageHeader: { title: string, description?: string } - Page heading with optional description and page-level actions. The meta slot sits on the title line, for a small chip such as when the data was read. [slots: actions, meta]
|
|
57
57
|
- Toolbar: { height?: string } - Application toolbar. Put primary page-independent actions in the actions slot. [accepts children; slots: leading, actions]
|
|
58
58
|
- SidebarNav: { value?: string, groups: Array<{ label?: string, items: Array<unknown> }>, searchable?: boolean, collapsible?: boolean, searchPlaceholder?: string } - DSM sidebar navigation. Icon values are names registered by the host application. [events: change]
|
|
59
59
|
- Tabs: { value: string, items: Array<{ label: string, value: string, disabled?: boolean }>, ariaLabel?: string } - Section tabs for switching a local mode or filter. Bind value to state for two-way updates. [events: change]
|
|
@@ -71,13 +71,17 @@ AVAILABLE COMPONENTS (30):
|
|
|
71
71
|
- SettingsField: { label: string, description?: string, required?: boolean, fieldWidth?: string, align?: "start" | "center" } - DSM settings row with label, description and one control/content region. [accepts children]
|
|
72
72
|
- Surface: { padding?: "none" | "sm" | "md" | "lg", border?: boolean, raised?: boolean } - Neutral bordered/raised content surface when Card semantics are not needed. [accepts children]
|
|
73
73
|
- Card: { title?: string, layoutType?: "regular" | "compact", expandable?: boolean, expanded?: boolean, footerAlign?: "start" | "end" | "between" } - Grouped content with optional header/actions/footer. Do not use a Card just to add spacing. [accepts children; slots: header-actions, footer] [events: expandedChange]
|
|
74
|
-
- Callout: { tone?: "info" | "success" | "warning" | "danger", title?: string, closable?: boolean } - Inline information, success, warning or error message. [accepts children; slots: actions] [events: close]
|
|
74
|
+
- Callout: { tone?: "info" | "success" | "warning" | "danger", title?: string, closable?: boolean, code?: string } - Inline information, success, warning or error message. Put a machine error code in `code`, not in the text. [accepts children; slots: actions] [events: close]
|
|
75
75
|
- EmptyState: { title: string, description?: string, icon?: string } - Empty/no-results state with optional recovery or create actions. [slots: actions]
|
|
76
|
-
- Progress: { value?: number, max?: number, label?: string, valueLabel?: string } - Linear determinate progress. Domain-specific progress visualizations should be custom components.
|
|
76
|
+
- Progress: { value?: number, max?: number, label?: string, valueLabel?: string, tone?: "primary" | "success" | "warning" | "danger" } - Linear determinate progress. Domain-specific progress visualizations should be custom components.
|
|
77
77
|
- Badge: { text: string, tone?: "neutral" | "info" | "success" | "warning" | "danger" } - Short status/category badge.
|
|
78
78
|
- Dialog: { open?: boolean, title?: string, description?: string, width?: string, showClose?: boolean } - Modal task/dialog. Bind open to state. Put confirmation or form actions in footer. [accepts children; slots: footer] [events: openChange]
|
|
79
79
|
- DataTable: { columns: Array<{ key: string, label: string, width?: string, align?: "left" | "center" | "right" }>, rows: Array<Record<string, unknown>>, rowKey?: string, emptyText?: string, compact?: boolean, mobileView?: "auto" | "cards" | "table" } - Simple resource table where cells display scalar row fields. Use an app extension component for rich/custom cells and row actions.
|
|
80
80
|
- ResourceList: { columns: Array<{ key: string, label: string, width?: string, align?: "left" | "center" | "right" }>, rows: Array<Record<string, unknown>>, rowKey?: string, emptyText?: string, compact?: boolean, mobileView?: "auto" | "cards" | "table" } - Common resource collection pattern: optional toolbar plus a simple table. For domain-specific row rendering, extend the catalog with a custom list/table component. [slots: toolbar]
|
|
81
|
+
- CellText: { text: string, secondary?: string, layout?: "stacked" | "inline", openLabel?: string, openDisabled?: boolean } - Main text with secondary information (size, time, path), truncated with a tooltip. With openLabel the main text is a link-styled button that emits open, e.g. "Open in File Station". [events: open]
|
|
82
|
+
- CellStatus: { label: string, tone?: "neutral" | "info" | "success" | "warning" | "danger", progress?: number, detail?: string } - Task status: a toned dot and label, a bar while progress (0–100) is running, and a detail such as speed or a reason.
|
|
83
|
+
- ListItem: { title?: string, description?: string } - One entry of a list (an extension, a tool, a rule): title, description, content and actions on the right. Consecutive entries are split by a hairline. [accepts children; slots: actions]
|
|
84
|
+
- InputGroup: { } - A field and the buttons acting on it on one line, such as a URL and its Install button. The first child takes the room left. [accepts children]
|
|
81
85
|
- Loading: { text?: string } - Centered loading state for a page or bounded region.
|
|
82
86
|
|
|
83
87
|
AVAILABLE ACTIONS:
|
|
@@ -225,6 +225,10 @@
|
|
|
225
225
|
"Dialog",
|
|
226
226
|
"DataTable",
|
|
227
227
|
"ResourceList",
|
|
228
|
+
"CellText",
|
|
229
|
+
"CellStatus",
|
|
230
|
+
"ListItem",
|
|
231
|
+
"InputGroup",
|
|
228
232
|
"Loading"
|
|
229
233
|
]
|
|
230
234
|
},
|
|
@@ -538,7 +542,7 @@
|
|
|
538
542
|
}
|
|
539
543
|
},
|
|
540
544
|
"then": {
|
|
541
|
-
"description": "Page heading with optional description and page-level actions.",
|
|
545
|
+
"description": "Page heading with optional description and page-level actions. The meta slot sits on the title line, for a small chip such as when the data was read.",
|
|
542
546
|
"properties": {
|
|
543
547
|
"props": {
|
|
544
548
|
"type": "object",
|
|
@@ -575,7 +579,8 @@
|
|
|
575
579
|
"slots": {
|
|
576
580
|
"propertyNames": {
|
|
577
581
|
"enum": [
|
|
578
|
-
"actions"
|
|
582
|
+
"actions",
|
|
583
|
+
"meta"
|
|
579
584
|
]
|
|
580
585
|
}
|
|
581
586
|
},
|
|
@@ -2051,7 +2056,7 @@
|
|
|
2051
2056
|
}
|
|
2052
2057
|
},
|
|
2053
2058
|
"then": {
|
|
2054
|
-
"description": "Inline information, success, warning or error message.",
|
|
2059
|
+
"description": "Inline information, success, warning or error message. Put a machine error code in `code`, not in the text.",
|
|
2055
2060
|
"properties": {
|
|
2056
2061
|
"props": {
|
|
2057
2062
|
"type": "object",
|
|
@@ -2091,6 +2096,16 @@
|
|
|
2091
2096
|
"$ref": "#/$defs/expression"
|
|
2092
2097
|
}
|
|
2093
2098
|
]
|
|
2099
|
+
},
|
|
2100
|
+
"code": {
|
|
2101
|
+
"anyOf": [
|
|
2102
|
+
{
|
|
2103
|
+
"type": "string"
|
|
2104
|
+
},
|
|
2105
|
+
{
|
|
2106
|
+
"$ref": "#/$defs/expression"
|
|
2107
|
+
}
|
|
2108
|
+
]
|
|
2094
2109
|
}
|
|
2095
2110
|
},
|
|
2096
2111
|
"additionalProperties": false
|
|
@@ -2233,6 +2248,22 @@
|
|
|
2233
2248
|
"$ref": "#/$defs/expression"
|
|
2234
2249
|
}
|
|
2235
2250
|
]
|
|
2251
|
+
},
|
|
2252
|
+
"tone": {
|
|
2253
|
+
"anyOf": [
|
|
2254
|
+
{
|
|
2255
|
+
"type": "string",
|
|
2256
|
+
"enum": [
|
|
2257
|
+
"primary",
|
|
2258
|
+
"success",
|
|
2259
|
+
"warning",
|
|
2260
|
+
"danger"
|
|
2261
|
+
]
|
|
2262
|
+
},
|
|
2263
|
+
{
|
|
2264
|
+
"$ref": "#/$defs/expression"
|
|
2265
|
+
}
|
|
2266
|
+
]
|
|
2236
2267
|
}
|
|
2237
2268
|
},
|
|
2238
2269
|
"additionalProperties": false
|
|
@@ -2674,6 +2705,262 @@
|
|
|
2674
2705
|
}
|
|
2675
2706
|
}
|
|
2676
2707
|
},
|
|
2708
|
+
{
|
|
2709
|
+
"if": {
|
|
2710
|
+
"properties": {
|
|
2711
|
+
"type": {
|
|
2712
|
+
"const": "CellText"
|
|
2713
|
+
}
|
|
2714
|
+
}
|
|
2715
|
+
},
|
|
2716
|
+
"then": {
|
|
2717
|
+
"description": "Main text with secondary information (size, time, path), truncated with a tooltip. With openLabel the main text is a link-styled button that emits open, e.g. \"Open in File Station\".",
|
|
2718
|
+
"properties": {
|
|
2719
|
+
"props": {
|
|
2720
|
+
"type": "object",
|
|
2721
|
+
"properties": {
|
|
2722
|
+
"text": {
|
|
2723
|
+
"anyOf": [
|
|
2724
|
+
{
|
|
2725
|
+
"type": "string"
|
|
2726
|
+
},
|
|
2727
|
+
{
|
|
2728
|
+
"$ref": "#/$defs/expression"
|
|
2729
|
+
}
|
|
2730
|
+
]
|
|
2731
|
+
},
|
|
2732
|
+
"secondary": {
|
|
2733
|
+
"anyOf": [
|
|
2734
|
+
{
|
|
2735
|
+
"type": "string"
|
|
2736
|
+
},
|
|
2737
|
+
{
|
|
2738
|
+
"$ref": "#/$defs/expression"
|
|
2739
|
+
}
|
|
2740
|
+
]
|
|
2741
|
+
},
|
|
2742
|
+
"layout": {
|
|
2743
|
+
"anyOf": [
|
|
2744
|
+
{
|
|
2745
|
+
"type": "string",
|
|
2746
|
+
"enum": [
|
|
2747
|
+
"stacked",
|
|
2748
|
+
"inline"
|
|
2749
|
+
]
|
|
2750
|
+
},
|
|
2751
|
+
{
|
|
2752
|
+
"$ref": "#/$defs/expression"
|
|
2753
|
+
}
|
|
2754
|
+
]
|
|
2755
|
+
},
|
|
2756
|
+
"openLabel": {
|
|
2757
|
+
"anyOf": [
|
|
2758
|
+
{
|
|
2759
|
+
"type": "string"
|
|
2760
|
+
},
|
|
2761
|
+
{
|
|
2762
|
+
"$ref": "#/$defs/expression"
|
|
2763
|
+
}
|
|
2764
|
+
]
|
|
2765
|
+
},
|
|
2766
|
+
"openDisabled": {
|
|
2767
|
+
"anyOf": [
|
|
2768
|
+
{
|
|
2769
|
+
"type": "boolean"
|
|
2770
|
+
},
|
|
2771
|
+
{
|
|
2772
|
+
"$ref": "#/$defs/expression"
|
|
2773
|
+
}
|
|
2774
|
+
]
|
|
2775
|
+
}
|
|
2776
|
+
},
|
|
2777
|
+
"required": [
|
|
2778
|
+
"text"
|
|
2779
|
+
],
|
|
2780
|
+
"additionalProperties": false
|
|
2781
|
+
},
|
|
2782
|
+
"children": {
|
|
2783
|
+
"maxItems": 0
|
|
2784
|
+
},
|
|
2785
|
+
"slots": {
|
|
2786
|
+
"propertyNames": {
|
|
2787
|
+
"enum": []
|
|
2788
|
+
}
|
|
2789
|
+
},
|
|
2790
|
+
"on": {
|
|
2791
|
+
"propertyNames": {
|
|
2792
|
+
"enum": [
|
|
2793
|
+
"open"
|
|
2794
|
+
]
|
|
2795
|
+
}
|
|
2796
|
+
}
|
|
2797
|
+
}
|
|
2798
|
+
}
|
|
2799
|
+
},
|
|
2800
|
+
{
|
|
2801
|
+
"if": {
|
|
2802
|
+
"properties": {
|
|
2803
|
+
"type": {
|
|
2804
|
+
"const": "CellStatus"
|
|
2805
|
+
}
|
|
2806
|
+
}
|
|
2807
|
+
},
|
|
2808
|
+
"then": {
|
|
2809
|
+
"description": "Task status: a toned dot and label, a bar while progress (0–100) is running, and a detail such as speed or a reason.",
|
|
2810
|
+
"properties": {
|
|
2811
|
+
"props": {
|
|
2812
|
+
"type": "object",
|
|
2813
|
+
"properties": {
|
|
2814
|
+
"label": {
|
|
2815
|
+
"anyOf": [
|
|
2816
|
+
{
|
|
2817
|
+
"type": "string"
|
|
2818
|
+
},
|
|
2819
|
+
{
|
|
2820
|
+
"$ref": "#/$defs/expression"
|
|
2821
|
+
}
|
|
2822
|
+
]
|
|
2823
|
+
},
|
|
2824
|
+
"tone": {
|
|
2825
|
+
"anyOf": [
|
|
2826
|
+
{
|
|
2827
|
+
"type": "string",
|
|
2828
|
+
"enum": [
|
|
2829
|
+
"neutral",
|
|
2830
|
+
"info",
|
|
2831
|
+
"success",
|
|
2832
|
+
"warning",
|
|
2833
|
+
"danger"
|
|
2834
|
+
]
|
|
2835
|
+
},
|
|
2836
|
+
{
|
|
2837
|
+
"$ref": "#/$defs/expression"
|
|
2838
|
+
}
|
|
2839
|
+
]
|
|
2840
|
+
},
|
|
2841
|
+
"progress": {
|
|
2842
|
+
"anyOf": [
|
|
2843
|
+
{
|
|
2844
|
+
"type": "number"
|
|
2845
|
+
},
|
|
2846
|
+
{
|
|
2847
|
+
"$ref": "#/$defs/expression"
|
|
2848
|
+
}
|
|
2849
|
+
]
|
|
2850
|
+
},
|
|
2851
|
+
"detail": {
|
|
2852
|
+
"anyOf": [
|
|
2853
|
+
{
|
|
2854
|
+
"type": "string"
|
|
2855
|
+
},
|
|
2856
|
+
{
|
|
2857
|
+
"$ref": "#/$defs/expression"
|
|
2858
|
+
}
|
|
2859
|
+
]
|
|
2860
|
+
}
|
|
2861
|
+
},
|
|
2862
|
+
"required": [
|
|
2863
|
+
"label"
|
|
2864
|
+
],
|
|
2865
|
+
"additionalProperties": false
|
|
2866
|
+
},
|
|
2867
|
+
"children": {
|
|
2868
|
+
"maxItems": 0
|
|
2869
|
+
},
|
|
2870
|
+
"slots": {
|
|
2871
|
+
"propertyNames": {
|
|
2872
|
+
"enum": []
|
|
2873
|
+
}
|
|
2874
|
+
},
|
|
2875
|
+
"on": {
|
|
2876
|
+
"propertyNames": {
|
|
2877
|
+
"enum": []
|
|
2878
|
+
}
|
|
2879
|
+
}
|
|
2880
|
+
}
|
|
2881
|
+
}
|
|
2882
|
+
},
|
|
2883
|
+
{
|
|
2884
|
+
"if": {
|
|
2885
|
+
"properties": {
|
|
2886
|
+
"type": {
|
|
2887
|
+
"const": "ListItem"
|
|
2888
|
+
}
|
|
2889
|
+
}
|
|
2890
|
+
},
|
|
2891
|
+
"then": {
|
|
2892
|
+
"description": "One entry of a list (an extension, a tool, a rule): title, description, content and actions on the right. Consecutive entries are split by a hairline.",
|
|
2893
|
+
"properties": {
|
|
2894
|
+
"props": {
|
|
2895
|
+
"type": "object",
|
|
2896
|
+
"properties": {
|
|
2897
|
+
"title": {
|
|
2898
|
+
"anyOf": [
|
|
2899
|
+
{
|
|
2900
|
+
"type": "string"
|
|
2901
|
+
},
|
|
2902
|
+
{
|
|
2903
|
+
"$ref": "#/$defs/expression"
|
|
2904
|
+
}
|
|
2905
|
+
]
|
|
2906
|
+
},
|
|
2907
|
+
"description": {
|
|
2908
|
+
"anyOf": [
|
|
2909
|
+
{
|
|
2910
|
+
"type": "string"
|
|
2911
|
+
},
|
|
2912
|
+
{
|
|
2913
|
+
"$ref": "#/$defs/expression"
|
|
2914
|
+
}
|
|
2915
|
+
]
|
|
2916
|
+
}
|
|
2917
|
+
},
|
|
2918
|
+
"additionalProperties": false
|
|
2919
|
+
},
|
|
2920
|
+
"slots": {
|
|
2921
|
+
"propertyNames": {
|
|
2922
|
+
"enum": [
|
|
2923
|
+
"actions"
|
|
2924
|
+
]
|
|
2925
|
+
}
|
|
2926
|
+
},
|
|
2927
|
+
"on": {
|
|
2928
|
+
"propertyNames": {
|
|
2929
|
+
"enum": []
|
|
2930
|
+
}
|
|
2931
|
+
}
|
|
2932
|
+
}
|
|
2933
|
+
}
|
|
2934
|
+
},
|
|
2935
|
+
{
|
|
2936
|
+
"if": {
|
|
2937
|
+
"properties": {
|
|
2938
|
+
"type": {
|
|
2939
|
+
"const": "InputGroup"
|
|
2940
|
+
}
|
|
2941
|
+
}
|
|
2942
|
+
},
|
|
2943
|
+
"then": {
|
|
2944
|
+
"description": "A field and the buttons acting on it on one line, such as a URL and its Install button. The first child takes the room left.",
|
|
2945
|
+
"properties": {
|
|
2946
|
+
"props": {
|
|
2947
|
+
"type": "object",
|
|
2948
|
+
"properties": {},
|
|
2949
|
+
"additionalProperties": false
|
|
2950
|
+
},
|
|
2951
|
+
"slots": {
|
|
2952
|
+
"propertyNames": {
|
|
2953
|
+
"enum": []
|
|
2954
|
+
}
|
|
2955
|
+
},
|
|
2956
|
+
"on": {
|
|
2957
|
+
"propertyNames": {
|
|
2958
|
+
"enum": []
|
|
2959
|
+
}
|
|
2960
|
+
}
|
|
2961
|
+
}
|
|
2962
|
+
}
|
|
2963
|
+
},
|
|
2677
2964
|
{
|
|
2678
2965
|
"if": {
|
|
2679
2966
|
"properties": {
|