@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 @@ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-hel
3
3
  import { t as createContext } from "./createContext.js";
4
4
  import { p as useVModel, s as useEventListener } from "./dist2.js";
5
5
  import { t as Primitive } from "./Primitive.js";
6
- import { t as ConfigProvider_default } from "./ConfigProvider.js";
7
6
  import { a as handleCalendarInitialFocus, c as isBefore, d as toDate, f as $12a3c853105e5a70$export$ad991b66133851cf, g as $ad063034c8620db8$export$aa8b41735afcabd2, h as $ad063034c8620db8$export$a18c89cbd24170ff, i as getWeekStartsOn, l as isBetween, m as $ad063034c8620db8$export$91b62ebf2ba703ee, o as areAllDaysBetweenValid, p as $ad063034c8620db8$export$629b0a497aa65267, r as getDaysBetween, s as getDefaultDate, t as useCalendar, u as isBetweenInclusive, v as $ad063034c8620db8$export$ea39ec197993aef0 } from "./useCalendar.js";
8
7
  import { t as useDirection } from "./useDirection.js";
9
8
  import { t as useForwardPropsEmits } from "./useForwardPropsEmits.js";
@@ -1080,7 +1079,7 @@ var range_calendar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
1080
1079
  const emits = __emit;
1081
1080
  const delegatedProps = useDelegatedProps(props, ["class", "markedDates"]);
1082
1081
  const forwarded = useForwardPropsEmits(delegatedProps, emits);
1083
- const direction = useDirection$1();
1082
+ const dir = useDirection$1(() => props.dir);
1084
1083
  const monthFormatter = computed(() => new $12a3c853105e5a70$export$ad991b66133851cf(props.locale ?? "en-US", {
1085
1084
  month: "long",
1086
1085
  year: "numeric"
@@ -1095,85 +1094,85 @@ var range_calendar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/*
1095
1094
  return /^[a-z]/i.test(day.trim()) ? day.slice(0, 2) : day;
1096
1095
  }
1097
1096
  return (_ctx, _cache) => {
1098
- return openBlock(), createBlock(unref(ConfigProvider_default), { dir: props.dir ?? unref(direction) }, {
1099
- default: withCtx(() => [createVNode(unref(RangeCalendarRoot_default), mergeProps(unref(forwarded), { class: unref(clsx)("celeste-range-calendar", props.class) }), {
1100
- default: withCtx(({ weekDays, grid }) => [createElementVNode("div", _hoisted_1, [(openBlock(true), createElementBlock(Fragment, null, renderList(grid, (month) => {
1101
- return openBlock(), createElementBlock("div", {
1102
- key: month.value.toString(),
1103
- class: "celeste-range-calendar-month"
1104
- }, [createElementVNode("div", _hoisted_2, [
1105
- createVNode(unref(RangeCalendarPrev_default), { "as-child": "" }, {
1106
- default: withCtx(() => [..._cache[0] || (_cache[0] = [createElementVNode("button", {
1107
- type: "button",
1108
- class: "celeste-range-calendar-nav"
1109
- }, [createElementVNode("i", { class: "i-celeste-arrow-left-s-line" })], -1)])]),
1110
- _: 1
1111
- }),
1112
- createElementVNode("span", _hoisted_3, toDisplayString(formatMonth(month.value)), 1),
1113
- createVNode(unref(RangeCalendarNext_default), { "as-child": "" }, {
1114
- default: withCtx(() => [..._cache[1] || (_cache[1] = [createElementVNode("button", {
1115
- type: "button",
1116
- class: "celeste-range-calendar-nav"
1117
- }, [createElementVNode("i", { class: "i-celeste-arrow-right-s-line" })], -1)])]),
1118
- _: 1
1119
- })
1120
- ]), createVNode(unref(RangeCalendarGrid_default), { class: "celeste-range-calendar-grid" }, {
1121
- default: withCtx(() => [createVNode(unref(RangeCalendarGridHead_default), null, {
1122
- default: withCtx(() => [createVNode(unref(RangeCalendarGridRow_default), { class: "celeste-range-calendar-week" }, {
1123
- default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(weekDays, (day) => {
1124
- return openBlock(), createBlock(unref(RangeCalendarHeadCell_default), {
1125
- key: day,
1126
- class: "celeste-range-calendar-weekday"
1127
- }, {
1128
- default: withCtx(() => [createTextVNode(toDisplayString(weekdayLabel(day)), 1)]),
1129
- _: 2
1130
- }, 1024);
1131
- }), 128))]),
1132
- _: 2
1133
- }, 1024)]),
1134
- _: 2
1135
- }, 1024), createVNode(unref(RangeCalendarGridBody_default), { class: "celeste-range-calendar-body" }, {
1136
- default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(month.rows, (weekDates, index) => {
1137
- return openBlock(), createBlock(unref(RangeCalendarGridRow_default), {
1138
- key: `week-${index}`,
1139
- class: "celeste-range-calendar-week"
1097
+ return openBlock(), createBlock(unref(RangeCalendarRoot_default), mergeProps(unref(forwarded), {
1098
+ class: unref(clsx)("celeste-range-calendar", props.class),
1099
+ dir: unref(dir)
1100
+ }), {
1101
+ default: withCtx(({ weekDays, grid }) => [createElementVNode("div", _hoisted_1, [(openBlock(true), createElementBlock(Fragment, null, renderList(grid, (month) => {
1102
+ return openBlock(), createElementBlock("div", {
1103
+ key: month.value.toString(),
1104
+ class: "celeste-range-calendar-month"
1105
+ }, [createElementVNode("div", _hoisted_2, [
1106
+ createVNode(unref(RangeCalendarPrev_default), { "as-child": "" }, {
1107
+ default: withCtx(() => [..._cache[0] || (_cache[0] = [createElementVNode("button", {
1108
+ type: "button",
1109
+ class: "celeste-range-calendar-nav"
1110
+ }, [createElementVNode("i", { class: "i-celeste-arrow-left-s-line" })], -1)])]),
1111
+ _: 1
1112
+ }),
1113
+ createElementVNode("span", _hoisted_3, toDisplayString(formatMonth(month.value)), 1),
1114
+ createVNode(unref(RangeCalendarNext_default), { "as-child": "" }, {
1115
+ default: withCtx(() => [..._cache[1] || (_cache[1] = [createElementVNode("button", {
1116
+ type: "button",
1117
+ class: "celeste-range-calendar-nav"
1118
+ }, [createElementVNode("i", { class: "i-celeste-arrow-right-s-line" })], -1)])]),
1119
+ _: 1
1120
+ })
1121
+ ]), createVNode(unref(RangeCalendarGrid_default), { class: "celeste-range-calendar-grid" }, {
1122
+ default: withCtx(() => [createVNode(unref(RangeCalendarGridHead_default), null, {
1123
+ default: withCtx(() => [createVNode(unref(RangeCalendarGridRow_default), { class: "celeste-range-calendar-week" }, {
1124
+ default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(weekDays, (day) => {
1125
+ return openBlock(), createBlock(unref(RangeCalendarHeadCell_default), {
1126
+ key: day,
1127
+ class: "celeste-range-calendar-weekday"
1140
1128
  }, {
1141
- default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(weekDates, (weekDate) => {
1142
- return openBlock(), createBlock(unref(RangeCalendarCell_default), {
1143
- key: weekDate.toString(),
1144
- date: weekDate,
1145
- class: "celeste-range-calendar-cell"
1146
- }, {
1147
- default: withCtx(() => [createVNode(unref(RangeCalendarCellTrigger_default), {
1148
- day: weekDate,
1149
- month: month.value,
1150
- class: "celeste-range-calendar-day",
1151
- "data-marked": isMarked(weekDate) ? "" : void 0
1152
- }, {
1153
- default: withCtx(() => [createElementVNode("span", _hoisted_4, toDisplayString(weekDate.day), 1)]),
1154
- _: 2
1155
- }, 1032, [
1156
- "day",
1157
- "month",
1158
- "data-marked"
1159
- ])]),
1160
- _: 2
1161
- }, 1032, ["date"]);
1162
- }), 128))]),
1129
+ default: withCtx(() => [createTextVNode(toDisplayString(weekdayLabel(day)), 1)]),
1163
1130
  _: 2
1164
1131
  }, 1024);
1165
1132
  }), 128))]),
1166
1133
  _: 2
1167
1134
  }, 1024)]),
1168
1135
  _: 2
1169
- }, 1024)]);
1170
- }), 128))])]),
1171
- _: 1
1172
- }, 16, ["class"])]),
1136
+ }, 1024), createVNode(unref(RangeCalendarGridBody_default), { class: "celeste-range-calendar-body" }, {
1137
+ default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(month.rows, (weekDates, index) => {
1138
+ return openBlock(), createBlock(unref(RangeCalendarGridRow_default), {
1139
+ key: `week-${index}`,
1140
+ class: "celeste-range-calendar-week"
1141
+ }, {
1142
+ default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(weekDates, (weekDate) => {
1143
+ return openBlock(), createBlock(unref(RangeCalendarCell_default), {
1144
+ key: weekDate.toString(),
1145
+ date: weekDate,
1146
+ class: "celeste-range-calendar-cell"
1147
+ }, {
1148
+ default: withCtx(() => [createVNode(unref(RangeCalendarCellTrigger_default), {
1149
+ day: weekDate,
1150
+ month: month.value,
1151
+ class: "celeste-range-calendar-day",
1152
+ "data-marked": isMarked(weekDate) ? "" : void 0
1153
+ }, {
1154
+ default: withCtx(() => [createElementVNode("span", _hoisted_4, toDisplayString(weekDate.day), 1)]),
1155
+ _: 2
1156
+ }, 1032, [
1157
+ "day",
1158
+ "month",
1159
+ "data-marked"
1160
+ ])]),
1161
+ _: 2
1162
+ }, 1032, ["date"]);
1163
+ }), 128))]),
1164
+ _: 2
1165
+ }, 1024);
1166
+ }), 128))]),
1167
+ _: 2
1168
+ }, 1024)]),
1169
+ _: 2
1170
+ }, 1024)]);
1171
+ }), 128))])]),
1173
1172
  _: 1
1174
- }, 8, ["dir"]);
1173
+ }, 16, ["class", "dir"]);
1175
1174
  };
1176
1175
  }
1177
- }), [["__scopeId", "data-v-87d63238"]]);
1176
+ }), [["__scopeId", "data-v-ebdaadb8"]]);
1178
1177
  //#endregion
1179
1178
  export { range_calendar_default as t };
@@ -2,7 +2,6 @@ import { t as clsx } from "./clsx.js";
2
2
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
3
3
  import { d as useResizeObserver } from "./dist2.js";
4
4
  import { t as Primitive } from "./Primitive.js";
5
- import { t as ConfigProvider_default } from "./ConfigProvider.js";
6
5
  import { t as useForwardExpose } from "./useForwardExpose.js";
7
6
  import { t as useNonce } from "./useNonce.js";
8
7
  import { n as ScrollAreaRoot_default, r as injectScrollAreaRootContext, t as scroll_bar_default } from "./scroll-bar.js";
@@ -161,25 +160,25 @@ var scroll_area_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__
161
160
  setup(__props) {
162
161
  const props = __props;
163
162
  const delegatedProps = useDelegatedProps(props, "class");
164
- const direction = useDirection();
163
+ const dir = useDirection(() => props.dir);
165
164
  return (_ctx, _cache) => {
166
- return openBlock(), createBlock(unref(ConfigProvider_default), { dir: props.dir ?? unref(direction) }, {
167
- default: withCtx(() => [createVNode(unref(ScrollAreaRoot_default), mergeProps(unref(delegatedProps), { class: unref(clsx)("celeste-scroll-area", props.class) }), {
168
- default: withCtx(() => [
169
- createVNode(unref(ScrollAreaViewport_default), { class: "celeste-scroll-area-viewport" }, {
170
- default: withCtx(() => [renderSlot(_ctx.$slots, "default", {}, void 0, true)]),
171
- _: 3
172
- }),
173
- createVNode(scroll_bar_default),
174
- createVNode(scroll_bar_default, { orientation: "horizontal" }),
175
- createVNode(unref(ScrollAreaCorner_default))
176
- ]),
177
- _: 3
178
- }, 16, ["class"])]),
165
+ return openBlock(), createBlock(unref(ScrollAreaRoot_default), mergeProps(unref(delegatedProps), {
166
+ class: unref(clsx)("celeste-scroll-area", props.class),
167
+ dir: unref(dir)
168
+ }), {
169
+ default: withCtx(() => [
170
+ createVNode(unref(ScrollAreaViewport_default), { class: "celeste-scroll-area-viewport" }, {
171
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", {}, void 0, true)]),
172
+ _: 3
173
+ }),
174
+ createVNode(scroll_bar_default),
175
+ createVNode(scroll_bar_default, { orientation: "horizontal" }),
176
+ createVNode(unref(ScrollAreaCorner_default))
177
+ ]),
179
178
  _: 3
180
- }, 8, ["dir"]);
179
+ }, 16, ["class", "dir"]);
181
180
  };
182
181
  }
183
- }), [["__scopeId", "data-v-1bb37e0a"]]);
182
+ }), [["__scopeId", "data-v-0933ded6"]]);
184
183
  //#endregion
185
184
  export { scroll_area_default as t };
@@ -1,12 +1,11 @@
1
1
  import { t as clsx } from "./clsx.js";
2
2
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
3
- import { t as ConfigProvider_default } from "./ConfigProvider.js";
4
3
  import { t as useForwardPropsEmits } from "./useForwardPropsEmits.js";
5
4
  import { t as ToggleGroupRoot_default } from "./ToggleGroupRoot.js";
6
5
  import { useDelegatedProps } from "../use-delegated-props.js";
7
6
  import { useDirection } from "../use-direction.js";
8
7
  import { useTabObserver } from "../use-tab-observer.js";
9
- import { createBlock, createElementVNode, createVNode, defineComponent, mergeProps, normalizeStyle, openBlock, renderSlot, unref, withCtx } from "vue";
8
+ import { createBlock, createElementVNode, defineComponent, mergeProps, normalizeStyle, openBlock, renderSlot, unref, withCtx } from "vue";
10
9
  //#region src/components/segmented-control/segmented-control.vue?vue&type=script&setup=true&lang.ts
11
10
  var _hoisted_1 = ["hidden"];
12
11
  //#endregion
@@ -39,30 +38,30 @@ var segmented_control_default = /*#__PURE__*/ _plugin_vue_export_helper_default(
39
38
  const emits = __emit;
40
39
  const delegatedProps = useDelegatedProps(props, "class");
41
40
  const forwarded = useForwardPropsEmits(delegatedProps, emits);
42
- const direction = useDirection();
41
+ const dir = useDirection(() => props.dir);
43
42
  const { listRef, indicator, ready } = useTabObserver("[data-state=\"on\"]");
44
43
  return (_ctx, _cache) => {
45
- return openBlock(), createBlock(unref(ConfigProvider_default), { dir: props.dir ?? unref(direction) }, {
46
- default: withCtx(() => [createVNode(unref(ToggleGroupRoot_default), mergeProps({
47
- ref_key: "listRef",
48
- ref: listRef,
49
- class: unref(clsx)("celeste-segmented-control", props.class)
50
- }, unref(forwarded), { type: "single" }), {
51
- default: withCtx(() => [renderSlot(_ctx.$slots, "default", {}, void 0, true), createElementVNode("div", {
52
- hidden: !unref(ready),
53
- class: "celeste-segmented-control-indicator",
54
- style: normalizeStyle({
55
- width: `${unref(indicator).width}px`,
56
- height: `${unref(indicator).height}px`,
57
- transform: `translate3d(${unref(indicator).left}px, ${unref(indicator).top}px, 0)`
58
- })
59
- }, null, 12, _hoisted_1)]),
60
- _: 3
61
- }, 16, ["class"])]),
44
+ return openBlock(), createBlock(unref(ToggleGroupRoot_default), mergeProps({
45
+ ref_key: "listRef",
46
+ ref: listRef,
47
+ class: unref(clsx)("celeste-segmented-control", props.class)
48
+ }, unref(forwarded), {
49
+ type: "single",
50
+ dir: unref(dir)
51
+ }), {
52
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", {}, void 0, true), createElementVNode("div", {
53
+ hidden: !unref(ready),
54
+ class: "celeste-segmented-control-indicator",
55
+ style: normalizeStyle({
56
+ width: `${unref(indicator).width}px`,
57
+ height: `${unref(indicator).height}px`,
58
+ transform: `translate3d(${unref(indicator).left}px, ${unref(indicator).top}px, 0)`
59
+ })
60
+ }, null, 12, _hoisted_1)]),
62
61
  _: 3
63
- }, 8, ["dir"]);
62
+ }, 16, ["class", "dir"]);
64
63
  };
65
64
  }
66
- }), [["__scopeId", "data-v-1b4b28d6"]]);
65
+ }), [["__scopeId", "data-v-e04f0e52"]]);
67
66
  //#endregion
68
67
  export { segmented_control_default as t };
@@ -36,15 +36,18 @@ var select_default = /* @__PURE__ */ defineComponent({
36
36
  const emits = __emit;
37
37
  const delegatedProps = useDelegatedProps(props, "class");
38
38
  const forwarded = useForwardPropsEmits(delegatedProps, emits);
39
- const direction = useDirection();
39
+ const dir = useDirection(() => props.dir);
40
40
  return (_ctx, _cache) => {
41
- return openBlock(), createBlock(unref(ConfigProvider_default), { dir: props.dir ?? unref(direction) }, {
42
- default: withCtx(() => [createVNode(unref(SelectRoot_default), mergeProps(unref(forwarded), { class: unref(clsx)("celeste-select", props.class) }), {
41
+ return openBlock(), createBlock(unref(SelectRoot_default), mergeProps(unref(forwarded), {
42
+ class: unref(clsx)("celeste-select", props.class),
43
+ dir: unref(dir)
44
+ }), {
45
+ default: withCtx(() => [createVNode(unref(ConfigProvider_default), { dir: unref(dir) }, {
43
46
  default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
44
47
  _: 3
45
- }, 16, ["class"])]),
48
+ }, 8, ["dir"])]),
46
49
  _: 3
47
- }, 8, ["dir"]);
50
+ }, 16, ["class", "dir"]);
48
51
  };
49
52
  }
50
53
  });
@@ -3,7 +3,6 @@ import { t as clamp } from "./clamp.js";
3
3
  import { t as createContext } from "./createContext.js";
4
4
  import { l as useMounted, p as useVModel } from "./dist2.js";
5
5
  import { t as Primitive } from "./Primitive.js";
6
- import { t as ConfigProvider_default } from "./ConfigProvider.js";
7
6
  import { t as useDirection } from "./useDirection.js";
8
7
  import { t as useFormControl } from "./useFormControl.js";
9
8
  import { t as useForwardExpose } from "./useForwardExpose.js";
@@ -786,23 +785,23 @@ var slider_default = /* @__PURE__ */ defineComponent({
786
785
  const emits = __emit;
787
786
  const delegatedProps = useDelegatedProps(props, "class");
788
787
  const forwarded = useForwardPropsEmits(delegatedProps, emits);
789
- const direction = useDirection$1();
788
+ const dir = useDirection$1(() => props.dir);
790
789
  return (_ctx, _cache) => {
791
- return openBlock(), createBlock(unref(ConfigProvider_default), { dir: props.dir ?? unref(direction) }, {
792
- default: withCtx(() => [createVNode(unref(SliderRoot_default), mergeProps(unref(forwarded), { class: unref(clsx)("celeste-slider", props.class) }), {
793
- default: withCtx(() => [createVNode(unref(SliderTrack_default), { class: "celeste-slider-track" }, {
794
- default: withCtx(() => [createVNode(unref(SliderRange_default), { class: "celeste-slider-range" })]),
795
- _: 1
796
- }), (openBlock(true), createElementBlock(Fragment, null, renderList(__props.modelValue, (_, key) => {
797
- return openBlock(), createBlock(unref(SliderThumb_default), {
798
- key,
799
- class: "celeste-slider-thumb"
800
- });
801
- }), 128))]),
790
+ return openBlock(), createBlock(unref(SliderRoot_default), mergeProps(unref(forwarded), {
791
+ class: unref(clsx)("celeste-slider", props.class),
792
+ dir: unref(dir)
793
+ }), {
794
+ default: withCtx(() => [createVNode(unref(SliderTrack_default), { class: "celeste-slider-track" }, {
795
+ default: withCtx(() => [createVNode(unref(SliderRange_default), { class: "celeste-slider-range" })]),
802
796
  _: 1
803
- }, 16, ["class"])]),
797
+ }), (openBlock(true), createElementBlock(Fragment, null, renderList(__props.modelValue, (_, key) => {
798
+ return openBlock(), createBlock(unref(SliderThumb_default), {
799
+ key,
800
+ class: "celeste-slider-thumb"
801
+ });
802
+ }), 128))]),
804
803
  _: 1
805
- }, 8, ["dir"]);
804
+ }, 16, ["class", "dir"]);
806
805
  };
807
806
  }
808
807
  });
@@ -1,9 +1,8 @@
1
1
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
2
- import { t as ConfigProvider_default } from "./ConfigProvider.js";
3
2
  import { t as useForwardPropsEmits } from "./useForwardPropsEmits.js";
4
3
  import { t as TabsRoot_default } from "./TabsRoot.js";
5
4
  import { useDirection } from "../use-direction.js";
6
- import { createBlock, createVNode, defineComponent, mergeProps, openBlock, renderSlot, unref, withCtx } from "vue";
5
+ import { createBlock, defineComponent, mergeProps, openBlock, renderSlot, unref, withCtx } from "vue";
7
6
  //#endregion
8
7
  //#region src/components/tab-menu/tab-menu.vue
9
8
  var tab_menu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -22,17 +21,17 @@ var tab_menu_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
22
21
  setup(__props, { emit: __emit }) {
23
22
  const props = __props;
24
23
  const forwarded = useForwardPropsEmits(props, __emit);
25
- const direction = useDirection();
24
+ const dir = useDirection(() => props.dir);
26
25
  return (_ctx, _cache) => {
27
- return openBlock(), createBlock(unref(ConfigProvider_default), { dir: props.dir ?? unref(direction) }, {
28
- default: withCtx(() => [createVNode(unref(TabsRoot_default), mergeProps(unref(forwarded), { class: "celeste-tab-menu-root" }), {
29
- default: withCtx(() => [renderSlot(_ctx.$slots, "default", {}, void 0, true)]),
30
- _: 3
31
- }, 16)]),
26
+ return openBlock(), createBlock(unref(TabsRoot_default), mergeProps(unref(forwarded), {
27
+ class: "celeste-tab-menu-root",
28
+ dir: unref(dir)
29
+ }), {
30
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", {}, void 0, true)]),
32
31
  _: 3
33
- }, 8, ["dir"]);
32
+ }, 16, ["dir"]);
34
33
  };
35
34
  }
36
- }), [["__scopeId", "data-v-d5a36238"]]);
35
+ }), [["__scopeId", "data-v-0965db3b"]]);
37
36
  //#endregion
38
37
  export { tab_menu_default as t };
@@ -51,15 +51,18 @@ var command_root_default = /* @__PURE__ */ defineComponent({
51
51
  return delegated;
52
52
  });
53
53
  const forwarded = useForwardPropsEmits(delegatedProps, emits);
54
- const direction = useDirection();
54
+ const dir = useDirection(() => props.dir);
55
55
  return (_ctx, _cache) => {
56
- return openBlock(), createBlock(unref(ConfigProvider_default), { dir: props.dir ?? unref(direction) }, {
57
- default: withCtx(() => [createVNode(unref(ComboboxRoot_default), mergeProps(unref(forwarded), { class: ["celeste-command-root", props.class] }), {
56
+ return openBlock(), createBlock(unref(ComboboxRoot_default), mergeProps(unref(forwarded), {
57
+ class: ["celeste-command-root", props.class],
58
+ dir: unref(dir)
59
+ }), {
60
+ default: withCtx(() => [createVNode(unref(ConfigProvider_default), { dir: unref(dir) }, {
58
61
  default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
59
62
  _: 3
60
- }, 16, ["class"])]),
63
+ }, 8, ["dir"])]),
61
64
  _: 3
62
- }, 8, ["dir"]);
65
+ }, 16, ["class", "dir"]);
63
66
  };
64
67
  }
65
68
  });
package/dist/es/index.js CHANGED
@@ -98,6 +98,7 @@ import { t as tooltip_provider_default } from "./chunks/tooltip-provider.js";
98
98
  import { t as tooltip_root_default } from "./chunks/tooltip-root.js";
99
99
  import { t as tooltip_default } from "./chunks/tooltip.js";
100
100
  import { t as label_default } from "./chunks/label2.js";
101
+ import { t as mochi_default } from "./chunks/mochi.js";
101
102
  import { t as modal_body_default } from "./chunks/modal-body.js";
102
103
  import { t as modal_close_default } from "./chunks/modal-close.js";
103
104
  import { t as modal_content_default } from "./chunks/modal-content.js";
@@ -223,4 +224,4 @@ var Celeste = { install(vue) {
223
224
  });
224
225
  } };
225
226
  //#endregion
226
- export { alert_default as Alert, alpha_slider_default as AlphaSlider, badge_default as Badge, bar_chart_default as BarChart, button_default as Button, CHART_DURATION, CHART_SERIES_COLORS, COLOR_NUMBER_VALIDATION_PATTERN, calendar_default as Calendar, Celeste, chart_card_default as ChartCard, chart_legend_default as ChartLegend, chart_plot_default as ChartPlot, checkbox_default as Checkbox, checkbox_card_default as CheckboxCard, checkbox_label_default as CheckboxLabel, collapsible_default as Collapsible, collapsible_content_default as CollapsibleContent, collapsible_trigger_default as CollapsibleTrigger, color_area_default as ColorArea, color_picker_default as ColorPicker, color_swatch_default as ColorSwatch, combobox_default as Combobox, combobox_anchor_default as ComboboxAnchor, combobox_empty_default as ComboboxEmpty, combobox_group_default as ComboboxGroup, combobox_input_default as ComboboxInput, combobox_item_default as ComboboxItem, combobox_list_default as ComboboxList, combobox_root_default as ComboboxRoot, combobox_separator_default as ComboboxSeparator, combobox_trigger_default as ComboboxTrigger, compact_button_default as CompactButton, content_divider_default as ContentDivider, counter_input_default as CounterInput, DEFAULT_SWATCH, date_picker_default as DatePicker, digit_input_default as DigitInput, digit_input_group_default as DigitInputGroup, digit_input_slot_default as DigitInputSlot, dropdown_menu_default as DropdownMenu, dropdown_menu_content_default as DropdownMenuContent, dropdown_menu_group_default as DropdownMenuGroup, dropdown_menu_item_default as DropdownMenuItem, dropdown_menu_label_default as DropdownMenuLabel, dropdown_menu_separator_default as DropdownMenuSeparator, dropdown_menu_sub_default as DropdownMenuSub, dropdown_menu_sub_content_default as DropdownMenuSubContent, dropdown_menu_sub_trigger_default as DropdownMenuSubTrigger, dropdown_menu_trigger_default as DropdownMenuTrigger, fancy_button_default as FancyButton, file_upload_area_default as FileUploadArea, HEX_VALIDATION_PATTERN, hint_text_default as HintText, hue_slider_default as HueSlider, label_default as Label, link_button_default as LinkButton, modal_default as Modal, modal_body_default as ModalBody, modal_close_default as ModalClose, modal_content_default as ModalContent, modal_footer_default as ModalFooter, modal_header_default as ModalHeader, modal_trigger_default as ModalTrigger, pagination_default as Pagination, pagination_content_default as PaginationContent, pagination_ellipsis_default as PaginationEllipsis, pagination_first_default as PaginationFirst, pagination_item_default as PaginationItem, pagination_last_default as PaginationLast, pagination_next_default as PaginationNext, pagination_previous_default as PaginationPrevious, popover_default as Popover, popover_content_default as PopoverContent, popover_trigger_default as PopoverTrigger, progress_bar_default as ProgressBar, progress_circle_default as ProgressCircle, radio_group_default as RadioGroup, radio_group_card_default as RadioGroupCard, radio_group_item_default as RadioGroupItem, radio_group_label_default as RadioGroupLabel, range_calendar_default as RangeCalendar, range_picker_default as RangePicker, rich_editor_default as RichEditor, SIDEBAR_COOKIE_MAX_AGE, SIDEBAR_COOKIE_NAME, SIDEBAR_KEYBOARD_SHORTCUT, SIDEBAR_WIDTH, SIDEBAR_WIDTH_ICON, SIDEBAR_WIDTH_MOBILE, scroll_area_default as ScrollArea, segmented_control_default as SegmentedControl, segmented_control_item_default as SegmentedControlItem, select_default as Select, select_content_default as SelectContent, select_group_default as SelectGroup, select_icon_default as SelectIcon, select_item_default as SelectItem, select_label_default as SelectLabel, select_separator_default as SelectSeparator, select_trigger_default as SelectTrigger, select_value_default as SelectValue, sheet_default as Sheet, sheet_close_default as SheetClose, sheet_content_default as SheetContent, sheet_description_default as SheetDescription, sheet_footer_default as SheetFooter, sheet_header_default as SheetHeader, sheet_title_default as SheetTitle, sheet_trigger_default as SheetTrigger, sidebar_default as Sidebar, sidebar_content_default as SidebarContent, sidebar_element_default as SidebarElement, sidebar_footer_default as SidebarFooter, sidebar_group_default as SidebarGroup, sidebar_group_content_default as SidebarGroupContent, sidebar_group_label_default as SidebarGroupLabel, sidebar_header_default as SidebarHeader, sidebar_menu_default as SidebarMenu, sidebar_menu_action_default as SidebarMenuAction, sidebar_menu_badge_default as SidebarMenuBadge, sidebar_menu_button_default as SidebarMenuButton, sidebar_menu_item_default as SidebarMenuItem, sidebar_menu_sub_default as SidebarMenuSub, sidebar_menu_sub_button_default as SidebarMenuSubButton, sidebar_menu_sub_item_default as SidebarMenuSubItem, sidebar_provider_default as SidebarProvider, sidebar_separator_default as SidebarSeparator, sidebar_trigger_default as SidebarTrigger, slider_default as Slider, social_button_default as SocialButton, sonner_default as Sonner, sonner_alert_default as SonnerAlert, status_badge_default as StatusBadge, switch_default as Switch, tab_menu_default as TabMenu, tab_menu_content_default as TabMenuContent, tab_menu_item_default as TabMenuItem, tab_menu_list_default as TabMenuList, table_default as Table, table_body_default as TableBody, table_caption_default as TableCaption, table_cell_default as TableCell, table_empty_default as TableEmpty, table_footer_default as TableFooter, table_head_default as TableHead, table_header_default as TableHeader, table_row_default as TableRow, tag_default as Tag, text_input_default as TextInput, text_input_affix_default as TextInputAffix, text_input_button_default as TextInputButton, textarea_default as Textarea, tooltip_default as Tooltip, tooltip_content_default as TooltipContent, tooltip_provider_default as TooltipProvider, tooltip_root_default as TooltipRoot, tooltip_trigger_default as TooltipTrigger, bumpColorValue, chartColor, chartTooltip, clamp, formatCompact, formatNumber, getAbsolutePosition, getColorConstraints, getFractionDigit, getPageXYFromEvent, getScrollXY, niceTicks, provideSidebarContext, resolveArrowDirection, toast, truncColorValue, uid, useChartMotion, useDelegatedProps, useDirection, useLocale, useSidebar, useTabObserver };
227
+ export { alert_default as Alert, alpha_slider_default as AlphaSlider, badge_default as Badge, bar_chart_default as BarChart, button_default as Button, CHART_DURATION, CHART_SERIES_COLORS, COLOR_NUMBER_VALIDATION_PATTERN, calendar_default as Calendar, Celeste, chart_card_default as ChartCard, chart_legend_default as ChartLegend, chart_plot_default as ChartPlot, checkbox_default as Checkbox, checkbox_card_default as CheckboxCard, checkbox_label_default as CheckboxLabel, collapsible_default as Collapsible, collapsible_content_default as CollapsibleContent, collapsible_trigger_default as CollapsibleTrigger, color_area_default as ColorArea, color_picker_default as ColorPicker, color_swatch_default as ColorSwatch, combobox_default as Combobox, combobox_anchor_default as ComboboxAnchor, combobox_empty_default as ComboboxEmpty, combobox_group_default as ComboboxGroup, combobox_input_default as ComboboxInput, combobox_item_default as ComboboxItem, combobox_list_default as ComboboxList, combobox_root_default as ComboboxRoot, combobox_separator_default as ComboboxSeparator, combobox_trigger_default as ComboboxTrigger, compact_button_default as CompactButton, content_divider_default as ContentDivider, counter_input_default as CounterInput, DEFAULT_SWATCH, date_picker_default as DatePicker, digit_input_default as DigitInput, digit_input_group_default as DigitInputGroup, digit_input_slot_default as DigitInputSlot, dropdown_menu_default as DropdownMenu, dropdown_menu_content_default as DropdownMenuContent, dropdown_menu_group_default as DropdownMenuGroup, dropdown_menu_item_default as DropdownMenuItem, dropdown_menu_label_default as DropdownMenuLabel, dropdown_menu_separator_default as DropdownMenuSeparator, dropdown_menu_sub_default as DropdownMenuSub, dropdown_menu_sub_content_default as DropdownMenuSubContent, dropdown_menu_sub_trigger_default as DropdownMenuSubTrigger, dropdown_menu_trigger_default as DropdownMenuTrigger, fancy_button_default as FancyButton, file_upload_area_default as FileUploadArea, HEX_VALIDATION_PATTERN, hint_text_default as HintText, hue_slider_default as HueSlider, label_default as Label, link_button_default as LinkButton, mochi_default as Mochi, modal_default as Modal, modal_body_default as ModalBody, modal_close_default as ModalClose, modal_content_default as ModalContent, modal_footer_default as ModalFooter, modal_header_default as ModalHeader, modal_trigger_default as ModalTrigger, pagination_default as Pagination, pagination_content_default as PaginationContent, pagination_ellipsis_default as PaginationEllipsis, pagination_first_default as PaginationFirst, pagination_item_default as PaginationItem, pagination_last_default as PaginationLast, pagination_next_default as PaginationNext, pagination_previous_default as PaginationPrevious, popover_default as Popover, popover_content_default as PopoverContent, popover_trigger_default as PopoverTrigger, progress_bar_default as ProgressBar, progress_circle_default as ProgressCircle, radio_group_default as RadioGroup, radio_group_card_default as RadioGroupCard, radio_group_item_default as RadioGroupItem, radio_group_label_default as RadioGroupLabel, range_calendar_default as RangeCalendar, range_picker_default as RangePicker, rich_editor_default as RichEditor, SIDEBAR_COOKIE_MAX_AGE, SIDEBAR_COOKIE_NAME, SIDEBAR_KEYBOARD_SHORTCUT, SIDEBAR_WIDTH, SIDEBAR_WIDTH_ICON, SIDEBAR_WIDTH_MOBILE, scroll_area_default as ScrollArea, segmented_control_default as SegmentedControl, segmented_control_item_default as SegmentedControlItem, select_default as Select, select_content_default as SelectContent, select_group_default as SelectGroup, select_icon_default as SelectIcon, select_item_default as SelectItem, select_label_default as SelectLabel, select_separator_default as SelectSeparator, select_trigger_default as SelectTrigger, select_value_default as SelectValue, sheet_default as Sheet, sheet_close_default as SheetClose, sheet_content_default as SheetContent, sheet_description_default as SheetDescription, sheet_footer_default as SheetFooter, sheet_header_default as SheetHeader, sheet_title_default as SheetTitle, sheet_trigger_default as SheetTrigger, sidebar_default as Sidebar, sidebar_content_default as SidebarContent, sidebar_element_default as SidebarElement, sidebar_footer_default as SidebarFooter, sidebar_group_default as SidebarGroup, sidebar_group_content_default as SidebarGroupContent, sidebar_group_label_default as SidebarGroupLabel, sidebar_header_default as SidebarHeader, sidebar_menu_default as SidebarMenu, sidebar_menu_action_default as SidebarMenuAction, sidebar_menu_badge_default as SidebarMenuBadge, sidebar_menu_button_default as SidebarMenuButton, sidebar_menu_item_default as SidebarMenuItem, sidebar_menu_sub_default as SidebarMenuSub, sidebar_menu_sub_button_default as SidebarMenuSubButton, sidebar_menu_sub_item_default as SidebarMenuSubItem, sidebar_provider_default as SidebarProvider, sidebar_separator_default as SidebarSeparator, sidebar_trigger_default as SidebarTrigger, slider_default as Slider, social_button_default as SocialButton, sonner_default as Sonner, sonner_alert_default as SonnerAlert, status_badge_default as StatusBadge, switch_default as Switch, tab_menu_default as TabMenu, tab_menu_content_default as TabMenuContent, tab_menu_item_default as TabMenuItem, tab_menu_list_default as TabMenuList, table_default as Table, table_body_default as TableBody, table_caption_default as TableCaption, table_cell_default as TableCell, table_empty_default as TableEmpty, table_footer_default as TableFooter, table_head_default as TableHead, table_header_default as TableHeader, table_row_default as TableRow, tag_default as Tag, text_input_default as TextInput, text_input_affix_default as TextInputAffix, text_input_button_default as TextInputButton, textarea_default as Textarea, tooltip_default as Tooltip, tooltip_content_default as TooltipContent, tooltip_provider_default as TooltipProvider, tooltip_root_default as TooltipRoot, tooltip_trigger_default as TooltipTrigger, bumpColorValue, chartColor, chartTooltip, clamp, formatCompact, formatNumber, getAbsolutePosition, getColorConstraints, getFractionDigit, getPageXYFromEvent, getScrollXY, niceTicks, provideSidebarContext, resolveArrowDirection, toast, truncColorValue, uid, useChartMotion, useDelegatedProps, useDirection, useLocale, useSidebar, useTabObserver };
@@ -0,0 +1,2 @@
1
+ import { t as mochi_default } from "./chunks/mochi.js";
2
+ export { mochi_default as default };
@@ -1,4 +1,4 @@
1
- import { getCurrentInstance, onMounted, ref, watch } from "vue";
1
+ import { computed, getCurrentInstance, onMounted, ref, toValue, watch } from "vue";
2
2
  //#region src/composables/use-direction.ts
3
3
  var revision = ref(0);
4
4
  var observer;
@@ -13,18 +13,18 @@ function observeDocument() {
13
13
  function documentDirection() {
14
14
  return typeof document !== "undefined" && document.documentElement.dir === "rtl" ? "rtl" : "ltr";
15
15
  }
16
- function useDirection() {
16
+ function useDirection(override) {
17
17
  const instance = getCurrentInstance();
18
- const direction = ref(documentDirection());
18
+ const resolved = ref(documentDirection());
19
19
  observeDocument();
20
20
  function read() {
21
21
  const node = instance?.vnode.el;
22
22
  const element = node instanceof HTMLElement ? node : node?.parentElement;
23
- direction.value = element ? getComputedStyle(element).direction === "rtl" ? "rtl" : "ltr" : documentDirection();
23
+ resolved.value = element ? getComputedStyle(element).direction === "rtl" ? "rtl" : "ltr" : documentDirection();
24
24
  }
25
25
  onMounted(read);
26
26
  watch(revision, read);
27
- return direction;
27
+ return computed(() => toValue(override) ?? resolved.value);
28
28
  }
29
29
  //#endregion
30
30
  export { useDirection };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@youcan/celeste",
3
3
  "type": "module",
4
- "version": "0.13.0",
4
+ "version": "0.14.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.1",
53
53
  "tinycolor2": "^1.6.0",
54
54
  "vue-sonner": "^2.0.9",
55
- "@youcan/celeste-icons": "0.13.0",
56
- "@youcan/celeste-tokens": "0.13.0"
55
+ "@youcan/celeste-icons": "0.14.0",
56
+ "@youcan/celeste-tokens": "0.14.0"
57
57
  },
58
58
  "devDependencies": {
59
59
  "@chromatic-com/storybook": "^5.3.0",