@ds-mo/ui 10.0.0 → 11.0.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.
Files changed (133) hide show
  1. package/dist/.build-stamp +1 -1
  2. package/dist/agent-patterns.json +15 -9
  3. package/dist/agent.json +91 -17
  4. package/dist/angular/ds-typing-indicator.d.ts +12 -0
  5. package/dist/angular/ds-typing-indicator.js +38 -0
  6. package/dist/angular/index.d.ts +1 -1
  7. package/dist/angular/index.js +2 -1
  8. package/dist/angular/proxies.d.ts +1 -0
  9. package/dist/angular/proxies.js +1 -0
  10. package/dist/components/ds-agent-response.js +1 -1
  11. package/dist/components/ds-agent-response.js.map +1 -1
  12. package/dist/components/ds-agent-tool-call.js +1 -1
  13. package/dist/components/ds-app-shell.js +1 -1
  14. package/dist/components/ds-attachment-list.js +1 -1
  15. package/dist/components/ds-avatar.js +1 -1
  16. package/dist/components/ds-avatar.js.map +1 -1
  17. package/dist/components/ds-bar-nav.js +1 -1
  18. package/dist/components/ds-bar-nav.js.map +1 -1
  19. package/dist/components/ds-button-filled.js +1 -1
  20. package/dist/components/ds-button-unfilled.js +1 -1
  21. package/dist/components/ds-card-data-viz-donut.js +1 -1
  22. package/dist/components/ds-card-setting.js +1 -1
  23. package/dist/components/ds-chart-bar.js +1 -1
  24. package/dist/components/ds-chart-donut.js +1 -1
  25. package/dist/components/ds-chart-legend.js +1 -1
  26. package/dist/components/ds-chart-legend.js.map +1 -1
  27. package/dist/components/ds-chart-line.js +1 -1
  28. package/dist/components/ds-checkbox.js +1 -1
  29. package/dist/components/ds-chip.js +1 -1
  30. package/dist/components/ds-chip.js.map +1 -1
  31. package/dist/components/ds-code-block.js +1 -1
  32. package/dist/components/ds-conversation-list-item.js +1 -1
  33. package/dist/components/ds-conversation-list-item.js.map +1 -1
  34. package/dist/components/ds-conversation-list-section.js +1 -1
  35. package/dist/components/ds-conversation-list.js +1 -1
  36. package/dist/components/ds-empty-state.js +1 -1
  37. package/dist/components/ds-field.js +1 -1
  38. package/dist/components/ds-input.js +1 -1
  39. package/dist/components/ds-input.js.map +1 -1
  40. package/dist/components/ds-markdown.js +1 -1
  41. package/dist/components/ds-menu.js +1 -1
  42. package/dist/components/ds-message-bubble.js +1 -1
  43. package/dist/components/ds-message-bubble.js.map +1 -1
  44. package/dist/components/ds-message-composer.js +1 -1
  45. package/dist/components/ds-message-composer.js.map +1 -1
  46. package/dist/components/ds-message-scroller.js +1 -1
  47. package/dist/components/ds-message.js +1 -1
  48. package/dist/components/ds-modal.js +1 -1
  49. package/dist/components/ds-panel-nav.js +1 -1
  50. package/dist/components/ds-panel-nav.js.map +1 -1
  51. package/dist/components/ds-panel-sub-nav.js +1 -1
  52. package/dist/components/ds-panel-sub-nav.js.map +1 -1
  53. package/dist/components/ds-panel-tool-header.js +1 -1
  54. package/dist/components/ds-panel-tool-search.js +1 -1
  55. package/dist/components/ds-panel-tool-search.js.map +1 -1
  56. package/dist/components/ds-panel-tools.js +1 -1
  57. package/dist/components/ds-panel-tools.js.map +1 -1
  58. package/dist/components/ds-radio.js +1 -1
  59. package/dist/components/ds-radio.js.map +1 -1
  60. package/dist/components/ds-select-multi.js +1 -1
  61. package/dist/components/ds-select-multi.js.map +1 -1
  62. package/dist/components/ds-select.js +1 -1
  63. package/dist/components/ds-select.js.map +1 -1
  64. package/dist/components/ds-shell-gradient-picker.js +1 -1
  65. package/dist/components/ds-shell-gradient-picker.js.map +1 -1
  66. package/dist/components/ds-shell-gradient-swatch.js +1 -1
  67. package/dist/components/ds-skeleton.js +1 -1
  68. package/dist/components/ds-skeleton.js.map +1 -1
  69. package/dist/components/ds-swatch-picker.js +1 -1
  70. package/dist/components/ds-tab-group.js +1 -1
  71. package/dist/components/ds-tab-group.js.map +1 -1
  72. package/dist/components/ds-tag.js +1 -1
  73. package/dist/components/ds-tag.js.map +1 -1
  74. package/dist/components/ds-toast.js +1 -1
  75. package/dist/components/ds-tooltip-data-viz.js +1 -1
  76. package/dist/components/ds-tooltip-data-viz.js.map +1 -1
  77. package/dist/components/ds-tooltip.js +1 -1
  78. package/dist/components/ds-typing-indicator.d.ts +11 -0
  79. package/dist/components/ds-typing-indicator.js +2 -0
  80. package/dist/components/ds-typing-indicator.js.map +1 -0
  81. package/dist/components/{p-CxyjoTN1.js → p-BEWtqFX7.js} +2 -2
  82. package/dist/components/p-BMwnjAIq.js +2 -0
  83. package/dist/components/{p-DM-95BX1.js.map → p-BMwnjAIq.js.map} +1 -1
  84. package/dist/components/p-C3nDIMX5.js +2 -0
  85. package/dist/components/{p-DhsO0939.js.map → p-C3nDIMX5.js.map} +1 -1
  86. package/dist/components/p-C8e2A66f.js +2 -0
  87. package/dist/components/{p-Bet_UjML.js.map → p-C8e2A66f.js.map} +1 -1
  88. package/dist/components/p-CTFBf97-.js +2 -0
  89. package/dist/components/{p-DsbhBb5F.js.map → p-CTFBf97-.js.map} +1 -1
  90. package/dist/components/{p-DZAtgSZo.js → p-CbckeueL.js} +2 -2
  91. package/dist/components/p-CjP8sYlo.js +2 -0
  92. package/dist/components/{p-CS12e52R.js.map → p-CjP8sYlo.js.map} +1 -1
  93. package/dist/components/{p-BTo4pNdp.js → p-DJ78wdNv.js} +2 -2
  94. package/dist/components/p-DTqCBjUj.js +2 -0
  95. package/dist/components/{p-CKnoWZd9.js.map → p-DTqCBjUj.js.map} +1 -1
  96. package/dist/components/p-DirD-b2y.js +2 -0
  97. package/dist/components/{p-BJUcsBHt.js.map → p-DirD-b2y.js.map} +1 -1
  98. package/dist/components/{p-B4RQoNmL.js → p-Hw-HMjCk.js} +2 -2
  99. package/dist/components/{p-CyoHRqy6.js → p-M5pt9I13.js} +2 -2
  100. package/dist/components/{p-P_4vE1ub.js → p-bDx_rlLm.js} +2 -2
  101. package/dist/docs/components.json +72 -25
  102. package/dist/mcp-data/registry/agent-response.json +5 -5
  103. package/dist/mcp-data/registry/conversation-list-item.json +2 -2
  104. package/dist/mcp-data/registry/message-bubble.json +19 -14
  105. package/dist/mcp-data/registry/message-composer.json +5 -3
  106. package/dist/mcp-data/registry/message-scroller.json +1 -1
  107. package/dist/mcp-data/registry/panel-nav.json +3 -2
  108. package/dist/mcp-data/registry/registry.json +93 -16
  109. package/dist/mcp-data/registry/skeleton.json +2 -2
  110. package/dist/mcp-data/registry/typing-indicator.json +127 -0
  111. package/dist/react/components.d.ts +1 -0
  112. package/dist/react/components.js +1 -0
  113. package/dist/react/ds-typing-indicator.d.ts +9 -0
  114. package/dist/react/ds-typing-indicator.js +12 -0
  115. package/dist/types/components/MessageBubble/MessageBubble.d.ts +1 -1
  116. package/dist/types/components/TypingIndicator/TypingIndicator.d.ts +6 -0
  117. package/dist/types/components.d.ts +28 -2
  118. package/package.json +1 -1
  119. package/dist/components/p-BJUcsBHt.js +0 -2
  120. package/dist/components/p-Bet_UjML.js +0 -2
  121. package/dist/components/p-CKnoWZd9.js +0 -2
  122. package/dist/components/p-CS12e52R.js +0 -2
  123. package/dist/components/p-DBJ2I3mH.js +0 -2
  124. package/dist/components/p-DBJ2I3mH.js.map +0 -1
  125. package/dist/components/p-DM-95BX1.js +0 -2
  126. package/dist/components/p-DhsO0939.js +0 -2
  127. package/dist/components/p-DsbhBb5F.js +0 -2
  128. /package/dist/components/{p-CxyjoTN1.js.map → p-BEWtqFX7.js.map} +0 -0
  129. /package/dist/components/{p-DZAtgSZo.js.map → p-CbckeueL.js.map} +0 -0
  130. /package/dist/components/{p-BTo4pNdp.js.map → p-DJ78wdNv.js.map} +0 -0
  131. /package/dist/components/{p-B4RQoNmL.js.map → p-Hw-HMjCk.js.map} +0 -0
  132. /package/dist/components/{p-CyoHRqy6.js.map → p-M5pt9I13.js.map} +0 -0
  133. /package/dist/components/{p-P_4vE1ub.js.map → p-bDx_rlLm.js.map} +0 -0
@@ -135,10 +135,11 @@
135
135
  "Streaming state supplements rather than replaces meaningful textual status."
136
136
  ],
137
137
  "states": [
138
- "The owner replaces immutable part arrays as scripted or live output changes."
138
+ "The owner replaces immutable part arrays as scripted or live output changes.",
139
+ "AgentResponse renders directly in Message without borrowing a plain MessageBubble surface."
139
140
  ],
140
141
  "responsiveBehavior": [
141
- "Rich content uses the wider ghost message treatment while respecting transcript constraints."
142
+ "Rich content uses the available transcript width while respecting readable measure and overflow constraints."
142
143
  ],
143
144
  "references": [
144
145
  {
@@ -191,8 +192,7 @@
191
192
  "agent-tool-call",
192
193
  "attachment-list",
193
194
  "markdown",
194
- "message",
195
- "message-bubble"
195
+ "message"
196
196
  ]
197
197
  },
198
198
  {
@@ -2260,7 +2260,7 @@
2260
2260
  "Busy and error are generic channel-neutral states; the owning product supplies suitable status wording. A busy row pairs its body-small status with the sm 16px Loader at an 8px gap.",
2261
2261
  "Any positive unreadCount renders one dot on the title row rather than a visible counter; the accessible row name may still announce the exact unread quantity.",
2262
2262
  "Hover and press use the shared interaction hover and pressed overlays. Only the selected conversation uses the persistent active fill.",
2263
- "The title uses body-medium emphasis, not title-small, and the body-small preview truncates after one line. Unread titles use primary foreground; read titles use secondary foreground.",
2263
+ "The title uses body-medium, not title-small, and the body-small preview truncates after one line. Unread titles use emphasis with primary foreground; read titles use regular weight with secondary foreground.",
2264
2264
  "The actions slot overlays the row at an 8px right inset without changing title or preview measure, and paints above the row interaction wash while that wash remains active."
2265
2265
  ],
2266
2266
  "responsiveBehavior": [
@@ -3573,7 +3573,7 @@
3573
3573
  {
3574
3574
  "name": "message-bubble",
3575
3575
  "title": "MessageBubble",
3576
- "description": "Visible message content surface with a body-medium default, separated from message-row direction and metadata.",
3576
+ "description": "Visible plain-message surface with a body-medium default, separated from message-row direction and metadata.",
3577
3577
  "type": "registry:ui",
3578
3578
  "meta": {
3579
3579
  "library": "@ds-mo/ui",
@@ -3584,18 +3584,18 @@
3584
3584
  "intent": {
3585
3585
  "audience": "general",
3586
3586
  "status": "experimental",
3587
- "summary": "Visible message content surface with a body-medium default, separated from message-row direction and metadata.",
3587
+ "summary": "Visible plain-message surface with a body-medium default, separated from message-row direction and metadata.",
3588
3588
  "useWhen": [
3589
- "Message content needs a primary, secondary, or ghost surface within a Message row.",
3590
- "Plain incoming or outgoing message copy should use the shared body-medium regular typography recipe without application styling."
3589
+ "Plain user-sent or received person-to-person message copy needs a visible surface within a Message row.",
3590
+ "Plain conversation copy should use the shared body-medium regular typography recipe without application styling."
3591
3591
  ],
3592
3592
  "avoidWhen": [
3593
3593
  "The surface is a general card, callout, or form container.",
3594
- "The application wants to promote ordinary conversation copy to body-large; message typography stays body-medium unless a distinct authored rich-content element owns its own complete type recipe."
3594
+ "The content is a rich agent response; compose AgentResponse directly in Message.",
3595
+ "The state only indicates that another participant is typing; use TypingIndicator."
3595
3596
  ],
3596
3597
  "commonlyComposedWith": [
3597
- "component:ds-message",
3598
- "component:ds-markdown"
3598
+ "component:ds-message"
3599
3599
  ],
3600
3600
  "patterns": [
3601
3601
  "pattern:conversation"
@@ -3603,8 +3603,13 @@
3603
3603
  "accessibility": [
3604
3604
  "Surface styling does not add semantics; failed delivery belongs in Message metadata below the unchanged bubble rather than in an error bubble treatment."
3605
3605
  ],
3606
+ "states": [
3607
+ "The user variant represents user-sent copy in agent and person-to-person channels and uses secondary foreground.",
3608
+ "The received variant represents ordinary incoming person-to-person copy.",
3609
+ "Typing and rich agent output are not MessageBubble variants."
3610
+ ],
3606
3611
  "responsiveBehavior": [
3607
- "The bubble wraps content and allows wide ghost responses to use more transcript width."
3612
+ "The bubble wraps plain message copy within the transcript width."
3608
3613
  ],
3609
3614
  "references": [
3610
3615
  {
@@ -3669,7 +3674,9 @@
3669
3674
  ],
3670
3675
  "states": [
3671
3676
  "The owner controls draft value and transport state; the composer emits intent without performing transport.",
3672
- "Use the tools slot for leading actions such as add and the actions slot for trailing actions such as dictation; the built-in submit or stop action remains last.",
3677
+ "Use the tools slot for leading actions such as add and the actions slot for trailing actions such as dictation; the built-in submit or stop action remains last with an 8px gap from the preceding action. These icon buttons use the standard non-rounded control radius.",
3678
+ "The composer surface uses the 10px --dimension-radius-125 token.",
3679
+ "Mouse or keyboard focus on the textarea gives the complete composer surface the same bold-brand inset stroke width and color as an active Input; the native textarea never draws a separate outline.",
3673
3680
  "The submit action defaults to brand for both agent and person-to-person conversations; change submitIntent only when the action consequence has a different semantic intent."
3674
3681
  ],
3675
3682
  "responsiveBehavior": [
@@ -3778,7 +3785,7 @@
3778
3785
  "Selection and transcript interaction release automatic following.",
3779
3786
  "Opening saved history, message jumps, and prepended history preserve deliberate position.",
3780
3787
  "The scroll-to-latest action is absent at the live edge, appears only after the reader moves away, and disappears again after returning to the newest message.",
3781
- "Place a composer container in the overlay slot so messages scroll behind it; the scroller measures its live height, reserves matching transcript clearance, and keeps scroll-to-latest above it."
3788
+ "Place a composer container with 8px padding on every side in the overlay slot so messages scroll behind it; the scroller measures its live height, reserves matching transcript clearance, and keeps scroll-to-latest above it."
3782
3789
  ],
3783
3790
  "responsiveBehavior": [
3784
3791
  "Transcript width is readable while the scroll region fills available height."
@@ -4051,6 +4058,7 @@
4051
4058
  "Dashboard presents day-to-day operational destinations; Settings presents administrative and configuration destinations.",
4052
4059
  "The standard footer switches the entire destination collection and navStyle between Dashboard and Settings and exposes the user/account entry.",
4053
4060
  "The host owns the external user menu opened from dsNavUserAction.",
4061
+ "Item and header controls inherit the shared md control radius while local shell geometry continues to own collapsed layout and footer animation positioning.",
4054
4062
  "On desktop, allow user-controlled expand and collapse and persist the preference with storageKey when cross-session persistence is appropriate."
4055
4063
  ],
4056
4064
  "responsiveBehavior": [
@@ -5772,7 +5780,7 @@
5772
5780
  "The owner preserves focus and meaningful reading order when replacing placeholders with real content."
5773
5781
  ],
5774
5782
  "states": [
5775
- "Text, icon, and control variants are atomic metric canvases aligned to their corresponding design-system recipes.",
5783
+ "Text, icon, and control variants are atomic metric canvases aligned to their corresponding design-system recipes; control atoms inherit the selected control density's default radius.",
5776
5784
  "Compose approximate line count, hierarchy, widths, and control placement without simulating actual values.",
5777
5785
  "Shimmer is on by default and may be disabled for a static placeholder. Reduced motion always produces the static final shape.",
5778
5786
  "Rounded is an optional visual treatment for icon and control atoms rather than a semantic state.",
@@ -7173,6 +7181,75 @@
7173
7181
  "registryDependencies": [
7174
7182
  "text"
7175
7183
  ]
7184
+ },
7185
+ {
7186
+ "name": "typing-indicator",
7187
+ "title": "TypingIndicator",
7188
+ "description": "Dedicated transient status for another participant actively composing a message.",
7189
+ "type": "registry:ui",
7190
+ "meta": {
7191
+ "library": "@ds-mo/ui",
7192
+ "distribution": "npm",
7193
+ "storybook": "https://zainadeel.github.io/compomo/?path=/story/typing-indicator",
7194
+ "source": "src/wc/components/TypingIndicator/TypingIndicator.tsx",
7195
+ "intentStatus": "complete",
7196
+ "intent": {
7197
+ "audience": "general",
7198
+ "status": "experimental",
7199
+ "summary": "Dedicated transient status for another participant actively composing a message.",
7200
+ "useWhen": [
7201
+ "An agent or person-to-person conversation needs to show that another participant is currently typing."
7202
+ ],
7203
+ "avoidWhen": [
7204
+ "An operation is loading or streaming a response; use Loader or the owning region's busy state.",
7205
+ "The status represents persisted message content; use Message and MessageBubble."
7206
+ ],
7207
+ "commonlyComposedWith": [
7208
+ "component:ds-message",
7209
+ "component:ds-message-scroller"
7210
+ ],
7211
+ "patterns": [
7212
+ "pattern:conversation"
7213
+ ],
7214
+ "accessibility": [
7215
+ "Provide concise localized status text that names the participant when that context is not otherwise clear.",
7216
+ "The polite atomic status announces typing without representing it as a message bubble."
7217
+ ],
7218
+ "states": [
7219
+ "TypingIndicator is transient conversation status, never persisted message content.",
7220
+ "Its body-small secondary text may shimmer, while reduced-motion preferences retain a static readable status."
7221
+ ],
7222
+ "responsiveBehavior": [
7223
+ "The indicator fills the message content width and wraps only when localized status text requires it."
7224
+ ],
7225
+ "references": [
7226
+ {
7227
+ "label": "Storybook example",
7228
+ "path": "src/wc/components/TypingIndicator/TypingIndicator.stories.ts"
7229
+ }
7230
+ ]
7231
+ },
7232
+ "props": {
7233
+ "label": {
7234
+ "type": "string",
7235
+ "required": false
7236
+ }
7237
+ },
7238
+ "events": [],
7239
+ "slots": [],
7240
+ "exports": {
7241
+ "customElement": "ds-typing-indicator",
7242
+ "react": "DsTypingIndicator",
7243
+ "angular": "DsTypingIndicator"
7244
+ }
7245
+ },
7246
+ "dependencies": [
7247
+ "@ds-mo/ui",
7248
+ "@ds-mo/tokens"
7249
+ ],
7250
+ "registryDependencies": [
7251
+ "text"
7252
+ ]
7176
7253
  }
7177
7254
  ]
7178
7255
  }
@@ -54,7 +54,7 @@
54
54
  "The owner preserves focus and meaningful reading order when replacing placeholders with real content."
55
55
  ],
56
56
  "states": [
57
- "Text, icon, and control variants are atomic metric canvases aligned to their corresponding design-system recipes.",
57
+ "Text, icon, and control variants are atomic metric canvases aligned to their corresponding design-system recipes; control atoms inherit the selected control density's default radius.",
58
58
  "Compose approximate line count, hierarchy, widths, and control placement without simulating actual values.",
59
59
  "Shimmer is on by default and may be disabled for a static placeholder. Reduced motion always produces the static final shape.",
60
60
  "Rounded is an optional visual treatment for icon and control atoms rather than a semantic state.",
@@ -270,7 +270,7 @@
270
270
  "files": [
271
271
  {
272
272
  "path": "src/wc/components/Skeleton/Skeleton.css",
273
- "content": "@import '../../utils/control-density.css';\n@import '../../utils/shimmer.css';\n\n:host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n min-width: 0;\n vertical-align: middle;\n --ds-skeleton-base: var(--color-foreground-quaternary);\n --ds-shimmer: var(--color-shimmer-shimmer);\n}\n\n.skeleton__shape {\n --ds-shimmer-surface-base: var(--ds-skeleton-base);\n\n display: block;\n width: 100%;\n height: 100%;\n flex: 0 0 auto;\n background-color: var(--ds-skeleton-base);\n border-radius: var(--dimension-radius-025);\n}\n\n/* ── Background context ────────────────────────────────────────────────── */\n\n:host(.skeleton--background-medium) {\n --ds-skeleton-base: var(--color-foreground-on-medium-background-quaternary);\n --ds-shimmer: var(--color-shimmer-shimmer-on-medium-background);\n}\n\n:host(.skeleton--background-bold) {\n --ds-skeleton-base: var(--color-foreground-on-bold-background-quaternary);\n --ds-shimmer: var(--color-shimmer-shimmer-on-bold-background);\n}\n\n:host(.skeleton--background-strong) {\n --ds-skeleton-base: var(--color-foreground-on-strong-background-quaternary);\n --ds-shimmer: var(--color-shimmer-shimmer-on-strong-background);\n}\n\n:host(.skeleton--background-translucent) {\n --ds-skeleton-base: var(--color-translucent-foreground-quaternary);\n --ds-shimmer: var(--color-translucent-shimmer);\n}\n\n:host(.skeleton--background-inverted) {\n --ds-skeleton-base: var(--color-inverted-foreground-quaternary);\n --ds-shimmer: var(--color-inverted-shimmer);\n}\n\n:host(.skeleton--background-media) {\n --ds-skeleton-base: var(--color-media-foreground-quaternary);\n --ds-shimmer: var(--color-media-shimmer);\n}\n\n:host(.skeleton--background-always-dark) {\n --ds-skeleton-base: var(--color-always-dark-foreground-quaternary);\n --ds-shimmer: var(--color-always-dark-shimmer);\n}\n\n:host(.skeleton--background-navigation) {\n --ds-skeleton-base: var(--color-navigation-foreground-quaternary);\n --ds-shimmer: var(--color-navigation-shimmer);\n}\n\n/* ── Text ──────────────────────────────────────────────────────────────── */\n\n:host(.skeleton--text) {\n width: 100%;\n height: var(--ds-skeleton-canvas-size);\n padding-block: var(--dimension-space-025);\n}\n\n:host(.skeleton--text) .skeleton__shape {\n height: calc(var(--ds-skeleton-canvas-size) - var(--dimension-space-050));\n}\n\n:host(.skeleton--text-text-display-medium) { --ds-skeleton-canvas-size: var(--typography-lineheight-3xl); }\n:host(.skeleton--text-text-display-small) { --ds-skeleton-canvas-size: var(--typography-lineheight-2xl); }\n:host(.skeleton--text-text-title-large) { --ds-skeleton-canvas-size: var(--typography-lineheight-xl); }\n:host(.skeleton--text-text-title-medium),\n:host(.skeleton--text-text-body-large) { --ds-skeleton-canvas-size: var(--typography-lineheight-lg); }\n:host(.skeleton--text-text-title-small),\n:host(.skeleton--text-text-body-medium) { --ds-skeleton-canvas-size: var(--typography-lineheight-md); }\n:host(.skeleton--text-text-body-small) { --ds-skeleton-canvas-size: var(--typography-lineheight-sm); }\n:host(.skeleton--text-text-caption) { --ds-skeleton-canvas-size: var(--typography-lineheight-xs); }\n\n/* ── Icon ──────────────────────────────────────────────────────────────── */\n\n:host(.skeleton--icon) {\n width: var(--ds-skeleton-canvas-size);\n height: var(--ds-skeleton-canvas-size);\n padding: var(--dimension-space-025);\n}\n\n:host(.skeleton--icon) .skeleton__shape {\n width: calc(var(--ds-skeleton-canvas-size) - var(--dimension-space-050));\n height: calc(var(--ds-skeleton-canvas-size) - var(--dimension-space-050));\n}\n\n:host(.skeleton--icon.skeleton--rounded) .skeleton__shape {\n border-radius: var(--dimension-radius-half);\n}\n\n:host(.skeleton--icon-xs) { --ds-skeleton-canvas-size: var(--dimension-iconography-xs); }\n:host(.skeleton--icon-sm) { --ds-skeleton-canvas-size: var(--dimension-iconography-sm); }\n:host(.skeleton--icon-md) { --ds-skeleton-canvas-size: var(--dimension-iconography-md); }\n:host(.skeleton--icon-lg) { --ds-skeleton-canvas-size: var(--dimension-iconography-lg); }\n:host(.skeleton--icon-xl) { --ds-skeleton-canvas-size: var(--dimension-iconography-xl); }\n:host(.skeleton--icon-2xl) { --ds-skeleton-canvas-size: var(--dimension-iconography-2xl); }\n:host(.skeleton--icon-3xl) { --ds-skeleton-canvas-size: var(--dimension-iconography-3xl); }\n\n/* ── Control ───────────────────────────────────────────────────────────── */\n\n:host(.skeleton--control) {\n width: 100%;\n height: var(--ds-control-height);\n}\n\n:host(.skeleton--control.skeleton--rounded) .skeleton__shape {\n border-radius: var(--dimension-radius-half);\n}\n",
273
+ "content": "@import '../../utils/control-density.css';\n@import '../../utils/shimmer.css';\n\n:host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n min-width: 0;\n vertical-align: middle;\n --ds-skeleton-base: var(--color-foreground-quaternary);\n --ds-shimmer: var(--color-shimmer-shimmer);\n}\n\n.skeleton__shape {\n --ds-shimmer-surface-base: var(--ds-skeleton-base);\n\n display: block;\n width: 100%;\n height: 100%;\n flex: 0 0 auto;\n background-color: var(--ds-skeleton-base);\n border-radius: var(--dimension-radius-025);\n}\n\n/* ── Background context ────────────────────────────────────────────────── */\n\n:host(.skeleton--background-medium) {\n --ds-skeleton-base: var(--color-foreground-on-medium-background-quaternary);\n --ds-shimmer: var(--color-shimmer-shimmer-on-medium-background);\n}\n\n:host(.skeleton--background-bold) {\n --ds-skeleton-base: var(--color-foreground-on-bold-background-quaternary);\n --ds-shimmer: var(--color-shimmer-shimmer-on-bold-background);\n}\n\n:host(.skeleton--background-strong) {\n --ds-skeleton-base: var(--color-foreground-on-strong-background-quaternary);\n --ds-shimmer: var(--color-shimmer-shimmer-on-strong-background);\n}\n\n:host(.skeleton--background-translucent) {\n --ds-skeleton-base: var(--color-translucent-foreground-quaternary);\n --ds-shimmer: var(--color-translucent-shimmer);\n}\n\n:host(.skeleton--background-inverted) {\n --ds-skeleton-base: var(--color-inverted-foreground-quaternary);\n --ds-shimmer: var(--color-inverted-shimmer);\n}\n\n:host(.skeleton--background-media) {\n --ds-skeleton-base: var(--color-media-foreground-quaternary);\n --ds-shimmer: var(--color-media-shimmer);\n}\n\n:host(.skeleton--background-always-dark) {\n --ds-skeleton-base: var(--color-always-dark-foreground-quaternary);\n --ds-shimmer: var(--color-always-dark-shimmer);\n}\n\n:host(.skeleton--background-navigation) {\n --ds-skeleton-base: var(--color-navigation-foreground-quaternary);\n --ds-shimmer: var(--color-navigation-shimmer);\n}\n\n/* ── Text ──────────────────────────────────────────────────────────────── */\n\n:host(.skeleton--text) {\n width: 100%;\n height: var(--ds-skeleton-canvas-size);\n padding-block: var(--dimension-space-025);\n}\n\n:host(.skeleton--text) .skeleton__shape {\n height: calc(var(--ds-skeleton-canvas-size) - var(--dimension-space-050));\n}\n\n:host(.skeleton--text-text-display-medium) { --ds-skeleton-canvas-size: var(--typography-lineheight-3xl); }\n:host(.skeleton--text-text-display-small) { --ds-skeleton-canvas-size: var(--typography-lineheight-2xl); }\n:host(.skeleton--text-text-title-large) { --ds-skeleton-canvas-size: var(--typography-lineheight-xl); }\n:host(.skeleton--text-text-title-medium),\n:host(.skeleton--text-text-body-large) { --ds-skeleton-canvas-size: var(--typography-lineheight-lg); }\n:host(.skeleton--text-text-title-small),\n:host(.skeleton--text-text-body-medium) { --ds-skeleton-canvas-size: var(--typography-lineheight-md); }\n:host(.skeleton--text-text-body-small) { --ds-skeleton-canvas-size: var(--typography-lineheight-sm); }\n:host(.skeleton--text-text-caption) { --ds-skeleton-canvas-size: var(--typography-lineheight-xs); }\n\n/* ── Icon ──────────────────────────────────────────────────────────────── */\n\n:host(.skeleton--icon) {\n width: var(--ds-skeleton-canvas-size);\n height: var(--ds-skeleton-canvas-size);\n padding: var(--dimension-space-025);\n}\n\n:host(.skeleton--icon) .skeleton__shape {\n width: calc(var(--ds-skeleton-canvas-size) - var(--dimension-space-050));\n height: calc(var(--ds-skeleton-canvas-size) - var(--dimension-space-050));\n}\n\n:host(.skeleton--icon.skeleton--rounded) .skeleton__shape {\n border-radius: var(--dimension-radius-half);\n}\n\n:host(.skeleton--icon-xs) { --ds-skeleton-canvas-size: var(--dimension-iconography-xs); }\n:host(.skeleton--icon-sm) { --ds-skeleton-canvas-size: var(--dimension-iconography-sm); }\n:host(.skeleton--icon-md) { --ds-skeleton-canvas-size: var(--dimension-iconography-md); }\n:host(.skeleton--icon-lg) { --ds-skeleton-canvas-size: var(--dimension-iconography-lg); }\n:host(.skeleton--icon-xl) { --ds-skeleton-canvas-size: var(--dimension-iconography-xl); }\n:host(.skeleton--icon-2xl) { --ds-skeleton-canvas-size: var(--dimension-iconography-2xl); }\n:host(.skeleton--icon-3xl) { --ds-skeleton-canvas-size: var(--dimension-iconography-3xl); }\n\n/* ── Control ───────────────────────────────────────────────────────────── */\n\n:host(.skeleton--control) {\n width: 100%;\n height: var(--ds-control-height);\n}\n\n:host(.skeleton--control) .skeleton__shape {\n border-radius: var(--ds-control-radius, var(--dimension-radius-025));\n}\n\n:host(.skeleton--control.skeleton--rounded) .skeleton__shape {\n border-radius: var(--dimension-radius-half);\n}\n",
274
274
  "type": "registry:ui"
275
275
  },
276
276
  {
@@ -0,0 +1,127 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry-item.json",
3
+ "name": "typing-indicator",
4
+ "title": "TypingIndicator",
5
+ "description": "Dedicated transient status for another participant actively composing a message.",
6
+ "type": "registry:ui",
7
+ "meta": {
8
+ "library": "@ds-mo/ui",
9
+ "distribution": "npm",
10
+ "storybook": "https://zainadeel.github.io/compomo/?path=/story/typing-indicator",
11
+ "source": "src/wc/components/TypingIndicator/TypingIndicator.tsx",
12
+ "intentStatus": "complete",
13
+ "intent": {
14
+ "audience": "general",
15
+ "status": "experimental",
16
+ "summary": "Dedicated transient status for another participant actively composing a message.",
17
+ "useWhen": [
18
+ "An agent or person-to-person conversation needs to show that another participant is currently typing."
19
+ ],
20
+ "avoidWhen": [
21
+ "An operation is loading or streaming a response; use Loader or the owning region's busy state.",
22
+ "The status represents persisted message content; use Message and MessageBubble."
23
+ ],
24
+ "commonlyComposedWith": [
25
+ "component:ds-message",
26
+ "component:ds-message-scroller"
27
+ ],
28
+ "patterns": [
29
+ "pattern:conversation"
30
+ ],
31
+ "accessibility": [
32
+ "Provide concise localized status text that names the participant when that context is not otherwise clear.",
33
+ "The polite atomic status announces typing without representing it as a message bubble."
34
+ ],
35
+ "states": [
36
+ "TypingIndicator is transient conversation status, never persisted message content.",
37
+ "Its body-small secondary text may shimmer, while reduced-motion preferences retain a static readable status."
38
+ ],
39
+ "responsiveBehavior": [
40
+ "The indicator fills the message content width and wraps only when localized status text requires it."
41
+ ],
42
+ "references": [
43
+ {
44
+ "label": "Storybook example",
45
+ "path": "src/wc/components/TypingIndicator/TypingIndicator.stories.ts"
46
+ }
47
+ ]
48
+ },
49
+ "api": {
50
+ "props": {
51
+ "label": {
52
+ "type": "string",
53
+ "resolvedType": "string",
54
+ "attribute": "label",
55
+ "default": "'Typing…'",
56
+ "required": false,
57
+ "mutable": false,
58
+ "description": "Concise localized status text, ideally naming the participant who is typing."
59
+ }
60
+ },
61
+ "events": [],
62
+ "methods": [],
63
+ "slots": []
64
+ },
65
+ "props": {
66
+ "label": {
67
+ "type": "string",
68
+ "resolvedType": "string",
69
+ "attribute": "label",
70
+ "default": "'Typing…'",
71
+ "required": false,
72
+ "mutable": false,
73
+ "description": "Concise localized status text, ideally naming the participant who is typing."
74
+ }
75
+ },
76
+ "events": [],
77
+ "methods": [],
78
+ "slots": [],
79
+ "exports": {
80
+ "customElement": "ds-typing-indicator",
81
+ "react": "DsTypingIndicator",
82
+ "angular": "DsTypingIndicator"
83
+ },
84
+ "consumption": {
85
+ "install": "npm install @ds-mo/ui @ds-mo/tokens @ds-mo/icons",
86
+ "cssSetup": "import '@ds-mo/tokens';\nimport '@ds-mo/tokens/reset';\nimport '@ds-mo/tokens/globals';",
87
+ "customElements": {
88
+ "import": "import '@ds-mo/ui/dist/components/ds-typing-indicator.js';",
89
+ "example": "<ds-typing-indicator></ds-typing-indicator>"
90
+ },
91
+ "react": {
92
+ "import": "import { DsTypingIndicator } from '@ds-mo/ui/react';",
93
+ "example": "<DsTypingIndicator />"
94
+ },
95
+ "angular": {
96
+ "import": "import { DsTypingIndicator } from '@ds-mo/ui/angular/ds-typing-indicator';",
97
+ "example": "<ds-typing-indicator></ds-typing-indicator>"
98
+ },
99
+ "peerDependencies": {
100
+ "required": [
101
+ "@ds-mo/tokens ^3.1.1",
102
+ "@ds-mo/icons ^6.3.0"
103
+ ],
104
+ "frameworks": "Custom Elements; React 18/19 wrappers; Angular 19-22 standalone adapters."
105
+ }
106
+ }
107
+ },
108
+ "dependencies": [
109
+ "@ds-mo/ui",
110
+ "@ds-mo/tokens"
111
+ ],
112
+ "registryDependencies": [
113
+ "text"
114
+ ],
115
+ "files": [
116
+ {
117
+ "path": "src/wc/components/TypingIndicator/TypingIndicator.css",
118
+ "content": ":host {\n display: block;\n width: 100%;\n min-width: 0;\n box-sizing: border-box;\n}\n",
119
+ "type": "registry:ui"
120
+ },
121
+ {
122
+ "path": "src/wc/components/TypingIndicator/TypingIndicator.tsx",
123
+ "content": "import { Component, h, Host, Prop } from '@stencil/core';\n\n@Component({\n tag: 'ds-typing-indicator',\n styleUrl: 'TypingIndicator.css',\n scoped: true,\n})\nexport class TypingIndicator {\n /** Concise localized status text, ideally naming the participant who is typing. */\n @Prop() label: string = 'Typing…';\n\n render() {\n return (\n <Host role=\"status\" aria-live=\"polite\" aria-atomic=\"true\">\n <ds-text as=\"span\" variant=\"text-body-small\" color=\"secondary\" shimmer>\n {this.label}\n </ds-text>\n </Host>\n );\n }\n}\n",
124
+ "type": "registry:ui"
125
+ }
126
+ ]
127
+ }
@@ -59,3 +59,4 @@ export { DsText } from "./ds-text.js";
59
59
  export { DsToast } from "./ds-toast.js";
60
60
  export { DsTooltipDataViz } from "./ds-tooltip-data-viz.js";
61
61
  export { DsTooltip } from "./ds-tooltip.js";
62
+ export { DsTypingIndicator } from "./ds-typing-indicator.js";
@@ -60,3 +60,4 @@ export { DsText } from "./ds-text.js";
60
60
  export { DsToast } from "./ds-toast.js";
61
61
  export { DsTooltipDataViz } from "./ds-tooltip-data-viz.js";
62
62
  export { DsTooltip } from "./ds-tooltip.js";
63
+ export { DsTypingIndicator } from "./ds-typing-indicator.js";
@@ -0,0 +1,9 @@
1
+ /**
2
+ * This file was automatically generated by the Stencil React Output Target.
3
+ * Changes to this file may cause incorrect behavior and will be lost if the code is regenerated.
4
+ */
5
+ import type { StencilReactComponent } from '@stencil/react-output-target/runtime';
6
+ import type { Components } from "@ds-mo/ui/dist/components";
7
+ import { DsTypingIndicator as DsTypingIndicatorElement } from "@ds-mo/ui/dist/components/ds-typing-indicator.js";
8
+ export type DsTypingIndicatorEvents = NonNullable<unknown>;
9
+ export declare const DsTypingIndicator: StencilReactComponent<DsTypingIndicatorElement, DsTypingIndicatorEvents, Components.DsTypingIndicator>;
@@ -0,0 +1,12 @@
1
+ 'use client';
2
+ import { createComponent } from '@stencil/react-output-target/runtime';
3
+ import React from 'react';
4
+ import { DsTypingIndicator as DsTypingIndicatorElement, defineCustomElement as defineDsTypingIndicator } from "@ds-mo/ui/dist/components/ds-typing-indicator.js";
5
+ export const DsTypingIndicator = /*@__PURE__*/ createComponent({
6
+ tagName: 'ds-typing-indicator',
7
+ elementClass: DsTypingIndicatorElement,
8
+ // @ts-ignore - ignore potential React type mismatches between the Stencil Output Target and your project.
9
+ react: React,
10
+ events: {},
11
+ defineCustomElement: defineDsTypingIndicator
12
+ });
@@ -1,4 +1,4 @@
1
- export type MessageBubbleVariant = 'primary' | 'secondary' | 'ghost';
1
+ export type MessageBubbleVariant = 'user' | 'received';
2
2
  export declare class MessageBubble {
3
3
  variant: MessageBubbleVariant;
4
4
  render(): any;
@@ -0,0 +1,6 @@
1
+ export declare class TypingIndicator {
2
+ /** Concise localized status text, ideally naming the participant who is typing. */
3
+ label: string;
4
+ render(): any;
5
+ }
6
+ //# sourceMappingURL=TypingIndicator.d.ts.map
@@ -1081,7 +1081,7 @@ export namespace Components {
1081
1081
  }
1082
1082
  interface DsMessageBubble {
1083
1083
  /**
1084
- * @default 'secondary'
1084
+ * @default 'received'
1085
1085
  */
1086
1086
  "variant": MessageBubbleVariant;
1087
1087
  }
@@ -2285,6 +2285,13 @@ export namespace Components {
2285
2285
  */
2286
2286
  "y": number;
2287
2287
  }
2288
+ interface DsTypingIndicator {
2289
+ /**
2290
+ * Concise localized status text, ideally naming the participant who is typing.
2291
+ * @default 'Typing…'
2292
+ */
2293
+ "label": string;
2294
+ }
2288
2295
  }
2289
2296
  export interface DsBarNavCustomEvent<T> extends CustomEvent<T> {
2290
2297
  detail: T;
@@ -3180,6 +3187,12 @@ declare global {
3180
3187
  prototype: HTMLDsTooltipDataVizElement;
3181
3188
  new (): HTMLDsTooltipDataVizElement;
3182
3189
  };
3190
+ interface HTMLDsTypingIndicatorElement extends Components.DsTypingIndicator, HTMLStencilElement {
3191
+ }
3192
+ var HTMLDsTypingIndicatorElement: {
3193
+ prototype: HTMLDsTypingIndicatorElement;
3194
+ new (): HTMLDsTypingIndicatorElement;
3195
+ };
3183
3196
  interface HTMLElementTagNameMap {
3184
3197
  "ds-agent-activity": HTMLDsAgentActivityElement;
3185
3198
  "ds-agent-response": HTMLDsAgentResponseElement;
@@ -3238,6 +3251,7 @@ declare global {
3238
3251
  "ds-toast": HTMLDsToastElement;
3239
3252
  "ds-tooltip": HTMLDsTooltipElement;
3240
3253
  "ds-tooltip-data-viz": HTMLDsTooltipDataVizElement;
3254
+ "ds-typing-indicator": HTMLDsTypingIndicatorElement;
3241
3255
  }
3242
3256
  }
3243
3257
  declare namespace LocalJSX {
@@ -4279,7 +4293,7 @@ declare namespace LocalJSX {
4279
4293
  }
4280
4294
  interface DsMessageBubble {
4281
4295
  /**
4282
- * @default 'secondary'
4296
+ * @default 'received'
4283
4297
  */
4284
4298
  "variant"?: MessageBubbleVariant;
4285
4299
  }
@@ -5584,6 +5598,13 @@ declare namespace LocalJSX {
5584
5598
  */
5585
5599
  "y"?: number;
5586
5600
  }
5601
+ interface DsTypingIndicator {
5602
+ /**
5603
+ * Concise localized status text, ideally naming the participant who is typing.
5604
+ * @default 'Typing…'
5605
+ */
5606
+ "label"?: string;
5607
+ }
5587
5608
 
5588
5609
  interface DsAgentActivityAttributes {
5589
5610
  "heading": string;
@@ -6129,6 +6150,9 @@ declare namespace LocalJSX {
6129
6150
  "y": number;
6130
6151
  "delay": string;
6131
6152
  }
6153
+ interface DsTypingIndicatorAttributes {
6154
+ "label": string;
6155
+ }
6132
6156
 
6133
6157
  interface IntrinsicElements {
6134
6158
  "ds-agent-activity": Omit<DsAgentActivity, keyof DsAgentActivityAttributes> & { [K in keyof DsAgentActivity & keyof DsAgentActivityAttributes]?: DsAgentActivity[K] } & { [K in keyof DsAgentActivity & keyof DsAgentActivityAttributes as `attr:${K}`]?: DsAgentActivityAttributes[K] } & { [K in keyof DsAgentActivity & keyof DsAgentActivityAttributes as `prop:${K}`]?: DsAgentActivity[K] };
@@ -6188,6 +6212,7 @@ declare namespace LocalJSX {
6188
6212
  "ds-toast": Omit<DsToast, keyof DsToastAttributes> & { [K in keyof DsToast & keyof DsToastAttributes]?: DsToast[K] } & { [K in keyof DsToast & keyof DsToastAttributes as `attr:${K}`]?: DsToastAttributes[K] } & { [K in keyof DsToast & keyof DsToastAttributes as `prop:${K}`]?: DsToast[K] };
6189
6213
  "ds-tooltip": Omit<DsTooltip, keyof DsTooltipAttributes> & { [K in keyof DsTooltip & keyof DsTooltipAttributes]?: DsTooltip[K] } & { [K in keyof DsTooltip & keyof DsTooltipAttributes as `attr:${K}`]?: DsTooltipAttributes[K] } & { [K in keyof DsTooltip & keyof DsTooltipAttributes as `prop:${K}`]?: DsTooltip[K] } & OneOf<"label", DsTooltip["label"], DsTooltipAttributes["label"]>;
6190
6214
  "ds-tooltip-data-viz": Omit<DsTooltipDataViz, keyof DsTooltipDataVizAttributes> & { [K in keyof DsTooltipDataViz & keyof DsTooltipDataVizAttributes]?: DsTooltipDataViz[K] } & { [K in keyof DsTooltipDataViz & keyof DsTooltipDataVizAttributes as `attr:${K}`]?: DsTooltipDataVizAttributes[K] } & { [K in keyof DsTooltipDataViz & keyof DsTooltipDataVizAttributes as `prop:${K}`]?: DsTooltipDataViz[K] };
6215
+ "ds-typing-indicator": Omit<DsTypingIndicator, keyof DsTypingIndicatorAttributes> & { [K in keyof DsTypingIndicator & keyof DsTypingIndicatorAttributes]?: DsTypingIndicator[K] } & { [K in keyof DsTypingIndicator & keyof DsTypingIndicatorAttributes as `attr:${K}`]?: DsTypingIndicatorAttributes[K] } & { [K in keyof DsTypingIndicator & keyof DsTypingIndicatorAttributes as `prop:${K}`]?: DsTypingIndicator[K] };
6191
6216
  }
6192
6217
  }
6193
6218
  export { LocalJSX as JSX };
@@ -6296,6 +6321,7 @@ declare module "@stencil/core" {
6296
6321
  * keep the instance mounted while the cursor moves so tracking stays instant.
6297
6322
  */
6298
6323
  "ds-tooltip-data-viz": LocalJSX.IntrinsicElements["ds-tooltip-data-viz"] & JSXBase.HTMLAttributes<HTMLDsTooltipDataVizElement>;
6324
+ "ds-typing-indicator": LocalJSX.IntrinsicElements["ds-typing-indicator"] & JSXBase.HTMLAttributes<HTMLDsTypingIndicatorElement>;
6299
6325
  }
6300
6326
  }
6301
6327
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ds-mo/ui",
3
- "version": "10.0.0",
3
+ "version": "11.0.0",
4
4
  "description": "CompoMo — composable web components styled with TokoMo design tokens",
5
5
  "keywords": [
6
6
  "web-components",
@@ -1,2 +0,0 @@
1
- import{p as e,H as s,c as a,h as o,a as n,t as i}from"./index.js";import{d as t}from"./p-DrDHC7V6.js";import{d}from"./p-CKnoWZd9.js";import{d as l}from"./p-DuNZGFkV.js";import{d as r}from"./p-Cpr3K41-.js";import{d as c}from"./p-CZZYGqKz.js";const h=()=>`.ds-control--md.sc-ds-panel-tool-header-h,.ds-control--md.sc-ds-panel-tool-header{--ds-control-height:var(--dimension-size-400);--ds-control-icon:var(--dimension-iconography-md);--ds-control-padding-inline:var(--dimension-space-075);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-050);--ds-control-radius:var(--dimension-radius-025)}.ds-control--sm.sc-ds-panel-tool-header-h,.ds-control--sm.sc-ds-panel-tool-header{--ds-control-height:var(--dimension-size-300);--ds-control-icon:var(--dimension-iconography-sm);--ds-control-padding-inline:var(--dimension-space-050);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-025);--ds-control-radius:var(--dimension-radius-025)}.ds-control--xs.sc-ds-panel-tool-header-h,.ds-control--xs.sc-ds-panel-tool-header{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0;--ds-control-radius:var(--dimension-radius-025)}.sc-ds-panel-tool-header-h{display:block;flex:0 0 auto;box-sizing:border-box}.panel-tool-header.sc-ds-panel-tool-header{display:flex;align-items:center;gap:var(--dimension-space-050);height:var(--dimension-size-600);padding:var(--dimension-space-100);box-sizing:border-box;border-bottom:var(--dimension-stroke-width-012) solid var(--color-border-tertiary);color:var(--color-foreground-primary);-webkit-user-select:none;user-select:none}.panel-tool-header__leading.sc-ds-panel-tool-header,.panel-tool-header__trailing.sc-ds-panel-tool-header{display:flex;align-items:center;min-width:0}.panel-tool-header__leading.sc-ds-panel-tool-header:empty,.panel-tool-header__trailing.sc-ds-panel-tool-header:empty{display:none}.panel-tool-header__leading.sc-ds-panel-tool-header{flex:0 0 auto}.panel-tool-header__trailing.sc-ds-panel-tool-header{flex:0 0 auto;gap:var(--dimension-space-050);justify-content:flex-end}ds-text.panel-tool-header__heading.sc-ds-panel-tool-header{display:inline-flex;flex:1 1 0;align-items:center;width:auto;min-width:0;height:var(--ds-control-height);padding-inline:calc(var(--ds-control-padding-inline) + var(--ds-control-label-inset));box-sizing:border-box;text-align:left;-webkit-user-select:none;user-select:none}`;const p=e(class e extends s{constructor(e){super();if(e!==false){this.__registerHost()}this.dsBack=a(this,"dsBack");this.dsMenuToggle=a(this,"dsMenuToggle");this.dsAction=a(this,"dsAction");this.heading="";this.showBack=false;this.backIcon="ChevronLeft";this.backAriaLabel="Back";this.showMenu=true;this.menuAriaLabel="More options";this.menuTriggerId="";this.menuExpanded=false;this.actions=[]}async focusMenuTrigger(){const e=this.el.querySelector('ds-button-unfilled.panel-tool-header__menu, ds-button-unfilled[data-header-action-id="menu"]');await(e?.setFocus?.())}render(){const e=this.actions.length>0;const s=e?this.actions:this.showMenu?[{id:"menu",icon:"Ellipses",ariaLabel:this.menuAriaLabel,triggerId:this.menuTriggerId,controls:this.menuControls,expanded:this.menuExpanded,haspopup:"menu"}]:[];return o(n,{key:"730614824e04298a90aa91aa93a20e75d8e97024"},o("header",{key:"dab3457d5f63b81e7139e66a882b979f90f4f177",class:"panel-tool-header"},o("div",{key:"307fd6762cb63b1f91c65f4fa96e6b5f0238187a",class:"panel-tool-header__leading"},this.showBack?o("ds-button-unfilled",{class:"panel-tool-header__back",variant:"icon",icon:this.backIcon,size:"md","aria-label":this.backAriaLabel,activeFill:false,hasBorder:false,onDsClick:e=>this.dsBack.emit(e.detail)}):null),o("ds-text",{key:"8ec96f2fba2002a8ded74a90f14882f6bed1dfca",class:"panel-tool-header__heading ds-control--md",as:"h2",variant:"text-body-medium",emphasis:true,color:"primary",lineTruncation:1},this.heading),o("div",{key:"f115242167a0019b45a791b9f8ea08118c62b95c",class:"panel-tool-header__trailing"},s.map((s=>o("ds-button-unfilled",{key:s.id,id:s.triggerId||undefined,"data-header-action-id":s.id,class:{"panel-tool-header__action":true,"panel-tool-header__menu":s.id==="menu"},variant:"icon",icon:s.icon,size:"md","aria-label":s.ariaLabel,haspopup:s.haspopup,controls:s.controls,expanded:s.expanded,pressed:s.pressed,isActive:!!s.expanded,isInactive:s.isInactive,activeFill:false,hasBorder:false,onDsClick:a=>{if(!e&&s.id==="menu")this.dsMenuToggle.emit(a.detail);this.dsAction.emit({id:s.id,originalEvent:a.detail})}}))))))}get el(){return this}static get style(){return h()}},[2,"ds-panel-tool-header",{heading:[1],showBack:[4,"show-back"],backIcon:[1,"back-icon"],backAriaLabel:[1,"back-aria-label"],showMenu:[4,"show-menu"],menuAriaLabel:[1,"menu-aria-label"],menuTriggerId:[1,"menu-trigger-id"],menuControls:[1,"menu-controls"],menuExpanded:[4,"menu-expanded"],actions:[16],focusMenuTrigger:[64]}]);function m(){if(typeof customElements==="undefined"){return}const e=["ds-panel-tool-header","ds-badge","ds-button-unfilled","ds-icon","ds-loader","ds-text"];e.forEach((e=>{switch(e){case"ds-panel-tool-header":if(!customElements.get(i(e))){customElements.define(i(e),p)}break;case"ds-badge":if(!customElements.get(i(e))){t()}break;case"ds-button-unfilled":if(!customElements.get(i(e))){d()}break;case"ds-icon":if(!customElements.get(i(e))){l()}break;case"ds-loader":if(!customElements.get(i(e))){r()}break;case"ds-text":if(!customElements.get(i(e))){c()}break}}))}m();export{p as P,m as d};
2
- //# sourceMappingURL=p-BJUcsBHt.js.map
@@ -1,2 +0,0 @@
1
- import{p as t,H as e,h as s,a,t as c}from"./index.js";import{d as i}from"./p-DuNZGFkV.js";import{d as n}from"./p-CZZYGqKz.js";const d=()=>`.sc-ds-empty-state-h{display:block;width:100%;height:100%}.sc-ds-empty-state-h,.empty-state.sc-ds-empty-state,.empty-state__text.sc-ds-empty-state{box-sizing:border-box}.empty-state.sc-ds-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--dimension-space-100);height:100%;width:100%;text-align:center}.empty-state__icon.sc-ds-empty-state{flex:0 0 auto}.empty-state__text.sc-ds-empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--dimension-space-050);width:100%}`;const o=t(class t extends e{constructor(t){super();if(t!==false){this.__registerHost()}this.body=""}render(){const t=Boolean(this.heading?.trim());const e=t&&Boolean(this.icon);return s(a,{key:"bd428cd5c903e852bbae7af1382bc9253641112c"},s("div",{key:"6948014af4060a838864650c98b0f4efc9ee1d63",class:"empty-state"},e&&s("ds-icon",{key:"afecf48851e2b00f2546b3d66c11fdbf093c36a4",class:"empty-state__icon",name:this.icon,size:"xl",color:"primary"}),s("div",{key:"4de87b87effcc013255c4f853f1c4610b50e2f45",class:"empty-state__text"},t&&s("ds-text",{key:"c3bb4643be38cff2cb1e2a8a6edb5b599d90b431",class:"empty-state__title",as:"div",variant:"text-title-small",color:"primary",align:"center"},this.heading),this.body&&s("ds-text",{key:"ff4bad5375ca4573beb176c00759a72ee499224d",class:"empty-state__body",as:"p",variant:"text-body-medium",color:"secondary",align:"center"},this.body))))}static get style(){return d()}},[2,"ds-empty-state",{icon:[1],heading:[1],body:[1]}]);function m(){if(typeof customElements==="undefined"){return}const t=["ds-empty-state","ds-icon","ds-text"];t.forEach((t=>{switch(t){case"ds-empty-state":if(!customElements.get(c(t))){customElements.define(c(t),o)}break;case"ds-icon":if(!customElements.get(c(t))){i()}break;case"ds-text":if(!customElements.get(c(t))){n()}break}}))}m();export{o as E,m as d};
2
- //# sourceMappingURL=p-Bet_UjML.js.map
@@ -1,2 +0,0 @@
1
- import{p as n,H as t,c as i,h as o,a as e,t as s}from"./index.js";import{d}from"./p-DrDHC7V6.js";import{d as r}from"./p-DuNZGFkV.js";import{d as l}from"./p-Cpr3K41-.js";import{d as a}from"./p-CZZYGqKz.js";import{C as c}from"./p-Cx-ywr1e.js";import{c as u}from"./p-DuFm-ieS.js";const f=()=>`.sc-ds-button-unfilled-h{--ds-focus-ring-width:var(--dimension-stroke-width-025, 2px);--ds-focus-ring-offset:var(--dimension-space-025, 2px);--ds-focus-ring-color:var(--color-interaction-focus)}.ds-focus-ring.sc-ds-button-unfilled-h:focus-visible,.ds-focus-ring.sc-ds-button-unfilled:focus-visible{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}.ds-focus-ring.ds-focus-ring--visible.sc-ds-button-unfilled-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-button-unfilled{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}.ds-focus-ring-inset.sc-ds-button-unfilled-h:focus-visible,.ds-focus-ring-inset.sc-ds-button-unfilled:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-button-unfilled-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-button-unfilled:focus-visible::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-button-unfilled-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-button-unfilled{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-button-unfilled-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-button-unfilled::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}.ds-interaction-fill.sc-ds-button-unfilled-h,.ds-interaction-fill.sc-ds-button-unfilled{position:relative;z-index:0;--ds-interaction-hover:var(--color-interaction-hover);--ds-interaction-pressed:var(--color-interaction-pressed);--ds-interaction-active:var(--color-interaction-active-brand);--ds-interaction-border-width:0px;--ds-interaction-border-color:transparent}.ds-interaction-fill.sc-ds-button-unfilled-h::before,.ds-interaction-fill.sc-ds-button-unfilled::before,.ds-interaction-fill.sc-ds-button-unfilled-h::after,.ds-interaction-fill.sc-ds-button-unfilled::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;transition:none}.ds-interaction-fill.sc-ds-button-unfilled-h::before,.ds-interaction-fill.sc-ds-button-unfilled::before{z-index:1}.ds-interaction-fill.sc-ds-button-unfilled-h::after,.ds-interaction-fill.sc-ds-button-unfilled::after{z-index:3;box-shadow:inset 0 0 0 var(--ds-interaction-border-width) var(--ds-interaction-border-color)}.ds-interaction-fill--bordered.sc-ds-button-unfilled-h,.ds-interaction-fill--bordered.sc-ds-button-unfilled{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-button-unfilled-h::before,.ds-interaction-fill--selected.sc-ds-button-unfilled::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-button-unfilled-h,.ds-interaction-fill--selected.sc-ds-button-unfilled{--ds-interaction-dot-ring:var(--ds-interaction-active)}.ds-interaction-fill.sc-ds-button-unfilled-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-button-unfilled:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}.ds-interaction-fill.sc-ds-button-unfilled-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-button-unfilled:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill.sc-ds-button-unfilled-h>.ds-interaction-fill__content.sc-ds-button-unfilled,.ds-interaction-fill.sc-ds-button-unfilled>.ds-interaction-fill__content.sc-ds-button-unfilled,.ds-interaction-fill__content.sc-ds-button-unfilled{position:relative;z-index:2}.ds-interaction-fill--on-faint.sc-ds-button-unfilled-h,.ds-interaction-fill--on-faint.sc-ds-button-unfilled{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-button-unfilled-h,.ds-interaction-fill--on-medium.sc-ds-button-unfilled{--ds-interaction-hover:var(--color-interaction-on-medium-background-hover);--ds-interaction-pressed:var(--color-interaction-on-medium-background-pressed);--ds-interaction-active:var(--color-interaction-on-medium-background-active);--ds-focus-ring-color:var(--color-interaction-on-medium-background-focus)}.ds-interaction-fill--on-bold.sc-ds-button-unfilled-h,.ds-interaction-fill--on-bold.sc-ds-button-unfilled{--ds-interaction-hover:var(--color-interaction-on-bold-background-hover);--ds-interaction-pressed:var(--color-interaction-on-bold-background-pressed);--ds-interaction-active:var(--color-interaction-on-bold-background-active);--ds-focus-ring-color:var(--color-interaction-on-bold-background-focus)}.ds-interaction-fill--on-strong.sc-ds-button-unfilled-h,.ds-interaction-fill--on-strong.sc-ds-button-unfilled{--ds-interaction-hover:var(--color-interaction-on-strong-background-hover);--ds-interaction-pressed:var(--color-interaction-on-strong-background-pressed);--ds-interaction-active:var(--color-interaction-on-strong-background-active);--ds-focus-ring-color:var(--color-interaction-on-strong-background-focus)}.ds-interaction-fill--on-translucent.sc-ds-button-unfilled-h,.ds-interaction-fill--on-translucent.sc-ds-button-unfilled{--ds-interaction-hover:var(--color-translucent-interaction-hover);--ds-interaction-pressed:var(--color-translucent-interaction-pressed);--ds-interaction-active:var(--color-translucent-interaction-active);--ds-focus-ring-color:var(--color-translucent-interaction-focus)}.ds-interaction-fill--on-inverted.sc-ds-button-unfilled-h,.ds-interaction-fill--on-inverted.sc-ds-button-unfilled{--ds-interaction-hover:var(--color-inverted-interaction-hover);--ds-interaction-pressed:var(--color-inverted-interaction-pressed);--ds-interaction-active:var(--color-inverted-interaction-active);--ds-focus-ring-color:var(--color-inverted-interaction-focus)}.ds-interaction-fill--on-media.sc-ds-button-unfilled-h,.ds-interaction-fill--on-media.sc-ds-button-unfilled{--ds-interaction-hover:var(--color-media-interaction-hover);--ds-interaction-pressed:var(--color-media-interaction-pressed);--ds-interaction-active:var(--color-media-interaction-active);--ds-focus-ring-color:var(--color-media-interaction-focus)}.ds-interaction-fill--on-always-dark.sc-ds-button-unfilled-h,.ds-interaction-fill--on-always-dark.sc-ds-button-unfilled{--ds-interaction-hover:var(--color-always-dark-interaction-hover);--ds-interaction-pressed:var(--color-always-dark-interaction-pressed);--ds-interaction-active:var(--color-always-dark-interaction-active);--ds-focus-ring-color:var(--color-always-dark-interaction-focus)}.ds-interaction-fill--on-navigation.sc-ds-button-unfilled-h,.ds-interaction-fill--on-navigation.sc-ds-button-unfilled{--ds-interaction-hover:var(--color-navigation-interaction-hover);--ds-interaction-pressed:var(--color-navigation-interaction-pressed);--ds-interaction-active:var(--color-navigation-interaction-active);--ds-focus-ring-color:var(--color-navigation-interaction-focus)}.ds-control-inactive.sc-ds-button-unfilled-h,.ds-control-inactive.sc-ds-button-unfilled{opacity:0.25;pointer-events:none;cursor:not-allowed}.ds-control--md.sc-ds-button-unfilled-h,.ds-control--md.sc-ds-button-unfilled{--ds-control-height:var(--dimension-size-400);--ds-control-icon:var(--dimension-iconography-md);--ds-control-padding-inline:var(--dimension-space-075);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-050);--ds-control-radius:var(--dimension-radius-025)}.ds-control--sm.sc-ds-button-unfilled-h,.ds-control--sm.sc-ds-button-unfilled{--ds-control-height:var(--dimension-size-300);--ds-control-icon:var(--dimension-iconography-sm);--ds-control-padding-inline:var(--dimension-space-050);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-025);--ds-control-radius:var(--dimension-radius-025)}.ds-control--xs.sc-ds-button-unfilled-h,.ds-control--xs.sc-ds-button-unfilled{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0;--ds-control-radius:var(--dimension-radius-025)}.ds-control-width--hug.sc-ds-button-unfilled-h,.ds-control-width--hug.sc-ds-button-unfilled{width:fit-content;max-width:100%;flex:0 0 auto;align-self:flex-start}.ds-control-width--fill.sc-ds-button-unfilled-h,.ds-control-width--fill.sc-ds-button-unfilled{width:100%;min-width:0;flex:1 1 auto;align-self:stretch}.sc-ds-button-unfilled-h{display:inline-flex;outline:none;--ds-button-unfilled-fg:var(--color-foreground-secondary);--ds-button-unfilled-fg-active:var(--color-foreground-primary);--ds-button-unfilled-dot-ring:var(--color-background-secondary);--ds-button-unfilled-border:var(--color-border-secondary)}.button-unfilled-host--icon.ds-control-width--hug.sc-ds-button-unfilled-h{width:var(--ds-control-height, var(--dimension-size-400));height:var(--ds-control-height, var(--dimension-size-400));min-width:var(--ds-control-height, var(--dimension-size-400));min-height:var(--ds-control-height, var(--dimension-size-400))}.button-unfilled-host--icon.ds-control-width--fill.sc-ds-button-unfilled-h{height:var(--ds-control-height, var(--dimension-size-400));min-height:var(--ds-control-height, var(--dimension-size-400))}.ds-control-width--fill.sc-ds-button-unfilled-h .button-unfilled.sc-ds-button-unfilled{width:100%}.button-unfilled.sc-ds-button-unfilled{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding:0 var(--ds-control-padding-inline, var(--dimension-space-075));gap:var(--ds-control-gap, var(--dimension-space-050));background:transparent;border:none;border-radius:var(--ds-control-radius, var(--dimension-radius-025));color:var(--ds-button-unfilled-fg);cursor:pointer;-webkit-user-select:none;user-select:none;overflow:hidden;transition:color var(--effect-motion-short-2)}.button-unfilled--icon.sc-ds-button-unfilled{width:100%;height:100%;padding:0}.button-unfilled--rounded.sc-ds-button-unfilled{--ds-control-radius:var(--dimension-radius-half)}.button-unfilled--active.sc-ds-button-unfilled{color:var(--ds-button-unfilled-fg-active)}.button-unfilled.button-unfilled--expanded.sc-ds-button-unfilled::after,.button-unfilled.button-unfilled--expanded.sc-ds-button-unfilled:hover:not(:disabled)::after{background:var(--ds-interaction-pressed)}.button-unfilled--bordered.sc-ds-button-unfilled{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--ds-button-unfilled-border)}.button-unfilled--bordered.sc-ds-button-unfilled:not(.ds-interaction-fill){box-shadow:inset 0 0 0 var(--ds-interaction-border-width) var(--ds-interaction-border-color)}.button-unfilled--background-medium.sc-ds-button-unfilled{--ds-button-unfilled-fg:var(--color-foreground-on-medium-background-secondary);--ds-button-unfilled-fg-active:var(--color-foreground-on-medium-background-primary);--ds-button-unfilled-dot-ring:var(--color-background-medium-neutral);--ds-button-unfilled-border:var(--color-border-on-medium-background-secondary)}.button-unfilled--background-bold.sc-ds-button-unfilled{--ds-button-unfilled-fg:var(--color-foreground-on-bold-background-secondary);--ds-button-unfilled-fg-active:var(--color-foreground-on-bold-background-primary);--ds-button-unfilled-dot-ring:var(--color-background-bold-neutral);--ds-button-unfilled-border:var(--color-border-on-bold-background-secondary)}.button-unfilled--background-strong.sc-ds-button-unfilled{--ds-button-unfilled-fg:var(--color-foreground-on-strong-background-secondary);--ds-button-unfilled-fg-active:var(--color-foreground-on-strong-background-primary);--ds-button-unfilled-dot-ring:var(--color-background-strong-neutral);--ds-button-unfilled-border:var(--color-border-on-strong-background-secondary)}.button-unfilled--background-translucent.sc-ds-button-unfilled{--ds-button-unfilled-fg:var(--color-translucent-foreground-secondary);--ds-button-unfilled-fg-active:var(--color-translucent-foreground-primary);--ds-button-unfilled-dot-ring:var(--color-translucent-translucent);--ds-button-unfilled-border:var(--color-translucent-border-secondary)}.button-unfilled--background-inverted.sc-ds-button-unfilled{--ds-button-unfilled-fg:var(--color-inverted-foreground-secondary);--ds-button-unfilled-fg-active:var(--color-inverted-foreground-primary);--ds-button-unfilled-dot-ring:var(--color-inverted-background);--ds-button-unfilled-border:var(--color-inverted-border-secondary)}.button-unfilled--background-media.sc-ds-button-unfilled{--ds-button-unfilled-fg:var(--color-media-foreground-secondary);--ds-button-unfilled-fg-active:var(--color-media-foreground-primary);--ds-button-unfilled-dot-ring:var(--color-media-background);--ds-button-unfilled-border:var(--color-media-border-secondary)}.button-unfilled--on-always-dark.sc-ds-button-unfilled{--ds-button-unfilled-fg:var(--color-always-dark-foreground-secondary);--ds-button-unfilled-fg-active:var(--color-always-dark-foreground-primary);--ds-button-unfilled-dot-ring:var(--color-always-dark-background);--ds-button-unfilled-border:var(--color-always-dark-border-secondary)}.button-unfilled.ds-interaction-fill--selected.sc-ds-button-unfilled{--ds-button-unfilled-dot-ring:var(--ds-interaction-active)}.button-unfilled__icon-wrap.sc-ds-button-unfilled{position:relative;width:var(--ds-control-icon, var(--dimension-iconography-md));height:var(--ds-control-icon, var(--dimension-iconography-md));display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;z-index:2}.button-unfilled__label.sc-ds-button-unfilled{position:relative;z-index:2;padding:0 var(--ds-control-label-inset, var(--dimension-space-025));white-space:nowrap;flex-shrink:0;min-width:0}.button-unfilled__label--loading.sc-ds-button-unfilled{visibility:hidden}.button-unfilled.sc-ds-button-unfilled>.button-unfilled__loader-overlay.sc-ds-button-unfilled{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;pointer-events:none}.button-unfilled__dot.sc-ds-button-unfilled{position:absolute;top:0;right:0;z-index:2;pointer-events:none}`;const b={md:"md",sm:"sm",xs:"xs"};const v=n(class n extends t{constructor(n){super();if(n!==false){this.__registerHost()}this.dsClick=i(this,"dsClick");this.dsChange=i(this,"dsChange");this.variant="label";this.size="md";this.width="hug";this.label="";this.icon="";this.isActive=false;this.activeFill=true;this.hasBorder=true;this.rounded=false;this.dot=false;this.isInactive=false;this.isLoading=false;this.type="button";this.ariaLabel=null;this.buttonEl=null;this.handleClick=n=>{if(this.isInactive||this.isLoading){n.preventDefault();n.stopPropagation();return}this.dsClick.emit(n);this.dsChange.emit(!this.isActive)}}async setFocus(){this.buttonEl?.focus()}get showIcon(){return this.variant==="icon"||this.variant==="icon-label"}get showLabel(){return this.variant==="label"||this.variant==="icon-label"}get showDot(){return this.variant==="icon"&&this.dot&&!this.isLoading}get visuallyActive(){return this.isActive||this.expanded===true}get dotRing(){if(this.isActive&&this.activeFill){return"var(--ds-interaction-active)"}return"var(--ds-button-unfilled-dot-ring)"}get accessibleName(){if(this.ariaLabel)return this.ariaLabel;if(this.isLoading&&this.variant==="label"&&this.label)return this.label;return undefined}render(){const n=this.background;const t=c[this.size];const i=b[this.size];const s={"button-unfilled":true,"ds-focus-ring-inset":true,"ds-interaction-fill":true,"ds-interaction-fill--selected":this.isActive&&this.activeFill&&!this.isInactive,"ds-interaction-fill--on-faint":n==="faint","ds-interaction-fill--on-medium":n==="medium","ds-interaction-fill--on-bold":n==="bold","ds-interaction-fill--on-strong":n==="strong","ds-interaction-fill--on-translucent":n==="translucent","ds-interaction-fill--on-inverted":n==="inverted","ds-interaction-fill--on-media":n==="media","ds-interaction-fill--on-always-dark":n==="always-dark","button-unfilled--active":this.visuallyActive,"button-unfilled--expanded":this.expanded===true&&!this.isInactive,"button-unfilled--bordered":this.hasBorder,"button-unfilled--rounded":this.rounded,"ds-control-inactive":this.isInactive,"ds-control--md":this.size==="md","ds-control--sm":this.size==="sm","ds-control--xs":this.size==="xs","button-unfilled--icon":this.variant==="icon","button-unfilled--label":this.variant==="label","button-unfilled--icon-label":this.variant==="icon-label","button-unfilled--background-faint":n==="faint","button-unfilled--background-medium":n==="medium","button-unfilled--background-bold":n==="bold","button-unfilled--background-strong":n==="strong","button-unfilled--background-translucent":n==="translucent","button-unfilled--background-inverted":n==="inverted","button-unfilled--background-media":n==="media","button-unfilled--on-always-dark":n==="always-dark"};return o(e,{key:"11c05ff1300fc4aeaa2065d2cf17ff4096069179",class:{"button-unfilled-host":true,"button-unfilled-host--icon":this.variant==="icon","ds-control--md":this.size==="md","ds-control--sm":this.size==="sm","ds-control--xs":this.size==="xs",...u(this.width)},tabIndex:-1},o("button",{key:"1a2b2668496bd14230888522398f09545753823e",ref:n=>{this.buttonEl=n??null},type:this.type,class:s,disabled:this.isInactive,tabIndex:this.focusTabIndex??0,"aria-label":this.accessibleName,"aria-busy":this.isLoading?"true":undefined,"aria-disabled":this.isLoading?"true":undefined,"aria-controls":this.controls,"aria-expanded":this.expanded===undefined?undefined:String(this.expanded),"aria-haspopup":this.haspopup,"aria-pressed":this.pressed===undefined?undefined:String(this.pressed),onClick:this.handleClick},this.showIcon&&o("span",{key:"54880f13012596b28135a4e18edf14c368145f5d",class:"button-unfilled__icon-wrap ds-interaction-fill__content"},this.isLoading?o("ds-loader",{size:i,color:"inherit"}):o("ds-icon",{name:this.icon,size:i,color:"inherit"}),this.showDot&&o("ds-badge",{key:"314415e5199ca5beb4f6d728cb86b32dcb79eaa0",class:"button-unfilled__dot",variant:"dot",background:this.dotRing,label:"","aria-hidden":"true"})),this.showLabel&&o("ds-text",{key:"0cc64914ec525457ccb644e9453eb51f8a32ebc7",class:{"button-unfilled__label":true,"button-unfilled__label--loading":this.isLoading&&this.variant==="label","ds-interaction-fill__content":true},as:"span",variant:t,emphasis:true,color:"inherit"},this.label),this.isLoading&&this.variant==="label"&&o("span",{key:"de74bf5b87505552627c0db1889e505a1af1cd76",class:"button-unfilled__loader-overlay ds-interaction-fill__content"},o("ds-loader",{key:"53202ceb6ef0b6f67c150bd7e0714aa1bce6fc12",size:i,color:"inherit"}))))}get el(){return this}static get style(){return f()}},[2,"ds-button-unfilled",{variant:[1],size:[1],width:[1],label:[1],icon:[1],isActive:[4,"is-active"],activeFill:[4,"active-fill"],hasBorder:[4,"has-border"],rounded:[4],dot:[4],isInactive:[4,"is-inactive"],isLoading:[4,"is-loading"],type:[1],background:[1],ariaLabel:[1,"aria-label"],controls:[1],expanded:[4],haspopup:[1],pressed:[4],focusTabIndex:[2,"tab-index"],setFocus:[64]}]);function h(){if(typeof customElements==="undefined"){return}const n=["ds-button-unfilled","ds-badge","ds-icon","ds-loader","ds-text"];n.forEach((n=>{switch(n){case"ds-button-unfilled":if(!customElements.get(s(n))){customElements.define(s(n),v)}break;case"ds-badge":if(!customElements.get(s(n))){d()}break;case"ds-icon":if(!customElements.get(s(n))){r()}break;case"ds-loader":if(!customElements.get(s(n))){l()}break;case"ds-text":if(!customElements.get(s(n))){a()}break}}))}h();export{v as B,h as d};
2
- //# sourceMappingURL=p-CKnoWZd9.js.map
@@ -1,2 +0,0 @@
1
- import{p as o,H as i,c as e,h as s,a as c,t as n}from"./index.js";import{d as t}from"./p-CZZYGqKz.js";const r=()=>`.ds-control-inactive.sc-ds-checkbox-h,.ds-control-inactive.sc-ds-checkbox{opacity:0.25;pointer-events:none;cursor:not-allowed}.ds-control--md.sc-ds-checkbox-h,.ds-control--md.sc-ds-checkbox{--ds-control-height:var(--dimension-size-400);--ds-control-icon:var(--dimension-iconography-md);--ds-control-padding-inline:var(--dimension-space-075);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-050);--ds-control-radius:var(--dimension-radius-025)}.ds-control--sm.sc-ds-checkbox-h,.ds-control--sm.sc-ds-checkbox{--ds-control-height:var(--dimension-size-300);--ds-control-icon:var(--dimension-iconography-sm);--ds-control-padding-inline:var(--dimension-space-050);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:var(--dimension-space-025);--ds-control-radius:var(--dimension-radius-025)}.ds-control--xs.sc-ds-checkbox-h,.ds-control--xs.sc-ds-checkbox{--ds-control-height:var(--dimension-size-200);--ds-control-icon:var(--dimension-iconography-xs);--ds-control-padding-inline:var(--dimension-space-025);--ds-control-label-inset:var(--dimension-space-025);--ds-control-gap:0;--ds-control-radius:var(--dimension-radius-025)}.sc-ds-checkbox-h{--ds-focus-ring-width:var(--dimension-stroke-width-025, 2px);--ds-focus-ring-offset:var(--dimension-space-025, 2px);--ds-focus-ring-color:var(--color-interaction-focus)}.ds-focus-ring.sc-ds-checkbox-h:focus-visible,.ds-focus-ring.sc-ds-checkbox:focus-visible{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}.ds-focus-ring.ds-focus-ring--visible.sc-ds-checkbox-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-checkbox{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:var(--ds-focus-ring-offset)}.ds-focus-ring-inset.sc-ds-checkbox-h:focus-visible,.ds-focus-ring-inset.sc-ds-checkbox:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-checkbox-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-checkbox:focus-visible::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-checkbox-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-checkbox{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-checkbox-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-checkbox::after{outline:var(--ds-focus-ring-width) solid var(--ds-focus-ring-color);outline-offset:calc(-1 * var(--ds-focus-ring-width))}.ds-interaction-fill.sc-ds-checkbox-h,.ds-interaction-fill.sc-ds-checkbox{position:relative;z-index:0;--ds-interaction-hover:var(--color-interaction-hover);--ds-interaction-pressed:var(--color-interaction-pressed);--ds-interaction-active:var(--color-interaction-active-brand);--ds-interaction-border-width:0px;--ds-interaction-border-color:transparent}.ds-interaction-fill.sc-ds-checkbox-h::before,.ds-interaction-fill.sc-ds-checkbox::before,.ds-interaction-fill.sc-ds-checkbox-h::after,.ds-interaction-fill.sc-ds-checkbox::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;transition:none}.ds-interaction-fill.sc-ds-checkbox-h::before,.ds-interaction-fill.sc-ds-checkbox::before{z-index:1}.ds-interaction-fill.sc-ds-checkbox-h::after,.ds-interaction-fill.sc-ds-checkbox::after{z-index:3;box-shadow:inset 0 0 0 var(--ds-interaction-border-width) var(--ds-interaction-border-color)}.ds-interaction-fill--bordered.sc-ds-checkbox-h,.ds-interaction-fill--bordered.sc-ds-checkbox{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-checkbox-h::before,.ds-interaction-fill--selected.sc-ds-checkbox::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-checkbox-h,.ds-interaction-fill--selected.sc-ds-checkbox{--ds-interaction-dot-ring:var(--ds-interaction-active)}.ds-interaction-fill.sc-ds-checkbox-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-checkbox:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}.ds-interaction-fill.sc-ds-checkbox-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-checkbox:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill.sc-ds-checkbox-h>.ds-interaction-fill__content.sc-ds-checkbox,.ds-interaction-fill.sc-ds-checkbox>.ds-interaction-fill__content.sc-ds-checkbox,.ds-interaction-fill__content.sc-ds-checkbox{position:relative;z-index:2}.ds-interaction-fill--on-faint.sc-ds-checkbox-h,.ds-interaction-fill--on-faint.sc-ds-checkbox{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-checkbox-h,.ds-interaction-fill--on-medium.sc-ds-checkbox{--ds-interaction-hover:var(--color-interaction-on-medium-background-hover);--ds-interaction-pressed:var(--color-interaction-on-medium-background-pressed);--ds-interaction-active:var(--color-interaction-on-medium-background-active);--ds-focus-ring-color:var(--color-interaction-on-medium-background-focus)}.ds-interaction-fill--on-bold.sc-ds-checkbox-h,.ds-interaction-fill--on-bold.sc-ds-checkbox{--ds-interaction-hover:var(--color-interaction-on-bold-background-hover);--ds-interaction-pressed:var(--color-interaction-on-bold-background-pressed);--ds-interaction-active:var(--color-interaction-on-bold-background-active);--ds-focus-ring-color:var(--color-interaction-on-bold-background-focus)}.ds-interaction-fill--on-strong.sc-ds-checkbox-h,.ds-interaction-fill--on-strong.sc-ds-checkbox{--ds-interaction-hover:var(--color-interaction-on-strong-background-hover);--ds-interaction-pressed:var(--color-interaction-on-strong-background-pressed);--ds-interaction-active:var(--color-interaction-on-strong-background-active);--ds-focus-ring-color:var(--color-interaction-on-strong-background-focus)}.ds-interaction-fill--on-translucent.sc-ds-checkbox-h,.ds-interaction-fill--on-translucent.sc-ds-checkbox{--ds-interaction-hover:var(--color-translucent-interaction-hover);--ds-interaction-pressed:var(--color-translucent-interaction-pressed);--ds-interaction-active:var(--color-translucent-interaction-active);--ds-focus-ring-color:var(--color-translucent-interaction-focus)}.ds-interaction-fill--on-inverted.sc-ds-checkbox-h,.ds-interaction-fill--on-inverted.sc-ds-checkbox{--ds-interaction-hover:var(--color-inverted-interaction-hover);--ds-interaction-pressed:var(--color-inverted-interaction-pressed);--ds-interaction-active:var(--color-inverted-interaction-active);--ds-focus-ring-color:var(--color-inverted-interaction-focus)}.ds-interaction-fill--on-media.sc-ds-checkbox-h,.ds-interaction-fill--on-media.sc-ds-checkbox{--ds-interaction-hover:var(--color-media-interaction-hover);--ds-interaction-pressed:var(--color-media-interaction-pressed);--ds-interaction-active:var(--color-media-interaction-active);--ds-focus-ring-color:var(--color-media-interaction-focus)}.ds-interaction-fill--on-always-dark.sc-ds-checkbox-h,.ds-interaction-fill--on-always-dark.sc-ds-checkbox{--ds-interaction-hover:var(--color-always-dark-interaction-hover);--ds-interaction-pressed:var(--color-always-dark-interaction-pressed);--ds-interaction-active:var(--color-always-dark-interaction-active);--ds-focus-ring-color:var(--color-always-dark-interaction-focus)}.ds-interaction-fill--on-navigation.sc-ds-checkbox-h,.ds-interaction-fill--on-navigation.sc-ds-checkbox{--ds-interaction-hover:var(--color-navigation-interaction-hover);--ds-interaction-pressed:var(--color-navigation-interaction-pressed);--ds-interaction-active:var(--color-navigation-interaction-active);--ds-focus-ring-color:var(--color-navigation-interaction-focus)}.sc-ds-checkbox-h{display:inline-flex;align-items:center;box-sizing:border-box;gap:var(--ds-control-gap);height:var(--ds-control-height);padding:0 var(--ds-control-padding-inline);border-radius:var(--ds-control-radius);cursor:pointer;user-select:none}.checkbox--presentation.sc-ds-checkbox-h{width:var(--ds-control-icon);height:var(--ds-control-icon);padding:0;gap:0;pointer-events:none}.checkbox--md.sc-ds-checkbox-h{--_checkbox-box:var(--dimension-iconography-sm);--_checkbox-stroke:var(--dimension-stroke-width-015)}.checkbox--sm.sc-ds-checkbox-h{--_checkbox-box:var(--dimension-iconography-xs);--_checkbox-stroke:var(--dimension-stroke-width-012)}.checkbox--xs.sc-ds-checkbox-h{--_checkbox-box:var(--dimension-size-100);--_checkbox-stroke:calc(var(--dimension-stroke-width-base) * 3 / 32)}.checkbox__placement.sc-ds-checkbox{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ds-control-icon);height:var(--ds-control-icon)}.box.sc-ds-checkbox{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--_checkbox-box);height:var(--_checkbox-box);border:0;border-radius:var(--dimension-radius-025);box-shadow:inset 0 0 0 var(--_checkbox-stroke) var(--color-foreground-tertiary);transition:background-color var(--effect-motion-short-2), box-shadow var(--effect-motion-short-2)}.box--marked.sc-ds-checkbox{color:var(--color-foreground-on-bold-background-primary);background-color:var(--color-background-bold-brand);box-shadow:none}.checkbox__mark.sc-ds-checkbox{width:100%;height:100%;flex-shrink:0;stroke:currentColor;stroke-width:var(--_checkbox-stroke);stroke-linecap:butt;stroke-linejoin:round}.checkbox__mark--checked.sc-ds-checkbox{transform:translateY(-0.5px)}.checkbox__label.sc-ds-checkbox{flex:1;min-width:0;padding:0 var(--ds-control-label-inset)}`;const a={md:"text-body-medium",sm:"text-body-small",xs:"text-caption"};let d=0;const l=o(class o extends i{constructor(o){super();if(o!==false){this.__registerHost()}this.dsChange=e(this,"dsChange");this.internals=this.attachInternals();this.labelId=`ds-checkbox-label-${++d}`;this.checked=false;this.size="md";this.value="on";this.disabled=false;this.required=false;this.requiredMessage="This field is required.";this.indeterminate=false;this.isInactive=false;this.presentation=false;this.initialChecked=false;this.initialIndeterminate=false;this.formDisabled=false;this.handleActivate=()=>{if(this.isInactive||this.disabled||this.formDisabled||this.presentation)return;if(this.indeterminate)this.indeterminate=false;this.checked=!this.checked;this.dsChange.emit(this.checked)};this.handleKeyDown=o=>{if(o.key==="Enter"||o.key===" "){o.preventDefault();this.handleActivate()}}}componentWillLoad(){this.initialChecked=this.checked;this.initialIndeterminate=this.indeterminate;this.syncFormValue()}syncFormValue(){const o=this.isInactive||this.disabled||this.formDisabled||this.presentation;this.internals.setFormValue(!o&&this.checked?this.value:null);const i=this.required&&!o&&!this.checked;this.internals.setValidity(i?{valueMissing:true}:{},i?this.requiredMessage:"")}formDisabledCallback(o){this.formDisabled=o;this.syncFormValue()}formResetCallback(){this.checked=this.initialChecked;this.indeterminate=this.initialIndeterminate}render(){const o=this.isInactive||this.disabled||this.formDisabled;const i=this.checked||this.indeterminate;const e=this.required&&!o&&!this.checked;return s(c,{key:"3db862399abe1c36e3e7da80d15473083a1ac2c6",role:this.presentation?undefined:"checkbox","aria-checked":this.presentation?undefined:this.indeterminate?"mixed":String(this.checked),"aria-disabled":!this.presentation&&o?"true":undefined,"aria-required":!this.presentation&&this.required?"true":undefined,"aria-invalid":!this.presentation&&e?"true":undefined,"aria-labelledby":this.presentation?undefined:this.labelId,"aria-hidden":this.presentation?"true":undefined,tabIndex:this.presentation||o?-1:0,class:{checkbox:true,"checkbox--presentation":this.presentation,[`checkbox--${this.size}`]:true,[`ds-control--${this.size}`]:true,"ds-control-inactive":o&&!this.presentation,"ds-focus-ring-inset":!this.presentation,"ds-interaction-fill":!o&&!this.presentation},onClick:this.presentation?undefined:this.handleActivate,onKeyDown:this.presentation?undefined:this.handleKeyDown},s("span",{key:"2069b23342167cd236d9c7653194219291abc54c",class:"checkbox__placement ds-interaction-fill__content","aria-hidden":"true"},s("span",{key:"5cada1f567c5fd4ba32385cce37d3ee0532c7ada",class:{box:true,"box--marked":i}},i&&s("svg",{key:"7b1993b783ac0456428e39d8189353cfdf7aea2d",class:{checkbox__mark:true,"checkbox__mark--checked":!this.indeterminate},viewBox:"0 0 16 16",fill:"none",focusable:"false"},s("path",{key:"843c9857b377125f9d009b206ded76094889dcb9",d:this.indeterminate?"M4 8H12":"M3.5 8.25L6.75 11.5L12.5 4.75","vector-effect":"non-scaling-stroke"})))),!this.presentation&&s("ds-text",{key:"7cf32b0526ce0a0160fb7a8b925cc798bff5bda4",class:"checkbox__label ds-interaction-fill__content",as:"span",variant:a[this.size],textId:this.labelId},this.label))}static get formAssociated(){return true}static get watchers(){return{checked:[{syncFormValue:0}],value:[{syncFormValue:0}],disabled:[{syncFormValue:0}],isInactive:[{syncFormValue:0}],required:[{syncFormValue:0}],presentation:[{syncFormValue:0}]}}static get style(){return r()}},[66,"ds-checkbox",{label:[1],checked:[1028],size:[1],name:[513],value:[1],disabled:[516],required:[516],requiredMessage:[1,"required-message"],indeterminate:[1028],isInactive:[4,"is-inactive"],presentation:[4],formDisabled:[32]},undefined,{checked:[{syncFormValue:0}],value:[{syncFormValue:0}],disabled:[{syncFormValue:0}],isInactive:[{syncFormValue:0}],required:[{syncFormValue:0}],presentation:[{syncFormValue:0}]}]);function h(){if(typeof customElements==="undefined"){return}const o=["ds-checkbox","ds-text"];o.forEach((o=>{switch(o){case"ds-checkbox":if(!customElements.get(n(o))){customElements.define(n(o),l)}break;case"ds-text":if(!customElements.get(n(o))){t()}break}}))}h();export{l as C,h as d};
2
- //# sourceMappingURL=p-CS12e52R.js.map