optimizely-opal.opal-tools-sdk 0.1.25.dev0__tar.gz → 0.1.27.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.
- {optimizely_opal_opal_tools_sdk-0.1.25.dev0 → optimizely_opal_opal_tools_sdk-0.1.27.dev0}/PKG-INFO +1 -1
- {optimizely_opal_opal_tools_sdk-0.1.25.dev0 → optimizely_opal_opal_tools_sdk-0.1.27.dev0}/opal_tools_sdk/proteus.py +54 -33
- {optimizely_opal_opal_tools_sdk-0.1.25.dev0 → optimizely_opal_opal_tools_sdk-0.1.27.dev0}/optimizely_opal.opal_tools_sdk.egg-info/PKG-INFO +1 -1
- {optimizely_opal_opal_tools_sdk-0.1.25.dev0 → optimizely_opal_opal_tools_sdk-0.1.27.dev0}/pyproject.toml +1 -1
- {optimizely_opal_opal_tools_sdk-0.1.25.dev0 → optimizely_opal_opal_tools_sdk-0.1.27.dev0}/setup.py +1 -1
- {optimizely_opal_opal_tools_sdk-0.1.25.dev0 → optimizely_opal_opal_tools_sdk-0.1.27.dev0}/tests/test_integration.py +0 -2
- {optimizely_opal_opal_tools_sdk-0.1.25.dev0 → optimizely_opal_opal_tools_sdk-0.1.27.dev0}/README.md +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.25.dev0 → optimizely_opal_opal_tools_sdk-0.1.27.dev0}/opal_tools_sdk/__init__.py +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.25.dev0 → optimizely_opal_opal_tools_sdk-0.1.27.dev0}/opal_tools_sdk/_registry.py +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.25.dev0 → optimizely_opal_opal_tools_sdk-0.1.27.dev0}/opal_tools_sdk/auth.py +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.25.dev0 → optimizely_opal_opal_tools_sdk-0.1.27.dev0}/opal_tools_sdk/decorators.py +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.25.dev0 → optimizely_opal_opal_tools_sdk-0.1.27.dev0}/opal_tools_sdk/logging.py +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.25.dev0 → optimizely_opal_opal_tools_sdk-0.1.27.dev0}/opal_tools_sdk/models.py +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.25.dev0 → optimizely_opal_opal_tools_sdk-0.1.27.dev0}/opal_tools_sdk/service.py +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.25.dev0 → optimizely_opal_opal_tools_sdk-0.1.27.dev0}/opal_tools_sdk/ui.py +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.25.dev0 → optimizely_opal_opal_tools_sdk-0.1.27.dev0}/optimizely_opal.opal_tools_sdk.egg-info/SOURCES.txt +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.25.dev0 → optimizely_opal_opal_tools_sdk-0.1.27.dev0}/optimizely_opal.opal_tools_sdk.egg-info/dependency_links.txt +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.25.dev0 → optimizely_opal_opal_tools_sdk-0.1.27.dev0}/optimizely_opal.opal_tools_sdk.egg-info/requires.txt +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.25.dev0 → optimizely_opal_opal_tools_sdk-0.1.27.dev0}/optimizely_opal.opal_tools_sdk.egg-info/top_level.txt +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.25.dev0 → optimizely_opal_opal_tools_sdk-0.1.27.dev0}/setup.cfg +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.25.dev0 → optimizely_opal_opal_tools_sdk-0.1.27.dev0}/tests/test_nested_schema.py +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.25.dev0 → optimizely_opal_opal_tools_sdk-0.1.27.dev0}/tests/test_proteus.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: proteus-document-spec.json
|
|
3
|
-
# timestamp: 2026-04-
|
|
3
|
+
# timestamp: 2026-04-20T19:00:23+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
@@ -276,6 +276,10 @@ class ProteusDocument(BaseModel):
|
|
|
276
276
|
description='If true, hides chat prompt and forces user interaction with document. User can press ESC or close to abandon.',
|
|
277
277
|
)
|
|
278
278
|
body: ProteusNode | None = Field(..., description='The main content of the document.')
|
|
279
|
+
compact: bool | None = Field(
|
|
280
|
+
default=None,
|
|
281
|
+
description='If true, constrains the body to a max height and makes it scrollable when content overflows.',
|
|
282
|
+
)
|
|
279
283
|
subtitle: ProteusNode | None = Field(
|
|
280
284
|
default=None,
|
|
281
285
|
description="A brief description or tagline that provides additional context about the Proteus document's purpose.",
|
|
@@ -588,14 +592,29 @@ class ProteusBadge(BaseModel):
|
|
|
588
592
|
z: SprinklePropZ | None = None
|
|
589
593
|
|
|
590
594
|
|
|
591
|
-
class
|
|
595
|
+
class ProteusButton(BaseModel):
|
|
592
596
|
model_config = ConfigDict(
|
|
593
597
|
extra='forbid',
|
|
594
598
|
)
|
|
595
|
-
field_type: Literal['
|
|
599
|
+
field_type: Literal['Button'] = Field(default='Button', alias='$type')
|
|
596
600
|
alignItems: SprinklePropAlignItems | None = None
|
|
597
601
|
alignSelf: SprinklePropAlignSelf | None = None
|
|
598
602
|
animation: SprinklePropAnimation | None = None
|
|
603
|
+
appearance: (
|
|
604
|
+
Literal['default']
|
|
605
|
+
| Literal['danger']
|
|
606
|
+
| Literal['primary']
|
|
607
|
+
| Literal['subtle']
|
|
608
|
+
| Literal['danger-outline']
|
|
609
|
+
| Literal['default-opal']
|
|
610
|
+
| Literal['inverse']
|
|
611
|
+
| Literal['primary-opal']
|
|
612
|
+
| ProteusExpression
|
|
613
|
+
| None
|
|
614
|
+
) = Field(
|
|
615
|
+
default=None,
|
|
616
|
+
description='Control the appearance by selecting between the different button types.',
|
|
617
|
+
)
|
|
599
618
|
backgroundImage: SprinklePropBackgroundImage | None = None
|
|
600
619
|
bg: SprinklePropBg | None = None
|
|
601
620
|
border: SprinklePropBorder | None = None
|
|
@@ -648,11 +667,14 @@ class ProteusCancelAction(BaseModel):
|
|
|
648
667
|
textAlign: SprinklePropTextAlign | None = None
|
|
649
668
|
textTransform: SprinklePropTextTransform | None = None
|
|
650
669
|
transition: SprinklePropTransition | None = None
|
|
670
|
+
type: Literal['button'] | Literal['reset'] | Literal['submit'] | ProteusExpression | None = (
|
|
671
|
+
Field(default=None, description='The default behavior of the button.')
|
|
672
|
+
)
|
|
651
673
|
w: SprinklePropW | None = None
|
|
652
674
|
whiteSpace: SprinklePropWhiteSpace | None = None
|
|
653
675
|
z: SprinklePropZ | None = None
|
|
654
|
-
|
|
655
|
-
default=None, description='
|
|
676
|
+
onClick: ProteusEventHandler | None = Field(
|
|
677
|
+
default=None, description='Action triggered when button is clicked'
|
|
656
678
|
)
|
|
657
679
|
|
|
658
680
|
|
|
@@ -876,6 +898,9 @@ class ProteusChart(BaseModel):
|
|
|
876
898
|
default=None,
|
|
877
899
|
description='Chart data records, either inline, a ProteusExpression, or a ProteusZip transformation',
|
|
878
900
|
)
|
|
901
|
+
layout: Literal['horizontal', 'vertical'] | None = Field(
|
|
902
|
+
default=None, description='Chart layout direction'
|
|
903
|
+
)
|
|
879
904
|
series: list[Series] | None = Field(default=None, description='Data series configuration')
|
|
880
905
|
type: Literal['bar', 'line'] | None = Field(default=None, description='Chart type')
|
|
881
906
|
xAxisKey: str | None = Field(default=None, description='Key in data records for x-axis labels')
|
|
@@ -983,11 +1008,11 @@ class ProteusGroup(BaseModel):
|
|
|
983
1008
|
)
|
|
984
1009
|
field_type: Literal['Group'] = Field(default='Group', alias='$type')
|
|
985
1010
|
alignItems: (
|
|
986
|
-
Literal['
|
|
987
|
-
| Literal['stretch']
|
|
1011
|
+
Literal['stretch']
|
|
988
1012
|
| Literal['center']
|
|
989
1013
|
| Literal['end']
|
|
990
1014
|
| Literal['start']
|
|
1015
|
+
| Literal['normal']
|
|
991
1016
|
| ProteusExpression
|
|
992
1017
|
| None
|
|
993
1018
|
) = Field(
|
|
@@ -1275,10 +1300,6 @@ class ProteusImageCarousel(BaseModel):
|
|
|
1275
1300
|
extra='forbid',
|
|
1276
1301
|
)
|
|
1277
1302
|
field_type: Literal['ImageCarousel'] = Field(default='ImageCarousel', alias='$type')
|
|
1278
|
-
downloadAll: ProteusExpression | str | None = Field(
|
|
1279
|
-
default=None,
|
|
1280
|
-
description='URL to download all images (e.g. as a zip file). Falls back to downloading each image individually.',
|
|
1281
|
-
)
|
|
1282
1303
|
images: list[Image] | ProteusExpression = Field(
|
|
1283
1304
|
..., description='Array of image data to display in the carousel'
|
|
1284
1305
|
)
|
|
@@ -2149,7 +2170,7 @@ class ProteusElement(
|
|
|
2149
2170
|
ProteusAction
|
|
2150
2171
|
| ProteusAvatar
|
|
2151
2172
|
| ProteusBadge
|
|
2152
|
-
|
|
|
2173
|
+
| ProteusButton
|
|
2153
2174
|
| ProteusCard
|
|
2154
2175
|
| ProteusCardHeader
|
|
2155
2176
|
| ProteusCardLink
|
|
@@ -2184,7 +2205,7 @@ class ProteusElement(
|
|
|
2184
2205
|
ProteusAction
|
|
2185
2206
|
| ProteusAvatar
|
|
2186
2207
|
| ProteusBadge
|
|
2187
|
-
|
|
|
2208
|
+
| ProteusButton
|
|
2188
2209
|
| ProteusCard
|
|
2189
2210
|
| ProteusCardHeader
|
|
2190
2211
|
| ProteusCardLink
|
|
@@ -2221,40 +2242,40 @@ class ProteusElement(
|
|
|
2221
2242
|
|
|
2222
2243
|
class SprinklePropAlignItems(
|
|
2223
2244
|
RootModel[
|
|
2224
|
-
Literal['
|
|
2225
|
-
| Literal['stretch']
|
|
2245
|
+
Literal['stretch']
|
|
2226
2246
|
| Literal['center']
|
|
2227
2247
|
| Literal['end']
|
|
2228
2248
|
| Literal['start']
|
|
2249
|
+
| Literal['normal']
|
|
2229
2250
|
| ProteusExpression
|
|
2230
2251
|
]
|
|
2231
2252
|
):
|
|
2232
2253
|
root: (
|
|
2233
|
-
Literal['
|
|
2234
|
-
| Literal['stretch']
|
|
2254
|
+
Literal['stretch']
|
|
2235
2255
|
| Literal['center']
|
|
2236
2256
|
| Literal['end']
|
|
2237
2257
|
| Literal['start']
|
|
2258
|
+
| Literal['normal']
|
|
2238
2259
|
| ProteusExpression
|
|
2239
2260
|
) = Field(..., description="Set the element's `align-items` CSS property")
|
|
2240
2261
|
|
|
2241
2262
|
|
|
2242
2263
|
class SprinklePropAlignSelf(
|
|
2243
2264
|
RootModel[
|
|
2244
|
-
Literal['
|
|
2245
|
-
| Literal['stretch']
|
|
2265
|
+
Literal['stretch']
|
|
2246
2266
|
| Literal['center']
|
|
2247
2267
|
| Literal['end']
|
|
2248
2268
|
| Literal['start']
|
|
2269
|
+
| Literal['normal']
|
|
2249
2270
|
| ProteusExpression
|
|
2250
2271
|
]
|
|
2251
2272
|
):
|
|
2252
2273
|
root: (
|
|
2253
|
-
Literal['
|
|
2254
|
-
| Literal['stretch']
|
|
2274
|
+
Literal['stretch']
|
|
2255
2275
|
| Literal['center']
|
|
2256
2276
|
| Literal['end']
|
|
2257
2277
|
| Literal['start']
|
|
2278
|
+
| Literal['normal']
|
|
2258
2279
|
| ProteusExpression
|
|
2259
2280
|
) = Field(..., description="Set the element's `align-self` CSS property")
|
|
2260
2281
|
|
|
@@ -2531,9 +2552,9 @@ class SprinklePropColor(
|
|
|
2531
2552
|
|
|
2532
2553
|
|
|
2533
2554
|
class SprinklePropCursor(
|
|
2534
|
-
RootModel[Literal['
|
|
2555
|
+
RootModel[Literal['text'] | Literal['default'] | Literal['pointer'] | ProteusExpression]
|
|
2535
2556
|
):
|
|
2536
|
-
root: Literal['
|
|
2557
|
+
root: Literal['text'] | Literal['default'] | Literal['pointer'] | ProteusExpression = Field(
|
|
2537
2558
|
..., description="Set the element's `cursor` CSS property"
|
|
2538
2559
|
)
|
|
2539
2560
|
|
|
@@ -2795,8 +2816,7 @@ class SprinklePropH(
|
|
|
2795
2816
|
|
|
2796
2817
|
class SprinklePropJustifyContent(
|
|
2797
2818
|
RootModel[
|
|
2798
|
-
Literal['
|
|
2799
|
-
| Literal['space-around']
|
|
2819
|
+
Literal['space-around']
|
|
2800
2820
|
| Literal['space-between']
|
|
2801
2821
|
| Literal['space-evenly']
|
|
2802
2822
|
| Literal['stretch']
|
|
@@ -2805,12 +2825,12 @@ class SprinklePropJustifyContent(
|
|
|
2805
2825
|
| Literal['flex-end']
|
|
2806
2826
|
| Literal['flex-start']
|
|
2807
2827
|
| Literal['start']
|
|
2828
|
+
| Literal['normal']
|
|
2808
2829
|
| ProteusExpression
|
|
2809
2830
|
]
|
|
2810
2831
|
):
|
|
2811
2832
|
root: (
|
|
2812
|
-
Literal['
|
|
2813
|
-
| Literal['space-around']
|
|
2833
|
+
Literal['space-around']
|
|
2814
2834
|
| Literal['space-between']
|
|
2815
2835
|
| Literal['space-evenly']
|
|
2816
2836
|
| Literal['stretch']
|
|
@@ -2819,26 +2839,27 @@ class SprinklePropJustifyContent(
|
|
|
2819
2839
|
| Literal['flex-end']
|
|
2820
2840
|
| Literal['flex-start']
|
|
2821
2841
|
| Literal['start']
|
|
2842
|
+
| Literal['normal']
|
|
2822
2843
|
| ProteusExpression
|
|
2823
2844
|
) = Field(..., description="Set the element's `justify-content` CSS property")
|
|
2824
2845
|
|
|
2825
2846
|
|
|
2826
2847
|
class SprinklePropJustifyItems(
|
|
2827
2848
|
RootModel[
|
|
2828
|
-
Literal['
|
|
2829
|
-
| Literal['stretch']
|
|
2849
|
+
Literal['stretch']
|
|
2830
2850
|
| Literal['center']
|
|
2831
2851
|
| Literal['end']
|
|
2832
2852
|
| Literal['start']
|
|
2853
|
+
| Literal['normal']
|
|
2833
2854
|
| ProteusExpression
|
|
2834
2855
|
]
|
|
2835
2856
|
):
|
|
2836
2857
|
root: (
|
|
2837
|
-
Literal['
|
|
2838
|
-
| Literal['stretch']
|
|
2858
|
+
Literal['stretch']
|
|
2839
2859
|
| Literal['center']
|
|
2840
2860
|
| Literal['end']
|
|
2841
2861
|
| Literal['start']
|
|
2862
|
+
| Literal['normal']
|
|
2842
2863
|
| ProteusExpression
|
|
2843
2864
|
) = Field(..., description="Set the element's `justify-items` CSS property")
|
|
2844
2865
|
|
|
@@ -3860,7 +3881,7 @@ ProteusZip.model_rebuild()
|
|
|
3860
3881
|
ProteusAction.model_rebuild()
|
|
3861
3882
|
ProteusAvatar.model_rebuild()
|
|
3862
3883
|
ProteusBadge.model_rebuild()
|
|
3863
|
-
|
|
3884
|
+
ProteusButton.model_rebuild()
|
|
3864
3885
|
ProteusCard.model_rebuild()
|
|
3865
3886
|
ProteusCardHeader.model_rebuild()
|
|
3866
3887
|
ProteusCardLink.model_rebuild()
|
|
@@ -3904,7 +3925,7 @@ class UI:
|
|
|
3904
3925
|
Action = ProteusAction
|
|
3905
3926
|
Avatar = ProteusAvatar
|
|
3906
3927
|
Badge = ProteusBadge
|
|
3907
|
-
|
|
3928
|
+
Button = ProteusButton
|
|
3908
3929
|
Card = ProteusCard
|
|
3909
3930
|
CardHeader = ProteusCardHeader
|
|
3910
3931
|
CardLink = ProteusCardLink
|
|
@@ -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.
|
|
7
|
+
version = "0.1.27-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"
|
|
@@ -303,7 +303,6 @@ def test_resource_with_proteus_document_return():
|
|
|
303
303
|
],
|
|
304
304
|
actions=[
|
|
305
305
|
UI.Action(children="Save", appearance="primary"),
|
|
306
|
-
UI.CancelAction(children="Cancel"),
|
|
307
306
|
],
|
|
308
307
|
)
|
|
309
308
|
|
|
@@ -331,7 +330,6 @@ def test_resource_with_proteus_document_return():
|
|
|
331
330
|
assert parsed_doc["body"][1]["label"] == "Item Name"
|
|
332
331
|
assert len(parsed_doc["actions"]) == 2
|
|
333
332
|
assert parsed_doc["actions"][0]["$type"] == "Action"
|
|
334
|
-
assert parsed_doc["actions"][1]["$type"] == "CancelAction"
|
|
335
333
|
|
|
336
334
|
|
|
337
335
|
def test_resource_with_proteus_document_and_explicit_mime_type():
|
{optimizely_opal_opal_tools_sdk-0.1.25.dev0 → optimizely_opal_opal_tools_sdk-0.1.27.dev0}/README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{optimizely_opal_opal_tools_sdk-0.1.25.dev0 → optimizely_opal_opal_tools_sdk-0.1.27.dev0}/setup.cfg
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|