@stackable-labs/sdk-extension-contracts 2.15.0 → 2.16.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
@@ -659,10 +659,31 @@ interface InstanceConfig {
659
659
  identityKey?: string;
660
660
  } & Record<string, unknown>;
661
661
  }
662
+ /**
663
+ * ExtensionGroup — an ordered slice of an Instance's authorized extensions with shared collapse behavior.
664
+ *
665
+ * Renders to end users as either an always-open stack (collapsible=false) or one of two
666
+ * collapsible modes controlled by `oneAtATime`:
667
+ * - oneAtATime=true → accordion: one row open at a time, at least one must stay open
668
+ * - oneAtATime=false → free-form: any combination open/closed, user can collapse all
669
+ * Max 4 groups per instance. Single-extension instances do NOT use groups — they render
670
+ * always-open via the hard-rule fallback.
671
+ *
672
+ * Immutability rule: once a group is persisted with a given `id`, that id is stable across all
673
+ * subsequent updates. Renderer + admin UI key off `id` for collapse-state tracking.
674
+ */
675
+ interface ExtensionGroup {
676
+ id: string;
677
+ label?: string;
678
+ collapsible: boolean;
679
+ oneAtATime: boolean;
680
+ extensionIds: string[];
681
+ }
662
682
  interface InstanceOption {
663
683
  id: string;
664
684
  name: string;
665
685
  config?: InstanceConfig;
686
+ extensionGroups?: ExtensionGroup[];
666
687
  }
667
688
 
668
689
  /**
@@ -1087,4 +1108,4 @@ interface Order {
1087
1108
  declare const TEMPLATE_FLAVORS: readonly ["minimal", "starter", "kitchen-sink"];
1088
1109
  type TemplateFlavor = typeof TEMPLATE_FLAVORS[number];
1089
1110
 
1090
- export { ACTIVITY_EVENT, ALLOWED_ICONS, type ActionInvokePayload, type ActionPayloadMap, type ActivityEvent, type ActivityEventHandler, type ActivityEventType, type Address, type AllowedIconName, type ApiError, type ApiRequest, type ApiResponse, CAPABILITY_PERMISSION_MAP, type Capability, type CapabilityCall, type CapabilityRequest, type CapabilityResponse, type CapabilityType, type ContextData, type ConversationField, type ConversationTags, type Customer, type DataField, type DataFieldType, EVENT_HOOK_PERMISSION_MAP, type EncryptedPayload, type EventDomain, type EventHook, type EventType, type ExtendIdentityHandler, type ExtendIdentityRequest, type ExtendIdentityResponse, type ExtensionManifest, type ExtensionRegistryEntry, type FetchRequest, type FetchRequestInit, type FetchResponse, type HostToSandboxMessage, IDENTITY_EVENT, INVOKE_ACTION, type IdentityBaseClaims, type IdentityEvent, type IdentityEventType, type IdentityState, type InstanceConfig, type InstanceOption, type InvokeAction, type MarketplaceExtension, type MessagingContext, type MessagingEvent, type MessagingEventHandler, type MessagingEventType, type MessagingPostbackEvent, type MessengerCommand, type NamedEntity, type NewConversationPayload, type Order, type OrderAction, type OrderItem, type OrderStatus, type OrderStatuses, PERMISSIONS, type Permission, type Price, RESERVED_CONTEXT_KEYS, type ReservedContextKey, SURFACE_TARGET, type SandboxToHostMessage, type Shipment, type SurfaceContext, type SurfaceLifecycleMessage, type SurfaceTarget, TEMPLATE_FLAVORS, type Target, type TemplateFlavor, type Theme, type ToastPayload, type UITag, type UITagCategory, UI_TAGS, UI_TAG_ATTRIBUTES, UI_TAG_ATTRIBUTE_VALUES, UI_TAG_CATEGORIES, UI_TAG_CHILDREN, UI_TAG_CHILD_ONLY, UI_TAG_COMPOUND, UI_TAG_DEFINITIONS, UI_TAG_SELF_CLOSING, type UserIdentity, type WellKnownActivityEvent, type WidgetAction, tagToComponentName };
1111
+ export { ACTIVITY_EVENT, ALLOWED_ICONS, type ActionInvokePayload, type ActionPayloadMap, type ActivityEvent, type ActivityEventHandler, type ActivityEventType, type Address, type AllowedIconName, type ApiError, type ApiRequest, type ApiResponse, CAPABILITY_PERMISSION_MAP, type Capability, type CapabilityCall, type CapabilityRequest, type CapabilityResponse, type CapabilityType, type ContextData, type ConversationField, type ConversationTags, type Customer, type DataField, type DataFieldType, EVENT_HOOK_PERMISSION_MAP, type EncryptedPayload, type EventDomain, type EventHook, type EventType, type ExtendIdentityHandler, type ExtendIdentityRequest, type ExtendIdentityResponse, type ExtensionGroup, type ExtensionManifest, type ExtensionRegistryEntry, type FetchRequest, type FetchRequestInit, type FetchResponse, type HostToSandboxMessage, IDENTITY_EVENT, INVOKE_ACTION, type IdentityBaseClaims, type IdentityEvent, type IdentityEventType, type IdentityState, type InstanceConfig, type InstanceOption, type InvokeAction, type MarketplaceExtension, type MessagingContext, type MessagingEvent, type MessagingEventHandler, type MessagingEventType, type MessagingPostbackEvent, type MessengerCommand, type NamedEntity, type NewConversationPayload, type Order, type OrderAction, type OrderItem, type OrderStatus, type OrderStatuses, PERMISSIONS, type Permission, type Price, RESERVED_CONTEXT_KEYS, type ReservedContextKey, SURFACE_TARGET, type SandboxToHostMessage, type Shipment, type SurfaceContext, type SurfaceLifecycleMessage, type SurfaceTarget, TEMPLATE_FLAVORS, type Target, type TemplateFlavor, type Theme, type ToastPayload, type UITag, type UITagCategory, UI_TAGS, UI_TAG_ATTRIBUTES, UI_TAG_ATTRIBUTE_VALUES, UI_TAG_CATEGORIES, UI_TAG_CHILDREN, UI_TAG_CHILD_ONLY, UI_TAG_COMPOUND, UI_TAG_DEFINITIONS, UI_TAG_SELF_CLOSING, type UserIdentity, type WellKnownActivityEvent, type WidgetAction, tagToComponentName };
package/dist/index.js CHANGED
@@ -6,10 +6,11 @@ var asClerkOrgId = (value) => value;
6
6
  // ../../../lib/contracts/src/marketplace.ts
7
7
  var EXTENSION_CATEGORY = {
8
8
  COMMERCE: "commerce",
9
- SUPPORT: "support",
10
- ANALYTICS: "analytics",
9
+ LOYALTY: "loyalty",
10
+ CRM: "crm",
11
11
  PRODUCTIVITY: "productivity",
12
- COMMUNICATION: "communication",
12
+ MARKETING: "marketing",
13
+ EMPLOYEE: "employee",
13
14
  OTHER: "other"
14
15
  };
15
16
  var EXTENSION_VISIBILITY = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackable-labs/sdk-extension-contracts",
3
- "version": "2.15.0",
3
+ "version": "2.16.0",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "private": false,