@ds-mo/ui 12.9.0 → 13.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 (430) hide show
  1. package/README.md +1 -0
  2. package/dist/.package-ready.json +1 -0
  3. package/dist/agent-patterns.json +124 -135
  4. package/dist/agent.json +249 -1108
  5. package/dist/angular/ds-bar-nav.d.ts +1 -1
  6. package/dist/angular/ds-bar-nav.js +3 -3
  7. package/dist/angular/ds-button-filled.d.ts +1 -1
  8. package/dist/angular/ds-button-filled.js +3 -3
  9. package/dist/angular/ds-card-data-viz.d.ts +18 -0
  10. package/dist/angular/{ds-card-data-viz-donut.js → ds-card-data-viz.js} +12 -12
  11. package/dist/angular/ds-card-overview.d.ts +1 -1
  12. package/dist/angular/ds-card-overview.js +3 -3
  13. package/dist/angular/ds-chart-bar.d.ts +1 -1
  14. package/dist/angular/ds-chart-bar.js +3 -3
  15. package/dist/angular/ds-menu.d.ts +1 -7
  16. package/dist/angular/ds-menu.js +2 -5
  17. package/dist/angular/ds-mobile-header.d.ts +1 -1
  18. package/dist/angular/ds-mobile-header.js +3 -3
  19. package/dist/angular/ds-mobile-section-switcher.d.ts +1 -1
  20. package/dist/angular/ds-mobile-section-switcher.js +3 -3
  21. package/dist/angular/ds-panel-tools.d.ts +1 -1
  22. package/dist/angular/ds-panel-tools.js +3 -3
  23. package/dist/angular/ds-select.d.ts +5 -4
  24. package/dist/angular/ds-select.js +3 -3
  25. package/dist/angular/ds-shell-app.d.ts +90 -1
  26. package/dist/angular/ds-shell-app.js +44 -4
  27. package/dist/angular/ds-shell-tools.d.ts +1 -1
  28. package/dist/angular/ds-shell-tools.js +3 -3
  29. package/dist/angular/index.d.ts +1 -1
  30. package/dist/angular/index.js +1 -8
  31. package/dist/angular/proxies.d.ts +1 -8
  32. package/dist/angular/proxies.js +1 -8
  33. package/dist/components/ds-agent-activity.js +1 -1
  34. package/dist/components/ds-agent-response.js +1 -1
  35. package/dist/components/ds-agent-source-list.js +1 -1
  36. package/dist/components/ds-agent-tool-call.js +1 -1
  37. package/dist/components/ds-attachment-list.js +1 -1
  38. package/dist/components/ds-badge.js +1 -1
  39. package/dist/components/ds-bar-nav.js +1 -1
  40. package/dist/components/ds-bar-nav.js.map +1 -1
  41. package/dist/components/ds-bar-title.js +1 -1
  42. package/dist/components/ds-bar-title.js.map +1 -1
  43. package/dist/components/ds-bar-workflow.js +1 -1
  44. package/dist/components/ds-breadcrumb.js +1 -1
  45. package/dist/components/ds-button-filled.js +1 -1
  46. package/dist/components/ds-button-unfilled.js +1 -1
  47. package/dist/components/{ds-select-multi.d.ts → ds-card-data-viz.d.ts} +4 -4
  48. package/dist/components/ds-card-data-viz.js +2 -0
  49. package/dist/components/ds-card-data-viz.js.map +1 -0
  50. package/dist/components/ds-card-overview.js +1 -1
  51. package/dist/components/ds-card-overview.js.map +1 -1
  52. package/dist/components/ds-card-setting.js +1 -1
  53. package/dist/components/ds-chart-bar.js +1 -1
  54. package/dist/components/ds-chart-bar.js.map +1 -1
  55. package/dist/components/ds-chart-donut.js +1 -1
  56. package/dist/components/ds-chart-legend.js +1 -1
  57. package/dist/components/ds-chart-legend.js.map +1 -1
  58. package/dist/components/ds-chart-line.js +1 -1
  59. package/dist/components/ds-chart-line.js.map +1 -1
  60. package/dist/components/ds-checkbox.js +1 -1
  61. package/dist/components/ds-chip.js +1 -1
  62. package/dist/components/ds-code-block.js +1 -1
  63. package/dist/components/ds-conversation-list-item.js +1 -1
  64. package/dist/components/ds-conversation-list-item.js.map +1 -1
  65. package/dist/components/ds-conversation-list-section.js +1 -1
  66. package/dist/components/ds-conversation-list.js +1 -1
  67. package/dist/components/ds-divider.js +1 -1
  68. package/dist/components/ds-empty-state.js +1 -1
  69. package/dist/components/ds-field.js +1 -1
  70. package/dist/components/ds-input.js +1 -1
  71. package/dist/components/ds-input.js.map +1 -1
  72. package/dist/components/ds-markdown.js +1 -1
  73. package/dist/components/ds-menu.js +1 -1
  74. package/dist/components/ds-message-bubble.js +1 -1
  75. package/dist/components/ds-message-composer.js +1 -1
  76. package/dist/components/ds-message-composer.js.map +1 -1
  77. package/dist/components/ds-message-scroller.js +1 -1
  78. package/dist/components/ds-message.js +1 -1
  79. package/dist/components/ds-mobile-bar-nav.js +1 -1
  80. package/dist/components/ds-mobile-bar-nav.js.map +1 -1
  81. package/dist/components/ds-mobile-header.js +1 -1
  82. package/dist/components/ds-mobile-section-switcher.js +1 -1
  83. package/dist/components/ds-mobile-sheet-nav.js +1 -1
  84. package/dist/components/ds-mobile-sheet-nav.js.map +1 -1
  85. package/dist/components/ds-modal.js +1 -1
  86. package/dist/components/ds-panel-nav.js +1 -1
  87. package/dist/components/ds-panel-nav.js.map +1 -1
  88. package/dist/components/ds-panel-sub-nav.js +1 -1
  89. package/dist/components/ds-panel-tool-header.js +1 -1
  90. package/dist/components/ds-panel-tool-search.js +1 -1
  91. package/dist/components/ds-panel-tools.js +1 -1
  92. package/dist/components/ds-radio.js +1 -1
  93. package/dist/components/ds-radio.js.map +1 -1
  94. package/dist/components/ds-scroll-overlay.js +1 -1
  95. package/dist/components/ds-select.js +1 -1
  96. package/dist/components/ds-select.js.map +1 -1
  97. package/dist/components/ds-shell-app.js +1 -1
  98. package/dist/components/ds-shell-app.js.map +1 -1
  99. package/dist/components/ds-shell-page.js +1 -1
  100. package/dist/components/ds-shell-page.js.map +1 -1
  101. package/dist/components/ds-shell-tools.js +1 -1
  102. package/dist/components/ds-shell-tools.js.map +1 -1
  103. package/dist/components/ds-skeleton.js +1 -1
  104. package/dist/components/ds-slider.js +1 -1
  105. package/dist/components/ds-slider.js.map +1 -1
  106. package/dist/components/ds-swatch-picker.js +1 -1
  107. package/dist/components/ds-switch.js +1 -1
  108. package/dist/components/ds-tab-group.js +1 -1
  109. package/dist/components/ds-tag.js +1 -1
  110. package/dist/components/ds-text.js +1 -1
  111. package/dist/components/ds-toast.js +1 -1
  112. package/dist/components/ds-tooltip-data-viz.js +1 -1
  113. package/dist/components/ds-tooltip.js +1 -1
  114. package/dist/components/ds-typing-indicator.js +1 -1
  115. package/dist/components/{p-CgEYdMee.js → p-6qXDqCj_.js} +2 -2
  116. package/dist/components/{p-Cr3tEx7o.js → p-Ay1AX7Ql.js} +2 -2
  117. package/dist/components/p-B-qDb_Zo.js +2 -0
  118. package/dist/components/p-B-qDb_Zo.js.map +1 -0
  119. package/dist/components/{p-BOCfICln.js → p-B1cbQ0SG.js} +2 -2
  120. package/dist/components/{p-BKOlvCGS.js → p-BUZXuod2.js} +2 -2
  121. package/dist/components/{p-DCvA3Dc9.js → p-BaUsq_VK.js} +2 -2
  122. package/dist/components/p-BbMJTilO.js +2 -0
  123. package/dist/components/p-BbMJTilO.js.map +1 -0
  124. package/dist/components/{p-BO5aqZcf.js → p-BcTYhmku.js} +2 -2
  125. package/dist/components/p-Bkv3UjZz.js +2 -0
  126. package/dist/components/p-Bkv3UjZz.js.map +1 -0
  127. package/dist/components/p-BnQXAbif.js +2 -0
  128. package/dist/components/p-BnQXAbif.js.map +1 -0
  129. package/dist/components/p-BnbbnuVC.js +2 -0
  130. package/dist/components/p-BnbbnuVC.js.map +1 -0
  131. package/dist/components/{p-BDKtu6Wb.js → p-BroVnDzE.js} +2 -2
  132. package/dist/components/{p-CIiBpjCn.js → p-BsoqsbBh.js} +2 -2
  133. package/dist/components/p-BwT6B5Fi.js +2 -0
  134. package/dist/components/p-BwT6B5Fi.js.map +1 -0
  135. package/dist/components/p-BybqPD8K.js +2 -0
  136. package/dist/components/p-BybqPD8K.js.map +1 -0
  137. package/dist/components/p-C-vRkDyn.js +2 -0
  138. package/dist/components/p-C-vRkDyn.js.map +1 -0
  139. package/dist/components/p-C3ArcO50.js +2 -0
  140. package/dist/components/p-C3ArcO50.js.map +1 -0
  141. package/dist/components/p-C4uYvyq6.js +2 -0
  142. package/dist/components/p-C4uYvyq6.js.map +1 -0
  143. package/dist/components/{p-C8HU4W8q.js → p-CBazaRlE.js} +2 -2
  144. package/dist/components/{p-BhV5e6vF.js → p-CHuh71-U.js} +2 -2
  145. package/dist/components/{p-CChcuL04.js → p-CMWata9g.js} +2 -2
  146. package/dist/components/p-CS6CHlHK.js +2 -0
  147. package/dist/components/p-CS6CHlHK.js.map +1 -0
  148. package/dist/components/p-CTTnM7cE.js +2 -0
  149. package/dist/components/p-CTTnM7cE.js.map +1 -0
  150. package/dist/components/{p-CCzG5xDD.js → p-CWoXKe_h.js} +2 -2
  151. package/dist/components/p-CWoXKe_h.js.map +1 -0
  152. package/dist/components/p-CwwuSGER.js +2 -0
  153. package/dist/components/p-CwwuSGER.js.map +1 -0
  154. package/dist/components/p-D09HINr_.js +2 -0
  155. package/dist/components/p-D09HINr_.js.map +1 -0
  156. package/dist/components/p-D2xWcVv6.js +2 -0
  157. package/dist/components/p-D2xWcVv6.js.map +1 -0
  158. package/dist/components/p-DAW6G8Sl.js +2 -0
  159. package/dist/components/p-DAW6G8Sl.js.map +1 -0
  160. package/dist/components/p-DEaszb15.js +2 -0
  161. package/dist/components/p-DEaszb15.js.map +1 -0
  162. package/dist/components/{p-BgGP65Nn.js → p-DOUk4KoT.js} +1 -1
  163. package/dist/components/p-DOUk4KoT.js.map +1 -0
  164. package/dist/components/p-DbQr7Kwr.js +2 -0
  165. package/dist/components/p-DbQr7Kwr.js.map +1 -0
  166. package/dist/components/p-DdvEZyX4.js +2 -0
  167. package/dist/components/p-DdvEZyX4.js.map +1 -0
  168. package/dist/components/{p-DRnIuCiT.js → p-DeQwkbT1.js} +2 -2
  169. package/dist/components/{p-Cuih680v.js → p-Df17mJqI.js} +2 -2
  170. package/dist/components/p-Dg1LBXJ2.js +2 -0
  171. package/dist/components/p-Dg1LBXJ2.js.map +1 -0
  172. package/dist/components/p-DsiCDzoF.js +2 -0
  173. package/dist/components/p-DsiCDzoF.js.map +1 -0
  174. package/dist/components/p-_DzUXA86.js +2 -0
  175. package/dist/components/p-_DzUXA86.js.map +1 -0
  176. package/dist/components/p-lyZNvRvO.js +2 -0
  177. package/dist/components/p-lyZNvRvO.js.map +1 -0
  178. package/dist/components/{p-YR1XeuZf.js → p-ohsLFap_.js} +2 -2
  179. package/dist/components/{p-DjbTFy2B.js → p-ymtdhOU5.js} +1 -1
  180. package/dist/components/p-ymtdhOU5.js.map +1 -0
  181. package/dist/components/p-z5RIrXuX.js +2 -0
  182. package/dist/components/p-z5RIrXuX.js.map +1 -0
  183. package/dist/docs/components.json +929 -2371
  184. package/dist/framework/angular.d.ts +0 -1
  185. package/dist/framework/angular.js +0 -1
  186. package/dist/lib/components/BarTitle/bar-title-types.d.ts +28 -0
  187. package/dist/lib/components/Breadcrumb/breadcrumb-types.d.ts +16 -0
  188. package/dist/lib/components/ButtonFilled/ButtonFilled.d.ts +83 -0
  189. package/dist/lib/components/MobileHeader/mobile-header-types.d.ts +4 -0
  190. package/dist/lib/components/PanelTools/panel-tools-types.d.ts +21 -7
  191. package/dist/lib/components/ShellApp/shell-app-types.d.ts +91 -0
  192. package/dist/lib/shell/index.d.ts +5 -13
  193. package/dist/lib/shell/index.js +87 -358
  194. package/dist/lib/shell/index.js.map +3 -3
  195. package/dist/lib/shell/shell-responsive.d.ts +2 -1
  196. package/dist/lib/utils/button-render.d.ts +17 -0
  197. package/dist/lib/utils/button-types.d.ts +10 -0
  198. package/dist/lib/utils/choice-list.d.ts +25 -0
  199. package/dist/lib/utils/control-press.d.ts +8 -0
  200. package/dist/lib/utils/form-association.d.ts +22 -0
  201. package/dist/lib/utils/index.d.ts +4 -0
  202. package/dist/lib/utils/index.js +63 -0
  203. package/dist/lib/utils/index.js.map +3 -3
  204. package/dist/lib/utils/required-validity.d.ts +1 -1
  205. package/dist/lib/utils/safe-url.d.ts +11 -0
  206. package/dist/mcp/cli.js +38 -10
  207. package/dist/mcp-data/registry/agent-source-list.json +1 -1
  208. package/dist/mcp-data/registry/attachment-list.json +1 -1
  209. package/dist/mcp-data/registry/bar-nav.json +3 -21
  210. package/dist/mcp-data/registry/breadcrumb.json +1 -1
  211. package/dist/mcp-data/registry/button-filled.json +4 -19
  212. package/dist/mcp-data/registry/button-unfilled.json +14 -11
  213. package/dist/mcp-data/registry/card-data-viz.json +241 -0
  214. package/dist/mcp-data/registry/card-overview.json +38 -10
  215. package/dist/mcp-data/registry/card-setting.json +2 -2
  216. package/dist/mcp-data/registry/chart-bar.json +66 -18
  217. package/dist/mcp-data/registry/chart-donut.json +5 -5
  218. package/dist/mcp-data/registry/chart-legend.json +7 -9
  219. package/dist/mcp-data/registry/chart-line.json +1 -2
  220. package/dist/mcp-data/registry/checkbox.json +2 -2
  221. package/dist/mcp-data/registry/conversation-list-item.json +1 -1
  222. package/dist/mcp-data/registry/field.json +2 -3
  223. package/dist/mcp-data/registry/input.json +1 -1
  224. package/dist/mcp-data/registry/markdown.json +1 -1
  225. package/dist/mcp-data/registry/menu.json +10 -21
  226. package/dist/mcp-data/registry/mobile-bar-nav.json +1 -1
  227. package/dist/mcp-data/registry/mobile-header.json +1 -37
  228. package/dist/mcp-data/registry/mobile-section-switcher.json +1 -19
  229. package/dist/mcp-data/registry/panel-nav.json +2 -2
  230. package/dist/mcp-data/registry/panel-tool-search.json +1 -1
  231. package/dist/mcp-data/registry/panel-tools.json +19 -55
  232. package/dist/mcp-data/registry/radio.json +1 -1
  233. package/dist/mcp-data/registry/registry.json +294 -1174
  234. package/dist/mcp-data/registry/select.json +59 -25
  235. package/dist/mcp-data/registry/shell-app.json +345 -20
  236. package/dist/mcp-data/registry/shell-page.json +1 -1
  237. package/dist/mcp-data/registry/shell-tools.json +12 -43
  238. package/dist/mcp-data/registry/slider.json +1 -1
  239. package/dist/mcp-data/registry/switch.json +1 -1
  240. package/dist/react/components.d.ts +1 -8
  241. package/dist/react/components.js +1 -8
  242. package/dist/react/ds-card-data-viz.d.ts +12 -0
  243. package/dist/react/ds-card-data-viz.js +12 -0
  244. package/dist/react/ds-menu.d.ts +1 -2
  245. package/dist/react/ds-menu.js +0 -1
  246. package/dist/react/ds-select.d.ts +2 -2
  247. package/dist/react/ds-shell-app.d.ts +24 -1
  248. package/dist/react/ds-shell-app.js +16 -1
  249. package/dist/types/components/AgentSourceList/AgentSourceList.d.ts +0 -1
  250. package/dist/types/components/BarNav/BarNav.d.ts +0 -2
  251. package/dist/types/components/BarNav/bar-nav-utils.d.ts +2 -4
  252. package/dist/types/components/ButtonFilled/ButtonFilled.d.ts +5 -11
  253. package/dist/types/components/ButtonUnfilled/ButtonUnfilled.d.ts +13 -10
  254. package/dist/types/components/CardDataViz/CardDataViz.d.ts +32 -0
  255. package/dist/types/components/CardDataViz/index.d.ts +2 -0
  256. package/dist/types/components/CardOverview/CardOverview.d.ts +17 -0
  257. package/dist/types/components/CardOverview/card-overview-controller.d.ts +16 -0
  258. package/dist/types/components/ChartBar/ChartBar.d.ts +12 -1
  259. package/dist/types/components/ChartBar/index.d.ts +2 -1
  260. package/dist/types/components/Menu/Menu.d.ts +0 -4
  261. package/dist/types/components/Menu/menu-sections.d.ts +4 -0
  262. package/dist/types/components/Menu/menu-types.d.ts +2 -11
  263. package/dist/types/components/MobileHeader/MobileHeader.d.ts +0 -5
  264. package/dist/types/components/MobileSectionSwitcher/MobileSectionSwitcher.d.ts +0 -2
  265. package/dist/types/components/PanelTools/PanelTools.d.ts +0 -4
  266. package/dist/types/components/PanelTools/index.d.ts +1 -1
  267. package/dist/types/components/PanelTools/panel-tools-types.d.ts +21 -7
  268. package/dist/types/components/PanelTools/panel-tools-utils.d.ts +1 -1
  269. package/dist/types/components/Select/Select.d.ts +12 -4
  270. package/dist/types/components/Select/index.d.ts +1 -1
  271. package/dist/types/components/ShellApp/ShellApp.d.ts +98 -0
  272. package/dist/types/components/ShellApp/shell-app-types.d.ts +92 -0
  273. package/dist/types/components/ShellPage/ShellPage.d.ts +5 -0
  274. package/dist/types/components/ShellTools/ShellTools.d.ts +2 -2
  275. package/dist/types/components.d.ts +210 -889
  276. package/dist/types/shell/index.d.ts +5 -13
  277. package/dist/types/shell/shell-responsive.d.ts +2 -1
  278. package/dist/types/utils/button-render.d.ts +18 -0
  279. package/dist/types/utils/button-story-foundation.d.ts +9 -0
  280. package/dist/types/utils/button-types.d.ts +11 -0
  281. package/dist/types/utils/form-association.d.ts +23 -0
  282. package/dist/types/utils/index.d.ts +4 -0
  283. package/dist/types/utils/required-validity.d.ts +1 -1
  284. package/dist/types/utils/safe-url.d.ts +12 -0
  285. package/dist/types/utils/select-controller.d.ts +1 -1
  286. package/package.json +16 -8
  287. package/dist/.build-stamp +0 -1
  288. package/dist/angular/ds-card-data-viz-bar.d.ts +0 -18
  289. package/dist/angular/ds-card-data-viz-bar.js +0 -42
  290. package/dist/angular/ds-card-data-viz-donut.d.ts +0 -18
  291. package/dist/angular/ds-card-data-viz-line.d.ts +0 -18
  292. package/dist/angular/ds-card-data-viz-line.js +0 -42
  293. package/dist/angular/ds-card-shell-data-viz.d.ts +0 -12
  294. package/dist/angular/ds-card-shell-data-viz.js +0 -38
  295. package/dist/angular/ds-chart-bar-stacked.d.ts +0 -12
  296. package/dist/angular/ds-chart-bar-stacked.js +0 -38
  297. package/dist/angular/ds-select-multi.d.ts +0 -28
  298. package/dist/angular/ds-select-multi.js +0 -49
  299. package/dist/angular/ds-shell-gradient-picker.d.ts +0 -16
  300. package/dist/angular/ds-shell-gradient-picker.js +0 -42
  301. package/dist/angular/ds-shell-gradient-swatch.d.ts +0 -16
  302. package/dist/angular/ds-shell-gradient-swatch.js +0 -42
  303. package/dist/components/ds-card-data-viz-bar.d.ts +0 -11
  304. package/dist/components/ds-card-data-viz-bar.js +0 -2
  305. package/dist/components/ds-card-data-viz-bar.js.map +0 -1
  306. package/dist/components/ds-card-data-viz-donut.d.ts +0 -11
  307. package/dist/components/ds-card-data-viz-donut.js +0 -2
  308. package/dist/components/ds-card-data-viz-donut.js.map +0 -1
  309. package/dist/components/ds-card-data-viz-line.d.ts +0 -11
  310. package/dist/components/ds-card-data-viz-line.js +0 -2
  311. package/dist/components/ds-card-data-viz-line.js.map +0 -1
  312. package/dist/components/ds-card-shell-data-viz.d.ts +0 -11
  313. package/dist/components/ds-card-shell-data-viz.js +0 -2
  314. package/dist/components/ds-card-shell-data-viz.js.map +0 -1
  315. package/dist/components/ds-chart-bar-stacked.d.ts +0 -11
  316. package/dist/components/ds-chart-bar-stacked.js +0 -2
  317. package/dist/components/ds-chart-bar-stacked.js.map +0 -1
  318. package/dist/components/ds-select-multi.js +0 -2
  319. package/dist/components/ds-select-multi.js.map +0 -1
  320. package/dist/components/ds-shell-gradient-picker.d.ts +0 -11
  321. package/dist/components/ds-shell-gradient-picker.js +0 -2
  322. package/dist/components/ds-shell-gradient-picker.js.map +0 -1
  323. package/dist/components/ds-shell-gradient-swatch.d.ts +0 -11
  324. package/dist/components/ds-shell-gradient-swatch.js +0 -2
  325. package/dist/components/ds-shell-gradient-swatch.js.map +0 -1
  326. package/dist/components/p-2foAUsDN.js +0 -2
  327. package/dist/components/p-2foAUsDN.js.map +0 -1
  328. package/dist/components/p-8GK7B7K4.js +0 -2
  329. package/dist/components/p-8GK7B7K4.js.map +0 -1
  330. package/dist/components/p-B5tMlca-.js +0 -2
  331. package/dist/components/p-B5tMlca-.js.map +0 -1
  332. package/dist/components/p-B88n0pO3.js +0 -2
  333. package/dist/components/p-B88n0pO3.js.map +0 -1
  334. package/dist/components/p-BBePKRHC.js +0 -2
  335. package/dist/components/p-BBePKRHC.js.map +0 -1
  336. package/dist/components/p-BOQnc-M4.js +0 -2
  337. package/dist/components/p-BOQnc-M4.js.map +0 -1
  338. package/dist/components/p-BgGP65Nn.js.map +0 -1
  339. package/dist/components/p-BrusnEYP.js +0 -2
  340. package/dist/components/p-BrusnEYP.js.map +0 -1
  341. package/dist/components/p-C61yJkfr.js +0 -2
  342. package/dist/components/p-C61yJkfr.js.map +0 -1
  343. package/dist/components/p-CCzG5xDD.js.map +0 -1
  344. package/dist/components/p-CGVXbXv9.js +0 -2
  345. package/dist/components/p-CGVXbXv9.js.map +0 -1
  346. package/dist/components/p-CH3w-P2H.js +0 -2
  347. package/dist/components/p-CH3w-P2H.js.map +0 -1
  348. package/dist/components/p-Cuqxh-Tq.js +0 -2
  349. package/dist/components/p-Cuqxh-Tq.js.map +0 -1
  350. package/dist/components/p-D1HFMTdC.js +0 -2
  351. package/dist/components/p-D1HFMTdC.js.map +0 -1
  352. package/dist/components/p-D2x17ei-.js +0 -2
  353. package/dist/components/p-D2x17ei-.js.map +0 -1
  354. package/dist/components/p-DLZm_-sU.js +0 -2
  355. package/dist/components/p-DLZm_-sU.js.map +0 -1
  356. package/dist/components/p-DjKkSqrG.js +0 -2
  357. package/dist/components/p-DjKkSqrG.js.map +0 -1
  358. package/dist/components/p-DjbTFy2B.js.map +0 -1
  359. package/dist/components/p-DlscFn2m.js +0 -2
  360. package/dist/components/p-DlscFn2m.js.map +0 -1
  361. package/dist/components/p-DxkEC0hR.js +0 -2
  362. package/dist/components/p-DxkEC0hR.js.map +0 -1
  363. package/dist/components/p-Re2kPrXm.js +0 -2
  364. package/dist/components/p-Re2kPrXm.js.map +0 -1
  365. package/dist/components/p-XMZCaXs7.js +0 -2
  366. package/dist/components/p-XMZCaXs7.js.map +0 -1
  367. package/dist/components/p-dyUp3Adm.js +0 -2
  368. package/dist/components/p-dyUp3Adm.js.map +0 -1
  369. package/dist/components/p-nkYN0Bub.js +0 -2
  370. package/dist/components/p-nkYN0Bub.js.map +0 -1
  371. package/dist/framework/select-multi-value-accessor.d.ts +0 -9
  372. package/dist/framework/select-multi-value-accessor.js +0 -40
  373. package/dist/lib/shell/badge-gradient-ring.d.ts +0 -27
  374. package/dist/lib/shell/chrome-transition.d.ts +0 -32
  375. package/dist/lib/shell/shell-chrome-metrics.d.ts +0 -11
  376. package/dist/lib/shell/shell-gradient.d.ts +0 -41
  377. package/dist/lib/shell/shell-view-transition.d.ts +0 -23
  378. package/dist/mcp-data/registry/card-data-viz-bar.json +0 -213
  379. package/dist/mcp-data/registry/card-data-viz-donut.json +0 -214
  380. package/dist/mcp-data/registry/card-data-viz-line.json +0 -207
  381. package/dist/mcp-data/registry/card-shell-data-viz.json +0 -180
  382. package/dist/mcp-data/registry/chart-bar-stacked.json +0 -230
  383. package/dist/mcp-data/registry/select-multi.json +0 -758
  384. package/dist/mcp-data/registry/shell-gradient-picker.json +0 -195
  385. package/dist/mcp-data/registry/shell-gradient-swatch.json +0 -215
  386. package/dist/react/ds-card-data-viz-bar.d.ts +0 -12
  387. package/dist/react/ds-card-data-viz-bar.js +0 -12
  388. package/dist/react/ds-card-data-viz-donut.d.ts +0 -12
  389. package/dist/react/ds-card-data-viz-donut.js +0 -12
  390. package/dist/react/ds-card-data-viz-line.d.ts +0 -12
  391. package/dist/react/ds-card-data-viz-line.js +0 -12
  392. package/dist/react/ds-card-shell-data-viz.d.ts +0 -9
  393. package/dist/react/ds-card-shell-data-viz.js +0 -12
  394. package/dist/react/ds-chart-bar-stacked.d.ts +0 -9
  395. package/dist/react/ds-chart-bar-stacked.js +0 -12
  396. package/dist/react/ds-select-multi.d.ts +0 -14
  397. package/dist/react/ds-select-multi.js +0 -16
  398. package/dist/react/ds-shell-gradient-picker.d.ts +0 -12
  399. package/dist/react/ds-shell-gradient-picker.js +0 -12
  400. package/dist/react/ds-shell-gradient-swatch.d.ts +0 -12
  401. package/dist/react/ds-shell-gradient-swatch.js +0 -12
  402. package/dist/types/components/CardDataVizBar/CardDataVizBar.d.ts +0 -24
  403. package/dist/types/components/CardDataVizBar/index.d.ts +0 -2
  404. package/dist/types/components/CardDataVizDonut/CardDataVizDonut.d.ts +0 -28
  405. package/dist/types/components/CardDataVizDonut/index.d.ts +0 -2
  406. package/dist/types/components/CardDataVizLine/CardDataVizLine.d.ts +0 -24
  407. package/dist/types/components/CardDataVizLine/index.d.ts +0 -2
  408. package/dist/types/components/CardShellDataViz/CardShellDataViz.d.ts +0 -13
  409. package/dist/types/components/CardShellDataViz/index.d.ts +0 -2
  410. package/dist/types/components/ChartBarStacked/ChartBarStacked.d.ts +0 -26
  411. package/dist/types/components/ChartBarStacked/index.d.ts +0 -3
  412. package/dist/types/components/SelectMulti/SelectMulti.d.ts +0 -121
  413. package/dist/types/components/SelectMulti/index.d.ts +0 -2
  414. package/dist/types/components/ShellGradientPicker/ShellGradientPicker.d.ts +0 -12
  415. package/dist/types/components/ShellGradientSwatch/ShellGradientSwatch.d.ts +0 -15
  416. package/dist/types/components/ShellGradientSwatch/shell-gradient-swatch-types.d.ts +0 -4
  417. /package/dist/components/{p-CgEYdMee.js.map → p-6qXDqCj_.js.map} +0 -0
  418. /package/dist/components/{p-Cr3tEx7o.js.map → p-Ay1AX7Ql.js.map} +0 -0
  419. /package/dist/components/{p-BOCfICln.js.map → p-B1cbQ0SG.js.map} +0 -0
  420. /package/dist/components/{p-BKOlvCGS.js.map → p-BUZXuod2.js.map} +0 -0
  421. /package/dist/components/{p-DCvA3Dc9.js.map → p-BaUsq_VK.js.map} +0 -0
  422. /package/dist/components/{p-BO5aqZcf.js.map → p-BcTYhmku.js.map} +0 -0
  423. /package/dist/components/{p-BDKtu6Wb.js.map → p-BroVnDzE.js.map} +0 -0
  424. /package/dist/components/{p-CIiBpjCn.js.map → p-BsoqsbBh.js.map} +0 -0
  425. /package/dist/components/{p-C8HU4W8q.js.map → p-CBazaRlE.js.map} +0 -0
  426. /package/dist/components/{p-BhV5e6vF.js.map → p-CHuh71-U.js.map} +0 -0
  427. /package/dist/components/{p-CChcuL04.js.map → p-CMWata9g.js.map} +0 -0
  428. /package/dist/components/{p-DRnIuCiT.js.map → p-DeQwkbT1.js.map} +0 -0
  429. /package/dist/components/{p-Cuih680v.js.map → p-Df17mJqI.js.map} +0 -0
  430. /package/dist/components/{p-YR1XeuZf.js.map → p-ohsLFap_.js.map} +0 -0
@@ -0,0 +1,2 @@
1
+ import{p as s,H as e,c as t,h as o,a as n,t as i}from"./index.js";import{p as a}from"./p-B6Vuayt6.js";import{d as l}from"./p-BsoqsbBh.js";import{d as r}from"./p-DsiCDzoF.js";import{d}from"./p-BAfG3M8z.js";import{d as c}from"./p-Ca-I2UnB.js";import{d as h}from"./p-B1cbQ0SG.js";import{d as p}from"./p-Ay1AX7Ql.js";import{d as f}from"./p-ohsLFap_.js";const u=["search","agents","messages","stacks","activity","help"];const m={search:"Search",messages:"Messages",stacks:"Stacks",activity:"Activity",agents:"Agents",help:"Help & Support"};const g={search:"K",agents:"A",messages:"M",stacks:"S",activity:"N",help:"/"};const v=[{id:"search",icon:"MagnifyingGlass",label:m.search,railPlacement:"header",order:0,shortcutKey:g.search,mobileDestination:"search"},{id:"agents",icon:"AI",label:m.agents,order:1,shortcutKey:g.agents,mobileDestination:"agents"},{id:"messages",icon:"MessageBubbleStack",label:m.messages,order:2,shortcutKey:g.messages,mobileDestination:"inbox"},{id:"stacks",icon:"ViewMenu",label:m.stacks,order:3,shortcutKey:g.stacks,mobileDestination:"inbox"},{id:"activity",icon:"Bell",label:m.activity,order:4,shortcutKey:g.activity,mobileDestination:"inbox"},{id:"help",icon:"CircleQuestion",label:m.help,railPlacement:"footer",order:5,shortcutKey:g.help,mobileDestination:"help"}];function b(s){const e=new Map;for(const t of s){if(t.id.trim()&&!e.has(t.id))e.set(t.id,t)}const t={header:0,body:1,footer:2};return Array.from(e.values()).sort(((s,e)=>{const o=w(s);const n=w(e);const i=t[o]-t[n];if(i!==0)return i;const a=u.findIndex((e=>e===s.id));const l=u.findIndex((s=>s===e.id));const r=s.order??(a<0?Number.MAX_SAFE_INTEGER:a);const d=e.order??(l<0?Number.MAX_SAFE_INTEGER:l);return r-d}))}function _(s){return typeof s==="string"&&s.trim().length>0}function w(s){if(s.railPlacement)return s.railPlacement;if(s.id==="search")return"header";if(s.id==="help")return"footer";return"body"}function y(s,e,t){if(!t||s.some((s=>s.id===t))){return{open:e,activeTool:t,removedTool:""}}return{open:false,activeTool:"",removedTool:t}}function x(s){const e=s.transitionProperty.split(",").map((s=>s.trim()));const t=s.transitionDuration.split(",").map((s=>a(s.trim(),0)));const o=s.transitionDelay.split(",").map((s=>a(s.trim(),0)));return e.reduce(((s,e,n)=>{if(e!=="all"&&e!=="max-width")return s;const i=t[n%t.length]??0;const a=o[n%o.length]??0;return Math.max(s,i+a,0)}),0)}function k(s,e){return!s&&e==="idle"}function A(s,e,t){if(t==="closing")return s<=.5;if(t==="opening")return e>0&&s>=e-.5;return true}function T(s,e,t){if(s&&e===t){return{open:false,activeTool:t,selected:false}}return{open:true,activeTool:t,selected:true}}const C=()=>`.ds-control--lg.sc-ds-panel-tools,.ds-control--lg.sc-ds-panel-tools-h,.ds-control--md.sc-ds-panel-tools-h,.ds-control--md.sc-ds-panel-tools,.ds-control--sm.sc-ds-panel-tools-h,.ds-control--sm.sc-ds-panel-tools,.ds-control--xs.sc-ds-panel-tools-h,.ds-control--xs.sc-ds-panel-tools{--ds-control-radius:var(--dimension-radius-025)}.ds-control--lg.sc-ds-panel-tools-h,.ds-control--lg.sc-ds-panel-tools{--ds-control-height:var(--dimension-size-500);--ds-control-icon:var(--dimension-iconography-lg);--ds-control-padding-inline:var(--dimension-space-100);--ds-control-label-inset:var(--dimension-space-050);--ds-control-gap:var(--dimension-space-050)}.ds-control--md.sc-ds-panel-tools-h,.ds-control--md.sc-ds-panel-tools{--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--sm.sc-ds-panel-tools-h,.ds-control--sm.sc-ds-panel-tools{--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--xs.sc-ds-panel-tools-h,.ds-control--xs.sc-ds-panel-tools{--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-chrome-space--sm.sc-ds-panel-tools-h,.ds-chrome-space--sm.sc-ds-panel-tools{--ds-chrome-padding:var(--dimension-space-050);--ds-chrome-gap:var(--dimension-space-050)}.ds-chrome-space--md.sc-ds-panel-tools-h,.ds-chrome-space--md.sc-ds-panel-tools{--ds-chrome-padding:var(--dimension-space-100);--ds-chrome-gap:var(--dimension-space-100)}.ds-chrome-space--lg.sc-ds-panel-tools-h,.ds-chrome-space--lg.sc-ds-panel-tools{--ds-chrome-padding:var(--dimension-space-200);--ds-chrome-gap:var(--dimension-space-200)}.ds-chrome-row.sc-ds-panel-tools-h,.ds-chrome-row.sc-ds-panel-tools,.ds-chrome-column.sc-ds-panel-tools-h,.ds-chrome-column.sc-ds-panel-tools,.ds-chrome-grid.sc-ds-panel-tools-h,.ds-chrome-grid.sc-ds-panel-tools{display:flex;box-sizing:border-box;gap:var(--ds-chrome-gap, var(--dimension-space-100));padding:var(--ds-chrome-padding, var(--dimension-space-100))}.ds-chrome-row.sc-ds-panel-tools-h,.ds-chrome-row.sc-ds-panel-tools{flex-direction:row;align-items:center}.ds-chrome-column.sc-ds-panel-tools-h,.ds-chrome-column.sc-ds-panel-tools{flex-direction:column}.ds-chrome-grid.sc-ds-panel-tools-h,.ds-chrome-grid.sc-ds-panel-tools{display:grid;align-items:center}.ds-scrollbar-hidden.sc-ds-panel-tools-h,.ds-scrollbar-hidden.sc-ds-panel-tools{scrollbar-width:none}.ds-scrollbar-hidden.sc-ds-panel-tools-h::-webkit-scrollbar,.ds-scrollbar-hidden.sc-ds-panel-tools::-webkit-scrollbar{display:none}.sc-ds-panel-tools-h{display:block;flex:0 0 auto;box-sizing:border-box;height:100%;min-height:0;overflow:hidden;--_panel-tools-rail-width:var(--dimension-size-600);--_panel-tools-drawer-width:var(--ds-shell-panel-tools-width, var(--dimension-panel-width-xs));--_panel-tools-border:var(--dimension-stroke-width-012, 1px) solid var(--color-border-tertiary);--_panel-tools-expand-dur:var(--effect-animation-duration-medium-1, 300ms)}.panel-tools__layout.sc-ds-panel-tools{display:flex;flex-direction:row-reverse;align-items:stretch;height:100%;min-height:0;box-sizing:border-box}.panel-tools__drawer.sc-ds-panel-tools{flex:0 0 auto;max-width:0;min-width:0;height:100%;min-height:0;overflow:hidden;box-sizing:border-box;transition:none}.panel-tools--ready.sc-ds-panel-tools-h .panel-tools__drawer.sc-ds-panel-tools{transition:max-width var(--_panel-tools-expand-dur) var(--effect-animation-easing-ease-in-out, ease)}.panel-tools--ready.panel-tools--motion-opening.sc-ds-panel-tools-h .panel-tools__drawer.sc-ds-panel-tools{transition:max-width var(--_panel-tools-expand-dur) var(--effect-animation-easing-ease-out, ease-out)}.panel-tools--ready.panel-tools--motion-closing.sc-ds-panel-tools-h .panel-tools__drawer.sc-ds-panel-tools{transition:max-width var(--_panel-tools-expand-dur) var(--effect-animation-easing-ease-in, ease-in)}.panel-tools--open.sc-ds-panel-tools-h .panel-tools__drawer.sc-ds-panel-tools{max-width:var(--_panel-tools-drawer-width)}.panel-tools__drawer--visible.sc-ds-panel-tools{border-left:var(--_panel-tools-border)}.panel-tools__drawer-surface.sc-ds-panel-tools{display:flex;flex-direction:column;width:var(--_panel-tools-drawer-width);height:100%;min-height:0;box-sizing:border-box;background-color:transparent}.panel-tools__full-views.sc-ds-panel-tools,.panel-tools__full-view.sc-ds-panel-tools{flex:1 1 auto;min-height:0;overflow:hidden}.panel-tools__full-view.sc-ds-panel-tools{height:100%}.panel-tools__full-view.sc-ds-panel-tools{display:none}.panel-tools__full-view--active.sc-ds-panel-tools{display:block}[presentation='fullscreen'].sc-ds-panel-tools-h{height:100vh;inset:0;position:fixed;width:100vw;z-index:var(--dimension-z-index-modal)}[presentation='fullscreen'].sc-ds-panel-tools-h .panel-tools__rail.sc-ds-panel-tools{display:none}[presentation='fullscreen'].sc-ds-panel-tools-h .panel-tools__drawer.sc-ds-panel-tools{max-width:100vw;transition:none;width:100vw}[presentation='fullscreen'].sc-ds-panel-tools-h .panel-tools__drawer--visible.sc-ds-panel-tools{border-left:none}[presentation='fullscreen'].sc-ds-panel-tools-h .panel-tools__drawer-surface.sc-ds-panel-tools{background-color:transparent;width:100vw}[presentation='fullscreen'].sc-ds-panel-tools-h:not(.panel-tools--fullscreen) .panel-tools__drawer-surface.sc-ds-panel-tools,.panel-tools--fullscreen.sc-ds-panel-tools-h:not([presentation='fullscreen']) .panel-tools__drawer-surface.sc-ds-panel-tools{visibility:hidden}.panel-tools--presentation-snap.sc-ds-panel-tools-h .panel-tools__drawer.sc-ds-panel-tools{transition:none}.panel-tools__body.sc-ds-panel-tools{flex:1 1 auto;min-height:0;overflow:auto;position:relative}.panel-tools--drawer-resting.sc-ds-panel-tools-h .panel-tools__body.sc-ds-panel-tools{content-visibility:auto;contain-intrinsic-size:auto 200px}.panel-tools__view.sc-ds-panel-tools{display:none;height:100%;min-height:0;box-sizing:border-box;padding:var(--dimension-space-200);color:var(--color-foreground-secondary);font-family:var(--typography-font-family);font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md);font-weight:var(--typography-weight-regular);letter-spacing:var(--typography-letterspacing-negative-half)}.panel-tools__view.sc-ds-panel-tools-s>*,.panel-tools__view .sc-ds-panel-tools-s>*{margin:0;color:var(--color-foreground-secondary);font-family:var(--typography-font-family);font-size:var(--typography-fontsize-md);line-height:var(--typography-lineheight-md);font-weight:var(--typography-weight-regular);letter-spacing:var(--typography-letterspacing-negative-half)}.panel-tools__view--active.sc-ds-panel-tools{display:block}.panel-tools__rail.sc-ds-panel-tools{flex:0 0 var(--_panel-tools-rail-width);width:var(--_panel-tools-rail-width);min-width:var(--_panel-tools-rail-width);display:flex;flex-direction:column;box-sizing:border-box;height:100%;min-height:0;border-left:var(--_panel-tools-border);background-color:transparent}.panel-tools__rail-header.sc-ds-panel-tools{justify-content:center;height:var(--dimension-size-600);flex-shrink:0;border-bottom:var(--_panel-tools-border)}.panel-tools__rail-body.sc-ds-panel-tools{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden}.panel-tools__rail-actions.sc-ds-panel-tools{display:flex;flex-direction:column;gap:var(--dimension-space-050);width:100%}.panel-tools__rail-footer.sc-ds-panel-tools{justify-content:center;flex-shrink:0;margin-top:auto}.panel-tools__rail-action.sc-ds-panel-tools{display:flex;align-items:center;justify-content:center;width:100%;height:var(--ds-control-height);flex-shrink:0}@media (prefers-reduced-motion: reduce){.panel-tools--ready.panel-tools--motion-opening.sc-ds-panel-tools-h .panel-tools__drawer.sc-ds-panel-tools,.panel-tools--ready.panel-tools--motion-closing.sc-ds-panel-tools-h .panel-tools__drawer.sc-ds-panel-tools{transition:none}}`;const z=s(class s extends e{constructor(s){super();if(s!==false){this.__registerHost()}this.dsToolChange=t(this,"dsToolChange");this.dsPresentationChange=t(this,"dsPresentationChange");this.dsHeaderBack=t(this,"dsHeaderBack");this.dsHeaderAction=t(this,"dsHeaderAction");this.dsChromeTransitionStart=t(this,"dsChromeTransitionStart");this.dsChromeTransitionEnd=t(this,"dsChromeTransitionEnd");this.open=false;this.presentation="drawer";this.fullscreenHeaderMode="shared";this.activeTool="";this.items=[];this.toolsLabel="Tools";this.toolShortcutsLabel="Tool shortcuts";this.headers={};this.storageKey="";this.motion="idle";this.drawerSurfaceRetained=false;this.readyForMotion=false;this.presentationMotionSuppressed=false;this.rovingIndex=0;this.fullViewToolIds=[];this.motionEnableGeneration=0;this.presentationMotionGeneration=0;this.transitionGeneration=0;this.transitionFallbackTimer=null;this.ignoreReplacementTerminal=false;this.focusBeforeFullscreen=null;this.fullViewObserver=null;this.handleComposedHeaderAction=s=>{const e=s.detail;if(!this.activeTool||!e?.id)return;s.stopPropagation();this.dsHeaderAction.emit({tool:this.activeTool,id:e.id})};this.handleTransitionEnd=s=>{const e=this.el.querySelector(".panel-tools__drawer");if(s.target!==e)return;if(s.propertyName!=="max-width")return;if(this.ignoreReplacementTerminal){this.ignoreReplacementTerminal=false;return}if(s.type==="transitioncancel")return;if(e&&!this.drawerTransitionAtTerminal(e,this.motion))return;this.finishDrawerTransition()};this.handleToolChange=s=>{const e=T(this.open,this.activeTool,s);this.open=e.open;this.activeTool=e.activeTool;this.dsToolChange.emit({id:s,selected:e.selected})};this.handleRailKeyDown=(s,e)=>{const t=this.orderedRailItems;if(!t.length)return;if(s.key==="Enter"||s.key===" "){s.preventDefault();this.handleToolChange(t[e].id);return}if(s.key==="ArrowDown"){if(e>=t.length-1)return;s.preventDefault();this.focusRailAt(e+1);return}if(s.key==="ArrowUp"){if(e<=0)return;s.preventDefault();this.focusRailAt(e-1)}}}get railItems(){return this.items??[]}get orderedRailItems(){return b(this.railItems)}disconnectedCallback(){this.el.removeEventListener("transitionend",this.handleTransitionEnd);this.el.removeEventListener("transitioncancel",this.handleTransitionEnd);this.el.removeEventListener("dsAction",this.handleComposedHeaderAction);this.clearTransitionCompletion();this.motionEnableGeneration+=1;this.fullViewObserver?.disconnect();this.fullViewObserver=null}presentationChanged(s,t){if(s===t)return;if(this.el.getAttribute("presentation")!==s){this.el.setAttribute("presentation",s)}const o=++this.presentationMotionGeneration;this.presentationMotionSuppressed=true;requestAnimationFrame((()=>{requestAnimationFrame((()=>{if(o!==this.presentationMotionGeneration)return;this.presentationMotionSuppressed=false}))}));if(s==="fullscreen"){this.focusBeforeFullscreen=document.activeElement instanceof e?document.activeElement:null;this.open=true}else if(t==="fullscreen"){const s=this.focusBeforeFullscreen;const e=this.activeHeader().actions?.[0]?.id;requestAnimationFrame((async()=>{if(s?.isConnected){s.focus({preventScroll:true})}const t=s?document.activeElement===s||s.contains(document.activeElement):false;if(!t&&e)await this.focusHeaderAction(e);this.focusBeforeFullscreen=null}))}this.dsPresentationChange.emit({presentation:s})}handleFullscreenEscape(s){if(this.presentation!=="fullscreen"||s.key!=="Escape")return;s.preventDefault();s.stopPropagation();this.presentation="drawer"}deferMotionEnable(){if(this.readyForMotion)return;const s=++this.motionEnableGeneration;requestAnimationFrame((()=>{if(s!==this.motionEnableGeneration)return;requestAnimationFrame((()=>{if(s!==this.motionEnableGeneration)return;this.readyForMotion=true}))}))}connectedCallback(){this.el.addEventListener("transitionend",this.handleTransitionEnd);this.el.addEventListener("transitioncancel",this.handleTransitionEnd);this.el.addEventListener("dsAction",this.handleComposedHeaderAction)}componentWillLoad(){this.restoreLastActiveTool();this.drawerSurfaceRetained=this.open}openChanged(s,e){if(s)this.drawerSurfaceRetained=true;if(this.readyForMotion&&e!==undefined&&e!==s){this.startDrawerTransition(s?"opening":"closing")}else if(!s){this.drawerSurfaceRetained=false}this.deferMotionEnable()}activeToolChanged(){this.persistLastActiveTool();this.deferMotionEnable()}storageKeyChanged(){this.restoreLastActiveTool()}componentDidLoad(){this.deferMotionEnable();this.syncFullViewTools();this.fullViewObserver=new MutationObserver((()=>this.syncFullViewTools()));this.fullViewObserver.observe(this.el,{childList:true,attributes:true,attributeFilter:["slot"]})}itemsChanged(){this.rovingIndex=0;this.reconcileActiveTool();this.deferMotionEnable()}restoreLastActiveTool(){if(!this.storageKey||this.activeTool)return;try{const s=localStorage.getItem(this.storageKey);if(_(s))this.activeTool=s}catch{}}persistLastActiveTool(){if(!this.storageKey||!this.activeTool)return;try{localStorage.setItem(this.storageKey,this.activeTool)}catch{}}clearPersistedTool(){if(!this.storageKey)return;try{localStorage.removeItem(this.storageKey)}catch{}}reconcileActiveTool(){const s=y(this.railItems,this.open,this.activeTool);if(!s.removedTool)return;this.clearPersistedTool();this.open=s.open;this.activeTool=s.activeTool;this.dsToolChange.emit({id:s.removedTool,selected:false})}startDrawerTransition(s){const e=this.el.querySelector(".panel-tools__drawer");if(this.motion!=="idle"){this.finishDrawerTransition();this.ignoreReplacementTerminal=true}this.motion=s;this.dsChromeTransitionStart.emit({source:"panel-tools",phase:s});const t=++this.transitionGeneration;requestAnimationFrame((()=>{requestAnimationFrame((()=>{if(t!==this.transitionGeneration||this.motion!==s)return;if(!e){this.finishDrawerTransition();return}if(this.drawerTransitionAtTerminal(e,s)){this.finishDrawerTransition();return}const o=x(getComputedStyle(e));if(o<=0){this.finishDrawerTransition();return}this.transitionFallbackTimer=window.setTimeout((()=>{this.finishDrawerTransition()}),o)}))}))}drawerTransitionAtTerminal(s,e){const t=s.getBoundingClientRect().width;const o=s.querySelector(".panel-tools__drawer-surface");const n=o?.getBoundingClientRect().width??0;return A(t,n,e)}finishDrawerTransition(){const s=this.motion;const e=s!=="idle";this.clearTransitionCompletion();if(!e)return;this.ignoreReplacementTerminal=false;this.motion="idle";if(s==="closing"&&!this.open){this.drawerSurfaceRetained=false}this.dsChromeTransitionEnd.emit({source:"panel-tools"})}clearTransitionCompletion(){this.transitionGeneration+=1;if(this.transitionFallbackTimer!==null){window.clearTimeout(this.transitionFallbackTimer);this.transitionFallbackTimer=null}}isRailSelected(s){return this.open&&this.activeTool===s}isDrawerPresent(){return this.open||this.drawerSurfaceRetained}isViewActive(s){return this.isDrawerPresent()&&this.activeTool===s}hasFullView(s){return this.fullViewToolIds.includes(s)}syncFullViewTools(){const s=this.orderedRailItems.map((s=>s.id));const e=s.filter((s=>Boolean(this.el.querySelector(`[slot="${s}-view"]`))));if(e.join("|")!==this.fullViewToolIds.join("|"))this.fullViewToolIds=e}headerLabel(){if(!this.isDrawerPresent()||!this.activeTool)return"";const s=this.railItems.find((s=>s.id===this.activeTool));return s?.label??m[this.activeTool]??this.activeTool}resolvedHeaders(){return this.headers??{}}activeHeader(){if(!this.activeTool)return{};return this.resolvedHeaders()[this.activeTool]??{}}async activateTool(s){const e=this.railItems.find((e=>e.id===s));if(!e||e.isInactive)return;this.handleToolChange(s)}async closeDrawer(){if(!this.open)return;const s=this.activeTool;this.open=false;if(s){this.dsToolChange.emit({id:s,selected:false})}}async focusHeaderAction(s){const e=this.el.querySelector(`[data-header-action-id="${CSS.escape(s)}"]`);await(e?.setFocus?.())}focusRailAt(s){const e=this.orderedRailItems;if(!e.length)return;const t=Math.max(0,Math.min(s,e.length-1));if(t===this.rovingIndex)return;this.rovingIndex=t;const o=Array.from(this.el.querySelectorAll(".panel-tools__rail-action .button-icon"));o[t]?.focus({preventScroll:true})}renderRailAction(s,e){const t=s.ariaLabel??s.label??m[s.id]??s.id;return o("ds-tooltip",{key:s.id,label:t,shortcutKey:s.shortcutKey??g[s.id],side:"left",size:"sm"},o("ds-button-unfilled",{variant:"icon",class:"panel-tools__rail-action",icon:s.icon,isActive:this.isRailSelected(s.id),activeFill:false,hasBorder:false,pressScale:false,dot:s.dot??false,isInactive:s.isInactive,focusTabIndex:e===this.rovingIndex?0:-1,"aria-label":t,pressed:this.isRailSelected(s.id),onFocusin:()=>{this.rovingIndex=e},onKeyDown:s=>this.handleRailKeyDown(s,e),onDsClick:()=>this.handleToolChange(s.id)}))}render(){const s=this.headerLabel();const e=this.activeHeader();const t=e.title?.trim()||s;const i=e.actions??[];const a=this.orderedRailItems;const l=a.filter((s=>w(s)==="header"));const r=a.filter((s=>w(s)==="body"));const d=a.filter((s=>w(s)==="footer"));const c=l.length;const h=c+r.length;const p=this.isDrawerPresent();const f=k(this.open,this.motion);const u=Boolean(p&&this.activeTool&&this.hasFullView(this.activeTool));const m=a.map((s=>s.id));return o(n,{key:"993269b05735758d3bd76ab37d0463fd100c8212",class:{"panel-tools":true,"panel-tools--open":this.open,"panel-tools--ready":this.readyForMotion,"panel-tools--motion-opening":this.motion==="opening","panel-tools--motion-closing":this.motion==="closing","panel-tools--drawer-resting":f,"panel-tools--fullscreen":this.presentation==="fullscreen","panel-tools--presentation-snap":this.presentationMotionSuppressed},role:this.presentation==="fullscreen"?"dialog":"complementary","aria-modal":this.presentation==="fullscreen"?"true":undefined,"aria-label":this.toolsLabel},o("div",{key:"cf28c343a7c84d12efe72f9e74375520033d9e57",class:"panel-tools__layout"},o("nav",{key:"843ea60db330923bc42cf8ab2b66973b61d1ed6c",class:"panel-tools__rail","aria-label":this.toolShortcutsLabel},l.length?o("div",{class:"panel-tools__rail-header ds-chrome-row ds-chrome-space--md"},l.map(((s,e)=>this.renderRailAction(s,e)))):null,o("div",{key:"7d746be7dd25f892e504ccf75c6409539230cea5",class:"panel-tools__rail-body ds-chrome-column ds-chrome-space--md ds-scrollbar-hidden"},o("div",{key:"03abed4063fb556f65dbd9be0f52d6faa71f1bed",class:"panel-tools__rail-actions"},r.map(((s,e)=>this.renderRailAction(s,c+e))))),d.length?o("div",{class:"panel-tools__rail-footer ds-chrome-row ds-chrome-space--md"},d.map(((s,e)=>this.renderRailAction(s,h+e)))):null),o("div",{key:"fb6f5277e2a9a28d4d546ac5ed4d1cf7fc0c0fea",class:{"panel-tools__drawer":true,"panel-tools__drawer--visible":p},"aria-hidden":p?null:"true",inert:p?undefined:true},o("div",{key:"319a5b25248209c54b192ae827f971b4acb0f3d3",class:"panel-tools__drawer-surface"},this.presentation!=="fullscreen"||this.fullscreenHeaderMode==="shared"?o("ds-panel-tool-header",{class:"panel-tools__header",heading:t,showBack:e.showBack??false,backIcon:e.backIcon||"ChevronLeft",backAriaLabel:e.backAriaLabel||"Back",showMenu:false,ref:s=>{const e=s;if(e)e.actions=i},onDsBack:()=>{if(this.activeTool)this.dsHeaderBack.emit({tool:this.activeTool})}}):null,o("div",{key:"733ea2eb77a5f6d64e93f6da4db92d20bce8248e",class:"panel-tools__body",hidden:u},m.map((s=>{const e=this.isViewActive(s);return o("div",{class:{"panel-tools__view":true,"panel-tools__view--active":e},hidden:!e},o("slot",{name:s}))}))),o("div",{key:"a8104834f4622dee99ea9e3462a9e0378cb5e627",class:"panel-tools__full-views",hidden:!u},m.map((s=>o("div",{class:{"panel-tools__full-view":true,"panel-tools__full-view--active":this.isViewActive(s)&&this.hasFullView(s)},hidden:!(this.isViewActive(s)&&this.hasFullView(s))},o("slot",{name:`${s}-view`})))))))))}get el(){return this}static get watchers(){return{presentation:[{presentationChanged:0}],open:[{openChanged:0}],activeTool:[{activeToolChanged:0}],storageKey:[{storageKeyChanged:0}],items:[{itemsChanged:0}]}}static get style(){return C()}},[262,"ds-panel-tools",{open:[1540],presentation:[1537],fullscreenHeaderMode:[513,"fullscreen-header-mode"],activeTool:[1537,"active-tool"],items:[16],toolsLabel:[1,"tools-label"],toolShortcutsLabel:[1,"tool-shortcuts-label"],headers:[16],storageKey:[1,"storage-key"],motion:[32],drawerSurfaceRetained:[32],readyForMotion:[32],presentationMotionSuppressed:[32],rovingIndex:[32],fullViewToolIds:[32],activateTool:[64],closeDrawer:[64],focusHeaderAction:[64]},[[10,"keydown","handleFullscreenEscape"]],{presentation:[{presentationChanged:0}],open:[{openChanged:0}],activeTool:[{activeToolChanged:0}],storageKey:[{storageKeyChanged:0}],items:[{itemsChanged:0}]}]);function S(){if(typeof customElements==="undefined"){return}const s=["ds-panel-tools","ds-badge","ds-button-unfilled","ds-icon","ds-loader","ds-panel-tool-header","ds-text","ds-tooltip"];s.forEach((s=>{switch(s){case"ds-panel-tools":if(!customElements.get(i(s))){customElements.define(i(s),z)}break;case"ds-badge":if(!customElements.get(i(s))){l()}break;case"ds-button-unfilled":if(!customElements.get(i(s))){r()}break;case"ds-icon":if(!customElements.get(i(s))){d()}break;case"ds-loader":if(!customElements.get(i(s))){c()}break;case"ds-panel-tool-header":if(!customElements.get(i(s))){h()}break;case"ds-text":if(!customElements.get(i(s))){p()}break;case"ds-tooltip":if(!customElements.get(i(s))){f()}break}}))}S();export{z as P,m as a,T as b,v as c,S as d,b as o,y as r};
2
+ //# sourceMappingURL=p-BwT6B5Fi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["PANEL_TOOLS_TOOL_IDS","PANEL_TOOLS_LABELS","search","messages","stacks","activity","agents","help","PANEL_TOOLS_SHORTCUTS","PANEL_TOOLS_DEFAULT_ITEMS","id","icon","label","railPlacement","order","shortcutKey","mobileDestination","orderPanelToolsItems","items","firstById","Map","item","trim","has","set","regionOrder","header","body","footer","Array","from","values","sort","left","right","leftRegion","panelToolsRailPlacement","rightRegion","regionDelta","leftCanonical","findIndex","rightCanonical","leftOrder","Number","MAX_SAFE_INTEGER","rightOrder","isPanelToolsToolId","value","length","reconcilePanelToolsAvailability","open","activeTool","some","removedTool","panelToolsDrawerTransitionMs","style","properties","transitionProperty","split","map","durations","transitionDuration","parseCssTimeMs","delays","transitionDelay","reduce","max","property","index","duration","delay","Math","panelToolsDrawerResting","motion","panelToolsDrawerAtTerminal","width","targetWidth","resolvePanelToolActivation","selected","panelToolsCss","PanelTools","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","presentation","fullscreenHeaderMode","toolsLabel","toolShortcutsLabel","headers","storageKey","drawerSurfaceRetained","readyForMotion","presentationMotionSuppressed","rovingIndex","fullViewToolIds","motionEnableGeneration","presentationMotionGeneration","transitionGeneration","transitionFallbackTimer","ignoreReplacementTerminal","focusBeforeFullscreen","fullViewObserver","handleComposedHeaderAction","event","detail","stopPropagation","dsHeaderAction","emit","tool","handleTransitionEnd","drawer","el","querySelector","target","propertyName","type","drawerTransitionAtTerminal","finishDrawerTransition","handleToolChange","next","dsToolChange","handleRailKeyDown","e","orderedRailItems","key","preventDefault","focusRailAt","railItems","disconnectedCallback","removeEventListener","clearTransitionCompletion","disconnect","presentationChanged","previous","getAttribute","setAttribute","presentationGeneration","requestAnimationFrame","document","activeElement","fallbackActionId","activeHeader","actions","async","isConnected","focus","preventScroll","focusRestored","contains","focusHeaderAction","dsPresentationChange","handleFullscreenEscape","deferMotionEnable","generation","connectedCallback","addEventListener","componentWillLoad","restoreLastActiveTool","openChanged","isOpen","wasOpen","undefined","startDrawerTransition","activeToolChanged","persistLastActiveTool","storageKeyChanged","componentDidLoad","syncFullViewTools","MutationObserver","observe","childList","attributes","attributeFilter","itemsChanged","reconcileActiveTool","stored","localStorage","getItem","setItem","clearPersistedTool","removeItem","phase","dsChromeTransitionStart","source","fallbackMs","getComputedStyle","window","setTimeout","getBoundingClientRect","surface","completedPhase","wasTransitioning","dsChromeTransitionEnd","clearTimeout","isRailSelected","isDrawerPresent","isViewActive","hasFullView","includes","ids","filter","Boolean","join","headerLabel","find","candidate","resolvedHeaders","activateTool","entry","isInactive","closeDrawer","action","CSS","escape","setFocus","bounded","min","querySelectorAll","renderRailAction","ariaLabel","h","side","size","variant","class","isActive","activeFill","hasBorder","pressScale","dot","focusTabIndex","pressed","onFocusin","onKeyDown","onDsClick","render","headerTitle","title","headerActions","headerItems","bodyItems","footerItems","headerCount","footerStart","showDrawerChrome","drawerResting","activeFullView","toolIds","Host","role","bodyIdx","footerIdx","inert","heading","showBack","backIcon","backAriaLabel","showMenu","ref","element","toolHeader","onDsBack","dsHeaderBack","hidden","active","name"],"sources":["src/wc/components/PanelTools/panel-tools-types.ts","src/wc/components/PanelTools/panel-tools-utils.ts","src/wc/components/PanelTools/PanelTools.css?tag=ds-panel-tools&encapsulation=scoped","src/wc/components/PanelTools/PanelTools.tsx"],"sourcesContent":["/** Application-owned tool id for the shell rail and responsive tool views. */\nexport type PanelToolsToolId = string;\n\n/** Canonical Motive shell recipe used when item metadata is omitted. */\nexport type CanonicalPanelToolsToolId =\n | 'search'\n | 'agents'\n | 'messages'\n | 'stacks'\n | 'activity'\n | 'help';\n\nexport const PANEL_TOOLS_TOOL_IDS: CanonicalPanelToolsToolId[] = [\n 'search',\n 'agents',\n 'messages',\n 'stacks',\n 'activity',\n 'help',\n];\n\n/** Rail header slot — mirrors panel-nav M logo row. */\nexport const PANEL_TOOLS_PRIMARY_TOOL_ID: CanonicalPanelToolsToolId = 'search';\n\n/** Rail footer slot — flush to the bottom of the tools column. */\nexport const PANEL_TOOLS_FOOTER_TOOL_ID: CanonicalPanelToolsToolId = 'help';\n\nexport const PANEL_TOOLS_LABELS: Record<CanonicalPanelToolsToolId, string> = {\n search: 'Search',\n messages: 'Messages',\n stacks: 'Stacks',\n activity: 'Activity',\n agents: 'Agents',\n help: 'Help & Support',\n};\n\nexport const PANEL_TOOLS_SHORTCUTS: Partial<Record<CanonicalPanelToolsToolId, string>> = {\n search: 'K',\n agents: 'A',\n messages: 'M',\n stacks: 'S',\n activity: 'N',\n help: '/',\n};\n\nexport interface PanelToolsItem {\n id: PanelToolsToolId;\n /** Icon name for <ds-icon>. */\n icon: string;\n /** Visible and accessible fallback label for custom tool ids. */\n label?: string;\n /** Explicit rail region; canonical Search/Help placement is the fallback. */\n railPlacement?: 'header' | 'body' | 'footer';\n /** Stable ordering within the selected rail region. */\n order?: number;\n /** Optional shortcut label displayed by the tooltip. */\n shortcutKey?: string;\n /** Mobile destination recipe; canonical ids retain their existing defaults. */\n mobileDestination?: 'search' | 'agents' | 'inbox' | 'help';\n /** Whether this rail button is currently pressed/active. */\n selected?: boolean;\n /** Show a notification dot. */\n dot?: boolean;\n isInactive?: boolean;\n ariaLabel?: string;\n}\n\n/** Canonical shell recipe used by Lab and by managed ShellApp examples. */\nexport const PANEL_TOOLS_DEFAULT_ITEMS: PanelToolsItem[] = [\n {\n id: 'search',\n icon: 'MagnifyingGlass',\n label: PANEL_TOOLS_LABELS.search,\n railPlacement: 'header',\n order: 0,\n shortcutKey: PANEL_TOOLS_SHORTCUTS.search,\n mobileDestination: 'search',\n },\n {\n id: 'agents',\n icon: 'AI',\n label: PANEL_TOOLS_LABELS.agents,\n order: 1,\n shortcutKey: PANEL_TOOLS_SHORTCUTS.agents,\n mobileDestination: 'agents',\n },\n {\n id: 'messages',\n icon: 'MessageBubbleStack',\n label: PANEL_TOOLS_LABELS.messages,\n order: 2,\n shortcutKey: PANEL_TOOLS_SHORTCUTS.messages,\n mobileDestination: 'inbox',\n },\n {\n id: 'stacks',\n icon: 'ViewMenu',\n label: PANEL_TOOLS_LABELS.stacks,\n order: 3,\n shortcutKey: PANEL_TOOLS_SHORTCUTS.stacks,\n mobileDestination: 'inbox',\n },\n {\n id: 'activity',\n icon: 'Bell',\n label: PANEL_TOOLS_LABELS.activity,\n order: 4,\n shortcutKey: PANEL_TOOLS_SHORTCUTS.activity,\n mobileDestination: 'inbox',\n },\n {\n id: 'help',\n icon: 'CircleQuestion',\n label: PANEL_TOOLS_LABELS.help,\n railPlacement: 'footer',\n order: 5,\n shortcutKey: PANEL_TOOLS_SHORTCUTS.help,\n mobileDestination: 'help',\n },\n];\n\nexport interface PanelToolsHeaderAction {\n id: string;\n icon: string;\n ariaLabel: string;\n triggerId?: string;\n controls?: string;\n expanded?: boolean;\n haspopup?: 'menu' | 'dialog' | 'listbox' | 'tree' | 'grid';\n pressed?: boolean;\n isInactive?: boolean;\n}\n\nexport interface PanelToolsHeaderConfig {\n title?: string;\n showBack?: boolean;\n backIcon?: string;\n backAriaLabel?: string;\n actions?: PanelToolsHeaderAction[];\n}\n\n/** Per-tool header state. The application replaces the object when a tool changes depth or actions. */\nexport type PanelToolsHeaders = Partial<Record<PanelToolsToolId, PanelToolsHeaderConfig>>;\n","import { parseCssTimeMs } from '../../utils/resolve-css-time-ms';\nimport {\n PANEL_TOOLS_TOOL_IDS,\n type PanelToolsItem,\n type PanelToolsToolId,\n} from './panel-tools-types';\n\nexport function orderPanelToolsItems(items: PanelToolsItem[]): PanelToolsItem[] {\n const firstById = new Map<PanelToolsToolId, PanelToolsItem>();\n for (const item of items) {\n if (item.id.trim() && !firstById.has(item.id)) firstById.set(item.id, item);\n }\n const regionOrder = { header: 0, body: 1, footer: 2 } as const;\n return Array.from(firstById.values()).sort((left, right) => {\n const leftRegion = panelToolsRailPlacement(left);\n const rightRegion = panelToolsRailPlacement(right);\n const regionDelta = regionOrder[leftRegion] - regionOrder[rightRegion];\n if (regionDelta !== 0) return regionDelta;\n\n const leftCanonical = PANEL_TOOLS_TOOL_IDS.findIndex(id => id === left.id);\n const rightCanonical = PANEL_TOOLS_TOOL_IDS.findIndex(id => id === right.id);\n const leftOrder = left.order ?? (leftCanonical < 0 ? Number.MAX_SAFE_INTEGER : leftCanonical);\n const rightOrder =\n right.order ?? (rightCanonical < 0 ? Number.MAX_SAFE_INTEGER : rightCanonical);\n return leftOrder - rightOrder;\n });\n}\n\nexport function isPanelToolsToolId(value: string | null): value is PanelToolsToolId {\n return typeof value === 'string' && value.trim().length > 0;\n}\n\nexport function panelToolsRailPlacement(\n item: PanelToolsItem\n): 'header' | 'body' | 'footer' {\n if (item.railPlacement) return item.railPlacement;\n if (item.id === 'search') return 'header';\n if (item.id === 'help') return 'footer';\n return 'body';\n}\n\nexport function reconcilePanelToolsAvailability(\n items: PanelToolsItem[],\n open: boolean,\n activeTool: PanelToolsToolId | ''\n): { open: boolean; activeTool: PanelToolsToolId | ''; removedTool: PanelToolsToolId | '' } {\n if (!activeTool || items.some(item => item.id === activeTool)) {\n return { open, activeTool, removedTool: '' };\n }\n return { open: false, activeTool: '', removedTool: activeTool };\n}\n\nexport function shouldResyncPanelToolsItems(\n prev: PanelToolsItem[],\n next: PanelToolsItem[]\n): boolean {\n if (prev.length !== next.length) return true;\n return next.some((item, index) => {\n const prior = prev[index];\n if (!prior) return true;\n return (\n prior.id !== item.id ||\n prior.icon !== item.icon ||\n prior.label !== item.label ||\n prior.railPlacement !== item.railPlacement ||\n prior.order !== item.order ||\n prior.shortcutKey !== item.shortcutKey ||\n prior.mobileDestination !== item.mobileDestination ||\n prior.selected !== item.selected ||\n prior.dot !== item.dot ||\n prior.isInactive !== item.isInactive ||\n prior.ariaLabel !== item.ariaLabel\n );\n });\n}\n\nexport type PanelToolsMotion = 'opening' | 'closing' | 'idle';\n\nexport interface PanelToolsTransitionStyle {\n transitionProperty: string;\n transitionDuration: string;\n transitionDelay: string;\n}\n\n/** Maximum computed time for the drawer's max-width transition, including delay. */\nexport function panelToolsDrawerTransitionMs(style: PanelToolsTransitionStyle): number {\n const properties = style.transitionProperty.split(',').map(item => item.trim());\n const durations = style.transitionDuration.split(',').map(item => parseCssTimeMs(item.trim(), 0));\n const delays = style.transitionDelay.split(',').map(item => parseCssTimeMs(item.trim(), 0));\n\n return properties.reduce((max, property, index) => {\n if (property !== 'all' && property !== 'max-width') return max;\n const duration = durations[index % durations.length] ?? 0;\n const delay = delays[index % delays.length] ?? 0;\n return Math.max(max, duration + delay, 0);\n }, 0);\n}\n\n/** True when the drawer clip is fully closed — safe to skip painting slot content. */\nexport function panelToolsDrawerResting(open: boolean, motion: PanelToolsMotion): boolean {\n return !open && motion === 'idle';\n}\n\n/** True only when the animated clip has reached the terminal width for its motion phase. */\nexport function panelToolsDrawerAtTerminal(\n width: number,\n targetWidth: number,\n motion: PanelToolsMotion\n): boolean {\n if (motion === 'closing') return width <= 0.5;\n if (motion === 'opening') return targetWidth > 0 && width >= targetWidth - 0.5;\n return true;\n}\n\n/** Toggle or switch rail tool selection — repeat activation closes the active tool. */\nexport function resolvePanelToolActivation(\n open: boolean,\n activeTool: PanelToolsToolId | '',\n id: PanelToolsToolId\n): { open: boolean; activeTool: PanelToolsToolId; selected: boolean } {\n if (open && activeTool === id) {\n return { open: false, activeTool: id, selected: false };\n }\n return { open: true, activeTool: id, selected: true };\n}\n","@import '../../utils/control-density.css';\n@import '../../utils/chrome-layout.css';\n@import '../../utils/scrollbar-hidden.css';\n\n:host {\n display: block;\n flex: 0 0 auto;\n box-sizing: border-box;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n --_panel-tools-rail-width: var(--dimension-size-600);\n --_panel-tools-drawer-width: var(--ds-shell-panel-tools-width, var(--dimension-panel-width-xs));\n --_panel-tools-border: var(--dimension-stroke-width-012, 1px) solid var(--color-border-tertiary);\n /* Match panel-nav expand timing (medium-1); easing differs by direction. */\n --_panel-tools-expand-dur: var(--effect-animation-duration-medium-1, 300ms);\n}\n\n.panel-tools__layout {\n display: flex;\n flex-direction: row-reverse;\n align-items: stretch;\n height: 100%;\n min-height: 0;\n box-sizing: border-box;\n}\n\n/* Clip frame — only max-width animates (slide reveal, same as pre-rail :host). */\n.panel-tools__drawer {\n flex: 0 0 auto;\n max-width: 0;\n min-width: 0;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n box-sizing: border-box;\n transition: none;\n}\n\n:host(.panel-tools--ready) .panel-tools__drawer {\n transition: max-width var(--_panel-tools-expand-dur)\n var(--effect-animation-easing-ease-in-out, ease);\n}\n\n:host(.panel-tools--ready.panel-tools--motion-opening) .panel-tools__drawer {\n transition: max-width var(--_panel-tools-expand-dur)\n var(--effect-animation-easing-ease-out, ease-out);\n}\n\n:host(.panel-tools--ready.panel-tools--motion-closing) .panel-tools__drawer {\n transition: max-width var(--_panel-tools-expand-dur)\n var(--effect-animation-easing-ease-in, ease-in);\n}\n\n:host(.panel-tools--open) .panel-tools__drawer {\n max-width: var(--_panel-tools-drawer-width);\n}\n\n.panel-tools__drawer--visible {\n border-left: var(--_panel-tools-border);\n}\n\n/* Fixed-width surface — ShellApp supplies the standard 300px tools width. */\n.panel-tools__drawer-surface {\n display: flex;\n flex-direction: column;\n width: var(--_panel-tools-drawer-width);\n height: 100%;\n min-height: 0;\n box-sizing: border-box;\n background-color: transparent;\n}\n\n.panel-tools__full-views,\n.panel-tools__full-view {\n flex: 1 1 auto;\n min-height: 0;\n overflow: hidden;\n}\n\n.panel-tools__full-view {\n height: 100%;\n}\n\n.panel-tools__full-view {\n display: none;\n}\n.panel-tools__full-view--active {\n display: block;\n}\n\n:host([presentation='fullscreen']) {\n height: 100vh;\n inset: 0;\n position: fixed;\n width: 100vw;\n z-index: var(--dimension-z-index-modal);\n}\n\n:host([presentation='fullscreen']) .panel-tools__rail {\n display: none;\n}\n:host([presentation='fullscreen']) .panel-tools__drawer {\n max-width: 100vw;\n transition: none;\n width: 100vw;\n}\n:host([presentation='fullscreen']) .panel-tools__drawer--visible {\n border-left: none;\n}\n:host([presentation='fullscreen']) .panel-tools__drawer-surface {\n background-color: transparent;\n width: 100vw;\n}\n\n/*\n * A framework can update the reflected presentation attribute before Stencil\n * commits the matching render class. Conceal that single inconsistent frame so\n * slotted master/detail content never paints against the previous geometry.\n */\n:host([presentation='fullscreen']:not(.panel-tools--fullscreen)) .panel-tools__drawer-surface,\n:host(.panel-tools--fullscreen:not([presentation='fullscreen'])) .panel-tools__drawer-surface {\n visibility: hidden;\n}\n\n:host(.panel-tools--presentation-snap) .panel-tools__drawer {\n transition: none;\n}\n\n.panel-tools__body {\n flex: 1 1 auto;\n min-height: 0;\n overflow: auto;\n position: relative;\n}\n\n/* Skip paint while fully closed; cleared during open/close motion for WYSIWYG slide. */\n:host(.panel-tools--drawer-resting) .panel-tools__body {\n content-visibility: auto;\n contain-intrinsic-size: auto 200px;\n}\n\n.panel-tools__view {\n display: none;\n height: 100%;\n min-height: 0;\n box-sizing: border-box;\n padding: var(--dimension-space-200);\n color: var(--color-foreground-secondary);\n font-family: var(--typography-font-family);\n font-size: var(--typography-fontsize-md);\n line-height: var(--typography-lineheight-md);\n font-weight: var(--typography-weight-regular);\n letter-spacing: var(--typography-letterspacing-negative-half);\n}\n\n.panel-tools__view ::slotted(*) {\n margin: 0;\n color: var(--color-foreground-secondary);\n font-family: var(--typography-font-family);\n font-size: var(--typography-fontsize-md);\n line-height: var(--typography-lineheight-md);\n font-weight: var(--typography-weight-regular);\n letter-spacing: var(--typography-letterspacing-negative-half);\n}\n\n.panel-tools__view--active {\n display: block;\n}\n\n/* Rail — mirrors collapsed panel-nav width, padding, and item rhythm. */\n.panel-tools__rail {\n flex: 0 0 var(--_panel-tools-rail-width);\n width: var(--_panel-tools-rail-width);\n min-width: var(--_panel-tools-rail-width);\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n height: 100%;\n min-height: 0;\n border-left: var(--_panel-tools-border);\n background-color: transparent;\n}\n\n.panel-tools__rail-header {\n justify-content: center;\n height: var(--dimension-size-600);\n flex-shrink: 0;\n border-bottom: var(--_panel-tools-border);\n}\n\n.panel-tools__rail-body {\n flex: 1 1 auto;\n min-height: 0;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n.panel-tools__rail-actions {\n display: flex;\n flex-direction: column;\n gap: var(--dimension-space-050);\n width: 100%;\n}\n\n/* Flush to the bottom of the rail — mirrors Search header pin. */\n.panel-tools__rail-footer {\n justify-content: center;\n flex-shrink: 0;\n margin-top: auto;\n}\n\n.panel-tools__rail-action {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: var(--ds-control-height);\n flex-shrink: 0;\n}\n\n@media (prefers-reduced-motion: reduce) {\n :host(.panel-tools--ready.panel-tools--motion-opening) .panel-tools__drawer,\n :host(.panel-tools--ready.panel-tools--motion-closing) .panel-tools__drawer {\n transition: none;\n }\n}\n","import {\n Component,\n Prop,\n Event,\n EventEmitter,\n Element,\n State,\n Watch,\n Method,\n Listen,\n h,\n Host,\n} from '@stencil/core';\nimport type { ChromeTransitionDetail } from '../../shell/chrome-transition';\nimport {\n PANEL_TOOLS_LABELS,\n PANEL_TOOLS_SHORTCUTS,\n type PanelToolsHeaderAction,\n type PanelToolsHeaderConfig,\n type PanelToolsHeaders,\n type PanelToolsItem,\n type PanelToolsToolId,\n} from './panel-tools-types';\nimport {\n isPanelToolsToolId,\n orderPanelToolsItems,\n panelToolsDrawerAtTerminal,\n panelToolsDrawerResting,\n panelToolsDrawerTransitionMs,\n panelToolsRailPlacement,\n reconcilePanelToolsAvailability,\n resolvePanelToolActivation,\n} from './panel-tools-utils';\n\n@Component({\n tag: 'ds-panel-tools',\n styleUrl: 'PanelTools.css',\n scoped: true,\n})\nexport class PanelTools {\n @Element() el!: HTMLElement;\n\n /** When false, only the icon rail is shown. */\n @Prop({ mutable: true, reflect: true }) open: boolean = false;\n\n /** Drawer presentation or viewport-covering presentation for the active tool. */\n @Prop({ mutable: true, reflect: true }) presentation: 'drawer' | 'fullscreen' = 'drawer';\n\n /** Let a fullscreen product supply independent master/detail headers inside its view. */\n @Prop({ attribute: 'fullscreen-header-mode', reflect: true })\n fullscreenHeaderMode: 'shared' | 'split' = 'shared';\n\n /** Active tool view — `search`, `agents`, `messages`, `stacks`, `activity`, or `help`. */\n @Prop({ mutable: true, attribute: 'active-tool', reflect: true })\n activeTool: PanelToolsToolId | '' = '';\n\n /**\n * Rail items rendered in the right column.\n * Set via JS property: `el.items = [...]`. Replace the array reference to update.\n */\n @Prop() items: PanelToolsItem[] = [];\n\n @Prop() toolsLabel: string = 'Tools';\n @Prop() toolShortcutsLabel: string = 'Tool shortcuts';\n\n /** Active header state per tool. Replace the object when title, depth, or actions change. */\n @Prop() headers: PanelToolsHeaders = {};\n\n /**\n * Optional localStorage key for the last active tool. The drawer always starts\n * closed; only the tool identity is restored for continuity within this browser.\n */\n @Prop({ attribute: 'storage-key' }) storageKey: string = '';\n\n /** Emitted when a rail button is toggled. Detail = { id, selected }. */\n @Event({ bubbles: true, composed: true }) dsToolChange!: EventEmitter<{\n id: PanelToolsToolId;\n selected: boolean;\n }>;\n\n /** Emitted when fullscreen changes, including Escape-initiated exits. */\n @Event({ bubbles: true, composed: true }) dsPresentationChange!: EventEmitter<{\n presentation: 'drawer' | 'fullscreen';\n }>;\n\n /** Requests navigation to the active tool's parent view. */\n @Event({ bubbles: true, composed: true }) dsHeaderBack!: EventEmitter<{\n tool: PanelToolsToolId;\n }>;\n\n /** Requests one application-owned action from the active tool header. */\n @Event({ bubbles: true, composed: true }) dsHeaderAction!: EventEmitter<{\n tool: PanelToolsToolId;\n id: string;\n }>;\n\n /** Bubbling lifecycle — `ds-bar-nav` defers overflow checks during drawer motion. */\n @Event({ bubbles: true, composed: true })\n dsChromeTransitionStart!: EventEmitter<ChromeTransitionDetail>;\n\n @Event({ bubbles: true, composed: true })\n dsChromeTransitionEnd!: EventEmitter<ChromeTransitionDetail>;\n\n /** Arms open vs close easing for the in-flight width transition. */\n @State() private motion: 'opening' | 'closing' | 'idle' = 'idle';\n\n /** Keeps header and slotted content painted until the closing clip transition completes. */\n @State() private drawerSurfaceRetained = false;\n\n /** Suppresses width transition until the host has painted its initial open state. */\n @State() private readyForMotion = false;\n\n /** Fullscreen presentation changes snap without borrowing drawer width motion. */\n @State() private presentationMotionSuppressed = false;\n\n @State() private rovingIndex = 0;\n @State() private fullViewToolIds: PanelToolsToolId[] = [];\n\n private motionEnableGeneration = 0;\n private presentationMotionGeneration = 0;\n private transitionGeneration = 0;\n private transitionFallbackTimer: number | null = null;\n /** Ignores the old transition's terminal event when reversing direction. */\n private ignoreReplacementTerminal = false;\n private focusBeforeFullscreen: HTMLElement | null = null;\n private fullViewObserver: MutationObserver | null = null;\n\n private get railItems(): PanelToolsItem[] {\n return this.items ?? [];\n }\n\n private get orderedRailItems(): PanelToolsItem[] {\n return orderPanelToolsItems(this.railItems);\n }\n\n disconnectedCallback() {\n this.el.removeEventListener('transitionend', this.handleTransitionEnd);\n this.el.removeEventListener('transitioncancel', this.handleTransitionEnd);\n this.el.removeEventListener('dsAction', this.handleComposedHeaderAction);\n this.clearTransitionCompletion();\n this.motionEnableGeneration += 1;\n this.fullViewObserver?.disconnect();\n this.fullViewObserver = null;\n }\n\n @Watch('presentation')\n presentationChanged(next: 'drawer' | 'fullscreen', previous?: 'drawer' | 'fullscreen') {\n if (next === previous) return;\n // Framework property bindings can update slotted master/detail content in\n // the same render that requests fullscreen. Reflect the host selector\n // immediately so that content cannot paint once in the drawer geometry\n // while Stencil waits to commit its next render.\n if (this.el.getAttribute('presentation') !== next) {\n this.el.setAttribute('presentation', next);\n }\n const presentationGeneration = ++this.presentationMotionGeneration;\n this.presentationMotionSuppressed = true;\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (presentationGeneration !== this.presentationMotionGeneration) return;\n this.presentationMotionSuppressed = false;\n });\n });\n if (next === 'fullscreen') {\n this.focusBeforeFullscreen =\n document.activeElement instanceof HTMLElement ? document.activeElement : null;\n this.open = true;\n } else if (previous === 'fullscreen') {\n const focusBeforeFullscreen = this.focusBeforeFullscreen;\n const fallbackActionId = this.activeHeader().actions?.[0]?.id;\n requestAnimationFrame(async () => {\n if (focusBeforeFullscreen?.isConnected) {\n focusBeforeFullscreen.focus({ preventScroll: true });\n }\n const focusRestored = focusBeforeFullscreen\n ? document.activeElement === focusBeforeFullscreen ||\n focusBeforeFullscreen.contains(document.activeElement)\n : false;\n if (!focusRestored && fallbackActionId) await this.focusHeaderAction(fallbackActionId);\n this.focusBeforeFullscreen = null;\n });\n }\n this.dsPresentationChange.emit({ presentation: next });\n }\n\n @Listen('keydown', { target: 'window', capture: true })\n handleFullscreenEscape(event: KeyboardEvent) {\n if (this.presentation !== 'fullscreen' || event.key !== 'Escape') return;\n event.preventDefault();\n event.stopPropagation();\n this.presentation = 'drawer';\n }\n\n private deferMotionEnable() {\n if (this.readyForMotion) return;\n const generation = ++this.motionEnableGeneration;\n requestAnimationFrame(() => {\n if (generation !== this.motionEnableGeneration) return;\n requestAnimationFrame(() => {\n if (generation !== this.motionEnableGeneration) return;\n this.readyForMotion = true;\n });\n });\n }\n\n connectedCallback() {\n this.el.addEventListener('transitionend', this.handleTransitionEnd);\n this.el.addEventListener('transitioncancel', this.handleTransitionEnd);\n this.el.addEventListener('dsAction', this.handleComposedHeaderAction);\n }\n\n private handleComposedHeaderAction = (event: Event) => {\n const detail = (event as CustomEvent<{ id?: string }>).detail;\n if (!this.activeTool || !detail?.id) return;\n event.stopPropagation();\n this.dsHeaderAction.emit({ tool: this.activeTool, id: detail.id });\n };\n\n componentWillLoad() {\n this.restoreLastActiveTool();\n this.drawerSurfaceRetained = this.open;\n }\n\n @Watch('open')\n openChanged(isOpen: boolean, wasOpen?: boolean) {\n if (isOpen) this.drawerSurfaceRetained = true;\n if (this.readyForMotion && wasOpen !== undefined && wasOpen !== isOpen) {\n this.startDrawerTransition(isOpen ? 'opening' : 'closing');\n } else if (!isOpen) {\n this.drawerSurfaceRetained = false;\n }\n this.deferMotionEnable();\n }\n\n @Watch('activeTool')\n activeToolChanged() {\n this.persistLastActiveTool();\n this.deferMotionEnable();\n }\n\n @Watch('storageKey')\n storageKeyChanged() {\n this.restoreLastActiveTool();\n }\n\n componentDidLoad() {\n this.deferMotionEnable();\n this.syncFullViewTools();\n this.fullViewObserver = new MutationObserver(() => this.syncFullViewTools());\n this.fullViewObserver.observe(this.el, {\n childList: true,\n attributes: true,\n attributeFilter: ['slot'],\n });\n }\n\n @Watch('items')\n itemsChanged() {\n this.rovingIndex = 0;\n this.reconcileActiveTool();\n this.deferMotionEnable();\n }\n\n private restoreLastActiveTool() {\n if (!this.storageKey || this.activeTool) return;\n try {\n const stored = localStorage.getItem(this.storageKey);\n if (isPanelToolsToolId(stored)) this.activeTool = stored;\n } catch {\n /* localStorage unavailable */\n }\n }\n\n private persistLastActiveTool() {\n if (!this.storageKey || !this.activeTool) return;\n try {\n localStorage.setItem(this.storageKey, this.activeTool);\n } catch {\n /* unavailable */\n }\n }\n\n private clearPersistedTool() {\n if (!this.storageKey) return;\n try {\n localStorage.removeItem(this.storageKey);\n } catch {\n /* unavailable */\n }\n }\n\n private reconcileActiveTool() {\n const next = reconcilePanelToolsAvailability(this.railItems, this.open, this.activeTool);\n if (!next.removedTool) return;\n this.clearPersistedTool();\n this.open = next.open;\n this.activeTool = next.activeTool;\n this.dsToolChange.emit({ id: next.removedTool, selected: false });\n }\n\n private startDrawerTransition(phase: 'opening' | 'closing') {\n const drawer = this.el.querySelector('.panel-tools__drawer') as HTMLElement | null;\n if (this.motion !== 'idle') {\n this.finishDrawerTransition();\n this.ignoreReplacementTerminal = true;\n }\n this.motion = phase;\n this.dsChromeTransitionStart.emit({ source: 'panel-tools', phase });\n const generation = ++this.transitionGeneration;\n\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (generation !== this.transitionGeneration || this.motion !== phase) return;\n if (!drawer) {\n this.finishDrawerTransition();\n return;\n }\n\n if (this.drawerTransitionAtTerminal(drawer, phase)) {\n this.finishDrawerTransition();\n return;\n }\n\n const fallbackMs = panelToolsDrawerTransitionMs(getComputedStyle(drawer));\n if (fallbackMs <= 0) {\n this.finishDrawerTransition();\n return;\n }\n this.transitionFallbackTimer = window.setTimeout(() => {\n this.finishDrawerTransition();\n }, fallbackMs);\n });\n });\n }\n\n private handleTransitionEnd = (event: TransitionEvent) => {\n const drawer = this.el.querySelector('.panel-tools__drawer') as HTMLElement | null;\n if (event.target !== drawer) return;\n if (event.propertyName !== 'max-width') return;\n if (this.ignoreReplacementTerminal) {\n this.ignoreReplacementTerminal = false;\n return;\n }\n // Changing from the neutral transition recipe to the direction-specific\n // easing can cancel the transition that the reflected `open` class began.\n // The replacement transition and its watchdog still own completion; ending\n // motion here would hide the fixed-width tool surface while it is visible.\n if (event.type === 'transitioncancel') return;\n if (drawer && !this.drawerTransitionAtTerminal(drawer, this.motion)) return;\n this.finishDrawerTransition();\n };\n\n private drawerTransitionAtTerminal(\n drawer: HTMLElement,\n phase: 'opening' | 'closing' | 'idle'\n ): boolean {\n const width = drawer.getBoundingClientRect().width;\n const surface = drawer.querySelector('.panel-tools__drawer-surface') as HTMLElement | null;\n const targetWidth = surface?.getBoundingClientRect().width ?? 0;\n return panelToolsDrawerAtTerminal(width, targetWidth, phase);\n }\n\n private finishDrawerTransition() {\n const completedPhase = this.motion;\n const wasTransitioning = completedPhase !== 'idle';\n this.clearTransitionCompletion();\n if (!wasTransitioning) return;\n this.ignoreReplacementTerminal = false;\n this.motion = 'idle';\n if (completedPhase === 'closing' && !this.open) {\n this.drawerSurfaceRetained = false;\n }\n this.dsChromeTransitionEnd.emit({ source: 'panel-tools' });\n }\n\n private clearTransitionCompletion() {\n this.transitionGeneration += 1;\n if (this.transitionFallbackTimer !== null) {\n window.clearTimeout(this.transitionFallbackTimer);\n this.transitionFallbackTimer = null;\n }\n }\n\n /** Rail selection follows `open` immediately — independent of the slide animation. */\n private isRailSelected(id: PanelToolsToolId): boolean {\n return this.open && this.activeTool === id;\n }\n\n /** Drawer body stays mounted while the clip frame animates closed. */\n private isDrawerPresent(): boolean {\n return this.open || this.drawerSurfaceRetained;\n }\n\n private isViewActive(id: PanelToolsToolId): boolean {\n return this.isDrawerPresent() && this.activeTool === id;\n }\n\n private hasFullView(id: PanelToolsToolId): boolean {\n return this.fullViewToolIds.includes(id);\n }\n\n private syncFullViewTools() {\n const ids = this.orderedRailItems.map(item => item.id);\n const next = ids.filter(id => Boolean(this.el.querySelector(`[slot=\"${id}-view\"]`)));\n if (next.join('|') !== this.fullViewToolIds.join('|')) this.fullViewToolIds = next;\n }\n\n private headerLabel(): string {\n if (!this.isDrawerPresent() || !this.activeTool) return '';\n const item = this.railItems.find(candidate => candidate.id === this.activeTool);\n return (\n item?.label ??\n PANEL_TOOLS_LABELS[this.activeTool as keyof typeof PANEL_TOOLS_LABELS] ??\n this.activeTool\n );\n }\n\n private resolvedHeaders(): PanelToolsHeaders {\n return this.headers ?? {};\n }\n\n private activeHeader(): PanelToolsHeaderConfig {\n if (!this.activeTool) return {};\n return this.resolvedHeaders()[this.activeTool] ?? {};\n }\n\n private handleToolChange = (id: PanelToolsToolId) => {\n const next = resolvePanelToolActivation(this.open, this.activeTool, id);\n this.open = next.open;\n this.activeTool = next.activeTool;\n this.dsToolChange.emit({ id, selected: next.selected });\n };\n\n /** Toggle any rail tool open/closed — shell shortcuts K/A/S/M/N call this. */\n @Method()\n async activateTool(id: PanelToolsToolId) {\n const item = this.railItems.find(entry => entry.id === id);\n if (!item || item.isInactive) return;\n this.handleToolChange(id);\n }\n\n /** Close the tools drawer when open — used by shell keyboard shortcuts. */\n @Method()\n async closeDrawer() {\n if (!this.open) return;\n const id = this.activeTool;\n this.open = false;\n if (id) {\n this.dsToolChange.emit({ id, selected: false });\n }\n }\n\n /** Focus an active tool-header action by its application-owned id. */\n @Method()\n async focusHeaderAction(id: string) {\n const action = this.el.querySelector(`[data-header-action-id=\"${CSS.escape(id)}\"]`) as\n | (HTMLElement & { setFocus?: () => Promise<void> })\n | null;\n await action?.setFocus?.();\n }\n\n private focusRailAt(index: number) {\n const items = this.orderedRailItems;\n if (!items.length) return;\n const bounded = Math.max(0, Math.min(index, items.length - 1));\n if (bounded === this.rovingIndex) return;\n this.rovingIndex = bounded;\n const actions = Array.from(\n this.el.querySelectorAll<HTMLElement>('.panel-tools__rail-action .button-icon')\n );\n actions[bounded]?.focus({ preventScroll: true });\n }\n\n private handleRailKeyDown = (e: KeyboardEvent, index: number) => {\n const items = this.orderedRailItems;\n if (!items.length) return;\n\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n this.handleToolChange(items[index].id);\n return;\n }\n\n if (e.key === 'ArrowDown') {\n if (index >= items.length - 1) return;\n e.preventDefault();\n this.focusRailAt(index + 1);\n return;\n }\n\n if (e.key === 'ArrowUp') {\n if (index <= 0) return;\n e.preventDefault();\n this.focusRailAt(index - 1);\n }\n };\n\n private renderRailAction(item: PanelToolsItem, index: number) {\n const label =\n item.ariaLabel ??\n item.label ??\n PANEL_TOOLS_LABELS[item.id as keyof typeof PANEL_TOOLS_LABELS] ??\n item.id;\n return (\n <ds-tooltip\n key={item.id}\n label={label}\n shortcutKey={\n item.shortcutKey ??\n PANEL_TOOLS_SHORTCUTS[item.id as keyof typeof PANEL_TOOLS_SHORTCUTS]\n }\n side=\"left\"\n size=\"sm\"\n >\n <ds-button-unfilled\n variant=\"icon\"\n class=\"panel-tools__rail-action\"\n icon={item.icon}\n isActive={this.isRailSelected(item.id)}\n activeFill={false}\n hasBorder={false}\n pressScale={false}\n dot={item.dot ?? false}\n isInactive={item.isInactive}\n focusTabIndex={index === this.rovingIndex ? 0 : -1}\n aria-label={label}\n pressed={this.isRailSelected(item.id)}\n onFocusin={() => {\n this.rovingIndex = index;\n }}\n onKeyDown={(e: KeyboardEvent) => this.handleRailKeyDown(e, index)}\n onDsClick={() => this.handleToolChange(item.id)}\n />\n </ds-tooltip>\n );\n }\n\n render() {\n const headerLabel = this.headerLabel();\n const header = this.activeHeader();\n const headerTitle = header.title?.trim() || headerLabel;\n const headerActions = header.actions ?? [];\n const orderedRailItems = this.orderedRailItems;\n const headerItems = orderedRailItems.filter(\n item => panelToolsRailPlacement(item) === 'header'\n );\n const bodyItems = orderedRailItems.filter(\n item => panelToolsRailPlacement(item) === 'body'\n );\n const footerItems = orderedRailItems.filter(\n item => panelToolsRailPlacement(item) === 'footer'\n );\n const headerCount = headerItems.length;\n const footerStart = headerCount + bodyItems.length;\n const showDrawerChrome = this.isDrawerPresent();\n const drawerResting = panelToolsDrawerResting(this.open, this.motion);\n const activeFullView = Boolean(\n showDrawerChrome && this.activeTool && this.hasFullView(this.activeTool)\n );\n const toolIds = orderedRailItems.map(item => item.id);\n\n return (\n <Host\n class={{\n 'panel-tools': true,\n 'panel-tools--open': this.open,\n 'panel-tools--ready': this.readyForMotion,\n 'panel-tools--motion-opening': this.motion === 'opening',\n 'panel-tools--motion-closing': this.motion === 'closing',\n 'panel-tools--drawer-resting': drawerResting,\n 'panel-tools--fullscreen': this.presentation === 'fullscreen',\n 'panel-tools--presentation-snap': this.presentationMotionSuppressed,\n }}\n role={this.presentation === 'fullscreen' ? 'dialog' : 'complementary'}\n aria-modal={this.presentation === 'fullscreen' ? 'true' : undefined}\n aria-label={this.toolsLabel}\n >\n <div class=\"panel-tools__layout\">\n <nav class=\"panel-tools__rail\" aria-label={this.toolShortcutsLabel}>\n {headerItems.length ? (\n <div class=\"panel-tools__rail-header ds-chrome-row ds-chrome-space--md\">\n {headerItems.map((item, index) => this.renderRailAction(item, index))}\n </div>\n ) : null}\n <div class=\"panel-tools__rail-body ds-chrome-column ds-chrome-space--md ds-scrollbar-hidden\">\n <div class=\"panel-tools__rail-actions\">\n {bodyItems.map((item, bodyIdx) =>\n this.renderRailAction(item, headerCount + bodyIdx)\n )}\n </div>\n </div>\n {footerItems.length ? (\n <div class=\"panel-tools__rail-footer ds-chrome-row ds-chrome-space--md\">\n {footerItems.map((item, footerIdx) =>\n this.renderRailAction(item, footerStart + footerIdx)\n )}\n </div>\n ) : null}\n </nav>\n\n <div\n class={{\n 'panel-tools__drawer': true,\n 'panel-tools__drawer--visible': showDrawerChrome,\n }}\n aria-hidden={showDrawerChrome ? null : 'true'}\n inert={showDrawerChrome ? undefined : true}\n >\n <div class=\"panel-tools__drawer-surface\">\n {this.presentation !== 'fullscreen' || this.fullscreenHeaderMode === 'shared' ? (\n <ds-panel-tool-header\n class=\"panel-tools__header\"\n heading={headerTitle}\n showBack={header.showBack ?? false}\n backIcon={header.backIcon || 'ChevronLeft'}\n backAriaLabel={header.backAriaLabel || 'Back'}\n showMenu={false}\n ref={element => {\n const toolHeader = element as\n | (HTMLDsPanelToolHeaderElement & {\n actions: PanelToolsHeaderAction[];\n })\n | undefined;\n if (toolHeader) toolHeader.actions = headerActions;\n }}\n onDsBack={() => {\n if (this.activeTool) this.dsHeaderBack.emit({ tool: this.activeTool });\n }}\n />\n ) : null}\n <div class=\"panel-tools__body\" hidden={activeFullView}>\n {toolIds.map(id => {\n const active = this.isViewActive(id);\n return (\n <div\n class={{\n 'panel-tools__view': true,\n 'panel-tools__view--active': active,\n }}\n hidden={!active}\n >\n <slot name={id} />\n </div>\n );\n })}\n </div>\n <div class=\"panel-tools__full-views\" hidden={!activeFullView}>\n {toolIds.map(id => (\n <div\n class={{\n 'panel-tools__full-view': true,\n 'panel-tools__full-view--active':\n this.isViewActive(id) && this.hasFullView(id),\n }}\n hidden={!(this.isViewActive(id) && this.hasFullView(id))}\n >\n <slot name={`${id}-view`} />\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{r as n}from"./p-BJMRBHKW.js";import{T as t}from"./p-C4uYvyq6.js";function r(n,t){return n==null||t==null?NaN:n<t?-1:n>t?1:n>=t?0:NaN}function e(n,t){return n==null||t==null?NaN:t<n?-1:t>n?1:t>=n?0:NaN}function i(n){let t,i,a;if(n.length!==2){t=r;i=(t,e)=>r(n(t),e);a=(t,r)=>n(t)-r}else{t=n===r||n===e?n:u;i=n;a=n}function f(n,r,e=0,u=n.length){if(e<u){if(t(r,r)!==0)return u;do{const t=e+u>>>1;if(i(n[t],r)<0)e=t+1;else u=t}while(e<u)}return e}function o(n,r,e=0,u=n.length){if(e<u){if(t(r,r)!==0)return u;do{const t=e+u>>>1;if(i(n[t],r)<=0)e=t+1;else u=t}while(e<u)}return e}function s(n,t,r=0,e=n.length){const i=f(n,t,r,e-1);return i>r&&a(n[i-1],t)>-a(n[i],t)?i-1:i}return{left:f,center:s,right:o}}function u(){return 0}function a(n){return n===null?NaN:+n}const f=i(r);const o=f.right;i(a).center;class s extends Map{constructor(n,t=d){super();Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}});if(n!=null)for(const[t,r]of n)this.set(t,r)}get(n){return super.get(h(this,n))}has(n){return super.has(h(this,n))}set(n,t){return super.set(c(this,n),t)}delete(n){return super.delete(l(this,n))}}function h({_intern:n,_key:t},r){const e=t(r);return n.has(e)?n.get(e):r}function c({_intern:n,_key:t},r){const e=t(r);if(n.has(e))return n.get(e);n.set(e,r);return r}function l({_intern:n,_key:t},r){const e=t(r);if(n.has(e)){r=n.get(e);n.delete(e)}return r}function d(n){return n!==null&&typeof n==="object"?n.valueOf():n}const g=Math.sqrt(50),M=Math.sqrt(10),v=Math.sqrt(2);function w(n,t,r){const e=(t-n)/Math.max(0,r),i=Math.floor(Math.log10(e)),u=e/Math.pow(10,i),a=u>=g?10:u>=M?5:u>=v?2:1;let f,o,s;if(i<0){s=Math.pow(10,-i)/a;f=Math.round(n*s);o=Math.round(t*s);if(f/s<n)++f;if(o/s>t)--o;s=-s}else{s=Math.pow(10,i)*a;f=Math.round(n/s);o=Math.round(t/s);if(f*s<n)++f;if(o*s>t)--o}if(o<f&&.5<=r&&r<2)return w(n,t,r*2);return[f,o,s]}function b(n,t,r){t=+t,n=+n,r=+r;if(!(r>0))return[];if(n===t)return[n];const e=t<n,[i,u,a]=e?w(t,n,r):w(n,t,r);if(!(u>=i))return[];const f=u-i+1,o=new Array(f);if(e){if(a<0)for(let n=0;n<f;++n)o[n]=(u-n)/-a;else for(let n=0;n<f;++n)o[n]=(u-n)*a}else{if(a<0)for(let n=0;n<f;++n)o[n]=(i+n)/-a;else for(let n=0;n<f;++n)o[n]=(i+n)*a}return o}function y(n,t,r){t=+t,n=+n,r=+r;return w(n,t,r)[2]}function p(n,t,r){t=+t,n=+n,r=+r;const e=t<n,i=e?y(t,n,r):y(n,t,r);return(e?-1:1)*(i<0?1/-i:i)}function m(n,t){let r;if(t===undefined){for(const t of n){if(t!=null&&(r<t||r===undefined&&t>=t)){r=t}}}else{let e=-1;for(let i of n){if((i=t(i,++e,n))!=null&&(r<i||r===undefined&&i>=i)){r=i}}}return r}function N(n,t,r){n=+n,t=+t,r=(i=arguments.length)<2?(t=n,n=0,1):i<3?1:+r;var e=-1,i=Math.max(0,Math.ceil((t-n)/r))|0,u=new Array(i);while(++e<i){u[e]=n+e*r}return u}function k(n,t){switch(arguments.length){case 0:break;case 1:this.range(n);break;default:this.range(t).domain(n);break}return this}const $=Symbol("implicit");function x(){var n=new s,t=[],r=[],e=$;function i(i){let u=n.get(i);if(u===undefined){if(e!==$)return e;n.set(i,u=t.push(i)-1)}return r[u%r.length]}i.domain=function(r){if(!arguments.length)return t.slice();t=[],n=new s;for(const e of r){if(n.has(e))continue;n.set(e,t.push(e)-1)}return i};i.range=function(n){return arguments.length?(r=Array.from(n),i):r.slice()};i.unknown=function(n){return arguments.length?(e=n,i):e};i.copy=function(){return x(t,r).unknown(e)};k.apply(i,arguments);return i}function A(){var n=x().unknown(undefined),t=n.domain,r=n.range,e=0,i=1,u,a,f=false,o=0,s=0,h=.5;delete n.unknown;function c(){var n=t().length,c=i<e,l=c?i:e,d=c?e:i;u=(d-l)/Math.max(1,n-o+s*2);if(f)u=Math.floor(u);l+=(d-l-u*(n-o))*h;a=u*(1-o);if(f)l=Math.round(l),a=Math.round(a);var g=N(n).map((function(n){return l+u*n}));return r(c?g.reverse():g)}n.domain=function(n){return arguments.length?(t(n),c()):t()};n.range=function(n){return arguments.length?([e,i]=n,e=+e,i=+i,c()):[e,i]};n.rangeRound=function(n){return[e,i]=n,e=+e,i=+i,f=true,c()};n.bandwidth=function(){return a};n.step=function(){return u};n.round=function(n){return arguments.length?(f=!!n,c()):f};n.padding=function(n){return arguments.length?(o=Math.min(1,s=+n),c()):o};n.paddingInner=function(n){return arguments.length?(o=Math.min(1,n),c()):o};n.paddingOuter=function(n){return arguments.length?(s=+n,c()):s};n.align=function(n){return arguments.length?(h=Math.max(0,Math.min(1,n)),c()):h};n.copy=function(){return A(t(),[e,i]).round(f).paddingInner(o).paddingOuter(s).align(h)};return k.apply(c(),arguments)}function E(n){var t=n.copy;n.padding=n.paddingOuter;delete n.paddingInner;delete n.paddingOuter;n.copy=function(){return E(t())};return n}function R(){return E(A.apply(null,arguments).paddingInner(1))}function q(n,t,r){n.prototype=t.prototype=r;r.constructor=n}function j(n,t){var r=Object.create(n.prototype);for(var e in t)r[e]=t[e];return r}function _(){}var H=.7;var z=1/H;var O="\\s*([+-]?\\d+)\\s*",S="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",B="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",D=/^#([0-9a-f]{3,8})$/,I=new RegExp(`^rgb\\(${O},${O},${O}\\)$`),C=new RegExp(`^rgb\\(${B},${B},${B}\\)$`),G=new RegExp(`^rgba\\(${O},${O},${O},${S}\\)$`),L=new RegExp(`^rgba\\(${B},${B},${B},${S}\\)$`),P=new RegExp(`^hsl\\(${S},${B},${B}\\)$`),T=new RegExp(`^hsla\\(${S},${B},${B},${S}\\)$`);var X={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};q(_,V,{copy(n){return Object.assign(new this.constructor,this,n)},displayable(){return this.rgb().displayable()},hex:Y,formatHex:Y,formatHex8:F,formatHsl:J,formatRgb:K,toString:K});function Y(){return this.rgb().formatHex()}function F(){return this.rgb().formatHex8()}function J(){return sn(this).formatHsl()}function K(){return this.rgb().formatRgb()}function V(n){var t,r;n=(n+"").trim().toLowerCase();return(t=D.exec(n))?(r=t[1].length,t=parseInt(t[1],16),r===6?W(t):r===3?new nn(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?Z(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?Z(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=I.exec(n))?new nn(t[1],t[2],t[3],1):(t=C.exec(n))?new nn(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=G.exec(n))?Z(t[1],t[2],t[3],t[4]):(t=L.exec(n))?Z(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=P.exec(n))?on(t[1],t[2]/100,t[3]/100,1):(t=T.exec(n))?on(t[1],t[2]/100,t[3]/100,t[4]):X.hasOwnProperty(n)?W(X[n]):n==="transparent"?new nn(NaN,NaN,NaN,0):null}function W(n){return new nn(n>>16&255,n>>8&255,n&255,1)}function Z(n,t,r,e){if(e<=0)n=t=r=NaN;return new nn(n,t,r,e)}function Q(n){if(!(n instanceof _))n=V(n);if(!n)return new nn;n=n.rgb();return new nn(n.r,n.g,n.b,n.opacity)}function U(n,t,r,e){return arguments.length===1?Q(n):new nn(n,t,r,e==null?1:e)}function nn(n,t,r,e){this.r=+n;this.g=+t;this.b=+r;this.opacity=+e}q(nn,U,j(_,{brighter(n){n=n==null?z:Math.pow(z,n);return new nn(this.r*n,this.g*n,this.b*n,this.opacity)},darker(n){n=n==null?H:Math.pow(H,n);return new nn(this.r*n,this.g*n,this.b*n,this.opacity)},rgb(){return this},clamp(){return new nn(an(this.r),an(this.g),an(this.b),un(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&(-.5<=this.g&&this.g<255.5)&&(-.5<=this.b&&this.b<255.5)&&(0<=this.opacity&&this.opacity<=1)},hex:tn,formatHex:tn,formatHex8:rn,formatRgb:en,toString:en}));function tn(){return`#${fn(this.r)}${fn(this.g)}${fn(this.b)}`}function rn(){return`#${fn(this.r)}${fn(this.g)}${fn(this.b)}${fn((isNaN(this.opacity)?1:this.opacity)*255)}`}function en(){const n=un(this.opacity);return`${n===1?"rgb(":"rgba("}${an(this.r)}, ${an(this.g)}, ${an(this.b)}${n===1?")":`, ${n})`}`}function un(n){return isNaN(n)?1:Math.max(0,Math.min(1,n))}function an(n){return Math.max(0,Math.min(255,Math.round(n)||0))}function fn(n){n=an(n);return(n<16?"0":"")+n.toString(16)}function on(n,t,r,e){if(e<=0)n=t=r=NaN;else if(r<=0||r>=1)n=t=NaN;else if(t<=0)n=NaN;return new cn(n,t,r,e)}function sn(n){if(n instanceof cn)return new cn(n.h,n.s,n.l,n.opacity);if(!(n instanceof _))n=V(n);if(!n)return new cn;if(n instanceof cn)return n;n=n.rgb();var t=n.r/255,r=n.g/255,e=n.b/255,i=Math.min(t,r,e),u=Math.max(t,r,e),a=NaN,f=u-i,o=(u+i)/2;if(f){if(t===u)a=(r-e)/f+(r<e)*6;else if(r===u)a=(e-t)/f+2;else a=(t-r)/f+4;f/=o<.5?u+i:2-u-i;a*=60}else{f=o>0&&o<1?0:a}return new cn(a,f,o,n.opacity)}function hn(n,t,r,e){return arguments.length===1?sn(n):new cn(n,t,r,e==null?1:e)}function cn(n,t,r,e){this.h=+n;this.s=+t;this.l=+r;this.opacity=+e}q(cn,hn,j(_,{brighter(n){n=n==null?z:Math.pow(z,n);return new cn(this.h,this.s,this.l*n,this.opacity)},darker(n){n=n==null?H:Math.pow(H,n);return new cn(this.h,this.s,this.l*n,this.opacity)},rgb(){var n=this.h%360+(this.h<0)*360,t=isNaN(n)||isNaN(this.s)?0:this.s,r=this.l,e=r+(r<.5?r:1-r)*t,i=2*r-e;return new nn(gn(n>=240?n-240:n+120,i,e),gn(n,i,e),gn(n<120?n+240:n-120,i,e),this.opacity)},clamp(){return new cn(ln(this.h),dn(this.s),dn(this.l),un(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&(0<=this.l&&this.l<=1)&&(0<=this.opacity&&this.opacity<=1)},formatHsl(){const n=un(this.opacity);return`${n===1?"hsl(":"hsla("}${ln(this.h)}, ${dn(this.s)*100}%, ${dn(this.l)*100}%${n===1?")":`, ${n})`}`}}));function ln(n){n=(n||0)%360;return n<0?n+360:n}function dn(n){return Math.max(0,Math.min(1,n||0))}function gn(n,t,r){return(n<60?t+(r-t)*n/60:n<180?r:n<240?t+(r-t)*(240-n)/60:t)*255}var Mn=n=>()=>n;function vn(n,t){return function(r){return n+r*t}}function wn(n,t,r){return n=Math.pow(n,r),t=Math.pow(t,r)-n,r=1/r,function(e){return Math.pow(n+e*t,r)}}function bn(n){return(n=+n)===1?yn:function(t,r){return r-t?wn(t,r,n):Mn(isNaN(t)?r:t)}}function yn(n,t){var r=t-n;return r?vn(n,r):Mn(isNaN(n)?t:n)}var pn=function n(t){var r=bn(t);function e(n,t){var e=r((n=U(n)).r,(t=U(t)).r),i=r(n.g,t.g),u=r(n.b,t.b),a=yn(n.opacity,t.opacity);return function(t){n.r=e(t);n.g=i(t);n.b=u(t);n.opacity=a(t);return n+""}}e.gamma=n;return e}(1);function mn(n,t){if(!t)t=[];var r=n?Math.min(t.length,n.length):0,e=t.slice(),i;return function(u){for(i=0;i<r;++i)e[i]=n[i]*(1-u)+t[i]*u;return e}}function Nn(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}function kn(n,t){var r=t?t.length:0,e=n?Math.min(r,n.length):0,i=new Array(e),u=new Array(r),a;for(a=0;a<e;++a)i[a]=Hn(n[a],t[a]);for(;a<r;++a)u[a]=t[a];return function(n){for(a=0;a<e;++a)u[a]=i[a](n);return u}}function $n(n,t){var r=new Date;return n=+n,t=+t,function(e){return r.setTime(n*(1-e)+t*e),r}}function xn(n,t){return n=+n,t=+t,function(r){return n*(1-r)+t*r}}function An(n,t){var r={},e={},i;if(n===null||typeof n!=="object")n={};if(t===null||typeof t!=="object")t={};for(i in t){if(i in n){r[i]=Hn(n[i],t[i])}else{e[i]=t[i]}}return function(n){for(i in r)e[i]=r[i](n);return e}}var En=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Rn=new RegExp(En.source,"g");function qn(n){return function(){return n}}function jn(n){return function(t){return n(t)+""}}function _n(n,t){var r=En.lastIndex=Rn.lastIndex=0,e,i,u,a=-1,f=[],o=[];n=n+"",t=t+"";while((e=En.exec(n))&&(i=Rn.exec(t))){if((u=i.index)>r){u=t.slice(r,u);if(f[a])f[a]+=u;else f[++a]=u}if((e=e[0])===(i=i[0])){if(f[a])f[a]+=i;else f[++a]=i}else{f[++a]=null;o.push({i:a,x:xn(e,i)})}r=Rn.lastIndex}if(r<t.length){u=t.slice(r);if(f[a])f[a]+=u;else f[++a]=u}return f.length<2?o[0]?jn(o[0].x):qn(t):(t=o.length,function(n){for(var r=0,e;r<t;++r)f[(e=o[r]).i]=e.x(n);return f.join("")})}function Hn(n,t){var r=typeof t,e;return t==null||r==="boolean"?Mn(t):(r==="number"?xn:r==="string"?(e=V(t))?(t=e,pn):_n:t instanceof V?pn:t instanceof Date?$n:Nn(t)?mn:Array.isArray(t)?kn:typeof t.valueOf!=="function"&&typeof t.toString!=="function"||isNaN(t)?An:xn)(n,t)}function zn(n,t){return n=+n,t=+t,function(r){return Math.round(n*(1-r)+t*r)}}function On(n){return function(){return n}}function Sn(n){return+n}var Bn=[0,1];function Dn(n){return n}function In(n,t){return(t-=n=+n)?function(r){return(r-n)/t}:On(isNaN(t)?NaN:.5)}function Cn(n,t){var r;if(n>t)r=n,n=t,t=r;return function(r){return Math.max(n,Math.min(t,r))}}function Gn(n,t,r){var e=n[0],i=n[1],u=t[0],a=t[1];if(i<e)e=In(i,e),u=r(a,u);else e=In(e,i),u=r(u,a);return function(n){return u(e(n))}}function Ln(n,t,r){var e=Math.min(n.length,t.length)-1,i=new Array(e),u=new Array(e),a=-1;if(n[e]<n[0]){n=n.slice().reverse();t=t.slice().reverse()}while(++a<e){i[a]=In(n[a],n[a+1]);u[a]=r(t[a],t[a+1])}return function(t){var r=o(n,t,1,e)-1;return u[r](i[r](t))}}function Pn(n,t){return t.domain(n.domain()).range(n.range()).interpolate(n.interpolate()).clamp(n.clamp()).unknown(n.unknown())}function Tn(){var n=Bn,t=Bn,r=Hn,e,i,u,a=Dn,f,o,s;function h(){var r=Math.min(n.length,t.length);if(a!==Dn)a=Cn(n[0],n[r-1]);f=r>2?Ln:Gn;o=s=null;return c}function c(i){return i==null||isNaN(i=+i)?u:(o||(o=f(n.map(e),t,r)))(e(a(i)))}c.invert=function(r){return a(i((s||(s=f(t,n.map(e),xn)))(r)))};c.domain=function(t){return arguments.length?(n=Array.from(t,Sn),h()):n.slice()};c.range=function(n){return arguments.length?(t=Array.from(n),h()):t.slice()};c.rangeRound=function(n){return t=Array.from(n),r=zn,h()};c.clamp=function(n){return arguments.length?(a=n?true:Dn,h()):a!==Dn};c.interpolate=function(n){return arguments.length?(r=n,h()):r};c.unknown=function(n){return arguments.length?(u=n,c):u};return function(n,t){e=n,i=t;return h()}}function Xn(){return Tn()(Dn,Dn)}function Yn(n){return Math.abs(n=Math.round(n))>=1e21?n.toLocaleString("en").replace(/,/g,""):n.toString(10)}function Fn(n,t){if(!isFinite(n)||n===0)return null;var r=(n=t?n.toExponential(t-1):n.toExponential()).indexOf("e"),e=n.slice(0,r);return[e.length>1?e[0]+e.slice(2):e,+n.slice(r+1)]}function Jn(n){return n=Fn(Math.abs(n)),n?n[1]:NaN}function Kn(n,t){return function(r,e){var i=r.length,u=[],a=0,f=n[0],o=0;while(i>0&&f>0){if(o+f+1>e)f=Math.max(1,e-o);u.push(r.substring(i-=f,i+f));if((o+=f+1)>e)break;f=n[a=(a+1)%n.length]}return u.reverse().join(t)}}function Vn(n){return function(t){return t.replace(/[0-9]/g,(function(t){return n[+t]}))}}var Wn=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Zn(n){if(!(t=Wn.exec(n)))throw new Error("invalid format: "+n);var t;return new Qn({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Zn.prototype=Qn.prototype;function Qn(n){this.fill=n.fill===undefined?" ":n.fill+"";this.align=n.align===undefined?">":n.align+"";this.sign=n.sign===undefined?"-":n.sign+"";this.symbol=n.symbol===undefined?"":n.symbol+"";this.zero=!!n.zero;this.width=n.width===undefined?undefined:+n.width;this.comma=!!n.comma;this.precision=n.precision===undefined?undefined:+n.precision;this.trim=!!n.trim;this.type=n.type===undefined?"":n.type+""}Qn.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===undefined?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===undefined?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function Un(n){n:for(var t=n.length,r=1,e=-1,i;r<t;++r){switch(n[r]){case".":e=i=r;break;case"0":if(e===0)e=r;i=r;break;default:if(!+n[r])break n;if(e>0)e=0;break}}return e>0?n.slice(0,e)+n.slice(i+1):n}var nt;function tt(n,t){var r=Fn(n,t);if(!r)return nt=undefined,n.toPrecision(t);var e=r[0],i=r[1],u=i-(nt=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,a=e.length;return u===a?e:u>a?e+new Array(u-a+1).join("0"):u>0?e.slice(0,u)+"."+e.slice(u):"0."+new Array(1-u).join("0")+Fn(n,Math.max(0,t+u-1))[0]}function rt(n,t){var r=Fn(n,t);if(!r)return n+"";var e=r[0],i=r[1];return i<0?"0."+new Array(-i).join("0")+e:e.length>i+1?e.slice(0,i+1)+"."+e.slice(i+1):e+new Array(i-e.length+2).join("0")}var et={"%":(n,t)=>(n*100).toFixed(t),b:n=>Math.round(n).toString(2),c:n=>n+"",d:Yn,e:(n,t)=>n.toExponential(t),f:(n,t)=>n.toFixed(t),g:(n,t)=>n.toPrecision(t),o:n=>Math.round(n).toString(8),p:(n,t)=>rt(n*100,t),r:rt,s:tt,X:n=>Math.round(n).toString(16).toUpperCase(),x:n=>Math.round(n).toString(16)};function it(n){return n}var ut=Array.prototype.map,at=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function ft(n){var t=n.grouping===undefined||n.thousands===undefined?it:Kn(ut.call(n.grouping,Number),n.thousands+""),r=n.currency===undefined?"":n.currency[0]+"",e=n.currency===undefined?"":n.currency[1]+"",i=n.decimal===undefined?".":n.decimal+"",u=n.numerals===undefined?it:Vn(ut.call(n.numerals,String)),a=n.percent===undefined?"%":n.percent+"",f=n.minus===undefined?"−":n.minus+"",o=n.nan===undefined?"NaN":n.nan+"";function s(n,s){n=Zn(n);var h=n.fill,c=n.align,l=n.sign,d=n.symbol,g=n.zero,M=n.width,v=n.comma,w=n.precision,b=n.trim,y=n.type;if(y==="n")v=true,y="g";else if(!et[y])w===undefined&&(w=12),b=true,y="g";if(g||h==="0"&&c==="=")g=true,h="0",c="=";var p=(s&&s.prefix!==undefined?s.prefix:"")+(d==="$"?r:d==="#"&&/[boxX]/.test(y)?"0"+y.toLowerCase():""),m=(d==="$"?e:/[%p]/.test(y)?a:"")+(s&&s.suffix!==undefined?s.suffix:"");var N=et[y],k=/[defgprs%]/.test(y);w=w===undefined?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,w)):Math.max(0,Math.min(20,w));function $(n){var r=p,e=m,a,s,d;if(y==="c"){e=N(n)+e;n=""}else{n=+n;var $=n<0||1/n<0;n=isNaN(n)?o:N(Math.abs(n),w);if(b)n=Un(n);if($&&+n===0&&l!=="+")$=false;r=($?l==="("?l:f:l==="-"||l==="("?"":l)+r;e=(y==="s"&&!isNaN(n)&&nt!==undefined?at[8+nt/3]:"")+e+($&&l==="("?")":"");if(k){a=-1,s=n.length;while(++a<s){if(d=n.charCodeAt(a),48>d||d>57){e=(d===46?i+n.slice(a+1):n.slice(a))+e;n=n.slice(0,a);break}}}}if(v&&!g)n=t(n,Infinity);var x=r.length+n.length+e.length,A=x<M?new Array(M-x+1).join(h):"";if(v&&g)n=t(A+n,A.length?M-e.length:Infinity),A="";switch(c){case"<":n=r+n+e+A;break;case"=":n=r+A+n+e;break;case"^":n=A.slice(0,x=A.length>>1)+r+n+e+A.slice(x);break;default:n=A+r+n+e;break}return u(n)}$.toString=function(){return n+""};return $}function h(n,t){var r=Math.max(-8,Math.min(8,Math.floor(Jn(t)/3)))*3,e=Math.pow(10,-r),i=s((n=Zn(n),n.type="f",n),{suffix:at[8+r/3]});return function(n){return i(e*n)}}return{format:s,formatPrefix:h}}var ot;var st;var ht;ct({thousands:",",grouping:[3],currency:["$",""]});function ct(n){ot=ft(n);st=ot.format;ht=ot.formatPrefix;return ot}function lt(n){return Math.max(0,-Jn(Math.abs(n)))}function dt(n,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Jn(t)/3)))*3-Jn(Math.abs(n)))}function gt(n,t){n=Math.abs(n),t=Math.abs(t)-n;return Math.max(0,Jn(t)-Jn(n))+1}function Mt(n,t,r,e){var i=p(n,t,r),u;e=Zn(e==null?",f":e);switch(e.type){case"s":{var a=Math.max(Math.abs(n),Math.abs(t));if(e.precision==null&&!isNaN(u=dt(i,a)))e.precision=u;return ht(e,a)}case"":case"e":case"g":case"p":case"r":{if(e.precision==null&&!isNaN(u=gt(i,Math.max(Math.abs(n),Math.abs(t)))))e.precision=u-(e.type==="e");break}case"f":case"%":{if(e.precision==null&&!isNaN(u=lt(i)))e.precision=u-(e.type==="%")*2;break}}return st(e)}function vt(n){var t=n.domain;n.ticks=function(n){var r=t();return b(r[0],r[r.length-1],n==null?10:n)};n.tickFormat=function(n,r){var e=t();return Mt(e[0],e[e.length-1],n==null?10:n,r)};n.nice=function(r){if(r==null)r=10;var e=t();var i=0;var u=e.length-1;var a=e[i];var f=e[u];var o;var s;var h=10;if(f<a){s=a,a=f,f=s;s=i,i=u,u=s}while(h-- >0){s=y(a,f,r);if(s===o){e[i]=a;e[u]=f;return t(e)}else if(s>0){a=Math.floor(a/s)*s;f=Math.ceil(f/s)*s}else if(s<0){a=Math.ceil(a*s)/s;f=Math.floor(f*s)/s}else{break}o=s}return n};return n}function wt(){var n=Xn();n.copy=function(){return Pn(n,wt())};k.apply(n,arguments);return vt(n)}function bt(){const r=n(t.space100,8);const e=n(t.space200,16);return{margin:{top:e,right:e,bottom:n(t.space300,24),left:n(t.space400,32)},axisLabelGap:r,categoryLabelOffset:e}}const yt=n=>Math.max(1,Math.round(n*100)/100);class pt{constructor(n,t){this.target=n;this.onResize=t;this.resizeObserver=null}connect(){this.disconnect();if(typeof ResizeObserver!=="undefined"){this.resizeObserver=new ResizeObserver((n=>{const t=n[0];if(!t)return;this.update(t.contentRect.width,t.contentRect.height)}));this.resizeObserver.observe(this.target)}this.measure()}measure(){const n=this.target.getBoundingClientRect();this.update(n.width,n.height)}disconnect(){this.resizeObserver?.disconnect();this.resizeObserver=null}update(n,t){if(!(n>0)||!(t>0))return;this.onResize({width:yt(n),height:yt(t)})}}export{pt as C,A as b,wt as l,m,R as p,bt as r};
2
+ //# sourceMappingURL=p-BybqPD8K.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ascending","a","b","NaN","descending","bisector","f","compare1","compare2","delta","length","d","x","zero","left","lo","hi","mid","right","center","i","number","ascendingBisect","bisectRight","InternMap","Map","constructor","entries","key","keyof","super","Object","defineProperties","this","_intern","value","_key","set","get","intern_get","has","intern_set","delete","intern_delete","valueOf","e10","Math","sqrt","e5","e2","tickSpec","start","stop","count","step","max","power","floor","log10","error","pow","factor","i1","i2","inc","round","ticks","reverse","n","Array","tickIncrement","tickStep","values","valueof","undefined","index","range","arguments","ceil","initRange","domain","implicit","Symbol","ordinal","unknown","scale","push","_","slice","from","copy","apply","band","ordinalRange","r0","r1","bandwidth","paddingInner","paddingOuter","align","rescale","sequence","map","rangeRound","padding","min","pointish","point","define","factory","prototype","extend","parent","definition","create","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","RegExp","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color","channels","assign","displayable","rgb","hex","color_formatHex","formatHex","formatHex8","color_formatHex8","formatHsl","color_formatHsl","formatRgb","color_formatRgb","toString","hslConvert","format","m","l","trim","toLowerCase","exec","parseInt","rgbn","Rgb","rgba","hsla","hasOwnProperty","r","g","rgbConvert","o","opacity","k","clamp","clampi","clampa","rgb_formatHex","rgb_formatHex8","rgb_formatRgb","isNaN","h","s","Hsl","hsl","m2","m1","hsl2rgb","clamph","clampt","constant","linear","t","exponential","y","gamma","nogamma","rgbGamma","end","colorRgb","numberArray","c","isNumberArray","ArrayBuffer","isView","DataView","genericArray","nb","na","date","Date","setTime","interpolateNumber","object","reA","reB","source","one","string","bi","lastIndex","am","bm","bs","q","join","interpolate","isArray","interpolateRound","constants","unit","identity","normalize","clamper","bimap","d0","d1","polymap","j","bisect","target","transformer","interpolateValue","transform","untransform","piecewise","output","input","invert","u","continuous","formatDecimal","abs","toLocaleString","replace","formatDecimalParts","p","isFinite","toExponential","indexOf","coefficient","exponent","formatGroup","grouping","thousands","width","substring","formatNumerals","numerals","re","formatSpecifier","specifier","match","Error","FormatSpecifier","fill","sign","symbol","comma","precision","type","formatTrim","out","i0","prefixExponent","formatPrefixAuto","toPrecision","formatRounded","formatTypes","toFixed","e","X","toUpperCase","prefixes","formatLocale","locale","group","call","Number","currencyPrefix","currency","currencySuffix","decimal","String","percent","minus","nan","newFormat","options","prefix","test","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","charCodeAt","Infinity","formatPrefix","defaultLocale","precisionFixed","precisionPrefix","precisionRound","tickFormat","linearish","nice","prestep","maxIter","resolveCartesianChartLayout","space100","resolveCssLengthPx","TOKEN_DEFAULTS","space200","margin","top","bottom","space300","space400","axisLabelGap","categoryLabelOffset","normalizeSize","ChartViewportController","onResize","resizeObserver","connect","disconnect","ResizeObserver","entry","update","contentRect","height","observe","measure","rect","getBoundingClientRect"],"sources":["node_modules/d3-array/src/ascending.js","node_modules/d3-array/src/descending.js","node_modules/d3-array/src/bisector.js","node_modules/d3-array/src/number.js","node_modules/d3-array/src/bisect.js","node_modules/internmap/src/index.js","node_modules/d3-array/src/ticks.js","node_modules/d3-array/src/max.js","node_modules/d3-array/src/range.js","node_modules/d3-scale/src/init.js","node_modules/d3-scale/src/ordinal.js","node_modules/d3-scale/src/band.js","node_modules/d3-color/src/define.js","node_modules/d3-color/src/color.js","node_modules/d3-interpolate/src/constant.js","node_modules/d3-interpolate/src/color.js","node_modules/d3-interpolate/src/rgb.js","node_modules/d3-interpolate/src/numberArray.js","node_modules/d3-interpolate/src/array.js","node_modules/d3-interpolate/src/date.js","node_modules/d3-interpolate/src/number.js","node_modules/d3-interpolate/src/object.js","node_modules/d3-interpolate/src/string.js","node_modules/d3-interpolate/src/value.js","node_modules/d3-interpolate/src/round.js","node_modules/d3-scale/src/constant.js","node_modules/d3-scale/src/number.js","node_modules/d3-scale/src/continuous.js","node_modules/d3-format/src/formatDecimal.js","node_modules/d3-format/src/exponent.js","node_modules/d3-format/src/formatGroup.js","node_modules/d3-format/src/formatNumerals.js","node_modules/d3-format/src/formatSpecifier.js","node_modules/d3-format/src/formatTrim.js","node_modules/d3-format/src/formatPrefixAuto.js","node_modules/d3-format/src/formatRounded.js","node_modules/d3-format/src/formatTypes.js","node_modules/d3-format/src/identity.js","node_modules/d3-format/src/locale.js","node_modules/d3-format/src/defaultLocale.js","node_modules/d3-format/src/precisionFixed.js","node_modules/d3-format/src/precisionPrefix.js","node_modules/d3-format/src/precisionRound.js","node_modules/d3-scale/src/tickFormat.js","node_modules/d3-scale/src/linear.js","src/wc/utils/cartesian-chart-layout.ts","src/wc/utils/chart-viewport-controller.ts"],"sourcesContent":["export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export class InternMap extends Map {\n constructor(entries, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (entries != null) for (const [key, value] of entries) this.set(key, value);\n }\n get(key) {\n return super.get(intern_get(this, key));\n }\n has(key) {\n return super.has(intern_get(this, key));\n }\n set(key, value) {\n return super.set(intern_set(this, key), value);\n }\n delete(key) {\n return super.delete(intern_delete(this, key));\n }\n}\n\nexport class InternSet extends Set {\n constructor(values, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (values != null) for (const value of values) this.add(value);\n }\n has(value) {\n return super.has(intern_get(this, value));\n }\n add(value) {\n return super.add(intern_set(this, value));\n }\n delete(value) {\n return super.delete(intern_delete(this, value));\n }\n}\n\nfunction intern_get({_intern, _key}, value) {\n const key = _key(value);\n return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) return _intern.get(key);\n _intern.set(key, value);\n return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) {\n value = _intern.get(key);\n _intern.delete(key);\n }\n return value;\n}\n\nfunction keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if (!isFinite(x) || x === 0) return null; // NaN, ±Infinity, ±0\n var i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\"), coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return prefixExponent = undefined, x.toPrecision(p);\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier, options) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = (options && options.prefix !== undefined ? options.prefix : \"\") + (symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\"),\n suffix = (symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\") + (options && options.suffix !== undefined ? options.suffix : \"\");\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" && !isNaN(value) && prefixExponent !== undefined ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier), {suffix: prefixes[8 + e / 3]});\n return function(value) {\n return f(k * value);\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import { resolveCssLengthPx } from './resolve-css-length-px';\nimport { TOKEN_DEFAULTS } from './token-defaults';\n\nexport interface CartesianChartLayout {\n margin: {\n top: number;\n right: number;\n bottom: number;\n left: number;\n };\n axisLabelGap: number;\n categoryLabelOffset: number;\n}\n\n/** Resolve shared Cartesian chart geometry from TokoMo dimension tokens. */\nexport function resolveCartesianChartLayout(): CartesianChartLayout {\n const space100 = resolveCssLengthPx(TOKEN_DEFAULTS.space100, 8);\n const space200 = resolveCssLengthPx(TOKEN_DEFAULTS.space200, 16);\n\n return {\n margin: {\n top: space200,\n right: space200,\n bottom: resolveCssLengthPx(TOKEN_DEFAULTS.space300, 24),\n left: resolveCssLengthPx(TOKEN_DEFAULTS.space400, 32),\n },\n axisLabelGap: space100,\n categoryLabelOffset: space200,\n };\n}\n","export interface ChartViewportSize {\n width: number;\n height: number;\n}\n\nconst normalizeSize = (value: number): number =>\n Math.max(1, Math.round(value * 100) / 100);\n\n/**\n * Keeps SVG chart geometry matched to the rendered SVG viewport.\n *\n * Cartesian charts intentionally render without a viewBox: changing the host\n * reflows plot geometry instead of scaling its strokes, text, radii, or points.\n */\nexport class ChartViewportController {\n private resizeObserver: ResizeObserver | null = null;\n\n constructor(\n private readonly target: Element,\n private readonly onResize: (size: ChartViewportSize) => void,\n ) {}\n\n connect(): void {\n this.disconnect();\n\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(entries => {\n const entry = entries[0];\n if (!entry) return;\n this.update(entry.contentRect.width, entry.contentRect.height);\n });\n this.resizeObserver.observe(this.target);\n }\n\n this.measure();\n }\n\n measure(): void {\n const rect = this.target.getBoundingClientRect();\n this.update(rect.width, rect.height);\n }\n\n disconnect(): void {\n this.resizeObserver?.disconnect();\n this.resizeObserver = null;\n }\n\n private update(width: number, height: number): void {\n if (!(width > 0) || !(height > 0)) return;\n this.onResize({\n width: normalizeSize(width),\n height: normalizeSize(height),\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ const n=["http:","https:"];function e(e,t={}){const d=e?.trim();if(!d)return undefined;const u=t.baseUrl??(typeof document==="undefined"?undefined:document.baseURI);try{const e=u===undefined?new URL(d):new URL(d,u);const c=t.protocols??n;return c.includes(e.protocol)?e.href:undefined}catch{return undefined}}export{e as r};
2
+ //# sourceMappingURL=p-C-vRkDyn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DEFAULT_PROTOCOLS","resolveSafeUrl","value","options","candidate","trim","undefined","baseUrl","document","baseURI","url","URL","protocols","includes","protocol","href"],"sources":["src/wc/utils/safe-url.ts"],"sourcesContent":["export type SafeUrlProtocol = 'blob:' | 'http:' | 'https:' | 'mailto:';\n\nexport interface ResolveSafeUrlOptions {\n protocols?: readonly SafeUrlProtocol[];\n baseUrl?: string | URL;\n}\n\nconst DEFAULT_PROTOCOLS: readonly SafeUrlProtocol[] = ['http:', 'https:'];\n\n/**\n * Resolve a consumer-authored URL only when its protocol is explicitly allowed.\n * Relative URLs use the current document base in browser rendering; server-side\n * callers can provide `baseUrl` when they intentionally support relative input.\n */\nexport function resolveSafeUrl(\n value: string | null | undefined,\n options: ResolveSafeUrlOptions = {}\n): string | undefined {\n const candidate = value?.trim();\n if (!candidate) return undefined;\n\n const baseUrl =\n options.baseUrl ??\n (typeof document === 'undefined' ? undefined : document.baseURI);\n\n try {\n const url = baseUrl === undefined\n ? new URL(candidate)\n : new URL(candidate, baseUrl);\n const protocols = options.protocols ?? DEFAULT_PROTOCOLS;\n return protocols.includes(url.protocol as SafeUrlProtocol) ? url.href : undefined;\n } catch {\n return undefined;\n }\n}\n"],"mappings":"AAOA,MAAMA,EAAgD,CAAC,QAAS,U,SAOhDC,EACdC,EACAC,EAAiC,IAEjC,MAAMC,EAAYF,GAAOG,OACzB,IAAKD,EAAW,OAAOE,UAEvB,MAAMC,EACJJ,EAAQI,iBACAC,WAAa,YAAcF,UAAYE,SAASC,SAE1D,IACE,MAAMC,EAAMH,IAAYD,UACpB,IAAIK,IAAIP,GACR,IAAIO,IAAIP,EAAWG,GACvB,MAAMK,EAAYT,EAAQS,WAAaZ,EACvC,OAAOY,EAAUC,SAASH,EAAII,UAA+BJ,EAAIK,KAAOT,S,CACxE,MACA,OAAOA,S,CAEX,Q","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ import{p as t,H as o,c as n,h as i,a as d,t as e}from"./index.js";import{b as s,r as l,c as r}from"./p-DAW6G8Sl.js";import{d as a}from"./p-BsoqsbBh.js";import{d as c}from"./p-BAfG3M8z.js";import{d as u}from"./p-Ca-I2UnB.js";import{d as f}from"./p-Ay1AX7Ql.js";const b=()=>`.sc-ds-button-filled-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-filled-h,.ds-focus-ring.sc-ds-button-filled,.ds-focus-ring-inset.sc-ds-button-filled-h,.ds-focus-ring-inset.sc-ds-button-filled{outline:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ds-focus-ring.sc-ds-button-filled-h:focus-visible,.ds-focus-ring.sc-ds-button-filled: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-filled-h,.ds-focus-ring.ds-focus-ring--visible.sc-ds-button-filled{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-filled-h:focus-visible,.ds-focus-ring-inset.sc-ds-button-filled:focus-visible{outline:none}.ds-focus-ring-inset.sc-ds-button-filled-h:focus-visible::after,.ds-focus-ring-inset.sc-ds-button-filled: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-filled-h,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-button-filled{outline:none}.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-button-filled-h::after,.ds-focus-ring-inset.ds-focus-ring--visible.sc-ds-button-filled::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-filled-h,.ds-interaction-fill.sc-ds-button-filled{position:relative;z-index:0;cursor:default;--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-filled-h::before,.ds-interaction-fill.sc-ds-button-filled::before,.ds-interaction-fill.sc-ds-button-filled-h::after,.ds-interaction-fill.sc-ds-button-filled::after{content:'';position:absolute;inset:0;border-radius:inherit;background:transparent;pointer-events:none;cursor:inherit;transition:none}.ds-interaction-fill.sc-ds-button-filled-h::before,.ds-interaction-fill.sc-ds-button-filled::before{z-index:1}.ds-interaction-fill.sc-ds-button-filled-h::after,.ds-interaction-fill.sc-ds-button-filled::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-filled-h,.ds-interaction-fill--bordered.sc-ds-button-filled{--ds-interaction-border-width:var(--dimension-stroke-width-012);--ds-interaction-border-color:var(--color-border-secondary)}.ds-interaction-fill--selected.sc-ds-button-filled-h::before,.ds-interaction-fill--selected.sc-ds-button-filled::before{background:var(--ds-interaction-active)}.ds-interaction-fill--selected.sc-ds-button-filled-h,.ds-interaction-fill--selected.sc-ds-button-filled{--ds-interaction-dot-ring:var(--ds-interaction-active)}@media (hover: hover) and (pointer: fine){.ds-interaction-fill.sc-ds-button-filled-h:hover:not(:disabled)::after,.ds-interaction-fill.sc-ds-button-filled:hover:not(:disabled)::after{background:var(--ds-interaction-hover)}}.ds-interaction-fill.sc-ds-button-filled-h:active:not(:disabled)::after,.ds-interaction-fill.sc-ds-button-filled:active:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-interaction-fill.sc-ds-button-filled-h>.ds-interaction-fill__content.sc-ds-button-filled,.ds-interaction-fill.sc-ds-button-filled>.ds-interaction-fill__content.sc-ds-button-filled,.ds-interaction-fill__content.sc-ds-button-filled{position:relative;z-index:2;cursor:inherit}.ds-interaction-fill--on-faint.sc-ds-button-filled-h,.ds-interaction-fill--on-faint.sc-ds-button-filled{--ds-interaction-active:var(--color-interaction-active)}.ds-interaction-fill--on-medium.sc-ds-button-filled-h,.ds-interaction-fill--on-medium.sc-ds-button-filled{--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-filled-h,.ds-interaction-fill--on-bold.sc-ds-button-filled{--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-filled-h,.ds-interaction-fill--on-strong.sc-ds-button-filled{--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-filled-h,.ds-interaction-fill--on-translucent.sc-ds-button-filled{--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-filled-h,.ds-interaction-fill--on-inverted.sc-ds-button-filled{--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-filled-h,.ds-interaction-fill--on-media.sc-ds-button-filled{--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-filled-h,.ds-interaction-fill--on-always-dark.sc-ds-button-filled{--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-filled-h,.ds-interaction-fill--on-navigation.sc-ds-button-filled{--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-press-scale.sc-ds-button-filled{transition:scale var(--effect-motion-short-2)}.ds-control-press-scale.sc-ds-button-filled:active:not(:disabled):not(.ds-control-inactive):not([aria-busy='true']){scale:var(--ds-control-press-active-scale, var(--dimension-scale-subtle))}@media (prefers-reduced-motion: reduce){.ds-control-press-scale.sc-ds-button-filled,.ds-control-press-scale.sc-ds-button-filled:active:not(:disabled):not(.ds-control-inactive):not([aria-busy='true']){scale:none;transition:none}}.ds-control-inactive.sc-ds-button-filled-h,.ds-control-inactive.sc-ds-button-filled{opacity:0.5;pointer-events:none;cursor:not-allowed}.ds-control--lg.sc-ds-button-filled,.ds-control--lg.sc-ds-button-filled-h,.ds-control--md.sc-ds-button-filled-h,.ds-control--md.sc-ds-button-filled,.ds-control--sm.sc-ds-button-filled-h,.ds-control--sm.sc-ds-button-filled,.ds-control--xs.sc-ds-button-filled-h,.ds-control--xs.sc-ds-button-filled{--ds-control-radius:var(--dimension-radius-025)}.ds-control--lg.sc-ds-button-filled-h,.ds-control--lg.sc-ds-button-filled{--ds-control-height:var(--dimension-size-500);--ds-control-icon:var(--dimension-iconography-lg);--ds-control-padding-inline:var(--dimension-space-100);--ds-control-label-inset:var(--dimension-space-050);--ds-control-gap:var(--dimension-space-050)}.ds-control--md.sc-ds-button-filled-h,.ds-control--md.sc-ds-button-filled{--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--sm.sc-ds-button-filled-h,.ds-control--sm.sc-ds-button-filled{--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--xs.sc-ds-button-filled-h,.ds-control--xs.sc-ds-button-filled{--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-frame.sc-ds-button-filled{display:inline-flex;align-items:center;box-sizing:border-box;height:var(--ds-control-height, var(--dimension-size-400));padding-inline:var(--ds-control-padding-inline, var(--dimension-space-075));gap:var(--ds-control-gap, var(--dimension-space-050));border-radius:var(--ds-control-radius, var(--dimension-radius-025))}.ds-control-icon-box.sc-ds-button-filled{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--ds-control-icon, var(--dimension-iconography-md));height:var(--ds-control-icon, var(--dimension-iconography-md))}.ds-control-label-box.sc-ds-button-filled{min-width:0;padding-inline:var(--ds-control-label-inset, var(--dimension-space-025))}.ds-control-width--hug.sc-ds-button-filled-h,.ds-control-width--hug.sc-ds-button-filled{width:fit-content;max-width:100%;flex:0 0 auto;align-self:flex-start}.ds-control-width--fill.sc-ds-button-filled-h,.ds-control-width--fill.sc-ds-button-filled{width:100%;min-width:0;flex:1 1 auto;align-self:stretch}.sc-ds-button-filled-h{display:inline-flex;outline:none}.ds-button-host--icon.ds-control-width--hug.sc-ds-button-filled-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))}.ds-button-host--icon.ds-control-width--fill.sc-ds-button-filled-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-filled-h .ds-button.sc-ds-button-filled{width:100%}.ds-button.sc-ds-button-filled{justify-content:center;overflow:hidden;border:none;border-radius:var(--ds-control-radius, var(--dimension-radius-025));cursor:default;-webkit-user-select:none;user-select:none}.ds-button--icon.sc-ds-button-filled{width:100%;height:100%;padding:0}.ds-button--rounded.sc-ds-button-filled{--ds-control-radius:var(--dimension-radius-half)}.ds-button--expanded.sc-ds-button-filled::after,.ds-button--expanded.sc-ds-button-filled:hover:not(:disabled)::after{background:var(--ds-interaction-pressed)}.ds-button--bordered.sc-ds-button-filled{--ds-interaction-border-width:var(--dimension-stroke-width-012)}.ds-button--bordered.sc-ds-button-filled:not(.ds-interaction-fill){box-shadow:inset 0 0 0 var(--ds-interaction-border-width) var(--ds-interaction-border-color)}.ds-button__icon-wrap.sc-ds-button-filled,.ds-button__label.sc-ds-button-filled,.ds-button__chevron.sc-ds-button-filled{position:relative;z-index:2}.ds-button__label.sc-ds-button-filled{flex-shrink:0;min-width:0;white-space:nowrap}.ds-button__label--loading.sc-ds-button-filled,.ds-button__chevron--loading.sc-ds-button-filled{visibility:hidden}.ds-button.sc-ds-button-filled>.ds-button__loader-overlay.sc-ds-button-filled{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;pointer-events:none}.ds-button__dot.sc-ds-button-filled{position:absolute;top:0;right:0;z-index:2;pointer-events:none}.sc-ds-button-filled-h{--ds-button-filled-bg:var(--color-background-bold-brand);--ds-button-filled-fg:var(--color-foreground-faint-brand);--ds-button-filled-border:var(--color-border-secondary)}.button-filled.sc-ds-button-filled{background-color:var(--ds-button-filled-bg);color:var(--ds-button-filled-fg);transition:background-color var(--effect-motion-short-2), color var(--effect-motion-short-2)}.button-filled--bordered.sc-ds-button-filled{--ds-interaction-border-color:var(--ds-button-filled-border)}.button-filled--background-medium.sc-ds-button-filled{--ds-button-filled-border:var(--color-border-on-medium-background-secondary)}.button-filled--background-bold.sc-ds-button-filled{--ds-button-filled-border:var(--color-border-on-bold-background-secondary)}.button-filled--background-strong.sc-ds-button-filled{--ds-button-filled-border:var(--color-border-on-strong-background-secondary)}.button-filled--background-translucent.sc-ds-button-filled{--ds-button-filled-border:var(--color-translucent-border-secondary)}.button-filled--background-inverted.sc-ds-button-filled{--ds-button-filled-border:var(--color-inverted-border-secondary)}.button-filled--background-media.sc-ds-button-filled{--ds-button-filled-border:var(--color-media-border-secondary)}.button-filled--background-always-dark.sc-ds-button-filled{--ds-button-filled-border:var(--color-always-dark-border-secondary)}.button-filled--intent-neutral.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-bold-neutral);--ds-button-filled-fg:var(--color-foreground-faint-neutral)}.button-filled--intent-brand.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-bold-brand);--ds-button-filled-fg:var(--color-foreground-faint-brand)}.button-filled--intent-ai.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-bold-ai);--ds-button-filled-fg:var(--color-foreground-faint-ai)}.button-filled--intent-negative.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-bold-negative);--ds-button-filled-fg:var(--color-foreground-faint-negative)}.button-filled--intent-warning.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-bold-warning);--ds-button-filled-fg:var(--color-foreground-faint-warning)}.button-filled--intent-caution.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-bold-caution);--ds-button-filled-fg:var(--color-foreground-faint-caution)}.button-filled--intent-positive.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-bold-positive);--ds-button-filled-fg:var(--color-foreground-faint-positive)}.button-filled--intent-guide.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-bold-guide);--ds-button-filled-fg:var(--color-foreground-faint-guide)}.button-filled--intent-walkthrough.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-bold-walkthrough);--ds-button-filled-fg:var(--color-foreground-faint-walkthrough)}.button-filled--contrast-strong.button-filled--intent-neutral.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-strong-neutral);--ds-button-filled-fg:var(--color-foreground-medium-neutral)}.button-filled--contrast-strong.button-filled--intent-brand.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-strong-brand);--ds-button-filled-fg:var(--color-foreground-medium-brand)}.button-filled--contrast-strong.button-filled--intent-ai.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-strong-ai);--ds-button-filled-fg:var(--color-foreground-medium-ai)}.button-filled--contrast-strong.button-filled--intent-negative.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-strong-negative);--ds-button-filled-fg:var(--color-foreground-medium-negative)}.button-filled--contrast-strong.button-filled--intent-warning.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-strong-warning);--ds-button-filled-fg:var(--color-foreground-medium-warning)}.button-filled--contrast-strong.button-filled--intent-caution.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-strong-caution);--ds-button-filled-fg:var(--color-foreground-medium-caution)}.button-filled--contrast-strong.button-filled--intent-positive.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-strong-positive);--ds-button-filled-fg:var(--color-foreground-medium-positive)}.button-filled--contrast-strong.button-filled--intent-guide.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-strong-guide);--ds-button-filled-fg:var(--color-foreground-medium-guide)}.button-filled--contrast-strong.button-filled--intent-walkthrough.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-strong-walkthrough);--ds-button-filled-fg:var(--color-foreground-medium-walkthrough)}.button-filled--contrast-medium.button-filled--intent-neutral.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-medium-neutral);--ds-button-filled-fg:var(--color-foreground-strong-neutral)}.button-filled--contrast-medium.button-filled--intent-brand.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-medium-brand);--ds-button-filled-fg:var(--color-foreground-strong-brand)}.button-filled--contrast-medium.button-filled--intent-ai.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-medium-ai);--ds-button-filled-fg:var(--color-foreground-strong-ai)}.button-filled--contrast-medium.button-filled--intent-negative.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-medium-negative);--ds-button-filled-fg:var(--color-foreground-strong-negative)}.button-filled--contrast-medium.button-filled--intent-warning.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-medium-warning);--ds-button-filled-fg:var(--color-foreground-strong-warning)}.button-filled--contrast-medium.button-filled--intent-caution.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-medium-caution);--ds-button-filled-fg:var(--color-foreground-strong-caution)}.button-filled--contrast-medium.button-filled--intent-positive.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-medium-positive);--ds-button-filled-fg:var(--color-foreground-strong-positive)}.button-filled--contrast-medium.button-filled--intent-guide.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-medium-guide);--ds-button-filled-fg:var(--color-foreground-strong-guide)}.button-filled--contrast-medium.button-filled--intent-walkthrough.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-medium-walkthrough);--ds-button-filled-fg:var(--color-foreground-strong-walkthrough)}.button-filled--contrast-faint.button-filled--intent-neutral.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-faint-neutral);--ds-button-filled-fg:var(--color-foreground-bold-neutral)}.button-filled--contrast-faint.button-filled--intent-brand.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-faint-brand);--ds-button-filled-fg:var(--color-foreground-bold-brand)}.button-filled--contrast-faint.button-filled--intent-ai.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-faint-ai);--ds-button-filled-fg:var(--color-foreground-bold-ai)}.button-filled--contrast-faint.button-filled--intent-negative.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-faint-negative);--ds-button-filled-fg:var(--color-foreground-bold-negative)}.button-filled--contrast-faint.button-filled--intent-warning.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-faint-warning);--ds-button-filled-fg:var(--color-foreground-bold-warning)}.button-filled--contrast-faint.button-filled--intent-caution.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-faint-caution);--ds-button-filled-fg:var(--color-foreground-bold-caution)}.button-filled--contrast-faint.button-filled--intent-positive.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-faint-positive);--ds-button-filled-fg:var(--color-foreground-bold-positive)}.button-filled--contrast-faint.button-filled--intent-guide.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-faint-guide);--ds-button-filled-fg:var(--color-foreground-bold-guide)}.button-filled--contrast-faint.button-filled--intent-walkthrough.sc-ds-button-filled{--ds-button-filled-bg:var(--color-background-faint-walkthrough);--ds-button-filled-fg:var(--color-foreground-bold-walkthrough)}.button-filled--contrast-bold.button-filled.sc-ds-button-filled{--ds-button-filled-fg:var(--color-foreground-on-bold-background-primary)}.button-filled--contrast-strong.button-filled.sc-ds-button-filled{--ds-button-filled-fg:var(--color-foreground-on-strong-background-primary)}.button-filled--contrast-medium.button-filled.sc-ds-button-filled{--ds-button-filled-fg:var(--color-foreground-on-medium-background-primary)}`;const g=t(class t extends o{constructor(t){super();if(t!==false){this.__registerHost()}this.dsClick=n(this,"dsClick");this.variant="label";this.size="md";this.width="hug";this.label="";this.icon="";this.intent="brand";this.contrast="bold";this.hasBorder=false;this.rounded=false;this.pressScale=true;this.isInactive=false;this.isLoading=false;this.type="button";this.ariaLabel=null;this.hasMenu=false;this.buttonEl=null;this.handleClick=t=>{if(this.isInactive||this.isLoading){t.preventDefault();t.stopPropagation();return}this.dsClick.emit(t)}}async setFocus(){this.buttonEl?.focus()}get resolvedHaspopup(){return this.haspopup??(this.hasMenu?"menu":undefined)}get accessibleName(){if(this.ariaLabel)return this.ariaLabel;if(this.isLoading&&this.variant==="label"&&this.label)return this.label;return undefined}render(){const t={"button-filled":true,"ds-button":true,"ds-focus-ring-inset":true,"ds-control-press-scale":this.pressScale,"ds-interaction-fill":!this.isInactive,"ds-interaction-fill--on-bold":this.contrast==="bold","ds-interaction-fill--on-strong":this.contrast==="strong","ds-interaction-fill--on-medium":this.contrast==="medium","button-filled--bordered":this.hasBorder,"ds-button--bordered":this.hasBorder,"button-filled--expanded":this.expanded===true&&!this.isInactive,"ds-button--expanded":this.expanded===true&&!this.isInactive,"ds-control-inactive":this.isInactive,"ds-control--lg":this.size==="lg","ds-control--md":this.size==="md","ds-control--sm":this.size==="sm","ds-control--xs":this.size==="xs","ds-control-frame":true,"button-filled--icon":this.variant==="icon","ds-button--icon":this.variant==="icon","button-filled--label":this.variant==="label","button-filled--icon-label":this.variant==="icon-label","button-filled--rounded":this.rounded,"ds-button--rounded":this.rounded,[`button-filled--background-${this.background}`]:this.background!==undefined,[`button-filled--intent-${this.intent}`]:true,[`button-filled--contrast-${this.contrast}`]:true};return i(d,{key:"512bd672e62a6f3804a76ca5f1a742da1281822a",class:{"button-filled-host":true,"button-filled-host--icon":this.variant==="icon","ds-button-host--icon":this.variant==="icon","ds-control--lg":this.size==="lg","ds-control--md":this.size==="md","ds-control--sm":this.size==="sm","ds-control--xs":this.size==="xs",...r(this.width)},tabIndex:-1},i("button",{key:"9d36de122f533e69c70b279cf4bb6efede566c30",ref:t=>{this.buttonEl=t??null},type:this.type,class:t,disabled:this.isInactive,"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.resolvedHaspopup,onPointerDown:t=>s(t,this.pressScale&&!this.isInactive&&!this.isLoading),onClick:this.handleClick},l({namespace:"button-filled",variant:this.variant,size:this.size,label:this.label,icon:this.icon,hasMenu:this.hasMenu,isLoading:this.isLoading})))}get el(){return this}static get style(){return b()}},[2,"ds-button-filled",{variant:[1],size:[1],width:[1],label:[1],icon:[1],intent:[1],contrast:[1],hasBorder:[4,"has-border"],background:[1],rounded:[4],pressScale:[4,"press-scale"],isInactive:[4,"is-inactive"],isLoading:[4,"is-loading"],type:[1],ariaLabel:[1,"aria-label"],controls:[1],expanded:[4],haspopup:[1],hasMenu:[4,"has-menu"],setFocus:[64]}]);function v(){if(typeof customElements==="undefined"){return}const t=["ds-button-filled","ds-badge","ds-icon","ds-loader","ds-text"];t.forEach((t=>{switch(t){case"ds-button-filled":if(!customElements.get(e(t))){customElements.define(e(t),g)}break;case"ds-badge":if(!customElements.get(e(t))){a()}break;case"ds-icon":if(!customElements.get(e(t))){c()}break;case"ds-loader":if(!customElements.get(e(t))){u()}break;case"ds-text":if(!customElements.get(e(t))){f()}break}}))}v();export{g as B,v as d};
2
+ //# sourceMappingURL=p-C3ArcO50.js.map