origam 2.23.2 → 2.25.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/CHANGELOG.md +52 -0
- package/dist/src/assets/css/main.css +1 -1
- package/dist/src/assets/css/tokens/dark.css +24 -22
- package/dist/src/assets/css/tokens/light.css +12 -11
- package/dist/src/assets/css/tokens/origam-utilities.css +84 -0
- package/dist/src/assets/css/tokens/primitive.css +1 -0
- package/dist/src/assets/scss/tokens/_dark.scss +24 -22
- package/dist/src/assets/scss/tokens/_light.scss +12 -11
- package/dist/src/assets/scss/tokens/_origam-utilities.scss +84 -0
- package/dist/src/assets/scss/tokens/_primitive.scss +1 -0
- package/dist/src/components/Btn/OrigamBtn.vue +89 -124
- package/dist/src/components/Field/OrigamField.vue +120 -152
- package/dist/src/components/Skeleton/OrigamSkeleton.vue +89 -125
- package/dist/src/components/Skeleton/OrigamSkeletonGroup.vue +52 -0
- package/dist/src/components/Skeleton/index.cjs +7 -0
- package/dist/src/components/Skeleton/index.d.ts +1 -0
- package/dist/src/components/Skeleton/index.js +1 -0
- package/dist/src/components/Switch/OrigamSwitch.vue +1 -69
- package/dist/src/consts/Skeleton/skeleton.const.cjs +7 -0
- package/dist/src/consts/Skeleton/skeleton.const.d.ts +11 -0
- package/dist/src/consts/Skeleton/skeleton.const.js +1 -0
- package/dist/src/consts/index.cjs +11 -0
- package/dist/src/consts/index.d.ts +1 -0
- package/dist/src/consts/index.js +1 -0
- package/dist/src/enums/Skeleton/skeleton.enum.cjs +9 -2
- package/dist/src/enums/Skeleton/skeleton.enum.d.ts +27 -4
- package/dist/src/enums/Skeleton/skeleton.enum.js +7 -0
- package/dist/src/interfaces/Btn/btn.interface.d.ts +3 -3
- package/dist/src/interfaces/Commons/loader.interface.d.ts +13 -1
- package/dist/src/interfaces/Field/field.interface.d.ts +2 -2
- package/dist/src/interfaces/Skeleton/skeleton-group.interface.cjs +1 -0
- package/dist/src/interfaces/Skeleton/skeleton-group.interface.d.ts +34 -0
- package/dist/src/interfaces/Skeleton/skeleton-group.interface.js +0 -0
- package/dist/src/interfaces/Skeleton/skeleton.interface.d.ts +27 -10
- package/dist/src/interfaces/Switch/switch.interface.d.ts +2 -2
- package/dist/src/interfaces/index.cjs +11 -0
- package/dist/src/interfaces/index.d.ts +1 -0
- package/dist/src/interfaces/index.js +1 -0
- package/dist/src/themes/origam.theme.cjs +2 -4
- package/dist/src/themes/origam.theme.js +2 -2
- package/dist/src/types/Commons/loader.type.d.ts +24 -0
- package/dist/src/types/Skeleton/skeleton.type.d.ts +4 -1
- package/dist/src/types/tokens.type.d.ts +1 -1
- package/package.json +1 -1
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
:href="hrefAttr"
|
|
13
13
|
:type="typeAttr"
|
|
14
14
|
:value="valueAttr"
|
|
15
|
+
@click.capture="handleClickCapture"
|
|
15
16
|
@click="handleClick"
|
|
16
17
|
@mouseenter="handleMouseenter"
|
|
17
18
|
@mouseleave="handleMouseleave"
|
|
@@ -25,99 +26,84 @@
|
|
|
25
26
|
class="origam-btn__underlay"
|
|
26
27
|
/>
|
|
27
28
|
|
|
28
|
-
<
|
|
29
|
+
<slot
|
|
29
30
|
v-if="isOverlayLoading"
|
|
30
|
-
|
|
31
|
-
class="origam-btn__progress"
|
|
31
|
+
name="loader"
|
|
32
32
|
v-bind="progressProps"
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
>
|
|
34
|
+
<origam-progress
|
|
35
|
+
ref="origamProgressRef"
|
|
36
|
+
class="origam-btn__progress"
|
|
37
|
+
v-bind="progressProps"
|
|
38
|
+
tag="span"
|
|
39
|
+
aria-hidden="true"
|
|
40
|
+
:thickness="loaderKind === 'line' ? 3 : undefined"
|
|
41
|
+
:color="color"
|
|
42
|
+
:active="true"
|
|
43
|
+
/>
|
|
44
|
+
</slot>
|
|
37
45
|
|
|
38
46
|
<slot name="wrapper">
|
|
39
|
-
<origam-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
<span class="origam-btn__loader">
|
|
48
|
+
<span
|
|
49
|
+
v-if="hasPrepend"
|
|
50
|
+
key="prepend"
|
|
51
|
+
class="origam-btn__prepend"
|
|
52
|
+
>
|
|
53
|
+
<slot name="prepend">
|
|
54
|
+
<origam-avatar
|
|
55
|
+
v-if="prependAvatar"
|
|
56
|
+
key="prepend-avatar"
|
|
57
|
+
:density="density"
|
|
58
|
+
:image="prependAvatar"
|
|
59
|
+
/>
|
|
60
|
+
<origam-icon
|
|
61
|
+
v-if="prependIcon"
|
|
62
|
+
key="prepend-icon"
|
|
63
|
+
:density="density"
|
|
64
|
+
:icon="prependIcon"
|
|
65
|
+
/>
|
|
66
|
+
</slot>
|
|
67
|
+
</span>
|
|
68
|
+
|
|
69
|
+
<span
|
|
70
|
+
class="origam-btn__content"
|
|
71
|
+
data-no-activator=""
|
|
72
|
+
>
|
|
73
|
+
<slot name="default">
|
|
74
|
+
<template v-if="hasIcon">
|
|
75
|
+
<origam-icon
|
|
76
|
+
key="content-icon"
|
|
77
|
+
:icon="icon"
|
|
78
|
+
/>
|
|
79
|
+
</template>
|
|
80
|
+
<template v-else>
|
|
81
|
+
{{ text }}
|
|
82
|
+
</template>
|
|
83
|
+
</slot>
|
|
84
|
+
</span>
|
|
85
|
+
|
|
86
|
+
<span
|
|
87
|
+
v-if="hasAppend"
|
|
88
|
+
key="append"
|
|
89
|
+
class="origam-btn__append"
|
|
46
90
|
>
|
|
47
|
-
<slot
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
v-
|
|
91
|
+
<slot name="append">
|
|
92
|
+
<origam-avatar
|
|
93
|
+
v-if="appendAvatar"
|
|
94
|
+
key="append-avatar"
|
|
95
|
+
:density="density"
|
|
96
|
+
:image="appendAvatar"
|
|
97
|
+
/>
|
|
98
|
+
<origam-icon
|
|
99
|
+
v-if="appendIcon"
|
|
100
|
+
key="append-icon"
|
|
101
|
+
:density="density"
|
|
102
|
+
:icon="appendIcon"
|
|
56
103
|
/>
|
|
57
104
|
</slot>
|
|
58
|
-
</
|
|
59
|
-
|
|
60
|
-
<template #default>
|
|
61
|
-
<span
|
|
62
|
-
v-if="hasPrepend"
|
|
63
|
-
key="prepend"
|
|
64
|
-
class="origam-btn__prepend"
|
|
65
|
-
>
|
|
66
|
-
<slot name="prepend">
|
|
67
|
-
<origam-avatar
|
|
68
|
-
v-if="prependAvatar"
|
|
69
|
-
key="prepend-avatar"
|
|
70
|
-
:density="density"
|
|
71
|
-
:image="prependAvatar"
|
|
72
|
-
/>
|
|
73
|
-
<origam-icon
|
|
74
|
-
v-if="prependIcon"
|
|
75
|
-
key="prepend-icon"
|
|
76
|
-
:density="density"
|
|
77
|
-
:icon="prependIcon"
|
|
78
|
-
/>
|
|
79
|
-
</slot>
|
|
80
|
-
</span>
|
|
81
|
-
|
|
82
|
-
<span
|
|
83
|
-
class="origam-btn__content"
|
|
84
|
-
data-no-activator=""
|
|
85
|
-
>
|
|
86
|
-
<slot name="default">
|
|
87
|
-
<template v-if="hasIcon">
|
|
88
|
-
<origam-icon
|
|
89
|
-
key="content-icon"
|
|
90
|
-
:icon="icon"
|
|
91
|
-
/>
|
|
92
|
-
</template>
|
|
93
|
-
<template v-else>
|
|
94
|
-
{{ text }}
|
|
95
|
-
</template>
|
|
96
|
-
</slot>
|
|
97
|
-
</span>
|
|
98
|
-
|
|
99
|
-
<span
|
|
100
|
-
v-if="hasAppend"
|
|
101
|
-
key="append"
|
|
102
|
-
class="origam-btn__append"
|
|
103
|
-
>
|
|
104
|
-
<slot name="append">
|
|
105
|
-
<origam-avatar
|
|
106
|
-
v-if="appendAvatar"
|
|
107
|
-
key="append-avatar"
|
|
108
|
-
:density="density"
|
|
109
|
-
:image="appendAvatar"
|
|
110
|
-
/>
|
|
111
|
-
<origam-icon
|
|
112
|
-
v-if="appendIcon"
|
|
113
|
-
key="append-icon"
|
|
114
|
-
:density="density"
|
|
115
|
-
:icon="appendIcon"
|
|
116
|
-
/>
|
|
117
|
-
</slot>
|
|
118
|
-
</span>
|
|
119
|
-
</template>
|
|
120
|
-
</origam-loader>
|
|
105
|
+
</span>
|
|
106
|
+
</span>
|
|
121
107
|
</slot>
|
|
122
108
|
</component>
|
|
123
109
|
</template>
|
|
@@ -126,9 +112,7 @@
|
|
|
126
112
|
import { computed, ref, StyleValue, toRef, useAttrs, useSlots, watchEffect } from "vue";
|
|
127
113
|
import OrigamAvatar from "../Avatar/OrigamAvatar.vue";
|
|
128
114
|
import OrigamIcon from "../Icon/OrigamIcon.vue";
|
|
129
|
-
import OrigamLoader from "../Loader/OrigamLoader.vue";
|
|
130
115
|
import OrigamProgress from "../Progress/OrigamProgress.vue";
|
|
131
|
-
import OrigamSkeleton from "../Skeleton/OrigamSkeleton.vue";
|
|
132
116
|
import { useAdjacent } from "../../composables/Commons/adjacent.composable";
|
|
133
117
|
import { useDensity } from "../../composables/Commons/density.composable";
|
|
134
118
|
import { useDimension } from "../../composables/Commons/dimension.composable";
|
|
@@ -290,7 +274,7 @@ const isActive = computed(() => {
|
|
|
290
274
|
});
|
|
291
275
|
const isDisabled = computed(() => group?.disabled.value || props.disabled);
|
|
292
276
|
const isAnchor = computed(() => link.tag.value === "a");
|
|
293
|
-
const ariaDisabled = computed(() => isAnchor.value && isDisabled.value ? "true" : void 0);
|
|
277
|
+
const ariaDisabled = computed(() => isAnchor.value && isDisabled.value || isLoading.value ? "true" : void 0);
|
|
294
278
|
const hrefAttr = computed(() => isAnchor.value && isDisabled.value ? void 0 : link.href.value);
|
|
295
279
|
const typeAttr = computed(() => isAnchor.value ? void 0 : "button");
|
|
296
280
|
const valueAttr = computed(() => {
|
|
@@ -306,7 +290,7 @@ const isRipple = computed(() => {
|
|
|
306
290
|
});
|
|
307
291
|
const { densityClasses } = useDensity(props);
|
|
308
292
|
const { dimensionStyles } = useDimension(props);
|
|
309
|
-
const { loaderClasses, loaderConfig } = useLoader(props, LOADER_KIND.CIRCULAR);
|
|
293
|
+
const { loaderClasses, isLoading, loaderConfig } = useLoader(props, LOADER_KIND.CIRCULAR);
|
|
310
294
|
const { locationStyles } = useLocation(props);
|
|
311
295
|
const { positionClasses } = usePosition(props);
|
|
312
296
|
const { sizeClasses, sizeStyles } = useSize(props);
|
|
@@ -331,6 +315,11 @@ const {
|
|
|
331
315
|
hasAppend,
|
|
332
316
|
hasPrepend
|
|
333
317
|
} = useAdjacent(props, prependIcon, appendIcon);
|
|
318
|
+
const handleClickCapture = (e) => {
|
|
319
|
+
if (!isLoading.value) return;
|
|
320
|
+
e.preventDefault();
|
|
321
|
+
e.stopImmediatePropagation();
|
|
322
|
+
};
|
|
334
323
|
const handleClick = (e) => {
|
|
335
324
|
if (isDisabled.value || link.isLink.value && (e.metaKey || e.ctrlKey || e.shiftKey || e.button !== 0 || attrs.target === "_blank")) return;
|
|
336
325
|
link.navigate?.(e);
|
|
@@ -339,9 +328,6 @@ const handleClick = (e) => {
|
|
|
339
328
|
const hasIcon = computed(() => {
|
|
340
329
|
return !!(icon.value && props.icon !== true);
|
|
341
330
|
});
|
|
342
|
-
const hasLoader = computed(() => {
|
|
343
|
-
return slots.loader || loaderConfig.value.isActive;
|
|
344
|
-
});
|
|
345
331
|
const isUnnamedIconOnly = computed(() => {
|
|
346
332
|
if (!hasIcon.value) return false;
|
|
347
333
|
if (slots.default || props.text) return false;
|
|
@@ -357,13 +343,9 @@ if (import.meta.env?.DEV) {
|
|
|
357
343
|
}
|
|
358
344
|
});
|
|
359
345
|
}
|
|
360
|
-
const
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
const isOverlayLoading = computed(() => {
|
|
364
|
-
return loaderConfig.value.isActive && (loaderConfig.value.kind === "line" || loaderConfig.value.kind === "circular");
|
|
365
|
-
});
|
|
366
|
-
const ariaBusy = computed(() => loaderConfig.value.isActive ? "true" : void 0);
|
|
346
|
+
const isOverlayLoading = computed(() => loaderConfig.value.isActive);
|
|
347
|
+
const loaderKind = computed(() => loaderConfig.value.kind === "line" ? "line" : "circular");
|
|
348
|
+
const ariaBusy = computed(() => isLoading.value ? "true" : void 0);
|
|
367
349
|
const progressProps = computed(() => {
|
|
368
350
|
const cfg = loaderConfig.value;
|
|
369
351
|
return Object.assign(
|
|
@@ -371,7 +353,7 @@ const progressProps = computed(() => {
|
|
|
371
353
|
size: "23",
|
|
372
354
|
indeterminate: cfg.indeterminate,
|
|
373
355
|
modelValue: cfg.modelValue,
|
|
374
|
-
type:
|
|
356
|
+
type: loaderKind.value === "line" ? PROGRESS_TYPE.LINEAR : PROGRESS_TYPE.CIRCULAR
|
|
375
357
|
},
|
|
376
358
|
origamProgressRef.value?.filterProps(props, ["class", "style", "id", "tag", "size", "type"]) ?? {},
|
|
377
359
|
cfg.overrides
|
|
@@ -405,14 +387,14 @@ const btnClasses = computed(() => {
|
|
|
405
387
|
// so consumers can pick either spelling.
|
|
406
388
|
"origam-btn--flat": props.flat,
|
|
407
389
|
"origam-btn--icon": !!props.icon,
|
|
408
|
-
|
|
390
|
+
// `origam-btn--loading` comes from `loaderClasses` below: one
|
|
391
|
+
// source, emitted once.
|
|
409
392
|
// Loader-kind discriminator so SCSS can branch per kind:
|
|
410
|
-
//
|
|
393
|
+
// - `--loader-line` -> linear progress strip overlay,
|
|
411
394
|
// keeps the label visible (like OrigamCard's loader).
|
|
412
|
-
//
|
|
413
|
-
//
|
|
414
|
-
|
|
415
|
-
[`origam-btn--loader-${loaderConfig.value.kind}`]: loaderConfig.value.isActive,
|
|
395
|
+
// - `--loader-circular` -> centred spinner over the label,
|
|
396
|
+
// which stays in the DOM (width and name preserved).
|
|
397
|
+
[`origam-btn--loader-${loaderKind.value}`]: isLoading.value,
|
|
416
398
|
"origam-btn--slim": props.slim,
|
|
417
399
|
"origam-btn--stacked": props.stacked
|
|
418
400
|
},
|
|
@@ -995,23 +977,6 @@ defineExpose({
|
|
|
995
977
|
}
|
|
996
978
|
}
|
|
997
979
|
|
|
998
|
-
// Skeleton — rectangular placeholder REPLACES the btn content
|
|
999
|
-
// entirely (OrigamLoader's #loader branch). The btn collapses to
|
|
1000
|
-
// the skeleton's natural size unless we give it a sensible
|
|
1001
|
-
// min-width / min-height.
|
|
1002
|
-
&--loader-skeleton {
|
|
1003
|
-
min-width: var(--origam-btn--loader-skeleton---min-width, 96px);
|
|
1004
|
-
min-height: var(--origam-btn--loader-skeleton---min-height, 36px);
|
|
1005
|
-
|
|
1006
|
-
:deep(.origam-skeleton--rectangular) {
|
|
1007
|
-
position: absolute;
|
|
1008
|
-
inset: 0;
|
|
1009
|
-
width: 100%;
|
|
1010
|
-
height: 100%;
|
|
1011
|
-
border-radius: inherit;
|
|
1012
|
-
}
|
|
1013
|
-
}
|
|
1014
|
-
|
|
1015
980
|
&--stacked {
|
|
1016
981
|
#{$this}__loader {
|
|
1017
982
|
grid-template-areas: "prepend" "content" "append";
|
|
@@ -9,16 +9,7 @@
|
|
|
9
9
|
>
|
|
10
10
|
<div class="origam-field__overlay"/>
|
|
11
11
|
|
|
12
|
-
<template v-if="
|
|
13
|
-
<origam-skeleton
|
|
14
|
-
class="origam-field__skeleton"
|
|
15
|
-
variant="rectangular"
|
|
16
|
-
:loading="true"
|
|
17
|
-
v-bind="loaderConfig.overrides"
|
|
18
|
-
/>
|
|
19
|
-
</template>
|
|
20
|
-
|
|
21
|
-
<template v-if="hasLoader && loaderConfig.kind !== 'skeleton'">
|
|
12
|
+
<template v-if="hasLoader">
|
|
22
13
|
<slot name="loader">
|
|
23
14
|
<div class="origam-field__loader">
|
|
24
15
|
<origam-progress
|
|
@@ -35,138 +26,136 @@
|
|
|
35
26
|
</slot>
|
|
36
27
|
</template>
|
|
37
28
|
|
|
38
|
-
<
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
>
|
|
47
|
-
<
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
29
|
+
<div
|
|
30
|
+
v-if="hasPrependInner"
|
|
31
|
+
key="prependInner"
|
|
32
|
+
class="origam-field__prepend-inner"
|
|
33
|
+
v-bind="prependInnerCommandAttrs"
|
|
34
|
+
@click="handleClickPrependInner"
|
|
35
|
+
@keydown="handleKeydownPrependInner"
|
|
36
|
+
>
|
|
37
|
+
<slot name="prependInner">
|
|
38
|
+
<origam-avatar
|
|
39
|
+
v-if="prependInnerAvatar"
|
|
40
|
+
key="prepend-avatar"
|
|
41
|
+
:density="density"
|
|
42
|
+
:image="prependInnerAvatar"
|
|
43
|
+
/>
|
|
44
|
+
<origam-icon
|
|
45
|
+
v-if="prependInnerIcon"
|
|
46
|
+
key="prepend-icon"
|
|
47
|
+
:density="density"
|
|
48
|
+
:icon="prependInnerIcon"
|
|
49
|
+
/>
|
|
50
|
+
</slot>
|
|
51
|
+
</div>
|
|
52
|
+
|
|
53
|
+
<div
|
|
54
|
+
class="origam-field__field"
|
|
55
|
+
data-no-activator=""
|
|
56
|
+
>
|
|
57
|
+
<template v-if="hasLabel">
|
|
58
|
+
<slot
|
|
59
|
+
name="label"
|
|
60
|
+
v-bind="labelProps"
|
|
61
|
+
>
|
|
62
|
+
<origam-label
|
|
63
|
+
v-bind="labelProps"
|
|
64
|
+
ref="origamLabelRef"
|
|
59
65
|
/>
|
|
60
66
|
</slot>
|
|
61
|
-
</
|
|
67
|
+
</template>
|
|
62
68
|
|
|
63
|
-
<
|
|
64
|
-
|
|
65
|
-
|
|
69
|
+
<span
|
|
70
|
+
v-if="hasPrefix"
|
|
71
|
+
class="origam-field__prefix"
|
|
66
72
|
>
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
<span
|
|
80
|
-
v-if="hasPrefix"
|
|
81
|
-
class="origam-field__prefix"
|
|
82
|
-
>
|
|
83
|
-
<slot name="prefix">
|
|
84
|
-
<span>
|
|
85
|
-
{{ prefix }}
|
|
86
|
-
</span>
|
|
87
|
-
</slot>
|
|
88
|
-
</span>
|
|
89
|
-
|
|
90
|
-
<slot
|
|
91
|
-
name="default"
|
|
92
|
-
v-bind="slotProps"
|
|
93
|
-
/>
|
|
94
|
-
|
|
95
|
-
<span
|
|
96
|
-
v-if="hasSuffix"
|
|
97
|
-
class="origam-field__suffix"
|
|
98
|
-
>
|
|
99
|
-
<slot name="suffix">
|
|
100
|
-
<span>
|
|
101
|
-
{{ suffix }}
|
|
102
|
-
</span>
|
|
103
|
-
</slot>
|
|
104
|
-
</span>
|
|
105
|
-
</div>
|
|
73
|
+
<slot name="prefix">
|
|
74
|
+
<span>
|
|
75
|
+
{{ prefix }}
|
|
76
|
+
</span>
|
|
77
|
+
</slot>
|
|
78
|
+
</span>
|
|
79
|
+
|
|
80
|
+
<slot
|
|
81
|
+
name="default"
|
|
82
|
+
v-bind="slotProps"
|
|
83
|
+
/>
|
|
106
84
|
|
|
107
|
-
<
|
|
108
|
-
v-if="
|
|
109
|
-
|
|
85
|
+
<span
|
|
86
|
+
v-if="hasSuffix"
|
|
87
|
+
class="origam-field__suffix"
|
|
110
88
|
>
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
@click="handleClickAppendInner"
|
|
133
|
-
@keydown="handleKeydownAppendInner"
|
|
89
|
+
<slot name="suffix">
|
|
90
|
+
<span>
|
|
91
|
+
{{ suffix }}
|
|
92
|
+
</span>
|
|
93
|
+
</slot>
|
|
94
|
+
</span>
|
|
95
|
+
</div>
|
|
96
|
+
|
|
97
|
+
<origam-expand-x
|
|
98
|
+
v-if="hasClear"
|
|
99
|
+
key="clear"
|
|
100
|
+
>
|
|
101
|
+
<button
|
|
102
|
+
v-show="dirty"
|
|
103
|
+
type="button"
|
|
104
|
+
class="origam-field__clearable"
|
|
105
|
+
:aria-label="clearLabel"
|
|
106
|
+
@blur="handleBlur"
|
|
107
|
+
@focus="handleFocus"
|
|
108
|
+
@mousedown="handleMousedownClear"
|
|
109
|
+
@keydown="handleKeydownClear"
|
|
134
110
|
>
|
|
135
|
-
<slot name="
|
|
136
|
-
<origam-
|
|
137
|
-
v-if="appendInnerAvatar"
|
|
138
|
-
key="append-avatar"
|
|
139
|
-
:density="density"
|
|
140
|
-
:image="appendInnerAvatar"
|
|
141
|
-
/>
|
|
142
|
-
<origam-icon
|
|
143
|
-
v-if="appendInnerIcon"
|
|
144
|
-
key="append-icon"
|
|
145
|
-
:density="density"
|
|
146
|
-
:icon="appendInnerIcon"
|
|
147
|
-
/>
|
|
111
|
+
<slot name="clear">
|
|
112
|
+
<origam-icon :icon="clearIcon"/>
|
|
148
113
|
</slot>
|
|
149
|
-
</
|
|
114
|
+
</button>
|
|
115
|
+
</origam-expand-x>
|
|
116
|
+
|
|
117
|
+
<div
|
|
118
|
+
v-if="hasAppendInner"
|
|
119
|
+
key="appendInner"
|
|
120
|
+
class="origam-field__append-inner"
|
|
121
|
+
v-bind="appendInnerCommandAttrs"
|
|
122
|
+
@click="handleClickAppendInner"
|
|
123
|
+
@keydown="handleKeydownAppendInner"
|
|
124
|
+
>
|
|
125
|
+
<slot name="appendInner">
|
|
126
|
+
<origam-avatar
|
|
127
|
+
v-if="appendInnerAvatar"
|
|
128
|
+
key="append-avatar"
|
|
129
|
+
:density="density"
|
|
130
|
+
:image="appendInnerAvatar"
|
|
131
|
+
/>
|
|
132
|
+
<origam-icon
|
|
133
|
+
v-if="appendInnerIcon"
|
|
134
|
+
key="append-icon"
|
|
135
|
+
:density="density"
|
|
136
|
+
:icon="appendInnerIcon"
|
|
137
|
+
/>
|
|
138
|
+
</slot>
|
|
139
|
+
</div>
|
|
150
140
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
141
|
+
<div class="origam-field__outlines">
|
|
142
|
+
<div class="origam-field__outline origam-field__outline--start"/>
|
|
143
|
+
<div class="origam-field__outline origam-field__outline--notch">
|
|
144
|
+
<template v-if="hasFloatingLabel">
|
|
145
|
+
<slot
|
|
146
|
+
name="floatingLabel"
|
|
147
|
+
v-bind="floatingLabelProps"
|
|
148
|
+
>
|
|
149
|
+
<origam-label
|
|
150
|
+
key="floating-label"
|
|
157
151
|
v-bind="floatingLabelProps"
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
ref="origamFloatingLabelRef"
|
|
163
|
-
/>
|
|
164
|
-
</slot>
|
|
165
|
-
</template>
|
|
166
|
-
</div>
|
|
167
|
-
<div class="origam-field__outline origam-field__outline--end"/>
|
|
152
|
+
ref="origamFloatingLabelRef"
|
|
153
|
+
/>
|
|
154
|
+
</slot>
|
|
155
|
+
</template>
|
|
168
156
|
</div>
|
|
169
|
-
|
|
157
|
+
<div class="origam-field__outline origam-field__outline--end"/>
|
|
158
|
+
</div>
|
|
170
159
|
|
|
171
160
|
</div>
|
|
172
161
|
</template>
|
|
@@ -178,7 +167,6 @@ import OrigamExpandX from "../Transition/OrigamExpandX.vue";
|
|
|
178
167
|
import OrigamIcon from "../Icon/OrigamIcon.vue";
|
|
179
168
|
import OrigamLabel from "../Label/OrigamLabel.vue";
|
|
180
169
|
import OrigamProgress from "../Progress/OrigamProgress.vue";
|
|
181
|
-
import OrigamSkeleton from "../Skeleton/OrigamSkeleton.vue";
|
|
182
170
|
import { useAdjacentInner } from "../../composables/Commons/adjacentInner.composable";
|
|
183
171
|
import { useBorder } from "../../composables/Commons/border.composable";
|
|
184
172
|
import { useBothColor } from "../../composables/Commons/bothColor.composable";
|
|
@@ -659,26 +647,6 @@ defineExpose({
|
|
|
659
647
|
backdrop-filter: var(--origam-field---backdrop-filter, none);
|
|
660
648
|
-webkit-backdrop-filter: var(--origam-field---backdrop-filter, none);
|
|
661
649
|
|
|
662
|
-
&__skeleton {
|
|
663
|
-
width: 100%;
|
|
664
|
-
/*
|
|
665
|
-
* ⛔ #595 — FAUX POSITIF de `token-var-channels`, a laisser en
|
|
666
|
-
* baseline. Le repli est `var(--origam-input__control---height, 36px)`,
|
|
667
|
-
* et ce token-la est ECRIT PAR INSTANCE : les quatre modificateurs
|
|
668
|
-
* de taille de ce composant (~l.1532-1550) comme ceux d `OrigamInput`
|
|
669
|
-
* et d `OrigamTextareaField` le posent sur l element
|
|
670
|
-
* (`sm`=28 / `md`=36 / `lg`=44 / `xl`=52px). Declarer
|
|
671
|
-
* `--origam-field__skeleton---min-height` a `:root` avec ce repli
|
|
672
|
-
* substituerait la valeur RACINE (36px) une fois pour toutes : le
|
|
673
|
-
* squelette cesserait de suivre la taille du champ. Meme piege que
|
|
674
|
-
* `---hover-x` sur SliderField.
|
|
675
|
-
*/
|
|
676
|
-
min-height: var(--origam-field__skeleton---min-height, var(--origam-input__control---height, 36px));
|
|
677
|
-
border-radius: var(--origam-field---border-radius, 8px);
|
|
678
|
-
grid-column: 1 / -1;
|
|
679
|
-
grid-row: 1;
|
|
680
|
-
}
|
|
681
|
-
|
|
682
650
|
&__loader {
|
|
683
651
|
position: absolute;
|
|
684
652
|
bottom: 0;
|