@watermarkinsights/ripple 0.0.1 → 0.1.0-alpha.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 (460) hide show
  1. package/dist/cjs/app-globals-3db2fdd3.js +103 -0
  2. package/dist/cjs/chartFunctions-0d47b1f4.js +906 -0
  3. package/dist/cjs/functions-761cb9f2.js +10694 -0
  4. package/dist/cjs/index-bb947bd5.js +1843 -0
  5. package/dist/cjs/index.cjs.js +2 -0
  6. package/dist/cjs/interfaces-33cd6161.js +82 -0
  7. package/dist/cjs/intl-9e9388a7.js +291 -0
  8. package/dist/cjs/loader.cjs.js +15 -0
  9. package/dist/cjs/priv-calendar.cjs.entry.js +580 -0
  10. package/dist/cjs/priv-chart-popover-old.cjs.entry.js +146 -0
  11. package/dist/cjs/priv-chart-popover_2.cjs.entry.js +204 -0
  12. package/dist/cjs/priv-navigator-button.cjs.entry.js +29 -0
  13. package/dist/cjs/priv-navigator-item.cjs.entry.js +35 -0
  14. package/dist/cjs/priv-option-list.cjs.entry.js +391 -0
  15. package/dist/cjs/ripple.cjs.js +25 -0
  16. package/dist/cjs/wm-action-menu_2.cjs.entry.js +525 -0
  17. package/dist/cjs/wm-button.cjs.entry.js +280 -0
  18. package/dist/cjs/wm-chart-bar.cjs.entry.js +444 -0
  19. package/dist/cjs/wm-chart-column.cjs.entry.js +629 -0
  20. package/dist/cjs/wm-chart-slice.cjs.entry.js +27 -0
  21. package/dist/cjs/wm-chart-stack.cjs.entry.js +447 -0
  22. package/dist/cjs/wm-chart.cjs.entry.js +163 -0
  23. package/dist/cjs/wm-date-range.cjs.entry.js +591 -0
  24. package/dist/cjs/wm-datepicker.cjs.entry.js +399 -0
  25. package/dist/{ripple/wm-tab-panel.entry.js → cjs/wm-file-list.cjs.entry.js} +15 -24
  26. package/dist/cjs/wm-file.cjs.entry.js +210 -0
  27. package/dist/cjs/wm-flyout.cjs.entry.js +178 -0
  28. package/dist/{ripple/wm-modal.entry.js → cjs/wm-input.cjs.entry.js} +108 -110
  29. package/dist/cjs/wm-line-chart.cjs.entry.js +541 -0
  30. package/dist/cjs/wm-modal-pss_3.cjs.entry.js +220 -0
  31. package/dist/cjs/wm-modal_3.cjs.entry.js +238 -0
  32. package/dist/cjs/wm-navigation_3.cjs.entry.js +188 -0
  33. package/dist/cjs/wm-navigator.cjs.entry.js +334 -0
  34. package/dist/cjs/wm-nested-select.cjs.entry.js +322 -0
  35. package/dist/{ripple/wm-textarea.entry.js → cjs/wm-optgroup.cjs.entry.js} +62 -57
  36. package/dist/cjs/wm-option_2.cjs.entry.js +536 -0
  37. package/dist/{ripple/wm-navigation.entry.js → cjs/wm-pagination.cjs.entry.js} +204 -91
  38. package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +204 -0
  39. package/dist/{ripple/wm-flyout.entry.js → cjs/wm-search.cjs.entry.js} +168 -139
  40. package/dist/{ripple/wm-datepicker.entry.js → cjs/wm-snackbar.cjs.entry.js} +152 -223
  41. package/dist/cjs/wm-tab-item_3.cjs.entry.js +357 -0
  42. package/dist/cjs/wm-tag-input.cjs.entry.js +985 -0
  43. package/dist/cjs/wm-tag-option.cjs.entry.js +51 -0
  44. package/dist/{ripple/wm-modal-pss.entry.js → cjs/wm-textarea.cjs.entry.js} +70 -111
  45. package/dist/{ripple/wm-progress-indicator.entry.js → cjs/wm-timepicker.cjs.entry.js} +296 -78
  46. package/dist/cjs/wm-toggletip.cjs.entry.js +252 -0
  47. package/dist/cjs/wm-uploader.cjs.entry.js +341 -0
  48. package/dist/cjs/wm-wrapper.cjs.entry.js +21 -0
  49. package/dist/collection/collection-manifest.json +207 -0
  50. package/dist/collection/components/charts/chartFunctions.js +831 -0
  51. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.css +995 -0
  52. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +345 -0
  53. package/dist/collection/components/charts/priv-chart-popover-old/priv-chart-popover-old.css +990 -0
  54. package/dist/collection/components/charts/priv-chart-popover-old/priv-chart-popover-old.js +268 -0
  55. package/dist/collection/components/charts/wm-chart/wm-chart-slice.js +177 -0
  56. package/dist/collection/components/charts/wm-chart/wm-chart.css +1326 -0
  57. package/dist/collection/components/charts/wm-chart/wm-chart.js +549 -0
  58. package/dist/collection/components/charts/wm-chart-bar/wm-chart-bar.css +1236 -0
  59. package/dist/collection/components/charts/wm-chart-bar/wm-chart-bar.js +725 -0
  60. package/dist/collection/components/charts/wm-chart-column/wm-chart-column.css +1335 -0
  61. package/dist/collection/components/charts/wm-chart-column/wm-chart-column.js +914 -0
  62. package/dist/collection/components/charts/wm-chart-legend/wm-chart-legend.css +1006 -0
  63. package/dist/collection/components/charts/wm-chart-legend/wm-chart-legend.js +310 -0
  64. package/dist/collection/components/charts/wm-chart-stack/wm-chart-stack.css +1466 -0
  65. package/dist/collection/components/charts/wm-chart-stack/wm-chart-stack.js +709 -0
  66. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.css +1208 -0
  67. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.js +999 -0
  68. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.css +1326 -0
  69. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +320 -0
  70. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.css +967 -0
  71. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +232 -0
  72. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js +167 -0
  73. package/dist/collection/components/datepickers/datepicker.css +1147 -0
  74. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.css +1415 -0
  75. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.js +857 -0
  76. package/dist/collection/components/datepickers/wm-date-range.js +1158 -0
  77. package/dist/collection/components/datepickers/wm-datepicker.js +875 -0
  78. package/dist/collection/components/selects/priv-option-list/priv-option-list.css +999 -0
  79. package/dist/collection/components/selects/priv-option-list/priv-option-list.js +784 -0
  80. package/dist/collection/components/selects/wm-nested-select/wm-nested-select.css +1259 -0
  81. package/dist/collection/components/selects/wm-nested-select/wm-nested-select.js +805 -0
  82. package/dist/collection/components/selects/wm-optgroup/wm-optgroup.css +909 -0
  83. package/dist/collection/components/selects/wm-optgroup/wm-optgroup.js +363 -0
  84. package/dist/collection/components/selects/wm-option/wm-option.css +1033 -0
  85. package/dist/collection/components/selects/wm-option/wm-option.js +665 -0
  86. package/dist/collection/components/selects/wm-select/wm-select.css +1174 -0
  87. package/dist/collection/components/selects/wm-select/wm-select.js +878 -0
  88. package/dist/collection/components/wm-action-menu/wm-action-menu.css +1690 -0
  89. package/dist/collection/components/wm-action-menu/wm-action-menu.js +932 -0
  90. package/dist/collection/components/wm-button/wm-button.css +1630 -0
  91. package/dist/collection/components/wm-button/wm-button.js +794 -0
  92. package/dist/collection/components/wm-file/wm-file.css +1086 -0
  93. package/dist/collection/components/wm-file/wm-file.js +536 -0
  94. package/dist/collection/components/wm-file-list/wm-file-list.css +899 -0
  95. package/dist/collection/components/wm-file-list/wm-file-list.js +118 -0
  96. package/dist/collection/components/wm-flyout/wm-flyout.css +1091 -0
  97. package/dist/collection/components/wm-flyout/wm-flyout.js +651 -0
  98. package/dist/collection/components/wm-input/wm-input.css +1095 -0
  99. package/dist/collection/components/wm-input/wm-input.js +653 -0
  100. package/dist/collection/components/wm-menuitem/wm-menuitem.css +982 -0
  101. package/dist/collection/components/wm-menuitem/wm-menuitem.js +515 -0
  102. package/dist/collection/components/wm-modal/wm-modal-footer.css +927 -0
  103. package/dist/collection/components/wm-modal/wm-modal-footer.js +199 -0
  104. package/dist/collection/components/wm-modal/wm-modal-header.css +926 -0
  105. package/dist/collection/components/wm-modal/wm-modal-header.js +110 -0
  106. package/dist/collection/components/wm-modal/wm-modal.css +983 -0
  107. package/dist/collection/components/wm-modal/wm-modal.js +534 -0
  108. package/dist/collection/components/wm-modal-pss/wm-modal-pss-footer.css +931 -0
  109. package/dist/collection/components/wm-modal-pss/wm-modal-pss-footer.js +142 -0
  110. package/dist/collection/components/wm-modal-pss/wm-modal-pss-header.css +925 -0
  111. package/dist/collection/components/wm-modal-pss/wm-modal-pss-header.js +86 -0
  112. package/dist/collection/components/wm-modal-pss/wm-modal-pss.css +1007 -0
  113. package/dist/collection/components/wm-modal-pss/wm-modal-pss.js +369 -0
  114. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.css +926 -0
  115. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +153 -0
  116. package/dist/collection/components/wm-navigation/wm-navigation-item.css +935 -0
  117. package/dist/collection/components/wm-navigation/wm-navigation-item.js +140 -0
  118. package/dist/collection/components/wm-navigation/wm-navigation.css +977 -0
  119. package/dist/collection/components/wm-navigation/wm-navigation.js +246 -0
  120. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.css +929 -0
  121. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +90 -0
  122. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.css +918 -0
  123. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +128 -0
  124. package/dist/collection/components/wm-navigator/wm-navigator.css +990 -0
  125. package/dist/collection/components/wm-navigator/wm-navigator.js +597 -0
  126. package/dist/collection/components/wm-pagination/wm-pagination.css +1044 -0
  127. package/dist/collection/components/wm-pagination/wm-pagination.js +487 -0
  128. package/dist/collection/components/wm-search/wm-search.css +983 -0
  129. package/dist/collection/components/wm-search/wm-search.js +604 -0
  130. package/dist/collection/components/wm-snackbar/wm-snackbar.css +1150 -0
  131. package/dist/collection/components/wm-snackbar/wm-snackbar.js +363 -0
  132. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.css +958 -0
  133. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +233 -0
  134. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.css +966 -0
  135. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +461 -0
  136. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.css +906 -0
  137. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +132 -0
  138. package/dist/collection/components/wm-tag-input/wm-tag-input.css +1423 -0
  139. package/dist/collection/components/wm-tag-input/wm-tag-input.js +1511 -0
  140. package/dist/collection/components/wm-tag-input/wm-tag-option/wm-tag-option.js +328 -0
  141. package/dist/collection/components/wm-textarea/wm-textarea.css +1065 -0
  142. package/dist/collection/components/wm-textarea/wm-textarea.js +423 -0
  143. package/dist/collection/components/wm-timepicker/wm-timepicker.css +1174 -0
  144. package/dist/collection/components/wm-timepicker/wm-timepicker.js +728 -0
  145. package/dist/collection/components/wm-toggletip/wm-toggletip.css +1296 -0
  146. package/dist/collection/components/wm-toggletip/wm-toggletip.js +455 -0
  147. package/dist/collection/components/wm-uploader/wm-uploader.css +1987 -0
  148. package/dist/collection/components/wm-uploader/wm-uploader.js +760 -0
  149. package/dist/collection/components/wm-wrapper/wm-wrapper.js +31 -0
  150. package/dist/collection/dev/action-menu.js +18 -0
  151. package/dist/collection/dev/button.js +12 -0
  152. package/dist/collection/dev/chart-bar.js +430 -0
  153. package/dist/collection/dev/chart-column.js +459 -0
  154. package/dist/collection/dev/chart-small.js +56 -0
  155. package/dist/collection/dev/chart-stack.js +205 -0
  156. package/dist/collection/dev/chart.js +18 -0
  157. package/dist/collection/dev/date-range.js +14 -0
  158. package/dist/collection/dev/datepicker.js +46 -0
  159. package/dist/collection/dev/file-list.js +16 -0
  160. package/dist/collection/dev/file.js +0 -0
  161. package/dist/collection/dev/flyout.js +194 -0
  162. package/dist/collection/dev/input.js +6 -0
  163. package/dist/collection/dev/line-chart.js +45 -0
  164. package/dist/collection/dev/modal.js +48 -0
  165. package/dist/collection/dev/navigation.js +13 -0
  166. package/dist/collection/dev/navigator.js +34 -0
  167. package/dist/collection/dev/nested-select.js +36 -0
  168. package/dist/collection/dev/pagination.js +7 -0
  169. package/dist/collection/dev/progress-monitor.js +0 -0
  170. package/dist/collection/dev/pss-modal.js +8 -0
  171. package/dist/collection/dev/scripts.js +49 -0
  172. package/dist/collection/dev/search.js +72 -0
  173. package/dist/collection/dev/select.js +57 -0
  174. package/dist/collection/dev/snackbar.js +68 -0
  175. package/dist/collection/dev/tabs.js +44 -0
  176. package/dist/collection/dev/tag-input.js +32 -0
  177. package/dist/collection/dev/textarea.js +28 -0
  178. package/dist/collection/dev/timepicker.js +32 -0
  179. package/dist/collection/dev/toggletip.js +9 -0
  180. package/dist/collection/dev/uploader.js +139 -0
  181. package/dist/collection/global/__mocks__/functions.js +6 -0
  182. package/dist/collection/global/functions.js +907 -0
  183. package/dist/{ripple/app-globals-B7cOtGhY.js → collection/global/global.js} +16 -87
  184. package/dist/collection/global/interfaces.js +94 -0
  185. package/dist/collection/global/intl.js +281 -0
  186. package/dist/collection/global/services/__mocks__/http-service.js +130 -0
  187. package/dist/collection/global/services/http-service.js +50 -0
  188. package/dist/collection/lang/lang.js +5 -0
  189. package/dist/collection/lang/missing.js +43 -0
  190. package/dist/collection/lang/piglatin.js +101 -0
  191. package/dist/docs/docs.d.ts +435 -0
  192. package/dist/docs/docs.json +14178 -0
  193. package/dist/docs/props-reference.json +2079 -0
  194. package/dist/docs/skill/index.md +33 -0
  195. package/dist/docs/skill/wm-action-menu.md +116 -0
  196. package/dist/docs/skill/wm-button.md +121 -0
  197. package/dist/docs/skill/wm-chart-bar.md +156 -0
  198. package/dist/docs/skill/wm-chart-column.md +122 -0
  199. package/dist/docs/skill/wm-chart-legend.md +91 -0
  200. package/dist/docs/skill/wm-chart-slice.md +101 -0
  201. package/dist/docs/skill/wm-chart-stack.md +147 -0
  202. package/dist/docs/skill/wm-chart.md +139 -0
  203. package/dist/docs/skill/wm-date-range.md +176 -0
  204. package/dist/docs/skill/wm-datepicker.md +153 -0
  205. package/dist/docs/skill/wm-file-list.md +105 -0
  206. package/dist/docs/skill/wm-file.md +91 -0
  207. package/dist/docs/skill/wm-flyout.md +209 -0
  208. package/dist/docs/skill/wm-input.md +134 -0
  209. package/dist/docs/skill/wm-line-chart.md +135 -0
  210. package/dist/docs/skill/wm-menuitem.md +64 -0
  211. package/dist/docs/skill/wm-modal-footer.md +81 -0
  212. package/dist/docs/skill/wm-modal-header.md +71 -0
  213. package/dist/docs/skill/wm-modal.md +172 -0
  214. package/dist/docs/skill/wm-navigation-hamburger.md +61 -0
  215. package/dist/docs/skill/wm-navigation-item.md +78 -0
  216. package/dist/docs/skill/wm-navigation.md +82 -0
  217. package/dist/docs/skill/wm-navigator.md +106 -0
  218. package/dist/docs/skill/wm-nested-select.md +160 -0
  219. package/dist/docs/skill/wm-optgroup.md +72 -0
  220. package/dist/docs/skill/wm-option.md +67 -0
  221. package/dist/docs/skill/wm-pagination.md +114 -0
  222. package/dist/docs/skill/wm-progress-indicator.md +75 -0
  223. package/dist/docs/skill/wm-progress-monitor.md +120 -0
  224. package/dist/docs/skill/wm-progress-slice.md +67 -0
  225. package/dist/docs/skill/wm-search.md +180 -0
  226. package/dist/docs/skill/wm-select.md +169 -0
  227. package/dist/docs/skill/wm-snackbar.md +130 -0
  228. package/dist/docs/skill/wm-tab-item.md +45 -0
  229. package/dist/docs/skill/wm-tab-list.md +139 -0
  230. package/dist/docs/skill/wm-tab-panel.md +39 -0
  231. package/dist/docs/skill/wm-tag-input.md +187 -0
  232. package/dist/docs/skill/wm-tag-option.md +60 -0
  233. package/dist/docs/skill/wm-textarea.md +102 -0
  234. package/dist/docs/skill/wm-timepicker.md +156 -0
  235. package/dist/docs/skill/wm-toggletip.md +98 -0
  236. package/dist/docs/skill/wm-uploader.md +154 -0
  237. package/dist/docs/skill/wm-wrapper.md +5 -0
  238. package/dist/esm/app-globals-a1092590.js +101 -0
  239. package/dist/{ripple/chartFunctions-CmeM8Tyx.js → esm/chartFunctions-58637dc9.js} +159 -3
  240. package/dist/{ripple/functions-DVLl0rH_.js → esm/functions-65f1594c.js} +374 -7830
  241. package/dist/esm/index-3425d80d.js +1813 -0
  242. package/dist/esm/index.js +1 -0
  243. package/dist/esm/interfaces-8778346d.js +77 -0
  244. package/dist/{ripple/intl-7p27BJSM.js → esm/intl-d518f362.js} +11 -4
  245. package/dist/esm/loader.js +11 -0
  246. package/dist/{ripple → esm}/priv-calendar.entry.js +143 -133
  247. package/dist/esm/priv-chart-popover-old.entry.js +142 -0
  248. package/dist/esm/priv-chart-popover_2.entry.js +199 -0
  249. package/dist/{ripple → esm}/priv-navigator-button.entry.js +5 -4
  250. package/dist/{ripple → esm}/priv-navigator-item.entry.js +5 -4
  251. package/dist/{ripple → esm}/priv-option-list.entry.js +18 -16
  252. package/dist/esm/ripple.js +20 -0
  253. package/dist/esm/wm-action-menu_2.entry.js +520 -0
  254. package/dist/{ripple/wm-modal-header.entry.js → esm/wm-button.entry.js} +264 -24
  255. package/dist/esm/wm-chart-bar.entry.js +440 -0
  256. package/dist/esm/wm-chart-column.entry.js +625 -0
  257. package/dist/{ripple → esm}/wm-chart-slice.entry.js +6 -1
  258. package/dist/esm/wm-chart-stack.entry.js +443 -0
  259. package/dist/esm/wm-chart.entry.js +159 -0
  260. package/dist/{ripple → esm}/wm-date-range.entry.js +224 -114
  261. package/dist/esm/wm-datepicker.entry.js +395 -0
  262. package/dist/{ripple → esm}/wm-file-list.entry.js +5 -4
  263. package/dist/{ripple → esm}/wm-file.entry.js +48 -24
  264. package/dist/esm/wm-flyout.entry.js +174 -0
  265. package/dist/{ripple → esm}/wm-input.entry.js +23 -7
  266. package/dist/{ripple → esm}/wm-line-chart.entry.js +182 -94
  267. package/dist/esm/wm-modal-pss_3.entry.js +214 -0
  268. package/dist/esm/wm-modal_3.entry.js +232 -0
  269. package/dist/esm/wm-navigation_3.entry.js +182 -0
  270. package/dist/{ripple → esm}/wm-navigator.entry.js +26 -64
  271. package/dist/{ripple → esm}/wm-nested-select.entry.js +35 -25
  272. package/dist/{ripple → esm}/wm-optgroup.entry.js +17 -5
  273. package/dist/esm/wm-option_2.entry.js +531 -0
  274. package/dist/{ripple → esm}/wm-pagination.entry.js +16 -14
  275. package/dist/esm/wm-progress-indicator_3.entry.js +198 -0
  276. package/dist/{ripple → esm}/wm-search.entry.js +15 -31
  277. package/dist/{ripple → esm}/wm-snackbar.entry.js +32 -45
  278. package/dist/esm/wm-tab-item_3.entry.js +351 -0
  279. package/dist/{ripple → esm}/wm-tag-input.entry.js +169 -65
  280. package/dist/{ripple → esm}/wm-tag-option.entry.js +14 -2
  281. package/dist/{ripple/wm-menuitem.entry.js → esm/wm-textarea.entry.js} +65 -100
  282. package/dist/{ripple → esm}/wm-timepicker.entry.js +33 -12
  283. package/dist/{ripple → esm}/wm-toggletip.entry.js +105 -33
  284. package/dist/esm/wm-uploader.entry.js +337 -0
  285. package/dist/{ripple → esm}/wm-wrapper.entry.js +1 -1
  286. package/dist/index.cjs.js +1 -0
  287. package/dist/index.js +1 -0
  288. package/dist/loader/cdn.js +1 -0
  289. package/dist/loader/index.cjs.js +1 -0
  290. package/dist/loader/index.d.ts +24 -0
  291. package/dist/loader/index.es2017.js +1 -0
  292. package/dist/loader/index.js +2 -0
  293. package/dist/loader/package.json +11 -0
  294. package/dist/ripple/index.esm.js +0 -1
  295. package/dist/ripple/p-0d364411.entry.js +1 -0
  296. package/dist/ripple/p-156c4d1d.entry.js +1 -0
  297. package/dist/ripple/{wm-modal-footer.entry.js → p-26d8c356.entry.js} +1 -44
  298. package/dist/ripple/p-2b23ce49.entry.js +1 -0
  299. package/dist/ripple/p-2b7cc2c1.entry.js +1 -0
  300. package/dist/ripple/p-34bde06a.entry.js +1 -0
  301. package/dist/ripple/p-35db9386.entry.js +1 -0
  302. package/dist/ripple/p-38a987ac.entry.js +1 -0
  303. package/dist/ripple/p-38b05894.entry.js +1 -0
  304. package/dist/ripple/p-38dee4ab.entry.js +1 -0
  305. package/dist/ripple/p-3a19d019.entry.js +1 -0
  306. package/dist/ripple/p-451d4de2.js +1 -0
  307. package/dist/ripple/p-507f2cf4.entry.js +1 -0
  308. package/dist/ripple/p-59f74ead.entry.js +1 -0
  309. package/dist/ripple/p-5c2fc42a.entry.js +1 -0
  310. package/dist/ripple/p-680d7606.entry.js +1 -0
  311. package/dist/ripple/p-683264db.js +1 -0
  312. package/dist/ripple/p-6db681c8.entry.js +1 -0
  313. package/dist/ripple/p-6e3c2bbc.js +1 -0
  314. package/dist/ripple/p-6f1cabab.entry.js +1 -0
  315. package/dist/ripple/p-72d135ee.entry.js +1 -0
  316. package/dist/ripple/p-7799953c.entry.js +1 -0
  317. package/dist/ripple/p-83c3db60.js +2 -0
  318. package/dist/ripple/{wm-progress-monitor.entry.js → p-83cdad78.entry.js} +1 -71
  319. package/dist/ripple/p-87ef0cfa.entry.js +1 -0
  320. package/dist/ripple/p-88e44511.entry.js +1 -0
  321. package/dist/ripple/p-8f8e4eb8.entry.js +1 -0
  322. package/dist/ripple/p-936adffb.entry.js +1 -0
  323. package/dist/ripple/p-9755192c.entry.js +1 -0
  324. package/dist/ripple/p-9c5c591b.js +1 -0
  325. package/dist/ripple/p-9ea38d96.entry.js +1 -0
  326. package/dist/ripple/p-be3e4e7c.entry.js +1 -0
  327. package/dist/ripple/p-c9c7df12.entry.js +1 -0
  328. package/dist/ripple/p-d7a1be0b.entry.js +1 -0
  329. package/dist/ripple/p-dab86523.entry.js +1 -0
  330. package/dist/ripple/{wm-tab-list.entry.js → p-e4aa6e27.entry.js} +1 -175
  331. package/dist/ripple/p-ebe9f38c.js +1 -0
  332. package/dist/ripple/p-ed053612.entry.js +1 -0
  333. package/dist/ripple/p-f43f621b.entry.js +1 -0
  334. package/dist/ripple/p-f48d30d6.entry.js +1 -0
  335. package/dist/ripple/{wm-action-menu.entry.js → p-f6aad57c.entry.js} +1 -201
  336. package/dist/ripple/p-f6e1beb5.entry.js +1 -0
  337. package/dist/ripple/p-fc843bb8.entry.js +1 -0
  338. package/dist/ripple/{priv-chart-popover.entry.js → p-fd997764.entry.js} +1 -134
  339. package/dist/ripple/p-fffb46ad.entry.js +1 -0
  340. package/dist/ripple/ripple.esm.js +1 -48
  341. package/dist/types/components/charts/chartFunctions.d.ts +15 -2
  342. package/dist/types/components/charts/priv-chart-popover/priv-chart-popover.d.ts +25 -11
  343. package/dist/types/components/charts/priv-chart-popover-old/priv-chart-popover-old.d.ts +31 -0
  344. package/dist/types/components/charts/wm-chart/wm-chart-slice.d.ts +52 -0
  345. package/dist/types/components/charts/wm-chart/wm-chart.d.ts +113 -1
  346. package/dist/types/components/charts/wm-chart-bar/wm-chart-bar.d.ts +195 -0
  347. package/dist/types/components/charts/wm-chart-column/wm-chart-column.d.ts +184 -0
  348. package/dist/types/components/charts/wm-chart-legend/wm-chart-legend.d.ts +110 -0
  349. package/dist/types/components/charts/wm-chart-stack/wm-chart-stack.d.ts +194 -0
  350. package/dist/types/components/charts/wm-line-chart/wm-line-chart.d.ts +156 -11
  351. package/dist/types/components/charts/wm-progress-monitor/wm-progress-indicator.d.ts +53 -1
  352. package/dist/types/components/charts/wm-progress-monitor/wm-progress-monitor.d.ts +85 -0
  353. package/dist/types/components/charts/wm-progress-monitor/wm-progress-slice.d.ts +44 -0
  354. package/dist/types/components/datepickers/priv-calendar/priv-calendar.d.ts +19 -3
  355. package/dist/types/components/datepickers/wm-date-range.d.ts +205 -14
  356. package/dist/types/components/datepickers/wm-datepicker.d.ts +189 -11
  357. package/dist/types/components/selects/priv-option-list/priv-option-list.d.ts +6 -0
  358. package/dist/types/components/selects/wm-nested-select/wm-nested-select.d.ts +165 -1
  359. package/dist/types/components/selects/wm-optgroup/wm-optgroup.d.ts +87 -0
  360. package/dist/types/components/selects/wm-option/wm-option.d.ts +117 -0
  361. package/dist/types/components/selects/wm-select/wm-select.d.ts +193 -12
  362. package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +207 -2
  363. package/dist/types/components/wm-button/wm-button.d.ts +191 -0
  364. package/dist/types/components/wm-file/wm-file.d.ts +110 -1
  365. package/dist/types/components/wm-file-list/wm-file-list.d.ts +72 -0
  366. package/dist/types/components/wm-flyout/wm-flyout.d.ts +205 -0
  367. package/dist/types/components/wm-input/wm-input.d.ts +161 -1
  368. package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +79 -0
  369. package/dist/types/components/wm-modal/wm-modal-footer.d.ts +54 -0
  370. package/dist/types/components/wm-modal/wm-modal-header.d.ts +30 -0
  371. package/dist/types/components/wm-modal/wm-modal.d.ts +160 -0
  372. package/dist/types/components/wm-modal-pss/wm-modal-pss-footer.d.ts +4 -0
  373. package/dist/types/components/wm-modal-pss/wm-modal-pss-header.d.ts +4 -0
  374. package/dist/types/components/wm-modal-pss/wm-modal-pss.d.ts +6 -0
  375. package/dist/types/components/wm-navigation/wm-navigation-hamburger.d.ts +34 -0
  376. package/dist/types/components/wm-navigation/wm-navigation-item.d.ts +41 -0
  377. package/dist/types/components/wm-navigation/wm-navigation.d.ts +57 -0
  378. package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +4 -0
  379. package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +4 -0
  380. package/dist/types/components/wm-navigator/wm-navigator.d.ts +93 -4
  381. package/dist/types/components/wm-pagination/wm-pagination.d.ts +100 -1
  382. package/dist/types/components/wm-search/wm-search.d.ts +158 -6
  383. package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +103 -1
  384. package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +55 -3
  385. package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +119 -20
  386. package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +35 -2
  387. package/dist/types/components/wm-tag-input/wm-tag-input.d.ts +199 -5
  388. package/dist/types/components/wm-tag-input/wm-tag-option/wm-tag-option.d.ts +68 -0
  389. package/dist/types/components/wm-textarea/wm-textarea.d.ts +99 -0
  390. package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +147 -0
  391. package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +88 -2
  392. package/dist/types/components/wm-uploader/wm-uploader.d.ts +145 -3
  393. package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +3 -0
  394. package/dist/types/components.d.ts +11523 -95
  395. package/dist/types/global/functions.d.ts +7 -2
  396. package/dist/types/global/interfaces.d.ts +92 -2
  397. package/dist/types/global/intl.d.ts +3 -0
  398. package/dist/types/stencil-public-runtime.d.ts +0 -28
  399. package/package.json +4 -33
  400. package/dist/components/index.d.ts +0 -33
  401. package/dist/components/priv-calendar.d.ts +0 -11
  402. package/dist/components/priv-chart-popover.d.ts +0 -11
  403. package/dist/components/priv-navigator-button.d.ts +0 -11
  404. package/dist/components/priv-navigator-item.d.ts +0 -11
  405. package/dist/components/priv-option-list.d.ts +0 -11
  406. package/dist/components/wm-action-menu.d.ts +0 -11
  407. package/dist/components/wm-button.d.ts +0 -11
  408. package/dist/components/wm-chart-slice.d.ts +0 -11
  409. package/dist/components/wm-chart.d.ts +0 -11
  410. package/dist/components/wm-date-range.d.ts +0 -11
  411. package/dist/components/wm-datepicker.d.ts +0 -11
  412. package/dist/components/wm-file-list.d.ts +0 -11
  413. package/dist/components/wm-file.d.ts +0 -11
  414. package/dist/components/wm-flyout.d.ts +0 -11
  415. package/dist/components/wm-input.d.ts +0 -11
  416. package/dist/components/wm-line-chart.d.ts +0 -11
  417. package/dist/components/wm-menuitem.d.ts +0 -11
  418. package/dist/components/wm-modal-footer.d.ts +0 -11
  419. package/dist/components/wm-modal-header.d.ts +0 -11
  420. package/dist/components/wm-modal-pss-footer.d.ts +0 -11
  421. package/dist/components/wm-modal-pss-header.d.ts +0 -11
  422. package/dist/components/wm-modal-pss.d.ts +0 -11
  423. package/dist/components/wm-modal.d.ts +0 -11
  424. package/dist/components/wm-navigation-hamburger.d.ts +0 -11
  425. package/dist/components/wm-navigation-item.d.ts +0 -11
  426. package/dist/components/wm-navigation.d.ts +0 -11
  427. package/dist/components/wm-navigator.d.ts +0 -11
  428. package/dist/components/wm-nested-select.d.ts +0 -11
  429. package/dist/components/wm-optgroup.d.ts +0 -11
  430. package/dist/components/wm-option.d.ts +0 -11
  431. package/dist/components/wm-pagination.d.ts +0 -11
  432. package/dist/components/wm-progress-indicator.d.ts +0 -11
  433. package/dist/components/wm-progress-monitor.d.ts +0 -11
  434. package/dist/components/wm-progress-slice.d.ts +0 -11
  435. package/dist/components/wm-search.d.ts +0 -11
  436. package/dist/components/wm-select.d.ts +0 -11
  437. package/dist/components/wm-snackbar.d.ts +0 -11
  438. package/dist/components/wm-tab-item.d.ts +0 -11
  439. package/dist/components/wm-tab-list.d.ts +0 -11
  440. package/dist/components/wm-tab-panel.d.ts +0 -11
  441. package/dist/components/wm-tag-input.d.ts +0 -11
  442. package/dist/components/wm-tag-option.d.ts +0 -11
  443. package/dist/components/wm-textarea.d.ts +0 -11
  444. package/dist/components/wm-timepicker.d.ts +0 -11
  445. package/dist/components/wm-toggletip.d.ts +0 -11
  446. package/dist/components/wm-uploader.d.ts +0 -11
  447. package/dist/components/wm-wrapper.d.ts +0 -11
  448. package/dist/ripple/index-CU5QNCKv.js +0 -4167
  449. package/dist/ripple/interfaces-CrANcZM9.js +0 -53
  450. package/dist/ripple/wm-button.entry.js +0 -197
  451. package/dist/ripple/wm-chart.entry.js +0 -157
  452. package/dist/ripple/wm-modal-pss-footer.entry.js +0 -40
  453. package/dist/ripple/wm-modal-pss-header.entry.js +0 -39
  454. package/dist/ripple/wm-navigation-hamburger.entry.js +0 -48
  455. package/dist/ripple/wm-navigation-item.entry.js +0 -18
  456. package/dist/ripple/wm-option.entry.js +0 -171
  457. package/dist/ripple/wm-progress-slice.entry.js +0 -13
  458. package/dist/ripple/wm-select.entry.js +0 -249
  459. package/dist/ripple/wm-tab-item.entry.js +0 -63
  460. package/dist/ripple/wm-uploader.entry.js +0 -313
@@ -0,0 +1,461 @@
1
+ import { h, Host } from "@stencil/core";
2
+ import { debounce, intl } from "../../../global/functions";
3
+ /**
4
+ * Tab list container that manages a group of wm-tab-item children and their associated
5
+ * wm-tab-panel elements. Handles keyboard navigation, ARIA wiring between tabs and panels,
6
+ * horizontal scroll with arrow buttons on overflow, and optional dark theme.
7
+ *
8
+ * @category Navigation
9
+ * @displayName Tabs
10
+ *
11
+ * @slot - One or more wm-tab-item elements.
12
+ *
13
+ * @keyboardInteraction
14
+ * - **Arrow Left / Arrow Right**: Cycles focus to the previous/next tab item; wraps at both ends.
15
+ * - **Arrow Down**: Moves focus to the content area of the active tab panel.
16
+ * - **Enter / Space**: Activates the focused tab and shows its panel.
17
+ * - **Tab**: Moves focus from the selected tab to the first focusable element inside the
18
+ * active panel.
19
+ * - **Shift+Tab**: Moves focus back to the selected tab item from within the panel.
20
+ *
21
+ * @accessibility
22
+ * - Sets `aria-controls` on each wm-tab-item link pointing to its associated wm-tab-panel.
23
+ * - Sets `aria-labelledby` on each wm-tab-panel pointing back to its wm-tab-item link.
24
+ * - ARIA attributes are updated dynamically when tab content is conditionally rendered in a
25
+ * single shared panel.
26
+ *
27
+ * @usageNotes
28
+ * - Set the container's width to 100% in most cases.
29
+ * - Two usage patterns:
30
+ * 1. **Discrete panels** — each wm-tab-item has a paired wm-tab-panel with the same `tab-id`.
31
+ * 2. **Single panel** — one wm-tab-panel; content is rendered conditionally based on the
32
+ * selected tab; ARIA attributes are updated automatically.
33
+ * - At least one wm-tab-panel is required — wm-tab-list only renders the tab strip, not the
34
+ * content area. A wm-tab-item's `tab-id` must exactly match its wm-tab-panel's `tab-id`
35
+ * (or the shared panel's `tab-id`, for the single-panel pattern). A missing or mismatched
36
+ * `tab-id` fails silently: no console warning, the tab's `aria-controls`/`href` never get
37
+ * set, and its panel never activates.
38
+ * - Listen to `wmTabSelected` on wm-tab-item (or on the wm-tab-list, as the event bubbles) and
39
+ * update `selected-tab` to switch the active tab.
40
+ * - Use `selected-tab` to control which tab is initially active by its `tab-id`.
41
+ *
42
+ * @example {html} Basic tabs (discrete panels)
43
+ * <wm-tab-list>
44
+ * <wm-tab-item tab-id="overview">Overview</wm-tab-item>
45
+ * <wm-tab-item tab-id="details">Details</wm-tab-item>
46
+ * <wm-tab-item tab-id="history">History</wm-tab-item>
47
+ * </wm-tab-list>
48
+ * <wm-tab-panel tab-id="overview"><p>Overview content</p></wm-tab-panel>
49
+ * <wm-tab-panel tab-id="details"><p>Details content</p></wm-tab-panel>
50
+ * <wm-tab-panel tab-id="history"><p>History content</p></wm-tab-panel>
51
+ *
52
+ * @example {react} Basic tabs (discrete panels)
53
+ * // wmTabSelected fires when a tab is clicked or activated via keyboard.
54
+ * // event.detail is { tabId: string } -- the tab-id of the newly selected tab.
55
+ * const [selectedTab, setSelectedTab] = useState("overview");
56
+ *
57
+ * <WmTabList selectedTab={selectedTab} onWmTabSelected={(e) => setSelectedTab(e.detail.tabId)}>
58
+ * <WmTabItem tabId="overview">Overview</WmTabItem>
59
+ * <WmTabItem tabId="details">Details</WmTabItem>
60
+ * <WmTabItem tabId="history">History</WmTabItem>
61
+ * </WmTabList>
62
+ * <WmTabPanel tabId="overview"><p>Overview content</p></WmTabPanel>
63
+ * <WmTabPanel tabId="details"><p>Details content</p></WmTabPanel>
64
+ * <WmTabPanel tabId="history"><p>History content</p></WmTabPanel>
65
+ *
66
+ * @example {html} Single shared panel (content rendered conditionally)
67
+ * <wm-tab-list custom-background="dark">
68
+ * <wm-tab-item tab-id="summary">Summary</wm-tab-item>
69
+ * <wm-tab-item tab-id="activity">Activity</wm-tab-item>
70
+ * </wm-tab-list>
71
+ * <wm-tab-panel tab-id="summary">
72
+ * <!-- app renders content here based on the active tab -->
73
+ * </wm-tab-panel>
74
+ *
75
+ * @example {react} Single shared panel (content rendered conditionally)
76
+ * // One wm-tab-panel shared by all tabs -- ARIA attributes update automatically.
77
+ * // Render content conditionally based on selectedTab.
78
+ * const [selectedTab, setSelectedTab] = useState("summary");
79
+ *
80
+ * <WmTabList
81
+ * customBackground="dark"
82
+ * selectedTab={selectedTab}
83
+ * onWmTabSelected={(e) => setSelectedTab(e.detail.tabId)}
84
+ * >
85
+ * <WmTabItem tabId="summary">Summary</WmTabItem>
86
+ * <WmTabItem tabId="activity">Activity</WmTabItem>
87
+ * </WmTabList>
88
+ * <WmTabPanel tabId="summary">
89
+ * {selectedTab === "summary" && <p>Summary content</p>}
90
+ * {selectedTab === "activity" && <p>Activity content</p>}
91
+ * </WmTabPanel>
92
+ *
93
+ * @requiredSetup
94
+ * - Handle `wmTabSelected` on the list -- it is declared on wm-tab-item and bubbles -- and write
95
+ * `event.detail.tabId` to `selected-tab`.
96
+ * - Slot a wm-tab-item per tab, and render a wm-tab-panel for each one as its content container.
97
+ * - Give each wm-tab-item `tab-id` the same value as its wm-tab-panel `tab-id`. A mismatch fails
98
+ * silently: the tab highlights and no panel appears.
99
+ *
100
+ */
101
+ export class TabList {
102
+ constructor() {
103
+ this.debouncedUpdateContainerState = debounce(() => {
104
+ this.updateContainerFade();
105
+ this.updateArrowVisibility();
106
+ }, 16);
107
+ this.customBackground = undefined;
108
+ this.selectedTab = undefined;
109
+ this.announcement = "";
110
+ this.containerFadeLeft = false;
111
+ this.containerFadeRight = false;
112
+ this.scrollArrowsVisible = false;
113
+ }
114
+ get tabItems() {
115
+ return Array.from(this.el.querySelectorAll("wm-tab-item"));
116
+ }
117
+ get selectedTabItem() {
118
+ return this.tabItems.filter((t) => t.selected)[0];
119
+ }
120
+ getLinkEl(tab) {
121
+ return tab.shadowRoot.querySelector("a");
122
+ }
123
+ get panels() {
124
+ const allPanels = Array.from(document.querySelectorAll("wm-tab-panel"));
125
+ const tabIds = this.tabItems.map((t) => t.tabId);
126
+ return allPanels.filter((p) => tabIds.includes(p.tabId));
127
+ }
128
+ setSelected(id) {
129
+ this.tabItems.map((tab) => (tab.selected = tab.tabId === id));
130
+ const singlePanel = this.panels.length === 1 && this.tabItems.length > 1;
131
+ if (singlePanel) {
132
+ /**
133
+ * If the app conditionally renders content in one single tab panel rather than allocating the content to discrete panels, then the tab panels aria references needs to update whenever a new tab item is selected.
134
+ */
135
+ this.setAttributesOnPanel(this.panels[0], this.selectedTabItem);
136
+ this.panels[0].active = true;
137
+ }
138
+ else {
139
+ this.panels.map((panel) => (panel.active = panel.tabId === id));
140
+ }
141
+ this.handleTabFocused(this.selectedTabItem);
142
+ }
143
+ componentWillLoad() {
144
+ this.el.focus = () => {
145
+ // in addition to delegatesFocus, we need to highjack the focus method to send focus to the selected tab-item
146
+ this.selectedTabItem && this.selectedTabItem.focus({ preventScroll: true });
147
+ };
148
+ }
149
+ componentDidLoad() {
150
+ const selectedTab = this.selectedTab || this.tabItems[0].tabId;
151
+ this.setSelected(selectedTab);
152
+ this.updateArrowVisibility();
153
+ this.tabContainerEl.addEventListener("scroll", this.debouncedUpdateContainerState);
154
+ const resizeObserver = new ResizeObserver(() => this.debouncedUpdateContainerState());
155
+ resizeObserver.observe(this.el);
156
+ requestAnimationFrame(() => {
157
+ // Wait for layout to complete before measuring and scrolling initial tab into view
158
+ this.handleTabFocused(this.selectedTabItem);
159
+ });
160
+ }
161
+ tabItemLoaded(ev) {
162
+ this.setAriaOnPanelAndTab(ev.target);
163
+ }
164
+ wmTabFocused(ev) {
165
+ this.handleTabFocused(ev.detail.tabItem);
166
+ }
167
+ setAriaOnPanelAndTab(tab) {
168
+ const panel = this.panels.find((p) => p.tabId === tab.tabId);
169
+ // If there's no panel, check for case where content is conditionally rendered in one panel, in which case attributes on all tabs should point to this single panel.
170
+ if (!panel) {
171
+ if (this.panels.length === 1) {
172
+ this.setAttributesOnTab(tab, this.panels[0]);
173
+ }
174
+ }
175
+ else {
176
+ // Otherwise, set attributes on each tab item that loads and its associated panel
177
+ this.setAttributesOnPanel(panel, tab);
178
+ this.setAttributesOnTab(tab, panel);
179
+ }
180
+ }
181
+ setAttributesOnTab(tab, panel) {
182
+ const link = this.getLinkEl(tab);
183
+ if (link) {
184
+ link.setAttribute("href", `#${panel.id}`);
185
+ }
186
+ }
187
+ removeAttributesOnTab(tab) {
188
+ const link = this.getLinkEl(tab);
189
+ if (link) {
190
+ link.removeAttribute("href");
191
+ }
192
+ }
193
+ setAttributesOnPanel(panel, tab) {
194
+ const link = this.getLinkEl(tab);
195
+ if (link) {
196
+ panel.setAttribute("aria-labelledby", link.id);
197
+ panel.setAttribute("tab-id", tab.tabId);
198
+ }
199
+ }
200
+ handleKeydown(ev) {
201
+ const key = ev.detail.key;
202
+ let index = this.tabItems.indexOf(ev.detail.tabItem);
203
+ // focusing panel on down arrow
204
+ if (key === "ArrowDown") {
205
+ const activePanel = this.panels.filter((p) => p.active)[0];
206
+ activePanel && activePanel.focus();
207
+ }
208
+ else if (key === "ArrowLeft" || key === "ArrowRight") {
209
+ // focusing prev/next tab item on right/left arrow
210
+ if (key) {
211
+ index = key === "ArrowLeft" ? index - 1 : index + 1;
212
+ }
213
+ if (index < 0) {
214
+ index = this.tabItems.length - 1;
215
+ }
216
+ else if (index === this.tabItems.length) {
217
+ index = 0;
218
+ }
219
+ const tabToFocus = this.tabItems[index];
220
+ this.getLinkEl(tabToFocus).focus({ preventScroll: true });
221
+ }
222
+ }
223
+ handleTabFocused(tabItem, alignment = "auto") {
224
+ // Calculate and apply scroll position
225
+ const targetScrollLeft = this.calculateScrollPositionForTab(tabItem, alignment);
226
+ this.tabContainerEl.scrollTo({ left: targetScrollLeft, behavior: "smooth" });
227
+ }
228
+ calculateScrollPositionForTab(tabItem, alignment = "auto") {
229
+ const containerRect = this.tabContainerEl.getBoundingClientRect();
230
+ const containerScrollLeft = this.tabContainerEl.scrollLeft;
231
+ const tabRect = tabItem.getBoundingClientRect();
232
+ const tabLeft = containerScrollLeft + (tabRect.left - containerRect.left);
233
+ const tabRight = tabLeft + tabRect.width;
234
+ // Explicit alignment
235
+ if (alignment === "left") {
236
+ return tabLeft; // Snap to left edge
237
+ }
238
+ if (alignment === "right") {
239
+ return Math.max(0, tabRight - containerRect.width); // Snap to right edge
240
+ }
241
+ // Auto alignment
242
+ const firstTab = this.tabItems[0];
243
+ const lastTab = this.tabItems[this.tabItems.length - 1];
244
+ if (tabItem === firstTab) {
245
+ return 0;
246
+ }
247
+ if (tabItem === lastTab) {
248
+ return Math.max(0, this.tabContainerEl.scrollWidth - containerRect.width);
249
+ }
250
+ if (tabLeft < containerScrollLeft) {
251
+ return tabLeft; // Left edge cut off, align left
252
+ }
253
+ if (tabRight > containerScrollLeft + containerRect.width) {
254
+ return tabRight - containerRect.width; // Right edge cut off, align right
255
+ }
256
+ return containerScrollLeft; // Fully visible, no scroll needed
257
+ }
258
+ updateContainerFade() {
259
+ const tolerance = 1; // 1px tolerance for floating-point precision
260
+ // Check if there's content scrolled out of view on each side
261
+ let shouldFadeLeft = this.tabContainerEl.scrollLeft > tolerance;
262
+ let shouldFadeRight = this.tabContainerEl.scrollLeft + this.tabContainerEl.clientWidth < this.tabContainerEl.scrollWidth - tolerance;
263
+ const focusedTab = this.tabItems.find((tab) => tab.matches(":focus-within"));
264
+ if (focusedTab) {
265
+ const containerRect = this.tabContainerEl.getBoundingClientRect();
266
+ const tabRect = focusedTab.getBoundingClientRect();
267
+ const isAtOrOverlappingLeft = tabRect.left <= containerRect.left + tolerance;
268
+ const isAtOrOverlappingRight = tabRect.right >= containerRect.right - tolerance;
269
+ if (isAtOrOverlappingLeft) {
270
+ shouldFadeLeft = false; // Don't fade left if focused tab is at/beyond left edge
271
+ }
272
+ if (isAtOrOverlappingRight) {
273
+ shouldFadeRight = false; // Don't fade right if focused tab is at/beyond right edge
274
+ }
275
+ }
276
+ this.containerFadeLeft = shouldFadeLeft;
277
+ this.containerFadeRight = shouldFadeRight;
278
+ }
279
+ updateArrowVisibility() {
280
+ const leftArrowEl = this.el.shadowRoot.querySelector(".left-arrow");
281
+ const rightArrowEl = this.el.shadowRoot.querySelector(".right-arrow");
282
+ const isScrollable = this.tabContainerEl.scrollWidth > this.tabContainerEl.clientWidth;
283
+ this.scrollArrowsVisible = isScrollable;
284
+ requestAnimationFrame(() => {
285
+ // Let arrows render before checking if they should be disabled
286
+ if (this.scrollArrowsVisible) {
287
+ const tolerance = 1; // 1px tolerance for floating-point precision
288
+ const canScrollLeft = this.tabContainerEl.scrollLeft > tolerance;
289
+ const canScrollRight = this.tabContainerEl.scrollLeft + this.tabContainerEl.clientWidth <
290
+ this.tabContainerEl.scrollWidth - tolerance;
291
+ leftArrowEl.classList.toggle("disabled", !canScrollLeft);
292
+ rightArrowEl.classList.toggle("disabled", !canScrollRight);
293
+ }
294
+ });
295
+ }
296
+ handleLeftArrowClick(ev) {
297
+ const buttonEl = ev.target;
298
+ if (buttonEl.classList.contains("disabled")) {
299
+ // If the arrow is disabled, take no action and announce reason
300
+ this.announce(intl.formatMessage({
301
+ id: "tabs.cannotScrollLeft",
302
+ defaultMessage: "No more tabs to the left",
303
+ description: "Announcement for button scrolling tab group.",
304
+ }));
305
+ return;
306
+ }
307
+ // Find the first tab that's partially or completely obscured on the left
308
+ const containerRect = this.tabContainerEl.getBoundingClientRect();
309
+ const containerLeft = containerRect.left;
310
+ let tabToFocus = null;
311
+ const reversedTabItems = this.tabItems.reverse();
312
+ reversedTabItems.forEach((tab) => {
313
+ if (!tabToFocus) {
314
+ const tabRect = tab.getBoundingClientRect();
315
+ if (tabRect.left < containerLeft - 1) {
316
+ tabToFocus = tab;
317
+ }
318
+ }
319
+ });
320
+ if (tabToFocus) {
321
+ this.handleTabFocused(tabToFocus, "right"); // Snap to right edge for page-scroll behavior
322
+ }
323
+ }
324
+ handleRightArrowClick(ev) {
325
+ const buttonEl = ev.target;
326
+ if (buttonEl.classList.contains("disabled")) {
327
+ this.announce(intl.formatMessage({
328
+ id: "tabs.cannotScrollRight",
329
+ defaultMessage: "No more tabs to the right",
330
+ description: "Announcement for button scrolling tab group.",
331
+ }));
332
+ return;
333
+ }
334
+ // Find the first tab that's partially or completely obscured on the right
335
+ const containerRect = this.tabContainerEl.getBoundingClientRect();
336
+ const containerRight = containerRect.right;
337
+ let tabToFocus = null;
338
+ this.tabItems.forEach((tab) => {
339
+ if (!tabToFocus) {
340
+ const tabRect = tab.getBoundingClientRect();
341
+ if (tabRect.right > containerRight + 1) {
342
+ tabToFocus = tab;
343
+ }
344
+ }
345
+ });
346
+ if (tabToFocus) {
347
+ this.handleTabFocused(tabToFocus, "left"); // Snap to left edge for page-scroll behavior
348
+ }
349
+ }
350
+ announce(message) {
351
+ // \u00A0 is a non-breaking space character, which causes the message to be read as a new one
352
+ if (this.liveRegionEl.textContent === message) {
353
+ message += "\u00A0";
354
+ }
355
+ this.announcement = message;
356
+ }
357
+ render() {
358
+ return (h(Host, { key: 'e5e70580b7b292940ae6f78b1a7e11b10c094816' }, h("div", { key: 'd4522bc80583555f1a30c75e75ed83746aaebf52', class: "component-wrapper" }, h("wm-button", { key: '302eefe25f531312166fc63be510e48153620bc7', class: `left-arrow ${this.scrollArrowsVisible ? "visible" : ""}`, "aria-controls": "tablist", customBackground: this.customBackground, buttonType: "navigational", icon: "#previous", tooltip: intl.formatMessage({
359
+ id: "tabs.showPreviousTabs",
360
+ defaultMessage: "Show previous tabs",
361
+ description: "Tooltip for button scrolling tab group.",
362
+ }), onClick: (ev) => this.handleLeftArrowClick(ev) }), h("ul", { key: '0a8a050783bb051d40fa837a4715662b2d1d7455', id: "tablist", ref: (el) => (this.tabContainerEl = el), class: `tabcontainer ${this.customBackground || ""} ${this.containerFadeLeft ? "fade-left" : ""} ${this.containerFadeRight ? "fade-right" : ""}`, role: "tablist", tabIndex: -1 }, h("slot", { key: '02a0d8d6d5674b4512287987944d21a432357ac7' })), h("wm-button", { key: 'c96ff969e596c0ba93f90ab4dacb9bcd95587e36', class: `right-arrow ${this.scrollArrowsVisible ? "visible" : ""}`, "aria-controls": "tablist", customBackground: this.customBackground, buttonType: "navigational", icon: "#next", tooltip: intl.formatMessage({
363
+ id: "tabs.showNextTabs",
364
+ defaultMessage: "Show next tabs",
365
+ description: "Tooltip for button scrolling tab group.",
366
+ }), onClick: (ev) => this.handleRightArrowClick(ev) }), h("span", { key: '4925ff672c42cbe5c69a5ad33ee4812c93cf2f00', "aria-live": "assertive", class: "sr-only", ref: (el) => (this.liveRegionEl = el) }, this.announcement))));
367
+ }
368
+ static get is() { return "wm-tab-list"; }
369
+ static get encapsulation() { return "shadow"; }
370
+ static get delegatesFocus() { return true; }
371
+ static get originalStyleUrls() {
372
+ return {
373
+ "$": ["wm-tab-list.scss"]
374
+ };
375
+ }
376
+ static get styleUrls() {
377
+ return {
378
+ "$": ["wm-tab-list.css"]
379
+ };
380
+ }
381
+ static get properties() {
382
+ return {
383
+ "customBackground": {
384
+ "type": "string",
385
+ "mutable": false,
386
+ "complexType": {
387
+ "original": "\"dark\" | \"\"",
388
+ "resolved": "\"\" | \"dark\" | undefined",
389
+ "references": {}
390
+ },
391
+ "required": false,
392
+ "optional": true,
393
+ "docs": {
394
+ "tags": [{
395
+ "name": "description",
396
+ "text": "Sets the visual theme. Pass `\"dark\"` for the dark theme; omit for the\ndefault light theme."
397
+ }],
398
+ "text": ""
399
+ },
400
+ "attribute": "custom-background",
401
+ "reflect": false
402
+ },
403
+ "selectedTab": {
404
+ "type": "string",
405
+ "mutable": false,
406
+ "complexType": {
407
+ "original": "string",
408
+ "resolved": "string | undefined",
409
+ "references": {}
410
+ },
411
+ "required": false,
412
+ "optional": true,
413
+ "docs": {
414
+ "tags": [{
415
+ "name": "description",
416
+ "text": "The `tab-id` of the currently active tab. Update this prop in response to\n`wmTabSelected` to switch tabs. Defaults to the first tab if not set."
417
+ }],
418
+ "text": ""
419
+ },
420
+ "attribute": "selected-tab",
421
+ "reflect": false
422
+ }
423
+ };
424
+ }
425
+ static get states() {
426
+ return {
427
+ "announcement": {},
428
+ "containerFadeLeft": {},
429
+ "containerFadeRight": {},
430
+ "scrollArrowsVisible": {}
431
+ };
432
+ }
433
+ static get elementRef() { return "el"; }
434
+ static get watchers() {
435
+ return [{
436
+ "propName": "selectedTab",
437
+ "methodName": "setSelected"
438
+ }];
439
+ }
440
+ static get listeners() {
441
+ return [{
442
+ "name": "tabItemLoaded",
443
+ "method": "tabItemLoaded",
444
+ "target": undefined,
445
+ "capture": false,
446
+ "passive": false
447
+ }, {
448
+ "name": "wmIntTabFocused",
449
+ "method": "wmTabFocused",
450
+ "target": undefined,
451
+ "capture": false,
452
+ "passive": false
453
+ }, {
454
+ "name": "keydownOnTabItem",
455
+ "method": "handleKeydown",
456
+ "target": undefined,
457
+ "capture": false,
458
+ "passive": false
459
+ }];
460
+ }
461
+ }