@ds-mo/ui 9.1.0 → 9.2.0
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.
- package/dist/.build-stamp +1 -1
- package/dist/agent-patterns.json +165 -1
- package/dist/agent.json +2110 -634
- package/dist/angular/ds-agent-activity.d.ts +12 -0
- package/dist/angular/ds-agent-activity.js +38 -0
- package/dist/angular/ds-agent-response.d.ts +12 -0
- package/dist/angular/ds-agent-response.js +38 -0
- package/dist/angular/ds-agent-source-list.d.ts +12 -0
- package/dist/angular/ds-agent-source-list.js +38 -0
- package/dist/angular/ds-agent-tool-call.d.ts +12 -0
- package/dist/angular/ds-agent-tool-call.js +38 -0
- package/dist/angular/ds-attachment-list.d.ts +12 -0
- package/dist/angular/ds-attachment-list.js +38 -0
- package/dist/angular/ds-avatar.d.ts +12 -0
- package/dist/angular/ds-avatar.js +38 -0
- package/dist/angular/ds-code-block.d.ts +12 -0
- package/dist/angular/ds-code-block.js +38 -0
- package/dist/angular/ds-conversation-list-item.d.ts +19 -0
- package/dist/angular/ds-conversation-list-item.js +42 -0
- package/dist/angular/ds-conversation-list-section.d.ts +12 -0
- package/dist/angular/ds-conversation-list-section.js +38 -0
- package/dist/angular/ds-conversation-list.d.ts +12 -0
- package/dist/angular/ds-conversation-list.js +37 -0
- package/dist/angular/ds-markdown.d.ts +12 -0
- package/dist/angular/ds-markdown.js +38 -0
- package/dist/angular/ds-menu.d.ts +1 -1
- package/dist/angular/ds-menu.js +3 -3
- package/dist/angular/ds-message-bubble.d.ts +12 -0
- package/dist/angular/ds-message-bubble.js +38 -0
- package/dist/angular/ds-message-composer.d.ts +23 -0
- package/dist/angular/ds-message-composer.js +49 -0
- package/dist/angular/ds-message-scroller.d.ts +15 -0
- package/dist/angular/ds-message-scroller.js +43 -0
- package/dist/angular/ds-message.d.ts +12 -0
- package/dist/angular/ds-message.js +38 -0
- package/dist/angular/ds-panel-tool-header.d.ts +25 -0
- package/dist/angular/ds-panel-tool-header.js +49 -0
- package/dist/angular/ds-panel-tool-search.d.ts +19 -0
- package/dist/angular/ds-panel-tool-search.js +49 -0
- package/dist/angular/ds-panel-tools.d.ts +30 -1
- package/dist/angular/ds-panel-tools.js +14 -5
- package/dist/angular/index.d.ts +1 -1
- package/dist/angular/index.js +17 -0
- package/dist/angular/proxies.d.ts +17 -0
- package/dist/angular/proxies.js +17 -0
- package/dist/components/ds-agent-activity.d.ts +11 -0
- package/dist/components/ds-agent-activity.js +2 -0
- package/dist/components/ds-agent-activity.js.map +1 -0
- package/dist/components/ds-agent-response.d.ts +11 -0
- package/dist/components/ds-agent-response.js +2 -0
- package/dist/components/ds-agent-response.js.map +1 -0
- package/dist/components/ds-agent-source-list.d.ts +11 -0
- package/dist/components/ds-agent-source-list.js +2 -0
- package/dist/components/ds-agent-source-list.js.map +1 -0
- package/dist/components/ds-agent-tool-call.d.ts +11 -0
- package/dist/components/ds-agent-tool-call.js +2 -0
- package/dist/components/ds-agent-tool-call.js.map +1 -0
- package/dist/components/ds-app-shell.js +1 -1
- package/dist/components/ds-app-shell.js.map +1 -1
- package/dist/components/ds-attachment-list.d.ts +11 -0
- package/dist/components/ds-attachment-list.js +2 -0
- package/dist/components/ds-attachment-list.js.map +1 -0
- package/dist/components/ds-avatar.d.ts +11 -0
- package/dist/components/ds-avatar.js +2 -0
- package/dist/components/ds-avatar.js.map +1 -0
- package/dist/components/ds-badge.js +1 -1
- package/dist/components/ds-banner.js +1 -1
- package/dist/components/ds-bar-nav.js +1 -1
- package/dist/components/ds-bar-nav.js.map +1 -1
- package/dist/components/ds-button-filled.js +1 -1
- package/dist/components/ds-button-unfilled.js +1 -1
- package/dist/components/ds-card-data-viz-donut.js +1 -1
- package/dist/components/ds-card-setting.js +1 -1
- package/dist/components/ds-card-shell-data-viz.js +1 -1
- package/dist/components/ds-card.js +1 -1
- package/dist/components/ds-chart-bar.js +1 -1
- package/dist/components/ds-chart-bar.js.map +1 -1
- package/dist/components/ds-chart-donut.js +1 -1
- package/dist/components/ds-chart-legend.js +1 -1
- package/dist/components/ds-chart-line.js +1 -1
- package/dist/components/ds-checkbox.js +1 -1
- package/dist/components/ds-chip.js +1 -1
- package/dist/components/ds-code-block.d.ts +11 -0
- package/dist/components/ds-code-block.js +2 -0
- package/dist/components/ds-code-block.js.map +1 -0
- package/dist/components/ds-conversation-list-item.d.ts +11 -0
- package/dist/components/ds-conversation-list-item.js +2 -0
- package/dist/components/ds-conversation-list-item.js.map +1 -0
- package/dist/components/ds-conversation-list-section.d.ts +11 -0
- package/dist/components/ds-conversation-list-section.js +2 -0
- package/dist/components/ds-conversation-list-section.js.map +1 -0
- package/dist/components/ds-conversation-list.d.ts +11 -0
- package/dist/components/ds-conversation-list.js +2 -0
- package/dist/components/ds-conversation-list.js.map +1 -0
- package/dist/components/ds-divider.js +1 -1
- package/dist/components/ds-divider.js.map +1 -1
- package/dist/components/ds-empty-state.js +1 -1
- package/dist/components/ds-field.js +1 -1
- package/dist/components/ds-icon.js +1 -1
- package/dist/components/ds-input.js +1 -1
- package/dist/components/ds-markdown.d.ts +11 -0
- package/dist/components/ds-markdown.js +2 -0
- package/dist/components/ds-markdown.js.map +1 -0
- package/dist/components/ds-menu.js +1 -1
- package/dist/components/ds-message-bubble.d.ts +11 -0
- package/dist/components/ds-message-bubble.js +2 -0
- package/dist/components/ds-message-bubble.js.map +1 -0
- package/dist/components/ds-message-composer.d.ts +11 -0
- package/dist/components/ds-message-composer.js +2 -0
- package/dist/components/ds-message-composer.js.map +1 -0
- package/dist/components/ds-message-scroller.d.ts +11 -0
- package/dist/components/ds-message-scroller.js +2 -0
- package/dist/components/ds-message-scroller.js.map +1 -0
- package/dist/components/ds-message.d.ts +11 -0
- package/dist/components/ds-message.js +2 -0
- package/dist/components/ds-message.js.map +1 -0
- package/dist/components/ds-modal.js +1 -1
- package/dist/components/ds-panel-nav.js +1 -1
- package/dist/components/ds-panel-nav.js.map +1 -1
- package/dist/components/ds-panel-sub-nav.js +1 -1
- package/dist/components/ds-panel-tool-header.d.ts +11 -0
- package/dist/components/ds-panel-tool-header.js +2 -0
- package/dist/components/ds-panel-tool-header.js.map +1 -0
- package/dist/components/ds-panel-tool-search.d.ts +11 -0
- package/dist/components/ds-panel-tool-search.js +2 -0
- package/dist/components/ds-panel-tool-search.js.map +1 -0
- package/dist/components/ds-panel-tools.js +1 -1
- package/dist/components/ds-panel-tools.js.map +1 -1
- package/dist/components/ds-radio.js +1 -1
- package/dist/components/ds-select-multi.js +1 -1
- package/dist/components/ds-select-multi.js.map +1 -1
- package/dist/components/ds-select.js +1 -1
- package/dist/components/ds-select.js.map +1 -1
- package/dist/components/ds-shell-gradient-picker.js +1 -1
- package/dist/components/ds-shell-gradient-picker.js.map +1 -1
- package/dist/components/ds-shell-gradient-swatch.js +1 -1
- package/dist/components/ds-skeleton.js +1 -1
- package/dist/components/ds-slider.js +1 -1
- package/dist/components/ds-slider.js.map +1 -1
- package/dist/components/ds-swatch-picker.js +1 -1
- package/dist/components/ds-switch.js +1 -1
- package/dist/components/ds-tab-group.js +1 -1
- package/dist/components/ds-tab-group.js.map +1 -1
- package/dist/components/ds-tag.js +1 -1
- package/dist/components/ds-text.js +1 -1
- package/dist/components/ds-tooltip-data-viz.js +1 -1
- package/dist/components/ds-tooltip.js +1 -1
- package/dist/components/index.d.ts +14 -0
- package/dist/components/p--KbMQblZ.js +2 -0
- package/dist/components/p--KbMQblZ.js.map +1 -0
- package/dist/components/p-2br9YDbG.js +2 -0
- package/dist/components/p-2br9YDbG.js.map +1 -0
- package/dist/components/p-41UAx2eq.js +2 -0
- package/dist/components/p-41UAx2eq.js.map +1 -0
- package/dist/components/{p-HBIxvS5C.js → p-B1pWGQn1.js} +2 -2
- package/dist/components/p-B7NbIYjS.js +2 -0
- package/dist/components/p-B7NbIYjS.js.map +1 -0
- package/dist/components/p-BBu_Svz7.js +2 -0
- package/dist/components/p-BBu_Svz7.js.map +1 -0
- package/dist/components/p-BEQB8EnB.js +2 -0
- package/dist/components/p-BEQB8EnB.js.map +1 -0
- package/dist/components/{p-CZ9wemOA.js → p-BFWC17em.js} +2 -2
- package/dist/components/{p-KRGBGTu5.js → p-BO6C8abO.js} +2 -2
- package/dist/components/{p-CbS_WWs2.js → p-BSOZXagj.js} +2 -2
- package/dist/components/p-BSOZXagj.js.map +1 -0
- package/dist/components/{p-DT2MK8Kt.js → p-BZAEZENv.js} +2 -2
- package/dist/components/p-BhC1YyId.js +2 -0
- package/dist/components/p-BhC1YyId.js.map +1 -0
- package/dist/components/p-BjtXYFhw.js +2 -0
- package/dist/components/p-BjtXYFhw.js.map +1 -0
- package/dist/components/{p-B-zhgAvL.js → p-Bo5wikia.js} +2 -2
- package/dist/components/p-Bx1G7P6W.js +2 -0
- package/dist/components/p-Bx1G7P6W.js.map +1 -0
- package/dist/components/p-C0sq948W.js +2 -0
- package/dist/components/p-C0sq948W.js.map +1 -0
- package/dist/components/p-CC1C8s6m.js +2 -0
- package/dist/components/p-CC1C8s6m.js.map +1 -0
- package/dist/components/p-CKaJx0IX.js +2 -0
- package/dist/components/p-CKaJx0IX.js.map +1 -0
- package/dist/components/{p-DyZj3k9S.js → p-CZMEhdlA.js} +2 -2
- package/dist/components/{p-BbV68F23.js → p-CiwdnKKp.js} +2 -2
- package/dist/components/{p-BLzivrE3.js → p-CnM9SW_8.js} +2 -2
- package/dist/components/{p-C7UFYvsO.js → p-CuKn9I5f.js} +2 -2
- package/dist/components/p-DFMM60My.js +2 -0
- package/dist/components/p-DFMM60My.js.map +1 -0
- package/dist/components/p-DIsDiGcp.js +2 -0
- package/dist/components/p-DIsDiGcp.js.map +1 -0
- package/dist/components/p-DVsje4AY.js +2 -0
- package/dist/components/p-DVsje4AY.js.map +1 -0
- package/dist/components/p-Di-ThR90.js +2 -0
- package/dist/components/p-Di-ThR90.js.map +1 -0
- package/dist/components/{p-C7RObioO.js → p-Di4HBckb.js} +2 -2
- package/dist/components/p-a9nGf1s6.js +2 -0
- package/dist/components/p-a9nGf1s6.js.map +1 -0
- package/dist/components/p-gidVv1FX.js +2 -0
- package/dist/components/p-gidVv1FX.js.map +1 -0
- package/dist/components/p-rEe-3KR_.js +2 -0
- package/dist/components/p-rEe-3KR_.js.map +1 -0
- package/dist/components/p-t9Ei1kHP.js +2 -0
- package/dist/components/p-t9Ei1kHP.js.map +1 -0
- package/dist/docs/components.json +7834 -3899
- package/dist/lib/components/Menu/menu-placement.d.ts +13 -0
- package/dist/lib/shell/index.d.ts +1 -1
- package/dist/lib/shell/index.js +8 -0
- package/dist/lib/shell/index.js.map +2 -2
- package/dist/mcp-data/registry/agent-activity.json +158 -0
- package/dist/mcp-data/registry/agent-response.json +211 -0
- package/dist/mcp-data/registry/agent-source-list.json +153 -0
- package/dist/mcp-data/registry/agent-tool-call.json +213 -0
- package/dist/mcp-data/registry/app-shell.json +2 -2
- package/dist/mcp-data/registry/attachment-list.json +137 -0
- package/dist/mcp-data/registry/avatar.json +136 -0
- package/dist/mcp-data/registry/bar-nav.json +2 -2
- package/dist/mcp-data/registry/code-block.json +150 -0
- package/dist/mcp-data/registry/conversation-list-item.json +265 -0
- package/dist/mcp-data/registry/conversation-list-section.json +139 -0
- package/dist/mcp-data/registry/conversation-list.json +101 -0
- package/dist/mcp-data/registry/markdown.json +141 -0
- package/dist/mcp-data/registry/menu.json +27 -7
- package/dist/mcp-data/registry/message-bubble.json +119 -0
- package/dist/mcp-data/registry/message-composer.json +265 -0
- package/dist/mcp-data/registry/message-scroller.json +217 -0
- package/dist/mcp-data/registry/message.json +255 -0
- package/dist/mcp-data/registry/panel-nav.json +2 -2
- package/dist/mcp-data/registry/panel-tool-header.json +342 -0
- package/dist/mcp-data/registry/panel-tool-search.json +387 -0
- package/dist/mcp-data/registry/panel-tools.json +150 -10
- package/dist/mcp-data/registry/registry.json +2146 -619
- package/dist/mcp-data/registry/select.json +1 -1
- package/dist/mcp-data/registry/slider.json +4 -4
- package/dist/mcp-data/registry/tab-group.json +2 -2
- package/dist/mcp-data/registry/text.json +1 -1
- package/dist/react/components.d.ts +17 -0
- package/dist/react/components.js +17 -0
- package/dist/react/ds-agent-activity.d.ts +9 -0
- package/dist/react/ds-agent-activity.js +12 -0
- package/dist/react/ds-agent-response.d.ts +9 -0
- package/dist/react/ds-agent-response.js +12 -0
- package/dist/react/ds-agent-source-list.d.ts +9 -0
- package/dist/react/ds-agent-source-list.js +12 -0
- package/dist/react/ds-agent-tool-call.d.ts +9 -0
- package/dist/react/ds-agent-tool-call.js +12 -0
- package/dist/react/ds-attachment-list.d.ts +9 -0
- package/dist/react/ds-attachment-list.js +12 -0
- package/dist/react/ds-avatar.d.ts +9 -0
- package/dist/react/ds-avatar.js +12 -0
- package/dist/react/ds-code-block.d.ts +9 -0
- package/dist/react/ds-code-block.js +12 -0
- package/dist/react/ds-conversation-list-item.d.ts +14 -0
- package/dist/react/ds-conversation-list-item.js +12 -0
- package/dist/react/ds-conversation-list-section.d.ts +9 -0
- package/dist/react/ds-conversation-list-section.js +12 -0
- package/dist/react/ds-conversation-list.d.ts +9 -0
- package/dist/react/ds-conversation-list.js +12 -0
- package/dist/react/ds-markdown.d.ts +9 -0
- package/dist/react/ds-markdown.js +12 -0
- package/dist/react/ds-message-bubble.d.ts +9 -0
- package/dist/react/ds-message-bubble.js +12 -0
- package/dist/react/ds-message-composer.d.ts +16 -0
- package/dist/react/ds-message-composer.js +16 -0
- package/dist/react/ds-message-scroller.d.ts +12 -0
- package/dist/react/ds-message-scroller.js +12 -0
- package/dist/react/ds-message.d.ts +9 -0
- package/dist/react/ds-message.js +12 -0
- package/dist/react/ds-panel-tool-header.d.ts +17 -0
- package/dist/react/ds-panel-tool-header.js +16 -0
- package/dist/react/ds-panel-tool-search.d.ts +14 -0
- package/dist/react/ds-panel-tool-search.js +16 -0
- package/dist/react/ds-panel-tools.d.ts +10 -0
- package/dist/react/ds-panel-tools.js +3 -0
- package/dist/types/components/AgentActivity/AgentActivity.d.ts +14 -0
- package/dist/types/components/AgentResponse/AgentResponse.d.ts +12 -0
- package/dist/types/components/AgentSourceList/AgentSourceList.d.ts +9 -0
- package/dist/types/components/AgentToolCall/AgentToolCall.d.ts +13 -0
- package/dist/types/components/AppShell/AppShell.d.ts +4 -0
- package/dist/types/components/AttachmentList/AttachmentList.d.ts +8 -0
- package/dist/types/components/Avatar/Avatar.d.ts +8 -0
- package/dist/types/components/CodeBlock/CodeBlock.d.ts +11 -0
- package/dist/types/components/ConversationList/ConversationList.d.ts +4 -0
- package/dist/types/components/ConversationListItem/ConversationListItem.d.ts +22 -0
- package/dist/types/components/ConversationListSection/ConversationListSection.d.ts +9 -0
- package/dist/types/components/Markdown/Markdown.d.ts +15 -0
- package/dist/types/components/Menu/Menu.d.ts +3 -0
- package/dist/types/components/Menu/menu-placement.d.ts +13 -0
- package/dist/types/components/Menu/menu-types.d.ts +1 -1
- package/dist/types/components/Message/Message.d.ts +17 -0
- package/dist/types/components/MessageBubble/MessageBubble.d.ts +6 -0
- package/dist/types/components/MessageComposer/MessageComposer.d.ts +29 -0
- package/dist/types/components/MessageScroller/MessageScroller.d.ts +37 -0
- package/dist/types/components/PanelNav/PanelNav.d.ts +3 -0
- package/dist/types/components/PanelToolHeader/PanelToolHeader.d.ts +34 -0
- package/dist/types/components/PanelToolSearch/PanelToolSearch.d.ts +35 -0
- package/dist/types/components/PanelTools/PanelTools.d.ts +40 -1
- package/dist/types/components/PanelTools/panel-tools-types.d.ts +20 -0
- package/dist/types/components/PanelTools/panel-tools-utils.d.ts +2 -0
- package/dist/types/components/Slider/Slider.d.ts +1 -1
- package/dist/types/components/conversation-types.d.ts +55 -0
- package/dist/types/components.d.ts +1185 -8
- package/dist/types/shell/index.d.ts +1 -1
- package/dist/types/utils/choice-list-parts.d.ts +4 -1
- package/package.json +4 -1
- package/dist/components/p-CXF8yd-g.js +0 -2
- package/dist/components/p-CXF8yd-g.js.map +0 -1
- package/dist/components/p-CbS_WWs2.js.map +0 -1
- package/dist/components/p-VKIsOVza.js +0 -2
- package/dist/components/p-VKIsOVza.js.map +0 -1
- package/dist/components/p-tQ1QHeOE.js +0 -2
- package/dist/components/p-tQ1QHeOE.js.map +0 -1
- /package/dist/components/{p-HBIxvS5C.js.map → p-B1pWGQn1.js.map} +0 -0
- /package/dist/components/{p-CZ9wemOA.js.map → p-BFWC17em.js.map} +0 -0
- /package/dist/components/{p-KRGBGTu5.js.map → p-BO6C8abO.js.map} +0 -0
- /package/dist/components/{p-DT2MK8Kt.js.map → p-BZAEZENv.js.map} +0 -0
- /package/dist/components/{p-B-zhgAvL.js.map → p-Bo5wikia.js.map} +0 -0
- /package/dist/components/{p-DyZj3k9S.js.map → p-CZMEhdlA.js.map} +0 -0
- /package/dist/components/{p-BbV68F23.js.map → p-CiwdnKKp.js.map} +0 -0
- /package/dist/components/{p-BLzivrE3.js.map → p-CnM9SW_8.js.map} +0 -0
- /package/dist/components/{p-C7UFYvsO.js.map → p-CuKn9I5f.js.map} +0 -0
- /package/dist/components/{p-C7RObioO.js.map → p-Di4HBckb.js.map} +0 -0
|
@@ -0,0 +1,387 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
|
3
|
+
"name": "panel-tool-search",
|
|
4
|
+
"title": "PanelToolSearch",
|
|
5
|
+
"description": "Transparent search row for the top of a PanelTools product view, with a fixed 48px allocation around the standard md search control and an optional filter-menu trigger.",
|
|
6
|
+
"type": "registry:ui",
|
|
7
|
+
"meta": {
|
|
8
|
+
"library": "@ds-mo/ui",
|
|
9
|
+
"distribution": "npm",
|
|
10
|
+
"storybook": "https://zainadeel.github.io/compomo/?path=/story/panel-tool-search",
|
|
11
|
+
"source": "src/wc/components/PanelToolSearch/PanelToolSearch.tsx",
|
|
12
|
+
"intentStatus": "complete",
|
|
13
|
+
"intent": {
|
|
14
|
+
"audience": "general",
|
|
15
|
+
"status": "experimental",
|
|
16
|
+
"summary": "Transparent search row for the top of a PanelTools product view, with a fixed 48px allocation around the standard md search control and an optional filter-menu trigger.",
|
|
17
|
+
"useWhen": [
|
|
18
|
+
"A PanelTools base view filters or searches the tool's own content.",
|
|
19
|
+
"Several tool products need the same search-row geometry directly below the shared PanelTools header.",
|
|
20
|
+
"The product needs a compact filter menu next to search while keeping its filter choices and matching policy application-owned."
|
|
21
|
+
],
|
|
22
|
+
"avoidWhen": [
|
|
23
|
+
"The search belongs inside a Select or SelectMulti popup; use that component's searchable behavior.",
|
|
24
|
+
"A form needs a labelled standalone field; compose ds-input inside ds-field instead."
|
|
25
|
+
],
|
|
26
|
+
"commonlyComposedWith": [
|
|
27
|
+
"component:ds-panel-tools",
|
|
28
|
+
"component:ds-conversation-list",
|
|
29
|
+
"component:ds-input"
|
|
30
|
+
],
|
|
31
|
+
"accessibility": [
|
|
32
|
+
"Provide an aria-label that names the searched domain, such as Search agent chats or Search messages.",
|
|
33
|
+
"The standard search clear action restores focus and emits both the empty query and dsClear.",
|
|
34
|
+
"When showFilter is enabled, provide stable filterTriggerId and filterControls values, synchronize filterExpanded with the controlled menu, and restore focus after selection."
|
|
35
|
+
],
|
|
36
|
+
"states": [
|
|
37
|
+
"The row is always 48px high with 8px outer padding and a complete md search recipe: 32px control, text-body-medium at 14px/20px, and a 20px md search icon.",
|
|
38
|
+
"The search icon stays foreground-secondary at rest, hover, focus, active, and while the query is filled.",
|
|
39
|
+
"The row and control surface remain transparent so the AppShell chrome wash is visible behind them.",
|
|
40
|
+
"The row divider remains the same tertiary 1px boundary while the input is focused because it belongs to the 48px container rather than the input control.",
|
|
41
|
+
"With filtering enabled, the md search control, decorative vertical divider, and borderless md Filter action are separated by 8px; filterActive promotes only the trigger foreground without adding a selected fill."
|
|
42
|
+
],
|
|
43
|
+
"responsiveBehavior": [
|
|
44
|
+
"The row fills the available drawer or fullscreen width, allows its search region to shrink inside a 300px drawer without pushing the filter trigger under the tool rail, and does not reduce its control below md density."
|
|
45
|
+
],
|
|
46
|
+
"frameworkCaveats": {
|
|
47
|
+
"customElements": [
|
|
48
|
+
"Listen for dsChange to receive the current string query and dsClear when the clear action is used.",
|
|
49
|
+
"Listen for dsFilterToggle and pair the trigger with an externally controlled ds-menu; product-specific filter labels and filtering remain outside this component."
|
|
50
|
+
],
|
|
51
|
+
"react": [
|
|
52
|
+
"Use DsPanelToolSearch, bind value for controlled state, and handle onDsChange.",
|
|
53
|
+
"Bind the optional filter trigger state and connect onDsFilterToggle to a controlled DsMenu."
|
|
54
|
+
],
|
|
55
|
+
"angular": [
|
|
56
|
+
"Import DsPanelToolSearch and bind value as a property; this search composition is not a form value accessor.",
|
|
57
|
+
"Bind showFilter, filterExpanded, and filterActive, then connect dsFilterToggle to a product-owned ds-menu."
|
|
58
|
+
]
|
|
59
|
+
},
|
|
60
|
+
"references": [
|
|
61
|
+
{
|
|
62
|
+
"label": "Storybook examples",
|
|
63
|
+
"path": "src/wc/components/PanelToolSearch/PanelToolSearch.stories.ts"
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
},
|
|
67
|
+
"api": {
|
|
68
|
+
"props": {
|
|
69
|
+
"ariaLabel": {
|
|
70
|
+
"type": "string",
|
|
71
|
+
"resolvedType": "string",
|
|
72
|
+
"attribute": "aria-label",
|
|
73
|
+
"default": "'Search'",
|
|
74
|
+
"required": false,
|
|
75
|
+
"mutable": false,
|
|
76
|
+
"description": "Accessible name for the search field."
|
|
77
|
+
},
|
|
78
|
+
"controls": {
|
|
79
|
+
"type": "string | undefined",
|
|
80
|
+
"resolvedType": "string | undefined",
|
|
81
|
+
"attribute": "controls",
|
|
82
|
+
"required": false,
|
|
83
|
+
"mutable": false,
|
|
84
|
+
"description": "Optional ID of the results region filtered by this search."
|
|
85
|
+
},
|
|
86
|
+
"filterActive": {
|
|
87
|
+
"type": "boolean",
|
|
88
|
+
"resolvedType": "boolean",
|
|
89
|
+
"attribute": "filter-active",
|
|
90
|
+
"default": "false",
|
|
91
|
+
"required": false,
|
|
92
|
+
"mutable": false,
|
|
93
|
+
"description": "Promote the trigger foreground when one or more filters are applied."
|
|
94
|
+
},
|
|
95
|
+
"filterAriaLabel": {
|
|
96
|
+
"type": "string",
|
|
97
|
+
"resolvedType": "string",
|
|
98
|
+
"attribute": "filter-aria-label",
|
|
99
|
+
"default": "'Filter'",
|
|
100
|
+
"required": false,
|
|
101
|
+
"mutable": false,
|
|
102
|
+
"description": "Accessible name for the filter-menu trigger."
|
|
103
|
+
},
|
|
104
|
+
"filterControls": {
|
|
105
|
+
"type": "string | undefined",
|
|
106
|
+
"resolvedType": "string | undefined",
|
|
107
|
+
"attribute": "filter-controls",
|
|
108
|
+
"required": false,
|
|
109
|
+
"mutable": false,
|
|
110
|
+
"description": "Id of the menu controlled by the filter trigger."
|
|
111
|
+
},
|
|
112
|
+
"filterExpanded": {
|
|
113
|
+
"type": "boolean",
|
|
114
|
+
"resolvedType": "boolean",
|
|
115
|
+
"attribute": "filter-expanded",
|
|
116
|
+
"default": "false",
|
|
117
|
+
"required": false,
|
|
118
|
+
"mutable": false,
|
|
119
|
+
"description": "Whether the controlled filter menu is open."
|
|
120
|
+
},
|
|
121
|
+
"filterTriggerId": {
|
|
122
|
+
"type": "string",
|
|
123
|
+
"resolvedType": "string",
|
|
124
|
+
"attribute": "filter-trigger-id",
|
|
125
|
+
"default": "''",
|
|
126
|
+
"required": false,
|
|
127
|
+
"mutable": false,
|
|
128
|
+
"description": "Stable id placed on the filter trigger for ds-menu anchoring."
|
|
129
|
+
},
|
|
130
|
+
"isInactive": {
|
|
131
|
+
"type": "boolean",
|
|
132
|
+
"resolvedType": "boolean",
|
|
133
|
+
"attribute": "is-inactive",
|
|
134
|
+
"default": "false",
|
|
135
|
+
"required": false,
|
|
136
|
+
"mutable": false,
|
|
137
|
+
"description": "Prevents search interaction while keeping the row visible."
|
|
138
|
+
},
|
|
139
|
+
"placeholder": {
|
|
140
|
+
"type": "string",
|
|
141
|
+
"resolvedType": "string",
|
|
142
|
+
"attribute": "placeholder",
|
|
143
|
+
"default": "'Search'",
|
|
144
|
+
"required": false,
|
|
145
|
+
"mutable": false,
|
|
146
|
+
"description": "Search guidance shown while the query is empty."
|
|
147
|
+
},
|
|
148
|
+
"showFilter": {
|
|
149
|
+
"type": "boolean",
|
|
150
|
+
"resolvedType": "boolean",
|
|
151
|
+
"attribute": "show-filter",
|
|
152
|
+
"default": "false",
|
|
153
|
+
"required": false,
|
|
154
|
+
"mutable": false,
|
|
155
|
+
"description": "Show the optional trailing filter-menu trigger."
|
|
156
|
+
},
|
|
157
|
+
"value": {
|
|
158
|
+
"type": "string",
|
|
159
|
+
"resolvedType": "string",
|
|
160
|
+
"attribute": "value",
|
|
161
|
+
"default": "''",
|
|
162
|
+
"required": false,
|
|
163
|
+
"mutable": true,
|
|
164
|
+
"description": "Current search query."
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
"events": [
|
|
168
|
+
{
|
|
169
|
+
"name": "dsChange",
|
|
170
|
+
"detail": "string",
|
|
171
|
+
"bubbles": true,
|
|
172
|
+
"cancelable": true,
|
|
173
|
+
"composed": true
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"name": "dsClear",
|
|
177
|
+
"detail": "void",
|
|
178
|
+
"bubbles": true,
|
|
179
|
+
"cancelable": true,
|
|
180
|
+
"composed": true
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"name": "dsFilterToggle",
|
|
184
|
+
"detail": "MouseEvent",
|
|
185
|
+
"bubbles": true,
|
|
186
|
+
"cancelable": true,
|
|
187
|
+
"composed": true
|
|
188
|
+
}
|
|
189
|
+
],
|
|
190
|
+
"methods": [
|
|
191
|
+
{
|
|
192
|
+
"name": "focusFilterTrigger",
|
|
193
|
+
"signature": "focusFilterTrigger() => Promise<void>"
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"name": "setFocus",
|
|
197
|
+
"signature": "setFocus() => Promise<void>"
|
|
198
|
+
}
|
|
199
|
+
],
|
|
200
|
+
"slots": []
|
|
201
|
+
},
|
|
202
|
+
"props": {
|
|
203
|
+
"ariaLabel": {
|
|
204
|
+
"type": "string",
|
|
205
|
+
"resolvedType": "string",
|
|
206
|
+
"attribute": "aria-label",
|
|
207
|
+
"default": "'Search'",
|
|
208
|
+
"required": false,
|
|
209
|
+
"mutable": false,
|
|
210
|
+
"description": "Accessible name for the search field."
|
|
211
|
+
},
|
|
212
|
+
"controls": {
|
|
213
|
+
"type": "string | undefined",
|
|
214
|
+
"resolvedType": "string | undefined",
|
|
215
|
+
"attribute": "controls",
|
|
216
|
+
"required": false,
|
|
217
|
+
"mutable": false,
|
|
218
|
+
"description": "Optional ID of the results region filtered by this search."
|
|
219
|
+
},
|
|
220
|
+
"filterActive": {
|
|
221
|
+
"type": "boolean",
|
|
222
|
+
"resolvedType": "boolean",
|
|
223
|
+
"attribute": "filter-active",
|
|
224
|
+
"default": "false",
|
|
225
|
+
"required": false,
|
|
226
|
+
"mutable": false,
|
|
227
|
+
"description": "Promote the trigger foreground when one or more filters are applied."
|
|
228
|
+
},
|
|
229
|
+
"filterAriaLabel": {
|
|
230
|
+
"type": "string",
|
|
231
|
+
"resolvedType": "string",
|
|
232
|
+
"attribute": "filter-aria-label",
|
|
233
|
+
"default": "'Filter'",
|
|
234
|
+
"required": false,
|
|
235
|
+
"mutable": false,
|
|
236
|
+
"description": "Accessible name for the filter-menu trigger."
|
|
237
|
+
},
|
|
238
|
+
"filterControls": {
|
|
239
|
+
"type": "string | undefined",
|
|
240
|
+
"resolvedType": "string | undefined",
|
|
241
|
+
"attribute": "filter-controls",
|
|
242
|
+
"required": false,
|
|
243
|
+
"mutable": false,
|
|
244
|
+
"description": "Id of the menu controlled by the filter trigger."
|
|
245
|
+
},
|
|
246
|
+
"filterExpanded": {
|
|
247
|
+
"type": "boolean",
|
|
248
|
+
"resolvedType": "boolean",
|
|
249
|
+
"attribute": "filter-expanded",
|
|
250
|
+
"default": "false",
|
|
251
|
+
"required": false,
|
|
252
|
+
"mutable": false,
|
|
253
|
+
"description": "Whether the controlled filter menu is open."
|
|
254
|
+
},
|
|
255
|
+
"filterTriggerId": {
|
|
256
|
+
"type": "string",
|
|
257
|
+
"resolvedType": "string",
|
|
258
|
+
"attribute": "filter-trigger-id",
|
|
259
|
+
"default": "''",
|
|
260
|
+
"required": false,
|
|
261
|
+
"mutable": false,
|
|
262
|
+
"description": "Stable id placed on the filter trigger for ds-menu anchoring."
|
|
263
|
+
},
|
|
264
|
+
"isInactive": {
|
|
265
|
+
"type": "boolean",
|
|
266
|
+
"resolvedType": "boolean",
|
|
267
|
+
"attribute": "is-inactive",
|
|
268
|
+
"default": "false",
|
|
269
|
+
"required": false,
|
|
270
|
+
"mutable": false,
|
|
271
|
+
"description": "Prevents search interaction while keeping the row visible."
|
|
272
|
+
},
|
|
273
|
+
"placeholder": {
|
|
274
|
+
"type": "string",
|
|
275
|
+
"resolvedType": "string",
|
|
276
|
+
"attribute": "placeholder",
|
|
277
|
+
"default": "'Search'",
|
|
278
|
+
"required": false,
|
|
279
|
+
"mutable": false,
|
|
280
|
+
"description": "Search guidance shown while the query is empty."
|
|
281
|
+
},
|
|
282
|
+
"showFilter": {
|
|
283
|
+
"type": "boolean",
|
|
284
|
+
"resolvedType": "boolean",
|
|
285
|
+
"attribute": "show-filter",
|
|
286
|
+
"default": "false",
|
|
287
|
+
"required": false,
|
|
288
|
+
"mutable": false,
|
|
289
|
+
"description": "Show the optional trailing filter-menu trigger."
|
|
290
|
+
},
|
|
291
|
+
"value": {
|
|
292
|
+
"type": "string",
|
|
293
|
+
"resolvedType": "string",
|
|
294
|
+
"attribute": "value",
|
|
295
|
+
"default": "''",
|
|
296
|
+
"required": false,
|
|
297
|
+
"mutable": true,
|
|
298
|
+
"description": "Current search query."
|
|
299
|
+
}
|
|
300
|
+
},
|
|
301
|
+
"events": [
|
|
302
|
+
{
|
|
303
|
+
"name": "dsChange",
|
|
304
|
+
"detail": "string",
|
|
305
|
+
"bubbles": true,
|
|
306
|
+
"cancelable": true,
|
|
307
|
+
"composed": true
|
|
308
|
+
},
|
|
309
|
+
{
|
|
310
|
+
"name": "dsClear",
|
|
311
|
+
"detail": "void",
|
|
312
|
+
"bubbles": true,
|
|
313
|
+
"cancelable": true,
|
|
314
|
+
"composed": true
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
"name": "dsFilterToggle",
|
|
318
|
+
"detail": "MouseEvent",
|
|
319
|
+
"bubbles": true,
|
|
320
|
+
"cancelable": true,
|
|
321
|
+
"composed": true
|
|
322
|
+
}
|
|
323
|
+
],
|
|
324
|
+
"methods": [
|
|
325
|
+
{
|
|
326
|
+
"name": "focusFilterTrigger",
|
|
327
|
+
"signature": "focusFilterTrigger() => Promise<void>"
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
"name": "setFocus",
|
|
331
|
+
"signature": "setFocus() => Promise<void>"
|
|
332
|
+
}
|
|
333
|
+
],
|
|
334
|
+
"slots": [],
|
|
335
|
+
"exports": {
|
|
336
|
+
"customElement": "ds-panel-tool-search",
|
|
337
|
+
"react": "DsPanelToolSearch",
|
|
338
|
+
"angular": "DsPanelToolSearch"
|
|
339
|
+
},
|
|
340
|
+
"consumption": {
|
|
341
|
+
"install": "npm install @ds-mo/ui @ds-mo/tokens @ds-mo/icons",
|
|
342
|
+
"cssSetup": "import '@ds-mo/tokens';\nimport '@ds-mo/tokens/reset';\nimport '@ds-mo/tokens/globals';",
|
|
343
|
+
"customElements": {
|
|
344
|
+
"import": "import '@ds-mo/ui/dist/components/ds-panel-tool-search.js';",
|
|
345
|
+
"example": "<ds-panel-tool-search></ds-panel-tool-search>"
|
|
346
|
+
},
|
|
347
|
+
"react": {
|
|
348
|
+
"import": "import { DsPanelToolSearch } from '@ds-mo/ui/react';",
|
|
349
|
+
"example": "<DsPanelToolSearch />"
|
|
350
|
+
},
|
|
351
|
+
"angular": {
|
|
352
|
+
"import": "import { DsPanelToolSearch } from '@ds-mo/ui/angular/ds-panel-tool-search';",
|
|
353
|
+
"example": "<ds-panel-tool-search></ds-panel-tool-search>"
|
|
354
|
+
},
|
|
355
|
+
"peerDependencies": {
|
|
356
|
+
"required": [
|
|
357
|
+
"@ds-mo/tokens ^3.1.1",
|
|
358
|
+
"@ds-mo/icons ^6.2.0"
|
|
359
|
+
],
|
|
360
|
+
"frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
},
|
|
364
|
+
"dependencies": [
|
|
365
|
+
"@ds-mo/ui",
|
|
366
|
+
"@ds-mo/tokens",
|
|
367
|
+
"@ds-mo/icons"
|
|
368
|
+
],
|
|
369
|
+
"registryDependencies": [
|
|
370
|
+
"button-unfilled",
|
|
371
|
+
"divider",
|
|
372
|
+
"icon",
|
|
373
|
+
"text"
|
|
374
|
+
],
|
|
375
|
+
"files": [
|
|
376
|
+
{
|
|
377
|
+
"path": "src/wc/components/PanelToolSearch/PanelToolSearch.css",
|
|
378
|
+
"content": "@import '../../utils/control-density.css';\n@import '../../utils/search-control.css';\n@import '../../utils/typography.css';\n\n:host {\n display: block;\n flex: 0 0 var(--dimension-size-600);\n width: 100%;\n min-width: 0;\n height: var(--dimension-size-600);\n box-sizing: border-box;\n background: transparent;\n}\n\n.panel-tool-search {\n position: relative;\n display: flex;\n align-items: center;\n gap: var(--dimension-space-100);\n width: 100%;\n height: 100%;\n padding: var(--dimension-space-100);\n box-sizing: border-box;\n background: transparent;\n}\n\n.panel-tool-search::after {\n content: '';\n position: absolute;\n inset: auto 0 0;\n height: var(--dimension-stroke-width-012);\n background-color: var(--color-border-tertiary);\n pointer-events: none;\n}\n\n.select-search {\n flex: 1 1 auto;\n width: auto;\n min-width: 0;\n height: var(--dimension-size-400);\n padding: 0;\n}\n\n.select-search::after {\n display: none;\n}\n\n.panel-tool-search__filter-group {\n display: flex;\n flex: 0 0 auto;\n align-items: center;\n gap: var(--dimension-space-100);\n}\n\n.panel-tool-search__divider,\n.panel-tool-search__filter {\n flex: 0 0 auto;\n}\n",
|
|
379
|
+
"type": "registry:ui"
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
"path": "src/wc/components/PanelToolSearch/PanelToolSearch.tsx",
|
|
383
|
+
"content": "import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n} from '@stencil/core';\nimport { ChoiceSearch } from '../../utils/choice-list-parts';\n\n@Component({\n tag: 'ds-panel-tool-search',\n styleUrl: 'PanelToolSearch.css',\n scoped: true,\n})\nexport class PanelToolSearch {\n @Element() el!: HTMLElement;\n\n /** Current search query. */\n @Prop({ mutable: true }) value: string = '';\n /** Search guidance shown while the query is empty. */\n @Prop() placeholder: string = 'Search';\n /** Accessible name for the search field. */\n @Prop({ attribute: 'aria-label' }) ariaLabel: string = 'Search';\n /** Optional ID of the results region filtered by this search. */\n @Prop() controls: string | undefined;\n /** Prevents search interaction while keeping the row visible. */\n @Prop() isInactive: boolean = false;\n /** Show the optional trailing filter-menu trigger. */\n @Prop() showFilter: boolean = false;\n /** Accessible name for the filter-menu trigger. */\n @Prop() filterAriaLabel: string = 'Filter';\n /** Stable id placed on the filter trigger for ds-menu anchoring. */\n @Prop() filterTriggerId: string = '';\n /** Id of the menu controlled by the filter trigger. */\n @Prop() filterControls: string | undefined;\n /** Whether the controlled filter menu is open. */\n @Prop() filterExpanded: boolean = false;\n /** Promote the trigger foreground when one or more filters are applied. */\n @Prop() filterActive: boolean = false;\n\n @Event() dsChange!: EventEmitter<string>;\n @Event() dsClear!: EventEmitter<void>;\n @Event() dsFilterToggle!: EventEmitter<MouseEvent>;\n\n componentDidRender() {\n const input = this.el.querySelector('input');\n if (input && input.value !== this.value) input.value = this.value;\n }\n\n @Method()\n async setFocus() {\n this.el.querySelector('input')?.focus();\n }\n\n @Method()\n async focusFilterTrigger() {\n const trigger = this.el.querySelector('ds-button-unfilled.panel-tool-search__filter') as\n | (HTMLElement & { setFocus?: () => Promise<void> })\n | null;\n await trigger?.setFocus?.();\n }\n\n private handleChange = (value: string) => {\n this.value = value;\n this.dsChange.emit(value);\n };\n\n render() {\n return (\n <Host>\n <div class=\"panel-tool-search\">\n <ChoiceSearch\n value={this.value}\n placeholder={this.placeholder}\n ariaLabel={this.ariaLabel}\n controls={this.controls}\n disabled={this.isInactive}\n inputRef={() => undefined}\n clearLabel=\"Clear\"\n onValueChange={this.handleChange}\n onClear={() => this.dsClear.emit()}\n onKeyDown={() => undefined}\n />\n {this.showFilter ? (\n <div class=\"panel-tool-search__filter-group\">\n <ds-divider\n class=\"panel-tool-search__divider\"\n orientation=\"vertical\"\n length=\"var(--dimension-size-200)\"\n />\n <ds-button-unfilled\n id={this.filterTriggerId || undefined}\n class=\"panel-tool-search__filter\"\n variant=\"icon\"\n icon=\"Filters\"\n size=\"md\"\n aria-label={this.filterAriaLabel}\n haspopup=\"menu\"\n controls={this.filterControls}\n expanded={this.filterExpanded}\n isActive={this.filterActive}\n isInactive={this.isInactive}\n activeFill={false}\n hasBorder={false}\n onDsChange={(event: CustomEvent<boolean>) => {\n event.stopPropagation();\n }}\n onDsClick={(event: CustomEvent<MouseEvent>) => {\n event.stopPropagation();\n this.dsFilterToggle.emit(event.detail);\n }}\n />\n </div>\n ) : null}\n </div>\n </Host>\n );\n }\n}\n",
|
|
384
|
+
"type": "registry:ui"
|
|
385
|
+
}
|
|
386
|
+
]
|
|
387
|
+
}
|