origam 2.18.11 → 2.18.13
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 +643 -0
- package/dist/src/assets/css/main.css +1 -1
- package/dist/src/assets/css/tokens/dark.css +4 -0
- package/dist/src/assets/css/tokens/light.css +2 -0
- package/dist/src/assets/scss/tokens/_dark.scss +4 -0
- package/dist/src/assets/scss/tokens/_light.scss +2 -0
- package/dist/src/components/Chart/OrigamChartAxis.vue +2 -1
- package/dist/src/components/Chip/OrigamChip.vue +38 -0
- package/dist/src/components/ClientOnly/OrigamClientOnly.vue +1 -1
- package/dist/src/components/CommandPalette/OrigamCommandPalette.vue +2 -0
- package/dist/src/components/DataTable/OrigamDataTableHeaders.vue +1 -0
- package/dist/src/components/DataTable/OrigamDataTableHeadersCell.vue +1 -0
- package/dist/src/components/DataTable/OrigamDataTableRows.vue +3 -1
- package/dist/src/components/DefaultsProvider/OrigamDefaultsProvider.vue +1 -0
- package/dist/src/components/Drawer/OrigamDrawer.vue +1 -0
- package/dist/src/components/Skeleton/OrigamSkeleton.vue +4 -0
- package/dist/src/components/Snackbar/OrigamSnackbarGroup.vue +2 -0
- package/dist/src/components/VirtualScroll/OrigamVirtualScroll.vue +2 -0
- package/dist/src/components/VirtualScroll/OrigamVirtualScrollItem.vue +1 -0
- package/dist/src/types/tokens.type.d.ts +1 -1
- package/package.json +3 -1
|
@@ -448,6 +448,8 @@
|
|
|
448
448
|
--origam-chip__close---max-width: 18px;
|
|
449
449
|
--origam-chip__close---user-select: none;
|
|
450
450
|
--origam-chip__close---flex: 0 1 auto;
|
|
451
|
+
--origam-chip__prepend---margin-inline-end: 6px;
|
|
452
|
+
--origam-chip__append---margin-inline-start: 6px;
|
|
451
453
|
--origam-chip__filter---transition-property: transform, opacity;
|
|
452
454
|
--origam-chip__filter---transition-duration: var(--origam-motion__duration---normal);
|
|
453
455
|
--origam-chip__filter---transition-timing-function: var(--origam-motion__easing---standard);
|
|
@@ -3190,6 +3192,8 @@
|
|
|
3190
3192
|
--origam-chip__close---max-width: 18px;
|
|
3191
3193
|
--origam-chip__close---user-select: none;
|
|
3192
3194
|
--origam-chip__close---flex: 0 1 auto;
|
|
3195
|
+
--origam-chip__prepend---margin-inline-end: 6px;
|
|
3196
|
+
--origam-chip__append---margin-inline-start: 6px;
|
|
3193
3197
|
--origam-chip__filter---transition-property: transform, opacity;
|
|
3194
3198
|
--origam-chip__filter---transition-duration: var(--origam-motion__duration---normal);
|
|
3195
3199
|
--origam-chip__filter---transition-timing-function: var(--origam-motion__easing---standard);
|
|
@@ -350,6 +350,8 @@
|
|
|
350
350
|
--origam-chip__close---max-width: 18px;
|
|
351
351
|
--origam-chip__close---user-select: none;
|
|
352
352
|
--origam-chip__close---flex: 0 1 auto;
|
|
353
|
+
--origam-chip__prepend---margin-inline-end: 6px;
|
|
354
|
+
--origam-chip__append---margin-inline-start: 6px;
|
|
353
355
|
--origam-chip__filter---transition-property: transform, opacity;
|
|
354
356
|
--origam-chip__filter---transition-duration: var(--origam-motion__duration---normal);
|
|
355
357
|
--origam-chip__filter---transition-timing-function: var(--origam-motion__easing---standard);
|
|
@@ -448,6 +448,8 @@
|
|
|
448
448
|
--origam-chip__close---max-width: 18px;
|
|
449
449
|
--origam-chip__close---user-select: none;
|
|
450
450
|
--origam-chip__close---flex: 0 1 auto;
|
|
451
|
+
--origam-chip__prepend---margin-inline-end: 6px;
|
|
452
|
+
--origam-chip__append---margin-inline-start: 6px;
|
|
451
453
|
--origam-chip__filter---transition-property: transform, opacity;
|
|
452
454
|
--origam-chip__filter---transition-duration: var(--origam-motion__duration---normal);
|
|
453
455
|
--origam-chip__filter---transition-timing-function: var(--origam-motion__easing---standard);
|
|
@@ -3190,6 +3192,8 @@
|
|
|
3190
3192
|
--origam-chip__close---max-width: 18px;
|
|
3191
3193
|
--origam-chip__close---user-select: none;
|
|
3192
3194
|
--origam-chip__close---flex: 0 1 auto;
|
|
3195
|
+
--origam-chip__prepend---margin-inline-end: 6px;
|
|
3196
|
+
--origam-chip__append---margin-inline-start: 6px;
|
|
3193
3197
|
--origam-chip__filter---transition-property: transform, opacity;
|
|
3194
3198
|
--origam-chip__filter---transition-duration: var(--origam-motion__duration---normal);
|
|
3195
3199
|
--origam-chip__filter---transition-timing-function: var(--origam-motion__easing---standard);
|
|
@@ -350,6 +350,8 @@
|
|
|
350
350
|
--origam-chip__close---max-width: 18px;
|
|
351
351
|
--origam-chip__close---user-select: none;
|
|
352
352
|
--origam-chip__close---flex: 0 1 auto;
|
|
353
|
+
--origam-chip__prepend---margin-inline-end: 6px;
|
|
354
|
+
--origam-chip__append---margin-inline-start: 6px;
|
|
353
355
|
--origam-chip__filter---transition-property: transform, opacity;
|
|
354
356
|
--origam-chip__filter---transition-duration: var(--origam-motion__duration---normal);
|
|
355
357
|
--origam-chip__filter---transition-timing-function: var(--origam-motion__easing---standard);
|
|
@@ -435,6 +435,44 @@ defineExpose({
|
|
|
435
435
|
display: inline-flex;
|
|
436
436
|
}
|
|
437
437
|
|
|
438
|
+
// #957 — `__close` owned both of its margin channels since forever;
|
|
439
|
+
// `__prepend` / `__append` owned NEITHER, so a chip with an icon
|
|
440
|
+
// rendered it glued to its label (measured: 0px, `margin-inline-end:
|
|
441
|
+
// 0px`, `gap: normal`, on all 8 identities) and no theme could fix it
|
|
442
|
+
// — the channel had never been opened. Default 6px is not a new design
|
|
443
|
+
// value: it is `--origam-chip__close---margin-inline-start`'s, i.e.
|
|
444
|
+
// the component's own precedent for "gutter between an affix and the
|
|
445
|
+
// label".
|
|
446
|
+
//
|
|
447
|
+
// ⛔ The gutter is CONDITIONAL on the label being non-empty, and that
|
|
448
|
+
// is the whole difficulty. `__content` has NO `v-if`: an icon-only
|
|
449
|
+
// chip (`<origam-chip prepend-icon="…"/>`, no text, no default slot)
|
|
450
|
+
// still renders `<div class="origam-chip__content">` holding the
|
|
451
|
+
// empty text node Vue emits for `{{ text }}`. An unconditional margin
|
|
452
|
+
// would therefore hang a 6px PHANTOM gutter off the trailing edge of
|
|
453
|
+
// every icon-only chip, in 217 places. Measured in Chromium, which is
|
|
454
|
+
// what makes `:empty` the right discriminator here:
|
|
455
|
+
//
|
|
456
|
+
// content = "text" → :empty false → gutter 6px
|
|
457
|
+
// content = <div></div> → :empty true → gutter 0px
|
|
458
|
+
// content = empty text node (Vue!) → :empty true → gutter 0px
|
|
459
|
+
// content = " " (one space) → :empty false → gutter 6px
|
|
460
|
+
//
|
|
461
|
+
// `__prepend` needs `:has(+ …)` because the element it depends on is
|
|
462
|
+
// its FOLLOWING sibling; `__append` reads its PRECEDING sibling, so a
|
|
463
|
+
// plain `+` combinator suffices. Both keep the declaration on the
|
|
464
|
+
// element the token NAMES, so `--origam-chip__prepend---*` stays
|
|
465
|
+
// readable as "the prepend zone's own margin". Where `:has()` is
|
|
466
|
+
// unsupported the prepend gutter is simply absent — today's rendering,
|
|
467
|
+
// not a regression.
|
|
468
|
+
&__prepend:has(+ #{$this}__content:not(:empty)) {
|
|
469
|
+
margin-inline-end: var(--origam-chip__prepend---margin-inline-end, 6px);
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
&__content:not(:empty) + &__append {
|
|
473
|
+
margin-inline-start: var(--origam-chip__append---margin-inline-start, 6px);
|
|
474
|
+
}
|
|
475
|
+
|
|
438
476
|
&__close {
|
|
439
477
|
cursor: var(--origam-chip__close---cursor, pointer);
|
|
440
478
|
flex: var(--origam-chip__close---flex, 0 1 auto);
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
<script lang="ts" setup>
|
|
18
18
|
import { onMounted, ref } from "vue";
|
|
19
|
-
defineOptions({ name: "OrigamClientOnly" });
|
|
19
|
+
defineOptions({ name: "OrigamClientOnly", inheritAttrs: false });
|
|
20
20
|
defineProps({
|
|
21
21
|
placeholderTag: { type: String, required: false },
|
|
22
22
|
placeholderClass: { type: String, required: false }
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
:class="rootClasses"
|
|
9
9
|
:style="rootStyles"
|
|
10
10
|
:data-cy="dataCy"
|
|
11
|
+
v-bind="{ ...$attrs }"
|
|
11
12
|
@click.self="handleBackdropClick"
|
|
12
13
|
@keydown="handleKeydown"
|
|
13
14
|
>
|
|
@@ -178,6 +179,7 @@ import { IN_BROWSER } from "../../consts/Commons/commons.const";
|
|
|
178
179
|
import { MDI_ICONS } from "../../enums/Commons/mdi.enum";
|
|
179
180
|
import { getUid } from "../../utils/Commons/getCurrentInstance.util";
|
|
180
181
|
import { fuzzyMatch } from "../../utils/CommandPalette/fuzzy-match.util";
|
|
182
|
+
defineOptions({ inheritAttrs: false });
|
|
181
183
|
const props = defineProps({
|
|
182
184
|
modelValue: { type: Boolean, required: false, default: false },
|
|
183
185
|
hotkey: { type: [Array, null], required: false, default: () => COMMAND_PALETTE_DEFAULT_HOTKEY },
|
|
@@ -80,6 +80,7 @@ import { LOADER_KIND } from "../../enums/Commons/loader.enum";
|
|
|
80
80
|
import { PROGRESS_TYPE } from "../../enums/Progress/progress.enum";
|
|
81
81
|
import { pickDataTableHeaderColumnSlotNames } from "../../utils/DataTable/slot-name.util";
|
|
82
82
|
import { computed, ref, StyleValue, useSlots } from "vue";
|
|
83
|
+
defineOptions({ inheritAttrs: false });
|
|
83
84
|
const props = defineProps({
|
|
84
85
|
id: { type: String, required: false },
|
|
85
86
|
class: { type: [String, Array, Object], required: false },
|
|
@@ -42,6 +42,7 @@ import { useProps } from "../../composables/Commons/props.composable";
|
|
|
42
42
|
import { useStyle } from "../../composables/Commons/style.composable";
|
|
43
43
|
import { pickDataTableHeaderColumnSlotNames } from "../../utils/DataTable/slot-name.util";
|
|
44
44
|
import { computed, ref, StyleValue, useSlots } from "vue";
|
|
45
|
+
defineOptions({ inheritAttrs: false });
|
|
45
46
|
const props = defineProps({
|
|
46
47
|
headers: { type: Array, required: true },
|
|
47
48
|
id: { type: String, required: false },
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
class="origam-data-table-rows origam-data-table-rows--no-data"
|
|
42
42
|
:class="textColorClasses"
|
|
43
43
|
:style="textColorStyles"
|
|
44
|
+
v-bind="{ ...$attrs }"
|
|
44
45
|
>
|
|
45
46
|
<td :colspan="columns.length">
|
|
46
47
|
<slot name="no-data">
|
|
@@ -153,6 +154,7 @@ import {
|
|
|
153
154
|
} from "../../utils/DataTable/slot-name.util";
|
|
154
155
|
import { computed, mergeProps, useAttrs, useSlots } from "vue";
|
|
155
156
|
const attrs = useAttrs();
|
|
157
|
+
defineOptions({ inheritAttrs: false });
|
|
156
158
|
const props = defineProps({
|
|
157
159
|
hideNoData: { type: Boolean, required: false },
|
|
158
160
|
items: { type: Array, required: false },
|
|
@@ -248,7 +250,7 @@ const itemSlotProps = (item, index) => {
|
|
|
248
250
|
* read by the row at all. Both fell through
|
|
249
251
|
* `<OrigamDataTableRow>`'s undeclared-key path
|
|
250
252
|
* straight into `$attrs`, which its
|
|
251
|
-
* `v-bind="
|
|
253
|
+
* `v-bind="{ ...$attrs }"` root then serialised as literal
|
|
252
254
|
* DOM attributes on every rendered `<tr>`:
|
|
253
255
|
* `index="0" mobile="false"`.
|
|
254
256
|
*
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { computed } from "vue";
|
|
7
7
|
import { provideDefaults } from "../../composables/Commons/defaults.composable";
|
|
8
8
|
import { useProps } from "../../composables/Commons/props.composable";
|
|
9
|
+
defineOptions({ inheritAttrs: false });
|
|
9
10
|
const props = defineProps({
|
|
10
11
|
defaults: { type: Object, required: false },
|
|
11
12
|
disabled: { type: Boolean, required: false },
|
|
@@ -88,6 +88,7 @@ import { useTouch } from "../../composables/Commons/touch.composable";
|
|
|
88
88
|
import { useVModel } from "../../composables/Commons/vModel.composable";
|
|
89
89
|
import { INLINE } from "../../enums/Commons/anchor.enum";
|
|
90
90
|
import { int } from "../../utils/Commons/commons.util";
|
|
91
|
+
defineOptions({ inheritAttrs: false });
|
|
91
92
|
const props = defineProps({
|
|
92
93
|
disableResizeWatcher: { type: Boolean, required: false },
|
|
93
94
|
disableRouteWatcher: { type: Boolean, required: false },
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
:aria-label="skeletonAriaLabel"
|
|
12
12
|
aria-busy="true"
|
|
13
13
|
role="status"
|
|
14
|
+
v-bind="{ ...$attrs }"
|
|
14
15
|
>
|
|
15
16
|
<div
|
|
16
17
|
:class="skeletonCircularClasses"
|
|
@@ -30,6 +31,7 @@
|
|
|
30
31
|
:aria-label="skeletonAriaLabel"
|
|
31
32
|
aria-busy="true"
|
|
32
33
|
role="status"
|
|
34
|
+
v-bind="{ ...$attrs }"
|
|
33
35
|
>
|
|
34
36
|
<div :class="skeletonRectangularClasses"/>
|
|
35
37
|
<div :class="skeletonTextClasses"/>
|
|
@@ -45,6 +47,7 @@
|
|
|
45
47
|
:aria-label="skeletonAriaLabel"
|
|
46
48
|
aria-busy="true"
|
|
47
49
|
role="status"
|
|
50
|
+
v-bind="{ ...$attrs }"
|
|
48
51
|
/>
|
|
49
52
|
</template>
|
|
50
53
|
|
|
@@ -57,6 +60,7 @@ import { useSize } from "../../composables/Commons/size.composable";
|
|
|
57
60
|
import { useStyle } from "../../composables/Commons/style.composable";
|
|
58
61
|
import { convertToUnit } from "../../utils/Commons/commons.util";
|
|
59
62
|
import { computed, toRef } from "vue";
|
|
63
|
+
defineOptions({ inheritAttrs: false });
|
|
60
64
|
const props = defineProps({
|
|
61
65
|
variant: { type: null, required: false, default: "rectangular" },
|
|
62
66
|
width: { type: [String, Number], required: false },
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
:class="stackClasses"
|
|
9
9
|
:style="stackStyles"
|
|
10
10
|
role="region"
|
|
11
|
+
v-bind="{ ...$attrs }"
|
|
11
12
|
>
|
|
12
13
|
<transition-group
|
|
13
14
|
:name="transitionName"
|
|
@@ -44,6 +45,7 @@ import { useSnackbarGroupInternal } from "../../composables/Snackbar/snackbarGro
|
|
|
44
45
|
import { INTENT } from "../../enums/Commons/intent.enum";
|
|
45
46
|
import { SNACKBAR_GROUP_DIRECTION } from "../../enums/Snackbar/snackbar-group.enum";
|
|
46
47
|
import { SNACKBAR_GROUP_DEFAULT_DURATION, SNACKBAR_GROUP_DEFAULT_ID, SNACKBAR_GROUP_DEFAULT_MAX, SNACKBAR_GROUP_DEFAULT_SPACING } from "../../consts/Snackbar/snackbar-group.const";
|
|
48
|
+
defineOptions({ inheritAttrs: false });
|
|
47
49
|
const props = defineProps({
|
|
48
50
|
id: { type: String, required: false, default: SNACKBAR_GROUP_DEFAULT_ID },
|
|
49
51
|
location: { type: null, required: false, default: "bottom-right" },
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
ref="containerRef"
|
|
41
41
|
:class="virtualScrollClasses"
|
|
42
42
|
:style="virtualScrollStyles"
|
|
43
|
+
v-bind="{ ...$attrs }"
|
|
43
44
|
@scrollend="handleScrollend"
|
|
44
45
|
@scroll-passive="handleScroll"
|
|
45
46
|
>
|
|
@@ -89,6 +90,7 @@ import { useVirtual } from "../../composables/Commons/virtual.composable";
|
|
|
89
90
|
import { convertToUnit } from "../../utils/Commons/commons.util";
|
|
90
91
|
import { getCurrentInstance } from "../../utils/Commons/getCurrentInstance.util";
|
|
91
92
|
import { getScrollParent } from "../../utils/Commons/scroll.util";
|
|
93
|
+
defineOptions({ inheritAttrs: false });
|
|
92
94
|
const props = defineProps({
|
|
93
95
|
items: { type: Array, required: false, default: () => [] },
|
|
94
96
|
renderless: { type: Boolean, required: false },
|
|
@@ -23,6 +23,7 @@ import { computed, StyleValue, useAttrs, watch } from "vue";
|
|
|
23
23
|
import { useProps } from "../../composables/Commons/props.composable";
|
|
24
24
|
import { useResizeObserver } from "../../composables/Commons/resizeObserver.composable";
|
|
25
25
|
import { useStyle } from "../../composables/Commons/style.composable";
|
|
26
|
+
defineOptions({ inheritAttrs: false });
|
|
26
27
|
const props = defineProps({
|
|
27
28
|
renderless: { type: Boolean, required: false },
|
|
28
29
|
id: { type: String, required: false },
|