@ds-mo/ui 16.1.0 → 16.1.2

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 (264) hide show
  1. package/dist/.package-ready.json +1 -1
  2. package/dist/agent-patterns.json +1 -1
  3. package/dist/agent.json +133 -32
  4. package/dist/angular/boolean-value-accessor.js +3 -3
  5. package/dist/angular/ds-agent-activity.js +3 -3
  6. package/dist/angular/ds-agent-questionnaire.js +3 -3
  7. package/dist/angular/ds-agent-response.js +3 -3
  8. package/dist/angular/ds-agent-source-list.js +3 -3
  9. package/dist/angular/ds-agent-tool-call.js +3 -3
  10. package/dist/angular/ds-attachment-list.js +3 -3
  11. package/dist/angular/ds-avatar.js +3 -3
  12. package/dist/angular/ds-badge.js +3 -3
  13. package/dist/angular/ds-banner.js +3 -3
  14. package/dist/angular/ds-bar-action.js +3 -3
  15. package/dist/angular/ds-bar-nav.js +3 -3
  16. package/dist/angular/ds-bar-page-title.js +3 -3
  17. package/dist/angular/ds-bar-title.js +3 -3
  18. package/dist/angular/ds-bar-workflow.js +3 -3
  19. package/dist/angular/ds-breadcrumb.js +3 -3
  20. package/dist/angular/ds-button-filled.js +3 -3
  21. package/dist/angular/ds-button-inverted.js +3 -3
  22. package/dist/angular/ds-button-unfilled.js +3 -3
  23. package/dist/angular/ds-calendar.js +3 -3
  24. package/dist/angular/ds-card-action-center.js +3 -3
  25. package/dist/angular/ds-card-chart.js +3 -3
  26. package/dist/angular/ds-card-navigation.js +3 -3
  27. package/dist/angular/ds-card-overview.js +3 -3
  28. package/dist/angular/ds-card-setting.js +3 -3
  29. package/dist/angular/ds-card-settings-scope.js +3 -3
  30. package/dist/angular/ds-chart-legend.js +3 -3
  31. package/dist/angular/ds-chart.js +3 -3
  32. package/dist/angular/ds-checkbox-group.js +3 -3
  33. package/dist/angular/ds-checkbox.js +3 -3
  34. package/dist/angular/ds-chip.js +3 -3
  35. package/dist/angular/ds-code-block.js +3 -3
  36. package/dist/angular/ds-conversation-list-item.js +3 -3
  37. package/dist/angular/ds-conversation-list-section.js +3 -3
  38. package/dist/angular/ds-conversation-list.js +3 -3
  39. package/dist/angular/ds-data-customize.js +3 -3
  40. package/dist/angular/ds-data-filter.js +3 -3
  41. package/dist/angular/ds-data-group.js +3 -3
  42. package/dist/angular/ds-data-preferences.js +3 -3
  43. package/dist/angular/ds-data-saved-views.js +3 -3
  44. package/dist/angular/ds-data-search.js +3 -3
  45. package/dist/angular/ds-data-sort.js +3 -3
  46. package/dist/angular/ds-data-toolbar.js +3 -3
  47. package/dist/angular/ds-divider.js +3 -3
  48. package/dist/angular/ds-empty-state.js +3 -3
  49. package/dist/angular/ds-field.js +3 -3
  50. package/dist/angular/ds-filter-menu.js +3 -3
  51. package/dist/angular/ds-icon.js +3 -3
  52. package/dist/angular/ds-inline-banner-settings.js +3 -3
  53. package/dist/angular/ds-input-date.js +3 -3
  54. package/dist/angular/ds-input-time.js +3 -3
  55. package/dist/angular/ds-input.js +3 -3
  56. package/dist/angular/ds-loader.js +3 -3
  57. package/dist/angular/ds-map-cluster-marker.js +3 -3
  58. package/dist/angular/ds-map-entity-marker.js +3 -3
  59. package/dist/angular/ds-map-marker.js +3 -3
  60. package/dist/angular/ds-markdown.js +3 -3
  61. package/dist/angular/ds-menu.js +3 -3
  62. package/dist/angular/ds-message-actions.js +3 -3
  63. package/dist/angular/ds-message-bubble.js +3 -3
  64. package/dist/angular/ds-message-composer.js +3 -3
  65. package/dist/angular/ds-message-scroller.js +3 -3
  66. package/dist/angular/ds-message.js +3 -3
  67. package/dist/angular/ds-mobile-bar-nav.js +3 -3
  68. package/dist/angular/ds-mobile-header.js +3 -3
  69. package/dist/angular/ds-mobile-section-switcher.js +3 -3
  70. package/dist/angular/ds-mobile-sheet-nav.js +3 -3
  71. package/dist/angular/ds-modal.js +3 -3
  72. package/dist/angular/ds-navigation-tab-group.js +3 -3
  73. package/dist/angular/ds-pagination.js +3 -3
  74. package/dist/angular/ds-panel-nav.js +3 -3
  75. package/dist/angular/ds-panel-sub-nav.js +3 -3
  76. package/dist/angular/ds-panel-tool-header.js +3 -3
  77. package/dist/angular/ds-panel-tool-search.js +3 -3
  78. package/dist/angular/ds-panel-tools.js +3 -3
  79. package/dist/angular/ds-paper-texture.js +3 -3
  80. package/dist/angular/ds-radio-tile.js +3 -3
  81. package/dist/angular/ds-radio.js +3 -3
  82. package/dist/angular/ds-score.js +3 -3
  83. package/dist/angular/ds-scroll-overlay.js +3 -3
  84. package/dist/angular/ds-select-toggle.js +3 -3
  85. package/dist/angular/ds-select.js +3 -3
  86. package/dist/angular/ds-setting-row-checkbox.js +3 -3
  87. package/dist/angular/ds-setting-row-radio.js +3 -3
  88. package/dist/angular/ds-setting-row-toggle.js +3 -3
  89. package/dist/angular/ds-shell-app.js +3 -3
  90. package/dist/angular/ds-shell-page.js +3 -3
  91. package/dist/angular/ds-shell-tools.js +3 -3
  92. package/dist/angular/ds-skeleton.js +3 -3
  93. package/dist/angular/ds-slider.js +3 -3
  94. package/dist/angular/ds-swatch-picker.js +3 -3
  95. package/dist/angular/ds-switch.js +3 -3
  96. package/dist/angular/ds-tab-group.js +3 -3
  97. package/dist/angular/ds-table.js +3 -3
  98. package/dist/angular/ds-tag.js +3 -3
  99. package/dist/angular/ds-text.js +3 -3
  100. package/dist/angular/ds-textarea.js +3 -3
  101. package/dist/angular/ds-time-picker.js +3 -3
  102. package/dist/angular/ds-toast.js +3 -3
  103. package/dist/angular/ds-tooltip-chart.js +3 -3
  104. package/dist/angular/ds-tooltip.js +3 -3
  105. package/dist/angular/ds-typing-indicator.js +3 -3
  106. package/dist/angular/number-value-accessor.js +3 -3
  107. package/dist/angular/radio-value-accessor.js +3 -3
  108. package/dist/angular/select-value-accessor.js +3 -3
  109. package/dist/angular/text-value-accessor.js +3 -3
  110. package/dist/angular/value-accessor.js +3 -3
  111. package/dist/components/THIRD-PARTY-NOTICES +2 -2
  112. package/dist/components/bundled-dependencies.json +2 -2
  113. package/dist/components/ds-agent-questionnaire.js +1 -1
  114. package/dist/components/ds-agent-response.js +1 -1
  115. package/dist/components/ds-banner.js +1 -1
  116. package/dist/components/ds-bar-nav.js +1 -1
  117. package/dist/components/ds-bar-page-title.js +1 -1
  118. package/dist/components/ds-bar-title.js +1 -1
  119. package/dist/components/ds-bar-workflow.js +1 -1
  120. package/dist/components/ds-button-unfilled.js +1 -1
  121. package/dist/components/ds-calendar.js +1 -1
  122. package/dist/components/ds-card-chart.js +1 -1
  123. package/dist/components/ds-card-overview.js +1 -1
  124. package/dist/components/ds-card-setting.js +1 -1
  125. package/dist/components/ds-chart-legend.js +1 -1
  126. package/dist/components/ds-chart-legend.js.map +1 -1
  127. package/dist/components/ds-code-block.js +1 -1
  128. package/dist/components/ds-data-customize.js +1 -1
  129. package/dist/components/ds-data-filter.js +1 -1
  130. package/dist/components/ds-data-group.js +1 -1
  131. package/dist/components/ds-data-preferences.js +1 -1
  132. package/dist/components/ds-data-saved-views.js +1 -1
  133. package/dist/components/ds-data-search.js +1 -1
  134. package/dist/components/ds-data-sort.js +1 -1
  135. package/dist/components/ds-filter-menu.js +1 -1
  136. package/dist/components/ds-input-date.js +1 -1
  137. package/dist/components/ds-input-time.js +1 -1
  138. package/dist/components/ds-input.js +1 -1
  139. package/dist/components/ds-markdown.js +1 -1
  140. package/dist/components/ds-menu.js +1 -1
  141. package/dist/components/ds-message-actions.js +1 -1
  142. package/dist/components/ds-message-composer.js +1 -1
  143. package/dist/components/ds-message-scroller.js +1 -1
  144. package/dist/components/ds-mobile-header.js +1 -1
  145. package/dist/components/ds-mobile-section-switcher.js +1 -1
  146. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  147. package/dist/components/ds-modal.js +1 -1
  148. package/dist/components/ds-pagination.js +1 -1
  149. package/dist/components/ds-panel-nav.js +1 -1
  150. package/dist/components/ds-panel-tool-header.js +1 -1
  151. package/dist/components/ds-panel-tool-search.js +1 -1
  152. package/dist/components/ds-panel-tools.js +1 -1
  153. package/dist/components/ds-select.js +1 -1
  154. package/dist/components/ds-shell-app.js +1 -1
  155. package/dist/components/ds-shell-tools.js +1 -1
  156. package/dist/components/ds-table.js +1 -1
  157. package/dist/components/ds-table.js.map +1 -1
  158. package/dist/components/ds-toast.js +1 -1
  159. package/dist/components/ds-toast.js.map +1 -1
  160. package/dist/components/ds-tooltip.js +1 -1
  161. package/dist/components/index.js +1 -1
  162. package/dist/components/index.js.map +1 -1
  163. package/dist/components/{p-BufAjyCA.js → p-9zDZcSc0.js} +2 -2
  164. package/dist/components/{p-SuM1Dske.js → p-B8jrUwL-.js} +2 -2
  165. package/dist/components/{p-DbBRCHst.js → p-BJB6kfA2.js} +2 -2
  166. package/dist/components/{p-a_-GSwE_.js → p-BK_SriZN.js} +2 -2
  167. package/dist/components/{p-DwiHy7ws.js → p-BKd0e8k8.js} +2 -2
  168. package/dist/components/{p-FsosWHV6.js → p-BNySDuzx.js} +2 -2
  169. package/dist/components/{p-DGznD-OD.js → p-BdJqRDKY.js} +2 -2
  170. package/dist/components/{p-CtBlyEwu.js → p-BgMeLCj3.js} +2 -2
  171. package/dist/components/{p-B6kIiHGc.js → p-BknNUjWh.js} +2 -2
  172. package/dist/components/{p-D1D_nwPJ.js → p-Bn-tsogb.js} +2 -2
  173. package/dist/components/{p-C9R-Yn0N.js → p-C3nUi5Lo.js} +2 -2
  174. package/dist/components/{p-DACIe-66.js → p-CcWT4SzP.js} +2 -2
  175. package/dist/components/{p-BL98zGOI.js → p-Ckar-ZZa.js} +2 -2
  176. package/dist/components/{p-D4wFhnby.js → p-CvK-Gy-b.js} +2 -2
  177. package/dist/components/{p-8XJLNIKj.js → p-D9MqUHig.js} +2 -2
  178. package/dist/components/{p-BNimvRZy.js → p-DI5GEmid.js} +2 -2
  179. package/dist/components/p-DTlNtCX1.js +2 -0
  180. package/dist/components/p-DTlNtCX1.js.map +1 -0
  181. package/dist/components/p-D_kOVT6i.js +2 -0
  182. package/dist/components/{p-S6vTfjOk.js.map → p-D_kOVT6i.js.map} +1 -1
  183. package/dist/components/{p-DC_yjqdf.js → p-Ddkyu_wE.js} +2 -2
  184. package/dist/components/{p-CeaXdjwl.js → p-ZcZ0N7Ok.js} +2 -2
  185. package/dist/components/{p-BO0Tb3LT.js → p-ZumxIz-2.js} +2 -2
  186. package/dist/components/{p-BLPr2sCi.js → p-qnp-yeXl.js} +2 -2
  187. package/dist/components/{p-02bODFpT.js → p-txmcXZdy.js} +2 -2
  188. package/dist/components/{p-BiB2qjNS.js → p-xouEdChm.js} +2 -2
  189. package/dist/components/{p-Dp90dvw8.js → p-zdiRX3Sf.js} +2 -2
  190. package/dist/docs/components.json +359 -39
  191. package/dist/lib/toast/index.js +61 -20
  192. package/dist/lib/toast/index.js.map +2 -2
  193. package/dist/lib/toast/toast-types.d.ts +1 -0
  194. package/dist/lint/THIRD-PARTY-NOTICES +1 -1
  195. package/dist/lint/bundled-dependencies.json +1 -1
  196. package/dist/lint/index.js +18 -10
  197. package/dist/mcp-data/registry/agent-response.json +30 -2
  198. package/dist/mcp-data/registry/agent-tool-call.json +22 -2
  199. package/dist/mcp-data/registry/banner.json +10 -2
  200. package/dist/mcp-data/registry/bar-action.json +10 -2
  201. package/dist/mcp-data/registry/card-chart.json +30 -2
  202. package/dist/mcp-data/registry/card-navigation.json +12 -2
  203. package/dist/mcp-data/registry/card-overview.json +22 -2
  204. package/dist/mcp-data/registry/card-setting.json +18 -2
  205. package/dist/mcp-data/registry/chart-legend.json +6 -6
  206. package/dist/mcp-data/registry/checkbox-group.json +12 -2
  207. package/dist/mcp-data/registry/conversation-list-item.json +22 -2
  208. package/dist/mcp-data/registry/conversation-list-section.json +12 -2
  209. package/dist/mcp-data/registry/conversation-list.json +24 -2
  210. package/dist/mcp-data/registry/data-toolbar.json +28 -2
  211. package/dist/mcp-data/registry/field.json +12 -2
  212. package/dist/mcp-data/registry/input.json +16 -2
  213. package/dist/mcp-data/registry/message-bubble.json +12 -2
  214. package/dist/mcp-data/registry/message-composer.json +28 -2
  215. package/dist/mcp-data/registry/message-scroller.json +24 -2
  216. package/dist/mcp-data/registry/message.json +36 -2
  217. package/dist/mcp-data/registry/mobile-header.json +16 -2
  218. package/dist/mcp-data/registry/modal.json +18 -2
  219. package/dist/mcp-data/registry/registry.json +132 -31
  220. package/dist/mcp-data/registry/scroll-overlay.json +18 -2
  221. package/dist/mcp-data/registry/setting-row-checkbox.json +12 -2
  222. package/dist/mcp-data/registry/setting-row-radio.json +12 -2
  223. package/dist/mcp-data/registry/shell-app.json +60 -2
  224. package/dist/mcp-data/registry/shell-page.json +24 -2
  225. package/dist/mcp-data/registry/table.json +31 -2
  226. package/dist/mcp-data/registry/text.json +12 -2
  227. package/dist/mcp-data/registry/tooltip.json +12 -2
  228. package/dist/react/react-runtime.js +44 -1
  229. package/dist/types/components/ChartLegend/ChartLegend.d.ts +2 -2
  230. package/dist/types/components/Table/table-group-load-controller.d.ts +1 -1
  231. package/dist/types/components/Table/table-load-controller.d.ts +1 -2
  232. package/dist/types/components/Table/table-load-observer.d.ts +13 -0
  233. package/dist/types/components.d.ts +3 -3
  234. package/dist/types/stencil-public-runtime.d.ts +73 -55
  235. package/dist/types/toast/toast-types.d.ts +1 -0
  236. package/dist/types/utils/anchored-position-controller.d.ts +3 -2
  237. package/dist/vue/vue-runtime.js +13 -1
  238. package/package.json +15 -12
  239. package/dist/components/p-BMI0F08u.js +0 -2
  240. package/dist/components/p-BMI0F08u.js.map +0 -1
  241. package/dist/components/p-S6vTfjOk.js +0 -2
  242. /package/dist/components/{p-BufAjyCA.js.map → p-9zDZcSc0.js.map} +0 -0
  243. /package/dist/components/{p-SuM1Dske.js.map → p-B8jrUwL-.js.map} +0 -0
  244. /package/dist/components/{p-DbBRCHst.js.map → p-BJB6kfA2.js.map} +0 -0
  245. /package/dist/components/{p-a_-GSwE_.js.map → p-BK_SriZN.js.map} +0 -0
  246. /package/dist/components/{p-DwiHy7ws.js.map → p-BKd0e8k8.js.map} +0 -0
  247. /package/dist/components/{p-FsosWHV6.js.map → p-BNySDuzx.js.map} +0 -0
  248. /package/dist/components/{p-DGznD-OD.js.map → p-BdJqRDKY.js.map} +0 -0
  249. /package/dist/components/{p-CtBlyEwu.js.map → p-BgMeLCj3.js.map} +0 -0
  250. /package/dist/components/{p-B6kIiHGc.js.map → p-BknNUjWh.js.map} +0 -0
  251. /package/dist/components/{p-D1D_nwPJ.js.map → p-Bn-tsogb.js.map} +0 -0
  252. /package/dist/components/{p-C9R-Yn0N.js.map → p-C3nUi5Lo.js.map} +0 -0
  253. /package/dist/components/{p-DACIe-66.js.map → p-CcWT4SzP.js.map} +0 -0
  254. /package/dist/components/{p-BL98zGOI.js.map → p-Ckar-ZZa.js.map} +0 -0
  255. /package/dist/components/{p-D4wFhnby.js.map → p-CvK-Gy-b.js.map} +0 -0
  256. /package/dist/components/{p-8XJLNIKj.js.map → p-D9MqUHig.js.map} +0 -0
  257. /package/dist/components/{p-BNimvRZy.js.map → p-DI5GEmid.js.map} +0 -0
  258. /package/dist/components/{p-DC_yjqdf.js.map → p-Ddkyu_wE.js.map} +0 -0
  259. /package/dist/components/{p-CeaXdjwl.js.map → p-ZcZ0N7Ok.js.map} +0 -0
  260. /package/dist/components/{p-BO0Tb3LT.js.map → p-ZumxIz-2.js.map} +0 -0
  261. /package/dist/components/{p-BLPr2sCi.js.map → p-qnp-yeXl.js.map} +0 -0
  262. /package/dist/components/{p-02bODFpT.js.map → p-txmcXZdy.js.map} +0 -0
  263. /package/dist/components/{p-BiB2qjNS.js.map → p-xouEdChm.js.map} +0 -0
  264. /package/dist/components/{p-Dp90dvw8.js.map → p-zdiRX3Sf.js.map} +0 -0
@@ -8,9 +8,22 @@ var ToastManagerImpl = class {
8
8
  this.records = [];
9
9
  this.listeners = /* @__PURE__ */ new Set();
10
10
  this.nextId = 0;
11
+ this.promiseOwners = /* @__PURE__ */ new Map();
12
+ this.emitting = false;
13
+ this.emissionPending = false;
11
14
  }
12
15
  add(options) {
13
- const id = options.id || `ds-toast-${++this.nextId}`;
16
+ return this.addRecord(options);
17
+ }
18
+ addRecord(options, promiseOwner) {
19
+ let id = options.id;
20
+ if (!id) {
21
+ do {
22
+ id = `ds-toast-${++this.nextId}`;
23
+ } while (this.records.some((record2) => record2.id === id));
24
+ }
25
+ if (promiseOwner) this.promiseOwners.set(id, promiseOwner);
26
+ else this.promiseOwners.delete(id);
14
27
  const existingIndex = this.records.findIndex((record2) => record2.id === id);
15
28
  if (!options.title?.trim() && !options.description?.trim()) {
16
29
  console.warn(`[ds-toast] Toast "${id}" should provide a title or description.`);
@@ -47,6 +60,7 @@ var ToastManagerImpl = class {
47
60
  const index = this.records.findIndex((record) => record.id === id);
48
61
  if (index < 0) return;
49
62
  const current = this.records[index];
63
+ if (updates.type !== void 0 && updates.type !== current.type) this.promiseOwners.delete(id);
50
64
  const restartsTimer = Object.prototype.hasOwnProperty.call(updates, "timeout") || current.type === "loading" && updates.type !== void 0 && updates.type !== "loading";
51
65
  const updated = {
52
66
  ...current,
@@ -64,6 +78,7 @@ var ToastManagerImpl = class {
64
78
  close(id, reason = "programmatic") {
65
79
  const index = this.records.findIndex((record) => record.id === id);
66
80
  if (index < 0 || this.records[index].transitionStatus === "ending") return;
81
+ this.promiseOwners.delete(id);
67
82
  const closing = {
68
83
  ...this.records[index],
69
84
  transitionStatus: "ending",
@@ -80,28 +95,41 @@ var ToastManagerImpl = class {
80
95
  }
81
96
  async promise(promiseValue, options) {
82
97
  const loading = resolvePromiseValue(options.loading, void 0);
83
- const id = this.add({
84
- ...loading,
85
- type: loading.type ?? "loading",
86
- timeout: 0
87
- });
98
+ const owner = /* @__PURE__ */ Symbol();
99
+ const id = this.addRecord(
100
+ {
101
+ ...loading,
102
+ type: loading.type ?? "loading",
103
+ timeout: 0
104
+ },
105
+ owner
106
+ );
107
+ const current = () => this.promiseOwners.get(id) === owner;
88
108
  try {
89
109
  const value = await promiseValue;
90
- const success = resolvePromiseValue(options.success, value);
91
- this.update(id, {
92
- ...success,
93
- type: success.type ?? "success",
94
- timeout: success.timeout
95
- });
110
+ if (current()) {
111
+ const success = resolvePromiseValue(options.success, value);
112
+ if (current())
113
+ this.update(id, {
114
+ ...success,
115
+ type: success.type ?? "success",
116
+ timeout: success.timeout
117
+ });
118
+ }
96
119
  return value;
97
120
  } catch (error) {
98
- const failure = resolvePromiseValue(options.error, error);
99
- this.update(id, {
100
- ...failure,
101
- type: failure.type ?? "error",
102
- timeout: failure.timeout
103
- });
121
+ if (current()) {
122
+ const failure = resolvePromiseValue(options.error, error);
123
+ if (current())
124
+ this.update(id, {
125
+ ...failure,
126
+ type: failure.type ?? "error",
127
+ timeout: failure.timeout
128
+ });
129
+ }
104
130
  throw error;
131
+ } finally {
132
+ if (current()) this.promiseOwners.delete(id);
105
133
  }
106
134
  }
107
135
  subscribe(listener) {
@@ -126,6 +154,7 @@ var ToastManagerImpl = class {
126
154
  const record = this.records.find((candidate) => candidate.id === id);
127
155
  if (!record || record.transitionStatus !== "ending") return null;
128
156
  const reason = record.closeReason ?? "programmatic";
157
+ this.promiseOwners.delete(id);
129
158
  this.records = this.records.filter((candidate) => candidate.id !== id);
130
159
  this.emit();
131
160
  const context = { id, reason, toast: record };
@@ -136,8 +165,20 @@ var ToastManagerImpl = class {
136
165
  toast.onRemove?.(context);
137
166
  }
138
167
  emit() {
139
- const snapshot = this.getSnapshot();
140
- for (const listener of this.listeners) listener(snapshot);
168
+ this.emissionPending = true;
169
+ if (this.emitting) return;
170
+ this.emitting = true;
171
+ try {
172
+ do {
173
+ this.emissionPending = false;
174
+ const snapshot = this.getSnapshot();
175
+ for (const listener of [...this.listeners]) {
176
+ if (this.listeners.has(listener)) listener(snapshot);
177
+ }
178
+ } while (this.emissionPending);
179
+ } finally {
180
+ this.emitting = false;
181
+ }
141
182
  }
142
183
  };
143
184
  function createToastManager() {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/wc/toast/toast-manager.ts"],
4
- "sourcesContent": ["import type {\n ToastCloseContext,\n ToastCloseReason,\n ToastListener,\n ToastManager,\n ToastOptions,\n ToastPromiseOptions,\n ToastPromiseValue,\n ToastRecord,\n} from './toast-types';\n\nfunction resolvePromiseValue<Value, Data>(\n value: ToastPromiseValue<Data> | ((input: Value) => ToastPromiseValue<Data>),\n input: Value\n): ToastOptions<Data> {\n const resolved = typeof value === 'function' ? value(input) : value;\n return typeof resolved === 'string' ? { description: resolved } : resolved;\n}\n\nclass ToastManagerImpl<Data = unknown> implements ToastManager<Data> {\n private records: ToastRecord<Data>[] = [];\n private listeners = new Set<ToastListener<Data>>();\n private nextId = 0;\n\n add(options: ToastOptions<Data>): string {\n const id = options.id || `ds-toast-${++this.nextId}`;\n const existingIndex = this.records.findIndex(record => record.id === id);\n\n if (!options.title?.trim() && !options.description?.trim()) {\n console.warn(`[ds-toast] Toast \"${id}\" should provide a title or description.`);\n }\n\n if (existingIndex >= 0) {\n const current = this.records[existingIndex];\n const updated: ToastRecord<Data> = {\n ...current,\n ...options,\n id,\n priority: options.priority ?? current.priority,\n transitionStatus: 'active',\n closeReason: undefined,\n updateKey: current.updateKey + 1,\n timerKey: current.timerKey + 1,\n };\n this.records = [updated, ...this.records.filter((_, index) => index !== existingIndex)];\n this.emit();\n return id;\n }\n\n const record: ToastRecord<Data> = {\n ...options,\n id,\n priority: options.priority ?? 'low',\n transitionStatus: 'starting',\n updateKey: 0,\n timerKey: 0,\n };\n this.records = [record, ...this.records];\n this.emit();\n return id;\n }\n\n update(id: string, updates: Partial<ToastOptions<Data>>): void {\n const index = this.records.findIndex(record => record.id === id);\n if (index < 0) return;\n const current = this.records[index];\n const restartsTimer =\n Object.prototype.hasOwnProperty.call(updates, 'timeout') ||\n (current.type === 'loading' && updates.type !== undefined && updates.type !== 'loading');\n const updated: ToastRecord<Data> = {\n ...current,\n ...updates,\n id,\n priority: updates.priority ?? current.priority,\n updateKey: current.updateKey + 1,\n timerKey: restartsTimer ? current.timerKey + 1 : current.timerKey,\n };\n this.records = this.records.map((record, recordIndex) =>\n recordIndex === index ? updated : record\n );\n this.emit();\n }\n\n close(id: string, reason: ToastCloseReason = 'programmatic'): void {\n const index = this.records.findIndex(record => record.id === id);\n if (index < 0 || this.records[index].transitionStatus === 'ending') return;\n\n const closing: ToastRecord<Data> = {\n ...this.records[index],\n transitionStatus: 'ending',\n closeReason: reason,\n };\n this.records = this.records.map((record, recordIndex) =>\n recordIndex === index ? closing : record\n );\n this.emit();\n closing.onClose?.({ id, reason, toast: closing });\n }\n\n closeAll(reason: ToastCloseReason = 'programmatic'): void {\n for (const record of [...this.records]) this.close(record.id, reason);\n }\n\n async promise<Value>(\n promiseValue: PromiseLike<Value>,\n options: ToastPromiseOptions<Value, Data>\n ): Promise<Value> {\n const loading = resolvePromiseValue(options.loading, undefined as Value);\n const id = this.add({\n ...loading,\n type: loading.type ?? 'loading',\n timeout: 0,\n });\n\n try {\n const value = await promiseValue;\n const success = resolvePromiseValue(options.success, value);\n this.update(id, {\n ...success,\n type: success.type ?? 'success',\n timeout: success.timeout,\n });\n return value;\n } catch (error) {\n const failure = resolvePromiseValue(options.error, error);\n this.update(id, {\n ...failure,\n type: failure.type ?? 'error',\n timeout: failure.timeout,\n });\n throw error;\n }\n }\n\n subscribe(listener: ToastListener<Data>): () => void {\n this.listeners.add(listener);\n listener(this.getSnapshot());\n return () => {\n this.listeners.delete(listener);\n };\n }\n\n getSnapshot(): readonly ToastRecord<Data>[] {\n return this.records.map(record => ({ ...record }));\n }\n\n activate(id: string): void {\n const record = this.records.find(candidate => candidate.id === id);\n if (!record || record.transitionStatus !== 'starting') return;\n this.records = this.records.map(candidate =>\n candidate.id === id ? { ...candidate, transitionStatus: 'active' } : candidate\n );\n this.emit();\n }\n\n remove(id: string): ToastCloseContext<Data> | null {\n const record = this.records.find(candidate => candidate.id === id);\n if (!record || record.transitionStatus !== 'ending') return null;\n const reason = record.closeReason ?? 'programmatic';\n this.records = this.records.filter(candidate => candidate.id !== id);\n this.emit();\n const context: ToastCloseContext<Data> = { id, reason, toast: record };\n return context;\n }\n\n notifyRemove(context: ToastCloseContext<Data>): void {\n const { toast } = context;\n toast.onRemove?.(context);\n }\n\n private emit(): void {\n const snapshot = this.getSnapshot();\n for (const listener of this.listeners) listener(snapshot);\n }\n}\n\nexport function createToastManager<Data = unknown>(): ToastManager<Data> {\n return new ToastManagerImpl<Data>();\n}\n\nconst defaultManagerKey = Symbol.for('@ds-mo/ui/default-toast-manager');\nconst globalScope = globalThis as typeof globalThis & Record<PropertyKey, unknown>;\nconst existingManager = globalScope[defaultManagerKey] as ToastManager | undefined;\n\nexport const toastManager: ToastManager = existingManager ?? createToastManager();\n\nif (!existingManager) globalScope[defaultManagerKey] = toastManager;\n"],
5
- "mappings": ";AAWA,SAAS,oBACP,OACA,OACoB;AACpB,QAAM,WAAW,OAAO,UAAU,aAAa,MAAM,KAAK,IAAI;AAC9D,SAAO,OAAO,aAAa,WAAW,EAAE,aAAa,SAAS,IAAI;AACpE;AAEA,IAAM,mBAAN,MAAqE;AAAA,EAArE;AACE,SAAQ,UAA+B,CAAC;AACxC,SAAQ,YAAY,oBAAI,IAAyB;AACjD,SAAQ,SAAS;AAAA;AAAA,EAEjB,IAAI,SAAqC;AACvC,UAAM,KAAK,QAAQ,MAAM,YAAY,EAAE,KAAK,MAAM;AAClD,UAAM,gBAAgB,KAAK,QAAQ,UAAU,CAAAA,YAAUA,QAAO,OAAO,EAAE;AAEvE,QAAI,CAAC,QAAQ,OAAO,KAAK,KAAK,CAAC,QAAQ,aAAa,KAAK,GAAG;AAC1D,cAAQ,KAAK,qBAAqB,EAAE,0CAA0C;AAAA,IAChF;AAEA,QAAI,iBAAiB,GAAG;AACtB,YAAM,UAAU,KAAK,QAAQ,aAAa;AAC1C,YAAM,UAA6B;AAAA,QACjC,GAAG;AAAA,QACH,GAAG;AAAA,QACH;AAAA,QACA,UAAU,QAAQ,YAAY,QAAQ;AAAA,QACtC,kBAAkB;AAAA,QAClB,aAAa;AAAA,QACb,WAAW,QAAQ,YAAY;AAAA,QAC/B,UAAU,QAAQ,WAAW;AAAA,MAC/B;AACA,WAAK,UAAU,CAAC,SAAS,GAAG,KAAK,QAAQ,OAAO,CAAC,GAAG,UAAU,UAAU,aAAa,CAAC;AACtF,WAAK,KAAK;AACV,aAAO;AAAA,IACT;AAEA,UAAM,SAA4B;AAAA,MAChC,GAAG;AAAA,MACH;AAAA,MACA,UAAU,QAAQ,YAAY;AAAA,MAC9B,kBAAkB;AAAA,MAClB,WAAW;AAAA,MACX,UAAU;AAAA,IACZ;AACA,SAAK,UAAU,CAAC,QAAQ,GAAG,KAAK,OAAO;AACvC,SAAK,KAAK;AACV,WAAO;AAAA,EACT;AAAA,EAEA,OAAO,IAAY,SAA4C;AAC7D,UAAM,QAAQ,KAAK,QAAQ,UAAU,YAAU,OAAO,OAAO,EAAE;AAC/D,QAAI,QAAQ,EAAG;AACf,UAAM,UAAU,KAAK,QAAQ,KAAK;AAClC,UAAM,gBACJ,OAAO,UAAU,eAAe,KAAK,SAAS,SAAS,KACtD,QAAQ,SAAS,aAAa,QAAQ,SAAS,UAAa,QAAQ,SAAS;AAChF,UAAM,UAA6B;AAAA,MACjC,GAAG;AAAA,MACH,GAAG;AAAA,MACH;AAAA,MACA,UAAU,QAAQ,YAAY,QAAQ;AAAA,MACtC,WAAW,QAAQ,YAAY;AAAA,MAC/B,UAAU,gBAAgB,QAAQ,WAAW,IAAI,QAAQ;AAAA,IAC3D;AACA,SAAK,UAAU,KAAK,QAAQ;AAAA,MAAI,CAAC,QAAQ,gBACvC,gBAAgB,QAAQ,UAAU;AAAA,IACpC;AACA,SAAK,KAAK;AAAA,EACZ;AAAA,EAEA,MAAM,IAAY,SAA2B,gBAAsB;AACjE,UAAM,QAAQ,KAAK,QAAQ,UAAU,YAAU,OAAO,OAAO,EAAE;AAC/D,QAAI,QAAQ,KAAK,KAAK,QAAQ,KAAK,EAAE,qBAAqB,SAAU;AAEpE,UAAM,UAA6B;AAAA,MACjC,GAAG,KAAK,QAAQ,KAAK;AAAA,MACrB,kBAAkB;AAAA,MAClB,aAAa;AAAA,IACf;AACA,SAAK,UAAU,KAAK,QAAQ;AAAA,MAAI,CAAC,QAAQ,gBACvC,gBAAgB,QAAQ,UAAU;AAAA,IACpC;AACA,SAAK,KAAK;AACV,YAAQ,UAAU,EAAE,IAAI,QAAQ,OAAO,QAAQ,CAAC;AAAA,EAClD;AAAA,EAEA,SAAS,SAA2B,gBAAsB;AACxD,eAAW,UAAU,CAAC,GAAG,KAAK,OAAO,EAAG,MAAK,MAAM,OAAO,IAAI,MAAM;AAAA,EACtE;AAAA,EAEA,MAAM,QACJ,cACA,SACgB;AAChB,UAAM,UAAU,oBAAoB,QAAQ,SAAS,MAAkB;AACvE,UAAM,KAAK,KAAK,IAAI;AAAA,MAClB,GAAG;AAAA,MACH,MAAM,QAAQ,QAAQ;AAAA,MACtB,SAAS;AAAA,IACX,CAAC;AAED,QAAI;AACF,YAAM,QAAQ,MAAM;AACpB,YAAM,UAAU,oBAAoB,QAAQ,SAAS,KAAK;AAC1D,WAAK,OAAO,IAAI;AAAA,QACd,GAAG;AAAA,QACH,MAAM,QAAQ,QAAQ;AAAA,QACtB,SAAS,QAAQ;AAAA,MACnB,CAAC;AACD,aAAO;AAAA,IACT,SAAS,OAAO;AACd,YAAM,UAAU,oBAAoB,QAAQ,OAAO,KAAK;AACxD,WAAK,OAAO,IAAI;AAAA,QACd,GAAG;AAAA,QACH,MAAM,QAAQ,QAAQ;AAAA,QACtB,SAAS,QAAQ;AAAA,MACnB,CAAC;AACD,YAAM;AAAA,IACR;AAAA,EACF;AAAA,EAEA,UAAU,UAA2C;AACnD,SAAK,UAAU,IAAI,QAAQ;AAC3B,aAAS,KAAK,YAAY,CAAC;AAC3B,WAAO,MAAM;AACX,WAAK,UAAU,OAAO,QAAQ;AAAA,IAChC;AAAA,EACF;AAAA,EAEA,cAA4C;AAC1C,WAAO,KAAK,QAAQ,IAAI,aAAW,EAAE,GAAG,OAAO,EAAE;AAAA,EACnD;AAAA,EAEA,SAAS,IAAkB;AACzB,UAAM,SAAS,KAAK,QAAQ,KAAK,eAAa,UAAU,OAAO,EAAE;AACjE,QAAI,CAAC,UAAU,OAAO,qBAAqB,WAAY;AACvD,SAAK,UAAU,KAAK,QAAQ;AAAA,MAAI,eAC9B,UAAU,OAAO,KAAK,EAAE,GAAG,WAAW,kBAAkB,SAAS,IAAI;AAAA,IACvE;AACA,SAAK,KAAK;AAAA,EACZ;AAAA,EAEA,OAAO,IAA4C;AACjD,UAAM,SAAS,KAAK,QAAQ,KAAK,eAAa,UAAU,OAAO,EAAE;AACjE,QAAI,CAAC,UAAU,OAAO,qBAAqB,SAAU,QAAO;AAC5D,UAAM,SAAS,OAAO,eAAe;AACrC,SAAK,UAAU,KAAK,QAAQ,OAAO,eAAa,UAAU,OAAO,EAAE;AACnE,SAAK,KAAK;AACV,UAAM,UAAmC,EAAE,IAAI,QAAQ,OAAO,OAAO;AACrE,WAAO;AAAA,EACT;AAAA,EAEA,aAAa,SAAwC;AACnD,UAAM,EAAE,MAAM,IAAI;AAClB,UAAM,WAAW,OAAO;AAAA,EAC1B;AAAA,EAEQ,OAAa;AACnB,UAAM,WAAW,KAAK,YAAY;AAClC,eAAW,YAAY,KAAK,UAAW,UAAS,QAAQ;AAAA,EAC1D;AACF;AAEO,SAAS,qBAAyD;AACvE,SAAO,IAAI,iBAAuB;AACpC;AAEA,IAAM,oBAAoB,uBAAO,IAAI,iCAAiC;AACtE,IAAM,cAAc;AACpB,IAAM,kBAAkB,YAAY,iBAAiB;AAE9C,IAAM,eAA6B,mBAAmB,mBAAmB;AAEhF,IAAI,CAAC,gBAAiB,aAAY,iBAAiB,IAAI;",
4
+ "sourcesContent": ["import type {\n ToastCloseContext,\n ToastCloseReason,\n ToastListener,\n ToastManager,\n ToastOptions,\n ToastPromiseOptions,\n ToastPromiseValue,\n ToastRecord,\n} from './toast-types';\n\nfunction resolvePromiseValue<Value, Data>(\n value: ToastPromiseValue<Data> | ((input: Value) => ToastPromiseValue<Data>),\n input: Value\n): ToastOptions<Data> {\n const resolved = typeof value === 'function' ? value(input) : value;\n return typeof resolved === 'string' ? { description: resolved } : resolved;\n}\n\nclass ToastManagerImpl<Data = unknown> implements ToastManager<Data> {\n private records: ToastRecord<Data>[] = [];\n private listeners = new Set<ToastListener<Data>>();\n private nextId = 0;\n private promiseOwners = new Map<string, symbol>();\n private emitting = false;\n private emissionPending = false;\n\n add(options: ToastOptions<Data>): string {\n return this.addRecord(options);\n }\n\n private addRecord(options: ToastOptions<Data>, promiseOwner?: symbol): string {\n let id = options.id;\n if (!id) {\n do {\n id = `ds-toast-${++this.nextId}`;\n } while (this.records.some(record => record.id === id));\n }\n // Install ownership before notifying: a subscriber may replace or dismiss it.\n if (promiseOwner) this.promiseOwners.set(id, promiseOwner);\n else this.promiseOwners.delete(id);\n const existingIndex = this.records.findIndex(record => record.id === id);\n\n if (!options.title?.trim() && !options.description?.trim()) {\n console.warn(`[ds-toast] Toast \"${id}\" should provide a title or description.`);\n }\n\n if (existingIndex >= 0) {\n const current = this.records[existingIndex];\n const updated: ToastRecord<Data> = {\n ...current,\n ...options,\n id,\n priority: options.priority ?? current.priority,\n transitionStatus: 'active',\n closeReason: undefined,\n updateKey: current.updateKey + 1,\n timerKey: current.timerKey + 1,\n };\n this.records = [updated, ...this.records.filter((_, index) => index !== existingIndex)];\n this.emit();\n return id;\n }\n\n const record: ToastRecord<Data> = {\n ...options,\n id,\n priority: options.priority ?? 'low',\n transitionStatus: 'starting',\n updateKey: 0,\n timerKey: 0,\n };\n this.records = [record, ...this.records];\n this.emit();\n return id;\n }\n\n update(id: string, updates: Partial<ToastOptions<Data>>): void {\n const index = this.records.findIndex(record => record.id === id);\n if (index < 0) return;\n const current = this.records[index];\n // Progress copy can change while the same operation is pending. A type\n // transition explicitly takes ownership of its presentation instead.\n if (updates.type !== undefined && updates.type !== current.type) this.promiseOwners.delete(id);\n const restartsTimer =\n Object.prototype.hasOwnProperty.call(updates, 'timeout') ||\n (current.type === 'loading' && updates.type !== undefined && updates.type !== 'loading');\n const updated: ToastRecord<Data> = {\n ...current,\n ...updates,\n id,\n priority: updates.priority ?? current.priority,\n updateKey: current.updateKey + 1,\n timerKey: restartsTimer ? current.timerKey + 1 : current.timerKey,\n };\n this.records = this.records.map((record, recordIndex) =>\n recordIndex === index ? updated : record\n );\n this.emit();\n }\n\n close(id: string, reason: ToastCloseReason = 'programmatic'): void {\n const index = this.records.findIndex(record => record.id === id);\n if (index < 0 || this.records[index].transitionStatus === 'ending') return;\n this.promiseOwners.delete(id);\n\n const closing: ToastRecord<Data> = {\n ...this.records[index],\n transitionStatus: 'ending',\n closeReason: reason,\n };\n this.records = this.records.map((record, recordIndex) =>\n recordIndex === index ? closing : record\n );\n this.emit();\n closing.onClose?.({ id, reason, toast: closing });\n }\n\n closeAll(reason: ToastCloseReason = 'programmatic'): void {\n for (const record of [...this.records]) this.close(record.id, reason);\n }\n\n async promise<Value>(\n promiseValue: PromiseLike<Value>,\n options: ToastPromiseOptions<Value, Data>\n ): Promise<Value> {\n const loading = resolvePromiseValue(options.loading, undefined as Value);\n const owner = Symbol();\n const id = this.addRecord(\n {\n ...loading,\n type: loading.type ?? 'loading',\n timeout: 0,\n },\n owner\n );\n const current = () => this.promiseOwners.get(id) === owner;\n\n try {\n const value = await promiseValue;\n if (current()) {\n const success = resolvePromiseValue(options.success, value);\n if (current())\n this.update(id, {\n ...success,\n type: success.type ?? 'success',\n timeout: success.timeout,\n });\n }\n return value;\n } catch (error) {\n if (current()) {\n const failure = resolvePromiseValue(options.error, error);\n if (current())\n this.update(id, {\n ...failure,\n type: failure.type ?? 'error',\n timeout: failure.timeout,\n });\n }\n throw error;\n } finally {\n if (current()) this.promiseOwners.delete(id);\n }\n }\n\n subscribe(listener: ToastListener<Data>): () => void {\n this.listeners.add(listener);\n listener(this.getSnapshot());\n return () => {\n this.listeners.delete(listener);\n };\n }\n\n getSnapshot(): readonly ToastRecord<Data>[] {\n return this.records.map(record => ({ ...record }));\n }\n\n activate(id: string): void {\n const record = this.records.find(candidate => candidate.id === id);\n if (!record || record.transitionStatus !== 'starting') return;\n this.records = this.records.map(candidate =>\n candidate.id === id ? { ...candidate, transitionStatus: 'active' } : candidate\n );\n this.emit();\n }\n\n remove(id: string): ToastCloseContext<Data> | null {\n const record = this.records.find(candidate => candidate.id === id);\n if (!record || record.transitionStatus !== 'ending') return null;\n const reason = record.closeReason ?? 'programmatic';\n this.promiseOwners.delete(id);\n this.records = this.records.filter(candidate => candidate.id !== id);\n this.emit();\n const context: ToastCloseContext<Data> = { id, reason, toast: record };\n return context;\n }\n\n notifyRemove(context: ToastCloseContext<Data>): void {\n const { toast } = context;\n toast.onRemove?.(context);\n }\n\n private emit(): void {\n this.emissionPending = true;\n if (this.emitting) return;\n this.emitting = true;\n try {\n do {\n this.emissionPending = false;\n const snapshot = this.getSnapshot();\n for (const listener of [...this.listeners]) {\n if (this.listeners.has(listener)) listener(snapshot);\n }\n } while (this.emissionPending);\n } finally {\n this.emitting = false;\n }\n }\n}\n\nexport function createToastManager<Data = unknown>(): ToastManager<Data> {\n return new ToastManagerImpl<Data>();\n}\n\nconst defaultManagerKey = Symbol.for('@ds-mo/ui/default-toast-manager');\nconst globalScope = globalThis as typeof globalThis & Record<PropertyKey, unknown>;\nconst existingManager = globalScope[defaultManagerKey] as ToastManager | undefined;\n\nexport const toastManager: ToastManager = existingManager ?? createToastManager();\n\nif (!existingManager) globalScope[defaultManagerKey] = toastManager;\n"],
5
+ "mappings": "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",
6
6
  "names": ["record"]
7
7
  }
@@ -63,6 +63,7 @@ export interface ToastManager<Data = unknown> {
63
63
  update(id: string, updates: Partial<ToastOptions<Data>>): void;
64
64
  close(id: string, reason?: ToastCloseReason): void;
65
65
  closeAll(reason?: ToastCloseReason): void;
66
+ /** A replaced, retyped, or dismissed loading toast ignores its old promise's presentation result; progress copy may still update. */
66
67
  promise<Value>(promiseValue: PromiseLike<Value>, options: ToastPromiseOptions<Value, Data>): Promise<Value>;
67
68
  subscribe(listener: ToastListener<Data>): () => void;
68
69
  getSnapshot(): readonly ToastRecord<Data>[];
@@ -437,7 +437,7 @@ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
437
437
  OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
438
438
 
439
439
 
440
- postcss-selector-parser@7.1.4
440
+ postcss-selector-parser@7.1.6
441
441
  License: MIT
442
442
 
443
443
  LICENSE-MIT
@@ -107,7 +107,7 @@
107
107
  },
108
108
  {
109
109
  "name": "postcss-selector-parser",
110
- "version": "7.1.4",
110
+ "version": "7.1.6",
111
111
  "license": "MIT",
112
112
  "files": [
113
113
  "LICENSE-MIT"
@@ -33607,10 +33607,7 @@ var require_parser3 = __commonJS({
33607
33607
  return indexes;
33608
33608
  }
33609
33609
  function uniqs() {
33610
- var list2 = Array.prototype.concat.apply([], arguments);
33611
- return list2.filter(function(item, i6) {
33612
- return i6 === list2.indexOf(item);
33613
- });
33610
+ return Array.from(new Set(Array.prototype.concat.apply([], arguments)));
33614
33611
  }
33615
33612
  var Parser = (
33616
33613
  /** @class */
@@ -33658,6 +33655,9 @@ var require_parser3 = __commonJS({
33658
33655
  attr.push(this.currToken);
33659
33656
  this.position++;
33660
33657
  }
33658
+ if (!this.currToken) {
33659
+ return this.expected("closing square bracket", startingToken[tokenize_1.FIELDS.START_POS]);
33660
+ }
33661
33661
  if (this.currToken[tokenize_1.FIELDS.TYPE] !== tokens.closeSquare) {
33662
33662
  return this.expected("closing square bracket", this.currToken[tokenize_1.FIELDS.START_POS]);
33663
33663
  }
@@ -33709,7 +33709,7 @@ var require_parser3 = __commonJS({
33709
33709
  }
33710
33710
  if (commentBefore) {
33711
33711
  (0, util_1.ensureObject)(node, "raws", "spaces", "attribute");
33712
- node.raws.spaces.attribute.before = spaceBefore;
33712
+ node.raws.spaces.attribute.before = commentBefore;
33713
33713
  commentBefore = "";
33714
33714
  }
33715
33715
  node.namespace = (node.namespace || "") + content;
@@ -34086,7 +34086,11 @@ var require_parser3 = __commonJS({
34086
34086
  return this.error("Unexpected '|'.", this.currToken[tokenize_1.FIELDS.START_POS]);
34087
34087
  };
34088
34088
  Parser2.prototype.namespace = function() {
34089
- var before = this.prevToken && this.content(this.prevToken) || true;
34089
+ var prev = this.prevToken;
34090
+ var before = prev && (prev[tokenize_1.FIELDS.TYPE] === tokens.word || prev[tokenize_1.FIELDS.TYPE] === tokens.asterisk || prev[tokenize_1.FIELDS.TYPE] === tokens.ampersand) ? this.content(prev) : true;
34091
+ if (!this.nextToken) {
34092
+ return this.unexpectedPipe();
34093
+ }
34090
34094
  if (this.nextToken[tokenize_1.FIELDS.TYPE] === tokens.word) {
34091
34095
  this.position++;
34092
34096
  return this.word(before);
@@ -34115,6 +34119,7 @@ var require_parser3 = __commonJS({
34115
34119
  Parser2.prototype.parentheses = function() {
34116
34120
  var last = this.current.last;
34117
34121
  var unbalanced = 1;
34122
+ var openingToken = this.currToken;
34118
34123
  this.position++;
34119
34124
  if (last && last.type === types.PSEUDO) {
34120
34125
  var selector = new selector_1.default({
@@ -34174,7 +34179,7 @@ var require_parser3 = __commonJS({
34174
34179
  }
34175
34180
  }
34176
34181
  if (unbalanced) {
34177
- return this.expected("closing parenthesis", this.currToken[tokenize_1.FIELDS.START_POS]);
34182
+ return this.expected("closing parenthesis", (this.currToken || openingToken)[tokenize_1.FIELDS.START_POS]);
34178
34183
  }
34179
34184
  };
34180
34185
  Parser2.prototype.pseudo = function() {
@@ -34270,10 +34275,13 @@ var require_parser3 = __commonJS({
34270
34275
  });
34271
34276
  var interpolations = indexesOf(word, "#{");
34272
34277
  if (interpolations.length) {
34278
+ var interpolationIndexes_1 = new Set(interpolations);
34273
34279
  hasId = hasId.filter(function(hashIndex) {
34274
- return !~interpolations.indexOf(hashIndex);
34280
+ return !interpolationIndexes_1.has(hashIndex);
34275
34281
  });
34276
34282
  }
34283
+ var classIndexes = new Set(hasClass);
34284
+ var idIndexes = new Set(hasId);
34277
34285
  var indices = (0, sortAscending_1.default)(uniqs(__spreadArray(__spreadArray([0], __read(hasClass), false), __read(hasId), false)));
34278
34286
  indices.forEach(function(ind, i6) {
34279
34287
  var index = indices[i6 + 1] || word.length;
@@ -34285,14 +34293,14 @@ var require_parser3 = __commonJS({
34285
34293
  var current2 = _this.currToken;
34286
34294
  var sourceIndex = current2[tokenize_1.FIELDS.START_POS] + indices[i6];
34287
34295
  var source = getSource(current2[1], current2[2] + ind, current2[3], current2[2] + (index - 1));
34288
- if (~hasClass.indexOf(ind)) {
34296
+ if (classIndexes.has(ind)) {
34289
34297
  var classNameOpts = {
34290
34298
  value: value.slice(1),
34291
34299
  source,
34292
34300
  sourceIndex
34293
34301
  };
34294
34302
  node = new className_1.default(unescapeProp(classNameOpts, "value"));
34295
- } else if (~hasId.indexOf(ind)) {
34303
+ } else if (idIndexes.has(ind)) {
34296
34304
  var idOpts = {
34297
34305
  value: value.slice(1),
34298
34306
  source,
@@ -139,7 +139,21 @@
139
139
  },
140
140
  "events": [],
141
141
  "methods": [],
142
- "slots": []
142
+ "slots": [
143
+ {
144
+ "name": "",
145
+ "description": "The default slot"
146
+ },
147
+ {
148
+ "name": "actions"
149
+ },
150
+ {
151
+ "name": "footer"
152
+ },
153
+ {
154
+ "name": "metadata-actions"
155
+ }
156
+ ]
143
157
  },
144
158
  "props": {
145
159
  "author": {
@@ -210,7 +224,21 @@
210
224
  },
211
225
  "events": [],
212
226
  "methods": [],
213
- "slots": [],
227
+ "slots": [
228
+ {
229
+ "name": "",
230
+ "description": "The default slot"
231
+ },
232
+ {
233
+ "name": "actions"
234
+ },
235
+ {
236
+ "name": "footer"
237
+ },
238
+ {
239
+ "name": "metadata-actions"
240
+ }
241
+ ],
214
242
  "exports": {
215
243
  "customElement": "ds-agent-response",
216
244
  "react": "DsAgentResponse",
@@ -131,7 +131,17 @@
131
131
  }
132
132
  ],
133
133
  "methods": [],
134
- "slots": []
134
+ "slots": [
135
+ {
136
+ "name": "details"
137
+ },
138
+ {
139
+ "name": "result"
140
+ },
141
+ {
142
+ "name": "summary"
143
+ }
144
+ ]
135
145
  },
136
146
  "props": {
137
147
  "error": {
@@ -203,7 +213,17 @@
203
213
  }
204
214
  ],
205
215
  "methods": [],
206
- "slots": [],
216
+ "slots": [
217
+ {
218
+ "name": "details"
219
+ },
220
+ {
221
+ "name": "result"
222
+ },
223
+ {
224
+ "name": "summary"
225
+ }
226
+ ],
207
227
  "exports": {
208
228
  "customElement": "ds-agent-tool-call",
209
229
  "react": "DsAgentToolCall",
@@ -212,7 +212,11 @@
212
212
  }
213
213
  ],
214
214
  "methods": [],
215
- "slots": []
215
+ "slots": [
216
+ {
217
+ "name": "actions"
218
+ }
219
+ ]
216
220
  },
217
221
  "props": {
218
222
  "announcement": {
@@ -306,7 +310,11 @@
306
310
  }
307
311
  ],
308
312
  "methods": [],
309
- "slots": [],
313
+ "slots": [
314
+ {
315
+ "name": "actions"
316
+ }
317
+ ],
310
318
  "exports": {
311
319
  "customElement": "ds-banner",
312
320
  "react": "DsBanner",
@@ -157,7 +157,11 @@
157
157
  }
158
158
  ],
159
159
  "methods": [],
160
- "slots": []
160
+ "slots": [
161
+ {
162
+ "name": "actions"
163
+ }
164
+ ]
161
165
  },
162
166
  "props": {
163
167
  "clearLabel": {
@@ -208,7 +212,11 @@
208
212
  }
209
213
  ],
210
214
  "methods": [],
211
- "slots": [],
215
+ "slots": [
216
+ {
217
+ "name": "actions"
218
+ }
219
+ ],
212
220
  "exports": {
213
221
  "customElement": "ds-bar-action",
214
222
  "react": "DsBarAction",
@@ -172,7 +172,21 @@
172
172
  }
173
173
  ],
174
174
  "methods": [],
175
- "slots": []
175
+ "slots": [
176
+ {
177
+ "name": "",
178
+ "description": "The default slot"
179
+ },
180
+ {
181
+ "name": "actions"
182
+ },
183
+ {
184
+ "name": "chart"
185
+ },
186
+ {
187
+ "name": "legend"
188
+ }
189
+ ]
176
190
  },
177
191
  "props": {
178
192
  "cardWidth": {
@@ -239,7 +253,21 @@
239
253
  }
240
254
  ],
241
255
  "methods": [],
242
- "slots": [],
256
+ "slots": [
257
+ {
258
+ "name": "",
259
+ "description": "The default slot"
260
+ },
261
+ {
262
+ "name": "actions"
263
+ },
264
+ {
265
+ "name": "chart"
266
+ },
267
+ {
268
+ "name": "legend"
269
+ }
270
+ ],
243
271
  "exports": {
244
272
  "customElement": "ds-card-chart",
245
273
  "react": "DsCardChart",
@@ -186,7 +186,12 @@
186
186
  }
187
187
  ],
188
188
  "methods": [],
189
- "slots": []
189
+ "slots": [
190
+ {
191
+ "name": "",
192
+ "description": "The default slot"
193
+ }
194
+ ]
190
195
  },
191
196
  "props": {
192
197
  "cardWidth": {
@@ -252,7 +257,12 @@
252
257
  }
253
258
  ],
254
259
  "methods": [],
255
- "slots": [],
260
+ "slots": [
261
+ {
262
+ "name": "",
263
+ "description": "The default slot"
264
+ }
265
+ ],
256
266
  "exports": {
257
267
  "customElement": "ds-card-navigation",
258
268
  "react": "DsCardNavigation",
@@ -237,7 +237,17 @@
237
237
  }
238
238
  ],
239
239
  "methods": [],
240
- "slots": []
240
+ "slots": [
241
+ {
242
+ "name": "filter"
243
+ },
244
+ {
245
+ "name": "footer"
246
+ },
247
+ {
248
+ "name": "period"
249
+ }
250
+ ]
241
251
  },
242
252
  "props": {
243
253
  "comparisonLabel": {
@@ -347,7 +357,17 @@
347
357
  }
348
358
  ],
349
359
  "methods": [],
350
- "slots": [],
360
+ "slots": [
361
+ {
362
+ "name": "filter"
363
+ },
364
+ {
365
+ "name": "footer"
366
+ },
367
+ {
368
+ "name": "period"
369
+ }
370
+ ],
351
371
  "exports": {
352
372
  "customElement": "ds-card-overview",
353
373
  "react": "DsCardOverview",
@@ -230,7 +230,15 @@
230
230
  }
231
231
  ],
232
232
  "methods": [],
233
- "slots": []
233
+ "slots": [
234
+ {
235
+ "name": "",
236
+ "description": "The default slot"
237
+ },
238
+ {
239
+ "name": "banner"
240
+ }
241
+ ]
234
242
  },
235
243
  "props": {
236
244
  "cancelLabel": {
@@ -313,7 +321,15 @@
313
321
  }
314
322
  ],
315
323
  "methods": [],
316
- "slots": [],
324
+ "slots": [
325
+ {
326
+ "name": "",
327
+ "description": "The default slot"
328
+ },
329
+ {
330
+ "name": "banner"
331
+ }
332
+ ],
317
333
  "exports": {
318
334
  "customElement": "ds-card-setting",
319
335
  "react": "DsCardSetting",