@uxf/ui 11.28.4 → 11.29.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/components.d.ts +25 -20
- package/components.js +25 -20
- package/css/colors.css +1 -0
- package/css/dialog.css +16 -0
- package/css/icon.css +10 -5
- package/css/modal-header.css +43 -0
- package/datetime-picker-input/datetime-picker-input.d.ts +7 -0
- package/datetime-picker-input/datetime-picker-input.js +4 -1
- package/dialog/theme.d.ts +1 -0
- package/icons-config.js +5 -0
- package/modal/modal.stories.js +7 -1
- package/modal/theme.d.ts +1 -0
- package/modal-header/README.md +23 -0
- package/modal-header/index.d.ts +2 -0
- package/modal-header/index.js +5 -0
- package/modal-header/modal-header.d.ts +10 -0
- package/modal-header/modal-header.js +27 -0
- package/modal-header/modal-header.spec.d.ts +1 -0
- package/modal-header/modal-header.spec.js +9 -0
- package/modal-header/modal-header.stories.d.ts +2 -0
- package/modal-header/modal-header.stories.js +19 -0
- package/package.json +4 -4
- package/readmes.d.ts +5 -4
- package/readmes.js +76 -74
- package/types/form-control-props.d.ts +3 -1
package/components.d.ts
CHANGED
|
@@ -6,10 +6,6 @@ import * as buttonStories from "./button/button.stories";
|
|
|
6
6
|
import * as buttonGroupStories from "./button-group/button-group.stories";
|
|
7
7
|
import * as buttonListStories from "./button-list/button-list.stories";
|
|
8
8
|
import * as calendarStories from "./calendar/calendar.stories";
|
|
9
|
-
import * as checkboxStories from "./checkbox/checkbox.stories";
|
|
10
|
-
import * as checkboxButtonStories from "./checkbox-button/checkbox-button.stories";
|
|
11
|
-
import * as checkboxInputStories from "./checkbox-input/checkbox-input.stories";
|
|
12
|
-
import * as chipStories from "./chip/chip.stories";
|
|
13
9
|
import * as colorRadioStories from "./color-radio/color-radio.stories";
|
|
14
10
|
import * as colorRadioGroupStories from "./color-radio-group/color-radio-group.stories";
|
|
15
11
|
import * as comboboxStories from "./combobox/combobox.stories";
|
|
@@ -26,6 +22,10 @@ import * as errorMessageStories from "./error-message/error-message.stories";
|
|
|
26
22
|
import * as fileInputStories from "./file-input/file-input.stories";
|
|
27
23
|
import * as flashMessagesStories from "./flash-messages/flash-messages.stories";
|
|
28
24
|
import * as formComponentStories from "./form-component/form-component.stories";
|
|
25
|
+
import * as checkboxStories from "./checkbox/checkbox.stories";
|
|
26
|
+
import * as checkboxButtonStories from "./checkbox-button/checkbox-button.stories";
|
|
27
|
+
import * as checkboxInputStories from "./checkbox-input/checkbox-input.stories";
|
|
28
|
+
import * as chipStories from "./chip/chip.stories";
|
|
29
29
|
import * as iconStories from "./icon/icon.stories";
|
|
30
30
|
import * as imageGalleryStories from "./image-gallery/image-gallery.stories";
|
|
31
31
|
import * as inputStories from "./input/input.stories";
|
|
@@ -37,6 +37,7 @@ import * as lozengeStories from "./lozenge/lozenge.stories";
|
|
|
37
37
|
import * as messageStories from "./message/message.stories";
|
|
38
38
|
import * as modalStories from "./modal/modal.stories";
|
|
39
39
|
import * as modalDialogStories from "./modal-dialog/modal-dialog.stories";
|
|
40
|
+
import * as modalHeaderStories from "./modal-header/modal-header.stories";
|
|
40
41
|
import * as multiComboboxStories from "./multi-combobox/multi-combobox.stories";
|
|
41
42
|
import * as multiSelectStories from "./multi-select/multi-select.stories";
|
|
42
43
|
import * as paginationStories from "./pagination/pagination.stories";
|
|
@@ -87,22 +88,6 @@ export declare const components: {
|
|
|
87
88
|
readonly title: "Calendar";
|
|
88
89
|
readonly stories: typeof calendarStories;
|
|
89
90
|
};
|
|
90
|
-
readonly checkbox: {
|
|
91
|
-
readonly title: "Checkbox";
|
|
92
|
-
readonly stories: typeof checkboxStories;
|
|
93
|
-
};
|
|
94
|
-
readonly "checkbox-button": {
|
|
95
|
-
readonly title: "CheckboxButton";
|
|
96
|
-
readonly stories: typeof checkboxButtonStories;
|
|
97
|
-
};
|
|
98
|
-
readonly "checkbox-input": {
|
|
99
|
-
readonly title: "CheckboxInput";
|
|
100
|
-
readonly stories: typeof checkboxInputStories;
|
|
101
|
-
};
|
|
102
|
-
readonly chip: {
|
|
103
|
-
readonly title: "Chip";
|
|
104
|
-
readonly stories: typeof chipStories;
|
|
105
|
-
};
|
|
106
91
|
readonly "color-radio": {
|
|
107
92
|
readonly title: "ColorRadio";
|
|
108
93
|
readonly stories: typeof colorRadioStories;
|
|
@@ -167,6 +152,22 @@ export declare const components: {
|
|
|
167
152
|
readonly title: "FormComponent";
|
|
168
153
|
readonly stories: typeof formComponentStories;
|
|
169
154
|
};
|
|
155
|
+
readonly checkbox: {
|
|
156
|
+
readonly title: "Checkbox";
|
|
157
|
+
readonly stories: typeof checkboxStories;
|
|
158
|
+
};
|
|
159
|
+
readonly "checkbox-button": {
|
|
160
|
+
readonly title: "CheckboxButton";
|
|
161
|
+
readonly stories: typeof checkboxButtonStories;
|
|
162
|
+
};
|
|
163
|
+
readonly "checkbox-input": {
|
|
164
|
+
readonly title: "CheckboxInput";
|
|
165
|
+
readonly stories: typeof checkboxInputStories;
|
|
166
|
+
};
|
|
167
|
+
readonly chip: {
|
|
168
|
+
readonly title: "Chip";
|
|
169
|
+
readonly stories: typeof chipStories;
|
|
170
|
+
};
|
|
170
171
|
readonly icon: {
|
|
171
172
|
readonly title: "Icon";
|
|
172
173
|
readonly stories: typeof iconStories;
|
|
@@ -211,6 +212,10 @@ export declare const components: {
|
|
|
211
212
|
readonly title: "ModalDialog";
|
|
212
213
|
readonly stories: typeof modalDialogStories;
|
|
213
214
|
};
|
|
215
|
+
readonly "modal-header": {
|
|
216
|
+
readonly title: "ModalHeader";
|
|
217
|
+
readonly stories: typeof modalHeaderStories;
|
|
218
|
+
};
|
|
214
219
|
readonly "multi-combobox": {
|
|
215
220
|
readonly title: "MultiCombobox";
|
|
216
221
|
readonly stories: typeof multiComboboxStories;
|
package/components.js
CHANGED
|
@@ -33,10 +33,6 @@ const buttonStories = __importStar(require("./button/button.stories"));
|
|
|
33
33
|
const buttonGroupStories = __importStar(require("./button-group/button-group.stories"));
|
|
34
34
|
const buttonListStories = __importStar(require("./button-list/button-list.stories"));
|
|
35
35
|
const calendarStories = __importStar(require("./calendar/calendar.stories"));
|
|
36
|
-
const checkboxStories = __importStar(require("./checkbox/checkbox.stories"));
|
|
37
|
-
const checkboxButtonStories = __importStar(require("./checkbox-button/checkbox-button.stories"));
|
|
38
|
-
const checkboxInputStories = __importStar(require("./checkbox-input/checkbox-input.stories"));
|
|
39
|
-
const chipStories = __importStar(require("./chip/chip.stories"));
|
|
40
36
|
const colorRadioStories = __importStar(require("./color-radio/color-radio.stories"));
|
|
41
37
|
const colorRadioGroupStories = __importStar(require("./color-radio-group/color-radio-group.stories"));
|
|
42
38
|
const comboboxStories = __importStar(require("./combobox/combobox.stories"));
|
|
@@ -53,6 +49,10 @@ const errorMessageStories = __importStar(require("./error-message/error-message.
|
|
|
53
49
|
const fileInputStories = __importStar(require("./file-input/file-input.stories"));
|
|
54
50
|
const flashMessagesStories = __importStar(require("./flash-messages/flash-messages.stories"));
|
|
55
51
|
const formComponentStories = __importStar(require("./form-component/form-component.stories"));
|
|
52
|
+
const checkboxStories = __importStar(require("./checkbox/checkbox.stories"));
|
|
53
|
+
const checkboxButtonStories = __importStar(require("./checkbox-button/checkbox-button.stories"));
|
|
54
|
+
const checkboxInputStories = __importStar(require("./checkbox-input/checkbox-input.stories"));
|
|
55
|
+
const chipStories = __importStar(require("./chip/chip.stories"));
|
|
56
56
|
const iconStories = __importStar(require("./icon/icon.stories"));
|
|
57
57
|
const imageGalleryStories = __importStar(require("./image-gallery/image-gallery.stories"));
|
|
58
58
|
const inputStories = __importStar(require("./input/input.stories"));
|
|
@@ -64,6 +64,7 @@ const lozengeStories = __importStar(require("./lozenge/lozenge.stories"));
|
|
|
64
64
|
const messageStories = __importStar(require("./message/message.stories"));
|
|
65
65
|
const modalStories = __importStar(require("./modal/modal.stories"));
|
|
66
66
|
const modalDialogStories = __importStar(require("./modal-dialog/modal-dialog.stories"));
|
|
67
|
+
const modalHeaderStories = __importStar(require("./modal-header/modal-header.stories"));
|
|
67
68
|
const multiComboboxStories = __importStar(require("./multi-combobox/multi-combobox.stories"));
|
|
68
69
|
const multiSelectStories = __importStar(require("./multi-select/multi-select.stories"));
|
|
69
70
|
const paginationStories = __importStar(require("./pagination/pagination.stories"));
|
|
@@ -114,22 +115,6 @@ exports.components = {
|
|
|
114
115
|
title: "Calendar",
|
|
115
116
|
stories: calendarStories
|
|
116
117
|
},
|
|
117
|
-
"checkbox": {
|
|
118
|
-
title: "Checkbox",
|
|
119
|
-
stories: checkboxStories
|
|
120
|
-
},
|
|
121
|
-
"checkbox-button": {
|
|
122
|
-
title: "CheckboxButton",
|
|
123
|
-
stories: checkboxButtonStories
|
|
124
|
-
},
|
|
125
|
-
"checkbox-input": {
|
|
126
|
-
title: "CheckboxInput",
|
|
127
|
-
stories: checkboxInputStories
|
|
128
|
-
},
|
|
129
|
-
"chip": {
|
|
130
|
-
title: "Chip",
|
|
131
|
-
stories: chipStories
|
|
132
|
-
},
|
|
133
118
|
"color-radio": {
|
|
134
119
|
title: "ColorRadio",
|
|
135
120
|
stories: colorRadioStories
|
|
@@ -194,6 +179,22 @@ exports.components = {
|
|
|
194
179
|
title: "FormComponent",
|
|
195
180
|
stories: formComponentStories
|
|
196
181
|
},
|
|
182
|
+
"checkbox": {
|
|
183
|
+
title: "Checkbox",
|
|
184
|
+
stories: checkboxStories
|
|
185
|
+
},
|
|
186
|
+
"checkbox-button": {
|
|
187
|
+
title: "CheckboxButton",
|
|
188
|
+
stories: checkboxButtonStories
|
|
189
|
+
},
|
|
190
|
+
"checkbox-input": {
|
|
191
|
+
title: "CheckboxInput",
|
|
192
|
+
stories: checkboxInputStories
|
|
193
|
+
},
|
|
194
|
+
"chip": {
|
|
195
|
+
title: "Chip",
|
|
196
|
+
stories: chipStories
|
|
197
|
+
},
|
|
197
198
|
"icon": {
|
|
198
199
|
title: "Icon",
|
|
199
200
|
stories: iconStories
|
|
@@ -238,6 +239,10 @@ exports.components = {
|
|
|
238
239
|
title: "ModalDialog",
|
|
239
240
|
stories: modalDialogStories
|
|
240
241
|
},
|
|
242
|
+
"modal-header": {
|
|
243
|
+
title: "ModalHeader",
|
|
244
|
+
stories: modalHeaderStories
|
|
245
|
+
},
|
|
241
246
|
"multi-combobox": {
|
|
242
247
|
title: "MultiCombobox",
|
|
243
248
|
stories: multiComboboxStories
|
package/css/colors.css
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
/** base */
|
|
3
3
|
--uxf-color-base-border-inverted: #ffffff1f;
|
|
4
4
|
--uxf-color-base-border-input: #d2d6db;
|
|
5
|
+
--uxf-color-base-border-border: #e5e7eb;
|
|
5
6
|
--uxf-color-base-surface-main: #fff;
|
|
6
7
|
--uxf-color-base-surface-main-hover: #f3f4f6;
|
|
7
8
|
--uxf-color-base-surface-input-disabled: #f3f4f6;
|
package/css/dialog.css
CHANGED
|
@@ -49,4 +49,20 @@
|
|
|
49
49
|
border-radius: var(--panel-border-radius);
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
+
|
|
53
|
+
&--variant-rightDrawer {
|
|
54
|
+
.uxf-dialog__body {
|
|
55
|
+
@screen sm {
|
|
56
|
+
align-items: stretch;
|
|
57
|
+
justify-content: flex-end;
|
|
58
|
+
padding: 0;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.uxf-dialog__panel {
|
|
63
|
+
@screen sm {
|
|
64
|
+
border-radius: 0;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
52
68
|
}
|
package/css/icon.css
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--uxf-icon-color: initial;
|
|
3
|
+
}
|
|
4
|
+
|
|
1
5
|
.uxf-icon {
|
|
6
|
+
color: var(--uxf-icon-color);
|
|
2
7
|
flex-shrink: 0;
|
|
3
8
|
height: var(--i-h);
|
|
4
9
|
width: var(--i-w);
|
|
@@ -8,22 +13,22 @@
|
|
|
8
13
|
}
|
|
9
14
|
|
|
10
15
|
&--color-default {
|
|
11
|
-
color: var(--uxf-color-base-text-high-emphasis);
|
|
16
|
+
--uxf-icon-color: var(--uxf-color-base-text-high-emphasis);
|
|
12
17
|
}
|
|
13
18
|
|
|
14
19
|
&--color-positive {
|
|
15
|
-
color: var(--uxf-color-positive-text);
|
|
20
|
+
--uxf-icon-color: var(--uxf-color-positive-text);
|
|
16
21
|
}
|
|
17
22
|
|
|
18
23
|
&--color-negative {
|
|
19
|
-
color: var(--uxf-color-negative-text);
|
|
24
|
+
--uxf-icon-color: var(--uxf-color-negative-text);
|
|
20
25
|
}
|
|
21
26
|
|
|
22
27
|
&--color-warning {
|
|
23
|
-
color: var(--uxf-color-warning-text);
|
|
28
|
+
--uxf-icon-color: var(--uxf-color-warning-text);
|
|
24
29
|
}
|
|
25
30
|
|
|
26
31
|
&--color-info {
|
|
27
|
-
color: var(--uxf-color-info-text);
|
|
32
|
+
--uxf-icon-color: var(--uxf-color-info-text);
|
|
28
33
|
}
|
|
29
34
|
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
/** modal header variables */
|
|
3
|
+
--uxf-modal-header-background-color: var(--uxf-color-base-surface-main);
|
|
4
|
+
--uxf-modal-header-border-color: var(--uxf-color-base-border-border);
|
|
5
|
+
--uxf-modal-header-border-width: theme("borderWidth.DEFAULT");
|
|
6
|
+
--uxf-modal-header-description-font-size: theme("fontSize.caption");
|
|
7
|
+
--uxf-modal-header-description-font-weight: theme("fontWeight.normal");
|
|
8
|
+
--uxf-modal-header-description-text-color: var(--uxf-color-base-text-low-emphasis);
|
|
9
|
+
--uxf-modal-header-title-font-size: 18px;
|
|
10
|
+
--uxf-modal-header-title-font-weight: theme("fontWeight.semibold");
|
|
11
|
+
--uxf-modal-header-title-line-height: 1.3333;
|
|
12
|
+
--uxf-modal-header-title-text-color: var(--uxf-color-base-text-high-emphasis);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.uxf-modal-header {
|
|
16
|
+
--uxf-icon-color: var(--uxf-modal-header-title-text-color);
|
|
17
|
+
|
|
18
|
+
background-color: var(--uxf-modal-header-background-color);
|
|
19
|
+
border-bottom: var(--uxf-modal-header-border-width) solid var(--uxf-modal-header-border-color);
|
|
20
|
+
color: var(--uxf-modal-header-title-text-color);
|
|
21
|
+
display: flex;
|
|
22
|
+
font-size: var(--uxf-modal-header-title-font-size);
|
|
23
|
+
font-weight: var(--uxf-modal-header-title-font-weight);
|
|
24
|
+
line-height: var(--uxf-modal-header-title-line-height);
|
|
25
|
+
padding: theme("spacing.2") theme("spacing.2") theme("spacing.2") theme("spacing.4");
|
|
26
|
+
width: 100%;
|
|
27
|
+
|
|
28
|
+
&--has-go-back {
|
|
29
|
+
padding: theme("spacing.2");
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
&__text-wrapper {
|
|
33
|
+
flex-grow: 1;
|
|
34
|
+
padding: theme("spacing.1");
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
&__description {
|
|
38
|
+
color: var(--uxf-modal-header-description-text-color);
|
|
39
|
+
font-size: var(--uxf-modal-header-description-font-size);
|
|
40
|
+
font-weight: var(--uxf-modal-header-description-font-weight);
|
|
41
|
+
margin-top: theme("spacing.1");
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
+
import { DatetimeString } from "@uxf/core/date";
|
|
1
2
|
import React, { ReactNode } from "react";
|
|
2
3
|
import { InputWithPopoverProps } from "../_input-with-popover";
|
|
4
|
+
import { ControlProps } from "../types";
|
|
3
5
|
export declare const ALLOWED_DATETIME_FORMAT: string[];
|
|
4
6
|
export declare const DISPLAY_DATETIME_FORMAT = "D. M. YYYY H:mm";
|
|
5
7
|
export declare const BOUNDARY_DATE_FORMAT = "YYYY-MM-DD";
|
|
8
|
+
interface DatetimePickerProps extends ControlProps<DatetimeString | null> {
|
|
9
|
+
onClose: () => void;
|
|
10
|
+
}
|
|
6
11
|
export interface DatetimePickerInputProps extends Omit<InputWithPopoverProps<string | null>, "children" | "placeholder" | "triggerElement"> {
|
|
7
12
|
placeholder?: string;
|
|
8
13
|
triggerElement?: ReactNode;
|
|
@@ -10,5 +15,7 @@ export interface DatetimePickerInputProps extends Omit<InputWithPopoverProps<str
|
|
|
10
15
|
maxDate?: string;
|
|
11
16
|
unavailableDates?: Date[];
|
|
12
17
|
bottomContent?: ReactNode;
|
|
18
|
+
CustomDatetimePicker?: (props: DatetimePickerProps) => ReactNode;
|
|
13
19
|
}
|
|
14
20
|
export declare const DatetimePickerInput: React.ForwardRefExoticComponent<DatetimePickerInputProps & React.RefAttributes<HTMLInputElement>>;
|
|
21
|
+
export {};
|
|
@@ -28,6 +28,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
exports.DatetimePickerInput = exports.BOUNDARY_DATE_FORMAT = exports.DISPLAY_DATETIME_FORMAT = exports.ALLOWED_DATETIME_FORMAT = void 0;
|
|
30
30
|
const cx_1 = require("@uxf/core/utils/cx");
|
|
31
|
+
const is_not_nil_1 = require("@uxf/core/utils/is-not-nil");
|
|
31
32
|
const dayjs_1 = __importStar(require("dayjs"));
|
|
32
33
|
const customParseFormat_1 = __importDefault(require("dayjs/plugin/customParseFormat"));
|
|
33
34
|
const react_1 = __importStar(require("react"));
|
|
@@ -78,6 +79,8 @@ exports.DatetimePickerInput = (0, react_1.forwardRef)((props, ref) => {
|
|
|
78
79
|
const parsedMinDate = getBoundaryDate(props.minDate);
|
|
79
80
|
const parsedMaxDate = getBoundaryDate(props.maxDate);
|
|
80
81
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
81
|
-
react_1.default.createElement(_input_with_popover_1._InputWithPopover, { ...props, className: className, onChange: onInputChange, placeholder: (_a = props.placeholder) !== null && _a !== void 0 ? _a : (0, dayjs_1.default)().format(exports.DISPLAY_DATETIME_FORMAT), ref: ref, value: value, triggerElement: (_b = props.triggerElement) !== null && _b !== void 0 ? _b : react_1.default.createElement(icon_1.Icon, { name: "calendar", size: 20 }) }, ({ close }) => (react_1.default.createElement(
|
|
82
|
+
react_1.default.createElement(_input_with_popover_1._InputWithPopover, { ...props, className: className, onChange: onInputChange, placeholder: (_a = props.placeholder) !== null && _a !== void 0 ? _a : (0, dayjs_1.default)().format(exports.DISPLAY_DATETIME_FORMAT), ref: ref, value: value, triggerElement: (_b = props.triggerElement) !== null && _b !== void 0 ? _b : react_1.default.createElement(icon_1.Icon, { name: "calendar", size: 20 }) }, ({ close }) => (0, is_not_nil_1.isNotNil)(props.CustomDatetimePicker) ? (react_1.default.createElement(props.CustomDatetimePicker, { value: (0, is_not_nil_1.isNotNil)(value)
|
|
83
|
+
? (0, dayjs_1.default)(value).format("YYYY-MM-DD[T]HH:mm:ssZ")
|
|
84
|
+
: null, onChange: onChange, onClose: close })) : (react_1.default.createElement(datetime_picker_1.DatetimePicker, { minDate: parsedMinDate, maxDate: parsedMaxDate, bottomContent: props.bottomContent, closePopoverHandler: close, onChange: onChange, value: props.value, unavailableDates: props.unavailableDates })))));
|
|
82
85
|
});
|
|
83
86
|
exports.DatetimePickerInput.displayName = "UxfUiDatePickerInput";
|
package/dialog/theme.d.ts
CHANGED
package/icons-config.js
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
/** @type {import('@uxf/icons-generator/types').Config['icons']} */
|
|
2
2
|
module.exports = {
|
|
3
|
+
"angle-left": {
|
|
4
|
+
width: 320,
|
|
5
|
+
height: 512,
|
|
6
|
+
data: `<path fill="currentColor" d="M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z"/>`,
|
|
7
|
+
},
|
|
3
8
|
"arrow-left": {
|
|
4
9
|
width: 448,
|
|
5
10
|
height: 512,
|
package/modal/modal.stories.js
CHANGED
|
@@ -54,7 +54,13 @@ function Default() {
|
|
|
54
54
|
react_1.default.createElement("p", { className: "mb-3 text-lg font-bold" }, "Modal - disable backdrop close"),
|
|
55
55
|
react_1.default.createElement(button_1.Button, { isFullWidth: true, onClick: modal_service_1.closeModal }, "Close modal"))),
|
|
56
56
|
disableBackdropClose: true,
|
|
57
|
-
}) }, "Click to open modal - disable backdrop close")
|
|
57
|
+
}) }, "Click to open modal - disable backdrop close"),
|
|
58
|
+
react_1.default.createElement(button_1.Button, { onClick: () => (0, modal_service_1.openModal)({
|
|
59
|
+
children: (react_1.default.createElement("div", { className: "p-4" },
|
|
60
|
+
react_1.default.createElement("p", { className: "mb-3 text-lg font-bold" }, "Modal - variant right drawer"),
|
|
61
|
+
react_1.default.createElement(button_1.Button, { isFullWidth: true, onClick: modal_service_1.closeModal }, "Close modal"))),
|
|
62
|
+
variant: "drawer-right",
|
|
63
|
+
}) }, "Click to open modal - variant right drawer")));
|
|
58
64
|
return (react_1.default.createElement("div", { className: "flex flex-col lg:flex-row" },
|
|
59
65
|
react_1.default.createElement("div", { className: "space-y-2 p-20 lg:w-1/2" }, storyModals)));
|
|
60
66
|
}
|
package/modal/theme.d.ts
CHANGED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# ModalHeader
|
|
2
|
+
|
|
3
|
+
Figma: <a href="https://www.figma.com/design/InhbHrNUhDGbBvRDRonXsD/Vent-UI?node-id=5643-63799">zde</a>
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { ModalHeader } from "@uxf/ui/modal-header";
|
|
9
|
+
|
|
10
|
+
function Example() {
|
|
11
|
+
return (
|
|
12
|
+
<ModalHeader description="View and manage your time off" title="Time of details" onGoBack={() => void null} />
|
|
13
|
+
);
|
|
14
|
+
}
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## CSS dependencies
|
|
18
|
+
|
|
19
|
+
```css
|
|
20
|
+
@import url("@uxf/ui/css/button.css");
|
|
21
|
+
@import url("@uxf/ui/css/modal-header.css");
|
|
22
|
+
@import url("@uxf/ui/css/icon.css");
|
|
23
|
+
```
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ModalHeader = void 0;
|
|
4
|
+
var modal_header_1 = require("./modal-header");
|
|
5
|
+
Object.defineProperty(exports, "ModalHeader", { enumerable: true, get: function () { return modal_header_1.ModalHeader; } });
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React, { ReactNode } from "react";
|
|
2
|
+
export interface ModalHeaderProps {
|
|
3
|
+
className?: string;
|
|
4
|
+
onGoBack?: () => void;
|
|
5
|
+
onClose?: () => void;
|
|
6
|
+
actionsComponent?: ReactNode;
|
|
7
|
+
title: ReactNode;
|
|
8
|
+
description?: ReactNode;
|
|
9
|
+
}
|
|
10
|
+
export declare function ModalHeader(props: ModalHeaderProps): React.JSX.Element;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ModalHeader = void 0;
|
|
7
|
+
const show_1 = require("@uxf/core-react/components/show");
|
|
8
|
+
const cx_1 = require("@uxf/core/utils/cx");
|
|
9
|
+
const is_not_nil_1 = require("@uxf/core/utils/is-not-nil");
|
|
10
|
+
const react_1 = __importDefault(require("react"));
|
|
11
|
+
const button_1 = require("../button");
|
|
12
|
+
const icon_1 = require("../icon");
|
|
13
|
+
function ModalHeader(props) {
|
|
14
|
+
return (react_1.default.createElement("header", { className: (0, cx_1.cx)("uxf-modal-header", props.onGoBack && "uxf-modal-header--has-go-back") },
|
|
15
|
+
react_1.default.createElement(show_1.Show, { when: (0, is_not_nil_1.isNotNil)(props.onGoBack) },
|
|
16
|
+
react_1.default.createElement(button_1.Button, { onClick: props.onGoBack, size: "sm", variant: "text", isIconButton: true },
|
|
17
|
+
react_1.default.createElement(icon_1.Icon, { name: "angle-left" }))),
|
|
18
|
+
react_1.default.createElement("div", { className: "uxf-modal-header__text-wrapper" },
|
|
19
|
+
react_1.default.createElement("div", { className: "uxf-modal-header__title" }, props.title),
|
|
20
|
+
react_1.default.createElement(show_1.Show, { when: (0, is_not_nil_1.isNotNil)(props.description) },
|
|
21
|
+
react_1.default.createElement("div", { className: "uxf-modal-header__description" }, props.description))),
|
|
22
|
+
props.actionsComponent,
|
|
23
|
+
react_1.default.createElement(show_1.Show, { when: (0, is_not_nil_1.isNotNil)(props.onClose) },
|
|
24
|
+
react_1.default.createElement(button_1.Button, { onClick: props.onClose, size: "sm", variant: "text", isIconButton: true },
|
|
25
|
+
react_1.default.createElement(icon_1.Icon, { name: "xmark" })))));
|
|
26
|
+
}
|
|
27
|
+
exports.ModalHeader = ModalHeader;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const react_1 = __importDefault(require("react"));
|
|
7
|
+
const snap_test_1 = require("../utils/snap-test");
|
|
8
|
+
const modal_header_stories_1 = require("./modal-header.stories");
|
|
9
|
+
(0, snap_test_1.snapTest)("render stories", react_1.default.createElement(modal_header_stories_1.Default, null));
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Default = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const button_1 = require("../button");
|
|
9
|
+
const icon_1 = require("../icon");
|
|
10
|
+
const modal_header_1 = require("./modal-header");
|
|
11
|
+
function Default() {
|
|
12
|
+
return (react_1.default.createElement("div", { className: "flex max-w-[480px] flex-col gap-4 p-8" },
|
|
13
|
+
react_1.default.createElement(modal_header_1.ModalHeader, { title: "Time of details", onClose: () => void null }),
|
|
14
|
+
react_1.default.createElement(modal_header_1.ModalHeader, { description: "View and manage your time off", title: "Time of details" }),
|
|
15
|
+
react_1.default.createElement(modal_header_1.ModalHeader, { description: "View and manage your time off", onClose: () => void null, onGoBack: () => alert("going back!"), title: "Time of details" }),
|
|
16
|
+
react_1.default.createElement(modal_header_1.ModalHeader, { actionsComponent: react_1.default.createElement(button_1.Button, { onClick: () => alert("action!"), size: "sm", variant: "text", isIconButton: true },
|
|
17
|
+
react_1.default.createElement(icon_1.Icon, { name: "ellipsis-vertical" })), description: "View and manage your time off", onClose: () => void null, onGoBack: () => alert("going back!"), title: "Time of details" })));
|
|
18
|
+
}
|
|
19
|
+
exports.Default = Default;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uxf/ui",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.29.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -17,10 +17,10 @@
|
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"@floating-ui/react": "0.26.9",
|
|
19
19
|
"@headlessui/react": "1.7.14",
|
|
20
|
-
"@uxf/core": "11.
|
|
21
|
-
"@uxf/core-react": "11.
|
|
20
|
+
"@uxf/core": "11.29.0",
|
|
21
|
+
"@uxf/core-react": "11.29.0",
|
|
22
22
|
"@uxf/datepicker": "11.25.0",
|
|
23
|
-
"@uxf/styles": "11.
|
|
23
|
+
"@uxf/styles": "11.29.0",
|
|
24
24
|
"color2k": "2.0.3",
|
|
25
25
|
"dayjs": "1.11.10",
|
|
26
26
|
"jump.js": "1.0.2",
|
package/readmes.d.ts
CHANGED
|
@@ -9,10 +9,6 @@ export declare const readmes: {
|
|
|
9
9
|
readonly "button-group": typeof alertBubbleReadme;
|
|
10
10
|
readonly "button-list": typeof alertBubbleReadme;
|
|
11
11
|
readonly calendar: typeof alertBubbleReadme;
|
|
12
|
-
readonly checkbox: typeof alertBubbleReadme;
|
|
13
|
-
readonly "checkbox-button": typeof alertBubbleReadme;
|
|
14
|
-
readonly "checkbox-input": typeof alertBubbleReadme;
|
|
15
|
-
readonly chip: typeof alertBubbleReadme;
|
|
16
12
|
readonly "color-radio": typeof alertBubbleReadme;
|
|
17
13
|
readonly "color-radio-group": typeof alertBubbleReadme;
|
|
18
14
|
readonly combobox: typeof alertBubbleReadme;
|
|
@@ -29,6 +25,10 @@ export declare const readmes: {
|
|
|
29
25
|
readonly "file-input": typeof alertBubbleReadme;
|
|
30
26
|
readonly "flash-messages": typeof alertBubbleReadme;
|
|
31
27
|
readonly "form-component": typeof alertBubbleReadme;
|
|
28
|
+
readonly checkbox: typeof alertBubbleReadme;
|
|
29
|
+
readonly "checkbox-button": typeof alertBubbleReadme;
|
|
30
|
+
readonly "checkbox-input": typeof alertBubbleReadme;
|
|
31
|
+
readonly chip: typeof alertBubbleReadme;
|
|
32
32
|
readonly icon: typeof alertBubbleReadme;
|
|
33
33
|
readonly "image-gallery": typeof alertBubbleReadme;
|
|
34
34
|
readonly input: typeof alertBubbleReadme;
|
|
@@ -40,6 +40,7 @@ export declare const readmes: {
|
|
|
40
40
|
readonly message: typeof alertBubbleReadme;
|
|
41
41
|
readonly modal: typeof alertBubbleReadme;
|
|
42
42
|
readonly "modal-dialog": typeof alertBubbleReadme;
|
|
43
|
+
readonly "modal-header": typeof alertBubbleReadme;
|
|
43
44
|
readonly "multi-combobox": typeof alertBubbleReadme;
|
|
44
45
|
readonly "multi-select": typeof alertBubbleReadme;
|
|
45
46
|
readonly pagination: typeof alertBubbleReadme;
|
package/readmes.js
CHANGED
|
@@ -13,26 +13,26 @@ const README_md_5 = __importDefault(require("./button/README.md"));
|
|
|
13
13
|
const README_md_6 = __importDefault(require("./button-group/README.md"));
|
|
14
14
|
const README_md_7 = __importDefault(require("./button-list/README.md"));
|
|
15
15
|
const README_md_8 = __importDefault(require("./calendar/README.md"));
|
|
16
|
-
const README_md_9 = __importDefault(require("./
|
|
17
|
-
const README_md_10 = __importDefault(require("./
|
|
18
|
-
const README_md_11 = __importDefault(require("./
|
|
19
|
-
const README_md_12 = __importDefault(require("./
|
|
20
|
-
const README_md_13 = __importDefault(require("./
|
|
21
|
-
const README_md_14 = __importDefault(require("./
|
|
22
|
-
const README_md_15 = __importDefault(require("./
|
|
23
|
-
const README_md_16 = __importDefault(require("./
|
|
24
|
-
const README_md_17 = __importDefault(require("./
|
|
25
|
-
const README_md_18 = __importDefault(require("./
|
|
26
|
-
const README_md_19 = __importDefault(require("./
|
|
27
|
-
const README_md_20 = __importDefault(require("./
|
|
28
|
-
const README_md_21 = __importDefault(require("./
|
|
29
|
-
const README_md_22 = __importDefault(require("./
|
|
30
|
-
const README_md_23 = __importDefault(require("./
|
|
31
|
-
const README_md_24 = __importDefault(require("./
|
|
32
|
-
const README_md_25 = __importDefault(require("./
|
|
33
|
-
const README_md_26 = __importDefault(require("./
|
|
34
|
-
const README_md_27 = __importDefault(require("./
|
|
35
|
-
const README_md_28 = __importDefault(require("./
|
|
16
|
+
const README_md_9 = __importDefault(require("./color-radio/README.md"));
|
|
17
|
+
const README_md_10 = __importDefault(require("./color-radio-group/README.md"));
|
|
18
|
+
const README_md_11 = __importDefault(require("./combobox/README.md"));
|
|
19
|
+
const README_md_12 = __importDefault(require("./date-picker/README.md"));
|
|
20
|
+
const README_md_13 = __importDefault(require("./date-picker-input/README.md"));
|
|
21
|
+
const README_md_14 = __importDefault(require("./date-range-picker/README.md"));
|
|
22
|
+
const README_md_15 = __importDefault(require("./date-range-picker-input/README.md"));
|
|
23
|
+
const README_md_16 = __importDefault(require("./datetime-picker/README.md"));
|
|
24
|
+
const README_md_17 = __importDefault(require("./datetime-picker-input/README.md"));
|
|
25
|
+
const README_md_18 = __importDefault(require("./dialog/README.md"));
|
|
26
|
+
const README_md_19 = __importDefault(require("./dropdown/README.md"));
|
|
27
|
+
const README_md_20 = __importDefault(require("./dropzone/README.md"));
|
|
28
|
+
const README_md_21 = __importDefault(require("./error-message/README.md"));
|
|
29
|
+
const README_md_22 = __importDefault(require("./file-input/README.md"));
|
|
30
|
+
const README_md_23 = __importDefault(require("./flash-messages/README.md"));
|
|
31
|
+
const README_md_24 = __importDefault(require("./form-component/README.md"));
|
|
32
|
+
const README_md_25 = __importDefault(require("./checkbox/README.md"));
|
|
33
|
+
const README_md_26 = __importDefault(require("./checkbox-button/README.md"));
|
|
34
|
+
const README_md_27 = __importDefault(require("./checkbox-input/README.md"));
|
|
35
|
+
const README_md_28 = __importDefault(require("./chip/README.md"));
|
|
36
36
|
const README_md_29 = __importDefault(require("./icon/README.md"));
|
|
37
37
|
const README_md_30 = __importDefault(require("./image-gallery/README.md"));
|
|
38
38
|
const README_md_31 = __importDefault(require("./input/README.md"));
|
|
@@ -44,23 +44,24 @@ const README_md_36 = __importDefault(require("./lozenge/README.md"));
|
|
|
44
44
|
const README_md_37 = __importDefault(require("./message/README.md"));
|
|
45
45
|
const README_md_38 = __importDefault(require("./modal/README.md"));
|
|
46
46
|
const README_md_39 = __importDefault(require("./modal-dialog/README.md"));
|
|
47
|
-
const README_md_40 = __importDefault(require("./
|
|
48
|
-
const README_md_41 = __importDefault(require("./multi-
|
|
49
|
-
const README_md_42 = __importDefault(require("./
|
|
50
|
-
const README_md_43 = __importDefault(require("./
|
|
51
|
-
const README_md_44 = __importDefault(require("./
|
|
52
|
-
const README_md_45 = __importDefault(require("./radio
|
|
53
|
-
const README_md_46 = __importDefault(require("./
|
|
54
|
-
const README_md_47 = __importDefault(require("./
|
|
55
|
-
const README_md_48 = __importDefault(require("./
|
|
56
|
-
const README_md_49 = __importDefault(require("./
|
|
57
|
-
const README_md_50 = __importDefault(require("./text-
|
|
58
|
-
const README_md_51 = __importDefault(require("./
|
|
59
|
-
const README_md_52 = __importDefault(require("./
|
|
60
|
-
const README_md_53 = __importDefault(require("./time-picker
|
|
61
|
-
const README_md_54 = __importDefault(require("./
|
|
62
|
-
const README_md_55 = __importDefault(require("./
|
|
63
|
-
const README_md_56 = __importDefault(require("./
|
|
47
|
+
const README_md_40 = __importDefault(require("./modal-header/README.md"));
|
|
48
|
+
const README_md_41 = __importDefault(require("./multi-combobox/README.md"));
|
|
49
|
+
const README_md_42 = __importDefault(require("./multi-select/README.md"));
|
|
50
|
+
const README_md_43 = __importDefault(require("./pagination/README.md"));
|
|
51
|
+
const README_md_44 = __importDefault(require("./paper/README.md"));
|
|
52
|
+
const README_md_45 = __importDefault(require("./radio/README.md"));
|
|
53
|
+
const README_md_46 = __importDefault(require("./radio-group/README.md"));
|
|
54
|
+
const README_md_47 = __importDefault(require("./raster-image/README.md"));
|
|
55
|
+
const README_md_48 = __importDefault(require("./select/README.md"));
|
|
56
|
+
const README_md_49 = __importDefault(require("./tabs/README.md"));
|
|
57
|
+
const README_md_50 = __importDefault(require("./text-input/README.md"));
|
|
58
|
+
const README_md_51 = __importDefault(require("./text-link/README.md"));
|
|
59
|
+
const README_md_52 = __importDefault(require("./textarea/README.md"));
|
|
60
|
+
const README_md_53 = __importDefault(require("./time-picker/README.md"));
|
|
61
|
+
const README_md_54 = __importDefault(require("./time-picker-input/README.md"));
|
|
62
|
+
const README_md_55 = __importDefault(require("./toggle/README.md"));
|
|
63
|
+
const README_md_56 = __importDefault(require("./tooltip/README.md"));
|
|
64
|
+
const README_md_57 = __importDefault(require("./typography/README.md"));
|
|
64
65
|
exports.readmes = {
|
|
65
66
|
"alert-bubble": README_md_1.default,
|
|
66
67
|
"avatar": README_md_2.default,
|
|
@@ -70,26 +71,26 @@ exports.readmes = {
|
|
|
70
71
|
"button-group": README_md_6.default,
|
|
71
72
|
"button-list": README_md_7.default,
|
|
72
73
|
"calendar": README_md_8.default,
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
"
|
|
87
|
-
"
|
|
88
|
-
"
|
|
89
|
-
"
|
|
90
|
-
"
|
|
91
|
-
"
|
|
92
|
-
"
|
|
74
|
+
"color-radio": README_md_9.default,
|
|
75
|
+
"color-radio-group": README_md_10.default,
|
|
76
|
+
"combobox": README_md_11.default,
|
|
77
|
+
"date-picker": README_md_12.default,
|
|
78
|
+
"date-picker-input": README_md_13.default,
|
|
79
|
+
"date-range-picker": README_md_14.default,
|
|
80
|
+
"date-range-picker-input": README_md_15.default,
|
|
81
|
+
"datetime-picker": README_md_16.default,
|
|
82
|
+
"datetime-picker-input": README_md_17.default,
|
|
83
|
+
"dialog": README_md_18.default,
|
|
84
|
+
"dropdown": README_md_19.default,
|
|
85
|
+
"dropzone": README_md_20.default,
|
|
86
|
+
"error-message": README_md_21.default,
|
|
87
|
+
"file-input": README_md_22.default,
|
|
88
|
+
"flash-messages": README_md_23.default,
|
|
89
|
+
"form-component": README_md_24.default,
|
|
90
|
+
"checkbox": README_md_25.default,
|
|
91
|
+
"checkbox-button": README_md_26.default,
|
|
92
|
+
"checkbox-input": README_md_27.default,
|
|
93
|
+
"chip": README_md_28.default,
|
|
93
94
|
"icon": README_md_29.default,
|
|
94
95
|
"image-gallery": README_md_30.default,
|
|
95
96
|
"input": README_md_31.default,
|
|
@@ -101,21 +102,22 @@ exports.readmes = {
|
|
|
101
102
|
"message": README_md_37.default,
|
|
102
103
|
"modal": README_md_38.default,
|
|
103
104
|
"modal-dialog": README_md_39.default,
|
|
104
|
-
"
|
|
105
|
-
"multi-
|
|
106
|
-
"
|
|
107
|
-
"
|
|
108
|
-
"
|
|
109
|
-
"radio
|
|
110
|
-
"
|
|
111
|
-
"
|
|
112
|
-
"
|
|
113
|
-
"
|
|
114
|
-
"text-
|
|
115
|
-
"
|
|
116
|
-
"
|
|
117
|
-
"time-picker
|
|
118
|
-
"
|
|
119
|
-
"
|
|
120
|
-
"
|
|
105
|
+
"modal-header": README_md_40.default,
|
|
106
|
+
"multi-combobox": README_md_41.default,
|
|
107
|
+
"multi-select": README_md_42.default,
|
|
108
|
+
"pagination": README_md_43.default,
|
|
109
|
+
"paper": README_md_44.default,
|
|
110
|
+
"radio": README_md_45.default,
|
|
111
|
+
"radio-group": README_md_46.default,
|
|
112
|
+
"raster-image": README_md_47.default,
|
|
113
|
+
"select": README_md_48.default,
|
|
114
|
+
"tabs": README_md_49.default,
|
|
115
|
+
"text-input": README_md_50.default,
|
|
116
|
+
"text-link": README_md_51.default,
|
|
117
|
+
"textarea": README_md_52.default,
|
|
118
|
+
"time-picker": README_md_53.default,
|
|
119
|
+
"time-picker-input": README_md_54.default,
|
|
120
|
+
"toggle": README_md_55.default,
|
|
121
|
+
"tooltip": README_md_56.default,
|
|
122
|
+
"typography": README_md_57.default,
|
|
121
123
|
};
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { ChangeEvent, FocusEventHandler } from "react";
|
|
2
|
-
export interface
|
|
2
|
+
export interface ControlProps<ValueType, ElementType = HTMLInputElement, RestParams extends unknown[] = []> {
|
|
3
3
|
value: ValueType;
|
|
4
4
|
onChange: (value: ValueType, event?: ChangeEvent<ElementType>, ...args: RestParams) => void;
|
|
5
|
+
}
|
|
6
|
+
export interface FormControlProps<ValueType, ElementType = HTMLInputElement, RestParams extends unknown[] = []> extends ControlProps<ValueType, ElementType, RestParams> {
|
|
5
7
|
onBlur?: FocusEventHandler<ElementType>;
|
|
6
8
|
onFocus?: FocusEventHandler<ElementType>;
|
|
7
9
|
name: string;
|