@igne-agency/react-web-ui 0.5.0 → 0.6.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/dist/components/accordion/accordion.css +21 -21
- package/dist/components/accordion/accordion.d.ts +17 -4
- package/dist/components/accordion/accordion.js +83 -36
- package/dist/components/accordion/accordion.module.js +6 -6
- package/dist/components/attachment-tile/attachment-preview.d.ts +56 -13
- package/dist/components/attachment-tile/attachment-preview.js +388 -119
- package/dist/components/attachment-tile/attachment-tile.css +31 -25
- package/dist/components/attachment-tile/attachment-tile.d.ts +32 -10
- package/dist/components/attachment-tile/attachment-tile.js +160 -43
- package/dist/components/attachment-tile/attachment-tile.module.js +8 -8
- package/dist/components/attachment-tile/index.d.ts +1 -1
- package/dist/components/avatar/avatar.css +9 -9
- package/dist/components/avatar/avatar.d.ts +50 -5
- package/dist/components/avatar/avatar.js +178 -64
- package/dist/components/avatar/avatar.module.js +3 -3
- package/dist/components/avatar-group/avatar-group-context.d.ts +2 -4
- package/dist/components/avatar-group/avatar-group-context.js +2 -2
- package/dist/components/avatar-group/avatar-group.css +26 -20
- package/dist/components/avatar-group/avatar-group.d.ts +85 -27
- package/dist/components/avatar-group/avatar-group.js +400 -246
- package/dist/components/avatar-group/avatar-group.module.js +8 -8
- package/dist/components/breadcrumbs/breadcrumbs.css +12 -12
- package/dist/components/breadcrumbs/breadcrumbs.d.ts +69 -23
- package/dist/components/breadcrumbs/breadcrumbs.js +299 -248
- package/dist/components/breadcrumbs/breadcrumbs.module.js +8 -8
- package/dist/components/button/button.css +29 -31
- package/dist/components/button/button.d.ts +20 -16
- package/dist/components/button/button.js +140 -145
- package/dist/components/button/button.module.js +1 -1
- package/dist/components/button/index.js +1 -1
- package/dist/components/checkbox-field/checkbox-field.js +63 -49
- package/dist/components/checkbox-field/checkbox.css +105 -56
- package/dist/components/checkbox-field/checkbox.d.ts +3 -2
- package/dist/components/checkbox-field/checkbox.js +12 -9
- package/dist/components/checkbox-field/checkbox.module.js +4 -4
- package/dist/components/checkbox-group-field/checkbox-group-field.js +78 -72
- package/dist/components/checkbox-group-field/checkbox-group.css +14 -10
- package/dist/components/checkbox-group-field/checkbox-group.d.ts +2 -2
- package/dist/components/checkbox-group-field/checkbox-group.js +2 -2
- package/dist/components/checkbox-group-field/checkbox-group.module.js +2 -2
- package/dist/components/collapsible/collapsible.css +20 -20
- package/dist/components/collapsible/collapsible.d.ts +17 -4
- package/dist/components/collapsible/collapsible.js +83 -36
- package/dist/components/collapsible/collapsible.module.js +5 -5
- package/dist/components/combobox-field/combobox-field.js +206 -158
- package/dist/components/combobox-field/combobox.css +492 -277
- package/dist/components/combobox-field/combobox.d.ts +148 -39
- package/dist/components/combobox-field/combobox.js +506 -206
- package/dist/components/combobox-field/combobox.module.js +21 -21
- package/dist/components/combobox-field/value-state-view.css +5 -5
- package/dist/components/combobox-field/value-state-view.module.js +4 -4
- package/dist/components/composer/composer-attachments.d.ts +30 -11
- package/dist/components/composer/composer-attachments.js +45 -40
- package/dist/components/composer/composer-editor.css +40 -35
- package/dist/components/composer/composer-editor.d.ts +14 -4
- package/dist/components/composer/composer-editor.js +134 -44
- package/dist/components/composer/composer-editor.module.js +5 -5
- package/dist/components/composer/composer.css +22 -22
- package/dist/components/composer/composer.d.ts +13 -2
- package/dist/components/composer/composer.js +78 -63
- package/dist/components/composer/composer.module.js +5 -5
- package/dist/components/composer/index.d.ts +2 -2
- package/dist/components/composer/mention-text.css +5 -5
- package/dist/components/composer/mention-text.module.js +1 -1
- package/dist/components/confirm-dialog/confirm-dialog.css +29 -29
- package/dist/components/confirm-dialog/confirm-dialog.d.ts +57 -3
- package/dist/components/confirm-dialog/confirm-dialog.js +266 -108
- package/dist/components/confirm-dialog/confirm-dialog.module.js +5 -5
- package/dist/components/conversation/conversation.css +52 -52
- package/dist/components/conversation/conversation.d.ts +43 -18
- package/dist/components/conversation/conversation.js +120 -78
- package/dist/components/conversation/conversation.module.js +15 -15
- package/dist/components/date-field/date-field.d.ts +1 -1
- package/dist/components/date-field/date-field.js +202 -100
- package/dist/components/date-field/date-input.d.ts +73 -37
- package/dist/components/date-field/date-input.js +72 -45
- package/dist/components/date-field/index.d.ts +1 -1
- package/dist/components/date-range-field/date-range-field.d.ts +1 -1
- package/dist/components/date-range-field/date-range-field.js +219 -107
- package/dist/components/date-range-field/date-range-input.d.ts +84 -40
- package/dist/components/date-range-field/date-range-input.js +83 -48
- package/dist/components/dialog/dialog.css +32 -32
- package/dist/components/dialog/dialog.d.ts +8 -7
- package/dist/components/dialog/dialog.js +8 -26
- package/dist/components/dialog/dialog.module.js +6 -6
- package/dist/components/divider/divider.css +6 -6
- package/dist/components/divider/divider.d.ts +36 -2
- package/dist/components/divider/divider.js +195 -29
- package/dist/components/divider/divider.module.js +3 -3
- package/dist/components/drawer/drawer.css +55 -56
- package/dist/components/drawer/drawer.d.ts +8 -7
- package/dist/components/drawer/drawer.js +8 -26
- package/dist/components/drawer/drawer.module.js +6 -6
- package/dist/components/field/field.css +34 -24
- package/dist/components/field/field.d.ts +60 -37
- package/dist/components/field/field.js +242 -157
- package/dist/components/field/field.module.js +12 -10
- package/dist/components/field/input-parts.d.ts +11 -13
- package/dist/components/field/input-parts.js +23 -42
- package/dist/components/field-placeholder/field-placeholder.css +6 -6
- package/dist/components/field-placeholder/field-placeholder.module.js +4 -4
- package/dist/components/fieldset/field-group.d.ts +1 -1
- package/dist/components/fieldset/field-group.js +48 -42
- package/dist/components/fieldset/fieldset-root.d.ts +1 -1
- package/dist/components/fieldset/fieldset-root.js +19 -17
- package/dist/components/fieldset/fieldset.d.ts +2 -2
- package/dist/components/fieldset/fieldset.js +2 -2
- package/dist/components/file-field/file-field.css +126 -60
- package/dist/components/file-field/file-field.js +201 -109
- package/dist/components/file-field/file-field.module.js +4 -4
- package/dist/components/file-field/file-input.d.ts +66 -40
- package/dist/components/file-field/file-input.js +188 -132
- package/dist/components/filter-bar/filter-bar.css +8 -8
- package/dist/components/filter-bar/filter-bar.d.ts +12 -3
- package/dist/components/filter-bar/filter-bar.js +23 -25
- package/dist/components/filter-bar/filter-bar.module.js +5 -5
- package/dist/components/form/form.d.ts +19 -7
- package/dist/components/form/form.js +80 -29
- package/dist/components/icon/icon.css +2 -2
- package/dist/components/icon/icon.module.js +1 -1
- package/dist/components/link/link.css +6 -5
- package/dist/components/link/link.module.js +1 -1
- package/dist/components/menu/menu.css +52 -47
- package/dist/components/menu/menu.d.ts +32 -25
- package/dist/components/menu/menu.js +75 -124
- package/dist/components/menu/menu.module.js +8 -8
- package/dist/components/nav/nav-context.d.ts +1 -1
- package/dist/components/nav/nav-item-view.d.ts +10 -13
- package/dist/components/nav/nav-item-view.js +42 -54
- package/dist/components/nav/nav.css +150 -119
- package/dist/components/nav/nav.d.ts +61 -17
- package/dist/components/nav/nav.js +271 -176
- package/dist/components/nav/nav.module.js +17 -15
- package/dist/components/number-field/number-field.css +153 -64
- package/dist/components/number-field/number-field.d.ts +2 -2
- package/dist/components/number-field/number-field.js +112 -91
- package/dist/components/number-field/number-field.module.js +6 -6
- package/dist/components/number-field/number-input.d.ts +43 -23
- package/dist/components/number-field/number-input.js +179 -125
- package/dist/components/otp-field/otp-field.css +153 -60
- package/dist/components/otp-field/otp-field.d.ts +2 -2
- package/dist/components/otp-field/otp-field.js +62 -46
- package/dist/components/otp-field/otp-field.module.js +4 -4
- package/dist/components/otp-field/otp-input.d.ts +8 -6
- package/dist/components/otp-field/otp-input.js +92 -92
- package/dist/components/pagination/pagination.d.ts +46 -15
- package/dist/components/pagination/pagination.js +217 -224
- package/dist/components/password-field/password-field.css +23 -23
- package/dist/components/password-field/password-field.js +107 -85
- package/dist/components/password-field/password-field.module.js +8 -8
- package/dist/components/password-field/password-strength.d.ts +107 -3
- package/dist/components/password-field/password-strength.js +569 -92
- package/dist/components/photo-field/photo-field.js +137 -112
- package/dist/components/photo-field/photo-input.css +67 -44
- package/dist/components/photo-field/photo-input.d.ts +59 -15
- package/dist/components/photo-field/photo-input.js +173 -86
- package/dist/components/photo-field/photo-input.module.js +10 -8
- package/dist/components/popover/popover.css +41 -41
- package/dist/components/popover/popover.d.ts +66 -25
- package/dist/components/popover/popover.js +332 -217
- package/dist/components/popover/popover.module.js +15 -19
- package/dist/components/radio-group-field/radio-group-field.js +80 -71
- package/dist/components/radio-group-field/radio-group.css +112 -60
- package/dist/components/radio-group-field/radio-group.d.ts +19 -3
- package/dist/components/radio-group-field/radio-group.js +66 -23
- package/dist/components/radio-group-field/radio-group.module.js +4 -4
- package/dist/components/segmented-control-field/segmented-control-field.d.ts +1 -1
- package/dist/components/segmented-control-field/segmented-control-field.js +111 -96
- package/dist/components/segmented-control-field/segmented-control.css +132 -79
- package/dist/components/segmented-control-field/segmented-control.d.ts +39 -15
- package/dist/components/segmented-control-field/segmented-control.js +124 -41
- package/dist/components/segmented-control-field/segmented-control.module.js +4 -4
- package/dist/components/select-field/select.css +214 -101
- package/dist/components/select-field/select.d.ts +43 -11
- package/dist/components/select-field/select.js +194 -109
- package/dist/components/select-field/select.module.js +14 -14
- package/dist/components/skeleton/skeleton.css +4 -4
- package/dist/components/skeleton/skeleton.module.js +3 -3
- package/dist/components/stale/stale.css +15 -15
- package/dist/components/stale/stale.d.ts +27 -3
- package/dist/components/stale/stale.js +147 -66
- package/dist/components/stale/stale.module.js +6 -6
- package/dist/components/status-message/status-message.css +22 -22
- package/dist/components/status-message/status-message.module.js +6 -6
- package/dist/components/switch-field/switch-field.js +77 -57
- package/dist/components/switch-field/switch.css +112 -63
- package/dist/components/switch-field/switch.d.ts +20 -3
- package/dist/components/switch-field/switch.js +70 -27
- package/dist/components/switch-field/switch.module.js +4 -4
- package/dist/components/tabs/tabs.css +32 -32
- package/dist/components/tabs/tabs.d.ts +21 -7
- package/dist/components/tabs/tabs.js +73 -14
- package/dist/components/tabs/tabs.module.js +7 -7
- package/dist/components/tag/tag.css +84 -84
- package/dist/components/tag/tag.module.js +3 -3
- package/dist/components/tag-group/tag-group.css +94 -94
- package/dist/components/tag-group/tag-group.module.js +4 -4
- package/dist/components/text-field/text-field.css +159 -82
- package/dist/components/text-field/text-field.d.ts +1 -1
- package/dist/components/text-field/text-field.js +139 -110
- package/dist/components/text-field/text-field.module.js +9 -9
- package/dist/components/text-field/text-input.d.ts +81 -45
- package/dist/components/text-field/text-input.js +366 -217
- package/dist/components/textarea-field/textarea-field.css +7 -2
- package/dist/components/textarea-field/textarea-field.js +72 -56
- package/dist/components/textarea-field/textarea-field.module.js +2 -2
- package/dist/components/time-field/time-field.js +153 -60
- package/dist/components/time-field/time-input.d.ts +21 -10
- package/dist/components/time-field/time-input.js +22 -11
- package/dist/components/toast/toast-provider.css +34 -31
- package/dist/components/toast/toast-provider.d.ts +63 -14
- package/dist/components/toast/toast-provider.js +174 -111
- package/dist/components/toast/toast-provider.module.js +7 -7
- package/dist/components/toggle-group-field/toggle-group-field.d.ts +1 -1
- package/dist/components/toggle-group-field/toggle-group-field.js +95 -89
- package/dist/components/toggle-group-field/toggle-group.css +117 -67
- package/dist/components/toggle-group-field/toggle-group.d.ts +2 -2
- package/dist/components/toggle-group-field/toggle-group.js +2 -2
- package/dist/components/toggle-group-field/toggle-group.module.js +2 -2
- package/dist/components/tooltip/tooltip.css +4 -4
- package/dist/components/tooltip/tooltip.module.js +1 -1
- package/dist/data-table/data-table-content.js +6 -5
- package/dist/data-table/data-table-parts.d.ts +41 -13
- package/dist/data-table/data-table-parts.js +213 -172
- package/dist/data-table/data-table-selection.d.ts +105 -3
- package/dist/data-table/data-table-selection.js +654 -145
- package/dist/data-table/data-table.css +125 -128
- package/dist/data-table/data-table.d.ts +21 -26
- package/dist/data-table/data-table.js +20 -23
- package/dist/data-table/data-table.module.js +32 -34
- package/dist/data-table/index.d.ts +2 -2
- package/dist/index.js +3 -3
- package/dist/lib/calendar/calendar-navigation.d.ts +39 -5
- package/dist/lib/calendar/calendar-navigation.js +185 -118
- package/dist/lib/calendar/calendar-parts.d.ts +143 -0
- package/dist/lib/calendar/calendar-parts.js +540 -0
- package/dist/lib/calendar/calendar-prefab.d.ts +52 -0
- package/dist/lib/calendar/calendar-prefab.js +311 -0
- package/dist/lib/calendar/calendar-year.d.ts +3 -1
- package/dist/lib/calendar/calendar-year.js +139 -131
- package/dist/lib/calendar/temporal.css +325 -232
- package/dist/lib/calendar/temporal.d.ts +67 -82
- package/dist/lib/calendar/temporal.js +258 -569
- package/dist/lib/calendar/temporal.module.js +38 -38
- package/dist/lib/forms/use-connected-field.d.ts +1 -1
- package/dist/lib/forms/use-connected-field.js +1 -1
- package/dist/lib/render-as.d.ts +13 -0
- package/dist/lib/render-as.js +46 -0
- package/dist/tokens.css +6 -3
- package/package.json +1 -1
- package/tokens/dark.tokens.json +6 -0
- package/tokens/sys.tokens.json +7 -0
- package/dist/components/button/close-button.d.ts +0 -16
- package/dist/components/button/close-button.js +0 -30
|
@@ -1,138 +1,138 @@
|
|
|
1
1
|
@layer kit.reset, kit.base, kit.components;
|
|
2
2
|
@layer kit.components {
|
|
3
|
-
.
|
|
3
|
+
._root_1vjy3_3 {
|
|
4
4
|
display: flex;
|
|
5
5
|
flex-direction: column;
|
|
6
6
|
flex-grow: 1;
|
|
7
7
|
gap: var(--conversation-gap, var(--sys-unit-12));
|
|
8
8
|
}
|
|
9
|
-
.
|
|
9
|
+
._group_1vjy3_9 {
|
|
10
10
|
display: flex;
|
|
11
11
|
flex-direction: column;
|
|
12
|
-
gap: var(--sys-unit-4);
|
|
12
|
+
gap: var(--conversation-group-gap, var(--sys-unit-4));
|
|
13
13
|
}
|
|
14
|
-
.
|
|
14
|
+
._groupSeparator_1vjy3_14 {
|
|
15
15
|
position: sticky;
|
|
16
16
|
top: 0;
|
|
17
17
|
align-self: center;
|
|
18
|
-
border-radius: var(--sys-radius-full);
|
|
18
|
+
border-radius: var(--conversation-separator-radius, var(--sys-radius-full));
|
|
19
19
|
background: var(--conversation-separator-bg, var(--sys-color-surface-high));
|
|
20
|
-
padding: var(--sys-unit-2) var(--sys-unit-6);
|
|
20
|
+
padding: var(--conversation-separator-pad-y, var(--sys-unit-2)) var(--conversation-separator-pad-x, var(--sys-unit-6));
|
|
21
21
|
color: var(--conversation-muted-fg, var(--sys-color-text-muted));
|
|
22
|
-
font: var(--sys-font-label-small);
|
|
22
|
+
font: var(--conversation-separator-font, var(--sys-font-label-small));
|
|
23
23
|
}
|
|
24
|
-
.
|
|
24
|
+
._message_1vjy3_24 {
|
|
25
25
|
display: flex;
|
|
26
26
|
flex-direction: column;
|
|
27
|
-
gap: var(--sys-unit-2);
|
|
28
|
-
max-inline-size: min(72ch, 80%);
|
|
27
|
+
gap: var(--conversation-message-gap, var(--sys-unit-2));
|
|
28
|
+
max-inline-size: var(--conversation-message-max-inline-size, min(72ch, 80%));
|
|
29
29
|
}
|
|
30
|
-
.
|
|
31
|
-
margin-block-start: var(--sys-unit-6);
|
|
30
|
+
._message_1vjy3_24 + ._message_1vjy3_24 {
|
|
31
|
+
margin-block-start: var(--conversation-message-space, var(--sys-unit-6));
|
|
32
32
|
}
|
|
33
|
-
.
|
|
34
|
-
.
|
|
35
|
-
.
|
|
33
|
+
._message_1vjy3_24[data-side=own], ._message_1vjy3_24[data-side=colleague],
|
|
34
|
+
._messageAuthor_1vjy3_34[data-side=own],
|
|
35
|
+
._messageAuthor_1vjy3_34[data-side=colleague] {
|
|
36
36
|
align-self: flex-end;
|
|
37
37
|
align-items: flex-end;
|
|
38
38
|
}
|
|
39
|
-
.
|
|
40
|
-
.
|
|
39
|
+
._message_1vjy3_24[data-side=other],
|
|
40
|
+
._messageAuthor_1vjy3_34[data-side=other] {
|
|
41
41
|
align-self: flex-start;
|
|
42
42
|
align-items: flex-start;
|
|
43
43
|
}
|
|
44
|
-
.
|
|
44
|
+
._messageBubble_1vjy3_44 {
|
|
45
45
|
display: flex;
|
|
46
46
|
flex-direction: column;
|
|
47
|
-
gap: var(--sys-unit-2);
|
|
47
|
+
gap: var(--conversation-bubble-gap, var(--sys-unit-2));
|
|
48
48
|
border-radius: var(--conversation-bubble-radius, var(--sys-radius-lg));
|
|
49
49
|
background: var(--conversation-bubble-bg, var(--sys-color-surface-high));
|
|
50
|
-
padding: var(--sys-unit-6) var(--sys-unit-8);
|
|
50
|
+
padding: var(--conversation-bubble-pad-y, var(--sys-unit-6)) var(--conversation-bubble-pad-x, var(--sys-unit-8));
|
|
51
51
|
color: var(--conversation-bubble-fg, var(--sys-color-text));
|
|
52
52
|
}
|
|
53
|
-
.
|
|
54
|
-
.
|
|
53
|
+
._message_1vjy3_24[data-side=own] ._messageBubble_1vjy3_44,
|
|
54
|
+
._message_1vjy3_24[data-side=colleague] ._messageBubble_1vjy3_44 {
|
|
55
55
|
border-start-end-radius: var(--conversation-bubble-point-radius, var(--sys-radius-xs));
|
|
56
56
|
}
|
|
57
|
-
.
|
|
57
|
+
._message_1vjy3_24[data-side=other] ._messageBubble_1vjy3_44 {
|
|
58
58
|
border-start-start-radius: var(--conversation-bubble-point-radius, var(--sys-radius-xs));
|
|
59
59
|
}
|
|
60
|
-
.
|
|
60
|
+
._message_1vjy3_24[data-side=own] ._messageBubble_1vjy3_44 {
|
|
61
61
|
background: var(--conversation-bubble-own-bg, var(--sys-color-primary-container));
|
|
62
62
|
color: var(--conversation-bubble-own-fg, var(--sys-color-on-primary-container));
|
|
63
63
|
}
|
|
64
|
-
.
|
|
64
|
+
._messageAuthor_1vjy3_34 {
|
|
65
65
|
display: flex;
|
|
66
66
|
flex-direction: row;
|
|
67
67
|
align-items: center;
|
|
68
|
-
gap: var(--sys-unit-4);
|
|
69
|
-
padding-inline: var(--sys-unit-8);
|
|
70
|
-
font: var(--sys-font-label-small);
|
|
68
|
+
gap: var(--conversation-author-gap, var(--sys-unit-4));
|
|
69
|
+
padding-inline: var(--conversation-author-pad-x, var(--sys-unit-8));
|
|
70
|
+
font: var(--conversation-author-font, var(--sys-font-label-small));
|
|
71
71
|
}
|
|
72
|
-
.
|
|
73
|
-
margin-block-start: var(--sys-unit-12);
|
|
72
|
+
._message_1vjy3_24 + ._messageAuthor_1vjy3_34 {
|
|
73
|
+
margin-block-start: var(--conversation-author-space, var(--sys-unit-12));
|
|
74
74
|
}
|
|
75
|
-
.
|
|
75
|
+
._messageAvatar_1vjy3_75 {
|
|
76
76
|
flex-shrink: 0;
|
|
77
77
|
}
|
|
78
|
-
.
|
|
78
|
+
._messageTimestamp_1vjy3_78 {
|
|
79
79
|
color: var(--conversation-muted-fg, var(--sys-color-text-muted));
|
|
80
|
-
font: var(--sys-font-body-medium);
|
|
81
|
-
font-size: 0.75em;
|
|
80
|
+
font: var(--conversation-timestamp-font, var(--sys-font-body-medium));
|
|
81
|
+
font-size: var(--conversation-timestamp-font-size, 0.75em);
|
|
82
82
|
}
|
|
83
|
-
.
|
|
83
|
+
._messageReadIndicator_1vjy3_83 {
|
|
84
84
|
display: flex;
|
|
85
85
|
flex-direction: row;
|
|
86
86
|
align-items: center;
|
|
87
|
-
gap: var(--sys-unit-2);
|
|
87
|
+
gap: var(--conversation-read-indicator-gap, var(--sys-unit-2));
|
|
88
88
|
color: var(--conversation-muted-fg, var(--sys-color-text-muted));
|
|
89
|
-
font-size: 0.75em;
|
|
89
|
+
font-size: var(--conversation-read-indicator-font-size, 0.75em);
|
|
90
90
|
}
|
|
91
|
-
.
|
|
92
|
-
inline-size: var(--sys-unit-4);
|
|
93
|
-
block-size: var(--sys-unit-4);
|
|
94
|
-
border-radius: var(--sys-radius-circle);
|
|
95
|
-
background: transparent;
|
|
91
|
+
._statusDot_1vjy3_91 {
|
|
92
|
+
inline-size: var(--conversation-status-dot-size, var(--sys-unit-4));
|
|
93
|
+
block-size: var(--conversation-status-dot-size, var(--sys-unit-4));
|
|
94
|
+
border-radius: var(--conversation-status-dot-radius, var(--sys-radius-circle));
|
|
95
|
+
background: var(--conversation-status-dot-bg, transparent);
|
|
96
96
|
}
|
|
97
|
-
.
|
|
97
|
+
._messageReadIndicator_1vjy3_83[data-status=unread] ._statusDot_1vjy3_91 {
|
|
98
98
|
background: var(--conversation-unread-bg, var(--sys-color-primary));
|
|
99
99
|
}
|
|
100
|
-
.
|
|
100
|
+
._messageContent_1vjy3_100 {
|
|
101
101
|
overflow-wrap: anywhere;
|
|
102
102
|
white-space: pre-wrap;
|
|
103
103
|
}
|
|
104
|
-
.
|
|
104
|
+
._messageContent_1vjy3_100[data-clamped] {
|
|
105
105
|
display: -webkit-box;
|
|
106
106
|
-webkit-box-orient: vertical;
|
|
107
107
|
-webkit-line-clamp: var(--line-clamp);
|
|
108
108
|
line-clamp: var(--line-clamp);
|
|
109
109
|
overflow: hidden;
|
|
110
110
|
}
|
|
111
|
-
.
|
|
111
|
+
._messageFiles_1vjy3_111 {
|
|
112
112
|
display: flex;
|
|
113
113
|
flex-direction: row;
|
|
114
114
|
flex-wrap: wrap;
|
|
115
115
|
align-items: center;
|
|
116
|
-
gap: var(--sys-unit-4);
|
|
116
|
+
gap: var(--conversation-files-gap, var(--sys-unit-4));
|
|
117
117
|
}
|
|
118
|
-
.
|
|
118
|
+
._message_1vjy3_24[data-side=own] ._messageFiles_1vjy3_111 {
|
|
119
119
|
justify-content: flex-end;
|
|
120
120
|
}
|
|
121
|
-
.
|
|
121
|
+
._scrollToBottom_1vjy3_121 {
|
|
122
122
|
position: absolute;
|
|
123
123
|
inset-block-end: var(--sys-unit-8);
|
|
124
124
|
inset-inline-end: var(--sys-unit-8);
|
|
125
125
|
}
|
|
126
|
-
.
|
|
126
|
+
._emptyState_1vjy3_126 {
|
|
127
127
|
display: flex;
|
|
128
128
|
flex-direction: column;
|
|
129
129
|
flex-grow: 1;
|
|
130
130
|
align-items: center;
|
|
131
131
|
justify-content: center;
|
|
132
|
-
gap: var(--sys-unit-6);
|
|
132
|
+
gap: var(--conversation-empty-gap, var(--sys-unit-6));
|
|
133
133
|
color: var(--conversation-muted-fg, var(--sys-color-text-muted));
|
|
134
134
|
}
|
|
135
|
-
.
|
|
135
|
+
._visuallyHidden_1vjy3_135 {
|
|
136
136
|
position: absolute;
|
|
137
137
|
overflow: hidden;
|
|
138
138
|
clip-path: inset(50%);
|
|
@@ -55,11 +55,21 @@ export type ConversationMessageReadIndicatorProps = Readonly<{
|
|
|
55
55
|
status: ConversationMessageStatus;
|
|
56
56
|
/** What the status is announced as, such as "Read" or "Unread". */
|
|
57
57
|
label: string;
|
|
58
|
-
/**
|
|
58
|
+
/** What shows for the status, such as a `MessageReadDot`. */
|
|
59
59
|
children?: ReactNode;
|
|
60
60
|
}> & Omit<ComponentProps<"div">, "children">;
|
|
61
|
-
/** Whether the other party has read the message:
|
|
61
|
+
/** Whether the other party has read the message: its children, and its `label` for assistive tech. */
|
|
62
62
|
declare const MessageReadIndicator: ({ status, label, className, children, ...props }: ConversationMessageReadIndicatorProps) => ReactNode;
|
|
63
|
+
export type ConversationMessageReadDotProps = useRender.ComponentProps<"span">;
|
|
64
|
+
/**
|
|
65
|
+
* The dot a `MessageReadIndicator` shows, filled while the message is unread.
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* <Conversation.MessageReadIndicator status="unread" label="Unread">
|
|
69
|
+
* <Conversation.MessageReadDot />
|
|
70
|
+
* </Conversation.MessageReadIndicator>
|
|
71
|
+
*/
|
|
72
|
+
declare const MessageReadDot: ({ className, render, ref, ...props }: ConversationMessageReadDotProps) => ReactElement;
|
|
63
73
|
export type ConversationMessageContentProps = Readonly<{
|
|
64
74
|
/** Cuts the text off after this many lines. */
|
|
65
75
|
lineClamp?: number;
|
|
@@ -69,22 +79,36 @@ declare const MessageContent: ({ lineClamp, className, render, style: inlineStyl
|
|
|
69
79
|
export type ConversationMessageFilesProps = useRender.ComponentProps<"div">;
|
|
70
80
|
/** The files sent with a message, as a wrapping row of tiles. */
|
|
71
81
|
declare const MessageFiles: ({ className, render, ...props }: ConversationMessageFilesProps) => ReactElement;
|
|
72
|
-
export type ConversationMessageFilesDownloadAllProps = Readonly<{
|
|
73
|
-
/** The button
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
82
|
+
export type ConversationMessageFilesDownloadAllProps = Omit<useRender.ComponentProps<"button">, "render"> & Readonly<{
|
|
83
|
+
/** The button to render, such as `<IconButton label="Download all files"><DownloadIcon /></IconButton>`. */
|
|
84
|
+
render: useRender.RenderProp;
|
|
85
|
+
}>;
|
|
86
|
+
/**
|
|
87
|
+
* The button that downloads every file of a message. It renders whichever
|
|
88
|
+
* button it is given.
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* <Conversation.MessageFilesDownloadAll
|
|
92
|
+
* onClick={downloadAll}
|
|
93
|
+
* render={<IconButton label="Download all files" variant="tertiary" size="sm"><DownloadIcon /></IconButton>}
|
|
94
|
+
* />
|
|
95
|
+
*/
|
|
96
|
+
declare const MessageFilesDownloadAll: ({ render, ...props }: ConversationMessageFilesDownloadAllProps) => ReactElement;
|
|
97
|
+
export type ConversationScrollToBottomProps = Omit<useRender.ComponentProps<"button">, "render"> & Readonly<{
|
|
98
|
+
/** The button to render, such as `<IconButton label="Scroll to latest"><ArrowDownIcon /></IconButton>`. */
|
|
99
|
+
render: useRender.RenderProp;
|
|
100
|
+
}>;
|
|
101
|
+
/**
|
|
102
|
+
* The button, pinned to the log's bottom corner, that jumps to the latest
|
|
103
|
+
* message. It renders whichever button it is given.
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* <Conversation.ScrollToBottom
|
|
107
|
+
* onClick={scrollToLatest}
|
|
108
|
+
* render={<IconButton label="Scroll to latest" variant="tertiary"><ArrowDownIcon /></IconButton>}
|
|
109
|
+
* />
|
|
110
|
+
*/
|
|
111
|
+
declare const ScrollToBottom: ({ className, render, ...props }: ConversationScrollToBottomProps) => ReactElement;
|
|
88
112
|
export type ConversationEmptyStateProps = useRender.ComponentProps<"div">;
|
|
89
113
|
/** What the log shows before there are any messages. */
|
|
90
114
|
declare const EmptyState: ({ className, render, ...props }: ConversationEmptyStateProps) => ReactElement;
|
|
@@ -136,6 +160,7 @@ export type ConversationParts = typeof Prefab & Readonly<{
|
|
|
136
160
|
MessageAvatar: typeof MessageAvatar;
|
|
137
161
|
MessageTimestamp: typeof MessageTimestamp;
|
|
138
162
|
MessageReadIndicator: typeof MessageReadIndicator;
|
|
163
|
+
MessageReadDot: typeof MessageReadDot;
|
|
139
164
|
MessageContent: typeof MessageContent;
|
|
140
165
|
MessageFiles: typeof MessageFiles;
|
|
141
166
|
MessageFilesDownloadAll: typeof MessageFilesDownloadAll;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Avatar } from "../avatar/avatar.js";
|
|
2
|
-
import { Button } from "../button/button.js";
|
|
3
2
|
import { useLocale } from "../locale-provider/locale-provider.js";
|
|
4
3
|
import { useTimeZone } from "../time-zone-provider/time-zone-provider.js";
|
|
5
4
|
import conversation_module_default from "./conversation.module.js";
|
|
@@ -419,9 +418,9 @@ var MessageTimestamp = (t0) => {
|
|
|
419
418
|
} else t4 = $[2];
|
|
420
419
|
return useRender(t4);
|
|
421
420
|
};
|
|
422
|
-
/** Whether the other party has read the message:
|
|
421
|
+
/** Whether the other party has read the message: its children, and its `label` for assistive tech. */
|
|
423
422
|
var MessageReadIndicator = (t0) => {
|
|
424
|
-
const $ = c(
|
|
423
|
+
const $ = c(16);
|
|
425
424
|
let children;
|
|
426
425
|
let className;
|
|
427
426
|
let label;
|
|
@@ -449,39 +448,89 @@ var MessageReadIndicator = (t0) => {
|
|
|
449
448
|
$[7] = t1;
|
|
450
449
|
} else t1 = $[7];
|
|
451
450
|
let t2;
|
|
452
|
-
if ($[8] !==
|
|
453
|
-
t2 =
|
|
454
|
-
|
|
455
|
-
|
|
451
|
+
if ($[8] !== label) {
|
|
452
|
+
t2 = /* @__PURE__ */ jsx("span", {
|
|
453
|
+
className: conversation_module_default.visuallyHidden,
|
|
454
|
+
children: label
|
|
456
455
|
});
|
|
457
|
-
$[8] =
|
|
456
|
+
$[8] = label;
|
|
458
457
|
$[9] = t2;
|
|
459
458
|
} else t2 = $[9];
|
|
460
459
|
let t3;
|
|
461
|
-
if ($[10] !==
|
|
462
|
-
t3 = /* @__PURE__ */
|
|
463
|
-
className: conversation_module_default.visuallyHidden,
|
|
464
|
-
children: label
|
|
465
|
-
});
|
|
466
|
-
$[10] = label;
|
|
467
|
-
$[11] = t3;
|
|
468
|
-
} else t3 = $[11];
|
|
469
|
-
let t4;
|
|
470
|
-
if ($[12] !== props || $[13] !== status || $[14] !== t1 || $[15] !== t2 || $[16] !== t3) {
|
|
471
|
-
t4 = /* @__PURE__ */ jsxs("div", {
|
|
460
|
+
if ($[10] !== children || $[11] !== props || $[12] !== status || $[13] !== t1 || $[14] !== t2) {
|
|
461
|
+
t3 = /* @__PURE__ */ jsxs("div", {
|
|
472
462
|
className: t1,
|
|
473
463
|
"data-status": status,
|
|
474
464
|
...props,
|
|
475
|
-
children: [
|
|
465
|
+
children: [children, t2]
|
|
476
466
|
});
|
|
477
|
-
$[
|
|
478
|
-
$[
|
|
479
|
-
$[
|
|
480
|
-
$[
|
|
481
|
-
$[
|
|
482
|
-
$[
|
|
483
|
-
} else
|
|
484
|
-
return
|
|
467
|
+
$[10] = children;
|
|
468
|
+
$[11] = props;
|
|
469
|
+
$[12] = status;
|
|
470
|
+
$[13] = t1;
|
|
471
|
+
$[14] = t2;
|
|
472
|
+
$[15] = t3;
|
|
473
|
+
} else t3 = $[15];
|
|
474
|
+
return t3;
|
|
475
|
+
};
|
|
476
|
+
/**
|
|
477
|
+
* The dot a `MessageReadIndicator` shows, filled while the message is unread.
|
|
478
|
+
*
|
|
479
|
+
* @example
|
|
480
|
+
* <Conversation.MessageReadIndicator status="unread" label="Unread">
|
|
481
|
+
* <Conversation.MessageReadDot />
|
|
482
|
+
* </Conversation.MessageReadIndicator>
|
|
483
|
+
*/
|
|
484
|
+
var MessageReadDot = (t0) => {
|
|
485
|
+
const $ = c(14);
|
|
486
|
+
let className;
|
|
487
|
+
let props;
|
|
488
|
+
let ref;
|
|
489
|
+
let render;
|
|
490
|
+
if ($[0] !== t0) {
|
|
491
|
+
({className, render, ref, ...props} = t0);
|
|
492
|
+
$[0] = t0;
|
|
493
|
+
$[1] = className;
|
|
494
|
+
$[2] = props;
|
|
495
|
+
$[3] = ref;
|
|
496
|
+
$[4] = render;
|
|
497
|
+
} else {
|
|
498
|
+
className = $[1];
|
|
499
|
+
props = $[2];
|
|
500
|
+
ref = $[3];
|
|
501
|
+
render = $[4];
|
|
502
|
+
}
|
|
503
|
+
let t1;
|
|
504
|
+
if ($[5] !== className) {
|
|
505
|
+
t1 = clsx(conversation_module_default.statusDot, className);
|
|
506
|
+
$[5] = className;
|
|
507
|
+
$[6] = t1;
|
|
508
|
+
} else t1 = $[6];
|
|
509
|
+
let t2;
|
|
510
|
+
if ($[7] !== props || $[8] !== t1) {
|
|
511
|
+
t2 = {
|
|
512
|
+
"aria-hidden": true,
|
|
513
|
+
...props,
|
|
514
|
+
className: t1
|
|
515
|
+
};
|
|
516
|
+
$[7] = props;
|
|
517
|
+
$[8] = t1;
|
|
518
|
+
$[9] = t2;
|
|
519
|
+
} else t2 = $[9];
|
|
520
|
+
let t3;
|
|
521
|
+
if ($[10] !== ref || $[11] !== render || $[12] !== t2) {
|
|
522
|
+
t3 = {
|
|
523
|
+
defaultTagName: "span",
|
|
524
|
+
render,
|
|
525
|
+
ref,
|
|
526
|
+
props: t2
|
|
527
|
+
};
|
|
528
|
+
$[10] = ref;
|
|
529
|
+
$[11] = render;
|
|
530
|
+
$[12] = t2;
|
|
531
|
+
$[13] = t3;
|
|
532
|
+
} else t3 = $[13];
|
|
533
|
+
return useRender(t3);
|
|
485
534
|
};
|
|
486
535
|
/** A message's text, wrapped anywhere and kept as typed. */
|
|
487
536
|
var MessageContent = (t0) => {
|
|
@@ -588,34 +637,28 @@ var MessageFiles = (t0) => {
|
|
|
588
637
|
} else t5 = $[8];
|
|
589
638
|
return t4(t5);
|
|
590
639
|
};
|
|
591
|
-
/**
|
|
640
|
+
/**
|
|
641
|
+
* The button that downloads every file of a message. It renders whichever
|
|
642
|
+
* button it is given.
|
|
643
|
+
*
|
|
644
|
+
* @example
|
|
645
|
+
* <Conversation.MessageFilesDownloadAll
|
|
646
|
+
* onClick={downloadAll}
|
|
647
|
+
* render={<IconButton label="Download all files" variant="tertiary" size="sm"><DownloadIcon /></IconButton>}
|
|
648
|
+
* />
|
|
649
|
+
*/
|
|
592
650
|
var MessageFilesDownloadAll = (t0) => {
|
|
593
|
-
const $ = c(
|
|
651
|
+
const $ = c(9);
|
|
594
652
|
let t1;
|
|
595
653
|
let t2;
|
|
596
654
|
let t3;
|
|
597
655
|
let t4;
|
|
598
656
|
if ($[0] !== t0) {
|
|
599
|
-
const {
|
|
657
|
+
const { render, ...props } = t0;
|
|
600
658
|
t4 = useRender;
|
|
601
659
|
t1 = "button";
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
variant: "tertiary",
|
|
605
|
-
size: "sm",
|
|
606
|
-
iconOnly: true,
|
|
607
|
-
icon: children,
|
|
608
|
-
label
|
|
609
|
-
});
|
|
610
|
-
$[5] = children;
|
|
611
|
-
$[6] = label;
|
|
612
|
-
$[7] = render;
|
|
613
|
-
$[8] = t2;
|
|
614
|
-
} else t2 = $[8];
|
|
615
|
-
t3 = mergeProps({
|
|
616
|
-
type: "button",
|
|
617
|
-
children: render === void 0 ? void 0 : children
|
|
618
|
-
}, props);
|
|
660
|
+
t2 = render;
|
|
661
|
+
t3 = mergeProps({ type: "button" }, props);
|
|
619
662
|
$[0] = t0;
|
|
620
663
|
$[1] = t1;
|
|
621
664
|
$[2] = t2;
|
|
@@ -628,46 +671,43 @@ var MessageFilesDownloadAll = (t0) => {
|
|
|
628
671
|
t4 = $[4];
|
|
629
672
|
}
|
|
630
673
|
let t5;
|
|
631
|
-
if ($[
|
|
674
|
+
if ($[5] !== t1 || $[6] !== t2 || $[7] !== t3) {
|
|
632
675
|
t5 = {
|
|
633
676
|
defaultTagName: t1,
|
|
634
677
|
render: t2,
|
|
635
678
|
props: t3
|
|
636
679
|
};
|
|
637
|
-
$[
|
|
638
|
-
$[
|
|
639
|
-
$[
|
|
640
|
-
$[
|
|
641
|
-
} else t5 = $[
|
|
680
|
+
$[5] = t1;
|
|
681
|
+
$[6] = t2;
|
|
682
|
+
$[7] = t3;
|
|
683
|
+
$[8] = t5;
|
|
684
|
+
} else t5 = $[8];
|
|
642
685
|
return t4(t5);
|
|
643
686
|
};
|
|
644
|
-
/**
|
|
687
|
+
/**
|
|
688
|
+
* The button, pinned to the log's bottom corner, that jumps to the latest
|
|
689
|
+
* message. It renders whichever button it is given.
|
|
690
|
+
*
|
|
691
|
+
* @example
|
|
692
|
+
* <Conversation.ScrollToBottom
|
|
693
|
+
* onClick={scrollToLatest}
|
|
694
|
+
* render={<IconButton label="Scroll to latest" variant="tertiary"><ArrowDownIcon /></IconButton>}
|
|
695
|
+
* />
|
|
696
|
+
*/
|
|
645
697
|
var ScrollToBottom = (t0) => {
|
|
646
|
-
const $ = c(
|
|
698
|
+
const $ = c(9);
|
|
647
699
|
let t1;
|
|
648
700
|
let t2;
|
|
649
701
|
let t3;
|
|
650
702
|
let t4;
|
|
651
703
|
if ($[0] !== t0) {
|
|
652
|
-
const {
|
|
704
|
+
const { className, render, ...props } = t0;
|
|
653
705
|
t4 = useRender;
|
|
654
706
|
t1 = "button";
|
|
655
|
-
|
|
656
|
-
t2 = render ?? /* @__PURE__ */ jsx(Button, {
|
|
657
|
-
variant: "tertiary",
|
|
658
|
-
iconOnly: true,
|
|
659
|
-
icon: children,
|
|
660
|
-
label
|
|
661
|
-
});
|
|
662
|
-
$[5] = children;
|
|
663
|
-
$[6] = label;
|
|
664
|
-
$[7] = render;
|
|
665
|
-
$[8] = t2;
|
|
666
|
-
} else t2 = $[8];
|
|
707
|
+
t2 = render;
|
|
667
708
|
t3 = mergeProps({
|
|
668
709
|
type: "button",
|
|
669
|
-
className: clsx(conversation_module_default.scrollToBottom, className)
|
|
670
|
-
children: render === void 0 ? void 0 : children
|
|
710
|
+
className: clsx(conversation_module_default.scrollToBottom, className)
|
|
671
711
|
}, props);
|
|
672
712
|
$[0] = t0;
|
|
673
713
|
$[1] = t1;
|
|
@@ -681,17 +721,17 @@ var ScrollToBottom = (t0) => {
|
|
|
681
721
|
t4 = $[4];
|
|
682
722
|
}
|
|
683
723
|
let t5;
|
|
684
|
-
if ($[
|
|
724
|
+
if ($[5] !== t1 || $[6] !== t2 || $[7] !== t3) {
|
|
685
725
|
t5 = {
|
|
686
726
|
defaultTagName: t1,
|
|
687
727
|
render: t2,
|
|
688
728
|
props: t3
|
|
689
729
|
};
|
|
690
|
-
$[
|
|
691
|
-
$[
|
|
692
|
-
$[
|
|
693
|
-
$[
|
|
694
|
-
} else t5 = $[
|
|
730
|
+
$[5] = t1;
|
|
731
|
+
$[6] = t2;
|
|
732
|
+
$[7] = t3;
|
|
733
|
+
$[8] = t5;
|
|
734
|
+
} else t5 = $[8];
|
|
695
735
|
return t4(t5);
|
|
696
736
|
};
|
|
697
737
|
/** What the log shows before there are any messages. */
|
|
@@ -797,7 +837,8 @@ var Prefab = (t0) => {
|
|
|
797
837
|
/* @__PURE__ */ jsx(MessageTimestamp, { date: first.sentAt }),
|
|
798
838
|
status === void 0 ? null : /* @__PURE__ */ jsx(MessageReadIndicator, {
|
|
799
839
|
status,
|
|
800
|
-
label: statusLabel[status]
|
|
840
|
+
label: statusLabel[status],
|
|
841
|
+
children: /* @__PURE__ */ jsx(MessageReadDot, {})
|
|
801
842
|
})
|
|
802
843
|
] }), burst.items.map((message_1) => /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(MessageBubble, { children: /* @__PURE__ */ jsx(MessageContent, {
|
|
803
844
|
lineClamp,
|
|
@@ -858,6 +899,7 @@ var Conversation = Object.assign(Prefab, {
|
|
|
858
899
|
MessageAvatar,
|
|
859
900
|
MessageTimestamp,
|
|
860
901
|
MessageReadIndicator,
|
|
902
|
+
MessageReadDot,
|
|
861
903
|
MessageContent,
|
|
862
904
|
MessageFiles,
|
|
863
905
|
MessageFilesDownloadAll,
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import './conversation.css';// src/components/conversation/conversation.module.scss
|
|
2
|
-
var root = "
|
|
3
|
-
var group = "
|
|
4
|
-
var groupSeparator = "
|
|
5
|
-
var message = "
|
|
6
|
-
var messageAuthor = "
|
|
7
|
-
var messageBubble = "
|
|
8
|
-
var messageAvatar = "
|
|
9
|
-
var messageTimestamp = "
|
|
10
|
-
var messageReadIndicator = "
|
|
11
|
-
var statusDot = "
|
|
12
|
-
var messageContent = "
|
|
13
|
-
var messageFiles = "
|
|
14
|
-
var scrollToBottom = "
|
|
15
|
-
var emptyState = "
|
|
16
|
-
var visuallyHidden = "
|
|
2
|
+
var root = "_root_1vjy3_3";
|
|
3
|
+
var group = "_group_1vjy3_9";
|
|
4
|
+
var groupSeparator = "_groupSeparator_1vjy3_14";
|
|
5
|
+
var message = "_message_1vjy3_24";
|
|
6
|
+
var messageAuthor = "_messageAuthor_1vjy3_34";
|
|
7
|
+
var messageBubble = "_messageBubble_1vjy3_44";
|
|
8
|
+
var messageAvatar = "_messageAvatar_1vjy3_75";
|
|
9
|
+
var messageTimestamp = "_messageTimestamp_1vjy3_78";
|
|
10
|
+
var messageReadIndicator = "_messageReadIndicator_1vjy3_83";
|
|
11
|
+
var statusDot = "_statusDot_1vjy3_91";
|
|
12
|
+
var messageContent = "_messageContent_1vjy3_100";
|
|
13
|
+
var messageFiles = "_messageFiles_1vjy3_111";
|
|
14
|
+
var scrollToBottom = "_scrollToBottom_1vjy3_121";
|
|
15
|
+
var emptyState = "_emptyState_1vjy3_126";
|
|
16
|
+
var visuallyHidden = "_visuallyHidden_1vjy3_135";
|
|
17
17
|
var conversation_module_default = {
|
|
18
18
|
root,
|
|
19
19
|
group,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type ReactNode } from "react";
|
|
2
|
-
import type
|
|
2
|
+
import { type CalendarIcons, type CalendarLabels } from "../../lib/calendar/calendar-prefab.tsx";
|
|
3
3
|
import { type FieldBlurHandler, type FieldProps } from "../field/index.ts";
|
|
4
4
|
export type DateFieldProps = FieldProps & CalendarLabels & CalendarIcons & Readonly<{
|
|
5
5
|
/** Accessible name of the button that opens the calendar, such as "Open calendar". */
|