@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,794 @@
1
+ import { h, Host } from "@stencil/core";
2
+ import { getIconCodeFromName } from "../../global/interfaces";
3
+ import { generateId, hideTooltip, handleDisabledAttribute, showTooltip, toBool, triggerFormSubmit, } from "../../global/functions";
4
+ /**
5
+ * Interactive button element that triggers actions and workflows. Has seven visual
6
+ * types plus AI variants.
7
+ *
8
+ * @category Basic Controls
9
+ *
10
+ * @slot - Button label text. Required for all types. For `icononly` and `navigational`
11
+ * buttons, slotted text is not rendered visually but is used as the accessible name
12
+ * when no `tooltip` or `label-for-identical-buttons` is provided.
13
+ *
14
+ * @keyboardInteraction Enter - Fires a click event on the button (mirrors native button behavior).
15
+ *
16
+ * @accessibility
17
+ * `aria-label` resolution order (highest priority first):
18
+ * 1. `aria-label-passthrough`
19
+ * 2. `label-for-identical-buttons` (or `tooltip` for icononly/navigational types)
20
+ * 3. Nothing set — browser derives the label from visible text or slotted content
21
+ *
22
+ * `aria-expanded` — set via `aria-expanded-passthrough` (not directly on `<wm-button>`).
23
+ * `aria-haspopup="menu"` — applied automatically when the host element has an `aria-haspopup` attribute.
24
+ *
25
+ * @usageNotes
26
+ * - **primary**: Use sparingly — ideally once per page or section — for the single most
27
+ * important action.
28
+ * - **pairpositive / pairnegative**: Must always be used together for binary choices where
29
+ * neither option is preferred (e.g. Approve / Reject). Do not use one without the other.
30
+ * - **AI variants** (`primary-ai`, `secondary-ai`, etc.): Do not set the `icon` prop —
31
+ * the AI icon is applied automatically.
32
+ * - **icononly / navigational**: Both `icon` and `tooltip` are required.
33
+ * - Do not use slotted text (emoji, Unicode glyphs, or characters styled to look like an icon)
34
+ * to simulate an icon. Use the `icon` prop so the icon is rendered as a proper SVG/MDI glyph
35
+ * with correct sizing, color, and accessibility treatment.
36
+ *
37
+ * @example {html} Primary button — the preferred action on a page or section. Use once per context.
38
+ * <wm-button button-type="primary">Save changes</wm-button>
39
+ *
40
+ * @example {react} Primary button
41
+ * <WmButton buttonType="primary" onClick={handleSave}>Save changes</WmButton>
42
+ *
43
+ * @example {html} Primary and secondary pair — the most common pattern.
44
+ * <wm-button button-type="secondary">Cancel</wm-button>
45
+ * <wm-button button-type="primary">Save changes</wm-button>
46
+ *
47
+ * @example {react} Primary and secondary pair
48
+ * <WmButton buttonType="secondary" onClick={handleCancel}>Cancel</WmButton>
49
+ * <WmButton buttonType="primary" onClick={handleSave}>Save changes</WmButton>
50
+ *
51
+ * @example {html} Text-only button with icon
52
+ * <wm-button button-type="textonly" icon="#edit">Edit</wm-button>
53
+ *
54
+ * @example {react} Text-only button with icon
55
+ * <WmButton buttonType="textonly" icon="#edit">Edit</WmButton>
56
+ *
57
+ * @example {html} Icon-only button — icon, tooltip, and slot text are all required.
58
+ * <wm-button button-type="icononly" icon="#edit" tooltip="Edit record">Edit record</wm-button>
59
+ *
60
+ * @example {react} Icon-only button
61
+ * <WmButton buttonType="icononly" icon="#edit" tooltip="Edit record">Edit record</WmButton>
62
+ *
63
+ * @example {html} Icon-only button with local SVG sprite
64
+ * <wm-button button-type="icononly" icon="/assets/icons.svg#pencil" tooltip="Edit">Edit</wm-button>
65
+ *
66
+ * @example {html} Navigational button — for back/forward navigation in flyout panels.
67
+ * <wm-button button-type="navigational" icon="#back" tooltip="Back">Back</wm-button>
68
+ *
69
+ * @example {react} Navigational button
70
+ * <WmButton buttonType="navigational" icon="#back" tooltip="Back">Back</WmButton>
71
+ *
72
+ * @example {html} Positive/negative pair — binary choice, neither option preferred. Must be used as a pair.
73
+ * <wm-button button-type="pairnegative">Reject</wm-button>
74
+ * <wm-button button-type="pairpositive">Approve</wm-button>
75
+ *
76
+ * @example {react} Positive/negative pair
77
+ * <WmButton buttonType="pairnegative" onClick={handleReject}>Reject</WmButton>
78
+ * <WmButton buttonType="pairpositive" onClick={handleApprove}>Approve</WmButton>
79
+ *
80
+ * @example {html} Permanently delete — danger styling for irreversible destructive actions only.
81
+ * <wm-button button-type="primary" permanently-delete="true">Delete account</wm-button>
82
+ *
83
+ * @example {react} Permanently delete
84
+ * <WmButton buttonType="primary" permanentlyDelete={true}>Delete account</WmButton>
85
+ *
86
+ * @example {html} Disabled button
87
+ * <wm-button button-type="primary" disabled="true">Save</wm-button>
88
+ *
89
+ * @example {react} Disabled button
90
+ * <WmButton buttonType="primary" disabled={true}>Save</WmButton>
91
+ *
92
+ * @example {html} Form submit button — use is-submit instead of a native type=submit button.
93
+ * <form>
94
+ * <wm-button button-type="primary" is-submit="true">Submit</wm-button>
95
+ * </form>
96
+ *
97
+ * @example {react} Form submit button
98
+ * <WmButton buttonType="primary" isSubmit={true}>Submit</WmButton>
99
+ *
100
+ * @example {html} Button on dark background
101
+ * <wm-button button-type="secondary" custom-background="dark">Continue</wm-button>
102
+ *
103
+ * @example {react} Button on dark background
104
+ * <WmButton buttonType="secondary" customBackground="dark">Continue</WmButton>
105
+ *
106
+ * @example {html} AI primary button — icon is applied automatically, do not set icon prop.
107
+ * <wm-button button-type="primary-ai">Generate summary</wm-button>
108
+ *
109
+ * @example {react} AI primary button
110
+ * <WmButton buttonType="primary-ai">Generate summary</WmButton>
111
+ *
112
+ * @example {html} Rotated icon — reuse directional icons with icon-rotate.
113
+ * <wm-button button-type="icononly" icon="#back" icon-rotate="180" tooltip="Forward">Forward</wm-button>
114
+ *
115
+ * @example {react} Rotated icon
116
+ * <WmButton buttonType="icononly" icon="#back" iconRotate={180} tooltip="Forward">Forward</WmButton>
117
+ *
118
+ * @example {html} Identical buttons — use label-for-identical-buttons to disambiguate for screen readers.
119
+ * <wm-button button-type="secondary" label-for-identical-buttons="Edit course: Introduction to Biology">Edit</wm-button>
120
+ * <wm-button button-type="secondary" label-for-identical-buttons="Edit course: Advanced Chemistry">Edit</wm-button>
121
+ *
122
+ * @example {react} Identical buttons
123
+ * <WmButton buttonType="secondary" labelForIdenticalButtons="Edit course: Introduction to Biology">Edit</WmButton>
124
+ * <WmButton buttonType="secondary" labelForIdenticalButtons="Edit course: Advanced Chemistry">Edit</WmButton>
125
+ *
126
+ */
127
+ export class Button {
128
+ constructor() {
129
+ this.id = generateId();
130
+ this.ariaPopup = false;
131
+ this.disabled = false;
132
+ this.buttonType = "secondary";
133
+ this.icon = undefined;
134
+ this.iconSize = undefined;
135
+ this.iconRotate = undefined;
136
+ this.iconFlip = undefined;
137
+ this.tooltip = undefined;
138
+ this.labelForIdenticalButtons = undefined;
139
+ this.tooltipPosition = "bottom-right";
140
+ this.permanentlyDelete = false;
141
+ this.textWrap = true;
142
+ this.customBackground = undefined;
143
+ this.isSubmit = false;
144
+ this.ariaLabelPassthrough = undefined;
145
+ this.ariaExpandedPassthrough = undefined;
146
+ this.isTabbing = false;
147
+ }
148
+ get isDisabled() {
149
+ // string "false" needs to be treated as bool False because react wrappers convert bool to string.
150
+ return toBool(this.disabled);
151
+ }
152
+ get isTruncated() {
153
+ return !!this.buttonEl && this.buttonType === "textonly" && this.buttonEl.offsetWidth < this.buttonEl.scrollWidth;
154
+ }
155
+ get isAriaExpanded() {
156
+ // string "false" needs to be treated as bool False because react wrappers convert bool to string.
157
+ if (this.ariaExpandedPassthrough === undefined)
158
+ return undefined;
159
+ return toBool(this.ariaExpandedPassthrough);
160
+ }
161
+ get hasTooltip() {
162
+ // tooltip is only rendered for icononly and navigational types, or if the button text is truncated
163
+ return ["icononly", "navigational", "icononly-ai", "navigational-ai"].includes(this.buttonType) || this.isTruncated;
164
+ }
165
+ get buttonClasses() {
166
+ let classes = "wm-button";
167
+ classes += this.permanentlyDelete ? " -permanentlydelete" : "";
168
+ // Handle AI variants by adding both base and ai classes
169
+ if (this.buttonType.endsWith("-ai")) {
170
+ const baseType = this.buttonType.replace("-ai", "");
171
+ classes += ` -${baseType} ai`;
172
+ }
173
+ else {
174
+ classes += this.buttonType ? ` -${this.buttonType}` : " -secondary";
175
+ }
176
+ classes += this.textWrap ? "" : " nowrap";
177
+ classes += this.isTabbing ? " user-is-tabbing" : "";
178
+ classes += this.isTruncated ? " -truncated" : "";
179
+ classes += this.customBackground === "dark" ? " dark" : "";
180
+ return classes;
181
+ }
182
+ toggleTabbingOn() {
183
+ this.isTabbing = true;
184
+ }
185
+ toggleTabbingOff() {
186
+ this.isTabbing = false;
187
+ }
188
+ // we need to listen for scroll events during the capture phase because they do not bubble up
189
+ // there can be layouts where the main content has 100vh and overflows
190
+ // in these cases window will register no scroll events unless we catch on they way down
191
+ handleScroll() {
192
+ hideTooltip();
193
+ }
194
+ validateType(newValue) {
195
+ const valid = [
196
+ "primary",
197
+ "secondary",
198
+ "textonly",
199
+ "icononly",
200
+ "navigational",
201
+ "selector",
202
+ "selector-primary",
203
+ "pairpositive",
204
+ "pairnegative",
205
+ "primary-ai",
206
+ "secondary-ai",
207
+ "textonly-ai",
208
+ "icononly-ai",
209
+ "navigational-ai",
210
+ ].includes(newValue);
211
+ if (!valid) {
212
+ this.buttonType = "secondary";
213
+ }
214
+ this.validateIcon();
215
+ }
216
+ updateIcon() {
217
+ this.icon = getIconCodeFromName(this.icon);
218
+ }
219
+ handleDisabledChange() {
220
+ handleDisabledAttribute(this.el, this.isDisabled);
221
+ }
222
+ validateIcon() {
223
+ switch (this.buttonType) {
224
+ case "icononly":
225
+ case "navigational":
226
+ // if the style is icononly or navigational...
227
+ // - an icon must be provided
228
+ if (!this.icon) {
229
+ console.error("wm-button should have a valid 'icon' property when button-type is set to 'icononly' or 'navigational'.");
230
+ }
231
+ // - if no tooltip text was passed and we couldn't generate one, throw an error
232
+ if (!this.tooltip) {
233
+ console.error("wm-button should have a valid 'tooltip' property when button-type is set to 'icononly' or 'navigational'.");
234
+ }
235
+ break;
236
+ case "pairpositive":
237
+ this.icon = "f12c";
238
+ break;
239
+ case "pairnegative":
240
+ this.icon = "f739";
241
+ break;
242
+ }
243
+ }
244
+ handleKeydown(ev) {
245
+ switch (ev.key) {
246
+ case "Enter":
247
+ ev.preventDefault();
248
+ if (!this.isDisabled) {
249
+ this.el.click();
250
+ }
251
+ break;
252
+ }
253
+ }
254
+ handleMouseEnter(ev) {
255
+ if (this.hasTooltip) {
256
+ let tooltipText = "";
257
+ if (this.isTruncated && this.el.textContent) {
258
+ // when truncated, tooltip text is the button's content
259
+ tooltipText = this.el.textContent;
260
+ }
261
+ else if (this.tooltip) {
262
+ // otherwise it is the tooltip property if present
263
+ tooltipText = this.tooltip;
264
+ }
265
+ showTooltip(this.tooltipPosition, ev.target, tooltipText);
266
+ }
267
+ }
268
+ handleFocus(ev) {
269
+ if (this.hasTooltip && this.isTabbing) {
270
+ let tooltipText = "";
271
+ if (this.isTruncated && this.el.textContent) {
272
+ // when truncated, tooltip text is the button's content
273
+ tooltipText = this.el.textContent;
274
+ }
275
+ else if (this.tooltip) {
276
+ // otherwise it is the tooltip property if present
277
+ tooltipText = this.tooltip;
278
+ }
279
+ showTooltip(this.tooltipPosition, ev.target, tooltipText);
280
+ }
281
+ }
282
+ /**
283
+ * Register CSS custom properties for AI gradient animations
284
+ * These need to be registered in JS since @property doesn't work in shadow DOM
285
+ */
286
+ registerCSSProperties() {
287
+ if (typeof CSS !== "undefined" && "registerProperty" in CSS) {
288
+ try {
289
+ CSS.registerProperty({
290
+ name: "--ai-gradient-start",
291
+ syntax: "<color>",
292
+ inherits: false,
293
+ initialValue: "#2779C8",
294
+ });
295
+ CSS.registerProperty({
296
+ name: "--ai-gradient-end",
297
+ syntax: "<color>",
298
+ inherits: false,
299
+ initialValue: "#6259C4",
300
+ });
301
+ CSS.registerProperty({
302
+ name: "--secondary-button-fill",
303
+ syntax: "<color>",
304
+ inherits: false,
305
+ initialValue: "#FFFFFF",
306
+ });
307
+ CSS.registerProperty({
308
+ name: "--wmbutton-percent-1",
309
+ syntax: "<percentage>",
310
+ inherits: false,
311
+ initialValue: "0%",
312
+ });
313
+ CSS.registerProperty({
314
+ name: "--wmbutton-percent-2",
315
+ syntax: "<percentage>",
316
+ inherits: false,
317
+ initialValue: "70.19%",
318
+ });
319
+ CSS.registerProperty({
320
+ name: "--wmbutton-percent-3",
321
+ syntax: "<percentage>",
322
+ inherits: false,
323
+ initialValue: "-50%",
324
+ });
325
+ }
326
+ catch (e) {
327
+ // Properties might already be registered, or CSS.registerProperty might not be supported
328
+ // This is fine, the animations will still work but might be less smooth
329
+ }
330
+ }
331
+ }
332
+ componentWillLoad() {
333
+ this.registerCSSProperties();
334
+ this.validateType(this.buttonType);
335
+ if (this.icon) {
336
+ this.icon = getIconCodeFromName(this.icon);
337
+ }
338
+ handleDisabledAttribute(this.el, this.isDisabled);
339
+ }
340
+ componentDidLoad() {
341
+ if (document.body.classList.contains("wmcl-user-is-tabbing")) {
342
+ this.toggleTabbingOn();
343
+ }
344
+ this.isSubmit && this.el.addEventListener("click", () => triggerFormSubmit(this.el.closest("form")));
345
+ this.ariaPopup = !!this.el.getAttribute("aria-haspopup");
346
+ }
347
+ getAriaLabel() {
348
+ if (this.ariaLabelPassthrough)
349
+ return this.ariaLabelPassthrough;
350
+ if (this.buttonType === "icononly" ||
351
+ this.buttonType === "navigational" ||
352
+ this.buttonType === "icononly-ai" ||
353
+ this.buttonType === "navigational-ai") {
354
+ return this.labelForIdenticalButtons || this.tooltip;
355
+ }
356
+ if (this.labelForIdenticalButtons) {
357
+ return this.labelForIdenticalButtons;
358
+ }
359
+ }
360
+ renderIcon() {
361
+ this.iconSize && this.el.style.setProperty("--icon-size", this.iconSize);
362
+ let transformStyle = "";
363
+ transformStyle += this.iconRotate ? `rotate(${this.iconRotate}deg)` : "";
364
+ transformStyle += this.iconFlip === "horizontal" ? `scaleX(-1)` : "";
365
+ transformStyle += this.iconFlip === "vertical" ? `scaleY(-1)` : "";
366
+ const iconStyles = Object.assign({}, ((this.iconRotate || this.iconFlip) && { transform: transformStyle }));
367
+ if (this.icon.match(/^#/)) {
368
+ // Icon ID
369
+ return h("span", { class: `svg-icon svg-${this.icon.slice(1)}`, style: iconStyles });
370
+ }
371
+ else if (this.icon.match(/^\/\S*[#]\S*/)) {
372
+ // starts with /, any number of non-whitespace characters, followed by #, followed by any non-whitespace characters
373
+ // Relative Path & Symbol
374
+ return (h("svg", { xmlns: "http://www.w3.org/2000/svg", class: "svg-icon", style: Object.assign(Object.assign({}, iconStyles), { "--icon-fill": "currentColor" }), fill: "currentColor" }, h("use", { href: this.icon })));
375
+ }
376
+ else {
377
+ // MDI
378
+ return (h("span", { class: "mdi", style: iconStyles, "aria-hidden": "true" }, String.fromCodePoint(parseInt(`0x${this.icon}`))));
379
+ }
380
+ }
381
+ render() {
382
+ return (h(Host, { key: 'd196d0b439d6b73e37fc0f83e3867854bb47a22b', class: `${this.isDisabled ? "button-disabled" : ""} -${this.buttonType}` }, h("button", { key: '443dd1798281e68af26f2e5148bf25c61e498156', id: this.id, class: `${this.buttonClasses}`, disabled: this.isDisabled, ref: (el) => (this.buttonEl = el), "aria-label": this.getAriaLabel(), "aria-expanded": this.isAriaExpanded !== undefined ? this.isAriaExpanded.toString() : undefined, "aria-hasPopup": this.ariaPopup ? "menu" : null, onMouseEnter: (ev) => this.handleMouseEnter(ev), onMouseLeave: () => hideTooltip(), onFocus: (ev) => this.handleFocus(ev), onBlur: () => hideTooltip(), onClick: () => hideTooltip() }, this.icon && this.renderIcon(), !this.buttonType.startsWith("navigational") && !this.buttonType.startsWith("icononly") && (h("span", { key: 'acca27d3cc39be5845259b78958f1e130de2e508', class: "button-text" }, h("slot", { key: '7bb49f66e9e0716b85c86ac161df77727c9a92de' }))), (this.buttonType == "selector" || this.buttonType == "selector-primary") && (h("div", { key: '101efe505a3883988ca0c5352301f44b2ee5d177', class: "selector-icon svg-icon svg-expand-more" })))));
383
+ }
384
+ static get is() { return "wm-button"; }
385
+ static get encapsulation() { return "shadow"; }
386
+ static get delegatesFocus() { return true; }
387
+ static get originalStyleUrls() {
388
+ return {
389
+ "$": ["wm-button.scss"]
390
+ };
391
+ }
392
+ static get styleUrls() {
393
+ return {
394
+ "$": ["wm-button.css"]
395
+ };
396
+ }
397
+ static get properties() {
398
+ return {
399
+ "disabled": {
400
+ "type": "boolean",
401
+ "mutable": false,
402
+ "complexType": {
403
+ "original": "boolean",
404
+ "resolved": "boolean",
405
+ "references": {}
406
+ },
407
+ "required": false,
408
+ "optional": false,
409
+ "docs": {
410
+ "tags": [{
411
+ "name": "description",
412
+ "text": "Disables the button, preventing interaction and applying disabled styling."
413
+ }, {
414
+ "name": "default",
415
+ "text": "false"
416
+ }],
417
+ "text": ""
418
+ },
419
+ "attribute": "disabled",
420
+ "reflect": true,
421
+ "defaultValue": "false"
422
+ },
423
+ "buttonType": {
424
+ "type": "string",
425
+ "mutable": true,
426
+ "complexType": {
427
+ "original": "validButtonTypes",
428
+ "resolved": "\"icononly\" | \"icononly-ai\" | \"navigational\" | \"navigational-ai\" | \"pairnegative\" | \"pairpositive\" | \"primary\" | \"primary-ai\" | \"secondary\" | \"secondary-ai\" | \"selector\" | \"selector-primary\" | \"textonly\" | \"textonly-ai\"",
429
+ "references": {
430
+ "validButtonTypes": {
431
+ "location": "import",
432
+ "path": "../../global/interfaces",
433
+ "id": "src/global/interfaces.ts::validButtonTypes"
434
+ }
435
+ }
436
+ },
437
+ "required": false,
438
+ "optional": false,
439
+ "docs": {
440
+ "tags": [{
441
+ "name": "description",
442
+ "text": "Visual style of the button. 'primary' for the single preferred action (use sparingly, ideally once per page/section). 'secondary' for other actions, often alongside a primary. 'textonly' for low-emphasis actions. 'icononly' requires icon and tooltip. 'navigational' for icon-only back/forward navigation (e.g. flyout back button). 'pairpositive' and 'pairnegative' must be used together for binary choices (neither is preferred, e.g. Approve/Reject). AI variants apply AI styling automatically \u2014 do not set the icon property on AI types. 'selector' and 'selector-primary' are internal types used by wm-select \u2014 do not use directly."
443
+ }, {
444
+ "name": "default",
445
+ "text": "\"secondary\""
446
+ }],
447
+ "text": ""
448
+ },
449
+ "attribute": "button-type",
450
+ "reflect": false,
451
+ "defaultValue": "\"secondary\""
452
+ },
453
+ "icon": {
454
+ "type": "string",
455
+ "mutable": true,
456
+ "complexType": {
457
+ "original": "string",
458
+ "resolved": "string | undefined",
459
+ "references": {}
460
+ },
461
+ "required": false,
462
+ "optional": true,
463
+ "docs": {
464
+ "tags": [{
465
+ "name": "description",
466
+ "text": "Icon to display. Required when button-type is 'icononly' or 'navigational'. Formats: '#icon-name' for a commonly-used Ripple icon (e.g. '#edit', '#add-person'), '/path/to/file.svg#symbol-id' for a local SVG sprite symbol, or an MDI character code like 'f3eb' (deprecated). Do not set on AI button types \u2014 their icon is applied automatically."
467
+ }, {
468
+ "name": "conditionallyRequired",
469
+ "text": "when button-type is 'icononly' or 'navigational' (conditionallyRequired means that the prop is required, but only if the button-type is 'icononly' or 'navigational')"
470
+ }],
471
+ "text": ""
472
+ },
473
+ "attribute": "icon",
474
+ "reflect": true
475
+ },
476
+ "iconSize": {
477
+ "type": "string",
478
+ "mutable": false,
479
+ "complexType": {
480
+ "original": "string",
481
+ "resolved": "string | undefined",
482
+ "references": {}
483
+ },
484
+ "required": false,
485
+ "optional": true,
486
+ "docs": {
487
+ "tags": [{
488
+ "name": "description",
489
+ "text": "Change size of the icon to fine tune the visual rendering if it appears too large or small. Not\nintended for general sizing. Accepts any valid CSS size value, e.g. '22px' or '1.3rem'."
490
+ }],
491
+ "text": ""
492
+ },
493
+ "attribute": "icon-size",
494
+ "reflect": false
495
+ },
496
+ "iconRotate": {
497
+ "type": "number",
498
+ "mutable": false,
499
+ "complexType": {
500
+ "original": "number",
501
+ "resolved": "number | undefined",
502
+ "references": {}
503
+ },
504
+ "required": false,
505
+ "optional": true,
506
+ "docs": {
507
+ "tags": [{
508
+ "name": "description",
509
+ "text": "Rotates the icon by the given number of degrees. For use with the icon property."
510
+ }],
511
+ "text": ""
512
+ },
513
+ "attribute": "icon-rotate",
514
+ "reflect": false
515
+ },
516
+ "iconFlip": {
517
+ "type": "string",
518
+ "mutable": false,
519
+ "complexType": {
520
+ "original": "\"horizontal\" | \"vertical\"",
521
+ "resolved": "\"horizontal\" | \"vertical\" | undefined",
522
+ "references": {}
523
+ },
524
+ "required": false,
525
+ "optional": true,
526
+ "docs": {
527
+ "tags": [{
528
+ "name": "description",
529
+ "text": "Flips the icon along the specified axis. For use with the icon property."
530
+ }],
531
+ "text": ""
532
+ },
533
+ "attribute": "icon-flip",
534
+ "reflect": false
535
+ },
536
+ "tooltip": {
537
+ "type": "string",
538
+ "mutable": true,
539
+ "complexType": {
540
+ "original": "string",
541
+ "resolved": "string | undefined",
542
+ "references": {}
543
+ },
544
+ "required": false,
545
+ "optional": true,
546
+ "docs": {
547
+ "tags": [{
548
+ "name": "description",
549
+ "text": "Tooltip text displayed on hover."
550
+ }, {
551
+ "name": "conditionallyRequired",
552
+ "text": "when button-type is 'icononly' or 'navigational' (conditionallyRequired means that the prop is required, but only if the button-type is 'icononly' or 'navigational')"
553
+ }],
554
+ "text": ""
555
+ },
556
+ "attribute": "tooltip",
557
+ "reflect": true
558
+ },
559
+ "labelForIdenticalButtons": {
560
+ "type": "string",
561
+ "mutable": false,
562
+ "complexType": {
563
+ "original": "string",
564
+ "resolved": "string | undefined",
565
+ "references": {}
566
+ },
567
+ "required": false,
568
+ "optional": true,
569
+ "docs": {
570
+ "tags": [{
571
+ "name": "description",
572
+ "text": "Accessibility prop. Use ONLY when multiple buttons on the same page share identical visible text or identical tooltips. Set this to a more descriptive label for screen readers; leave the visible button text or tooltip unchanged. Sets aria-label to this value."
573
+ }, {
574
+ "name": "conditionallyRequired",
575
+ "text": "when multiple buttons on the same page share identical visible text or identical tooltips (conditionallyRequired means that the prop is required, but only if multiple buttons on the same page share identical visible text or identical tooltips)"
576
+ }],
577
+ "text": ""
578
+ },
579
+ "attribute": "label-for-identical-buttons",
580
+ "reflect": false
581
+ },
582
+ "tooltipPosition": {
583
+ "type": "string",
584
+ "mutable": false,
585
+ "complexType": {
586
+ "original": "TooltipPlacement",
587
+ "resolved": "\"bottom\" | \"bottom-left\" | \"bottom-right\" | \"left\" | \"right\" | \"top\" | \"top-left\" | \"top-right\"",
588
+ "references": {
589
+ "TooltipPlacement": {
590
+ "location": "import",
591
+ "path": "../../global/interfaces",
592
+ "id": "src/global/interfaces.ts::TooltipPlacement"
593
+ }
594
+ }
595
+ },
596
+ "required": false,
597
+ "optional": false,
598
+ "docs": {
599
+ "tags": [{
600
+ "name": "description",
601
+ "text": "Position of the tooltip relative to the button. If there is insufficient space at the specified position, the component repositions automatically."
602
+ }, {
603
+ "name": "default",
604
+ "text": "\"bottom-right\""
605
+ }],
606
+ "text": ""
607
+ },
608
+ "attribute": "tooltip-position",
609
+ "reflect": false,
610
+ "defaultValue": "\"bottom-right\""
611
+ },
612
+ "permanentlyDelete": {
613
+ "type": "boolean",
614
+ "mutable": false,
615
+ "complexType": {
616
+ "original": "boolean",
617
+ "resolved": "boolean | undefined",
618
+ "references": {}
619
+ },
620
+ "required": false,
621
+ "optional": true,
622
+ "docs": {
623
+ "tags": [{
624
+ "name": "description",
625
+ "text": "Applies danger/destructive styling to the button. Use sparingly and only for irreversible destructive actions (e.g. permanently deleting an account or record). Applied as a modifier \u2014 not a separate button-type."
626
+ }, {
627
+ "name": "default",
628
+ "text": "false"
629
+ }],
630
+ "text": ""
631
+ },
632
+ "attribute": "permanently-delete",
633
+ "reflect": false,
634
+ "defaultValue": "false"
635
+ },
636
+ "textWrap": {
637
+ "type": "boolean",
638
+ "mutable": false,
639
+ "complexType": {
640
+ "original": "boolean",
641
+ "resolved": "boolean",
642
+ "references": {}
643
+ },
644
+ "required": false,
645
+ "optional": false,
646
+ "docs": {
647
+ "tags": [{
648
+ "name": "description",
649
+ "text": "For 'textonly' buttons only. When false, text is truncated with an ellipsis and a tooltip reveals the full text on hover."
650
+ }, {
651
+ "name": "default",
652
+ "text": "true"
653
+ }],
654
+ "text": ""
655
+ },
656
+ "attribute": "text-wrap",
657
+ "reflect": false,
658
+ "defaultValue": "true"
659
+ },
660
+ "customBackground": {
661
+ "type": "string",
662
+ "mutable": false,
663
+ "complexType": {
664
+ "original": "string",
665
+ "resolved": "string | undefined",
666
+ "references": {}
667
+ },
668
+ "required": false,
669
+ "optional": true,
670
+ "docs": {
671
+ "tags": [{
672
+ "name": "description",
673
+ "text": "Set to 'dark' to render button styles appropriate for a dark background surface."
674
+ }],
675
+ "text": ""
676
+ },
677
+ "attribute": "custom-background",
678
+ "reflect": false
679
+ },
680
+ "isSubmit": {
681
+ "type": "boolean",
682
+ "mutable": false,
683
+ "complexType": {
684
+ "original": "boolean",
685
+ "resolved": "boolean",
686
+ "references": {}
687
+ },
688
+ "required": false,
689
+ "optional": false,
690
+ "docs": {
691
+ "tags": [{
692
+ "name": "description",
693
+ "text": "When true, the button submits its containing form. Equivalent to type=\"submit\" on a native button element."
694
+ }, {
695
+ "name": "default",
696
+ "text": "false"
697
+ }],
698
+ "text": ""
699
+ },
700
+ "attribute": "is-submit",
701
+ "reflect": false,
702
+ "defaultValue": "false"
703
+ },
704
+ "ariaLabelPassthrough": {
705
+ "type": "string",
706
+ "mutable": false,
707
+ "complexType": {
708
+ "original": "string",
709
+ "resolved": "string | undefined",
710
+ "references": {}
711
+ },
712
+ "required": false,
713
+ "optional": true,
714
+ "docs": {
715
+ "tags": [{
716
+ "name": "description",
717
+ "text": "Sets the button's `aria-label`. Takes priority over `label-for-identical-buttons` and over\nthe label automatically derived from `tooltip` for `icononly` and `navigational` buttons. Use\nthis prop instead of setting `aria-label` directly on `<wm-button>`."
718
+ }],
719
+ "text": ""
720
+ },
721
+ "attribute": "aria-label-passthrough",
722
+ "reflect": false
723
+ },
724
+ "ariaExpandedPassthrough": {
725
+ "type": "boolean",
726
+ "mutable": false,
727
+ "complexType": {
728
+ "original": "boolean",
729
+ "resolved": "boolean | undefined",
730
+ "references": {}
731
+ },
732
+ "required": false,
733
+ "optional": true,
734
+ "docs": {
735
+ "tags": [{
736
+ "name": "description",
737
+ "text": "Sets the button's `aria-expanded` attribute. Use on buttons that toggle a disclosure region,\nmenu, popover, or dialog. Use this prop instead of setting `aria-expanded` directly on\n`<wm-button>`."
738
+ }, {
739
+ "name": "default",
740
+ "text": "false"
741
+ }],
742
+ "text": ""
743
+ },
744
+ "attribute": "aria-expanded-passthrough",
745
+ "reflect": false
746
+ }
747
+ };
748
+ }
749
+ static get states() {
750
+ return {
751
+ "isTabbing": {}
752
+ };
753
+ }
754
+ static get elementRef() { return "el"; }
755
+ static get watchers() {
756
+ return [{
757
+ "propName": "buttonType",
758
+ "methodName": "validateType"
759
+ }, {
760
+ "propName": "icon",
761
+ "methodName": "updateIcon"
762
+ }, {
763
+ "propName": "disabled",
764
+ "methodName": "handleDisabledChange"
765
+ }];
766
+ }
767
+ static get listeners() {
768
+ return [{
769
+ "name": "wmUserIsTabbing",
770
+ "method": "toggleTabbingOn",
771
+ "target": "window",
772
+ "capture": false,
773
+ "passive": false
774
+ }, {
775
+ "name": "wmUserIsNotTabbing",
776
+ "method": "toggleTabbingOff",
777
+ "target": "window",
778
+ "capture": false,
779
+ "passive": false
780
+ }, {
781
+ "name": "scroll",
782
+ "method": "handleScroll",
783
+ "target": "window",
784
+ "capture": true,
785
+ "passive": true
786
+ }, {
787
+ "name": "keydown",
788
+ "method": "handleKeydown",
789
+ "target": undefined,
790
+ "capture": false,
791
+ "passive": false
792
+ }];
793
+ }
794
+ }