@cnamts/synapse 1.1.0 → 1.1.1
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/{AutocompleteFilter-DXd4szWO.js → AutocompleteFilter-CGF33skz.js} +1 -1
- package/dist/{DateFilter-BD59Kgwf.js → DateFilter-D7-MsKtx.js} +1 -1
- package/dist/{NumberFilter-BSMZE7uw.js → NumberFilter-bjQPPfsj.js} +1 -1
- package/dist/{PeriodFilter-keUdSSk0.js → PeriodFilter-B3wJpK8-.js} +1 -1
- package/dist/{SelectFilter-Dhvvwazl.js → SelectFilter-BN6DbKAV.js} +1 -1
- package/dist/{TextFilter-CU8FpXz0.js → TextFilter-BffP0J2f.js} +1 -1
- package/dist/{apLightTheme2026-DbS7BPUf.js → apLightTheme2026-C4ygwMHC.js} +11 -11
- package/dist/components/Amelipro/AmeliproAutoCompleteField/AmeliproAutoCompleteField.d.ts +6 -6
- package/dist/components/Amelipro/AmeliproSelect/AmeliproSelect.d.ts +6 -6
- package/dist/components/Amelipro/AmeliproTabs/AmeliproTabs.d.ts +6 -6
- package/dist/components/Captcha/Captcha.d.ts +27 -16
- package/dist/components/Captcha/CaptchaForm.d.ts +29 -3
- package/dist/components/Captcha/types.d.ts +14 -0
- package/dist/components/Captcha/useCaptchaValidation.d.ts +37 -0
- package/dist/components/Customs/Selects/SelectBtnField/SelectBtnField.d.ts +33 -13
- package/dist/components/Customs/Selects/SelectBtnField/composables/useSelectBtnFieldValidation.d.ts +23 -0
- package/dist/components/Customs/Selects/SyAutocomplete/composables/useSyAutocompleteValidation.d.ts +2 -2
- package/dist/components/Customs/Selects/SySelect/composables/useSySelectValidation.d.ts +2 -2
- package/dist/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.d.ts +17 -48
- package/dist/components/Customs/SyCheckBoxGroup/composables/useSyCheckBoxGroupValidation.d.ts +29 -0
- package/dist/components/Customs/SyCheckBoxGroup/types.d.ts +46 -0
- package/dist/components/Customs/SyCheckbox/SyCheckbox.d.ts +16 -51
- package/dist/components/Customs/SyCheckbox/composables/useSyCheckboxValidation.d.ts +27 -0
- package/dist/components/Customs/SyCheckbox/types.d.ts +49 -0
- package/dist/components/Customs/SyTextField/FieldState.d.ts +5 -0
- package/dist/components/Customs/SyTextField/useSyTextFieldValidation.d.ts +3 -3
- package/dist/components/DialogBox/DialogBox.d.ts +2 -0
- package/dist/components/DialogBox/locales.d.ts +1 -0
- package/dist/components/FilterSideBar/FilterSideBar.d.ts +4 -0
- package/dist/components/LunarCalendar/LunarCalendar.d.ts +43 -14
- package/dist/components/LunarCalendar/types.d.ts +35 -0
- package/dist/components/LunarCalendar/useLunarCalendarValidation.d.ts +11 -12
- package/dist/components/MonthPicker/MonthPicker.d.ts +72 -1747
- package/dist/components/MonthPicker/MonthPickerText/MonthPickerInput.d.ts +21 -1733
- package/dist/components/MonthPicker/MonthPickerText/useTextField.d.ts +5 -0
- package/dist/components/MonthPicker/locales.d.ts +1 -0
- package/dist/components/MonthPicker/types.d.ts +11 -0
- package/dist/components/MonthPicker/useMonthPickerValidation.d.ts +37 -24
- package/dist/components/NirField/NirField.d.ts +6 -4
- package/dist/components/NirField/useNirValidation.d.ts +7 -5
- package/dist/components/PageContainer/PageContainer.d.ts +8 -0
- package/dist/components/PasswordField/PasswordField.d.ts +2 -2
- package/dist/components/PasswordField/usePasswordFieldValidation.d.ts +2 -2
- package/dist/components/PhoneField/PhoneField.d.ts +960 -1938
- package/dist/components/PhoneField/indicatifs.d.ts +715 -8
- package/dist/components/PhoneField/locales.d.ts +7 -0
- package/dist/components/PhoneField/types.d.ts +29 -0
- package/dist/components/PhoneField/usePhoneFieldValidation.d.ts +45 -0
- package/dist/components/PhoneField/usePhoneIndicatifs.d.ts +947 -0
- package/dist/components/SyTextArea/composables/useSyTextAreaValidation.d.ts +2 -2
- package/dist/composables/unifyValidation/documentationValidationProps.d.ts +1 -1
- package/dist/composables/unifyValidation/useValidation.d.ts +4 -5
- package/dist/design-system-v3.js +2 -2
- package/dist/designTokens/tokens/amelipro/apLightTheme.d.ts +10 -10
- package/dist/designTokens/tokens/baseTokens.d.ts +18 -18
- package/dist/designTokens/tokens/cnam/cnamLightTheme.d.ts +10 -10
- package/dist/designTokens/tokens/pa/paLightTheme.d.ts +10 -10
- package/dist/designTokens/tokens/semanticTokens.d.ts +14 -14
- package/dist/{main-D8ryUoS5.js → main-C4wAktOs.js} +13718 -12991
- package/dist/synapse.css +1 -1
- package/dist/vuetifyConfig.js +1 -1
- package/package.json +7 -7
- package/src/assets/compat/_legacy-tokens.scss +91 -0
- package/src/assets/overrides/_utilities.scss +23 -0
- package/src/components/Accordion/Accordion.stories.ts +121 -1
- package/src/components/BackBtn/BackBtn.mdx +1 -1
- package/src/components/BackToTopBtn/BackToTopBtn.mdx +0 -1
- package/src/components/Captcha/Captcha.stories.ts +134 -31
- package/src/components/Captcha/Captcha.vue +95 -28
- package/src/components/Captcha/CaptchaForm.vue +51 -22
- package/src/components/Captcha/tests/Captcha.focus.spec.ts +214 -0
- package/src/components/Captcha/tests/Captcha.spec.ts +233 -24
- package/src/components/Captcha/tests/CaptchaForm.spec.ts +82 -0
- package/src/components/Captcha/tests/__snapshots__/Captcha.spec.ts.snap +16 -42
- package/src/components/Captcha/types.ts +15 -0
- package/src/components/Captcha/useCaptchaValidation.ts +87 -0
- package/src/components/Captcha/validation/validation.stories.ts +1194 -0
- package/src/components/ChipList/ChipList.mdx +0 -1
- package/src/components/CollapsibleList/CollapsibleList.mdx +0 -1
- package/src/components/CookieBanner/CookieBanner.mdx +0 -1
- package/src/components/CopyBtn/CopyBtn.mdx +0 -1
- package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.stories.ts +123 -439
- package/src/components/Customs/Selects/SelectBtnField/SelectBtnField.vue +147 -41
- package/src/components/Customs/Selects/SelectBtnField/Validation/Validation.stories.ts +600 -0
- package/src/components/Customs/Selects/SelectBtnField/composables/useSelectBtnFieldValidation.ts +87 -0
- package/src/components/Customs/Selects/SelectBtnField/tests/SelectBtnField.spec.ts +402 -33
- package/src/components/Customs/Selects/SelectBtnField/tests/__snapshots__/SelectBtnField.spec.ts.snap +52 -38
- package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.stories.ts +342 -162
- package/src/components/Customs/SyCheckBoxGroup/SyCheckBoxGroup.vue +77 -129
- package/src/components/Customs/SyCheckBoxGroup/Validation/Validation.stories.ts +1008 -0
- package/src/components/Customs/SyCheckBoxGroup/composables/useSyCheckBoxGroupValidation.ts +107 -0
- package/src/components/Customs/SyCheckBoxGroup/tests/SyCheckBoxGroup.spec.ts +180 -7
- package/src/components/Customs/SyCheckBoxGroup/types.ts +49 -0
- package/src/components/Customs/SyCheckbox/SyCheckbox.stories.ts +41 -161
- package/src/components/Customs/SyCheckbox/SyCheckbox.vue +71 -148
- package/src/components/Customs/SyCheckbox/Validation/Validation.stories.ts +654 -0
- package/src/components/Customs/SyCheckbox/composables/useSyCheckboxValidation.ts +105 -0
- package/src/components/Customs/SyCheckbox/tests/SyCheckbox.spec.ts +106 -0
- package/src/components/Customs/SyCheckbox/tests/useSyCheckboxValidation.spec.ts +98 -0
- package/src/components/Customs/SyCheckbox/types.ts +51 -0
- package/src/components/Customs/SyTextField/FieldState.vue +50 -0
- package/src/components/Customs/SyTextField/SyTextField.vue +12 -9
- package/src/components/Customs/SyTextField/useSyTextFieldValidation.ts +2 -11
- package/src/components/DataList/DataList.mdx +0 -1
- package/src/components/DataListGroup/DataListGroup.mdx +0 -1
- package/src/components/DiacriticPicker/DiacriticPicker.mdx +0 -1
- package/src/components/DialogBox/DialogBox.mdx +0 -1
- package/src/components/DialogBox/DialogBox.stories.ts +399 -4
- package/src/components/DialogBox/DialogBox.vue +20 -0
- package/src/components/DialogBox/locales.ts +1 -0
- package/src/components/DialogBox/tests/DialogBox.spec.ts +73 -0
- package/src/components/DialogBox/tests/DialogBox.visual.cy.ts +24 -0
- package/src/components/ErrorPage/ErrorPage.mdx +1 -1
- package/src/components/ExternalLinks/ExternalLinks.mdx +0 -1
- package/src/components/FileList/FileList.mdx +0 -1
- package/src/components/FilterInline/FilterInline.mdx +0 -1
- package/src/components/FilterSideBar/FilterSideBar.mdx +8 -1
- package/src/components/FilterSideBar/FilterSideBar.stories.ts +133 -1
- package/src/components/FilterSideBar/FilterSideBar.vue +19 -2
- package/src/components/FilterSideBar/tests/FilterSideBar.spec.ts +55 -0
- package/src/components/FooterBar/FooterBar.mdx +0 -1
- package/src/components/FranceConnectBtn/FranceConnectBtn.mdx +0 -1
- package/src/components/HeaderBar/HeaderBar.mdx +0 -1
- package/src/components/HeaderLoading/HeaderLoading.mdx +0 -1
- package/src/components/LangBtn/LangBtn.mdx +0 -1
- package/src/components/Logo/Logo.mdx +1 -1
- package/src/components/LunarCalendar/LunarCalendar.mdx +6 -9
- package/src/components/LunarCalendar/LunarCalendar.stories.ts +243 -46
- package/src/components/LunarCalendar/LunarCalendar.vue +61 -26
- package/src/components/LunarCalendar/Validation/Validation.stories.ts +717 -0
- package/src/components/LunarCalendar/tests/LunarCalendar.a11y.spec.ts +1 -1
- package/src/components/LunarCalendar/tests/LunarCalendar.spec.ts +197 -6
- package/src/components/LunarCalendar/tests/useLunarCalendarValidation.spec.ts +287 -0
- package/src/components/LunarCalendar/types.ts +39 -0
- package/src/components/LunarCalendar/useLunarCalendarValidation.ts +115 -39
- package/src/components/MonthPicker/MonthPicker.stories.ts +38 -281
- package/src/components/MonthPicker/MonthPicker.vue +66 -17
- package/src/components/MonthPicker/MonthPickerText/MonthPickerInput.vue +44 -20
- package/src/components/MonthPicker/MonthPickerText/useTextField.ts +5 -0
- package/src/components/MonthPicker/Validation/Validation.stories.ts +1117 -0
- package/src/components/MonthPicker/locales.ts +1 -0
- package/src/components/MonthPicker/tests/MonthPicker.spec.ts +353 -2
- package/src/components/MonthPicker/tests/__snapshots__/MonthPicker.spec.ts.snap +12 -8
- package/src/components/MonthPicker/types.ts +16 -0
- package/src/components/MonthPicker/useMonthPickerValidation.ts +64 -27
- package/src/components/NirField/NirField.mdx +120 -66
- package/src/components/NirField/NirField.stories.ts +216 -0
- package/src/components/NirField/useNirValidation.ts +16 -17
- package/src/components/NotFoundPage/tests/__snapshots__/NotFoundPage.spec.ts.snap +263 -245
- package/src/components/NotificationBar/NotificationBar.mdx +0 -1
- package/src/components/PageContainer/PageContainer.mdx +0 -1
- package/src/components/PageContainer/PageContainer.stories.ts +170 -2
- package/src/components/PageContainer/PageContainer.vue +63 -8
- package/src/components/PageContainer/tests/__snapshots__/PageContainer.spec.ts.snap +19 -11
- package/src/components/PaginatedTable/PaginatedTable.mdx +0 -1
- package/src/components/PeriodField/PeriodField.mdx +0 -1
- package/src/components/PhoneField/PhoneField.mdx +2 -3
- package/src/components/PhoneField/PhoneField.stories.ts +227 -410
- package/src/components/PhoneField/PhoneField.vue +204 -438
- package/src/components/PhoneField/indicatifs.ts +1 -1
- package/src/components/PhoneField/locales.ts +7 -0
- package/src/components/PhoneField/tests/PhoneField.a11y.spec.ts +0 -1
- package/src/components/PhoneField/tests/PhoneField.spec.ts +517 -220
- package/src/components/PhoneField/types.ts +30 -0
- package/src/components/PhoneField/usePhoneFieldValidation.ts +119 -0
- package/src/components/PhoneField/usePhoneIndicatifs.ts +89 -0
- package/src/components/PhoneField/validation/validation.stories.ts +717 -0
- package/src/components/RangeField/RangeField.mdx +0 -1
- package/src/components/RatingPicker/RatingPicker.mdx +0 -1
- package/src/components/SocialMediaLinks/SocialMediaLinks.mdx +0 -1
- package/src/components/StatusPage/StatusPage.vue +1 -0
- package/src/components/StatusPage/tests/__snapshots__/StatusPage.spec.ts.snap +248 -230
- package/src/components/SubHeader/SubHeader.mdx +5 -6
- package/src/components/Tables/common/tests/SyTableFilter.spec.ts +11 -12
- package/src/components/UploadWorkflow/UploadWorkflow.mdx +0 -1
- package/src/components/UserMenuBtn/UserMenuBtn.mdx +0 -1
- package/src/components/UserMenuBtn/UserMenuBtn.stories.ts +177 -0
- package/src/composables/unifyValidation/documentationValidationProps.ts +1 -1
- package/src/composables/unifyValidation/tests/useValidation.spec.ts +13 -1
- package/src/composables/unifyValidation/useValidation.ts +37 -33
- package/src/composantsVuetify/VCard/VCard.mdx +4 -0
- package/src/composantsVuetify/VCard/v-card.stories.ts +93 -1
- package/src/composantsVuetify/VCarousel/VCarousel.mdx +74 -0
- package/src/composantsVuetify/VCarousel/v-carousel.stories.ts +531 -0
- package/src/composantsVuetify/VNavigationDrawer/VNavgationDrawer.mdx +53 -0
- package/src/composantsVuetify/VNavigationDrawer/v-navigation-drawer.stories.ts +310 -0
- package/src/composantsVuetify/VSlideGroup/VSlideGroup.mdx +105 -0
- package/src/composantsVuetify/VSlideGroup/v-slide-group.stories.ts +463 -0
- package/src/designTokens/tokens/baseColors.ts +1 -1
- package/src/designTokens/tokens/baseTokens.ts +18 -18
- package/src/stories/Components/Components.stories.ts +34 -1
- package/src/stories/Demarrer/Releases.stories.ts +16 -2
- package/src/stories/DesignTokens/Arrondis.mdx +1 -1
- package/src/stories/DesignTokens/Correspondances.mdx +219 -0
- package/src/stories/DesignTokens/UtiliserLesTokens.mdx +235 -0
- package/src/stories/DesignTokens/colors.stories.ts +569 -569
- package/src/stories/GuideDuDev/Amelipro.stories.ts +335 -267
- package/dist/components/LunarCalendar/useLunarCalendarRules.d.ts +0 -5
- package/dist/components/PhoneField/tests/types.d.ts +0 -18
- package/src/components/LunarCalendar/tests/useLunarCalendarRules.spec.ts +0 -184
- package/src/components/LunarCalendar/useLunarCalendarRules.ts +0 -96
- package/src/components/PhoneField/tests/types.d.ts +0 -19
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/vue3'
|
|
2
2
|
import PageContainer from './PageContainer.vue'
|
|
3
|
-
import { VCard } from 'vuetify/components'
|
|
3
|
+
import { VCard, VDivider } from 'vuetify/components'
|
|
4
|
+
import HeaderBar from '../HeaderBar/HeaderBar.vue'
|
|
5
|
+
import FooterBar from '../FooterBar/FooterBar.vue'
|
|
4
6
|
|
|
5
7
|
const meta = {
|
|
6
8
|
title: 'Composants/Layout/PageContainer',
|
|
7
9
|
component: PageContainer,
|
|
8
10
|
parameters: {
|
|
9
11
|
layout: 'fullscreen',
|
|
10
|
-
controls: { exclude: ['spacingClass', 'containerSize'] },
|
|
12
|
+
controls: { exclude: ['spacingClass', 'containerSize', 'alignCenter'] },
|
|
11
13
|
},
|
|
12
14
|
argTypes: {
|
|
13
15
|
size: {
|
|
@@ -254,3 +256,169 @@ export const WithAriaRole: Story = {
|
|
|
254
256
|
}
|
|
255
257
|
},
|
|
256
258
|
}
|
|
259
|
+
|
|
260
|
+
export const WithHeaderAndFooter: Story = {
|
|
261
|
+
parameters: {
|
|
262
|
+
layout: 'fullscreen',
|
|
263
|
+
sourceCode: [
|
|
264
|
+
{
|
|
265
|
+
name: 'Template',
|
|
266
|
+
code: `<template>
|
|
267
|
+
<div class="d-flex flex-column" style="min-height: 100vh; width: 100%;">
|
|
268
|
+
<PageContainer style="flex: 1; width: 100%;">
|
|
269
|
+
<template #prepend="{ width }">
|
|
270
|
+
<HeaderBar
|
|
271
|
+
service-title="Mon espace"
|
|
272
|
+
service-subtitle="Service de santé"
|
|
273
|
+
:heading-level-title="1"
|
|
274
|
+
:width="width"
|
|
275
|
+
>
|
|
276
|
+
<template #header-side>
|
|
277
|
+
<div class="d-flex align-center ga-3 text-primary">
|
|
278
|
+
<div class="text-body-2">
|
|
279
|
+
<div class="font-weight-medium">Dr. Jean Dupont</div>
|
|
280
|
+
<div>Cabinet médical</div>
|
|
281
|
+
<div>12 rue de la Paix, 75001 Paris</div>
|
|
282
|
+
</div>
|
|
283
|
+
<VDivider vertical class="mx-2" style="height: 48px;" />
|
|
284
|
+
<div class="text-body-2">
|
|
285
|
+
<div class="font-weight-medium">Contact</div>
|
|
286
|
+
<div>Tel: 01 23 45 67 89</div>
|
|
287
|
+
<div>contact@cabinet.fr</div>
|
|
288
|
+
</div>
|
|
289
|
+
</div>
|
|
290
|
+
</template>
|
|
291
|
+
<template #append>
|
|
292
|
+
<div class="bg-primary" style="width: 100%; min-height: 48px; display: flex; align-items: center; justify-content: center;">
|
|
293
|
+
<div class="text-white font-weight-medium">Mon Espace Personnel</div>
|
|
294
|
+
</div>
|
|
295
|
+
</template>
|
|
296
|
+
</HeaderBar>
|
|
297
|
+
</template>
|
|
298
|
+
|
|
299
|
+
<h2 class="text-h5 mb-4">Bienvenue dans votre espace professionnel</h2>
|
|
300
|
+
<p>
|
|
301
|
+
Le lorem ipsum est, en imprimerie, une suite de mots sans signification utilisée
|
|
302
|
+
à titre provisoire pour calibrer une mise en page, le texte définitif venant remplacer le
|
|
303
|
+
faux-texte dès qu'il est prêt ou que la mise en page est achevée. Généralement, on utilise
|
|
304
|
+
un texte en faux latin, qui permet de faire office de texte d'attente.
|
|
305
|
+
</p>
|
|
306
|
+
<p class="mt-4">
|
|
307
|
+
L'avantage de le mettre en latin est que l'opérateur sait au premier coup d'œil que la page
|
|
308
|
+
contenant ces lignes n'est pas valide, et surtout l'attention du client n'est pas dérangée
|
|
309
|
+
par le contenu, il demeure concentré seulement sur l'aspect graphique. Ce texte a pour autre
|
|
310
|
+
avantage d'utiliser des mots de longueur variable, essayant de simuler une occupation normale.
|
|
311
|
+
</p>
|
|
312
|
+
<p class="mt-4">
|
|
313
|
+
La méthode simplifiée consiste à ne pas s'embarrasser de prétentions philosophiques,
|
|
314
|
+
et à composer un texte en français présentable. On peut aussi utiliser des générateurs
|
|
315
|
+
de texte automatiques pour obtenir du contenu aléatoire, mais il faut veiller à ce que
|
|
316
|
+
le résultat soit cohérent et agréable à lire.
|
|
317
|
+
</p>
|
|
318
|
+
<p class="mt-4 mb-16">
|
|
319
|
+
Ce contenu supplémentaire permet de bien visualiser l'espacement entre le contenu principal
|
|
320
|
+
et le pied de page. Il est important de prévoir suffisamment d'espace pour que la mise en page
|
|
321
|
+
reste harmonieuse et que le contenu soit facilement lisible. Le texte d'attente peut être remplacé
|
|
322
|
+
par du texte réel dès que celui-ci est disponible.
|
|
323
|
+
</p>
|
|
324
|
+
|
|
325
|
+
<template #append="{ width }">
|
|
326
|
+
<FooterBar
|
|
327
|
+
:width="width"
|
|
328
|
+
version="3.0.0"
|
|
329
|
+
a11y-compliance="partiellement-conforme"
|
|
330
|
+
/>
|
|
331
|
+
</template>
|
|
332
|
+
</PageContainer>
|
|
333
|
+
</div>
|
|
334
|
+
</template>
|
|
335
|
+
`,
|
|
336
|
+
},
|
|
337
|
+
{
|
|
338
|
+
name: 'Script',
|
|
339
|
+
code: `<script setup lang="ts">
|
|
340
|
+
import { PageContainer, HeaderBar, FooterBar } from '@cnamts/synapse'
|
|
341
|
+
import { VDivider } from 'vuetify/components'
|
|
342
|
+
</script>
|
|
343
|
+
`,
|
|
344
|
+
},
|
|
345
|
+
],
|
|
346
|
+
},
|
|
347
|
+
render: (args) => {
|
|
348
|
+
return {
|
|
349
|
+
components: { PageContainer, HeaderBar, FooterBar, VDivider },
|
|
350
|
+
setup() {
|
|
351
|
+
return { args }
|
|
352
|
+
},
|
|
353
|
+
template: `
|
|
354
|
+
<div class="d-flex flex-column" style="min-height: 100vh; width: 100%;">
|
|
355
|
+
<PageContainer :size="args.size" :spacing="args.spacing" :color="args.color" style="flex: 1; width: 100%;">
|
|
356
|
+
<template #prepend="{ width }">
|
|
357
|
+
<HeaderBar
|
|
358
|
+
service-title="Mon espace"
|
|
359
|
+
service-subtitle="Service de santé"
|
|
360
|
+
:heading-level-title="1"
|
|
361
|
+
:width="width"
|
|
362
|
+
>
|
|
363
|
+
<template #header-side v-if="args.size !== 'xs' && args.size !== 'sm'">
|
|
364
|
+
<div class="d-flex align-center ga-3 text-primary mr-4">
|
|
365
|
+
<div class="text-body-2">
|
|
366
|
+
<div class="font-weight-medium">Dr. Jean Dupont</div>
|
|
367
|
+
<div>Cabinet médical</div>
|
|
368
|
+
<div>12 rue de la Paix, 75001 Paris</div>
|
|
369
|
+
</div>
|
|
370
|
+
<VDivider vertical class="mx-2" style="height: 48px;" />
|
|
371
|
+
<div class="text-body-2">
|
|
372
|
+
<div class="font-weight-medium">Contact</div>
|
|
373
|
+
<div>Tel: 01 23 45 67 89</div>
|
|
374
|
+
<div>contact@cabinet.fr</div>
|
|
375
|
+
</div>
|
|
376
|
+
</div>
|
|
377
|
+
</template>
|
|
378
|
+
<template #append>
|
|
379
|
+
<div class="bg-primary" style="width: 100%; min-height: 48px; display: flex; align-items: center; justify-content: center;">
|
|
380
|
+
<div class="text-white font-weight-medium">Mon Espace Personnel</div>
|
|
381
|
+
</div>
|
|
382
|
+
</template>
|
|
383
|
+
</HeaderBar>
|
|
384
|
+
</template>
|
|
385
|
+
|
|
386
|
+
<h2 class="text-h5 mb-4">Bienvenue dans votre espace professionnel</h2>
|
|
387
|
+
<p>
|
|
388
|
+
Le lorem ipsum est, en imprimerie, une suite de mots sans signification utilisée
|
|
389
|
+
à titre provisoire pour calibrer une mise en page, le texte définitif venant remplacer le
|
|
390
|
+
faux-texte dès qu'il est prêt ou que la mise en page est achevée. Généralement, on utilise
|
|
391
|
+
un texte en faux latin, qui permet de faire office de texte d'attente.
|
|
392
|
+
</p>
|
|
393
|
+
<p class="mt-4">
|
|
394
|
+
L'avantage de le mettre en latin est que l'opérateur sait au premier coup d'œil que la page
|
|
395
|
+
contenant ces lignes n'est pas valide, et surtout l'attention du client n'est pas dérangée
|
|
396
|
+
par le contenu, il demeure concentré seulement sur l'aspect graphique. Ce texte a pour autre
|
|
397
|
+
avantage d'utiliser des mots de longueur variable, essayant de simuler une occupation normale.
|
|
398
|
+
</p>
|
|
399
|
+
<p class="mt-4">
|
|
400
|
+
La méthode simplifiée consiste à ne pas s'embarrasser de prétentions philosophiques,
|
|
401
|
+
et à composer un texte en français présentable. On peut aussi utiliser des générateurs
|
|
402
|
+
de texte automatiques pour obtenir du contenu aléatoire, mais il faut veiller à ce que
|
|
403
|
+
le résultat soit cohérent et agréable à lire.
|
|
404
|
+
</p>
|
|
405
|
+
<p class="mt-4 mb-16">
|
|
406
|
+
Ce contenu supplémentaire permet de bien visualiser l'espacement entre le contenu principal
|
|
407
|
+
et le pied de page. Il est important de prévoir suffisamment d'espace pour que la mise en page
|
|
408
|
+
reste harmonieuse et que le contenu soit facilement lisible. Le texte d'attente peut être remplacé
|
|
409
|
+
par du texte réel dès que celui-ci est disponible.
|
|
410
|
+
</p>
|
|
411
|
+
|
|
412
|
+
<template #append="{ width }">
|
|
413
|
+
<FooterBar
|
|
414
|
+
:width="width"
|
|
415
|
+
version="3.0.0"
|
|
416
|
+
a11y-compliance="partiellement-conforme"
|
|
417
|
+
/>
|
|
418
|
+
</template>
|
|
419
|
+
</PageContainer>
|
|
420
|
+
</div>
|
|
421
|
+
`,
|
|
422
|
+
}
|
|
423
|
+
},
|
|
424
|
+
}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
uniqueId?: string
|
|
11
11
|
role?: AriaRole
|
|
12
12
|
ariaLabelledby?: string
|
|
13
|
+
alignCenter?: boolean
|
|
13
14
|
}>(), {
|
|
14
15
|
size: undefined,
|
|
15
16
|
spacing: undefined,
|
|
@@ -17,6 +18,7 @@
|
|
|
17
18
|
uniqueId: undefined,
|
|
18
19
|
role: undefined,
|
|
19
20
|
ariaLabelledby: undefined,
|
|
21
|
+
alignCenter: false,
|
|
20
22
|
})
|
|
21
23
|
|
|
22
24
|
const display = useDisplay()
|
|
@@ -53,6 +55,8 @@
|
|
|
53
55
|
}
|
|
54
56
|
})
|
|
55
57
|
|
|
58
|
+
const containerWidth = computed(() => `${containerSize.value}px`)
|
|
59
|
+
|
|
56
60
|
defineExpose({
|
|
57
61
|
spacingClass,
|
|
58
62
|
containerSize,
|
|
@@ -62,17 +66,54 @@
|
|
|
62
66
|
<template>
|
|
63
67
|
<div
|
|
64
68
|
:id="uniqueId ? `${uniqueId}-container` : undefined"
|
|
65
|
-
:class="[
|
|
69
|
+
:class="['vd-page-container d-flex flex-column', { 'align-center': alignCenter }]"
|
|
66
70
|
:role="role"
|
|
67
71
|
:aria-labelledby="ariaLabelledby"
|
|
68
72
|
>
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
+
<!-- Slot prepend avec wrapper de largeur fixe -->
|
|
74
|
+
<div
|
|
75
|
+
v-if="$slots.prepend"
|
|
76
|
+
class="vd-page-container__slot-wrapper"
|
|
77
|
+
>
|
|
78
|
+
<div
|
|
79
|
+
class="vd-page-container__slot-content"
|
|
80
|
+
:style="{ width: containerWidth }"
|
|
81
|
+
>
|
|
82
|
+
<slot
|
|
83
|
+
name="prepend"
|
|
84
|
+
:width="containerWidth"
|
|
85
|
+
/>
|
|
86
|
+
</div>
|
|
87
|
+
</div>
|
|
88
|
+
|
|
89
|
+
<div
|
|
90
|
+
:class="spacingClass"
|
|
91
|
+
class="vd-page-container__content"
|
|
73
92
|
>
|
|
74
|
-
<
|
|
75
|
-
|
|
93
|
+
<VSheet
|
|
94
|
+
:id="uniqueId ? `${uniqueId}-content` : undefined"
|
|
95
|
+
:width="containerSize"
|
|
96
|
+
:color="color"
|
|
97
|
+
>
|
|
98
|
+
<slot />
|
|
99
|
+
</VSheet>
|
|
100
|
+
</div>
|
|
101
|
+
|
|
102
|
+
<!-- Slot append avec wrapper de largeur fixe -->
|
|
103
|
+
<div
|
|
104
|
+
v-if="$slots.append"
|
|
105
|
+
class="vd-page-container__slot-wrapper"
|
|
106
|
+
>
|
|
107
|
+
<div
|
|
108
|
+
class="vd-page-container__slot-content"
|
|
109
|
+
:style="{ width: containerWidth }"
|
|
110
|
+
>
|
|
111
|
+
<slot
|
|
112
|
+
name="append"
|
|
113
|
+
:width="containerWidth"
|
|
114
|
+
/>
|
|
115
|
+
</div>
|
|
116
|
+
</div>
|
|
76
117
|
</div>
|
|
77
118
|
</template>
|
|
78
119
|
|
|
@@ -80,7 +121,21 @@
|
|
|
80
121
|
.vd-page-container {
|
|
81
122
|
flex: 1;
|
|
82
123
|
width: 100%;
|
|
83
|
-
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.vd-page-container__content {
|
|
127
|
+
display: flex;
|
|
128
|
+
justify-content: center;
|
|
129
|
+
width: 100%;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.vd-page-container__slot-wrapper {
|
|
133
|
+
width: 100%;
|
|
134
|
+
display: flex;
|
|
135
|
+
justify-content: center;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.vd-page-container__slot-content {
|
|
84
139
|
margin: 0 auto;
|
|
85
140
|
}
|
|
86
141
|
</style>
|
|
@@ -3,18 +3,26 @@
|
|
|
3
3
|
exports[`PageContainer > render correctly 1`] = `
|
|
4
4
|
<div class="
|
|
5
5
|
d-flex
|
|
6
|
-
|
|
7
|
-
px-14
|
|
8
|
-
py-10
|
|
6
|
+
flex-column
|
|
9
7
|
vd-page-container
|
|
10
8
|
">
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
9
|
+
<!-- Slot prepend avec wrapper de largeur fixe -->
|
|
10
|
+
<!-- v-if -->
|
|
11
|
+
<div class="
|
|
12
|
+
px-14
|
|
13
|
+
py-10
|
|
14
|
+
vd-page-container__content
|
|
15
|
+
">
|
|
16
|
+
<div
|
|
17
|
+
class="
|
|
18
|
+
bg-transparent
|
|
19
|
+
v-sheet
|
|
20
|
+
v-theme--light
|
|
21
|
+
"
|
|
22
|
+
style="width: 800px;"
|
|
23
|
+
></div>
|
|
24
|
+
</div>
|
|
25
|
+
<!-- Slot append avec wrapper de largeur fixe -->
|
|
26
|
+
<!-- v-if -->
|
|
19
27
|
</div>
|
|
20
28
|
`;
|
|
@@ -28,7 +28,6 @@ import * as PaginatedTableStories from "./PaginatedTable.stories.ts";
|
|
|
28
28
|
itemsPerPage: 4,
|
|
29
29
|
sortBy: [{ key: 'calories', order: 'desc' }],
|
|
30
30
|
})
|
|
31
|
-
import '../../stories/styles/shared.css';
|
|
32
31
|
|
|
33
32
|
const headers = reactive([
|
|
34
33
|
{ text: 'Dessert (100g serving)', value: 'name' },
|
|
@@ -23,14 +23,13 @@ import { PhoneField } from '@cnamts/synapse'
|
|
|
23
23
|
import { ref } from 'vue'
|
|
24
24
|
|
|
25
25
|
const value = ref('')
|
|
26
|
-
import '../../stories/styles/shared.css';
|
|
27
26
|
|
|
28
27
|
const handleChange = (newValue) => {
|
|
29
28
|
console.log('Value changed:', newValue)
|
|
30
29
|
}
|
|
31
30
|
const customIndicatifs = ref([
|
|
32
|
-
{ code: '+99', country: 'Utopia', abbreviation: 'UT', mask: '## ## ## ##'
|
|
33
|
-
{ code: '+98', country: 'Paradise', abbreviation: 'PA', mask: '## ## ## ##'
|
|
31
|
+
{ code: '+99', country: 'Utopia', abbreviation: 'UT', mask: '## ## ## ##' },
|
|
32
|
+
{ code: '+98', country: 'Paradise', abbreviation: 'PA', mask: '## ## ## ##' },
|
|
34
33
|
])
|
|
35
34
|
</script>
|
|
36
35
|
|