@warp-ds/elements 2.2.0-next.8 → 2.2.0
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/README.md +188 -26
- package/dist/.storybook/utilities.js +52 -0
- package/dist/api.js +1 -1
- package/dist/api.js.map +4 -4
- package/dist/custom-elements.json +1517 -2876
- package/dist/index.d.ts +942 -25
- package/dist/packages/affix/affix.react.stories.d.ts +9 -0
- package/dist/packages/affix/affix.react.stories.js +10 -0
- package/dist/packages/affix/affix.stories.js +25 -0
- package/dist/packages/affix/affix.test.js +9 -0
- package/dist/packages/affix/index.d.ts +0 -17
- package/dist/packages/affix/index.js +5 -5
- package/dist/packages/affix/index.js.map +4 -4
- package/dist/packages/affix/react.d.ts +1 -1
- package/dist/packages/affix/react.js +15 -2482
- package/dist/packages/affix/styles.js +2 -0
- package/dist/packages/alert/alert.react.stories.d.ts +13 -0
- package/dist/packages/alert/alert.react.stories.js +44 -0
- package/dist/packages/alert/alert.stories.js +68 -0
- package/dist/packages/alert/alert.test.js +18 -0
- package/dist/packages/alert/index.d.ts +1 -6
- package/dist/packages/alert/index.js +4 -4
- package/dist/packages/alert/index.js.map +4 -4
- package/dist/packages/alert/react.d.ts +1 -1
- package/dist/packages/alert/react.js +11 -2492
- package/dist/packages/alert/styles.js +2 -0
- package/dist/packages/attention/attention.react.stories.d.ts +15 -0
- package/dist/packages/attention/attention.react.stories.js +92 -0
- package/dist/packages/attention/attention.stories.d.ts +6 -0
- package/dist/packages/attention/attention.stories.js +180 -0
- package/dist/packages/attention/attention.test.js +11 -0
- package/dist/packages/attention/index.d.ts +24 -91
- package/dist/packages/attention/index.js +3585 -17
- package/dist/packages/attention/index.js.map +4 -4
- package/dist/packages/attention/layout-styles.js +905 -0
- package/dist/packages/attention/locales/da/messages.mjs +1 -0
- package/dist/packages/attention/locales/en/messages.mjs +1 -0
- package/dist/packages/attention/locales/fi/messages.mjs +1 -0
- package/dist/packages/attention/locales/nb/messages.mjs +1 -0
- package/dist/packages/attention/locales/sv/messages.mjs +1 -0
- package/dist/packages/attention/react.d.ts +15 -0
- package/dist/packages/attention/react.js +17 -0
- package/dist/packages/attention/styles.js +2 -0
- package/dist/packages/badge/badge.react.stories.d.ts +18 -0
- package/dist/packages/badge/badge.react.stories.js +60 -0
- package/dist/packages/badge/badge.stories.js +68 -0
- package/dist/packages/badge/badge.test.js +9 -0
- package/dist/packages/badge/index.d.ts +0 -5
- package/dist/packages/badge/index.js +1 -1
- package/dist/packages/badge/index.js.map +4 -4
- package/dist/packages/badge/react.d.ts +1 -1
- package/dist/packages/badge/react.js +11 -2465
- package/dist/packages/badge/styles.js +2 -0
- package/dist/packages/box/box.react.stories.d.ts +15 -0
- package/dist/packages/box/box.react.stories.js +45 -0
- package/dist/packages/box/box.stories.js +59 -0
- package/dist/packages/box/box.test.js +9 -0
- package/dist/packages/box/index.d.ts +0 -5
- package/dist/packages/box/index.js +11 -4
- package/dist/packages/box/index.js.map +4 -4
- package/dist/packages/box/react.d.ts +1 -1
- package/dist/packages/box/react.js +11 -2465
- package/dist/packages/box/slot.test.js +9 -0
- package/dist/packages/box/styles.js +2 -0
- package/dist/packages/breadcrumbs/breadcrumbs.react.stories.d.ts +13 -0
- package/dist/packages/breadcrumbs/breadcrumbs.react.stories.js +40 -0
- package/dist/packages/breadcrumbs/breadcrumbs.stories.js +60 -0
- package/dist/packages/breadcrumbs/breadcrumbs.test.js +16 -0
- package/dist/packages/breadcrumbs/index.d.ts +0 -12
- package/dist/packages/breadcrumbs/index.js +6 -6
- package/dist/packages/breadcrumbs/index.js.map +4 -4
- package/dist/packages/breadcrumbs/locales/da/messages.mjs +1 -0
- package/dist/packages/breadcrumbs/locales/en/messages.mjs +1 -0
- package/dist/packages/breadcrumbs/locales/fi/messages.mjs +1 -0
- package/dist/packages/breadcrumbs/locales/nb/messages.mjs +1 -0
- package/dist/packages/breadcrumbs/locales/sv/messages.mjs +1 -0
- package/dist/packages/breadcrumbs/react.d.ts +1 -1
- package/dist/packages/breadcrumbs/react.js +11 -2475
- package/dist/packages/breadcrumbs/styles.js +2 -0
- package/dist/packages/button/button.react.stories.d.ts +22 -0
- package/dist/packages/button/button.react.stories.js +102 -0
- package/dist/packages/button/button.stories.d.ts +4 -0
- package/dist/packages/button/button.stories.js +151 -0
- package/dist/packages/button/button.test.js +25 -0
- package/dist/packages/button/index.d.ts +0 -66
- package/dist/packages/button/index.js +17 -11
- package/dist/packages/button/index.js.map +4 -4
- package/dist/packages/button/locales/da/messages.mjs +1 -0
- package/dist/packages/button/locales/en/messages.mjs +1 -0
- package/dist/packages/button/locales/fi/messages.mjs +1 -0
- package/dist/packages/button/locales/nb/messages.mjs +1 -0
- package/dist/packages/button/locales/sv/messages.mjs +1 -0
- package/dist/packages/button/react.d.ts +1 -1
- package/dist/packages/button/react.js +10 -2684
- package/dist/packages/button/styles.js +2 -0
- package/dist/packages/card/card.react.stories.d.ts +16 -0
- package/dist/packages/card/card.react.stories.js +63 -0
- package/dist/packages/card/card.stories.js +82 -0
- package/dist/packages/card/card.test.js +9 -0
- package/dist/packages/card/index.d.ts +1 -18
- package/dist/packages/card/index.js +4 -4
- package/dist/packages/card/index.js.map +4 -4
- package/dist/packages/card/locales/da/messages.mjs +1 -0
- package/dist/packages/card/locales/en/messages.mjs +1 -0
- package/dist/packages/card/locales/fi/messages.mjs +1 -0
- package/dist/packages/card/locales/nb/messages.mjs +1 -0
- package/dist/packages/card/locales/sv/messages.mjs +1 -0
- package/dist/packages/card/react.d.ts +1 -1
- package/dist/packages/card/react.js +11 -2487
- package/dist/packages/card/styles.js +2 -0
- package/dist/packages/expandable/expandable.react.stories.d.ts +18 -0
- package/dist/packages/expandable/expandable.react.stories.js +103 -0
- package/dist/packages/expandable/expandable.stories.js +132 -0
- package/dist/packages/expandable/expandable.test.js +24 -0
- package/dist/packages/expandable/index.d.ts +2 -33
- package/dist/packages/expandable/index.js +20 -11
- package/dist/packages/expandable/index.js.map +4 -4
- package/dist/packages/expandable/react.d.ts +1 -1
- package/dist/packages/expandable/react.js +11 -2495
- package/dist/packages/expandable/styles.js +2 -0
- package/dist/packages/i18n.js +45 -0
- package/dist/packages/link/index.d.ts +0 -5
- package/dist/packages/link/index.js +93 -2640
- package/dist/packages/link/styles.js +200 -0
- package/dist/packages/modal/index.js +24 -41
- package/dist/packages/modal/index.js.map +4 -4
- package/dist/packages/modal/locales/da/messages.mjs +1 -0
- package/dist/packages/modal/locales/en/messages.mjs +1 -0
- package/dist/packages/modal/locales/fi/messages.mjs +1 -0
- package/dist/packages/modal/locales/nb/messages.mjs +1 -0
- package/dist/packages/modal/locales/sv/messages.mjs +1 -0
- package/dist/packages/modal/modal-footer.d.ts +0 -5
- package/dist/packages/{dead-toggle/index.js → modal/modal-footer.js} +20 -47
- package/dist/packages/modal/modal-footer.js.map +7 -0
- package/dist/packages/modal/modal-header.d.ts +0 -5
- package/dist/packages/{steps/index.js → modal/modal-header.js} +122 -20
- package/dist/packages/modal/modal-header.js.map +7 -0
- package/dist/packages/modal/modal-main.d.ts +0 -5
- package/dist/packages/{dead-toggle/react.js → modal/modal-main.js} +124 -59
- package/dist/packages/{box/react.js.map → modal/modal-main.js.map} +4 -4
- package/dist/packages/modal/modal.react.stories.d.ts +14 -0
- package/dist/packages/modal/modal.react.stories.js +27 -0
- package/dist/packages/modal/modal.stories.d.ts +3 -3
- package/dist/packages/modal/modal.stories.js +254 -0
- package/dist/packages/modal/react.d.ts +11 -3
- package/dist/packages/modal/react.js +31 -2754
- package/dist/packages/modal/util.js +21 -0
- package/dist/packages/pill/index.d.ts +0 -17
- package/dist/packages/pill/index.js +5 -5
- package/dist/packages/pill/index.js.map +2 -2
- package/dist/packages/pill/locales/da/messages.mjs +1 -0
- package/dist/packages/pill/locales/en/messages.mjs +1 -0
- package/dist/packages/pill/locales/fi/messages.mjs +1 -0
- package/dist/packages/pill/locales/nb/messages.mjs +1 -0
- package/dist/packages/pill/locales/sv/messages.mjs +1 -0
- package/dist/packages/pill/pill.react.stories.d.ts +23 -0
- package/dist/packages/pill/pill.react.stories.js +22 -0
- package/dist/packages/pill/pill.stories.js +33 -0
- package/dist/packages/pill/pill.test.js +25 -0
- package/dist/packages/pill/react.d.ts +7 -0
- package/dist/packages/pill/react.js +17 -0
- package/dist/packages/pill/styles.js +2 -0
- package/dist/packages/select/index.d.ts +4 -29
- package/dist/packages/select/index.js +25 -18
- package/dist/packages/select/index.js.map +3 -3
- package/dist/packages/select/locales/da/messages.mjs +1 -0
- package/dist/packages/select/locales/en/messages.mjs +1 -0
- package/dist/packages/select/locales/fi/messages.mjs +1 -0
- package/dist/packages/select/locales/nb/messages.mjs +1 -0
- package/dist/packages/select/locales/sv/messages.mjs +1 -0
- package/dist/packages/select/react.d.ts +6 -2
- package/dist/packages/select/react.js +20 -2494
- package/dist/packages/select/select.react.stories.d.ts +18 -0
- package/dist/packages/select/select.react.stories.js +28 -0
- package/dist/packages/select/select.stories.d.ts +7 -0
- package/dist/packages/select/select.stories.js +100 -0
- package/dist/packages/select/select.test.js +31 -0
- package/dist/packages/select/styles.js +2 -0
- package/dist/packages/{switch/index.js → styles.js} +5 -18
- package/dist/packages/textfield/index.d.ts +12 -26
- package/dist/packages/textfield/index.js +86 -28
- package/dist/packages/textfield/index.js.map +4 -4
- package/dist/packages/textfield/react.d.ts +11 -2
- package/dist/packages/textfield/react.js +21 -2490
- package/dist/packages/textfield/styles/w-textfield.styles.d.ts +1 -0
- package/dist/packages/textfield/styles/w-textfield.styles.js +55 -0
- package/dist/packages/textfield/styles.js +2 -0
- package/dist/packages/textfield/textfield.react.stories.d.ts +37 -0
- package/dist/packages/textfield/textfield.react.stories.js +88 -0
- package/dist/packages/textfield/textfield.stories.d.ts +1 -0
- package/dist/packages/textfield/textfield.stories.js +105 -0
- package/dist/packages/textfield/textfield.test.d.ts +1 -0
- package/dist/packages/textfield/textfield.test.js +68 -0
- package/dist/packages/toast/api.d.ts +4 -45
- package/dist/packages/toast/api.js +41 -0
- package/dist/packages/toast/index.d.ts +3 -3
- package/dist/packages/toast/index.js +2463 -24
- package/dist/packages/toast/index.js.map +4 -4
- package/dist/packages/toast/locales/da/messages.mjs +1 -0
- package/dist/packages/toast/locales/en/messages.mjs +1 -0
- package/dist/packages/toast/locales/fi/messages.mjs +1 -0
- package/dist/packages/toast/locales/nb/messages.mjs +1 -0
- package/dist/packages/toast/locales/sv/messages.mjs +1 -0
- package/dist/packages/toast/styles.js +2 -0
- package/dist/packages/toast/toast-container.d.ts +12 -78
- package/dist/packages/{switch/react.js → toast/toast-container.js} +21 -38
- package/dist/packages/toast/toast-container.js.map +7 -0
- package/dist/packages/toast/toast.d.ts +16 -29
- package/dist/packages/{pagination/index.js → toast/toast.js} +21 -49
- package/dist/packages/toast/toast.js.map +7 -0
- package/dist/packages/toast/toast.stories.js +50 -0
- package/dist/packages/toast/types.d.ts +15 -0
- package/dist/packages/toast/types.js +1 -0
- package/dist/packages/utils/expand-transition.d.ts +3 -3
- package/dist/packages/utils/expand-transition.js +59 -0
- package/dist/packages/utils/index.js +37 -0
- package/dist/packages/utils/unstyled-heading.d.ts +2 -3
- package/dist/packages/utils/unstyled-heading.js +22 -0
- package/dist/packages/utils/window-exists.js +1 -0
- package/dist/setup-tests.js +1 -0
- package/dist/web-types.json +225 -510
- package/package.json +39 -32
- package/dist/index.css +0 -2
- package/dist/index.css.map +0 -7
- package/dist/index.js +0 -3386
- package/dist/index.js.map +0 -7
- package/dist/packages/affix/react.js.map +0 -7
- package/dist/packages/alert/react.js.map +0 -7
- package/dist/packages/badge/react.js.map +0 -7
- package/dist/packages/breadcrumbs/react.js.map +0 -7
- package/dist/packages/button/react.js.map +0 -7
- package/dist/packages/card/react.js.map +0 -7
- package/dist/packages/datepicker/DatePicker.test.d.ts +0 -1
- package/dist/packages/datepicker/datepicker.d.ts +0 -107
- package/dist/packages/datepicker/datepicker.stories.d.ts +0 -11
- package/dist/packages/datepicker/datepicker.test.d.ts +0 -2
- package/dist/packages/datepicker/index.d.ts +0 -1
- package/dist/packages/datepicker/index.js +0 -2785
- package/dist/packages/datepicker/index.js.map +0 -7
- package/dist/packages/datepicker/locales/da/messages.d.mts +0 -1
- package/dist/packages/datepicker/locales/en/messages.d.mts +0 -1
- package/dist/packages/datepicker/locales/fi/messages.d.mts +0 -1
- package/dist/packages/datepicker/locales/nb/messages.d.mts +0 -1
- package/dist/packages/datepicker/locales/sv/messages.d.mts +0 -1
- package/dist/packages/datepicker/react.d.ts +0 -2
- package/dist/packages/datepicker/react.js +0 -2805
- package/dist/packages/datepicker/react.js.map +0 -7
- package/dist/packages/datepicker/styles/w-datepicker-calendar.styles.d.ts +0 -1
- package/dist/packages/datepicker/styles/w-datepicker-day.styles.d.ts +0 -1
- package/dist/packages/datepicker/styles/w-datepicker-month.styles.d.ts +0 -1
- package/dist/packages/datepicker/styles/w-datepicker.styles.d.ts +0 -1
- package/dist/packages/datepicker/utils.d.ts +0 -13
- package/dist/packages/dead-toggle/dead-toggle.stories.d.ts +0 -10
- package/dist/packages/dead-toggle/index.d.ts +0 -21
- package/dist/packages/dead-toggle/index.js.map +0 -7
- package/dist/packages/dead-toggle/react.d.ts +0 -2
- package/dist/packages/dead-toggle/react.js.map +0 -7
- package/dist/packages/expandable/react.js.map +0 -7
- package/dist/packages/link/index.js.map +0 -7
- package/dist/packages/link/link.stories.d.ts +0 -20
- package/dist/packages/link/link.test.d.ts +0 -1
- package/dist/packages/link/react.d.ts +0 -2
- package/dist/packages/link/react.js +0 -2666
- package/dist/packages/link/react.js.map +0 -7
- package/dist/packages/modal/react.js.map +0 -7
- package/dist/packages/pageindicator/index.d.ts +0 -14
- package/dist/packages/pageindicator/index.js +0 -32
- package/dist/packages/pageindicator/index.js.map +0 -7
- package/dist/packages/pageindicator/pageindicator.stories.d.ts +0 -32
- package/dist/packages/pageindicator/react.d.ts +0 -2
- package/dist/packages/pageindicator/react.js +0 -52
- package/dist/packages/pageindicator/react.js.map +0 -7
- package/dist/packages/pagination/index.d.ts +0 -37
- package/dist/packages/pagination/index.js.map +0 -7
- package/dist/packages/pagination/locales/da/messages.d.mts +0 -1
- package/dist/packages/pagination/locales/en/messages.d.mts +0 -1
- package/dist/packages/pagination/locales/fi/messages.d.mts +0 -1
- package/dist/packages/pagination/locales/nb/messages.d.mts +0 -1
- package/dist/packages/pagination/locales/sv/messages.d.mts +0 -1
- package/dist/packages/pagination/pagination.stories.d.ts +0 -14
- package/dist/packages/pagination/pagination.test.d.ts +0 -1
- package/dist/packages/pagination/react.d.ts +0 -2
- package/dist/packages/pagination/react.js +0 -2514
- package/dist/packages/pagination/react.js.map +0 -7
- package/dist/packages/rip-and-tear-checkbox/checkbox.d.ts +0 -64
- package/dist/packages/rip-and-tear-checkbox/index.css +0 -2
- package/dist/packages/rip-and-tear-checkbox/index.css.map +0 -7
- package/dist/packages/rip-and-tear-checkbox/index.d.ts +0 -6
- package/dist/packages/rip-and-tear-checkbox/index.js +0 -36
- package/dist/packages/rip-and-tear-checkbox/index.js.map +0 -7
- package/dist/packages/rip-and-tear-radio/base-element.d.ts +0 -46
- package/dist/packages/rip-and-tear-radio/custom-error-validator.d.ts +0 -6
- package/dist/packages/rip-and-tear-radio/form-associated-element.d.ts +0 -103
- package/dist/packages/rip-and-tear-radio/index.css +0 -2
- package/dist/packages/rip-and-tear-radio/index.css.map +0 -7
- package/dist/packages/rip-and-tear-radio/index.d.ts +0 -8
- package/dist/packages/rip-and-tear-radio/index.js +0 -34
- package/dist/packages/rip-and-tear-radio/index.js.map +0 -7
- package/dist/packages/rip-and-tear-radio/invalid.d.ts +0 -8
- package/dist/packages/rip-and-tear-radio/math.d.ts +0 -1
- package/dist/packages/rip-and-tear-radio/radio-group.d.ts +0 -72
- package/dist/packages/rip-and-tear-radio/radio.d.ts +0 -38
- package/dist/packages/rip-and-tear-radio/required-validator.d.ts +0 -11
- package/dist/packages/rip-and-tear-radio/slot.d.ts +0 -20
- package/dist/packages/rip-and-tear-radio/watch.d.ts +0 -26
- package/dist/packages/select/react.js.map +0 -7
- package/dist/packages/steps/index.d.ts +0 -43
- package/dist/packages/steps/index.js.map +0 -7
- package/dist/packages/steps/locales/da/messages.d.mts +0 -1
- package/dist/packages/steps/locales/en/messages.d.mts +0 -1
- package/dist/packages/steps/locales/fi/messages.d.mts +0 -1
- package/dist/packages/steps/locales/nb/messages.d.mts +0 -1
- package/dist/packages/steps/locales/sv/messages.d.mts +0 -1
- package/dist/packages/steps/react.d.ts +0 -3
- package/dist/packages/steps/react.js +0 -2485
- package/dist/packages/steps/react.js.map +0 -7
- package/dist/packages/steps/steps.stories.d.ts +0 -12
- package/dist/packages/switch/index.d.ts +0 -20
- package/dist/packages/switch/index.js.map +0 -7
- package/dist/packages/switch/react.d.ts +0 -2
- package/dist/packages/switch/react.js.map +0 -7
- package/dist/packages/switch/styles.d.ts +0 -1
- package/dist/packages/switch/switch.stories.d.ts +0 -9
- package/dist/packages/textfield/react.js.map +0 -7
- package/dist/vscode.css-custom-data.json +0 -6
- package/dist/vscode.html-custom-data.json +0 -418
- /package/dist/packages/{dead-toggle/dead-toggle.test.d.ts → attention/attention.test.d.ts} +0 -0
- /package/dist/packages/{pageindicator/style.d.ts → attention/layout-styles.d.ts} +0 -0
- /package/dist/packages/{pagination → attention}/styles.d.ts +0 -0
- /package/dist/packages/{steps → toast}/styles.d.ts +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const wTextfieldStyles: import("lit").CSSResult;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
/* For some reason the pseudoselectors for webkit and moz must be separate blocks :shrug: */
|
|
3
|
+
export const wTextfieldStyles = css `
|
|
4
|
+
.w-textfield {
|
|
5
|
+
--_input-padding-top: 12px;
|
|
6
|
+
--_input-padding-left: 8px;
|
|
7
|
+
--_input-padding-right: 8px;
|
|
8
|
+
position: relative;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.w-textfield--has-prefix {
|
|
12
|
+
--_input-padding-left: 40px;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.w-textfield--has-suffix {
|
|
16
|
+
--_input-padding-right: var(--w-prefix-width, 40px);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.w-textfield__input-wrapper {
|
|
20
|
+
position: relative;
|
|
21
|
+
overflow: hidden;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.w-textfield__input-wrapper:focus-within .w-textfield__mask {
|
|
25
|
+
display: none;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/* Hide the native browser controls */
|
|
29
|
+
input[type="number"] {
|
|
30
|
+
-moz-appearance:textfield;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
input[type="number"]::-webkit-inner-spin-button {
|
|
34
|
+
display: none;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/* Could also consider giving the input mask a background color instead of this */
|
|
38
|
+
.w-textfield__input-wrapper:has(.w-textfield__mask):not(:focus-within) input {
|
|
39
|
+
color: transparent;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.w-textfield__mask {
|
|
43
|
+
display: block;
|
|
44
|
+
border: 1px solid transparent;
|
|
45
|
+
top: var(--_input-padding-top);
|
|
46
|
+
left: var(--_input-padding-left);
|
|
47
|
+
right: var(--_input-padding-right);
|
|
48
|
+
position: absolute;
|
|
49
|
+
pointer-events: none;
|
|
50
|
+
white-space: nowrap;
|
|
51
|
+
overflow: hidden;
|
|
52
|
+
text-overflow: ellipsis;
|
|
53
|
+
z-index: 1;
|
|
54
|
+
}
|
|
55
|
+
`;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
export const styles = css `*,:before,:after{--w-rotate:0;--w-rotate-x:0;--w-rotate-y:0;--w-rotate-z:0;--w-scale-x:1;--w-scale-y:1;--w-scale-z:1;--w-skew-x:0;--w-skew-y:0;--w-translate-x:0;--w-translate-y:0;--w-translate-z:0}.focus\\:\\[--w-outline-offset\\:-2px\\]:focus{--w-outline-offset:-2px}.bg-transparent{background-color:#0000}.border-1{border-width:1px}.rounded-4{border-radius:4px}.caret-current{caret-color:currentColor}.block{display:block}.focusable:focus{outline:2px solid var(--w-s-color-border-focus);outline-offset:var(--w-outline-offset,1px)}.focusable:focus-visible{outline:2px solid var(--w-s-color-border-focus);outline-offset:var(--w-outline-offset,1px)}.focusable:not(:focus-visible){outline:none}.outline-\\[--w-s-color-border-negative\\]\\!{outline-color:var(--w-s-color-border-negative)!important}.relative{position:relative}.static{position:static}.s-bg{background-color:var(--w-s-color-background)}.s-bg-disabled-subtle{background-color:var(--w-s-color-background-disabled-subtle)}.s-text{color:var(--w-s-color-text)}.s-text-disabled{color:var(--w-s-color-text-disabled)}.s-text-negative{color:var(--w-s-color-text-negative)}.s-text-subtle{color:var(--w-s-color-text-subtle)}.placeholder\\:s-text-placeholder::placeholder{color:var(--w-s-color-text-placeholder)}.s-border-disabled{border-color:var(--w-s-color-border-disabled)}.s-border-negative{border-color:var(--w-s-color-border-negative)}.s-border-strong{border-color:var(--w-s-color-border-strong)}.hover\\:s-border-negative-hover:hover{border-color:var(--w-s-color-border-negative-hover)}.hover\\:s-border-strong-hover:hover{border-color:var(--w-s-color-border-strong-hover)}.active\\:s-border-selected:active{border-color:var(--w-s-color-border-selected)}.w-full{width:100%}.min-h-\\[42\\]{min-height:4.2rem}.mb-0{margin-bottom:0}.mt-4{margin-top:.4rem}.px-8{padding-left:.8rem;padding-right:.8rem}.py-12{padding-top:1.2rem;padding-bottom:1.2rem}.pb-4{padding-bottom:.4rem}.pl-0{padding-left:0}.pl-8{padding-left:.8rem}.pr-40{padding-right:4rem}.pl-\\[var\\(--w-prefix-width\\,_40px\\)\\]{padding-left:var(--w-prefix-width,40px)}.cursor-pointer{cursor:pointer}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-smoothing:grayscale}.font-bold{font-weight:700}.font-normal{font-weight:400}.pointer-events-none{pointer-events:none}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.text-m{font-size:var(--w-font-size-m);line-height:var(--w-line-height-m)}.text-s{font-size:var(--w-font-size-s);line-height:var(--w-line-height-s)}.text-xs{font-size:var(--w-font-size-xs);line-height:var(--w-line-height-xs)}.leading-m{line-height:var(--w-line-height-m)}@media (min-width:480px){.sm\\:min-h-\\[45\\]{min-height:4.5rem}}`;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { StoryObj } from '@storybook/react';
|
|
3
|
+
import { TextField } from './react';
|
|
4
|
+
declare const _default: {
|
|
5
|
+
title: string;
|
|
6
|
+
render(args: Omit<React.HTMLAttributes<import(".").WarpTextField>, "label" | "onblur" | "onchange" | "onfocus" | "oninput" | "onFocus" | "onBlur" | "onChange" | "onInput" | "render" | "renderOptions" | "connectedCallback" | "disconnectedCallback" | "renderRoot" | "isUpdatePending" | "hasUpdated" | "addController" | "removeController" | "attributeChangedCallback" | "requestUpdate" | "updateComplete" | "form" | "mask" | "pattern" | "disabled" | "name" | "type" | "value" | "updated" | "validationTarget" | "internals" | "showError" | "validationMessage" | "validity" | "validationComplete" | "checkValidity" | "formResetCallback" | "resetFormControl" | "valueChangedCallback" | "validityCallback" | "validationMessageCallback" | "setValue" | "shouldFormValueUpdate" | "invalid" | "readOnly" | "helpText" | "size" | "max" | "min" | "minLength" | "maxLength" | "placeholder" | "required" | "formatter" | "_hasPrefix" | "_hasSuffix" | "_inputstyles" | "_helptextstyles" | "_label" | "_helpId" | "_id" | "_error" | "handler" | "prefixSlotChange" | "suffixSlotChange"> & {
|
|
7
|
+
onBlur?: (e: Event) => void;
|
|
8
|
+
onblur?: (e: Event) => void;
|
|
9
|
+
onChange?: (e: Event) => void;
|
|
10
|
+
onchange?: (e: Event) => void;
|
|
11
|
+
onInput?: (e: Event) => void;
|
|
12
|
+
oninput?: (e: Event) => void;
|
|
13
|
+
onFocus?: (e: Event) => void;
|
|
14
|
+
onfocus?: (e: Event) => void;
|
|
15
|
+
} & Partial<Omit<import(".").WarpTextField, keyof HTMLElement>> & React.RefAttributes<import(".").WarpTextField>): React.JSX.Element;
|
|
16
|
+
component: import("@lit/react").ReactWebComponent<import(".").WarpTextField, {
|
|
17
|
+
onBlur: string;
|
|
18
|
+
onblur: string;
|
|
19
|
+
onChange: string;
|
|
20
|
+
onchange: string;
|
|
21
|
+
onInput: string;
|
|
22
|
+
oninput: string;
|
|
23
|
+
onFocus: string;
|
|
24
|
+
onfocus: string;
|
|
25
|
+
}>;
|
|
26
|
+
};
|
|
27
|
+
export default _default;
|
|
28
|
+
export type Story = StoryObj<typeof TextField>;
|
|
29
|
+
export declare const Default: Story;
|
|
30
|
+
export declare const WithPlaceholder: Story;
|
|
31
|
+
export declare const WithHelpText: Story;
|
|
32
|
+
export declare const Invalid: Story;
|
|
33
|
+
export declare const Disabled: Story;
|
|
34
|
+
export declare const ReadOnly: Story;
|
|
35
|
+
export declare const Required: Story;
|
|
36
|
+
export declare const WithAffix: Story;
|
|
37
|
+
export declare const Masking: Story;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Affix } from '../affix/react';
|
|
3
|
+
import { TextField } from './react';
|
|
4
|
+
const locale = 'nb';
|
|
5
|
+
const getNumberFormatter = (locale, opts = {}) => {
|
|
6
|
+
return (value) => new Intl.NumberFormat(locale, { maximumFractionDigits: 0, ...opts }).format(value);
|
|
7
|
+
};
|
|
8
|
+
export default {
|
|
9
|
+
title: 'Forms/Textfield',
|
|
10
|
+
render(args) {
|
|
11
|
+
return React.createElement(TextField, { ...args });
|
|
12
|
+
},
|
|
13
|
+
component: TextField,
|
|
14
|
+
};
|
|
15
|
+
export const Default = {
|
|
16
|
+
args: {
|
|
17
|
+
label: 'Email',
|
|
18
|
+
type: 'email',
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
export const WithPlaceholder = {
|
|
22
|
+
args: {
|
|
23
|
+
label: 'Email',
|
|
24
|
+
placeholder: 'user@example.com',
|
|
25
|
+
type: 'email',
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
export const WithHelpText = {
|
|
29
|
+
args: {
|
|
30
|
+
label: 'Password',
|
|
31
|
+
helpText: 'Must be at least 8 characters',
|
|
32
|
+
type: 'password',
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
export const Invalid = {
|
|
36
|
+
args: {
|
|
37
|
+
label: 'Email',
|
|
38
|
+
invalid: true,
|
|
39
|
+
helpText: 'Please enter a valid email address',
|
|
40
|
+
value: 'invalid-email',
|
|
41
|
+
type: 'email',
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
export const Disabled = {
|
|
45
|
+
args: {
|
|
46
|
+
label: 'Email',
|
|
47
|
+
disabled: true,
|
|
48
|
+
value: 'user@example.com',
|
|
49
|
+
type: 'email',
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
export const ReadOnly = {
|
|
53
|
+
args: {
|
|
54
|
+
label: 'Email',
|
|
55
|
+
readOnly: true,
|
|
56
|
+
value: 'user@example.com',
|
|
57
|
+
type: 'email',
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
export const Required = {
|
|
61
|
+
args: {
|
|
62
|
+
label: 'Email',
|
|
63
|
+
required: true,
|
|
64
|
+
type: 'email',
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
export const WithAffix = {
|
|
68
|
+
args: {
|
|
69
|
+
label: 'Price',
|
|
70
|
+
placeholder: '1 000 000',
|
|
71
|
+
type: 'text',
|
|
72
|
+
},
|
|
73
|
+
render(args) {
|
|
74
|
+
return (React.createElement(TextField, { ...args },
|
|
75
|
+
React.createElement(Affix, { slot: "suffix", label: "kr" })));
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
export const Masking = {
|
|
79
|
+
args: {
|
|
80
|
+
label: 'Price',
|
|
81
|
+
placeholder: '1 000 000',
|
|
82
|
+
type: 'text',
|
|
83
|
+
},
|
|
84
|
+
render({ ...args }) {
|
|
85
|
+
return (React.createElement(TextField, { ...args, formatter: getNumberFormatter(locale) },
|
|
86
|
+
React.createElement(Affix, { slot: "suffix", label: "kr" })));
|
|
87
|
+
},
|
|
88
|
+
};
|
|
@@ -0,0 +1,105 @@
|
|
|
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 './index.js';
|
|
6
|
+
const { events, args, argTypes } = getStorybookHelpers('w-textfield');
|
|
7
|
+
const meta = {
|
|
8
|
+
title: 'Forms/Textfield',
|
|
9
|
+
render(args) {
|
|
10
|
+
return html `<w-textfield ${spread(prespread(args))}></w-textfield>`;
|
|
11
|
+
},
|
|
12
|
+
args,
|
|
13
|
+
argTypes,
|
|
14
|
+
parameters: {
|
|
15
|
+
actions: {
|
|
16
|
+
handles: events,
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
export default meta;
|
|
21
|
+
export const Default = {
|
|
22
|
+
args: {
|
|
23
|
+
label: 'Email',
|
|
24
|
+
type: 'email',
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
export const WithPlaceholder = {
|
|
28
|
+
args: {
|
|
29
|
+
label: 'Email',
|
|
30
|
+
placeholder: 'user@example.com',
|
|
31
|
+
type: 'email',
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
export const WithHelpText = {
|
|
35
|
+
args: {
|
|
36
|
+
label: 'Password',
|
|
37
|
+
'help-text': 'Must be at least 8 characters',
|
|
38
|
+
type: 'password',
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
export const Invalid = {
|
|
42
|
+
args: {
|
|
43
|
+
label: 'Email',
|
|
44
|
+
invalid: true,
|
|
45
|
+
'help-text': 'Please enter a valid email address',
|
|
46
|
+
value: 'invalid-email',
|
|
47
|
+
type: 'email',
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
export const Disabled = {
|
|
51
|
+
args: {
|
|
52
|
+
label: 'Email',
|
|
53
|
+
disabled: true,
|
|
54
|
+
value: 'user@example.com',
|
|
55
|
+
type: 'email',
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
export const ReadOnly = {
|
|
59
|
+
args: {
|
|
60
|
+
label: 'Email',
|
|
61
|
+
'read-only': true,
|
|
62
|
+
value: 'user@example.com',
|
|
63
|
+
type: 'email',
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
export const Required = {
|
|
67
|
+
args: {
|
|
68
|
+
label: 'Email',
|
|
69
|
+
required: true,
|
|
70
|
+
type: 'email',
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
export const WithAffix = {
|
|
74
|
+
args: {
|
|
75
|
+
label: 'Price',
|
|
76
|
+
placeholder: '1 000 000',
|
|
77
|
+
type: 'text',
|
|
78
|
+
},
|
|
79
|
+
render(args) {
|
|
80
|
+
return html `
|
|
81
|
+
<w-textfield ${spread(prespread(args))}>
|
|
82
|
+
<w-affix slot="suffix" label="kr"></w-affix>
|
|
83
|
+
</w-textfield>
|
|
84
|
+
`;
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
export const Masking = {
|
|
88
|
+
args: {
|
|
89
|
+
label: 'Price',
|
|
90
|
+
placeholder: '1 000 000',
|
|
91
|
+
type: 'text',
|
|
92
|
+
locale: 'nb',
|
|
93
|
+
},
|
|
94
|
+
render({ locale, ...args }) {
|
|
95
|
+
return html `
|
|
96
|
+
<w-textfield ${spread(prespread(args))} data-testid="masking">
|
|
97
|
+
<w-affix slot="suffix" label="kr"></w-affix>
|
|
98
|
+
</w-textfield>
|
|
99
|
+
<script type="module">
|
|
100
|
+
const maskingTextfield = document.querySelector('w-textfield[data-testid="masking"]');
|
|
101
|
+
maskingTextfield.formatter = window.getNumberFormatter('${locale}').format;
|
|
102
|
+
</script>
|
|
103
|
+
`;
|
|
104
|
+
},
|
|
105
|
+
};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { userEvent } from '@vitest/browser/context';
|
|
2
|
+
import { html } from 'lit';
|
|
3
|
+
import { expect, test, vi } from 'vitest';
|
|
4
|
+
import { render } from 'vitest-browser-lit';
|
|
5
|
+
import '../affix/index.js';
|
|
6
|
+
import './index.js';
|
|
7
|
+
test('renders the textfield', async () => {
|
|
8
|
+
const component = html `<w-textfield label="Test label"></w-textfield>`;
|
|
9
|
+
const page = render(component);
|
|
10
|
+
await expect.element(page.getByText('Test label')).toBeVisible();
|
|
11
|
+
});
|
|
12
|
+
test('works as expected in forms', async () => {
|
|
13
|
+
const label = 'Test label';
|
|
14
|
+
const component = html `
|
|
15
|
+
<form data-testid="form">
|
|
16
|
+
<w-textfield label="${label}" name="message" value="Hola el Mundo"></w-textfield>
|
|
17
|
+
</form>
|
|
18
|
+
`;
|
|
19
|
+
const page = render(component);
|
|
20
|
+
await expect.element(page.getByLabelText(label)).toHaveValue('Hola el Mundo');
|
|
21
|
+
let formData = new FormData(page.getByTestId('form').element());
|
|
22
|
+
expect(formData.get('message')).toBe('Hola el Mundo');
|
|
23
|
+
const inputHandler = vi.fn();
|
|
24
|
+
const changeHandler = vi.fn();
|
|
25
|
+
page.getByLabelText(label).element().addEventListener('input', inputHandler);
|
|
26
|
+
page.getByLabelText(label).element().addEventListener('change', changeHandler);
|
|
27
|
+
await page.getByLabelText(label).fill('Hello, World');
|
|
28
|
+
expect(inputHandler).toHaveBeenCalled();
|
|
29
|
+
expect(changeHandler).not.toHaveBeenCalled();
|
|
30
|
+
await userEvent.tab(); // trigger a blur to fire the change event
|
|
31
|
+
expect(changeHandler).toHaveBeenCalled();
|
|
32
|
+
await expect.element(page.getByLabelText(label)).toHaveValue('Hello, World');
|
|
33
|
+
formData = new FormData(page.getByTestId('form').element());
|
|
34
|
+
expect(formData.get('message')).toBe('Hello, World');
|
|
35
|
+
});
|
|
36
|
+
test('renders help text if provided', async () => {
|
|
37
|
+
const component = html `<w-textfield label="Test label" help-text="Helpful help text"></w-textfield>`;
|
|
38
|
+
const page = render(component);
|
|
39
|
+
await expect.element(page.getByText('Helpful help text')).toBeVisible();
|
|
40
|
+
});
|
|
41
|
+
test('marks input field as aria-invalid if the invalid prop is true', async () => {
|
|
42
|
+
const component = html `<w-textfield label="Test label" invalid help-text="No, bad input!"></w-textfield>`;
|
|
43
|
+
const page = render(component);
|
|
44
|
+
await expect.element(page.getByLabelText('Test label')).toHaveAccessibleErrorMessage('No, bad input!');
|
|
45
|
+
});
|
|
46
|
+
test('marks input field as readonly if the read-only prop is true', async () => {
|
|
47
|
+
const component = html `<w-textfield label="Test label" read-only></w-textfield>`;
|
|
48
|
+
const page = render(component);
|
|
49
|
+
await expect.element(page.getByLabelText('Test label')).toHaveAttribute('readonly', '');
|
|
50
|
+
});
|
|
51
|
+
test('renders affix component in the prefix slot', async () => {
|
|
52
|
+
const component = html `
|
|
53
|
+
<w-textfield label="Test label">
|
|
54
|
+
<w-affix slot="prefix" label="kr"></w-affix>
|
|
55
|
+
</w-textfield>
|
|
56
|
+
`;
|
|
57
|
+
const page = render(component);
|
|
58
|
+
await expect.element(page.getByText('kr')).toBeVisible();
|
|
59
|
+
});
|
|
60
|
+
test('renders affix component in the suffix slot', async () => {
|
|
61
|
+
const component = html `
|
|
62
|
+
<w-textfield label="Test label">
|
|
63
|
+
<w-affix slot="suffix" label="kr"></w-affix>
|
|
64
|
+
</w-textfield>
|
|
65
|
+
`;
|
|
66
|
+
const page = render(component);
|
|
67
|
+
await expect.element(page.getByText('kr')).toBeVisible();
|
|
68
|
+
});
|
|
@@ -1,54 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
* Toast helper function options
|
|
3
|
-
* @typedef {Object} ToastOptions
|
|
4
|
-
* @property {(number|string)} [id] Custom identifier
|
|
5
|
-
* @property {('success'|'error'|'warning')} [type] Type of toast
|
|
6
|
-
* @property {String} [text] The toast message. Only needed when updating text on existing toast
|
|
7
|
-
* @property {(number|string)} [duration] Duration of toast in milliseconds. Defaults to 5000. For accessibility reasons, toasts should never be interactive and therefore need to auto remove. If you must disable auto remove, set duration to Number.POSITIVE_INFINITY.
|
|
8
|
-
* @property {Boolean} [canclose] Whether the toast can be dismissed. Defaults to false. WARNING! For accessibility reasons, toasts should not be interactive and canclose should always be false. If the toast absolutely must be dismissable, set this to true.
|
|
9
|
-
*/
|
|
1
|
+
import type { ToastInternal, ToastOptions } from './types';
|
|
10
2
|
/**
|
|
11
3
|
* Creates a new toast
|
|
12
|
-
* @param {String} message Message
|
|
13
|
-
* @param {ToastOptions?} options Toast options
|
|
14
|
-
* @returns {ToastOptions} Toast details
|
|
15
4
|
*/
|
|
16
|
-
export function toast(message: string, options
|
|
5
|
+
export declare function toast(message: string, options?: ToastOptions): ToastOptions;
|
|
17
6
|
/**
|
|
18
7
|
* Remove an existing toast
|
|
19
|
-
* @param {String|Number} id Toast identifier
|
|
20
|
-
* @return {Promise<Boolean>} Resolves to true if deleted, false if not found
|
|
21
8
|
*/
|
|
22
|
-
export function removeToast(id: string | number): Promise<boolean
|
|
9
|
+
export declare function removeToast(id: string | number): Promise<boolean> | undefined;
|
|
23
10
|
/**
|
|
24
11
|
* Update an existing toast
|
|
25
|
-
* @param {String|Number} id Toast identifier
|
|
26
|
-
* @param {ToastOptions?} options Toast options
|
|
27
|
-
* @returns {WarpToastContainer} Toast details
|
|
28
|
-
*/
|
|
29
|
-
export function updateToast(id: string | number, options: ToastOptions | null): WarpToastContainer;
|
|
30
|
-
/**
|
|
31
|
-
* Toast helper function options
|
|
32
12
|
*/
|
|
33
|
-
export
|
|
34
|
-
/**
|
|
35
|
-
* Custom identifier
|
|
36
|
-
*/
|
|
37
|
-
id?: (number | string);
|
|
38
|
-
/**
|
|
39
|
-
* Type of toast
|
|
40
|
-
*/
|
|
41
|
-
type?: ("success" | "error" | "warning");
|
|
42
|
-
/**
|
|
43
|
-
* The toast message. Only needed when updating text on existing toast
|
|
44
|
-
*/
|
|
45
|
-
text?: string;
|
|
46
|
-
/**
|
|
47
|
-
* Duration of toast in milliseconds. Defaults to 5000. For accessibility reasons, toasts should never be interactive and therefore need to auto remove. If you must disable auto remove, set duration to Number.POSITIVE_INFINITY.
|
|
48
|
-
*/
|
|
49
|
-
duration?: (number | string);
|
|
50
|
-
/**
|
|
51
|
-
* Whether the toast can be dismissed. Defaults to false. WARNING! For accessibility reasons, toasts should not be interactive and canclose should always be false. If the toast absolutely must be dismissable, set this to true.
|
|
52
|
-
*/
|
|
53
|
-
canclose?: boolean;
|
|
54
|
-
};
|
|
13
|
+
export declare function updateToast(id: string | number, options?: ToastOptions): ToastInternal | undefined;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { windowExists } from '../utils/window-exists';
|
|
2
|
+
function getToastContainer() {
|
|
3
|
+
const container = customElements.get('w-toast-container');
|
|
4
|
+
return container;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Creates a new toast
|
|
8
|
+
*/
|
|
9
|
+
export function toast(message, options) {
|
|
10
|
+
if (!windowExists)
|
|
11
|
+
return;
|
|
12
|
+
const toast = getToastContainer().init();
|
|
13
|
+
const data = {
|
|
14
|
+
id: Date.now().toString(36) + Math.random().toString(36).slice(2, 5),
|
|
15
|
+
text: message,
|
|
16
|
+
duration: 5000,
|
|
17
|
+
type: 'success',
|
|
18
|
+
...options,
|
|
19
|
+
};
|
|
20
|
+
toast.set(data);
|
|
21
|
+
return data;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Remove an existing toast
|
|
25
|
+
*/
|
|
26
|
+
export function removeToast(id) {
|
|
27
|
+
if (!windowExists)
|
|
28
|
+
return;
|
|
29
|
+
const toast = getToastContainer().init();
|
|
30
|
+
return toast.del(id);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Update an existing toast
|
|
34
|
+
*/
|
|
35
|
+
export function updateToast(id, options) {
|
|
36
|
+
if (!windowExists)
|
|
37
|
+
return;
|
|
38
|
+
const toast = getToastContainer().init();
|
|
39
|
+
toast.set({ ...toast.get(id), ...options });
|
|
40
|
+
return toast.get(id);
|
|
41
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
1
|
+
export { removeToast, toast, updateToast } from './api';
|
|
2
|
+
export { WarpToast } from './toast';
|
|
3
|
+
export { WarpToastContainer } from './toast-container';
|