@youcan/celeste 0.18.0 → 0.20.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.
Files changed (42) hide show
  1. package/ai/README.md +1 -1
  2. package/ai/component-registry.json +229 -3
  3. package/ai/icons.json +2 -2
  4. package/ai/tokens.json +2 -2
  5. package/dist/celeste.css +573 -274
  6. package/dist/cjs/chunks/alpha-slider.cjs +1 -1
  7. package/dist/cjs/chunks/color-area.cjs +1 -1
  8. package/dist/cjs/chunks/color-picker.cjs +20 -25
  9. package/dist/cjs/chunks/color-swatch.cjs +4 -3
  10. package/dist/cjs/chunks/components.cjs +6 -4
  11. package/dist/cjs/chunks/gradient-picker.cjs +638 -0
  12. package/dist/cjs/chunks/textarea.cjs +1 -1
  13. package/dist/{es/chunks/use-color-model.js → cjs/chunks/tinycolor.cjs} +6 -23
  14. package/dist/cjs/gradient-picker.cjs +2 -0
  15. package/dist/cjs/gradient.cjs +71 -0
  16. package/dist/cjs/index.cjs +9 -4
  17. package/dist/cjs/use-color-model.cjs +27 -3
  18. package/dist/components/color-picker/gradient-picker.d.ts +56 -0
  19. package/dist/components/color-picker/index.d.ts +2 -0
  20. package/dist/es/chunks/alpha-slider.js +1 -1
  21. package/dist/es/chunks/color-area.js +1 -1
  22. package/dist/es/chunks/color-picker.js +12 -17
  23. package/dist/es/chunks/color-swatch.js +2 -1
  24. package/dist/es/chunks/components.js +6 -4
  25. package/dist/es/chunks/gradient-picker.js +632 -0
  26. package/dist/es/chunks/textarea.js +1 -1
  27. package/dist/{cjs/chunks/use-color-model.cjs → es/chunks/tinycolor.js} +1 -40
  28. package/dist/es/gradient-picker.js +2 -0
  29. package/dist/es/gradient.js +69 -0
  30. package/dist/es/index.js +7 -5
  31. package/dist/es/use-color-model.js +25 -1
  32. package/dist/utils/gradient.d.ts +13 -0
  33. package/dist/utils/index.d.ts +1 -0
  34. package/package.json +3 -3
  35. package/src/components/color-picker/color-picker.vue +8 -9
  36. package/src/components/color-picker/composable/use-color-model.ts +5 -0
  37. package/src/components/color-picker/gradient-picker.vue +950 -0
  38. package/src/components/color-picker/index.ts +3 -0
  39. package/src/components/color-picker/stories/gradient-picker.stories.ts +48 -0
  40. package/src/components/textarea/textarea.vue +1 -1
  41. package/src/utils/gradient.ts +90 -0
  42. package/src/utils/index.ts +1 -0
@@ -1,6 +1,6 @@
1
1
  const require_use_user_select = require("../use-user-select.cjs");
2
2
  const require_color = require("../color.cjs");
3
- const require_use_color_model = require("./use-color-model.cjs");
3
+ const require_use_color_model = require("../use-color-model.cjs");
4
4
  let vue = require("vue");
5
5
  //#region src/components/color-picker/alpha-slider.vue?vue&type=script&setup=true&lang.ts
6
6
  var _hoisted_1 = { class: "celeste-color-slider" };
@@ -1,7 +1,7 @@
1
1
  const require__plugin_vue_export_helper = require("./_plugin-vue_export-helper.cjs");
2
2
  const require_use_user_select = require("../use-user-select.cjs");
3
3
  const require_color = require("../color.cjs");
4
- const require_use_color_model = require("./use-color-model.cjs");
4
+ const require_use_color_model = require("../use-color-model.cjs");
5
5
  let vue = require("vue");
6
6
  //#region src/components/color-picker/color-area.vue?vue&type=script&setup=true&lang.ts
7
7
  var color_area_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue.defineComponent)({
@@ -9,21 +9,17 @@ require("./select-label.cjs");
9
9
  require("./select-separator.cjs");
10
10
  const require_select_value = require("./select-value.cjs");
11
11
  const require_button = require("./button.cjs");
12
- require("./compact-button.cjs");
13
- require("./fancy-button.cjs");
14
- require("./link-button.cjs");
15
- require("./social-button.cjs");
12
+ require("./gradient-picker.cjs");
16
13
  const require_use_delegated_props = require("../use-delegated-props.cjs");
17
14
  const require_color = require("../color.cjs");
18
- const require_use_color_model = require("./use-color-model.cjs");
15
+ const require_tinycolor = require("./tinycolor.cjs");
16
+ const require_use_color_model = require("../use-color-model.cjs");
19
17
  const require_alpha_slider = require("./alpha-slider.cjs");
20
18
  const require_color_area = require("./color-area.cjs");
21
19
  const require_popover = require("./popover.cjs");
22
20
  require("./select-group.cjs");
23
21
  require("./select-icon.cjs");
24
22
  const require_select = require("./select.cjs");
25
- require("./text-input-affix.cjs");
26
- require("./text-input-button.cjs");
27
23
  const require_text_input = require("./text-input.cjs");
28
24
  const require_color_swatch = require("./color-swatch.cjs");
29
25
  const require_hue_slider = require("./hue-slider.cjs");
@@ -58,7 +54,7 @@ var color_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0,
58
54
  },
59
55
  emits: ["update:modelValue"],
60
56
  setup(__props, { emit: __emit }) {
61
- (0, vue.useCssVars)((_ctx) => ({ "v19437362": _ctx.modelValue }));
57
+ (0, vue.useCssVars)((_ctx) => ({ "v6500f742": _ctx.modelValue }));
62
58
  const props = __props;
63
59
  const emit = __emit;
64
60
  const delegatedProps = require_use_delegated_props.useDelegatedProps(props, "class");
@@ -100,7 +96,7 @@ var color_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0,
100
96
  function sipColor() {
101
97
  if (!eyeDropper.value) return;
102
98
  eyeDropper.value.open().then((result) => {
103
- const newColor = require_use_color_model.tinycolor(result.sRGBHex);
99
+ const newColor = require_tinycolor.tinycolor(result.sRGBHex);
104
100
  tinyColorRef.value = newColor;
105
101
  }).catch((_) => {});
106
102
  }
@@ -119,22 +115,21 @@ var color_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0,
119
115
  } else if (key === "a") currentValue = tinyColorRef.value.getAlpha() * 100;
120
116
  return currentValue;
121
117
  }
122
- function validateInput(event) {
118
+ function nextInputValue(event) {
123
119
  const input = event.target;
124
- const inputEvent = event;
125
- const newValue = require_color.truncColorValue(input.value) + (inputEvent.data ?? "");
126
- if (!require_color.COLOR_NUMBER_VALIDATION_PATTERN.test(newValue)) event.preventDefault();
120
+ const { length } = input.value;
121
+ return input.value.slice(0, input.selectionStart ?? length) + (event.data ?? "") + input.value.slice(input.selectionEnd ?? length);
122
+ }
123
+ function validateInput(event) {
124
+ if (!require_color.COLOR_NUMBER_VALIDATION_PATTERN.test(nextInputValue(event).replace(/[%°]/g, "").trim())) event.preventDefault();
127
125
  }
128
126
  function validateHexInput(event) {
129
- const input = event.target;
130
- const inputEvent = event;
131
- const newValue = input.value + (inputEvent.data ?? "");
132
- if (!require_color.HEX_VALIDATION_PATTERN.test(newValue)) event.preventDefault();
127
+ if (!require_color.HEX_VALIDATION_PATTERN.test(nextInputValue(event))) event.preventDefault();
133
128
  }
134
129
  function inputChangeHex(event) {
135
130
  const colorInput = event.target?.value;
136
131
  if (!colorInput) return;
137
- tinyColorRef.value = require_use_color_model.tinycolor(colorInput);
132
+ tinyColorRef.value = require_tinycolor.tinycolor(colorInput);
138
133
  }
139
134
  function inputChangeRGB(event, key) {
140
135
  const value = Number(event.target?.value);
@@ -142,7 +137,7 @@ var color_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0,
142
137
  ...rgb.value,
143
138
  [key]: value
144
139
  };
145
- tinyColorRef.value = require_use_color_model.tinycolor(newRgb);
140
+ tinyColorRef.value = require_tinycolor.tinycolor(newRgb);
146
141
  }
147
142
  function inputChangeHSL(event, key) {
148
143
  const HSLInput = event.target?.value;
@@ -177,20 +172,20 @@ var color_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0,
177
172
  const { min, max } = require_color.getColorConstraints(key);
178
173
  const newValue = require_color.clamp(require_color.bumpColorValue(currentValue, direction), min, max);
179
174
  if (key === "r" || key === "g" || key === "b") {
180
- const newColor = require_use_color_model.tinycolor({
175
+ const newColor = require_tinycolor.tinycolor({
181
176
  ...rgb.value,
182
177
  [key]: newValue
183
178
  });
184
179
  emit("update:modelValue", newColor.toString());
185
180
  } else if (key === "h") {
186
181
  if (currentColorFormat.value === "hsl") {
187
- const newColor = require_use_color_model.tinycolor({
182
+ const newColor = require_tinycolor.tinycolor({
188
183
  ...tinyColorRef.value.toHsl(),
189
184
  h: newValue
190
185
  });
191
186
  emit("update:modelValue", newColor.toString());
192
187
  } else {
193
- const newColor = require_use_color_model.tinycolor({
188
+ const newColor = require_tinycolor.tinycolor({
194
189
  ...tinyColorRef.value.toHsv(),
195
190
  h: newValue
196
191
  });
@@ -198,14 +193,14 @@ var color_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0,
198
193
  }
199
194
  } else if (key === "s" || key === "l" || key === "v") {
200
195
  if (currentColorFormat.value === "hsl") {
201
- const newColor = require_use_color_model.tinycolor({
196
+ const newColor = require_tinycolor.tinycolor({
202
197
  ...tinyColorRef.value.toHsl(),
203
198
  [key]: newValue / 100
204
199
  });
205
200
  emit("update:modelValue", newColor.toString());
206
201
  } else {
207
202
  const currentHsv = tinyColorRef.value.toHsv();
208
- const newColor = require_use_color_model.tinycolor({
203
+ const newColor = require_tinycolor.tinycolor({
209
204
  ...currentHsv,
210
205
  [key]: newValue / 100
211
206
  });
@@ -476,7 +471,7 @@ var color_picker_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0,
476
471
  });
477
472
  //#endregion
478
473
  //#region src/components/color-picker/color-picker.vue
479
- 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-94b97787"]]);
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"]]);
480
475
  //#endregion
481
476
  Object.defineProperty(exports, "color_picker_default", {
482
477
  enumerable: true,
@@ -1,6 +1,7 @@
1
1
  const require__plugin_vue_export_helper = require("./_plugin-vue_export-helper.cjs");
2
2
  const require_color = require("../color.cjs");
3
- const require_use_color_model = require("./use-color-model.cjs");
3
+ const require_tinycolor = require("./tinycolor.cjs");
4
+ const require_use_color_model = require("../use-color-model.cjs");
4
5
  let vue = require("vue");
5
6
  //#region src/components/color-picker/color-swatch.vue?vue&type=script&setup=true&lang.ts
6
7
  var _hoisted_1 = { class: "celeste-color-swatch" };
@@ -29,10 +30,10 @@ var color_swatch_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0,
29
30
  return `0 0 0 2px var(--color-bg-white-0), 0 0 0 4px ${tinyColorRef.value.toRgbString()}`;
30
31
  });
31
32
  function handleSwatchColorClick(newColor) {
32
- tinyColorRef.value = require_use_color_model.tinycolor(newColor);
33
+ tinyColorRef.value = require_tinycolor.tinycolor(newColor);
33
34
  }
34
35
  function isSwatchColorSelected(color) {
35
- return tinyColorRef.value.toHex8String().toLocaleLowerCase() === require_use_color_model.tinycolor(color).toHex8String().toLocaleLowerCase();
36
+ return tinyColorRef.value.toHex8String().toLocaleLowerCase() === require_tinycolor.tinycolor(color).toHex8String().toLocaleLowerCase();
36
37
  }
37
38
  return (_ctx, _cache) => {
38
39
  return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_1, [(0, vue.createElementVNode)("span", _hoisted_2, (0, vue.toDisplayString)(__props.label), 1), (0, vue.createElementVNode)("div", _hoisted_3, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(__props.swatch, (swatchColor) => {
@@ -59,7 +59,7 @@ const require_compact_button = require("./compact-button.cjs");
59
59
  const require_fancy_button = require("./fancy-button.cjs");
60
60
  const require_link_button = require("./link-button.cjs");
61
61
  const require_social_button = require("./social-button.cjs");
62
- const require_color_picker = require("./color-picker.cjs");
62
+ const require_gradient_picker = require("./gradient-picker.cjs");
63
63
  const require_bar_chart = require("./bar-chart.cjs");
64
64
  const require_chart_legend = require("./chart-legend.cjs");
65
65
  const require_chart_plot = require("./chart-plot.cjs");
@@ -74,10 +74,14 @@ const require_popover = require("./popover.cjs");
74
74
  const require_select_group = require("./select-group.cjs");
75
75
  const require_select_icon = require("./select-icon.cjs");
76
76
  const require_select = require("./select.cjs");
77
+ const require_color_picker = require("./color-picker.cjs");
77
78
  const require_text_input_affix = require("./text-input-affix.cjs");
78
79
  const require_text_input_button = require("./text-input-button.cjs");
79
80
  const require_text_input = require("./text-input.cjs");
80
81
  const require_color_swatch = require("./color-swatch.cjs");
82
+ const require_tooltip_provider = require("./tooltip-provider.cjs");
83
+ const require_tooltip_root = require("./tooltip-root.cjs");
84
+ const require_tooltip = require("./tooltip.cjs");
81
85
  const require_hue_slider = require("./hue-slider.cjs");
82
86
  const require_combobox_group = require("./combobox-group.cjs");
83
87
  const require_combobox_input = require("./combobox-input.cjs");
@@ -112,9 +116,6 @@ const require_digit_input = require("./digit-input.cjs");
112
116
  const require_dropdown_menu = require("./dropdown-menu.cjs");
113
117
  const require_file_upload_area = require("./file-upload-area.cjs");
114
118
  const require_hint_text = require("./hint-text.cjs");
115
- const require_tooltip_provider = require("./tooltip-provider.cjs");
116
- const require_tooltip_root = require("./tooltip-root.cjs");
117
- const require_tooltip = require("./tooltip.cjs");
118
119
  const require_label = require("./label2.cjs");
119
120
  const require_mochi = require("./mochi.cjs");
120
121
  const require_pagination = require("./pagination.cjs");
@@ -255,6 +256,7 @@ var components_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
255
256
  DropdownMenuTrigger: () => require_dropdown_menu_trigger.dropdown_menu_trigger_default,
256
257
  FancyButton: () => require_fancy_button.fancy_button_default,
257
258
  FileUploadArea: () => require_file_upload_area.file_upload_area_default,
259
+ GradientPicker: () => require_gradient_picker.gradient_picker_default,
258
260
  HintText: () => require_hint_text.hint_text_default,
259
261
  HueSlider: () => require_hue_slider.hue_slider_default,
260
262
  Label: () => require_label.label_default,