@stackable-labs/sdk-extension-contracts 1.17.1 → 1.18.0

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/dist/index.d.ts CHANGED
@@ -30,13 +30,19 @@ interface ApiError {
30
30
  * Defines the fixed set of UI tags that extensions can render.
31
31
  * The host maps these to real React components.
32
32
  */
33
- declare const UI_TAGS: readonly ["ui-card", "ui-card-content", "ui-card-header", "ui-button", "ui-text", "ui-heading", "ui-badge", "ui-input", "ui-stack", "ui-inline", "ui-separator", "ui-tabs", "ui-tabs-list", "ui-tabs-trigger", "ui-tabs-content", "ui-scroll-area", "ui-avatar", "ui-avatar-image", "ui-avatar-fallback", "ui-icon", "ui-link", "ui-menu", "ui-menu-item"];
33
+ declare const UI_TAGS: readonly ["ui-card", "ui-card-content", "ui-card-header", "ui-button", "ui-text", "ui-heading", "ui-badge", "ui-input", "ui-textarea", "ui-select", "ui-select-option", "ui-checkbox", "ui-switch", "ui-label", "ui-radio-group", "ui-radio-group-item", "ui-stack", "ui-inline", "ui-separator", "ui-tabs", "ui-tabs-list", "ui-tabs-trigger", "ui-tabs-content", "ui-scroll-area", "ui-avatar", "ui-icon", "ui-link", "ui-menu", "ui-menu-item", "ui-skeleton", "ui-tooltip", "ui-progress", "ui-alert", "ui-collapsible", "ui-collapsible-trigger", "ui-collapsible-content"];
34
34
  type UITag = (typeof UI_TAGS)[number];
35
35
  /**
36
36
  * Allowed attributes per UI tag.
37
37
  * Host should reject any attributes not in this allowlist.
38
38
  */
39
39
  declare const UI_TAG_ATTRIBUTES: Record<UITag, readonly string[]>;
40
+ /**
41
+ * Valid children per parent UI tag.
42
+ * Only parents with strict composition rules are listed.
43
+ * Host should warn (not block) when children violate these rules.
44
+ */
45
+ declare const UI_TAG_CHILDREN: Partial<Record<UITag, readonly UITag[]>>;
40
46
  /**
41
47
  * Supported icon names (subset of lucide-react).
42
48
  * Extensions reference icons by name; host renders the actual icon component.
@@ -468,4 +474,4 @@ interface Order {
468
474
  display_status?: OrderStatus;
469
475
  }
470
476
 
471
- export { ALLOWED_ICONS, type ActionInvokePayload, type Address, type AllowedIconName, type ApiError, type ApiRequest, type ApiResponse, CAPABILITY_PERMISSION_MAP, type CapabilityCall, type CapabilityRequest, type CapabilityResponse, type CapabilityType, type ContextData, type Customer, type DataField, type DataFieldType, type ExtensionManifest, type ExtensionRegistryEntry, type FetchRequest, type FetchRequestInit, type FetchResponse, type HostToSandboxMessage, type InstanceOption, type InstanceSettings, type MarketplaceExtension, type NamedEntity, type Order, type OrderAction, type OrderItem, type OrderStatus, type OrderStatuses, PERMISSIONS, type Permission, type Price, type SandboxToHostMessage, type Shipment, type SurfaceContext, type SurfaceLifecycleMessage, type Target, type Theme, type ToastPayload, type UITag, UI_TAGS, UI_TAG_ATTRIBUTES };
477
+ export { ALLOWED_ICONS, type ActionInvokePayload, type Address, type AllowedIconName, type ApiError, type ApiRequest, type ApiResponse, CAPABILITY_PERMISSION_MAP, type CapabilityCall, type CapabilityRequest, type CapabilityResponse, type CapabilityType, type ContextData, type Customer, type DataField, type DataFieldType, type ExtensionManifest, type ExtensionRegistryEntry, type FetchRequest, type FetchRequestInit, type FetchResponse, type HostToSandboxMessage, type InstanceOption, type InstanceSettings, type MarketplaceExtension, type NamedEntity, type Order, type OrderAction, type OrderItem, type OrderStatus, type OrderStatuses, PERMISSIONS, type Permission, type Price, type SandboxToHostMessage, type Shipment, type SurfaceContext, type SurfaceLifecycleMessage, type Target, type Theme, type ToastPayload, type UITag, UI_TAGS, UI_TAG_ATTRIBUTES, UI_TAG_CHILDREN };
package/dist/index.js CHANGED
@@ -8,6 +8,14 @@ var UI_TAGS = [
8
8
  "ui-heading",
9
9
  "ui-badge",
10
10
  "ui-input",
11
+ "ui-textarea",
12
+ "ui-select",
13
+ "ui-select-option",
14
+ "ui-checkbox",
15
+ "ui-switch",
16
+ "ui-label",
17
+ "ui-radio-group",
18
+ "ui-radio-group-item",
11
19
  "ui-stack",
12
20
  "ui-inline",
13
21
  "ui-separator",
@@ -17,12 +25,17 @@ var UI_TAGS = [
17
25
  "ui-tabs-content",
18
26
  "ui-scroll-area",
19
27
  "ui-avatar",
20
- "ui-avatar-image",
21
- "ui-avatar-fallback",
22
28
  "ui-icon",
23
29
  "ui-link",
24
30
  "ui-menu",
25
- "ui-menu-item"
31
+ "ui-menu-item",
32
+ "ui-skeleton",
33
+ "ui-tooltip",
34
+ "ui-progress",
35
+ "ui-alert",
36
+ "ui-collapsible",
37
+ "ui-collapsible-trigger",
38
+ "ui-collapsible-content"
26
39
  ];
27
40
  var UI_TAG_ATTRIBUTES = {
28
41
  "ui-card": ["className", "onClick"],
@@ -33,6 +46,14 @@ var UI_TAG_ATTRIBUTES = {
33
46
  "ui-heading": ["level", "className"],
34
47
  "ui-badge": ["variant", "tone", "className"],
35
48
  "ui-input": ["type", "placeholder", "value", "onChange", "disabled", "className", "id"],
49
+ "ui-textarea": ["placeholder", "value", "onChange", "disabled", "rows", "className", "id"],
50
+ "ui-select": ["value", "defaultValue", "onChange", "placeholder", "disabled", "className"],
51
+ "ui-select-option": ["value", "disabled", "className"],
52
+ "ui-checkbox": ["checked", "onChange", "disabled", "className", "id"],
53
+ "ui-switch": ["checked", "onChange", "disabled", "size", "className", "id"],
54
+ "ui-label": ["htmlFor", "className"],
55
+ "ui-radio-group": ["value", "defaultValue", "onChange", "className"],
56
+ "ui-radio-group-item": ["value", "disabled", "className", "id"],
36
57
  "ui-stack": ["gap", "direction", "align", "className"],
37
58
  "ui-inline": ["gap", "align", "className"],
38
59
  "ui-separator": ["className"],
@@ -41,13 +62,27 @@ var UI_TAG_ATTRIBUTES = {
41
62
  "ui-tabs-trigger": ["value", "className"],
42
63
  "ui-tabs-content": ["value", "className"],
43
64
  "ui-scroll-area": ["className"],
44
- "ui-avatar": ["className"],
45
- "ui-avatar-image": ["src", "alt", "className"],
46
- "ui-avatar-fallback": ["className"],
65
+ "ui-avatar": ["src", "alt", "className"],
47
66
  "ui-icon": ["name", "size", "className"],
48
67
  "ui-link": ["href", "target", "rel", "className"],
49
68
  "ui-menu-item": ["icon", "label", "description", "onClick", "className"],
50
- "ui-menu": ["title", "className"]
69
+ "ui-menu": ["title", "className"],
70
+ "ui-skeleton": ["width", "height", "className"],
71
+ "ui-tooltip": ["content", "className"],
72
+ "ui-progress": ["value", "className"],
73
+ "ui-alert": ["variant", "title", "className"],
74
+ "ui-collapsible": ["defaultOpen", "className"],
75
+ "ui-collapsible-trigger": ["className"],
76
+ "ui-collapsible-content": ["className"]
77
+ };
78
+ var UI_TAG_CHILDREN = {
79
+ "ui-tabs": ["ui-tabs-list", "ui-tabs-content"],
80
+ "ui-tabs-list": ["ui-tabs-trigger"],
81
+ "ui-card": ["ui-card-header", "ui-card-content"],
82
+ "ui-menu": ["ui-menu-item"],
83
+ "ui-select": ["ui-select-option"],
84
+ "ui-radio-group": ["ui-radio-group-item"],
85
+ "ui-collapsible": ["ui-collapsible-trigger", "ui-collapsible-content"]
51
86
  };
52
87
  var ALLOWED_ICONS = [
53
88
  "arrow-left",
@@ -129,5 +164,6 @@ export {
129
164
  EXTENSION_VISIBILITIES,
130
165
  PERMISSIONS,
131
166
  UI_TAGS,
132
- UI_TAG_ATTRIBUTES
167
+ UI_TAG_ATTRIBUTES,
168
+ UI_TAG_CHILDREN
133
169
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackable-labs/sdk-extension-contracts",
3
- "version": "1.17.1",
3
+ "version": "1.18.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",