@youcan/celeste 0.13.1 → 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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "version": "0.13.1",
4
- "generatedAt": "2026-09-09T15:33:52.703Z",
3
+ "version": "0.14.0",
4
+ "generatedAt": "2026-09-14T14:40:49.235Z",
5
5
  "components": {
6
6
  "Alert": {
7
7
  "name": "Alert",
@@ -4261,6 +4261,53 @@
4261
4261
  "story": "src/components/button/stories/link-button.stories.ts",
4262
4262
  "hasStory": true
4263
4263
  },
4264
+ "Mochi": {
4265
+ "name": "Mochi",
4266
+ "group": "mochi",
4267
+ "file": "src/components/mochi/mochi.vue",
4268
+ "import": "@youcan/celeste",
4269
+ "props": [
4270
+ {
4271
+ "name": "animate",
4272
+ "type": "boolean",
4273
+ "required": false,
4274
+ "default": "false"
4275
+ },
4276
+ {
4277
+ "name": "class",
4278
+ "type": "ClassValue",
4279
+ "required": false
4280
+ },
4281
+ {
4282
+ "name": "idle",
4283
+ "type": "boolean",
4284
+ "required": false,
4285
+ "default": "false"
4286
+ },
4287
+ {
4288
+ "name": "size",
4289
+ "type": "number",
4290
+ "required": false,
4291
+ "default": "40"
4292
+ },
4293
+ {
4294
+ "name": "thinking",
4295
+ "type": "boolean",
4296
+ "required": false,
4297
+ "default": "false"
4298
+ }
4299
+ ],
4300
+ "events": [
4301
+ {
4302
+ "name": "update:idle",
4303
+ "type": "[value: boolean]"
4304
+ }
4305
+ ],
4306
+ "slots": [],
4307
+ "siblings": [],
4308
+ "story": "src/components/mochi/stories/mochi.stories.ts",
4309
+ "hasStory": true
4310
+ },
4264
4311
  "Modal": {
4265
4312
  "name": "Modal",
4266
4313
  "group": "modal",
@@ -1,6 +1,6 @@
1
1
  # Celeste Component Registry
2
2
 
3
- > Generated from source for `@youcan/celeste@0.13.1`. Do not edit.
3
+ > Generated from source for `@youcan/celeste@0.14.0`. Do not edit.
4
4
  > Regenerate with `pnpm --filter @youcan/celeste codegen:registry`.
5
5
 
6
6
  Every component below is imported from `@youcan/celeste`:
@@ -9,7 +9,7 @@ Every component below is imported from `@youcan/celeste`:
9
9
  import { Badge, Button } from '@youcan/celeste';
10
10
  ```
11
11
 
12
- **146 components** in 39 groups.
12
+ **147 components** in 40 groups.
13
13
 
14
14
  This file describes what each component _accepts_. For which component to
15
15
  reach for when several look similar, see the `celeste-ui` skill.
@@ -1386,6 +1386,28 @@ reach for when several look similar, see the `celeste-ui` skill.
1386
1386
 
1387
1387
  ---
1388
1388
 
1389
+ ## mochi
1390
+
1391
+ ### Mochi
1392
+
1393
+ **Props**
1394
+
1395
+ - `animate`: `boolean` — default `false`
1396
+ - `class`: `ClassValue`
1397
+ - `idle`: `boolean` — default `false`
1398
+ - `size`: `number` — default `40`
1399
+ - `thinking`: `boolean` — default `false`
1400
+
1401
+ **Events**
1402
+
1403
+ - `update:idle`: `[value: boolean]`
1404
+
1405
+ **Source:** `src/components/mochi/mochi.vue`
1406
+
1407
+ **Example:** `src/components/mochi/stories/mochi.stories.ts`
1408
+
1409
+ ---
1410
+
1389
1411
  ## modal
1390
1412
 
1391
1413
  ### Modal
package/ai/icons.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Celeste Icons
2
2
 
3
- > Generated from `@youcan/celeste-icons@0.13.1`. Do not edit.
3
+ > Generated from `@youcan/celeste-icons@0.14.0`. Do not edit.
4
4
 
5
5
  **3148 icons.** Render one as a class, not a component:
6
6
 
package/ai/tokens.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Celeste Design Tokens
2
2
 
3
- > Generated from `@youcan/celeste-tokens@0.13.1`. Do not edit.
3
+ > Generated from `@youcan/celeste-tokens@0.14.0`. Do not edit.
4
4
 
5
5
  **352 tokens.** Use them as CSS custom properties: `var(--color-text-sub-600)`.
6
6
 
package/dist/celeste.css CHANGED
@@ -4615,6 +4615,219 @@ to {
4615
4615
  .celeste-label[aria-disabled=true][data-v-5ae119db]::after, .celeste-label[aria-disabled=true][data-v-5ae119db] > a,
4616
4616
  .celeste-label[aria-disabled=true] .celeste-sublabel[data-v-5ae119db] {
4617
4617
  color: inherit;
4618
+ }.celeste-mochi[data-v-ce7048d3] {
4619
+ --mochi-size: var(--v51b30026);
4620
+ --mochi-rotate: var(--v54792142);
4621
+ position: relative;
4622
+ flex: none;
4623
+ width: var(--mochi-size);
4624
+ height: var(--mochi-size);
4625
+ overflow: hidden;
4626
+ border-radius: calc(var(--mochi-size) * 0.2222);
4627
+ background: linear-gradient(180deg, var(--color-brand-300) 0%, #f90171 100%);
4628
+ isolation: isolate;
4629
+ }
4630
+ .celeste-mochi[data-v-ce7048d3]::after {
4631
+ content: "";
4632
+ position: absolute;
4633
+ inset: 0;
4634
+ border-radius: inherit;
4635
+ box-shadow: inset 0 0 0 max(1px, var(--mochi-size) * 0.0278) var(--color-brand-200);
4636
+ pointer-events: none;
4637
+ }
4638
+ .celeste-mochi[data-v-ce7048d3] > * {
4639
+ position: absolute;
4640
+ }
4641
+ .celeste-mochi-stage[data-v-ce7048d3] {
4642
+ inset: 0;
4643
+ transform: rotate(var(--mochi-rotate));
4644
+ }
4645
+ .celeste-mochi-chan[data-v-ce7048d3] {
4646
+ position: absolute;
4647
+ top: 24%;
4648
+ left: -15%;
4649
+ width: 129.4%;
4650
+ height: 140.9%;
4651
+ transition: transform 0.38s cubic-bezier(0.3, -0.4, 0.7, 0.2);
4652
+ }
4653
+ .celeste-mochi-body[data-v-ce7048d3] {
4654
+ position: absolute;
4655
+ inset: 0;
4656
+ border-radius: 50%;
4657
+ background: var(--color-brand-400);
4658
+ box-shadow: inset 0 calc(var(--mochi-size) * 0.242) calc(var(--mochi-size) * 0.4015) rgba(255, 255, 255, 0.8), inset 0 calc(var(--mochi-size) * 0.363) calc(var(--mochi-size) * 0.2826) var(--color-brand-300);
4659
+ }
4660
+ .celeste-mochi-eyes[data-v-ce7048d3] {
4661
+ --eye-top: 12.8%;
4662
+ --eye-h: 19.4%;
4663
+ position: absolute;
4664
+ transform-origin: 50% calc(var(--eye-top) + var(--eye-h) / 2);
4665
+ transition: transform 0.7s ease-in-out;
4666
+ pointer-events: none;
4667
+ inset: 0;
4668
+ }
4669
+ .celeste-mochi-eye[data-v-ce7048d3] {
4670
+ position: absolute;
4671
+ top: var(--eye-top);
4672
+ width: 13.6%;
4673
+ height: var(--eye-h);
4674
+ overflow: hidden;
4675
+ border-radius: var(--radius-full);
4676
+ background: linear-gradient(180deg, var(--color-static-white) 0%, rgba(255, 255, 255, 0.6) 100%);
4677
+ filter: drop-shadow(0 calc(var(--mochi-size) * 0.0305) calc(var(--mochi-size) * 0.0153) var(--color-pink-500));
4678
+ }
4679
+ .celeste-mochi-eye-l[data-v-ce7048d3] {
4680
+ left: 31.5%;
4681
+ }
4682
+ .celeste-mochi-eye-r[data-v-ce7048d3] {
4683
+ right: 31.5%;
4684
+ }
4685
+ .celeste-mochi-peek-drop .celeste-mochi-eye[data-v-ce7048d3],
4686
+ .celeste-mochi-peek-hidden .celeste-mochi-eye[data-v-ce7048d3],
4687
+ .celeste-mochi-peek-out .celeste-mochi-eye[data-v-ce7048d3] {
4688
+ height: calc(var(--eye-h) * 80 / 112);
4689
+ border-bottom-right-radius: 0;
4690
+ border-bottom-left-radius: 0;
4691
+ }
4692
+ .celeste-mochi-peek-drop .celeste-mochi-eye[data-v-ce7048d3] {
4693
+ animation: celeste-mochi-squint-ce7048d3 0.25s ease-in-out 1s both;
4694
+ }
4695
+ .celeste-mochi[data-anim=blink-twice] .celeste-mochi-eye[data-v-ce7048d3],
4696
+ .celeste-mochi[data-anim=look-blink-twice] .celeste-mochi-eye[data-v-ce7048d3] {
4697
+ animation: celeste-mochi-blink-twice-ce7048d3 3.5s linear both;
4698
+ }
4699
+ .celeste-mochi[data-anim=blink-once] .celeste-mochi-eye[data-v-ce7048d3],
4700
+ .celeste-mochi[data-anim=look-blink-once] .celeste-mochi-eye[data-v-ce7048d3] {
4701
+ animation: celeste-mochi-blink-once-ce7048d3 3.5s linear both;
4702
+ }
4703
+ .celeste-mochi[data-anim=look-blink-twice] .celeste-mochi-eyes[data-v-ce7048d3] {
4704
+ animation: celeste-mochi-look-after-blink-twice-ce7048d3 3.5s linear both;
4705
+ }
4706
+ .celeste-mochi[data-anim=look-blink-once] .celeste-mochi-eyes[data-v-ce7048d3] {
4707
+ animation: celeste-mochi-look-after-blink-once-ce7048d3 3.5s linear both;
4708
+ }
4709
+ .celeste-mochi-thinking .celeste-mochi-eyes[data-v-ce7048d3] {
4710
+ transform: translate(3.77%, -3.118%) rotate(-7deg);
4711
+ transition: transform 0.6s ease-out;
4712
+ }
4713
+ .celeste-mochi-thinking .celeste-mochi-eye[data-v-ce7048d3] {
4714
+ animation: celeste-mochi-blink-twice-ce7048d3 3.5s linear 1s infinite;
4715
+ }
4716
+ .celeste-mochi-peek-drop .celeste-mochi-chan[data-v-ce7048d3] {
4717
+ animation: celeste-mochi-drop-ce7048d3 2.01s linear both;
4718
+ }
4719
+ .celeste-mochi-peek-hidden .celeste-mochi-chan[data-v-ce7048d3] {
4720
+ transform: translateY(calc(var(--mochi-size) * 0.754));
4721
+ }
4722
+ .celeste-mochi-peek-out .celeste-mochi-chan[data-v-ce7048d3] {
4723
+ transform: translateY(calc(var(--mochi-size) * 0.295));
4724
+ transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
4725
+ }
4726
+ .celeste-mochi-peek-home .celeste-mochi-chan[data-v-ce7048d3] {
4727
+ transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
4728
+ }
4729
+ @media (prefers-reduced-motion: reduce) {
4730
+ .celeste-mochi[data-v-ce7048d3] * {
4731
+ transition-duration: 1ms !important;
4732
+ animation-duration: 1ms !important;
4733
+ animation-delay: 0s !important;
4734
+ animation-iteration-count: 1 !important;
4735
+ }
4736
+ }
4737
+ @keyframes celeste-mochi-blink-twice-ce7048d3 {
4738
+ 0%, 4.57%, 8% {
4739
+ top: var(--eye-top);
4740
+ height: var(--eye-h);
4741
+ animation-timing-function: ease-in;
4742
+ }
4743
+ 2.29%, 10.29% {
4744
+ top: calc(var(--eye-top) + var(--eye-h) / 2);
4745
+ height: 0;
4746
+ animation-timing-function: ease-out;
4747
+ }
4748
+ 12.57%, 100% {
4749
+ top: var(--eye-top);
4750
+ height: var(--eye-h);
4751
+ }
4752
+ }
4753
+ @keyframes celeste-mochi-blink-once-ce7048d3 {
4754
+ 0% {
4755
+ top: var(--eye-top);
4756
+ height: var(--eye-h);
4757
+ animation-timing-function: ease-in;
4758
+ }
4759
+ 2.29% {
4760
+ top: calc(var(--eye-top) + var(--eye-h) / 2);
4761
+ height: 0;
4762
+ animation-timing-function: ease-out;
4763
+ }
4764
+ 4.57%, 100% {
4765
+ top: var(--eye-top);
4766
+ height: var(--eye-h);
4767
+ }
4768
+ }
4769
+ @keyframes celeste-mochi-look-after-blink-twice-ce7048d3 {
4770
+ 0%, 14.29% {
4771
+ transform: translate(0, 0);
4772
+ animation-timing-function: ease-out;
4773
+ }
4774
+ 22.86%, 42.86% {
4775
+ transform: translate(3.393%, 1.386%);
4776
+ animation-timing-function: ease-in-out;
4777
+ }
4778
+ 54.29%, 74.29% {
4779
+ transform: translate(-3.393%, 1.386%);
4780
+ animation-timing-function: ease-in-out;
4781
+ }
4782
+ 85.71%, 100% {
4783
+ transform: translate(0, 0);
4784
+ }
4785
+ }
4786
+ @keyframes celeste-mochi-look-after-blink-once-ce7048d3 {
4787
+ 0%, 8.57% {
4788
+ transform: translate(0, 0);
4789
+ animation-timing-function: ease-out;
4790
+ }
4791
+ 17.14%, 37.14% {
4792
+ transform: translate(3.393%, 1.386%);
4793
+ animation-timing-function: ease-in-out;
4794
+ }
4795
+ 48.57%, 68.57% {
4796
+ transform: translate(-3.393%, 1.386%);
4797
+ animation-timing-function: ease-in-out;
4798
+ }
4799
+ 80%, 100% {
4800
+ transform: translate(0, 0);
4801
+ }
4802
+ }
4803
+ @keyframes celeste-mochi-squint-ce7048d3 {
4804
+ from {
4805
+ height: var(--eye-h);
4806
+ border-bottom-right-radius: var(--radius-full);
4807
+ border-bottom-left-radius: var(--radius-full);
4808
+ }
4809
+ to {
4810
+ height: calc(var(--eye-h) * 80 / 112);
4811
+ border-bottom-right-radius: 0;
4812
+ border-bottom-left-radius: 0;
4813
+ }
4814
+ }
4815
+ @keyframes celeste-mochi-drop-ce7048d3 {
4816
+ 0% {
4817
+ transform: translateY(0);
4818
+ animation-timing-function: cubic-bezier(0.43, -0.3, 0.74, 0.33);
4819
+ }
4820
+ 21.4% {
4821
+ transform: translateY(calc(var(--mochi-size) * -0.0082));
4822
+ animation-timing-function: cubic-bezier(0.3, -0.05, 0.7, -0.5);
4823
+ }
4824
+ 44.28%, 68.15% {
4825
+ transform: translateY(calc(var(--mochi-size) * 0.754));
4826
+ animation-timing-function: linear(0, 0.048, 0.168, 0.326, 0.497, 0.66, 0.804, 0.921, 1.009, 1.068, 1.103, 1.118, 1.118, 1.107, 1.089, 1.069, 1.049, 1.031, 1.015, 1.003, 0.995, 0.989, 0.986, 0.986, 0.987, 0.988, 0.991, 0.993, 0.995, 0.997, 0.999, 1, 1.001, 1.002, 1.002, 1.002, 1.001, 1.001, 1.001, 1.001, 1);
4827
+ }
4828
+ 100% {
4829
+ transform: translateY(calc(var(--mochi-size) * 0.295));
4830
+ }
4618
4831
  }.celeste-modal-body[data-v-8872ed90] {
4619
4832
  padding: var(--spacing-16);
4620
4833
  }
@@ -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,
@@ -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
+ });
@@ -99,6 +99,7 @@ const require_tooltip_provider = require("./chunks/tooltip-provider.cjs");
99
99
  const require_tooltip_root = require("./chunks/tooltip-root.cjs");
100
100
  const require_tooltip = require("./chunks/tooltip.cjs");
101
101
  const require_label = require("./chunks/label2.cjs");
102
+ const require_mochi = require("./chunks/mochi.cjs");
102
103
  const require_modal_body = require("./chunks/modal-body.cjs");
103
104
  const require_modal_close = require("./chunks/modal-close.cjs");
104
105
  const require_modal_content = require("./chunks/modal-content.cjs");
@@ -281,6 +282,7 @@ exports.HintText = require_hint_text.hint_text_default;
281
282
  exports.HueSlider = require_hue_slider.hue_slider_default;
282
283
  exports.Label = require_label.label_default;
283
284
  exports.LinkButton = require_link_button.link_button_default;
285
+ exports.Mochi = require_mochi.mochi_default;
284
286
  exports.Modal = require_modal.modal_default;
285
287
  exports.ModalBody = require_modal_body.modal_body_default;
286
288
  exports.ModalClose = require_modal_close.modal_close_default;
@@ -0,0 +1,2 @@
1
+ const require_mochi = require("./chunks/mochi.cjs");
2
+ module.exports = require_mochi.mochi_default;
@@ -15,6 +15,7 @@ export * from './dropdown-menu';
15
15
  export * from './file-upload';
16
16
  export * from './hint-text';
17
17
  export * from './label';
18
+ export * from './mochi';
18
19
  export * from './modal';
19
20
  export * from './pagination';
20
21
  export * from './popover';
@@ -0,0 +1,2 @@
1
+ export * from './mochi';
2
+ export { default as Mochi } from './mochi';
@@ -0,0 +1,22 @@
1
+ import { HTMLAttributes } from 'vue';
2
+ type __VLS_Props = {
3
+ class?: HTMLAttributes['class'];
4
+ size?: number;
5
+ animate?: boolean;
6
+ thinking?: boolean;
7
+ };
8
+ type __VLS_ModelProps = {
9
+ 'idle'?: boolean;
10
+ };
11
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
12
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
13
+ "update:idle": (value: boolean) => any;
14
+ }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
15
+ "onUpdate:idle"?: ((value: boolean) => any) | undefined;
16
+ }>, {
17
+ size: number;
18
+ animate: boolean;
19
+ thinking: boolean;
20
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
21
+ declare const _default: typeof __VLS_export;
22
+ export default _default;
@@ -91,6 +91,7 @@ import { t as tooltip_provider_default } from "./tooltip-provider.js";
91
91
  import { t as tooltip_root_default } from "./tooltip-root.js";
92
92
  import { t as tooltip_default } from "./tooltip.js";
93
93
  import { t as label_default } from "./label2.js";
94
+ import { t as mochi_default } from "./mochi.js";
94
95
  import { t as modal_body_default } from "./modal-body.js";
95
96
  import { t as modal_close_default } from "./modal-close.js";
96
97
  import { t as modal_content_default } from "./modal-content.js";
@@ -222,6 +223,7 @@ var components_exports = /* @__PURE__ */ __exportAll({
222
223
  HueSlider: () => hue_slider_default,
223
224
  Label: () => label_default,
224
225
  LinkButton: () => link_button_default,
226
+ Mochi: () => mochi_default,
225
227
  Modal: () => modal_default,
226
228
  ModalBody: () => modal_body_default,
227
229
  ModalClose: () => modal_close_default,