@youcan/celeste 0.11.0 → 0.12.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 (66) hide show
  1. package/ai/component-registry.json +30 -2
  2. package/ai/component-registry.md +5 -1
  3. package/ai/icons.md +1 -1
  4. package/ai/tokens.md +1 -1
  5. package/dist/celeste.css +189 -86
  6. package/dist/cjs/chunks/dist2.cjs +6 -0
  7. package/dist/cjs/chunks/fancy-button.cjs +1 -1
  8. package/dist/cjs/chunks/scroll-bar.cjs +1 -0
  9. package/dist/cjs/chunks/segmented-control-item.cjs +1 -1
  10. package/dist/cjs/chunks/segmented-control.cjs +18 -3
  11. package/dist/cjs/chunks/tab-menu-item.cjs +6 -2
  12. package/dist/cjs/chunks/tab-menu-list.cjs +53 -9
  13. package/dist/cjs/index.cjs +2 -0
  14. package/dist/cjs/use-tab-observer.cjs +42 -0
  15. package/dist/components/segmented-control/segmented-control.d.ts +2 -2
  16. package/dist/components/tab-menu/tab-menu-list.d.ts +14 -5
  17. package/dist/composables/index.d.ts +1 -0
  18. package/dist/composables/use-tab-observer.d.ts +14 -0
  19. package/dist/es/chunks/BubbleSelect.js +1 -1
  20. package/dist/es/chunks/CollapsibleRoot.js +1 -1
  21. package/dist/es/chunks/ComboboxInput.js +1 -1
  22. package/dist/es/chunks/ComboboxRoot.js +1 -1
  23. package/dist/es/chunks/DialogRoot.js +1 -1
  24. package/dist/es/chunks/DropdownMenuRoot.js +1 -1
  25. package/dist/es/chunks/MenuRoot.js +1 -1
  26. package/dist/es/chunks/MenuSub.js +1 -1
  27. package/dist/es/chunks/PaginationRoot.js +1 -1
  28. package/dist/es/chunks/PinInputRoot.js +1 -1
  29. package/dist/es/chunks/PopoverRoot.js +1 -1
  30. package/dist/es/chunks/ProgressIndicator.js +1 -1
  31. package/dist/es/chunks/RadioGroupRoot.js +1 -1
  32. package/dist/es/chunks/RovingFocusGroup.js +1 -1
  33. package/dist/es/chunks/SelectItemAlignedPosition.js +1 -1
  34. package/dist/es/chunks/TabsRoot.js +1 -1
  35. package/dist/es/chunks/ToggleGroupRoot.js +1 -1
  36. package/dist/es/chunks/TooltipRoot.js +1 -1
  37. package/dist/es/chunks/bar-chart.js +1 -1
  38. package/dist/es/chunks/calendar.js +1 -1
  39. package/dist/es/chunks/checkbox.js +1 -1
  40. package/dist/es/chunks/counter-input.js +1 -1
  41. package/dist/es/chunks/dist2.js +1 -1
  42. package/dist/es/chunks/dropdown-menu-sub.js +1 -1
  43. package/dist/es/chunks/fancy-button.js +1 -1
  44. package/dist/es/chunks/radio-group-item.js +1 -1
  45. package/dist/es/chunks/range-calendar.js +1 -1
  46. package/dist/es/chunks/scroll-area.js +1 -1
  47. package/dist/es/chunks/scroll-bar.js +2 -1
  48. package/dist/es/chunks/segmented-control-item.js +2 -2
  49. package/dist/es/chunks/segmented-control.js +20 -4
  50. package/dist/es/chunks/sidebar-provider.js +1 -1
  51. package/dist/es/chunks/slider.js +1 -1
  52. package/dist/es/chunks/switch.js +1 -1
  53. package/dist/es/chunks/tab-menu-item.js +6 -2
  54. package/dist/es/chunks/tab-menu-list.js +56 -10
  55. package/dist/es/index.js +2 -1
  56. package/dist/es/use-tab-observer.js +41 -0
  57. package/package.json +3 -3
  58. package/src/components/button/fancy-button.vue +14 -4
  59. package/src/components/segmented-control/segmented-control-item.vue +3 -3
  60. package/src/components/segmented-control/segmented-control.vue +35 -0
  61. package/src/components/switch/switch.vue +19 -18
  62. package/src/components/tab-menu/stories/tab-menu.stories.ts +39 -0
  63. package/src/components/tab-menu/tab-menu-item.vue +27 -28
  64. package/src/components/tab-menu/tab-menu-list.vue +85 -3
  65. package/src/composables/index.ts +1 -0
  66. package/src/composables/use-tab-observer.ts +51 -0
@@ -3,8 +3,10 @@ const require__plugin_vue_export_helper = require("./_plugin-vue_export-helper.c
3
3
  const require_useForwardPropsEmits = require("./useForwardPropsEmits.cjs");
4
4
  const require_ToggleGroupRoot = require("./ToggleGroupRoot.cjs");
5
5
  const require_use_delegated_props = require("../use-delegated-props.cjs");
6
+ const require_use_tab_observer = require("../use-tab-observer.cjs");
6
7
  let vue = require("vue");
7
8
  //#region src/components/segmented-control/segmented-control.vue?vue&type=script&setup=true&lang.ts
9
+ var _hoisted_1 = ["data-ready"];
8
10
  var segmented_control_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue.defineComponent)({
9
11
  __name: "segmented-control",
10
12
  props: {
@@ -33,9 +35,22 @@ var segmented_control_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
33
35
  const emits = __emit;
34
36
  const delegatedProps = require_use_delegated_props.useDelegatedProps(props, "class");
35
37
  const forwarded = require_useForwardPropsEmits.useForwardPropsEmits(delegatedProps, emits);
38
+ const { listRef, indicator, ready } = require_use_tab_observer.useTabObserver("[data-state=\"on\"]");
36
39
  return (_ctx, _cache) => {
37
- return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(require_ToggleGroupRoot.ToggleGroupRoot_default), (0, vue.mergeProps)({ class: (0, vue.unref)(require_clsx.clsx)("celeste-segmented-control", props.class) }, (0, vue.unref)(forwarded), { type: "single" }), {
38
- default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default", {}, void 0, true)]),
40
+ return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(require_ToggleGroupRoot.ToggleGroupRoot_default), (0, vue.mergeProps)({
41
+ ref_key: "listRef",
42
+ ref: listRef,
43
+ class: (0, vue.unref)(require_clsx.clsx)("celeste-segmented-control", props.class)
44
+ }, (0, vue.unref)(forwarded), { type: "single" }), {
45
+ default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default", {}, void 0, true), (0, vue.createElementVNode)("div", {
46
+ class: "celeste-segmented-control-indicator",
47
+ "data-ready": (0, vue.unref)(ready),
48
+ style: (0, vue.normalizeStyle)({
49
+ width: `${(0, vue.unref)(indicator).width}px`,
50
+ height: `${(0, vue.unref)(indicator).height}px`,
51
+ transform: `translate3d(${(0, vue.unref)(indicator).left}px, ${(0, vue.unref)(indicator).top}px, 0)`
52
+ })
53
+ }, null, 12, _hoisted_1)]),
39
54
  _: 3
40
55
  }, 16, ["class"]);
41
56
  };
@@ -43,7 +58,7 @@ var segmented_control_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*
43
58
  });
44
59
  //#endregion
45
60
  //#region src/components/segmented-control/segmented-control.vue
46
- var segmented_control_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(segmented_control_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-fe40de14"]]);
61
+ var segmented_control_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(segmented_control_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-9a13a9a8"]]);
47
62
  //#endregion
48
63
  Object.defineProperty(exports, "segmented_control_default", {
49
64
  enumerable: true,
@@ -92,6 +92,10 @@ var _hoisted_1 = {
92
92
  key: 0,
93
93
  class: "celeste-tab-menu-item-label"
94
94
  };
95
+ var _hoisted_2 = {
96
+ key: 1,
97
+ class: "celeste-tab-menu-item-postfix"
98
+ };
95
99
  var tab_menu_item_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue.defineComponent)({
96
100
  __name: "tab-menu-item",
97
101
  props: {
@@ -116,7 +120,7 @@ var tab_menu_item_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0
116
120
  default: (0, vue.withCtx)(() => [
117
121
  (0, vue.renderSlot)(_ctx.$slots, "prefix", {}, void 0, true),
118
122
  _ctx.$slots.default ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_1, [(0, vue.renderSlot)(_ctx.$slots, "default", {}, void 0, true)])) : (0, vue.createCommentVNode)("", true),
119
- (0, vue.renderSlot)(_ctx.$slots, "postfix", {}, void 0, true)
123
+ _ctx.$slots.postfix ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_2, [(0, vue.renderSlot)(_ctx.$slots, "postfix", {}, void 0, true)])) : (0, vue.createCommentVNode)("", true)
120
124
  ]),
121
125
  _: 3
122
126
  }, 16, ["class"]);
@@ -125,7 +129,7 @@ var tab_menu_item_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0
125
129
  });
126
130
  //#endregion
127
131
  //#region src/components/tab-menu/tab-menu-item.vue
128
- var tab_menu_item_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(tab_menu_item_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-3c27e2e4"]]);
132
+ var tab_menu_item_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(tab_menu_item_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-512ad887"]]);
129
133
  //#endregion
130
134
  Object.defineProperty(exports, "tab_menu_item_default", {
131
135
  enumerable: true,
@@ -5,6 +5,7 @@ const require_useForwardExpose = require("./useForwardExpose.cjs");
5
5
  const require_RovingFocusGroup = require("./RovingFocusGroup.cjs");
6
6
  const require_TabsRoot = require("./TabsRoot.cjs");
7
7
  const require_use_delegated_props = require("../use-delegated-props.cjs");
8
+ const require_use_tab_observer = require("../use-tab-observer.cjs");
8
9
  let vue = require("vue");
9
10
  //#region ../../node_modules/.pnpm/reka-ui@2.10.1_vue@3.5.41_typescript@6.0.3_/node_modules/reka-ui/dist/Tabs/TabsList.js
10
11
  var TabsList_default = /* @__PURE__ */ (0, vue.defineComponent)({
@@ -61,34 +62,77 @@ var TabsList_default = /* @__PURE__ */ (0, vue.defineComponent)({
61
62
  });
62
63
  //#endregion
63
64
  //#region src/components/tab-menu/tab-menu-list.vue?vue&type=script&setup=true&lang.ts
65
+ var _hoisted_1 = ["data-ready"];
64
66
  var tab_menu_list_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue.defineComponent)({
65
67
  __name: "tab-menu-list",
66
68
  props: {
67
- loop: { type: Boolean },
68
- asChild: { type: Boolean },
69
- as: {},
70
69
  class: { type: [
71
70
  Boolean,
72
71
  null,
73
72
  String,
74
73
  Object,
75
74
  Array
76
- ] }
75
+ ] },
76
+ bordered: {
77
+ type: Boolean,
78
+ default: true
79
+ },
80
+ scrollable: {
81
+ type: Boolean,
82
+ default: false
83
+ },
84
+ fill: {
85
+ type: Boolean,
86
+ default: false
87
+ },
88
+ align: { default: "start" },
89
+ loop: { type: Boolean },
90
+ asChild: { type: Boolean },
91
+ as: {}
77
92
  },
78
93
  setup(__props) {
79
94
  const props = __props;
80
- const delegatedProps = require_use_delegated_props.useDelegatedProps(props, "class");
95
+ const delegatedProps = require_use_delegated_props.useDelegatedProps(props, [
96
+ "class",
97
+ "bordered",
98
+ "scrollable",
99
+ "fill",
100
+ "align"
101
+ ]);
102
+ const { listRef, indicator, ready } = require_use_tab_observer.useTabObserver("[data-state=\"active\"]");
81
103
  return (_ctx, _cache) => {
82
- return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(TabsList_default), (0, vue.mergeProps)((0, vue.unref)(delegatedProps), { class: (0, vue.unref)(require_clsx.clsx)("celeste-tab-menu-list", props.class) }), {
83
- default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default", {}, void 0, true)]),
104
+ return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(TabsList_default), (0, vue.mergeProps)({
105
+ ref_key: "listRef",
106
+ ref: listRef
107
+ }, (0, vue.unref)(delegatedProps), {
108
+ "data-bordered": __props.bordered,
109
+ "data-scrollable": __props.scrollable,
110
+ "data-fill": __props.fill,
111
+ "data-align": __props.align,
112
+ class: (0, vue.unref)(require_clsx.clsx)("celeste-tab-menu-list", props.class)
113
+ }), {
114
+ default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default", {}, void 0, true), (0, vue.createElementVNode)("div", {
115
+ class: "celeste-tab-menu-indicator",
116
+ "data-ready": (0, vue.unref)(ready),
117
+ style: (0, vue.normalizeStyle)({
118
+ width: `${(0, vue.unref)(indicator).width}px`,
119
+ transform: `translate3d(${(0, vue.unref)(indicator).left}px, 0, 0)`
120
+ })
121
+ }, null, 12, _hoisted_1)]),
84
122
  _: 3
85
- }, 16, ["class"]);
123
+ }, 16, [
124
+ "data-bordered",
125
+ "data-scrollable",
126
+ "data-fill",
127
+ "data-align",
128
+ "class"
129
+ ]);
86
130
  };
87
131
  }
88
132
  });
89
133
  //#endregion
90
134
  //#region src/components/tab-menu/tab-menu-list.vue
91
- var tab_menu_list_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(tab_menu_list_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-3c860830"]]);
135
+ var tab_menu_list_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(tab_menu_list_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-bf1363bf"]]);
92
136
  //#endregion
93
137
  Object.defineProperty(exports, "tab_menu_list_default", {
94
138
  enumerable: true,
@@ -114,6 +114,7 @@ const require_radio_group = require("./chunks/radio-group.cjs");
114
114
  const require_range_picker = require("./chunks/range-picker.cjs");
115
115
  const require_rich_editor = require("./chunks/rich-editor.cjs");
116
116
  const require_use_sidebar = require("./use-sidebar.cjs");
117
+ const require_use_tab_observer = require("./use-tab-observer.cjs");
117
118
  const require_segmented_control = require("./chunks/segmented-control.cjs");
118
119
  const require_sheet_close = require("./chunks/sheet-close.cjs");
119
120
  const require_sheet_content = require("./chunks/sheet-content.cjs");
@@ -401,3 +402,4 @@ exports.useChartMotion = require_use_chart_motion.useChartMotion;
401
402
  exports.useDelegatedProps = require_use_delegated_props.useDelegatedProps;
402
403
  exports.useLocale = require_use_locale.useLocale;
403
404
  exports.useSidebar = require_use_sidebar.useSidebar;
405
+ exports.useTabObserver = require_use_tab_observer.useTabObserver;
@@ -0,0 +1,42 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_dist = require("./chunks/dist2.cjs");
3
+ let vue = require("vue");
4
+ //#region src/composables/use-tab-observer.ts
5
+ function useTabObserver(activeSelector) {
6
+ const listRef = (0, vue.shallowRef)(null);
7
+ const indicator = (0, vue.ref)({
8
+ left: 0,
9
+ top: 0,
10
+ width: 0,
11
+ height: 0
12
+ });
13
+ const ready = (0, vue.ref)(false);
14
+ function update() {
15
+ const active = require_dist.unrefElement(listRef)?.querySelector(activeSelector);
16
+ if (!active) {
17
+ ready.value = false;
18
+ return;
19
+ }
20
+ indicator.value = {
21
+ left: active.offsetLeft,
22
+ top: active.offsetTop,
23
+ width: active.offsetWidth,
24
+ height: active.offsetHeight
25
+ };
26
+ if (!ready.value) requestAnimationFrame(() => requestAnimationFrame(() => ready.value = true));
27
+ }
28
+ require_dist.useResizeObserver(listRef, update);
29
+ require_dist.useMutationObserver(listRef, update, {
30
+ childList: true,
31
+ subtree: true,
32
+ attributes: true,
33
+ attributeFilter: ["data-state"]
34
+ });
35
+ return {
36
+ listRef,
37
+ indicator,
38
+ ready
39
+ };
40
+ }
41
+ //#endregion
42
+ exports.useTabObserver = useTabObserver;
@@ -3,9 +3,9 @@ import { HTMLAttributes } from 'vue';
3
3
  type __VLS_Props = Omit<ToggleGroupRootProps, 'type'> & {
4
4
  class?: HTMLAttributes['class'];
5
5
  };
6
- declare var __VLS_8: {};
6
+ declare var __VLS_9: {};
7
7
  type __VLS_Slots = {} & {
8
- default?: (props: typeof __VLS_8) => any;
8
+ default?: (props: typeof __VLS_9) => any;
9
9
  };
10
10
  declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
11
11
  "update:modelValue": (payload: import('reka-ui').AcceptableValue | import('reka-ui').AcceptableValue[]) => any;
@@ -1,13 +1,22 @@
1
1
  import { TabsListProps } from 'reka-ui';
2
2
  import { HTMLAttributes } from 'vue';
3
- type __VLS_Props = TabsListProps & {
3
+ export interface TabMenuListProps extends TabsListProps {
4
4
  class?: HTMLAttributes['class'];
5
- };
6
- declare var __VLS_8: {};
5
+ bordered?: boolean;
6
+ scrollable?: boolean;
7
+ fill?: boolean;
8
+ align?: 'start' | 'center';
9
+ }
10
+ declare var __VLS_9: {};
7
11
  type __VLS_Slots = {} & {
8
- default?: (props: typeof __VLS_8) => any;
12
+ default?: (props: typeof __VLS_9) => any;
9
13
  };
10
- declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
14
+ declare const __VLS_base: import('vue').DefineComponent<TabMenuListProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<TabMenuListProps> & Readonly<{}>, {
15
+ fill: boolean;
16
+ align: "start" | "center";
17
+ bordered: boolean;
18
+ scrollable: boolean;
19
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
11
20
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
12
21
  declare const _default: typeof __VLS_export;
13
22
  export default _default;
@@ -2,3 +2,4 @@ export * from './use-chart-motion';
2
2
  export * from './use-delegated-props';
3
3
  export * from './use-locale';
4
4
  export * from './use-sidebar';
5
+ export * from './use-tab-observer';
@@ -0,0 +1,14 @@
1
+ import { MaybeElement } from '@vueuse/core';
2
+ import { Ref } from 'vue';
3
+ export interface TabIndicator {
4
+ left: number;
5
+ top: number;
6
+ width: number;
7
+ height: number;
8
+ }
9
+ export interface TabObserver {
10
+ listRef: Ref<MaybeElement>;
11
+ indicator: Ref<TabIndicator>;
12
+ ready: Ref<boolean>;
13
+ }
14
+ export declare function useTabObserver(activeSelector: string): TabObserver;
@@ -1,7 +1,7 @@
1
1
  import { t as isEqual } from "./ohash.D__AXeF1.js";
2
2
  import { t as createContext } from "./createContext.js";
3
3
  import { t as isNullish } from "./nullish.js";
4
- import { f as useVModel } from "./dist2.js";
4
+ import { p as useVModel } from "./dist2.js";
5
5
  import { t as useDirection } from "./useDirection.js";
6
6
  import { t as useFormControl } from "./useFormControl.js";
7
7
  import { t as useCollection } from "./Collection.js";
@@ -1,5 +1,5 @@
1
1
  import { t as createContext } from "./createContext.js";
2
- import { f as useVModel } from "./dist2.js";
2
+ import { p as useVModel } from "./dist2.js";
3
3
  import { t as Primitive } from "./Primitive.js";
4
4
  import { t as useForwardExpose } from "./useForwardExpose.js";
5
5
  import { createBlock, defineComponent, openBlock, renderSlot, toRefs, unref, withCtx } from "vue";
@@ -1,5 +1,5 @@
1
1
  import { n as injectComboboxRootContext, r as injectListboxRootContext } from "./ComboboxRoot.js";
2
- import { f as useVModel } from "./dist2.js";
2
+ import { p as useVModel } from "./dist2.js";
3
3
  import { t as Primitive } from "./Primitive.js";
4
4
  import { t as useComposing } from "./useComposing.js";
5
5
  import { t as usePrimitiveElement } from "./usePrimitiveElement.js";
@@ -1,7 +1,7 @@
1
1
  import { t as isEqual } from "./ohash.D__AXeF1.js";
2
2
  import { t as createContext } from "./createContext.js";
3
3
  import { a as isClient, t as createEventHook } from "./dist.js";
4
- import { f as useVModel } from "./dist2.js";
4
+ import { p as useVModel } from "./dist2.js";
5
5
  import { t as Primitive } from "./Primitive.js";
6
6
  import { t as useDirection } from "./useDirection.js";
7
7
  import { t as useFormControl } from "./useFormControl.js";
@@ -1,5 +1,5 @@
1
1
  import { t as createContext } from "./createContext.js";
2
- import { f as useVModel } from "./dist2.js";
2
+ import { p as useVModel } from "./dist2.js";
3
3
  import { defineComponent, ref, renderSlot, toRefs, unref } from "vue";
4
4
  //#region ../../node_modules/.pnpm/reka-ui@2.10.1_vue@3.5.41_typescript@6.0.3_/node_modules/reka-ui/dist/Dialog/DialogRoot.js
5
5
  var [injectDialogRootContext, provideDialogRootContext] = /*#__PURE__*/ createContext("DialogRoot");
@@ -1,5 +1,5 @@
1
1
  import { t as createContext } from "./createContext.js";
2
- import { f as useVModel } from "./dist2.js";
2
+ import { p as useVModel } from "./dist2.js";
3
3
  import { t as useDirection } from "./useDirection.js";
4
4
  import { t as useForwardExpose } from "./useForwardExpose.js";
5
5
  import { t as MenuRoot_default } from "./MenuRoot.js";
@@ -1,6 +1,6 @@
1
1
  import { t as createContext } from "./createContext.js";
2
2
  import { r as createSharedComposable } from "./dist.js";
3
- import { f as useVModel, s as useEventListener } from "./dist2.js";
3
+ import { p as useVModel, s as useEventListener } from "./dist2.js";
4
4
  import { t as useDirection } from "./useDirection.js";
5
5
  import { t as PopperRoot_default } from "./PopperRoot.js";
6
6
  import { createBlock, defineComponent, onMounted, openBlock, ref, renderSlot, toRefs, unref, withCtx } from "vue";
@@ -1,5 +1,5 @@
1
1
  import { t as createContext } from "./createContext.js";
2
- import { f as useVModel } from "./dist2.js";
2
+ import { p as useVModel } from "./dist2.js";
3
3
  import { t as PopperRoot_default } from "./PopperRoot.js";
4
4
  import { i as provideMenuContext, n as injectMenuContext } from "./MenuRoot.js";
5
5
  import { createBlock, defineComponent, openBlock, ref, renderSlot, unref, watchEffect, withCtx } from "vue";
@@ -1,5 +1,5 @@
1
1
  import { t as createContext } from "./createContext.js";
2
- import { f as useVModel } from "./dist2.js";
2
+ import { p as useVModel } from "./dist2.js";
3
3
  import { t as Primitive } from "./Primitive.js";
4
4
  import { t as useForwardExpose } from "./useForwardExpose.js";
5
5
  import { computed, createBlock, defineComponent, openBlock, renderSlot, toRefs, unref, withCtx } from "vue";
@@ -1,5 +1,5 @@
1
1
  import { t as createContext } from "./createContext.js";
2
- import { f as useVModel } from "./dist2.js";
2
+ import { p as useVModel } from "./dist2.js";
3
3
  import { t as Primitive } from "./Primitive.js";
4
4
  import { t as useDirection } from "./useDirection.js";
5
5
  import { t as useForwardExpose } from "./useForwardExpose.js";
@@ -1,5 +1,5 @@
1
1
  import { t as createContext } from "./createContext.js";
2
- import { f as useVModel } from "./dist2.js";
2
+ import { p as useVModel } from "./dist2.js";
3
3
  import { t as PopperRoot_default } from "./PopperRoot.js";
4
4
  import { createBlock, defineComponent, openBlock, ref, renderSlot, toRefs, unref, withCtx } from "vue";
5
5
  //#region ../../node_modules/.pnpm/reka-ui@2.10.1_vue@3.5.41_typescript@6.0.3_/node_modules/reka-ui/dist/Popover/PopoverRoot.js
@@ -1,6 +1,6 @@
1
1
  import { t as createContext } from "./createContext.js";
2
2
  import { t as isNullish } from "./nullish.js";
3
- import { f as useVModel } from "./dist2.js";
3
+ import { p as useVModel } from "./dist2.js";
4
4
  import { t as Primitive } from "./Primitive.js";
5
5
  import { t as useForwardExpose } from "./useForwardExpose.js";
6
6
  import { computed, createBlock, defineComponent, mergeProps, nextTick, openBlock, renderSlot, unref, watch, withCtx } from "vue";
@@ -1,5 +1,5 @@
1
1
  import { t as createContext } from "./createContext.js";
2
- import { f as useVModel } from "./dist2.js";
2
+ import { p as useVModel } from "./dist2.js";
3
3
  import { t as Primitive } from "./Primitive.js";
4
4
  import { t as useDirection } from "./useDirection.js";
5
5
  import { t as useFormControl } from "./useFormControl.js";
@@ -1,5 +1,5 @@
1
1
  import { t as createContext } from "./createContext.js";
2
- import { f as useVModel } from "./dist2.js";
2
+ import { p as useVModel } from "./dist2.js";
3
3
  import { t as Primitive } from "./Primitive.js";
4
4
  import { t as useDirection } from "./useDirection.js";
5
5
  import { t as useCollection } from "./Collection.js";
@@ -1,6 +1,6 @@
1
1
  import { t as clamp } from "./clamp.js";
2
2
  import { t as createContext } from "./createContext.js";
3
- import { i as unrefElement, u as useResizeObserver } from "./dist2.js";
3
+ import { d as useResizeObserver, i as unrefElement } from "./dist2.js";
4
4
  import { t as Primitive } from "./Primitive.js";
5
5
  import { n as useBodyScrollLock, t as FocusScope_default } from "./FocusScope.js";
6
6
  import { t as useFocusGuards } from "./useFocusGuards.js";
@@ -1,5 +1,5 @@
1
1
  import { t as createContext } from "./createContext.js";
2
- import { f as useVModel } from "./dist2.js";
2
+ import { p as useVModel } from "./dist2.js";
3
3
  import { t as Primitive } from "./Primitive.js";
4
4
  import { t as useDirection } from "./useDirection.js";
5
5
  import { t as useForwardExpose } from "./useForwardExpose.js";
@@ -1,7 +1,7 @@
1
1
  import { t as isEqual } from "./ohash.D__AXeF1.js";
2
2
  import { t as createContext } from "./createContext.js";
3
3
  import { t as isValueEqualOrExist } from "./isValueEqualOrExist.js";
4
- import { f as useVModel } from "./dist2.js";
4
+ import { p as useVModel } from "./dist2.js";
5
5
  import { t as Primitive } from "./Primitive.js";
6
6
  import { t as useDirection } from "./useDirection.js";
7
7
  import { t as useFormControl } from "./useFormControl.js";
@@ -1,6 +1,6 @@
1
1
  import { t as createContext } from "./createContext.js";
2
2
  import { y as useTimeoutFn } from "./dist.js";
3
- import { f as useVModel } from "./dist2.js";
3
+ import { p as useVModel } from "./dist2.js";
4
4
  import { t as useForwardExpose } from "./useForwardExpose.js";
5
5
  import { t as PopperRoot_default } from "./PopperRoot.js";
6
6
  import { n as injectTooltipProviderContext } from "./TooltipProvider.js";
@@ -1,5 +1,5 @@
1
1
  import { i as __toESM, n as __exportAll, t as __commonJSMin } from "./rolldown-runtime.js";
2
- import { d as useTextDirection, o as useElementSize } from "./dist2.js";
2
+ import { f as useTextDirection, o as useElementSize } from "./dist2.js";
3
3
  import { useChartMotion } from "../use-chart-motion.js";
4
4
  import { useLocale } from "../use-locale.js";
5
5
  import { chartColor, formatCompact, formatNumber, niceTicks } from "../chart.js";
@@ -1,7 +1,7 @@
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
3
  import { t as createContext } from "./createContext.js";
4
- import { f as useVModel } from "./dist2.js";
4
+ import { p as useVModel } from "./dist2.js";
5
5
  import { t as Primitive } from "./Primitive.js";
6
6
  import { a as handleCalendarInitialFocus, d as toDate, g as $ad063034c8620db8$export$aa8b41735afcabd2, h as $ad063034c8620db8$export$a18c89cbd24170ff, i as getWeekStartsOn, m as $ad063034c8620db8$export$91b62ebf2ba703ee, n as useCalendarState, p as $ad063034c8620db8$export$629b0a497aa65267, s as getDefaultDate, t as useCalendar, v as $ad063034c8620db8$export$ea39ec197993aef0 } from "./useCalendar.js";
7
7
  import { t as useDirection } from "./useDirection.js";
@@ -3,7 +3,7 @@ import { t as isEqual } from "./ohash.D__AXeF1.js";
3
3
  import { t as createContext } from "./createContext.js";
4
4
  import { t as isNullish } from "./nullish.js";
5
5
  import { t as isValueEqualOrExist } from "./isValueEqualOrExist.js";
6
- import { f as useVModel } from "./dist2.js";
6
+ import { p as useVModel } from "./dist2.js";
7
7
  import { t as Primitive } from "./Primitive.js";
8
8
  import { t as useFormControl } from "./useFormControl.js";
9
9
  import { t as useForwardExpose } from "./useForwardExpose.js";
@@ -4,7 +4,7 @@ import { t as createContext } from "./createContext.js";
4
4
  import { t as getActiveElement } from "./getActiveElement.js";
5
5
  import { t as isNullish } from "./nullish.js";
6
6
  import { a as isClient, d as reactiveComputed, t as createEventHook } from "./dist.js";
7
- import { f as useVModel, i as unrefElement, s as useEventListener } from "./dist2.js";
7
+ import { i as unrefElement, p as useVModel, s as useEventListener } from "./dist2.js";
8
8
  import { t as Primitive } from "./Primitive.js";
9
9
  import { t as useComposing } from "./useComposing.js";
10
10
  import { t as useFormControl } from "./useFormControl.js";
@@ -458,4 +458,4 @@ function useVModel(props, key, emit, options = {}) {
458
458
  });
459
459
  }
460
460
  //#endregion
461
- export { useDropZone as a, useMediaQuery as c, useTextDirection as d, useVModel as f, unrefElement as i, useMounted as l, defaultWindow as n, useElementSize as o, onKeyStroke as r, useEventListener as s, defaultDocument as t, useResizeObserver as u };
461
+ export { useDropZone as a, useMediaQuery as c, useResizeObserver as d, useTextDirection as f, unrefElement as i, useMounted as l, defaultWindow as n, useElementSize as o, useVModel as p, onKeyStroke as r, useEventListener as s, defaultDocument as t, useMutationObserver as u };
@@ -1,4 +1,4 @@
1
- import { f as useVModel } from "./dist2.js";
1
+ import { p as useVModel } from "./dist2.js";
2
2
  import { t as useForwardExpose } from "./useForwardExpose.js";
3
3
  import { t as useForwardPropsEmits } from "./useForwardPropsEmits.js";
4
4
  import { t as MenuSub_default } from "./MenuSub.js";
@@ -36,6 +36,6 @@ var fancy_button_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
36
36
  ]);
37
37
  };
38
38
  }
39
- }), [["__scopeId", "data-v-970a57eb"]]);
39
+ }), [["__scopeId", "data-v-262bd031"]]);
40
40
  //#endregion
41
41
  export { fancy_button_default as t };
@@ -2,7 +2,7 @@ import { t as clsx } from "./clsx.js";
2
2
  import { t as isEqual } from "./ohash.D__AXeF1.js";
3
3
  import { t as createContext } from "./createContext.js";
4
4
  import { t as handleAndDispatchCustomEvent } from "./handleAndDispatchCustomEvent.js";
5
- import { f as useVModel, s as useEventListener } from "./dist2.js";
5
+ import { p as useVModel, s as useEventListener } from "./dist2.js";
6
6
  import { t as Primitive } from "./Primitive.js";
7
7
  import { t as useFormControl } from "./useFormControl.js";
8
8
  import { t as useForwardExpose } from "./useForwardExpose.js";
@@ -1,7 +1,7 @@
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
3
  import { t as createContext } from "./createContext.js";
4
- import { f as useVModel, s as useEventListener } from "./dist2.js";
4
+ import { p as useVModel, s as useEventListener } from "./dist2.js";
5
5
  import { t as Primitive } from "./Primitive.js";
6
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";
7
7
  import { t as useDirection } from "./useDirection.js";
@@ -1,6 +1,6 @@
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 { u as useResizeObserver } from "./dist2.js";
3
+ import { d as useResizeObserver } from "./dist2.js";
4
4
  import { t as Primitive } from "./Primitive.js";
5
5
  import { t as useForwardExpose } from "./useForwardExpose.js";
6
6
  import { t as useNonce } from "./useNonce.js";
@@ -3,7 +3,7 @@ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-hel
3
3
  import { t as clamp } from "./clamp.js";
4
4
  import { t as createContext } from "./createContext.js";
5
5
  import { v as useDebounceFn, x as watchOnce } from "./dist.js";
6
- import { u as useResizeObserver } from "./dist2.js";
6
+ import { d as useResizeObserver } from "./dist2.js";
7
7
  import { t as Primitive } from "./Primitive.js";
8
8
  import { t as useDirection } from "./useDirection.js";
9
9
  import { t as useForwardExpose } from "./useForwardExpose.js";
@@ -12,6 +12,7 @@ import { useDelegatedProps } from "../use-delegated-props.js";
12
12
  import "../use-chart-motion.js";
13
13
  import "../use-locale.js";
14
14
  import "../use-sidebar.js";
15
+ import "../use-tab-observer.js";
15
16
  import { computed, createBlock, createCommentVNode, createVNode, defineComponent, mergeProps, normalizeStyle, onMounted, onUnmounted, openBlock, ref, renderSlot, toRefs, unref, watch, watchEffect, withCtx } from "vue";
16
17
  //#region ../../node_modules/.pnpm/reka-ui@2.10.1_vue@3.5.41_typescript@6.0.3_/node_modules/reka-ui/dist/ScrollArea/ScrollAreaRoot.js
17
18
  var [injectScrollAreaRootContext, provideScrollAreaRootContext] = /*#__PURE__*/ createContext("ScrollAreaRoot");
@@ -1,7 +1,7 @@
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
3
  import { t as isValueEqualOrExist } from "./isValueEqualOrExist.js";
4
- import { f as useVModel } from "./dist2.js";
4
+ import { p as useVModel } from "./dist2.js";
5
5
  import { t as Primitive } from "./Primitive.js";
6
6
  import { t as useFormControl } from "./useFormControl.js";
7
7
  import { t as useForwardExpose } from "./useForwardExpose.js";
@@ -195,6 +195,6 @@ var segmented_control_item_default = /*#__PURE__*/ _plugin_vue_export_helper_def
195
195
  }, 16, ["class"]);
196
196
  };
197
197
  }
198
- }), [["__scopeId", "data-v-e184b1ba"]]);
198
+ }), [["__scopeId", "data-v-efe57652"]]);
199
199
  //#endregion
200
200
  export { segmented_control_item_default as t };
@@ -3,7 +3,10 @@ import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-hel
3
3
  import { t as useForwardPropsEmits } from "./useForwardPropsEmits.js";
4
4
  import { t as ToggleGroupRoot_default } from "./ToggleGroupRoot.js";
5
5
  import { useDelegatedProps } from "../use-delegated-props.js";
6
- import { createBlock, defineComponent, mergeProps, openBlock, renderSlot, unref, withCtx } from "vue";
6
+ import { useTabObserver } from "../use-tab-observer.js";
7
+ import { createBlock, createElementVNode, defineComponent, mergeProps, normalizeStyle, openBlock, renderSlot, unref, withCtx } from "vue";
8
+ //#region src/components/segmented-control/segmented-control.vue?vue&type=script&setup=true&lang.ts
9
+ var _hoisted_1 = ["data-ready"];
7
10
  //#endregion
8
11
  //#region src/components/segmented-control/segmented-control.vue
9
12
  var segmented_control_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineComponent({
@@ -34,13 +37,26 @@ var segmented_control_default = /*#__PURE__*/ _plugin_vue_export_helper_default(
34
37
  const emits = __emit;
35
38
  const delegatedProps = useDelegatedProps(props, "class");
36
39
  const forwarded = useForwardPropsEmits(delegatedProps, emits);
40
+ const { listRef, indicator, ready } = useTabObserver("[data-state=\"on\"]");
37
41
  return (_ctx, _cache) => {
38
- return openBlock(), createBlock(unref(ToggleGroupRoot_default), mergeProps({ class: unref(clsx)("celeste-segmented-control", props.class) }, unref(forwarded), { type: "single" }), {
39
- default: withCtx(() => [renderSlot(_ctx.$slots, "default", {}, void 0, true)]),
42
+ return openBlock(), createBlock(unref(ToggleGroupRoot_default), mergeProps({
43
+ ref_key: "listRef",
44
+ ref: listRef,
45
+ class: unref(clsx)("celeste-segmented-control", props.class)
46
+ }, unref(forwarded), { type: "single" }), {
47
+ default: withCtx(() => [renderSlot(_ctx.$slots, "default", {}, void 0, true), createElementVNode("div", {
48
+ class: "celeste-segmented-control-indicator",
49
+ "data-ready": unref(ready),
50
+ style: normalizeStyle({
51
+ width: `${unref(indicator).width}px`,
52
+ height: `${unref(indicator).height}px`,
53
+ transform: `translate3d(${unref(indicator).left}px, ${unref(indicator).top}px, 0)`
54
+ })
55
+ }, null, 12, _hoisted_1)]),
40
56
  _: 3
41
57
  }, 16, ["class"]);
42
58
  };
43
59
  }
44
- }), [["__scopeId", "data-v-fe40de14"]]);
60
+ }), [["__scopeId", "data-v-9a13a9a8"]]);
45
61
  //#endregion
46
62
  export { segmented_control_default as t };