@synopackageland/ui 0.9.5 → 0.9.7

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.
@@ -47,7 +47,7 @@ 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 (30):
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]
@@ -78,6 +78,10 @@ AVAILABLE COMPONENTS (30):
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
  },
@@ -2701,6 +2705,262 @@
2701
2705
  }
2702
2706
  }
2703
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
+ },
2704
2964
  {
2705
2965
  "if": {
2706
2966
  "properties": {