allaw-ui 5.4.1 → 5.4.3
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/atoms/buttons/ActionButton.d.ts +1 -1
- package/dist/components/atoms/buttons/ActionButton.js +2 -2
- package/dist/components/molecules/proSwitch/ProSwitchModal.js +0 -2
- package/package.json +12 -19
- package/dist/components/atoms/buttons/ActionButton.stories.d.ts +0 -110
- package/dist/components/atoms/buttons/ActionButton.stories.js +0 -171
- package/dist/components/atoms/buttons/ActionCircleButton.stories.d.ts +0 -35
- package/dist/components/atoms/buttons/ActionCircleButton.stories.js +0 -54
- package/dist/components/atoms/buttons/AgendaSlot.stories.d.ts +0 -41
- package/dist/components/atoms/buttons/AgendaSlot.stories.js +0 -77
- package/dist/components/atoms/buttons/FavoriteToggle.stories.d.ts +0 -23
- package/dist/components/atoms/buttons/FavoriteToggle.stories.js +0 -61
- package/dist/components/atoms/buttons/FilterButton.stories.d.ts +0 -36
- package/dist/components/atoms/buttons/FilterButton.stories.js +0 -56
- package/dist/components/atoms/buttons/FilterButtonPrimary.stories.d.ts +0 -7
- package/dist/components/atoms/buttons/FilterButtonPrimary.stories.js +0 -26
- package/dist/components/atoms/buttons/GhostButton.stories.d.ts +0 -79
- package/dist/components/atoms/buttons/GhostButton.stories.js +0 -95
- package/dist/components/atoms/buttons/IconButton.stories.d.ts +0 -51
- package/dist/components/atoms/buttons/IconButton.stories.js +0 -100
- package/dist/components/atoms/buttons/InboxButton.stories.d.ts +0 -68
- package/dist/components/atoms/buttons/InboxButton.stories.js +0 -143
- package/dist/components/atoms/buttons/OAuthProviderButton.stories.d.ts +0 -67
- package/dist/components/atoms/buttons/OAuthProviderButton.stories.js +0 -168
- package/dist/components/atoms/buttons/PendingDocuments.stories.d.ts +0 -52
- package/dist/components/atoms/buttons/PendingDocuments.stories.js +0 -67
- package/dist/components/atoms/buttons/PrimaryButton.stories.d.ts +0 -121
- package/dist/components/atoms/buttons/PrimaryButton.stories.js +0 -187
- package/dist/components/atoms/buttons/SecondaryButton.stories.d.ts +0 -97
- package/dist/components/atoms/buttons/SecondaryButton.stories.js +0 -177
- package/dist/components/atoms/buttons/TabNavigation.stories.d.ts +0 -81
- package/dist/components/atoms/buttons/TabNavigation.stories.js +0 -178
- package/dist/components/atoms/buttons/TertiaryButton.stories.d.ts +0 -70
- package/dist/components/atoms/buttons/TertiaryButton.stories.js +0 -128
- package/dist/components/atoms/checkboxes/Checkbox.stories.d.ts +0 -77
- package/dist/components/atoms/checkboxes/Checkbox.stories.js +0 -123
- package/dist/components/atoms/datepickers/Datepicker.stories.d.ts +0 -167
- package/dist/components/atoms/datepickers/Datepicker.stories.js +0 -113
- package/dist/components/atoms/featureCard/featureCard.stories.d.ts +0 -21
- package/dist/components/atoms/featureCard/featureCard.stories.js +0 -101
- package/dist/components/atoms/filter/Filter.stories.d.ts +0 -9
- package/dist/components/atoms/filter/Filter.stories.js +0 -77
- package/dist/components/atoms/filters/SingleFilter.stories.d.ts +0 -10
- package/dist/components/atoms/filters/SingleFilter.stories.js +0 -84
- package/dist/components/atoms/inputs/Input.stories.d.ts +0 -85
- package/dist/components/atoms/inputs/Input.stories.js +0 -169
- package/dist/components/atoms/inputs/SearchBar.stories.d.ts +0 -142
- package/dist/components/atoms/inputs/SearchBar.stories.js +0 -197
- package/dist/components/atoms/inputs/TextArea.stories.d.ts +0 -95
- package/dist/components/atoms/inputs/TextArea.stories.js +0 -141
- package/dist/components/atoms/inputs/VerificationCodeInput.stories.d.ts +0 -81
- package/dist/components/atoms/inputs/VerificationCodeInput.stories.js +0 -89
- package/dist/components/atoms/progressBars/ProgressBar.stories.d.ts +0 -83
- package/dist/components/atoms/progressBars/ProgressBar.stories.js +0 -88
- package/dist/components/atoms/radios/RadioButton.stories.d.ts +0 -38
- package/dist/components/atoms/radios/RadioButton.stories.js +0 -87
- package/dist/components/atoms/radios/SelectCard.stories.d.ts +0 -92
- package/dist/components/atoms/radios/SelectCard.stories.js +0 -192
- package/dist/components/atoms/selects/ComboBox.stories.d.ts +0 -116
- package/dist/components/atoms/selects/ComboBox.stories.js +0 -136
- package/dist/components/atoms/selects/Select.stories.d.ts +0 -133
- package/dist/components/atoms/selects/Select.stories.js +0 -299
- package/dist/components/atoms/selects/SelectableListItem.stories.d.ts +0 -33
- package/dist/components/atoms/selects/SelectableListItem.stories.js +0 -53
- package/dist/components/atoms/tags/AppointementStatusTag.stories.d.ts +0 -17
- package/dist/components/atoms/tags/AppointementStatusTag.stories.js +0 -70
- package/dist/components/atoms/tags/FolderStatusTag.stories.d.ts +0 -28
- package/dist/components/atoms/tags/FolderStatusTag.stories.js +0 -51
- package/dist/components/atoms/tags/InlineTag.stories.d.ts +0 -109
- package/dist/components/atoms/tags/InlineTag.stories.js +0 -159
- package/dist/components/atoms/tags/OtherStatusTag.stories.d.ts +0 -99
- package/dist/components/atoms/tags/OtherStatusTag.stories.js +0 -160
- package/dist/components/atoms/typography/CardDate.stories.d.ts +0 -119
- package/dist/components/atoms/typography/CardDate.stories.js +0 -103
- package/dist/components/atoms/typography/Heading.stories.d.ts +0 -79
- package/dist/components/atoms/typography/Heading.stories.js +0 -150
- package/dist/components/atoms/typography/Link.stories.d.ts +0 -72
- package/dist/components/atoms/typography/Link.stories.js +0 -164
- package/dist/components/atoms/typography/Paragraph.stories.d.ts +0 -56
- package/dist/components/atoms/typography/Paragraph.stories.js +0 -97
- package/dist/components/atoms/typography/SmallTitle.stories.d.ts +0 -42
- package/dist/components/atoms/typography/SmallTitle.stories.js +0 -72
- package/dist/components/atoms/typography/Subtitle.stories.d.ts +0 -40
- package/dist/components/atoms/typography/Subtitle.stories.js +0 -60
- package/dist/components/atoms/typography/TinyInfo.stories.d.ts +0 -58
- package/dist/components/atoms/typography/TinyInfo.stories.js +0 -117
- package/dist/components/atoms/uiVariables/AnimatedBorder.stories.d.ts +0 -17
- package/dist/components/atoms/uiVariables/AnimatedBorder.stories.js +0 -20
- package/dist/components/atoms/uiVariables/BorderRadius.stories.d.ts +0 -18
- package/dist/components/atoms/uiVariables/BorderRadius.stories.js +0 -34
- package/dist/components/atoms/uiVariables/Shadows.stories.d.ts +0 -18
- package/dist/components/atoms/uiVariables/Shadows.stories.js +0 -34
- package/dist/components/atoms/uiVariables/Strokes.stories.d.ts +0 -18
- package/dist/components/atoms/uiVariables/Strokes.stories.js +0 -34
- package/dist/components/molecules/AiText/aiText.stories.d.ts +0 -43
- package/dist/components/molecules/AiText/aiText.stories.js +0 -216
- package/dist/components/molecules/DataStepper/Stepper.stories.d.ts +0 -8
- package/dist/components/molecules/DataStepper/Stepper.stories.js +0 -248
- package/dist/components/molecules/appointmentCard/AppointmentCard.stories.d.ts +0 -37
- package/dist/components/molecules/appointmentCard/AppointmentCard.stories.js +0 -106
- package/dist/components/molecules/appointmentSlot/AppointmentSlot.stories.d.ts +0 -95
- package/dist/components/molecules/appointmentSlot/AppointmentSlot.stories.js +0 -204
- package/dist/components/molecules/banner/Banner.stories.d.ts +0 -31
- package/dist/components/molecules/banner/Banner.stories.js +0 -123
- package/dist/components/molecules/billingCount/BillingCount.stories.d.ts +0 -22
- package/dist/components/molecules/billingCount/BillingCount.stories.js +0 -49
- package/dist/components/molecules/blogCard/BlogCard.stories.d.ts +0 -10
- package/dist/components/molecules/blogCard/BlogCard.stories.js +0 -33
- package/dist/components/molecules/blogFooter/BlogFooter.stories.d.ts +0 -60
- package/dist/components/molecules/blogFooter/BlogFooter.stories.js +0 -67
- package/dist/components/molecules/blogHeader/BlogHeader.stories.d.ts +0 -49
- package/dist/components/molecules/blogHeader/BlogHeader.stories.js +0 -63
- package/dist/components/molecules/blogText/BlogText.stories.d.ts +0 -31
- package/dist/components/molecules/blogText/BlogText.stories.js +0 -51
- package/dist/components/molecules/blogTextImageBlock/BlogTextImageBlock.stories.d.ts +0 -37
- package/dist/components/molecules/blogTextImageBlock/BlogTextImageBlock.stories.js +0 -58
- package/dist/components/molecules/brands/Brands.stories.d.ts +0 -8
- package/dist/components/molecules/brands/Brands.stories.js +0 -66
- package/dist/components/molecules/breadcrumb/Breadcrumb.stories.d.ts +0 -24
- package/dist/components/molecules/breadcrumb/Breadcrumb.stories.js +0 -54
- package/dist/components/molecules/caseCard/CaseCard.stories.d.ts +0 -114
- package/dist/components/molecules/caseCard/CaseCard.stories.js +0 -200
- package/dist/components/molecules/caseCardCompact/CaseCardCompact.stories.d.ts +0 -11
- package/dist/components/molecules/caseCardCompact/CaseCardCompact.stories.js +0 -59
- package/dist/components/molecules/caseLinkCard/CaseCardLink.stories.d.ts +0 -9
- package/dist/components/molecules/caseLinkCard/CaseCardLink.stories.js +0 -37
- package/dist/components/molecules/checkboxForm/CheckboxForm.stories.d.ts +0 -94
- package/dist/components/molecules/checkboxForm/CheckboxForm.stories.js +0 -157
- package/dist/components/molecules/checkboxForm/ColoredCheckbox.stories.d.ts +0 -108
- package/dist/components/molecules/checkboxForm/ColoredCheckbox.stories.js +0 -141
- package/dist/components/molecules/clientLinkCard/ClientLinkCard.stories.d.ts +0 -11
- package/dist/components/molecules/clientLinkCard/ClientLinkCard.stories.js +0 -59
- package/dist/components/molecules/contactCard/ContactCard.stories.d.ts +0 -69
- package/dist/components/molecules/contactCard/ContactCard.stories.js +0 -84
- package/dist/components/molecules/contactCard/ContactCardEdit.stories.d.ts +0 -88
- package/dist/components/molecules/contactCard/ContactCardEdit.stories.js +0 -106
- package/dist/components/molecules/contactCard/DetailedContactCard.stories.d.ts +0 -94
- package/dist/components/molecules/contactCard/DetailedContactCard.stories.js +0 -83
- package/dist/components/molecules/datepickerForm/DatepickerForm.stories.d.ts +0 -291
- package/dist/components/molecules/datepickerForm/DatepickerForm.stories.js +0 -185
- package/dist/components/molecules/documentCard/DocumentCard.stories.d.ts +0 -72
- package/dist/components/molecules/documentCard/DocumentCard.stories.js +0 -108
- package/dist/components/molecules/employeeCard/EmployeeCard.stories.d.ts +0 -74
- package/dist/components/molecules/employeeCard/EmployeeCard.stories.js +0 -65
- package/dist/components/molecules/emptyMessage/EmptyMessage.stories.d.ts +0 -75
- package/dist/components/molecules/emptyMessage/EmptyMessage.stories.js +0 -115
- package/dist/components/molecules/entityAdminCard/entityAdminCard.stories.d.ts +0 -10
- package/dist/components/molecules/entityAdminCard/entityAdminCard.stories.js +0 -50
- package/dist/components/molecules/entityCard/EntityCard.stories.d.ts +0 -22
- package/dist/components/molecules/entityCard/EntityCard.stories.js +0 -63
- package/dist/components/molecules/featureGrid/FeatureGrid.stories.d.ts +0 -7
- package/dist/components/molecules/featureGrid/FeatureGrid.stories.js +0 -97
- package/dist/components/molecules/fileCard/FileCard.stories.d.ts +0 -42
- package/dist/components/molecules/fileCard/FileCard.stories.js +0 -185
- package/dist/components/molecules/fileUploader/FileUploader.stories.d.ts +0 -120
- package/dist/components/molecules/fileUploader/FileUploader.stories.js +0 -269
- package/dist/components/molecules/flexContent/FlexContent.stories.d.ts +0 -9
- package/dist/components/molecules/flexContent/FlexContent.stories.js +0 -47
- package/dist/components/molecules/frameCTA/FrameCTA.stories.d.ts +0 -8
- package/dist/components/molecules/frameCTA/FrameCTA.stories.js +0 -58
- package/dist/components/molecules/heroSection/HeroSection.stories.d.ts +0 -46
- package/dist/components/molecules/heroSection/HeroSection.stories.js +0 -100
- package/dist/components/molecules/loadingBox/LoadingBox.stories.d.ts +0 -54
- package/dist/components/molecules/loadingBox/LoadingBox.stories.js +0 -128
- package/dist/components/molecules/modal/Modal.stories.d.ts +0 -128
- package/dist/components/molecules/modal/Modal.stories.js +0 -373
- package/dist/components/molecules/notification/Notification.stories.d.ts +0 -377
- package/dist/components/molecules/notification/Notification.stories.js +0 -205
- package/dist/components/molecules/pagination/Pagination.stories.d.ts +0 -44
- package/dist/components/molecules/pagination/Pagination.stories.js +0 -59
- package/dist/components/molecules/proCard/ProCard.stories.d.ts +0 -49
- package/dist/components/molecules/proCard/ProCard.stories.js +0 -69
- package/dist/components/molecules/proSwitch/AvatarBubble.stories.d.ts +0 -112
- package/dist/components/molecules/proSwitch/AvatarBubble.stories.js +0 -255
- package/dist/components/molecules/proSwitch/AvatarToggleGroup.stories.d.ts +0 -88
- package/dist/components/molecules/proSwitch/AvatarToggleGroup.stories.js +0 -328
- package/dist/components/molecules/proSwitch/ProSwitch.stories.d.ts +0 -9
- package/dist/components/molecules/proSwitch/ProSwitch.stories.js +0 -152
- package/dist/components/molecules/proSwitch/ProSwitchModal.stories.d.ts +0 -62
- package/dist/components/molecules/proSwitch/ProSwitchModal.stories.js +0 -269
- package/dist/components/molecules/questionAnswer/QuestionAnswer.stories.d.ts +0 -17
- package/dist/components/molecules/questionAnswer/QuestionAnswer.stories.js +0 -48
- package/dist/components/molecules/radioForm/RadioForm.stories.d.ts +0 -37
- package/dist/components/molecules/radioForm/RadioForm.stories.js +0 -75
- package/dist/components/molecules/rangeSlider/RangeSlider.stories.d.ts +0 -96
- package/dist/components/molecules/rangeSlider/RangeSlider.stories.js +0 -162
- package/dist/components/molecules/section/Section.stories.d.ts +0 -42
- package/dist/components/molecules/section/Section.stories.js +0 -162
- package/dist/components/molecules/segmentedControl/segmentedControl.stories.d.ts +0 -70
- package/dist/components/molecules/segmentedControl/segmentedControl.stories.js +0 -185
- package/dist/components/molecules/selectForm/SelectForm.stories.d.ts +0 -79
- package/dist/components/molecules/selectForm/SelectForm.stories.js +0 -113
- package/dist/components/molecules/stepper/Stepper.stories.d.ts +0 -62
- package/dist/components/molecules/stepper/Stepper.stories.js +0 -215
- package/dist/stories/Header.d.ts +0 -13
- package/dist/stories/Header.js +0 -20
- package/dist/stories/Header.stories.d.ts +0 -18
- package/dist/stories/Header.stories.js +0 -26
- package/dist/stories/Page.d.ts +0 -3
- package/dist/stories/Page.js +0 -37
- package/dist/stories/Page.stories.d.ts +0 -12
- package/dist/stories/Page.stories.js +0 -76
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
var __assign = (this && this.__assign) || function () {
|
|
2
|
-
__assign = Object.assign || function(t) {
|
|
3
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
4
|
-
s = arguments[i];
|
|
5
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
6
|
-
t[p] = s[p];
|
|
7
|
-
}
|
|
8
|
-
return t;
|
|
9
|
-
};
|
|
10
|
-
return __assign.apply(this, arguments);
|
|
11
|
-
};
|
|
12
|
-
import React from "react";
|
|
13
|
-
import LoadingBox from "./LoadingBox";
|
|
14
|
-
import "../../../styles/global.css";
|
|
15
|
-
export default {
|
|
16
|
-
title: "Components/Molecules/LoadingBox",
|
|
17
|
-
component: LoadingBox,
|
|
18
|
-
tags: ["autodocs"],
|
|
19
|
-
argTypes: {
|
|
20
|
-
boxHeight: {
|
|
21
|
-
control: {
|
|
22
|
-
type: "text",
|
|
23
|
-
},
|
|
24
|
-
description: "Hauteur de la boîte de chargement",
|
|
25
|
-
},
|
|
26
|
-
boxWidth: {
|
|
27
|
-
control: {
|
|
28
|
-
type: "text",
|
|
29
|
-
},
|
|
30
|
-
description: "Largeur de la boîte de chargement",
|
|
31
|
-
},
|
|
32
|
-
boxRadius: {
|
|
33
|
-
control: {
|
|
34
|
-
type: "text",
|
|
35
|
-
},
|
|
36
|
-
description: "Rayon de bordure de la boîte de chargement",
|
|
37
|
-
},
|
|
38
|
-
},
|
|
39
|
-
parameters: {
|
|
40
|
-
backgrounds: {
|
|
41
|
-
default: "light",
|
|
42
|
-
values: [
|
|
43
|
-
{ name: "light", value: "#ffffff" },
|
|
44
|
-
{ name: "grey", value: "#728ea7" },
|
|
45
|
-
{ name: "figma", value: "#404040" },
|
|
46
|
-
{ name: "dark", value: "#171e25" },
|
|
47
|
-
],
|
|
48
|
-
},
|
|
49
|
-
docs: {
|
|
50
|
-
description: {
|
|
51
|
-
component: "Composant d'animation de chargement sous forme de boîte avec un effet de pulsation.",
|
|
52
|
-
},
|
|
53
|
-
},
|
|
54
|
-
},
|
|
55
|
-
};
|
|
56
|
-
var Template = function (args) { return (React.createElement("div", { style: { padding: "20px", display: "flex", gap: "20px", flexWrap: "wrap" } },
|
|
57
|
-
React.createElement(LoadingBox, __assign({}, args)))); };
|
|
58
|
-
export var Default = Template.bind({});
|
|
59
|
-
Default.args = {
|
|
60
|
-
boxHeight: "100px",
|
|
61
|
-
boxWidth: "100px",
|
|
62
|
-
boxRadius: "8px",
|
|
63
|
-
};
|
|
64
|
-
Default.parameters = {
|
|
65
|
-
docs: {
|
|
66
|
-
description: {
|
|
67
|
-
story: "Version par défaut de la boîte de chargement avec des dimensions moyennes.",
|
|
68
|
-
},
|
|
69
|
-
},
|
|
70
|
-
};
|
|
71
|
-
export var Large = Template.bind({});
|
|
72
|
-
Large.args = {
|
|
73
|
-
boxHeight: "200px",
|
|
74
|
-
boxWidth: "200px",
|
|
75
|
-
boxRadius: "8px",
|
|
76
|
-
};
|
|
77
|
-
Large.parameters = {
|
|
78
|
-
docs: {
|
|
79
|
-
description: {
|
|
80
|
-
story: "Version large de la boîte de chargement, utile pour les conteneurs plus importants.",
|
|
81
|
-
},
|
|
82
|
-
},
|
|
83
|
-
};
|
|
84
|
-
export var Small = Template.bind({});
|
|
85
|
-
Small.args = {
|
|
86
|
-
boxHeight: "50px",
|
|
87
|
-
boxWidth: "50px",
|
|
88
|
-
boxRadius: "8px",
|
|
89
|
-
};
|
|
90
|
-
Small.parameters = {
|
|
91
|
-
docs: {
|
|
92
|
-
description: {
|
|
93
|
-
story: "Version compacte de la boîte de chargement, idéale pour les petits espaces.",
|
|
94
|
-
},
|
|
95
|
-
},
|
|
96
|
-
};
|
|
97
|
-
export var MultipleBoxes = Template.bind({});
|
|
98
|
-
MultipleBoxes.args = {
|
|
99
|
-
boxHeight: "100px",
|
|
100
|
-
boxWidth: "100px",
|
|
101
|
-
boxRadius: "8px",
|
|
102
|
-
};
|
|
103
|
-
MultipleBoxes.decorators = [
|
|
104
|
-
function (Story) { return (React.createElement("div", { style: { display: "flex", gap: "20px" } },
|
|
105
|
-
React.createElement(Story, null),
|
|
106
|
-
React.createElement(Story, null),
|
|
107
|
-
React.createElement(Story, null))); },
|
|
108
|
-
];
|
|
109
|
-
MultipleBoxes.parameters = {
|
|
110
|
-
docs: {
|
|
111
|
-
description: {
|
|
112
|
-
story: "Exemple d'utilisation de plusieurs boîtes de chargement côte à côte.",
|
|
113
|
-
},
|
|
114
|
-
},
|
|
115
|
-
};
|
|
116
|
-
export var CardSkeleton = Template.bind({});
|
|
117
|
-
CardSkeleton.args = {
|
|
118
|
-
boxHeight: "150px",
|
|
119
|
-
boxWidth: "450px",
|
|
120
|
-
boxRadius: "8px",
|
|
121
|
-
};
|
|
122
|
-
CardSkeleton.parameters = {
|
|
123
|
-
docs: {
|
|
124
|
-
description: {
|
|
125
|
-
story: "Exemple d'utilisation comme squelette de carte.",
|
|
126
|
-
},
|
|
127
|
-
},
|
|
128
|
-
};
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
declare namespace _default {
|
|
2
|
-
export let title: string;
|
|
3
|
-
export { Modal as component };
|
|
4
|
-
export let tags: string[];
|
|
5
|
-
export namespace argTypes {
|
|
6
|
-
export namespace children {
|
|
7
|
-
let control: boolean;
|
|
8
|
-
let description: string;
|
|
9
|
-
}
|
|
10
|
-
export namespace customContent {
|
|
11
|
-
export namespace control_1 {
|
|
12
|
-
let type: string;
|
|
13
|
-
}
|
|
14
|
-
export { control_1 as control };
|
|
15
|
-
let description_1: string;
|
|
16
|
-
export { description_1 as description };
|
|
17
|
-
}
|
|
18
|
-
export namespace renderContent {
|
|
19
|
-
let control_2: boolean;
|
|
20
|
-
export { control_2 as control };
|
|
21
|
-
let description_2: string;
|
|
22
|
-
export { description_2 as description };
|
|
23
|
-
}
|
|
24
|
-
export namespace maxWidthConfig {
|
|
25
|
-
export namespace control_3 {
|
|
26
|
-
let type_1: string;
|
|
27
|
-
export { type_1 as type };
|
|
28
|
-
}
|
|
29
|
-
export { control_3 as control };
|
|
30
|
-
let description_3: string;
|
|
31
|
-
export { description_3 as description };
|
|
32
|
-
}
|
|
33
|
-
export namespace verticalOffset {
|
|
34
|
-
export namespace control_4 {
|
|
35
|
-
let type_2: string;
|
|
36
|
-
export { type_2 as type };
|
|
37
|
-
}
|
|
38
|
-
export { control_4 as control };
|
|
39
|
-
let description_4: string;
|
|
40
|
-
export { description_4 as description };
|
|
41
|
-
}
|
|
42
|
-
export namespace horizontalOffset {
|
|
43
|
-
export namespace control_5 {
|
|
44
|
-
let type_3: string;
|
|
45
|
-
export { type_3 as type };
|
|
46
|
-
}
|
|
47
|
-
export { control_5 as control };
|
|
48
|
-
let description_5: string;
|
|
49
|
-
export { description_5 as description };
|
|
50
|
-
}
|
|
51
|
-
export namespace show {
|
|
52
|
-
let control_6: string;
|
|
53
|
-
export { control_6 as control };
|
|
54
|
-
let description_6: string;
|
|
55
|
-
export { description_6 as description };
|
|
56
|
-
}
|
|
57
|
-
export namespace title_1 {
|
|
58
|
-
let control_7: string;
|
|
59
|
-
export { control_7 as control };
|
|
60
|
-
let description_7: string;
|
|
61
|
-
export { description_7 as description };
|
|
62
|
-
}
|
|
63
|
-
export { title_1 as title };
|
|
64
|
-
export namespace description_8 {
|
|
65
|
-
let control_8: string;
|
|
66
|
-
export { control_8 as control };
|
|
67
|
-
let description_9: string;
|
|
68
|
-
export { description_9 as description };
|
|
69
|
-
}
|
|
70
|
-
export { description_8 as description };
|
|
71
|
-
export namespace confirmLabel {
|
|
72
|
-
let control_9: string;
|
|
73
|
-
export { control_9 as control };
|
|
74
|
-
let description_10: string;
|
|
75
|
-
export { description_10 as description };
|
|
76
|
-
}
|
|
77
|
-
export namespace cancelLabel {
|
|
78
|
-
let control_10: string;
|
|
79
|
-
export { control_10 as control };
|
|
80
|
-
let description_11: string;
|
|
81
|
-
export { description_11 as description };
|
|
82
|
-
}
|
|
83
|
-
export namespace imageConfig {
|
|
84
|
-
export namespace control_11 {
|
|
85
|
-
let type_4: string;
|
|
86
|
-
export { type_4 as type };
|
|
87
|
-
}
|
|
88
|
-
export { control_11 as control };
|
|
89
|
-
let description_12: string;
|
|
90
|
-
export { description_12 as description };
|
|
91
|
-
}
|
|
92
|
-
export namespace isDanger {
|
|
93
|
-
let control_12: string;
|
|
94
|
-
export { control_12 as control };
|
|
95
|
-
let description_13: string;
|
|
96
|
-
export { description_13 as description };
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
export namespace parameters {
|
|
100
|
-
namespace backgrounds {
|
|
101
|
-
let _default: string;
|
|
102
|
-
export { _default as default };
|
|
103
|
-
export let values: {
|
|
104
|
-
name: string;
|
|
105
|
-
value: string;
|
|
106
|
-
}[];
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
export default _default;
|
|
111
|
-
export const Default: any;
|
|
112
|
-
export const WithChildren: any;
|
|
113
|
-
export const WithCustomContent: any;
|
|
114
|
-
export const WithRenderContent: any;
|
|
115
|
-
export const DangerModal: any;
|
|
116
|
-
export const WithLargeOffset: any;
|
|
117
|
-
export const WithImageConfig: any;
|
|
118
|
-
export const WithoutCancel: any;
|
|
119
|
-
export const OffsetBothWays: any;
|
|
120
|
-
export const WithCustomMaxWidth: any;
|
|
121
|
-
export const WithResponsiveMaxWidth: any;
|
|
122
|
-
export const WithLargeContentAndMaxWidth: any;
|
|
123
|
-
export const WithCustomBreakpoints: any;
|
|
124
|
-
export const WithManyBreakpoints: any;
|
|
125
|
-
export const WithMixedUnitsBreakpoints: any;
|
|
126
|
-
export const WithScrollableContent: any;
|
|
127
|
-
export const WithScrollableContentMobile: any;
|
|
128
|
-
import Modal from "./Modal";
|
|
@@ -1,373 +0,0 @@
|
|
|
1
|
-
// src/components/molecules/modal/Modal.stories.jsx
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
import React, { useState } from "react";
|
|
14
|
-
import { action } from "@storybook/addon-actions";
|
|
15
|
-
import Modal from "./Modal";
|
|
16
|
-
import "../../../styles/global.css";
|
|
17
|
-
// Composant d'exemple pour démontrer les nouvelles fonctionnalités
|
|
18
|
-
var CustomFormComponent = function (_a) {
|
|
19
|
-
var title = _a.title, onSubmit = _a.onSubmit, _b = _a.initialValue, initialValue = _b === void 0 ? "" : _b;
|
|
20
|
-
var _c = useState(initialValue), value = _c[0], setValue = _c[1];
|
|
21
|
-
return (React.createElement("div", { style: { textAlign: "center" } },
|
|
22
|
-
React.createElement("h3", { style: { marginBottom: "1rem", color: "#1f2937" } }, title),
|
|
23
|
-
React.createElement("div", { style: { marginBottom: "1rem" } },
|
|
24
|
-
React.createElement("input", { type: "text", value: value, onChange: function (e) { return setValue(e.target.value); }, placeholder: "Saisissez votre texte...", style: {
|
|
25
|
-
width: "100%",
|
|
26
|
-
padding: "0.75rem",
|
|
27
|
-
border: "1px solid #d1d5db",
|
|
28
|
-
borderRadius: "0.375rem",
|
|
29
|
-
fontSize: "1rem",
|
|
30
|
-
} })),
|
|
31
|
-
React.createElement("button", { onClick: function () { return onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(value); }, disabled: !value.trim(), style: {
|
|
32
|
-
padding: "0.5rem 1rem",
|
|
33
|
-
backgroundColor: value.trim() ? "#3b82f6" : "#9ca3af",
|
|
34
|
-
color: "white",
|
|
35
|
-
border: "none",
|
|
36
|
-
borderRadius: "0.375rem",
|
|
37
|
-
cursor: value.trim() ? "pointer" : "not-allowed",
|
|
38
|
-
} }, "Valider la saisie")));
|
|
39
|
-
};
|
|
40
|
-
export default {
|
|
41
|
-
title: "Components/Molecules/Modal",
|
|
42
|
-
component: Modal,
|
|
43
|
-
tags: ["autodocs"],
|
|
44
|
-
argTypes: {
|
|
45
|
-
children: {
|
|
46
|
-
control: false,
|
|
47
|
-
description: "Contenu React à afficher dans la modal (ReactNode)",
|
|
48
|
-
},
|
|
49
|
-
customContent: {
|
|
50
|
-
control: { type: "object" },
|
|
51
|
-
description: "Composant personnalisé avec ses props { component, props }",
|
|
52
|
-
},
|
|
53
|
-
renderContent: {
|
|
54
|
-
control: false,
|
|
55
|
-
description: "Fonction de rendu (modalProps) => ReactNode",
|
|
56
|
-
},
|
|
57
|
-
maxWidthConfig: {
|
|
58
|
-
control: { type: "object" },
|
|
59
|
-
description: "Configuration responsive pour la largeur maximale. Deux approches disponibles :\n\n**Approche classique (breakpoints pr\u00E9d\u00E9finis) :**\n{ default: 800, mobile: 350, tablet: 600, desktop: 900 }\n- mobile: \u2264 767px\n- tablet: 768px - 1023px \n- desktop: \u2265 1024px\n\n**Approche personnalis\u00E9e (breakpoints custom) :**\n{ breakpoints: [{ breakpoint: 480, maxWidth: 320 }, { breakpoint: 1200, maxWidth: 900 }] }\n- D\u00E9finissez vos propres seuils de largeur d'\u00E9cran\n- Supporte les unit\u00E9s mixtes (px, vw, rem, etc.)",
|
|
60
|
-
},
|
|
61
|
-
verticalOffset: {
|
|
62
|
-
control: { type: "object" },
|
|
63
|
-
description: "Décalage vertical du modal (en px) pour éviter les barres de navigation",
|
|
64
|
-
},
|
|
65
|
-
horizontalOffset: {
|
|
66
|
-
control: { type: "object" },
|
|
67
|
-
description: "Décalage horizontal du modal (en px) pour éviter les éléments latéraux",
|
|
68
|
-
},
|
|
69
|
-
show: {
|
|
70
|
-
control: "boolean",
|
|
71
|
-
description: "Affiche ou masque la modal",
|
|
72
|
-
},
|
|
73
|
-
title: {
|
|
74
|
-
control: "text",
|
|
75
|
-
description: "Titre de la modal",
|
|
76
|
-
},
|
|
77
|
-
description: {
|
|
78
|
-
control: "text",
|
|
79
|
-
description: "Description de la modal",
|
|
80
|
-
},
|
|
81
|
-
confirmLabel: {
|
|
82
|
-
control: "text",
|
|
83
|
-
description: "Texte du bouton principal",
|
|
84
|
-
},
|
|
85
|
-
cancelLabel: {
|
|
86
|
-
control: "text",
|
|
87
|
-
description: "Texte du bouton secondaire (optionnel)",
|
|
88
|
-
},
|
|
89
|
-
imageConfig: {
|
|
90
|
-
control: { type: "object" },
|
|
91
|
-
description: "Configuration de l'image à afficher (url, alt, dimensions, styles, padding, className)",
|
|
92
|
-
},
|
|
93
|
-
isDanger: {
|
|
94
|
-
control: "boolean",
|
|
95
|
-
description: "Applique le style d'alerte au bouton principal",
|
|
96
|
-
},
|
|
97
|
-
},
|
|
98
|
-
parameters: {
|
|
99
|
-
backgrounds: {
|
|
100
|
-
default: "light",
|
|
101
|
-
values: [
|
|
102
|
-
{ name: "light", value: "#ffffff" },
|
|
103
|
-
{ name: "grey", value: "#728ea7" },
|
|
104
|
-
{ name: "figma", value: "#404040" },
|
|
105
|
-
{ name: "dark", value: "#171e25" },
|
|
106
|
-
],
|
|
107
|
-
},
|
|
108
|
-
},
|
|
109
|
-
};
|
|
110
|
-
var Template = function (args) {
|
|
111
|
-
var _a = useState(args.show), isVisible = _a[0], setIsVisible = _a[1];
|
|
112
|
-
return (React.createElement("div", null,
|
|
113
|
-
React.createElement("button", { onClick: function () { return setIsVisible(true); } }, "Ouvrir la modal"),
|
|
114
|
-
React.createElement(Modal, __assign({}, args, { show: isVisible, onConfirm: function () {
|
|
115
|
-
action("Confirm clicked")();
|
|
116
|
-
setIsVisible(false);
|
|
117
|
-
}, onCancel: function () {
|
|
118
|
-
action("Cancel clicked")();
|
|
119
|
-
setIsVisible(false);
|
|
120
|
-
} }))));
|
|
121
|
-
};
|
|
122
|
-
export var Default = Template.bind({});
|
|
123
|
-
Default.args = {
|
|
124
|
-
show: false,
|
|
125
|
-
title: "Confirmation",
|
|
126
|
-
description: "Êtes-vous sûr de vouloir effectuer cette action ?",
|
|
127
|
-
confirmLabel: "Confirmer",
|
|
128
|
-
cancelLabel: "Annuler",
|
|
129
|
-
isDanger: false,
|
|
130
|
-
verticalOffset: { top: 64, bottom: 0 },
|
|
131
|
-
horizontalOffset: { left: 0, right: 0 },
|
|
132
|
-
imageConfig: {
|
|
133
|
-
url: "https://cdn.iconscout.com/icon/free/png-512/free-checkmark-icon-download-in-svg-png-gif-file-formats--done-approved-check-tick-user-interface-pack-icons-1502470.png?f=webp&w=512",
|
|
134
|
-
alt: "Checkmark",
|
|
135
|
-
width: 64,
|
|
136
|
-
height: 64,
|
|
137
|
-
padding: "0px, 0px, 250px, 300px",
|
|
138
|
-
className: "",
|
|
139
|
-
style: {
|
|
140
|
-
backgroundColor: "#ffffff",
|
|
141
|
-
},
|
|
142
|
-
},
|
|
143
|
-
};
|
|
144
|
-
// Nouvelle story : Modal avec children
|
|
145
|
-
export var WithChildren = Template.bind({});
|
|
146
|
-
WithChildren.args = {
|
|
147
|
-
show: false,
|
|
148
|
-
confirmLabel: "Valider",
|
|
149
|
-
cancelLabel: "Annuler",
|
|
150
|
-
children: (React.createElement("div", { style: { textAlign: "center", padding: "2rem" } },
|
|
151
|
-
React.createElement("h2", { style: { color: "#1f2937", marginBottom: "1rem" } }, "Contenu personnalis\u00E9"),
|
|
152
|
-
React.createElement("p", { style: { color: "#6b7280", marginBottom: "1.5rem" } },
|
|
153
|
-
"Ce contenu est pass\u00E9 via la prop ",
|
|
154
|
-
React.createElement("code", null, "children")),
|
|
155
|
-
React.createElement("div", { style: {
|
|
156
|
-
padding: "1rem",
|
|
157
|
-
backgroundColor: "#f3f4f6",
|
|
158
|
-
borderRadius: "0.5rem",
|
|
159
|
-
border: "2px dashed #9ca3af",
|
|
160
|
-
} },
|
|
161
|
-
React.createElement("span", { style: { fontSize: "2rem" } }, "\uD83C\uDF89"),
|
|
162
|
-
React.createElement("p", { style: { margin: "0.5rem 0 0 0", fontWeight: "bold" } }, "Succ\u00E8s !")))),
|
|
163
|
-
};
|
|
164
|
-
// Nouvelle story : Modal avec customContent
|
|
165
|
-
export var WithCustomContent = Template.bind({});
|
|
166
|
-
WithCustomContent.args = {
|
|
167
|
-
show: false,
|
|
168
|
-
confirmLabel: "Valider",
|
|
169
|
-
cancelLabel: "Annuler",
|
|
170
|
-
customContent: {
|
|
171
|
-
component: CustomFormComponent,
|
|
172
|
-
props: {
|
|
173
|
-
title: "Formulaire personnalisé",
|
|
174
|
-
initialValue: "Valeur initiale",
|
|
175
|
-
onSubmit: function (value) { return action("Form submitted")(value); },
|
|
176
|
-
},
|
|
177
|
-
},
|
|
178
|
-
};
|
|
179
|
-
// Nouvelle story : Modal avec renderContent
|
|
180
|
-
export var WithRenderContent = Template.bind({});
|
|
181
|
-
WithRenderContent.args = {
|
|
182
|
-
show: false,
|
|
183
|
-
confirmLabel: "Fermer",
|
|
184
|
-
cancelLabel: undefined,
|
|
185
|
-
renderContent: function (_a) {
|
|
186
|
-
var isOpen = _a.isOpen, onClose = _a.onClose;
|
|
187
|
-
return (React.createElement("div", { style: { textAlign: "center" } },
|
|
188
|
-
React.createElement("h2", { style: { color: "#dc2626", marginBottom: "1rem" } }, "\u26A0\uFE0F Attention"),
|
|
189
|
-
React.createElement("p", { style: { marginBottom: "1rem" } },
|
|
190
|
-
"Modal \u00E9tat : ",
|
|
191
|
-
isOpen ? "Ouverte" : "Fermée"),
|
|
192
|
-
React.createElement("div", { style: {
|
|
193
|
-
padding: "1rem",
|
|
194
|
-
backgroundColor: "#fef2f2",
|
|
195
|
-
border: "1px solid #fecaca",
|
|
196
|
-
borderRadius: "0.5rem",
|
|
197
|
-
marginBottom: "1rem",
|
|
198
|
-
} },
|
|
199
|
-
React.createElement("p", { style: { margin: 0, fontSize: "0.875rem", color: "#991b1b" } }, "Cette action est irr\u00E9versible et supprimera d\u00E9finitivement vos donn\u00E9es.")),
|
|
200
|
-
React.createElement("button", { onClick: function () {
|
|
201
|
-
action("Internal action")();
|
|
202
|
-
onClose();
|
|
203
|
-
}, style: {
|
|
204
|
-
padding: "0.5rem 1rem",
|
|
205
|
-
backgroundColor: "#dc2626",
|
|
206
|
-
color: "white",
|
|
207
|
-
border: "none",
|
|
208
|
-
borderRadius: "0.375rem",
|
|
209
|
-
cursor: "pointer",
|
|
210
|
-
} }, "Action dangereuse")));
|
|
211
|
-
},
|
|
212
|
-
};
|
|
213
|
-
export var DangerModal = Template.bind({});
|
|
214
|
-
DangerModal.args = __assign(__assign({}, Default.args), { title: "Attention", description: "Cette action est irréversible. Voulez-vous continuer ?", confirmLabel: "Supprimer", isDanger: true });
|
|
215
|
-
export var WithLargeOffset = Template.bind({});
|
|
216
|
-
WithLargeOffset.args = __assign(__assign({}, Default.args), { verticalOffset: { top: 120, bottom: 80 } });
|
|
217
|
-
export var WithImageConfig = Template.bind({});
|
|
218
|
-
WithImageConfig.args = __assign(__assign({}, Default.args), { title: "Image personnalisée", description: "Cette modal affiche une image avec dimensions et styles personnalisés.", imageConfig: {
|
|
219
|
-
url: Default.args.imageConfig.url,
|
|
220
|
-
alt: "Custom checkmark",
|
|
221
|
-
width: 200,
|
|
222
|
-
height: 200,
|
|
223
|
-
padding: "24px",
|
|
224
|
-
className: "border-circle",
|
|
225
|
-
style: {
|
|
226
|
-
border: "4px dashed #007bff",
|
|
227
|
-
borderRadius: "50%",
|
|
228
|
-
backgroundColor: "#e9f5ff",
|
|
229
|
-
},
|
|
230
|
-
}, confirmLabel: "Valider", cancelLabel: "Annuler" });
|
|
231
|
-
export var WithoutCancel = Template.bind({});
|
|
232
|
-
WithoutCancel.args = __assign(__assign({}, Default.args), { title: "Information", description: "Cette action a été effectuée avec succès.", confirmLabel: "OK", cancelLabel: undefined });
|
|
233
|
-
export var OffsetBothWays = Template.bind({});
|
|
234
|
-
OffsetBothWays.args = __assign(__assign({}, Default.args), { title: "Modal avec décalages", description: "Décalages verticaux et horizontaux appliqués.", verticalOffset: { top: 100, bottom: 50 }, horizontalOffset: { left: 80, right: 80 } });
|
|
235
|
-
// Nouvelles stories pour maxWidthConfig
|
|
236
|
-
export var WithCustomMaxWidth = Template.bind({});
|
|
237
|
-
WithCustomMaxWidth.args = __assign(__assign({}, Default.args), { title: "Modal avec largeur personnalisée", description: "Cette modal a une largeur maximale de 800px sur tous les écrans.", maxWidthConfig: {
|
|
238
|
-
default: 800,
|
|
239
|
-
} });
|
|
240
|
-
export var WithResponsiveMaxWidth = Template.bind({});
|
|
241
|
-
WithResponsiveMaxWidth.args = __assign(__assign({}, Default.args), { title: "Modal responsive", description: "Cette modal adapte sa largeur selon la taille d'écran : 350px sur mobile, 600px sur tablette, 900px sur desktop.", maxWidthConfig: {
|
|
242
|
-
mobile: 350,
|
|
243
|
-
tablet: 600,
|
|
244
|
-
desktop: 900,
|
|
245
|
-
} });
|
|
246
|
-
export var WithLargeContentAndMaxWidth = Template.bind({});
|
|
247
|
-
WithLargeContentAndMaxWidth.args = {
|
|
248
|
-
show: false,
|
|
249
|
-
title: "Modal large avec contenu personnalisé",
|
|
250
|
-
description: "Cette modal utilise une largeur plus grande pour accommoder plus de contenu.",
|
|
251
|
-
confirmLabel: "Valider",
|
|
252
|
-
cancelLabel: "Annuler",
|
|
253
|
-
maxWidthConfig: {
|
|
254
|
-
default: 700,
|
|
255
|
-
mobile: 350,
|
|
256
|
-
tablet: 650,
|
|
257
|
-
desktop: 800,
|
|
258
|
-
},
|
|
259
|
-
children: (React.createElement("div", { style: { textAlign: "center", padding: "2rem" } },
|
|
260
|
-
React.createElement("h2", { style: { color: "#1f2937", marginBottom: "1rem" } }, "Contenu \u00E9tendu n\u00E9cessitant plus d'espace"),
|
|
261
|
-
React.createElement("div", { style: {
|
|
262
|
-
display: "grid",
|
|
263
|
-
gridTemplateColumns: "repeat(auto-fit, minmax(200px, 1fr))",
|
|
264
|
-
gap: "1rem",
|
|
265
|
-
marginBottom: "1.5rem",
|
|
266
|
-
} },
|
|
267
|
-
React.createElement("div", { style: {
|
|
268
|
-
padding: "1rem",
|
|
269
|
-
backgroundColor: "#f3f4f6",
|
|
270
|
-
borderRadius: "0.5rem",
|
|
271
|
-
} },
|
|
272
|
-
React.createElement("h4", null, "Section 1"),
|
|
273
|
-
React.createElement("p", null, "Contenu de la premi\u00E8re section avec plus de texte pour tester l'espace disponible.")),
|
|
274
|
-
React.createElement("div", { style: {
|
|
275
|
-
padding: "1rem",
|
|
276
|
-
backgroundColor: "#f3f4f6",
|
|
277
|
-
borderRadius: "0.5rem",
|
|
278
|
-
} },
|
|
279
|
-
React.createElement("h4", null, "Section 2"),
|
|
280
|
-
React.createElement("p", null, "Contenu de la deuxi\u00E8me section avec \u00E9galement plus de texte."))),
|
|
281
|
-
React.createElement("p", { style: { color: "#6b7280" } }, "Cette modal d\u00E9montre l'utilisation de largeurs personnalis\u00E9es pour accommoder du contenu plus large."))),
|
|
282
|
-
};
|
|
283
|
-
// Nouvelles stories pour breakpoints personnalisés
|
|
284
|
-
export var WithCustomBreakpoints = Template.bind({});
|
|
285
|
-
WithCustomBreakpoints.args = __assign(__assign({}, Default.args), { title: "Modal avec breakpoints personnalisés", description: "Cette modal utilise des breakpoints sur mesure : 480px, 900px, et 1400px.", maxWidthConfig: {
|
|
286
|
-
breakpoints: [
|
|
287
|
-
{ breakpoint: 480, maxWidth: 320 },
|
|
288
|
-
{ breakpoint: 900, maxWidth: 700 },
|
|
289
|
-
{ breakpoint: 1400, maxWidth: 1000 },
|
|
290
|
-
],
|
|
291
|
-
} });
|
|
292
|
-
export var WithManyBreakpoints = Template.bind({});
|
|
293
|
-
WithManyBreakpoints.args = __assign(__assign({}, Default.args), { title: "Modal avec multiples breakpoints", description: "Exemple avec 5 breakpoints personnalisés pour un contrôle précis.", maxWidthConfig: {
|
|
294
|
-
breakpoints: [
|
|
295
|
-
{ breakpoint: 360, maxWidth: 300 },
|
|
296
|
-
{ breakpoint: 640, maxWidth: 500 },
|
|
297
|
-
{ breakpoint: 768, maxWidth: 600 },
|
|
298
|
-
{ breakpoint: 1024, maxWidth: 800 },
|
|
299
|
-
{ breakpoint: 1440, maxWidth: 1200 },
|
|
300
|
-
],
|
|
301
|
-
} });
|
|
302
|
-
export var WithMixedUnitsBreakpoints = Template.bind({});
|
|
303
|
-
WithMixedUnitsBreakpoints.args = __assign(__assign({}, Default.args), { title: "Modal avec unités mixtes", description: "Démonstration avec différentes unités : px, vw, rem.", maxWidthConfig: {
|
|
304
|
-
breakpoints: [
|
|
305
|
-
{ breakpoint: 480, maxWidth: "90vw" },
|
|
306
|
-
{ breakpoint: 768, maxWidth: "40rem" },
|
|
307
|
-
{ breakpoint: 1200, maxWidth: 900 },
|
|
308
|
-
],
|
|
309
|
-
} });
|
|
310
|
-
// Nouvelle story pour tester le scroll avec header/footer fixes
|
|
311
|
-
export var WithScrollableContent = Template.bind({});
|
|
312
|
-
WithScrollableContent.args = {
|
|
313
|
-
show: false,
|
|
314
|
-
title: "Modal avec contenu scrollable",
|
|
315
|
-
description: "Cette modal contient beaucoup de contenu pour tester le comportement de scroll. Le header (titre + bouton fermer) et le footer (boutons) doivent rester fixes pendant que seul le corps de la modal défile.",
|
|
316
|
-
confirmLabel: "Valider",
|
|
317
|
-
cancelLabel: "Annuler",
|
|
318
|
-
children: (React.createElement("div", { style: { textAlign: "left" } },
|
|
319
|
-
React.createElement("h3", { style: { marginBottom: "1rem", color: "#1f2937" } }, "Contenu tr\u00E8s long pour tester le scroll"),
|
|
320
|
-
Array.from({ length: 20 }, function (_, i) { return (React.createElement("div", { key: i, style: {
|
|
321
|
-
marginBottom: "1.5rem",
|
|
322
|
-
padding: "1rem",
|
|
323
|
-
backgroundColor: i % 2 === 0 ? "#f9fafb" : "#f3f4f6",
|
|
324
|
-
borderRadius: "0.5rem",
|
|
325
|
-
border: "1px solid #e5e7eb",
|
|
326
|
-
} },
|
|
327
|
-
React.createElement("h4", { style: { margin: "0 0 0.5rem 0", color: "#374151" } },
|
|
328
|
-
"Section ",
|
|
329
|
-
i + 1),
|
|
330
|
-
React.createElement("p", { style: { margin: 0, color: "#6b7280", lineHeight: "1.6" } }, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur."),
|
|
331
|
-
i === 5 && (React.createElement("div", { style: {
|
|
332
|
-
marginTop: "1rem",
|
|
333
|
-
padding: "1rem",
|
|
334
|
-
backgroundColor: "#dbeafe",
|
|
335
|
-
borderRadius: "0.375rem",
|
|
336
|
-
border: "1px solid #93c5fd",
|
|
337
|
-
} },
|
|
338
|
-
React.createElement("p", { style: { margin: 0, fontSize: "0.875rem", color: "#1e40af" } },
|
|
339
|
-
"\uD83D\uDCA1 ",
|
|
340
|
-
React.createElement("strong", null, "Note importante :"),
|
|
341
|
-
" Pendant que vous scrollez ce contenu, v\u00E9rifiez que le titre en haut et les boutons en bas restent toujours visibles et fixes."))),
|
|
342
|
-
i === 10 && (React.createElement("div", { style: {
|
|
343
|
-
marginTop: "1rem",
|
|
344
|
-
padding: "1rem",
|
|
345
|
-
backgroundColor: "#ecfdf5",
|
|
346
|
-
borderRadius: "0.375rem",
|
|
347
|
-
border: "1px solid #86efac",
|
|
348
|
-
} },
|
|
349
|
-
React.createElement("p", { style: { margin: 0, fontSize: "0.875rem", color: "#047857" } },
|
|
350
|
-
"\u2705 ",
|
|
351
|
-
React.createElement("strong", null, "Test r\u00E9ussi :"),
|
|
352
|
-
" Si vous voyez ce message au milieu du scroll, l'architecture header/body/footer fonctionne correctement !"))))); }),
|
|
353
|
-
React.createElement("div", { style: {
|
|
354
|
-
padding: "1.5rem",
|
|
355
|
-
backgroundColor: "#fef2f2",
|
|
356
|
-
borderRadius: "0.5rem",
|
|
357
|
-
border: "2px solid #fecaca",
|
|
358
|
-
textAlign: "center",
|
|
359
|
-
} },
|
|
360
|
-
React.createElement("h4", { style: { margin: "0 0 1rem 0", color: "#dc2626" } }, "\uD83C\uDFAF Fin du contenu scrollable"),
|
|
361
|
-
React.createElement("p", { style: { margin: 0, color: "#991b1b", fontSize: "0.875rem" } }, "Vous avez atteint la fin du contenu. Les boutons Annuler/Valider doivent toujours \u00EAtre visibles en bas de la modal.")))),
|
|
362
|
-
};
|
|
363
|
-
// Story pour tester sur viewport mobile restreint
|
|
364
|
-
export var WithScrollableContentMobile = Template.bind({});
|
|
365
|
-
WithScrollableContentMobile.args = __assign(__assign({}, WithScrollableContent.args), { title: "Test mobile - Scroll fixe", description: "Version optimisée pour tester le comportement sur écrans mobiles avec hauteur réduite." });
|
|
366
|
-
WithScrollableContentMobile.parameters = {
|
|
367
|
-
viewport: {
|
|
368
|
-
defaultViewport: "mobile1",
|
|
369
|
-
},
|
|
370
|
-
backgrounds: {
|
|
371
|
-
default: "light",
|
|
372
|
-
},
|
|
373
|
-
};
|