@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.
- package/dist/cjs/app-globals-df7ca137.js +103 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/priv-calendar.cjs.entry.js +27 -27
- package/dist/cjs/priv-chart-popover-old.cjs.entry.js +2 -2
- package/dist/cjs/priv-chart-popover_2.cjs.entry.js +3 -3
- package/dist/cjs/priv-navigator-button.cjs.entry.js +1 -1
- package/dist/cjs/priv-navigator-item.cjs.entry.js +1 -1
- package/dist/cjs/priv-option-list.cjs.entry.js +1 -1
- package/dist/cjs/ripple.cjs.js +1 -1
- package/dist/cjs/wm-action-menu_2.cjs.entry.js +5 -4
- package/dist/cjs/wm-button.cjs.entry.js +1 -1
- package/dist/cjs/wm-chart-bar.cjs.entry.js +1 -1
- package/dist/cjs/wm-chart-column.cjs.entry.js +1 -1
- package/dist/cjs/wm-chart.cjs.entry.js +1 -1
- package/dist/cjs/wm-date-range.cjs.entry.js +25 -9
- package/dist/cjs/wm-datepicker.cjs.entry.js +37 -11
- package/dist/cjs/wm-file-list.cjs.entry.js +1 -1
- package/dist/cjs/wm-file.cjs.entry.js +1 -1
- package/dist/cjs/wm-flyout.cjs.entry.js +6 -1
- package/dist/cjs/wm-input.cjs.entry.js +1 -1
- package/dist/cjs/wm-line-chart.cjs.entry.js +1 -1
- package/dist/cjs/wm-modal-pss_3.cjs.entry.js +4 -4
- package/dist/cjs/wm-modal_3.cjs.entry.js +19 -4
- package/dist/cjs/wm-navigation_3.cjs.entry.js +4 -4
- package/dist/cjs/wm-navigator.cjs.entry.js +1 -1
- package/dist/cjs/wm-nested-select.cjs.entry.js +3 -3
- package/dist/cjs/wm-optgroup.cjs.entry.js +11 -1
- package/dist/cjs/wm-option_2.cjs.entry.js +5 -5
- package/dist/cjs/wm-pagination.cjs.entry.js +1 -1
- package/dist/cjs/wm-progress-indicator_3.cjs.entry.js +2 -2
- package/dist/cjs/wm-search.cjs.entry.js +2 -2
- package/dist/cjs/wm-snackbar.cjs.entry.js +2 -2
- package/dist/cjs/wm-tab-item_3.cjs.entry.js +6 -6
- package/dist/cjs/wm-tag-input.cjs.entry.js +2 -2
- package/dist/cjs/wm-tag-option.cjs.entry.js +8 -0
- package/dist/cjs/wm-textarea.cjs.entry.js +1 -1
- package/dist/cjs/wm-timepicker.cjs.entry.js +14 -2
- package/dist/cjs/wm-toggletip.cjs.entry.js +3 -3
- package/dist/cjs/wm-uploader.cjs.entry.js +2 -2
- package/dist/collection/components/charts/priv-chart-popover/priv-chart-popover.js +7 -2
- package/dist/collection/components/charts/priv-chart-popover-old/priv-chart-popover-old.js +7 -2
- package/dist/collection/components/charts/wm-chart/wm-chart-slice.js +58 -6
- package/dist/collection/components/charts/wm-chart/wm-chart.js +139 -13
- package/dist/collection/components/charts/wm-chart-bar/wm-chart-bar.js +134 -7
- package/dist/collection/components/charts/wm-chart-column/wm-chart-column.js +102 -8
- package/dist/collection/components/charts/wm-chart-legend/wm-chart-legend.js +90 -8
- package/dist/collection/components/charts/wm-line-chart/wm-line-chart.js +153 -17
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-indicator.js +63 -7
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-monitor.js +85 -5
- package/dist/collection/components/charts/wm-progress-monitor/wm-progress-slice.js +52 -6
- package/dist/collection/components/datepickers/priv-calendar/priv-calendar.css +47 -47
- package/dist/collection/components/datepickers/priv-calendar/priv-calendar.js +33 -29
- package/dist/collection/components/datepickers/wm-date-range.js +246 -29
- package/dist/collection/components/datepickers/wm-datepicker.js +254 -30
- package/dist/collection/components/selects/priv-option-list/priv-option-list.js +7 -1
- package/dist/collection/components/selects/wm-nested-select/wm-nested-select.js +193 -17
- package/dist/collection/components/selects/wm-optgroup/wm-optgroup.js +116 -11
- package/dist/collection/components/selects/wm-option/wm-option.js +153 -18
- package/dist/collection/components/selects/wm-select/wm-select.js +187 -21
- package/dist/collection/components/wm-action-menu/wm-action-menu.js +148 -12
- package/dist/collection/components/wm-button/wm-button.js +212 -18
- package/dist/collection/components/wm-file/wm-file.js +108 -14
- package/dist/collection/components/wm-file-list/wm-file-list.js +74 -2
- package/dist/collection/components/wm-flyout/wm-flyout.js +215 -16
- package/dist/collection/components/wm-input/wm-input.js +195 -20
- package/dist/collection/components/wm-menuitem/wm-menuitem.js +62 -5
- package/dist/collection/components/wm-modal/wm-modal-footer.js +63 -6
- package/dist/collection/components/wm-modal/wm-modal-header.js +34 -3
- package/dist/collection/components/wm-modal/wm-modal.js +181 -14
- package/dist/collection/components/wm-modal-pss/wm-modal-pss-footer.js +5 -1
- package/dist/collection/components/wm-modal-pss/wm-modal-pss-header.js +5 -1
- package/dist/collection/components/wm-modal-pss/wm-modal-pss.js +6 -2
- package/dist/collection/components/wm-navigation/wm-navigation-hamburger.js +37 -3
- package/dist/collection/components/wm-navigation/wm-navigation-item.js +47 -5
- package/dist/collection/components/wm-navigation/wm-navigation.js +54 -4
- package/dist/collection/components/wm-navigator/priv-navigator-button/priv-navigator-button.js +5 -1
- package/dist/collection/components/wm-navigator/priv-navigator-item/priv-navigator-item.js +5 -1
- package/dist/collection/components/wm-navigator/wm-navigator.js +102 -9
- package/dist/collection/components/wm-pagination/wm-pagination.js +106 -9
- package/dist/collection/components/wm-search/wm-search.js +182 -16
- package/dist/collection/components/wm-snackbar/wm-snackbar.js +96 -5
- package/dist/collection/components/wm-tabs/wm-tab-item/wm-tab-item.js +66 -10
- package/dist/collection/components/wm-tabs/wm-tab-list/wm-tab-list.js +96 -5
- package/dist/collection/components/wm-tabs/wm-tab-panel/wm-tab-panel.js +42 -6
- package/dist/collection/components/wm-tag-input/wm-tag-input.js +205 -17
- package/dist/collection/components/wm-tag-input/wm-tag-option/wm-tag-option.js +97 -12
- package/dist/collection/components/wm-textarea/wm-textarea.js +116 -13
- package/dist/collection/components/wm-timepicker/wm-timepicker.js +190 -16
- package/dist/collection/components/wm-toggletip/wm-toggletip.js +87 -8
- package/dist/collection/components/wm-uploader/wm-uploader.js +142 -14
- package/dist/collection/components/wm-wrapper/wm-wrapper.js +3 -0
- package/dist/collection/global/services/__mocks__/http-service.js +1 -1
- package/dist/docs/docs.d.ts +435 -0
- package/dist/docs/docs.json +13915 -0
- package/dist/docs/props-reference.json +2028 -0
- package/dist/docs/skill/index.md +32 -0
- package/dist/docs/skill/wm-action-menu.md +93 -0
- package/dist/docs/skill/wm-button.md +103 -0
- package/dist/docs/skill/wm-chart-bar.md +129 -0
- package/dist/docs/skill/wm-chart-column.md +96 -0
- package/dist/docs/skill/wm-chart-legend.md +67 -0
- package/dist/docs/skill/wm-chart-slice.md +55 -0
- package/dist/docs/skill/wm-chart.md +92 -0
- package/dist/docs/skill/wm-date-range.md +153 -0
- package/dist/docs/skill/wm-datepicker.md +134 -0
- package/dist/docs/skill/wm-file-list.md +97 -0
- package/dist/docs/skill/wm-file.md +78 -0
- package/dist/docs/skill/wm-flyout.md +174 -0
- package/dist/docs/skill/wm-input.md +126 -0
- package/dist/docs/skill/wm-line-chart.md +108 -0
- package/dist/docs/skill/wm-menuitem.md +72 -0
- package/dist/docs/skill/wm-modal-footer.md +73 -0
- package/dist/docs/skill/wm-modal-header.md +65 -0
- package/dist/docs/skill/wm-modal.md +137 -0
- package/dist/docs/skill/wm-navigation-hamburger.md +56 -0
- package/dist/docs/skill/wm-navigation-item.md +69 -0
- package/dist/docs/skill/wm-navigation.md +66 -0
- package/dist/docs/skill/wm-navigator.md +91 -0
- package/dist/docs/skill/wm-nested-select.md +149 -0
- package/dist/docs/skill/wm-optgroup.md +71 -0
- package/dist/docs/skill/wm-option.md +68 -0
- package/dist/docs/skill/wm-pagination.md +95 -0
- package/dist/docs/skill/wm-progress-indicator.md +49 -0
- package/dist/docs/skill/wm-progress-monitor.md +93 -0
- package/dist/docs/skill/wm-progress-slice.md +41 -0
- package/dist/docs/skill/wm-search.md +157 -0
- package/dist/docs/skill/wm-select.md +148 -0
- package/dist/docs/skill/wm-snackbar.md +101 -0
- package/dist/docs/skill/wm-tab-item.md +35 -0
- package/dist/docs/skill/wm-tab-list.md +112 -0
- package/dist/docs/skill/wm-tab-panel.md +33 -0
- package/dist/docs/skill/wm-tag-input.md +165 -0
- package/dist/docs/skill/wm-tag-option.md +59 -0
- package/dist/docs/skill/wm-textarea.md +94 -0
- package/dist/docs/skill/wm-timepicker.md +139 -0
- package/dist/docs/skill/wm-toggletip.md +92 -0
- package/dist/docs/skill/wm-uploader.md +129 -0
- package/dist/docs/skill/wm-wrapper.md +6 -0
- package/dist/docs/wm-action-menu.md +111 -0
- package/dist/docs/wm-button.md +137 -0
- package/dist/docs/wm-chart-bar.md +23 -0
- package/dist/docs/wm-chart-column.md +26 -0
- package/dist/docs/wm-chart-legend.md +31 -0
- package/dist/docs/wm-chart-slice.md +14 -0
- package/dist/docs/wm-chart.md +30 -0
- package/dist/docs/wm-date-range.md +215 -0
- package/dist/docs/wm-datepicker.md +210 -0
- package/dist/docs/wm-file-list.md +95 -0
- package/dist/docs/wm-file.md +34 -0
- package/dist/docs/wm-flyout.md +123 -0
- package/dist/docs/wm-input.md +120 -0
- package/dist/docs/wm-line-chart.md +32 -0
- package/dist/docs/wm-menuitem.md +38 -0
- package/dist/docs/wm-modal-footer.md +106 -0
- package/dist/docs/wm-modal-header.md +100 -0
- package/dist/docs/wm-modal.md +127 -0
- package/dist/docs/wm-navigation-hamburger.md +91 -0
- package/dist/docs/wm-navigation-item.md +98 -0
- package/dist/docs/wm-navigation.md +101 -0
- package/dist/docs/wm-navigator.md +99 -0
- package/dist/docs/wm-nested-select.md +107 -0
- package/dist/docs/wm-optgroup.md +28 -0
- package/dist/docs/wm-option.md +24 -0
- package/dist/docs/wm-pagination.md +94 -0
- package/dist/docs/wm-progress-indicator.md +23 -0
- package/dist/docs/wm-progress-monitor.md +27 -0
- package/dist/docs/wm-progress-slice.md +16 -0
- package/dist/docs/wm-search.md +119 -0
- package/dist/docs/wm-select.md +120 -0
- package/dist/docs/wm-snackbar.md +87 -0
- package/dist/docs/wm-tab-item.md +23 -0
- package/dist/docs/wm-tab-list.md +98 -0
- package/dist/docs/wm-tab-panel.md +18 -0
- package/dist/docs/wm-tag-input.md +123 -0
- package/dist/docs/wm-tag-option.md +33 -0
- package/dist/docs/wm-textarea.md +101 -0
- package/dist/docs/wm-timepicker.md +122 -0
- package/dist/docs/wm-toggletip.md +86 -0
- package/dist/docs/wm-uploader.md +114 -0
- package/dist/docs/wm-wrapper.md +7 -0
- package/dist/esm/app-globals-466ed44b.js +101 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/priv-calendar.entry.js +27 -27
- package/dist/esm/priv-chart-popover-old.entry.js +2 -2
- package/dist/esm/priv-chart-popover_2.entry.js +3 -3
- package/dist/esm/priv-navigator-button.entry.js +1 -1
- package/dist/esm/priv-navigator-item.entry.js +1 -1
- package/dist/esm/priv-option-list.entry.js +1 -1
- package/dist/esm/ripple.js +1 -1
- package/dist/esm/wm-action-menu_2.entry.js +5 -4
- package/dist/esm/wm-button.entry.js +1 -1
- package/dist/esm/wm-chart-bar.entry.js +1 -1
- package/dist/esm/wm-chart-column.entry.js +1 -1
- package/dist/esm/wm-chart.entry.js +1 -1
- package/dist/esm/wm-date-range.entry.js +25 -9
- package/dist/esm/wm-datepicker.entry.js +37 -11
- package/dist/esm/wm-file-list.entry.js +1 -1
- package/dist/esm/wm-file.entry.js +1 -1
- package/dist/esm/wm-flyout.entry.js +6 -1
- package/dist/esm/wm-input.entry.js +1 -1
- package/dist/esm/wm-line-chart.entry.js +1 -1
- package/dist/esm/wm-modal-pss_3.entry.js +4 -4
- package/dist/esm/wm-modal_3.entry.js +19 -4
- package/dist/esm/wm-navigation_3.entry.js +4 -4
- package/dist/esm/wm-navigator.entry.js +1 -1
- package/dist/esm/wm-nested-select.entry.js +3 -3
- package/dist/esm/wm-optgroup.entry.js +11 -1
- package/dist/esm/wm-option_2.entry.js +5 -5
- package/dist/esm/wm-pagination.entry.js +1 -1
- package/dist/esm/wm-progress-indicator_3.entry.js +2 -2
- package/dist/esm/wm-search.entry.js +2 -2
- package/dist/esm/wm-snackbar.entry.js +2 -2
- package/dist/esm/wm-tab-item_3.entry.js +6 -6
- package/dist/esm/wm-tag-input.entry.js +2 -2
- package/dist/esm/wm-tag-option.entry.js +8 -0
- package/dist/esm/wm-textarea.entry.js +1 -1
- package/dist/esm/wm-timepicker.entry.js +14 -2
- package/dist/esm/wm-toggletip.entry.js +3 -3
- package/dist/esm/wm-uploader.entry.js +2 -2
- package/dist/esm-es5/app-globals-466ed44b.js +1 -0
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/priv-calendar.entry.js +1 -1
- package/dist/esm-es5/priv-chart-popover-old.entry.js +1 -1
- package/dist/esm-es5/priv-chart-popover_2.entry.js +1 -1
- package/dist/esm-es5/priv-navigator-button.entry.js +1 -1
- package/dist/esm-es5/priv-navigator-item.entry.js +1 -1
- package/dist/esm-es5/priv-option-list.entry.js +1 -1
- package/dist/esm-es5/ripple.js +1 -1
- package/dist/esm-es5/wm-action-menu_2.entry.js +1 -1
- package/dist/esm-es5/wm-button.entry.js +1 -1
- package/dist/esm-es5/wm-chart-bar.entry.js +1 -1
- package/dist/esm-es5/wm-chart-column.entry.js +1 -1
- package/dist/esm-es5/wm-chart.entry.js +1 -1
- package/dist/esm-es5/wm-date-range.entry.js +1 -1
- package/dist/esm-es5/wm-datepicker.entry.js +1 -1
- package/dist/esm-es5/wm-file-list.entry.js +1 -1
- package/dist/esm-es5/wm-file.entry.js +1 -1
- package/dist/esm-es5/wm-flyout.entry.js +1 -1
- package/dist/esm-es5/wm-input.entry.js +1 -1
- package/dist/esm-es5/wm-line-chart.entry.js +1 -1
- package/dist/esm-es5/wm-modal-pss_3.entry.js +1 -1
- package/dist/esm-es5/wm-modal_3.entry.js +1 -1
- package/dist/esm-es5/wm-navigation_3.entry.js +1 -1
- package/dist/esm-es5/wm-navigator.entry.js +1 -1
- package/dist/esm-es5/wm-nested-select.entry.js +1 -1
- package/dist/esm-es5/wm-optgroup.entry.js +1 -1
- package/dist/esm-es5/wm-option_2.entry.js +1 -1
- package/dist/esm-es5/wm-pagination.entry.js +1 -1
- package/dist/esm-es5/wm-progress-indicator_3.entry.js +1 -1
- package/dist/esm-es5/wm-search.entry.js +1 -1
- package/dist/esm-es5/wm-snackbar.entry.js +1 -1
- package/dist/esm-es5/wm-tab-item_3.entry.js +1 -1
- package/dist/esm-es5/wm-tag-input.entry.js +1 -1
- package/dist/esm-es5/wm-textarea.entry.js +1 -1
- package/dist/esm-es5/wm-timepicker.entry.js +1 -1
- package/dist/esm-es5/wm-toggletip.entry.js +1 -1
- package/dist/esm-es5/wm-uploader.entry.js +1 -1
- package/dist/ripple/{p-1fc894ac.system.entry.js → p-012bd307.system.entry.js} +1 -1
- package/dist/ripple/p-03f352dc.entry.js +1 -0
- package/dist/ripple/{p-4f53544d.entry.js → p-03ff4f41.entry.js} +1 -1
- package/dist/ripple/{p-2a03f658.entry.js → p-045aa27f.entry.js} +1 -1
- package/dist/ripple/{p-709d1765.entry.js → p-057ffccb.entry.js} +1 -1
- package/dist/ripple/p-06c3dc14.system.entry.js +1 -0
- package/dist/ripple/{p-ff6fd274.system.entry.js → p-09a80f59.system.entry.js} +1 -1
- package/dist/ripple/{p-3bd8537c.entry.js → p-09fb0a09.entry.js} +1 -1
- package/dist/ripple/p-0a05d3a3.js +1 -0
- package/dist/ripple/{p-3f69041f.entry.js → p-0ab9bac7.entry.js} +1 -1
- package/dist/ripple/{p-332a3e3d.system.entry.js → p-1059cdb9.system.entry.js} +1 -1
- package/dist/ripple/{p-dbdae848.system.entry.js → p-106a9459.system.entry.js} +1 -1
- package/dist/ripple/{p-e1a6ee77.entry.js → p-16381033.entry.js} +1 -1
- package/dist/ripple/{p-b11abb0d.system.entry.js → p-181109f0.system.entry.js} +1 -1
- package/dist/ripple/{p-bb9f54cf.system.entry.js → p-1855c3b1.system.entry.js} +1 -1
- package/dist/ripple/{p-4533241f.entry.js → p-1c25838e.entry.js} +1 -1
- package/dist/ripple/{p-fb6aee09.entry.js → p-1f67b172.entry.js} +1 -1
- package/dist/ripple/{p-a3dd5204.system.entry.js → p-22703bcd.system.entry.js} +1 -1
- package/dist/ripple/{p-a6aef87d.system.entry.js → p-237388c5.system.entry.js} +1 -1
- package/dist/ripple/p-237f5977.system.entry.js +1 -0
- package/dist/ripple/p-25d6cc45.system.js +1 -0
- package/dist/ripple/{p-09d5381c.entry.js → p-299d2d8b.entry.js} +1 -1
- package/dist/ripple/{p-e78f9572.system.entry.js → p-2c1d219f.system.entry.js} +1 -1
- package/dist/ripple/{p-84e04896.entry.js → p-2dbf9636.entry.js} +1 -1
- package/dist/ripple/{p-05dae6a0.entry.js → p-2dc1071a.entry.js} +1 -1
- package/dist/ripple/{p-39bac42a.entry.js → p-3216e2e7.entry.js} +1 -1
- package/dist/ripple/p-3252c04b.system.entry.js +1 -0
- package/dist/ripple/{p-7ca0bb68.system.entry.js → p-32bac954.system.entry.js} +1 -1
- package/dist/ripple/p-33eeaa18.entry.js +1 -0
- package/dist/ripple/p-3441da90.entry.js +1 -0
- package/dist/ripple/p-3502fd33.system.entry.js +1 -0
- package/dist/ripple/{p-f51404f5.entry.js → p-351000b9.entry.js} +1 -1
- package/dist/ripple/{p-bf3eef42.entry.js → p-3c0062c5.entry.js} +1 -1
- package/dist/ripple/{p-c1abc58e.entry.js → p-3d3836ad.entry.js} +1 -1
- package/dist/ripple/p-3e8bfc68.system.entry.js +1 -0
- package/dist/ripple/p-3f403a64.system.entry.js +1 -0
- package/dist/ripple/{p-b974a535.system.entry.js → p-43e8d384.system.entry.js} +1 -1
- package/dist/ripple/p-49dc64ba.entry.js +1 -0
- package/dist/ripple/{p-9d345fc7.system.entry.js → p-4a942d74.system.entry.js} +1 -1
- package/dist/ripple/p-4cc09fa3.system.entry.js +1 -0
- package/dist/ripple/p-5177d4fa.entry.js +1 -0
- package/dist/ripple/p-51fff3a7.system.entry.js +1 -0
- package/dist/ripple/p-54ba0eae.entry.js +1 -0
- package/dist/ripple/{p-c04d0eeb.system.entry.js → p-5609bde2.system.entry.js} +1 -1
- package/dist/ripple/{p-86148143.system.entry.js → p-56e1a71d.system.entry.js} +1 -1
- package/dist/ripple/{p-f94af31c.entry.js → p-578b5443.entry.js} +1 -1
- package/dist/ripple/p-57901fc3.entry.js +1 -0
- package/dist/ripple/{p-463be5be.entry.js → p-57a0cb5f.entry.js} +1 -1
- package/dist/ripple/{p-0db033c3.system.entry.js → p-59b3f92b.system.entry.js} +1 -1
- package/dist/ripple/p-5a533e7c.entry.js +1 -0
- package/dist/ripple/{p-5f092b39.system.entry.js → p-61a0ba92.system.entry.js} +1 -1
- package/dist/ripple/{p-6de83c6f.entry.js → p-623b89e0.entry.js} +1 -1
- package/dist/ripple/{p-6479b06b.entry.js → p-668c0758.entry.js} +1 -1
- package/dist/ripple/p-6a6e98c7.entry.js +1 -0
- package/dist/ripple/{p-b654743f.system.entry.js → p-6c46dd9a.system.entry.js} +1 -1
- package/dist/ripple/{p-4e7ae2c5.system.entry.js → p-6ea254d2.system.entry.js} +1 -1
- package/dist/ripple/p-6f875608.system.entry.js +1 -0
- package/dist/ripple/{p-d05b7cd3.entry.js → p-71a38bd2.entry.js} +1 -1
- package/dist/ripple/{p-dab54a9d.entry.js → p-73a2389d.entry.js} +1 -1
- package/dist/ripple/p-759d87de.entry.js +1 -0
- package/dist/ripple/{p-227b0af9.entry.js → p-75c5ec39.entry.js} +1 -1
- package/dist/ripple/{p-ee729037.system.entry.js → p-7bc3b4ee.system.entry.js} +1 -1
- package/dist/ripple/p-7c7988a3.entry.js +1 -0
- package/dist/ripple/p-81735196.entry.js +1 -0
- package/dist/ripple/{p-a0aba3e0.system.entry.js → p-8376699e.system.entry.js} +1 -1
- package/dist/ripple/{p-503330c1.system.entry.js → p-865208b7.system.entry.js} +1 -1
- package/dist/ripple/{p-28b8a12e.system.entry.js → p-8715d758.system.entry.js} +1 -1
- package/dist/ripple/p-8bfb7664.entry.js +1 -0
- package/dist/ripple/{p-680f5703.entry.js → p-8deb22bc.entry.js} +1 -1
- package/dist/ripple/p-8e32e9de.system.entry.js +1 -0
- package/dist/ripple/{p-bdb10d37.entry.js → p-92e3bf68.entry.js} +1 -1
- package/dist/ripple/{p-0feaaae9.system.entry.js → p-942b323c.system.entry.js} +1 -1
- package/dist/ripple/{p-5173359e.entry.js → p-94fd1dcc.entry.js} +1 -1
- package/dist/ripple/p-991455a2.system.entry.js +1 -0
- package/dist/ripple/p-99a112c8.system.entry.js +1 -0
- package/dist/ripple/p-9a8d91d6.entry.js +1 -0
- package/dist/ripple/{p-e0c0e8b0.system.entry.js → p-9afb642d.system.entry.js} +1 -1
- package/dist/ripple/p-9c850273.system.js +1 -0
- package/dist/ripple/p-a3f9e257.entry.js +1 -0
- package/dist/ripple/p-a5b07241.entry.js +1 -0
- package/dist/ripple/{p-d55bd2b9.entry.js → p-a7a6cf55.system.entry.js} +1 -1
- package/dist/ripple/{p-6f2d3297.system.entry.js → p-a917ea86.system.entry.js} +1 -1
- package/dist/ripple/p-ab5664cd.entry.js +1 -0
- package/dist/ripple/{p-cc028323.entry.js → p-acb04e6e.entry.js} +1 -1
- package/dist/ripple/p-b2624d8f.system.entry.js +1 -0
- package/dist/ripple/p-b5b37960.entry.js +1 -0
- package/dist/ripple/p-b713b6de.system.entry.js +1 -0
- package/dist/ripple/p-b75e9e5f.entry.js +1 -0
- package/dist/ripple/{p-b1924539.system.entry.js → p-b7969fd7.system.entry.js} +1 -1
- package/dist/ripple/{p-a7e637a5.system.entry.js → p-b9596bfc.system.entry.js} +1 -1
- package/dist/ripple/p-b9d3d967.system.entry.js +1 -0
- package/dist/ripple/{p-aafced54.system.entry.js → p-bd365c44.system.entry.js} +1 -1
- package/dist/ripple/p-bd9ab5ae.system.entry.js +1 -0
- package/dist/ripple/p-c0028f4d.system.entry.js +1 -0
- package/dist/ripple/p-c7d3ee52.entry.js +1 -0
- package/dist/ripple/p-c8e4e95b.entry.js +1 -0
- package/dist/ripple/p-c996ade8.entry.js +1 -0
- package/dist/ripple/p-ca8378b0.entry.js +1 -0
- package/dist/ripple/{p-bd37dd6f.entry.js → p-cc2176ad.entry.js} +1 -1
- package/dist/ripple/p-cd496e63.entry.js +1 -0
- package/dist/ripple/p-d0653c32.entry.js +1 -0
- package/dist/ripple/{p-9a5d11cb.entry.js → p-d11e5029.entry.js} +1 -1
- package/dist/ripple/p-d3d0b626.entry.js +1 -0
- package/dist/ripple/p-d4899263.entry.js +1 -0
- package/dist/ripple/p-dc82f194.entry.js +1 -0
- package/dist/ripple/{p-a6ef995c.system.entry.js → p-ddfb976f.system.entry.js} +1 -1
- package/dist/ripple/{p-ee26ba53.entry.js → p-e1899945.entry.js} +1 -1
- package/dist/ripple/p-e26b9711.system.entry.js +1 -0
- package/dist/ripple/{p-10aea5ee.system.entry.js → p-e31f597a.system.entry.js} +1 -1
- package/dist/ripple/p-e35de3cd.system.entry.js +1 -0
- package/dist/ripple/p-e3effa1a.system.entry.js +1 -0
- package/dist/ripple/p-e674e6a7.system.entry.js +1 -0
- package/dist/ripple/{p-8e6e868a.entry.js → p-e7ffd796.entry.js} +1 -1
- package/dist/ripple/p-e800717d.entry.js +1 -0
- package/dist/ripple/p-eab35bea.entry.js +1 -0
- package/dist/ripple/{p-df9d5b14.system.entry.js → p-ebdf16fa.system.entry.js} +1 -1
- package/dist/ripple/p-ed9fc1c1.system.entry.js +1 -0
- package/dist/ripple/p-eda49f0e.entry.js +1 -0
- package/dist/ripple/p-ee33fd7f.system.entry.js +1 -0
- package/dist/ripple/p-ee5f43fe.system.entry.js +1 -0
- package/dist/ripple/{p-928b3e5e.entry.js → p-f0ee3616.entry.js} +1 -1
- package/dist/ripple/{p-02c8bf15.system.entry.js → p-f1215c25.system.entry.js} +1 -1
- package/dist/ripple/p-f148ae9d.system.entry.js +1 -0
- package/dist/ripple/p-f307aabe.entry.js +1 -0
- package/dist/ripple/p-f4f6c904.system.entry.js +1 -0
- package/dist/ripple/p-f58833ae.system.entry.js +1 -0
- package/dist/ripple/p-f7fc6350.system.js +1 -1
- package/dist/ripple/p-f881cdc8.system.entry.js +1 -0
- package/dist/ripple/{p-444feb7d.system.entry.js → p-fbb37b4b.system.entry.js} +1 -1
- package/dist/ripple/{p-40e8071c.system.entry.js → p-fc905b2f.system.entry.js} +1 -1
- package/dist/ripple/ripple.esm.js +1 -1
- package/dist/ripple/ripple.js +1 -1
- package/dist/types/components/charts/priv-chart-popover/priv-chart-popover.d.ts +5 -0
- package/dist/types/components/charts/priv-chart-popover-old/priv-chart-popover-old.d.ts +5 -0
- package/dist/types/components/charts/wm-chart/wm-chart-slice.d.ts +52 -0
- package/dist/types/components/charts/wm-chart/wm-chart.d.ts +111 -0
- package/dist/types/components/charts/wm-chart-bar/wm-chart-bar.d.ts +131 -0
- package/dist/types/components/charts/wm-chart-column/wm-chart-column.d.ts +100 -0
- package/dist/types/components/charts/wm-chart-legend/wm-chart-legend.d.ts +77 -0
- package/dist/types/components/charts/wm-line-chart/wm-line-chart.d.ts +134 -0
- package/dist/types/components/charts/wm-progress-monitor/wm-progress-indicator.d.ts +52 -0
- package/dist/types/components/charts/wm-progress-monitor/wm-progress-monitor.d.ts +84 -0
- package/dist/types/components/charts/wm-progress-monitor/wm-progress-slice.d.ts +44 -0
- package/dist/types/components/datepickers/priv-calendar/priv-calendar.d.ts +6 -2
- package/dist/types/components/datepickers/wm-date-range.d.ts +186 -0
- package/dist/types/components/datepickers/wm-datepicker.d.ts +170 -2
- package/dist/types/components/selects/priv-option-list/priv-option-list.d.ts +6 -0
- package/dist/types/components/selects/wm-nested-select/wm-nested-select.d.ts +162 -0
- package/dist/types/components/selects/wm-optgroup/wm-optgroup.d.ts +87 -0
- package/dist/types/components/selects/wm-option/wm-option.d.ts +117 -0
- package/dist/types/components/selects/wm-select/wm-select.d.ts +164 -0
- package/dist/types/components/wm-action-menu/wm-action-menu.d.ts +122 -0
- package/dist/types/components/wm-button/wm-button.d.ts +170 -2
- package/dist/types/components/wm-file/wm-file.d.ts +92 -0
- package/dist/types/components/wm-file-list/wm-file-list.d.ts +71 -0
- package/dist/types/components/wm-flyout/wm-flyout.d.ts +193 -0
- package/dist/types/components/wm-input/wm-input.d.ts +158 -0
- package/dist/types/components/wm-menuitem/wm-menuitem.d.ts +58 -0
- package/dist/types/components/wm-modal/wm-modal-footer.d.ts +54 -0
- package/dist/types/components/wm-modal/wm-modal-header.d.ts +30 -0
- package/dist/types/components/wm-modal/wm-modal.d.ts +148 -0
- package/dist/types/components/wm-modal-pss/wm-modal-pss-footer.d.ts +4 -0
- package/dist/types/components/wm-modal-pss/wm-modal-pss-header.d.ts +4 -0
- package/dist/types/components/wm-modal-pss/wm-modal-pss.d.ts +4 -0
- package/dist/types/components/wm-navigation/wm-navigation-hamburger.d.ts +34 -0
- package/dist/types/components/wm-navigation/wm-navigation-item.d.ts +41 -0
- package/dist/types/components/wm-navigation/wm-navigation.d.ts +50 -0
- package/dist/types/components/wm-navigator/priv-navigator-button/priv-navigator-button.d.ts +4 -0
- package/dist/types/components/wm-navigator/priv-navigator-item/priv-navigator-item.d.ts +4 -0
- package/dist/types/components/wm-navigator/wm-navigator.d.ts +91 -3
- package/dist/types/components/wm-pagination/wm-pagination.d.ts +90 -0
- package/dist/types/components/wm-search/wm-search.d.ts +148 -5
- package/dist/types/components/wm-snackbar/wm-snackbar.d.ts +94 -0
- package/dist/types/components/wm-tabs/wm-tab-item/wm-tab-item.d.ts +43 -2
- package/dist/types/components/wm-tabs/wm-tab-list/wm-tab-list.d.ts +93 -0
- package/dist/types/components/wm-tabs/wm-tab-panel/wm-tab-panel.d.ts +28 -2
- package/dist/types/components/wm-tag-input/wm-tag-input.d.ts +185 -0
- package/dist/types/components/wm-tag-input/wm-tag-option/wm-tag-option.d.ts +68 -0
- package/dist/types/components/wm-textarea/wm-textarea.d.ts +97 -0
- package/dist/types/components/wm-timepicker/wm-timepicker.d.ts +145 -0
- package/dist/types/components/wm-toggletip/wm-toggletip.d.ts +74 -0
- package/dist/types/components/wm-uploader/wm-uploader.d.ts +128 -0
- package/dist/types/components/wm-wrapper/wm-wrapper.d.ts +3 -0
- package/dist/types/components.d.ts +10513 -57
- package/package.json +2 -2
- package/dist/ripple/p-065b0134.entry.js +0 -1
- package/dist/ripple/p-210773eb.entry.js +0 -1
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
### Chart
|
|
2
|
+
- **Element:** `<wm-chart>`
|
|
3
|
+
- **Status:** stable
|
|
4
|
+
|
|
5
|
+
**Purpose:** Composition chart component rendering doughnut or stacked bar charts. Composed of a parent
|
|
6
|
+
wm-chart element and wm-chart-slice children. Has 3 doughnut subtypes and 5 bar subtypes,
|
|
7
|
+
each designed for a specific composition use case.
|
|
8
|
+
|
|
9
|
+
**Important:** The bar subtypes (`bar2`-`bar7`) are COMPOSITION patterns -- they show parts
|
|
10
|
+
of a whole for specific qualitative use cases. They are NOT general-purpose bar charts. For
|
|
11
|
+
general comparison or distribution bar charts, use wm-chart-bar or wm-chart-column instead.
|
|
12
|
+
|
|
13
|
+
**Variants / types:**
|
|
14
|
+
|
|
15
|
+
- Slices without an `amount` are not rendered but still occupy a color slot, allowing
|
|
16
|
+
consistent color assignment when some data points are missing.
|
|
17
|
+
- The `show-legend` prop controls legend visibility but the legend is always read by screen
|
|
18
|
+
readers regardless of visibility.
|
|
19
|
+
- For data-driven bar charts (comparison, distribution), prefer wm-chart-bar or
|
|
20
|
+
wm-chart-column.
|
|
21
|
+
|
|
22
|
+
**Props:**
|
|
23
|
+
- `chart-type` -- Chart subtype. Doughnut subtypes (`doughnut1`-`doughnut3`) and bar composition
|
|
24
|
+
subtypes (`bar2`-`bar7`) -- each tailored to a specific composition use case.
|
|
25
|
+
- `label` -- Accessible label for the chart. Required -- the component throws an error if
|
|
26
|
+
omitted. Used as the `aria-label` on the chart container and as the visual chart label.
|
|
27
|
+
- `label-position` -- Position of the chart label relative to the chart. When `"none"`, no label is
|
|
28
|
+
rendered -- an external label matching `label` must be visually grouped with the chart.
|
|
29
|
+
- `label-width` -- Controls the bar label width. Only applies to `bar6` and `bar7` subtypes.
|
|
30
|
+
- `not-started-color` -- When true, applies a gray color to the first slice to represent a
|
|
31
|
+
"not started" state. Only applies to `bar5`.
|
|
32
|
+
- `print-mode` -- When true, slice values are included in the legend and keyboard interaction
|
|
33
|
+
instructions are removed from the DOM -- suitable for printed output.
|
|
34
|
+
- `print-mode-format` -- Format for legend values when `print-mode` is enabled.
|
|
35
|
+
- `show-bar-legend` -- Show or hide the y-axis bar legend. Only applies to `bar7`.
|
|
36
|
+
- `show-grid` -- Show or hide the value grid lines. Only applies to `bar6`.
|
|
37
|
+
- `show-legend` -- Show or hide the legend below the chart. The legend is still read by screen
|
|
38
|
+
readers regardless of this setting.
|
|
39
|
+
- `subinfo` -- Optional secondary text displayed beneath the chart label. Not shown when
|
|
40
|
+
`label-position` is `"none"`.
|
|
41
|
+
- `value-format` -- Controls how individual segment values are displayed on the chart.
|
|
42
|
+
|
|
43
|
+
**Accessibility:**
|
|
44
|
+
|
|
45
|
+
- `label` is required for accessibility -- the chart throws if omitted.
|
|
46
|
+
- The chart renders with `role="application"` and an `aria-roledescription` of
|
|
47
|
+
"Interactive chart". Each segment is individually focusable with an `aria-label`.
|
|
48
|
+
- `print-mode` removes keyboard interaction instructions for printed output.
|
|
49
|
+
- **Keyboard:** - **Tab**: Enters the chart. Subsequent Tab exits the chart.
|
|
50
|
+
- **Arrow keys**: Navigate between slices/segments.
|
|
51
|
+
- **Enter / Space**: Opens the data popover for the focused segment.
|
|
52
|
+
- **Escape**: Closes the popover and returns to the chart container.
|
|
53
|
+
|
|
54
|
+
**Code example:**
|
|
55
|
+
|
|
56
|
+
_Doughnut chart_
|
|
57
|
+
|
|
58
|
+
```html
|
|
59
|
+
<wm-chart label="Enrollment by status">
|
|
60
|
+
<wm-chart-slice legend="Enrolled" amount="310"></wm-chart-slice>
|
|
61
|
+
<wm-chart-slice legend="Not enrolled" amount="90"></wm-chart-slice>
|
|
62
|
+
</wm-chart>
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
_Doughnut chart_
|
|
66
|
+
|
|
67
|
+
```react
|
|
68
|
+
<WmChart label="Enrollment by status">
|
|
69
|
+
<WmChartSlice legend="Enrolled" amount="310" />
|
|
70
|
+
<WmChartSlice legend="Not enrolled" amount="90" />
|
|
71
|
+
</WmChart>
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
_Bar composition chart_
|
|
75
|
+
|
|
76
|
+
```html
|
|
77
|
+
<wm-chart label="Completion by cohort" chart-type="bar5">
|
|
78
|
+
<wm-chart-slice legend="Completed" amount="200"></wm-chart-slice>
|
|
79
|
+
<wm-chart-slice legend="In progress" amount="75"></wm-chart-slice>
|
|
80
|
+
<wm-chart-slice legend="Not started" amount="25"></wm-chart-slice>
|
|
81
|
+
</wm-chart>
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
_Bar composition chart_
|
|
85
|
+
|
|
86
|
+
```react
|
|
87
|
+
<WmChart label="Completion by cohort" chartType="bar5">
|
|
88
|
+
<WmChartSlice legend="Completed" amount="200" />
|
|
89
|
+
<WmChartSlice legend="In progress" amount="75" />
|
|
90
|
+
<WmChartSlice legend="Not started" amount="25" />
|
|
91
|
+
</WmChart>
|
|
92
|
+
```
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
### Date Range
|
|
2
|
+
- **Element:** `<wm-date-range>`
|
|
3
|
+
- **Status:** stable
|
|
4
|
+
|
|
5
|
+
**Purpose:** Two linked date inputs (start and end) with a shared calendar popup for selecting a date
|
|
6
|
+
range. Users can type or click to set each date. Provides separate error states for start
|
|
7
|
+
and end, and emits distinct blur events for each input. Use instead of two native
|
|
8
|
+
`<input type="date">` elements when a range is required.
|
|
9
|
+
|
|
10
|
+
**When to use:**
|
|
11
|
+
|
|
12
|
+
- **Collecting a bounded time period with a start and end** -- when a user needs to define a window of time (a reporting period, an enrollment window, a project timeline), use Date Range to capture both boundary dates as a single, semantically linked input rather than two independent Datepickers.
|
|
13
|
+
- **Filtering data by a date range** -- when a user is narrowing results by a time window (e.g., "show records between these two dates"), Date Range provides the right interaction model with a shared calendar that highlights the selected span visually.
|
|
14
|
+
- **Enforcing range integrity at the form level** -- when the application needs to validate that the start date precedes the end date, Date Range exposes the right blur events and standardized error messages to handle all range validation scenarios consistently.
|
|
15
|
+
- **Allowing range selection via a shared calendar popup** -- when users benefit from seeing both dates in context on a calendar, Date Range's shared popup highlights the full selected range, which two independent Datepickers cannot do.
|
|
16
|
+
|
|
17
|
+
**Do not use for:**
|
|
18
|
+
|
|
19
|
+
- **Two separate dates that happen to be related** -- if the two dates are logically a range, use Date Range; two independent Datepickers have no shared calendar, no range highlighting, and no built-in mechanism to enforce that start precedes end.
|
|
20
|
+
- **Selecting a single point in time** -- if the user is selecting one date rather than a span, use wm-datepicker; Date Range always manages two values and two validation states, which is unnecessary overhead for a single date.
|
|
21
|
+
|
|
22
|
+
**Variants / types:**
|
|
23
|
+
|
|
24
|
+
_None documented_
|
|
25
|
+
|
|
26
|
+
**Props:**
|
|
27
|
+
- `date-format` -- The date format shown in the input placeholders and announced to screen readers.
|
|
28
|
+
- `disabled` -- Disables the entire date range component, preventing all interaction.
|
|
29
|
+
- `error-message` -- Puts the component in an error state and displays this message below both
|
|
30
|
+
inputs. Use with `invalid-start` and/or `invalid-end` to highlight specific fields.
|
|
31
|
+
- `invalid-end` -- Puts the end date input in an error state (red border). Use with
|
|
32
|
+
`error-message`.
|
|
33
|
+
- `invalid-start` -- Puts the start date input in an error state (red border). Use with
|
|
34
|
+
`error-message`.
|
|
35
|
+
- `label-end` -- Visible label for the end date input. Required for accessibility.
|
|
36
|
+
- `label-start` -- Visible label for the start date input. Required for accessibility.
|
|
37
|
+
- `preselected` -- The ISO date (YYYY-MM-DD) the calendar popup opens to when first opened and
|
|
38
|
+
no `value-start` is set. Falls back to today's date if omitted.
|
|
39
|
+
- `required-field` -- Displays a required-field asterisk (*) next to each label.
|
|
40
|
+
- `value-end` -- The value of the end date input, in the format specified by `date-format`.
|
|
41
|
+
Updated as the user types or picks from the calendar.
|
|
42
|
+
- `value-start` -- The value of the start date input, in the format specified by `date-format`.
|
|
43
|
+
Updated as the user types or picks from the calendar.
|
|
44
|
+
|
|
45
|
+
**Events:**
|
|
46
|
+
- `wmEndInputBlur`
|
|
47
|
+
- `wmRangeSelection`
|
|
48
|
+
- `wmStartInputBlur`
|
|
49
|
+
|
|
50
|
+
**Methods:**
|
|
51
|
+
- `isValidISO(input?: string) => Promise<boolean>`
|
|
52
|
+
- `reformatDate(inputFormat: string, outputFormat: string, date?: string) => Promise<string>`
|
|
53
|
+
|
|
54
|
+
**Accessibility:**
|
|
55
|
+
|
|
56
|
+
- `label-start` and `label-end` are required for accessibility -- always provide both even if
|
|
57
|
+
visually implied by context.
|
|
58
|
+
- The calendar toggle announces "Select range" to screen readers and reflects `aria-expanded`.
|
|
59
|
+
- Validation errors are announced via an `aria-live` region when `error-message` changes.
|
|
60
|
+
- The calendar popup hides its toggle when there is no room to display it; users can still
|
|
61
|
+
type dates directly into the inputs.
|
|
62
|
+
- **Keyboard:** - **Input fields**: Tab moves focus between start input, end input, and the calendar toggle.
|
|
63
|
+
- **Calendar toggle**: Space / Enter opens the calendar; Escape closes it and returns focus.
|
|
64
|
+
- **Day grid**: Arrow keys navigate dates; Enter selects. After selecting the first date,
|
|
65
|
+
the calendar resets for a second selection. Selecting a date earlier than the first date
|
|
66
|
+
automatically swaps start and end.
|
|
67
|
+
- **Month/year selectors**: Arrow keys cycle values; Tab/Shift+Tab move focus through controls.
|
|
68
|
+
|
|
69
|
+
**Related components:**
|
|
70
|
+
|
|
71
|
+
- `<wm-datepicker>` -- if only a single date is needed rather than a start-and-end pair, use Datepicker; Date Range always manages two values and is only appropriate when both are required together.
|
|
72
|
+
- `<wm-timepicker>` -- if the range also needs to capture times of day, Date Range has no time input; pair it with Timepicker fields for the start and end times separately.
|
|
73
|
+
- `<wm-select>` -- if the user is choosing from a predefined list of named time periods (e.g., "Q1 2025", "Fall Semester") rather than specifying arbitrary dates, Select is more appropriate; Date Range is for open-ended date entry.
|
|
74
|
+
|
|
75
|
+
**Code example:**
|
|
76
|
+
|
|
77
|
+
_Basic date range_
|
|
78
|
+
|
|
79
|
+
```html
|
|
80
|
+
<wm-date-range label-start="Start date" label-end="End date"></wm-date-range>
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
_Basic date range_
|
|
84
|
+
|
|
85
|
+
```react
|
|
86
|
+
// The component does not update its own values after a calendar selection --
|
|
87
|
+
// the app must call reformatDate and set valueStart/valueEnd imperatively via a ref.
|
|
88
|
+
const ref = useRef(null);
|
|
89
|
+
|
|
90
|
+
function getFormatName(format) {
|
|
91
|
+
const map = { 'mm/dd/yyyy': 'US', 'dd/mm/yyyy': 'INT', 'yyyy/mm/dd': 'ISO' };
|
|
92
|
+
return format ? map[format] : 'US';
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// event.detail is { startDate: { iso, us, int }, endDate: { iso, us, int } }
|
|
96
|
+
const handleRangeSelection = async (event) => {
|
|
97
|
+
const dr = ref.current;
|
|
98
|
+
const fmt = getFormatName(dr.getAttribute('date-format'));
|
|
99
|
+
dr.valueStart = await dr.reformatDate('ISO', fmt, event.detail.startDate.iso);
|
|
100
|
+
dr.valueEnd = await dr.reformatDate('ISO', fmt, event.detail.endDate.iso);
|
|
101
|
+
dr.errorMessage = '';
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
const handleInputBlurred = async (field) => {
|
|
105
|
+
const dr = ref.current;
|
|
106
|
+
const fmt = getFormatName(dr.getAttribute('date-format'));
|
|
107
|
+
const value = field === 'start' ? dr.valueStart : dr.valueEnd;
|
|
108
|
+
if (value) {
|
|
109
|
+
const iso = await dr.reformatDate(fmt, 'ISO', value);
|
|
110
|
+
if (await dr.isValidISO(iso)) {
|
|
111
|
+
const display = await dr.reformatDate('ISO', fmt, iso);
|
|
112
|
+
if (field === 'start') dr.valueStart = display;
|
|
113
|
+
else dr.valueEnd = display;
|
|
114
|
+
dr.errorMessage = '';
|
|
115
|
+
dr.invalidStart = false;
|
|
116
|
+
dr.invalidEnd = false;
|
|
117
|
+
} else {
|
|
118
|
+
dr.errorMessage = `Please enter a valid date in the format ${dr.getAttribute('date-format') ?? 'mm/dd/yyyy'}`;
|
|
119
|
+
if (field === 'start') dr.invalidStart = true;
|
|
120
|
+
else dr.invalidEnd = true;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
};
|
|
124
|
+
|
|
125
|
+
<WmDateRange
|
|
126
|
+
ref={ref}
|
|
127
|
+
labelStart="Start date"
|
|
128
|
+
labelEnd="End date"
|
|
129
|
+
onWmRangeSelection={handleRangeSelection}
|
|
130
|
+
onWmStartInputBlur={() => handleInputBlurred('start')}
|
|
131
|
+
onWmEndInputBlur={() => handleInputBlurred('end')}
|
|
132
|
+
/>
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
_Required fields with validation_
|
|
136
|
+
|
|
137
|
+
```html
|
|
138
|
+
<wm-date-range label-start="From" label-end="To" required-field></wm-date-range>
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
_Required fields with validation_
|
|
142
|
+
|
|
143
|
+
```react
|
|
144
|
+
<WmDateRange
|
|
145
|
+
ref={ref}
|
|
146
|
+
labelStart="From"
|
|
147
|
+
labelEnd="To"
|
|
148
|
+
requiredField={true}
|
|
149
|
+
onWmRangeSelection={handleRangeSelection}
|
|
150
|
+
onWmStartInputBlur={() => handleInputBlurred('start')}
|
|
151
|
+
onWmEndInputBlur={() => handleInputBlurred('end')}
|
|
152
|
+
/>
|
|
153
|
+
```
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
### Datepicker
|
|
2
|
+
- **Element:** `<wm-datepicker>`
|
|
3
|
+
- **Status:** stable
|
|
4
|
+
|
|
5
|
+
**Purpose:** Date input that lets users type a date or pick one from a calendar popup. Supports
|
|
6
|
+
configurable date formats, pre-selection, validation, and full keyboard navigation of the calendar.
|
|
7
|
+
Use instead of native `<input type="date">`.
|
|
8
|
+
|
|
9
|
+
**When to use:**
|
|
10
|
+
|
|
11
|
+
- **Collecting a bounded time period with a start and end** -- when a user needs to define a window of time (a reporting period, an enrollment window, a project timeline), use Date Range to capture both boundary dates as a single, semantically linked input rather than two independent Datepickers.
|
|
12
|
+
- **Filtering data by a date range** -- when a user is narrowing results by a time window (e.g., "show records between these two dates"), Date Range provides the right interaction model with a shared calendar that highlights the selected span visually.
|
|
13
|
+
- **Enforcing range integrity at the form level** -- when the application needs to validate that the start date precedes the end date, Date Range exposes the right blur events and standardized error messages to handle all range validation scenarios consistently.
|
|
14
|
+
- **Allowing range selection via a shared calendar popup** -- when users benefit from seeing both dates in context on a calendar, Date Range's shared popup highlights the full selected range, which two independent Datepickers cannot do.
|
|
15
|
+
|
|
16
|
+
**Do not use for:**
|
|
17
|
+
|
|
18
|
+
- **Two separate dates that happen to be related** -- if the two dates are logically a range, use Date Range; two independent Datepickers have no shared calendar, no range highlighting, and no built-in mechanism to enforce that start precedes end.
|
|
19
|
+
- **Selecting a single point in time** -- if the user is selecting one date rather than a span, use wm-datepicker; Date Range always manages two values and two validation states, which is unnecessary overhead for a single date.
|
|
20
|
+
|
|
21
|
+
**Variants / types:**
|
|
22
|
+
|
|
23
|
+
_None documented_
|
|
24
|
+
|
|
25
|
+
**Props:**
|
|
26
|
+
- `date-format` -- The expected date format. Shown in the input placeholder and announced to screen reader users.
|
|
27
|
+
- `disabled` -- Disables the datepicker, preventing all interaction.
|
|
28
|
+
- `error-message` -- Puts the component in an error state and displays this message below the input.
|
|
29
|
+
- `label` -- Visible label for the input. Required even when `label-position` is `'none'` -- used as the ARIA accessible name.
|
|
30
|
+
- `label-position` -- Position of the label relative to the input. `'none'` hides the label visually but keeps it accessible via `aria-label`.
|
|
31
|
+
- `preselected` -- The date the calendar popup focuses when first opened, in ISO format (YYYY-MM-DD). Falls back to the parsed `value`, then the current date if neither can be parsed.
|
|
32
|
+
- `required-field` -- Displays a required-field asterisk (*) next to the label.
|
|
33
|
+
- `value` -- The date displayed in the input field, in the format specified by `date-format`. Updated as the user types. Can also be set programmatically by the application.
|
|
34
|
+
|
|
35
|
+
**Events:**
|
|
36
|
+
- `wmDatepickerDateSelected`
|
|
37
|
+
- `wmDatepickerInputBlurred`
|
|
38
|
+
|
|
39
|
+
**Methods:**
|
|
40
|
+
- `isValidIso(input?: string) => Promise<boolean>`
|
|
41
|
+
- `reformatDate(inputFormat: "US" | "INT" | "ISO", outputFormat: "US" | "INT" | "ISO", date?: string) => Promise<string>`
|
|
42
|
+
|
|
43
|
+
**Accessibility:**
|
|
44
|
+
|
|
45
|
+
- `label` is required even when `label-position` is `"none"` -- it becomes the input's `aria-label`.
|
|
46
|
+
- The calendar toggle button announces "Select date" to screen readers and reflects `aria-expanded`.
|
|
47
|
+
- Validation errors are announced via an `aria-live` region when `error-message` changes.
|
|
48
|
+
- When the input value cannot be parsed as a valid date, the calendar opens to the current date.
|
|
49
|
+
- **Keyboard:** - **Input field**: Tab moves focus to the calendar toggle button.
|
|
50
|
+
- **Calendar toggle**: Space / Enter / Down Arrow opens the calendar; Shift+Tab returns to the input.
|
|
51
|
+
- **Day grid**: Arrow keys navigate dates; Enter selects; Escape closes and returns focus to the toggle;
|
|
52
|
+
Home/End jump to the first/last day of the month; Tab cycles through calendar controls.
|
|
53
|
+
- **Month/year selectors**: Arrow keys cycle values; Tab/Shift+Tab move focus clockwise/counter-clockwise.
|
|
54
|
+
|
|
55
|
+
**Related components:**
|
|
56
|
+
|
|
57
|
+
- `<wm-datepicker>` -- if only a single date is needed rather than a start-and-end pair, use Datepicker; Date Range always manages two values and is only appropriate when both are required together.
|
|
58
|
+
- `<wm-timepicker>` -- if the range also needs to capture times of day, Date Range has no time input; pair it with Timepicker fields for the start and end times separately.
|
|
59
|
+
- `<wm-select>` -- if the user is choosing from a predefined list of named time periods (e.g., "Q1 2025", "Fall Semester") rather than specifying arbitrary dates, Select is more appropriate; Date Range is for open-ended date entry.
|
|
60
|
+
|
|
61
|
+
**Code example:**
|
|
62
|
+
|
|
63
|
+
_Basic datepicker_
|
|
64
|
+
|
|
65
|
+
```html
|
|
66
|
+
<wm-datepicker label="Start date"></wm-datepicker>
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
_Basic datepicker_
|
|
70
|
+
|
|
71
|
+
```react
|
|
72
|
+
// The component does not update its own value after a calendar selection --
|
|
73
|
+
// the app must call reformatDate and set value/errorMessage imperatively via a ref.
|
|
74
|
+
const ref = useRef(null);
|
|
75
|
+
|
|
76
|
+
function getFormatName(format) {
|
|
77
|
+
const map = { 'mm/dd/yyyy': 'US', 'dd/mm/yyyy': 'INT', 'yyyy/mm/dd': 'ISO' };
|
|
78
|
+
return format ? map[format] : 'US';
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// event.detail is { date: string } -- ISO 8601 (YYYY-MM-DD)
|
|
82
|
+
const handleDateSelected = async (event) => {
|
|
83
|
+
const dp = ref.current;
|
|
84
|
+
const fmt = getFormatName(dp.getAttribute('date-format'));
|
|
85
|
+
dp.value = await dp.reformatDate('ISO', fmt, event.detail.date);
|
|
86
|
+
dp.errorMessage = '';
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
const handleInputBlurred = async () => {
|
|
90
|
+
const dp = ref.current;
|
|
91
|
+
const fmt = getFormatName(dp.getAttribute('date-format'));
|
|
92
|
+
if (dp.value) {
|
|
93
|
+
const iso = await dp.reformatDate(fmt, 'ISO', dp.value);
|
|
94
|
+
if (await dp.isValidIso(iso)) {
|
|
95
|
+
dp.value = await dp.reformatDate('ISO', fmt, iso);
|
|
96
|
+
dp.errorMessage = '';
|
|
97
|
+
} else {
|
|
98
|
+
dp.errorMessage = `Please enter a valid date in the format ${dp.getAttribute('date-format') ?? 'mm/dd/yyyy'}`;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
const handleBlur = () => {
|
|
104
|
+
const dp = ref.current;
|
|
105
|
+
if (dp.requiredField && dp.value === '') dp.errorMessage = 'A date is required';
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
<WmDatepicker
|
|
109
|
+
ref={ref}
|
|
110
|
+
label="Start date"
|
|
111
|
+
onWmDatepickerDateSelected={handleDateSelected}
|
|
112
|
+
onWmDatepickerInputBlurred={handleInputBlurred}
|
|
113
|
+
onBlur={handleBlur}
|
|
114
|
+
/>
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
_Required field with validation_
|
|
118
|
+
|
|
119
|
+
```html
|
|
120
|
+
<wm-datepicker label="Date of birth" required-field></wm-datepicker>
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
_Required field with validation_
|
|
124
|
+
|
|
125
|
+
```react
|
|
126
|
+
<WmDatepicker
|
|
127
|
+
ref={ref}
|
|
128
|
+
label="Date of birth"
|
|
129
|
+
requiredField={true}
|
|
130
|
+
onWmDatepickerDateSelected={handleDateSelected}
|
|
131
|
+
onWmDatepickerInputBlurred={handleInputBlurred}
|
|
132
|
+
onBlur={handleBlur}
|
|
133
|
+
/>
|
|
134
|
+
```
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
### File List
|
|
2
|
+
- **Element:** `<wm-file-list>`
|
|
3
|
+
- **Status:** stable
|
|
4
|
+
|
|
5
|
+
**Purpose:** Read-only list of files with optional preview and download actions. Visually similar to the
|
|
6
|
+
Uploader but with no upload capability. Use when displaying existing files users can view or
|
|
7
|
+
download, not when they need to upload new ones.
|
|
8
|
+
|
|
9
|
+
**When to use:**
|
|
10
|
+
|
|
11
|
+
- **Displaying files already associated with a record** -- when a page or form needs to show files that have previously been uploaded or attached (e.g., supporting documents on a profile, attachments on a submission), use File List to surface them with consistent metadata and actions.
|
|
12
|
+
- **Allowing users to download or preview existing files** -- when the user's relationship to the files is read-access (they need to open or save a file but not replace it), use File List with file-actions="preview download" on each wm-file.
|
|
13
|
+
- **Surfacing file-level error states** -- when a specific file in the list has failed validation or processing, use the error-message property on the individual wm-file to communicate the problem at the file level rather than at the form level.
|
|
14
|
+
|
|
15
|
+
**Do not use for:**
|
|
16
|
+
|
|
17
|
+
- **Accepting new file uploads** -- File List is explicitly read-only and has no upload mechanism; if users need to add files, use wm-uploader instead, and pair it with File List to show what has already been uploaded.
|
|
18
|
+
- **Empty states** -- File List has no empty state handling built in; if the list may be empty and that state needs a message or call to action, the surrounding page must handle that.
|
|
19
|
+
- **General-purpose lists of records** -- File List is purpose-built for files with extensions, metadata, and file-specific actions; it is not a substitute for a generic list or table of records.
|
|
20
|
+
|
|
21
|
+
**Variants / types:**
|
|
22
|
+
|
|
23
|
+
_None documented_
|
|
24
|
+
|
|
25
|
+
**Props:**
|
|
26
|
+
- `show-info` -- Which metadata to display for each file alongside its name. Propagated
|
|
27
|
+
automatically to all wm-file children.
|
|
28
|
+
|
|
29
|
+
**Related components:**
|
|
30
|
+
|
|
31
|
+
- `<wm-uploader>` -- if users need to add new files, use Uploader; File List is strictly for displaying and acting on files that already exist. The two are commonly paired: Uploader to add, File List to review what has been added.
|
|
32
|
+
|
|
33
|
+
**Code example:**
|
|
34
|
+
|
|
35
|
+
_File list with default metadata (last-updated)_
|
|
36
|
+
|
|
37
|
+
```html
|
|
38
|
+
<wm-file-list>
|
|
39
|
+
<wm-file id="file-1" name="report" type="pdf" last-updated="1/28/2020 5:29 PM"></wm-file>
|
|
40
|
+
<wm-file id="file-2" name="thesis" type="docx" last-updated="3/15/2024 9:00 AM"></wm-file>
|
|
41
|
+
</wm-file-list>
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
_File list with managed state_
|
|
45
|
+
|
|
46
|
+
```react
|
|
47
|
+
// wm-file-list does not manage its own state -- drive the file list from React state.
|
|
48
|
+
// wmFileDelete fires on the wm-file element; use e.target.id to remove the matching entry.
|
|
49
|
+
// showInfo on wm-file-list propagates automatically to all wm-file children.
|
|
50
|
+
const [files, setFiles] = useState([
|
|
51
|
+
{ id: "file-1", name: "annual-report", type: "pdf", lastUpdated: "1/28/2024 5:29 PM" },
|
|
52
|
+
{ id: "file-2", name: "budget-summary", type: "xlsx", lastUpdated: "3/15/2024 9:00 AM" },
|
|
53
|
+
]);
|
|
54
|
+
|
|
55
|
+
<WmFileList>
|
|
56
|
+
{files.map((f) => (
|
|
57
|
+
<WmFile key={f.id} id={f.id} name={f.name} type={f.type} lastUpdated={f.lastUpdated}
|
|
58
|
+
onWmFileDelete={(e) => setFiles((prev) => prev.filter((f) => f.id !== e.target.id))} />
|
|
59
|
+
))}
|
|
60
|
+
</WmFileList>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
_Show all metadata_
|
|
64
|
+
|
|
65
|
+
```html
|
|
66
|
+
<wm-file-list show-info="all">
|
|
67
|
+
<wm-file id="file-1" name="report" type="pdf"
|
|
68
|
+
size="3 MB" last-updated="1/28/2020 5:29 PM" uploaded-by="Uploaded by Smith, John">
|
|
69
|
+
</wm-file>
|
|
70
|
+
</wm-file-list>
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
_Show all metadata with preview and download handlers_
|
|
74
|
+
|
|
75
|
+
```react
|
|
76
|
+
// fileActions controls which buttons appear; omit delete or pass fileActions="" for none.
|
|
77
|
+
// onWmFilePreview and onWmFileDownload fire on the wm-file element; e.target.name is the filename.
|
|
78
|
+
const [files, setFiles] = useState([
|
|
79
|
+
{ id: "file-3", name: "thesis", type: "docx", size: "3.2 MB",
|
|
80
|
+
lastUpdated: "1/28/2024 5:29 PM", uploadedBy: "Uploaded by Smith, John",
|
|
81
|
+
fileActions: "preview download delete" },
|
|
82
|
+
{ id: "file-4", name: "presentation", type: "pptx", size: "8.5 MB",
|
|
83
|
+
lastUpdated: "3/15/2024 9:00 AM", uploadedBy: "Uploaded by Doe, Jane",
|
|
84
|
+
fileActions: "download delete" },
|
|
85
|
+
]);
|
|
86
|
+
|
|
87
|
+
<WmFileList showInfo="all">
|
|
88
|
+
{files.map((f) => (
|
|
89
|
+
<WmFile key={f.id} id={f.id} name={f.name} type={f.type}
|
|
90
|
+
size={f.size} lastUpdated={f.lastUpdated} uploadedBy={f.uploadedBy}
|
|
91
|
+
fileActions={f.fileActions}
|
|
92
|
+
onWmFilePreview={(e) => alert(`Preview: ${e.target.name}`)}
|
|
93
|
+
onWmFileDownload={(e) => alert(`Download: ${e.target.name}`)}
|
|
94
|
+
onWmFileDelete={(e) => setFiles((prev) => prev.filter((f) => f.id !== e.target.id))} />
|
|
95
|
+
))}
|
|
96
|
+
</WmFileList>
|
|
97
|
+
```
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
### File
|
|
2
|
+
- **Element:** `<wm-file>`
|
|
3
|
+
- **Status:** stable
|
|
4
|
+
|
|
5
|
+
**Purpose:** Displays a single file row with its name, optional metadata, and configurable action buttons
|
|
6
|
+
(preview, download, delete). Adapts responsively -- at narrow widths action buttons collapse
|
|
7
|
+
into an action menu. Used as a child of wm-file-list or wm-uploader.
|
|
8
|
+
|
|
9
|
+
**Variants / types:**
|
|
10
|
+
|
|
11
|
+
- A unique `id` is required on every wm-file element.
|
|
12
|
+
- `name` and `type` are both required; `type` is the file extension only (e.g. `pdf`, not a MIME type).
|
|
13
|
+
- `show-info` is automatically inherited from the parent wm-file-list or wm-uploader when set there.
|
|
14
|
+
- Pass an empty string to `file-actions` to render no action buttons.
|
|
15
|
+
|
|
16
|
+
**Props:**
|
|
17
|
+
- `error-message` -- Puts the file row in an error state and displays this message below it.
|
|
18
|
+
- `file-actions` -- Space-separated list of action buttons to display. Accepts any combination of
|
|
19
|
+
`preview`, `download`, and `delete`. Pass an empty string to show no actions.
|
|
20
|
+
- `last-updated` -- Upload date/time displayed as file metadata. Any display string is accepted
|
|
21
|
+
(e.g. `"1/28/2020 5:29 PM"`).
|
|
22
|
+
- `name` -- Filename without the extension. _(required)_
|
|
23
|
+
- `progress` -- Upload progress as a percentage (0-100). When set and less than 100, the file
|
|
24
|
+
renders in an in-progress state with a progress bar.
|
|
25
|
+
- `show-info` -- Which metadata to display alongside the filename. Automatically inherited
|
|
26
|
+
from the parent wm-file-list or wm-uploader when set there.
|
|
27
|
+
- `size` -- File size displayed as file metadata. Include the unit in the string
|
|
28
|
+
(e.g. `"3 MB"`).
|
|
29
|
+
- `type` -- File extension without the leading dot (e.g. `pdf`, `docx`). Not a MIME type. _(required)_
|
|
30
|
+
- `uploaded-by` -- Uploader attribution displayed as file metadata
|
|
31
|
+
(e.g. `"Uploaded by Smith, John"`).
|
|
32
|
+
|
|
33
|
+
**Events:**
|
|
34
|
+
- `wmFileDelete`
|
|
35
|
+
- `wmFileDownload`
|
|
36
|
+
- `wmFileErrorCleared`
|
|
37
|
+
- `wmFilePreview`
|
|
38
|
+
|
|
39
|
+
**Accessibility:**
|
|
40
|
+
|
|
41
|
+
- Icon-only action buttons include context-specific aria labels that embed the filename
|
|
42
|
+
(e.g. "Download report.pdf") so screen reader users know which file each button acts on.
|
|
43
|
+
- A visually-hidden `aria-live` region announces upload progress and validation errors.
|
|
44
|
+
|
|
45
|
+
**Code example:**
|
|
46
|
+
|
|
47
|
+
_Basic file row_
|
|
48
|
+
|
|
49
|
+
```html
|
|
50
|
+
<wm-file-list>
|
|
51
|
+
<wm-file id="file-1" name="report" type="pdf" last-updated="1/28/2020 5:29 PM"></wm-file>
|
|
52
|
+
</wm-file-list>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
_Basic file row_
|
|
56
|
+
|
|
57
|
+
```react
|
|
58
|
+
<WmFileList>
|
|
59
|
+
<WmFile id="file-1" name="report" type="pdf" lastUpdated="1/28/2020 5:29 PM" />
|
|
60
|
+
</WmFileList>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
_All metadata and all actions_
|
|
64
|
+
|
|
65
|
+
```html
|
|
66
|
+
<wm-file id="file-2" name="thesis" type="docx" file-actions="preview download delete"
|
|
67
|
+
show-info="all" size="3 MB" last-updated="3/15/2024 9:00 AM"
|
|
68
|
+
uploaded-by="Uploaded by Smith, John">
|
|
69
|
+
</wm-file>
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
_All metadata and all actions_
|
|
73
|
+
|
|
74
|
+
```react
|
|
75
|
+
<WmFile id="file-2" name="thesis" type="docx" fileActions="preview download delete"
|
|
76
|
+
showInfo="all" size="3 MB" lastUpdated="3/15/2024 9:00 AM"
|
|
77
|
+
uploadedBy="Uploaded by Smith, John" />
|
|
78
|
+
```
|