@youcan/celeste 0.6.47 → 0.6.48
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/celeste.css +22 -22
- package/dist/cjs/popover-content.js +6 -2
- package/dist/components/popover/popover-content.d.ts +3 -0
- package/dist/es/popover-content.js +6 -2
- package/package.json +3 -3
- package/src/components/popover/popover-content.vue +6 -1
- package/src/components/popover/stories/popover.stories.ts +16 -1
package/dist/celeste.css
CHANGED
|
@@ -3775,7 +3775,7 @@ to {
|
|
|
3775
3775
|
.celeste-modal-header:has(.description)[data-type=error] .icon[data-v-a655071e] {
|
|
3776
3776
|
background: var(--color-state-error-lighter);
|
|
3777
3777
|
color: var(--color-state-error-base);
|
|
3778
|
-
}[data-v-
|
|
3778
|
+
}[data-v-700edccc] .celeste-popover-content-wrapper {
|
|
3779
3779
|
z-index: 50;
|
|
3780
3780
|
min-width: 200px;
|
|
3781
3781
|
max-width: 400px;
|
|
@@ -3788,20 +3788,20 @@ to {
|
|
|
3788
3788
|
box-shadow: var(--shadow-regular-md);
|
|
3789
3789
|
scale: 0.95;
|
|
3790
3790
|
}
|
|
3791
|
-
[data-v-
|
|
3792
|
-
animation-name: open-
|
|
3791
|
+
[data-v-700edccc] .celeste-popover-content-wrapper[data-state=open] {
|
|
3792
|
+
animation-name: open-700edccc;
|
|
3793
3793
|
}
|
|
3794
|
-
[data-v-
|
|
3795
|
-
animation-name: close-
|
|
3794
|
+
[data-v-700edccc] .celeste-popover-content-wrapper[data-state=closed] {
|
|
3795
|
+
animation-name: close-700edccc;
|
|
3796
3796
|
}
|
|
3797
|
-
[data-v-
|
|
3797
|
+
[data-v-700edccc] .celeste-popover-content-wrapper .celeste-popover-arrow {
|
|
3798
3798
|
display: block;
|
|
3799
3799
|
position: relative;
|
|
3800
3800
|
width: 16px;
|
|
3801
3801
|
height: 8px;
|
|
3802
3802
|
overflow: hidden;
|
|
3803
3803
|
}
|
|
3804
|
-
[data-v-
|
|
3804
|
+
[data-v-700edccc] .celeste-popover-content-wrapper .celeste-popover-arrow::after {
|
|
3805
3805
|
content: "";
|
|
3806
3806
|
display: block;
|
|
3807
3807
|
position: absolute;
|
|
@@ -3815,75 +3815,75 @@ to {
|
|
|
3815
3815
|
background-color: var(--color-bg-white-0);
|
|
3816
3816
|
rotate: 45deg;
|
|
3817
3817
|
}
|
|
3818
|
-
[data-v-
|
|
3818
|
+
[data-v-700edccc] .celeste-popover-content-wrapper .celeste-popover-close-button {
|
|
3819
3819
|
position: absolute;
|
|
3820
3820
|
inset-inline-end: var(--spacing-16);
|
|
3821
3821
|
inset-block-start: var(--spacing-16);
|
|
3822
3822
|
}
|
|
3823
|
-
[data-v-
|
|
3823
|
+
[data-v-700edccc] .celeste-popover-content-wrapper .celeste-popover-content {
|
|
3824
3824
|
display: flex;
|
|
3825
3825
|
flex-direction: column;
|
|
3826
3826
|
gap: var(--spacing-8);
|
|
3827
3827
|
}
|
|
3828
|
-
[data-v-
|
|
3828
|
+
[data-v-700edccc] .celeste-popover-content-wrapper .celeste-popover-content .celeste-popover-title,[data-v-700edccc] .celeste-popover-content-wrapper .celeste-popover-content .celeste-popover-description {
|
|
3829
3829
|
margin: var(--spacing-0);
|
|
3830
3830
|
}
|
|
3831
|
-
[data-v-
|
|
3831
|
+
[data-v-700edccc] .celeste-popover-content-wrapper .celeste-popover-content .celeste-popover-title {
|
|
3832
3832
|
color: var(--color-text-strong-950);
|
|
3833
3833
|
font: var(--label-md);
|
|
3834
3834
|
}
|
|
3835
|
-
[data-v-
|
|
3835
|
+
[data-v-700edccc] .celeste-popover-content-wrapper .celeste-popover-content .celeste-popover-description {
|
|
3836
3836
|
color: var(--color-text-sub-600);
|
|
3837
3837
|
font: var(--paragraph-sm);
|
|
3838
3838
|
}
|
|
3839
|
-
[data-v-
|
|
3839
|
+
[data-v-700edccc] .celeste-popover-content-wrapper .celeste-popover-content .celeste-popover-icon {
|
|
3840
3840
|
box-sizing: border-box;
|
|
3841
3841
|
margin-block-end: var(--spacing-16);
|
|
3842
3842
|
border: 1px solid var(--color-stroke-soft-200);
|
|
3843
3843
|
border-radius: 50%;
|
|
3844
3844
|
color: var(--color-icon-sub-600);
|
|
3845
3845
|
}
|
|
3846
|
-
[data-v-
|
|
3846
|
+
[data-v-700edccc] .celeste-popover-content-wrapper .celeste-popover-content .celeste-popover-icon[data-icon-size=sm] {
|
|
3847
3847
|
width: 32px;
|
|
3848
3848
|
height: 32px;
|
|
3849
3849
|
padding: var(--spacing-6);
|
|
3850
3850
|
}
|
|
3851
|
-
[data-v-
|
|
3851
|
+
[data-v-700edccc] .celeste-popover-content-wrapper .celeste-popover-content .celeste-popover-icon[data-icon-size=md] {
|
|
3852
3852
|
width: 40px;
|
|
3853
3853
|
height: 40px;
|
|
3854
3854
|
padding: var(--spacing-6);
|
|
3855
3855
|
}
|
|
3856
|
-
[data-v-
|
|
3856
|
+
[data-v-700edccc] .celeste-popover-content-wrapper .celeste-popover-content .celeste-popover-icon[data-icon-size=lg] {
|
|
3857
3857
|
width: 48px;
|
|
3858
3858
|
height: 48px;
|
|
3859
3859
|
padding: var(--spacing-12);
|
|
3860
3860
|
}
|
|
3861
|
-
[data-v-
|
|
3861
|
+
[data-v-700edccc] .celeste-popover-content-wrapper .celeste-popover-content .celeste-popover-icon[data-icon-size=xl] {
|
|
3862
3862
|
width: 56px;
|
|
3863
3863
|
height: 56px;
|
|
3864
3864
|
padding: var(--spacing-14);
|
|
3865
3865
|
}
|
|
3866
|
-
[data-v-
|
|
3866
|
+
[data-v-700edccc] .celeste-popover-content-wrapper .celeste-popover-content .celeste-popover-icon[data-icon-size=xxl] {
|
|
3867
3867
|
width: 64px;
|
|
3868
3868
|
height: 64px;
|
|
3869
3869
|
padding: var(--spacing-16);
|
|
3870
3870
|
}
|
|
3871
|
-
[data-v-
|
|
3871
|
+
[data-v-700edccc] .celeste-popover-content-wrapper .celeste-popover-content .celeste-popover-icon i {
|
|
3872
3872
|
width: 100%;
|
|
3873
3873
|
height: 100%;
|
|
3874
3874
|
}
|
|
3875
|
-
[data-v-
|
|
3875
|
+
[data-v-700edccc] .celeste-popover-content-wrapper .celeste-popover-footer {
|
|
3876
3876
|
display: flex;
|
|
3877
3877
|
padding: var(--spacing-16);
|
|
3878
3878
|
border-block-start: 1px solid var(--color-stroke-soft-200);
|
|
3879
3879
|
}
|
|
3880
|
-
@keyframes open-
|
|
3880
|
+
@keyframes open-700edccc {
|
|
3881
3881
|
to {
|
|
3882
3882
|
opacity: 1;
|
|
3883
3883
|
scale: 1;
|
|
3884
3884
|
}
|
|
3885
3885
|
}
|
|
3886
|
-
@keyframes close-
|
|
3886
|
+
@keyframes close-700edccc {
|
|
3887
3887
|
from {
|
|
3888
3888
|
opacity: 1;
|
|
3889
3889
|
scale: 1;
|
|
@@ -20,6 +20,9 @@ const _sfc_main = /* @__PURE__ */ Mo.defineComponent({
|
|
|
20
20
|
props: {
|
|
21
21
|
class: {},
|
|
22
22
|
side: { default: "bottom" },
|
|
23
|
+
sideOffset: {},
|
|
24
|
+
align: {},
|
|
25
|
+
alignOffset: {},
|
|
23
26
|
title: {},
|
|
24
27
|
description: {},
|
|
25
28
|
showTail: { type: Boolean, default: true },
|
|
@@ -32,12 +35,13 @@ const _sfc_main = /* @__PURE__ */ Mo.defineComponent({
|
|
|
32
35
|
const props = __props;
|
|
33
36
|
const emits = __emit;
|
|
34
37
|
const delegatedProps = useDelegatedProps.useDelegatedProps(props, ["class", "title"]);
|
|
38
|
+
const sideOffset = props.showTail ? 0 : props.sideOffset ?? 8;
|
|
35
39
|
const forwarded = index.xe(delegatedProps, emits);
|
|
36
40
|
return (_ctx, _cache) => {
|
|
37
41
|
return Mo.openBlock(), Mo.createBlock(Mo.unref(index.bs), null, {
|
|
38
42
|
default: Mo.withCtx(() => [
|
|
39
43
|
Mo.createVNode(Mo.unref(index.ws), Mo.mergeProps({ ...Mo.unref(forwarded), ..._ctx.$attrs }, {
|
|
40
|
-
"side-offset":
|
|
44
|
+
"side-offset": Mo.unref(sideOffset),
|
|
41
45
|
class: Mo.unref(clsx.clsx)(
|
|
42
46
|
"celeste-popover-content-wrapper",
|
|
43
47
|
props.class
|
|
@@ -100,5 +104,5 @@ const _sfc_main = /* @__PURE__ */ Mo.defineComponent({
|
|
|
100
104
|
};
|
|
101
105
|
}
|
|
102
106
|
});
|
|
103
|
-
const PopoverContent = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
107
|
+
const PopoverContent = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["__scopeId", "data-v-700edccc"]]);
|
|
104
108
|
module.exports = PopoverContent;
|
|
@@ -3,6 +3,9 @@ import { PopoverContentProps as RadixPopoverContentProps } from 'radix-vue';
|
|
|
3
3
|
export interface PopoverContentProps {
|
|
4
4
|
class?: HTMLAttributes['class'];
|
|
5
5
|
side?: RadixPopoverContentProps['side'];
|
|
6
|
+
sideOffset?: RadixPopoverContentProps['sideOffset'];
|
|
7
|
+
align?: RadixPopoverContentProps['align'];
|
|
8
|
+
alignOffset?: RadixPopoverContentProps['alignOffset'];
|
|
6
9
|
title?: string;
|
|
7
10
|
description?: string;
|
|
8
11
|
showTail?: boolean;
|
|
@@ -19,6 +19,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
19
19
|
props: {
|
|
20
20
|
class: {},
|
|
21
21
|
side: { default: "bottom" },
|
|
22
|
+
sideOffset: {},
|
|
23
|
+
align: {},
|
|
24
|
+
alignOffset: {},
|
|
22
25
|
title: {},
|
|
23
26
|
description: {},
|
|
24
27
|
showTail: { type: Boolean, default: true },
|
|
@@ -31,12 +34,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
31
34
|
const props = __props;
|
|
32
35
|
const emits = __emit;
|
|
33
36
|
const delegatedProps = useDelegatedProps(props, ["class", "title"]);
|
|
37
|
+
const sideOffset = props.showTail ? 0 : props.sideOffset ?? 8;
|
|
34
38
|
const forwarded = xe(delegatedProps, emits);
|
|
35
39
|
return (_ctx, _cache) => {
|
|
36
40
|
return openBlock(), createBlock(unref(bs), null, {
|
|
37
41
|
default: withCtx(() => [
|
|
38
42
|
createVNode(unref(ws), mergeProps({ ...unref(forwarded), ..._ctx.$attrs }, {
|
|
39
|
-
"side-offset":
|
|
43
|
+
"side-offset": unref(sideOffset),
|
|
40
44
|
class: unref(clsx)(
|
|
41
45
|
"celeste-popover-content-wrapper",
|
|
42
46
|
props.class
|
|
@@ -99,7 +103,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
99
103
|
};
|
|
100
104
|
}
|
|
101
105
|
});
|
|
102
|
-
const PopoverContent = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
106
|
+
const PopoverContent = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-700edccc"]]);
|
|
103
107
|
export {
|
|
104
108
|
PopoverContent as default
|
|
105
109
|
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@youcan/celeste",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.6.
|
|
4
|
+
"version": "0.6.48",
|
|
5
5
|
"author": "YouCan <tech@youcan.shop>",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"youcan",
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
"radix-vue": "^1.9.12",
|
|
45
45
|
"tinycolor2": "^1.6.0",
|
|
46
46
|
"vue-sonner": "^2.0.2",
|
|
47
|
-
"@youcan/celeste-tokens": "0.6.
|
|
48
|
-
"@youcan/celeste-icons": "0.6.
|
|
47
|
+
"@youcan/celeste-tokens": "0.6.48",
|
|
48
|
+
"@youcan/celeste-icons": "0.6.48"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
51
|
"@chromatic-com/storybook": "^4.0.0",
|
|
@@ -30,6 +30,8 @@ const emits = defineEmits<PopoverContentEmits>();
|
|
|
30
30
|
|
|
31
31
|
const delegatedProps = useDelegatedProps(props, ['class', 'title']);
|
|
32
32
|
|
|
33
|
+
const sideOffset = props.showTail ? 0 : props.sideOffset ?? 8;
|
|
34
|
+
|
|
33
35
|
const forwarded = useForwardPropsEmits(delegatedProps, emits);
|
|
34
36
|
</script>
|
|
35
37
|
|
|
@@ -37,6 +39,9 @@ const forwarded = useForwardPropsEmits(delegatedProps, emits);
|
|
|
37
39
|
export interface PopoverContentProps {
|
|
38
40
|
class?: HTMLAttributes['class'];
|
|
39
41
|
side?: RadixPopoverContentProps['side'];
|
|
42
|
+
sideOffset?: RadixPopoverContentProps['sideOffset'];
|
|
43
|
+
align?: RadixPopoverContentProps['align'];
|
|
44
|
+
alignOffset?: RadixPopoverContentProps['alignOffset'];
|
|
40
45
|
title?: string;
|
|
41
46
|
description?: string;
|
|
42
47
|
showTail?: boolean;
|
|
@@ -50,7 +55,7 @@ export interface PopoverContentProps {
|
|
|
50
55
|
<PopoverPortal>
|
|
51
56
|
<PopoverContent
|
|
52
57
|
v-bind="{ ...forwarded, ...$attrs }"
|
|
53
|
-
:side-offset="
|
|
58
|
+
:side-offset="sideOffset"
|
|
54
59
|
:class="
|
|
55
60
|
clsx(
|
|
56
61
|
'celeste-popover-content-wrapper',
|
|
@@ -16,6 +16,19 @@ const meta: Meta<typeof PopoverContent> = {
|
|
|
16
16
|
options: ['top', 'right', 'bottom', 'left'],
|
|
17
17
|
description: 'The preferred side of the trigger to render against when open.',
|
|
18
18
|
},
|
|
19
|
+
sideOffset: {
|
|
20
|
+
control: { type: 'number' },
|
|
21
|
+
description: 'The distance in pixels from the trigger.',
|
|
22
|
+
},
|
|
23
|
+
align: {
|
|
24
|
+
control: { type: 'select' },
|
|
25
|
+
options: ['start', 'center', 'end'],
|
|
26
|
+
description: 'The preferred alignment against the trigger. May change when collisions occur.',
|
|
27
|
+
},
|
|
28
|
+
alignOffset: {
|
|
29
|
+
control: { type: 'number' },
|
|
30
|
+
description: 'An offset in pixels from the start or end alignment options.',
|
|
31
|
+
},
|
|
19
32
|
title: {
|
|
20
33
|
control: { type: 'text' },
|
|
21
34
|
description: 'The title text for the popover',
|
|
@@ -46,6 +59,8 @@ const meta: Meta<typeof PopoverContent> = {
|
|
|
46
59
|
side: 'bottom',
|
|
47
60
|
title: 'Popover Title',
|
|
48
61
|
description: 'This is the popover description text.',
|
|
62
|
+
align: 'center',
|
|
63
|
+
alignOffset: 0,
|
|
49
64
|
showTail: true,
|
|
50
65
|
dismissible: true,
|
|
51
66
|
iconSize: 'lg',
|
|
@@ -279,7 +294,7 @@ export const Positioning: Story = {
|
|
|
279
294
|
return { args };
|
|
280
295
|
},
|
|
281
296
|
template: `
|
|
282
|
-
<div style="display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr); grid-column-gap: 0px; grid-gap: var(--spacing-8)">
|
|
297
|
+
<div style="display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr); place-items: center; grid-column-gap: 0px; grid-gap: var(--spacing-8)">
|
|
283
298
|
<div />
|
|
284
299
|
<Popover v-bind="args" style="grid-column-start: 2;">
|
|
285
300
|
<PopoverTrigger>
|