asheeui 0.6.7 → 0.6.9

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 (114) hide show
  1. package/dist/components/autocomplete/Autocomplete.d.ts +34 -17
  2. package/dist/components/autocomplete/Autocomplete.d.ts.map +1 -1
  3. package/dist/components/autocomplete/Autocomplete.js +90 -106
  4. package/dist/components/autocomplete/autocomplete-config.d.ts +2 -20
  5. package/dist/components/autocomplete/autocomplete-config.d.ts.map +1 -1
  6. package/dist/components/autocomplete/autocomplete-config.js +9 -13
  7. package/dist/components/button/Button.d.ts +31 -5
  8. package/dist/components/button/Button.d.ts.map +1 -1
  9. package/dist/components/button/Button.js +68 -64
  10. package/dist/components/card/Card.d.ts +58 -54
  11. package/dist/components/card/Card.d.ts.map +1 -1
  12. package/dist/components/card/Card.js +152 -158
  13. package/dist/components/card/card-config.d.ts +66 -33
  14. package/dist/components/card/card-config.d.ts.map +1 -1
  15. package/dist/components/card/card-config.js +9 -9
  16. package/dist/components/date-picker/Calendar.d.ts +57 -0
  17. package/dist/components/date-picker/Calendar.d.ts.map +1 -0
  18. package/dist/components/date-picker/Calendar.js +224 -0
  19. package/dist/components/date-picker/DatePicker.d.ts +68 -155
  20. package/dist/components/date-picker/DatePicker.d.ts.map +1 -1
  21. package/dist/components/date-picker/DatePicker.js +194 -466
  22. package/dist/components/date-picker/TimeSpinner.d.ts +46 -0
  23. package/dist/components/date-picker/TimeSpinner.d.ts.map +1 -0
  24. package/dist/components/date-picker/TimeSpinner.js +84 -0
  25. package/dist/components/date-picker/date-picker-config.d.ts +21 -1
  26. package/dist/components/date-picker/date-picker-config.d.ts.map +1 -1
  27. package/dist/components/date-picker/date-picker-config.js +10 -14
  28. package/dist/components/date-picker/date-picker-styles.d.ts.map +1 -1
  29. package/dist/components/date-picker/date-picker-styles.js +4 -11
  30. package/dist/components/date-picker/date-picker.helpers.d.ts +111 -0
  31. package/dist/components/date-picker/date-picker.helpers.d.ts.map +1 -0
  32. package/dist/components/date-picker/date-picker.helpers.js +110 -0
  33. package/dist/components/date-picker/index.js +3 -0
  34. package/dist/components/input/Input.d.ts +13 -7
  35. package/dist/components/input/Input.d.ts.map +1 -1
  36. package/dist/components/input/Input.js +96 -91
  37. package/dist/components/keyboard/KeyboardContext.d.ts +130 -0
  38. package/dist/components/keyboard/KeyboardContext.d.ts.map +1 -0
  39. package/dist/components/keyboard/KeyboardContext.js +13 -0
  40. package/dist/components/keyboard/KeyboardProvider.d.ts +78 -0
  41. package/dist/components/keyboard/KeyboardProvider.d.ts.map +1 -0
  42. package/dist/components/keyboard/KeyboardProvider.js +183 -0
  43. package/dist/components/keyboard/OnScreenKeyboard.d.ts +65 -43
  44. package/dist/components/keyboard/OnScreenKeyboard.d.ts.map +1 -1
  45. package/dist/components/keyboard/OnScreenKeyboard.js +119 -113
  46. package/dist/components/keyboard/index.d.ts +2 -1
  47. package/dist/components/keyboard/index.d.ts.map +1 -1
  48. package/dist/components/keyboard/index.js +2 -1
  49. package/dist/components/keyboard/keyboard-config.d.ts +40 -36
  50. package/dist/components/keyboard/keyboard-config.d.ts.map +1 -1
  51. package/dist/components/keyboard/keyboard-config.js +15 -10
  52. package/dist/components/keyboard/use-keyboard-field.d.ts +6 -4
  53. package/dist/components/keyboard/use-keyboard-field.d.ts.map +1 -1
  54. package/dist/components/keyboard/use-keyboard-field.js +12 -12
  55. package/dist/components/modal/Modal.d.ts.map +1 -1
  56. package/dist/components/modal/Modal.js +59 -65
  57. package/dist/components/multi-select/MultiSelect.d.ts +75 -40
  58. package/dist/components/multi-select/MultiSelect.d.ts.map +1 -1
  59. package/dist/components/multi-select/MultiSelect.js +188 -188
  60. package/dist/components/multi-select/multi-select-config.d.ts +2 -20
  61. package/dist/components/multi-select/multi-select-config.d.ts.map +1 -1
  62. package/dist/components/multi-select/multi-select-config.js +10 -14
  63. package/dist/components/select/Select.d.ts +60 -45
  64. package/dist/components/select/Select.d.ts.map +1 -1
  65. package/dist/components/select/Select.js +149 -161
  66. package/dist/components/select/select-config.d.ts +3 -29
  67. package/dist/components/select/select-config.d.ts.map +1 -1
  68. package/dist/components/select/select-config.js +6 -14
  69. package/dist/components/select/select-styles.js +1 -6
  70. package/dist/components/select-menu/SelectMenu.d.ts +48 -42
  71. package/dist/components/select-menu/SelectMenu.d.ts.map +1 -1
  72. package/dist/components/select-menu/SelectMenu.js +137 -123
  73. package/dist/components/select-menu/select-menu-config.d.ts +33 -2
  74. package/dist/components/select-menu/select-menu-config.d.ts.map +1 -1
  75. package/dist/components/select-menu/select-menu-config.js +3 -1
  76. package/dist/components/sidebar/Sidebar.js +1 -1
  77. package/dist/components/switch/Switch.d.ts +9 -33
  78. package/dist/components/switch/Switch.d.ts.map +1 -1
  79. package/dist/components/switch/Switch.js +68 -74
  80. package/dist/components/switch/switch-styles.d.ts +1 -6
  81. package/dist/components/switch/switch-styles.d.ts.map +1 -1
  82. package/dist/components/switch/switch-styles.js +6 -12
  83. package/dist/components/tabs/Tabs.js +1 -1
  84. package/dist/components/textarea/Textarea.d.ts +19 -1
  85. package/dist/components/textarea/Textarea.d.ts.map +1 -1
  86. package/dist/components/textarea/Textarea.js +95 -90
  87. package/dist/components/toast/ToastContext.d.ts +122 -0
  88. package/dist/components/toast/ToastContext.d.ts.map +1 -0
  89. package/dist/components/toast/ToastContext.js +28 -0
  90. package/dist/components/toast/ToastProvider.d.ts +98 -0
  91. package/dist/components/toast/ToastProvider.d.ts.map +1 -0
  92. package/dist/components/toast/ToastProvider.js +188 -0
  93. package/dist/components/toast/index.d.ts +2 -1
  94. package/dist/components/toast/index.d.ts.map +1 -1
  95. package/dist/components/toast/index.js +2 -1
  96. package/dist/components/toast/toast-config.d.ts +36 -0
  97. package/dist/components/toast/toast-config.d.ts.map +1 -1
  98. package/dist/icons/ChevronUpIcon.d.ts +3 -0
  99. package/dist/icons/ChevronUpIcon.d.ts.map +1 -0
  100. package/dist/icons/ChevronUpIcon.js +21 -0
  101. package/dist/icons/index.d.ts +2 -0
  102. package/dist/icons/index.d.ts.map +1 -1
  103. package/dist/index.css +24 -2
  104. package/dist/index.d.ts +1 -0
  105. package/dist/index.d.ts.map +1 -1
  106. package/dist/index.js +62 -59
  107. package/dist/theme/color.js +2 -2
  108. package/package.json +1 -1
  109. package/dist/components/keyboard/keyboard-context.d.ts +0 -118
  110. package/dist/components/keyboard/keyboard-context.d.ts.map +0 -1
  111. package/dist/components/keyboard/keyboard-context.js +0 -90
  112. package/dist/components/toast/toast-context.d.ts +0 -163
  113. package/dist/components/toast/toast-context.d.ts.map +0 -1
  114. package/dist/components/toast/toast-context.js +0 -177
@@ -0,0 +1,122 @@
1
+ import { ReactNode } from 'react';
2
+ import { Radius, Size, Variant } from '../../shared';
3
+ import { ToastItemData, ToastPlacement, ToastShowOptions } from './toast-config';
4
+ /**
5
+ * Context type for the toast system.
6
+ * Provides methods for showing and managing toast notifications.
7
+ */
8
+ export interface ToastContextType {
9
+ /**
10
+ * Array of currently active toast items.
11
+ */
12
+ toasts: ToastItemData[];
13
+ /**
14
+ * Show a toast with the given options.
15
+ * Returns the toast ID.
16
+ */
17
+ toast: (options: ToastShowOptions | string) => string;
18
+ /**
19
+ * Show a success toast.
20
+ * Returns the toast ID.
21
+ */
22
+ success: (message: ReactNode, options?: Partial<ToastShowOptions>) => string;
23
+ /**
24
+ * Show an error toast.
25
+ * Returns the toast ID.
26
+ */
27
+ error: (message: ReactNode, options?: Partial<ToastShowOptions>) => string;
28
+ /**
29
+ * Show an info toast.
30
+ * Returns the toast ID.
31
+ */
32
+ info: (message: ReactNode, options?: Partial<ToastShowOptions>) => string;
33
+ /**
34
+ * Show a warning toast.
35
+ * Returns the toast ID.
36
+ */
37
+ warning: (message: ReactNode, options?: Partial<ToastShowOptions>) => string;
38
+ /**
39
+ * Remove a toast by ID.
40
+ */
41
+ removeToast: (id: string) => void;
42
+ /**
43
+ * Clear all active toasts.
44
+ */
45
+ clearToasts: () => void;
46
+ /**
47
+ * The portal target element for toast rendering.
48
+ * When portal is enabled, toasts are rendered into this element.
49
+ * Defaults to document.body.
50
+ */
51
+ portalTarget?: HTMLElement | null;
52
+ /**
53
+ * The default placement for toasts.
54
+ */
55
+ defaultPlacement: ToastPlacement;
56
+ /**
57
+ * The default size for toasts.
58
+ */
59
+ defaultSize: Size;
60
+ /**
61
+ * The default variant for toasts.
62
+ */
63
+ defaultVariant: Variant;
64
+ /**
65
+ * The default radius for toasts.
66
+ */
67
+ defaultRadius: Radius;
68
+ /**
69
+ * Whether toasts are animated by default.
70
+ */
71
+ defaultAnimated: boolean;
72
+ }
73
+ export declare const ToastContext: import('react').Context<ToastContextType | null>;
74
+ /**
75
+ * Hook for accessing the toast system.
76
+ *
77
+ * useToast returns methods for showing toast notifications with
78
+ * different types (success, error, info, warning). Each toast can be
79
+ * customized with its own size, placement, variant, radius, and animation
80
+ * settings. Must be used within a ToastProvider component.
81
+ *
82
+ * @returns The toast context with methods for showing and managing toasts.
83
+ * If used outside a ToastProvider, returns safe fallback methods.
84
+ *
85
+ * @example
86
+ * ```tsx
87
+ * function MyComponent() {
88
+ * const toast = useToast();
89
+ *
90
+ * const handleClick = () => {
91
+ * toast.success("Saved successfully!");
92
+ * };
93
+ *
94
+ * return <button onClick={handleClick}>Save</button>;
95
+ * }
96
+ * ```
97
+ *
98
+ * @example
99
+ * ```tsx
100
+ * // Customize individual toast appearance
101
+ * function MyComponent() {
102
+ * const toast = useToast();
103
+ *
104
+ * const showCustomToast = () => {
105
+ * toast.info("Custom notification", {
106
+ * placement: "bottom-left",
107
+ * size: "lg",
108
+ * variant: "solid",
109
+ * radius: "full",
110
+ * animated: false,
111
+ * timeout: 5000,
112
+ * });
113
+ * };
114
+ *
115
+ * return <button onClick={showCustomToast}>Show Custom Toast</button>;
116
+ * }
117
+ * ```
118
+ *
119
+ * @see ToastProvider - The provider component that enables the toast system.
120
+ */
121
+ export declare function useToast(): ToastContextType;
122
+ //# sourceMappingURL=ToastContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToastContext.d.ts","sourceRoot":"","sources":["../../../src/components/toast/ToastContext.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAiB,KAAK,SAAS,EAAc,MAAM,OAAO,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AAIxB;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,MAAM,EAAE,aAAa,EAAE,CAAC;IAExB;;;OAGG;IACH,KAAK,EAAE,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,KAAK,MAAM,CAAC;IAEtD;;;OAGG;IACH,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,MAAM,CAAC;IAE7E;;;OAGG;IACH,KAAK,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,MAAM,CAAC;IAE3E;;;OAGG;IACH,IAAI,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,MAAM,CAAC;IAE1E;;;OAGG;IACH,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,MAAM,CAAC;IAE7E;;OAEG;IACH,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAElC;;OAEG;IACH,WAAW,EAAE,MAAM,IAAI,CAAC;IAExB;;;;OAIG;IACH,YAAY,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAElC;;OAEG;IACH,gBAAgB,EAAE,cAAc,CAAC;IAEjC;;OAEG;IACH,WAAW,EAAE,IAAI,CAAC;IAElB;;OAEG;IACH,cAAc,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,eAAe,EAAE,OAAO,CAAC;CAC1B;AAID,eAAO,MAAM,YAAY,kDAA+C,CAAC;AAIzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,wBAAgB,QAAQ,qBAqBvB"}
@@ -0,0 +1,28 @@
1
+ "use client";
2
+ import { createContext as e, useContext as o } from "react";
3
+ const a = e(null);
4
+ function n() {
5
+ const t = o(a);
6
+ return t || {
7
+ toasts: [],
8
+ toast: () => "",
9
+ success: () => "",
10
+ error: () => "",
11
+ info: () => "",
12
+ warning: () => "",
13
+ removeToast: () => {
14
+ },
15
+ clearToasts: () => {
16
+ },
17
+ portalTarget: null,
18
+ defaultPlacement: "top-right",
19
+ defaultSize: "md",
20
+ defaultVariant: "bordered",
21
+ defaultRadius: "md",
22
+ defaultAnimated: !0
23
+ };
24
+ }
25
+ export {
26
+ a as ToastContext,
27
+ n as useToast
28
+ };
@@ -0,0 +1,98 @@
1
+ import { ReactNode } from 'react';
2
+ import { ToastConfig } from './toast-config';
3
+ /**
4
+ * Props for the ToastProvider component.
5
+ * Extends ToastConfig with children and className.
6
+ */
7
+ export interface ToastProviderProps extends ToastConfig {
8
+ /**
9
+ * Child components to render.
10
+ */
11
+ children: ReactNode;
12
+ /**
13
+ * Extra classes for the toast container.
14
+ */
15
+ className?: string;
16
+ /**
17
+ * Custom portal target element.
18
+ * When portal is enabled, toasts are rendered into this element.
19
+ * Defaults to document.body.
20
+ */
21
+ portalTarget?: HTMLElement | null;
22
+ }
23
+ /**
24
+ * Provider component for the toast notification system.
25
+ *
26
+ * ToastProvider wraps your application and provides toast notification
27
+ * functionality through the useToast hook. It manages the toast queue,
28
+ * rendering, and dismissal logic. Each toast can be customized with its
29
+ * own size, placement, variant, radius, and animation settings via the
30
+ * toast options.
31
+ *
32
+ * The provider uses React's createPortal to render toasts at the document
33
+ * body level by default. This ensures toasts escape CSS containment,
34
+ * stacking context, and overflow issues. Portaling can be disabled via
35
+ * the `portal` config option if the toasts need to stay within a specific
36
+ * parent container.
37
+ *
38
+ * @param props - ToastProvider configuration options.
39
+ * @param props.children - Child components.
40
+ * @param props.size - Default size scale of toasts. Defaults to "md".
41
+ * @param props.placement - Default placement of toasts. Defaults to "top-right".
42
+ * @param props.variant - Default visual style variant. Defaults to "bordered".
43
+ * @param props.radius - Default corner rounding. Defaults to "md".
44
+ * @param props.defaultTimeout - Default timeout in ms. Defaults to 3500.
45
+ * @param props.maxToasts - Maximum number of toasts. Defaults to 5.
46
+ * @param props.animated - Whether toasts have animations by default. Defaults to true.
47
+ * @param props.portal - Whether to render toasts in a portal. Defaults to true.
48
+ * @param props.portalTarget - Custom portal target element. Defaults to document.body.
49
+ * @param props.className - Extra classes for the toast container.
50
+ *
51
+ * @example
52
+ * ```tsx
53
+ * import { ToastProvider, useToast } from "asheeui";
54
+ *
55
+ * function App() {
56
+ * return (
57
+ * <ToastProvider>
58
+ * <MyComponent />
59
+ * </ToastProvider>
60
+ * );
61
+ * }
62
+ *
63
+ * function MyComponent() {
64
+ * const toast = useToast();
65
+ *
66
+ * return (
67
+ * <button onClick={() => toast.success("Operation successful!")}>
68
+ * Show Toast
69
+ * </button>
70
+ * );
71
+ * }
72
+ * ```
73
+ *
74
+ * @example
75
+ * ```tsx
76
+ * // Customizing individual toasts
77
+ * function MyComponent() {
78
+ * const toast = useToast();
79
+ *
80
+ * const showCustomToast = () => {
81
+ * toast.success("Custom toast!", {
82
+ * placement: "bottom-center",
83
+ * size: "lg",
84
+ * variant: "solid",
85
+ * radius: "full",
86
+ * animated: false,
87
+ * });
88
+ * };
89
+ *
90
+ * return <button onClick={showCustomToast}>Show Custom Toast</button>;
91
+ * }
92
+ * ```
93
+ *
94
+ * @see useToast - Hook for showing toast notifications.
95
+ * @see ToastConfig - The configuration type for the toast system.
96
+ */
97
+ export declare function ToastProvider({ children, size, placement, variant, radius, defaultTimeout, maxToasts, animated, portal: portalProp, portalTarget: portalTargetProp, className, }: ToastProviderProps): import("react").JSX.Element;
98
+ //# sourceMappingURL=ToastProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToastProvider.d.ts","sourceRoot":"","sources":["../../../src/components/toast/ToastProvider.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,SAAS,EAAkC,MAAM,OAAO,CAAC;AAQvE,OAAO,EAEL,KAAK,WAAW,EAIjB,MAAM,gBAAgB,CAAC;AAIxB;;;GAGG;AACH,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IAEpB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CACnC;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyEG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,OAAO,EACP,MAAM,EACN,cAAc,EACd,SAAS,EACT,QAAQ,EACR,MAAM,EAAE,UAAU,EAClB,YAAY,EAAE,gBAAgB,EAC9B,SAAS,GACV,EAAE,kBAAkB,+BAkQpB"}
@@ -0,0 +1,188 @@
1
+ "use client";
2
+ import { jsx as N, jsxs as $ } from "react/jsx-runtime";
3
+ import { useState as g, useCallback as o, useMemo as I } from "react";
4
+ import { createPortal as C } from "react-dom";
5
+ import { useAsheeConfig as ee } from "../../libs/context.js";
6
+ import { resolveCascade as l, resolveRadiusKey as te } from "../../utils/resolve-token.js";
7
+ import { ToastContext as ae } from "./ToastContext.js";
8
+ import { ToastItem as re } from "./ToastItem.js";
9
+ import { FALLBACK_TOAST_CONFIG as s } from "./toast-config.js";
10
+ import { cn as de } from "../../utils/cn.js";
11
+ function fe({
12
+ children: F,
13
+ size: L,
14
+ placement: M,
15
+ variant: O,
16
+ radius: _,
17
+ defaultTimeout: k,
18
+ maxToasts: B,
19
+ animated: G,
20
+ portal: q,
21
+ portalTarget: E,
22
+ className: H
23
+ }) {
24
+ var S;
25
+ const [f, p] = g([]), y = ee(), t = (S = y.components) == null ? void 0 : S.toast, m = l(
26
+ L,
27
+ t == null ? void 0 : t.size,
28
+ void 0,
29
+ s.size
30
+ ), r = l(
31
+ M,
32
+ t == null ? void 0 : t.placement,
33
+ void 0,
34
+ s.placement
35
+ ), i = l(
36
+ O,
37
+ t == null ? void 0 : t.variant,
38
+ y.defaultVariant,
39
+ s.variant
40
+ ), n = te(
41
+ _,
42
+ t == null ? void 0 : t.radius,
43
+ y.defaultRadius,
44
+ s.radius
45
+ ), x = l(
46
+ B,
47
+ t == null ? void 0 : t.maxToasts,
48
+ void 0,
49
+ s.maxToasts
50
+ ), T = l(
51
+ k,
52
+ t == null ? void 0 : t.defaultTimeout,
53
+ void 0,
54
+ s.defaultTimeout
55
+ ), c = l(
56
+ G,
57
+ t == null ? void 0 : t.animated,
58
+ void 0,
59
+ s.animated
60
+ ), J = l(
61
+ q,
62
+ t == null ? void 0 : t.portal,
63
+ void 0,
64
+ s.portal
65
+ ), u = E ?? (typeof document < "u" ? document.body : null), b = o((e) => {
66
+ p((a) => a.filter((v) => v.id !== e));
67
+ }, []), z = o(() => {
68
+ p([]);
69
+ }, []), d = o(
70
+ (e) => {
71
+ var U;
72
+ const a = typeof e == "object" && e.id ? e.id : typeof window < "u" && ((U = window.crypto) != null && U.randomUUID) ? window.crypto.randomUUID() : String(Date.now()), v = typeof e == "object" && e.placement ? e.placement : r, D = typeof e == "object" && e.size ? e.size : m, K = typeof e == "object" && e.variant ? e.variant : i, R = typeof e == "object" && e.radius ? e.radius : n, V = typeof e == "object" && e.animated !== void 0 ? e.animated : c, W = typeof e == "string" ? {
73
+ id: a,
74
+ message: e,
75
+ timeout: T,
76
+ type: "info",
77
+ placement: v,
78
+ size: D,
79
+ variant: K,
80
+ radius: R,
81
+ animated: V
82
+ } : {
83
+ ...e,
84
+ id: a,
85
+ timeout: e.timeout ?? T,
86
+ type: e.type ?? "info",
87
+ placement: e.placement ?? v,
88
+ size: e.size ?? D,
89
+ variant: e.variant ?? K,
90
+ radius: e.radius ?? R,
91
+ animated: e.animated !== void 0 ? e.animated : V
92
+ };
93
+ return p((X) => {
94
+ const Y = X.filter((Z) => Z.id !== a);
95
+ return [W, ...Y].slice(0, x);
96
+ }), a;
97
+ },
98
+ [
99
+ T,
100
+ x,
101
+ r,
102
+ m,
103
+ i,
104
+ n,
105
+ c
106
+ ]
107
+ ), w = o(
108
+ (e, a) => d({ ...a, message: e, type: "success" }),
109
+ [d]
110
+ ), h = o(
111
+ (e, a) => d({ ...a, message: e, type: "error" }),
112
+ [d]
113
+ ), j = o(
114
+ (e, a) => d({ ...a, message: e, type: "info" }),
115
+ [d]
116
+ ), A = o(
117
+ (e, a) => d({ ...a, message: e, type: "warning" }),
118
+ [d]
119
+ ), Q = I(
120
+ () => ({
121
+ toasts: f,
122
+ toast: d,
123
+ success: w,
124
+ error: h,
125
+ info: j,
126
+ warning: A,
127
+ removeToast: b,
128
+ clearToasts: z,
129
+ portalTarget: u,
130
+ defaultPlacement: r,
131
+ defaultSize: m,
132
+ defaultVariant: i,
133
+ defaultRadius: n,
134
+ defaultAnimated: c
135
+ }),
136
+ [
137
+ f,
138
+ d,
139
+ w,
140
+ h,
141
+ j,
142
+ A,
143
+ b,
144
+ z,
145
+ u,
146
+ r,
147
+ m,
148
+ i,
149
+ n,
150
+ c
151
+ ]
152
+ ), P = /* @__PURE__ */ N(
153
+ "section",
154
+ {
155
+ "aria-label": "Notifications",
156
+ className: de(
157
+ "fixed z-50 flex flex-col gap-3 pointer-events-none p-4 max-h-screen overflow-clip",
158
+ r === "top-right" && "top-0 right-0 items-end",
159
+ r === "top-left" && "top-0 left-0 items-start",
160
+ r === "bottom-right" && "bottom-0 right-0 items-end",
161
+ r === "bottom-left" && "bottom-0 left-0 items-start",
162
+ r === "top-center" && "top-0 left-1/2 -translate-x-1/2 items-center",
163
+ r === "bottom-center" && "bottom-0 left-1/2 -translate-x-1/2 items-center",
164
+ H
165
+ ),
166
+ children: f.map((e) => /* @__PURE__ */ N(
167
+ re,
168
+ {
169
+ ...e,
170
+ onDismiss: b,
171
+ placement: e.placement ?? r,
172
+ size: e.size ?? m,
173
+ variant: e.variant ?? i,
174
+ radius: e.radius ?? n,
175
+ animated: e.animated ?? c
176
+ },
177
+ e.id
178
+ ))
179
+ }
180
+ );
181
+ return /* @__PURE__ */ $(ae.Provider, { value: Q, children: [
182
+ F,
183
+ J && u ? C(P, u) : P
184
+ ] });
185
+ }
186
+ export {
187
+ fe as ToastProvider
188
+ };
@@ -1,4 +1,5 @@
1
+ export * from './ToastContext';
1
2
  export * from './ToastItem';
3
+ export * from './ToastProvider';
2
4
  export * from './toast-config';
3
- export * from './toast-context';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/toast/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/toast/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC"}
@@ -1,5 +1,6 @@
1
+ export * from "./ToastContext.js";
1
2
  export * from "./ToastItem.js";
3
+ export * from "./ToastProvider.js";
2
4
  export * from "./toast-config.js";
3
- export * from "./toast-context.js";
4
5
  export * from "./toast-styles.js";
5
6
  export * from "./use-pausable-timeout.js";
@@ -58,6 +58,31 @@ export interface ToastItemData {
58
58
  * @default true
59
59
  */
60
60
  dismissible?: boolean;
61
+ /**
62
+ * Placement for this specific toast.
63
+ * Overrides the provider's placement setting.
64
+ */
65
+ placement?: ToastPlacement;
66
+ /**
67
+ * Size for this specific toast.
68
+ * Overrides the provider's size setting.
69
+ */
70
+ size?: Size;
71
+ /**
72
+ * Variant for this specific toast.
73
+ * Overrides the provider's variant setting.
74
+ */
75
+ variant?: Variant;
76
+ /**
77
+ * Radius for this specific toast.
78
+ * Overrides the provider's radius setting.
79
+ */
80
+ radius?: Radius;
81
+ /**
82
+ * Animation setting for this specific toast.
83
+ * Overrides the provider's animated setting.
84
+ */
85
+ animated?: boolean;
61
86
  }
62
87
  /**
63
88
  * Theme configuration options for the Toast system.
@@ -124,6 +149,17 @@ export interface ToastConfig {
124
149
  */
125
150
  portal?: boolean;
126
151
  }
152
+ /**
153
+ * Options for showing a toast notification.
154
+ * Extends ToastItemData but makes id optional.
155
+ */
156
+ export interface ToastShowOptions extends Omit<ToastItemData, "id"> {
157
+ /**
158
+ * Optional unique identifier for the toast.
159
+ * If not provided, a random ID is generated.
160
+ */
161
+ id?: string;
162
+ }
127
163
  /**
128
164
  * Default config values registered for the Toast component.
129
165
  */
@@ -1 +1 @@
1
- {"version":3,"file":"toast-config.d.ts","sourceRoot":"","sources":["../../../src/components/toast/toast-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE1D;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAE7E;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB,WAAW,GACX,UAAU,GACV,cAAc,GACd,aAAa,GACb,YAAY,GACZ,eAAe,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;OAEG;IACH,OAAO,EAAE,SAAS,CAAC;IAEnB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ;;;;;OAKG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAShC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;mBAClB,IAAI;wBACQ,cAAc;sBACpB,OAAO;qBACX,MAAM;;;;;CAKd,CAAC;AAEX,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,2BAA2B;QACnC,KAAK,EAAE,WAAW,CAAC;KACpB;CACF"}
1
+ {"version":3,"file":"toast-config.d.ts","sourceRoot":"","sources":["../../../src/components/toast/toast-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE1D;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAE7E;;;GAGG;AACH,MAAM,MAAM,cAAc,GACtB,WAAW,GACX,UAAU,GACV,cAAc,GACd,aAAa,GACb,YAAY,GACZ,eAAe,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;;OAGG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAElB;;OAEG;IACH,OAAO,EAAE,SAAS,CAAC;IAEnB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B;;;OAGG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ;;;;;OAKG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;IACjE;;;OAGG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAShC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB;mBAClB,IAAI;wBACQ,cAAc;sBACpB,OAAO;qBACX,MAAM;;;;;CAKd,CAAC;AAEX,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,2BAA2B;QACnC,KAAK,EAAE,WAAW,CAAC;KACpB;CACF"}
@@ -0,0 +1,3 @@
1
+ import { IconProps } from './types';
2
+ export declare function ChevronUpIcon({ className, ...props }: IconProps): import("react").JSX.Element;
3
+ //# sourceMappingURL=ChevronUpIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChevronUpIcon.d.ts","sourceRoot":"","sources":["../../src/icons/ChevronUpIcon.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,wBAAgB,aAAa,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,SAAS,+BAa/D"}
@@ -0,0 +1,21 @@
1
+ "use client";
2
+ import { jsx as r } from "react/jsx-runtime";
3
+ import { cn as o } from "../utils/cn.js";
4
+ function s({ className: e, ...n }) {
5
+ return /* @__PURE__ */ r(
6
+ "svg",
7
+ {
8
+ "aria-hidden": "true",
9
+ className: o("w-4 h-4 fill-none stroke-current", e),
10
+ viewBox: "0 0 24 24",
11
+ strokeWidth: "2",
12
+ strokeLinecap: "round",
13
+ strokeLinejoin: "round",
14
+ ...n,
15
+ children: /* @__PURE__ */ r("path", { d: "m18 15-6-6-6 6" })
16
+ }
17
+ );
18
+ }
19
+ export {
20
+ s as ChevronUpIcon
21
+ };
@@ -1,8 +1,10 @@
1
1
  export { ArrowLeftIcon } from './ArrowLeftIcon';
2
2
  export { CalendarIcon } from './CalendarIcon';
3
3
  export { CheckIcon } from './CheckIcon';
4
+ export { ChevronDownIcon } from './ChevronDownIcon';
4
5
  export { ChevronLeftIcon } from './ChevronLeftIcon';
5
6
  export { ChevronRightIcon } from './ChevronRightIcon';
7
+ export { ChevronUpIcon } from './ChevronUpIcon';
6
8
  export { ClearIcon } from './ClearIcon';
7
9
  export { ClockIcon } from './ClockIcon';
8
10
  export { CloseIcon } from './CloseIcon';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/icons/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/icons/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC"}
package/dist/index.css CHANGED
@@ -108,14 +108,36 @@
108
108
  /**
109
109
  * Utility class to hide scrollbars while maintaining scrollability.
110
110
  */
111
- .scrollbar-hide::-webkit-scrollbar {
111
+ .scrollable-hidden::-webkit-scrollbar {
112
112
  display: none;
113
113
  }
114
- .scrollbar-hide {
114
+ .scrollable-hidden {
115
115
  -ms-overflow-style: none;
116
116
  scrollbar-width: none;
117
117
  }
118
118
 
119
+ /**
120
+ * Utility class to hide scrollbars completely and eliminate scrollbar spacing
121
+ * across all browsers while preserving scrollability.
122
+ */
123
+ .scrollbar-hide {
124
+ scrollbar-width: none;
125
+ -ms-overflow-style: none;
126
+ scrollbar-gutter: auto;
127
+ }
128
+
129
+ .scrollbar-hide::-webkit-scrollbar {
130
+ display: none;
131
+ width: 0;
132
+ height: 0;
133
+ }
134
+
135
+ .scrollbar-hide::-webkit-scrollbar-track,
136
+ .scrollbar-hide::-webkit-scrollbar-thumb {
137
+ background: transparent;
138
+ border: none;
139
+ }
140
+
119
141
  /* ─── Modal Animations ────────────────────────────────────────────────────── */
120
142
 
121
143
  @keyframes modalPopIn {
package/dist/index.d.ts CHANGED
@@ -36,6 +36,7 @@ export * from './components/multi-select';
36
36
  export * from './components/radio';
37
37
  export * from './components/resizable-screen';
38
38
  export * from './components/select';
39
+ export type { SelectMenuOption } from './components/select-menu';
39
40
  export * from './components/sidebar';
40
41
  export * from './components/spinner';
41
42
  export * from './components/switch';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;GAGG;AACH,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AAErC;;;GAGG;AACH,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAE7D;;;GAGG;AACH,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,SAAS,GACV,MAAM,eAAe,CAAC;AAEvB;;;GAGG;AACH,OAAO,EACL,iBAAiB,EACjB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;GAGG;AACH,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AAErC;;;GAGG;AACH,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAE7D;;;GAGG;AACH,YAAY,EACV,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,SAAS,GACV,MAAM,eAAe,CAAC;AAEvB;;;GAGG;AACH,OAAO,EACL,iBAAiB,EACjB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC"}