strata-ui-react 0.1.11 → 0.1.12

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 (98) hide show
  1. package/dist/avatar-fallback.cjs +42 -0
  2. package/dist/avatar-fallback.js +42 -0
  3. package/dist/avatar-image.cjs +42 -0
  4. package/dist/avatar-image.js +42 -0
  5. package/dist/avatar.cjs +47 -0
  6. package/dist/avatar.js +47 -0
  7. package/dist/badge.cjs +63 -0
  8. package/dist/badge.js +63 -0
  9. package/dist/badge.types.cjs +100 -0
  10. package/dist/badge.types.js +100 -0
  11. package/dist/button.cjs +58 -0
  12. package/dist/button.js +58 -0
  13. package/dist/button.types.cjs +519 -0
  14. package/dist/button.types.js +519 -0
  15. package/dist/checkbox-indicator.cjs +36 -0
  16. package/dist/checkbox-indicator.js +36 -0
  17. package/dist/checkbox.cjs +84 -0
  18. package/dist/checkbox.js +84 -0
  19. package/dist/cn.cjs +6 -0
  20. package/dist/cn.js +6 -0
  21. package/dist/dialog-close.cjs +57 -0
  22. package/dist/dialog-close.js +57 -0
  23. package/dist/dialog-description.cjs +46 -0
  24. package/dist/dialog-description.js +46 -0
  25. package/dist/dialog-popup.cjs +72 -0
  26. package/dist/dialog-popup.js +72 -0
  27. package/dist/dialog-title.cjs +46 -0
  28. package/dist/dialog-title.js +46 -0
  29. package/dist/dialog-trigger.cjs +46 -0
  30. package/dist/dialog-trigger.js +46 -0
  31. package/dist/dialog.cjs +20 -0
  32. package/dist/dialog.js +20 -0
  33. package/dist/field-errors.cjs +63 -0
  34. package/dist/field-errors.js +63 -0
  35. package/dist/field-input.cjs +80 -0
  36. package/dist/field-input.js +80 -0
  37. package/dist/form-errors.cjs +73 -0
  38. package/dist/form-errors.js +73 -0
  39. package/dist/form-submit.cjs +65 -0
  40. package/dist/form-submit.js +65 -0
  41. package/dist/form.cjs +19 -0
  42. package/dist/form.js +19 -0
  43. package/dist/form.types.cjs +6 -0
  44. package/dist/form.types.js +3 -0
  45. package/dist/index.cjs +82 -0
  46. package/dist/index.d.cts +312 -0
  47. package/dist/index.js +42 -0
  48. package/dist/input.cjs +83 -0
  49. package/dist/input.js +83 -0
  50. package/dist/label.cjs +46 -0
  51. package/dist/label.js +46 -0
  52. package/dist/profile.cjs +127 -0
  53. package/dist/profile.js +127 -0
  54. package/dist/scroll-area.cjs +97 -0
  55. package/dist/scroll-area.js +97 -0
  56. package/dist/separator.cjs +45 -0
  57. package/dist/separator.js +45 -0
  58. package/dist/slider-handle.cjs +34 -0
  59. package/dist/slider-handle.js +34 -0
  60. package/dist/slider-segment.cjs +17 -0
  61. package/dist/slider-segment.js +17 -0
  62. package/dist/slider-tick-label.cjs +12 -0
  63. package/dist/slider-tick-label.js +12 -0
  64. package/dist/slider-tick.cjs +13 -0
  65. package/dist/slider-tick.js +13 -0
  66. package/dist/slider-track.cjs +12 -0
  67. package/dist/slider-track.js +12 -0
  68. package/dist/slider.cjs +69 -0
  69. package/dist/slider.js +69 -0
  70. package/dist/switch.cjs +71 -0
  71. package/dist/switch.js +71 -0
  72. package/dist/tabs-indicator.cjs +57 -0
  73. package/dist/tabs-indicator.js +57 -0
  74. package/dist/tabs-list.cjs +57 -0
  75. package/dist/tabs-list.js +57 -0
  76. package/dist/tabs-panel.cjs +40 -0
  77. package/dist/tabs-panel.js +40 -0
  78. package/dist/tabs-tab.cjs +36 -0
  79. package/dist/tabs-tab.js +36 -0
  80. package/dist/tabs.cjs +73 -0
  81. package/dist/tabs.js +73 -0
  82. package/dist/tabs.types.cjs +4 -0
  83. package/dist/tabs.types.js +4 -0
  84. package/dist/toast-provider.cjs +86 -0
  85. package/dist/toast-provider.js +86 -0
  86. package/dist/toast.cjs +40 -0
  87. package/dist/toast.js +40 -0
  88. package/dist/tooltip-context.cjs +56 -0
  89. package/dist/tooltip-context.js +56 -0
  90. package/dist/tooltip-trigger.cjs +29 -0
  91. package/dist/tooltip-trigger.js +29 -0
  92. package/dist/tooltip.cjs +29 -0
  93. package/dist/tooltip.js +29 -0
  94. package/package.json +14 -7
  95. package/dist/index.es.js +0 -13731
  96. package/dist/index.es.js.map +0 -1
  97. package/dist/index.umd.js +0 -30
  98. package/dist/index.umd.js.map +0 -1
@@ -0,0 +1,36 @@
1
+ import { cn } from "./cn.js";
2
+ import { c } from "react/compiler-runtime";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { Tabs } from "@base-ui/react/tabs";
5
+ const TabsTab = (t0) => {
6
+ const $ = c(8);
7
+ let className;
8
+ let props;
9
+ if ($[0] !== t0) {
10
+ ({className, ...props} = t0);
11
+ $[0] = t0;
12
+ $[1] = className;
13
+ $[2] = props;
14
+ } else {
15
+ className = $[1];
16
+ props = $[2];
17
+ }
18
+ let t1;
19
+ if ($[3] !== className) {
20
+ t1 = cn("inline-flex rounded-2xl md:rounded-full h-11 md:h-12 px-6 body-base-semibold w-full text-text-brand-primary-default text-center items-center justify-center border-0 break-keep whitespace-nowrap outline-none select-none focus-visible:relative focus-visible:before:absolute focus-visible:before:outline data-selected:text-text-inverse-primary-default transition-colors duration-300 hover:cursor-pointer aria-[selected=false]:hover:bg-surface-neutral-primary-hover", className);
21
+ $[3] = className;
22
+ $[4] = t1;
23
+ } else t1 = $[4];
24
+ let t2;
25
+ if ($[5] !== props || $[6] !== t1) {
26
+ t2 = /* @__PURE__ */ jsx(Tabs.Tab, {
27
+ className: t1,
28
+ ...props
29
+ });
30
+ $[5] = props;
31
+ $[6] = t1;
32
+ $[7] = t2;
33
+ } else t2 = $[7];
34
+ return t2;
35
+ };
36
+ export { TabsTab };
package/dist/tabs.cjs ADDED
@@ -0,0 +1,73 @@
1
+ const require_cn = require("./cn.cjs");
2
+ const require_tabs_types = require("./tabs.types.cjs");
3
+ let react_compiler_runtime = require("react/compiler-runtime");
4
+ let react_jsx_runtime = require("react/jsx-runtime");
5
+ let react = require("react");
6
+ let __base_ui_react_tabs = require("@base-ui/react/tabs");
7
+ const Tabs = (t0) => {
8
+ const $ = (0, react_compiler_runtime.c)(15);
9
+ const { className, ref, ...props } = t0;
10
+ const [orientation, setOrientation] = (0, react.useState)(props.orientation ?? "vertical");
11
+ (0, react.useEffect)(() => {
12
+ const handleResize = () => {
13
+ if (window.innerWidth < 768) setOrientation("horizontal");
14
+ else setOrientation(props.orientation ?? "vertical");
15
+ };
16
+ handleResize();
17
+ window.addEventListener("resize", handleResize);
18
+ return () => window.removeEventListener("resize", handleResize);
19
+ }, [props.orientation]);
20
+ props.orientation = orientation;
21
+ if (props.orientation === "horizontal") {
22
+ const t1$1 = props.orientation;
23
+ let t2$1;
24
+ if ($[0] !== className) {
25
+ t2$1 = require_cn.cn("flex flex-wrap gap-4 overflow-auto", className);
26
+ $[0] = className;
27
+ $[1] = t2$1;
28
+ } else t2$1 = $[1];
29
+ let t3;
30
+ if ($[2] !== props || $[3] !== ref || $[4] !== t2$1) {
31
+ t3 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__base_ui_react_tabs.Tabs.Root, {
32
+ className: t2$1,
33
+ ref,
34
+ ...props
35
+ });
36
+ $[2] = props;
37
+ $[3] = ref;
38
+ $[4] = t2$1;
39
+ $[5] = t3;
40
+ } else t3 = $[5];
41
+ let t4;
42
+ if ($[6] !== props.orientation || $[7] !== t3) {
43
+ t4 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_tabs_types.TabsOrientationContext.Provider, {
44
+ value: t1$1,
45
+ children: t3
46
+ });
47
+ $[6] = props.orientation;
48
+ $[7] = t3;
49
+ $[8] = t4;
50
+ } else t4 = $[8];
51
+ return t4;
52
+ }
53
+ let t1;
54
+ if ($[9] !== className) {
55
+ t1 = require_cn.cn("flex flex-col gap-2 overflow-clip", className);
56
+ $[9] = className;
57
+ $[10] = t1;
58
+ } else t1 = $[10];
59
+ let t2;
60
+ if ($[11] !== props || $[12] !== ref || $[13] !== t1) {
61
+ t2 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__base_ui_react_tabs.Tabs.Root, {
62
+ className: t1,
63
+ ref,
64
+ ...props
65
+ });
66
+ $[11] = props;
67
+ $[12] = ref;
68
+ $[13] = t1;
69
+ $[14] = t2;
70
+ } else t2 = $[14];
71
+ return t2;
72
+ };
73
+ exports.Tabs = Tabs;
package/dist/tabs.js ADDED
@@ -0,0 +1,73 @@
1
+ import { cn } from "./cn.js";
2
+ import { TabsOrientationContext } from "./tabs.types.js";
3
+ import { c } from "react/compiler-runtime";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import { useEffect, useState } from "react";
6
+ import { Tabs } from "@base-ui/react/tabs";
7
+ const Tabs$1 = (t0) => {
8
+ const $ = c(15);
9
+ const { className, ref, ...props } = t0;
10
+ const [orientation, setOrientation] = useState(props.orientation ?? "vertical");
11
+ useEffect(() => {
12
+ const handleResize = () => {
13
+ if (window.innerWidth < 768) setOrientation("horizontal");
14
+ else setOrientation(props.orientation ?? "vertical");
15
+ };
16
+ handleResize();
17
+ window.addEventListener("resize", handleResize);
18
+ return () => window.removeEventListener("resize", handleResize);
19
+ }, [props.orientation]);
20
+ props.orientation = orientation;
21
+ if (props.orientation === "horizontal") {
22
+ const t1$1 = props.orientation;
23
+ let t2$1;
24
+ if ($[0] !== className) {
25
+ t2$1 = cn("flex flex-wrap gap-4 overflow-auto", className);
26
+ $[0] = className;
27
+ $[1] = t2$1;
28
+ } else t2$1 = $[1];
29
+ let t3;
30
+ if ($[2] !== props || $[3] !== ref || $[4] !== t2$1) {
31
+ t3 = /* @__PURE__ */ jsx(Tabs.Root, {
32
+ className: t2$1,
33
+ ref,
34
+ ...props
35
+ });
36
+ $[2] = props;
37
+ $[3] = ref;
38
+ $[4] = t2$1;
39
+ $[5] = t3;
40
+ } else t3 = $[5];
41
+ let t4;
42
+ if ($[6] !== props.orientation || $[7] !== t3) {
43
+ t4 = /* @__PURE__ */ jsx(TabsOrientationContext.Provider, {
44
+ value: t1$1,
45
+ children: t3
46
+ });
47
+ $[6] = props.orientation;
48
+ $[7] = t3;
49
+ $[8] = t4;
50
+ } else t4 = $[8];
51
+ return t4;
52
+ }
53
+ let t1;
54
+ if ($[9] !== className) {
55
+ t1 = cn("flex flex-col gap-2 overflow-clip", className);
56
+ $[9] = className;
57
+ $[10] = t1;
58
+ } else t1 = $[10];
59
+ let t2;
60
+ if ($[11] !== props || $[12] !== ref || $[13] !== t1) {
61
+ t2 = /* @__PURE__ */ jsx(Tabs.Root, {
62
+ className: t1,
63
+ ref,
64
+ ...props
65
+ });
66
+ $[11] = props;
67
+ $[12] = ref;
68
+ $[13] = t1;
69
+ $[14] = t2;
70
+ } else t2 = $[14];
71
+ return t2;
72
+ };
73
+ export { Tabs$1 as Tabs };
@@ -0,0 +1,4 @@
1
+ let react = require("react");
2
+ let __base_ui_react_tabs = require("@base-ui/react/tabs");
3
+ const TabsOrientationContext = (0, react.createContext)("vertical");
4
+ exports.TabsOrientationContext = TabsOrientationContext;
@@ -0,0 +1,4 @@
1
+ import { createContext } from "react";
2
+ import { Tabs } from "@base-ui/react/tabs";
3
+ const TabsOrientationContext = createContext("vertical");
4
+ export { TabsOrientationContext };
@@ -0,0 +1,86 @@
1
+ const require_cn = require("./cn.cjs");
2
+ const require_toast = require("./toast.cjs");
3
+ let react_compiler_runtime = require("react/compiler-runtime");
4
+ let react_jsx_runtime = require("react/jsx-runtime");
5
+ let __base_ui_react_toast = require("@base-ui/react/toast");
6
+ const ToastProvider = (t0) => {
7
+ const $ = (0, react_compiler_runtime.c)(24);
8
+ let children;
9
+ let className;
10
+ let props;
11
+ let ref;
12
+ let t1;
13
+ if ($[0] !== t0) {
14
+ ({position: t1, className, children, ref, ...props} = t0);
15
+ $[0] = t0;
16
+ $[1] = children;
17
+ $[2] = className;
18
+ $[3] = props;
19
+ $[4] = ref;
20
+ $[5] = t1;
21
+ } else {
22
+ children = $[1];
23
+ className = $[2];
24
+ props = $[3];
25
+ ref = $[4];
26
+ t1 = $[5];
27
+ }
28
+ const position = t1 === void 0 ? "bottom-center" : t1;
29
+ const t2 = position === "top-left";
30
+ const t3 = position === "top-center";
31
+ const t4 = position === "top-right";
32
+ const t5 = position === "bottom-left";
33
+ const t6 = position === "bottom-center";
34
+ const t7 = position === "bottom-right";
35
+ let t8;
36
+ if ($[6] !== className || $[7] !== t2 || $[8] !== t3 || $[9] !== t4 || $[10] !== t5 || $[11] !== t6 || $[12] !== t7) {
37
+ t8 = require_cn.cn({
38
+ "fixed z-10 top-[1rem] left-[1rem] right-auto bottom-auto mx-0 flex w-1/4": t2,
39
+ "fixed z-10 top-[1rem] left-1/2 right-auto bottom-auto mx-auto flex w-1/4 -translate-x-1/2": t3,
40
+ "fixed z-10 top-[1rem] right-[1rem] left-auto bottom-auto mx-0 flex w-1/4": t4,
41
+ "fixed z-10 bottom-[6rem] left-[1rem] right-auto top-auto mx-0 flex w-1/4": t5,
42
+ "fixed z-10 bottom-[6rem] left-1/2 right-auto top-auto mx-auto flex w-1/4 -translate-x-1/2": t6,
43
+ "fixed z-10 bottom-[6rem] right-[1rem] left-auto top-auto mx-0 flex w-1/4": t7
44
+ }, className);
45
+ $[6] = className;
46
+ $[7] = t2;
47
+ $[8] = t3;
48
+ $[9] = t4;
49
+ $[10] = t5;
50
+ $[11] = t6;
51
+ $[12] = t7;
52
+ $[13] = t8;
53
+ } else t8 = $[13];
54
+ let t9;
55
+ if ($[14] !== position) {
56
+ t9 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_toast.Toast, { position });
57
+ $[14] = position;
58
+ $[15] = t9;
59
+ } else t9 = $[15];
60
+ let t10;
61
+ if ($[16] !== props || $[17] !== ref || $[18] !== t8 || $[19] !== t9) {
62
+ t10 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__base_ui_react_toast.Toast.Portal, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__base_ui_react_toast.Toast.Viewport, {
63
+ className: t8,
64
+ ref,
65
+ ...props,
66
+ children: t9
67
+ }) });
68
+ $[16] = props;
69
+ $[17] = ref;
70
+ $[18] = t8;
71
+ $[19] = t9;
72
+ $[20] = t10;
73
+ } else t10 = $[20];
74
+ let t11;
75
+ if ($[21] !== children || $[22] !== t10) {
76
+ t11 = /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__base_ui_react_toast.Toast.Provider, {
77
+ timeout: 5e3,
78
+ children: [children, t10]
79
+ });
80
+ $[21] = children;
81
+ $[22] = t10;
82
+ $[23] = t11;
83
+ } else t11 = $[23];
84
+ return t11;
85
+ };
86
+ exports.ToastProvider = ToastProvider;
@@ -0,0 +1,86 @@
1
+ import { cn } from "./cn.js";
2
+ import { Toast as Toast$1 } from "./toast.js";
3
+ import { c } from "react/compiler-runtime";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { Toast } from "@base-ui/react/toast";
6
+ const ToastProvider = (t0) => {
7
+ const $ = c(24);
8
+ let children;
9
+ let className;
10
+ let props;
11
+ let ref;
12
+ let t1;
13
+ if ($[0] !== t0) {
14
+ ({position: t1, className, children, ref, ...props} = t0);
15
+ $[0] = t0;
16
+ $[1] = children;
17
+ $[2] = className;
18
+ $[3] = props;
19
+ $[4] = ref;
20
+ $[5] = t1;
21
+ } else {
22
+ children = $[1];
23
+ className = $[2];
24
+ props = $[3];
25
+ ref = $[4];
26
+ t1 = $[5];
27
+ }
28
+ const position = t1 === void 0 ? "bottom-center" : t1;
29
+ const t2 = position === "top-left";
30
+ const t3 = position === "top-center";
31
+ const t4 = position === "top-right";
32
+ const t5 = position === "bottom-left";
33
+ const t6 = position === "bottom-center";
34
+ const t7 = position === "bottom-right";
35
+ let t8;
36
+ if ($[6] !== className || $[7] !== t2 || $[8] !== t3 || $[9] !== t4 || $[10] !== t5 || $[11] !== t6 || $[12] !== t7) {
37
+ t8 = cn({
38
+ "fixed z-10 top-[1rem] left-[1rem] right-auto bottom-auto mx-0 flex w-1/4": t2,
39
+ "fixed z-10 top-[1rem] left-1/2 right-auto bottom-auto mx-auto flex w-1/4 -translate-x-1/2": t3,
40
+ "fixed z-10 top-[1rem] right-[1rem] left-auto bottom-auto mx-0 flex w-1/4": t4,
41
+ "fixed z-10 bottom-[6rem] left-[1rem] right-auto top-auto mx-0 flex w-1/4": t5,
42
+ "fixed z-10 bottom-[6rem] left-1/2 right-auto top-auto mx-auto flex w-1/4 -translate-x-1/2": t6,
43
+ "fixed z-10 bottom-[6rem] right-[1rem] left-auto top-auto mx-0 flex w-1/4": t7
44
+ }, className);
45
+ $[6] = className;
46
+ $[7] = t2;
47
+ $[8] = t3;
48
+ $[9] = t4;
49
+ $[10] = t5;
50
+ $[11] = t6;
51
+ $[12] = t7;
52
+ $[13] = t8;
53
+ } else t8 = $[13];
54
+ let t9;
55
+ if ($[14] !== position) {
56
+ t9 = /* @__PURE__ */ jsx(Toast$1, { position });
57
+ $[14] = position;
58
+ $[15] = t9;
59
+ } else t9 = $[15];
60
+ let t10;
61
+ if ($[16] !== props || $[17] !== ref || $[18] !== t8 || $[19] !== t9) {
62
+ t10 = /* @__PURE__ */ jsx(Toast.Portal, { children: /* @__PURE__ */ jsx(Toast.Viewport, {
63
+ className: t8,
64
+ ref,
65
+ ...props,
66
+ children: t9
67
+ }) });
68
+ $[16] = props;
69
+ $[17] = ref;
70
+ $[18] = t8;
71
+ $[19] = t9;
72
+ $[20] = t10;
73
+ } else t10 = $[20];
74
+ let t11;
75
+ if ($[21] !== children || $[22] !== t10) {
76
+ t11 = /* @__PURE__ */ jsxs(Toast.Provider, {
77
+ timeout: 5e3,
78
+ children: [children, t10]
79
+ });
80
+ $[21] = children;
81
+ $[22] = t10;
82
+ $[23] = t11;
83
+ } else t11 = $[23];
84
+ return t11;
85
+ };
86
+ export { ToastProvider };
package/dist/toast.cjs ADDED
@@ -0,0 +1,40 @@
1
+ const require_cn = require("./cn.cjs");
2
+ let react_jsx_runtime = require("react/jsx-runtime");
3
+ let __phosphor_icons_react = require("@phosphor-icons/react");
4
+ let __base_ui_react_toast = require("@base-ui/react/toast");
5
+ const Toast = ({ className, children, position = "top-right", ref, ...props }) => {
6
+ const { toasts } = __base_ui_react_toast.Toast.useToastManager();
7
+ const getSwipeDirection = (pos) => {
8
+ switch (pos) {
9
+ case "top-left": return "left";
10
+ case "bottom-left": return "left";
11
+ case "top-right": return "right";
12
+ case "bottom-right": return "right";
13
+ case "top-center": return "up";
14
+ case "bottom-center": return "down";
15
+ default: return "right";
16
+ }
17
+ };
18
+ return toasts.map((toast) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__base_ui_react_toast.Toast.Root, {
19
+ toast,
20
+ swipeDirection: getSwipeDirection(position),
21
+ className: require_cn.cn(position === "bottom-right" || position === "bottom-center" || position === "bottom-left" ? "absolute right-0 bottom-0 left-auto z-[calc(1000-var(--toast-index))] mr-0 w-full transform-[translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)+calc(min(var(--toast-index),10)*-15px)))_scale(calc(max(0,1-(var(--toast-index)*0.1))))] rounded-lg border border-outline bg-surface-container bg-clip-padding p-sm shadow-lg transition-all [transition-property:opacity,transform] duration-500 ease-[cubic-bezier(0.22,1,0.36,1)] select-none after:absolute after:bottom-full after:left-0 after:h-[calc(var(--gap)+1px)] after:w-full after:content-[\"\"] data-ending-style:opacity-0 data-expanded:transform-[translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-offset-y)*-1+calc(var(--toast-index)*var(--gap)*-1)+var(--toast-swipe-movement-y)))] data-limited:opacity-0 data-starting-style:transform-[translateY(150%)] [&[data-ending-style]:not([data-limited]):not([data-swipe-direction])]:transform-[translateY(150%)] data-ending-style:data-[swipe-direction=down]:transform-[translateY(calc(var(--toast-swipe-movement-y)+150%))] data-expanded:data-ending-style:data-[swipe-direction=down]:transform-[translateY(calc(var(--toast-swipe-movement-y)+150%))] data-ending-style:data-[swipe-direction=left]:transform-[translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))] data-expanded:data-ending-style:data-[swipe-direction=left]:transform-[translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))] data-ending-style:data-[swipe-direction=right]:transform-[translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))] data-expanded:data-ending-style:data-[swipe-direction=right]:transform-[translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))] data-ending-style:data-[swipe-direction=up]:transform-[translateY(calc(var(--toast-swipe-movement-y)-150%))] data-expanded:data-ending-style:data-[swipe-direction=up]:transform-[translateY(calc(var(--toast-swipe-movement-y)-150%))] flex flex-col gap-3xs" : "absolute top-0 right-0 left-0 z-[calc(1000-var(--toast-index))] mx-auto w-full transform-[translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)+calc(min(var(--toast-index),10)*15px)))_scale(calc(max(0,1-(var(--toast-index)*0.1))))] rounded-lg border border-gray-200 bg-gray-50 bg-clip-padding p-sm shadow-lg transition-all [transition-property:opacity,transform] duration-500 ease-[cubic-bezier(0.22,1,0.36,1)] select-none after:absolute after:top-full after:left-0 after:h-[calc(var(--gap)+1px)] after:w-full after:content-[''] data-ending-style:opacity-0 data-expanded:transform-[translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-offset-y)+calc(var(--toast-index)*var(--gap))+var(--toast-swipe-movement-y)))] data-limited:opacity-0 data-starting-style:transform-[translateY(-150%)] [&[data-ending-style]:not([data-limited]):not([data-swipe-direction])]:transform-[translateY(-150%)] data-ending-style:data-[swipe-direction=down]:transform-[translateY(calc(var(--toast-swipe-movement-y)+150%))] data-expanded:data-ending-style:data-[swipe-direction=down]:transform-[translateY(calc(var(--toast-swipe-movement-y)+150%))] data-ending-style:data-[swipe-direction=left]:transform-[translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))] data-expanded:data-ending-style:data-[swipe-direction=left]:transform-[translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))] data-ending-style:data-[swipe-direction=right]:transform-[translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))] data-expanded:data-ending-style:data-[swipe-direction=right]:transform-[translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))] data-ending-style:data-[swipe-direction=up]:transform-[translateY(calc(var(--toast-swipe-movement-y)-150%))] data-expanded:data-ending-style:data-[swipe-direction=up]:transform-[translateY(calc(var(--toast-swipe-movement-y)-150%))]", className, toast.data.variant === "success" && "border-success bg-success-container", toast.data.variant === "error" && "border-error bg-error-container", toast.data.variant === "warning" && "border-warning bg-warning-container"),
22
+ style: {
23
+ ["--gap"]: "1rem",
24
+ ["--offset-y"]: "calc(var(--toast-offset-y) * -1 + (var(--toast-index) * var(--gap) * -1) + var(--toast-swipe-movement-y))"
25
+ },
26
+ ref,
27
+ ...props,
28
+ children: [
29
+ children,
30
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__base_ui_react_toast.Toast.Title, { className: require_cn.cn("text-sm font-semibold text-on-surface", toast.data.variant === "success" && "text-on-success-container", toast.data.variant === "error" && "text-on-error-container", toast.data.variant === "warning" && "text-on-warning-container") }),
31
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__base_ui_react_toast.Toast.Description, { className: require_cn.cn("text-sm text-on-surface", toast.data.variant === "success" && "text-on-success-container", toast.data.variant === "error" && "text-on-error-container", toast.data.variant === "warning" && "text-on-warning-container") }),
32
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__base_ui_react_toast.Toast.Close, {
33
+ className: "absolute top-xs right-2xs flex size-xs items-center justify-center rounded border-none bg-transparent text-on-surface hover:cursor-pointer",
34
+ "aria-label": "Close",
35
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__phosphor_icons_react.XIcon, { weight: "bold" })
36
+ })
37
+ ]
38
+ }, toast.id));
39
+ };
40
+ exports.Toast = Toast;
package/dist/toast.js ADDED
@@ -0,0 +1,40 @@
1
+ import { cn } from "./cn.js";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { XIcon } from "@phosphor-icons/react";
4
+ import { Toast } from "@base-ui/react/toast";
5
+ const Toast$1 = ({ className, children, position = "top-right", ref, ...props }) => {
6
+ const { toasts } = Toast.useToastManager();
7
+ const getSwipeDirection = (pos) => {
8
+ switch (pos) {
9
+ case "top-left": return "left";
10
+ case "bottom-left": return "left";
11
+ case "top-right": return "right";
12
+ case "bottom-right": return "right";
13
+ case "top-center": return "up";
14
+ case "bottom-center": return "down";
15
+ default: return "right";
16
+ }
17
+ };
18
+ return toasts.map((toast) => /* @__PURE__ */ jsxs(Toast.Root, {
19
+ toast,
20
+ swipeDirection: getSwipeDirection(position),
21
+ className: cn(position === "bottom-right" || position === "bottom-center" || position === "bottom-left" ? "absolute right-0 bottom-0 left-auto z-[calc(1000-var(--toast-index))] mr-0 w-full transform-[translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)+calc(min(var(--toast-index),10)*-15px)))_scale(calc(max(0,1-(var(--toast-index)*0.1))))] rounded-lg border border-outline bg-surface-container bg-clip-padding p-sm shadow-lg transition-all [transition-property:opacity,transform] duration-500 ease-[cubic-bezier(0.22,1,0.36,1)] select-none after:absolute after:bottom-full after:left-0 after:h-[calc(var(--gap)+1px)] after:w-full after:content-[\"\"] data-ending-style:opacity-0 data-expanded:transform-[translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-offset-y)*-1+calc(var(--toast-index)*var(--gap)*-1)+var(--toast-swipe-movement-y)))] data-limited:opacity-0 data-starting-style:transform-[translateY(150%)] [&[data-ending-style]:not([data-limited]):not([data-swipe-direction])]:transform-[translateY(150%)] data-ending-style:data-[swipe-direction=down]:transform-[translateY(calc(var(--toast-swipe-movement-y)+150%))] data-expanded:data-ending-style:data-[swipe-direction=down]:transform-[translateY(calc(var(--toast-swipe-movement-y)+150%))] data-ending-style:data-[swipe-direction=left]:transform-[translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))] data-expanded:data-ending-style:data-[swipe-direction=left]:transform-[translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))] data-ending-style:data-[swipe-direction=right]:transform-[translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))] data-expanded:data-ending-style:data-[swipe-direction=right]:transform-[translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))] data-ending-style:data-[swipe-direction=up]:transform-[translateY(calc(var(--toast-swipe-movement-y)-150%))] data-expanded:data-ending-style:data-[swipe-direction=up]:transform-[translateY(calc(var(--toast-swipe-movement-y)-150%))] flex flex-col gap-3xs" : "absolute top-0 right-0 left-0 z-[calc(1000-var(--toast-index))] mx-auto w-full transform-[translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)+calc(min(var(--toast-index),10)*15px)))_scale(calc(max(0,1-(var(--toast-index)*0.1))))] rounded-lg border border-gray-200 bg-gray-50 bg-clip-padding p-sm shadow-lg transition-all [transition-property:opacity,transform] duration-500 ease-[cubic-bezier(0.22,1,0.36,1)] select-none after:absolute after:top-full after:left-0 after:h-[calc(var(--gap)+1px)] after:w-full after:content-[''] data-ending-style:opacity-0 data-expanded:transform-[translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-offset-y)+calc(var(--toast-index)*var(--gap))+var(--toast-swipe-movement-y)))] data-limited:opacity-0 data-starting-style:transform-[translateY(-150%)] [&[data-ending-style]:not([data-limited]):not([data-swipe-direction])]:transform-[translateY(-150%)] data-ending-style:data-[swipe-direction=down]:transform-[translateY(calc(var(--toast-swipe-movement-y)+150%))] data-expanded:data-ending-style:data-[swipe-direction=down]:transform-[translateY(calc(var(--toast-swipe-movement-y)+150%))] data-ending-style:data-[swipe-direction=left]:transform-[translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))] data-expanded:data-ending-style:data-[swipe-direction=left]:transform-[translateX(calc(var(--toast-swipe-movement-x)-150%))_translateY(var(--offset-y))] data-ending-style:data-[swipe-direction=right]:transform-[translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))] data-expanded:data-ending-style:data-[swipe-direction=right]:transform-[translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))] data-ending-style:data-[swipe-direction=up]:transform-[translateY(calc(var(--toast-swipe-movement-y)-150%))] data-expanded:data-ending-style:data-[swipe-direction=up]:transform-[translateY(calc(var(--toast-swipe-movement-y)-150%))]", className, toast.data.variant === "success" && "border-success bg-success-container", toast.data.variant === "error" && "border-error bg-error-container", toast.data.variant === "warning" && "border-warning bg-warning-container"),
22
+ style: {
23
+ ["--gap"]: "1rem",
24
+ ["--offset-y"]: "calc(var(--toast-offset-y) * -1 + (var(--toast-index) * var(--gap) * -1) + var(--toast-swipe-movement-y))"
25
+ },
26
+ ref,
27
+ ...props,
28
+ children: [
29
+ children,
30
+ /* @__PURE__ */ jsx(Toast.Title, { className: cn("text-sm font-semibold text-on-surface", toast.data.variant === "success" && "text-on-success-container", toast.data.variant === "error" && "text-on-error-container", toast.data.variant === "warning" && "text-on-warning-container") }),
31
+ /* @__PURE__ */ jsx(Toast.Description, { className: cn("text-sm text-on-surface", toast.data.variant === "success" && "text-on-success-container", toast.data.variant === "error" && "text-on-error-container", toast.data.variant === "warning" && "text-on-warning-container") }),
32
+ /* @__PURE__ */ jsx(Toast.Close, {
33
+ className: "absolute top-xs right-2xs flex size-xs items-center justify-center rounded border-none bg-transparent text-on-surface hover:cursor-pointer",
34
+ "aria-label": "Close",
35
+ children: /* @__PURE__ */ jsx(XIcon, { weight: "bold" })
36
+ })
37
+ ]
38
+ }, toast.id));
39
+ };
40
+ export { Toast$1 as Toast };
@@ -0,0 +1,56 @@
1
+ const require_cn = require("./cn.cjs");
2
+ let react_compiler_runtime = require("react/compiler-runtime");
3
+ let react_jsx_runtime = require("react/jsx-runtime");
4
+ let __phosphor_icons_react = require("@phosphor-icons/react");
5
+ let __base_ui_react_tooltip = require("@base-ui/react/tooltip");
6
+ const TooltipContent = (t0) => {
7
+ const $ = (0, react_compiler_runtime.c)(11);
8
+ let children;
9
+ let className;
10
+ let props;
11
+ if ($[0] !== t0) {
12
+ ({className, children, ...props} = t0);
13
+ $[0] = t0;
14
+ $[1] = children;
15
+ $[2] = className;
16
+ $[3] = props;
17
+ } else {
18
+ children = $[1];
19
+ className = $[2];
20
+ props = $[3];
21
+ }
22
+ let t1;
23
+ if ($[4] !== className) {
24
+ t1 = require_cn.cn("bg-surface-container-high origin-(--transform-origin) px-xs py-3xs animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit rounded-md text-sm text-balance", className);
25
+ $[4] = className;
26
+ $[5] = t1;
27
+ } else t1 = $[5];
28
+ let t2;
29
+ if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
30
+ t2 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__base_ui_react_tooltip.Tooltip.Arrow, {
31
+ className: "data-[side=bottom]:top-[-8px] data-[side=left]:right-[-13px] data-[side=left]:rotate-90 data-[side=right]:left-[-13px] data-[side=right]:-rotate-90 data-[side=top]:bottom-[-8px] data-[side=top]:rotate-180",
32
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__phosphor_icons_react.CaretUpIcon, {
33
+ weight: "fill",
34
+ className: "fill-surface-container-high "
35
+ })
36
+ });
37
+ $[6] = t2;
38
+ } else t2 = $[6];
39
+ let t3;
40
+ if ($[7] !== children || $[8] !== props || $[9] !== t1) {
41
+ t3 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__base_ui_react_tooltip.Tooltip.Portal, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__base_ui_react_tooltip.Tooltip.Positioner, {
42
+ sideOffset: 10,
43
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__base_ui_react_tooltip.Tooltip.Popup, {
44
+ className: t1,
45
+ ...props,
46
+ children: [t2, children]
47
+ })
48
+ }) });
49
+ $[7] = children;
50
+ $[8] = props;
51
+ $[9] = t1;
52
+ $[10] = t3;
53
+ } else t3 = $[10];
54
+ return t3;
55
+ };
56
+ exports.TooltipContent = TooltipContent;
@@ -0,0 +1,56 @@
1
+ import { cn } from "./cn.js";
2
+ import { c } from "react/compiler-runtime";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ import { CaretUpIcon } from "@phosphor-icons/react";
5
+ import { Tooltip } from "@base-ui/react/tooltip";
6
+ const TooltipContent = (t0) => {
7
+ const $ = c(11);
8
+ let children;
9
+ let className;
10
+ let props;
11
+ if ($[0] !== t0) {
12
+ ({className, children, ...props} = t0);
13
+ $[0] = t0;
14
+ $[1] = children;
15
+ $[2] = className;
16
+ $[3] = props;
17
+ } else {
18
+ children = $[1];
19
+ className = $[2];
20
+ props = $[3];
21
+ }
22
+ let t1;
23
+ if ($[4] !== className) {
24
+ t1 = cn("bg-surface-container-high origin-(--transform-origin) px-xs py-3xs animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit rounded-md text-sm text-balance", className);
25
+ $[4] = className;
26
+ $[5] = t1;
27
+ } else t1 = $[5];
28
+ let t2;
29
+ if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
30
+ t2 = /* @__PURE__ */ jsx(Tooltip.Arrow, {
31
+ className: "data-[side=bottom]:top-[-8px] data-[side=left]:right-[-13px] data-[side=left]:rotate-90 data-[side=right]:left-[-13px] data-[side=right]:-rotate-90 data-[side=top]:bottom-[-8px] data-[side=top]:rotate-180",
32
+ children: /* @__PURE__ */ jsx(CaretUpIcon, {
33
+ weight: "fill",
34
+ className: "fill-surface-container-high "
35
+ })
36
+ });
37
+ $[6] = t2;
38
+ } else t2 = $[6];
39
+ let t3;
40
+ if ($[7] !== children || $[8] !== props || $[9] !== t1) {
41
+ t3 = /* @__PURE__ */ jsx(Tooltip.Portal, { children: /* @__PURE__ */ jsx(Tooltip.Positioner, {
42
+ sideOffset: 10,
43
+ children: /* @__PURE__ */ jsxs(Tooltip.Popup, {
44
+ className: t1,
45
+ ...props,
46
+ children: [t2, children]
47
+ })
48
+ }) });
49
+ $[7] = children;
50
+ $[8] = props;
51
+ $[9] = t1;
52
+ $[10] = t3;
53
+ } else t3 = $[10];
54
+ return t3;
55
+ };
56
+ export { TooltipContent };
@@ -0,0 +1,29 @@
1
+ let react_compiler_runtime = require("react/compiler-runtime");
2
+ let react_jsx_runtime = require("react/jsx-runtime");
3
+ let __base_ui_react_tooltip = require("@base-ui/react/tooltip");
4
+ const TooltipTrigger = (t0) => {
5
+ const $ = (0, react_compiler_runtime.c)(6);
6
+ let children;
7
+ let props;
8
+ if ($[0] !== t0) {
9
+ ({children, ...props} = t0);
10
+ $[0] = t0;
11
+ $[1] = children;
12
+ $[2] = props;
13
+ } else {
14
+ children = $[1];
15
+ props = $[2];
16
+ }
17
+ let t1;
18
+ if ($[3] !== children || $[4] !== props) {
19
+ t1 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__base_ui_react_tooltip.Tooltip.Trigger, {
20
+ ...props,
21
+ children
22
+ });
23
+ $[3] = children;
24
+ $[4] = props;
25
+ $[5] = t1;
26
+ } else t1 = $[5];
27
+ return t1;
28
+ };
29
+ exports.TooltipTrigger = TooltipTrigger;
@@ -0,0 +1,29 @@
1
+ import { c } from "react/compiler-runtime";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { Tooltip } from "@base-ui/react/tooltip";
4
+ const TooltipTrigger = (t0) => {
5
+ const $ = c(6);
6
+ let children;
7
+ let props;
8
+ if ($[0] !== t0) {
9
+ ({children, ...props} = t0);
10
+ $[0] = t0;
11
+ $[1] = children;
12
+ $[2] = props;
13
+ } else {
14
+ children = $[1];
15
+ props = $[2];
16
+ }
17
+ let t1;
18
+ if ($[3] !== children || $[4] !== props) {
19
+ t1 = /* @__PURE__ */ jsx(Tooltip.Trigger, {
20
+ ...props,
21
+ children
22
+ });
23
+ $[3] = children;
24
+ $[4] = props;
25
+ $[5] = t1;
26
+ } else t1 = $[5];
27
+ return t1;
28
+ };
29
+ export { TooltipTrigger };
@@ -0,0 +1,29 @@
1
+ let react_compiler_runtime = require("react/compiler-runtime");
2
+ let react_jsx_runtime = require("react/jsx-runtime");
3
+ let __base_ui_react_tooltip = require("@base-ui/react/tooltip");
4
+ const Tooltip = (t0) => {
5
+ const $ = (0, react_compiler_runtime.c)(6);
6
+ let children;
7
+ let props;
8
+ if ($[0] !== t0) {
9
+ ({children, ...props} = t0);
10
+ $[0] = t0;
11
+ $[1] = children;
12
+ $[2] = props;
13
+ } else {
14
+ children = $[1];
15
+ props = $[2];
16
+ }
17
+ let t1;
18
+ if ($[3] !== children || $[4] !== props) {
19
+ t1 = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__base_ui_react_tooltip.Tooltip.Provider, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__base_ui_react_tooltip.Tooltip.Root, {
20
+ ...props,
21
+ children
22
+ }) });
23
+ $[3] = children;
24
+ $[4] = props;
25
+ $[5] = t1;
26
+ } else t1 = $[5];
27
+ return t1;
28
+ };
29
+ exports.Tooltip = Tooltip;