@youcan/celeste 0.20.0 → 0.21.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/ai/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Celeste agent indexes
2
2
 
3
- Generated from source for `@youcan/celeste@0.20.0`. Do not edit.
3
+ Generated from source for `@youcan/celeste@0.21.0`. Do not edit.
4
4
 
5
5
  - `component-registry.json` — every component's props, events, slots, story and usage example, and
6
6
  every exported helper such as `toast`
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "version": "0.20.0",
4
- "generatedAt": "2026-10-09T19:10:43.716Z",
3
+ "version": "0.21.0",
4
+ "generatedAt": "2026-10-09T20:04:00.780Z",
5
5
  "components": {
6
6
  "Alert": {
7
7
  "name": "Alert",
@@ -1335,6 +1335,10 @@
1335
1335
  }
1336
1336
  ],
1337
1337
  "slots": [
1338
+ {
1339
+ "name": "trigger",
1340
+ "type": "{}"
1341
+ },
1338
1342
  {
1339
1343
  "name": "swatches",
1340
1344
  "type": "{}"
package/ai/icons.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "version": "0.20.0",
4
- "generatedAt": "2026-10-09T19:10:38.848Z",
3
+ "version": "0.21.0",
4
+ "generatedAt": "2026-10-09T20:03:57.574Z",
5
5
  "prefix": "celeste",
6
6
  "icons": [
7
7
  {
package/ai/tokens.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "version": "0.20.0",
4
- "generatedAt": "2026-10-09T19:10:38.848Z",
3
+ "version": "0.21.0",
4
+ "generatedAt": "2026-10-09T20:03:57.574Z",
5
5
  "tokens": [
6
6
  {
7
7
  "name": "animation-extra-fast",
package/dist/celeste.css CHANGED
@@ -3094,24 +3094,24 @@ to {
3094
3094
  cursor: pointer;
3095
3095
  }.celeste-color-slider .slider-track[data-v-3ca280fa] {
3096
3096
  background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);
3097
- }.celeste-picker-trigger[data-v-d9442cfd] {
3097
+ }.celeste-picker-trigger[data-v-bf0ff694] {
3098
3098
  gap: var(--spacing-12);
3099
3099
  }
3100
- .celeste-picker-trigger .celeste-selected-color[data-v-d9442cfd] {
3100
+ .celeste-picker-trigger .celeste-selected-color[data-v-bf0ff694] {
3101
3101
  --color-tile-size: 20px;
3102
3102
  display: block;
3103
3103
  width: var(--color-tile-size);
3104
3104
  height: var(--color-tile-size);
3105
3105
  border: 1px solid var(--color-bg-soft-200);
3106
3106
  border-radius: var(--radius-4);
3107
- background-color: var(--v6500f742);
3107
+ background-color: var(--v819487ba);
3108
3108
  }
3109
- .celeste-color-picker-wrapper[data-v-d9442cfd] {
3109
+ .celeste-color-picker-wrapper[data-v-bf0ff694] {
3110
3110
  display: grid;
3111
3111
  box-sizing: border-box;
3112
3112
  width: 272px;
3113
3113
  }
3114
- .celeste-color-picker-wrapper .celeste-color-picker[data-v-d9442cfd] {
3114
+ .celeste-color-picker-wrapper .celeste-color-picker[data-v-bf0ff694] {
3115
3115
  display: flex;
3116
3116
  flex-direction: column;
3117
3117
  align-items: center;
@@ -3119,71 +3119,71 @@ to {
3119
3119
  padding: var(--spacing-16);
3120
3120
  gap: var(--spacing-12);
3121
3121
  }
3122
- .celeste-color-picker-wrapper .celeste-color-picker[data-v-d9442cfd] > * {
3122
+ .celeste-color-picker-wrapper .celeste-color-picker[data-v-bf0ff694] > * {
3123
3123
  box-sizing: border-box;
3124
3124
  }
3125
- .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel[data-v-d9442cfd] {
3125
+ .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel[data-v-bf0ff694] {
3126
3126
  display: flex;
3127
3127
  flex-direction: column;
3128
3128
  width: 100%;
3129
3129
  gap: var(--spacing-4);
3130
3130
  }
3131
- .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-selected-color-format[data-v-d9442cfd] {
3131
+ .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-selected-color-format[data-v-bf0ff694] {
3132
3132
  text-transform: uppercase;
3133
3133
  }
3134
- .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-color-controls[data-v-d9442cfd] {
3134
+ .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-color-controls[data-v-bf0ff694] {
3135
3135
  display: flex;
3136
3136
  width: 100%;
3137
3137
  height: 32px;
3138
3138
  }
3139
- .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-color-controls .celeste-color-sip[data-v-d9442cfd] {
3139
+ .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-color-controls .celeste-color-sip[data-v-bf0ff694] {
3140
3140
  border-start-end-radius: 0;
3141
3141
  border-end-end-radius: 0;
3142
3142
  }
3143
- .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-color-controls .celeste-color-sip[data-v-d9442cfd]:focus-within {
3143
+ .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-color-controls .celeste-color-sip[data-v-bf0ff694]:focus-within {
3144
3144
  z-index: 2;
3145
3145
  }
3146
- .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-color-controls[data-v-d9442cfd] > * {
3146
+ .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-color-controls[data-v-bf0ff694] > * {
3147
3147
  box-sizing: border-box;
3148
3148
  height: 100%;
3149
3149
  }
3150
- .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-color-controls .celeste-color-format-inputs[data-v-d9442cfd] {
3150
+ .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-color-controls .celeste-color-format-inputs[data-v-bf0ff694] {
3151
3151
  display: flex;
3152
3152
  }
3153
- .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-color-controls .celeste-color-format-inputs .color-input[data-v-d9442cfd] {
3153
+ .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-color-controls .celeste-color-format-inputs .color-input[data-v-bf0ff694] {
3154
3154
  margin-inline-start: -1px;
3155
3155
  border-radius: 0;
3156
3156
  }
3157
- .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-color-controls .celeste-color-format-inputs .color-input[data-v-d9442cfd]:focus-within {
3157
+ .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-color-controls .celeste-color-format-inputs .color-input[data-v-bf0ff694]:focus-within {
3158
3158
  z-index: 2;
3159
3159
  }
3160
- .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-color-controls .celeste-color-format-inputs .color-input[data-v-d9442cfd]:last-child {
3160
+ .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-color-controls .celeste-color-format-inputs .color-input[data-v-bf0ff694]:last-child {
3161
3161
  border-start-end-radius: var(--radius-8);
3162
3162
  border-end-end-radius: var(--radius-8);
3163
3163
  }
3164
- .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-color-controls .celeste-color-format-inputs .color-input[data-v-d9442cfd]:first-child:nth-last-child(4), .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-color-controls .celeste-color-format-inputs .color-input[data-v-d9442cfd]:first-child:nth-last-child(4) ~ * {
3164
+ .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-color-controls .celeste-color-format-inputs .color-input[data-v-bf0ff694]:first-child:nth-last-child(4), .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-color-controls .celeste-color-format-inputs .color-input[data-v-bf0ff694]:first-child:nth-last-child(4) ~ * {
3165
3165
  flex: 1;
3166
3166
  }
3167
- .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-color-controls .celeste-color-format-inputs .color-input[data-v-d9442cfd]:first-child:nth-last-child(2) {
3167
+ .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-color-controls .celeste-color-format-inputs .color-input[data-v-bf0ff694]:first-child:nth-last-child(2) {
3168
3168
  flex: 3;
3169
3169
  }
3170
- .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-color-controls .celeste-color-format-inputs .color-input[data-v-d9442cfd]:last-child:nth-child(2) {
3170
+ .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-color-controls .celeste-color-format-inputs .color-input[data-v-bf0ff694]:last-child:nth-child(2) {
3171
3171
  flex: 1;
3172
3172
  }
3173
- .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-color-controls .celeste-color-format-inputs:first-child:last-child .color-input[data-v-d9442cfd]:first-child {
3173
+ .celeste-color-picker-wrapper .celeste-color-picker .celeste-color-control-panel .celeste-color-controls .celeste-color-format-inputs:first-child:last-child .color-input[data-v-bf0ff694]:first-child {
3174
3174
  border-start-start-radius: var(--radius-8);
3175
3175
  border-end-start-radius: var(--radius-8);
3176
3176
  }
3177
- .celeste-color-picker-wrapper .celeste-color-swatches[data-v-d9442cfd] {
3177
+ .celeste-color-picker-wrapper .celeste-color-swatches[data-v-bf0ff694] {
3178
3178
  display: flex;
3179
3179
  flex-direction: column;
3180
3180
  padding: var(--radius-16);
3181
3181
  border-block-start: 1px solid var(--color-stroke-soft-200);
3182
3182
  }
3183
- [data-v-d9442cfd] .celeste-color-format {
3183
+ [data-v-bf0ff694] .celeste-color-format {
3184
3184
  text-transform: uppercase;
3185
3185
  }
3186
- [data-v-d9442cfd] .celeste-color-thumb {
3186
+ [data-v-bf0ff694] .celeste-color-thumb {
3187
3187
  position: absolute;
3188
3188
  width: 12px;
3189
3189
  height: 12px;
@@ -3191,18 +3191,18 @@ to {
3191
3191
  border-radius: 50%;
3192
3192
  box-shadow: 0 0 0 2px var(--color-bg-white-0), var(--shadow-toggle-switch);
3193
3193
  }
3194
- [data-v-d9442cfd] .celeste-color-slider {
3194
+ [data-v-bf0ff694] .celeste-color-slider {
3195
3195
  --track-height: 8px;
3196
3196
  width: 100%;
3197
3197
  padding-block: var(--spacing-4);
3198
3198
  }
3199
- [data-v-d9442cfd] .celeste-color-slider .slider-track {
3199
+ [data-v-bf0ff694] .celeste-color-slider .slider-track {
3200
3200
  position: relative;
3201
3201
  width: 100%;
3202
3202
  height: var(--track-height);
3203
3203
  border-radius: calc(var(--track-height) / 2);
3204
3204
  }
3205
- [data-v-d9442cfd] .celeste-color-slider .slider-track .celeste-color-thumb {
3205
+ [data-v-bf0ff694] .celeste-color-slider .slider-track .celeste-color-thumb {
3206
3206
  top: calc(var(--track-height) / 2);
3207
3207
  }.celeste-dropdown-empty-list[data-v-4423b209] {
3208
3208
  display: flex;
@@ -54,7 +54,7 @@ var color_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0,
54
54
  },
55
55
  emits: ["update:modelValue"],
56
56
  setup(__props, { emit: __emit }) {
57
- (0, vue.useCssVars)((_ctx) => ({ "v6500f742": _ctx.modelValue }));
57
+ (0, vue.useCssVars)((_ctx) => ({ "v819487ba": _ctx.modelValue }));
58
58
  const props = __props;
59
59
  const emit = __emit;
60
60
  const delegatedProps = require_use_delegated_props.useDelegatedProps(props, "class");
@@ -214,15 +214,15 @@ var color_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0,
214
214
  return (_ctx, _cache) => {
215
215
  return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(require_popover.popover_default), null, {
216
216
  default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(require_popover_trigger.popover_trigger_default), null, {
217
- default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(require_button.button_default), {
217
+ default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "trigger", {}, () => [(0, vue.createVNode)((0, vue.unref)(require_button.button_default), {
218
218
  class: "celeste-picker-trigger",
219
219
  intent: "neutral",
220
220
  variant: "stroke"
221
221
  }, {
222
222
  default: (0, vue.withCtx)(() => [_cache[53] || (_cache[53] = (0, vue.createElementVNode)("span", { class: "celeste-selected-color" }, null, -1)), (0, vue.createTextVNode)(" " + (0, vue.toDisplayString)(__props.label), 1)]),
223
223
  _: 1
224
- })]),
225
- _: 1
224
+ })], true)]),
225
+ _: 3
226
226
  }), (0, vue.createVNode)((0, vue.unref)(require_popover_content.popover_content_default), { dismissible: false }, {
227
227
  default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("div", (0, vue.mergeProps)({ class: "celeste-color-picker-wrapper" }, (0, vue.unref)(forwarded)), [(0, vue.createElementVNode)("div", _hoisted_1, [
228
228
  (0, vue.createVNode)((0, vue.unref)(require_color_area.color_area_default), {
@@ -471,7 +471,7 @@ var color_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0,
471
471
  });
472
472
  //#endregion
473
473
  //#region src/components/color-picker/color-picker.vue
474
- var color_picker_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(color_picker_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-d9442cfd"]]);
474
+ var color_picker_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(color_picker_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-bf0ff694"]]);
475
475
  //#endregion
476
476
  Object.defineProperty(exports, "color_picker_default", {
477
477
  enumerable: true,
@@ -29,9 +29,11 @@ declare global {
29
29
  EyeDropper?: EyeDropperConstructor | undefined;
30
30
  }
31
31
  }
32
- declare var __VLS_198: {};
32
+ declare var __VLS_14: {}, __VLS_200: {};
33
33
  type __VLS_Slots = {} & {
34
- swatches?: (props: typeof __VLS_198) => any;
34
+ trigger?: (props: typeof __VLS_14) => any;
35
+ } & {
36
+ swatches?: (props: typeof __VLS_200) => any;
35
37
  };
36
38
  declare const __VLS_base: import('vue').DefineComponent<ColorPickerProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
37
39
  "update:modelValue": (value: string) => any;
@@ -56,7 +56,7 @@ var color_picker_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
56
56
  },
57
57
  emits: ["update:modelValue"],
58
58
  setup(__props, { emit: __emit }) {
59
- useCssVars((_ctx) => ({ "v6500f742": _ctx.modelValue }));
59
+ useCssVars((_ctx) => ({ "v819487ba": _ctx.modelValue }));
60
60
  const props = __props;
61
61
  const emit = __emit;
62
62
  const delegatedProps = useDelegatedProps(props, "class");
@@ -216,15 +216,15 @@ var color_picker_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
216
216
  return (_ctx, _cache) => {
217
217
  return openBlock(), createBlock(unref(popover_default), null, {
218
218
  default: withCtx(() => [createVNode(unref(popover_trigger_default), null, {
219
- default: withCtx(() => [createVNode(unref(button_default), {
219
+ default: withCtx(() => [renderSlot(_ctx.$slots, "trigger", {}, () => [createVNode(unref(button_default), {
220
220
  class: "celeste-picker-trigger",
221
221
  intent: "neutral",
222
222
  variant: "stroke"
223
223
  }, {
224
224
  default: withCtx(() => [_cache[53] || (_cache[53] = createElementVNode("span", { class: "celeste-selected-color" }, null, -1)), createTextVNode(" " + toDisplayString(__props.label), 1)]),
225
225
  _: 1
226
- })]),
227
- _: 1
226
+ })], true)]),
227
+ _: 3
228
228
  }), createVNode(unref(popover_content_default), { dismissible: false }, {
229
229
  default: withCtx(() => [createElementVNode("div", mergeProps({ class: "celeste-color-picker-wrapper" }, unref(forwarded)), [createElementVNode("div", _hoisted_1, [
230
230
  createVNode(unref(color_area_default), {
@@ -470,6 +470,6 @@ var color_picker_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
470
470
  });
471
471
  };
472
472
  }
473
- }), [["__scopeId", "data-v-d9442cfd"]]);
473
+ }), [["__scopeId", "data-v-bf0ff694"]]);
474
474
  //#endregion
475
475
  export { color_picker_default as t };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@youcan/celeste",
3
3
  "type": "module",
4
- "version": "0.20.0",
4
+ "version": "0.21.0",
5
5
  "author": "YouCan <tech@youcan.shop>",
6
6
  "repository": {
7
7
  "type": "git",
@@ -52,8 +52,8 @@
52
52
  "reka-ui": "~2.10.5",
53
53
  "tinycolor2": "^1.6.0",
54
54
  "vue-sonner": "^2.0.9",
55
- "@youcan/celeste-icons": "0.20.0",
56
- "@youcan/celeste-tokens": "0.20.0"
55
+ "@youcan/celeste-icons": "0.21.0",
56
+ "@youcan/celeste-tokens": "0.21.0"
57
57
  },
58
58
  "devDependencies": {
59
59
  "@chromatic-com/storybook": "^5.3.0",
@@ -279,14 +279,16 @@ function handleColorValueKeyDown(event: KeyboardEvent, key: ColorKey) {
279
279
  <template>
280
280
  <Popover>
281
281
  <PopoverTrigger>
282
- <Button
283
- class="celeste-picker-trigger"
284
- intent="neutral"
285
- variant="stroke"
286
- >
287
- <span class="celeste-selected-color" />
288
- {{ label }}
289
- </Button>
282
+ <slot name="trigger">
283
+ <Button
284
+ class="celeste-picker-trigger"
285
+ intent="neutral"
286
+ variant="stroke"
287
+ >
288
+ <span class="celeste-selected-color" />
289
+ {{ label }}
290
+ </Button>
291
+ </slot>
290
292
  </PopoverTrigger>
291
293
  <PopoverContent :dismissible="false">
292
294
  <div class="celeste-color-picker-wrapper" v-bind="forwarded">
@@ -114,3 +114,21 @@ export const CustomLabel: Story = {
114
114
  `,
115
115
  }),
116
116
  };
117
+
118
+ export const CustomTrigger: Story = {
119
+ args: {},
120
+ render: (args: Story['args']) => ({
121
+ components: { ColorPicker },
122
+ setup() {
123
+ const color = ref('#E11D48');
124
+ return { args, color };
125
+ },
126
+ template: `
127
+ <ColorPicker v-model="color" v-bind="args">
128
+ <template #trigger>
129
+ <button type="button" :aria-label="color" :style="{ width: '48px', height: '48px', border: 0, borderRadius: '12px', background: color, cursor: 'pointer' }" />
130
+ </template>
131
+ </ColorPicker>
132
+ `,
133
+ }),
134
+ };