@ouestfrance/sipa-bms-ui 8.20.0 → 8.22.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.
Files changed (46) hide show
  1. package/dist/components/feedback/BmsGhost.vue.d.ts +24 -0
  2. package/dist/components/form/BmsAutocomplete.vue.d.ts +2 -2
  3. package/dist/components/form/BmsFilePicker.vue.d.ts +4 -0
  4. package/dist/components/form/BmsMultiSelect.vue.d.ts +4 -0
  5. package/dist/components/form/BmsServerAutocomplete.vue.d.ts +2 -2
  6. package/dist/components/form/RawAutocomplete.vue.d.ts +11 -3
  7. package/dist/components/layout/BmsFloatingWindow.vue.d.ts +20 -1
  8. package/dist/index.d.ts +2 -1
  9. package/dist/mockServiceWorker.js +1 -1
  10. package/dist/sipa-bms-ui.css +117 -393
  11. package/dist/sipa-bms-ui.es.js +447 -129
  12. package/dist/sipa-bms-ui.es.js.map +1 -1
  13. package/dist/sipa-bms-ui.umd.js +449 -130
  14. package/dist/sipa-bms-ui.umd.js.map +1 -1
  15. package/package.json +12 -12
  16. package/src/assets/scss/_conf.scss +0 -1
  17. package/src/assets/scss/app.scss +0 -1
  18. package/src/components/button/BmsAllButtons.stories.js +50 -23
  19. package/src/components/button/BmsButton.stories.js +153 -59
  20. package/src/components/feedback/BmsGhost.stories.js +60 -0
  21. package/src/components/feedback/BmsGhost.vue +82 -0
  22. package/src/components/feedback/BmsTooltip.vue +15 -1
  23. package/src/components/feedback/UiTooltip.vue +9 -1
  24. package/src/components/form/BmsFilePicker.stories.js +6 -1
  25. package/src/components/form/BmsFilePicker.vue +10 -5
  26. package/src/components/form/BmsMultiSelect.vue +32 -25
  27. package/src/components/form/BmsSelect.vue +18 -16
  28. package/src/components/form/RawAutocomplete.vue +16 -4
  29. package/src/components/form/RawInputText.vue +1 -0
  30. package/src/components/layout/BmsFloatingWindow.stories.js +226 -12
  31. package/src/components/layout/BmsFloatingWindow.vue +286 -13
  32. package/src/components/layout/BmsModal.stories.js +2 -1
  33. package/src/components/layout/BmsSplitWindow.vue +0 -1
  34. package/src/components/table/BmsTableFilters.vue +1 -1
  35. package/src/documentation/button/primaryButton.mdx +142 -0
  36. package/src/documentation/{secondaryButton.mdx → button/secondaryButton.mdx} +2 -2
  37. package/src/documentation/foundation/contributing.mdx +72 -0
  38. package/src/documentation/foundation/gettingstarted.mdx +7 -0
  39. package/src/documentation/{principles.mdx → foundation/principles.mdx} +9 -9
  40. package/src/documentation/icons.mdx +43 -0
  41. package/src/index.ts +3 -0
  42. package/src/showroom/pages/forms.vue +10 -1
  43. package/src/assets/scss/_formkit.scss +0 -353
  44. package/src/components/form/Form.stories.js +0 -35
  45. package/src/documentation/primaryButton.mdx +0 -20
  46. /package/src/documentation/{button.mdx → button/button.mdx} +0 -0
@@ -31,3 +31,46 @@ import { ChefHat } from 'lucide-vue-next'
31
31
  <h2> <ChefHat /> My recipes </h2>
32
32
  </template>
33
33
  ```
34
+
35
+ ## Recommendation
36
+
37
+ ## 1️⃣ Keep the Visual Style as Simple as Possible
38
+
39
+ | Rule | Why it matters | Example |
40
+ | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | ------------------------------------------------------------ |
41
+ | **Pick the simplest icon** – a clean outline without extra adornments. | Reduces cognitive load and improves legibility on small screens. | “Edit” → `Pencil` instead of `PencilPlus`. |
42
+ | **Limit variants** – use a single style (outline, filled, or two‑tone) for a given concept. | Prevents confusion caused by multiple looks for the same action. | “Delete” → always `Trash` (outline). |
43
+ | **Maintain consistent sizing** – stick to either 16 px or 24 px depending on context, never arbitrary sizes. | Guarantees uniform alignment across components. | Action buttons → 24 px; list items → 16 px. |
44
+ | **Avoid icon + text combos** unless the text adds essential information (e.g., “Export PDF”). | The icon alone should convey the meaning. | “Download” → just the `Download` icon. |
45
+ | **Ensure sufficient contrast** – use the accent colour or black/white based on background, meeting a ≥ 4.5:1 contrast ratio. | Makes the UI accessible for colour‑blind or low‑vision users. | Dark background → white icon; light background → black icon. |
46
+
47
+ ## 3️⃣ Recommended Icon‑to‑Action Mapping
48
+
49
+ | Action | Recommended Lucide Icon | Variant (outline / fill) | Suggested Size | Usage Note |
50
+ | ---------------------- | --------------------------------------------- | ------------------------------------ | ----------------------------- | ------------------------------------------------------------- |
51
+ | **Edit** | `Pencil` | Outline | 24 px (button) / 16 px (list) | Used to modify an existing item. |
52
+ | **Delete** | `Trash` | Outline | 24 px (button) / 16 px (list) | Always paired with a confirmation modal. |
53
+ | **Confirm / Save** | `Check` | Fill (to indicate an “active” state) | 24 px | Can replace the word “Save” on primary action bars. |
54
+ | **Cancel / Close** | `X` _(alias `Close`)_ | Outline | 24 px | Closes dialogs or cancels an operation. |
55
+ | **Add / Create** | `Plus` | Outline | 24 px | Prefer the plain `Plus` over `PlusCircle` for minimalism. |
56
+ | **Download** | `Download` | Outline | 24 px | Placed next to a file‑download link. |
57
+ | **Export** | `Upload` _(or `Share2` depending on context)_ | Outline | 24 px | Use `Upload` for exporting data, `Share2` for sharing a link. |
58
+ | **Search** | `Search` | Outline | 24 px | Visible even when the input field is empty. |
59
+ | **Filter** | `Filter` | Outline | 24 px | Appears beside a “Filter” button. |
60
+ | **Preview** | `Eye` | Outline | 24 px | Lets users preview content without editing. |
61
+ | **Expand / Collapse** | `ChevronDown` / `ChevronUp` | Outline | 16 px (inside lists) | Indicates accordion or dropdown state. |
62
+ | **Open External Link** | `ExternalLink` | Outline | 16 px | Shows next to a link that opens a new tab/window. |
63
+
64
+ > **Tip:** If you ever need an icon that Lucide doesn’t provide, create one that follows the same visual language (2 px stroke, rounded corners, no fill) to stay consistent with the rest of the set.
65
+
66
+ ---
67
+
68
+ ### 📌 Quick Checklist
69
+
70
+ 1. **Choose the simplest outline icon** for the action.
71
+ 2. **Standardise size & stroke width** (`16 px` or `24 px`, `strokeWidth={2}`).
72
+ 3. **Respect colour contrast** (dark icon on light background, light icon on dark background).
73
+ 4. **Import icons centrally** and re‑export them.
74
+ 5. **Add visual regression tests** for every icon used in the UI.
75
+
76
+ Following these guidelines will keep the UI clean, professional, and accessible while leveraging the full power of the Lucide icon library. 🎨🚀
package/src/index.ts CHANGED
@@ -7,6 +7,7 @@ import BmsAlert from './components/feedback/BmsAlert.vue';
7
7
  import BmsBadge from './components/feedback/BmsBadge.vue';
8
8
  import BmsCaption from './components/feedback/BmsCaption.vue';
9
9
  import BmsCircularProgress from './components/feedback/BmsCircularProgress.vue';
10
+ import BmsGhost from '@/components/feedback/BmsGhost.vue';
10
11
  import BmsLoader from './components/feedback/BmsLoader.vue';
11
12
  import BmsTooltip from './components/feedback/BmsTooltip.vue';
12
13
 
@@ -79,6 +80,7 @@ export const createBmsUi = () => ({
79
80
  app.component('BmsBadge', BmsBadge);
80
81
  app.component('BmsCaption', BmsCaption);
81
82
  app.component('BmsCircularProgress', BmsCircularProgress);
83
+ app.component('BmsGhost', BmsGhost);
82
84
  app.component('BmsLoader', BmsLoader);
83
85
  app.component('BmsTooltip', BmsTooltip);
84
86
 
@@ -161,6 +163,7 @@ export {
161
163
  BmsBadge,
162
164
  BmsCaption,
163
165
  BmsCircularProgress,
166
+ BmsGhost,
164
167
  BmsLoader,
165
168
  BmsTooltip,
166
169
  BmsAutocomplete,
@@ -240,6 +240,7 @@
240
240
  <BmsSelect
241
241
  label="select"
242
242
  required
243
+ @select="console.log('BmsSelect - select', $event)"
243
244
  v-model="selected"
244
245
  placeholder="This is a placeholder"
245
246
  :options="[{ label: 'value1', value: 'value1' }]"
@@ -262,6 +263,8 @@
262
263
  required
263
264
  placeholder="This is a placeholder"
264
265
  v-model="multiSelect"
266
+ @select="console.log('BmsMultiSelect - select', $event)"
267
+ @input="console.log('BmsMultiSelect - input', $event)"
265
268
  :options="[
266
269
  { label: 'toto1', value: 'value1', icon: BellIcon },
267
270
  { label: 'titi2', value: 'value2', icon: Magnet },
@@ -291,7 +294,13 @@
291
294
  placeholder="This is a placeholder"
292
295
  required
293
296
  v-model="auto"
294
- :options="[{ label: 'value1', value: '1' }]"
297
+ @select="console.log('BmsAutocomplete - select', $event)"
298
+ @input="console.log('BmsAutocomplete - input', $event)"
299
+ :options="[
300
+ { label: 'value1', value: '1' },
301
+ { label: 'value2', value: '2' },
302
+ { label: 'value3', value: '3' },
303
+ ]"
295
304
  />
296
305
  <BmsInputNumber label="Chiffre" v-model="nbr" :min="5" :max="15" />
297
306
 
@@ -1,353 +0,0 @@
1
- @mixin formkit {
2
- :root body {
3
- /* theme name */
4
- --formkit-theme: genesis;
5
-
6
- /* typography */
7
- --fk-font-family: var(--bms-font-family);
8
- --fk-font-family-input: var(--fk-font-family);
9
- --fk-font-family-label: var(--fk-font-family);
10
- --fk-font-family-legend: var(--fk-font-family-label);
11
- --fk-font-family-option: var(--fk-font-family-input);
12
- --fk-font-family-help: var(--fk-font-family);
13
- --fk-font-family-message: var(--fk-font-family);
14
-
15
- --fk-font-weight: 400;
16
- --fk-font-weight-input: var(--fk-font-weight);
17
- --fk-font-weight-label: 700;
18
- --fk-font-weight-legend: var(--fk-font-weight-label, bold);
19
- --fk-font-weight-help: var(--fk-font-weight);
20
- --fk-font-weight-option: var(--fk-font-weight);
21
- --fk-font-weight-message: var(--fk-font-weight);
22
-
23
- --fk-line-height: 1.1;
24
- --fk-line-height-label: var(--fk-line-height);
25
- --fk-line-height-help: var(--fk-line-height);
26
- --fk-line-height-option: var(--fk-line-height);
27
- --fk-line-height-message: var(--fk-line-height);
28
- --fk-line-height-textarea: var(--fk-line-height);
29
- --fk-line-height-input: 1.125em; /* Important to ensure equal height inputs. */
30
- --fk-line-height-button: 1.3;
31
-
32
- /* Structure */
33
- --fk-max-width-input: 48em;
34
- --fk-box-size: 0.875em;
35
-
36
- /* Colors */
37
- --fk-color-primary: var(--bms-main-100);
38
- --fk-color-checked: var(--fk-color-primary);
39
- --fk-color-input: var(--bms-font-color);
40
- --fk-color-border: var(--bms-grey-50);
41
- --fk-color-border-focus: var(--fk-color-primary);
42
- --fk-color-border-shadow: var(--bms-main-10);
43
- --fk-color-danger: var(--bms-red-100);
44
- --fk-color-error: var(--fk-color-danger);
45
- --fk-color-placeholder: var(--bms-grey-100);
46
- --fk-color-disabled: var(--bms-disabled-color);
47
- --fk-color-help: var(--bms-grey-100);
48
- /* --fk-color-message: inherit; */
49
- --fk-color-icon: var(--bms-grey-100);
50
- --fk-color-icon-minor: var(--bms-grey-100);
51
- --fk-color-button: #fff;
52
- --fk-color-button-hover: #fff;
53
- --fk-color-submit: var(--fk-color-button);
54
- --fk-color-submit-hover: var(--fk-color-button-hover);
55
- --fk-color-range-track: var(--fk-color-border);
56
- --fk-color-range-thumb: var(--fk-color-primary);
57
-
58
- --fk-bg-input: transparent;
59
- --fk-bg-disabled: var(--bms-disabled-color);
60
- --fk-bg-decorator: transparent;
61
-
62
- --fk-bg-button: var(--fk-color-primary);
63
- --fk-bg-button-hover: var(--fk-bg-button);
64
- --fk-bg-submit: var(--fk-bg-button);
65
- --fk-bg-submit-hover: var(--fk-bg-submit);
66
-
67
- /* Borders */
68
- --fk-border-width: 1px;
69
- --fk-border-width-decorator: var(--fk-border-width);
70
- --fk-border-width-focus: 1px;
71
- --fk-border-width-checked: 1px;
72
- --fk-border-width-decorator-checked: 1px;
73
- --fk-border-width-decorator-focus: var(--fk-border-width-decorator-checked);
74
- --fk-border-width-decorator-focus-visible: var(--fk-border-width-focus);
75
- --fk-border-style: solid;
76
- --fk-border: var(--fk-border-width) var(--fk-border-style)
77
- var(--fk-color-border);
78
- --fk-border-focus: var(--fk-border-width-focus) var(--fk-border-style)
79
- var(--fk-color-border-focus);
80
- --fk-border-decorator: var(--fk-border-width-decorator)
81
- var(--fk-border-style) var(--fk-color-border);
82
- --fk-border-decorator-focus: var(--fk-border-width-focus)
83
- var(--fk-border-style) var(--fk-color-border-focus);
84
- --fk-border-decorator-focus-visible: var(
85
- --fk-border-width-decorator-focus-visible
86
- )
87
- var(--fk-border-style) var(--fk-color-border-focus);
88
- --fk-border-decorator-checked: var(--fk-border-width-checked)
89
- var(--fk-border-style) var(--fk-color-border-focus);
90
- --fk-border-box-shadow: 0 0 0 var(--fk-border-width) var(--fk-color-border);
91
- --fk-border-box-shadow-focus: 0 0 0 var(--fk-border-width-focus)
92
- var(--fk-color-border-focus),
93
- 0 0 2px 2px var(--fk-color-border-shadow);
94
- --fk-border-box-shadow-decorator: 0 0 0 var(--fk-border-width-decorator);
95
- --fk-border-box-shadow-decorator-focus: 0 0 0
96
- var(--fk-border-width-decorator-focus) var(--fk-color-border-focus);
97
- --fk-border-box-shadow-decorator-focus-visible: 0 0 0
98
- var(--fk-border-width-decorator-focus-visible)
99
- var(--fk-color-border-focus);
100
- --fk-border-box-shadow-decorator-checked: 0 0 0
101
- var(--fk-border-width-decorator-checked) var(--fk-color-border-focus);
102
- --fk-border-radius-tl: 4px;
103
- --fk-border-radius-tr: 4px;
104
- --fk-border-radius-bl: 4px;
105
- --fk-border-radius-br: 4px;
106
- --fk-border-radius: var(--fk-border-radius-tl, 4px)
107
- var(--fk-border-radius-tr, 4px) var(--fk-border-radius-br, 4px)
108
- var(--fk-border-radius-bl, 4px);
109
- --fk-border-radius-full: 999em;
110
-
111
- /* Padding */
112
- --fk-padding-base: calc(0.25em - 1px / 3);
113
-
114
- --fk-padding-input-x: calc(var(--fk-padding-base) * 3);
115
- --fk-padding-input-y: calc(var(--fk-padding-base) * 3);
116
- --fk-padding-input-t: var(--fk-padding-input-y, 0);
117
- --fk-padding-input-r: var(--fk-padding-input-x, 0);
118
- --fk-padding-input-b: var(--fk-padding-input-y, 0);
119
- --fk-padding-input-l: var(--fk-padding-input-x, 0);
120
- --fk-padding-input: var(--fk-padding-input-t) var(--fk-padding-input-r)
121
- var(--fk-padding-input-b) var(--fk-padding-input-l);
122
-
123
- --fk-padding-label-x: inherit;
124
- --fk-padding-label-y: inherit;
125
- --fk-padding-label-t: var(--fk-padding-label-y, 0);
126
- --fk-padding-label-r: var(--fk-padding-label-x, 0);
127
- --fk-padding-label-b: var(--fk-padding-label-y, 0.5em);
128
- --fk-padding-label-l: var(--fk-padding-label-x, 0);
129
- --fk-padding-label: var(--fk-padding-label-t) var(--fk-padding-label-r)
130
- var(--fk-padding-label-b) var(--fk-padding-label-l);
131
-
132
- --fk-padding-help-x: inherit;
133
- --fk-padding-help-y: var(--fk-padding-base);
134
- --fk-padding-help-t: var(--fk-padding-help-y, 0);
135
- --fk-padding-help-r: var(--fk-padding-help-x, 0);
136
- --fk-padding-help-b: var(--fk-padding-help-y, 0);
137
- --fk-padding-help-l: var(--fk-padding-help-x, 0);
138
- --fk-padding-help: var(--fk-padding-help-t) var(--fk-padding-help-r)
139
- var(--fk-padding-help-b) var(--fk-padding-help-l);
140
-
141
- --fk-padding-option-x: inherit;
142
- --fk-padding-option-y: inherit;
143
- --fk-padding-option-t: var(--fk-padding-option-y, 0);
144
- --fk-padding-option-r: var(--fk-padding-option-x, 0);
145
- --fk-padding-option-b: var(--fk-padding-option-y, 0);
146
- --fk-padding-option-l: var(--fk-padding-option-x, 0);
147
- --fk-padding-option: var(--fk-padding-option-t) var(--fk-padding-option-r)
148
- var(--fk-padding-option-b) var(--fk-padding-option-l);
149
-
150
- --fk-padding-messages-x: inherit;
151
- --fk-padding-messages-y: inherit;
152
- --fk-padding-messages-t: var(
153
- --fk-padding-messages-y,
154
- var(--fk-padding-base)
155
- );
156
- --fk-padding-messages-r: var(--fk-padding-messages-x, 0);
157
- --fk-padding-messages-b: var(--fk-padding-messages-y, 0);
158
- --fk-padding-messages-l: var(--fk-padding-messages-x, 0);
159
- --fk-padding-messages: var(--fk-padding-messages-t)
160
- var(--fk-padding-messages-r) var(--fk-padding-messages-b)
161
- var(--fk-padding-messages-l);
162
-
163
- --fk-padding-message-x: inherit;
164
- --fk-padding-message-y: var(--fk-padding-base);
165
- --fk-padding-message-t: var(--fk-padding-message-y, 0);
166
- --fk-padding-message-r: var(--fk-padding-message-x, 0);
167
- --fk-padding-message-b: var(--fk-padding-message-y, 0);
168
- --fk-padding-message-l: var(--fk-padding-message-x, 0);
169
- --fk-padding-message: var(--fk-padding-message-t)
170
- var(--fk-padding-message-r) var(--fk-padding-message-b)
171
- var(--fk-padding-message-l);
172
-
173
- --fk-padding-legend-x: 0.25em;
174
- --fk-padding-legend-y: 0.25em;
175
- --fk-padding-legend-t: var(--fk-padding-legend-y);
176
- --fk-padding-legend-r: var(--fk-padding-legend-x);
177
- --fk-padding-legend-b: var(--fk-padding-legend-y);
178
- --fk-padding-legend-l: var(--fk-padding-legend-x);
179
- --fk-padding-legend: var(--fk-padding-legend-t) var(--fk-padding-legend-r)
180
- var(--fk-padding-legend-b) var(--fk-padding-legend-l);
181
-
182
- --fk-padding-fieldset-x: var(--fk-padding-input-x);
183
- --fk-padding-fieldset-y: var(--fk-padding-input-y);
184
- --fk-padding-fieldset-t: var(--fk-padding-fieldset-y);
185
- --fk-padding-fieldset-r: var(--fk-padding-fieldset-x);
186
- --fk-padding-fieldset-b: var(--fk-padding-fieldset-y);
187
- --fk-padding-fieldset-l: var(--fk-padding-fieldset-x);
188
- --fk-padding-fieldset: var(--fk-padding-fieldset-t)
189
- var(--fk-padding-fieldset-r) var(--fk-padding-fieldset-b)
190
- var(--fk-padding-fieldset-l);
191
-
192
- --fk-padding-decorator-x: inherit;
193
- --fk-padding-decorator-y: var(--fk-padding-base);
194
- --fk-padding-decorator-t: var(--fk-padding-decorator-y, 1.25em);
195
- --fk-padding-decorator-r: var(--fk-padding-decorator-x, 1.25em);
196
- --fk-padding-decorator-b: var(--fk-padding-decorator-y, 1.25em);
197
- --fk-padding-decorator-l: var(--fk-padding-decorator-x, 1.25em);
198
- --fk-padding-decorator: var(--fk-padding-decorator-t)
199
- var(--fk-padding-decorator-r) var(--fk-padding-decorator-b)
200
- var(--fk-padding-decorator-l);
201
-
202
- --fk-padding-button-x: calc(var(--fk-padding-base) * 8);
203
- --fk-padding-button-y: calc(var(--fk-padding-base) * 3);
204
- --fk-padding-button-t: var(--fk-padding-button-y);
205
- --fk-padding-button-r: var(--fk-padding-button-x);
206
- --fk-padding-button-b: var(--fk-padding-button-y);
207
- --fk-padding-button-l: var(--fk-padding-button-x);
208
- --fk-padding-button: var(--fk-padding-button-t) var(--fk-padding-button-r)
209
- var(--fk-padding-button-b) var(--fk-padding-button-l);
210
-
211
- /* Margin */
212
- --fk-margin-base: 0.5em;
213
-
214
- --fk-margin-outer-x: inherit;
215
- --fk-margin-outer-y: inherit;
216
- --fk-margin-outer-t: var(--fk-margin-outer-y, 0);
217
- --fk-margin-outer-r: var(--fk-margin-outer-x, 0);
218
- --fk-margin-outer-b: var(
219
- --fk-margin-outer-y,
220
- calc(var(--fk-margin-base) * 2)
221
- );
222
- --fk-margin-outer-l: var(--fk-margin-outer-x, 0);
223
- --fk-margin-outer: var(--fk-margin-outer-t) var(--fk-margin-outer-r)
224
- var(--fk-margin-outer-b) var(--fk-margin-outer-l);
225
-
226
- --fk-margin-wrapper-x: inherit;
227
- --fk-margin-wrapper-y: inherit;
228
- --fk-margin-wrapper-t: var(--fk-margin-wrapper-y, 0);
229
- --fk-margin-wrapper-r: var(--fk-margin-wrapper-x, 0);
230
- --fk-margin-wrapper-b: var(--fk-margin-wrapper-y, 0);
231
- --fk-margin-wrapper-l: var(--fk-margin-wrapper-x, 0);
232
- --fk-margin-wrapper: var(--fk-margin-wrapper-t) var(--fk-margin-wrapper-r)
233
- var(--fk-margin-wrapper-b) var(--fk-margin-wrapper-l);
234
-
235
- --fk-margin-input-x: inherit;
236
- --fk-margin-input-y: inherit;
237
- --fk-margin-input-t: var(--fk-margin-input-y, 0);
238
- --fk-margin-input-r: var(--fk-margin-input-x, 0);
239
- --fk-margin-input-b: var(--fk-margin-input-y, 0);
240
- --fk-margin-input-l: var(--fk-margin-input-x, 0);
241
- --fk-margin-input: var(--fk-margin-input-t) var(--fk-margin-input-r)
242
- var(--fk-margin-input-b) var(--fk-margin-input-l);
243
-
244
- --fk-margin-label-x: inherit;
245
- --fk-margin-label-y: 0;
246
- --fk-margin-label-t: var(--fk-margin-label-y, 0);
247
- --fk-margin-label-r: var(--fk-margin-label-x, 0);
248
- --fk-margin-label-b: var(--fk-margin-label-y, var(--fk-margin-base));
249
- --fk-margin-label-l: var(--fk-margin-label-x, 0);
250
- --fk-margin-label: var(--fk-margin-label-t) var(--fk-margin-label-r)
251
- var(--fk-margin-label-b) var(--fk-margin-label-l);
252
-
253
- --fk-margin-help-x: inherit;
254
- --fk-margin-help-y: 0.3em;
255
- --fk-margin-help-t: var(--fk-margin-help-y, 0);
256
- --fk-margin-help-r: var(--fk-margin-help-x, 0);
257
- --fk-margin-help-b: 0;
258
- --fk-margin-help-l: var(--fk-margin-help-x, 0);
259
- --fk-margin-help: var(--fk-margin-help-t) var(--fk-margin-help-r)
260
- var(--fk-margin-help-b) var(--fk-margin-help-l);
261
-
262
- --fk-margin-option-x: inherit;
263
- --fk-margin-option-y: inherit;
264
- --fk-margin-option-t: var(--fk-margin-option-y, 0);
265
- --fk-margin-option-r: var(--fk-margin-option-x, 0);
266
- --fk-margin-option-b: var(--fk-margin-option-y, 0.625em);
267
- --fk-margin-option-l: var(--fk-margin-option-x, 0);
268
- --fk-margin-option: var(--fk-margin-option-t) var(--fk-margin-option-r)
269
- var(--fk-margin-option-b) var(--fk-margin-option-l);
270
-
271
- --fk-margin-message-x: inherit;
272
- --fk-margin-message-y: inherit;
273
- --fk-margin-message-t: var(--fk-margin-message-y, 0);
274
- --fk-margin-message-r: var(--fk-margin-message-x, 0);
275
- --fk-margin-message-b: var(--fk-margin-message-y, 0);
276
- --fk-margin-message-l: var(--fk-margin-message-x, 0);
277
- --fk-margin-message: var(--fk-margin-message-t) var(--fk-margin-message-r)
278
- var(--fk-margin-message-b) var(--fk-margin-message-l);
279
-
280
- --fk-margin-legend-x: 0em;
281
- --fk-margin-legend-y: inherit;
282
- --fk-margin-legend-t: var(--fk-margin-legend-y, 0);
283
- --fk-margin-legend-r: var(--fk-margin-legend-x, 0);
284
- --fk-margin-legend-b: var(--fk-margin-legend-y, 0);
285
- --fk-margin-legend-l: var(--fk-margin-legend-x, 0);
286
- --fk-margin-legend: var(--fk-margin-legend-t) var(--fk-margin-legend-r)
287
- var(--fk-margin-legend-b) var(--fk-margin-legend-l);
288
-
289
- --fk-margin-fieldset-x: inherit;
290
- --fk-margin-fieldset-y: inherit;
291
- --fk-margin-fieldset-t: var(--fk-margin-fieldset-y, 0);
292
- --fk-margin-fieldset-r: var(--fk-margin-fieldset-x, 0);
293
- --fk-margin-fieldset-b: var(--fk-margin-fieldset-y, 0);
294
- --fk-margin-fieldset-l: var(--fk-margin-fieldset-x, 0);
295
- --fk-margin-fieldset: var(--fk-margin-fieldset-t)
296
- var(--fk-margin-fieldset-r) var(--fk-margin-fieldset-b)
297
- var(--fk-margin-fieldset-l);
298
-
299
- --fk-margin-decorator-x: inherit;
300
- --fk-margin-decorator-y: inherit;
301
- --fk-margin-decorator-t: var(--fk-margin-decorator-y, 0);
302
- --fk-margin-decorator-r: var(--fk-margin-decorator-x, 0.5em);
303
- --fk-margin-decorator-b: var(--fk-margin-decorator-y, 0);
304
- --fk-margin-decorator-l: var(--fk-margin-decorator-x, 0);
305
- --fk-margin-decorator: var(--fk-margin-decorator-t)
306
- var(--fk-margin-decorator-r) var(--fk-margin-decorator-b)
307
- var(--fk-margin-decorator-l);
308
-
309
- --fk-margin-button-x: inherit;
310
- --fk-margin-button-y: inherit;
311
- --fk-margin-button-t: var(--fk-margin-button-y, 0);
312
- --fk-margin-button-r: var(--fk-margin-button-x, 0.5em);
313
- --fk-margin-button-b: var(--fk-margin-button-y, 0);
314
- --fk-margin-button-l: var(--fk-margin-button-x, 0);
315
- --fk-margin-button: var(--fk-margin-button-t) var(--fk-margin-button-r)
316
- var(--fk-margin-button-b) var(--fk-margin-button-l);
317
-
318
- /* default icons */
319
- --fk-icon-close: PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogIDxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiPjwvbGluZT4KICA8bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ij48L2xpbmU +
320
- Cjwvc3ZnPg==;
321
- --fk-icon-down: PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogIDxwb2x5bGluZSBwb2ludHM9IjYgOSAxMiAxNSAxOCA5Ij48L3BvbHlsaW5lPgo8L3N2Zz4=;
322
- --fk-icon-fileDoc: PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogIDxwYXRoIGQ9Ik0xNC41IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY3LjVMMTQuNSAyeiI +
323
- PC9wYXRoPgogIDxwb2x5bGluZSBwb2ludHM9IjE0IDIgMTQgOCAyMCA4Ij48L3BvbHlsaW5lPgogIDxsaW5lIHgxPSIxNiIgeTE9IjEzIiB4Mj0iOCIgeTI9IjEzIj48L2xpbmU +
324
- CiAgPGxpbmUgeDE9IjE2IiB5MT0iMTciIHgyPSI4IiB5Mj0iMTciPjwvbGluZT4KICA8bGluZSB4MT0iMTAiIHkxPSI5IiB4Mj0iOCIgeTI9IjkiPjwvbGluZT4KPC9zdmc +;
325
- --fk-icon-check: PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPgogIDxwb2x5bGluZSBwb2ludHM9IjIwIDYgOSAxNyA0IDEyIj48L3BvbHlsaW5lPgo8L3N2Zz4=;
326
- --fk-icon-circle: PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMiAzMiI +
327
- PGNpcmNsZSBmaWxsPSJjdXJyZW50Q29sb3IiIGN4PSIxNiIgY3k9IjE2IiByPSIxNiIvPjwvc3ZnPg==;
328
-
329
- /* icons by location name */
330
- --fk-icon-fileItem: var(--fk-icon-fileDoc);
331
- --fk-icon-fileRemove: var(--fk-icon-close);
332
- --fk-icon-noFiles: var(--fk-icon-fileDoc);
333
- --fk-icon-select: var(--fk-icon-down);
334
- --fk-icon-checkboxDecorator: var(--fk-icon-check);
335
- --fk-icon-radioDecorator: var(--fk-icon-circle);
336
- }
337
-
338
- [data-type='checkbox'] .formkit-input ~ .formkit-decorator .formkit-icon,
339
- [data-type='radio'] .formkit-input ~ .formkit-decorator .formkit-icon {
340
- padding: 2px;
341
- }
342
- [data-type='radio'] .formkit-input ~ .formkit-decorator .formkit-icon {
343
- padding: 3px;
344
- }
345
-
346
- [data-invalid] .formkit-inner {
347
- --fk-color-border-focus: var(--fk-color-danger);
348
- --fk-color-border-shadow: var(--bms-red-10);
349
-
350
- box-shadow: 0 0 0 var(--fk-border-width-focus) var(--fk-color-border-focus),
351
- 0 0 2px 2px var(--fk-color-border-shadow);
352
- }
353
- }
@@ -1,35 +0,0 @@
1
- import template from '@/documentation/template_field_dependency.mdx';
2
-
3
- export default {
4
- parameters: {
5
- docs: {
6
- page: template,
7
- },
8
- },
9
- title: 'Composants/form/Formkit Exemple',
10
- };
11
-
12
- const Template = () => ({
13
- template: `
14
- <FormKit type="form" >
15
- <FormKit
16
- type="text"
17
- label="Champ texte"
18
- placeholder="Placeholder"
19
- />
20
- <FormKit
21
- type="select"
22
- label="Select"
23
- :options="['titi', 'toto']"
24
- />
25
- <FormKit
26
- type="select"
27
- disabled
28
- label="Select disabled"
29
- />
30
- </FormKit>
31
- `,
32
- });
33
-
34
- export const Default = Template.bind({});
35
- Default.args = {};
@@ -1,20 +0,0 @@
1
- import { Canvas, Meta, Story } from '@storybook/addon-docs/blocks';
2
- import { Primary as BmsButton } from '../components/button/BmsButton.stories.js';
3
-
4
- <Meta title="Documentation/Buttons/Primary Button" />
5
-
6
- # <img src="./BmsIcon.png" /> Primary Button
7
-
8
- The primary button should represent the main action on a screen, there should only be one primary button on an interface, if multiple actions are possible then it is essential to create a hierarchy of actions and use a primary and several secondary or tertiary.
9
-
10
- ![](./button/CoverPrimaryButton.png)
11
-
12
- ## Anatomy
13
-
14
- Buttons allow users to perform an action or to navigate to another page. They have multiple styles for various needs, and are ideal for calling attention to where a user needs to do something in order to move forward in a flow.
15
-
16
- ![](./button/PrimaryButtonRepresentation.png)
17
-
18
- ## Component
19
-
20
- <Canvas of={BmsButton} args={{ type: 'primary' }} />