@warp-ds/elements 2.10.0-next.15 → 2.10.0-next.18
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/.storybook/utilities.js +4 -4
- package/dist/api.js.map +2 -2
- package/dist/custom-elements.json +174 -56
- package/dist/docs/affix/affix.md +2 -2
- package/dist/docs/affix/api.md +2 -2
- package/dist/docs/alert/alert.md +4 -4
- package/dist/docs/alert/api.md +4 -4
- package/dist/docs/attention/api.md +2 -2
- package/dist/docs/attention/attention.md +2 -2
- package/dist/docs/badge/api.md +50 -4
- package/dist/docs/badge/badge.md +50 -4
- package/dist/docs/box/api.md +2 -2
- package/dist/docs/box/box.md +2 -2
- package/dist/docs/breadcrumb-item/api.md +27 -0
- package/dist/docs/breadcrumb-item/breadcrumb-item.md +34 -0
- package/dist/docs/breadcrumbs/accessibility.md +8 -18
- package/dist/docs/breadcrumbs/breadcrumbs.md +57 -34
- package/dist/docs/breadcrumbs/examples.md +8 -8
- package/dist/docs/breadcrumbs/styling.md +33 -0
- package/dist/docs/breadcrumbs/usage.md +8 -8
- package/dist/docs/checkbox/api.md +2 -2
- package/dist/docs/checkbox/checkbox.md +176 -2
- package/dist/docs/checkbox/styling.md +173 -0
- package/dist/docs/checkbox-group/checkbox-group.md +43 -30
- package/dist/docs/checkbox-group/styling.md +31 -29
- package/dist/docs/combobox/api.md +12 -12
- package/dist/docs/combobox/combobox.md +12 -12
- package/dist/docs/datepicker/api.md +6 -6
- package/dist/docs/datepicker/datepicker.md +6 -6
- package/dist/docs/icon/api.md +3 -3
- package/dist/docs/icon/icon.md +3 -3
- package/dist/docs/index.md +2 -1
- package/dist/docs/radio-group/api.md +4 -4
- package/dist/docs/radio-group/radio-group.md +183 -68
- package/dist/docs/radio-group/styling.md +179 -64
- package/dist/docs/snackbar/api.md +1 -1
- package/dist/docs/snackbar/snackbar.md +1 -1
- package/dist/docs/snackbar-item/api.md +2 -2
- package/dist/docs/snackbar-item/snackbar-item.md +2 -2
- package/dist/index.d.ts +109 -2
- package/dist/packages/affix/affix.d.ts +4 -4
- package/dist/packages/affix/affix.hydration.test.d.ts +1 -1
- package/dist/packages/affix/affix.hydration.test.js +15 -15
- package/dist/packages/affix/affix.js +345 -315
- package/dist/packages/affix/affix.js.map +2 -2
- package/dist/packages/affix/affix.react.stories.d.ts +2 -2
- package/dist/packages/affix/affix.react.stories.js +3 -3
- package/dist/packages/affix/affix.react.test.js +5 -3
- package/dist/packages/affix/affix.stories.d.ts +3 -3
- package/dist/packages/affix/affix.stories.js +10 -10
- package/dist/packages/affix/affix.test.d.ts +1 -1
- package/dist/packages/affix/affix.test.js +10 -10
- package/dist/packages/affix/react.d.ts +2 -2
- package/dist/packages/affix/react.js +6 -6
- package/dist/packages/affix/styles.js +1 -1
- package/dist/packages/alert/alert.d.ts +3 -3
- package/dist/packages/alert/alert.hydration.test.d.ts +1 -1
- package/dist/packages/alert/alert.hydration.test.js +21 -21
- package/dist/packages/alert/alert.js +344 -319
- package/dist/packages/alert/alert.js.map +2 -2
- package/dist/packages/alert/alert.react.stories.d.ts +2 -2
- package/dist/packages/alert/alert.react.stories.js +13 -13
- package/dist/packages/alert/alert.stories.d.ts +4 -4
- package/dist/packages/alert/alert.stories.js +29 -27
- package/dist/packages/alert/alert.test.d.ts +1 -1
- package/dist/packages/alert/alert.test.js +34 -21
- package/dist/packages/alert/react.d.ts +1 -1
- package/dist/packages/alert/react.js +4 -4
- package/dist/packages/alert/styles.js +1 -1
- package/dist/packages/attention/attention.d.ts +7 -7
- package/dist/packages/attention/attention.hydration.test.d.ts +1 -1
- package/dist/packages/attention/attention.hydration.test.js +29 -29
- package/dist/packages/attention/attention.js +1725 -1683
- package/dist/packages/attention/attention.js.map +2 -2
- package/dist/packages/attention/attention.react.stories.d.ts +3 -3
- package/dist/packages/attention/attention.react.stories.js +13 -13
- package/dist/packages/attention/attention.react.test.js +11 -7
- package/dist/packages/attention/attention.stories.d.ts +4 -4
- package/dist/packages/attention/attention.stories.js +126 -117
- package/dist/packages/attention/attention.test.d.ts +1 -1
- package/dist/packages/attention/attention.test.js +18 -10
- package/dist/packages/attention/layout-styles.js +900 -900
- package/dist/packages/attention/react.d.ts +4 -4
- package/dist/packages/attention/react.js +13 -11
- package/dist/packages/attention/styles.js +1 -1
- package/dist/packages/badge/badge.d.ts +3 -3
- package/dist/packages/badge/badge.hydration.test.d.ts +1 -1
- package/dist/packages/badge/badge.hydration.test.js +25 -25
- package/dist/packages/badge/badge.js +276 -276
- package/dist/packages/badge/badge.js.map +2 -2
- package/dist/packages/badge/badge.react.stories.d.ts +3 -3
- package/dist/packages/badge/badge.react.stories.js +17 -17
- package/dist/packages/badge/badge.stories.d.ts +3 -3
- package/dist/packages/badge/badge.stories.js +22 -20
- package/dist/packages/badge/badge.test.d.ts +1 -1
- package/dist/packages/badge/badge.test.js +13 -11
- package/dist/packages/badge/react.d.ts +1 -1
- package/dist/packages/badge/react.js +4 -4
- package/dist/packages/badge/styles.js +1 -1
- package/dist/packages/box/box.d.ts +1 -1
- package/dist/packages/box/box.hydration.test.d.ts +1 -1
- package/dist/packages/box/box.hydration.test.js +14 -14
- package/dist/packages/box/box.js +283 -283
- package/dist/packages/box/box.js.map +2 -2
- package/dist/packages/box/box.react.stories.d.ts +3 -3
- package/dist/packages/box/box.react.stories.js +8 -8
- package/dist/packages/box/box.stories.d.ts +3 -3
- package/dist/packages/box/box.stories.js +25 -19
- package/dist/packages/box/box.test.d.ts +1 -1
- package/dist/packages/box/box.test.js +6 -6
- package/dist/packages/box/react.d.ts +1 -1
- package/dist/packages/box/react.js +4 -4
- package/dist/packages/box/slot.test.d.ts +1 -1
- package/dist/packages/box/slot.test.js +6 -6
- package/dist/packages/box/styles.js +1 -1
- package/dist/packages/breadcrumb-item/breadcrumb-item.d.ts +29 -0
- package/dist/packages/breadcrumb-item/breadcrumb-item.js +2520 -0
- package/dist/packages/breadcrumb-item/breadcrumb-item.js.map +7 -0
- package/dist/packages/breadcrumb-item/react.d.ts +2 -0
- package/dist/packages/breadcrumb-item/react.js +11 -0
- package/dist/packages/breadcrumb-item/styles.d.ts +4 -0
- package/dist/packages/breadcrumb-item/styles.js +72 -0
- package/dist/packages/breadcrumbs/breadcrumbs.d.ts +3 -1
- package/dist/packages/breadcrumbs/breadcrumbs.hydration.test.d.ts +1 -1
- package/dist/packages/breadcrumbs/breadcrumbs.hydration.test.js +55 -49
- package/dist/packages/breadcrumbs/breadcrumbs.js +285 -281
- package/dist/packages/breadcrumbs/breadcrumbs.js.map +3 -3
- package/dist/packages/breadcrumbs/breadcrumbs.react.stories.d.ts +3 -3
- package/dist/packages/breadcrumbs/breadcrumbs.react.stories.js +17 -16
- package/dist/packages/breadcrumbs/breadcrumbs.stories.d.ts +7 -8
- package/dist/packages/breadcrumbs/breadcrumbs.stories.js +30 -26
- package/dist/packages/breadcrumbs/breadcrumbs.test.d.ts +1 -1
- package/dist/packages/breadcrumbs/breadcrumbs.test.js +19 -17
- package/dist/packages/breadcrumbs/react.d.ts +1 -1
- package/dist/packages/breadcrumbs/react.js +4 -4
- package/dist/packages/breadcrumbs/styles.js +1 -1
- package/dist/packages/button/button.d.ts +5 -5
- package/dist/packages/button/button.hydration.test.d.ts +1 -1
- package/dist/packages/button/button.hydration.test.js +19 -19
- package/dist/packages/button/button.js +741 -715
- package/dist/packages/button/button.js.map +2 -2
- package/dist/packages/button/button.react.stories.d.ts +3 -3
- package/dist/packages/button/button.react.stories.js +30 -30
- package/dist/packages/button/button.react.test.js +13 -13
- package/dist/packages/button/button.stories.d.ts +4 -4
- package/dist/packages/button/button.stories.js +276 -167
- package/dist/packages/button/button.test.d.ts +1 -1
- package/dist/packages/button/button.test.js +36 -34
- package/dist/packages/button/react.d.ts +2 -2
- package/dist/packages/button/react.js +7 -7
- package/dist/packages/button/styles.js +373 -347
- package/dist/packages/card/card.d.ts +1 -1
- package/dist/packages/card/card.hydration.test.d.ts +1 -1
- package/dist/packages/card/card.hydration.test.js +14 -14
- package/dist/packages/card/card.js +305 -290
- package/dist/packages/card/card.js.map +2 -2
- package/dist/packages/card/card.react.stories.d.ts +3 -3
- package/dist/packages/card/card.react.stories.js +11 -11
- package/dist/packages/card/card.stories.d.ts +3 -3
- package/dist/packages/card/card.stories.js +36 -24
- package/dist/packages/card/card.test.d.ts +1 -1
- package/dist/packages/card/card.test.js +6 -6
- package/dist/packages/card/react.d.ts +1 -1
- package/dist/packages/card/react.js +4 -4
- package/dist/packages/card/styles.js +1 -1
- package/dist/packages/checkbox/checkbox.a11y.test.d.ts +1 -1
- package/dist/packages/checkbox/checkbox.a11y.test.js +47 -33
- package/dist/packages/checkbox/checkbox.d.ts +2 -2
- package/dist/packages/checkbox/checkbox.hydration.test.d.ts +1 -1
- package/dist/packages/checkbox/checkbox.hydration.test.js +21 -21
- package/dist/packages/checkbox/checkbox.js +475 -424
- package/dist/packages/checkbox/checkbox.js.map +2 -2
- package/dist/packages/checkbox/checkbox.react.stories.d.ts +2 -2
- package/dist/packages/checkbox/checkbox.react.stories.js +3 -3
- package/dist/packages/checkbox/checkbox.stories.d.ts +4 -4
- package/dist/packages/checkbox/checkbox.stories.js +99 -91
- package/dist/packages/checkbox/checkbox.test.d.ts +1 -1
- package/dist/packages/checkbox/checkbox.test.js +64 -64
- package/dist/packages/checkbox/react.d.ts +1 -1
- package/dist/packages/checkbox/react.js +6 -6
- package/dist/packages/checkbox/styles.js +183 -132
- package/dist/packages/checkbox-group/checkbox-group.a11y.test.d.ts +2 -2
- package/dist/packages/checkbox-group/checkbox-group.a11y.test.js +83 -73
- package/dist/packages/checkbox-group/checkbox-group.d.ts +16 -2
- package/dist/packages/checkbox-group/checkbox-group.hydration.test.d.ts +2 -2
- package/dist/packages/checkbox-group/checkbox-group.hydration.test.js +36 -19
- package/dist/packages/checkbox-group/checkbox-group.js +60 -55
- package/dist/packages/checkbox-group/checkbox-group.js.map +2 -2
- package/dist/packages/checkbox-group/checkbox-group.react.test.js +4 -4
- package/dist/packages/checkbox-group/checkbox-group.test.d.ts +2 -2
- package/dist/packages/checkbox-group/checkbox-group.test.js +96 -90
- package/dist/packages/checkbox-group/react.d.ts +2 -2
- package/dist/packages/checkbox-group/react.js +6 -6
- package/dist/packages/combobox/combobox.a11y.test.d.ts +2 -2
- package/dist/packages/combobox/combobox.a11y.test.js +72 -49
- package/dist/packages/combobox/combobox.d.ts +2 -2
- package/dist/packages/combobox/combobox.hydration.test.d.ts +1 -1
- package/dist/packages/combobox/combobox.hydration.test.js +45 -45
- package/dist/packages/combobox/combobox.js +332 -332
- package/dist/packages/combobox/combobox.js.map +3 -3
- package/dist/packages/combobox/combobox.react.stories.d.ts +3 -3
- package/dist/packages/combobox/combobox.react.stories.js +29 -29
- package/dist/packages/combobox/combobox.react.test.js +8 -8
- package/dist/packages/combobox/combobox.stories.d.ts +4 -4
- package/dist/packages/combobox/combobox.stories.js +100 -94
- package/dist/packages/combobox/combobox.test.d.ts +2 -2
- package/dist/packages/combobox/combobox.test.js +148 -133
- package/dist/packages/combobox/react.d.ts +2 -2
- package/dist/packages/combobox/react.js +14 -14
- package/dist/packages/combobox/styles.js +1 -1
- package/dist/packages/datepicker/DatePicker.test.d.ts +2 -2
- package/dist/packages/datepicker/DatePicker.test.js +46 -41
- package/dist/packages/datepicker/datepicker.d.ts +3 -3
- package/dist/packages/datepicker/datepicker.hydration.test.d.ts +1 -1
- package/dist/packages/datepicker/datepicker.hydration.test.js +21 -21
- package/dist/packages/datepicker/datepicker.js +665 -625
- package/dist/packages/datepicker/datepicker.js.map +3 -3
- package/dist/packages/datepicker/datepicker.react.stories.d.ts +3 -3
- package/dist/packages/datepicker/datepicker.react.stories.js +9 -9
- package/dist/packages/datepicker/datepicker.react.test.js +6 -6
- package/dist/packages/datepicker/datepicker.stories.d.ts +4 -4
- package/dist/packages/datepicker/datepicker.stories.js +32 -32
- package/dist/packages/datepicker/datepicker.test.d.ts +2 -2
- package/dist/packages/datepicker/datepicker.test.js +77 -79
- package/dist/packages/datepicker/react.d.ts +2 -2
- package/dist/packages/datepicker/react.js +16 -14
- package/dist/packages/datepicker/styles/w-datepicker-calendar.styles.js +13 -12
- package/dist/packages/datepicker/styles/w-datepicker-day.styles.js +58 -55
- package/dist/packages/datepicker/styles/w-datepicker-month.styles.js +60 -57
- package/dist/packages/datepicker/styles/w-datepicker.styles.js +87 -87
- package/dist/packages/datepicker/utils.d.ts +1 -1
- package/dist/packages/datepicker/utils.js +25 -19
- package/dist/packages/datepicker/utils.test.js +20 -20
- package/dist/packages/expandable/expandable.d.ts +4 -4
- package/dist/packages/expandable/expandable.hydration.test.d.ts +1 -1
- package/dist/packages/expandable/expandable.hydration.test.js +21 -21
- package/dist/packages/expandable/expandable.js +353 -326
- package/dist/packages/expandable/expandable.js.map +2 -2
- package/dist/packages/expandable/expandable.react.stories.d.ts +3 -3
- package/dist/packages/expandable/expandable.react.stories.js +7 -7
- package/dist/packages/expandable/expandable.react.test.js +15 -7
- package/dist/packages/expandable/expandable.stories.d.ts +5 -5
- package/dist/packages/expandable/expandable.stories.js +51 -45
- package/dist/packages/expandable/expandable.test.d.ts +1 -1
- package/dist/packages/expandable/expandable.test.js +19 -17
- package/dist/packages/expandable/react.d.ts +2 -2
- package/dist/packages/expandable/react.js +9 -9
- package/dist/packages/expandable/styles.js +1 -1
- package/dist/packages/global.js +2 -2
- package/dist/packages/i18n.d.ts +1 -1
- package/dist/packages/i18n.js +37 -29
- package/dist/packages/icon/icon.d.ts +3 -3
- package/dist/packages/icon/icon.hydration.test.d.ts +1 -1
- package/dist/packages/icon/icon.hydration.test.js +25 -25
- package/dist/packages/icon/icon.js +30 -25
- package/dist/packages/icon/icon.js.map +2 -2
- package/dist/packages/icon/icon.react.stories.d.ts +1 -1
- package/dist/packages/icon/icon.react.stories.js +283 -284
- package/dist/packages/icon/icon.stories.d.ts +3 -3
- package/dist/packages/icon/icon.stories.js +299 -298
- package/dist/packages/icon/icon.test.d.ts +1 -1
- package/dist/packages/icon/icon.test.js +36 -28
- package/dist/packages/icon/react.d.ts +1 -1
- package/dist/packages/icon/react.js +4 -4
- package/dist/packages/icon/style.js +24 -25
- package/dist/packages/interaction-type-detection.js +9 -9
- package/dist/packages/link/link.d.ts +2 -2
- package/dist/packages/link/link.hydration.test.d.ts +1 -1
- package/dist/packages/link/link.hydration.test.js +27 -27
- package/dist/packages/link/link.js +709 -683
- package/dist/packages/link/link.js.map +2 -2
- package/dist/packages/link/link.react.stories.d.ts +3 -3
- package/dist/packages/link/link.react.stories.js +42 -42
- package/dist/packages/link/link.react.test.js +5 -3
- package/dist/packages/link/link.stories.d.ts +3 -3
- package/dist/packages/link/link.stories.js +51 -51
- package/dist/packages/link/link.test.d.ts +1 -1
- package/dist/packages/link/link.test.js +11 -7
- package/dist/packages/link/react.d.ts +2 -2
- package/dist/packages/link/react.js +6 -6
- package/dist/packages/link/styles.js +57 -57
- package/dist/packages/modal/index.d.ts +7 -7
- package/dist/packages/modal/index.js +7 -7
- package/dist/packages/modal/modal.d.ts +1 -1
- package/dist/packages/modal/modal.hydration.test.d.ts +1 -1
- package/dist/packages/modal/modal.hydration.test.js +12 -12
- package/dist/packages/modal/modal.js +404 -404
- package/dist/packages/modal/modal.js.map +2 -2
- package/dist/packages/modal/modal.react.stories.d.ts +3 -3
- package/dist/packages/modal/modal.react.stories.js +7 -6
- package/dist/packages/modal/modal.react.test.js +5 -5
- package/dist/packages/modal/modal.stories.d.ts +6 -6
- package/dist/packages/modal/modal.stories.js +253 -238
- package/dist/packages/modal/react.d.ts +4 -4
- package/dist/packages/modal/react.js +13 -13
- package/dist/packages/modal/util.js +2 -2
- package/dist/packages/modal-footer/modal-footer.d.ts +1 -1
- package/dist/packages/modal-footer/modal-footer.js +291 -291
- package/dist/packages/modal-footer/modal-footer.js.map +2 -2
- package/dist/packages/modal-footer/react.d.ts +1 -1
- package/dist/packages/modal-footer/react.js +4 -4
- package/dist/packages/modal-header/modal-header.d.ts +2 -2
- package/dist/packages/modal-header/modal-header.js +437 -416
- package/dist/packages/modal-header/modal-header.js.map +2 -2
- package/dist/packages/modal-header/modal-header.react.test.js +5 -3
- package/dist/packages/modal-header/react.d.ts +2 -2
- package/dist/packages/modal-header/react.js +8 -8
- package/dist/packages/page-indicator/page-indicator.d.ts +1 -1
- package/dist/packages/page-indicator/page-indicator.hydration.test.d.ts +1 -1
- package/dist/packages/page-indicator/page-indicator.hydration.test.js +22 -22
- package/dist/packages/page-indicator/page-indicator.js +26 -26
- package/dist/packages/page-indicator/page-indicator.js.map +2 -2
- package/dist/packages/page-indicator/page-indicator.react.stories.d.ts +3 -3
- package/dist/packages/page-indicator/page-indicator.react.stories.js +11 -11
- package/dist/packages/page-indicator/page-indicator.react.test.js +5 -5
- package/dist/packages/page-indicator/page-indicator.stories.d.ts +3 -3
- package/dist/packages/page-indicator/page-indicator.stories.js +56 -27
- package/dist/packages/page-indicator/page-indicator.test.d.ts +1 -1
- package/dist/packages/page-indicator/page-indicator.test.js +110 -70
- package/dist/packages/page-indicator/react.d.ts +2 -2
- package/dist/packages/page-indicator/react.js +7 -7
- package/dist/packages/page-indicator/style.js +21 -21
- package/dist/packages/pagination/pagination.a11y.test.d.ts +1 -1
- package/dist/packages/pagination/pagination.a11y.test.js +59 -25
- package/dist/packages/pagination/pagination.d.ts +3 -3
- package/dist/packages/pagination/pagination.hydration.test.d.ts +1 -1
- package/dist/packages/pagination/pagination.hydration.test.js +19 -19
- package/dist/packages/pagination/pagination.js +380 -349
- package/dist/packages/pagination/pagination.js.map +2 -2
- package/dist/packages/pagination/pagination.react.stories.d.ts +7 -7
- package/dist/packages/pagination/pagination.react.stories.js +8 -8
- package/dist/packages/pagination/pagination.react.test.js +6 -6
- package/dist/packages/pagination/pagination.stories.d.ts +3 -3
- package/dist/packages/pagination/pagination.stories.js +18 -18
- package/dist/packages/pagination/pagination.test.d.ts +1 -1
- package/dist/packages/pagination/pagination.test.js +146 -69
- package/dist/packages/pagination/react.d.ts +4 -4
- package/dist/packages/pagination/react.js +12 -10
- package/dist/packages/pagination/styles.js +1 -1
- package/dist/packages/pill/pill.d.ts +2 -2
- package/dist/packages/pill/pill.hydration.test.d.ts +1 -1
- package/dist/packages/pill/pill.hydration.test.js +14 -14
- package/dist/packages/pill/pill.js +331 -308
- package/dist/packages/pill/pill.js.map +2 -2
- package/dist/packages/pill/pill.react.stories.d.ts +3 -3
- package/dist/packages/pill/pill.react.stories.js +3 -3
- package/dist/packages/pill/pill.react.test.js +8 -8
- package/dist/packages/pill/pill.stories.d.ts +3 -3
- package/dist/packages/pill/pill.stories.js +8 -8
- package/dist/packages/pill/pill.test.d.ts +1 -1
- package/dist/packages/pill/pill.test.js +17 -15
- package/dist/packages/pill/react.d.ts +2 -2
- package/dist/packages/pill/react.js +18 -14
- package/dist/packages/pill/styles.js +1 -1
- package/dist/packages/radio/base-element.d.ts +3 -3
- package/dist/packages/radio/base-element.js +3 -3
- package/dist/packages/radio/custom-error-validator.d.ts +1 -1
- package/dist/packages/radio/custom-error-validator.js +3 -3
- package/dist/packages/radio/form-associated-element.d.ts +8 -8
- package/dist/packages/radio/form-associated-element.js +27 -26
- package/dist/packages/radio/host-styles.js +9 -9
- package/dist/packages/radio/invalid.d.ts +1 -1
- package/dist/packages/radio/invalid.js +1 -1
- package/dist/packages/radio/radio-styles.js +199 -160
- package/dist/packages/radio/radio.a11y.test.d.ts +2 -2
- package/dist/packages/radio/radio.a11y.test.js +60 -58
- package/dist/packages/radio/radio.d.ts +3 -3
- package/dist/packages/radio/radio.hydration.test.d.ts +1 -1
- package/dist/packages/radio/radio.hydration.test.js +23 -14
- package/dist/packages/radio/radio.js +485 -446
- package/dist/packages/radio/radio.js.map +3 -3
- package/dist/packages/radio/radio.react.stories.d.ts +2 -2
- package/dist/packages/radio/radio.react.stories.js +3 -3
- package/dist/packages/radio/radio.stories.d.ts +4 -4
- package/dist/packages/radio/radio.stories.js +152 -136
- package/dist/packages/radio/radio.test.d.ts +1 -1
- package/dist/packages/radio/radio.test.js +74 -73
- package/dist/packages/radio/react.d.ts +1 -1
- package/dist/packages/radio/react.js +4 -4
- package/dist/packages/radio/required-validator.d.ts +1 -1
- package/dist/packages/radio/required-validator.js +12 -7
- package/dist/packages/radio/slot.d.ts +1 -1
- package/dist/packages/radio/slot.js +11 -8
- package/dist/packages/radio/watch.d.ts +1 -1
- package/dist/packages/radio/watch.js +3 -1
- package/dist/packages/radio-group/radio-group-styles.js +121 -88
- package/dist/packages/radio-group/radio-group.a11y.test.d.ts +2 -2
- package/dist/packages/radio-group/radio-group.a11y.test.js +81 -79
- package/dist/packages/radio-group/radio-group.d.ts +14 -5
- package/dist/packages/radio-group/radio-group.hydration.test.d.ts +2 -2
- package/dist/packages/radio-group/radio-group.hydration.test.js +29 -18
- package/dist/packages/radio-group/radio-group.js +648 -560
- package/dist/packages/radio-group/radio-group.js.map +3 -3
- package/dist/packages/radio-group/radio-group.react.test.js +4 -4
- package/dist/packages/radio-group/radio-group.test.d.ts +2 -2
- package/dist/packages/radio-group/radio-group.test.js +234 -229
- package/dist/packages/radio-group/react.d.ts +2 -2
- package/dist/packages/radio-group/react.js +10 -10
- package/dist/packages/select/react.d.ts +2 -2
- package/dist/packages/select/react.js +11 -11
- package/dist/packages/select/select.a11y.test.d.ts +1 -1
- package/dist/packages/select/select.a11y.test.js +98 -91
- package/dist/packages/select/select.d.ts +4 -4
- package/dist/packages/select/select.hydration.test.d.ts +1 -1
- package/dist/packages/select/select.hydration.test.js +16 -16
- package/dist/packages/select/select.js +348 -329
- package/dist/packages/select/select.js.map +2 -2
- package/dist/packages/select/select.react.stories.d.ts +3 -3
- package/dist/packages/select/select.react.stories.js +7 -7
- package/dist/packages/select/select.react.test.js +6 -6
- package/dist/packages/select/select.stories.d.ts +3 -3
- package/dist/packages/select/select.stories.js +51 -48
- package/dist/packages/select/select.test.d.ts +1 -1
- package/dist/packages/select/select.test.js +175 -178
- package/dist/packages/select/styles.js +1 -1
- package/dist/packages/slider/Slider.d.ts +1 -1
- package/dist/packages/slider/Slider.js +4 -4
- package/dist/packages/slider/index.d.ts +2 -2
- package/dist/packages/slider/index.js +2 -2
- package/dist/packages/slider/react.d.ts +3 -3
- package/dist/packages/slider/react.js +9 -9
- package/dist/packages/slider/slider.d.ts +3 -3
- package/dist/packages/slider/slider.hydration.test.d.ts +1 -1
- package/dist/packages/slider/slider.hydration.test.js +39 -20
- package/dist/packages/slider/slider.js +480 -462
- package/dist/packages/slider/slider.js.map +2 -2
- package/dist/packages/slider/slider.react.stories.d.ts +3 -3
- package/dist/packages/slider/slider.react.stories.js +31 -34
- package/dist/packages/slider/slider.react.test.js +6 -6
- package/dist/packages/slider/slider.stories.d.ts +7 -7
- package/dist/packages/slider/slider.stories.js +332 -340
- package/dist/packages/slider/slider.test.d.ts +5 -5
- package/dist/packages/slider/slider.test.js +367 -334
- package/dist/packages/slider/styles/w-slider.styles.js +166 -148
- package/dist/packages/slider/styles.js +1 -1
- package/dist/packages/slider-thumb/SliderThumb.d.ts +1 -1
- package/dist/packages/slider-thumb/SliderThumb.js +4 -4
- package/dist/packages/slider-thumb/oddbird-css-anchor-positioning.d.ts +1 -1
- package/dist/packages/slider-thumb/oddbird-css-anchor-positioning.js +1 -1
- package/dist/packages/slider-thumb/react.d.ts +3 -3
- package/dist/packages/slider-thumb/react.js +11 -9
- package/dist/packages/slider-thumb/slider-thumb.d.ts +3 -3
- package/dist/packages/slider-thumb/slider-thumb.hydration.test.d.ts +1 -1
- package/dist/packages/slider-thumb/slider-thumb.hydration.test.js +26 -17
- package/dist/packages/slider-thumb/slider-thumb.js +545 -548
- package/dist/packages/slider-thumb/slider-thumb.js.map +3 -3
- package/dist/packages/slider-thumb/slider-thumb.react.test.js +9 -5
- package/dist/packages/slider-thumb/styles/w-slider-thumb.styles.js +189 -188
- package/dist/packages/slider-thumb/styles.js +1 -1
- package/dist/packages/snackbar/react.d.ts +1 -1
- package/dist/packages/snackbar/react.js +4 -4
- package/dist/packages/snackbar/snackbar.d.ts +3 -3
- package/dist/packages/snackbar/snackbar.hydration.test.d.ts +1 -1
- package/dist/packages/snackbar/snackbar.hydration.test.js +6 -6
- package/dist/packages/snackbar/snackbar.js +487 -468
- package/dist/packages/snackbar/snackbar.js.map +2 -2
- package/dist/packages/snackbar/snackbar.react.stories.js +3 -3
- package/dist/packages/snackbar/snackbar.stories.d.ts +11 -11
- package/dist/packages/snackbar/snackbar.stories.js +253 -181
- package/dist/packages/snackbar/snackbar.test.d.ts +4 -4
- package/dist/packages/snackbar/snackbar.test.js +11 -11
- package/dist/packages/snackbar/styles.js +29 -29
- package/dist/packages/snackbar-item/react.d.ts +2 -2
- package/dist/packages/snackbar-item/react.js +6 -5
- package/dist/packages/snackbar-item/snackbar-item.d.ts +4 -4
- package/dist/packages/snackbar-item/snackbar-item.js +454 -435
- package/dist/packages/snackbar-item/snackbar-item.js.map +2 -2
- package/dist/packages/snackbar-item/snackbar-item.react.test.js +4 -4
- package/dist/packages/snackbar-item/styles.js +130 -108
- package/dist/packages/step/react.d.ts +1 -1
- package/dist/packages/step/react.js +4 -4
- package/dist/packages/step/step.d.ts +2 -2
- package/dist/packages/step/step.hydration.test.d.ts +1 -1
- package/dist/packages/step/step.hydration.test.js +10 -10
- package/dist/packages/step/step.js +330 -308
- package/dist/packages/step/step.js.map +2 -2
- package/dist/packages/step-indicator/index.d.ts +2 -2
- package/dist/packages/step-indicator/index.js +2 -2
- package/dist/packages/step-indicator/react.d.ts +2 -2
- package/dist/packages/step-indicator/react.js +5 -5
- package/dist/packages/step-indicator/step-indicator.a11y.test.d.ts +2 -2
- package/dist/packages/step-indicator/step-indicator.a11y.test.js +48 -46
- package/dist/packages/step-indicator/step-indicator.d.ts +1 -1
- package/dist/packages/step-indicator/step-indicator.hydration.test.d.ts +1 -1
- package/dist/packages/step-indicator/step-indicator.hydration.test.js +10 -10
- package/dist/packages/step-indicator/step-indicator.js +280 -276
- package/dist/packages/step-indicator/step-indicator.js.map +2 -2
- package/dist/packages/step-indicator/stepindicator.react.stories.d.ts +2 -2
- package/dist/packages/step-indicator/stepindicator.react.stories.js +3 -3
- package/dist/packages/step-indicator/stepindicator.stories.d.ts +3 -3
- package/dist/packages/step-indicator/stepindicator.stories.js +129 -129
- package/dist/packages/step-indicator/styles.js +1 -1
- package/dist/packages/styles.js +274 -274
- package/dist/packages/switch/react.d.ts +1 -1
- package/dist/packages/switch/react.js +6 -6
- package/dist/packages/switch/styles.js +1 -1
- package/dist/packages/switch/switch.a11y.test.d.ts +1 -1
- package/dist/packages/switch/switch.a11y.test.js +46 -38
- package/dist/packages/switch/switch.d.ts +1 -1
- package/dist/packages/switch/switch.hydration.test.d.ts +1 -1
- package/dist/packages/switch/switch.hydration.test.js +23 -23
- package/dist/packages/switch/switch.js +299 -299
- package/dist/packages/switch/switch.js.map +2 -2
- package/dist/packages/switch/switch.react.stories.d.ts +2 -2
- package/dist/packages/switch/switch.react.stories.js +2 -2
- package/dist/packages/switch/switch.stories.d.ts +2 -2
- package/dist/packages/switch/switch.stories.js +42 -37
- package/dist/packages/switch/switch.test.d.ts +1 -1
- package/dist/packages/switch/switch.test.js +30 -35
- package/dist/packages/tab/react.d.ts +6 -4
- package/dist/packages/tab/react.js +11 -10
- package/dist/packages/tab/styles.d.ts +1 -0
- package/dist/packages/tab/styles.js +2 -0
- package/dist/packages/tab/tab.d.ts +5 -5
- package/dist/packages/tab/tab.hydration.test.d.ts +1 -1
- package/dist/packages/tab/tab.hydration.test.js +18 -12
- package/dist/packages/tab/tab.js +305 -304
- package/dist/packages/tab/tab.js.map +3 -3
- package/dist/packages/tab/tab.react.test.js +5 -3
- package/dist/packages/tab-panel/react.d.ts +3 -2
- package/dist/packages/tab-panel/react.js +11 -5
- package/dist/packages/tab-panel/tab-panel.d.ts +3 -3
- package/dist/packages/tab-panel/tab-panel.hydration.test.d.ts +1 -1
- package/dist/packages/tab-panel/tab-panel.hydration.test.js +13 -10
- package/dist/packages/tab-panel/tab-panel.js +289 -287
- package/dist/packages/tab-panel/tab-panel.js.map +2 -2
- package/dist/packages/tabs/index.d.ts +4 -4
- package/dist/packages/tabs/index.js +3 -3
- package/dist/packages/tabs/react.d.ts +27 -8
- package/dist/packages/tabs/react.js +30 -9
- package/dist/packages/tabs/styles.js +1 -1
- package/dist/packages/tabs/tabs.a11y.test.d.ts +3 -3
- package/dist/packages/tabs/tabs.a11y.test.js +188 -169
- package/dist/packages/tabs/tabs.d.ts +3 -3
- package/dist/packages/tabs/tabs.hydration.test.d.ts +3 -1
- package/dist/packages/tabs/tabs.hydration.test.js +22 -8
- package/dist/packages/tabs/tabs.js +289 -282
- package/dist/packages/tabs/tabs.js.map +2 -2
- package/dist/packages/tabs/tabs.react.stories.d.ts +12 -10
- package/dist/packages/tabs/tabs.react.stories.js +28 -28
- package/dist/packages/tabs/tabs.stories.d.ts +4 -4
- package/dist/packages/tabs/tabs.stories.js +101 -95
- package/dist/packages/tabs/tabs.test.d.ts +3 -3
- package/dist/packages/tabs/tabs.test.js +136 -122
- package/dist/packages/textarea/react.d.ts +2 -2
- package/dist/packages/textarea/react.js +17 -17
- package/dist/packages/textarea/styles.js +1 -1
- package/dist/packages/textarea/textarea.a11y.test.d.ts +1 -1
- package/dist/packages/textarea/textarea.a11y.test.js +89 -57
- package/dist/packages/textarea/textarea.d.ts +1 -1
- package/dist/packages/textarea/textarea.hydration.test.d.ts +1 -1
- package/dist/packages/textarea/textarea.hydration.test.js +19 -19
- package/dist/packages/textarea/textarea.js +300 -298
- package/dist/packages/textarea/textarea.js.map +2 -2
- package/dist/packages/textarea/textarea.react.stories.d.ts +3 -3
- package/dist/packages/textarea/textarea.react.stories.js +13 -13
- package/dist/packages/textarea/textarea.react.test.js +7 -7
- package/dist/packages/textarea/textarea.stories.d.ts +3 -3
- package/dist/packages/textarea/textarea.stories.js +44 -42
- package/dist/packages/textarea/textarea.test.d.ts +1 -1
- package/dist/packages/textarea/textarea.test.js +124 -88
- package/dist/packages/textfield/react.d.ts +2 -2
- package/dist/packages/textfield/react.js +17 -17
- package/dist/packages/textfield/styles/w-textfield.styles.js +60 -58
- package/dist/packages/textfield/styles.js +1 -1
- package/dist/packages/textfield/textfield.d.ts +3 -3
- package/dist/packages/textfield/textfield.hydration.test.d.ts +1 -1
- package/dist/packages/textfield/textfield.hydration.test.js +19 -19
- package/dist/packages/textfield/textfield.js +376 -368
- package/dist/packages/textfield/textfield.js.map +3 -3
- package/dist/packages/textfield/textfield.react.stories.d.ts +3 -3
- package/dist/packages/textfield/textfield.react.stories.js +31 -31
- package/dist/packages/textfield/textfield.react.test.js +7 -7
- package/dist/packages/textfield/textfield.stories.d.ts +4 -4
- package/dist/packages/textfield/textfield.stories.js +107 -89
- package/dist/packages/textfield/textfield.test.d.ts +2 -2
- package/dist/packages/textfield/textfield.test.js +103 -71
- package/dist/packages/toast/api.d.ts +1 -1
- package/dist/packages/toast/api.js +3 -3
- package/dist/packages/toast/index.d.ts +5 -5
- package/dist/packages/toast/index.js +5 -5
- package/dist/packages/toast/styles.js +1 -1
- package/dist/packages/toast/toast.d.ts +4 -4
- package/dist/packages/toast/toast.js +346 -317
- package/dist/packages/toast/toast.js.map +2 -2
- package/dist/packages/toast/toast.stories.d.ts +4 -4
- package/dist/packages/toast/toast.stories.js +37 -16
- package/dist/packages/toast/toast.test.d.ts +1 -1
- package/dist/packages/toast/toast.test.js +48 -31
- package/dist/packages/toast/types.d.ts +1 -1
- package/dist/packages/toast-container/styles.js +1 -1
- package/dist/packages/toast-container/toast-container.d.ts +2 -2
- package/dist/packages/toast-container/toast-container.js +292 -291
- package/dist/packages/toast-container/toast-container.js.map +3 -3
- package/dist/packages/utils/element-collapse.js +38 -28
- package/dist/packages/utils/expand-transition.d.ts +1 -1
- package/dist/packages/utils/expand-transition.js +12 -10
- package/dist/packages/utils/unstyled-heading.d.ts +1 -1
- package/dist/packages/utils/unstyled-heading.js +4 -4
- package/dist/packages/utils/window-exists.js +1 -1
- package/dist/packages/utils.js +2 -2
- package/dist/setup-tests.d.ts +3 -3
- package/dist/setup-tests.js +16 -13
- package/dist/tests/react-hydration.js +29 -30
- package/dist/tests/react-ssr-attributes.d.ts +1 -1
- package/dist/tests/react-ssr-attributes.js +4 -4
- package/dist/web-types.json +61 -22
- package/eik/index.js +12 -12
- package/package.json +18 -16
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { StoryObj } from
|
|
2
|
-
import React from
|
|
3
|
-
import { Textarea } from
|
|
1
|
+
import { StoryObj } from "@storybook/react";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { Textarea } from "./react";
|
|
4
4
|
declare const _default: {
|
|
5
5
|
title: string;
|
|
6
6
|
render(args: Omit<Omit<Omit<React.HTMLAttributes<import("./textarea").WarpTextarea>, "value" | "form" | "label" | "name" | "disabled" | "invalid" | "helpText" | "placeholder" | "readOnly" | "readonly" | "required" | "renderRoot" | "isUpdatePending" | "hasUpdated" | "addController" | "removeController" | "connectedCallback" | "disconnectedCallback" | "attributeChangedCallback" | "requestUpdate" | "updateComplete" | "onblur" | "onchange" | "onfocus" | "oninput" | "updated" | "firstUpdated" | "resetFormControl" | "_helptextstyles" | "_helpId" | "_id" | "_error" | "handler" | "render" | "validationTarget" | "internals" | "showError" | "validationMessage" | "validity" | "validationComplete" | "checkValidity" | "formResetCallback" | "valueChangedCallback" | "validityCallback" | "validationMessageCallback" | "setValue" | "shouldFormValueUpdate" | "renderOptions" | "onFocus" | "onBlur" | "onChange" | "onInput" | "reportValidity" | "optional" | "minHeight" | "setCustomValidity" | "maxRows" | "minRows" | "maxHeight" | "_textareaStyles"> & {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import React from
|
|
2
|
-
import { Textarea } from
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Textarea } from "./react";
|
|
3
3
|
export default {
|
|
4
|
-
title:
|
|
4
|
+
title: "Forms/Textarea",
|
|
5
5
|
render(args) {
|
|
6
6
|
return React.createElement(Textarea, { ...args });
|
|
7
7
|
},
|
|
@@ -9,33 +9,33 @@ export default {
|
|
|
9
9
|
};
|
|
10
10
|
export const Default = {
|
|
11
11
|
args: {
|
|
12
|
-
label:
|
|
12
|
+
label: "Email",
|
|
13
13
|
},
|
|
14
14
|
};
|
|
15
15
|
export const WithPlaceholder = {
|
|
16
16
|
args: {
|
|
17
|
-
label:
|
|
18
|
-
placeholder:
|
|
17
|
+
label: "Email",
|
|
18
|
+
placeholder: "user@example.com",
|
|
19
19
|
},
|
|
20
20
|
};
|
|
21
21
|
export const WithHelpText = {
|
|
22
22
|
args: {
|
|
23
|
-
label:
|
|
24
|
-
helpText:
|
|
23
|
+
label: "Password",
|
|
24
|
+
helpText: "Must be at least 8 characters",
|
|
25
25
|
},
|
|
26
26
|
};
|
|
27
27
|
export const Invalid = {
|
|
28
28
|
args: {
|
|
29
|
-
label:
|
|
29
|
+
label: "Email",
|
|
30
30
|
invalid: true,
|
|
31
|
-
helpText:
|
|
32
|
-
value:
|
|
31
|
+
helpText: "Please enter a valid email address",
|
|
32
|
+
value: "invalid-email",
|
|
33
33
|
},
|
|
34
34
|
};
|
|
35
35
|
export const Disabled = {
|
|
36
36
|
args: {
|
|
37
|
-
label:
|
|
37
|
+
label: "Email",
|
|
38
38
|
disabled: true,
|
|
39
|
-
value:
|
|
39
|
+
value: "user@example.com",
|
|
40
40
|
},
|
|
41
41
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { describeReactSsrAttributeMapping } from
|
|
2
|
-
import { Textarea } from
|
|
3
|
-
describeReactSsrAttributeMapping(
|
|
4
|
-
{ propName:
|
|
5
|
-
{ propName:
|
|
6
|
-
{ propName:
|
|
7
|
-
{ propName:
|
|
1
|
+
import { describeReactSsrAttributeMapping } from "../../tests/react-ssr-attributes";
|
|
2
|
+
import { Textarea } from "./react.js";
|
|
3
|
+
describeReactSsrAttributeMapping("Textarea", Textarea, [
|
|
4
|
+
{ propName: "helpText", attrName: "help-text", value: "Help text" },
|
|
5
|
+
{ propName: "maxRows", attrName: "maximum-rows", value: 5 },
|
|
6
|
+
{ propName: "minRows", attrName: "minimum-rows", value: 2 },
|
|
7
|
+
{ propName: "readOnly", attrName: "read-only" },
|
|
8
8
|
]);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { Meta, StoryObj } from
|
|
2
|
-
import type { WarpTextarea } from
|
|
3
|
-
import
|
|
1
|
+
import type { Meta, StoryObj } from "@storybook/web-components-vite";
|
|
2
|
+
import type { WarpTextarea } from "./textarea.js";
|
|
3
|
+
import "./textarea.js";
|
|
4
4
|
declare const args: Partial<WarpTextarea> & {
|
|
5
5
|
[key: string]: any;
|
|
6
6
|
};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { spread } from
|
|
2
|
-
import { getStorybookHelpers } from
|
|
3
|
-
import { html } from
|
|
4
|
-
import { prespread } from
|
|
5
|
-
import
|
|
6
|
-
const { events, args, argTypes } = getStorybookHelpers(
|
|
1
|
+
import { spread } from "@open-wc/lit-helpers";
|
|
2
|
+
import { getStorybookHelpers } from "@wc-toolkit/storybook-helpers";
|
|
3
|
+
import { html } from "lit";
|
|
4
|
+
import { prespread } from "../../.storybook/utilities.js";
|
|
5
|
+
import "./textarea.js";
|
|
6
|
+
const { events, args, argTypes } = getStorybookHelpers("w-textarea");
|
|
7
7
|
const meta = {
|
|
8
|
-
title:
|
|
8
|
+
title: "Forms/Textarea",
|
|
9
9
|
render(args) {
|
|
10
10
|
return html `<w-textarea ${spread(prespread(args))}></w-textarea>`;
|
|
11
11
|
},
|
|
@@ -20,93 +20,95 @@ const meta = {
|
|
|
20
20
|
export default meta;
|
|
21
21
|
export const Default = {
|
|
22
22
|
args: {
|
|
23
|
-
label:
|
|
23
|
+
label: "Description",
|
|
24
24
|
},
|
|
25
25
|
};
|
|
26
26
|
export const WithPlaceholder = {
|
|
27
27
|
args: {
|
|
28
|
-
label:
|
|
29
|
-
placeholder:
|
|
28
|
+
label: "Description",
|
|
29
|
+
placeholder: "A Link to the Past is a distant prequel to the original The Legend of Zelda",
|
|
30
30
|
},
|
|
31
31
|
};
|
|
32
32
|
export const WithHelpText = {
|
|
33
33
|
args: {
|
|
34
|
-
label:
|
|
35
|
-
|
|
34
|
+
label: "Description",
|
|
35
|
+
"help-text": "You can provide a help text if necessary",
|
|
36
36
|
},
|
|
37
37
|
};
|
|
38
38
|
export const NoVisualLabel = {
|
|
39
39
|
args: {
|
|
40
|
-
|
|
40
|
+
"aria-label": "Description",
|
|
41
41
|
},
|
|
42
42
|
};
|
|
43
43
|
export const Invalid = {
|
|
44
44
|
args: {
|
|
45
|
-
label:
|
|
45
|
+
label: "Description",
|
|
46
46
|
invalid: true,
|
|
47
|
-
|
|
47
|
+
"help-text": "A description is required",
|
|
48
48
|
},
|
|
49
49
|
};
|
|
50
50
|
export const Disabled = {
|
|
51
51
|
args: {
|
|
52
|
-
label:
|
|
52
|
+
label: "Description",
|
|
53
53
|
disabled: true,
|
|
54
54
|
value: 'A Link to the Past is a distant prequel to the original The Legend of Zelda, and, within the official chronology, is the first game in the "Defeated Hero" timeline that connects to an alternate reality scenario where the Hero of Time does not succeed in Ocarina of Time.',
|
|
55
55
|
},
|
|
56
56
|
};
|
|
57
57
|
export const ReadOnly = {
|
|
58
58
|
args: {
|
|
59
|
-
label:
|
|
60
|
-
|
|
59
|
+
label: "Description",
|
|
60
|
+
"read-only": true,
|
|
61
61
|
value: 'A Link to the Past is a distant prequel to the original The Legend of Zelda, and, within the official chronology, is the first game in the "Defeated Hero" timeline that connects to an alternate reality scenario where the Hero of Time does not succeed in Ocarina of Time.',
|
|
62
62
|
},
|
|
63
63
|
};
|
|
64
64
|
export const Optional = {
|
|
65
65
|
args: {
|
|
66
|
-
label:
|
|
66
|
+
label: "Description",
|
|
67
67
|
optional: true,
|
|
68
68
|
},
|
|
69
69
|
};
|
|
70
70
|
export const ControlledSize = {
|
|
71
71
|
args: {
|
|
72
|
-
label:
|
|
73
|
-
|
|
74
|
-
|
|
72
|
+
label: "Description",
|
|
73
|
+
"minimum-rows": 3,
|
|
74
|
+
"maximum-rows": 3,
|
|
75
75
|
},
|
|
76
76
|
};
|
|
77
77
|
export const Autofocus = {
|
|
78
78
|
args: {
|
|
79
|
-
label:
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
placeholder:
|
|
79
|
+
label: "Description",
|
|
80
|
+
"minimum-rows": 3,
|
|
81
|
+
"maximum-rows": 3,
|
|
82
|
+
placeholder: "Refresh to see the autofocus take effect",
|
|
83
83
|
autofocus: true,
|
|
84
84
|
},
|
|
85
85
|
};
|
|
86
86
|
export const FormParticipation = {
|
|
87
87
|
render: () => html `
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
<form
|
|
89
|
+
@submit=${(e) => {
|
|
90
90
|
e.preventDefault();
|
|
91
91
|
const form = e.target;
|
|
92
92
|
const formData = new FormData(form);
|
|
93
|
-
alert(
|
|
94
|
-
}}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
93
|
+
alert("Form submitted with message: " + formData.get("message"));
|
|
94
|
+
}}
|
|
95
|
+
>
|
|
96
|
+
<w-textarea
|
|
97
|
+
label="Message"
|
|
98
|
+
name="message"
|
|
99
|
+
required
|
|
100
|
+
help-text="This field is required. Try submitting without a value."
|
|
101
|
+
></w-textarea>
|
|
102
|
+
<div style="margin-top: 16px; display: flex; gap: 8px;">
|
|
103
|
+
<button type="submit">Submit</button>
|
|
104
|
+
<button type="reset">Reset</button>
|
|
105
|
+
</div>
|
|
106
|
+
</form>
|
|
107
|
+
`,
|
|
106
108
|
parameters: {
|
|
107
109
|
docs: {
|
|
108
110
|
description: {
|
|
109
|
-
story:
|
|
111
|
+
story: "Demonstrates form validation using ElementInternals. The textarea participates in native form validation - submission is blocked when the required field is empty, and the browser shows a validation message.",
|
|
110
112
|
},
|
|
111
113
|
},
|
|
112
114
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import "./textarea.js";
|
|
@@ -1,175 +1,211 @@
|
|
|
1
|
-
import { userEvent } from
|
|
2
|
-
import { html } from
|
|
3
|
-
import { expect, test, vi } from
|
|
4
|
-
import { render } from
|
|
5
|
-
import
|
|
6
|
-
test(
|
|
1
|
+
import { userEvent } from "vitest/browser";
|
|
2
|
+
import { html } from "lit";
|
|
3
|
+
import { expect, test, vi } from "vitest";
|
|
4
|
+
import { render } from "vitest-browser-lit";
|
|
5
|
+
import "./textarea.js";
|
|
6
|
+
test("renders the textarea", async () => {
|
|
7
7
|
const component = html `<w-textarea label="Test label"></w-textarea>`;
|
|
8
8
|
const page = render(component);
|
|
9
|
-
await expect.element(page.getByText(
|
|
9
|
+
await expect.element(page.getByText("Test label")).toBeVisible();
|
|
10
10
|
});
|
|
11
|
-
test(
|
|
12
|
-
const label =
|
|
11
|
+
test("works as expected in forms", async () => {
|
|
12
|
+
const label = "Test label";
|
|
13
13
|
const component = html `
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
<form data-testid="form">
|
|
15
|
+
<w-textarea
|
|
16
|
+
label="${label}"
|
|
17
|
+
name="message"
|
|
18
|
+
value="Hola el Mundo"
|
|
19
|
+
></w-textarea>
|
|
20
|
+
</form>
|
|
21
|
+
`;
|
|
18
22
|
const page = render(component);
|
|
19
|
-
await expect.element(page.getByLabelText(label)).toHaveValue(
|
|
20
|
-
let formData = new FormData(page.getByTestId(
|
|
21
|
-
expect(formData.get(
|
|
23
|
+
await expect.element(page.getByLabelText(label)).toHaveValue("Hola el Mundo");
|
|
24
|
+
let formData = new FormData(page.getByTestId("form").element());
|
|
25
|
+
expect(formData.get("message")).toBe("Hola el Mundo");
|
|
22
26
|
const inputHandler = vi.fn();
|
|
23
27
|
const changeHandler = vi.fn();
|
|
24
|
-
page.getByLabelText(label).element().addEventListener(
|
|
25
|
-
page
|
|
26
|
-
|
|
28
|
+
page.getByLabelText(label).element().addEventListener("input", inputHandler);
|
|
29
|
+
page
|
|
30
|
+
.getByLabelText(label)
|
|
31
|
+
.element()
|
|
32
|
+
.addEventListener("change", changeHandler);
|
|
33
|
+
await page.getByLabelText(label).fill("Hello, World");
|
|
27
34
|
expect(inputHandler).toHaveBeenCalled();
|
|
28
35
|
expect(changeHandler).not.toHaveBeenCalled();
|
|
29
36
|
await userEvent.tab(); // trigger a blur to fire the change event
|
|
30
37
|
await expect.poll(() => changeHandler.mock.calls.length).toBeGreaterThan(0);
|
|
31
|
-
await expect.element(page.getByLabelText(label)).toHaveValue(
|
|
32
|
-
formData = new FormData(page.getByTestId(
|
|
33
|
-
expect(formData.get(
|
|
38
|
+
await expect.element(page.getByLabelText(label)).toHaveValue("Hello, World");
|
|
39
|
+
formData = new FormData(page.getByTestId("form").element());
|
|
40
|
+
expect(formData.get("message")).toBe("Hello, World");
|
|
34
41
|
});
|
|
35
|
-
test(
|
|
36
|
-
const component = html `<w-textarea
|
|
42
|
+
test("renders help text if provided", async () => {
|
|
43
|
+
const component = html `<w-textarea
|
|
44
|
+
label="Test label"
|
|
45
|
+
help-text="Helpful help text"
|
|
46
|
+
></w-textarea>`;
|
|
37
47
|
const page = render(component);
|
|
38
|
-
await expect.element(page.getByText(
|
|
48
|
+
await expect.element(page.getByText("Helpful help text")).toBeVisible();
|
|
39
49
|
});
|
|
40
|
-
test(
|
|
41
|
-
const component = html `<w-textarea
|
|
50
|
+
test("marks input field as aria-invalid if the invalid prop is true", async () => {
|
|
51
|
+
const component = html `<w-textarea
|
|
52
|
+
label="Test label"
|
|
53
|
+
invalid
|
|
54
|
+
help-text="No, bad input!"
|
|
55
|
+
></w-textarea>`;
|
|
42
56
|
const page = render(component);
|
|
43
|
-
await expect
|
|
57
|
+
await expect
|
|
58
|
+
.element(page.getByLabelText("Test label"))
|
|
59
|
+
.toHaveAccessibleErrorMessage("No, bad input!");
|
|
44
60
|
});
|
|
45
|
-
test(
|
|
46
|
-
const component = html `<w-textarea
|
|
61
|
+
test("aria-invalid attribute is absent when textarea is valid", async () => {
|
|
62
|
+
const component = html `<w-textarea
|
|
63
|
+
label="Test label"
|
|
64
|
+
data-testid="textarea"
|
|
65
|
+
></w-textarea>`;
|
|
47
66
|
const page = render(component);
|
|
48
|
-
const textarea = page.getByLabelText(
|
|
67
|
+
const textarea = page.getByLabelText("Test label");
|
|
49
68
|
await expect.element(textarea).toBeVisible();
|
|
50
69
|
// aria-invalid should NOT be present when valid
|
|
51
|
-
await expect.element(textarea).not.toHaveAttribute(
|
|
70
|
+
await expect.element(textarea).not.toHaveAttribute("aria-invalid");
|
|
52
71
|
});
|
|
53
72
|
test('aria-invalid attribute is "true" when textarea is invalid', async () => {
|
|
54
73
|
const component = html `<w-textarea label="Test label" invalid></w-textarea>`;
|
|
55
74
|
const page = render(component);
|
|
56
|
-
const textarea = page.getByLabelText(
|
|
75
|
+
const textarea = page.getByLabelText("Test label");
|
|
57
76
|
await expect.element(textarea).toBeVisible();
|
|
58
77
|
// aria-invalid should be "true" when invalid
|
|
59
|
-
await expect.element(textarea).toHaveAttribute(
|
|
78
|
+
await expect.element(textarea).toHaveAttribute("aria-invalid", "true");
|
|
60
79
|
});
|
|
61
|
-
test(
|
|
80
|
+
test("marks input field as readonly if the readonly prop is true", async () => {
|
|
62
81
|
const component = html `<w-textarea label="Test label" readonly></w-textarea>`;
|
|
63
82
|
const page = render(component);
|
|
64
|
-
await expect
|
|
83
|
+
await expect
|
|
84
|
+
.element(page.getByLabelText("Test label"))
|
|
85
|
+
.toHaveAttribute("readonly", "");
|
|
65
86
|
});
|
|
66
|
-
test(
|
|
87
|
+
test("can reset textarea by resetting surrounding form", async () => {
|
|
67
88
|
render(html `
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
const form = document.querySelector(
|
|
73
|
-
const wTextArea = document.querySelector(
|
|
89
|
+
<form>
|
|
90
|
+
<w-textarea name="message" value="Hola el Mundo"></w-textarea>
|
|
91
|
+
</form>
|
|
92
|
+
`);
|
|
93
|
+
const form = document.querySelector("form");
|
|
94
|
+
const wTextArea = document.querySelector("w-textarea");
|
|
74
95
|
// sanity
|
|
75
96
|
expect(form).not.toBeNull();
|
|
76
97
|
expect(wTextArea).not.toBeNull();
|
|
77
|
-
await expect.poll(() => wTextArea.value).toBe(
|
|
78
|
-
wTextArea.value =
|
|
79
|
-
await expect.poll(() => wTextArea.value).toBe(
|
|
98
|
+
await expect.poll(() => wTextArea.value).toBe("Hola el Mundo");
|
|
99
|
+
wTextArea.value = "Definitely not Hola el Mundo";
|
|
100
|
+
await expect.poll(() => wTextArea.value).toBe("Definitely not Hola el Mundo");
|
|
80
101
|
// Reset the form
|
|
81
102
|
form.reset();
|
|
82
|
-
await expect.poll(() => wTextArea.value).toBe(
|
|
103
|
+
await expect.poll(() => wTextArea.value).toBe("Hola el Mundo");
|
|
83
104
|
});
|
|
84
|
-
test(
|
|
105
|
+
test("checkValidity returns false when required textarea is empty", async () => {
|
|
85
106
|
render(html `<w-textarea label="Message" name="message" required></w-textarea>`);
|
|
86
|
-
const wTextArea = document.querySelector(
|
|
107
|
+
const wTextArea = document.querySelector("w-textarea");
|
|
87
108
|
// Wait for component to be ready
|
|
88
109
|
await expect.poll(() => wTextArea.checkValidity()).toBe(false);
|
|
89
110
|
expect(wTextArea.validity.valueMissing).toBe(true);
|
|
90
|
-
expect(wTextArea.validationMessage).not.toBe(
|
|
111
|
+
expect(wTextArea.validationMessage).not.toBe("");
|
|
91
112
|
});
|
|
92
|
-
test(
|
|
93
|
-
render(html `<w-textarea
|
|
94
|
-
|
|
113
|
+
test("checkValidity returns true when required textarea has a value", async () => {
|
|
114
|
+
render(html `<w-textarea
|
|
115
|
+
label="Message"
|
|
116
|
+
name="message"
|
|
117
|
+
required
|
|
118
|
+
value="Hello"
|
|
119
|
+
></w-textarea>`);
|
|
120
|
+
const wTextArea = document.querySelector("w-textarea");
|
|
95
121
|
// Wait for component to be ready
|
|
96
122
|
await expect.poll(() => wTextArea.checkValidity()).toBe(true);
|
|
97
123
|
expect(wTextArea.validity.valid).toBe(true);
|
|
98
124
|
});
|
|
99
|
-
test(
|
|
125
|
+
test("form submission is blocked when required textarea is empty", async () => {
|
|
100
126
|
const submitHandler = vi.fn((e) => e.preventDefault());
|
|
101
127
|
render(html `
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
const form = document.querySelector(
|
|
108
|
-
form.addEventListener(
|
|
109
|
-
const wTextArea = document.querySelector(
|
|
128
|
+
<form data-testid="form">
|
|
129
|
+
<w-textarea label="Message" name="message" required></w-textarea>
|
|
130
|
+
<button type="submit">Submit</button>
|
|
131
|
+
</form>
|
|
132
|
+
`);
|
|
133
|
+
const form = document.querySelector("form");
|
|
134
|
+
form.addEventListener("submit", submitHandler);
|
|
135
|
+
const wTextArea = document.querySelector("w-textarea");
|
|
110
136
|
// Wait for component to be ready
|
|
111
137
|
await expect.poll(() => wTextArea.checkValidity()).toBe(false);
|
|
112
138
|
// Try to submit - should be blocked by validation
|
|
113
|
-
const submitButton = document.querySelector(
|
|
139
|
+
const submitButton = document.querySelector("button");
|
|
114
140
|
submitButton.click();
|
|
115
141
|
// Component should show invalid state with error message
|
|
116
142
|
await expect.poll(() => wTextArea.invalid).toBe(true);
|
|
117
|
-
await expect.poll(() => wTextArea.helpText).not.toBe(
|
|
143
|
+
await expect.poll(() => wTextArea.helpText).not.toBe("");
|
|
118
144
|
// Form should not have been submitted
|
|
119
145
|
expect(submitHandler).not.toHaveBeenCalled();
|
|
120
146
|
});
|
|
121
|
-
test(
|
|
147
|
+
test("form submission succeeds when required textarea has a value", async () => {
|
|
122
148
|
const submitHandler = vi.fn((e) => e.preventDefault());
|
|
123
149
|
render(html `
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
150
|
+
<form data-testid="form">
|
|
151
|
+
<w-textarea
|
|
152
|
+
label="Message"
|
|
153
|
+
name="message"
|
|
154
|
+
required
|
|
155
|
+
value="Hello"
|
|
156
|
+
></w-textarea>
|
|
157
|
+
<button type="submit">Submit</button>
|
|
158
|
+
</form>
|
|
159
|
+
`);
|
|
160
|
+
const form = document.querySelector("form");
|
|
161
|
+
form.addEventListener("submit", submitHandler);
|
|
162
|
+
const wTextArea = document.querySelector("w-textarea");
|
|
132
163
|
// Wait for component to be ready
|
|
133
164
|
await expect.poll(() => wTextArea.checkValidity()).toBe(true);
|
|
134
165
|
// Submit should succeed
|
|
135
|
-
const submitButton = document.querySelector(
|
|
166
|
+
const submitButton = document.querySelector("button");
|
|
136
167
|
submitButton.click();
|
|
137
168
|
// Form should have been submitted
|
|
138
169
|
await expect.poll(() => submitHandler.mock.calls.length).toBeGreaterThan(0);
|
|
139
170
|
});
|
|
140
|
-
test(
|
|
171
|
+
test("shows validation error on blur when required field is empty", async () => {
|
|
141
172
|
const page = render(html `<w-textarea label="Message" name="message" required></w-textarea>`);
|
|
142
|
-
const wTextArea = document.querySelector(
|
|
173
|
+
const wTextArea = document.querySelector("w-textarea");
|
|
143
174
|
// Initially should not show error (no interaction yet)
|
|
144
175
|
await expect.poll(() => wTextArea.invalid).toBeFalsy();
|
|
145
176
|
// Focus and blur the textarea
|
|
146
|
-
const textarea = page.getByLabelText(
|
|
177
|
+
const textarea = page.getByLabelText("Message");
|
|
147
178
|
await textarea.click();
|
|
148
179
|
await userEvent.tab(); // blur
|
|
149
180
|
// Should now show validation error
|
|
150
181
|
await expect.poll(() => wTextArea.invalid).toBe(true);
|
|
151
|
-
await expect.poll(() => wTextArea.helpText).not.toBe(
|
|
182
|
+
await expect.poll(() => wTextArea.helpText).not.toBe("");
|
|
152
183
|
});
|
|
153
|
-
test(
|
|
184
|
+
test("restores original help text when validation passes", async () => {
|
|
154
185
|
const page = render(html `
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
186
|
+
<w-textarea
|
|
187
|
+
label="Message"
|
|
188
|
+
name="message"
|
|
189
|
+
required
|
|
190
|
+
help-text="Enter your message"
|
|
191
|
+
></w-textarea>
|
|
192
|
+
`);
|
|
193
|
+
const wTextArea = document.querySelector("w-textarea");
|
|
158
194
|
// Initially should show original help text
|
|
159
|
-
await expect.poll(() => wTextArea.helpText).toBe(
|
|
195
|
+
await expect.poll(() => wTextArea.helpText).toBe("Enter your message");
|
|
160
196
|
// Focus and blur to trigger validation
|
|
161
|
-
const textarea = page.getByLabelText(
|
|
197
|
+
const textarea = page.getByLabelText("Message");
|
|
162
198
|
await textarea.click();
|
|
163
199
|
await userEvent.tab();
|
|
164
200
|
// Should show validation error
|
|
165
201
|
await expect.poll(() => wTextArea.invalid).toBe(true);
|
|
166
|
-
await expect.poll(() => wTextArea.helpText).not.toBe(
|
|
202
|
+
await expect.poll(() => wTextArea.helpText).not.toBe("Enter your message");
|
|
167
203
|
// Fill in a value
|
|
168
|
-
wTextArea.value =
|
|
204
|
+
wTextArea.value = "Hello";
|
|
169
205
|
await wTextArea.updateComplete;
|
|
170
206
|
// Wait for value + validity to update, then restore original help text
|
|
171
|
-
await expect.poll(() => wTextArea.value).toBe(
|
|
207
|
+
await expect.poll(() => wTextArea.value).toBe("Hello");
|
|
172
208
|
await expect.poll(() => wTextArea.checkValidity()).toBe(true);
|
|
173
209
|
await expect.poll(() => wTextArea.invalid).toBe(false);
|
|
174
|
-
await expect.poll(() => wTextArea.helpText).toBe(
|
|
210
|
+
await expect.poll(() => wTextArea.helpText).toBe("Enter your message");
|
|
175
211
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from
|
|
2
|
-
import { WarpTextField } from
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { WarpTextField } from "./textfield.js";
|
|
3
3
|
export declare const TextField: React.ForwardRefExoticComponent<Omit<Omit<Omit<React.HTMLAttributes<WarpTextField>, "value" | "form" | "label" | "mask" | "pattern" | "type" | "name" | "size" | "autocomplete" | "disabled" | "invalid" | "helpText" | "max" | "min" | "minLength" | "minlength" | "maxLength" | "maxlength" | "placeholder" | "readOnly" | "readonly" | "required" | "step" | "formatter" | "renderRoot" | "isUpdatePending" | "hasUpdated" | "addController" | "removeController" | "connectedCallback" | "disconnectedCallback" | "attributeChangedCallback" | "requestUpdate" | "updateComplete" | "onblur" | "onchange" | "onfocus" | "oninput" | "_hasPrefix" | "_hasSuffix" | "updated" | "firstUpdated" | "resetFormControl" | "_inputstyles" | "_helptextstyles" | "_label" | "_helpId" | "_id" | "_error" | "handler" | "prefixSlotChange" | "suffixSlotChange" | "render" | "validationTarget" | "internals" | "showError" | "validationMessage" | "validity" | "validationComplete" | "checkValidity" | "formResetCallback" | "valueChangedCallback" | "validityCallback" | "validationMessageCallback" | "setValue" | "shouldFormValueUpdate" | "renderOptions" | "onFocus" | "onBlur" | "onChange" | "onInput"> & {
|
|
4
4
|
onBlur?: ((e: Event) => void) | undefined;
|
|
5
5
|
onblur?: ((e: Event) => void) | undefined;
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
import { createComponent } from
|
|
2
|
-
import { LitElement } from
|
|
3
|
-
import React from
|
|
1
|
+
import { createComponent } from "@lit/react";
|
|
2
|
+
import { LitElement } from "lit";
|
|
3
|
+
import React from "react";
|
|
4
4
|
// decouple from CDN by providing a dummy class
|
|
5
5
|
class Component extends LitElement {
|
|
6
6
|
}
|
|
7
7
|
const BaseTextField = createComponent({
|
|
8
|
-
tagName:
|
|
8
|
+
tagName: "w-textfield",
|
|
9
9
|
elementClass: Component,
|
|
10
10
|
react: React,
|
|
11
11
|
events: {
|
|
12
|
-
onBlur:
|
|
13
|
-
onblur:
|
|
14
|
-
onChange:
|
|
15
|
-
onchange:
|
|
16
|
-
onInput:
|
|
17
|
-
oninput:
|
|
18
|
-
onFocus:
|
|
19
|
-
onfocus:
|
|
12
|
+
onBlur: "blur",
|
|
13
|
+
onblur: "blur",
|
|
14
|
+
onChange: "change",
|
|
15
|
+
onchange: "change",
|
|
16
|
+
onInput: "input",
|
|
17
|
+
oninput: "input",
|
|
18
|
+
onFocus: "focus",
|
|
19
|
+
onfocus: "focus",
|
|
20
20
|
},
|
|
21
21
|
});
|
|
22
22
|
export const TextField = React.forwardRef(({ helpText, minLength, maxLength, readOnly, ...props }, ref) => React.createElement(BaseTextField, {
|
|
23
23
|
...props,
|
|
24
|
-
...(helpText !== undefined ? {
|
|
25
|
-
...(minLength !== undefined ? {
|
|
26
|
-
...(maxLength !== undefined ? {
|
|
27
|
-
...(readOnly ? {
|
|
24
|
+
...(helpText !== undefined ? { "help-text": helpText } : {}),
|
|
25
|
+
...(minLength !== undefined ? { "min-length": minLength } : {}),
|
|
26
|
+
...(maxLength !== undefined ? { "max-length": maxLength } : {}),
|
|
27
|
+
...(readOnly ? { "read-only": true } : {}),
|
|
28
28
|
ref,
|
|
29
29
|
}));
|
|
30
|
-
TextField.displayName =
|
|
30
|
+
TextField.displayName = "TextField";
|