@ds-mo/ui 3.0.1 → 3.1.1

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 (438) hide show
  1. package/dist/.build-stamp +1 -1
  2. package/dist/angular/angular-component-lib/utils.d.ts +9 -0
  3. package/dist/angular/angular-component-lib/utils.js +58 -0
  4. package/dist/angular/boolean-value-accessor.d.ts +9 -0
  5. package/dist/angular/boolean-value-accessor.js +37 -0
  6. package/dist/angular/ds-app-shell.d.ts +12 -0
  7. package/dist/angular/ds-app-shell.js +38 -0
  8. package/dist/angular/ds-badge.d.ts +12 -0
  9. package/dist/angular/ds-badge.js +38 -0
  10. package/dist/angular/ds-banner.d.ts +15 -0
  11. package/dist/angular/ds-banner.js +42 -0
  12. package/dist/angular/ds-bar-nav.d.ts +18 -0
  13. package/dist/angular/ds-bar-nav.js +42 -0
  14. package/dist/angular/ds-button-filled.d.ts +15 -0
  15. package/dist/angular/ds-button-filled.js +43 -0
  16. package/dist/angular/ds-button-unfilled.d.ts +17 -0
  17. package/dist/angular/ds-button-unfilled.js +46 -0
  18. package/dist/angular/ds-card-data-viz-donut.d.ts +18 -0
  19. package/dist/angular/ds-card-data-viz-donut.js +42 -0
  20. package/dist/angular/ds-card-setting.d.ts +18 -0
  21. package/dist/angular/ds-card-setting.js +42 -0
  22. package/dist/angular/ds-card.d.ts +12 -0
  23. package/dist/angular/ds-card.js +38 -0
  24. package/dist/angular/ds-chart-bar.d.ts +12 -0
  25. package/dist/angular/ds-chart-bar.js +38 -0
  26. package/dist/angular/ds-chart-donut.d.ts +19 -0
  27. package/dist/angular/ds-chart-donut.js +42 -0
  28. package/dist/angular/ds-chart-legend.d.ts +30 -0
  29. package/dist/angular/ds-chart-legend.js +45 -0
  30. package/dist/angular/ds-chart-line.d.ts +12 -0
  31. package/dist/angular/ds-chart-line.js +38 -0
  32. package/dist/angular/ds-checkbox.d.ts +15 -0
  33. package/dist/angular/ds-checkbox.js +42 -0
  34. package/dist/angular/ds-chip.d.ts +18 -0
  35. package/dist/angular/ds-chip.js +42 -0
  36. package/dist/angular/ds-divider.d.ts +12 -0
  37. package/dist/angular/ds-divider.js +38 -0
  38. package/dist/angular/ds-empty-state.d.ts +12 -0
  39. package/dist/angular/ds-empty-state.js +38 -0
  40. package/dist/angular/ds-field.d.ts +12 -0
  41. package/dist/angular/ds-field.js +38 -0
  42. package/dist/angular/ds-icon.d.ts +12 -0
  43. package/dist/angular/ds-icon.js +38 -0
  44. package/dist/angular/ds-input.d.ts +17 -0
  45. package/dist/angular/ds-input.js +46 -0
  46. package/dist/angular/ds-loader.d.ts +12 -0
  47. package/dist/angular/ds-loader.js +38 -0
  48. package/dist/angular/ds-menu.d.ts +24 -0
  49. package/dist/angular/ds-menu.js +48 -0
  50. package/dist/angular/ds-modal.d.ts +15 -0
  51. package/dist/angular/ds-modal.js +42 -0
  52. package/dist/angular/ds-pagination.d.ts +15 -0
  53. package/dist/angular/ds-pagination.js +42 -0
  54. package/dist/angular/ds-panel-nav.d.ts +42 -0
  55. package/dist/angular/ds-panel-nav.js +58 -0
  56. package/dist/angular/ds-panel-tools.d.ts +33 -0
  57. package/dist/angular/ds-panel-tools.js +49 -0
  58. package/dist/angular/ds-radio-group.d.ts +15 -0
  59. package/dist/angular/ds-radio-group.js +42 -0
  60. package/dist/angular/ds-select.d.ts +18 -0
  61. package/dist/angular/ds-select.js +42 -0
  62. package/dist/angular/ds-shell-gradient-picker.d.ts +16 -0
  63. package/dist/angular/ds-shell-gradient-picker.js +42 -0
  64. package/dist/angular/ds-shell-gradient-swatch.d.ts +16 -0
  65. package/dist/angular/ds-shell-gradient-swatch.js +42 -0
  66. package/dist/angular/ds-skeleton.d.ts +12 -0
  67. package/dist/angular/ds-skeleton.js +38 -0
  68. package/dist/angular/ds-slider.d.ts +15 -0
  69. package/dist/angular/ds-slider.js +42 -0
  70. package/dist/angular/ds-tab-group-nav.d.ts +20 -0
  71. package/dist/angular/ds-tab-group-nav.js +46 -0
  72. package/dist/angular/ds-tab-group.d.ts +15 -0
  73. package/dist/angular/ds-tab-group.js +42 -0
  74. package/dist/angular/ds-table.d.ts +33 -0
  75. package/dist/angular/ds-table.js +48 -0
  76. package/dist/angular/ds-tag.d.ts +12 -0
  77. package/dist/angular/ds-tag.js +38 -0
  78. package/dist/angular/ds-text.d.ts +12 -0
  79. package/dist/angular/ds-text.js +38 -0
  80. package/dist/angular/ds-toggle.d.ts +15 -0
  81. package/dist/angular/ds-toggle.js +42 -0
  82. package/dist/angular/ds-tooltip-data-viz.d.ts +12 -0
  83. package/dist/angular/ds-tooltip-data-viz.js +38 -0
  84. package/dist/angular/ds-tooltip.d.ts +12 -0
  85. package/dist/angular/ds-tooltip.js +38 -0
  86. package/dist/angular/index.d.ts +2 -0
  87. package/dist/angular/index.js +43 -0
  88. package/dist/angular/proxies.d.ts +44 -0
  89. package/dist/angular/proxies.js +45 -0
  90. package/dist/angular/radio-value-accessor.d.ts +8 -0
  91. package/dist/angular/radio-value-accessor.js +34 -0
  92. package/dist/angular/select-value-accessor.d.ts +8 -0
  93. package/dist/angular/select-value-accessor.js +34 -0
  94. package/dist/angular/text-value-accessor.d.ts +8 -0
  95. package/dist/angular/text-value-accessor.js +34 -0
  96. package/dist/angular/value-accessor.d.ts +18 -0
  97. package/dist/angular/value-accessor.js +39 -0
  98. package/dist/components/ds-app-shell.js +1 -1
  99. package/dist/components/ds-bar-nav.js +1 -1
  100. package/dist/components/ds-bar-nav.js.map +1 -1
  101. package/dist/components/ds-button-filled.js +1 -1
  102. package/dist/components/ds-button-unfilled.js +1 -1
  103. package/dist/components/ds-card-data-viz-donut.js +1 -1
  104. package/dist/components/ds-card-data-viz-donut.js.map +1 -1
  105. package/dist/components/ds-card-setting.js +1 -1
  106. package/dist/components/ds-card-setting.js.map +1 -1
  107. package/dist/components/ds-chart-donut.js +1 -1
  108. package/dist/components/ds-chart-donut.js.map +1 -1
  109. package/dist/components/ds-chart-legend.js +1 -1
  110. package/dist/components/ds-chart-legend.js.map +1 -1
  111. package/dist/components/ds-checkbox.js +1 -1
  112. package/dist/components/ds-checkbox.js.map +1 -1
  113. package/dist/components/ds-chip.js +1 -1
  114. package/dist/components/ds-chip.js.map +1 -1
  115. package/dist/components/ds-empty-state.js +1 -1
  116. package/dist/components/ds-empty-state.js.map +1 -1
  117. package/dist/components/ds-input.js +1 -1
  118. package/dist/components/ds-input.js.map +1 -1
  119. package/dist/components/ds-menu.js +1 -1
  120. package/dist/components/ds-pagination.js +1 -1
  121. package/dist/components/ds-pagination.js.map +1 -1
  122. package/dist/components/ds-panel-nav.js +1 -1
  123. package/dist/components/ds-panel-nav.js.map +1 -1
  124. package/dist/components/ds-panel-tools.js +1 -1
  125. package/dist/components/ds-panel-tools.js.map +1 -1
  126. package/dist/components/ds-radio-group.js +1 -1
  127. package/dist/components/ds-radio-group.js.map +1 -1
  128. package/dist/components/ds-select.js +1 -1
  129. package/dist/components/ds-select.js.map +1 -1
  130. package/dist/components/ds-shell-gradient-picker.js +1 -1
  131. package/dist/components/ds-shell-gradient-swatch.js +1 -1
  132. package/dist/components/ds-tab-group-nav.js +1 -1
  133. package/dist/components/ds-tab-group.js +1 -1
  134. package/dist/components/ds-tab-group.js.map +1 -1
  135. package/dist/components/ds-table.js +1 -1
  136. package/dist/components/ds-table.js.map +1 -1
  137. package/dist/components/ds-toggle.js +1 -1
  138. package/dist/components/ds-toggle.js.map +1 -1
  139. package/dist/components/index.js +1 -1
  140. package/dist/components/index.js.map +1 -1
  141. package/dist/components/p-BBpASejH.js +2 -0
  142. package/dist/components/p-BBpASejH.js.map +1 -0
  143. package/dist/components/{p-D0gBLLJx.js → p-BFiaUYu7.js} +2 -2
  144. package/dist/components/p-BFiaUYu7.js.map +1 -0
  145. package/dist/components/p-CTK82RIw.js +2 -0
  146. package/dist/components/p-CTK82RIw.js.map +1 -0
  147. package/dist/components/{p-BSNlp8Di.js → p-Cp86p-11.js} +2 -2
  148. package/dist/components/{p-BSNlp8Di.js.map → p-Cp86p-11.js.map} +1 -1
  149. package/dist/components/{p-vlwhuqVn.js → p-DHjjwgku.js} +2 -2
  150. package/dist/components/{p-vlwhuqVn.js.map → p-DHjjwgku.js.map} +1 -1
  151. package/dist/components/{p-boPMASaQ.js → p-DOEMwKBb.js} +2 -2
  152. package/dist/components/{p-boPMASaQ.js.map → p-DOEMwKBb.js.map} +1 -1
  153. package/dist/components/{p-Co2kLhWu.js → p-DolYlDbY.js} +2 -2
  154. package/dist/components/p-DolYlDbY.js.map +1 -0
  155. package/dist/components/p-NkAPA-Dz.js +2 -0
  156. package/dist/components/p-NkAPA-Dz.js.map +1 -0
  157. package/dist/framework/angular.d.ts +6 -0
  158. package/dist/framework/angular.js +6 -0
  159. package/dist/lib/nav/chrome-transition.d.ts +8 -0
  160. package/dist/lib/nav/index.js.map +2 -2
  161. package/dist/lib/utils/format-compact-number.d.ts +1 -1
  162. package/dist/lib/utils/index.js +8 -1
  163. package/dist/lib/utils/index.js.map +2 -2
  164. package/dist/react/components.d.ts +44 -0
  165. package/{src/react/components.ts → dist/react/components.js} +0 -1
  166. package/dist/react/ds-app-shell.d.ts +9 -0
  167. package/dist/react/ds-app-shell.js +12 -0
  168. package/dist/react/ds-badge.d.ts +9 -0
  169. package/dist/react/ds-badge.js +12 -0
  170. package/dist/react/ds-banner.d.ts +12 -0
  171. package/dist/react/ds-banner.js +12 -0
  172. package/dist/react/ds-bar-nav.d.ts +12 -0
  173. package/dist/react/ds-bar-nav.js +12 -0
  174. package/dist/react/ds-button-filled.d.ts +12 -0
  175. package/dist/react/ds-button-filled.js +12 -0
  176. package/dist/react/ds-button-unfilled.d.ts +13 -0
  177. package/dist/react/ds-button-unfilled.js +15 -0
  178. package/dist/react/ds-card-data-viz-donut.d.ts +12 -0
  179. package/dist/react/ds-card-data-viz-donut.js +12 -0
  180. package/dist/react/ds-card-setting.d.ts +12 -0
  181. package/dist/react/ds-card-setting.js +12 -0
  182. package/dist/react/ds-card.d.ts +9 -0
  183. package/dist/react/ds-card.js +12 -0
  184. package/dist/react/ds-chart-bar.d.ts +9 -0
  185. package/dist/react/ds-chart-bar.js +12 -0
  186. package/dist/react/ds-chart-donut.d.ts +12 -0
  187. package/dist/react/ds-chart-donut.js +12 -0
  188. package/dist/react/ds-chart-legend.d.ts +16 -0
  189. package/dist/react/ds-chart-legend.js +15 -0
  190. package/dist/react/ds-chart-line.d.ts +9 -0
  191. package/dist/react/ds-chart-line.js +12 -0
  192. package/dist/react/ds-checkbox.d.ts +12 -0
  193. package/dist/react/ds-checkbox.js +12 -0
  194. package/dist/react/ds-chip.d.ts +12 -0
  195. package/dist/react/ds-chip.js +12 -0
  196. package/dist/react/ds-divider.d.ts +9 -0
  197. package/dist/react/ds-divider.js +12 -0
  198. package/dist/react/ds-empty-state.d.ts +9 -0
  199. package/dist/react/ds-empty-state.js +12 -0
  200. package/dist/react/ds-field.d.ts +9 -0
  201. package/dist/react/ds-field.js +12 -0
  202. package/dist/react/ds-icon.d.ts +9 -0
  203. package/dist/react/ds-icon.js +12 -0
  204. package/dist/react/ds-input.d.ts +13 -0
  205. package/dist/react/ds-input.js +15 -0
  206. package/dist/react/ds-loader.d.ts +9 -0
  207. package/dist/react/ds-loader.js +12 -0
  208. package/dist/react/ds-menu.d.ts +14 -0
  209. package/dist/react/ds-menu.js +16 -0
  210. package/dist/react/ds-modal.d.ts +12 -0
  211. package/dist/react/ds-modal.js +12 -0
  212. package/dist/react/ds-pagination.d.ts +12 -0
  213. package/dist/react/ds-pagination.js +12 -0
  214. package/dist/react/ds-panel-nav.d.ts +17 -0
  215. package/dist/react/ds-panel-nav.js +19 -0
  216. package/dist/react/ds-panel-tools.d.ts +17 -0
  217. package/dist/react/ds-panel-tools.js +16 -0
  218. package/dist/react/ds-radio-group.d.ts +12 -0
  219. package/dist/react/ds-radio-group.js +12 -0
  220. package/dist/react/ds-select.d.ts +12 -0
  221. package/dist/react/ds-select.js +12 -0
  222. package/dist/react/ds-shell-gradient-picker.d.ts +12 -0
  223. package/dist/react/ds-shell-gradient-picker.js +12 -0
  224. package/dist/react/ds-shell-gradient-swatch.d.ts +12 -0
  225. package/dist/react/ds-shell-gradient-swatch.js +12 -0
  226. package/dist/react/ds-skeleton.d.ts +9 -0
  227. package/dist/react/ds-skeleton.js +12 -0
  228. package/dist/react/ds-slider.d.ts +12 -0
  229. package/dist/react/ds-slider.js +12 -0
  230. package/dist/react/ds-tab-group-nav.d.ts +13 -0
  231. package/dist/react/ds-tab-group-nav.js +15 -0
  232. package/dist/react/ds-tab-group.d.ts +12 -0
  233. package/dist/react/ds-tab-group.js +12 -0
  234. package/dist/react/ds-table.d.ts +21 -0
  235. package/dist/react/ds-table.js +16 -0
  236. package/dist/react/ds-tag.d.ts +9 -0
  237. package/dist/react/ds-tag.js +12 -0
  238. package/dist/react/ds-text.d.ts +9 -0
  239. package/dist/react/ds-text.js +12 -0
  240. package/dist/react/ds-toggle.d.ts +12 -0
  241. package/dist/react/ds-toggle.js +12 -0
  242. package/dist/react/ds-tooltip-data-viz.d.ts +9 -0
  243. package/dist/react/ds-tooltip-data-viz.js +12 -0
  244. package/dist/react/ds-tooltip.d.ts +9 -0
  245. package/dist/react/ds-tooltip.js +12 -0
  246. package/dist/types/components/BarNav/BarNav.d.ts +1 -0
  247. package/dist/types/components/ButtonFilled/ButtonFilled.d.ts +1 -1
  248. package/dist/types/components/ButtonUnfilled/ButtonUnfilled.d.ts +1 -1
  249. package/dist/types/components/CardDataVizDonut/CardDataVizDonut.d.ts +1 -0
  250. package/dist/types/components/CardSetting/CardSetting.d.ts +3 -0
  251. package/dist/types/components/ChartDonut/ChartDonut.d.ts +2 -0
  252. package/dist/types/components/ChartLegend/ChartLegend.d.ts +1 -0
  253. package/dist/types/components/Checkbox/Checkbox.d.ts +12 -0
  254. package/dist/types/components/Chip/Chip.d.ts +2 -0
  255. package/dist/types/components/EmptyState/EmptyState.d.ts +2 -0
  256. package/dist/types/components/Input/Input.d.ts +14 -1
  257. package/dist/types/components/Menu/Menu.d.ts +2 -0
  258. package/dist/types/components/Pagination/Pagination.d.ts +3 -0
  259. package/dist/types/components/PanelNav/PanelNav.d.ts +7 -0
  260. package/dist/types/components/PanelTools/PanelTools.d.ts +2 -0
  261. package/dist/types/components/RadioGroup/RadioGroup.d.ts +13 -1
  262. package/dist/types/components/Select/Select.d.ts +13 -1
  263. package/dist/types/components/ShellGradientPicker/ShellGradientPicker.d.ts +1 -0
  264. package/dist/types/components/ShellGradientSwatch/ShellGradientSwatch.d.ts +1 -1
  265. package/dist/types/components/TabGroup/TabGroup.d.ts +1 -1
  266. package/dist/types/components/TabGroupNav/TabGroupNav.d.ts +1 -1
  267. package/dist/types/components/Table/Table.d.ts +6 -0
  268. package/dist/types/components/Toggle/Toggle.d.ts +12 -0
  269. package/dist/types/components.d.ts +525 -30
  270. package/dist/types/nav/chrome-transition.d.ts +8 -0
  271. package/dist/types/stencil-public-runtime.d.ts +1 -0
  272. package/dist/types/utils/format-compact-number.d.ts +1 -1
  273. package/package.json +58 -41
  274. package/dist/components/p-BiM6QBTF.js +0 -2
  275. package/dist/components/p-BiM6QBTF.js.map +0 -1
  276. package/dist/components/p-Co2kLhWu.js.map +0 -1
  277. package/dist/components/p-CsaW5gDM.js +0 -2
  278. package/dist/components/p-CsaW5gDM.js.map +0 -1
  279. package/dist/components/p-D0gBLLJx.js.map +0 -1
  280. package/dist/components/p-DEpLlQZK.js +0 -2
  281. package/dist/components/p-DEpLlQZK.js.map +0 -1
  282. package/src/angular/angular-component-lib/utils.ts +0 -65
  283. package/src/angular/index.ts +0 -45
  284. package/src/angular/proxies.ts +0 -1156
  285. package/src/react/ds-app-shell.ts +0 -26
  286. package/src/react/ds-badge.ts +0 -26
  287. package/src/react/ds-banner.ts +0 -27
  288. package/src/react/ds-bar-nav.ts +0 -27
  289. package/src/react/ds-button-filled.ts +0 -27
  290. package/src/react/ds-button-unfilled.ts +0 -33
  291. package/src/react/ds-card-data-viz-donut.ts +0 -27
  292. package/src/react/ds-card-setting.ts +0 -27
  293. package/src/react/ds-card.ts +0 -26
  294. package/src/react/ds-chart-bar.ts +0 -26
  295. package/src/react/ds-chart-donut.ts +0 -27
  296. package/src/react/ds-chart-legend.ts +0 -33
  297. package/src/react/ds-chart-line.ts +0 -26
  298. package/src/react/ds-checkbox.ts +0 -27
  299. package/src/react/ds-chip.ts +0 -27
  300. package/src/react/ds-divider.ts +0 -26
  301. package/src/react/ds-empty-state.ts +0 -26
  302. package/src/react/ds-field.ts +0 -26
  303. package/src/react/ds-icon.ts +0 -26
  304. package/src/react/ds-input.ts +0 -33
  305. package/src/react/ds-loader.ts +0 -26
  306. package/src/react/ds-menu.ts +0 -35
  307. package/src/react/ds-modal.ts +0 -27
  308. package/src/react/ds-pagination.ts +0 -27
  309. package/src/react/ds-panel-nav.ts +0 -41
  310. package/src/react/ds-panel-tools.ts +0 -35
  311. package/src/react/ds-radio-group.ts +0 -27
  312. package/src/react/ds-select.ts +0 -27
  313. package/src/react/ds-shell-gradient-picker.ts +0 -27
  314. package/src/react/ds-shell-gradient-swatch.ts +0 -27
  315. package/src/react/ds-skeleton.ts +0 -26
  316. package/src/react/ds-slider.ts +0 -27
  317. package/src/react/ds-tab-group-nav.ts +0 -33
  318. package/src/react/ds-tab-group.ts +0 -27
  319. package/src/react/ds-table.ts +0 -35
  320. package/src/react/ds-tag.ts +0 -26
  321. package/src/react/ds-text.ts +0 -26
  322. package/src/react/ds-toggle.ts +0 -27
  323. package/src/react/ds-tooltip-data-viz.ts +0 -26
  324. package/src/react/ds-tooltip.ts +0 -26
  325. package/src/wc/components/AppShell/AppShell.tsx +0 -377
  326. package/src/wc/components/Badge/Badge.tsx +0 -179
  327. package/src/wc/components/Badge/index.ts +0 -1
  328. package/src/wc/components/Banner/Banner.tsx +0 -156
  329. package/src/wc/components/BarNav/BarNav.tsx +0 -745
  330. package/src/wc/components/BarNav/bar-nav-dom-utils.ts +0 -23
  331. package/src/wc/components/BarNav/bar-nav-tabs-menu-utils.ts +0 -114
  332. package/src/wc/components/BarNav/bar-nav-types.ts +0 -3
  333. package/src/wc/components/BarNav/bar-nav-utils.ts +0 -67
  334. package/src/wc/components/BarNav/index.ts +0 -2
  335. package/src/wc/components/ButtonFilled/ButtonFilled.tsx +0 -171
  336. package/src/wc/components/ButtonFilled/index.ts +0 -7
  337. package/src/wc/components/ButtonUnfilled/ButtonUnfilled.tsx +0 -229
  338. package/src/wc/components/ButtonUnfilled/index.ts +0 -7
  339. package/src/wc/components/Card/Card.tsx +0 -78
  340. package/src/wc/components/Card/index.ts +0 -1
  341. package/src/wc/components/CardDataVizDonut/CardDataVizDonut.tsx +0 -108
  342. package/src/wc/components/CardDataVizDonut/index.ts +0 -1
  343. package/src/wc/components/CardSetting/CardSetting.tsx +0 -81
  344. package/src/wc/components/CardSetting/index.ts +0 -1
  345. package/src/wc/components/ChartBar/ChartBar.tsx +0 -88
  346. package/src/wc/components/ChartBar/index.ts +0 -1
  347. package/src/wc/components/ChartDonut/ChartDonut.tsx +0 -289
  348. package/src/wc/components/ChartDonut/index.ts +0 -1
  349. package/src/wc/components/ChartLegend/ChartLegend.tsx +0 -125
  350. package/src/wc/components/ChartLegend/index.ts +0 -2
  351. package/src/wc/components/ChartLine/ChartLine.tsx +0 -102
  352. package/src/wc/components/ChartLine/index.ts +0 -1
  353. package/src/wc/components/Checkbox/Checkbox.tsx +0 -60
  354. package/src/wc/components/Checkbox/index.ts +0 -1
  355. package/src/wc/components/Chip/Chip.tsx +0 -104
  356. package/src/wc/components/Chip/index.ts +0 -1
  357. package/src/wc/components/Divider/Divider.tsx +0 -107
  358. package/src/wc/components/Divider/index.ts +0 -2
  359. package/src/wc/components/EmptyState/EmptyState.tsx +0 -30
  360. package/src/wc/components/Field/Field.tsx +0 -30
  361. package/src/wc/components/Icon/Icon.tsx +0 -172
  362. package/src/wc/components/Icon/flag-icon-catalog.ts +0 -36
  363. package/src/wc/components/Icon/icon-cache.ts +0 -47
  364. package/src/wc/components/Icon/icon-svg.ts +0 -73
  365. package/src/wc/components/Icon/index.ts +0 -1
  366. package/src/wc/components/Icon/system-icon-catalog.ts +0 -401
  367. package/src/wc/components/Input/Input.tsx +0 -107
  368. package/src/wc/components/Input/index.ts +0 -1
  369. package/src/wc/components/Loader/Loader.tsx +0 -99
  370. package/src/wc/components/Loader/index.ts +0 -1
  371. package/src/wc/components/Menu/Menu.tsx +0 -437
  372. package/src/wc/components/Menu/menu-placement.ts +0 -26
  373. package/src/wc/components/Menu/menu-position.ts +0 -78
  374. package/src/wc/components/Menu/menu-types.ts +0 -39
  375. package/src/wc/components/Modal/Modal.tsx +0 -213
  376. package/src/wc/components/Pagination/Pagination.tsx +0 -97
  377. package/src/wc/components/PanelNav/PanelNav.tsx +0 -714
  378. package/src/wc/components/PanelNav/index.ts +0 -17
  379. package/src/wc/components/PanelNav/panel-nav-types.ts +0 -36
  380. package/src/wc/components/PanelNav/panel-nav-utils.ts +0 -79
  381. package/src/wc/components/PanelTools/PanelTools.tsx +0 -366
  382. package/src/wc/components/PanelTools/index.ts +0 -7
  383. package/src/wc/components/PanelTools/panel-tools-types.ts +0 -44
  384. package/src/wc/components/PanelTools/panel-tools-utils.ts +0 -50
  385. package/src/wc/components/RadioGroup/RadioGroup.tsx +0 -130
  386. package/src/wc/components/RadioGroup/index.ts +0 -1
  387. package/src/wc/components/Select/Select.tsx +0 -274
  388. package/src/wc/components/Select/index.ts +0 -1
  389. package/src/wc/components/ShellGradientPicker/ShellGradientPicker.tsx +0 -55
  390. package/src/wc/components/ShellGradientSwatch/ShellGradientSwatch.tsx +0 -69
  391. package/src/wc/components/ShellGradientSwatch/shell-gradient-swatch-types.ts +0 -17
  392. package/src/wc/components/Skeleton/Skeleton.tsx +0 -64
  393. package/src/wc/components/Skeleton/index.ts +0 -1
  394. package/src/wc/components/Slider/Slider.tsx +0 -76
  395. package/src/wc/components/Slider/index.ts +0 -1
  396. package/src/wc/components/TabGroup/TabGroup.tsx +0 -204
  397. package/src/wc/components/TabGroup/tab-item-utils.ts +0 -25
  398. package/src/wc/components/TabGroupNav/TabGroupNav.tsx +0 -347
  399. package/src/wc/components/Table/Table.tsx +0 -273
  400. package/src/wc/components/Tag/Tag.tsx +0 -63
  401. package/src/wc/components/Tag/index.ts +0 -1
  402. package/src/wc/components/Text/Text.tsx +0 -99
  403. package/src/wc/components/Text/index.ts +0 -12
  404. package/src/wc/components/Text/text-types.ts +0 -23
  405. package/src/wc/components/Text/text-utils.ts +0 -13
  406. package/src/wc/components/Toggle/Toggle.tsx +0 -43
  407. package/src/wc/components/Toggle/index.ts +0 -1
  408. package/src/wc/components/Tooltip/Tooltip.tsx +0 -413
  409. package/src/wc/components/TooltipDataViz/TooltipDataViz.tsx +0 -145
  410. package/src/wc/components/TooltipDataViz/index.ts +0 -1
  411. package/src/wc/components.d.ts +0 -3569
  412. package/src/wc/nav/badge-gradient-ring.ts +0 -109
  413. package/src/wc/nav/chrome-transition.ts +0 -62
  414. package/src/wc/nav/index.ts +0 -80
  415. package/src/wc/nav/nav-chrome.ts +0 -47
  416. package/src/wc/nav/shell-chrome-metrics.ts +0 -49
  417. package/src/wc/nav/shell-gradient-presets.ts +0 -60
  418. package/src/wc/nav/shell-gradient.ts +0 -94
  419. package/src/wc/nav/shell-shortcuts.ts +0 -63
  420. package/src/wc/nav/shell-view-transition.ts +0 -122
  421. package/src/wc/utils/chart-colors.ts +0 -7
  422. package/src/wc/utils/chart-types.ts +0 -25
  423. package/src/wc/utils/control-density.css +0 -43
  424. package/src/wc/utils/control-inactive.css +0 -20
  425. package/src/wc/utils/control-text.ts +0 -11
  426. package/src/wc/utils/control-width.css +0 -28
  427. package/src/wc/utils/control-width.ts +0 -10
  428. package/src/wc/utils/focus-ring.css +0 -33
  429. package/src/wc/utils/format-compact-number.ts +0 -27
  430. package/src/wc/utils/index.ts +0 -27
  431. package/src/wc/utils/interaction-fill.css +0 -162
  432. package/src/wc/utils/resolve-css-length-px.ts +0 -66
  433. package/src/wc/utils/resolve-css-time-ms.ts +0 -46
  434. package/src/wc/utils/scroll-edge-fade.css +0 -80
  435. package/src/wc/utils/scroll-edge-fade.ts +0 -148
  436. package/src/wc/utils/token-defaults.ts +0 -81
  437. package/src/wc/utils/truncate-svg-text.ts +0 -25
  438. package/src/wc/utils/typography.css +0 -146
@@ -1,437 +0,0 @@
1
- import { Component, Prop, State, Event, EventEmitter, Element, Watch, Listen, h, Host } from '@stencil/core';
2
- import { resolveCssLengthPx, resolveCssTimeMs, TOKEN_CSS_LENGTHS, TOKEN_DEFAULTS } from '../../utils';
3
- import { computeMenuPosition, type MenuAlign, type MenuSide } from './menu-position';
4
- import type { MenuItemData, MenuSection } from './menu-types';
5
- import { isMenuGradientPickerSection } from './menu-types';
6
- import type { ShellGradientPreset } from '../../nav/shell-gradient-presets';
7
-
8
- /** rAF retries while the popup mounts or the anchor resolves. */
9
- const POSITION_RETRY_BUDGET = 8;
10
-
11
- @Component({
12
- tag: 'ds-menu',
13
- styleUrl: 'Menu.css',
14
- scoped: true,
15
- })
16
- export class Menu {
17
- @Element() el!: HTMLElement;
18
-
19
- @Prop({ mutable: true }) open: boolean = false;
20
- @Prop() items: MenuItemData[] = [];
21
- @Prop() sections: MenuSection[] = [];
22
- @Prop() side: MenuSide = 'bottom';
23
- @Prop() align: MenuAlign = 'start';
24
- /** Gap between anchor and menu — number (px) or TokoMo length (`var(--dimension-space-050)`, etc.). */
25
- @Prop() sideOffset: number | string = TOKEN_CSS_LENGTHS.space050;
26
- /** Cross-axis offset — number (px) or TokoMo length. */
27
- @Prop() alignOffset: number | string = 0;
28
- @Prop() menuWidth: string | undefined;
29
- @Prop() minWidth: string | undefined;
30
- /** External trigger element to position against. Set via JS: menuEl.anchor = buttonEl */
31
- @Prop() anchor: HTMLElement | undefined;
32
- /** ID of the external trigger element for positioning */
33
- @Prop() anchorId: string | undefined;
34
- /** Show a visible ring on the initially focused menu item. Use only when the opener was keyboard-driven. */
35
- @Prop() initialFocusVisible: boolean = false;
36
-
37
- @State() private shouldRender: boolean = false;
38
- @State() private closing: boolean = false;
39
- @State() private pos: { x: number; y: number } = { x: 0, y: 0 };
40
- @State() private focusedIndex: number = 0;
41
- @State() private positionReady: boolean = false;
42
- @State() private focusRingVisible: boolean = false;
43
-
44
- @Event() dsClose!: EventEmitter<void>;
45
- @Event() dsSelect!: EventEmitter<MenuItemData>;
46
- /** Emitted when a `gradient-picker` section swatch is chosen. */
47
- @Event() dsGradientSelect!: EventEmitter<ShellGradientPreset>;
48
-
49
- private clickOutsideHandler: ((e: MouseEvent) => void) | null = null;
50
- private scrollResizeHandler: (() => void) | null = null;
51
- private closeTimer: ReturnType<typeof setTimeout> | null = null;
52
- private itemEls: HTMLElement[] = [];
53
- private positionRetryRaf: number | null = null;
54
- private listenersReady = false;
55
-
56
- componentDidLoad() {
57
- if (this.open) this.onOpenChange(true);
58
- }
59
-
60
- disconnectedCallback() {
61
- this.cancelPositionRetry();
62
- this.teardownListeners();
63
- }
64
-
65
- @Watch('open')
66
- onOpenChange(isOpen: boolean) {
67
- if (isOpen) {
68
- this.teardownListeners();
69
- this.shouldRender = true;
70
- this.closing = false;
71
- this.positionReady = false;
72
- this.listenersReady = false;
73
- this.focusRingVisible = this.initialFocusVisible;
74
- this.listenersReady = true;
75
- this.setupListeners();
76
- this.schedulePositionUpdate(() => {
77
- this.focusInitialItem();
78
- });
79
- } else if (this.shouldRender) {
80
- this.cancelPositionRetry();
81
- this.closing = true;
82
- this.teardownListeners();
83
- this.listenersReady = false;
84
- this.closeTimer = setTimeout(() => {
85
- this.shouldRender = false;
86
- this.closing = false;
87
- this.closeTimer = null;
88
- }, this.closeAnimationMs);
89
- }
90
- }
91
-
92
- @Watch('anchor')
93
- @Watch('anchorId')
94
- onAnchorChange() {
95
- if (this.open) this.schedulePositionUpdate();
96
- }
97
-
98
- @Watch('side')
99
- @Watch('align')
100
- @Watch('sideOffset')
101
- @Watch('alignOffset')
102
- onPositionPropsChange() {
103
- if (this.open) this.schedulePositionUpdate();
104
- }
105
-
106
- private get viewportPadPx(): number {
107
- return resolveCssLengthPx(TOKEN_DEFAULTS.space050, TOKEN_DEFAULTS.space050);
108
- }
109
-
110
- private get sideOffsetPx(): number {
111
- return resolveCssLengthPx(this.sideOffset, TOKEN_DEFAULTS.space050);
112
- }
113
-
114
- private get alignOffsetPx(): number {
115
- return resolveCssLengthPx(this.alignOffset, 0);
116
- }
117
-
118
- private get popupFallbackWidthPx(): number {
119
- return resolveCssLengthPx(TOKEN_DEFAULTS.menuWidthXs, TOKEN_DEFAULTS.menuWidthXs);
120
- }
121
-
122
- private get popupFallbackHeightPx(): number {
123
- return resolveCssLengthPx(TOKEN_DEFAULTS.menuFallbackHeight, TOKEN_DEFAULTS.menuFallbackHeight);
124
- }
125
-
126
- private get closeAnimationMs(): number {
127
- return resolveCssTimeMs(TOKEN_DEFAULTS.motionShort2, TOKEN_DEFAULTS.animationDurationShort3);
128
- }
129
-
130
- private get resolvedAnchor(): HTMLElement | null {
131
- if (this.anchor) return this.anchor;
132
- if (this.anchorId) return document.getElementById(this.anchorId);
133
- return null;
134
- }
135
-
136
- private get activeSections(): MenuSection[] {
137
- if (this.sections.length > 0) return this.sections;
138
- if (this.items.length > 0) return [{ items: this.items }];
139
- return [];
140
- }
141
-
142
- private get flatItems(): MenuItemData[] {
143
- return this.activeSections.flatMap(section =>
144
- isMenuGradientPickerSection(section) ? [] : section.items,
145
- );
146
- }
147
-
148
- private cancelPositionRetry() {
149
- if (this.positionRetryRaf !== null) {
150
- cancelAnimationFrame(this.positionRetryRaf);
151
- this.positionRetryRaf = null;
152
- }
153
- }
154
-
155
- /** Retry until anchor + popup exist — do not reveal at 0,0 on a failed first pass. */
156
- private schedulePositionUpdate(onReady?: () => void) {
157
- if (!this.open) return;
158
-
159
- this.cancelPositionRetry();
160
- this.positionReady = false;
161
-
162
- let remaining = POSITION_RETRY_BUDGET;
163
-
164
- const attempt = () => {
165
- this.positionRetryRaf = null;
166
- if (!this.open) return;
167
-
168
- if (this.calculatePosition()) {
169
- this.positionReady = true;
170
- onReady?.();
171
- return;
172
- }
173
-
174
- if (remaining > 0) {
175
- remaining -= 1;
176
- this.positionRetryRaf = requestAnimationFrame(attempt);
177
- }
178
- };
179
-
180
- this.positionRetryRaf = requestAnimationFrame(attempt);
181
- }
182
-
183
- /** @returns `true` when anchor and popup were found and `pos` was updated. */
184
- private calculatePosition(): boolean {
185
- const anchorEl = this.resolvedAnchor;
186
- if (!anchorEl) return false;
187
- const popup = this.el.querySelector('.menu-popup') as HTMLElement | null;
188
- if (!popup) return false;
189
-
190
- this.pos = computeMenuPosition({
191
- anchorRect: anchorEl.getBoundingClientRect(),
192
- popupWidth: popup.offsetWidth || this.popupFallbackWidthPx,
193
- popupHeight: popup.offsetHeight || this.popupFallbackHeightPx,
194
- side: this.side,
195
- align: this.align,
196
- sideOffsetPx: this.sideOffsetPx,
197
- alignOffsetPx: this.alignOffsetPx,
198
- viewportPadPx: this.viewportPadPx,
199
- viewportWidth: window.innerWidth,
200
- viewportHeight: window.innerHeight,
201
- });
202
- return true;
203
- }
204
-
205
- /** Focus the selected item when present, otherwise the first enabled item. */
206
- private focusInitialItem() {
207
- const flat = this.flatItems;
208
- const selectedIdx = flat.findIndex(it => it.isSelected && !it.isInactive);
209
- const firstEnabledIdx = flat.findIndex(it => !it.isInactive);
210
- this.focusedIndex = selectedIdx >= 0
211
- ? selectedIdx
212
- : (firstEnabledIdx >= 0 ? firstEnabledIdx : 0);
213
-
214
- requestAnimationFrame(() => {
215
- const btns = this.el.querySelectorAll<HTMLElement>('.menu-item');
216
- btns[this.focusedIndex]?.focus();
217
- });
218
- }
219
-
220
- private setupListeners() {
221
- this.clickOutsideHandler = (e: MouseEvent) => {
222
- const t = e.target as Node;
223
- const popup = this.el.querySelector('.menu-popup');
224
- const anchorEl = this.resolvedAnchor;
225
- if (popup?.contains(t) || anchorEl?.contains(t)) return;
226
- this.close();
227
- };
228
-
229
- this.scrollResizeHandler = () => {
230
- if (this.shouldRender && !this.closing) this.calculatePosition();
231
- };
232
-
233
- document.addEventListener('mousedown', this.clickOutsideHandler, true);
234
- window.addEventListener('scroll', this.scrollResizeHandler, true);
235
- window.addEventListener('resize', this.scrollResizeHandler);
236
- }
237
-
238
- private teardownListeners() {
239
- if (this.clickOutsideHandler) {
240
- document.removeEventListener('mousedown', this.clickOutsideHandler, true);
241
- this.clickOutsideHandler = null;
242
- }
243
- if (this.scrollResizeHandler) {
244
- window.removeEventListener('scroll', this.scrollResizeHandler, true);
245
- window.removeEventListener('resize', this.scrollResizeHandler);
246
- this.scrollResizeHandler = null;
247
- }
248
- if (this.closeTimer) {
249
- clearTimeout(this.closeTimer);
250
- this.closeTimer = null;
251
- }
252
- }
253
-
254
- private close() {
255
- this.resolvedAnchor?.focus();
256
- this.dsClose.emit();
257
- this.open = false;
258
- this.onOpenChange(false);
259
- }
260
-
261
- @Listen('keydown')
262
- handleKeyDown(e: KeyboardEvent) {
263
- if (!this.shouldRender || this.closing) return;
264
- const flat = this.flatItems;
265
- const enabled = flat.map((it, i) => ({ it, i })).filter(({ it }) => !it.isInactive).map(({ i }) => i);
266
- if (!enabled.length) return;
267
-
268
- const cur = enabled.indexOf(this.focusedIndex);
269
- const safe = cur < 0 ? 0 : cur;
270
-
271
- switch (e.key) {
272
- case 'ArrowDown':
273
- e.preventDefault(); e.stopPropagation();
274
- this.focusRingVisible = true;
275
- this.focusedIndex = enabled[(safe + 1) % enabled.length];
276
- this.focusItem(this.focusedIndex);
277
- break;
278
- case 'ArrowUp':
279
- e.preventDefault(); e.stopPropagation();
280
- this.focusRingVisible = true;
281
- this.focusedIndex = enabled[(safe - 1 + enabled.length) % enabled.length];
282
- this.focusItem(this.focusedIndex);
283
- break;
284
- case 'Home':
285
- e.preventDefault(); e.stopPropagation();
286
- this.focusRingVisible = true;
287
- this.focusedIndex = enabled[0];
288
- this.focusItem(this.focusedIndex);
289
- break;
290
- case 'End':
291
- e.preventDefault(); e.stopPropagation();
292
- this.focusRingVisible = true;
293
- this.focusedIndex = enabled[enabled.length - 1];
294
- this.focusItem(this.focusedIndex);
295
- break;
296
- case 'Escape':
297
- e.preventDefault();
298
- this.close();
299
- break;
300
- case 'Tab':
301
- e.preventDefault();
302
- this.close();
303
- break;
304
- }
305
- }
306
-
307
- private focusItem(idx: number) {
308
- const btns = this.el.querySelectorAll<HTMLElement>('.menu-item');
309
- btns[idx]?.focus();
310
- }
311
-
312
- private handleItemClick(item: MenuItemData) {
313
- if (item.isInactive) return;
314
- this.dsSelect.emit(item);
315
- }
316
-
317
- private handleGradientSelect(preset: ShellGradientPreset) {
318
- this.dsGradientSelect.emit(preset);
319
- }
320
-
321
- render() {
322
- if (!this.shouldRender) return <Host style={{ display: 'contents' }} />;
323
-
324
- const sections = this.activeSections;
325
- let flatIdx = 0;
326
-
327
- const popupStyle: Record<string, string> = {
328
- position: 'fixed',
329
- left: '0',
330
- top: '0',
331
- transform: `translate(${Math.round(this.pos.x)}px, ${Math.round(this.pos.y)}px)`,
332
- zIndex: '9998',
333
- visibility: this.positionReady ? 'visible' : 'hidden',
334
- };
335
-
336
- if (this.menuWidth) popupStyle['width'] = this.menuWidth;
337
- if (this.minWidth) popupStyle['min-width'] = this.minWidth;
338
-
339
- return (
340
- <Host style={{ display: 'contents' }}>
341
- <div
342
- class={{ 'menu-popup': true, 'menu-popup--closing': this.closing }}
343
- style={popupStyle}
344
- role="menu"
345
- aria-label="Menu"
346
- aria-orientation="vertical"
347
- >
348
- {sections.map((section, si) => (
349
- <div
350
- key={si}
351
- class={{
352
- 'menu-section': true,
353
- 'menu-section--divided': si < sections.length - 1,
354
- 'menu-section--gradient-picker': isMenuGradientPickerSection(section),
355
- }}
356
- role={section.header ? 'group' : undefined}
357
- aria-label={section.header}
358
- >
359
- {section.header && (
360
- <ds-text
361
- class="section-header ds-control--md"
362
- as="span"
363
- variant="text-body-small"
364
- emphasis
365
- color="primary"
366
- aria-hidden="true"
367
- >
368
- {section.header}
369
- </ds-text>
370
- )}
371
- {isMenuGradientPickerSection(section) ? (
372
- <ds-shell-gradient-picker
373
- value={section.value}
374
- onDsChange={(e: CustomEvent<ShellGradientPreset>) => {
375
- e.stopPropagation();
376
- this.handleGradientSelect(e.detail);
377
- }}
378
- />
379
- ) : (
380
- section.items.map(item => {
381
- const idx = flatIdx++;
382
- const isFocused = this.focusedIndex === idx;
383
- return (
384
- <button
385
- key={idx}
386
- type="button"
387
- class={{
388
- 'menu-item': true,
389
- 'ds-control--md': true,
390
- 'ds-focus-ring-inset': true,
391
- 'ds-focus-ring--visible': isFocused && this.focusRingVisible,
392
- 'ds-interaction-fill': !item.isInactive,
393
- 'ds-interaction-fill--selected': !!item.isSelected && !item.isInactive,
394
- 'menu-item--selected': !!item.isSelected,
395
- 'ds-control-inactive': !!item.isInactive,
396
- 'menu-item--destructive': !!item.isDestructive,
397
- 'menu-item--focused': isFocused,
398
- }}
399
- role="menuitem"
400
- aria-current={item.isSelected ? 'true' : undefined}
401
- disabled={item.isInactive}
402
- tabIndex={isFocused ? 0 : -1}
403
- onMouseDown={() => { this.focusRingVisible = false; }}
404
- onClick={() => this.handleItemClick(item)}
405
- onFocus={() => { this.focusedIndex = idx; }}
406
- >
407
- <div class="menu-item__content ds-interaction-fill__content">
408
- <ds-text
409
- class="menu-item__label"
410
- as="span"
411
- variant="text-body-medium"
412
- emphasis={!!item.isSelected}
413
- color={item.isSelected ? 'primary' : 'secondary'}
414
- >
415
- {item.label}
416
- </ds-text>
417
- {item.subtext && (
418
- <ds-text class="menu-item__subtext" as="span" variant="text-body-small" color="secondary">
419
- {item.subtext}
420
- </ds-text>
421
- )}
422
- </div>
423
- {item.showToggle && (
424
- <div class={{ 'menu-item__toggle': true, 'menu-item__toggle--on': !!item.toggleValue, 'ds-interaction-fill__content': true }} aria-hidden="true">
425
- <div class="menu-item__toggle-thumb" />
426
- </div>
427
- )}
428
- </button>
429
- );
430
- }))}
431
- </div>
432
- ))}
433
- </div>
434
- </Host>
435
- );
436
- }
437
- }
@@ -1,26 +0,0 @@
1
- import { TOKEN_CSS_LENGTHS } from '../../utils/token-defaults';
2
- import type { MenuAlign, MenuSide } from './menu-position';
3
-
4
- /** Placement props bindable on `ds-menu` (side, align, offsets). */
5
- export interface MenuPlacement {
6
- side: MenuSide;
7
- align: MenuAlign;
8
- sideOffset: number | string;
9
- alignOffset: number | string;
10
- }
11
-
12
- /**
13
- * Canonical `ds-menu` placement for the **panel-nav footer user menu**.
14
- * Anchor from `dsNavUserAction` detail `{ anchor }` (id `ds-panel-nav-user-menu-anchor`).
15
- *
16
- * Not for BarNav overflow menus — those use `side="bottom"` / `align="end"` internally.
17
- * `align: 'end'` bottom-aligns on the anchor; offsets nudge into the content area:
18
- * - `sideOffset` space-100 + space-050 (12px): 4px past the panel-nav outer edge (anchor is ~8px inset).
19
- * - `alignOffset` space-050 (4px): 4px below the footer user row.
20
- */
21
- export const PANEL_NAV_USER_MENU_PLACEMENT = {
22
- side: 'right',
23
- align: 'end',
24
- sideOffset: 'calc(var(--dimension-space-100) + var(--dimension-space-050))',
25
- alignOffset: TOKEN_CSS_LENGTHS.space050,
26
- } as const satisfies MenuPlacement;
@@ -1,78 +0,0 @@
1
- export type MenuSide = 'top' | 'right' | 'bottom' | 'left';
2
- export type MenuAlign = 'start' | 'center' | 'end';
3
-
4
- export interface MenuPositionInput {
5
- anchorRect: Pick<DOMRectReadOnly, 'top' | 'left' | 'right' | 'bottom' | 'width' | 'height'>;
6
- popupWidth: number;
7
- popupHeight: number;
8
- side: MenuSide;
9
- align: MenuAlign;
10
- sideOffsetPx: number;
11
- alignOffsetPx: number;
12
- viewportPadPx: number;
13
- viewportWidth: number;
14
- viewportHeight: number;
15
- }
16
-
17
- /** Pure layout math for ds-menu — anchor rect + placement props → viewport-fixed x/y. */
18
- export function computeMenuPosition(input: MenuPositionInput): { x: number; y: number } {
19
- const {
20
- anchorRect: a,
21
- popupWidth: pw,
22
- popupHeight: ph,
23
- side,
24
- align,
25
- sideOffsetPx,
26
- alignOffsetPx,
27
- viewportPadPx: vpPad,
28
- viewportWidth,
29
- viewportHeight,
30
- } = input;
31
-
32
- let x = 0;
33
- let y = 0;
34
-
35
- switch (side) {
36
- case 'top':
37
- y = a.top - ph - sideOffsetPx;
38
- x =
39
- align === 'start'
40
- ? a.left + alignOffsetPx
41
- : align === 'end'
42
- ? a.right - pw + alignOffsetPx
43
- : a.left + a.width / 2 - pw / 2 + alignOffsetPx;
44
- break;
45
- case 'bottom':
46
- y = a.bottom + sideOffsetPx;
47
- x =
48
- align === 'start'
49
- ? a.left + alignOffsetPx
50
- : align === 'end'
51
- ? a.right - pw + alignOffsetPx
52
- : a.left + a.width / 2 - pw / 2 + alignOffsetPx;
53
- break;
54
- case 'left':
55
- x = a.left - pw - sideOffsetPx;
56
- y =
57
- align === 'start'
58
- ? a.top + alignOffsetPx
59
- : align === 'end'
60
- ? a.bottom - ph + alignOffsetPx
61
- : a.top + a.height / 2 - ph / 2 + alignOffsetPx;
62
- break;
63
- case 'right':
64
- x = a.right + sideOffsetPx;
65
- y =
66
- align === 'start'
67
- ? a.top + alignOffsetPx
68
- : align === 'end'
69
- ? a.bottom - ph + alignOffsetPx
70
- : a.top + a.height / 2 - ph / 2 + alignOffsetPx;
71
- break;
72
- }
73
-
74
- return {
75
- x: Math.min(Math.max(x, vpPad), viewportWidth - pw - vpPad),
76
- y: Math.min(Math.max(y, vpPad), viewportHeight - ph - vpPad),
77
- };
78
- }
@@ -1,39 +0,0 @@
1
- import type { ShellGradientPreset } from '../../nav/shell-gradient-presets';
2
-
3
- export type { MenuAlign, MenuSide } from './menu-position';
4
- export {
5
- PANEL_NAV_USER_MENU_PLACEMENT,
6
- type MenuPlacement,
7
- } from './menu-placement';
8
-
9
- export interface MenuItemData {
10
- label: string;
11
- value?: string;
12
- subtext?: string;
13
- isSelected?: boolean;
14
- isInactive?: boolean;
15
- isDestructive?: boolean;
16
- showToggle?: boolean;
17
- toggleValue?: boolean;
18
- }
19
-
20
- export interface MenuItemsSection {
21
- header?: string;
22
- items: MenuItemData[];
23
- }
24
-
25
- export interface MenuGradientPickerSection {
26
- header?: string;
27
- variant: 'gradient-picker';
28
- value: ShellGradientPreset;
29
- }
30
-
31
- export type MenuSection = MenuItemsSection | MenuGradientPickerSection;
32
-
33
- export function isMenuGradientPickerSection(
34
- section: MenuSection,
35
- ): section is MenuGradientPickerSection {
36
- return 'variant' in section && section.variant === 'gradient-picker';
37
- }
38
-
39
- export type { ShellGradientPreset };