@snapcall/design-system 1.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.
package/dist/index.mjs ADDED
@@ -0,0 +1,577 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ var __objRest = (source, exclude) => {
21
+ var target = {};
22
+ for (var prop in source)
23
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
+ target[prop] = source[prop];
25
+ if (source != null && __getOwnPropSymbols)
26
+ for (var prop of __getOwnPropSymbols(source)) {
27
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
+ target[prop] = source[prop];
29
+ }
30
+ return target;
31
+ };
32
+
33
+ // src/components/Button/Button.tsx
34
+ import { useButton, useFocusRing } from "react-aria";
35
+
36
+ // node_modules/@react-aria/utils/dist/import.mjs
37
+ import $12uGp$react, { useState as $12uGp$useState, useRef as $12uGp$useRef, useCallback as $12uGp$useCallback, useEffect as $12uGp$useEffect } from "react";
38
+ var $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c = typeof window !== "undefined" ? (0, $12uGp$react).useLayoutEffect : () => {
39
+ };
40
+ var $bbed8b41f857bcc0$var$transitionsByElement = /* @__PURE__ */ new Map();
41
+ var $bbed8b41f857bcc0$var$transitionCallbacks = /* @__PURE__ */ new Set();
42
+ function $bbed8b41f857bcc0$var$setupGlobalEvents() {
43
+ if (typeof window === "undefined")
44
+ return;
45
+ let onTransitionStart = (e) => {
46
+ let transitions = $bbed8b41f857bcc0$var$transitionsByElement.get(e.target);
47
+ if (!transitions) {
48
+ transitions = /* @__PURE__ */ new Set();
49
+ $bbed8b41f857bcc0$var$transitionsByElement.set(e.target, transitions);
50
+ e.target.addEventListener("transitioncancel", onTransitionEnd);
51
+ }
52
+ transitions.add(e.propertyName);
53
+ };
54
+ let onTransitionEnd = (e) => {
55
+ let properties = $bbed8b41f857bcc0$var$transitionsByElement.get(e.target);
56
+ if (!properties)
57
+ return;
58
+ properties.delete(e.propertyName);
59
+ if (properties.size === 0) {
60
+ e.target.removeEventListener("transitioncancel", onTransitionEnd);
61
+ $bbed8b41f857bcc0$var$transitionsByElement.delete(e.target);
62
+ }
63
+ if ($bbed8b41f857bcc0$var$transitionsByElement.size === 0) {
64
+ for (let cb of $bbed8b41f857bcc0$var$transitionCallbacks)
65
+ cb();
66
+ $bbed8b41f857bcc0$var$transitionCallbacks.clear();
67
+ }
68
+ };
69
+ document.body.addEventListener("transitionrun", onTransitionStart);
70
+ document.body.addEventListener("transitionend", onTransitionEnd);
71
+ }
72
+ if (typeof document !== "undefined") {
73
+ if (document.readyState !== "loading")
74
+ $bbed8b41f857bcc0$var$setupGlobalEvents();
75
+ else
76
+ document.addEventListener("DOMContentLoaded", $bbed8b41f857bcc0$var$setupGlobalEvents);
77
+ }
78
+ var $5df64b3807dc15ee$var$visualViewport = typeof window !== "undefined" && window.visualViewport;
79
+ function $c87311424ea30a05$var$testUserAgent(re) {
80
+ var _window_navigator_userAgentData;
81
+ if (typeof window === "undefined" || window.navigator == null)
82
+ return false;
83
+ return ((_window_navigator_userAgentData = window.navigator["userAgentData"]) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.brands.some((brand) => re.test(brand.brand))) || re.test(window.navigator.userAgent);
84
+ }
85
+ function $c87311424ea30a05$var$testPlatform(re) {
86
+ var _window_navigator_userAgentData;
87
+ return typeof window !== "undefined" && window.navigator != null ? re.test(((_window_navigator_userAgentData = window.navigator["userAgentData"]) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.platform) || window.navigator.platform) : false;
88
+ }
89
+ function $c87311424ea30a05$export$9ac100e40613ea10() {
90
+ return $c87311424ea30a05$var$testPlatform(/^Mac/i);
91
+ }
92
+ function $c87311424ea30a05$export$a11b0059900ceec8() {
93
+ return $c87311424ea30a05$var$testUserAgent(/Android/i);
94
+ }
95
+ function $6a7db85432448f7f$export$60278871457622de(event) {
96
+ if (event.mozInputSource === 0 && event.isTrusted)
97
+ return true;
98
+ if ((0, $c87311424ea30a05$export$a11b0059900ceec8)() && event.pointerType)
99
+ return event.type === "click" && event.buttons === 1;
100
+ return event.detail === 0 && !event.pointerType;
101
+ }
102
+
103
+ // node_modules/@react-aria/interactions/dist/import.mjs
104
+ import $bx7SL$react, { useRef as $bx7SL$useRef, useContext as $bx7SL$useContext, useState as $bx7SL$useState, useMemo as $bx7SL$useMemo, useEffect as $bx7SL$useEffect, useCallback as $bx7SL$useCallback } from "react";
105
+ var $ae1eeba8b9eafd08$export$5165eccb35aaadb5 = (0, $bx7SL$react).createContext(null);
106
+ $ae1eeba8b9eafd08$export$5165eccb35aaadb5.displayName = "PressResponderContext";
107
+ var $507fabe10e71c6fb$var$currentModality = null;
108
+ var $507fabe10e71c6fb$var$changeHandlers = /* @__PURE__ */ new Set();
109
+ var $507fabe10e71c6fb$var$hasSetupGlobalListeners = false;
110
+ var $507fabe10e71c6fb$var$hasEventBeforeFocus = false;
111
+ var $507fabe10e71c6fb$var$hasBlurredWindowRecently = false;
112
+ function $507fabe10e71c6fb$var$triggerChangeHandlers(modality, e) {
113
+ for (let handler of $507fabe10e71c6fb$var$changeHandlers)
114
+ handler(modality, e);
115
+ }
116
+ function $507fabe10e71c6fb$var$isValidKey(e) {
117
+ return !(e.metaKey || !(0, $c87311424ea30a05$export$9ac100e40613ea10)() && e.altKey || e.ctrlKey || e.key === "Control" || e.key === "Shift" || e.key === "Meta");
118
+ }
119
+ function $507fabe10e71c6fb$var$handleKeyboardEvent(e) {
120
+ $507fabe10e71c6fb$var$hasEventBeforeFocus = true;
121
+ if ($507fabe10e71c6fb$var$isValidKey(e)) {
122
+ $507fabe10e71c6fb$var$currentModality = "keyboard";
123
+ $507fabe10e71c6fb$var$triggerChangeHandlers("keyboard", e);
124
+ }
125
+ }
126
+ function $507fabe10e71c6fb$var$handlePointerEvent(e) {
127
+ $507fabe10e71c6fb$var$currentModality = "pointer";
128
+ if (e.type === "mousedown" || e.type === "pointerdown") {
129
+ $507fabe10e71c6fb$var$hasEventBeforeFocus = true;
130
+ $507fabe10e71c6fb$var$triggerChangeHandlers("pointer", e);
131
+ }
132
+ }
133
+ function $507fabe10e71c6fb$var$handleClickEvent(e) {
134
+ if ((0, $6a7db85432448f7f$export$60278871457622de)(e)) {
135
+ $507fabe10e71c6fb$var$hasEventBeforeFocus = true;
136
+ $507fabe10e71c6fb$var$currentModality = "virtual";
137
+ }
138
+ }
139
+ function $507fabe10e71c6fb$var$handleFocusEvent(e) {
140
+ if (e.target === window || e.target === document)
141
+ return;
142
+ if (!$507fabe10e71c6fb$var$hasEventBeforeFocus && !$507fabe10e71c6fb$var$hasBlurredWindowRecently) {
143
+ $507fabe10e71c6fb$var$currentModality = "virtual";
144
+ $507fabe10e71c6fb$var$triggerChangeHandlers("virtual", e);
145
+ }
146
+ $507fabe10e71c6fb$var$hasEventBeforeFocus = false;
147
+ $507fabe10e71c6fb$var$hasBlurredWindowRecently = false;
148
+ }
149
+ function $507fabe10e71c6fb$var$handleWindowBlur() {
150
+ $507fabe10e71c6fb$var$hasEventBeforeFocus = false;
151
+ $507fabe10e71c6fb$var$hasBlurredWindowRecently = true;
152
+ }
153
+ function $507fabe10e71c6fb$var$setupGlobalFocusEvents() {
154
+ if (typeof window === "undefined" || $507fabe10e71c6fb$var$hasSetupGlobalListeners)
155
+ return;
156
+ let focus = HTMLElement.prototype.focus;
157
+ HTMLElement.prototype.focus = function() {
158
+ $507fabe10e71c6fb$var$hasEventBeforeFocus = true;
159
+ focus.apply(this, arguments);
160
+ };
161
+ document.addEventListener("keydown", $507fabe10e71c6fb$var$handleKeyboardEvent, true);
162
+ document.addEventListener("keyup", $507fabe10e71c6fb$var$handleKeyboardEvent, true);
163
+ document.addEventListener("click", $507fabe10e71c6fb$var$handleClickEvent, true);
164
+ window.addEventListener("focus", $507fabe10e71c6fb$var$handleFocusEvent, true);
165
+ window.addEventListener("blur", $507fabe10e71c6fb$var$handleWindowBlur, false);
166
+ if (typeof PointerEvent !== "undefined") {
167
+ document.addEventListener("pointerdown", $507fabe10e71c6fb$var$handlePointerEvent, true);
168
+ document.addEventListener("pointermove", $507fabe10e71c6fb$var$handlePointerEvent, true);
169
+ document.addEventListener("pointerup", $507fabe10e71c6fb$var$handlePointerEvent, true);
170
+ } else {
171
+ document.addEventListener("mousedown", $507fabe10e71c6fb$var$handlePointerEvent, true);
172
+ document.addEventListener("mousemove", $507fabe10e71c6fb$var$handlePointerEvent, true);
173
+ document.addEventListener("mouseup", $507fabe10e71c6fb$var$handlePointerEvent, true);
174
+ }
175
+ $507fabe10e71c6fb$var$hasSetupGlobalListeners = true;
176
+ }
177
+ if (typeof document !== "undefined") {
178
+ if (document.readyState !== "loading")
179
+ $507fabe10e71c6fb$var$setupGlobalFocusEvents();
180
+ else
181
+ document.addEventListener("DOMContentLoaded", $507fabe10e71c6fb$var$setupGlobalFocusEvents);
182
+ }
183
+ var $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = false;
184
+ var $6179b936705e76d3$var$hoverCount = 0;
185
+ function $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents() {
186
+ $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = true;
187
+ setTimeout(() => {
188
+ $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = false;
189
+ }, 50);
190
+ }
191
+ function $6179b936705e76d3$var$handleGlobalPointerEvent(e) {
192
+ if (e.pointerType === "touch")
193
+ $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents();
194
+ }
195
+ function $6179b936705e76d3$var$setupGlobalTouchEvents() {
196
+ if (typeof document === "undefined")
197
+ return;
198
+ if (typeof PointerEvent !== "undefined")
199
+ document.addEventListener("pointerup", $6179b936705e76d3$var$handleGlobalPointerEvent);
200
+ else
201
+ document.addEventListener("touchend", $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents);
202
+ $6179b936705e76d3$var$hoverCount++;
203
+ return () => {
204
+ $6179b936705e76d3$var$hoverCount--;
205
+ if ($6179b936705e76d3$var$hoverCount > 0)
206
+ return;
207
+ if (typeof PointerEvent !== "undefined")
208
+ document.removeEventListener("pointerup", $6179b936705e76d3$var$handleGlobalPointerEvent);
209
+ else
210
+ document.removeEventListener("touchend", $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents);
211
+ };
212
+ }
213
+ function $6179b936705e76d3$export$ae780daf29e6d456(props) {
214
+ let { onHoverStart, onHoverChange, onHoverEnd, isDisabled } = props;
215
+ let [isHovered, setHovered] = (0, $bx7SL$useState)(false);
216
+ let state = (0, $bx7SL$useRef)({
217
+ isHovered: false,
218
+ ignoreEmulatedMouseEvents: false,
219
+ pointerType: "",
220
+ target: null
221
+ }).current;
222
+ (0, $bx7SL$useEffect)($6179b936705e76d3$var$setupGlobalTouchEvents, []);
223
+ let { hoverProps, triggerHoverEnd } = (0, $bx7SL$useMemo)(() => {
224
+ let triggerHoverStart = (event, pointerType) => {
225
+ state.pointerType = pointerType;
226
+ if (isDisabled || pointerType === "touch" || state.isHovered || !event.currentTarget.contains(event.target))
227
+ return;
228
+ state.isHovered = true;
229
+ let target = event.currentTarget;
230
+ state.target = target;
231
+ if (onHoverStart)
232
+ onHoverStart({
233
+ type: "hoverstart",
234
+ target,
235
+ pointerType
236
+ });
237
+ if (onHoverChange)
238
+ onHoverChange(true);
239
+ setHovered(true);
240
+ };
241
+ let triggerHoverEnd2 = (event, pointerType) => {
242
+ state.pointerType = "";
243
+ state.target = null;
244
+ if (pointerType === "touch" || !state.isHovered)
245
+ return;
246
+ state.isHovered = false;
247
+ let target = event.currentTarget;
248
+ if (onHoverEnd)
249
+ onHoverEnd({
250
+ type: "hoverend",
251
+ target,
252
+ pointerType
253
+ });
254
+ if (onHoverChange)
255
+ onHoverChange(false);
256
+ setHovered(false);
257
+ };
258
+ let hoverProps2 = {};
259
+ if (typeof PointerEvent !== "undefined") {
260
+ hoverProps2.onPointerEnter = (e) => {
261
+ if ($6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents && e.pointerType === "mouse")
262
+ return;
263
+ triggerHoverStart(e, e.pointerType);
264
+ };
265
+ hoverProps2.onPointerLeave = (e) => {
266
+ if (!isDisabled && e.currentTarget.contains(e.target))
267
+ triggerHoverEnd2(e, e.pointerType);
268
+ };
269
+ } else {
270
+ hoverProps2.onTouchStart = () => {
271
+ state.ignoreEmulatedMouseEvents = true;
272
+ };
273
+ hoverProps2.onMouseEnter = (e) => {
274
+ if (!state.ignoreEmulatedMouseEvents && !$6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents)
275
+ triggerHoverStart(e, "mouse");
276
+ state.ignoreEmulatedMouseEvents = false;
277
+ };
278
+ hoverProps2.onMouseLeave = (e) => {
279
+ if (!isDisabled && e.currentTarget.contains(e.target))
280
+ triggerHoverEnd2(e, "mouse");
281
+ };
282
+ }
283
+ return {
284
+ hoverProps: hoverProps2,
285
+ triggerHoverEnd: triggerHoverEnd2
286
+ };
287
+ }, [
288
+ onHoverStart,
289
+ onHoverChange,
290
+ onHoverEnd,
291
+ isDisabled,
292
+ state
293
+ ]);
294
+ (0, $bx7SL$useEffect)(() => {
295
+ if (isDisabled)
296
+ triggerHoverEnd({
297
+ currentTarget: state.target
298
+ }, state.pointerType);
299
+ }, [
300
+ isDisabled
301
+ ]);
302
+ return {
303
+ hoverProps,
304
+ isHovered
305
+ };
306
+ }
307
+
308
+ // src/components/Button/Button.tsx
309
+ import { forwardRef } from "react";
310
+ import cn from "classnames";
311
+
312
+ // src/utils/useForwardedRef.ts
313
+ import { useRef, useEffect } from "react";
314
+ function useForwardedRef(ref) {
315
+ const innerRef = useRef(null);
316
+ useEffect(() => {
317
+ if (!ref)
318
+ return;
319
+ if (typeof ref === "function") {
320
+ ref(innerRef.current);
321
+ } else {
322
+ ref.current = innerRef.current;
323
+ }
324
+ });
325
+ return innerRef;
326
+ }
327
+
328
+ // src/components/Button/Button.tsx
329
+ import { jsx } from "react/jsx-runtime";
330
+ var Button = forwardRef(
331
+ function Button2(_a, forwardedRef) {
332
+ var _b = _a, {
333
+ children,
334
+ variant = "primary",
335
+ size = "medium",
336
+ blank = false,
337
+ fullWidth = false,
338
+ form
339
+ } = _b, otherProps = __objRest(_b, [
340
+ "children",
341
+ "variant",
342
+ "size",
343
+ "blank",
344
+ "fullWidth",
345
+ "form"
346
+ ]);
347
+ const ref = useForwardedRef(forwardedRef);
348
+ const { buttonProps, isPressed } = useButton(otherProps, ref);
349
+ const { isFocused, isFocusVisible, focusProps } = useFocusRing();
350
+ const { hoverProps, isHovered } = $6179b936705e76d3$export$ae780daf29e6d456({
351
+ isDisabled: buttonProps.disabled
352
+ });
353
+ const variantStyle = {
354
+ primary: cn("text-white border-transparent", {
355
+ "bg-blue-700": !isHovered && !isPressed,
356
+ "bg-blue-800": isHovered && !isPressed,
357
+ "bg-blue-900": isPressed,
358
+ "outline-blue-1000": isFocusVisible
359
+ }),
360
+ secondary: cn("text-blue-700 border-transparent", {
361
+ "bg-gray-50": !blank && !isHovered && !isPressed,
362
+ "bg-blue-100": isHovered && !isPressed,
363
+ "bg-blue-200": isPressed,
364
+ "outline-blue-700": isFocusVisible
365
+ }),
366
+ tertiary: cn("text-gray-1000 border-gray-600", {
367
+ "bg-transparent": !isHovered && !isPressed,
368
+ "bg-gray-50": isHovered && !isPressed,
369
+ "bg-gray-200": isPressed,
370
+ "outline-gray-1000": isFocusVisible
371
+ }),
372
+ dark: cn("text-white border-transparent", {
373
+ "bg-gray-1000": !isHovered && !isPressed,
374
+ "bg-gray-800": isHovered && !isPressed,
375
+ "bg-gray-900": isPressed,
376
+ "outline-gray-600": isFocusVisible
377
+ }),
378
+ gray: cn("text-gray-1000 border-transparent", {
379
+ "bg-gray-50": !isHovered && !isPressed,
380
+ "bg-gray-300": isHovered && !isPressed,
381
+ "bg-gray-500": isPressed,
382
+ "outline-gray-1000": isFocusVisible
383
+ }),
384
+ red: cn("text-red-700 border-transparent", {
385
+ "bg-gray-50": !blank && !isHovered && !isPressed,
386
+ "bg-red-100": isHovered && !isPressed,
387
+ "bg-red-200": isPressed,
388
+ "outline-red-700": isFocusVisible
389
+ })
390
+ };
391
+ const sizeStyle = {
392
+ large: "py-2.5 px-5 text-md rounded-lg gap-2",
393
+ medium: "py-1.5 px-3.5 text-md rounded-lg gap-2",
394
+ small: "py-[5px] px-3 text-sm rounded-md gap-2",
395
+ extraSmall: "py-1 px-2.5 text-sm rounded gap-[5px]"
396
+ };
397
+ return /* @__PURE__ */ jsx(
398
+ "button",
399
+ __spreadProps(__spreadValues(__spreadValues(__spreadValues({
400
+ className: cn(
401
+ sizeStyle[size],
402
+ variantStyle[variant],
403
+ "flex items-center justify-center font-medium border",
404
+ "transition-colors ease-in-out",
405
+ {
406
+ "outline-none": isFocused && !isFocusVisible,
407
+ "outline outline-2 outline-offset-0": isFocusVisible,
408
+ "cursor-not-allowed opacity-50": buttonProps.disabled,
409
+ "w-full": fullWidth
410
+ }
411
+ )
412
+ }, buttonProps), focusProps), hoverProps), {
413
+ form,
414
+ ref,
415
+ children
416
+ })
417
+ );
418
+ }
419
+ );
420
+
421
+ // src/components/Badge/Badge.tsx
422
+ import cn2 from "classnames";
423
+ import { jsx as jsx2 } from "react/jsx-runtime";
424
+ var Badge = ({
425
+ children,
426
+ variant = "primary",
427
+ capitalize = true
428
+ }) => {
429
+ const colorStyle = {
430
+ info: "bg-[#F0F7FF] text-cta",
431
+ success: "bg-[#F1FFF1] text-[#53AB53]",
432
+ warning: "bg-[#FFF5DC] text-[#FFB800]",
433
+ danger: "bg-[#FFF3F1] text-[#E42525]",
434
+ primary: "bg-primary text-graySelected",
435
+ secondary: "bg-graySelected text-primaryLight",
436
+ basic: "bg-transparent text-primaryLight border border-primaryLight"
437
+ };
438
+ return /* @__PURE__ */ jsx2(
439
+ "span",
440
+ {
441
+ className: cn2("px-2 py-[2px] text-xs rounded-md whitespace-nowrap", colorStyle[variant], {
442
+ capitalize
443
+ }),
444
+ children
445
+ }
446
+ );
447
+ };
448
+
449
+ // src/components/Drawer/Drawer.tsx
450
+ import { useRef as useRef2, useState, cloneElement } from "react";
451
+ import { Overlay, useModalOverlay } from "react-aria";
452
+ import { useOverlayTriggerState } from "react-stately";
453
+ import { CSSTransition } from "react-transition-group";
454
+ import cn3 from "classnames";
455
+ import { jsx as jsx3, jsxs } from "react/jsx-runtime";
456
+ var placementsStyle = {
457
+ top: {
458
+ container: " items-start justify-center",
459
+ transition: {
460
+ appear: "-translate-y-full",
461
+ appearDone: "translate-y-0",
462
+ exit: "-translate-y-full"
463
+ }
464
+ },
465
+ right: {
466
+ container: "justify-end",
467
+ transition: {
468
+ appear: "translate-x-full",
469
+ appearDone: "translate-x-0",
470
+ exit: "translate-x-full"
471
+ }
472
+ },
473
+ bottom: {
474
+ container: " items-end justify-center",
475
+ transition: {
476
+ appear: "translate-y-full",
477
+ appearDone: "translate-y-0",
478
+ exit: "translate-y-full"
479
+ }
480
+ },
481
+ left: {
482
+ container: "justify-start",
483
+ transition: {
484
+ appear: "-translate-x-full",
485
+ appearDone: "translate-x-0",
486
+ exit: "-translate-x-full"
487
+ }
488
+ }
489
+ };
490
+ var Drawer = (_a) => {
491
+ var _b = _a, {
492
+ state,
493
+ placement = "left",
494
+ container,
495
+ children
496
+ } = _b, props = __objRest(_b, [
497
+ "state",
498
+ "placement",
499
+ "container",
500
+ "children"
501
+ ]);
502
+ const ref = useRef2(null);
503
+ const [exited, setExited] = useState(!state.isOpen);
504
+ const { modalProps, underlayProps } = useModalOverlay(
505
+ __spreadValues({
506
+ isDismissable: true
507
+ }, props),
508
+ state,
509
+ ref
510
+ );
511
+ if (!(state.isOpen || !exited)) {
512
+ return null;
513
+ }
514
+ const placementStyle = placementsStyle[placement];
515
+ const position = container ? "absolute" : "fixed";
516
+ return /* @__PURE__ */ jsxs(Overlay, { portalContainer: container, children: [
517
+ /* @__PURE__ */ jsx3(
518
+ CSSTransition,
519
+ {
520
+ in: state.isOpen,
521
+ appear: true,
522
+ onEntered: () => setExited(false),
523
+ onExited: () => setExited(true),
524
+ timeout: { enter: 0, exit: 300 },
525
+ classNames: {
526
+ appear: "opacity-0",
527
+ appearDone: "opacity-1",
528
+ exit: "opacity-0"
529
+ },
530
+ children: /* @__PURE__ */ jsx3(
531
+ "div",
532
+ {
533
+ className: cn3(
534
+ "z-50 inset-0 bg-black/50 transition-opacity duration-300",
535
+ position
536
+ )
537
+ }
538
+ )
539
+ }
540
+ ),
541
+ /* @__PURE__ */ jsx3(
542
+ "div",
543
+ __spreadProps(__spreadValues({
544
+ className: cn3("z-50 inset-0 flex", position, placementStyle.container)
545
+ }, underlayProps), {
546
+ children: /* @__PURE__ */ jsx3(
547
+ CSSTransition,
548
+ {
549
+ in: state.isOpen,
550
+ appear: true,
551
+ nodeRef: ref,
552
+ timeout: { enter: 0, exit: 300 },
553
+ classNames: placementStyle.transition,
554
+ children: cloneElement(
555
+ typeof children === "function" ? children(state.close) : children,
556
+ __spreadValues({
557
+ ref,
558
+ style: {
559
+ transitionProperty: "transform",
560
+ transitionTimingFunction: "cubic-bezier(0.4, 0, 0.2, 1)",
561
+ transitionDuration: "300ms"
562
+ }
563
+ }, modalProps)
564
+ )
565
+ }
566
+ )
567
+ })
568
+ )
569
+ ] });
570
+ };
571
+ var useDrawerState = useOverlayTriggerState;
572
+ export {
573
+ Badge,
574
+ Button,
575
+ Drawer,
576
+ useDrawerState
577
+ };
package/dist/style.css ADDED
@@ -0,0 +1 @@
1
+ *{box-sizing:border-box;font-family:Inter;-webkit-font-smoothing:antialiased}:root{--color-gray-25:252 252 252;--color-gray-50:247 247 247;--color-gray-100:242 242 242;--color-gray-200:237 237 237;--color-gray-300:232 232 232;--color-gray-400:227 227 227;--color-gray-500:219 219 219;--color-gray-600:199 199 199;--color-gray-700:143 143 143;--color-gray-800:133 133 133;--color-gray-900:112 112 112;--color-gray-1000:23 23 23;--color-blue-25:250 252 255;--color-blue-50:245 249 255;--color-blue-100:240 246 255;--color-blue-200:215 231 254;--color-blue-300:199 222 255;--color-blue-400:184 213 255;--color-blue-500:133 184 255;--color-blue-600:87 157 255;--color-blue-700:0 106 255;--color-blue-800:0 91 219;--color-blue-900:0 77 184;--color-blue-1000:0 34 82;--color-red-25:255 250 250;--color-red-50:255 250 250;--color-red-100:255 240 240;--color-red-200:255 229 229;--color-red-300:253 216 216;--color-red-400:249 200 200;--color-red-500:243 175 176;--color-red-600:234 143 144;--color-red-700:229 72 77;--color-red-800:219 61 66;--color-red-900:206 44 49;--color-red-1000:57 20 23;--color-amber-25:254 253 251;--color-amber-50:255 248 235;--color-amber-100:255 244 214;--color-amber-200:255 236 189;--color-amber-300:255 227 163;--color-amber-400:255 210 133;--color-amber-500:243 185 98;--color-amber-600:238 157 43;--color-amber-700:255 178 36;--color-amber-800:255 159 26;--color-amber-900:173 87 0;--color-amber-1000:78 32 9;--color-green-25:251 254 252;--color-green-50:243 252 245;--color-green-100:235 250 240;--color-green-200:221 243 228;--color-green-300:204 235 215;--color-green-400:180 223 196;--color-green-500:146 206 172;--color-green-600:91 185 139;--color-green-700:48 166 109;--color-green-800:42 152 101;--color-green-900:24 119 76;--color-green-1000:21 50 38;--color-tomato-25:255 250 250;--color-tomato-50:255 246 245;--color-tomato-100:255 241 240;--color-tomato-200:255 228 224;--color-tomato-300:253 216 211;--color-tomato-400:250 198 189;--color-tomato-500:243 174 160;--color-tomato-600:234 146 128;--color-tomato-700:229 77 46;--color-tomato-800:219 66 36;--color-tomato-900:204 51 20;--color-tomato-1000:54 24 17;--color-crimson-25:255 250 252;--color-crimson-50:255 245 250;--color-crimson-100:254 241 247;--color-crimson-200:252 228 239;--color-crimson-300:249 215 230;--color-crimson-400:244 199 220;--color-crimson-500:237 171 199;--color-crimson-600:229 143 178;--color-crimson-700:234 62 131;--color-crimson-800:225 51 120;--color-crimson-900:210 30 102;--color-crimson-1000:63 13 30;--color-pink-25:255 250 253;--color-pink-50:255 245 251;--color-pink-100:254 236 247;--color-pink-200:252 228 243;--color-pink-300:249 215 235;--color-pink-400:243 196 225;--color-pink-500:236 172 211;--color-pink-600:226 141 194;--color-pink-700:215 66 160;--color-pink-800:210 50 151;--color-pink-900:205 29 141;--color-pink-1000:61 10 43;--color-plum-25:253 250 255;--color-plum-50:255 250 255;--color-plum-100:252 238 252;--color-plum-200:249 230 249;--color-plum-300:243 215 244;--color-plum-400:236 201 238;--color-plum-500:223 176 227;--color-plum-600:207 146 217;--color-plum-700:171 74 186;--color-plum-800:164 60 180;--color-plum-900:154 43 171;--color-plum-1000:52 12 59;--color-purple-25:254 251 254;--color-purple-50:253 250 255;--color-purple-100:249 241 254;--color-purple-200:244 232 252;--color-purple-300:237 220 249;--color-purple-400:228 205 244;--color-purple-500:212 181 237;--color-purple-600:191 149 228;--color-purple-700:142 78 198;--color-purple-800:131 68 187;--color-purple-900:121 59 176;--color-purple-1000:43 14 68;--color-violet-25:252 251 254;--color-violet-50:251 250 255;--color-violet-100:243 240 255;--color-violet-200:235 231 254;--color-violet-300:228 222 252;--color-violet-400:213 205 249;--color-violet-500:197 185 243;--color-violet-600:168 152 236;--color-violet-700:109 84 207;--color-violet-800:99 78 193;--color-violet-900:87 70 175;--color-violet-1000:31 18 73;--color-indigo-25:252 252 253;--color-indigo-50:250 251 255;--color-indigo-100:240 244 255;--color-indigo-200:231 237 254;--color-indigo-300:217 226 252;--color-indigo-400:200 213 249;--color-indigo-500:173 191 245;--color-indigo-600:143 166 239;--color-indigo-700:60 97 221;--color-indigo-800:56 91 204;--color-indigo-900:52 81 178;--color-indigo-1000:16 29 71;--color-cyan-25:251 253 254;--color-cyan-50:242 252 253;--color-cyan-100:233 249 251;--color-cyan-200:218 244 247;--color-cyan-300:195 233 239;--color-cyan-400:168 222 230;--color-cyan-500:133 206 219;--color-cyan-600:63 185 207;--color-cyan-700:5 162 194;--color-cyan-800:8 149 180;--color-cyan-900:12 119 146;--color-cyan-1000:4 50 62;--color-teal-25:251 254 253;--color-teal-50:242 252 250;--color-teal-100:231 249 245;--color-teal-200:216 243 237;--color-teal-300:199 235 229;--color-teal-400:175 223 215;--color-teal-500:141 206 195;--color-teal-600:85 185 172;--color-teal-700:18 165 148;--color-teal-800:14 154 138;--color-teal-900:6 122 110;--color-teal-1000:17 50 45;--color-grass-25:251 254 251;--color-grass-50:243 252 243;--color-grass-100:235 249 235;--color-grass-200:222 242 222;--color-grass-300:204 234 205;--color-grass-400:185 223 188;--color-grass-500:150 207 155;--color-grass-600:100 185 116;--color-grass-700:69 165 87;--color-grass-800:61 153 79;--color-grass-900:41 122 58;--color-grass-1000:27 49 30;--color-brown-25:254 252 251;--color-brown-50:252 250 247;--color-brown-100:249 242 236;--color-brown-200:244 232 220;--color-brown-300:239 221 205;--color-brown-400:232 205 181;--color-brown-500:221 185 151;--color-brown-600:208 158 113;--color-brown-700:173 127 88;--color-brown-800:162 118 83;--color-brown-900:136 99 73;--color-brown-1000:63 44 34;--color-orange-25:254 252 251;--color-orange-50:254 249 246;--color-orange-100:255 240 229;--color-orange-200:255 232 214;--color-orange-300:255 219 194;--color-orange-400:255 204 168;--color-orange-500:255 178 128;--color-orange-600:250 146 76;--color-orange-700:247 104 8;--color-orange-800:235 94 0;--color-orange-900:189 75 0;--color-orange-1000:69 30 17;--color-sky-25:250 254 255;--color-sky-50:240 252 255;--color-sky-100:229 249 255;--color-sky-200:211 243 253;--color-sky-300:195 236 249;--color-sky-400:162 222 241;--color-sky-500:123 208 234;--color-sky-600:46 190 229;--color-sky-700:104 221 253;--color-sky-800:93 211 244;--color-sky-900:0 122 163;--color-sky-1000:0 50 66;--color-mint-25:251 254 254;--color-mint-50:241 254 250;--color-mint-100:224 251 243;--color-mint-200:212 247 238;--color-mint-300:194 239 228;--color-mint-400:165 228 212;--color-mint-500:125 212 191;--color-mint-600:64 196 170;--color-mint-700:112 225 200;--color-mint-800:104 217 193;--color-mint-900:20 123 109;--color-mint-1000:9 52 46;--color-lime-25:253 254 251;--color-lime-50:246 252 238;--color-lime-100:238 250 219;--color-lime-200:227 247 197;--color-lime-300:215 242 176;--color-lime-400:202 233 150;--color-lime-500:177 209 107;--color-lime-600:148 186 44;--color-lime-700:153 213 42;--color-lime-800:147 201 38;--color-lime-900:93 119 13;--color-lime-1000:39 52 9;--color-yellow-25:252 252 247;--color-yellow-50:255 252 229;--color-yellow-100:255 251 209;--color-yellow-200:255 248 189;--color-yellow-300:254 242 164;--color-yellow-400:249 231 139;--color-yellow-500:239 210 108;--color-yellow-600:235 188 0;--color-yellow-700:245 217 10;--color-yellow-800:245 204 0;--color-yellow-900:148 104 0;--color-yellow-1000:52 40 15;--color-gold-25:253 253 252;--color-gold-50:251 250 243;--color-gold-100:246 243 234;--color-gold-200:238 234 221;--color-gold-300:230 224 209;--color-gold-400:218 209 190;--color-gold-500:203 189 164;--color-gold-600:184 163 132;--color-gold-700:150 130 100;--color-gold-800:141 122 94;--color-gold-900:119 103 80;--color-gold-1000:59 53 43;--color-bronze-25:253 252 252;--color-bronze-50:253 248 247;--color-bronze-100:248 240 237;--color-bronze-200:242 232 227;--color-bronze-300:234 221 215;--color-bronze-400:224 206 199;--color-bronze-500:208 184 175;--color-bronze-600:190 159 147;--color-bronze-700:161 128 114;--color-bronze-800:150 118 105;--color-bronze-900:132 99 88;--color-bronze-1000:68 49 44}.dark-theme{--color-gray-25:23 23 23;--color-gray-50:28 28 28;--color-gray-100:36 36 36;--color-gray-200:41 41 41;--color-gray-300:46 46 46;--color-gray-400:51 51 51;--color-gray-500:61 61 61;--color-gray-600:79 79 79;--color-gray-700:112 112 112;--color-gray-800:125 125 125;--color-gray-900:161 161 161;--color-gray-1000:237 237 237;--color-blue-25:15 22 31;--color-blue-50:15 28 46;--color-blue-100:16 35 61;--color-blue-200:16 42 76;--color-blue-300:15 47 87;--color-blue-400:13 56 104;--color-blue-500:10 67 128;--color-blue-600:9 84 165;--color-blue-700:0 145 255;--color-blue-800:56 159 255;--color-blue-900:82 168 255;--color-blue-1000:235 246 255;--color-red-25:32 19 21;--color-red-50:41 20 21;--color-red-100:58 23 25;--color-red-200:71 26 29;--color-red-300:85 27 31;--color-red-400:103 30 33;--color-red-500:131 33 38;--color-red-600:168 36 40;--color-red-700:229 72 77;--color-red-800:242 84 90;--color-red-900:255 97 102;--color-red-1000:254 236 238;--color-amber-25:31 19 0;--color-amber-50:41 24 0;--color-amber-100:51 27 0;--color-amber-200:61 33 0;--color-amber-300:77 42 0;--color-amber-400:87 51 0;--color-amber-500:107 65 5;--color-amber-600:128 77 0;--color-amber-700:255 178 36;--color-amber-800:255 203 71;--color-amber-900:242 162 13;--color-amber-1000:254 243 220;--color-green-25:12 24 17;--color-green-50:11 29 22;--color-green-100:15 41 30;--color-green-200:17 49 35;--color-green-300:19 57 41;--color-green-400:22 69 49;--color-green-500:27 85 59;--color-green-600:34 109 73;--color-green-700:48 166 109;--color-green-800:60 175 119;--color-green-900:75 195 137;--color-green-1000:229 251 234;--color-tomato-25:28 20 18;--color-tomato-50:41 19 15;--color-tomato-100:58 23 19;--color-tomato-200:72 26 20;--color-tomato-300:86 29 21;--color-tomato-400:100 32 22;--color-tomato-500:127 35 21;--color-tomato-600:165 43 18;--color-tomato-700:229 77 46;--color-tomato-800:236 93 65;--color-tomato-900:241 107 80;--color-tomato-1000:254 239 236;--color-crimson-25:30 21 25;--color-crimson-50:40 21 29;--color-crimson-100:58 23 38;--color-crimson-200:71 26 45;--color-crimson-300:85 27 51;--color-crimson-400:99 29 58;--color-crimson-500:129 29 69;--color-crimson-600:174 25 85;--color-crimson-700:234 62 131;--color-crimson-800:240 81 137;--color-crimson-900:247 95 143;--color-crimson-1000:254 236 244;--color-pink-25:32 19 28;--color-pink-50:40 21 34;--color-pink-100:58 24 47;--color-pink-200:70 27 56;--color-pink-300:80 27 63;--color-pink-400:98 29 74;--color-pink-500:124 29 91;--color-pink-600:165 24 113;--color-pink-700:215 66 160;--color-pink-800:227 74 168;--color-pink-900:246 90 181;--color-pink-1000:254 236 247;--color-plum-25:28 18 28;--color-plum-50:36 20 36;--color-plum-100:51 26 51;--color-plum-200:62 28 63;--color-plum-300:72 33 74;--color-plum-400:85 38 89;--color-plum-500:107 46 112;--color-plum-600:136 56 148;--color-plum-700:171 74 186;--color-plum-800:188 83 198;--color-plum-900:216 100 216;--color-plum-1000:251 237 252;--color-purple-25:28 21 30;--color-purple-50:35 21 40;--color-purple-100:46 25 56;--color-purple-200:58 30 72;--color-purple-300:66 33 84;--color-purple-400:79 39 104;--color-purple-500:95 46 133;--color-purple-600:121 56 178;--color-purple-700:142 78 198;--color-purple-800:156 91 210;--color-purple-900:191 122 240;--color-purple-1000:248 237 252;--color-violet-25:23 21 30;--color-violet-50:28 23 43;--color-violet-100:36 29 62;--color-violet-200:43 34 79;--color-violet-300:50 38 94;--color-violet-400:57 44 114;--color-violet-500:68 53 146;--color-violet-600:87 65 195;--color-violet-700:109 84 207;--color-violet-800:123 101 220;--color-violet-900:159 141 252;--color-violet-1000:239 236 254;--color-indigo-25:19 22 32;--color-indigo-50:21 25 45;--color-indigo-100:24 32 62;--color-indigo-200:28 39 79;--color-indigo-300:31 44 92;--color-indigo-400:34 51 109;--color-indigo-500:39 63 139;--color-indigo-600:47 77 177;--color-indigo-700:60 97 221;--color-indigo-800:84 116 232;--color-indigo-900:133 157 255;--color-indigo-1000:237 240 253;--color-cyan-25:7 25 29;--color-cyan-50:6 29 35;--color-cyan-100:7 41 49;--color-cyan-200:7 48 59;--color-cyan-300:7 57 69;--color-cyan-400:6 66 81;--color-cyan-500:4 79 98;--color-cyan-600:0 102 128;--color-cyan-700:5 162 194;--color-cyan-800:0 177 204;--color-cyan-900:0 193 214;--color-cyan-1000:224 248 250;--color-teal-25:9 26 22;--color-teal-50:4 32 27;--color-teal-100:6 40 34;--color-teal-200:7 49 43;--color-teal-300:8 58 51;--color-teal-400:9 68 60;--color-teal-500:11 86 76;--color-teal-600:12 110 99;--color-teal-700:18 165 148;--color-teal-800:16 178 162;--color-teal-900:10 199 180;--color-teal-1000:224 250 244;--color-grass-25:12 24 17;--color-grass-50:15 31 19;--color-grass-100:20 42 26;--color-grass-200:22 49 30;--color-grass-300:25 57 33;--color-grass-400:29 68 39;--color-grass-500:37 86 49;--color-grass-600:47 111 59;--color-grass-700:69 165 87;--color-grass-800:85 180 102;--color-grass-900:98 192 115;--color-grass-1000:229 251 234;--color-brown-25:26 22 20;--color-brown-50:33 23 18;--color-brown-100:46 32 26;--color-brown-200:53 37 29;--color-brown-300:63 44 34;--color-brown-400:72 53 40;--color-brown-500:93 67 50;--color-brown-600:119 89 64;--color-brown-700:173 127 88;--color-brown-800:189 140 97;--color-brown-900:219 162 112;--color-brown-1000:250 240 229;--color-orange-25:30 17 6;--color-orange-50:41 19 0;--color-orange-100:58 27 3;--color-orange-200:67 30 4;--color-orange-300:77 34 5;--color-orange-400:96 42 6;--color-orange-500:118 50 5;--color-orange-600:148 62 0;--color-orange-700:247 104 8;--color-orange-800:255 126 41;--color-orange-900:255 139 61;--color-orange-1000:254 234 220;--color-sky-25:13 25 33;--color-sky-50:7 30 44;--color-sky-100:8 37 53;--color-sky-200:8 44 64;--color-sky-300:8 52 74;--color-sky-400:8 62 89;--color-sky-500:6 74 106;--color-sky-600:0 93 133;--color-sky-700:104 221 253;--color-sky-800:138 232 255;--color-sky-900:47 200 238;--color-sky-1000:235 248 255;--color-mint-25:7 23 21;--color-mint-50:5 31 29;--color-mint-100:5 41 38;--color-mint-200:4 47 42;--color-mint-300:3 58 52;--color-mint-400:1 70 62;--color-mint-500:0 87 75;--color-mint-600:0 107 89;--color-mint-700:112 225 200;--color-mint-800:149 243 217;--color-mint-900:37 208 171;--color-mint-1000:232 252 248;--color-lime-25:20 24 7;--color-lime-50:23 28 8;--color-lime-100:30 38 13;--color-lime-200:37 46 15;--color-lime-300:43 55 17;--color-lime-400:53 67 20;--color-lime-500:64 81 21;--color-lime-600:84 105 22;--color-lime-700:153 213 42;--color-lime-800:196 240 66;--color-lime-900:136 191 34;--color-lime-1000:240 251 223;--color-yellow-25:26 19 0;--color-yellow-50:36 27 0;--color-yellow-100:46 34 0;--color-yellow-200:51 38 0;--color-yellow-300:61 47 0;--color-yellow-400:71 58 0;--color-yellow-500:87 72 5;--color-yellow-600:112 94 0;--color-yellow-700:245 217 10;--color-yellow-800:255 239 92;--color-yellow-900:240 192 0;--color-yellow-1000:255 250 209;--color-gold-25:22 21 18;--color-gold-50:29 27 22;--color-gold-100:38 35 28;--color-gold-200:44 41 32;--color-gold-300:53 48 39;--color-gold-400:63 57 44;--color-gold-500:79 70 54;--color-gold-600:107 93 71;--color-gold-700:150 130 100;--color-gold-800:165 145 115;--color-gold-900:191 168 136;--color-gold-1000:247 245 232;--color-bronze-25:25 21 20;--color-bronze-50:32 26 24;--color-bronze-100:41 32 30;--color-bronze-200:51 40 36;--color-bronze-300:60 47 42;--color-bronze-400:69 53 48;--color-bronze-500:87 68 61;--color-bronze-600:116 89 78;--color-bronze-700:161 128 114;--color-bronze-800:176 140 125;--color-bronze-900:204 164 148;--color-bronze-1000:249 237 231}