optimizely-opal.opal-tools-sdk 0.1.35.dev0__tar.gz → 0.1.37.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.35.dev0 → optimizely_opal_opal_tools_sdk-0.1.37.dev0}/PKG-INFO +1 -1
  2. {optimizely_opal_opal_tools_sdk-0.1.35.dev0 → optimizely_opal_opal_tools_sdk-0.1.37.dev0}/opal_tools_sdk/proteus.py +602 -26
  3. {optimizely_opal_opal_tools_sdk-0.1.35.dev0 → optimizely_opal_opal_tools_sdk-0.1.37.dev0}/optimizely_opal.opal_tools_sdk.egg-info/PKG-INFO +1 -1
  4. {optimizely_opal_opal_tools_sdk-0.1.35.dev0 → optimizely_opal_opal_tools_sdk-0.1.37.dev0}/pyproject.toml +1 -1
  5. {optimizely_opal_opal_tools_sdk-0.1.35.dev0 → optimizely_opal_opal_tools_sdk-0.1.37.dev0}/setup.py +1 -1
  6. {optimizely_opal_opal_tools_sdk-0.1.35.dev0 → optimizely_opal_opal_tools_sdk-0.1.37.dev0}/README.md +0 -0
  7. {optimizely_opal_opal_tools_sdk-0.1.35.dev0 → optimizely_opal_opal_tools_sdk-0.1.37.dev0}/opal_tools_sdk/__init__.py +0 -0
  8. {optimizely_opal_opal_tools_sdk-0.1.35.dev0 → optimizely_opal_opal_tools_sdk-0.1.37.dev0}/opal_tools_sdk/_registry.py +0 -0
  9. {optimizely_opal_opal_tools_sdk-0.1.35.dev0 → optimizely_opal_opal_tools_sdk-0.1.37.dev0}/opal_tools_sdk/auth.py +0 -0
  10. {optimizely_opal_opal_tools_sdk-0.1.35.dev0 → optimizely_opal_opal_tools_sdk-0.1.37.dev0}/opal_tools_sdk/decorators.py +0 -0
  11. {optimizely_opal_opal_tools_sdk-0.1.35.dev0 → optimizely_opal_opal_tools_sdk-0.1.37.dev0}/opal_tools_sdk/logging.py +0 -0
  12. {optimizely_opal_opal_tools_sdk-0.1.35.dev0 → optimizely_opal_opal_tools_sdk-0.1.37.dev0}/opal_tools_sdk/models.py +0 -0
  13. {optimizely_opal_opal_tools_sdk-0.1.35.dev0 → optimizely_opal_opal_tools_sdk-0.1.37.dev0}/opal_tools_sdk/service.py +0 -0
  14. {optimizely_opal_opal_tools_sdk-0.1.35.dev0 → optimizely_opal_opal_tools_sdk-0.1.37.dev0}/opal_tools_sdk/ui.py +0 -0
  15. {optimizely_opal_opal_tools_sdk-0.1.35.dev0 → optimizely_opal_opal_tools_sdk-0.1.37.dev0}/optimizely_opal.opal_tools_sdk.egg-info/SOURCES.txt +0 -0
  16. {optimizely_opal_opal_tools_sdk-0.1.35.dev0 → optimizely_opal_opal_tools_sdk-0.1.37.dev0}/optimizely_opal.opal_tools_sdk.egg-info/dependency_links.txt +0 -0
  17. {optimizely_opal_opal_tools_sdk-0.1.35.dev0 → optimizely_opal_opal_tools_sdk-0.1.37.dev0}/optimizely_opal.opal_tools_sdk.egg-info/requires.txt +0 -0
  18. {optimizely_opal_opal_tools_sdk-0.1.35.dev0 → optimizely_opal_opal_tools_sdk-0.1.37.dev0}/optimizely_opal.opal_tools_sdk.egg-info/top_level.txt +0 -0
  19. {optimizely_opal_opal_tools_sdk-0.1.35.dev0 → optimizely_opal_opal_tools_sdk-0.1.37.dev0}/setup.cfg +0 -0
  20. {optimizely_opal_opal_tools_sdk-0.1.35.dev0 → optimizely_opal_opal_tools_sdk-0.1.37.dev0}/tests/test_integration.py +0 -0
  21. {optimizely_opal_opal_tools_sdk-0.1.35.dev0 → optimizely_opal_opal_tools_sdk-0.1.37.dev0}/tests/test_nested_schema.py +0 -0
  22. {optimizely_opal_opal_tools_sdk-0.1.35.dev0 → optimizely_opal_opal_tools_sdk-0.1.37.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.35.dev0
3
+ Version: 0.1.37.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-18T18:51:08+00:00
3
+ # timestamp: 2026-06-02T14:09:34+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -23,8 +23,36 @@ class ProteusEventHandler1(BaseModel):
23
23
  )
24
24
  interaction: str = Field(..., description="Name of registered interaction to call")
25
25
  params: dict[str, Any] | None = Field(
26
- default=None, description="Parameters to pass to the interaction handler"
26
+ default=None,
27
+ description="Parameters to pass to the interaction handler. Values can be ProteusExpressions that resolve at call time.",
28
+ )
29
+
30
+
31
+ class ProteusEventHandler6(BaseModel):
32
+ """
33
+ Runtime data operation - appends `value` to the array at `path` in form data. Path resolves like `Value` (absolute `/x`, relative to current parentPath, or `''` for parentPath itself).
34
+ """
35
+
36
+ model_config = ConfigDict(
37
+ extra="forbid",
38
+ )
39
+ action: Literal["pushValue"] = Field(default="pushValue", description="The action type")
40
+ path: str = Field(..., description="JSON pointer path to the array to push onto")
41
+ value: Any | None = Field(
42
+ default=None, description="The value to append; primitives or objects"
43
+ )
44
+
45
+
46
+ class ProteusEventHandler7(BaseModel):
47
+ """
48
+ Runtime data operation - removes the array element at `path` in form data. `path` must resolve to an array index (e.g. `/urls/2`, or `''` inside a `Map` row).
49
+ """
50
+
51
+ model_config = ConfigDict(
52
+ extra="forbid",
27
53
  )
54
+ action: Literal["removeValue"] = Field(default="removeValue", description="The action type")
55
+ path: str = Field(..., description="JSON pointer path to the array element to remove")
28
56
 
29
57
 
30
58
  class File(BaseModel):
@@ -73,6 +101,17 @@ class Image(BaseModel):
73
101
  )
74
102
 
75
103
 
104
+ class ProteusLength(BaseModel):
105
+ model_config = ConfigDict(
106
+ extra="forbid",
107
+ )
108
+ field_type: Literal["Length"] = Field(default="Length", alias="$type")
109
+ path: str = Field(
110
+ ...,
111
+ description="JSON pointer path to the array whose length should be returned (e.g. '/urls'). Resolves to 0 when the value is missing or not an array.",
112
+ )
113
+
114
+
76
115
  class ProteusMapIndex(BaseModel):
77
116
  model_config = ConfigDict(
78
117
  extra="forbid",
@@ -80,6 +119,14 @@ class ProteusMapIndex(BaseModel):
80
119
  field_type: Literal["MapIndex"] = Field(default="MapIndex", alias="$type")
81
120
 
82
121
 
122
+ class Option(BaseModel):
123
+ model_config = ConfigDict(
124
+ extra="forbid",
125
+ )
126
+ label: str = Field(..., description="Display label for the option")
127
+ value: str = Field(..., description="Unique value for the option")
128
+
129
+
83
130
  class Marks(BaseModel):
84
131
  model_config = ConfigDict(
85
132
  extra="forbid",
@@ -88,7 +135,7 @@ class Marks(BaseModel):
88
135
  value: float = Field(..., description="The value for the mark")
89
136
 
90
137
 
91
- class Option(BaseModel):
138
+ class Option1(BaseModel):
92
139
  model_config = ConfigDict(
93
140
  extra="forbid",
94
141
  )
@@ -134,8 +181,8 @@ class ProteusCondition1(BaseModel):
134
181
  model_config = ConfigDict(
135
182
  extra="forbid",
136
183
  )
137
- field__: list[str | float | bool | ProteusMapIndex | ProteusValue | None] = Field(
138
- ..., alias="!=", description="Inequality comparison"
184
+ field__: list[str | float | bool | ProteusLength | ProteusMapIndex | ProteusValue | None] = (
185
+ Field(..., alias="!=", description="Inequality comparison")
139
186
  )
140
187
 
141
188
 
@@ -147,8 +194,8 @@ class ProteusCondition2(BaseModel):
147
194
  model_config = ConfigDict(
148
195
  extra="forbid",
149
196
  )
150
- field_: list[str | float | bool | ProteusMapIndex | ProteusValue | None] = Field(
151
- ..., alias="<", description="Less than comparison"
197
+ field_: list[str | float | bool | ProteusLength | ProteusMapIndex | ProteusValue | None] = (
198
+ Field(..., alias="<", description="Less than comparison")
152
199
  )
153
200
 
154
201
 
@@ -160,8 +207,8 @@ class ProteusCondition3(BaseModel):
160
207
  model_config = ConfigDict(
161
208
  extra="forbid",
162
209
  )
163
- field__: list[str | float | bool | ProteusMapIndex | ProteusValue | None] = Field(
164
- ..., alias="<=", description="Less than or equal comparison"
210
+ field__: list[str | float | bool | ProteusLength | ProteusMapIndex | ProteusValue | None] = (
211
+ Field(..., alias="<=", description="Less than or equal comparison")
165
212
  )
166
213
 
167
214
 
@@ -173,8 +220,8 @@ class ProteusCondition4(BaseModel):
173
220
  model_config = ConfigDict(
174
221
  extra="forbid",
175
222
  )
176
- field__: list[str | float | bool | ProteusMapIndex | ProteusValue | None] = Field(
177
- ..., alias="==", description="Equality comparison"
223
+ field__: list[str | float | bool | ProteusLength | ProteusMapIndex | ProteusValue | None] = (
224
+ Field(..., alias="==", description="Equality comparison")
178
225
  )
179
226
 
180
227
 
@@ -186,8 +233,8 @@ class ProteusCondition5(BaseModel):
186
233
  model_config = ConfigDict(
187
234
  extra="forbid",
188
235
  )
189
- field_: list[str | float | bool | ProteusMapIndex | ProteusValue | None] = Field(
190
- ..., alias=">", description="Greater than comparison"
236
+ field_: list[str | float | bool | ProteusLength | ProteusMapIndex | ProteusValue | None] = (
237
+ Field(..., alias=">", description="Greater than comparison")
191
238
  )
192
239
 
193
240
 
@@ -199,8 +246,8 @@ class ProteusCondition6(BaseModel):
199
246
  model_config = ConfigDict(
200
247
  extra="forbid",
201
248
  )
202
- field__: list[str | float | bool | ProteusMapIndex | ProteusValue | None] = Field(
203
- ..., alias=">=", description="Greater than or equal comparison"
249
+ field__: list[str | float | bool | ProteusLength | ProteusMapIndex | ProteusValue | None] = (
250
+ Field(..., alias=">=", description="Greater than or equal comparison")
204
251
  )
205
252
 
206
253
 
@@ -212,7 +259,7 @@ class ProteusCondition7(BaseModel):
212
259
  model_config = ConfigDict(
213
260
  extra="forbid",
214
261
  )
215
- field__: str | float | bool | ProteusMapIndex | ProteusValue | None = Field(
262
+ field__: str | float | bool | ProteusLength | ProteusMapIndex | ProteusValue | None = Field(
216
263
  ...,
217
264
  alias="!!",
218
265
  description="Truthy check - returns true if value is truthy (not null, undefined, false, 0, or empty string)",
@@ -227,7 +274,7 @@ class ProteusCondition8(BaseModel):
227
274
  model_config = ConfigDict(
228
275
  extra="forbid",
229
276
  )
230
- field_: str | float | bool | ProteusMapIndex | ProteusValue | None = Field(
277
+ field_: str | float | bool | ProteusLength | ProteusMapIndex | ProteusValue | None = Field(
231
278
  ...,
232
279
  alias="!",
233
280
  description="Falsy check - returns true if value is falsy (null, undefined, false, 0, or empty string)",
@@ -268,6 +315,10 @@ class ProteusDocument(BaseModel):
268
315
  actions: ProteusNode | None = Field(
269
316
  default=None, description="Actions available for this document"
270
317
  )
318
+ appearance: Literal["default"] | Literal["inline"] | ProteusExpression | None = Field(
319
+ default=None,
320
+ 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.",
321
+ )
271
322
  appIcon: str | None = Field(
272
323
  default=None,
273
324
  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.",
@@ -430,6 +481,9 @@ class ProteusAction(BaseModel):
430
481
  children: ProteusNode | None = None
431
482
  color: SprinklePropColor | None = None
432
483
  cursor: SprinklePropCursor | None = None
484
+ disabled: bool | ProteusExpression | None = Field(
485
+ default=None, description="Whether the button is disabled."
486
+ )
433
487
  display: SprinklePropDisplay | None = None
434
488
  flex: SprinklePropFlex | None = None
435
489
  flexDirection: SprinklePropFlexDirection | None = None
@@ -442,6 +496,10 @@ class ProteusAction(BaseModel):
442
496
  gridColumn: SprinklePropGridColumn | None = None
443
497
  gridTemplateColumns: SprinklePropGridTemplateColumns | None = None
444
498
  h: SprinklePropH | None = None
499
+ icon: ProteusNode | None = Field(
500
+ default=None,
501
+ description="Display an icon before or after the button content or omit `children` to only show the icon.",
502
+ )
445
503
  justifyContent: SprinklePropJustifyContent | None = None
446
504
  justifyItems: SprinklePropJustifyItems | None = None
447
505
  m: SprinklePropM | None = None
@@ -477,11 +535,95 @@ class ProteusAction(BaseModel):
477
535
  w: SprinklePropW | None = None
478
536
  whiteSpace: SprinklePropWhiteSpace | None = None
479
537
  z: SprinklePropZ | None = None
538
+ aria_label: str | None = Field(
539
+ default=None,
540
+ alias="aria-label",
541
+ description="Accessible label for screen readers. Required when the button renders an icon with no text children.",
542
+ )
480
543
  onClick: ProteusEventHandler | None = Field(
481
544
  default=None, description="Action triggered when button is clicked"
482
545
  )
483
546
 
484
547
 
548
+ class ProteusAlert(BaseModel):
549
+ model_config = ConfigDict(
550
+ extra="forbid",
551
+ )
552
+ field_type: Literal["Alert"] = Field(default="Alert", alias="$type")
553
+ alignItems: SprinklePropAlignItems | None = None
554
+ alignSelf: SprinklePropAlignSelf | None = None
555
+ animation: SprinklePropAnimation | None = None
556
+ backgroundImage: SprinklePropBackgroundImage | None = None
557
+ bg: SprinklePropBg | None = None
558
+ border: SprinklePropBorder | None = None
559
+ borderB: SprinklePropBorderB | None = None
560
+ borderColor: SprinklePropBorderColor | None = None
561
+ borderL: SprinklePropBorderL | None = None
562
+ borderR: SprinklePropBorderR | None = None
563
+ borderT: SprinklePropBorderT | None = None
564
+ children: ProteusNode | None = None
565
+ color: SprinklePropColor | None = None
566
+ cursor: SprinklePropCursor | None = None
567
+ display: SprinklePropDisplay | None = None
568
+ flex: SprinklePropFlex | None = None
569
+ flexDirection: SprinklePropFlexDirection | None = None
570
+ flexWrap: SprinklePropFlexWrap | None = None
571
+ fontFamily: SprinklePropFontFamily | None = None
572
+ fontSize: SprinklePropFontSize | None = None
573
+ fontWeight: SprinklePropFontWeight | None = None
574
+ gap: SprinklePropGap | None = None
575
+ gridAutoRows: SprinklePropGridAutoRows | None = None
576
+ gridColumn: SprinklePropGridColumn | None = None
577
+ gridTemplateColumns: SprinklePropGridTemplateColumns | None = None
578
+ h: SprinklePropH | None = None
579
+ intent: (
580
+ Literal["information"]
581
+ | Literal["success"]
582
+ | Literal["warning"]
583
+ | Literal["danger"]
584
+ | Literal["neutral"]
585
+ | Literal["opal"]
586
+ | ProteusExpression
587
+ | None
588
+ ) = Field(
589
+ default=None,
590
+ description="Control the appearance by selecting between the different alert types.",
591
+ )
592
+ justifyContent: SprinklePropJustifyContent | None = None
593
+ justifyItems: SprinklePropJustifyItems | None = None
594
+ m: SprinklePropM | None = None
595
+ maxH: SprinklePropMaxH | None = None
596
+ maxW: SprinklePropMaxW | None = None
597
+ mb: SprinklePropMb | None = None
598
+ ml: SprinklePropMl | None = None
599
+ mr: SprinklePropMr | None = None
600
+ mt: SprinklePropMt | None = None
601
+ mx: SprinklePropMx | None = None
602
+ my: SprinklePropMy | None = None
603
+ objectFit: SprinklePropObjectFit | None = None
604
+ overflow: SprinklePropOverflow | None = None
605
+ overflowX: SprinklePropOverflowX | None = None
606
+ overflowY: SprinklePropOverflowY | None = None
607
+ p: SprinklePropP | None = None
608
+ pb: SprinklePropPb | None = None
609
+ pl: SprinklePropPl | None = None
610
+ placeItems: SprinklePropPlaceItems | None = None
611
+ pointerEvents: SprinklePropPointerEvents | None = None
612
+ pr: SprinklePropPr | None = None
613
+ pt: SprinklePropPt | None = None
614
+ px: SprinklePropPx | None = None
615
+ py: SprinklePropPy | None = None
616
+ rounded: SprinklePropRounded | None = None
617
+ shadow: SprinklePropShadow | None = None
618
+ size: SprinklePropSize | None = None
619
+ textAlign: SprinklePropTextAlign | None = None
620
+ textTransform: SprinklePropTextTransform | None = None
621
+ transition: SprinklePropTransition | None = None
622
+ w: SprinklePropW | None = None
623
+ whiteSpace: SprinklePropWhiteSpace | None = None
624
+ z: SprinklePropZ | None = None
625
+
626
+
485
627
  class ProteusAvatar(BaseModel):
486
628
  model_config = ConfigDict(
487
629
  extra="forbid",
@@ -572,6 +714,82 @@ class ProteusAvatar(BaseModel):
572
714
  z: SprinklePropZ | None = None
573
715
 
574
716
 
717
+ class ProteusAvatarGroup(BaseModel):
718
+ model_config = ConfigDict(
719
+ extra="forbid",
720
+ )
721
+ field_type: Literal["AvatarGroup"] = Field(default="AvatarGroup", alias="$type")
722
+ alignItems: SprinklePropAlignItems | None = None
723
+ alignSelf: SprinklePropAlignSelf | None = None
724
+ animation: SprinklePropAnimation | None = None
725
+ backgroundImage: SprinklePropBackgroundImage | None = None
726
+ bg: SprinklePropBg | None = None
727
+ border: SprinklePropBorder | None = None
728
+ borderB: SprinklePropBorderB | None = None
729
+ borderColor: SprinklePropBorderColor | None = None
730
+ borderL: SprinklePropBorderL | None = None
731
+ borderR: SprinklePropBorderR | None = None
732
+ borderT: SprinklePropBorderT | None = None
733
+ children: ProteusNode | None = None
734
+ color: SprinklePropColor | None = None
735
+ cursor: SprinklePropCursor | None = None
736
+ display: SprinklePropDisplay | None = None
737
+ flex: SprinklePropFlex | None = None
738
+ flexDirection: SprinklePropFlexDirection | None = None
739
+ flexWrap: SprinklePropFlexWrap | None = None
740
+ fontFamily: SprinklePropFontFamily | None = None
741
+ fontSize: SprinklePropFontSize | None = None
742
+ fontWeight: SprinklePropFontWeight | None = None
743
+ gap: SprinklePropGap | None = None
744
+ gridAutoRows: SprinklePropGridAutoRows | None = None
745
+ gridColumn: SprinklePropGridColumn | None = None
746
+ gridTemplateColumns: SprinklePropGridTemplateColumns | None = None
747
+ h: SprinklePropH | None = None
748
+ justifyContent: SprinklePropJustifyContent | None = None
749
+ justifyItems: SprinklePropJustifyItems | None = None
750
+ m: SprinklePropM | None = None
751
+ maxH: SprinklePropMaxH | None = None
752
+ maxW: SprinklePropMaxW | None = None
753
+ mb: SprinklePropMb | None = None
754
+ ml: SprinklePropMl | None = None
755
+ mr: SprinklePropMr | None = None
756
+ mt: SprinklePropMt | None = None
757
+ mx: SprinklePropMx | None = None
758
+ my: SprinklePropMy | None = None
759
+ objectFit: SprinklePropObjectFit | None = None
760
+ overflow: SprinklePropOverflow | None = None
761
+ overflowX: SprinklePropOverflowX | None = None
762
+ overflowY: SprinklePropOverflowY | None = None
763
+ p: SprinklePropP | None = None
764
+ pb: SprinklePropPb | None = None
765
+ pl: SprinklePropPl | None = None
766
+ placeItems: SprinklePropPlaceItems | None = None
767
+ pointerEvents: SprinklePropPointerEvents | None = None
768
+ pr: SprinklePropPr | None = None
769
+ pt: SprinklePropPt | None = None
770
+ px: SprinklePropPx | None = None
771
+ py: SprinklePropPy | None = None
772
+ rounded: SprinklePropRounded | None = None
773
+ shadow: SprinklePropShadow | None = None
774
+ size: (
775
+ Literal["xs"]
776
+ | Literal["sm"]
777
+ | Literal["md"]
778
+ | Literal["lg"]
779
+ | Literal["xl"]
780
+ | Literal["3xl"]
781
+ | Literal["2xs"]
782
+ | ProteusExpression
783
+ | None
784
+ ) = Field(default=None, description="Control the size of the avatars.")
785
+ textAlign: SprinklePropTextAlign | None = None
786
+ textTransform: SprinklePropTextTransform | None = None
787
+ transition: SprinklePropTransition | None = None
788
+ w: SprinklePropW | None = None
789
+ whiteSpace: SprinklePropWhiteSpace | None = None
790
+ z: SprinklePropZ | None = None
791
+
792
+
575
793
  class ProteusBadge(BaseModel):
576
794
  model_config = ConfigDict(
577
795
  extra="forbid",
@@ -701,6 +919,9 @@ class ProteusButton(BaseModel):
701
919
  children: ProteusNode | None = None
702
920
  color: SprinklePropColor | None = None
703
921
  cursor: SprinklePropCursor | None = None
922
+ disabled: bool | ProteusExpression | None = Field(
923
+ default=None, description="Whether the button is disabled."
924
+ )
704
925
  display: SprinklePropDisplay | None = None
705
926
  flex: SprinklePropFlex | None = None
706
927
  flexDirection: SprinklePropFlexDirection | None = None
@@ -713,6 +934,10 @@ class ProteusButton(BaseModel):
713
934
  gridColumn: SprinklePropGridColumn | None = None
714
935
  gridTemplateColumns: SprinklePropGridTemplateColumns | None = None
715
936
  h: SprinklePropH | None = None
937
+ icon: ProteusNode | None = Field(
938
+ default=None,
939
+ description="Display an icon before or after the button content or omit `children` to only show the icon.",
940
+ )
716
941
  justifyContent: SprinklePropJustifyContent | None = None
717
942
  justifyItems: SprinklePropJustifyItems | None = None
718
943
  m: SprinklePropM | None = None
@@ -748,6 +973,11 @@ class ProteusButton(BaseModel):
748
973
  w: SprinklePropW | None = None
749
974
  whiteSpace: SprinklePropWhiteSpace | None = None
750
975
  z: SprinklePropZ | None = None
976
+ aria_label: str | None = Field(
977
+ default=None,
978
+ alias="aria-label",
979
+ description="Accessible label for screen readers. Required when the button renders an icon with no text children.",
980
+ )
751
981
  onClick: ProteusEventHandler | None = Field(
752
982
  default=None, description="Action triggered when button is clicked"
753
983
  )
@@ -1004,6 +1234,288 @@ class ProteusDataTable(BaseModel):
1004
1234
  data: list[dict[str, Any]] | ProteusExpression | ProteusZip | None = None
1005
1235
 
1006
1236
 
1237
+ class ProteusDateInput(BaseModel):
1238
+ model_config = ConfigDict(
1239
+ extra="forbid",
1240
+ )
1241
+ field_type: Literal["DateInput"] = Field(default="DateInput", alias="$type")
1242
+ alignItems: SprinklePropAlignItems | None = None
1243
+ alignSelf: SprinklePropAlignSelf | None = None
1244
+ animation: SprinklePropAnimation | None = None
1245
+ backgroundImage: SprinklePropBackgroundImage | None = None
1246
+ bg: SprinklePropBg | None = None
1247
+ border: SprinklePropBorder | None = None
1248
+ borderB: SprinklePropBorderB | None = None
1249
+ borderColor: SprinklePropBorderColor | None = None
1250
+ borderL: SprinklePropBorderL | None = None
1251
+ borderR: SprinklePropBorderR | None = None
1252
+ borderT: SprinklePropBorderT | None = None
1253
+ color: SprinklePropColor | None = None
1254
+ cursor: SprinklePropCursor | None = None
1255
+ display: SprinklePropDisplay | None = None
1256
+ flex: SprinklePropFlex | None = None
1257
+ flexDirection: SprinklePropFlexDirection | None = None
1258
+ flexWrap: SprinklePropFlexWrap | None = None
1259
+ fontFamily: SprinklePropFontFamily | None = None
1260
+ fontSize: SprinklePropFontSize | None = None
1261
+ fontWeight: SprinklePropFontWeight | None = None
1262
+ gap: SprinklePropGap | None = None
1263
+ gridAutoRows: SprinklePropGridAutoRows | None = None
1264
+ gridColumn: SprinklePropGridColumn | None = None
1265
+ gridTemplateColumns: SprinklePropGridTemplateColumns | None = None
1266
+ h: SprinklePropH | None = None
1267
+ justifyContent: SprinklePropJustifyContent | None = None
1268
+ justifyItems: SprinklePropJustifyItems | None = None
1269
+ m: SprinklePropM | None = None
1270
+ maxH: SprinklePropMaxH | None = None
1271
+ maxW: SprinklePropMaxW | None = None
1272
+ mb: SprinklePropMb | None = None
1273
+ ml: SprinklePropMl | None = None
1274
+ mr: SprinklePropMr | None = None
1275
+ mt: SprinklePropMt | None = None
1276
+ mx: SprinklePropMx | None = None
1277
+ my: SprinklePropMy | None = None
1278
+ name: str | ProteusExpression | None = Field(
1279
+ default=None, description="The name of the form control element."
1280
+ )
1281
+ objectFit: SprinklePropObjectFit | None = None
1282
+ overflow: SprinklePropOverflow | None = None
1283
+ overflowX: SprinklePropOverflowX | None = None
1284
+ overflowY: SprinklePropOverflowY | None = None
1285
+ p: SprinklePropP | None = None
1286
+ pb: SprinklePropPb | None = None
1287
+ pl: SprinklePropPl | None = None
1288
+ placeholder: str | ProteusExpression | None = Field(
1289
+ default=None,
1290
+ description='The placeholder date and time to use when no value has yet been selected.\n\nThe value format must an Instant, PlainDate, PlainDateTime, or PlainTime.\nThe default date and time to use in the calendar picker when no value has\nbeen selected.\n\n**NOTE:** This is NOT a placeholder hint text for the input field. Native\ndate inputs do not support placeholder text. The value format must be an\nInstant, PlainDate, PlainDateTime, or PlainTime (e.g., "2024-01-01",\n"2024-01-01T12:00", "12:00").\n@example // Set default time to noon when picking dates\n<DateInput placeholder="12:00" />\n\n// Set default date to a specific date\n<DateInput placeholder="2024-01-01" />',
1291
+ )
1292
+ placeItems: SprinklePropPlaceItems | None = None
1293
+ pointerEvents: SprinklePropPointerEvents | None = None
1294
+ pr: SprinklePropPr | None = None
1295
+ pt: SprinklePropPt | None = None
1296
+ px: SprinklePropPx | None = None
1297
+ py: SprinklePropPy | None = None
1298
+ required: bool | ProteusExpression | None = Field(
1299
+ default=None, description="Whether selecting this input is required."
1300
+ )
1301
+ rounded: SprinklePropRounded | None = None
1302
+ shadow: SprinklePropShadow | None = None
1303
+ textAlign: SprinklePropTextAlign | None = None
1304
+ textTransform: SprinklePropTextTransform | None = None
1305
+ transition: SprinklePropTransition | None = None
1306
+ type: Literal["date"] | Literal["datetime-local"] | ProteusExpression | None = Field(
1307
+ default=None,
1308
+ description="Control whether the input allows only date or both date and time.",
1309
+ )
1310
+ w: SprinklePropW | None = None
1311
+ whiteSpace: SprinklePropWhiteSpace | None = None
1312
+ z: SprinklePropZ | None = None
1313
+
1314
+
1315
+ class ProteusDisclosure(BaseModel):
1316
+ model_config = ConfigDict(
1317
+ extra="forbid",
1318
+ )
1319
+ field_type: Literal["Disclosure"] = Field(default="Disclosure", alias="$type")
1320
+ alignItems: SprinklePropAlignItems | None = None
1321
+ alignSelf: SprinklePropAlignSelf | None = None
1322
+ animation: SprinklePropAnimation | None = None
1323
+ backgroundImage: SprinklePropBackgroundImage | None = None
1324
+ bg: SprinklePropBg | None = None
1325
+ border: SprinklePropBorder | None = None
1326
+ borderB: SprinklePropBorderB | None = None
1327
+ borderColor: SprinklePropBorderColor | None = None
1328
+ borderL: SprinklePropBorderL | None = None
1329
+ borderR: SprinklePropBorderR | None = None
1330
+ borderT: SprinklePropBorderT | None = None
1331
+ children: ProteusNode | None = None
1332
+ color: SprinklePropColor | None = None
1333
+ cursor: SprinklePropCursor | None = None
1334
+ defaultOpen: bool | ProteusExpression | None = Field(
1335
+ default=None, description="The initial open state in uncontrolled mode."
1336
+ )
1337
+ display: SprinklePropDisplay | None = None
1338
+ flex: SprinklePropFlex | None = None
1339
+ flexDirection: SprinklePropFlexDirection | None = None
1340
+ flexWrap: SprinklePropFlexWrap | None = None
1341
+ fontFamily: SprinklePropFontFamily | None = None
1342
+ fontSize: SprinklePropFontSize | None = None
1343
+ fontWeight: SprinklePropFontWeight | None = None
1344
+ gap: SprinklePropGap | None = None
1345
+ gridAutoRows: SprinklePropGridAutoRows | None = None
1346
+ gridColumn: SprinklePropGridColumn | None = None
1347
+ gridTemplateColumns: SprinklePropGridTemplateColumns | None = None
1348
+ h: SprinklePropH | None = None
1349
+ justifyContent: SprinklePropJustifyContent | None = None
1350
+ justifyItems: SprinklePropJustifyItems | None = None
1351
+ m: SprinklePropM | None = None
1352
+ maxH: SprinklePropMaxH | None = None
1353
+ maxW: SprinklePropMaxW | None = None
1354
+ mb: SprinklePropMb | None = None
1355
+ ml: SprinklePropMl | None = None
1356
+ mr: SprinklePropMr | None = None
1357
+ mt: SprinklePropMt | None = None
1358
+ mx: SprinklePropMx | None = None
1359
+ my: SprinklePropMy | None = None
1360
+ objectFit: SprinklePropObjectFit | None = None
1361
+ overflow: SprinklePropOverflow | None = None
1362
+ overflowX: SprinklePropOverflowX | None = None
1363
+ overflowY: SprinklePropOverflowY | None = None
1364
+ p: SprinklePropP | None = None
1365
+ pb: SprinklePropPb | None = None
1366
+ pl: SprinklePropPl | None = None
1367
+ placeItems: SprinklePropPlaceItems | None = None
1368
+ pointerEvents: SprinklePropPointerEvents | None = None
1369
+ pr: SprinklePropPr | None = None
1370
+ pt: SprinklePropPt | None = None
1371
+ px: SprinklePropPx | None = None
1372
+ py: SprinklePropPy | None = None
1373
+ rounded: SprinklePropRounded | None = None
1374
+ shadow: SprinklePropShadow | None = None
1375
+ size: SprinklePropSize | None = None
1376
+ textAlign: SprinklePropTextAlign | None = None
1377
+ textTransform: SprinklePropTextTransform | None = None
1378
+ transition: SprinklePropTransition | None = None
1379
+ w: SprinklePropW | None = None
1380
+ whiteSpace: SprinklePropWhiteSpace | None = None
1381
+ z: SprinklePropZ | None = None
1382
+
1383
+
1384
+ class ProteusDisclosureContent(BaseModel):
1385
+ model_config = ConfigDict(
1386
+ extra="forbid",
1387
+ )
1388
+ field_type: Literal["DisclosureContent"] = Field(default="DisclosureContent", alias="$type")
1389
+ alignItems: SprinklePropAlignItems | None = None
1390
+ alignSelf: SprinklePropAlignSelf | None = None
1391
+ animation: SprinklePropAnimation | None = None
1392
+ backgroundImage: SprinklePropBackgroundImage | None = None
1393
+ bg: SprinklePropBg | None = None
1394
+ border: SprinklePropBorder | None = None
1395
+ borderB: SprinklePropBorderB | None = None
1396
+ borderColor: SprinklePropBorderColor | None = None
1397
+ borderL: SprinklePropBorderL | None = None
1398
+ borderR: SprinklePropBorderR | None = None
1399
+ borderT: SprinklePropBorderT | None = None
1400
+ children: ProteusNode | None = None
1401
+ color: SprinklePropColor | None = None
1402
+ cursor: SprinklePropCursor | None = None
1403
+ display: SprinklePropDisplay | None = None
1404
+ flex: SprinklePropFlex | None = None
1405
+ flexDirection: SprinklePropFlexDirection | None = None
1406
+ flexWrap: SprinklePropFlexWrap | None = None
1407
+ fontFamily: SprinklePropFontFamily | None = None
1408
+ fontSize: SprinklePropFontSize | None = None
1409
+ fontWeight: SprinklePropFontWeight | None = None
1410
+ gap: SprinklePropGap | None = None
1411
+ gridAutoRows: SprinklePropGridAutoRows | None = None
1412
+ gridColumn: SprinklePropGridColumn | None = None
1413
+ gridTemplateColumns: SprinklePropGridTemplateColumns | None = None
1414
+ h: SprinklePropH | None = None
1415
+ justifyContent: SprinklePropJustifyContent | None = None
1416
+ justifyItems: SprinklePropJustifyItems | None = None
1417
+ m: SprinklePropM | None = None
1418
+ maxH: SprinklePropMaxH | None = None
1419
+ maxW: SprinklePropMaxW | None = None
1420
+ mb: SprinklePropMb | None = None
1421
+ ml: SprinklePropMl | None = None
1422
+ mr: SprinklePropMr | None = None
1423
+ mt: SprinklePropMt | None = None
1424
+ mx: SprinklePropMx | None = None
1425
+ my: SprinklePropMy | None = None
1426
+ objectFit: SprinklePropObjectFit | None = None
1427
+ overflow: SprinklePropOverflow | None = None
1428
+ overflowX: SprinklePropOverflowX | None = None
1429
+ overflowY: SprinklePropOverflowY | None = None
1430
+ p: SprinklePropP | None = None
1431
+ pb: SprinklePropPb | None = None
1432
+ pl: SprinklePropPl | None = None
1433
+ placeItems: SprinklePropPlaceItems | None = None
1434
+ pointerEvents: SprinklePropPointerEvents | None = None
1435
+ pr: SprinklePropPr | None = None
1436
+ pt: SprinklePropPt | None = None
1437
+ px: SprinklePropPx | None = None
1438
+ py: SprinklePropPy | None = None
1439
+ rounded: SprinklePropRounded | None = None
1440
+ shadow: SprinklePropShadow | None = None
1441
+ size: SprinklePropSize | None = None
1442
+ textAlign: SprinklePropTextAlign | None = None
1443
+ textTransform: SprinklePropTextTransform | None = None
1444
+ transition: SprinklePropTransition | None = None
1445
+ w: SprinklePropW | None = None
1446
+ whiteSpace: SprinklePropWhiteSpace | None = None
1447
+ z: SprinklePropZ | None = None
1448
+
1449
+
1450
+ class ProteusDisclosureTrigger(BaseModel):
1451
+ model_config = ConfigDict(
1452
+ extra="forbid",
1453
+ )
1454
+ field_type: Literal["DisclosureTrigger"] = Field(default="DisclosureTrigger", alias="$type")
1455
+ alignItems: SprinklePropAlignItems | None = None
1456
+ alignSelf: SprinklePropAlignSelf | None = None
1457
+ animation: SprinklePropAnimation | None = None
1458
+ backgroundImage: SprinklePropBackgroundImage | None = None
1459
+ bg: SprinklePropBg | None = None
1460
+ border: SprinklePropBorder | None = None
1461
+ borderB: SprinklePropBorderB | None = None
1462
+ borderColor: SprinklePropBorderColor | None = None
1463
+ borderL: SprinklePropBorderL | None = None
1464
+ borderR: SprinklePropBorderR | None = None
1465
+ borderT: SprinklePropBorderT | None = None
1466
+ chevronPosition: Literal["end"] | Literal["start"] | ProteusExpression | None = Field(
1467
+ default=None, description="Control which side to place the chevron."
1468
+ )
1469
+ children: ProteusNode | None = None
1470
+ color: SprinklePropColor | None = None
1471
+ cursor: SprinklePropCursor | None = None
1472
+ display: SprinklePropDisplay | None = None
1473
+ flex: SprinklePropFlex | None = None
1474
+ flexDirection: SprinklePropFlexDirection | None = None
1475
+ flexWrap: SprinklePropFlexWrap | None = None
1476
+ fontFamily: SprinklePropFontFamily | None = None
1477
+ fontSize: SprinklePropFontSize | None = None
1478
+ fontWeight: SprinklePropFontWeight | None = None
1479
+ gap: SprinklePropGap | None = None
1480
+ gridAutoRows: SprinklePropGridAutoRows | None = None
1481
+ gridColumn: SprinklePropGridColumn | None = None
1482
+ gridTemplateColumns: SprinklePropGridTemplateColumns | None = None
1483
+ h: SprinklePropH | None = None
1484
+ justifyContent: SprinklePropJustifyContent | None = None
1485
+ justifyItems: SprinklePropJustifyItems | None = None
1486
+ m: SprinklePropM | None = None
1487
+ maxH: SprinklePropMaxH | None = None
1488
+ maxW: SprinklePropMaxW | None = None
1489
+ mb: SprinklePropMb | None = None
1490
+ ml: SprinklePropMl | None = None
1491
+ mr: SprinklePropMr | None = None
1492
+ mt: SprinklePropMt | None = None
1493
+ mx: SprinklePropMx | None = None
1494
+ my: SprinklePropMy | None = None
1495
+ objectFit: SprinklePropObjectFit | None = None
1496
+ overflow: SprinklePropOverflow | None = None
1497
+ overflowX: SprinklePropOverflowX | None = None
1498
+ overflowY: SprinklePropOverflowY | None = None
1499
+ p: SprinklePropP | None = None
1500
+ pb: SprinklePropPb | None = None
1501
+ pl: SprinklePropPl | None = None
1502
+ placeItems: SprinklePropPlaceItems | None = None
1503
+ pointerEvents: SprinklePropPointerEvents | None = None
1504
+ pr: SprinklePropPr | None = None
1505
+ pt: SprinklePropPt | None = None
1506
+ px: SprinklePropPx | None = None
1507
+ py: SprinklePropPy | None = None
1508
+ rounded: SprinklePropRounded | None = None
1509
+ shadow: SprinklePropShadow | None = None
1510
+ size: SprinklePropSize | None = None
1511
+ textAlign: SprinklePropTextAlign | None = None
1512
+ textTransform: SprinklePropTextTransform | None = None
1513
+ transition: SprinklePropTransition | None = None
1514
+ w: SprinklePropW | None = None
1515
+ whiteSpace: SprinklePropWhiteSpace | None = None
1516
+ z: SprinklePropZ | None = None
1517
+
1518
+
1007
1519
  class ProteusFederated(BaseModel):
1008
1520
  model_config = ConfigDict(
1009
1521
  extra="forbid",
@@ -1345,11 +1857,11 @@ class ProteusHeading(BaseModel):
1345
1857
  z: SprinklePropZ | None = None
1346
1858
 
1347
1859
 
1348
- class ProteusIconCalendar(BaseModel):
1860
+ class ProteusIcon(BaseModel):
1349
1861
  model_config = ConfigDict(
1350
1862
  extra="forbid",
1351
1863
  )
1352
- field_type: Literal["IconCalendar"] = Field(default="IconCalendar", alias="$type")
1864
+ field_type: Literal["Icon"] = Field(default="Icon", alias="$type")
1353
1865
  alignItems: SprinklePropAlignItems | None = None
1354
1866
  alignSelf: SprinklePropAlignSelf | None = None
1355
1867
  animation: SprinklePropAnimation | None = None
@@ -1408,6 +1920,10 @@ class ProteusIconCalendar(BaseModel):
1408
1920
  w: SprinklePropW | None = None
1409
1921
  whiteSpace: SprinklePropWhiteSpace | None = None
1410
1922
  z: SprinklePropZ | None = None
1923
+ name: str = Field(
1924
+ ...,
1925
+ description="Name of the icon to render. Must match a key in the icons map passed to ProteusDocumentRenderer.",
1926
+ )
1411
1927
 
1412
1928
 
1413
1929
  class ProteusImage(BaseModel):
@@ -1693,6 +2209,29 @@ class ProteusMap(BaseModel):
1693
2209
  )
1694
2210
 
1695
2211
 
2212
+ class ProteusPillMenu(BaseModel):
2213
+ model_config = ConfigDict(
2214
+ extra="forbid",
2215
+ )
2216
+ field_type: Literal["PillMenu"] = Field(default="PillMenu", alias="$type")
2217
+ inputName: str | None = Field(
2218
+ default=None,
2219
+ description="The data binding name for the search input value. Written to data on each keystroke.",
2220
+ )
2221
+ name: str | None = Field(
2222
+ default=None,
2223
+ description="The data binding name for this pill menu's selected values. Stored as a string array in the data.",
2224
+ )
2225
+ onInputValueChange: ProteusEventHandler | None = Field(
2226
+ default=None,
2227
+ description="Event handler triggered when the search input value changes. Use with inputName to pass the current query via params.",
2228
+ )
2229
+ options: list[Option] | ProteusExpression | None = Field(
2230
+ default=None,
2231
+ description="The available options to select from. Can be an inline array or a ProteusExpression.",
2232
+ )
2233
+
2234
+
1696
2235
  class ProteusQuestion(BaseModel):
1697
2236
  model_config = ConfigDict(
1698
2237
  extra="forbid",
@@ -1786,7 +2325,7 @@ class ProteusSelect(BaseModel):
1786
2325
  name: str | ProteusExpression | None = Field(
1787
2326
  default=None, description="The name of the inner select element."
1788
2327
  )
1789
- options: list[Option] = Field(..., description="The select items/options we want to render.")
2328
+ options: list[Option1] = Field(..., description="The select items/options we want to render.")
1790
2329
  required: bool | ProteusExpression | None = Field(
1791
2330
  default=None, description="Whether the select value is required."
1792
2331
  )
@@ -2345,6 +2884,8 @@ class ProteusEventHandler(
2345
2884
  | ProteusEventHandler3
2346
2885
  | ProteusEventHandler4
2347
2886
  | ProteusEventHandler5
2887
+ | ProteusEventHandler6
2888
+ | ProteusEventHandler7
2348
2889
  ]
2349
2890
  ):
2350
2891
  root: (
@@ -2353,14 +2894,18 @@ class ProteusEventHandler(
2353
2894
  | ProteusEventHandler3
2354
2895
  | ProteusEventHandler4
2355
2896
  | ProteusEventHandler5
2897
+ | ProteusEventHandler6
2898
+ | ProteusEventHandler7
2356
2899
  ) = Field(
2357
2900
  ...,
2358
2901
  description="Handler for user interactions - a server-side interaction call, client-side message, or client-side component action",
2359
2902
  )
2360
2903
 
2361
2904
 
2362
- class ProteusExpression(RootModel[ProteusMap | ProteusMapIndex | ProteusShow | ProteusValue]):
2363
- root: ProteusMap | ProteusMapIndex | ProteusShow | ProteusValue = Field(
2905
+ class ProteusExpression(
2906
+ RootModel[ProteusLength | ProteusMap | ProteusMapIndex | ProteusShow | ProteusValue]
2907
+ ):
2908
+ root: ProteusLength | ProteusMap | ProteusMapIndex | ProteusShow | ProteusValue = Field(
2364
2909
  ..., description="A dynamic Proteus expression that resolves to a value at render time."
2365
2910
  )
2366
2911
 
@@ -2368,7 +2913,9 @@ class ProteusExpression(RootModel[ProteusMap | ProteusMapIndex | ProteusShow | P
2368
2913
  class ProteusElement(
2369
2914
  RootModel[
2370
2915
  ProteusAction
2916
+ | ProteusAlert
2371
2917
  | ProteusAvatar
2918
+ | ProteusAvatarGroup
2372
2919
  | ProteusBadge
2373
2920
  | ProteusBridge
2374
2921
  | ProteusButton
@@ -2378,19 +2925,25 @@ class ProteusElement(
2378
2925
  | ProteusChart
2379
2926
  | ProteusConcat
2380
2927
  | ProteusDataTable
2928
+ | ProteusDateInput
2929
+ | ProteusDisclosure
2930
+ | ProteusDisclosureContent
2931
+ | ProteusDisclosureTrigger
2381
2932
  | ProteusFederated
2382
2933
  | ProteusField
2383
2934
  | ProteusFileIcon
2384
2935
  | ProteusFileUpload
2385
2936
  | ProteusGroup
2386
2937
  | ProteusHeading
2387
- | ProteusIconCalendar
2938
+ | ProteusIcon
2388
2939
  | ProteusImage
2389
2940
  | ProteusImageCarousel
2390
2941
  | ProteusInput
2942
+ | ProteusLength
2391
2943
  | ProteusLink
2392
2944
  | ProteusMap
2393
2945
  | ProteusMapIndex
2946
+ | ProteusPillMenu
2394
2947
  | ProteusQuestion
2395
2948
  | ProteusRange
2396
2949
  | ProteusSelect
@@ -2407,7 +2960,9 @@ class ProteusElement(
2407
2960
  ):
2408
2961
  root: (
2409
2962
  ProteusAction
2963
+ | ProteusAlert
2410
2964
  | ProteusAvatar
2965
+ | ProteusAvatarGroup
2411
2966
  | ProteusBadge
2412
2967
  | ProteusBridge
2413
2968
  | ProteusButton
@@ -2417,19 +2972,25 @@ class ProteusElement(
2417
2972
  | ProteusChart
2418
2973
  | ProteusConcat
2419
2974
  | ProteusDataTable
2975
+ | ProteusDateInput
2976
+ | ProteusDisclosure
2977
+ | ProteusDisclosureContent
2978
+ | ProteusDisclosureTrigger
2420
2979
  | ProteusFederated
2421
2980
  | ProteusField
2422
2981
  | ProteusFileIcon
2423
2982
  | ProteusFileUpload
2424
2983
  | ProteusGroup
2425
2984
  | ProteusHeading
2426
- | ProteusIconCalendar
2985
+ | ProteusIcon
2427
2986
  | ProteusImage
2428
2987
  | ProteusImageCarousel
2429
2988
  | ProteusInput
2989
+ | ProteusLength
2430
2990
  | ProteusLink
2431
2991
  | ProteusMap
2432
2992
  | ProteusMapIndex
2993
+ | ProteusPillMenu
2433
2994
  | ProteusQuestion
2434
2995
  | ProteusRange
2435
2996
  | ProteusSelect
@@ -4091,7 +4652,9 @@ Part.model_rebuild()
4091
4652
  ProteusStructuredMessage.model_rebuild()
4092
4653
  ProteusZip.model_rebuild()
4093
4654
  ProteusAction.model_rebuild()
4655
+ ProteusAlert.model_rebuild()
4094
4656
  ProteusAvatar.model_rebuild()
4657
+ ProteusAvatarGroup.model_rebuild()
4095
4658
  ProteusBadge.model_rebuild()
4096
4659
  ProteusBridge.model_rebuild()
4097
4660
  ProteusButton.model_rebuild()
@@ -4101,18 +4664,23 @@ ProteusCardLink.model_rebuild()
4101
4664
  ProteusChart.model_rebuild()
4102
4665
  ProteusConcat.model_rebuild()
4103
4666
  ProteusDataTable.model_rebuild()
4667
+ ProteusDateInput.model_rebuild()
4668
+ ProteusDisclosure.model_rebuild()
4669
+ ProteusDisclosureContent.model_rebuild()
4670
+ ProteusDisclosureTrigger.model_rebuild()
4104
4671
  ProteusFederated.model_rebuild()
4105
4672
  ProteusField.model_rebuild()
4106
4673
  ProteusFileIcon.model_rebuild()
4107
4674
  ProteusFileUpload.model_rebuild()
4108
4675
  ProteusGroup.model_rebuild()
4109
4676
  ProteusHeading.model_rebuild()
4110
- ProteusIconCalendar.model_rebuild()
4677
+ ProteusIcon.model_rebuild()
4111
4678
  ProteusImage.model_rebuild()
4112
4679
  ProteusImageCarousel.model_rebuild()
4113
4680
  ProteusInput.model_rebuild()
4114
4681
  ProteusLink.model_rebuild()
4115
4682
  ProteusMap.model_rebuild()
4683
+ ProteusPillMenu.model_rebuild()
4116
4684
  ProteusQuestion.model_rebuild()
4117
4685
  ProteusRange.model_rebuild()
4118
4686
  ProteusSelect.model_rebuild()
@@ -4139,7 +4707,9 @@ class UI:
4139
4707
  MIME_TYPE = "application/vnd.opal.proteus+json"
4140
4708
 
4141
4709
  Action = ProteusAction
4710
+ Alert = ProteusAlert
4142
4711
  Avatar = ProteusAvatar
4712
+ AvatarGroup = ProteusAvatarGroup
4143
4713
  Badge = ProteusBadge
4144
4714
  Bridge = ProteusBridge
4145
4715
  Button = ProteusButton
@@ -4149,6 +4719,10 @@ class UI:
4149
4719
  Chart = ProteusChart
4150
4720
  Concat = ProteusConcat
4151
4721
  DataTable = ProteusDataTable
4722
+ DateInput = ProteusDateInput
4723
+ Disclosure = ProteusDisclosure
4724
+ DisclosureContent = ProteusDisclosureContent
4725
+ DisclosureTrigger = ProteusDisclosureTrigger
4152
4726
  Document = ProteusDocument
4153
4727
  Federated = ProteusFederated
4154
4728
  Field = ProteusField
@@ -4156,13 +4730,15 @@ class UI:
4156
4730
  FileUpload = ProteusFileUpload
4157
4731
  Group = ProteusGroup
4158
4732
  Heading = ProteusHeading
4159
- IconCalendar = ProteusIconCalendar
4733
+ Icon = ProteusIcon
4160
4734
  Image = ProteusImage
4161
4735
  ImageCarousel = ProteusImageCarousel
4162
4736
  Input = ProteusInput
4737
+ Length = ProteusLength
4163
4738
  Link = ProteusLink
4164
4739
  Map = ProteusMap
4165
4740
  MapIndex = ProteusMapIndex
4741
+ PillMenu = ProteusPillMenu
4166
4742
  Question = ProteusQuestion
4167
4743
  Range = ProteusRange
4168
4744
  Select = ProteusSelect
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: optimizely-opal.opal-tools-sdk
3
- Version: 0.1.35.dev0
3
+ Version: 0.1.37.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.35-dev"
7
+ version = "0.1.37-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.35-dev",
5
+ version="0.1.37-dev",
6
6
  packages=find_packages(),
7
7
  install_requires=[
8
8
  "fastapi>=0.100.0",