@watermarkinsights/ripple 5.30.0 → 5.31.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 (444) hide show
  1. package/dist/cjs/app-globals-df7ca137.js +103 -0
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/priv-calendar.cjs.entry.js +27 -27
  4. package/dist/cjs/priv-chart-popover-old.cjs.entry.js +2 -2
  5. package/dist/cjs/priv-chart-popover_2.cjs.entry.js +3 -3
  6. package/dist/cjs/priv-navigator-button.cjs.entry.js +1 -1
  7. package/dist/cjs/priv-navigator-item.cjs.entry.js +1 -1
  8. package/dist/cjs/priv-option-list.cjs.entry.js +1 -1
  9. package/dist/cjs/ripple.cjs.js +1 -1
  10. package/dist/cjs/wm-action-menu_2.cjs.entry.js +5 -4
  11. package/dist/cjs/wm-button.cjs.entry.js +1 -1
  12. package/dist/cjs/wm-chart-bar.cjs.entry.js +1 -1
  13. package/dist/cjs/wm-chart-column.cjs.entry.js +1 -1
  14. package/dist/cjs/wm-chart.cjs.entry.js +1 -1
  15. package/dist/cjs/wm-date-range.cjs.entry.js +25 -9
  16. package/dist/cjs/wm-datepicker.cjs.entry.js +37 -11
  17. package/dist/cjs/wm-file-list.cjs.entry.js +1 -1
  18. package/dist/cjs/wm-file.cjs.entry.js +1 -1
  19. package/dist/cjs/wm-flyout.cjs.entry.js +6 -1
  20. package/dist/cjs/wm-input.cjs.entry.js +1 -1
  21. package/dist/cjs/wm-line-chart.cjs.entry.js +1 -1
  22. package/dist/cjs/wm-modal-pss_3.cjs.entry.js +4 -4
  23. package/dist/cjs/wm-modal_3.cjs.entry.js +19 -4
  24. package/dist/cjs/wm-navigation_3.cjs.entry.js +4 -4
  25. package/dist/cjs/wm-navigator.cjs.entry.js +1 -1
  26. package/dist/cjs/wm-nested-select.cjs.entry.js +3 -3
  27. package/dist/cjs/wm-optgroup.cjs.entry.js +11 -1
  28. package/dist/cjs/wm-option_2.cjs.entry.js +5 -5
  29. package/dist/cjs/wm-pagination.cjs.entry.js +1 -1
  30. package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +2 -2
  31. package/dist/cjs/wm-search.cjs.entry.js +2 -2
  32. package/dist/cjs/wm-snackbar.cjs.entry.js +2 -2
  33. package/dist/cjs/wm-tab-item_3.cjs.entry.js +6 -6
  34. package/dist/cjs/wm-tag-input.cjs.entry.js +2 -2
  35. package/dist/cjs/wm-tag-option.cjs.entry.js +8 -0
  36. package/dist/cjs/wm-textarea.cjs.entry.js +1 -1
  37. package/dist/cjs/wm-timepicker.cjs.entry.js +14 -2
  38. package/dist/cjs/wm-toggletip.cjs.entry.js +3 -3
  39. package/dist/cjs/wm-uploader.cjs.entry.js +2 -2
  40. package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +7 -2
  41. package/dist/collection/components/charts/priv-chart-popover-old/priv-chart-popover-old.js +7 -2
  42. package/dist/collection/components/charts/wm-chart/wm-chart-slice.js +58 -6
  43. package/dist/collection/components/charts/wm-chart/wm-chart.js +139 -13
  44. package/dist/collection/components/charts/wm-chart-bar/wm-chart-bar.js +134 -7
  45. package/dist/collection/components/charts/wm-chart-column/wm-chart-column.js +102 -8
  46. package/dist/collection/components/charts/wm-chart-legend/wm-chart-legend.js +90 -8
  47. package/dist/collection/components/charts/wm-line-chart/wm-line-chart.js +153 -17
  48. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +63 -7
  49. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +85 -5
  50. package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js +52 -6
  51. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.css +47 -47
  52. package/dist/collection/components/datepickers/priv-calendar/priv-calendar.js +33 -29
  53. package/dist/collection/components/datepickers/wm-date-range.js +246 -29
  54. package/dist/collection/components/datepickers/wm-datepicker.js +254 -30
  55. package/dist/collection/components/selects/priv-option-list/priv-option-list.js +7 -1
  56. package/dist/collection/components/selects/wm-nested-select/wm-nested-select.js +193 -17
  57. package/dist/collection/components/selects/wm-optgroup/wm-optgroup.js +116 -11
  58. package/dist/collection/components/selects/wm-option/wm-option.js +153 -18
  59. package/dist/collection/components/selects/wm-select/wm-select.js +187 -21
  60. package/dist/collection/components/wm-action-menu/wm-action-menu.js +148 -12
  61. package/dist/collection/components/wm-button/wm-button.js +212 -18
  62. package/dist/collection/components/wm-file/wm-file.js +108 -14
  63. package/dist/collection/components/wm-file-list/wm-file-list.js +74 -2
  64. package/dist/collection/components/wm-flyout/wm-flyout.js +215 -16
  65. package/dist/collection/components/wm-input/wm-input.js +195 -20
  66. package/dist/collection/components/wm-menuitem/wm-menuitem.js +62 -5
  67. package/dist/collection/components/wm-modal/wm-modal-footer.js +63 -6
  68. package/dist/collection/components/wm-modal/wm-modal-header.js +34 -3
  69. package/dist/collection/components/wm-modal/wm-modal.js +181 -14
  70. package/dist/collection/components/wm-modal-pss/wm-modal-pss-footer.js +5 -1
  71. package/dist/collection/components/wm-modal-pss/wm-modal-pss-header.js +5 -1
  72. package/dist/collection/components/wm-modal-pss/wm-modal-pss.js +6 -2
  73. package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +37 -3
  74. package/dist/collection/components/wm-navigation/wm-navigation-item.js +47 -5
  75. package/dist/collection/components/wm-navigation/wm-navigation.js +54 -4
  76. package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +5 -1
  77. package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +5 -1
  78. package/dist/collection/components/wm-navigator/wm-navigator.js +102 -9
  79. package/dist/collection/components/wm-pagination/wm-pagination.js +106 -9
  80. package/dist/collection/components/wm-search/wm-search.js +182 -16
  81. package/dist/collection/components/wm-snackbar/wm-snackbar.js +96 -5
  82. package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +66 -10
  83. package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +96 -5
  84. package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +42 -6
  85. package/dist/collection/components/wm-tag-input/wm-tag-input.js +205 -17
  86. package/dist/collection/components/wm-tag-input/wm-tag-option/wm-tag-option.js +97 -12
  87. package/dist/collection/components/wm-textarea/wm-textarea.js +116 -13
  88. package/dist/collection/components/wm-timepicker/wm-timepicker.js +190 -16
  89. package/dist/collection/components/wm-toggletip/wm-toggletip.js +87 -8
  90. package/dist/collection/components/wm-uploader/wm-uploader.js +142 -14
  91. package/dist/collection/components/wm-wrapper/wm-wrapper.js +3 -0
  92. package/dist/collection/global/services/__mocks__/http-service.js +1 -1
  93. package/dist/docs/docs.d.ts +435 -0
  94. package/dist/docs/docs.json +13915 -0
  95. package/dist/docs/props-reference.json +2028 -0
  96. package/dist/docs/skill/index.md +32 -0
  97. package/dist/docs/skill/wm-action-menu.md +93 -0
  98. package/dist/docs/skill/wm-button.md +103 -0
  99. package/dist/docs/skill/wm-chart-bar.md +129 -0
  100. package/dist/docs/skill/wm-chart-column.md +96 -0
  101. package/dist/docs/skill/wm-chart-legend.md +67 -0
  102. package/dist/docs/skill/wm-chart-slice.md +55 -0
  103. package/dist/docs/skill/wm-chart.md +92 -0
  104. package/dist/docs/skill/wm-date-range.md +153 -0
  105. package/dist/docs/skill/wm-datepicker.md +134 -0
  106. package/dist/docs/skill/wm-file-list.md +97 -0
  107. package/dist/docs/skill/wm-file.md +78 -0
  108. package/dist/docs/skill/wm-flyout.md +174 -0
  109. package/dist/docs/skill/wm-input.md +126 -0
  110. package/dist/docs/skill/wm-line-chart.md +108 -0
  111. package/dist/docs/skill/wm-menuitem.md +72 -0
  112. package/dist/docs/skill/wm-modal-footer.md +73 -0
  113. package/dist/docs/skill/wm-modal-header.md +65 -0
  114. package/dist/docs/skill/wm-modal.md +137 -0
  115. package/dist/docs/skill/wm-navigation-hamburger.md +56 -0
  116. package/dist/docs/skill/wm-navigation-item.md +69 -0
  117. package/dist/docs/skill/wm-navigation.md +66 -0
  118. package/dist/docs/skill/wm-navigator.md +91 -0
  119. package/dist/docs/skill/wm-nested-select.md +149 -0
  120. package/dist/docs/skill/wm-optgroup.md +71 -0
  121. package/dist/docs/skill/wm-option.md +68 -0
  122. package/dist/docs/skill/wm-pagination.md +95 -0
  123. package/dist/docs/skill/wm-progress-indicator.md +49 -0
  124. package/dist/docs/skill/wm-progress-monitor.md +93 -0
  125. package/dist/docs/skill/wm-progress-slice.md +41 -0
  126. package/dist/docs/skill/wm-search.md +157 -0
  127. package/dist/docs/skill/wm-select.md +148 -0
  128. package/dist/docs/skill/wm-snackbar.md +101 -0
  129. package/dist/docs/skill/wm-tab-item.md +35 -0
  130. package/dist/docs/skill/wm-tab-list.md +112 -0
  131. package/dist/docs/skill/wm-tab-panel.md +33 -0
  132. package/dist/docs/skill/wm-tag-input.md +165 -0
  133. package/dist/docs/skill/wm-tag-option.md +59 -0
  134. package/dist/docs/skill/wm-textarea.md +94 -0
  135. package/dist/docs/skill/wm-timepicker.md +139 -0
  136. package/dist/docs/skill/wm-toggletip.md +92 -0
  137. package/dist/docs/skill/wm-uploader.md +129 -0
  138. package/dist/docs/skill/wm-wrapper.md +6 -0
  139. package/dist/docs/wm-action-menu.md +111 -0
  140. package/dist/docs/wm-button.md +137 -0
  141. package/dist/docs/wm-chart-bar.md +23 -0
  142. package/dist/docs/wm-chart-column.md +26 -0
  143. package/dist/docs/wm-chart-legend.md +31 -0
  144. package/dist/docs/wm-chart-slice.md +14 -0
  145. package/dist/docs/wm-chart.md +30 -0
  146. package/dist/docs/wm-date-range.md +215 -0
  147. package/dist/docs/wm-datepicker.md +210 -0
  148. package/dist/docs/wm-file-list.md +95 -0
  149. package/dist/docs/wm-file.md +34 -0
  150. package/dist/docs/wm-flyout.md +123 -0
  151. package/dist/docs/wm-input.md +120 -0
  152. package/dist/docs/wm-line-chart.md +32 -0
  153. package/dist/docs/wm-menuitem.md +38 -0
  154. package/dist/docs/wm-modal-footer.md +106 -0
  155. package/dist/docs/wm-modal-header.md +100 -0
  156. package/dist/docs/wm-modal.md +127 -0
  157. package/dist/docs/wm-navigation-hamburger.md +91 -0
  158. package/dist/docs/wm-navigation-item.md +98 -0
  159. package/dist/docs/wm-navigation.md +101 -0
  160. package/dist/docs/wm-navigator.md +99 -0
  161. package/dist/docs/wm-nested-select.md +107 -0
  162. package/dist/docs/wm-optgroup.md +28 -0
  163. package/dist/docs/wm-option.md +24 -0
  164. package/dist/docs/wm-pagination.md +94 -0
  165. package/dist/docs/wm-progress-indicator.md +23 -0
  166. package/dist/docs/wm-progress-monitor.md +27 -0
  167. package/dist/docs/wm-progress-slice.md +16 -0
  168. package/dist/docs/wm-search.md +119 -0
  169. package/dist/docs/wm-select.md +120 -0
  170. package/dist/docs/wm-snackbar.md +87 -0
  171. package/dist/docs/wm-tab-item.md +23 -0
  172. package/dist/docs/wm-tab-list.md +98 -0
  173. package/dist/docs/wm-tab-panel.md +18 -0
  174. package/dist/docs/wm-tag-input.md +123 -0
  175. package/dist/docs/wm-tag-option.md +33 -0
  176. package/dist/docs/wm-textarea.md +101 -0
  177. package/dist/docs/wm-timepicker.md +122 -0
  178. package/dist/docs/wm-toggletip.md +86 -0
  179. package/dist/docs/wm-uploader.md +114 -0
  180. package/dist/docs/wm-wrapper.md +7 -0
  181. package/dist/esm/app-globals-466ed44b.js +101 -0
  182. package/dist/esm/loader.js +1 -1
  183. package/dist/esm/priv-calendar.entry.js +27 -27
  184. package/dist/esm/priv-chart-popover-old.entry.js +2 -2
  185. package/dist/esm/priv-chart-popover_2.entry.js +3 -3
  186. package/dist/esm/priv-navigator-button.entry.js +1 -1
  187. package/dist/esm/priv-navigator-item.entry.js +1 -1
  188. package/dist/esm/priv-option-list.entry.js +1 -1
  189. package/dist/esm/ripple.js +1 -1
  190. package/dist/esm/wm-action-menu_2.entry.js +5 -4
  191. package/dist/esm/wm-button.entry.js +1 -1
  192. package/dist/esm/wm-chart-bar.entry.js +1 -1
  193. package/dist/esm/wm-chart-column.entry.js +1 -1
  194. package/dist/esm/wm-chart.entry.js +1 -1
  195. package/dist/esm/wm-date-range.entry.js +25 -9
  196. package/dist/esm/wm-datepicker.entry.js +37 -11
  197. package/dist/esm/wm-file-list.entry.js +1 -1
  198. package/dist/esm/wm-file.entry.js +1 -1
  199. package/dist/esm/wm-flyout.entry.js +6 -1
  200. package/dist/esm/wm-input.entry.js +1 -1
  201. package/dist/esm/wm-line-chart.entry.js +1 -1
  202. package/dist/esm/wm-modal-pss_3.entry.js +4 -4
  203. package/dist/esm/wm-modal_3.entry.js +19 -4
  204. package/dist/esm/wm-navigation_3.entry.js +4 -4
  205. package/dist/esm/wm-navigator.entry.js +1 -1
  206. package/dist/esm/wm-nested-select.entry.js +3 -3
  207. package/dist/esm/wm-optgroup.entry.js +11 -1
  208. package/dist/esm/wm-option_2.entry.js +5 -5
  209. package/dist/esm/wm-pagination.entry.js +1 -1
  210. package/dist/esm/wm-progress-indicator_3.entry.js +2 -2
  211. package/dist/esm/wm-search.entry.js +2 -2
  212. package/dist/esm/wm-snackbar.entry.js +2 -2
  213. package/dist/esm/wm-tab-item_3.entry.js +6 -6
  214. package/dist/esm/wm-tag-input.entry.js +2 -2
  215. package/dist/esm/wm-tag-option.entry.js +8 -0
  216. package/dist/esm/wm-textarea.entry.js +1 -1
  217. package/dist/esm/wm-timepicker.entry.js +14 -2
  218. package/dist/esm/wm-toggletip.entry.js +3 -3
  219. package/dist/esm/wm-uploader.entry.js +2 -2
  220. package/dist/esm-es5/app-globals-466ed44b.js +1 -0
  221. package/dist/esm-es5/loader.js +1 -1
  222. package/dist/esm-es5/priv-calendar.entry.js +1 -1
  223. package/dist/esm-es5/priv-chart-popover-old.entry.js +1 -1
  224. package/dist/esm-es5/priv-chart-popover_2.entry.js +1 -1
  225. package/dist/esm-es5/priv-navigator-button.entry.js +1 -1
  226. package/dist/esm-es5/priv-navigator-item.entry.js +1 -1
  227. package/dist/esm-es5/priv-option-list.entry.js +1 -1
  228. package/dist/esm-es5/ripple.js +1 -1
  229. package/dist/esm-es5/wm-action-menu_2.entry.js +1 -1
  230. package/dist/esm-es5/wm-button.entry.js +1 -1
  231. package/dist/esm-es5/wm-chart-bar.entry.js +1 -1
  232. package/dist/esm-es5/wm-chart-column.entry.js +1 -1
  233. package/dist/esm-es5/wm-chart.entry.js +1 -1
  234. package/dist/esm-es5/wm-date-range.entry.js +1 -1
  235. package/dist/esm-es5/wm-datepicker.entry.js +1 -1
  236. package/dist/esm-es5/wm-file-list.entry.js +1 -1
  237. package/dist/esm-es5/wm-file.entry.js +1 -1
  238. package/dist/esm-es5/wm-flyout.entry.js +1 -1
  239. package/dist/esm-es5/wm-input.entry.js +1 -1
  240. package/dist/esm-es5/wm-line-chart.entry.js +1 -1
  241. package/dist/esm-es5/wm-modal-pss_3.entry.js +1 -1
  242. package/dist/esm-es5/wm-modal_3.entry.js +1 -1
  243. package/dist/esm-es5/wm-navigation_3.entry.js +1 -1
  244. package/dist/esm-es5/wm-navigator.entry.js +1 -1
  245. package/dist/esm-es5/wm-nested-select.entry.js +1 -1
  246. package/dist/esm-es5/wm-optgroup.entry.js +1 -1
  247. package/dist/esm-es5/wm-option_2.entry.js +1 -1
  248. package/dist/esm-es5/wm-pagination.entry.js +1 -1
  249. package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -1
  250. package/dist/esm-es5/wm-search.entry.js +1 -1
  251. package/dist/esm-es5/wm-snackbar.entry.js +1 -1
  252. package/dist/esm-es5/wm-tab-item_3.entry.js +1 -1
  253. package/dist/esm-es5/wm-tag-input.entry.js +1 -1
  254. package/dist/esm-es5/wm-textarea.entry.js +1 -1
  255. package/dist/esm-es5/wm-timepicker.entry.js +1 -1
  256. package/dist/esm-es5/wm-toggletip.entry.js +1 -1
  257. package/dist/esm-es5/wm-uploader.entry.js +1 -1
  258. package/dist/ripple/{p-1fc894ac.system.entry.js → p-012bd307.system.entry.js} +1 -1
  259. package/dist/ripple/p-03f352dc.entry.js +1 -0
  260. package/dist/ripple/{p-4f53544d.entry.js → p-03ff4f41.entry.js} +1 -1
  261. package/dist/ripple/{p-2a03f658.entry.js → p-045aa27f.entry.js} +1 -1
  262. package/dist/ripple/{p-709d1765.entry.js → p-057ffccb.entry.js} +1 -1
  263. package/dist/ripple/p-06c3dc14.system.entry.js +1 -0
  264. package/dist/ripple/{p-ff6fd274.system.entry.js → p-09a80f59.system.entry.js} +1 -1
  265. package/dist/ripple/{p-3bd8537c.entry.js → p-09fb0a09.entry.js} +1 -1
  266. package/dist/ripple/p-0a05d3a3.js +1 -0
  267. package/dist/ripple/{p-3f69041f.entry.js → p-0ab9bac7.entry.js} +1 -1
  268. package/dist/ripple/{p-332a3e3d.system.entry.js → p-1059cdb9.system.entry.js} +1 -1
  269. package/dist/ripple/{p-dbdae848.system.entry.js → p-106a9459.system.entry.js} +1 -1
  270. package/dist/ripple/{p-e1a6ee77.entry.js → p-16381033.entry.js} +1 -1
  271. package/dist/ripple/{p-b11abb0d.system.entry.js → p-181109f0.system.entry.js} +1 -1
  272. package/dist/ripple/{p-bb9f54cf.system.entry.js → p-1855c3b1.system.entry.js} +1 -1
  273. package/dist/ripple/{p-4533241f.entry.js → p-1c25838e.entry.js} +1 -1
  274. package/dist/ripple/{p-fb6aee09.entry.js → p-1f67b172.entry.js} +1 -1
  275. package/dist/ripple/{p-a3dd5204.system.entry.js → p-22703bcd.system.entry.js} +1 -1
  276. package/dist/ripple/{p-a6aef87d.system.entry.js → p-237388c5.system.entry.js} +1 -1
  277. package/dist/ripple/p-237f5977.system.entry.js +1 -0
  278. package/dist/ripple/p-25d6cc45.system.js +1 -0
  279. package/dist/ripple/{p-09d5381c.entry.js → p-299d2d8b.entry.js} +1 -1
  280. package/dist/ripple/{p-e78f9572.system.entry.js → p-2c1d219f.system.entry.js} +1 -1
  281. package/dist/ripple/{p-84e04896.entry.js → p-2dbf9636.entry.js} +1 -1
  282. package/dist/ripple/{p-05dae6a0.entry.js → p-2dc1071a.entry.js} +1 -1
  283. package/dist/ripple/{p-39bac42a.entry.js → p-3216e2e7.entry.js} +1 -1
  284. package/dist/ripple/p-3252c04b.system.entry.js +1 -0
  285. package/dist/ripple/{p-7ca0bb68.system.entry.js → p-32bac954.system.entry.js} +1 -1
  286. package/dist/ripple/p-33eeaa18.entry.js +1 -0
  287. package/dist/ripple/p-3441da90.entry.js +1 -0
  288. package/dist/ripple/p-3502fd33.system.entry.js +1 -0
  289. package/dist/ripple/{p-f51404f5.entry.js → p-351000b9.entry.js} +1 -1
  290. package/dist/ripple/{p-bf3eef42.entry.js → p-3c0062c5.entry.js} +1 -1
  291. package/dist/ripple/{p-c1abc58e.entry.js → p-3d3836ad.entry.js} +1 -1
  292. package/dist/ripple/p-3e8bfc68.system.entry.js +1 -0
  293. package/dist/ripple/p-3f403a64.system.entry.js +1 -0
  294. package/dist/ripple/{p-b974a535.system.entry.js → p-43e8d384.system.entry.js} +1 -1
  295. package/dist/ripple/p-49dc64ba.entry.js +1 -0
  296. package/dist/ripple/{p-9d345fc7.system.entry.js → p-4a942d74.system.entry.js} +1 -1
  297. package/dist/ripple/p-4cc09fa3.system.entry.js +1 -0
  298. package/dist/ripple/p-5177d4fa.entry.js +1 -0
  299. package/dist/ripple/p-51fff3a7.system.entry.js +1 -0
  300. package/dist/ripple/p-54ba0eae.entry.js +1 -0
  301. package/dist/ripple/{p-c04d0eeb.system.entry.js → p-5609bde2.system.entry.js} +1 -1
  302. package/dist/ripple/{p-86148143.system.entry.js → p-56e1a71d.system.entry.js} +1 -1
  303. package/dist/ripple/{p-f94af31c.entry.js → p-578b5443.entry.js} +1 -1
  304. package/dist/ripple/p-57901fc3.entry.js +1 -0
  305. package/dist/ripple/{p-463be5be.entry.js → p-57a0cb5f.entry.js} +1 -1
  306. package/dist/ripple/{p-0db033c3.system.entry.js → p-59b3f92b.system.entry.js} +1 -1
  307. package/dist/ripple/p-5a533e7c.entry.js +1 -0
  308. package/dist/ripple/{p-5f092b39.system.entry.js → p-61a0ba92.system.entry.js} +1 -1
  309. package/dist/ripple/{p-6de83c6f.entry.js → p-623b89e0.entry.js} +1 -1
  310. package/dist/ripple/{p-6479b06b.entry.js → p-668c0758.entry.js} +1 -1
  311. package/dist/ripple/p-6a6e98c7.entry.js +1 -0
  312. package/dist/ripple/{p-b654743f.system.entry.js → p-6c46dd9a.system.entry.js} +1 -1
  313. package/dist/ripple/{p-4e7ae2c5.system.entry.js → p-6ea254d2.system.entry.js} +1 -1
  314. package/dist/ripple/p-6f875608.system.entry.js +1 -0
  315. package/dist/ripple/{p-d05b7cd3.entry.js → p-71a38bd2.entry.js} +1 -1
  316. package/dist/ripple/{p-dab54a9d.entry.js → p-73a2389d.entry.js} +1 -1
  317. package/dist/ripple/p-759d87de.entry.js +1 -0
  318. package/dist/ripple/{p-227b0af9.entry.js → p-75c5ec39.entry.js} +1 -1
  319. package/dist/ripple/{p-ee729037.system.entry.js → p-7bc3b4ee.system.entry.js} +1 -1
  320. package/dist/ripple/p-7c7988a3.entry.js +1 -0
  321. package/dist/ripple/p-81735196.entry.js +1 -0
  322. package/dist/ripple/{p-a0aba3e0.system.entry.js → p-8376699e.system.entry.js} +1 -1
  323. package/dist/ripple/{p-503330c1.system.entry.js → p-865208b7.system.entry.js} +1 -1
  324. package/dist/ripple/{p-28b8a12e.system.entry.js → p-8715d758.system.entry.js} +1 -1
  325. package/dist/ripple/p-8bfb7664.entry.js +1 -0
  326. package/dist/ripple/{p-680f5703.entry.js → p-8deb22bc.entry.js} +1 -1
  327. package/dist/ripple/p-8e32e9de.system.entry.js +1 -0
  328. package/dist/ripple/{p-bdb10d37.entry.js → p-92e3bf68.entry.js} +1 -1
  329. package/dist/ripple/{p-0feaaae9.system.entry.js → p-942b323c.system.entry.js} +1 -1
  330. package/dist/ripple/{p-5173359e.entry.js → p-94fd1dcc.entry.js} +1 -1
  331. package/dist/ripple/p-991455a2.system.entry.js +1 -0
  332. package/dist/ripple/p-99a112c8.system.entry.js +1 -0
  333. package/dist/ripple/p-9a8d91d6.entry.js +1 -0
  334. package/dist/ripple/{p-e0c0e8b0.system.entry.js → p-9afb642d.system.entry.js} +1 -1
  335. package/dist/ripple/p-9c850273.system.js +1 -0
  336. package/dist/ripple/p-a3f9e257.entry.js +1 -0
  337. package/dist/ripple/p-a5b07241.entry.js +1 -0
  338. package/dist/ripple/{p-d55bd2b9.entry.js → p-a7a6cf55.system.entry.js} +1 -1
  339. package/dist/ripple/{p-6f2d3297.system.entry.js → p-a917ea86.system.entry.js} +1 -1
  340. package/dist/ripple/p-ab5664cd.entry.js +1 -0
  341. package/dist/ripple/{p-cc028323.entry.js → p-acb04e6e.entry.js} +1 -1
  342. package/dist/ripple/p-b2624d8f.system.entry.js +1 -0
  343. package/dist/ripple/p-b5b37960.entry.js +1 -0
  344. package/dist/ripple/p-b713b6de.system.entry.js +1 -0
  345. package/dist/ripple/p-b75e9e5f.entry.js +1 -0
  346. package/dist/ripple/{p-b1924539.system.entry.js → p-b7969fd7.system.entry.js} +1 -1
  347. package/dist/ripple/{p-a7e637a5.system.entry.js → p-b9596bfc.system.entry.js} +1 -1
  348. package/dist/ripple/p-b9d3d967.system.entry.js +1 -0
  349. package/dist/ripple/{p-aafced54.system.entry.js → p-bd365c44.system.entry.js} +1 -1
  350. package/dist/ripple/p-bd9ab5ae.system.entry.js +1 -0
  351. package/dist/ripple/p-c0028f4d.system.entry.js +1 -0
  352. package/dist/ripple/p-c7d3ee52.entry.js +1 -0
  353. package/dist/ripple/p-c8e4e95b.entry.js +1 -0
  354. package/dist/ripple/p-c996ade8.entry.js +1 -0
  355. package/dist/ripple/p-ca8378b0.entry.js +1 -0
  356. package/dist/ripple/{p-bd37dd6f.entry.js → p-cc2176ad.entry.js} +1 -1
  357. package/dist/ripple/p-cd496e63.entry.js +1 -0
  358. package/dist/ripple/p-d0653c32.entry.js +1 -0
  359. package/dist/ripple/{p-9a5d11cb.entry.js → p-d11e5029.entry.js} +1 -1
  360. package/dist/ripple/p-d3d0b626.entry.js +1 -0
  361. package/dist/ripple/p-d4899263.entry.js +1 -0
  362. package/dist/ripple/p-dc82f194.entry.js +1 -0
  363. package/dist/ripple/{p-a6ef995c.system.entry.js → p-ddfb976f.system.entry.js} +1 -1
  364. package/dist/ripple/{p-ee26ba53.entry.js → p-e1899945.entry.js} +1 -1
  365. package/dist/ripple/p-e26b9711.system.entry.js +1 -0
  366. package/dist/ripple/{p-10aea5ee.system.entry.js → p-e31f597a.system.entry.js} +1 -1
  367. package/dist/ripple/p-e35de3cd.system.entry.js +1 -0
  368. package/dist/ripple/p-e3effa1a.system.entry.js +1 -0
  369. package/dist/ripple/p-e674e6a7.system.entry.js +1 -0
  370. package/dist/ripple/{p-8e6e868a.entry.js → p-e7ffd796.entry.js} +1 -1
  371. package/dist/ripple/p-e800717d.entry.js +1 -0
  372. package/dist/ripple/p-eab35bea.entry.js +1 -0
  373. package/dist/ripple/{p-df9d5b14.system.entry.js → p-ebdf16fa.system.entry.js} +1 -1
  374. package/dist/ripple/p-ed9fc1c1.system.entry.js +1 -0
  375. package/dist/ripple/p-eda49f0e.entry.js +1 -0
  376. package/dist/ripple/p-ee33fd7f.system.entry.js +1 -0
  377. package/dist/ripple/p-ee5f43fe.system.entry.js +1 -0
  378. package/dist/ripple/{p-928b3e5e.entry.js → p-f0ee3616.entry.js} +1 -1
  379. package/dist/ripple/{p-02c8bf15.system.entry.js → p-f1215c25.system.entry.js} +1 -1
  380. package/dist/ripple/p-f148ae9d.system.entry.js +1 -0
  381. package/dist/ripple/p-f307aabe.entry.js +1 -0
  382. package/dist/ripple/p-f4f6c904.system.entry.js +1 -0
  383. package/dist/ripple/p-f58833ae.system.entry.js +1 -0
  384. package/dist/ripple/p-f7fc6350.system.js +1 -1
  385. package/dist/ripple/p-f881cdc8.system.entry.js +1 -0
  386. package/dist/ripple/{p-444feb7d.system.entry.js → p-fbb37b4b.system.entry.js} +1 -1
  387. package/dist/ripple/{p-40e8071c.system.entry.js → p-fc905b2f.system.entry.js} +1 -1
  388. package/dist/ripple/ripple.esm.js +1 -1
  389. package/dist/ripple/ripple.js +1 -1
  390. package/dist/types/components/charts/priv-chart-popover/priv-chart-popover.d.ts +5 -0
  391. package/dist/types/components/charts/priv-chart-popover-old/priv-chart-popover-old.d.ts +5 -0
  392. package/dist/types/components/charts/wm-chart/wm-chart-slice.d.ts +52 -0
  393. package/dist/types/components/charts/wm-chart/wm-chart.d.ts +111 -0
  394. package/dist/types/components/charts/wm-chart-bar/wm-chart-bar.d.ts +131 -0
  395. package/dist/types/components/charts/wm-chart-column/wm-chart-column.d.ts +100 -0
  396. package/dist/types/components/charts/wm-chart-legend/wm-chart-legend.d.ts +77 -0
  397. package/dist/types/components/charts/wm-line-chart/wm-line-chart.d.ts +134 -0
  398. package/dist/types/components/charts/wm-progress-monitor/wm-progress-indicator.d.ts +52 -0
  399. package/dist/types/components/charts/wm-progress-monitor/wm-progress-monitor.d.ts +84 -0
  400. package/dist/types/components/charts/wm-progress-monitor/wm-progress-slice.d.ts +44 -0
  401. package/dist/types/components/datepickers/priv-calendar/priv-calendar.d.ts +6 -2
  402. package/dist/types/components/datepickers/wm-date-range.d.ts +186 -0
  403. package/dist/types/components/datepickers/wm-datepicker.d.ts +170 -2
  404. package/dist/types/components/selects/priv-option-list/priv-option-list.d.ts +6 -0
  405. package/dist/types/components/selects/wm-nested-select/wm-nested-select.d.ts +162 -0
  406. package/dist/types/components/selects/wm-optgroup/wm-optgroup.d.ts +87 -0
  407. package/dist/types/components/selects/wm-option/wm-option.d.ts +117 -0
  408. package/dist/types/components/selects/wm-select/wm-select.d.ts +164 -0
  409. package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +122 -0
  410. package/dist/types/components/wm-button/wm-button.d.ts +170 -2
  411. package/dist/types/components/wm-file/wm-file.d.ts +92 -0
  412. package/dist/types/components/wm-file-list/wm-file-list.d.ts +71 -0
  413. package/dist/types/components/wm-flyout/wm-flyout.d.ts +193 -0
  414. package/dist/types/components/wm-input/wm-input.d.ts +158 -0
  415. package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +58 -0
  416. package/dist/types/components/wm-modal/wm-modal-footer.d.ts +54 -0
  417. package/dist/types/components/wm-modal/wm-modal-header.d.ts +30 -0
  418. package/dist/types/components/wm-modal/wm-modal.d.ts +148 -0
  419. package/dist/types/components/wm-modal-pss/wm-modal-pss-footer.d.ts +4 -0
  420. package/dist/types/components/wm-modal-pss/wm-modal-pss-header.d.ts +4 -0
  421. package/dist/types/components/wm-modal-pss/wm-modal-pss.d.ts +4 -0
  422. package/dist/types/components/wm-navigation/wm-navigation-hamburger.d.ts +34 -0
  423. package/dist/types/components/wm-navigation/wm-navigation-item.d.ts +41 -0
  424. package/dist/types/components/wm-navigation/wm-navigation.d.ts +50 -0
  425. package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +4 -0
  426. package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +4 -0
  427. package/dist/types/components/wm-navigator/wm-navigator.d.ts +91 -3
  428. package/dist/types/components/wm-pagination/wm-pagination.d.ts +90 -0
  429. package/dist/types/components/wm-search/wm-search.d.ts +148 -5
  430. package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +94 -0
  431. package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +43 -2
  432. package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +93 -0
  433. package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +28 -2
  434. package/dist/types/components/wm-tag-input/wm-tag-input.d.ts +185 -0
  435. package/dist/types/components/wm-tag-input/wm-tag-option/wm-tag-option.d.ts +68 -0
  436. package/dist/types/components/wm-textarea/wm-textarea.d.ts +97 -0
  437. package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +145 -0
  438. package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +74 -0
  439. package/dist/types/components/wm-uploader/wm-uploader.d.ts +128 -0
  440. package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +3 -0
  441. package/dist/types/components.d.ts +10513 -57
  442. package/package.json +2 -2
  443. package/dist/ripple/p-065b0134.entry.js +0 -1
  444. package/dist/ripple/p-210773eb.entry.js +0 -1
@@ -0,0 +1,101 @@
1
+ ### Snackbar
2
+ - **Element:** `<wm-snackbar>`
3
+ - **Status:** stable
4
+
5
+ **Purpose:** Toast notification stack that renders transient messages at the bottom of the page.
6
+ Notifications auto-dismiss after 6 seconds unless they include a `link` or `action`, in
7
+ which case they persist until explicitly dismissed or the user tabs past them.
8
+
9
+ **When to use:**
10
+
11
+ - **Confirming the successful completion of a user action** -- when a user submits a form, uploads a file, adds or removes an item, or saves changes and the result is not immediately visible on screen, use a Snackbar to close the feedback loop with a brief confirmation message.
12
+ - **Providing a link to the result of a completed action** -- when the action produces something the user might want to navigate to immediately (e.g., a newly created record), use a Snackbar with a link to offer that shortcut without forcing navigation.
13
+ - **Offering a quick undo after an action** -- when a reversible action has just been taken, use a Snackbar with an action button (e.g., "Undo") to give the user a brief window to reverse it without a confirmation step.
14
+ - **Consolidating rapid successive notifications** -- when multiple similar actions fire in quick succession (under 6 seconds), use a single Snackbar summarizing them (e.g., "3 items updated") rather than stacking individual notifications per action.
15
+
16
+ **Do not use for:**
17
+
18
+ - **Actions whose result is immediately visible** -- if the outcome is already visible in the interface (an item appears in a list, a field updates inline), a Snackbar adds noise without adding information; skip it.
19
+ - **Every minor or intuitive action** -- routine, low-stakes interactions do not warrant a notification and will overwhelm users over time if over-triggered.
20
+ - **Essential information or links the user must act on** -- because Snackbars auto-dismiss after 6 seconds, any message or action the user genuinely needs to see should be in a Dialog or banner instead; Snackbar content must always be findable elsewhere in the interface.
21
+ - **Triggering other containers or including more than one link** -- Snackbars should not launch other layout containers or inputs, and are limited to a single link; it is a terminal notification, not a launching point.
22
+
23
+ **Variants / types:**
24
+
25
+ _None documented_
26
+
27
+ **Props:**
28
+ - `notifications` -- JSON-encoded array of notification objects to display. Each object must
29
+ include `id` (string) and `message` (string). Optional fields: `link` (string, renders
30
+ a navigation anchor), `action` (string, renders a button), `newWindow` (boolean, adds an
31
+ "opens in new window" indicator to the link). Always pass as `JSON.stringify(array)` --
32
+ passing an array directly causes a "[object Object] is not valid JSON" error.
33
+
34
+ **Events:**
35
+ - `wmSnackbarActionTriggered`
36
+ - `wmSnackbarSnackFinished`
37
+
38
+ **Accessibility:**
39
+
40
+ - Renders an `aria-live` region that announces new notification messages to screen readers.
41
+ - When a notification includes a `link` or `action` and the user is navigating by keyboard,
42
+ focus moves automatically to the action element when the notification appears.
43
+ - Focus returns to the previously active element when the notification is dismissed.
44
+ - **Keyboard:** - **Tab**: Moves focus from the action link/button to the close button; tabbing past the
45
+ close button dismisses the notification and returns focus to the previously active element.
46
+ - **Shift+Tab**: Dismisses the notification from the action link and returns focus; moves
47
+ from the close button back to the action link.
48
+ - **Enter**: Activates the focused close button or action link/button.
49
+
50
+ **Related components:**
51
+
52
+ - Dialog -- if the message requires the user to make a decision or acknowledge something before continuing, use Dialog; Snackbar is for passive confirmations that do not require a response.
53
+ - Banner -- if the message is tied to a persistent system status, an error the user must fix, or information that needs to stay visible until resolved, use a banner; Snackbar is for transient, action-completion feedback only.
54
+ - `<wm-toggletip>` -- if contextual information needs to be available on demand near a specific element rather than as a system notification, use Toggletip; Snackbar is not a help or hint mechanism.
55
+
56
+ **Code example:**
57
+
58
+ _Simple notification_
59
+
60
+ ```html
61
+ <wm-snackbar notifications='[{"id":"1","message":"Changes saved."}]'></wm-snackbar>
62
+ ```
63
+
64
+ _Notification stack with action and link variants_
65
+
66
+ ```react
67
+ // notifications is typed as string -- always pass JSON.stringify(array), never the array directly.
68
+ // wmSnackbarSnackFinished fires when a notification auto-dismisses or is closed.
69
+ // wmSnackbarActionTriggered fires when the action button or link is clicked;
70
+ // remove the notification manually after handling the action.
71
+ let nextId = 1;
72
+ const [notifications, setNotifications] = useState([]);
73
+
74
+ const addNotification = (notification) =>
75
+ setNotifications((prev) => [...prev, { id: String(nextId++), ...notification }]);
76
+
77
+ const removeNotification = (id) =>
78
+ setNotifications((prev) => prev.filter((n) => n.id !== id));
79
+
80
+ const handleActionTriggered = (e) => {
81
+ const { id, action } = e.detail;
82
+ if (action === "Undo") { handleUndo(); }
83
+ removeNotification(id);
84
+ };
85
+
86
+ <WmButton buttonType="secondary" onClick={() => addNotification({ message: "Changes saved." })}>
87
+ Simple notification
88
+ </WmButton>
89
+ <WmButton buttonType="secondary" onClick={() => addNotification({ message: "Item deleted.", action: "Undo" })}>
90
+ With action
91
+ </WmButton>
92
+ <WmButton buttonType="secondary" onClick={() => addNotification({ message: "Report ready.", link: "#report" })}>
93
+ With link
94
+ </WmButton>
95
+
96
+ <WmSnackbar
97
+ notifications={JSON.stringify(notifications)}
98
+ onWmSnackbarSnackFinished={(e) => removeNotification(e.detail.id)}
99
+ onWmSnackbarActionTriggered={handleActionTriggered}
100
+ />
101
+ ```
@@ -0,0 +1,35 @@
1
+ ### Tab Item
2
+ - **Element:** `<wm-tab-item>`
3
+ - **Status:** stable
4
+
5
+ **Purpose:** Individual tab button inside a wm-tab-list. Renders as a link with `role="tab"` and
6
+ manages selection state. Always used as a direct child of wm-tab-list.
7
+
8
+ **Variants / types:**
9
+
10
+ - `tab-id` is required and must match the `tab-id` of the corresponding wm-tab-panel.
11
+ - Listen to `wmTabSelected` and update the `selected-tab` prop on the parent wm-tab-list
12
+ to switch the active tab and show the associated panel.
13
+
14
+ **Props:**
15
+ - `selected` -- Whether this tab is currently active. Managed by the parent wm-tab-list --
16
+ do not set manually.
17
+ - `tab-id` -- Unique identifier linking this tab to its associated wm-tab-panel. Must
18
+ match the `tab-id` on the corresponding wm-tab-panel.
19
+
20
+ **Events:**
21
+ - `wmTabSelected`
22
+
23
+ **Code example:**
24
+
25
+ _Tab item_
26
+
27
+ ```html
28
+ <wm-tab-item tab-id="overview">Overview</wm-tab-item>
29
+ ```
30
+
31
+ _Tab item_
32
+
33
+ ```react
34
+ <WmTabItem tabId="overview">Overview</WmTabItem>
35
+ ```
@@ -0,0 +1,112 @@
1
+ ### Tab List
2
+ - **Element:** `<wm-tab-list>`
3
+ - **Status:** stable
4
+
5
+ **Purpose:** Tab list container that manages a group of wm-tab-item children and their associated
6
+ wm-tab-panel elements. Handles keyboard navigation, ARIA wiring between tabs and panels,
7
+ horizontal scroll with arrow buttons on overflow, and optional dark theme.
8
+
9
+ **When to use:**
10
+
11
+ - **Organizing related content into parallel sections within a page** -- when a page or container holds distinct but related content areas that do not all need to be visible at once (e.g., Overview, Details, History on a record page), use Tabs to present them as switchable views with short, clear labels.
12
+ - **Breaking up content within a layout container** -- Tabs are usable inside primary pages, immersive layouts, Flyouts, and side panels; use them whenever a container has enough content variety to warrant sub-sections without adding navigation overhead.
13
+
14
+ **Do not use for:**
15
+
16
+ - **Primary navigation between pages** -- Tabs should not be used as primary navigation; they are for switching sections within a single page or container. Cross-page navigation belongs in wm-navigation.
17
+ - **More tabs than fit in a single row** -- all tabs should be visible on one row; if there are too many, the content should be simplified or a different pattern considered.
18
+ - **Sequential steps that must be completed in order** -- Tabs imply free switching between any section at any time; if the user must complete steps in sequence, a stepper pattern is more appropriate.
19
+
20
+ **Variants / types:**
21
+
22
+ - `customBackground="dark" (on wm-tab-list)` -- applies a dark background variant to the tab bar
23
+
24
+ **Props:**
25
+ - `custom-background` -- Sets the visual theme. Pass `"dark"` for the dark theme; omit for the
26
+ default light theme.
27
+ - `selected-tab` -- The `tab-id` of the currently active tab. Update this prop in response to
28
+ `wmTabSelected` to switch tabs. Defaults to the first tab if not set.
29
+
30
+ **Accessibility:**
31
+
32
+ - Sets `aria-controls` on each wm-tab-item link pointing to its associated wm-tab-panel.
33
+ - Sets `aria-labelledby` on each wm-tab-panel pointing back to its wm-tab-item link.
34
+ - ARIA attributes are updated dynamically when tab content is conditionally rendered in a
35
+ single shared panel.
36
+ - **Keyboard:** - **Arrow Left / Arrow Right**: Cycles focus to the previous/next tab item; wraps at both ends.
37
+ - **Arrow Down**: Moves focus to the content area of the active tab panel.
38
+ - **Enter / Space**: Activates the focused tab and shows its panel.
39
+ - **Tab**: Moves focus from the selected tab to the first focusable element inside the
40
+ active panel.
41
+ - **Shift+Tab**: Moves focus back to the selected tab item from within the panel.
42
+
43
+ **Related components:**
44
+
45
+ - `<wm-navigation>` -- if the purpose is navigating between separate pages or top-level product areas, use Navigation; Tabs are strictly for switching views within a single page or container context.
46
+ - `<wm-pagination>` -- if the user is moving through pages of a dataset rather than switching between content sections, use Pagination; Tabs are not a data paging mechanism.
47
+ - Stepper pattern -- if the content sections represent sequential steps that must be completed in order, use a stepper; Tabs allow unrestricted movement between sections and carry no sense of progress or completion state.
48
+
49
+ **Code example:**
50
+
51
+ _Basic tabs (discrete panels)_
52
+
53
+ ```html
54
+ <wm-tab-list>
55
+ <wm-tab-item tab-id="overview">Overview</wm-tab-item>
56
+ <wm-tab-item tab-id="details">Details</wm-tab-item>
57
+ <wm-tab-item tab-id="history">History</wm-tab-item>
58
+ </wm-tab-list>
59
+ <wm-tab-panel tab-id="overview"><p>Overview content</p></wm-tab-panel>
60
+ <wm-tab-panel tab-id="details"><p>Details content</p></wm-tab-panel>
61
+ <wm-tab-panel tab-id="history"><p>History content</p></wm-tab-panel>
62
+ ```
63
+
64
+ _Basic tabs (discrete panels)_
65
+
66
+ ```react
67
+ // wmTabSelected fires when a tab is clicked or activated via keyboard.
68
+ // event.detail is { tabId: string } -- the tab-id of the newly selected tab.
69
+ const [selectedTab, setSelectedTab] = useState("overview");
70
+
71
+ <WmTabList selectedTab={selectedTab} onWmTabSelected={(e) => setSelectedTab(e.detail.tabId)}>
72
+ <WmTabItem tabId="overview">Overview</WmTabItem>
73
+ <WmTabItem tabId="details">Details</WmTabItem>
74
+ <WmTabItem tabId="history">History</WmTabItem>
75
+ </WmTabList>
76
+ <WmTabPanel tabId="overview"><p>Overview content</p></WmTabPanel>
77
+ <WmTabPanel tabId="details"><p>Details content</p></WmTabPanel>
78
+ <WmTabPanel tabId="history"><p>History content</p></WmTabPanel>
79
+ ```
80
+
81
+ _Single shared panel (content rendered conditionally)_
82
+
83
+ ```html
84
+ <wm-tab-list custom-background="dark">
85
+ <wm-tab-item tab-id="summary">Summary</wm-tab-item>
86
+ <wm-tab-item tab-id="activity">Activity</wm-tab-item>
87
+ </wm-tab-list>
88
+ <wm-tab-panel tab-id="summary">
89
+ <!-- app renders content here based on the active tab -->
90
+ </wm-tab-panel>
91
+ ```
92
+
93
+ _Single shared panel (content rendered conditionally)_
94
+
95
+ ```react
96
+ // One wm-tab-panel shared by all tabs -- ARIA attributes update automatically.
97
+ // Render content conditionally based on selectedTab.
98
+ const [selectedTab, setSelectedTab] = useState("summary");
99
+
100
+ <WmTabList
101
+ customBackground="dark"
102
+ selectedTab={selectedTab}
103
+ onWmTabSelected={(e) => setSelectedTab(e.detail.tabId)}
104
+ >
105
+ <WmTabItem tabId="summary">Summary</WmTabItem>
106
+ <WmTabItem tabId="activity">Activity</WmTabItem>
107
+ </WmTabList>
108
+ <WmTabPanel tabId="summary">
109
+ {selectedTab === "summary" && <p>Summary content</p>}
110
+ {selectedTab === "activity" && <p>Activity content</p>}
111
+ </WmTabPanel>
112
+ ```
@@ -0,0 +1,33 @@
1
+ ### Tab Panel
2
+ - **Element:** `<wm-tab-panel>`
3
+ - **Status:** stable
4
+
5
+ **Purpose:** Content panel associated with a wm-tab-item. Shows or hides based on whether its
6
+ `tab-id` matches the selected tab in the parent wm-tab-list. Rendered with
7
+ `role="tabpanel"`. Always used alongside a wm-tab-list.
8
+
9
+ **Variants / types:**
10
+
11
+ - `tab-id` is required and must match the `tab-id` of the corresponding wm-tab-item.
12
+ - For the single-panel conditional-content pattern, use one wm-tab-panel without a
13
+ `tab-id` -- the parent wm-tab-list updates its ARIA attributes automatically.
14
+
15
+ **Props:**
16
+ - `active` -- Whether this panel is currently visible. Managed by the parent wm-tab-list --
17
+ do not set manually.
18
+ - `tab-id` -- Unique identifier linking this panel to its associated wm-tab-item. Must
19
+ match the `tab-id` on the corresponding wm-tab-item.
20
+
21
+ **Code example:**
22
+
23
+ _Tab panel_
24
+
25
+ ```html
26
+ <wm-tab-panel tab-id="overview">Overview content here.</wm-tab-panel>
27
+ ```
28
+
29
+ _Tab panel_
30
+
31
+ ```react
32
+ <WmTabPanel tabId="overview">Overview content here.</WmTabPanel>
33
+ ```
@@ -0,0 +1,165 @@
1
+ ### Tag Input
2
+ - **Element:** `<wm-tag-input>`
3
+ - **Status:** stable
4
+
5
+ **Purpose:** Input for selecting or creating a list of tags. Two variants: `'dropdown'` (options in a
6
+ filterable list, supports creating new tags) and `'table'` (options in a filterable
7
+ multi-column table). Options are defined as wm-tag-option children. Selected options appear
8
+ as removable tags above the search field.
9
+
10
+ **When to use:**
11
+
12
+ - **Selecting multiple values from a large, searchable list** -- use Tag Input when the option set is too long to scan in a flat multi-select dropdown but users know roughly what they are looking for; best for selecting a few options from a large searchable list.
13
+ - **Allowing users to create new values on the fly** -- when valid values are not fully predefined and users may need to introduce new entries (e.g., new skill labels, keywords, or categories), use the dropdown variant with add-new="true".
14
+ - **Selecting from options that have multiple attributes** -- when each option carries more context than a single label (e.g., a person's name, email, and role), use the table variant to display each option as a multi-column row.
15
+ - **Enforcing a cap on how many values can be selected** -- when the field has a meaningful limit (e.g., "select up to 5 reviewers"), use max-tags to surface a running count and a limit-reached message.
16
+
17
+ **Do not use for:**
18
+
19
+ - **Small, fully known option sets** -- if the list is short and bounded with no need for search or free entry, use wm-select with multiple instead; Tag Input's search and creation overhead adds complexity without benefit.
20
+ - **Single-value fields** -- if only one value can be selected, Tag Input's tag-area model and two-tab-stop structure are unnecessary; use wm-select or wm-input for single-value cases.
21
+
22
+ **Variants / types:**
23
+
24
+ - `tag-input-type="dropdown"` -- users search for and select from a flat list; supports add-new to allow creation of new values
25
+ - `tag-input-type="table"` -- users select from a multi-column option list; requires col-headers and options use col1-col4 props on wm-tag-option
26
+
27
+ **Props:**
28
+ - `add-new` -- Dropdown variant only. When true, the user can type a new value and add it
29
+ as a tag by pressing Enter or comma.
30
+ - `character-limit` -- Dropdown variant only. Maximum character limit enforced on the search field.
31
+ - `col-headers` -- Table variant only. Comma-separated list of column header labels. The number
32
+ of headers determines the number of columns. _(required; conditionally required: Required when `tag-input-type="table"`.)_
33
+ - `col-widths` -- Table variant only. Comma-separated column widths. Blank values fill
34
+ remaining space.
35
+ - `col-wrap` -- Table variant only. Comma-separated text-wrapping rules per column -- `'wrap'`
36
+ or `'trunc'` (truncate with tooltip).
37
+ - `error-message` -- Puts the component in an error state and displays this message below the
38
+ field.
39
+ - `help-text` -- Overrides the default instructional help text shown at the top of the
40
+ dropdown (dropdown variant) or below the input when `max-tags` is set (table variant).
41
+ - `info` -- Hint text displayed below the component.
42
+ - `label` -- Accessible name for the search input and dropdown/table. Required even when
43
+ `label-position="none"`. _(required)_
44
+ - `label-position` -- Controls label placement. `'none'` hides the label visually but keeps it
45
+ accessible. `'left'` is not supported in the `table` variant.
46
+ - `max-tags` -- Maximum number of tags allowed. Displays a "Tags added: x/y" counter but
47
+ does not prevent selection beyond the limit -- enforce the limit in your
48
+ `wmTagOptionSelected` or `wmTagInputTagAdded` handler.
49
+ - `placeholder` -- Placeholder text in the search field. Defaults to a generated string based
50
+ on `add-new` and available options.
51
+ - `required-field` -- Displays a required-field asterisk next to the label.
52
+ - `tag-input-type` -- Selects the component variant. `'dropdown'` shows a filterable list;
53
+ `'table'` shows a filterable multi-column table.
54
+
55
+ **Events:**
56
+ - `wmTagInputTagAdded`
57
+
58
+ **Accessibility:**
59
+
60
+ - `label` is the accessible name for the search input and dropdown/table; required even
61
+ when `label-position="none"`.
62
+ - An `aria-live` region announces tag additions, removals, result counts, and errors.
63
+ - Two tab stops: the tag area (when tags are present) and the search field.
64
+ - **Keyboard:** **Tag area (when tags are present):**
65
+ - **Arrow Left / Arrow Right**: Cycle focus between selected tags.
66
+ - **Backspace / Delete**: Remove the focused tag.
67
+
68
+ **Search field:**
69
+ - **Arrow Down / Arrow Up**: Open the dropdown or navigate within it.
70
+ - **Enter**: Add a new tag from typed value (dropdown, `add-new` enabled) or select the
71
+ focused option.
72
+ - **Comma**: Add a new tag immediately (dropdown, `add-new` enabled).
73
+ - **Escape**: Close the dropdown.
74
+ - **Backspace** (empty field): Move focus to the last selected tag.
75
+
76
+ **Related components:**
77
+
78
+ - `<wm-select>` with multiple -- if the option set is small, fully known, and does not benefit from search or free entry, use multi-select Select; Tag Input's extra capabilities add complexity not warranted for simple bounded lists.
79
+ - `<wm-search>` -- if the goal is to filter visible page content as the user types rather than commit selected values to a form, use Search; Tag Input accumulates stored values, not a real-time content filter.
80
+ - `<wm-input>` -- if the user is entering a single free-form string rather than selecting or creating multiple discrete values, use Input; Tag Input is only appropriate when the field holds a collection.
81
+
82
+ **Code example:**
83
+
84
+ _Dropdown with add-new_
85
+
86
+ ```html
87
+ <wm-tag-input label="Skills" add-new="true">
88
+ <wm-tag-option>JavaScript</wm-tag-option>
89
+ <wm-tag-option>TypeScript</wm-tag-option>
90
+ <wm-tag-option>React</wm-tag-option>
91
+ </wm-tag-input>
92
+ ```
93
+
94
+ _Dropdown with add-new_
95
+
96
+ ```react
97
+ // wmTagOptionSelected/Deselected bubble to WmTagInput for the dropdown variant.
98
+ // You must set event.target.selected imperatively in each handler.
99
+ // wmTagInputTagAdded fires when a new tag is created; event.detail is the tag string.
100
+ // You must create and append a wm-tag-option DOM element with selected=true.
101
+ const handleOptionSelected = (event) => {
102
+ event.target.selected = true;
103
+ setTags((prev) => [...prev, event.target.textContent.trim()]);
104
+ };
105
+ const handleOptionDeselected = (event) => {
106
+ const isUserAdded = event.target.getAttribute('user-added');
107
+ isUserAdded ? event.target.remove() : (event.target.selected = false);
108
+ setTags((prev) => prev.filter((t) => t !== event.target.textContent.trim()));
109
+ };
110
+ const handleTagAdded = (event) => {
111
+ const taginput = event.currentTarget;
112
+ const newTagName = event.detail;
113
+ const existingNames = Array.from(taginput.querySelectorAll('wm-tag-option'))
114
+ .map((o) => o.textContent.toLowerCase().trim());
115
+ if (!existingNames.includes(newTagName.toLowerCase().trim())) {
116
+ const newOption = document.createElement('wm-tag-option');
117
+ newOption.textContent = newTagName;
118
+ newOption.id = 'tag' + Math.random().toString(36).substr(2, 6);
119
+ newOption.selected = true;
120
+ newOption.setAttribute('user-added', 'true');
121
+ taginput.appendChild(newOption);
122
+ setTags((prev) => [...prev, newTagName]);
123
+ }
124
+ };
125
+
126
+ <WmTagInput label="Skills" addNew={true}
127
+ onWmTagOptionSelected={handleOptionSelected}
128
+ onWmTagOptionDeselected={handleOptionDeselected}
129
+ onWmTagInputTagAdded={handleTagAdded}>
130
+ <WmTagOption>JavaScript</WmTagOption>
131
+ <WmTagOption>TypeScript</WmTagOption>
132
+ <WmTagOption>React</WmTagOption>
133
+ </WmTagInput>
134
+ ```
135
+
136
+ _Table variant_
137
+
138
+ ```html
139
+ <wm-tag-input label="Assign people" tag-input-type="table" col-headers="Name,Department">
140
+ <wm-tag-option col1="Smith, John" col2="Engineering"></wm-tag-option>
141
+ <wm-tag-option col1="Doe, Jane" col2="Design"></wm-tag-option>
142
+ </wm-tag-input>
143
+ ```
144
+
145
+ _Table variant_
146
+
147
+ ```react
148
+ // For the table variant, put handlers on each WmTagOption rather than on WmTagInput.
149
+ // event.target.col1 is the first column value, used as the tag label.
150
+ const makeHandlers = (col1Value) => ({
151
+ onWmTagOptionSelected: (event) => {
152
+ event.target.selected = true;
153
+ setSelected((prev) => [...prev, col1Value]);
154
+ },
155
+ onWmTagOptionDeselected: (event) => {
156
+ event.target.selected = false;
157
+ setSelected((prev) => prev.filter((p) => p !== col1Value));
158
+ },
159
+ });
160
+
161
+ <WmTagInput label="Assign people" tagInputType="table" colHeaders="Name,Department">
162
+ <WmTagOption col1="Smith, John" col2="Engineering" {...makeHandlers('Smith, John')} />
163
+ <WmTagOption col1="Doe, Jane" col2="Design" {...makeHandlers('Doe, Jane')} />
164
+ </WmTagInput>
165
+ ```
@@ -0,0 +1,59 @@
1
+ ### Tag Option
2
+ - **Element:** `<wm-tag-option>`
3
+ - **Status:** stable
4
+
5
+ **Purpose:** Option element for wm-tag-input. Represents a selectable tag in the dropdown list or
6
+ table. Always used as a direct child of wm-tag-input. For the dropdown variant, slotted
7
+ text content is the tag label; for the table variant, use `col1`-`col4` props.
8
+
9
+ **Variants / types:**
10
+
11
+ - Pre-select an option on load by setting `selected`; lock it from removal by setting
12
+ `locked`.
13
+ - Listen to `wmTagOptionSelected` and `wmTagOptionDeselected` to react to selection
14
+ changes.
15
+
16
+ **Props:**
17
+ - `col1` -- First column value for the `table` variant. Also used as the tag label when
18
+ this option is selected.
19
+ - `col2` -- Second column value for the `table` variant.
20
+ - `col3` -- Third column value for the `table` variant.
21
+ - `col4` -- Fourth column value for the `table` variant.
22
+ - `locked` -- When true, the option is permanently selected and cannot be removed by the
23
+ user.
24
+ - `selected` -- Whether this option is currently selected (appears as a tag). Setting this
25
+ on load pre-selects the option.
26
+
27
+ **Events:**
28
+ - `wmTagOptionDeselected`
29
+ - `wmTagOptionSelected`
30
+
31
+ **Methods:**
32
+ - `emitDeselectedEvent() => Promise<void>`
33
+ - `emitSelectedEvent() => Promise<void>`
34
+
35
+ **Code example:**
36
+
37
+ _Dropdown option_
38
+
39
+ ```html
40
+ <wm-tag-option>JavaScript</wm-tag-option>
41
+ ```
42
+
43
+ _Dropdown option_
44
+
45
+ ```react
46
+ <WmTagOption onWmTagOptionSelected={handleSelect}>JavaScript</WmTagOption>
47
+ ```
48
+
49
+ _Pre-selected option_
50
+
51
+ ```html
52
+ <wm-tag-option selected>TypeScript</wm-tag-option>
53
+ ```
54
+
55
+ _Table option (col1-col4)_
56
+
57
+ ```react
58
+ <WmTagOption col1="Smith, John" col2="Engineering" />
59
+ ```
@@ -0,0 +1,94 @@
1
+ ### Textarea
2
+ - **Element:** `<wm-textarea>`
3
+ - **Status:** stable
4
+
5
+ **Purpose:** Multi-line plain-text editing control with a drag handle for vertical resizing. Shares
6
+ most functionality with wm-input. Use instead of native `<textarea>` in all Watermark UI.
7
+
8
+ **When to use:**
9
+
10
+ - **Collecting a narrative, description, or open-ended response** -- when a user needs to write more than a short phrase (a program description, assessment rationale, comment, or notes field), use Textarea to give them a multi-line editing surface.
11
+ - **Accepting long-form text with a character cap** -- when the field has a meaningful maximum length (e.g., a mission statement capped at 500 characters), use character-limit to display a running count and turn it red at the limit, while still allowing free editing.
12
+ - **Setting an initial height appropriate to the expected content volume** -- when the typical response will be longer or shorter than the default three lines, use input-height to size the field to match user expectations.
13
+ - **Displaying supplementary guidance below the field** -- when the field benefits from a brief instruction that stays visible while the user types, use the info property to show it persistently below the input area.
14
+
15
+ **Do not use for:**
16
+
17
+ - **Short, single-line values** -- if the expected value is a name, identifier, number, or any other brief string, use wm-input instead; Textarea signals to users that a longer response is expected and wastes vertical space for short values.
18
+
19
+ **Variants / types:**
20
+
21
+ _None documented_
22
+
23
+ **Props:**
24
+ - `character-limit` -- Maximum number of characters allowed. Displays a live counter below the
25
+ field. Does not prevent typing beyond the limit (to allow pasting and editing) but the
26
+ counter turns red when exceeded. Disabled when unset.
27
+ - `disabled` -- Disables the component, preventing all interaction.
28
+ - `error-message` -- Puts the component in an error state and displays this message below the
29
+ textarea.
30
+ - `info` -- Hint text displayed below the textarea. Read by screen readers on focus via
31
+ `aria-describedby`.
32
+ - `input-height` -- CSS height value for the initial height of the textarea. The user can resize
33
+ it with the drag handle.
34
+ - `input-width` -- CSS width value for the textarea element itself, independent of the overall
35
+ component width. Useful when the label or error message should extend wider than the
36
+ field.
37
+ - `label` -- Accessible label for the textarea. Required even when
38
+ `label-position="none"`. _(required)_
39
+ - `label-position` -- Controls label placement. `'none'` hides the label visually but keeps it
40
+ accessible.
41
+ - `placeholder` -- Placeholder text shown inside the empty textarea.
42
+ - `required-field` -- Displays a required-field asterisk next to the label.
43
+ - `value` -- The current value typed by the user. Line breaks are represented as `\n`.
44
+ To set an initial value, use the element's text content instead:
45
+ `<wm-textarea>initial value</wm-textarea>`.
46
+
47
+ **Events:**
48
+ - `wmTextareaValueChanged`
49
+
50
+ **Accessibility:**
51
+
52
+ - `label` sets the accessible label for the textarea; required even when
53
+ `label-position="none"`.
54
+ - When `character-limit` is set, a counter below the field turns red when exceeded; the
55
+ count is announced via `aria-live` when within 5 characters of the limit or exceeded.
56
+ - Error messages are announced via an `aria-live` region.
57
+ - `info` text is associated via `aria-describedby` and read by screen readers on focus.
58
+
59
+ **Related components:**
60
+
61
+ - `<wm-input>` -- if the expected value fits on a single line, use Input; Textarea is only warranted when multi-line content is genuinely expected. The two share nearly identical props, events, and accessibility behavior, the choice is almost entirely single-line vs. multi-line.
62
+
63
+ **Code example:**
64
+
65
+ _Basic textarea_
66
+
67
+ ```html
68
+ <wm-textarea label="Notes" placeholder="Enter notes here..."></wm-textarea>
69
+ ```
70
+
71
+ _Basic textarea_
72
+
73
+ ```react
74
+ // value + onWmTextareaValueChanged is the standard controlled pattern.
75
+ const [notes, setNotes] = useState("");
76
+
77
+ <WmTextarea
78
+ label="Notes"
79
+ placeholder="Enter notes here..."
80
+ value={notes}
81
+ onWmTextareaValueChanged={(e) => setNotes(e.detail.value)} />
82
+ ```
83
+
84
+ _With character limit_
85
+
86
+ ```html
87
+ <wm-textarea label="Summary" character-limit="500"></wm-textarea>
88
+ ```
89
+
90
+ _With character limit_
91
+
92
+ ```react
93
+ <WmTextarea label="Summary" characterLimit={500} />
94
+ ```