optimizely-opal.opal-tools-sdk 0.1.17.dev0__tar.gz → 0.1.19.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.17.dev0 → optimizely_opal_opal_tools_sdk-0.1.19.dev0}/PKG-INFO +1 -1
- {optimizely_opal_opal_tools_sdk-0.1.17.dev0 → optimizely_opal_opal_tools_sdk-0.1.19.dev0}/opal_tools_sdk/proteus.py +530 -84
- {optimizely_opal_opal_tools_sdk-0.1.17.dev0 → optimizely_opal_opal_tools_sdk-0.1.19.dev0}/opal_tools_sdk/service.py +2 -0
- {optimizely_opal_opal_tools_sdk-0.1.17.dev0 → optimizely_opal_opal_tools_sdk-0.1.19.dev0}/optimizely_opal.opal_tools_sdk.egg-info/PKG-INFO +1 -1
- {optimizely_opal_opal_tools_sdk-0.1.17.dev0 → optimizely_opal_opal_tools_sdk-0.1.19.dev0}/pyproject.toml +1 -1
- {optimizely_opal_opal_tools_sdk-0.1.17.dev0 → optimizely_opal_opal_tools_sdk-0.1.19.dev0}/setup.py +1 -1
- {optimizely_opal_opal_tools_sdk-0.1.17.dev0 → optimizely_opal_opal_tools_sdk-0.1.19.dev0}/README.md +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.17.dev0 → optimizely_opal_opal_tools_sdk-0.1.19.dev0}/opal_tools_sdk/__init__.py +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.17.dev0 → optimizely_opal_opal_tools_sdk-0.1.19.dev0}/opal_tools_sdk/_registry.py +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.17.dev0 → optimizely_opal_opal_tools_sdk-0.1.19.dev0}/opal_tools_sdk/auth.py +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.17.dev0 → optimizely_opal_opal_tools_sdk-0.1.19.dev0}/opal_tools_sdk/decorators.py +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.17.dev0 → optimizely_opal_opal_tools_sdk-0.1.19.dev0}/opal_tools_sdk/logging.py +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.17.dev0 → optimizely_opal_opal_tools_sdk-0.1.19.dev0}/opal_tools_sdk/models.py +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.17.dev0 → optimizely_opal_opal_tools_sdk-0.1.19.dev0}/opal_tools_sdk/ui.py +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.17.dev0 → optimizely_opal_opal_tools_sdk-0.1.19.dev0}/optimizely_opal.opal_tools_sdk.egg-info/SOURCES.txt +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.17.dev0 → optimizely_opal_opal_tools_sdk-0.1.19.dev0}/optimizely_opal.opal_tools_sdk.egg-info/dependency_links.txt +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.17.dev0 → optimizely_opal_opal_tools_sdk-0.1.19.dev0}/optimizely_opal.opal_tools_sdk.egg-info/requires.txt +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.17.dev0 → optimizely_opal_opal_tools_sdk-0.1.19.dev0}/optimizely_opal.opal_tools_sdk.egg-info/top_level.txt +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.17.dev0 → optimizely_opal_opal_tools_sdk-0.1.19.dev0}/setup.cfg +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.17.dev0 → optimizely_opal_opal_tools_sdk-0.1.19.dev0}/tests/test_integration.py +0 -0
- {optimizely_opal_opal_tools_sdk-0.1.17.dev0 → optimizely_opal_opal_tools_sdk-0.1.19.dev0}/tests/test_proteus.py +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: proteus-document-spec.json
|
|
3
|
-
# timestamp: 2026-03-
|
|
3
|
+
# timestamp: 2026-03-17T21:59:22+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
7
7
|
from typing import Any, Literal
|
|
8
8
|
|
|
9
|
-
from pydantic import BaseModel, ConfigDict, Field, RootModel
|
|
9
|
+
from pydantic import BaseModel, ConfigDict, Field, RootModel, constr
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
class OpalProteusDocumentSpecification(RootModel[Any]):
|
|
@@ -39,21 +39,29 @@ class Series(BaseModel):
|
|
|
39
39
|
model_config = ConfigDict(
|
|
40
40
|
extra='forbid',
|
|
41
41
|
)
|
|
42
|
-
color: str | None = Field(default=None, description='Series color')
|
|
43
42
|
dataKey: str = Field(..., description='Key in data records for this series')
|
|
44
|
-
labelKey: str | None = Field(
|
|
45
|
-
default=None,
|
|
46
|
-
description='Key in data records for pre-formatted labels displayed above bars',
|
|
47
|
-
)
|
|
48
43
|
name: str | None = Field(default=None, description='Display name for legend')
|
|
49
44
|
|
|
50
45
|
|
|
46
|
+
class Format(BaseModel):
|
|
47
|
+
"""
|
|
48
|
+
Formatter with options
|
|
49
|
+
"""
|
|
50
|
+
|
|
51
|
+
options: dict[str, Any] | None = None
|
|
52
|
+
type: str
|
|
53
|
+
|
|
54
|
+
|
|
51
55
|
class Column(BaseModel):
|
|
52
56
|
model_config = ConfigDict(
|
|
53
57
|
extra='forbid',
|
|
54
58
|
)
|
|
55
59
|
accessorKey: str = Field(..., description='Key in data objects')
|
|
60
|
+
format: str | Format | None = Field(
|
|
61
|
+
default=None, description="Format to apply to cell values (e.g. 'Number', 'DateTime')"
|
|
62
|
+
)
|
|
56
63
|
header: str = Field(..., description='Column header text')
|
|
64
|
+
size: float | None = Field(default=None, description='Column size')
|
|
57
65
|
|
|
58
66
|
|
|
59
67
|
class Marks(BaseModel):
|
|
@@ -72,11 +80,30 @@ class Option(BaseModel):
|
|
|
72
80
|
value: str = Field(..., description='Return a unique key for each item')
|
|
73
81
|
|
|
74
82
|
|
|
83
|
+
class Formatter(BaseModel):
|
|
84
|
+
"""
|
|
85
|
+
Formatter with custom Intl options. 'type' selects the formatter, 'options' are passed to the Intl constructor.
|
|
86
|
+
"""
|
|
87
|
+
|
|
88
|
+
model_config = ConfigDict(
|
|
89
|
+
extra='forbid',
|
|
90
|
+
)
|
|
91
|
+
options: dict[str, Any] | None = Field(
|
|
92
|
+
default=None,
|
|
93
|
+
description='Options passed to the Intl formatter constructor (e.g., Intl.DateTimeFormatOptions or Intl.NumberFormatOptions)',
|
|
94
|
+
)
|
|
95
|
+
type: Literal['DateTime', 'Number'] = Field(..., description='Formatter type')
|
|
96
|
+
|
|
97
|
+
|
|
75
98
|
class ProteusValue(BaseModel):
|
|
76
99
|
model_config = ConfigDict(
|
|
77
100
|
extra='forbid',
|
|
78
101
|
)
|
|
79
102
|
field_type: Literal['Value'] = Field(default='Value', alias='$type')
|
|
103
|
+
formatter: Literal['DateTime', 'Number'] | Formatter | None = Field(
|
|
104
|
+
default=None,
|
|
105
|
+
description='Optional formatter to apply to the resolved value. Can be a string shorthand or an object with type and options for Intl formatters.',
|
|
106
|
+
)
|
|
80
107
|
path: str = Field(
|
|
81
108
|
...,
|
|
82
109
|
description="Path to a value in the data. Absolute paths start with '/' and resolve from the root (e.g., '/title', '/options/0/label'). Inside a Map template, paths without a leading '/' are relative to the current item (e.g., 'title' resolves to each item's 'title' field).",
|
|
@@ -1660,9 +1687,9 @@ class SprinklePropZ(
|
|
|
1660
1687
|
)
|
|
1661
1688
|
|
|
1662
1689
|
|
|
1663
|
-
class
|
|
1690
|
+
class ProteusCondition1(BaseModel):
|
|
1664
1691
|
"""
|
|
1665
|
-
|
|
1692
|
+
Condition for Show component. Can be a comparison operator, logical AND, or logical OR. Supports nesting.
|
|
1666
1693
|
"""
|
|
1667
1694
|
|
|
1668
1695
|
model_config = ConfigDict(
|
|
@@ -1673,9 +1700,9 @@ class ProteusAtomicCondition1(BaseModel):
|
|
|
1673
1700
|
)
|
|
1674
1701
|
|
|
1675
1702
|
|
|
1676
|
-
class
|
|
1703
|
+
class ProteusCondition2(BaseModel):
|
|
1677
1704
|
"""
|
|
1678
|
-
|
|
1705
|
+
Condition for Show component. Can be a comparison operator, logical AND, or logical OR. Supports nesting.
|
|
1679
1706
|
"""
|
|
1680
1707
|
|
|
1681
1708
|
model_config = ConfigDict(
|
|
@@ -1686,9 +1713,9 @@ class ProteusAtomicCondition2(BaseModel):
|
|
|
1686
1713
|
)
|
|
1687
1714
|
|
|
1688
1715
|
|
|
1689
|
-
class
|
|
1716
|
+
class ProteusCondition3(BaseModel):
|
|
1690
1717
|
"""
|
|
1691
|
-
|
|
1718
|
+
Condition for Show component. Can be a comparison operator, logical AND, or logical OR. Supports nesting.
|
|
1692
1719
|
"""
|
|
1693
1720
|
|
|
1694
1721
|
model_config = ConfigDict(
|
|
@@ -1699,9 +1726,9 @@ class ProteusAtomicCondition3(BaseModel):
|
|
|
1699
1726
|
)
|
|
1700
1727
|
|
|
1701
1728
|
|
|
1702
|
-
class
|
|
1729
|
+
class ProteusCondition4(BaseModel):
|
|
1703
1730
|
"""
|
|
1704
|
-
|
|
1731
|
+
Condition for Show component. Can be a comparison operator, logical AND, or logical OR. Supports nesting.
|
|
1705
1732
|
"""
|
|
1706
1733
|
|
|
1707
1734
|
model_config = ConfigDict(
|
|
@@ -1712,9 +1739,9 @@ class ProteusAtomicCondition4(BaseModel):
|
|
|
1712
1739
|
)
|
|
1713
1740
|
|
|
1714
1741
|
|
|
1715
|
-
class
|
|
1742
|
+
class ProteusCondition5(BaseModel):
|
|
1716
1743
|
"""
|
|
1717
|
-
|
|
1744
|
+
Condition for Show component. Can be a comparison operator, logical AND, or logical OR. Supports nesting.
|
|
1718
1745
|
"""
|
|
1719
1746
|
|
|
1720
1747
|
model_config = ConfigDict(
|
|
@@ -1725,9 +1752,9 @@ class ProteusAtomicCondition5(BaseModel):
|
|
|
1725
1752
|
)
|
|
1726
1753
|
|
|
1727
1754
|
|
|
1728
|
-
class
|
|
1755
|
+
class ProteusCondition6(BaseModel):
|
|
1729
1756
|
"""
|
|
1730
|
-
|
|
1757
|
+
Condition for Show component. Can be a comparison operator, logical AND, or logical OR. Supports nesting.
|
|
1731
1758
|
"""
|
|
1732
1759
|
|
|
1733
1760
|
model_config = ConfigDict(
|
|
@@ -1738,9 +1765,9 @@ class ProteusAtomicCondition6(BaseModel):
|
|
|
1738
1765
|
)
|
|
1739
1766
|
|
|
1740
1767
|
|
|
1741
|
-
class
|
|
1768
|
+
class ProteusCondition7(BaseModel):
|
|
1742
1769
|
"""
|
|
1743
|
-
|
|
1770
|
+
Condition for Show component. Can be a comparison operator, logical AND, or logical OR. Supports nesting.
|
|
1744
1771
|
"""
|
|
1745
1772
|
|
|
1746
1773
|
model_config = ConfigDict(
|
|
@@ -1753,84 +1780,39 @@ class ProteusAtomicCondition7(BaseModel):
|
|
|
1753
1780
|
)
|
|
1754
1781
|
|
|
1755
1782
|
|
|
1756
|
-
class
|
|
1757
|
-
RootModel[
|
|
1758
|
-
ProteusAtomicCondition1
|
|
1759
|
-
| ProteusAtomicCondition2
|
|
1760
|
-
| ProteusAtomicCondition3
|
|
1761
|
-
| ProteusAtomicCondition4
|
|
1762
|
-
| ProteusAtomicCondition5
|
|
1763
|
-
| ProteusAtomicCondition6
|
|
1764
|
-
| ProteusAtomicCondition7
|
|
1765
|
-
]
|
|
1766
|
-
):
|
|
1767
|
-
root: (
|
|
1768
|
-
ProteusAtomicCondition1
|
|
1769
|
-
| ProteusAtomicCondition2
|
|
1770
|
-
| ProteusAtomicCondition3
|
|
1771
|
-
| ProteusAtomicCondition4
|
|
1772
|
-
| ProteusAtomicCondition5
|
|
1773
|
-
| ProteusAtomicCondition6
|
|
1774
|
-
| ProteusAtomicCondition7
|
|
1775
|
-
) = Field(
|
|
1776
|
-
...,
|
|
1777
|
-
description='Simple comparison condition - single operator only (used in OR arrays to avoid recursion)',
|
|
1778
|
-
)
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
class Or(BaseModel):
|
|
1782
|
-
model_config = ConfigDict(
|
|
1783
|
-
extra='forbid',
|
|
1784
|
-
)
|
|
1785
|
-
and_: list[ProteusAtomicCondition] = Field(
|
|
1786
|
-
...,
|
|
1787
|
-
alias='and',
|
|
1788
|
-
description='Logical AND - returns true if all conditions are true',
|
|
1789
|
-
min_length=1,
|
|
1790
|
-
)
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
class ProteusCondition1(BaseModel):
|
|
1783
|
+
class ProteusEventHandler3(BaseModel):
|
|
1794
1784
|
"""
|
|
1795
|
-
|
|
1785
|
+
Client-side component action - for downloading a URL
|
|
1796
1786
|
"""
|
|
1797
1787
|
|
|
1798
1788
|
model_config = ConfigDict(
|
|
1799
1789
|
extra='forbid',
|
|
1800
1790
|
)
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
alias='or',
|
|
1804
|
-
description='Logical OR - returns true if any condition is true',
|
|
1805
|
-
min_length=1,
|
|
1806
|
-
)
|
|
1791
|
+
action: Literal['download'] = Field(default='download', description='The action type')
|
|
1792
|
+
url: ProteusValue | str = Field(..., description='URL to download')
|
|
1807
1793
|
|
|
1808
1794
|
|
|
1809
|
-
class
|
|
1810
|
-
|
|
1795
|
+
class ProteusEventHandler(
|
|
1796
|
+
RootModel[ProteusEventHandler1 | ProteusEventHandler2 | ProteusEventHandler3]
|
|
1797
|
+
):
|
|
1798
|
+
root: ProteusEventHandler1 | ProteusEventHandler2 | ProteusEventHandler3 = Field(
|
|
1811
1799
|
...,
|
|
1812
|
-
description='
|
|
1800
|
+
description='Handler for user interactions - a server-side tool call, client-side message, or client-side component action',
|
|
1813
1801
|
)
|
|
1814
1802
|
|
|
1815
1803
|
|
|
1816
|
-
class
|
|
1804
|
+
class ProteusZip(BaseModel):
|
|
1817
1805
|
"""
|
|
1818
|
-
|
|
1806
|
+
Zips multiple parallel arrays into an array of objects. Each key in 'sources' becomes a property in the resulting row objects.
|
|
1819
1807
|
"""
|
|
1820
1808
|
|
|
1821
1809
|
model_config = ConfigDict(
|
|
1822
1810
|
extra='forbid',
|
|
1823
1811
|
)
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
class ProteusEventHandler(
|
|
1829
|
-
RootModel[ProteusEventHandler1 | ProteusEventHandler2 | ProteusEventHandler3]
|
|
1830
|
-
):
|
|
1831
|
-
root: ProteusEventHandler1 | ProteusEventHandler2 | ProteusEventHandler3 = Field(
|
|
1812
|
+
field_type: Literal['Zip'] = Field(default='Zip', alias='$type')
|
|
1813
|
+
sources: dict[constr(pattern=r'.*'), ProteusValue | list[Any]] = Field(
|
|
1832
1814
|
...,
|
|
1833
|
-
description='
|
|
1815
|
+
description='Map of output property names to array sources. Each source should resolve to an array of the same length.',
|
|
1834
1816
|
)
|
|
1835
1817
|
|
|
1836
1818
|
|
|
@@ -1839,11 +1821,12 @@ class ProteusChart(BaseModel):
|
|
|
1839
1821
|
extra='forbid',
|
|
1840
1822
|
)
|
|
1841
1823
|
field_type: Literal['Chart'] = Field(default='Chart', alias='$type')
|
|
1842
|
-
data: list[dict[str, Any]] | ProteusValue | None = Field(
|
|
1843
|
-
default=None,
|
|
1824
|
+
data: list[dict[str, Any]] | ProteusValue | ProteusZip | None = Field(
|
|
1825
|
+
default=None,
|
|
1826
|
+
description='Chart data records, either inline, a ProteusValue reference, or a ProteusZip transformation',
|
|
1844
1827
|
)
|
|
1845
1828
|
series: list[Series] | None = Field(default=None, description='Data series configuration')
|
|
1846
|
-
type: Literal['bar'] = Field(default=
|
|
1829
|
+
type: Literal['bar', 'line'] | None = Field(default=None, description='Chart type')
|
|
1847
1830
|
xAxisKey: str | None = Field(default=None, description='Key in data records for x-axis labels')
|
|
1848
1831
|
|
|
1849
1832
|
|
|
@@ -1853,7 +1836,71 @@ class ProteusDataTable(BaseModel):
|
|
|
1853
1836
|
)
|
|
1854
1837
|
field_type: Literal['DataTable'] = Field(default='DataTable', alias='$type')
|
|
1855
1838
|
columns: list[Column] | None = Field(default=None, description='Column definitions')
|
|
1856
|
-
data: list[dict[str, Any]] | ProteusValue | None = None
|
|
1839
|
+
data: list[dict[str, Any]] | ProteusValue | ProteusZip | None = None
|
|
1840
|
+
|
|
1841
|
+
|
|
1842
|
+
class ProteusIconCalendar(BaseModel):
|
|
1843
|
+
model_config = ConfigDict(
|
|
1844
|
+
extra='forbid',
|
|
1845
|
+
)
|
|
1846
|
+
field_type: Literal['IconCalendar'] = Field(default='IconCalendar', alias='$type')
|
|
1847
|
+
alignItems: SprinklePropAlignItems | None = None
|
|
1848
|
+
alignSelf: SprinklePropAlignSelf | None = None
|
|
1849
|
+
animation: SprinklePropAnimation | None = None
|
|
1850
|
+
backgroundImage: SprinklePropBackgroundImage | None = None
|
|
1851
|
+
bg: SprinklePropBg | None = None
|
|
1852
|
+
border: SprinklePropBorder | None = None
|
|
1853
|
+
borderB: SprinklePropBorderB | None = None
|
|
1854
|
+
borderColor: SprinklePropBorderColor | None = None
|
|
1855
|
+
borderL: SprinklePropBorderL | None = None
|
|
1856
|
+
borderR: SprinklePropBorderR | None = None
|
|
1857
|
+
borderT: SprinklePropBorderT | None = None
|
|
1858
|
+
color: SprinklePropColor | None = None
|
|
1859
|
+
cursor: SprinklePropCursor | None = None
|
|
1860
|
+
display: SprinklePropDisplay | None = None
|
|
1861
|
+
flex: SprinklePropFlex | None = None
|
|
1862
|
+
flexDirection: SprinklePropFlexDirection | None = None
|
|
1863
|
+
flexWrap: SprinklePropFlexWrap | None = None
|
|
1864
|
+
fontFamily: SprinklePropFontFamily | None = None
|
|
1865
|
+
fontSize: SprinklePropFontSize | None = None
|
|
1866
|
+
fontWeight: SprinklePropFontWeight | None = None
|
|
1867
|
+
gap: SprinklePropGap | None = None
|
|
1868
|
+
gridColumn: SprinklePropGridColumn | None = None
|
|
1869
|
+
gridTemplateColumns: SprinklePropGridTemplateColumns | None = None
|
|
1870
|
+
h: SprinklePropH | None = None
|
|
1871
|
+
justifyContent: SprinklePropJustifyContent | None = None
|
|
1872
|
+
justifyItems: SprinklePropJustifyItems | None = None
|
|
1873
|
+
m: SprinklePropM | None = None
|
|
1874
|
+
maxH: SprinklePropMaxH | None = None
|
|
1875
|
+
maxW: SprinklePropMaxW | None = None
|
|
1876
|
+
mb: SprinklePropMb | None = None
|
|
1877
|
+
ml: SprinklePropMl | None = None
|
|
1878
|
+
mr: SprinklePropMr | None = None
|
|
1879
|
+
mt: SprinklePropMt | None = None
|
|
1880
|
+
mx: SprinklePropMx | None = None
|
|
1881
|
+
my: SprinklePropMy | None = None
|
|
1882
|
+
objectFit: SprinklePropObjectFit | None = None
|
|
1883
|
+
overflow: SprinklePropOverflow | None = None
|
|
1884
|
+
overflowX: SprinklePropOverflowX | None = None
|
|
1885
|
+
overflowY: SprinklePropOverflowY | None = None
|
|
1886
|
+
p: SprinklePropP | None = None
|
|
1887
|
+
pb: SprinklePropPb | None = None
|
|
1888
|
+
pl: SprinklePropPl | None = None
|
|
1889
|
+
placeItems: SprinklePropPlaceItems | None = None
|
|
1890
|
+
pointerEvents: SprinklePropPointerEvents | None = None
|
|
1891
|
+
pr: SprinklePropPr | None = None
|
|
1892
|
+
pt: SprinklePropPt | None = None
|
|
1893
|
+
px: SprinklePropPx | None = None
|
|
1894
|
+
py: SprinklePropPy | None = None
|
|
1895
|
+
rounded: SprinklePropRounded | None = None
|
|
1896
|
+
shadow: SprinklePropShadow | None = None
|
|
1897
|
+
size: SprinklePropSize | None = None
|
|
1898
|
+
textAlign: SprinklePropTextAlign | None = None
|
|
1899
|
+
textTransform: SprinklePropTextTransform | None = None
|
|
1900
|
+
transition: SprinklePropTransition | None = None
|
|
1901
|
+
w: SprinklePropW | None = None
|
|
1902
|
+
whiteSpace: SprinklePropWhiteSpace | None = None
|
|
1903
|
+
z: SprinklePropZ | None = None
|
|
1857
1904
|
|
|
1858
1905
|
|
|
1859
1906
|
class ProteusImage(BaseModel):
|
|
@@ -1924,6 +1971,14 @@ class ProteusImage(BaseModel):
|
|
|
1924
1971
|
src: ProteusValue | str | None = Field(default=None, description='The image source URL')
|
|
1925
1972
|
|
|
1926
1973
|
|
|
1974
|
+
class ProteusQuestion(BaseModel):
|
|
1975
|
+
model_config = ConfigDict(
|
|
1976
|
+
extra='forbid',
|
|
1977
|
+
)
|
|
1978
|
+
field_type: Literal['Question'] = Field(default='Question', alias='$type')
|
|
1979
|
+
questions: ProteusValue = Field(..., description='Array of questions data')
|
|
1980
|
+
|
|
1981
|
+
|
|
1927
1982
|
class ProteusRange(BaseModel):
|
|
1928
1983
|
model_config = ConfigDict(
|
|
1929
1984
|
extra='forbid',
|
|
@@ -2190,6 +2245,9 @@ class ProteusTextarea(BaseModel):
|
|
|
2190
2245
|
pt: SprinklePropPt | None = None
|
|
2191
2246
|
px: SprinklePropPx | None = None
|
|
2192
2247
|
py: SprinklePropPy | None = None
|
|
2248
|
+
required: bool | ProteusValue | None = Field(
|
|
2249
|
+
default=None, description='Whether selecting this input is required.'
|
|
2250
|
+
)
|
|
2193
2251
|
resize: Literal['none'] | Literal['auto'] | Literal['vertical'] | ProteusValue | None = Field(
|
|
2194
2252
|
default=None, description='Control whether resizing mode is manual, automatic, or disabled.'
|
|
2195
2253
|
)
|
|
@@ -2279,6 +2337,38 @@ class ProteusTime(BaseModel):
|
|
|
2279
2337
|
z: SprinklePropZ | None = None
|
|
2280
2338
|
|
|
2281
2339
|
|
|
2340
|
+
class ProteusCondition8(BaseModel):
|
|
2341
|
+
"""
|
|
2342
|
+
Condition for Show component. Can be a comparison operator, logical AND, or logical OR. Supports nesting.
|
|
2343
|
+
"""
|
|
2344
|
+
|
|
2345
|
+
model_config = ConfigDict(
|
|
2346
|
+
extra='forbid',
|
|
2347
|
+
)
|
|
2348
|
+
and_: list[ProteusCondition] = Field(
|
|
2349
|
+
...,
|
|
2350
|
+
alias='and',
|
|
2351
|
+
description='Logical AND - returns true if all conditions are true',
|
|
2352
|
+
min_length=1,
|
|
2353
|
+
)
|
|
2354
|
+
|
|
2355
|
+
|
|
2356
|
+
class ProteusCondition9(BaseModel):
|
|
2357
|
+
"""
|
|
2358
|
+
Condition for Show component. Can be a comparison operator, logical AND, or logical OR. Supports nesting.
|
|
2359
|
+
"""
|
|
2360
|
+
|
|
2361
|
+
model_config = ConfigDict(
|
|
2362
|
+
extra='forbid',
|
|
2363
|
+
)
|
|
2364
|
+
or_: list[ProteusCondition] = Field(
|
|
2365
|
+
...,
|
|
2366
|
+
alias='or',
|
|
2367
|
+
description='Logical OR - returns true if any condition is true',
|
|
2368
|
+
min_length=1,
|
|
2369
|
+
)
|
|
2370
|
+
|
|
2371
|
+
|
|
2282
2372
|
class ProteusDocument(BaseModel):
|
|
2283
2373
|
model_config = ConfigDict(
|
|
2284
2374
|
extra='forbid',
|
|
@@ -2389,6 +2479,93 @@ class ProteusAction(BaseModel):
|
|
|
2389
2479
|
)
|
|
2390
2480
|
|
|
2391
2481
|
|
|
2482
|
+
class ProteusAvatar(BaseModel):
|
|
2483
|
+
model_config = ConfigDict(
|
|
2484
|
+
extra='forbid',
|
|
2485
|
+
)
|
|
2486
|
+
field_type: Literal['Avatar'] = Field(default='Avatar', alias='$type')
|
|
2487
|
+
alignItems: SprinklePropAlignItems | None = None
|
|
2488
|
+
alignSelf: SprinklePropAlignSelf | None = None
|
|
2489
|
+
animation: SprinklePropAnimation | None = None
|
|
2490
|
+
backgroundImage: SprinklePropBackgroundImage | None = None
|
|
2491
|
+
bg: SprinklePropBg | None = None
|
|
2492
|
+
border: SprinklePropBorder | None = None
|
|
2493
|
+
borderB: SprinklePropBorderB | None = None
|
|
2494
|
+
borderColor: SprinklePropBorderColor | None = None
|
|
2495
|
+
borderL: SprinklePropBorderL | None = None
|
|
2496
|
+
borderR: SprinklePropBorderR | None = None
|
|
2497
|
+
borderT: SprinklePropBorderT | None = None
|
|
2498
|
+
children: ProteusNode | None = None
|
|
2499
|
+
color: SprinklePropColor | None = None
|
|
2500
|
+
colorScheme: Literal['purple'] | Literal['neutral'] | ProteusValue | None = Field(
|
|
2501
|
+
default=None, description='Control the avatar fallback background and text colors.'
|
|
2502
|
+
)
|
|
2503
|
+
cursor: SprinklePropCursor | None = None
|
|
2504
|
+
display: SprinklePropDisplay | None = None
|
|
2505
|
+
fallback: Literal['opal'] | Literal['team'] | Literal['user'] | ProteusValue | None = Field(
|
|
2506
|
+
default=None, description='The fallback icon to display when no name or image is given.'
|
|
2507
|
+
)
|
|
2508
|
+
flex: SprinklePropFlex | None = None
|
|
2509
|
+
flexDirection: SprinklePropFlexDirection | None = None
|
|
2510
|
+
flexWrap: SprinklePropFlexWrap | None = None
|
|
2511
|
+
fontFamily: SprinklePropFontFamily | None = None
|
|
2512
|
+
fontSize: SprinklePropFontSize | None = None
|
|
2513
|
+
fontWeight: SprinklePropFontWeight | None = None
|
|
2514
|
+
gap: SprinklePropGap | None = None
|
|
2515
|
+
gridColumn: SprinklePropGridColumn | None = None
|
|
2516
|
+
gridTemplateColumns: SprinklePropGridTemplateColumns | None = None
|
|
2517
|
+
h: SprinklePropH | None = None
|
|
2518
|
+
justifyContent: SprinklePropJustifyContent | None = None
|
|
2519
|
+
justifyItems: SprinklePropJustifyItems | None = None
|
|
2520
|
+
m: SprinklePropM | None = None
|
|
2521
|
+
maxH: SprinklePropMaxH | None = None
|
|
2522
|
+
maxW: SprinklePropMaxW | None = None
|
|
2523
|
+
mb: SprinklePropMb | None = None
|
|
2524
|
+
ml: SprinklePropMl | None = None
|
|
2525
|
+
mr: SprinklePropMr | None = None
|
|
2526
|
+
mt: SprinklePropMt | None = None
|
|
2527
|
+
mx: SprinklePropMx | None = None
|
|
2528
|
+
my: SprinklePropMy | None = None
|
|
2529
|
+
name: str | ProteusValue | None = Field(
|
|
2530
|
+
default=None, description='Use name to generate initials to show inside the avatar.'
|
|
2531
|
+
)
|
|
2532
|
+
objectFit: SprinklePropObjectFit | None = None
|
|
2533
|
+
overflow: SprinklePropOverflow | None = None
|
|
2534
|
+
overflowX: SprinklePropOverflowX | None = None
|
|
2535
|
+
overflowY: SprinklePropOverflowY | None = None
|
|
2536
|
+
p: SprinklePropP | None = None
|
|
2537
|
+
pb: SprinklePropPb | None = None
|
|
2538
|
+
pl: SprinklePropPl | None = None
|
|
2539
|
+
placeItems: SprinklePropPlaceItems | None = None
|
|
2540
|
+
pointerEvents: SprinklePropPointerEvents | None = None
|
|
2541
|
+
pr: SprinklePropPr | None = None
|
|
2542
|
+
pt: SprinklePropPt | None = None
|
|
2543
|
+
px: SprinklePropPx | None = None
|
|
2544
|
+
py: SprinklePropPy | None = None
|
|
2545
|
+
rounded: SprinklePropRounded | None = None
|
|
2546
|
+
shadow: SprinklePropShadow | None = None
|
|
2547
|
+
size: (
|
|
2548
|
+
Literal['xs']
|
|
2549
|
+
| Literal['sm']
|
|
2550
|
+
| Literal['md']
|
|
2551
|
+
| Literal['lg']
|
|
2552
|
+
| Literal['xl']
|
|
2553
|
+
| Literal['3xl']
|
|
2554
|
+
| Literal['2xs']
|
|
2555
|
+
| ProteusValue
|
|
2556
|
+
| None
|
|
2557
|
+
) = Field(default=None, description='Control the size of the avatar.')
|
|
2558
|
+
src: str | ProteusValue | None = Field(
|
|
2559
|
+
default=None, description='Render the image inside the avatar.'
|
|
2560
|
+
)
|
|
2561
|
+
textAlign: SprinklePropTextAlign | None = None
|
|
2562
|
+
textTransform: SprinklePropTextTransform | None = None
|
|
2563
|
+
transition: SprinklePropTransition | None = None
|
|
2564
|
+
w: SprinklePropW | None = None
|
|
2565
|
+
whiteSpace: SprinklePropWhiteSpace | None = None
|
|
2566
|
+
z: SprinklePropZ | None = None
|
|
2567
|
+
|
|
2568
|
+
|
|
2392
2569
|
class ProteusBadge(BaseModel):
|
|
2393
2570
|
model_config = ConfigDict(
|
|
2394
2571
|
extra='forbid',
|
|
@@ -2534,6 +2711,211 @@ class ProteusCancelAction(BaseModel):
|
|
|
2534
2711
|
)
|
|
2535
2712
|
|
|
2536
2713
|
|
|
2714
|
+
class ProteusCard(BaseModel):
|
|
2715
|
+
model_config = ConfigDict(
|
|
2716
|
+
extra='forbid',
|
|
2717
|
+
)
|
|
2718
|
+
field_type: Literal['Card'] = Field(default='Card', alias='$type')
|
|
2719
|
+
alignItems: SprinklePropAlignItems | None = None
|
|
2720
|
+
alignSelf: SprinklePropAlignSelf | None = None
|
|
2721
|
+
animation: SprinklePropAnimation | None = None
|
|
2722
|
+
backgroundImage: SprinklePropBackgroundImage | None = None
|
|
2723
|
+
bg: SprinklePropBg | None = None
|
|
2724
|
+
border: SprinklePropBorder | None = None
|
|
2725
|
+
borderB: SprinklePropBorderB | None = None
|
|
2726
|
+
borderColor: SprinklePropBorderColor | None = None
|
|
2727
|
+
borderL: SprinklePropBorderL | None = None
|
|
2728
|
+
borderR: SprinklePropBorderR | None = None
|
|
2729
|
+
borderT: SprinklePropBorderT | None = None
|
|
2730
|
+
children: ProteusNode | None = None
|
|
2731
|
+
color: SprinklePropColor | None = None
|
|
2732
|
+
cursor: SprinklePropCursor | None = None
|
|
2733
|
+
display: SprinklePropDisplay | None = None
|
|
2734
|
+
flex: SprinklePropFlex | None = None
|
|
2735
|
+
flexDirection: SprinklePropFlexDirection | None = None
|
|
2736
|
+
flexWrap: SprinklePropFlexWrap | None = None
|
|
2737
|
+
fontFamily: SprinklePropFontFamily | None = None
|
|
2738
|
+
fontSize: SprinklePropFontSize | None = None
|
|
2739
|
+
fontWeight: SprinklePropFontWeight | None = None
|
|
2740
|
+
gap: SprinklePropGap | None = None
|
|
2741
|
+
gridColumn: SprinklePropGridColumn | None = None
|
|
2742
|
+
gridTemplateColumns: SprinklePropGridTemplateColumns | None = None
|
|
2743
|
+
h: SprinklePropH | None = None
|
|
2744
|
+
justifyContent: SprinklePropJustifyContent | None = None
|
|
2745
|
+
justifyItems: SprinklePropJustifyItems | None = None
|
|
2746
|
+
m: SprinklePropM | None = None
|
|
2747
|
+
maxH: SprinklePropMaxH | None = None
|
|
2748
|
+
maxW: SprinklePropMaxW | None = None
|
|
2749
|
+
mb: SprinklePropMb | None = None
|
|
2750
|
+
ml: SprinklePropMl | None = None
|
|
2751
|
+
mr: SprinklePropMr | None = None
|
|
2752
|
+
mt: SprinklePropMt | None = None
|
|
2753
|
+
mx: SprinklePropMx | None = None
|
|
2754
|
+
my: SprinklePropMy | None = None
|
|
2755
|
+
objectFit: SprinklePropObjectFit | None = None
|
|
2756
|
+
overflow: SprinklePropOverflow | None = None
|
|
2757
|
+
overflowX: SprinklePropOverflowX | None = None
|
|
2758
|
+
overflowY: SprinklePropOverflowY | None = None
|
|
2759
|
+
p: SprinklePropP | None = None
|
|
2760
|
+
pb: SprinklePropPb | None = None
|
|
2761
|
+
pl: SprinklePropPl | None = None
|
|
2762
|
+
placeItems: SprinklePropPlaceItems | None = None
|
|
2763
|
+
pointerEvents: SprinklePropPointerEvents | None = None
|
|
2764
|
+
pr: SprinklePropPr | None = None
|
|
2765
|
+
pt: SprinklePropPt | None = None
|
|
2766
|
+
px: SprinklePropPx | None = None
|
|
2767
|
+
py: SprinklePropPy | None = None
|
|
2768
|
+
rounded: SprinklePropRounded | None = None
|
|
2769
|
+
shadow: SprinklePropShadow | None = None
|
|
2770
|
+
size: SprinklePropSize | None = None
|
|
2771
|
+
textAlign: SprinklePropTextAlign | None = None
|
|
2772
|
+
textTransform: SprinklePropTextTransform | None = None
|
|
2773
|
+
transition: SprinklePropTransition | None = None
|
|
2774
|
+
w: SprinklePropW | None = None
|
|
2775
|
+
whiteSpace: SprinklePropWhiteSpace | None = None
|
|
2776
|
+
z: SprinklePropZ | None = None
|
|
2777
|
+
|
|
2778
|
+
|
|
2779
|
+
class ProteusCardHeader(BaseModel):
|
|
2780
|
+
model_config = ConfigDict(
|
|
2781
|
+
extra='forbid',
|
|
2782
|
+
)
|
|
2783
|
+
field_type: Literal['CardHeader'] = Field(default='CardHeader', alias='$type')
|
|
2784
|
+
addonAfter: ProteusNode | None = Field(
|
|
2785
|
+
default=None, description='Display content inside the header after `children`.'
|
|
2786
|
+
)
|
|
2787
|
+
addonBefore: ProteusNode | None = Field(
|
|
2788
|
+
default=None, description='Display content inside the header before `children`.'
|
|
2789
|
+
)
|
|
2790
|
+
alignItems: SprinklePropAlignItems | None = None
|
|
2791
|
+
alignSelf: SprinklePropAlignSelf | None = None
|
|
2792
|
+
animation: SprinklePropAnimation | None = None
|
|
2793
|
+
backgroundImage: SprinklePropBackgroundImage | None = None
|
|
2794
|
+
bg: SprinklePropBg | None = None
|
|
2795
|
+
border: SprinklePropBorder | None = None
|
|
2796
|
+
borderB: SprinklePropBorderB | None = None
|
|
2797
|
+
borderColor: SprinklePropBorderColor | None = None
|
|
2798
|
+
borderL: SprinklePropBorderL | None = None
|
|
2799
|
+
borderR: SprinklePropBorderR | None = None
|
|
2800
|
+
borderT: SprinklePropBorderT | None = None
|
|
2801
|
+
children: ProteusNode | None = None
|
|
2802
|
+
color: SprinklePropColor | None = None
|
|
2803
|
+
cursor: SprinklePropCursor | None = None
|
|
2804
|
+
description: ProteusNode | None = Field(
|
|
2805
|
+
default=None, description='Add secondary text after the primary title.'
|
|
2806
|
+
)
|
|
2807
|
+
display: SprinklePropDisplay | None = None
|
|
2808
|
+
flex: SprinklePropFlex | None = None
|
|
2809
|
+
flexDirection: SprinklePropFlexDirection | None = None
|
|
2810
|
+
flexWrap: SprinklePropFlexWrap | None = None
|
|
2811
|
+
fontFamily: SprinklePropFontFamily | None = None
|
|
2812
|
+
fontSize: SprinklePropFontSize | None = None
|
|
2813
|
+
fontWeight: SprinklePropFontWeight | None = None
|
|
2814
|
+
gap: SprinklePropGap | None = None
|
|
2815
|
+
gridColumn: SprinklePropGridColumn | None = None
|
|
2816
|
+
gridTemplateColumns: SprinklePropGridTemplateColumns | None = None
|
|
2817
|
+
h: SprinklePropH | None = None
|
|
2818
|
+
justifyContent: SprinklePropJustifyContent | None = None
|
|
2819
|
+
justifyItems: SprinklePropJustifyItems | None = None
|
|
2820
|
+
m: SprinklePropM | None = None
|
|
2821
|
+
maxH: SprinklePropMaxH | None = None
|
|
2822
|
+
maxW: SprinklePropMaxW | None = None
|
|
2823
|
+
mb: SprinklePropMb | None = None
|
|
2824
|
+
ml: SprinklePropMl | None = None
|
|
2825
|
+
mr: SprinklePropMr | None = None
|
|
2826
|
+
mt: SprinklePropMt | None = None
|
|
2827
|
+
mx: SprinklePropMx | None = None
|
|
2828
|
+
my: SprinklePropMy | None = None
|
|
2829
|
+
objectFit: SprinklePropObjectFit | None = None
|
|
2830
|
+
overflow: SprinklePropOverflow | None = None
|
|
2831
|
+
overflowX: SprinklePropOverflowX | None = None
|
|
2832
|
+
overflowY: SprinklePropOverflowY | None = None
|
|
2833
|
+
p: SprinklePropP | None = None
|
|
2834
|
+
pb: SprinklePropPb | None = None
|
|
2835
|
+
pl: SprinklePropPl | None = None
|
|
2836
|
+
placeItems: SprinklePropPlaceItems | None = None
|
|
2837
|
+
pointerEvents: SprinklePropPointerEvents | None = None
|
|
2838
|
+
pr: SprinklePropPr | None = None
|
|
2839
|
+
pt: SprinklePropPt | None = None
|
|
2840
|
+
px: SprinklePropPx | None = None
|
|
2841
|
+
py: SprinklePropPy | None = None
|
|
2842
|
+
rounded: SprinklePropRounded | None = None
|
|
2843
|
+
shadow: SprinklePropShadow | None = None
|
|
2844
|
+
size: SprinklePropSize | None = None
|
|
2845
|
+
textAlign: SprinklePropTextAlign | None = None
|
|
2846
|
+
textTransform: SprinklePropTextTransform | None = None
|
|
2847
|
+
transition: SprinklePropTransition | None = None
|
|
2848
|
+
w: SprinklePropW | None = None
|
|
2849
|
+
whiteSpace: SprinklePropWhiteSpace | None = None
|
|
2850
|
+
z: SprinklePropZ | None = None
|
|
2851
|
+
|
|
2852
|
+
|
|
2853
|
+
class ProteusCardLink(BaseModel):
|
|
2854
|
+
model_config = ConfigDict(
|
|
2855
|
+
extra='forbid',
|
|
2856
|
+
)
|
|
2857
|
+
field_type: Literal['CardLink'] = Field(default='CardLink', alias='$type')
|
|
2858
|
+
alignItems: SprinklePropAlignItems | None = None
|
|
2859
|
+
alignSelf: SprinklePropAlignSelf | None = None
|
|
2860
|
+
animation: SprinklePropAnimation | None = None
|
|
2861
|
+
backgroundImage: SprinklePropBackgroundImage | None = None
|
|
2862
|
+
bg: SprinklePropBg | None = None
|
|
2863
|
+
border: SprinklePropBorder | None = None
|
|
2864
|
+
borderB: SprinklePropBorderB | None = None
|
|
2865
|
+
borderColor: SprinklePropBorderColor | None = None
|
|
2866
|
+
borderL: SprinklePropBorderL | None = None
|
|
2867
|
+
borderR: SprinklePropBorderR | None = None
|
|
2868
|
+
borderT: SprinklePropBorderT | None = None
|
|
2869
|
+
children: ProteusNode | None = None
|
|
2870
|
+
color: SprinklePropColor | None = None
|
|
2871
|
+
cursor: SprinklePropCursor | None = None
|
|
2872
|
+
display: SprinklePropDisplay | None = None
|
|
2873
|
+
flex: SprinklePropFlex | None = None
|
|
2874
|
+
flexDirection: SprinklePropFlexDirection | None = None
|
|
2875
|
+
flexWrap: SprinklePropFlexWrap | None = None
|
|
2876
|
+
fontFamily: SprinklePropFontFamily | None = None
|
|
2877
|
+
fontSize: SprinklePropFontSize | None = None
|
|
2878
|
+
fontWeight: SprinklePropFontWeight | None = None
|
|
2879
|
+
gap: SprinklePropGap | None = None
|
|
2880
|
+
gridColumn: SprinklePropGridColumn | None = None
|
|
2881
|
+
gridTemplateColumns: SprinklePropGridTemplateColumns | None = None
|
|
2882
|
+
h: SprinklePropH | None = None
|
|
2883
|
+
href: str | ProteusValue | None = Field(default=None, description='The link href.')
|
|
2884
|
+
justifyContent: SprinklePropJustifyContent | None = None
|
|
2885
|
+
justifyItems: SprinklePropJustifyItems | None = None
|
|
2886
|
+
m: SprinklePropM | None = None
|
|
2887
|
+
maxH: SprinklePropMaxH | None = None
|
|
2888
|
+
maxW: SprinklePropMaxW | None = None
|
|
2889
|
+
mb: SprinklePropMb | None = None
|
|
2890
|
+
ml: SprinklePropMl | None = None
|
|
2891
|
+
mr: SprinklePropMr | None = None
|
|
2892
|
+
mt: SprinklePropMt | None = None
|
|
2893
|
+
mx: SprinklePropMx | None = None
|
|
2894
|
+
my: SprinklePropMy | None = None
|
|
2895
|
+
objectFit: SprinklePropObjectFit | None = None
|
|
2896
|
+
overflow: SprinklePropOverflow | None = None
|
|
2897
|
+
overflowX: SprinklePropOverflowX | None = None
|
|
2898
|
+
overflowY: SprinklePropOverflowY | None = None
|
|
2899
|
+
p: SprinklePropP | None = None
|
|
2900
|
+
pb: SprinklePropPb | None = None
|
|
2901
|
+
pl: SprinklePropPl | None = None
|
|
2902
|
+
placeItems: SprinklePropPlaceItems | None = None
|
|
2903
|
+
pointerEvents: SprinklePropPointerEvents | None = None
|
|
2904
|
+
pr: SprinklePropPr | None = None
|
|
2905
|
+
pt: SprinklePropPt | None = None
|
|
2906
|
+
px: SprinklePropPx | None = None
|
|
2907
|
+
py: SprinklePropPy | None = None
|
|
2908
|
+
rounded: SprinklePropRounded | None = None
|
|
2909
|
+
shadow: SprinklePropShadow | None = None
|
|
2910
|
+
size: SprinklePropSize | None = None
|
|
2911
|
+
textAlign: SprinklePropTextAlign | None = None
|
|
2912
|
+
textTransform: SprinklePropTextTransform | None = None
|
|
2913
|
+
transition: SprinklePropTransition | None = None
|
|
2914
|
+
w: SprinklePropW | None = None
|
|
2915
|
+
whiteSpace: SprinklePropWhiteSpace | None = None
|
|
2916
|
+
z: SprinklePropZ | None = None
|
|
2917
|
+
|
|
2918
|
+
|
|
2537
2919
|
class ProteusField(BaseModel):
|
|
2538
2920
|
model_config = ConfigDict(
|
|
2539
2921
|
extra='forbid',
|
|
@@ -2832,6 +3214,9 @@ class ProteusInput(BaseModel):
|
|
|
2832
3214
|
pt: SprinklePropPt | None = None
|
|
2833
3215
|
px: SprinklePropPx | None = None
|
|
2834
3216
|
py: SprinklePropPy | None = None
|
|
3217
|
+
required: bool | ProteusValue | None = Field(
|
|
3218
|
+
default=None, description='Whether selecting this input is required.'
|
|
3219
|
+
)
|
|
2835
3220
|
rounded: SprinklePropRounded | None = None
|
|
2836
3221
|
shadow: SprinklePropShadow | None = None
|
|
2837
3222
|
textAlign: SprinklePropTextAlign | None = None
|
|
@@ -2947,6 +3332,10 @@ class ProteusMap(BaseModel):
|
|
|
2947
3332
|
path: str = Field(
|
|
2948
3333
|
..., description="JSON pointer path to the source array in the data (e.g., '/results')"
|
|
2949
3334
|
)
|
|
3335
|
+
separator: ProteusNode | None = Field(
|
|
3336
|
+
default=None,
|
|
3337
|
+
description='Optional separator to render between items. Can be a string or a ProteusNode for more complex separators.',
|
|
3338
|
+
)
|
|
2950
3339
|
|
|
2951
3340
|
|
|
2952
3341
|
class ProteusSelect(BaseModel):
|
|
@@ -2959,6 +3348,9 @@ class ProteusSelect(BaseModel):
|
|
|
2959
3348
|
default=None, description='The name of the inner select element.'
|
|
2960
3349
|
)
|
|
2961
3350
|
options: list[Option] = Field(..., description='The select items/options we want to render.')
|
|
3351
|
+
required: bool | ProteusValue | None = Field(
|
|
3352
|
+
default=None, description='Whether the select value is required.'
|
|
3353
|
+
)
|
|
2962
3354
|
|
|
2963
3355
|
|
|
2964
3356
|
class ProteusSelectTrigger(BaseModel):
|
|
@@ -3110,20 +3502,55 @@ class ProteusText(BaseModel):
|
|
|
3110
3502
|
z: SprinklePropZ | None = None
|
|
3111
3503
|
|
|
3112
3504
|
|
|
3505
|
+
class ProteusCondition(
|
|
3506
|
+
RootModel[
|
|
3507
|
+
ProteusCondition1
|
|
3508
|
+
| ProteusCondition2
|
|
3509
|
+
| ProteusCondition3
|
|
3510
|
+
| ProteusCondition4
|
|
3511
|
+
| ProteusCondition5
|
|
3512
|
+
| ProteusCondition6
|
|
3513
|
+
| ProteusCondition7
|
|
3514
|
+
| ProteusCondition8
|
|
3515
|
+
| ProteusCondition9
|
|
3516
|
+
]
|
|
3517
|
+
):
|
|
3518
|
+
root: (
|
|
3519
|
+
ProteusCondition1
|
|
3520
|
+
| ProteusCondition2
|
|
3521
|
+
| ProteusCondition3
|
|
3522
|
+
| ProteusCondition4
|
|
3523
|
+
| ProteusCondition5
|
|
3524
|
+
| ProteusCondition6
|
|
3525
|
+
| ProteusCondition7
|
|
3526
|
+
| ProteusCondition8
|
|
3527
|
+
| ProteusCondition9
|
|
3528
|
+
) = Field(
|
|
3529
|
+
...,
|
|
3530
|
+
description='Condition for Show component. Can be a comparison operator, logical AND, or logical OR. Supports nesting.',
|
|
3531
|
+
)
|
|
3532
|
+
|
|
3533
|
+
|
|
3113
3534
|
class ProteusElement(
|
|
3114
3535
|
RootModel[
|
|
3115
3536
|
ProteusAction
|
|
3537
|
+
| ProteusAvatar
|
|
3116
3538
|
| ProteusBadge
|
|
3117
3539
|
| ProteusCancelAction
|
|
3540
|
+
| ProteusCard
|
|
3541
|
+
| ProteusCardHeader
|
|
3542
|
+
| ProteusCardLink
|
|
3118
3543
|
| ProteusChart
|
|
3119
3544
|
| ProteusDataTable
|
|
3120
3545
|
| ProteusField
|
|
3121
3546
|
| ProteusGroup
|
|
3122
3547
|
| ProteusHeading
|
|
3548
|
+
| ProteusIconCalendar
|
|
3123
3549
|
| ProteusImage
|
|
3124
3550
|
| ProteusInput
|
|
3125
3551
|
| ProteusLink
|
|
3126
3552
|
| ProteusMap
|
|
3553
|
+
| ProteusQuestion
|
|
3127
3554
|
| ProteusRange
|
|
3128
3555
|
| ProteusSelect
|
|
3129
3556
|
| ProteusSelectContent
|
|
@@ -3138,17 +3565,23 @@ class ProteusElement(
|
|
|
3138
3565
|
):
|
|
3139
3566
|
root: (
|
|
3140
3567
|
ProteusAction
|
|
3568
|
+
| ProteusAvatar
|
|
3141
3569
|
| ProteusBadge
|
|
3142
3570
|
| ProteusCancelAction
|
|
3571
|
+
| ProteusCard
|
|
3572
|
+
| ProteusCardHeader
|
|
3573
|
+
| ProteusCardLink
|
|
3143
3574
|
| ProteusChart
|
|
3144
3575
|
| ProteusDataTable
|
|
3145
3576
|
| ProteusField
|
|
3146
3577
|
| ProteusGroup
|
|
3147
3578
|
| ProteusHeading
|
|
3579
|
+
| ProteusIconCalendar
|
|
3148
3580
|
| ProteusImage
|
|
3149
3581
|
| ProteusInput
|
|
3150
3582
|
| ProteusLink
|
|
3151
3583
|
| ProteusMap
|
|
3584
|
+
| ProteusQuestion
|
|
3152
3585
|
| ProteusRange
|
|
3153
3586
|
| ProteusSelect
|
|
3154
3587
|
| ProteusSelectContent
|
|
@@ -3188,10 +3621,16 @@ class ProteusNode(
|
|
|
3188
3621
|
)
|
|
3189
3622
|
|
|
3190
3623
|
|
|
3624
|
+
ProteusCondition8.model_rebuild()
|
|
3625
|
+
ProteusCondition9.model_rebuild()
|
|
3191
3626
|
ProteusDocument.model_rebuild()
|
|
3192
3627
|
ProteusAction.model_rebuild()
|
|
3628
|
+
ProteusAvatar.model_rebuild()
|
|
3193
3629
|
ProteusBadge.model_rebuild()
|
|
3194
3630
|
ProteusCancelAction.model_rebuild()
|
|
3631
|
+
ProteusCard.model_rebuild()
|
|
3632
|
+
ProteusCardHeader.model_rebuild()
|
|
3633
|
+
ProteusCardLink.model_rebuild()
|
|
3195
3634
|
ProteusField.model_rebuild()
|
|
3196
3635
|
ProteusGroup.model_rebuild()
|
|
3197
3636
|
ProteusHeading.model_rebuild()
|
|
@@ -3217,18 +3656,24 @@ class UI:
|
|
|
3217
3656
|
MIME_TYPE = "application/vnd.opal.proteus+json"
|
|
3218
3657
|
|
|
3219
3658
|
Action = ProteusAction
|
|
3659
|
+
Avatar = ProteusAvatar
|
|
3220
3660
|
Badge = ProteusBadge
|
|
3221
3661
|
CancelAction = ProteusCancelAction
|
|
3662
|
+
Card = ProteusCard
|
|
3663
|
+
CardHeader = ProteusCardHeader
|
|
3664
|
+
CardLink = ProteusCardLink
|
|
3222
3665
|
Chart = ProteusChart
|
|
3223
3666
|
DataTable = ProteusDataTable
|
|
3224
3667
|
Document = ProteusDocument
|
|
3225
3668
|
Field = ProteusField
|
|
3226
3669
|
Group = ProteusGroup
|
|
3227
3670
|
Heading = ProteusHeading
|
|
3671
|
+
IconCalendar = ProteusIconCalendar
|
|
3228
3672
|
Image = ProteusImage
|
|
3229
3673
|
Input = ProteusInput
|
|
3230
3674
|
Link = ProteusLink
|
|
3231
3675
|
Map = ProteusMap
|
|
3676
|
+
Question = ProteusQuestion
|
|
3232
3677
|
Range = ProteusRange
|
|
3233
3678
|
Select = ProteusSelect
|
|
3234
3679
|
SelectContent = ProteusSelectContent
|
|
@@ -3239,3 +3684,4 @@ class UI:
|
|
|
3239
3684
|
Textarea = ProteusTextarea
|
|
3240
3685
|
Time = ProteusTime
|
|
3241
3686
|
Value = ProteusValue
|
|
3687
|
+
Zip = ProteusZip
|
|
@@ -227,6 +227,8 @@ class ToolsService:
|
|
|
227
227
|
except ValidationError as e:
|
|
228
228
|
logger.warning(f"Invalid parameters predicted by LLM for tool {name}: {str(e)}")
|
|
229
229
|
raise HTTPException(status_code=400, detail=str(e))
|
|
230
|
+
except HTTPException:
|
|
231
|
+
raise
|
|
230
232
|
except Exception as e:
|
|
231
233
|
import traceback
|
|
232
234
|
|
|
@@ -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.19-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"
|
{optimizely_opal_opal_tools_sdk-0.1.17.dev0 → optimizely_opal_opal_tools_sdk-0.1.19.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
|
{optimizely_opal_opal_tools_sdk-0.1.17.dev0 → optimizely_opal_opal_tools_sdk-0.1.19.dev0}/setup.cfg
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|