@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.
- package/dist/components/feedback/BmsGhost.vue.d.ts +24 -0
- package/dist/components/form/BmsAutocomplete.vue.d.ts +2 -2
- package/dist/components/form/BmsFilePicker.vue.d.ts +4 -0
- package/dist/components/form/BmsMultiSelect.vue.d.ts +4 -0
- package/dist/components/form/BmsServerAutocomplete.vue.d.ts +2 -2
- package/dist/components/form/RawAutocomplete.vue.d.ts +11 -3
- package/dist/components/layout/BmsFloatingWindow.vue.d.ts +20 -1
- package/dist/index.d.ts +2 -1
- package/dist/mockServiceWorker.js +1 -1
- package/dist/sipa-bms-ui.css +117 -393
- package/dist/sipa-bms-ui.es.js +447 -129
- package/dist/sipa-bms-ui.es.js.map +1 -1
- package/dist/sipa-bms-ui.umd.js +449 -130
- package/dist/sipa-bms-ui.umd.js.map +1 -1
- package/package.json +12 -12
- package/src/assets/scss/_conf.scss +0 -1
- package/src/assets/scss/app.scss +0 -1
- package/src/components/button/BmsAllButtons.stories.js +50 -23
- package/src/components/button/BmsButton.stories.js +153 -59
- package/src/components/feedback/BmsGhost.stories.js +60 -0
- package/src/components/feedback/BmsGhost.vue +82 -0
- package/src/components/feedback/BmsTooltip.vue +15 -1
- package/src/components/feedback/UiTooltip.vue +9 -1
- package/src/components/form/BmsFilePicker.stories.js +6 -1
- package/src/components/form/BmsFilePicker.vue +10 -5
- package/src/components/form/BmsMultiSelect.vue +32 -25
- package/src/components/form/BmsSelect.vue +18 -16
- package/src/components/form/RawAutocomplete.vue +16 -4
- package/src/components/form/RawInputText.vue +1 -0
- package/src/components/layout/BmsFloatingWindow.stories.js +226 -12
- package/src/components/layout/BmsFloatingWindow.vue +286 -13
- package/src/components/layout/BmsModal.stories.js +2 -1
- package/src/components/layout/BmsSplitWindow.vue +0 -1
- package/src/components/table/BmsTableFilters.vue +1 -1
- package/src/documentation/button/primaryButton.mdx +142 -0
- package/src/documentation/{secondaryButton.mdx → button/secondaryButton.mdx} +2 -2
- package/src/documentation/foundation/contributing.mdx +72 -0
- package/src/documentation/foundation/gettingstarted.mdx +7 -0
- package/src/documentation/{principles.mdx → foundation/principles.mdx} +9 -9
- package/src/documentation/icons.mdx +43 -0
- package/src/index.ts +3 -0
- package/src/showroom/pages/forms.vue +10 -1
- package/src/assets/scss/_formkit.scss +0 -353
- package/src/components/form/Form.stories.js +0 -35
- package/src/documentation/primaryButton.mdx +0 -20
- /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
|
-
|
|
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
|
-

|
|
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
|
-

|
|
17
|
-
|
|
18
|
-
## Component
|
|
19
|
-
|
|
20
|
-
<Canvas of={BmsButton} args={{ type: 'primary' }} />
|
|
File without changes
|