@warmio/ui 1.5.2 → 2.0.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 (44) hide show
  1. package/README.md +18 -13
  2. package/dist/badge.js +2 -2
  3. package/dist/button.js +4 -1
  4. package/dist/chunks/chunk-A2PN77YE.js +42 -0
  5. package/dist/chunks/{chunk-F74Y4WRX.js → chunk-DHV2A22F.js} +14 -13
  6. package/dist/chunks/chunk-DOOSH3V6.js +72 -0
  7. package/dist/chunks/chunk-EIEA5RJJ.js +97 -0
  8. package/dist/chunks/{chunk-HQTC542T.js → chunk-FKGHMPVW.js} +141 -345
  9. package/dist/chunks/{chunk-JXSJTIX7.js → chunk-K36HD5J5.js} +4 -4
  10. package/dist/chunks/{chunk-GY4XJ6EX.js → chunk-L6L3GVGM.js} +2 -1
  11. package/dist/chunks/{chunk-2CO2BZLI.js → chunk-MGX6ZL6Q.js} +9 -53
  12. package/dist/chunks/{chunk-B47G2BJV.js → chunk-MVUHHKBL.js} +37 -79
  13. package/dist/chunks/chunk-PJUNSOJK.js +116 -0
  14. package/dist/chunks/chunk-RVVHR7RY.js +0 -0
  15. package/dist/chunks/chunk-U7D32UN3.js +0 -0
  16. package/dist/chunks/chunk-W24JGQWM.js +65 -0
  17. package/dist/dropdown-menu.js +4 -5
  18. package/dist/entries/badge.css +178 -0
  19. package/dist/entries/button.css +422 -0
  20. package/dist/entries/dropdown-menu.css +167 -0
  21. package/dist/entries/index.css +2789 -0
  22. package/dist/entries/logo.css +147 -0
  23. package/dist/entries/product-header.css +88 -0
  24. package/dist/entries/sheet.css +666 -0
  25. package/dist/entries/sidebar.css +2108 -0
  26. package/dist/entries/text.css +97 -0
  27. package/dist/index.js +17 -15
  28. package/dist/logo.js +2 -2
  29. package/dist/product-header.js +2 -2
  30. package/dist/sheet.js +5 -4
  31. package/dist/sidebar.css +129 -0
  32. package/dist/sidebar.js +7 -5
  33. package/dist/text.css +121 -0
  34. package/dist/text.js +2 -2
  35. package/package.json +12 -4
  36. package/types/button.d.ts +65 -9
  37. package/types/sidebar.d.ts +9 -2
  38. package/types/text.d.ts +8 -2
  39. package/dist/chunks/chunk-3AVFUXCV.js +0 -76
  40. package/dist/chunks/chunk-6V6K5G72.js +0 -80
  41. package/dist/chunks/chunk-A2NLFM6R.js +0 -227
  42. package/dist/chunks/chunk-IK5RHPN3.js +0 -93
  43. package/dist/chunks/chunk-OU7YQUU2.js +0 -84
  44. package/dist/chunks/chunk-VIB7OX7D.js +0 -10
@@ -31,11 +31,11 @@ function useReducedMotion() {
31
31
  }
32
32
 
33
33
  // ../ui/src/lib/motion.ts
34
- var MOTION_DURATION_MS = 400;
34
+ var MOTION_DURATION_MS = 240;
35
35
  var MOTION_DURATION_S = MOTION_DURATION_MS / 1e3;
36
- var MOTION_ENTRANCE_DURATION_MS = 800;
36
+ var MOTION_ENTRANCE_DURATION_MS = 240;
37
37
  var MOTION_ENTRANCE_DURATION_S = MOTION_ENTRANCE_DURATION_MS / 1e3;
38
- var MOTION_HOVER_DURATION_MS = 100;
38
+ var MOTION_HOVER_DURATION_MS = 80;
39
39
  var MOTION_HOVER_DURATION_S = MOTION_HOVER_DURATION_MS / 1e3;
40
40
  var FLUID_SPRING = {
41
41
  fast: { type: "spring", duration: 0.08, bounce: 0 },
@@ -85,7 +85,7 @@ function FluidOverlay({
85
85
  const elementRef = React.useRef(null);
86
86
  const reducedMotion = useReducedMotion();
87
87
  const open = state.open && state.transitionStatus !== "ending";
88
- const instant = Boolean(state.instant);
88
+ const instant = Boolean(state.instant) || motion === "tooltip" && !open;
89
89
  React.useLayoutEffect(() => {
90
90
  const element = elementRef.current;
91
91
  if (!element) return;
@@ -1,9 +1,10 @@
1
- // ../design/src/button.tsx
1
+ // ../ui/src/warmio/button/button.tsx
2
2
  import * as React from "react";
3
3
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
4
4
  var presentationToPrivateSize = {
5
5
  assistantIcon: "icon-xs",
6
6
  assistantRoundIcon: "icon-round",
7
+ cardTitle: "default",
7
8
  composerIcon: "icon-sm",
8
9
  default: "default",
9
10
  headerAction: "icon-xs",
@@ -1,14 +1,11 @@
1
1
  import {
2
2
  FluidMenuHighlights
3
- } from "./chunk-F74Y4WRX.js";
3
+ } from "./chunk-DHV2A22F.js";
4
4
  import {
5
5
  FluidOverlay
6
- } from "./chunk-JXSJTIX7.js";
7
- import {
8
- cn
9
- } from "./chunk-VIB7OX7D.js";
6
+ } from "./chunk-K36HD5J5.js";
10
7
 
11
- // ../ui/src/warmio/dropdown-menu.tsx
8
+ // ../ui/src/warmio/dropdown-menu/dropdown-menu.tsx
12
9
  import * as React from "react";
13
10
  import { Menu as MenuPrimitive } from "@base-ui/react/menu";
14
11
  import { CheckIcon } from "lucide-react";
@@ -27,15 +24,6 @@ function DropdownMenuTrigger({
27
24
  const resolvedRender = render ?? (asChild && React.isValidElement(children) ? children : void 0);
28
25
  return /* @__PURE__ */ jsx(MenuPrimitive.Trigger, { "data-slot": "dropdown-menu-trigger", render: resolvedRender, ...props, children: resolvedRender ? void 0 : children });
29
26
  }
30
- var dropdownMenuContentSizeClasses = {
31
- default: "w-(--anchor-width) min-w-32",
32
- auto: "w-auto min-w-[14rem]",
33
- sidebar: "w-(--sidebar-width)"
34
- };
35
- var dropdownMenuContentSpacingClasses = {
36
- default: "",
37
- roomy: "flex flex-col gap-2"
38
- };
39
27
  function DropdownMenuContent({
40
28
  align = "start",
41
29
  alignOffset = 0,
@@ -57,19 +45,16 @@ function DropdownMenuContent({
57
45
  alignOffset,
58
46
  side,
59
47
  sideOffset,
60
- className: "isolate z-50 outline-none",
48
+ "data-slot": "dropdown-menu-positioner",
61
49
  children: /* @__PURE__ */ jsxs(
62
50
  MenuPrimitive.Popup,
63
51
  {
64
52
  ref,
65
53
  "data-slot": "dropdown-menu-content",
66
54
  "data-fluid-menu": "menu",
55
+ "data-size": size,
56
+ "data-spacing": spacing,
67
57
  render: (popupProps, state) => /* @__PURE__ */ jsx(FluidOverlay, { props: popupProps, state, motion: "menu", tier: "fast" }),
68
- className: cn(
69
- "relative isolate z-[var(--z-popover)] max-h-(--available-height) origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-2 text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-none data-closed:overflow-hidden [&_[data-fluid-menu-item]:is(:focus,[data-highlighted],[data-popup-open],[data-open],[aria-checked=true])]:bg-transparent!",
70
- dropdownMenuContentSizeClasses[size],
71
- dropdownMenuContentSpacingClasses[spacing]
72
- ),
73
58
  ...props,
74
59
  children: [
75
60
  children,
@@ -103,7 +88,6 @@ function DropdownMenuItem({
103
88
  "data-slot": "dropdown-menu-item",
104
89
  "data-inset": inset,
105
90
  "data-variant": variant,
106
- className: "group/dropdown-menu-item relative flex w-full cursor-default items-center gap-2 rounded-lg px-2 py-2 outline-hidden select-none not-data-[variant=destructive]:focus:bg-sidebar-accent not-data-[variant=destructive]:focus:text-sidebar-accent-foreground not-data-[variant=destructive]:focus:**:text-sidebar-accent-foreground data-inset:pl-4 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive",
107
91
  ...props
108
92
  }
109
93
  );
@@ -125,7 +109,6 @@ function DropdownMenuLinkItem({
125
109
  "data-slot": "dropdown-menu-item",
126
110
  "data-inset": inset,
127
111
  "data-variant": variant,
128
- className: "group/dropdown-menu-item relative flex w-full cursor-default items-center gap-2 rounded-lg px-2 py-2 outline-hidden select-none not-data-[variant=destructive]:focus:bg-sidebar-accent not-data-[variant=destructive]:focus:text-sidebar-accent-foreground not-data-[variant=destructive]:focus:**:text-sidebar-accent-foreground data-inset:pl-4 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive",
129
112
  render: /* @__PURE__ */ jsx("a", { href, children }),
130
113
  ...props
131
114
  }
@@ -150,19 +133,11 @@ function DropdownMenuCheckboxItem({
150
133
  ref,
151
134
  "data-slot": "dropdown-menu-checkbox-item",
152
135
  "data-inset": inset,
153
- className: "relative flex cursor-default items-center gap-2 rounded-lg py-2 pr-4 pl-2 outline-hidden select-none focus:bg-sidebar-accent focus:text-sidebar-accent-foreground focus:**:text-sidebar-accent-foreground data-inset:pl-4 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
154
136
  checked,
155
137
  onCheckedChange: handleCheckedChange,
156
138
  ...props,
157
139
  children: [
158
- /* @__PURE__ */ jsx(
159
- "span",
160
- {
161
- className: "pointer-events-none absolute right-2 flex items-center justify-center",
162
- "data-slot": "dropdown-menu-checkbox-item-indicator",
163
- children: /* @__PURE__ */ jsx(MenuPrimitive.CheckboxItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, {}) })
164
- }
165
- ),
140
+ /* @__PURE__ */ jsx("span", { "data-slot": "dropdown-menu-checkbox-item-indicator", children: /* @__PURE__ */ jsx(MenuPrimitive.CheckboxItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, {}) }) }),
166
141
  children
167
142
  ]
168
143
  }
@@ -200,19 +175,9 @@ function DropdownMenuRadioItem({
200
175
  ref,
201
176
  "data-slot": "dropdown-menu-radio-item",
202
177
  "data-inset": inset,
203
- className: cn(
204
- "relative flex cursor-default items-center gap-2 rounded-lg py-2 pr-4 pl-2 outline-hidden select-none focus:bg-sidebar-accent focus:text-sidebar-accent-foreground focus:**:text-sidebar-accent-foreground data-inset:pl-4 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"
205
- ),
206
178
  ...props,
207
179
  children: [
208
- /* @__PURE__ */ jsx(
209
- "span",
210
- {
211
- className: "pointer-events-none absolute right-2 flex items-center justify-center",
212
- "data-slot": "dropdown-menu-radio-item-indicator",
213
- children: /* @__PURE__ */ jsx(MenuPrimitive.RadioItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, {}) })
214
- }
215
- ),
180
+ /* @__PURE__ */ jsx("span", { "data-slot": "dropdown-menu-radio-item-indicator", children: /* @__PURE__ */ jsx(MenuPrimitive.RadioItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, {}) }) }),
216
181
  children
217
182
  ]
218
183
  }
@@ -231,7 +196,6 @@ function DropdownMenuLabel({
231
196
  ref,
232
197
  "data-slot": "dropdown-menu-label",
233
198
  "data-inset": inset,
234
- className: "px-2 py-2 data-inset:pl-4",
235
199
  ...props
236
200
  }
237
201
  );
@@ -242,15 +206,7 @@ function DropdownMenuSeparator({
242
206
  style: _style,
243
207
  ...props
244
208
  }) {
245
- return /* @__PURE__ */ jsx(
246
- MenuPrimitive.Separator,
247
- {
248
- ref,
249
- "data-slot": "dropdown-menu-separator",
250
- className: "mx-0 my-0 h-px bg-border",
251
- ...props
252
- }
253
- );
209
+ return /* @__PURE__ */ jsx(MenuPrimitive.Separator, { ref, "data-slot": "dropdown-menu-separator", ...props });
254
210
  }
255
211
 
256
212
  export {
@@ -1,8 +1,4 @@
1
- import {
2
- cn
3
- } from "./chunk-VIB7OX7D.js";
4
-
5
- // ../ui/src/warmio/mascot.tsx
1
+ // ../ui/src/warmio/mascot/mascot.tsx
6
2
  import { useEffect, useEffectEvent, useRef, useState } from "react";
7
3
 
8
4
  // ../ui/src/warmio/mascot-pupils.ts
@@ -106,7 +102,7 @@ function startWarmMascotPupilDrift(host) {
106
102
  };
107
103
  }
108
104
 
109
- // ../ui/src/warmio/mascot-assets.ts
105
+ // ../ui/src/warmio/mascot/mascot-assets.ts
110
106
  var WARM_MASCOT_IDS = ["NORMAL", "CLOSED", "SAD", "HYPE", "CONFUSED"];
111
107
  var WARM_MASCOT_MOOD_TO_EXPRESSION = {
112
108
  calm: "NORMAL",
@@ -163,7 +159,7 @@ function resolveWarmMascotId(expression) {
163
159
  return "NORMAL";
164
160
  }
165
161
 
166
- // ../ui/src/warmio/mascot.tsx
162
+ // ../ui/src/warmio/mascot/mascot.tsx
167
163
  import { jsx, jsxs } from "react/jsx-runtime";
168
164
  var HYPE_CTA_SELECTOR = "[data-auth-cta], [data-auth-guest], [data-waitlist-cta], [data-home-marketing-nav-login], [data-home-marketing-nav-signup]";
169
165
  function isWarmMascotHypeCta(node) {
@@ -243,7 +239,7 @@ function WarmMascotMedia({
243
239
  "div",
244
240
  {
245
241
  ref: liveHostRef,
246
- className: "warm-mascot__frame",
242
+ "data-slot": "warm-mascot-frame",
247
243
  dangerouslySetInnerHTML: { __html: liveMarkup }
248
244
  }
249
245
  );
@@ -253,7 +249,7 @@ function WarmMascotMedia({
253
249
  /* @__PURE__ */ jsx(
254
250
  "img",
255
251
  {
256
- className: "warm-mascot__frame",
252
+ "data-slot": "warm-mascot-frame",
257
253
  src: source,
258
254
  alt: "",
259
255
  draggable: false,
@@ -287,19 +283,14 @@ function WarmMascotFrame({
287
283
  clickedHype,
288
284
  onToggleHype
289
285
  }) {
290
- const className = cn(
291
- "warm-mascot",
292
- clickHype ? "pointer-events-auto cursor-pointer" : "pointer-events-none",
293
- "inline-flex shrink-0 select-none"
294
- );
295
286
  const commonProps = {
296
- className,
297
287
  "data-slot": "warm-mascot",
298
288
  "data-size": size,
299
289
  "data-expression": expression,
300
290
  "data-flame-peek-eyes": peekEyes,
301
291
  "data-flame-theme": theme,
302
- "data-flame-vector": source.endsWith(".svg") ? "" : void 0
292
+ "data-flame-vector": source.endsWith(".svg") ? "" : void 0,
293
+ "data-click-hype": clickHype ? "" : void 0
303
294
  };
304
295
  const media = /* @__PURE__ */ jsx(WarmMascotMedia, { source, stillSrc, fallbackSrc });
305
296
  if (clickHype) {
@@ -335,7 +326,9 @@ function WarmMascot({
335
326
  theme: themeProp,
336
327
  peekEyes,
337
328
  ctaHype = true,
338
- clickHype = false
329
+ clickHype = false,
330
+ className: _className,
331
+ style: _style
339
332
  }) {
340
333
  const [clickedHype, setClickedHype] = useState(false);
341
334
  const activePeekEyes = clickHype && clickedHype ? void 0 : peekEyes;
@@ -415,18 +408,8 @@ var Logo = React.forwardRef(function Logo2({
415
408
  ] });
416
409
  });
417
410
 
418
- // ../ui/src/warmio/logo.tsx
411
+ // ../ui/src/warmio/logo/logo.tsx
419
412
  import { Fragment, jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
420
- var brandedLogoShellClassNameBySize = {
421
- sm: "size-8",
422
- md: "size-10",
423
- lg: "size-14"
424
- };
425
- var brandedLogoIconClassNameBySize = {
426
- sm: "size-5",
427
- md: "size-6",
428
- lg: "size-8"
429
- };
430
413
  var _WarmLogoGlyph = /* @__PURE__ */ jsxs3(Fragment, { children: [
431
414
  /* @__PURE__ */ jsx3(
432
415
  "path",
@@ -452,72 +435,47 @@ var _WarmLogoGlyph = /* @__PURE__ */ jsxs3(Fragment, { children: [
452
435
  ] });
453
436
  function WarmBrandedLogoMark({
454
437
  size = "md",
455
- className,
456
- logoClassName
438
+ className: _className,
439
+ logoClassName: _logoClassName
457
440
  }) {
458
- return /* @__PURE__ */ jsxs3(
459
- "span",
460
- {
461
- className: cn(
462
- "relative inline-flex shrink-0 items-center justify-center",
463
- brandedLogoShellClassNameBySize[size],
464
- className
465
- ),
466
- "aria-hidden": "true",
467
- children: [
468
- /* @__PURE__ */ jsx3("span", { className: "pointer-events-none absolute inset-0 scale-[1.35] opacity-90", children: /* @__PURE__ */ jsx3(WarmMascot, { expression: "calm", label: null }) }),
469
- /* @__PURE__ */ jsx3(
470
- "svg",
471
- {
472
- xmlns: "http://www.w3.org/2000/svg",
473
- viewBox: "0 0 600 600",
474
- className: cn(
475
- "relative z-10 drop-shadow-sm",
476
- brandedLogoIconClassNameBySize[size],
477
- logoClassName
478
- ),
479
- "aria-hidden": "true",
480
- children: /* @__PURE__ */ jsx3("g", { transform: "translate(0 108)", children: _WarmLogoGlyph })
481
- }
482
- )
483
- ]
484
- }
485
- );
441
+ return /* @__PURE__ */ jsxs3("span", { "data-slot": "warm-branded-logo", "data-size": size, "aria-hidden": "true", children: [
442
+ /* @__PURE__ */ jsx3("span", { "data-slot": "warm-branded-logo-mascot", children: /* @__PURE__ */ jsx3(WarmMascot, { expression: "calm", label: null }) }),
443
+ /* @__PURE__ */ jsx3(
444
+ "svg",
445
+ {
446
+ xmlns: "http://www.w3.org/2000/svg",
447
+ viewBox: "0 0 600 600",
448
+ "data-slot": "warm-branded-logo-icon",
449
+ "data-size": size,
450
+ "aria-hidden": "true",
451
+ children: /* @__PURE__ */ jsx3("g", { transform: "translate(0 108)", children: _WarmLogoGlyph })
452
+ }
453
+ )
454
+ ] });
486
455
  }
487
456
  function WarmBrandedLogoLink({
488
457
  href,
489
458
  ariaLabel = "Warm home",
490
459
  size = "md",
491
- className,
492
- logoClassName
460
+ className: _className,
461
+ logoClassName: _logoClassName
493
462
  }) {
494
- return /* @__PURE__ */ jsx3("a", { href, "aria-label": ariaLabel, className: "inline-flex shrink-0 items-center", children: /* @__PURE__ */ jsx3(
495
- WarmBrandedLogoMark,
496
- {
497
- size,
498
- ...className !== void 0 ? { className } : {},
499
- ...logoClassName !== void 0 ? { logoClassName } : {}
500
- }
501
- ) });
463
+ return /* @__PURE__ */ jsx3("a", { href, "aria-label": ariaLabel, "data-slot": "warm-branded-logo-link", children: /* @__PURE__ */ jsx3(WarmBrandedLogoMark, { size }) });
502
464
  }
503
465
  function WarmBrandedLogoMarkStatic({
504
- className,
505
- logoClassName
466
+ className: _className,
467
+ style: _style,
468
+ logoClassName: _logoClassName
506
469
  }) {
507
- return /* @__PURE__ */ jsxs3("span", { className: cn("relative inline-flex size-8 items-center justify-center", className), children: [
508
- /* @__PURE__ */ jsx3(
509
- "span",
510
- {
511
- "aria-hidden": "true",
512
- className: "absolute inset-0 rounded-full bg-gradient-to-br from-primary/90 via-warning/80 to-primary/70"
513
- }
514
- ),
470
+ return /* @__PURE__ */ jsxs3("span", { "data-slot": "warm-branded-logo-static", children: [
471
+ /* @__PURE__ */ jsx3("span", { "aria-hidden": "true", "data-slot": "warm-branded-logo-static-fill" }),
515
472
  /* @__PURE__ */ jsx3(
516
473
  "svg",
517
474
  {
518
475
  xmlns: "http://www.w3.org/2000/svg",
519
476
  viewBox: "0 0 600 600",
520
- className: cn("relative z-10 size-5 drop-shadow-sm", logoClassName),
477
+ "data-slot": "warm-branded-logo-icon",
478
+ "data-size": "sm",
521
479
  "aria-hidden": "true",
522
480
  children: /* @__PURE__ */ jsx3("g", { transform: "translate(0 108)", children: _WarmLogoGlyph })
523
481
  }
@@ -0,0 +1,116 @@
1
+ import {
2
+ SheetClose,
3
+ SheetContent,
4
+ SheetDescription,
5
+ SheetFooter,
6
+ SheetHeader,
7
+ SheetTitle,
8
+ SheetTrigger
9
+ } from "./chunk-EIEA5RJJ.js";
10
+
11
+ // ../ui/src/warmio/close-button/close-button.tsx
12
+ import * as React from "react";
13
+ import { XIcon } from "lucide-react";
14
+ import { jsx } from "react/jsx-runtime";
15
+ var WarmCloseButton = React.forwardRef(
16
+ function WarmCloseButton2({
17
+ size = "default",
18
+ type,
19
+ "aria-label": ariaLabel = "Close",
20
+ children: _children,
21
+ className: _className,
22
+ style: _style,
23
+ ...props
24
+ }, ref) {
25
+ return /* @__PURE__ */ jsx(
26
+ "button",
27
+ {
28
+ "data-slot": "close-button",
29
+ "data-warm-close-button": "",
30
+ "data-size": size,
31
+ ...props,
32
+ "data-warm-button": "",
33
+ "data-variant": "ghost",
34
+ ref,
35
+ type: type ?? "button",
36
+ "aria-label": ariaLabel,
37
+ children: /* @__PURE__ */ jsx(XIcon, { "data-slot": "close-button-icon", "aria-hidden": "true" })
38
+ }
39
+ );
40
+ }
41
+ );
42
+
43
+ // ../ui/src/warmio/sheet/sheet.tsx
44
+ import { jsx as jsx2 } from "react/jsx-runtime";
45
+ function SheetTrigger2({
46
+ className: _className,
47
+ style: _style,
48
+ ...props
49
+ }) {
50
+ return /* @__PURE__ */ jsx2(SheetTrigger, { ...props });
51
+ }
52
+ function SheetClose2({ className: _className, style: _style, ...props }) {
53
+ return /* @__PURE__ */ jsx2(SheetClose, { ...props });
54
+ }
55
+ function SheetContent2({
56
+ className: _className,
57
+ overlayClassName: _overlayClassName,
58
+ presentation,
59
+ responsive = "always",
60
+ style: _style,
61
+ width = "default",
62
+ ...props
63
+ }) {
64
+ return /* @__PURE__ */ jsx2(
65
+ SheetContent,
66
+ {
67
+ ...props,
68
+ closeButton: /* @__PURE__ */ jsx2(WarmCloseButton, { size: "default" }),
69
+ "data-presentation": presentation,
70
+ "data-responsive": responsive === "mobileOnly" ? "mobileOnly" : void 0,
71
+ "data-width": presentation === "navigation" || width === "default" ? void 0 : width
72
+ }
73
+ );
74
+ }
75
+ function SheetFooter2({ className: _className, style: _style, ...props }) {
76
+ return /* @__PURE__ */ jsx2(SheetFooter, { ...props });
77
+ }
78
+ function SheetHeader2({
79
+ className: _className,
80
+ presentation,
81
+ style: _style,
82
+ ...props
83
+ }) {
84
+ return /* @__PURE__ */ jsx2(
85
+ SheetHeader,
86
+ {
87
+ ...props,
88
+ "data-presentation": presentation === "navigation" ? "navigation" : void 0
89
+ }
90
+ );
91
+ }
92
+ function SheetTitle2({
93
+ className: _className,
94
+ presentation,
95
+ style: _style,
96
+ ...props
97
+ }) {
98
+ return /* @__PURE__ */ jsx2(SheetTitle, { ...props, "data-presentation": presentation });
99
+ }
100
+ function SheetDescription2({
101
+ className: _className,
102
+ style: _style,
103
+ ...props
104
+ }) {
105
+ return /* @__PURE__ */ jsx2(SheetDescription, { ...props });
106
+ }
107
+
108
+ export {
109
+ SheetTrigger2 as SheetTrigger,
110
+ SheetClose2 as SheetClose,
111
+ SheetContent2 as SheetContent,
112
+ SheetFooter2 as SheetFooter,
113
+ SheetHeader2 as SheetHeader,
114
+ SheetTitle2 as SheetTitle,
115
+ SheetDescription2 as SheetDescription
116
+ };
File without changes
File without changes
@@ -0,0 +1,65 @@
1
+ // ../ui/src/warmio/text/text.tsx
2
+ import * as React from "react";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ var defaultTextElementByVariant = {
5
+ heading: "h3",
6
+ metric: "span",
7
+ body: "p",
8
+ caption: "span"
9
+ };
10
+ function Text({
11
+ as,
12
+ variant = "caption",
13
+ tone = "default",
14
+ align,
15
+ numeric = false,
16
+ mono = false,
17
+ size = "default",
18
+ truncate = false,
19
+ animateNumber = false,
20
+ className: _className,
21
+ style: _style,
22
+ ...props
23
+ }) {
24
+ const Component = as ?? defaultTextElementByVariant[variant];
25
+ return React.createElement(Component, {
26
+ ...props,
27
+ "data-animate-number": animateNumber || void 0,
28
+ "data-text-variant": variant,
29
+ "data-text-element": Component,
30
+ "data-text-size": size === "default" ? void 0 : size,
31
+ "data-text-tone": tone,
32
+ "data-text-align": align,
33
+ "data-mono": mono || void 0,
34
+ "data-text-numeric": numeric || void 0,
35
+ "data-text-truncate": truncate || void 0
36
+ });
37
+ }
38
+ Text.displayName = "WarmText";
39
+ function StackedDisplay({
40
+ align = "start",
41
+ firstLine,
42
+ presentation = "dashboard",
43
+ secondLine
44
+ }) {
45
+ return /* @__PURE__ */ jsxs(
46
+ Text,
47
+ {
48
+ as: "h2",
49
+ variant: "heading",
50
+ align,
51
+ "data-slot": "stacked-display",
52
+ "data-presentation": presentation,
53
+ children: [
54
+ /* @__PURE__ */ jsx("span", { "data-presentation": presentation, "data-text-line": "first", children: firstLine }),
55
+ /* @__PURE__ */ jsx("span", { "data-presentation": presentation, "data-text-line": "second", children: secondLine })
56
+ ]
57
+ }
58
+ );
59
+ }
60
+ StackedDisplay.displayName = "WarmStackedDisplay";
61
+
62
+ export {
63
+ Text,
64
+ StackedDisplay
65
+ };
@@ -1,4 +1,4 @@
1
- "use client";
1
+ import "./entries/dropdown-menu.css";
2
2
  import {
3
3
  DropdownMenu,
4
4
  DropdownMenuCheckboxItem,
@@ -11,10 +11,9 @@ import {
11
11
  DropdownMenuRadioItem,
12
12
  DropdownMenuSeparator,
13
13
  DropdownMenuTrigger
14
- } from "./chunks/chunk-2CO2BZLI.js";
15
- import "./chunks/chunk-F74Y4WRX.js";
16
- import "./chunks/chunk-JXSJTIX7.js";
17
- import "./chunks/chunk-VIB7OX7D.js";
14
+ } from "./chunks/chunk-MGX6ZL6Q.js";
15
+ import "./chunks/chunk-DHV2A22F.js";
16
+ import "./chunks/chunk-K36HD5J5.js";
18
17
  export {
19
18
  DropdownMenu,
20
19
  DropdownMenuCheckboxItem,