Skip to content

Commit 254201c

Browse files
committed
fix: slot key position
1 parent 98ba96c commit 254201c

137 files changed

Lines changed: 2838 additions & 917 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

backend/modelscope_studio/components/antdx/__init__.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,20 @@
11
from .actions import AntdXActions as Actions
2+
from .actions.action_item import AntdXActionsActionItem as ActionsActionItem
3+
from .actions.copy import AntdXActionsCopy as ActionsCopy
4+
from .actions.feedback import AntdXActionsFeedback as ActionsFeedback
5+
from .actions.audio import AntdXActionsAudio as ActionsAudio
26
from .actions.item import AntdXActionsItem as ActionsItem
37
from .attachments import AntdXAttachments as Attachments
4-
from .attachments.file_card import \
5-
AntdXAttachmentsFileCard as AttachmentsFileCard
8+
from .file_card import \
9+
AntdXFileCard as FileCard
10+
from .file_card.list import AntdXFileCardList as FileCardList
11+
from .file_card.list.item import AntdXFileCardListItem as FileCardListItem
612
from .bubble import AntdXBubble as Bubble
713
from .bubble.list import AntdXBubbleList as BubbleList
814
from .bubble.list.item import AntdXBubbleListItem as BubbleListItem
915
from .bubble.list.role import AntdXBubbleListRole as BubbleListRole
16+
from .bubble.divider import AntdXBubbleDivider as BubbleDivider
17+
from .bubble.system import AntdXBubbleSystem as BubbleSystem
1018
from .conversations import AntdXConversations as Conversations
1119
from .conversations.item import AntdXConversationsItem as ConversationsItem
1220
from .prompts import AntdXPrompts as Prompts

backend/modelscope_studio/components/antdx/actions/__init__.py

Lines changed: 38 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,35 +5,65 @@
55
from gradio.events import EventListener
66

77
from ....utils.dev import ModelScopeLayoutComponent, resolve_frontend_dir
8+
from .action_item import AntdXActionsActionItem
89
from .item import AntdXActionsItem
10+
from .feedback import AntdXActionsFeedback
11+
from .copy import AntdXActionsCopy
12+
from .audio import AntdXActionsAudio
913

1014

1115
class AntdXActions(ModelScopeLayoutComponent):
1216
"""
1317
Ant Design X: https://x.ant.design/components/actions
1418
"""
1519

20+
ActionItem = AntdXActionsActionItem
1621
Item = AntdXActionsItem
22+
Feedback = AntdXActionsFeedback
23+
Copy = AntdXActionsCopy
24+
Audio = AntdXActionsAudio
1725

1826
EVENTS = [
1927
EventListener("click",
2028
callback=lambda block: block._internal.update(
2129
bind_click_event=True),
2230
doc="Callback function when an action item is clicked."),
31+
EventListener("dropdown_open_change",
32+
callback=lambda block: block._internal.update(
33+
bind_dropdownProps_openChange_event=True)),
34+
EventListener("dropdown_menu_click",
35+
callback=lambda block: block._internal.update(
36+
bind_dropdownProps_menu_click_event=True)),
37+
EventListener("dropdown_menu_deselect",
38+
callback=lambda block: block._internal.update(
39+
bind_dropdownProps_menu_deselect_event=True)),
40+
EventListener("dropdown_menu_open_change",
41+
callback=lambda block: block._internal.update(
42+
bind_dropdownProps_menu_openChange_event=True)),
43+
EventListener("dropdown_menu_select",
44+
callback=lambda block: block._internal.update(
45+
bind_dropdownProps_menu_select_event=True))
2346
]
2447

2548
# supported slots
26-
SLOTS = ['items']
49+
SLOTS = [
50+
'items',
51+
"dropdownProps.dropdownRender",
52+
"dropdownProps.popupRender",
53+
"dropdownProps.menu.expandIcon",
54+
'dropdownProps.menu.overflowedIndicator',
55+
"dropdownProps.menu.items",
56+
]
2757

2858
def __init__(
2959
self,
3060
additional_props: dict | None = None,
3161
*,
3262
items: list[dict] | None = None,
33-
variant: Literal['borderless', 'border'] | None = None,
34-
block: bool | None = None,
35-
prefix_cls: str | None = None,
36-
root_class_name: str | None = None,
63+
variant: Literal["borderless", "outlined", "filled"] | None = None,
64+
dropdown_props: dict | None = None,
65+
fade_in: bool | None = None,
66+
fade_in_left: bool | None = None,
3767
class_names: dict | str | None = None,
3868
styles: dict | str | None = None,
3969
as_item: str | None = None,
@@ -56,10 +86,10 @@ def __init__(
5686
self.styles = styles
5787
self.additional_props = additional_props
5888
self.items = items
59-
self.prefix_cls = prefix_cls
6089
self.variant = variant
61-
self.block = block
62-
self.root_class_name = root_class_name
90+
self.dropdown_props = dropdown_props
91+
self.fade_in = fade_in
92+
self.fade_in_left = fade_in_left
6393

6494
FRONTEND_DIR = resolve_frontend_dir("actions", type="antdx")
6595

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
from __future__ import annotations
2+
3+
from typing import Any, Literal
4+
5+
from gradio.events import EventListener
6+
7+
from .....utils.dev import ModelScopeLayoutComponent, resolve_frontend_dir
8+
9+
10+
class AntdXActionsActionItem(ModelScopeLayoutComponent):
11+
"""
12+
Ant Design X: https://x.ant.design/components/actions
13+
"""
14+
15+
EVENTS = [
16+
EventListener(
17+
"item_click",
18+
callback=lambda block: block._internal.update(bind_itemClick_event=
19+
True),
20+
doc="Callback function when the custom action button is clicked."),
21+
]
22+
23+
# Supported slots
24+
SLOTS = ['label', 'icon', 'actionRender']
25+
26+
def __init__(
27+
self,
28+
label: str | None = None,
29+
*,
30+
additional_props: dict | None = None,
31+
key: str | None = None,
32+
icon: str | None = None,
33+
danger: bool | None = None,
34+
trigger_sub_menu_action: Literal['hover', 'click'] | None = None,
35+
sub_items: list[dict] | None = None,
36+
action_render: str | None = None,
37+
as_item: str | None = None,
38+
_internal: None = None,
39+
# gradio properties
40+
visible: bool = True,
41+
elem_id: str | None = None,
42+
elem_classes: list[str] | str | None = None,
43+
elem_style: dict | None = None,
44+
render: bool = True,
45+
**kwargs):
46+
super().__init__(visible=visible,
47+
elem_id=elem_id,
48+
elem_classes=elem_classes,
49+
render=render,
50+
as_item=as_item,
51+
elem_style=elem_style,
52+
**kwargs)
53+
self.additional_props = additional_props
54+
self.label = label
55+
self.icon = icon
56+
self.trigger_sub_menu_action = trigger_sub_menu_action
57+
self.danger = danger
58+
self.key = key
59+
self.sub_items = sub_items
60+
self.action_render = action_render
61+
62+
FRONTEND_DIR = resolve_frontend_dir("actions", "action-item", type="antdx")
63+
64+
@property
65+
def skip_api(self):
66+
return True
67+
68+
def preprocess(self, payload: None) -> None:
69+
return payload
70+
71+
def postprocess(self, value: None) -> None:
72+
73+
return value
74+
75+
def example_payload(self) -> Any:
76+
return None
77+
78+
def example_value(self) -> Any:
79+
return None
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
from __future__ import annotations
2+
3+
from typing import Any, Literal
4+
5+
from gradio.events import EventListener
6+
7+
from .....utils.dev import ModelScopeLayoutComponent, resolve_frontend_dir
8+
9+
10+
class AntdXActionsAudio(ModelScopeLayoutComponent):
11+
"""
12+
Ant Design X: https://x.ant.design/components/actions
13+
"""
14+
15+
EVENTS = [
16+
EventListener("click",
17+
callback=lambda block: block._internal.update(
18+
bind_click_event=True)),
19+
]
20+
21+
# Supported slots
22+
SLOTS = []
23+
24+
def __init__(
25+
self,
26+
status: Literal['loading', 'error', 'running', 'default']
27+
| None = None,
28+
*,
29+
additional_props: dict | None = None,
30+
class_names: dict | str | None = None,
31+
styles: dict | str | None = None,
32+
as_item: str | None = None,
33+
_internal: None = None,
34+
# gradio properties
35+
visible: bool = True,
36+
elem_id: str | None = None,
37+
elem_classes: list[str] | str | None = None,
38+
elem_style: dict | None = None,
39+
render: bool = True,
40+
**kwargs):
41+
super().__init__(visible=visible,
42+
elem_id=elem_id,
43+
elem_classes=elem_classes,
44+
render=render,
45+
as_item=as_item,
46+
elem_style=elem_style,
47+
**kwargs)
48+
self.additional_props = additional_props
49+
self.status = status
50+
self.class_names = class_names
51+
self.styles = styles
52+
53+
FRONTEND_DIR = resolve_frontend_dir("actions", "audio", type="antdx")
54+
55+
@property
56+
def skip_api(self):
57+
return True
58+
59+
def preprocess(self, payload: None) -> None:
60+
return payload
61+
62+
def postprocess(self, value: None) -> None:
63+
64+
return value
65+
66+
def example_payload(self) -> Any:
67+
return None
68+
69+
def example_value(self) -> Any:
70+
return None
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
from __future__ import annotations
2+
3+
from typing import Any
4+
5+
from gradio.events import EventListener
6+
7+
from .....utils.dev import ModelScopeLayoutComponent, resolve_frontend_dir
8+
9+
10+
class AntdXActionsCopy(ModelScopeLayoutComponent):
11+
"""
12+
Ant Design X: https://x.ant.design/components/actions
13+
"""
14+
15+
EVENTS = [
16+
EventListener("click",
17+
callback=lambda block: block._internal.update(
18+
bind_click_event=True)),
19+
]
20+
21+
# Supported slots
22+
SLOTS = ["icon"]
23+
24+
def __init__(
25+
self,
26+
text: str | None = None,
27+
*,
28+
icon: str | None = None,
29+
additional_props: dict | None = None,
30+
class_names: dict | str | None = None,
31+
styles: dict | str | None = None,
32+
as_item: str | None = None,
33+
_internal: None = None,
34+
# gradio properties
35+
visible: bool = True,
36+
elem_id: str | None = None,
37+
elem_classes: list[str] | str | None = None,
38+
elem_style: dict | None = None,
39+
render: bool = True,
40+
**kwargs):
41+
super().__init__(visible=visible,
42+
elem_id=elem_id,
43+
elem_classes=elem_classes,
44+
render=render,
45+
as_item=as_item,
46+
elem_style=elem_style,
47+
**kwargs)
48+
self.additional_props = additional_props
49+
self.text = text
50+
self.icon = icon
51+
self.class_names = class_names
52+
self.styles = styles
53+
54+
FRONTEND_DIR = resolve_frontend_dir("actions", "copy", type="antdx")
55+
56+
@property
57+
def skip_api(self):
58+
return True
59+
60+
def preprocess(self, payload: None) -> None:
61+
return payload
62+
63+
def postprocess(self, value: None) -> None:
64+
65+
return value
66+
67+
def example_payload(self) -> Any:
68+
return None
69+
70+
def example_value(self) -> Any:
71+
return None

0 commit comments

Comments
 (0)