@waveso/ui 0.0.2 → 0.0.3

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 (156) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1 -1
  3. package/dist/accordion.d.ts +14 -0
  4. package/dist/accordion.js +81 -0
  5. package/dist/accordion.js.map +1 -0
  6. package/dist/alert.d.ts +8 -4
  7. package/dist/alert.js.map +1 -1
  8. package/dist/aspect-ratio.d.ts +10 -0
  9. package/dist/aspect-ratio.js +18 -0
  10. package/dist/aspect-ratio.js.map +1 -0
  11. package/dist/autocomplete.d.ts +48 -0
  12. package/dist/autocomplete.js +222 -0
  13. package/dist/autocomplete.js.map +1 -0
  14. package/dist/avatar.d.ts +13 -7
  15. package/dist/avatar.js.map +1 -1
  16. package/dist/badge.d.ts +3 -2
  17. package/dist/badge.js +1 -1
  18. package/dist/badge.js.map +1 -1
  19. package/dist/breadcrumb.d.ts +20 -0
  20. package/dist/breadcrumb.js +123 -0
  21. package/dist/breadcrumb.js.map +1 -0
  22. package/dist/button-group.d.ts +19 -0
  23. package/dist/button-group.js +81 -0
  24. package/dist/button-group.js.map +1 -0
  25. package/dist/button.d.ts +1 -1
  26. package/dist/card.d.ts +15 -8
  27. package/dist/card.js.map +1 -1
  28. package/dist/checkbox.js +1 -1
  29. package/dist/chunk-D5XPEJ6T.js +36 -0
  30. package/dist/chunk-D5XPEJ6T.js.map +1 -0
  31. package/dist/chunk-IQ7YQ5XA.js +141 -0
  32. package/dist/chunk-IQ7YQ5XA.js.map +1 -0
  33. package/dist/chunk-NCHHHWTB.js +85 -0
  34. package/dist/chunk-NCHHHWTB.js.map +1 -0
  35. package/dist/chunk-PGXELRT4.js +228 -0
  36. package/dist/chunk-PGXELRT4.js.map +1 -0
  37. package/dist/chunk-QFSEK4M6.js +22 -0
  38. package/dist/chunk-QFSEK4M6.js.map +1 -0
  39. package/dist/chunk-QRW37LRP.js +25 -0
  40. package/dist/chunk-QRW37LRP.js.map +1 -0
  41. package/dist/chunk-RPQHL6C5.js +26 -0
  42. package/dist/chunk-RPQHL6C5.js.map +1 -0
  43. package/dist/chunk-WJDWQFO3.js +99 -0
  44. package/dist/chunk-WJDWQFO3.js.map +1 -0
  45. package/dist/chunk-YTSQQTSF.js +44 -0
  46. package/dist/chunk-YTSQQTSF.js.map +1 -0
  47. package/dist/chunk-ZOKFCJWM.js +11 -0
  48. package/dist/chunk-ZOKFCJWM.js.map +1 -0
  49. package/dist/collapsible.d.ts +12 -0
  50. package/dist/collapsible.js +16 -0
  51. package/dist/collapsible.js.map +1 -0
  52. package/dist/combobox.d.ts +48 -0
  53. package/dist/combobox.js +281 -0
  54. package/dist/combobox.js.map +1 -0
  55. package/dist/context-menu.d.ts +47 -0
  56. package/dist/context-menu.js +193 -0
  57. package/dist/context-menu.js.map +1 -0
  58. package/dist/dialog.js +1 -1
  59. package/dist/direction.d.ts +1 -0
  60. package/dist/direction.js +3 -0
  61. package/dist/direction.js.map +1 -0
  62. package/dist/drawer.d.ts +29 -0
  63. package/dist/drawer.js +143 -0
  64. package/dist/drawer.js.map +1 -0
  65. package/dist/encrypted-text.d.ts +16 -0
  66. package/dist/encrypted-text.js +141 -0
  67. package/dist/encrypted-text.js.map +1 -0
  68. package/dist/field.d.ts +22 -0
  69. package/dist/field.js +4 -0
  70. package/dist/field.js.map +1 -0
  71. package/dist/form.d.ts +80 -0
  72. package/dist/form.js +108 -0
  73. package/dist/form.js.map +1 -0
  74. package/dist/infinite-scroll.d.ts +19 -0
  75. package/dist/infinite-scroll.js +102 -0
  76. package/dist/infinite-scroll.js.map +1 -0
  77. package/dist/input-group.d.ts +29 -0
  78. package/dist/input-group.js +7 -0
  79. package/dist/input-group.js.map +1 -0
  80. package/dist/input-otp.d.ts +18 -0
  81. package/dist/input-otp.js +79 -0
  82. package/dist/input-otp.js.map +1 -0
  83. package/dist/input.d.ts +2 -1
  84. package/dist/input.js +2 -20
  85. package/dist/input.js.map +1 -1
  86. package/dist/item.d.ts +37 -0
  87. package/dist/item.js +181 -0
  88. package/dist/item.js.map +1 -0
  89. package/dist/kbd.d.ts +8 -0
  90. package/dist/kbd.js +30 -0
  91. package/dist/kbd.js.map +1 -0
  92. package/dist/label.d.ts +2 -1
  93. package/dist/label.js.map +1 -1
  94. package/dist/masonry.d.ts +17 -0
  95. package/dist/masonry.js +235 -0
  96. package/dist/masonry.js.map +1 -0
  97. package/dist/menu.d.ts +47 -0
  98. package/dist/menu.js +5 -0
  99. package/dist/menu.js.map +1 -0
  100. package/dist/menubar.d.ts +40 -0
  101. package/dist/menubar.js +84 -0
  102. package/dist/menubar.js.map +1 -0
  103. package/dist/pagination.d.ts +29 -0
  104. package/dist/pagination.js +120 -0
  105. package/dist/pagination.js.map +1 -0
  106. package/dist/popover.d.ts +24 -0
  107. package/dist/popover.js +105 -0
  108. package/dist/popover.js.map +1 -0
  109. package/dist/preview-card.d.ts +17 -0
  110. package/dist/preview-card.js +70 -0
  111. package/dist/preview-card.js.map +1 -0
  112. package/dist/radio-group.d.ts +12 -0
  113. package/dist/radio-group.js +28 -0
  114. package/dist/radio-group.js.map +1 -0
  115. package/dist/radio.d.ts +10 -0
  116. package/dist/radio.js +4 -0
  117. package/dist/radio.js.map +1 -0
  118. package/dist/scroll-area.d.ts +10 -0
  119. package/dist/scroll-area.js +59 -0
  120. package/dist/scroll-area.js.map +1 -0
  121. package/dist/select.d.ts +36 -0
  122. package/dist/select.js +208 -0
  123. package/dist/select.js.map +1 -0
  124. package/dist/separator.js +2 -24
  125. package/dist/separator.js.map +1 -1
  126. package/dist/skeleton.d.ts +2 -1
  127. package/dist/skeleton.js.map +1 -1
  128. package/dist/slider.d.ts +10 -0
  129. package/dist/slider.js +70 -0
  130. package/dist/slider.js.map +1 -0
  131. package/dist/spinner.d.ts +2 -1
  132. package/dist/spinner.js +3 -9
  133. package/dist/spinner.js.map +1 -1
  134. package/dist/table.d.ts +21 -0
  135. package/dist/table.js +106 -0
  136. package/dist/table.js.map +1 -0
  137. package/dist/tabs.d.ts +20 -0
  138. package/dist/tabs.js +82 -0
  139. package/dist/tabs.js.map +1 -0
  140. package/dist/textarea.js +2 -23
  141. package/dist/textarea.js.map +1 -1
  142. package/dist/toast.d.ts +57 -0
  143. package/dist/toast.js +239 -0
  144. package/dist/toast.js.map +1 -0
  145. package/dist/toggle-group.d.ts +17 -0
  146. package/dist/toggle-group.js +78 -0
  147. package/dist/toggle-group.js.map +1 -0
  148. package/dist/toggle.d.ts +14 -0
  149. package/dist/toggle.js +4 -0
  150. package/dist/toggle.js.map +1 -0
  151. package/dist/tooltip.d.ts +21 -0
  152. package/dist/tooltip.js +66 -0
  153. package/dist/tooltip.js.map +1 -0
  154. package/package.json +5 -1
  155. package/dist/chunk-L3UIJEIQ.js +0 -41
  156. package/dist/chunk-L3UIJEIQ.js.map +0 -1
package/dist/toast.js ADDED
@@ -0,0 +1,239 @@
1
+ import { ErrorCircleIcon, AlertTriangleIcon, InfoCircleIcon, SuccessCircleIcon, LoaderIcon, CloseIcon } from './chunk-WJDWQFO3.js';
2
+ import { cn } from './chunk-76UQO56T.js';
3
+ import { Toast as Toast$1 } from '@base-ui/react/toast';
4
+ import { cva } from 'class-variance-authority';
5
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
6
+
7
+ var toastRootClass = "bg-popover text-popover-foreground ring-foreground/10 rounded-lg p-4 text-sm shadow-lg ring-1 outline-none select-none";
8
+ var toastIconVariants = cva(
9
+ "mt-0.5 size-4 shrink-0",
10
+ {
11
+ variants: {
12
+ type: {
13
+ loading: "text-muted-foreground animate-spin",
14
+ success: "text-emerald-500",
15
+ info: "text-blue-500",
16
+ warning: "text-amber-500",
17
+ error: "text-red-500"
18
+ }
19
+ }
20
+ }
21
+ );
22
+ var toastViewportVariants = cva(
23
+ "fixed z-[100] flex w-full outline-none sm:max-w-sm",
24
+ {
25
+ variants: {
26
+ position: {
27
+ "top-left": "top-4 left-4",
28
+ "top-center": "top-4 right-0 left-0 mx-auto",
29
+ "top-right": "top-4 right-4",
30
+ "bottom-left": "bottom-4 left-4",
31
+ "bottom-center": "bottom-4 right-0 left-0 mx-auto",
32
+ "bottom-right": "bottom-4 right-4"
33
+ }
34
+ },
35
+ defaultVariants: {
36
+ position: "bottom-right"
37
+ }
38
+ }
39
+ );
40
+ var toastManager = Toast$1.createToastManager();
41
+ var toast = Object.assign(
42
+ (titleOrOptions) => {
43
+ const options = typeof titleOrOptions === "string" ? { title: titleOrOptions } : titleOrOptions;
44
+ return toastManager.add(options);
45
+ },
46
+ {
47
+ success: (title, options) => toastManager.add({ ...options, type: "success", title }),
48
+ error: (title, options) => toastManager.add({ ...options, type: "error", title }),
49
+ warning: (title, options) => toastManager.add({ ...options, type: "warning", title }),
50
+ info: (title, options) => toastManager.add({ ...options, type: "info", title }),
51
+ loading: (title, options) => toastManager.add({
52
+ ...options,
53
+ type: "loading",
54
+ title,
55
+ timeout: options?.timeout ?? 0
56
+ }),
57
+ dismiss: (id) => toastManager.close(id),
58
+ update: (id, updates) => toastManager.update(id, updates),
59
+ promise: toastManager.promise.bind(toastManager)
60
+ }
61
+ );
62
+ var iconMap = {
63
+ loading: LoaderIcon,
64
+ success: SuccessCircleIcon,
65
+ info: InfoCircleIcon,
66
+ warning: AlertTriangleIcon,
67
+ error: ErrorCircleIcon
68
+ };
69
+ function ToastIcon({ type }) {
70
+ if (!type) return null;
71
+ const Icon = iconMap[type];
72
+ return /* @__PURE__ */ jsx(Icon, { className: cn(toastIconVariants({ type })) });
73
+ }
74
+ function Toast({ className, ...props }) {
75
+ return /* @__PURE__ */ jsx(
76
+ Toast$1.Root,
77
+ {
78
+ "data-slot": "toast",
79
+ className: cn(toastRootClass, className),
80
+ ...props
81
+ }
82
+ );
83
+ }
84
+ function ToastBody({ className, ...props }) {
85
+ return /* @__PURE__ */ jsx(
86
+ "div",
87
+ {
88
+ "data-slot": "toast-body",
89
+ className: cn("flex flex-1 flex-col gap-1", className),
90
+ ...props
91
+ }
92
+ );
93
+ }
94
+ function ToastTitle({ className, ...props }) {
95
+ return /* @__PURE__ */ jsx(
96
+ Toast$1.Title,
97
+ {
98
+ "data-slot": "toast-title",
99
+ className: cn("text-sm font-medium", className),
100
+ ...props
101
+ }
102
+ );
103
+ }
104
+ function ToastDescription({ className, ...props }) {
105
+ return /* @__PURE__ */ jsx(
106
+ Toast$1.Description,
107
+ {
108
+ "data-slot": "toast-description",
109
+ className: cn("text-muted-foreground text-sm", className),
110
+ ...props
111
+ }
112
+ );
113
+ }
114
+ function ToastAction({ className, ...props }) {
115
+ return /* @__PURE__ */ jsx(
116
+ Toast$1.Action,
117
+ {
118
+ "data-slot": "toast-action",
119
+ className: cn(
120
+ "hover:bg-muted inline-flex h-7 items-center rounded-md border px-2.5 text-xs font-medium transition-colors",
121
+ className
122
+ ),
123
+ ...props
124
+ }
125
+ );
126
+ }
127
+ function ToastClose({ className, children, ...props }) {
128
+ return /* @__PURE__ */ jsx(
129
+ Toast$1.Close,
130
+ {
131
+ "data-slot": "toast-close",
132
+ className: cn(
133
+ "text-muted-foreground hover:text-foreground shrink-0 rounded-md p-0.5 transition-colors",
134
+ className
135
+ ),
136
+ ...props,
137
+ children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
138
+ /* @__PURE__ */ jsx(CloseIcon, { className: "size-4" }),
139
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
140
+ ] })
141
+ }
142
+ );
143
+ }
144
+ var STACKING_BASE = [
145
+ // CSS custom properties
146
+ "[--gap:0.5rem]",
147
+ "[--peek:0.5rem]",
148
+ "[--scale:calc(max(0,1-(var(--toast-index)*0.05)))]",
149
+ "[--shrink:calc(1-var(--scale))]",
150
+ "[--height:var(--toast-frontmost-height,var(--toast-height))]",
151
+ // Layout
152
+ "absolute w-full",
153
+ "[z-index:calc(1000-var(--toast-index))]",
154
+ "h-[var(--height)] data-[expanded]:h-[var(--toast-height)]",
155
+ // Depth blur — subtle defocus on behind toasts, cleared on expand
156
+ "[filter:blur(calc(var(--toast-index)*0.4px))]",
157
+ "data-[expanded]:[filter:none]",
158
+ // Expanded (hover)
159
+ "data-[expanded]:[transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--offset-y)))]",
160
+ // Exit — shared
161
+ "data-[ending-style]:opacity-0",
162
+ "data-[ending-style]:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]",
163
+ "data-[expanded]:data-[ending-style]:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]",
164
+ "data-[ending-style]:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]",
165
+ "data-[expanded]:data-[ending-style]:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]",
166
+ "data-[ending-style]:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]",
167
+ "data-[expanded]:data-[ending-style]:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]",
168
+ "data-[limited]:opacity-0",
169
+ "[transition:transform_0.5s_cubic-bezier(0.22,1,0.36,1),opacity_0.5s,filter_0.5s,height_0.15s]"
170
+ ].join(" ");
171
+ var STACKING_TOP = [
172
+ "[--offset-y:calc(var(--toast-offset-y)+calc(var(--toast-index)*var(--gap))+var(--toast-swipe-movement-y))]",
173
+ "top-0 origin-top",
174
+ "[transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)+(var(--toast-index)*var(--peek))+(var(--shrink)*var(--height))))_scale(var(--scale))]",
175
+ "after:absolute after:bottom-full after:left-0 after:h-[calc(var(--gap)+1px)] after:w-full after:content-['']",
176
+ "data-[starting-style]:[transform:translateY(-150%)]",
177
+ "[&[data-ending-style]:not([data-limited]):not([data-swipe-direction])]:[transform:translateY(-150%)]"
178
+ ].join(" ");
179
+ var STACKING_BOTTOM = [
180
+ "[--offset-y:calc(var(--toast-offset-y)*-1+calc(var(--toast-index)*var(--gap)*-1)+var(--toast-swipe-movement-y))]",
181
+ "bottom-0 origin-bottom",
182
+ "[transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)-(var(--toast-index)*var(--peek))-(var(--shrink)*var(--height))))_scale(var(--scale))]",
183
+ "after:absolute after:top-full after:left-0 after:h-[calc(var(--gap)+1px)] after:w-full after:content-['']",
184
+ "data-[starting-style]:[transform:translateY(150%)]",
185
+ "[&[data-ending-style]:not([data-limited]):not([data-swipe-direction])]:[transform:translateY(150%)]"
186
+ ].join(" ");
187
+ var STACKING_TOP_CLASS = `${STACKING_BASE} ${STACKING_TOP}`;
188
+ var STACKING_BOTTOM_CLASS = `${STACKING_BASE} ${STACKING_BOTTOM}`;
189
+ function ToasterContent({ position = "bottom-right" }) {
190
+ const { toasts } = Toast$1.useToastManager();
191
+ const isTop = position.startsWith("top");
192
+ return /* @__PURE__ */ jsx(Toast$1.Portal, { children: /* @__PURE__ */ jsx(
193
+ Toast$1.Viewport,
194
+ {
195
+ "data-slot": "toast-viewport",
196
+ className: cn(toastViewportVariants({ position })),
197
+ children: toasts.map((t) => /* @__PURE__ */ jsx(
198
+ Toast,
199
+ {
200
+ toast: t,
201
+ swipeDirection: isTop ? ["up", "right"] : ["down", "right"],
202
+ className: isTop ? STACKING_TOP_CLASS : STACKING_BOTTOM_CLASS,
203
+ children: /* @__PURE__ */ jsxs(
204
+ Toast$1.Content,
205
+ {
206
+ "data-slot": "toast-content",
207
+ className: "flex items-start gap-3 overflow-hidden transition-opacity duration-250 data-[behind]:pointer-events-none data-[behind]:opacity-0 data-[expanded]:pointer-events-auto data-[expanded]:opacity-100",
208
+ children: [
209
+ /* @__PURE__ */ jsx(ToastIcon, { type: t.type }),
210
+ /* @__PURE__ */ jsxs(ToastBody, { children: [
211
+ t.title && /* @__PURE__ */ jsx(ToastTitle, { children: t.title }),
212
+ t.description && /* @__PURE__ */ jsx(ToastDescription, { children: t.description }),
213
+ t.actionProps && /* @__PURE__ */ jsx("div", { className: "mt-1.5", children: /* @__PURE__ */ jsx(ToastAction, { ...t.actionProps }) })
214
+ ] }),
215
+ /* @__PURE__ */ jsx(ToastClose, {})
216
+ ]
217
+ }
218
+ )
219
+ },
220
+ t.id
221
+ ))
222
+ }
223
+ ) });
224
+ }
225
+ function Toaster({ position, limit, timeout }) {
226
+ return /* @__PURE__ */ jsx(
227
+ Toast$1.Provider,
228
+ {
229
+ toastManager,
230
+ limit,
231
+ timeout,
232
+ children: /* @__PURE__ */ jsx(ToasterContent, { position })
233
+ }
234
+ );
235
+ }
236
+
237
+ export { Toast, ToastAction, ToastClose, ToastDescription, ToastIcon, ToastTitle, Toaster, toast, toastIconVariants, toastManager, toastRootClass, toastViewportVariants };
238
+ //# sourceMappingURL=toast.js.map
239
+ //# sourceMappingURL=toast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/toast.tsx"],"names":["ToastPrimitive"],"mappings":"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","file":"toast.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { Toast as ToastPrimitive } from \"@base-ui/react/toast\"\nimport { cva } from \"class-variance-authority\"\n\nimport { cn } from \"./lib/utils\"\nimport {\n CloseIcon,\n SuccessCircleIcon,\n InfoCircleIcon,\n AlertTriangleIcon,\n ErrorCircleIcon,\n LoaderIcon,\n} from \"./lib/internal-icons\"\n\n// ---------------------------------------------------------------------------\n// Styles\n// ---------------------------------------------------------------------------\n\nconst toastRootClass =\n \"bg-popover text-popover-foreground ring-foreground/10 rounded-lg p-4 text-sm shadow-lg ring-1 outline-none select-none\"\n\nconst toastIconVariants = cva(\n \"mt-0.5 size-4 shrink-0\",\n {\n variants: {\n type: {\n loading: \"text-muted-foreground animate-spin\",\n success: \"text-emerald-500\",\n info: \"text-blue-500\",\n warning: \"text-amber-500\",\n error: \"text-red-500\",\n },\n },\n }\n)\n\nconst toastViewportVariants = cva(\n \"fixed z-[100] flex w-full outline-none sm:max-w-sm\",\n {\n variants: {\n position: {\n \"top-left\": \"top-4 left-4\",\n \"top-center\": \"top-4 right-0 left-0 mx-auto\",\n \"top-right\": \"top-4 right-4\",\n \"bottom-left\": \"bottom-4 left-4\",\n \"bottom-center\": \"bottom-4 right-0 left-0 mx-auto\",\n \"bottom-right\": \"bottom-4 right-4\",\n },\n },\n defaultVariants: {\n position: \"bottom-right\",\n },\n },\n)\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\ntype ToastType = \"loading\" | \"success\" | \"info\" | \"warning\" | \"error\"\n\ntype ToastOptions = {\n title?: string\n description?: string\n type?: ToastType\n timeout?: number\n priority?: \"low\" | \"high\"\n actionProps?: React.ComponentPropsWithoutRef<\"button\">\n onClose?: () => void\n onRemove?: () => void\n}\n\ntype ToasterPosition =\n | \"top-left\"\n | \"top-center\"\n | \"top-right\"\n | \"bottom-left\"\n | \"bottom-center\"\n | \"bottom-right\"\n\ntype ToasterProps = {\n position?: ToasterPosition\n limit?: number\n timeout?: number\n}\n\ntype ToastProps = React.ComponentProps<typeof ToastPrimitive.Root>\ntype ToastTitleProps = React.ComponentProps<typeof ToastPrimitive.Title>\ntype ToastDescriptionProps = React.ComponentProps<typeof ToastPrimitive.Description>\ntype ToastActionProps = React.ComponentProps<typeof ToastPrimitive.Action>\ntype ToastCloseProps = React.ComponentProps<typeof ToastPrimitive.Close>\n\n// ---------------------------------------------------------------------------\n// Toast manager API\n// ---------------------------------------------------------------------------\n\nconst toastManager = ToastPrimitive.createToastManager()\n\nconst toast = Object.assign(\n (titleOrOptions: string | ToastOptions) => {\n const options =\n typeof titleOrOptions === \"string\"\n ? { title: titleOrOptions }\n : titleOrOptions\n return toastManager.add(options)\n },\n {\n success: (title: string, options?: Omit<ToastOptions, \"type\" | \"title\">) =>\n toastManager.add({ ...options, type: \"success\", title }),\n\n error: (title: string, options?: Omit<ToastOptions, \"type\" | \"title\">) =>\n toastManager.add({ ...options, type: \"error\", title }),\n\n warning: (title: string, options?: Omit<ToastOptions, \"type\" | \"title\">) =>\n toastManager.add({ ...options, type: \"warning\", title }),\n\n info: (title: string, options?: Omit<ToastOptions, \"type\" | \"title\">) =>\n toastManager.add({ ...options, type: \"info\", title }),\n\n loading: (title: string, options?: Omit<ToastOptions, \"type\" | \"title\">) =>\n toastManager.add({\n ...options,\n type: \"loading\",\n title,\n timeout: options?.timeout ?? 0,\n }),\n\n dismiss: (id: string) => toastManager.close(id),\n\n update: (id: string, updates: Partial<ToastOptions>) =>\n toastManager.update(id, updates),\n\n promise: toastManager.promise.bind(toastManager),\n },\n)\n\n// ---------------------------------------------------------------------------\n// Icons\n// ---------------------------------------------------------------------------\n\nconst iconMap = {\n loading: LoaderIcon,\n success: SuccessCircleIcon,\n info: InfoCircleIcon,\n warning: AlertTriangleIcon,\n error: ErrorCircleIcon,\n} as const\n\nfunction ToastIcon({ type }: { type?: ToastType }) {\n if (!type) return null\n const Icon = iconMap[type]\n return <Icon className={cn(toastIconVariants({ type }))} />\n}\n\n// ---------------------------------------------------------------------------\n// Toast primitives\n// ---------------------------------------------------------------------------\n\nfunction Toast({ className, ...props }: ToastProps) {\n return (\n <ToastPrimitive.Root\n data-slot=\"toast\"\n className={cn(toastRootClass, className)}\n {...props}\n />\n )\n}\n\nfunction ToastBody({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"toast-body\"\n className={cn(\"flex flex-1 flex-col gap-1\", className)}\n {...props}\n />\n )\n}\n\nfunction ToastTitle({ className, ...props }: ToastTitleProps) {\n return (\n <ToastPrimitive.Title\n data-slot=\"toast-title\"\n className={cn(\"text-sm font-medium\", className)}\n {...props}\n />\n )\n}\n\nfunction ToastDescription({ className, ...props }: ToastDescriptionProps) {\n return (\n <ToastPrimitive.Description\n data-slot=\"toast-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction ToastAction({ className, ...props }: ToastActionProps) {\n return (\n <ToastPrimitive.Action\n data-slot=\"toast-action\"\n className={cn(\n \"hover:bg-muted inline-flex h-7 items-center rounded-md border px-2.5 text-xs font-medium transition-colors\",\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction ToastClose({ className, children, ...props }: ToastCloseProps) {\n return (\n <ToastPrimitive.Close\n data-slot=\"toast-close\"\n className={cn(\n \"text-muted-foreground hover:text-foreground shrink-0 rounded-md p-0.5 transition-colors\",\n className,\n )}\n {...props}\n >\n {children ?? (\n <>\n <CloseIcon className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </>\n )}\n </ToastPrimitive.Close>\n )\n}\n\n// ---------------------------------------------------------------------------\n// 3D stacking\n// ---------------------------------------------------------------------------\n\n// Shared classes for both top and bottom positions\nconst STACKING_BASE = [\n // CSS custom properties\n \"[--gap:0.5rem]\",\n \"[--peek:0.5rem]\",\n \"[--scale:calc(max(0,1-(var(--toast-index)*0.05)))]\",\n \"[--shrink:calc(1-var(--scale))]\",\n \"[--height:var(--toast-frontmost-height,var(--toast-height))]\",\n // Layout\n \"absolute w-full\",\n \"[z-index:calc(1000-var(--toast-index))]\",\n \"h-[var(--height)] data-[expanded]:h-[var(--toast-height)]\",\n // Depth blur — subtle defocus on behind toasts, cleared on expand\n \"[filter:blur(calc(var(--toast-index)*0.4px))]\",\n \"data-[expanded]:[filter:none]\",\n // Expanded (hover)\n \"data-[expanded]:[transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--offset-y)))]\",\n // Exit — shared\n \"data-[ending-style]:opacity-0\",\n \"data-[ending-style]:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]\",\n \"data-[expanded]:data-[ending-style]:data-[swipe-direction=down]:[transform:translateY(calc(var(--toast-swipe-movement-y)+150%))]\",\n \"data-[ending-style]:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]\",\n \"data-[expanded]:data-[ending-style]:data-[swipe-direction=right]:[transform:translateX(calc(var(--toast-swipe-movement-x)+150%))_translateY(var(--offset-y))]\",\n \"data-[ending-style]:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]\",\n \"data-[expanded]:data-[ending-style]:data-[swipe-direction=up]:[transform:translateY(calc(var(--toast-swipe-movement-y)-150%))]\",\n \"data-[limited]:opacity-0\",\n \"[transition:transform_0.5s_cubic-bezier(0.22,1,0.36,1),opacity_0.5s,filter_0.5s,height_0.15s]\",\n].join(\" \")\n\n// Direction-specific classes — sign flips for anchor, offset, transform, enter/exit\nconst STACKING_TOP = [\n \"[--offset-y:calc(var(--toast-offset-y)+calc(var(--toast-index)*var(--gap))+var(--toast-swipe-movement-y))]\",\n \"top-0 origin-top\",\n \"[transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)+(var(--toast-index)*var(--peek))+(var(--shrink)*var(--height))))_scale(var(--scale))]\",\n \"after:absolute after:bottom-full after:left-0 after:h-[calc(var(--gap)+1px)] after:w-full after:content-['']\",\n \"data-[starting-style]:[transform:translateY(-150%)]\",\n \"[&[data-ending-style]:not([data-limited]):not([data-swipe-direction])]:[transform:translateY(-150%)]\",\n].join(\" \")\n\nconst STACKING_BOTTOM = [\n \"[--offset-y:calc(var(--toast-offset-y)*-1+calc(var(--toast-index)*var(--gap)*-1)+var(--toast-swipe-movement-y))]\",\n \"bottom-0 origin-bottom\",\n \"[transform:translateX(var(--toast-swipe-movement-x))_translateY(calc(var(--toast-swipe-movement-y)-(var(--toast-index)*var(--peek))-(var(--shrink)*var(--height))))_scale(var(--scale))]\",\n \"after:absolute after:top-full after:left-0 after:h-[calc(var(--gap)+1px)] after:w-full after:content-['']\",\n \"data-[starting-style]:[transform:translateY(150%)]\",\n \"[&[data-ending-style]:not([data-limited]):not([data-swipe-direction])]:[transform:translateY(150%)]\",\n].join(\" \")\n\nconst STACKING_TOP_CLASS = `${STACKING_BASE} ${STACKING_TOP}`\nconst STACKING_BOTTOM_CLASS = `${STACKING_BASE} ${STACKING_BOTTOM}`\n\n// ---------------------------------------------------------------------------\n// Toaster\n// ---------------------------------------------------------------------------\n\nfunction ToasterContent({ position = \"bottom-right\" }: Pick<ToasterProps, \"position\">) {\n const { toasts } = ToastPrimitive.useToastManager()\n const isTop = position.startsWith(\"top\")\n\n return (\n <ToastPrimitive.Portal>\n <ToastPrimitive.Viewport\n data-slot=\"toast-viewport\"\n className={cn(toastViewportVariants({ position }))}\n >\n {toasts.map((t) => (\n <Toast\n key={t.id}\n toast={t}\n swipeDirection={isTop ? [\"up\", \"right\"] : [\"down\", \"right\"]}\n className={isTop ? STACKING_TOP_CLASS : STACKING_BOTTOM_CLASS}\n >\n <ToastPrimitive.Content\n data-slot=\"toast-content\"\n className=\"flex items-start gap-3 overflow-hidden transition-opacity duration-250 data-[behind]:pointer-events-none data-[behind]:opacity-0 data-[expanded]:pointer-events-auto data-[expanded]:opacity-100\"\n >\n <ToastIcon type={t.type as ToastType | undefined} />\n\n <ToastBody>\n {t.title && <ToastTitle>{t.title}</ToastTitle>}\n {t.description && (\n <ToastDescription>{t.description}</ToastDescription>\n )}\n {t.actionProps && (\n <div className=\"mt-1.5\">\n <ToastAction {...t.actionProps} />\n </div>\n )}\n </ToastBody>\n\n <ToastClose />\n </ToastPrimitive.Content>\n </Toast>\n ))}\n </ToastPrimitive.Viewport>\n </ToastPrimitive.Portal>\n )\n}\n\nfunction Toaster({ position, limit, timeout }: ToasterProps) {\n return (\n <ToastPrimitive.Provider\n toastManager={toastManager}\n limit={limit}\n timeout={timeout}\n >\n <ToasterContent position={position} />\n </ToastPrimitive.Provider>\n )\n}\n\nexport {\n toastRootClass,\n toastIconVariants,\n toastViewportVariants,\n toastManager,\n toast,\n Toaster,\n Toast,\n ToastIcon,\n ToastTitle,\n ToastDescription,\n ToastAction,\n ToastClose,\n}\n\nexport type {\n ToastType,\n ToastOptions,\n ToasterPosition,\n ToasterProps\n}"]}
@@ -0,0 +1,17 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { Toggle } from '@base-ui/react/toggle';
3
+ import { ToggleGroup as ToggleGroup$1 } from '@base-ui/react/toggle-group';
4
+ import { VariantProps } from 'class-variance-authority';
5
+ import { toggleVariants } from './toggle.js';
6
+ import 'class-variance-authority/types';
7
+ import 'react';
8
+
9
+ type ToggleGroupProps = ToggleGroup$1.Props & VariantProps<typeof toggleVariants> & {
10
+ spacing?: number;
11
+ orientation?: "horizontal" | "vertical";
12
+ };
13
+ type ToggleGroupItemProps = Toggle.Props & VariantProps<typeof toggleVariants>;
14
+ declare function ToggleGroup({ className, variant, size, spacing, orientation, children, ...props }: ToggleGroupProps): react_jsx_runtime.JSX.Element;
15
+ declare function ToggleGroupItem({ className, children, variant, size, ...props }: ToggleGroupItemProps): react_jsx_runtime.JSX.Element;
16
+
17
+ export { ToggleGroup, ToggleGroupItem };
@@ -0,0 +1,78 @@
1
+ import { toggleVariants } from './chunk-YTSQQTSF.js';
2
+ import { cn } from './chunk-76UQO56T.js';
3
+ import * as React from 'react';
4
+ import { Toggle } from '@base-ui/react/toggle';
5
+ import { ToggleGroup as ToggleGroup$1 } from '@base-ui/react/toggle-group';
6
+ import { jsx } from 'react/jsx-runtime';
7
+
8
+ var ToggleGroupContext = React.createContext({
9
+ size: "default",
10
+ variant: "default",
11
+ spacing: 0,
12
+ orientation: "horizontal"
13
+ });
14
+ function ToggleGroup({
15
+ className,
16
+ variant,
17
+ size,
18
+ spacing = 0,
19
+ orientation = "horizontal",
20
+ children,
21
+ ...props
22
+ }) {
23
+ return /* @__PURE__ */ jsx(
24
+ ToggleGroup$1,
25
+ {
26
+ "data-slot": "toggle-group",
27
+ "data-variant": variant,
28
+ "data-size": size,
29
+ "data-spacing": spacing,
30
+ "data-orientation": orientation,
31
+ style: { "--gap": spacing },
32
+ className: cn(
33
+ "group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] rounded-lg data-[orientation=vertical]:flex-col data-[orientation=vertical]:items-stretch data-[size=sm]:rounded-[min(var(--radius-md),10px)]",
34
+ className
35
+ ),
36
+ ...props,
37
+ children: /* @__PURE__ */ jsx(
38
+ ToggleGroupContext.Provider,
39
+ {
40
+ value: { variant, size, spacing, orientation },
41
+ children
42
+ }
43
+ )
44
+ }
45
+ );
46
+ }
47
+ function ToggleGroupItem({
48
+ className,
49
+ children,
50
+ variant = "default",
51
+ size = "default",
52
+ ...props
53
+ }) {
54
+ const context = React.useContext(ToggleGroupContext);
55
+ return /* @__PURE__ */ jsx(
56
+ Toggle,
57
+ {
58
+ "data-slot": "toggle-group-item",
59
+ "data-variant": context.variant || variant,
60
+ "data-size": context.size || size,
61
+ "data-spacing": context.spacing,
62
+ className: cn(
63
+ "shrink-0 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 focus:z-10 focus-visible:z-10 group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:first:rounded-l-lg group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:first:rounded-t-lg group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:last:rounded-r-lg group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:last:rounded-b-lg group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t",
64
+ toggleVariants({
65
+ variant: context.variant || variant,
66
+ size: context.size || size
67
+ }),
68
+ className
69
+ ),
70
+ ...props,
71
+ children
72
+ }
73
+ );
74
+ }
75
+
76
+ export { ToggleGroup, ToggleGroupItem };
77
+ //# sourceMappingURL=toggle-group.js.map
78
+ //# sourceMappingURL=toggle-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/toggle-group.tsx"],"names":["ToggleGroupPrimitive","TogglePrimitive"],"mappings":";;;;;;;AAwBA,IAAM,qBAA2B,KAAA,CAAA,aAAA,CAAuC;AAAA,EACtE,IAAA,EAAM,SAAA;AAAA,EACN,OAAA,EAAS,SAAA;AAAA,EACT,OAAA,EAAS,CAAA;AAAA,EACT,WAAA,EAAa;AACf,CAAC,CAAA;AAED,SAAS,WAAA,CAAY;AAAA,EACnB,SAAA;AAAA,EACA,OAAA;AAAA,EACA,IAAA;AAAA,EACA,OAAA,GAAU,CAAA;AAAA,EACV,WAAA,GAAc,YAAA;AAAA,EACd,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAqB;AACnB,EAAA,uBACE,GAAA;AAAA,IAACA,aAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,cAAA,EAAc,OAAA;AAAA,MACd,WAAA,EAAW,IAAA;AAAA,MACX,cAAA,EAAc,OAAA;AAAA,MACd,kBAAA,EAAkB,WAAA;AAAA,MAClB,KAAA,EAAO,EAAE,OAAA,EAAS,OAAA,EAAQ;AAAA,MAC1B,SAAA,EAAW,EAAA;AAAA,QACT,+NAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEJ,QAAA,kBAAA,GAAA;AAAA,QAAC,kBAAA,CAAmB,QAAA;AAAA,QAAnB;AAAA,UACC,KAAA,EAAO,EAAE,OAAA,EAAS,IAAA,EAAM,SAAS,WAAA,EAAY;AAAA,UAE5C;AAAA;AAAA;AACH;AAAA,GACF;AAEJ;AAEA,SAAS,eAAA,CAAgB;AAAA,EACvB,SAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA,GAAU,SAAA;AAAA,EACV,IAAA,GAAO,SAAA;AAAA,EACP,GAAG;AACL,CAAA,EAAyB;AACvB,EAAA,MAAM,OAAA,GAAgB,iBAAW,kBAAkB,CAAA;AAEnD,EAAA,uBACE,GAAA;AAAA,IAACC,MAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,mBAAA;AAAA,MACV,cAAA,EAAc,QAAQ,OAAA,IAAW,OAAA;AAAA,MACjC,WAAA,EAAW,QAAQ,IAAA,IAAQ,IAAA;AAAA,MAC3B,gBAAc,OAAA,CAAQ,OAAA;AAAA,MACtB,SAAA,EAAW,EAAA;AAAA,QACT,o2BAAA;AAAA,QACA,cAAA,CAAe;AAAA,UACb,OAAA,EAAS,QAAQ,OAAA,IAAW,OAAA;AAAA,UAC5B,IAAA,EAAM,QAAQ,IAAA,IAAQ;AAAA,SACvB,CAAA;AAAA,QACD;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH;AAAA;AAAA,GACH;AAEJ","file":"toggle-group.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { Toggle as TogglePrimitive } from \"@base-ui/react/toggle\"\nimport { ToggleGroup as ToggleGroupPrimitive } from \"@base-ui/react/toggle-group\"\nimport { type VariantProps } from \"class-variance-authority\"\n\nimport { toggleVariants } from \"./toggle\"\nimport { cn } from \"./lib/utils\"\n\ntype ToggleGroupContextValue = VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n}\n\ntype ToggleGroupProps = ToggleGroupPrimitive.Props &\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n orientation?: \"horizontal\" | \"vertical\"\n }\n\ntype ToggleGroupItemProps = TogglePrimitive.Props &\n VariantProps<typeof toggleVariants>\n\nconst ToggleGroupContext = React.createContext<ToggleGroupContextValue>({\n size: \"default\",\n variant: \"default\",\n spacing: 0,\n orientation: \"horizontal\",\n})\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n spacing = 0,\n orientation = \"horizontal\",\n children,\n ...props\n}: ToggleGroupProps) {\n return (\n <ToggleGroupPrimitive\n data-slot=\"toggle-group\"\n data-variant={variant}\n data-size={size}\n data-spacing={spacing}\n data-orientation={orientation}\n style={{ \"--gap\": spacing } as React.CSSProperties}\n className={cn(\n \"group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] rounded-lg data-[orientation=vertical]:flex-col data-[orientation=vertical]:items-stretch data-[size=sm]:rounded-[min(var(--radius-md),10px)]\",\n className\n )}\n {...props}\n >\n <ToggleGroupContext.Provider\n value={{ variant, size, spacing, orientation }}\n >\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive>\n )\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant = \"default\",\n size = \"default\",\n ...props\n}: ToggleGroupItemProps) {\n const context = React.useContext(ToggleGroupContext)\n\n return (\n <TogglePrimitive\n data-slot=\"toggle-group-item\"\n data-variant={context.variant || variant}\n data-size={context.size || size}\n data-spacing={context.spacing}\n className={cn(\n \"shrink-0 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 focus:z-10 focus-visible:z-10 group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:first:rounded-l-lg group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:first:rounded-t-lg group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:last:rounded-r-lg group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:last:rounded-b-lg group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t\",\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n className\n )}\n {...props}\n >\n {children}\n </TogglePrimitive>\n )\n}\n\nexport { ToggleGroup, ToggleGroupItem }\n"]}
@@ -0,0 +1,14 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as class_variance_authority_types from 'class-variance-authority/types';
3
+ import * as React from 'react';
4
+ import { Toggle as Toggle$1 } from '@base-ui/react/toggle';
5
+ import { VariantProps } from 'class-variance-authority';
6
+
7
+ declare const toggleVariants: (props?: ({
8
+ variant?: "default" | "outline" | null | undefined;
9
+ size?: "default" | "sm" | "lg" | null | undefined;
10
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
11
+ type ToggleProps = React.ComponentProps<typeof Toggle$1> & VariantProps<typeof toggleVariants>;
12
+ declare function Toggle({ className, variant, size, ...props }: ToggleProps): react_jsx_runtime.JSX.Element;
13
+
14
+ export { Toggle, toggleVariants };
package/dist/toggle.js ADDED
@@ -0,0 +1,4 @@
1
+ export { Toggle, toggleVariants } from './chunk-YTSQQTSF.js';
2
+ import './chunk-76UQO56T.js';
3
+ //# sourceMappingURL=toggle.js.map
4
+ //# sourceMappingURL=toggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"toggle.js"}
@@ -0,0 +1,21 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { Tooltip as Tooltip$1 } from '@base-ui/react/tooltip';
4
+
5
+ type TooltipProviderProps = React.ComponentProps<typeof Tooltip$1.Provider>;
6
+ type TooltipProps = React.ComponentProps<typeof Tooltip$1.Root>;
7
+ type TooltipTriggerProps = React.ComponentProps<typeof Tooltip$1.Trigger>;
8
+ type TooltipContentProps = React.ComponentProps<typeof Tooltip$1.Popup> & {
9
+ side?: React.ComponentProps<typeof Tooltip$1.Positioner>["side"];
10
+ sideOffset?: React.ComponentProps<typeof Tooltip$1.Positioner>["sideOffset"];
11
+ align?: React.ComponentProps<typeof Tooltip$1.Positioner>["align"];
12
+ alignOffset?: React.ComponentProps<typeof Tooltip$1.Positioner>["alignOffset"];
13
+ anchor?: React.ComponentProps<typeof Tooltip$1.Positioner>["anchor"];
14
+ positionerClassName?: string;
15
+ };
16
+ declare function TooltipProvider({ delay, ...props }: TooltipProviderProps): react_jsx_runtime.JSX.Element;
17
+ declare function Tooltip(props: TooltipProps): react_jsx_runtime.JSX.Element;
18
+ declare function TooltipTrigger({ children, ...props }: TooltipTriggerProps): react_jsx_runtime.JSX.Element;
19
+ declare function TooltipContent({ className, positionerClassName, side, sideOffset, align, alignOffset, anchor, children, ...props }: TooltipContentProps): react_jsx_runtime.JSX.Element;
20
+
21
+ export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
@@ -0,0 +1,66 @@
1
+ import { cn } from './chunk-76UQO56T.js';
2
+ import * as React from 'react';
3
+ import { Tooltip as Tooltip$1 } from '@base-ui/react/tooltip';
4
+ import { jsx } from 'react/jsx-runtime';
5
+
6
+ function TooltipProvider({ delay = 0, ...props }) {
7
+ return /* @__PURE__ */ jsx(
8
+ Tooltip$1.Provider,
9
+ {
10
+ "data-slot": "tooltip-provider",
11
+ delay,
12
+ ...props
13
+ }
14
+ );
15
+ }
16
+ function Tooltip(props) {
17
+ return /* @__PURE__ */ jsx(Tooltip$1.Root, { "data-slot": "tooltip", ...props });
18
+ }
19
+ function TooltipTrigger({ children, ...props }) {
20
+ if (React.isValidElement(children)) {
21
+ return /* @__PURE__ */ jsx(Tooltip$1.Trigger, { "data-slot": "tooltip-trigger", render: children, ...props });
22
+ }
23
+ if (process.env.NODE_ENV === "development" && children != null) {
24
+ console.warn("[TooltipTrigger] Children must be a valid React element, not raw text. Wrap text in a <span> or <button>.");
25
+ }
26
+ return /* @__PURE__ */ jsx(Tooltip$1.Trigger, { "data-slot": "tooltip-trigger", ...props, children });
27
+ }
28
+ function TooltipContent({
29
+ className,
30
+ positionerClassName,
31
+ side = "top",
32
+ sideOffset = 4,
33
+ align = "center",
34
+ alignOffset = 0,
35
+ anchor,
36
+ children,
37
+ ...props
38
+ }) {
39
+ return /* @__PURE__ */ jsx(Tooltip$1.Portal, { children: /* @__PURE__ */ jsx(
40
+ Tooltip$1.Positioner,
41
+ {
42
+ anchor,
43
+ align,
44
+ alignOffset,
45
+ side,
46
+ sideOffset,
47
+ className: cn("isolate z-50", positionerClassName),
48
+ children: /* @__PURE__ */ jsx(
49
+ Tooltip$1.Popup,
50
+ {
51
+ "data-slot": "tooltip-content",
52
+ className: cn(
53
+ "data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-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 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 bg-foreground text-background z-50 w-fit max-w-xs origin-(--transform-origin) rounded-md px-3 py-1.5 text-xs",
54
+ className
55
+ ),
56
+ ...props,
57
+ children
58
+ }
59
+ )
60
+ }
61
+ ) });
62
+ }
63
+
64
+ export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
65
+ //# sourceMappingURL=tooltip.js.map
66
+ //# sourceMappingURL=tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/tooltip.tsx"],"names":["TooltipPrimitive"],"mappings":";;;;;AAsBA,SAAS,gBAAgB,EAAE,KAAA,GAAQ,CAAA,EAAG,GAAG,OAAM,EAAyB;AACtE,EAAA,uBACE,GAAA;AAAA,IAACA,SAAA,CAAiB,QAAA;AAAA,IAAjB;AAAA,MACC,WAAA,EAAU,kBAAA;AAAA,MACV,KAAA;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,QAAQ,KAAA,EAAqB;AACpC,EAAA,2BAAQA,SAAA,CAAiB,IAAA,EAAjB,EAAsB,WAAA,EAAU,SAAA,EAAW,GAAG,KAAA,EAAO,CAAA;AAC/D;AAEA,SAAS,cAAA,CAAe,EAAE,QAAA,EAAU,GAAG,OAAM,EAAwB;AAGnE,EAAA,IAAU,KAAA,CAAA,cAAA,CAAe,QAAQ,CAAA,EAAG;AAClC,IAAA,uBAAO,GAAA,CAACA,UAAiB,OAAA,EAAjB,EAAyB,aAAU,iBAAA,EAAkB,MAAA,EAAQ,QAAA,EAAW,GAAG,KAAA,EAAO,CAAA;AAAA,EAC5F;AAGA,EAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,aAAA,IAAiB,YAAY,IAAA,EAAM;AAC9D,IAAA,OAAA,CAAQ,KAAK,2GAA2G,CAAA;AAAA,EAC1H;AAEA,EAAA,uBAAO,GAAA,CAACA,UAAiB,OAAA,EAAjB,EAAyB,aAAU,iBAAA,EAAmB,GAAG,OAAQ,QAAA,EAAS,CAAA;AACpF;AAEA,SAAS,cAAA,CAAe;AAAA,EACtB,SAAA;AAAA,EACA,mBAAA;AAAA,EACA,IAAA,GAAO,KAAA;AAAA,EACP,UAAA,GAAa,CAAA;AAAA,EACb,KAAA,GAAQ,QAAA;AAAA,EACR,WAAA,GAAc,CAAA;AAAA,EACd,MAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwB;AACtB,EAAA,uBACE,GAAA,CAACA,SAAA,CAAiB,MAAA,EAAjB,EACC,QAAA,kBAAA,GAAA;AAAA,IAACA,SAAA,CAAiB,UAAA;AAAA,IAAjB;AAAA,MACC,MAAA;AAAA,MACA,KAAA;AAAA,MACA,WAAA;AAAA,MACA,IAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,cAAA,EAAgB,mBAAmB,CAAA;AAAA,MAEjD,QAAA,kBAAA,GAAA;AAAA,QAACA,SAAA,CAAiB,KAAA;AAAA,QAAjB;AAAA,UACC,WAAA,EAAU,iBAAA;AAAA,UACV,SAAA,EAAW,EAAA;AAAA,YACT,wlBAAA;AAAA,YACA;AAAA,WACF;AAAA,UACC,GAAG,KAAA;AAAA,UAEH;AAAA;AAAA;AACH;AAAA,GACF,EACF,CAAA;AAEJ","file":"tooltip.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { Tooltip as TooltipPrimitive } from \"@base-ui/react/tooltip\"\n\nimport { cn } from \"./lib/utils\"\n\ntype TooltipProviderProps = React.ComponentProps<typeof TooltipPrimitive.Provider>\n\ntype TooltipProps = React.ComponentProps<typeof TooltipPrimitive.Root>\n\ntype TooltipTriggerProps = React.ComponentProps<typeof TooltipPrimitive.Trigger>\n\ntype TooltipContentProps = React.ComponentProps<typeof TooltipPrimitive.Popup> & {\n side?: React.ComponentProps<typeof TooltipPrimitive.Positioner>[\"side\"];\n sideOffset?: React.ComponentProps<typeof TooltipPrimitive.Positioner>[\"sideOffset\"];\n align?: React.ComponentProps<typeof TooltipPrimitive.Positioner>[\"align\"];\n alignOffset?: React.ComponentProps<typeof TooltipPrimitive.Positioner>[\"alignOffset\"];\n anchor?: React.ComponentProps<typeof TooltipPrimitive.Positioner>[\"anchor\"];\n positionerClassName?: string;\n}\n\nfunction TooltipProvider({ delay = 0, ...props }: TooltipProviderProps) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delay={delay}\n {...props}\n />\n )\n}\n\nfunction Tooltip(props: TooltipProps) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n}\n\nfunction TooltipTrigger({ children, ...props }: TooltipTriggerProps) {\n // If children is a valid React element, use it as the render target\n // This avoids nested button issues when wrapping Button components\n if (React.isValidElement(children)) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" render={children} {...props} />\n }\n\n // Raw text/primitives not supported - warn in development\n if (process.env.NODE_ENV === \"development\" && children != null) {\n console.warn(\"[TooltipTrigger] Children must be a valid React element, not raw text. Wrap text in a <span> or <button>.\")\n }\n\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props}>{children}</TooltipPrimitive.Trigger>\n}\n\nfunction TooltipContent({\n className,\n positionerClassName,\n side = \"top\",\n sideOffset = 4,\n align = \"center\",\n alignOffset = 0,\n anchor,\n children,\n ...props\n}: TooltipContentProps) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Positioner\n anchor={anchor}\n align={align}\n alignOffset={alignOffset}\n side={side}\n sideOffset={sideOffset}\n className={cn(\"isolate z-50\", positionerClassName)}\n >\n <TooltipPrimitive.Popup\n data-slot=\"tooltip-content\"\n className={cn(\n \"data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-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 data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 bg-foreground text-background z-50 w-fit max-w-xs origin-(--transform-origin) rounded-md px-3 py-1.5 text-xs\",\n className,\n )}\n {...props}\n >\n {children}\n </TooltipPrimitive.Popup>\n </TooltipPrimitive.Positioner>\n </TooltipPrimitive.Portal>\n )\n}\n\nexport {\n Tooltip,\n TooltipTrigger,\n TooltipContent,\n TooltipProvider,\n}\n"]}
package/package.json CHANGED
@@ -1,10 +1,14 @@
1
1
  {
2
2
  "name": "@waveso/ui",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "Wave UI component library built on Base UI and Tailwind CSS",
5
5
  "type": "module",
6
6
  "sideEffects": false,
7
7
  "license": "MIT",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/wavedotso/wave-ui"
11
+ },
8
12
  "exports": {
9
13
  "./package.json": "./package.json",
10
14
  "./*": {
@@ -1,41 +0,0 @@
1
- import { forwardRef } from 'react';
2
- import { jsxs, jsx } from 'react/jsx-runtime';
3
-
4
- var SVG_BASE = {
5
- xmlns: "http://www.w3.org/2000/svg",
6
- width: 24,
7
- height: 24,
8
- viewBox: "0 0 24 24",
9
- fill: "none",
10
- stroke: "currentColor",
11
- strokeWidth: 2,
12
- strokeLinecap: "round",
13
- strokeLinejoin: "round"
14
- };
15
- function CheckIcon(props) {
16
- return /* @__PURE__ */ jsx("svg", { ...SVG_BASE, ...props, children: /* @__PURE__ */ jsx("path", { d: "M20 6 9 17l-5-5" }) });
17
- }
18
- function CloseIcon(props) {
19
- return /* @__PURE__ */ jsxs("svg", { ...SVG_BASE, ...props, children: [
20
- /* @__PURE__ */ jsx("path", { d: "M18 6 6 18" }),
21
- /* @__PURE__ */ jsx("path", { d: "m6 6 12 12" })
22
- ] });
23
- }
24
- var LoaderIcon = forwardRef(
25
- function LoaderIcon2(props, ref) {
26
- return /* @__PURE__ */ jsxs("svg", { ...SVG_BASE, ref, ...props, children: [
27
- /* @__PURE__ */ jsx("path", { d: "M12 2v4" }),
28
- /* @__PURE__ */ jsx("path", { d: "m16.2 7.8 2.9-2.9" }),
29
- /* @__PURE__ */ jsx("path", { d: "M18 12h4" }),
30
- /* @__PURE__ */ jsx("path", { d: "m16.2 16.2 2.9 2.9" }),
31
- /* @__PURE__ */ jsx("path", { d: "M12 18v4" }),
32
- /* @__PURE__ */ jsx("path", { d: "m4.9 19.1 2.9-2.9" }),
33
- /* @__PURE__ */ jsx("path", { d: "M2 12h4" }),
34
- /* @__PURE__ */ jsx("path", { d: "m4.9 4.9 2.9 2.9" })
35
- ] });
36
- }
37
- );
38
-
39
- export { CheckIcon, CloseIcon, LoaderIcon };
40
- //# sourceMappingURL=chunk-L3UIJEIQ.js.map
41
- //# sourceMappingURL=chunk-L3UIJEIQ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/lib/internal-icons.tsx"],"names":["LoaderIcon"],"mappings":";;;AAUA,IAAM,QAAA,GAAW;AAAA,EACf,KAAA,EAAO,4BAAA;AAAA,EACP,KAAA,EAAO,EAAA;AAAA,EACP,MAAA,EAAQ,EAAA;AAAA,EACR,OAAA,EAAS,WAAA;AAAA,EACT,IAAA,EAAM,MAAA;AAAA,EACN,MAAA,EAAQ,cAAA;AAAA,EACR,WAAA,EAAa,CAAA;AAAA,EACb,aAAA,EAAe,OAAA;AAAA,EACf,cAAA,EAAgB;AAClB,CAAA;AA2CO,SAAS,UAAU,KAAA,EAAkB;AAC1C,EAAA,uBACE,GAAA,CAAC,KAAA,EAAA,EAAK,GAAG,QAAA,EAAW,GAAG,OACrB,QAAA,kBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,iBAAA,EAAkB,CAAA,EAC5B,CAAA;AAEJ;AAEO,SAAS,UAAU,KAAA,EAAkB;AAC1C,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAK,GAAG,QAAA,EAAW,GAAG,KAAA,EACrB,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,GAAE,YAAA,EAAa,CAAA;AAAA,oBACrB,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,YAAA,EAAa;AAAA,GAAA,EACvB,CAAA;AAEJ;AAqDO,IAAM,UAAA,GAAa,UAAA;AAAA,EACxB,SAASA,WAAAA,CAAW,KAAA,EAAO,GAAA,EAAK;AAC9B,IAAA,4BACG,KAAA,EAAA,EAAK,GAAG,QAAA,EAAU,GAAA,EAAW,GAAG,KAAA,EAC/B,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,GAAE,SAAA,EAAU,CAAA;AAAA,sBAClB,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,mBAAA,EAAoB,CAAA;AAAA,sBAC5B,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,UAAA,EAAW,CAAA;AAAA,sBACnB,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,oBAAA,EAAqB,CAAA;AAAA,sBAC7B,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,UAAA,EAAW,CAAA;AAAA,sBACnB,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,mBAAA,EAAoB,CAAA;AAAA,sBAC5B,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,SAAA,EAAU,CAAA;AAAA,sBAClB,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,kBAAA,EAAmB;AAAA,KAAA,EAC7B,CAAA;AAAA,EAEJ;AACF","file":"chunk-L3UIJEIQ.js","sourcesContent":["/**\n * Internal-only SVG icons used by wave-ui components.\n *\n * NOT a public entry point — bundled into shared chunks via tsup splitting.\n */\n\nimport { forwardRef } from 'react';\n\ntype IconProps = React.SVGProps<SVGSVGElement>;\n\nconst SVG_BASE = {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n} as const;\n\n// ---------------------------------------------------------------------------\n// Navigation chevrons\n// ---------------------------------------------------------------------------\n\nexport function ChevronDownIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n );\n}\n\nexport function ChevronUpIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <path d=\"m18 15-6-6-6 6\" />\n </svg>\n );\n}\n\nexport function ChevronLeftIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n );\n}\n\n\nexport function ChevronRightIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Actions\n// ---------------------------------------------------------------------------\n\nexport function CheckIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n );\n}\n\nexport function CloseIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n );\n}\n\nexport function MinusIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <path d=\"M5 12h14\" />\n </svg>\n );\n}\n\nexport function EllipsisIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"1\" />\n <circle cx=\"19\" cy=\"12\" r=\"1\" />\n <circle cx=\"5\" cy=\"12\" r=\"1\" />\n </svg>\n );\n}\n\nexport function EllipsisVerticalIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"1\" />\n <circle cx=\"12\" cy=\"5\" r=\"1\" />\n <circle cx=\"12\" cy=\"19\" r=\"1\" />\n </svg>\n );\n}\n\nexport function ChevronsUpDownIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <path d=\"m7 15 5 5 5-5\" />\n <path d=\"m7 9 5-5 5 5\" />\n </svg>\n );\n}\n\n// ---------------------------------------------------------------------------\n// UI chrome\n// ---------------------------------------------------------------------------\n\nexport function SidebarPanelIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <rect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\" />\n <path d=\"M9 3v18\" />\n </svg>\n );\n}\n\n/** `forwardRef` because `Spinner` exposes this as `React.ComponentProps<\"svg\">`. */\nexport const LoaderIcon = forwardRef<SVGSVGElement, IconProps>(\n function LoaderIcon(props, ref) {\n return (\n <svg {...SVG_BASE} ref={ref} {...props}>\n <path d=\"M12 2v4\" />\n <path d=\"m16.2 7.8 2.9-2.9\" />\n <path d=\"M18 12h4\" />\n <path d=\"m16.2 16.2 2.9 2.9\" />\n <path d=\"M12 18v4\" />\n <path d=\"m4.9 19.1 2.9-2.9\" />\n <path d=\"M2 12h4\" />\n <path d=\"m4.9 4.9 2.9 2.9\" />\n </svg>\n );\n },\n);\n\n// ---------------------------------------------------------------------------\n// Toast status icons\n// ---------------------------------------------------------------------------\n\nexport function AlertTriangleIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\" />\n <path d=\"M12 9v4\" />\n <path d=\"M12 17h.01\" />\n </svg>\n );\n}\n\nexport function SuccessCircleIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <path d=\"M21.801 10A10 10 0 1 1 17 3.335\" />\n <path d=\"m9 11 3 3L22 4\" />\n </svg>\n );\n}\n\nexport function InfoCircleIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 16v-4\" />\n <path d=\"M12 8h.01\" />\n </svg>\n );\n}\n\nexport function ErrorCircleIcon(props: IconProps) {\n return (\n <svg {...SVG_BASE} {...props}>\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"m15 9-6 6\" />\n <path d=\"m9 9 6 6\" />\n </svg>\n );\n}\n"]}