optimizely-opal.opal-tools-sdk 0.1.34.dev0__tar.gz → 0.1.36.dev0__tar.gz

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.
Files changed (22) hide show
  1. {optimizely_opal_opal_tools_sdk-0.1.34.dev0 → optimizely_opal_opal_tools_sdk-0.1.36.dev0}/PKG-INFO +1 -1
  2. {optimizely_opal_opal_tools_sdk-0.1.34.dev0 → optimizely_opal_opal_tools_sdk-0.1.36.dev0}/opal_tools_sdk/proteus.py +105 -3
  3. {optimizely_opal_opal_tools_sdk-0.1.34.dev0 → optimizely_opal_opal_tools_sdk-0.1.36.dev0}/optimizely_opal.opal_tools_sdk.egg-info/PKG-INFO +1 -1
  4. {optimizely_opal_opal_tools_sdk-0.1.34.dev0 → optimizely_opal_opal_tools_sdk-0.1.36.dev0}/pyproject.toml +1 -1
  5. {optimizely_opal_opal_tools_sdk-0.1.34.dev0 → optimizely_opal_opal_tools_sdk-0.1.36.dev0}/setup.py +1 -1
  6. {optimizely_opal_opal_tools_sdk-0.1.34.dev0 → optimizely_opal_opal_tools_sdk-0.1.36.dev0}/README.md +0 -0
  7. {optimizely_opal_opal_tools_sdk-0.1.34.dev0 → optimizely_opal_opal_tools_sdk-0.1.36.dev0}/opal_tools_sdk/__init__.py +0 -0
  8. {optimizely_opal_opal_tools_sdk-0.1.34.dev0 → optimizely_opal_opal_tools_sdk-0.1.36.dev0}/opal_tools_sdk/_registry.py +0 -0
  9. {optimizely_opal_opal_tools_sdk-0.1.34.dev0 → optimizely_opal_opal_tools_sdk-0.1.36.dev0}/opal_tools_sdk/auth.py +0 -0
  10. {optimizely_opal_opal_tools_sdk-0.1.34.dev0 → optimizely_opal_opal_tools_sdk-0.1.36.dev0}/opal_tools_sdk/decorators.py +0 -0
  11. {optimizely_opal_opal_tools_sdk-0.1.34.dev0 → optimizely_opal_opal_tools_sdk-0.1.36.dev0}/opal_tools_sdk/logging.py +0 -0
  12. {optimizely_opal_opal_tools_sdk-0.1.34.dev0 → optimizely_opal_opal_tools_sdk-0.1.36.dev0}/opal_tools_sdk/models.py +0 -0
  13. {optimizely_opal_opal_tools_sdk-0.1.34.dev0 → optimizely_opal_opal_tools_sdk-0.1.36.dev0}/opal_tools_sdk/service.py +0 -0
  14. {optimizely_opal_opal_tools_sdk-0.1.34.dev0 → optimizely_opal_opal_tools_sdk-0.1.36.dev0}/opal_tools_sdk/ui.py +0 -0
  15. {optimizely_opal_opal_tools_sdk-0.1.34.dev0 → optimizely_opal_opal_tools_sdk-0.1.36.dev0}/optimizely_opal.opal_tools_sdk.egg-info/SOURCES.txt +0 -0
  16. {optimizely_opal_opal_tools_sdk-0.1.34.dev0 → optimizely_opal_opal_tools_sdk-0.1.36.dev0}/optimizely_opal.opal_tools_sdk.egg-info/dependency_links.txt +0 -0
  17. {optimizely_opal_opal_tools_sdk-0.1.34.dev0 → optimizely_opal_opal_tools_sdk-0.1.36.dev0}/optimizely_opal.opal_tools_sdk.egg-info/requires.txt +0 -0
  18. {optimizely_opal_opal_tools_sdk-0.1.34.dev0 → optimizely_opal_opal_tools_sdk-0.1.36.dev0}/optimizely_opal.opal_tools_sdk.egg-info/top_level.txt +0 -0
  19. {optimizely_opal_opal_tools_sdk-0.1.34.dev0 → optimizely_opal_opal_tools_sdk-0.1.36.dev0}/setup.cfg +0 -0
  20. {optimizely_opal_opal_tools_sdk-0.1.34.dev0 → optimizely_opal_opal_tools_sdk-0.1.36.dev0}/tests/test_integration.py +0 -0
  21. {optimizely_opal_opal_tools_sdk-0.1.34.dev0 → optimizely_opal_opal_tools_sdk-0.1.36.dev0}/tests/test_nested_schema.py +0 -0
  22. {optimizely_opal_opal_tools_sdk-0.1.34.dev0 → optimizely_opal_opal_tools_sdk-0.1.36.dev0}/tests/test_proteus.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: optimizely-opal.opal-tools-sdk
3
- Version: 0.1.34.dev0
3
+ Version: 0.1.36.dev0
4
4
  Summary: SDK for creating Opal-compatible tools services
5
5
  Home-page: https://github.com/optimizely/opal-tools-sdk
6
6
  Author: Optimizely
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: proteus-document-spec.json
3
- # timestamp: 2026-05-11T17:24:58+00:00
3
+ # timestamp: 2026-05-19T13:58:05+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -268,6 +268,10 @@ class ProteusDocument(BaseModel):
268
268
  actions: ProteusNode | None = Field(
269
269
  default=None, description="Actions available for this document"
270
270
  )
271
+ appearance: Literal["default"] | Literal["inline"] | ProteusExpression | None = Field(
272
+ default=None,
273
+ description="Visual treatment of the document shell. 'default' renders the document as a card with background, border, and padding. 'inline' strips the surrounding chrome so the document blends into its host container.",
274
+ )
271
275
  appIcon: str | None = Field(
272
276
  default=None,
273
277
  description="URL or data URI for the application icon (e.g., 'https://example.com/icon.png' or 'data:image/svg+xml,...'). Rendered as an <img> element.",
@@ -344,6 +348,20 @@ class ProteusEventHandler4(BaseModel):
344
348
  url: ProteusExpression | str = Field(..., description="URL to open in a new tab")
345
349
 
346
350
 
351
+ class ProteusEventHandler5(BaseModel):
352
+ """
353
+ Client-side component action - for previewing a file inline
354
+ """
355
+
356
+ model_config = ConfigDict(
357
+ extra="forbid",
358
+ )
359
+ action: Literal["preview"] = Field(default="preview", description="The action type")
360
+ file: ProteusExpression | dict[str, Any] | str = Field(
361
+ ..., description="The file object to preview"
362
+ )
363
+
364
+
347
365
  class Part(BaseModel):
348
366
  model_config = ConfigDict(
349
367
  extra="forbid",
@@ -927,6 +945,9 @@ class ProteusCardLink(BaseModel):
927
945
  mx: SprinklePropMx | None = None
928
946
  my: SprinklePropMy | None = None
929
947
  objectFit: SprinklePropObjectFit | None = None
948
+ onClick: ProteusEventHandler | None = Field(
949
+ default=None, description="Action triggered when link is clicked"
950
+ )
930
951
  overflow: SprinklePropOverflow | None = None
931
952
  overflowX: SprinklePropOverflowX | None = None
932
953
  overflowY: SprinklePropOverflowY | None = None
@@ -1080,6 +1101,74 @@ class ProteusField(BaseModel):
1080
1101
  z: SprinklePropZ | None = None
1081
1102
 
1082
1103
 
1104
+ class ProteusFileIcon(BaseModel):
1105
+ model_config = ConfigDict(
1106
+ extra="forbid",
1107
+ )
1108
+ field_type: Literal["FileIcon"] = Field(default="FileIcon", alias="$type")
1109
+ alignItems: SprinklePropAlignItems | None = None
1110
+ alignSelf: SprinklePropAlignSelf | None = None
1111
+ animation: SprinklePropAnimation | None = None
1112
+ backgroundImage: SprinklePropBackgroundImage | None = None
1113
+ bg: SprinklePropBg | None = None
1114
+ border: SprinklePropBorder | None = None
1115
+ borderB: SprinklePropBorderB | None = None
1116
+ borderColor: SprinklePropBorderColor | None = None
1117
+ borderL: SprinklePropBorderL | None = None
1118
+ borderR: SprinklePropBorderR | None = None
1119
+ borderT: SprinklePropBorderT | None = None
1120
+ color: SprinklePropColor | None = None
1121
+ cursor: SprinklePropCursor | None = None
1122
+ display: SprinklePropDisplay | None = None
1123
+ flex: SprinklePropFlex | None = None
1124
+ flexDirection: SprinklePropFlexDirection | None = None
1125
+ flexWrap: SprinklePropFlexWrap | None = None
1126
+ fontFamily: SprinklePropFontFamily | None = None
1127
+ fontSize: SprinklePropFontSize | None = None
1128
+ fontWeight: SprinklePropFontWeight | None = None
1129
+ gap: SprinklePropGap | None = None
1130
+ gridAutoRows: SprinklePropGridAutoRows | None = None
1131
+ gridColumn: SprinklePropGridColumn | None = None
1132
+ gridTemplateColumns: SprinklePropGridTemplateColumns | None = None
1133
+ h: SprinklePropH | None = None
1134
+ justifyContent: SprinklePropJustifyContent | None = None
1135
+ justifyItems: SprinklePropJustifyItems | None = None
1136
+ m: SprinklePropM | None = None
1137
+ maxH: SprinklePropMaxH | None = None
1138
+ maxW: SprinklePropMaxW | None = None
1139
+ mb: SprinklePropMb | None = None
1140
+ ml: SprinklePropMl | None = None
1141
+ mr: SprinklePropMr | None = None
1142
+ mt: SprinklePropMt | None = None
1143
+ mx: SprinklePropMx | None = None
1144
+ my: SprinklePropMy | None = None
1145
+ objectFit: SprinklePropObjectFit | None = None
1146
+ overflow: SprinklePropOverflow | None = None
1147
+ overflowX: SprinklePropOverflowX | None = None
1148
+ overflowY: SprinklePropOverflowY | None = None
1149
+ p: SprinklePropP | None = None
1150
+ pb: SprinklePropPb | None = None
1151
+ pl: SprinklePropPl | None = None
1152
+ placeItems: SprinklePropPlaceItems | None = None
1153
+ pointerEvents: SprinklePropPointerEvents | None = None
1154
+ pr: SprinklePropPr | None = None
1155
+ pt: SprinklePropPt | None = None
1156
+ px: SprinklePropPx | None = None
1157
+ py: SprinklePropPy | None = None
1158
+ rounded: SprinklePropRounded | None = None
1159
+ shadow: SprinklePropShadow | None = None
1160
+ size: SprinklePropSize | None = None
1161
+ textAlign: SprinklePropTextAlign | None = None
1162
+ textTransform: SprinklePropTextTransform | None = None
1163
+ transition: SprinklePropTransition | None = None
1164
+ w: SprinklePropW | None = None
1165
+ whiteSpace: SprinklePropWhiteSpace | None = None
1166
+ z: SprinklePropZ | None = None
1167
+ mimeType: str | ProteusExpression | None = Field(
1168
+ default=None, description="MIME type of the file to determine which icon to display"
1169
+ )
1170
+
1171
+
1083
1172
  class ProteusFileUpload(BaseModel):
1084
1173
  model_config = ConfigDict(
1085
1174
  extra="forbid",
@@ -2255,11 +2344,19 @@ class ProteusCondition(
2255
2344
 
2256
2345
  class ProteusEventHandler(
2257
2346
  RootModel[
2258
- ProteusEventHandler1 | ProteusEventHandler2 | ProteusEventHandler3 | ProteusEventHandler4
2347
+ ProteusEventHandler1
2348
+ | ProteusEventHandler2
2349
+ | ProteusEventHandler3
2350
+ | ProteusEventHandler4
2351
+ | ProteusEventHandler5
2259
2352
  ]
2260
2353
  ):
2261
2354
  root: (
2262
- ProteusEventHandler1 | ProteusEventHandler2 | ProteusEventHandler3 | ProteusEventHandler4
2355
+ ProteusEventHandler1
2356
+ | ProteusEventHandler2
2357
+ | ProteusEventHandler3
2358
+ | ProteusEventHandler4
2359
+ | ProteusEventHandler5
2263
2360
  ) = Field(
2264
2361
  ...,
2265
2362
  description="Handler for user interactions - a server-side interaction call, client-side message, or client-side component action",
@@ -2287,6 +2384,7 @@ class ProteusElement(
2287
2384
  | ProteusDataTable
2288
2385
  | ProteusFederated
2289
2386
  | ProteusField
2387
+ | ProteusFileIcon
2290
2388
  | ProteusFileUpload
2291
2389
  | ProteusGroup
2292
2390
  | ProteusHeading
@@ -2325,6 +2423,7 @@ class ProteusElement(
2325
2423
  | ProteusDataTable
2326
2424
  | ProteusFederated
2327
2425
  | ProteusField
2426
+ | ProteusFileIcon
2328
2427
  | ProteusFileUpload
2329
2428
  | ProteusGroup
2330
2429
  | ProteusHeading
@@ -3991,6 +4090,7 @@ ProteusDocument.model_rebuild()
3991
4090
  ProteusEventHandler2.model_rebuild()
3992
4091
  ProteusEventHandler3.model_rebuild()
3993
4092
  ProteusEventHandler4.model_rebuild()
4093
+ ProteusEventHandler5.model_rebuild()
3994
4094
  Part.model_rebuild()
3995
4095
  ProteusStructuredMessage.model_rebuild()
3996
4096
  ProteusZip.model_rebuild()
@@ -4007,6 +4107,7 @@ ProteusConcat.model_rebuild()
4007
4107
  ProteusDataTable.model_rebuild()
4008
4108
  ProteusFederated.model_rebuild()
4009
4109
  ProteusField.model_rebuild()
4110
+ ProteusFileIcon.model_rebuild()
4010
4111
  ProteusFileUpload.model_rebuild()
4011
4112
  ProteusGroup.model_rebuild()
4012
4113
  ProteusHeading.model_rebuild()
@@ -4055,6 +4156,7 @@ class UI:
4055
4156
  Document = ProteusDocument
4056
4157
  Federated = ProteusFederated
4057
4158
  Field = ProteusField
4159
+ FileIcon = ProteusFileIcon
4058
4160
  FileUpload = ProteusFileUpload
4059
4161
  Group = ProteusGroup
4060
4162
  Heading = ProteusHeading
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: optimizely-opal.opal-tools-sdk
3
- Version: 0.1.34.dev0
3
+ Version: 0.1.36.dev0
4
4
  Summary: SDK for creating Opal-compatible tools services
5
5
  Home-page: https://github.com/optimizely/opal-tools-sdk
6
6
  Author: Optimizely
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "optimizely-opal.opal-tools-sdk"
7
- version = "0.1.34-dev"
7
+ version = "0.1.36-dev"
8
8
  description = "SDK for creating Opal-compatible tools services"
9
9
  authors = [{ name = "Optimizely", email = "opal-team@optimizely.com" }]
10
10
  readme = "README.md"
@@ -2,7 +2,7 @@ from setuptools import find_packages, setup
2
2
 
3
3
  setup(
4
4
  name="optimizely-opal.opal-tools-sdk",
5
- version="0.1.34-dev",
5
+ version="0.1.36-dev",
6
6
  packages=find_packages(),
7
7
  install_requires=[
8
8
  "fastapi>=0.100.0",