@youcan/celeste 0.13.0 → 0.14.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 (65) hide show
  1. package/ai/component-registry.json +49 -2
  2. package/ai/component-registry.md +24 -2
  3. package/ai/icons.md +1 -1
  4. package/ai/tokens.md +1 -1
  5. package/dist/celeste.css +299 -86
  6. package/dist/cjs/chunks/calendar.cjs +71 -72
  7. package/dist/cjs/chunks/combobox-root.cjs +6 -6
  8. package/dist/cjs/chunks/components.cjs +2 -0
  9. package/dist/cjs/chunks/digit-input.cjs +13 -12
  10. package/dist/cjs/chunks/dropdown-menu.cjs +9 -6
  11. package/dist/cjs/chunks/mochi.cjs +168 -0
  12. package/dist/cjs/chunks/radio-group.cjs +4 -8
  13. package/dist/cjs/chunks/range-calendar.cjs +71 -72
  14. package/dist/cjs/chunks/scroll-area.cjs +16 -17
  15. package/dist/cjs/chunks/segmented-control.cjs +20 -21
  16. package/dist/cjs/chunks/select.cjs +8 -5
  17. package/dist/cjs/chunks/slider.cjs +14 -15
  18. package/dist/cjs/chunks/tab-menu.cjs +8 -9
  19. package/dist/cjs/command-root.cjs +8 -5
  20. package/dist/cjs/index.cjs +2 -0
  21. package/dist/cjs/mochi.cjs +2 -0
  22. package/dist/cjs/use-direction.cjs +4 -4
  23. package/dist/components/index.d.ts +1 -0
  24. package/dist/components/mochi/index.d.ts +2 -0
  25. package/dist/components/mochi/mochi.d.ts +22 -0
  26. package/dist/components/radio-group/radio-group.d.ts +2 -2
  27. package/dist/components/scroll-area/scroll-area.d.ts +2 -2
  28. package/dist/components/segmented-control/segmented-control.d.ts +2 -2
  29. package/dist/components/tab-menu/tab-menu.d.ts +2 -2
  30. package/dist/composables/use-direction.d.ts +2 -2
  31. package/dist/es/chunks/calendar.js +71 -72
  32. package/dist/es/chunks/combobox-root.js +6 -6
  33. package/dist/es/chunks/components.js +2 -0
  34. package/dist/es/chunks/digit-input.js +14 -13
  35. package/dist/es/chunks/dropdown-menu.js +9 -6
  36. package/dist/es/chunks/mochi.js +162 -0
  37. package/dist/es/chunks/radio-group.js +5 -9
  38. package/dist/es/chunks/range-calendar.js +71 -72
  39. package/dist/es/chunks/scroll-area.js +16 -17
  40. package/dist/es/chunks/segmented-control.js +21 -22
  41. package/dist/es/chunks/select.js +8 -5
  42. package/dist/es/chunks/slider.js +14 -15
  43. package/dist/es/chunks/tab-menu.js +9 -10
  44. package/dist/es/command-root.js +8 -5
  45. package/dist/es/index.js +2 -1
  46. package/dist/es/mochi.js +2 -0
  47. package/dist/es/use-direction.js +5 -5
  48. package/package.json +3 -3
  49. package/src/components/calendar/calendar.vue +62 -64
  50. package/src/components/combobox/combobox-root.vue +9 -5
  51. package/src/components/command/command-root.vue +10 -9
  52. package/src/components/digit-input/digit-input.vue +10 -11
  53. package/src/components/dropdown-menu/dropdown-menu.vue +9 -8
  54. package/src/components/index.ts +1 -0
  55. package/src/components/mochi/index.ts +2 -0
  56. package/src/components/mochi/mochi.vue +480 -0
  57. package/src/components/mochi/stories/mochi.stories.ts +105 -0
  58. package/src/components/radio-group/radio-group.vue +9 -10
  59. package/src/components/range-calendar/range-calendar.vue +63 -65
  60. package/src/components/scroll-area/scroll-area.vue +14 -15
  61. package/src/components/segmented-control/segmented-control.vue +20 -21
  62. package/src/components/select/select.vue +9 -8
  63. package/src/components/slider/slider.vue +16 -17
  64. package/src/components/tab-menu/tab-menu.vue +9 -10
  65. package/src/composables/use-direction.ts +6 -6
@@ -3,7 +3,6 @@ const require__plugin_vue_export_helper = require("./_plugin-vue_export-helper.c
3
3
  const require_createContext = require("./createContext.cjs");
4
4
  const require_dist = require("./dist2.cjs");
5
5
  const require_Primitive = require("./Primitive.cjs");
6
- const require_ConfigProvider = require("./ConfigProvider.cjs");
7
6
  const require_useCalendar = require("./useCalendar.cjs");
8
7
  const require_useDirection = require("./useDirection.cjs");
9
8
  const require_useForwardPropsEmits = require("./useForwardPropsEmits.cjs");
@@ -835,7 +834,7 @@ var calendar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue
835
834
  const emits = __emit;
836
835
  const delegatedProps = require_use_delegated_props.useDelegatedProps(props, ["class", "markedDates"]);
837
836
  const forwarded = require_useForwardPropsEmits.useForwardPropsEmits(delegatedProps, emits);
838
- const direction = require_use_direction.useDirection();
837
+ const dir = require_use_direction.useDirection(() => props.dir);
839
838
  function isMarked(date) {
840
839
  return props.markedDates?.some((marked) => require_useCalendar.$ad063034c8620db8$export$91b62ebf2ba703ee(marked, date)) ?? false;
841
840
  }
@@ -843,89 +842,89 @@ var calendar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue
843
842
  return /^[a-z]/i.test(day.trim()) ? day.slice(0, 2) : day;
844
843
  }
845
844
  return (_ctx, _cache) => {
846
- return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(require_ConfigProvider.ConfigProvider_default), { dir: props.dir ?? (0, vue.unref)(direction) }, {
847
- default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(CalendarRoot_default), (0, vue.mergeProps)((0, vue.unref)(forwarded), { class: (0, vue.unref)(require_clsx.clsx)("celeste-calendar", props.class) }), {
848
- default: (0, vue.withCtx)(({ weekDays, grid }) => [(0, vue.createElementVNode)("div", _hoisted_1, [
849
- (0, vue.createVNode)((0, vue.unref)(CalendarPrev_default), { "as-child": "" }, {
850
- default: (0, vue.withCtx)(() => [..._cache[0] || (_cache[0] = [(0, vue.createElementVNode)("button", {
851
- type: "button",
852
- class: "celeste-calendar-nav"
853
- }, [(0, vue.createElementVNode)("i", { class: "i-celeste-arrow-left-s-line" })], -1)])]),
854
- _: 1
855
- }),
856
- (0, vue.createVNode)((0, vue.unref)(CalendarHeading_default), { class: "celeste-calendar-heading" }),
857
- (0, vue.createVNode)((0, vue.unref)(CalendarNext_default), { "as-child": "" }, {
858
- default: (0, vue.withCtx)(() => [..._cache[1] || (_cache[1] = [(0, vue.createElementVNode)("button", {
859
- type: "button",
860
- class: "celeste-calendar-nav"
861
- }, [(0, vue.createElementVNode)("i", { class: "i-celeste-arrow-right-s-line" })], -1)])]),
862
- _: 1
863
- })
864
- ]), (0, vue.createElementVNode)("div", _hoisted_2, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(grid, (month) => {
865
- return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(CalendarGrid_default), {
866
- key: month.value.toString(),
867
- class: "celeste-calendar-grid"
868
- }, {
869
- default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(CalendarGridHead_default), null, {
870
- default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(CalendarGridRow_default), { class: "celeste-calendar-week" }, {
871
- default: (0, vue.withCtx)(() => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(weekDays, (day) => {
872
- return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(CalendarHeadCell_default), {
873
- key: day,
874
- class: "celeste-calendar-weekday"
875
- }, {
876
- default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)(weekdayLabel(day)), 1)]),
877
- _: 2
878
- }, 1024);
879
- }), 128))]),
880
- _: 2
881
- }, 1024)]),
882
- _: 2
883
- }, 1024), (0, vue.createVNode)((0, vue.unref)(CalendarGridBody_default), { class: "celeste-calendar-body" }, {
884
- default: (0, vue.withCtx)(() => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(month.rows, (weekDates, index) => {
885
- return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(CalendarGridRow_default), {
886
- key: `week-${index}`,
887
- class: "celeste-calendar-week"
845
+ return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(CalendarRoot_default), (0, vue.mergeProps)((0, vue.unref)(forwarded), {
846
+ class: (0, vue.unref)(require_clsx.clsx)("celeste-calendar", props.class),
847
+ dir: (0, vue.unref)(dir)
848
+ }), {
849
+ default: (0, vue.withCtx)(({ weekDays, grid }) => [(0, vue.createElementVNode)("div", _hoisted_1, [
850
+ (0, vue.createVNode)((0, vue.unref)(CalendarPrev_default), { "as-child": "" }, {
851
+ default: (0, vue.withCtx)(() => [..._cache[0] || (_cache[0] = [(0, vue.createElementVNode)("button", {
852
+ type: "button",
853
+ class: "celeste-calendar-nav"
854
+ }, [(0, vue.createElementVNode)("i", { class: "i-celeste-arrow-left-s-line" })], -1)])]),
855
+ _: 1
856
+ }),
857
+ (0, vue.createVNode)((0, vue.unref)(CalendarHeading_default), { class: "celeste-calendar-heading" }),
858
+ (0, vue.createVNode)((0, vue.unref)(CalendarNext_default), { "as-child": "" }, {
859
+ default: (0, vue.withCtx)(() => [..._cache[1] || (_cache[1] = [(0, vue.createElementVNode)("button", {
860
+ type: "button",
861
+ class: "celeste-calendar-nav"
862
+ }, [(0, vue.createElementVNode)("i", { class: "i-celeste-arrow-right-s-line" })], -1)])]),
863
+ _: 1
864
+ })
865
+ ]), (0, vue.createElementVNode)("div", _hoisted_2, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(grid, (month) => {
866
+ return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(CalendarGrid_default), {
867
+ key: month.value.toString(),
868
+ class: "celeste-calendar-grid"
869
+ }, {
870
+ default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(CalendarGridHead_default), null, {
871
+ default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(CalendarGridRow_default), { class: "celeste-calendar-week" }, {
872
+ default: (0, vue.withCtx)(() => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(weekDays, (day) => {
873
+ return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(CalendarHeadCell_default), {
874
+ key: day,
875
+ class: "celeste-calendar-weekday"
888
876
  }, {
889
- default: (0, vue.withCtx)(() => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(weekDates, (weekDate) => {
890
- return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(CalendarCell_default), {
891
- key: weekDate.toString(),
892
- date: weekDate,
893
- class: "celeste-calendar-cell"
894
- }, {
895
- default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(CalendarCellTrigger_default), {
896
- day: weekDate,
897
- month: month.value,
898
- class: "celeste-calendar-day",
899
- "data-marked": isMarked(weekDate) ? "" : void 0
900
- }, {
901
- default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", _hoisted_3, (0, vue.toDisplayString)(weekDate.day), 1)]),
902
- _: 2
903
- }, 1032, [
904
- "day",
905
- "month",
906
- "data-marked"
907
- ])]),
908
- _: 2
909
- }, 1032, ["date"]);
910
- }), 128))]),
877
+ default: (0, vue.withCtx)(() => [(0, vue.createTextVNode)((0, vue.toDisplayString)(weekdayLabel(day)), 1)]),
911
878
  _: 2
912
879
  }, 1024);
913
880
  }), 128))]),
914
881
  _: 2
915
882
  }, 1024)]),
916
883
  _: 2
917
- }, 1024);
918
- }), 128))])]),
919
- _: 1
920
- }, 16, ["class"])]),
884
+ }, 1024), (0, vue.createVNode)((0, vue.unref)(CalendarGridBody_default), { class: "celeste-calendar-body" }, {
885
+ default: (0, vue.withCtx)(() => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(month.rows, (weekDates, index) => {
886
+ return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(CalendarGridRow_default), {
887
+ key: `week-${index}`,
888
+ class: "celeste-calendar-week"
889
+ }, {
890
+ default: (0, vue.withCtx)(() => [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(weekDates, (weekDate) => {
891
+ return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(CalendarCell_default), {
892
+ key: weekDate.toString(),
893
+ date: weekDate,
894
+ class: "celeste-calendar-cell"
895
+ }, {
896
+ default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(CalendarCellTrigger_default), {
897
+ day: weekDate,
898
+ month: month.value,
899
+ class: "celeste-calendar-day",
900
+ "data-marked": isMarked(weekDate) ? "" : void 0
901
+ }, {
902
+ default: (0, vue.withCtx)(() => [(0, vue.createElementVNode)("span", _hoisted_3, (0, vue.toDisplayString)(weekDate.day), 1)]),
903
+ _: 2
904
+ }, 1032, [
905
+ "day",
906
+ "month",
907
+ "data-marked"
908
+ ])]),
909
+ _: 2
910
+ }, 1032, ["date"]);
911
+ }), 128))]),
912
+ _: 2
913
+ }, 1024);
914
+ }), 128))]),
915
+ _: 2
916
+ }, 1024)]),
917
+ _: 2
918
+ }, 1024);
919
+ }), 128))])]),
921
920
  _: 1
922
- }, 8, ["dir"]);
921
+ }, 16, ["class", "dir"]);
923
922
  };
924
923
  }
925
924
  });
926
925
  //#endregion
927
926
  //#region src/components/calendar/calendar.vue
928
- var calendar_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(calendar_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-f067ca68"]]);
927
+ var calendar_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(calendar_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-8b6a5725"]]);
929
928
  //#endregion
930
929
  Object.defineProperty(exports, "calendar_default", {
931
930
  enumerable: true,
@@ -36,21 +36,21 @@ var combobox_root_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0
36
36
  setup(__props, { emit: __emit }) {
37
37
  const props = __props;
38
38
  const forwarded = require_useForwardPropsEmits.useForwardPropsEmits(props, __emit);
39
- const direction = require_use_direction.useDirection();
39
+ const dir = require_use_direction.useDirection(() => props.dir);
40
40
  return (_ctx, _cache) => {
41
- return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(require_ConfigProvider.ConfigProvider_default), { dir: props.dir ?? (0, vue.unref)(direction) }, {
42
- default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(require_ComboboxRoot.ComboboxRoot_default), (0, vue.mergeProps)({ class: "celeste-combobox-root" }, (0, vue.unref)(forwarded)), {
41
+ return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(require_ComboboxRoot.ComboboxRoot_default), (0, vue.mergeProps)({ class: "celeste-combobox-root" }, (0, vue.unref)(forwarded), { dir: (0, vue.unref)(dir) }), {
42
+ default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(require_ConfigProvider.ConfigProvider_default), { dir: (0, vue.unref)(dir) }, {
43
43
  default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default", {}, void 0, true)]),
44
44
  _: 3
45
- }, 16)]),
45
+ }, 8, ["dir"])]),
46
46
  _: 3
47
- }, 8, ["dir"]);
47
+ }, 16, ["dir"]);
48
48
  };
49
49
  }
50
50
  });
51
51
  //#endregion
52
52
  //#region src/components/combobox/combobox-root.vue
53
- var combobox_root_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(combobox_root_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-7e1e8d15"]]);
53
+ var combobox_root_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(combobox_root_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-bfdab687"]]);
54
54
  //#endregion
55
55
  Object.defineProperty(exports, "combobox_root_default", {
56
56
  enumerable: true,
@@ -91,6 +91,7 @@ const require_tooltip_provider = require("./tooltip-provider.cjs");
91
91
  const require_tooltip_root = require("./tooltip-root.cjs");
92
92
  const require_tooltip = require("./tooltip.cjs");
93
93
  const require_label = require("./label2.cjs");
94
+ const require_mochi = require("./mochi.cjs");
94
95
  const require_modal_body = require("./modal-body.cjs");
95
96
  const require_modal_close = require("./modal-close.cjs");
96
97
  const require_modal_content = require("./modal-content.cjs");
@@ -222,6 +223,7 @@ var components_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
222
223
  HueSlider: () => require_hue_slider.hue_slider_default,
223
224
  Label: () => require_label.label_default,
224
225
  LinkButton: () => require_link_button.link_button_default,
226
+ Mochi: () => require_mochi.mochi_default,
225
227
  Modal: () => require_modal.modal_default,
226
228
  ModalBody: () => require_modal_body.modal_body_default,
227
229
  ModalClose: () => require_modal_close.modal_close_default,
@@ -1,7 +1,6 @@
1
1
  const require_clsx = require("./clsx.cjs");
2
2
  const require__plugin_vue_export_helper = require("./_plugin-vue_export-helper.cjs");
3
3
  const require_dist = require("./dist.cjs");
4
- const require_ConfigProvider = require("./ConfigProvider.cjs");
5
4
  const require_useForwardPropsEmits = require("./useForwardPropsEmits.cjs");
6
5
  const require_PinInputRoot = require("./PinInputRoot.cjs");
7
6
  const require_use_direction = require("../use-direction.cjs");
@@ -41,24 +40,26 @@ var digit_input_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0,
41
40
  const emits = __emit;
42
41
  const delegatedProps = require_dist.reactiveOmit(props, "class", "hasError");
43
42
  const forwarded = require_useForwardPropsEmits.useForwardPropsEmits(delegatedProps, emits);
44
- const direction = require_use_direction.useDirection();
43
+ const dir = require_use_direction.useDirection(() => props.dir);
45
44
  return (_ctx, _cache) => {
46
- return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(require_ConfigProvider.ConfigProvider_default), { dir: props.dir ?? (0, vue.unref)(direction) }, {
47
- default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(require_PinInputRoot.PinInputRoot_default), (0, vue.mergeProps)((0, vue.unref)(forwarded), {
48
- class: (0, vue.unref)(require_clsx.clsx)("celeste-digit-input", props.class),
49
- "data-error": __props.hasError
50
- }), {
51
- default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default", {}, void 0, true)]),
52
- _: 3
53
- }, 16, ["class", "data-error"])]),
45
+ return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(require_PinInputRoot.PinInputRoot_default), (0, vue.mergeProps)((0, vue.unref)(forwarded), {
46
+ class: (0, vue.unref)(require_clsx.clsx)("celeste-digit-input", props.class),
47
+ "data-error": __props.hasError,
48
+ dir: (0, vue.unref)(dir)
49
+ }), {
50
+ default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default", {}, void 0, true)]),
54
51
  _: 3
55
- }, 8, ["dir"]);
52
+ }, 16, [
53
+ "class",
54
+ "data-error",
55
+ "dir"
56
+ ]);
56
57
  };
57
58
  }
58
59
  });
59
60
  //#endregion
60
61
  //#region src/components/digit-input/digit-input.vue
61
- var digit_input_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(digit_input_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-20a3fbb5"]]);
62
+ var digit_input_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(digit_input_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-12ddf69b"]]);
62
63
  //#endregion
63
64
  Object.defineProperty(exports, "digit_input_default", {
64
65
  enumerable: true,
@@ -28,21 +28,24 @@ var dropdown_menu_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0
28
28
  const emits = __emit;
29
29
  const delegatedProps = require_use_delegated_props.useDelegatedProps(props, "class");
30
30
  const forwarded = require_useForwardPropsEmits.useForwardPropsEmits(delegatedProps, emits);
31
- const direction = require_use_direction.useDirection();
31
+ const dir = require_use_direction.useDirection(() => props.dir);
32
32
  return (_ctx, _cache) => {
33
- return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(require_ConfigProvider.ConfigProvider_default), { dir: props.dir ?? (0, vue.unref)(direction) }, {
34
- default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(require_DropdownMenuRoot.DropdownMenuRoot_default), (0, vue.mergeProps)((0, vue.unref)(forwarded), { class: (0, vue.unref)(require_clsx.clsx)("celeste-dropdown-menu", props.class) }), {
33
+ return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(require_DropdownMenuRoot.DropdownMenuRoot_default), (0, vue.mergeProps)((0, vue.unref)(forwarded), {
34
+ class: (0, vue.unref)(require_clsx.clsx)("celeste-dropdown-menu", props.class),
35
+ dir: (0, vue.unref)(dir)
36
+ }), {
37
+ default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(require_ConfigProvider.ConfigProvider_default), { dir: (0, vue.unref)(dir) }, {
35
38
  default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default", {}, void 0, true)]),
36
39
  _: 3
37
- }, 16, ["class"])]),
40
+ }, 8, ["dir"])]),
38
41
  _: 3
39
- }, 8, ["dir"]);
42
+ }, 16, ["class", "dir"]);
40
43
  };
41
44
  }
42
45
  });
43
46
  //#endregion
44
47
  //#region src/components/dropdown-menu/dropdown-menu.vue
45
- var dropdown_menu_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(dropdown_menu_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-fa4c1e84"]]);
48
+ var dropdown_menu_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(dropdown_menu_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-154e9b38"]]);
46
49
  //#endregion
47
50
  Object.defineProperty(exports, "dropdown_menu_default", {
48
51
  enumerable: true,
@@ -0,0 +1,168 @@
1
+ const require_clsx = require("./clsx.cjs");
2
+ const require__plugin_vue_export_helper = require("./_plugin-vue_export-helper.cjs");
3
+ let vue = require("vue");
4
+ //#region src/components/mochi/mochi.vue?vue&type=script&setup=true&lang.ts
5
+ var _hoisted_1 = ["data-anim"];
6
+ var DROP_DURATION = 2010;
7
+ var HIDE_DURATION = 420;
8
+ var SETTLE_DURATION = 500;
9
+ var mochi_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue.defineComponent)({
10
+ __name: "mochi",
11
+ props: /*@__PURE__*/ (0, vue.mergeModels)({
12
+ class: { type: [
13
+ Boolean,
14
+ null,
15
+ String,
16
+ Object,
17
+ Array
18
+ ] },
19
+ size: { default: 40 },
20
+ animate: {
21
+ type: Boolean,
22
+ default: false
23
+ },
24
+ thinking: {
25
+ type: Boolean,
26
+ default: false
27
+ }
28
+ }, {
29
+ "idle": {
30
+ type: Boolean,
31
+ default: false
32
+ },
33
+ "idleModifiers": {}
34
+ }),
35
+ emits: ["update:idle"],
36
+ setup(__props) {
37
+ (0, vue.useCssVars)((_ctx) => ({
38
+ "v51b30026": sizePx.value,
39
+ "v54792142": rotate.value
40
+ }));
41
+ const props = __props;
42
+ const idle = (0, vue.useModel)(__props, "idle");
43
+ const durations = {
44
+ "blink-twice": 440,
45
+ "blink-once": 160,
46
+ "look-blink-twice": 3e3,
47
+ "look-blink-once": 2800
48
+ };
49
+ const weights = [
50
+ ["blink-twice", 35],
51
+ ["blink-once", 35],
52
+ ["look-blink-twice", 15],
53
+ ["look-blink-once", 15]
54
+ ];
55
+ const rotation = {
56
+ bottom: "0deg",
57
+ right: "-90deg",
58
+ top: "180deg",
59
+ left: "90deg"
60
+ };
61
+ const order = [
62
+ "bottom",
63
+ "right",
64
+ "top",
65
+ "left"
66
+ ];
67
+ const anim = (0, vue.ref)("");
68
+ const peek = (0, vue.ref)("");
69
+ const peekSide = (0, vue.ref)("bottom");
70
+ const sizePx = (0, vue.computed)(() => `${props.size}px`);
71
+ const rotate = (0, vue.computed)(() => rotation[peekSide.value]);
72
+ let retired = false;
73
+ let frame;
74
+ let timer;
75
+ let peekTimer;
76
+ function pick() {
77
+ let r = Math.random() * 100;
78
+ for (const [name, weight] of weights) {
79
+ r -= weight;
80
+ if (r <= 0) return name;
81
+ }
82
+ return "blink-twice";
83
+ }
84
+ function cycle() {
85
+ clearTimeout(timer);
86
+ cancelAnimationFrame(frame ?? 0);
87
+ anim.value = "";
88
+ if (!props.animate || peek.value) return;
89
+ frame = requestAnimationFrame(() => {
90
+ const next = pick();
91
+ anim.value = next;
92
+ timer = setTimeout(cycle, durations[next] + 800 + Math.random() * 1600);
93
+ });
94
+ }
95
+ function later(fn, ms) {
96
+ clearTimeout(peekTimer);
97
+ peekTimer = setTimeout(fn, ms);
98
+ }
99
+ function drop() {
100
+ peekSide.value = "bottom";
101
+ peek.value = "drop";
102
+ cycle();
103
+ later(() => {
104
+ peek.value = "out";
105
+ }, DROP_DURATION);
106
+ }
107
+ function settle() {
108
+ peekSide.value = "bottom";
109
+ peek.value = "home";
110
+ later(() => {
111
+ peek.value = "";
112
+ cycle();
113
+ }, SETTLE_DURATION);
114
+ }
115
+ function hop() {
116
+ peek.value = "hidden";
117
+ later(() => {
118
+ const next = order[(order.indexOf(peekSide.value) + 1) % order.length];
119
+ if (next === "bottom") {
120
+ retired = true;
121
+ settle();
122
+ idle.value = false;
123
+ return;
124
+ }
125
+ peekSide.value = next;
126
+ peek.value = "out";
127
+ }, HIDE_DURATION);
128
+ }
129
+ function poke() {
130
+ if (peek.value === "out") hop();
131
+ else if (!peek.value && props.animate && !retired) idle.value = true;
132
+ }
133
+ (0, vue.watch)(() => idle.value && props.animate, (active) => {
134
+ if (active && !retired && !peek.value) drop();
135
+ else if (!active && peek.value && peek.value !== "home") {
136
+ peek.value = "hidden";
137
+ later(settle, HIDE_DURATION);
138
+ }
139
+ }, { immediate: true });
140
+ (0, vue.watch)(() => props.animate, cycle);
141
+ (0, vue.onMounted)(cycle);
142
+ (0, vue.onBeforeUnmount)(() => {
143
+ cancelAnimationFrame(frame ?? 0);
144
+ clearTimeout(timer);
145
+ clearTimeout(peekTimer);
146
+ });
147
+ return (_ctx, _cache) => {
148
+ return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
149
+ class: (0, vue.normalizeClass)((0, vue.unref)(require_clsx.clsx)("celeste-mochi", peek.value && `celeste-mochi-peek-${peek.value}`, props.thinking && "celeste-mochi-thinking", props.class)),
150
+ "data-anim": anim.value || void 0,
151
+ "aria-hidden": "true"
152
+ }, [(0, vue.createElementVNode)("div", { class: "celeste-mochi-stage" }, [(0, vue.createElementVNode)("div", { class: "celeste-mochi-chan" }, [(0, vue.createElementVNode)("div", {
153
+ class: "celeste-mochi-body",
154
+ onClick: poke
155
+ }), _cache[0] || (_cache[0] = (0, vue.createElementVNode)("div", { class: "celeste-mochi-eyes" }, [(0, vue.createElementVNode)("div", { class: "celeste-mochi-eye celeste-mochi-eye-l" }), (0, vue.createElementVNode)("div", { class: "celeste-mochi-eye celeste-mochi-eye-r" })], -1))])])], 10, _hoisted_1);
156
+ };
157
+ }
158
+ });
159
+ //#endregion
160
+ //#region src/components/mochi/mochi.vue
161
+ var mochi_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(mochi_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-ce7048d3"]]);
162
+ //#endregion
163
+ Object.defineProperty(exports, "mochi_default", {
164
+ enumerable: true,
165
+ get: function() {
166
+ return mochi_default;
167
+ }
168
+ });
@@ -1,5 +1,4 @@
1
1
  const require_clsx = require("./clsx.cjs");
2
- const require_ConfigProvider = require("./ConfigProvider.cjs");
3
2
  const require_useForwardPropsEmits = require("./useForwardPropsEmits.cjs");
4
3
  const require_RadioGroupRoot = require("./RadioGroupRoot.cjs");
5
4
  const require_use_delegated_props = require("../use-delegated-props.cjs");
@@ -34,15 +33,12 @@ var radio_group_default = /* @__PURE__ */ (0, vue.defineComponent)({
34
33
  const emits = __emit;
35
34
  const delegatedProps = require_use_delegated_props.useDelegatedProps(props, "class");
36
35
  const forwarded = require_useForwardPropsEmits.useForwardPropsEmits(delegatedProps, emits);
37
- const direction = require_use_direction.useDirection();
36
+ const dir = require_use_direction.useDirection(() => props.dir);
38
37
  return (_ctx, _cache) => {
39
- return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(require_ConfigProvider.ConfigProvider_default), { dir: props.dir ?? (0, vue.unref)(direction) }, {
40
- default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(require_RadioGroupRoot.RadioGroupRoot_default), (0, vue.mergeProps)({ class: (0, vue.unref)(require_clsx.clsx)("celeste-radio-wrapper", props.class) }, (0, vue.unref)(forwarded)), {
41
- default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]),
42
- _: 3
43
- }, 16, ["class"])]),
38
+ return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(require_RadioGroupRoot.RadioGroupRoot_default), (0, vue.mergeProps)({ class: (0, vue.unref)(require_clsx.clsx)("celeste-radio-wrapper", props.class) }, (0, vue.unref)(forwarded), { dir: (0, vue.unref)(dir) }), {
39
+ default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]),
44
40
  _: 3
45
- }, 8, ["dir"]);
41
+ }, 16, ["class", "dir"]);
46
42
  };
47
43
  }
48
44
  });