@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 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-fae157b1] .celeste-popover-content-wrapper {
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-fae157b1] .celeste-popover-content-wrapper[data-state=open] {
3792
- animation-name: open-fae157b1;
3791
+ [data-v-700edccc] .celeste-popover-content-wrapper[data-state=open] {
3792
+ animation-name: open-700edccc;
3793
3793
  }
3794
- [data-v-fae157b1] .celeste-popover-content-wrapper[data-state=closed] {
3795
- animation-name: close-fae157b1;
3794
+ [data-v-700edccc] .celeste-popover-content-wrapper[data-state=closed] {
3795
+ animation-name: close-700edccc;
3796
3796
  }
3797
- [data-v-fae157b1] .celeste-popover-content-wrapper .celeste-popover-arrow {
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-fae157b1] .celeste-popover-content-wrapper .celeste-popover-arrow::after {
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-fae157b1] .celeste-popover-content-wrapper .celeste-popover-close-button {
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-fae157b1] .celeste-popover-content-wrapper .celeste-popover-content {
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-fae157b1] .celeste-popover-content-wrapper .celeste-popover-content .celeste-popover-title,[data-v-fae157b1] .celeste-popover-content-wrapper .celeste-popover-content .celeste-popover-description {
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-fae157b1] .celeste-popover-content-wrapper .celeste-popover-content .celeste-popover-title {
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-fae157b1] .celeste-popover-content-wrapper .celeste-popover-content .celeste-popover-description {
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-fae157b1] .celeste-popover-content-wrapper .celeste-popover-content .celeste-popover-icon {
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-fae157b1] .celeste-popover-content-wrapper .celeste-popover-content .celeste-popover-icon[data-icon-size=sm] {
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-fae157b1] .celeste-popover-content-wrapper .celeste-popover-content .celeste-popover-icon[data-icon-size=md] {
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-fae157b1] .celeste-popover-content-wrapper .celeste-popover-content .celeste-popover-icon[data-icon-size=lg] {
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-fae157b1] .celeste-popover-content-wrapper .celeste-popover-content .celeste-popover-icon[data-icon-size=xl] {
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-fae157b1] .celeste-popover-content-wrapper .celeste-popover-content .celeste-popover-icon[data-icon-size=xxl] {
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-fae157b1] .celeste-popover-content-wrapper .celeste-popover-content .celeste-popover-icon i {
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-fae157b1] .celeste-popover-content-wrapper .celeste-popover-footer {
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-fae157b1 {
3880
+ @keyframes open-700edccc {
3881
3881
  to {
3882
3882
  opacity: 1;
3883
3883
  scale: 1;
3884
3884
  }
3885
3885
  }
3886
- @keyframes close-fae157b1 {
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": _ctx.showTail ? 0 : 8,
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-fae157b1"]]);
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": _ctx.showTail ? 0 : 8,
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-fae157b1"]]);
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.47",
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.47",
48
- "@youcan/celeste-icons": "0.6.47"
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="showTail ? 0 : 8"
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>