@agentero/design-system 0.5.1 → 0.7.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentero/design-system",
3
- "version": "0.5.1",
3
+ "version": "0.7.0",
4
4
  "description": "A React component library built with Tailwind CSS v4 and Radix UI primitives",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -37,6 +37,10 @@
37
37
  "types": "./src/divider/index.d.ts",
38
38
  "import": "./src/divider/index.js"
39
39
  },
40
+ "./dropdown-menu": {
41
+ "types": "./src/dropdown-menu/index.d.ts",
42
+ "import": "./src/dropdown-menu/index.js"
43
+ },
40
44
  "./loading": {
41
45
  "types": "./src/loading/index.d.ts",
42
46
  "import": "./src/loading/index.js"
@@ -45,6 +49,10 @@
45
49
  "types": "./src/status-ball/index.d.ts",
46
50
  "import": "./src/status-ball/index.js"
47
51
  },
52
+ "./toast": {
53
+ "types": "./src/toast/index.d.ts",
54
+ "import": "./src/toast/index.js"
55
+ },
48
56
  "./lib": {
49
57
  "types": "./lib/index.d.ts",
50
58
  "import": "./lib/index.js"
@@ -63,9 +71,11 @@
63
71
  },
64
72
  "dependencies": {
65
73
  "@radix-ui/react-avatar": "^1.1.11",
74
+ "@radix-ui/react-dropdown-menu": "^2.1.16",
66
75
  "@radix-ui/react-separator": "^1.1.8",
67
76
  "@radix-ui/react-slot": "^1.2.4",
68
77
  "clsx": "^2.1.1",
78
+ "sonner": "^2.0.7",
69
79
  "tailwind-merge": "^3.5.0",
70
80
  "tailwind-variants": "^3.2.2"
71
81
  }
@@ -0,0 +1,276 @@
1
+ import { ComponentProps } from 'react';
2
+ import { VariantProps } from 'tailwind-variants';
3
+ import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
4
+ /**
5
+ * Props for the DropdownMenu Root component.
6
+ *
7
+ * @property {boolean} [defaultOpen] - The open state of the dropdown menu when it is initially rendered. Use when you do not need to control its open state.
8
+ * @property {boolean} [open] - The controlled open state of the dropdown menu. Must be used in conjunction with onOpenChange.
9
+ * @property {(open: boolean) => void} [onOpenChange] - Event handler called when the open state of the dropdown menu changes.
10
+ * @property {boolean} [modal=true] - The modality of the dropdown menu. When set to true, interaction with outside elements will be disabled and only menu content will be visible to screen readers.
11
+ * @property {'ltr' | 'rtl'} [dir] - The reading direction of the dropdown menu when applicable. If omitted, inherits globally from DirectionProvider or assumes LTR (left-to-right) reading mode.
12
+ */
13
+ type RootProps = ComponentProps<typeof DropdownMenuPrimitive.Root>;
14
+ /**
15
+ * Props for the DropdownMenu Trigger component.
16
+ *
17
+ * @property {boolean} [asChild=false] - Change the default rendered element for the one passed as a child, merging their props and behavior.
18
+ * @property {string} [className] - Additional CSS classes to apply to the trigger.
19
+ *
20
+ * @dataAttribute {string} data-state - "open" | "closed"
21
+ * @dataAttribute {string} data-disabled - Present when disabled
22
+ */
23
+ type TriggerProps = ComponentProps<typeof DropdownMenuPrimitive.Trigger>;
24
+ /**
25
+ * Tailwind variant styles for the dropdown menu content.
26
+ * Includes animations for slide-in/out based on the side from which the menu appears.
27
+ */
28
+ declare const contentStyles: import('tailwind-variants').TVReturnType<{
29
+ hasTriggerWidth: {
30
+ true: string;
31
+ };
32
+ }, undefined, string[], {
33
+ hasTriggerWidth: {
34
+ true: string;
35
+ };
36
+ }, undefined, import('tailwind-variants').TVReturnType<{
37
+ hasTriggerWidth: {
38
+ true: string;
39
+ };
40
+ }, undefined, string[], unknown, unknown, undefined>>;
41
+ /**
42
+ * Props for the DropdownMenu Content component.
43
+ *
44
+ * @property {boolean} [loop=false] - When true, keyboard navigation will loop from last item to first, and vice versa.
45
+ * @property {'ltr' | 'rtl'} [dir] - The reading direction. If omitted, inherits from DirectionProvider or assumes LTR.
46
+ * @property {'top' | 'right' | 'bottom' | 'left'} [side='bottom'] - The preferred side of the trigger to render against when open.
47
+ * @property {number} [sideOffset=8] - The distance in pixels from the trigger.
48
+ * @property {'start' | 'center' | 'end'} [align='center'] - The preferred alignment against the trigger.
49
+ * @property {number} [alignOffset=0] - An offset in pixels from the "start" or "end" alignment options.
50
+ * @property {boolean} [avoidCollisions=true] - When true, overrides side and align to prevent collisions with boundary edges.
51
+ * @property {Element | null} [collisionBoundary] - The element used as the collision boundary.
52
+ * @property {number} [collisionPadding=0] - The distance in pixels from the boundary edges where collision detection should occur.
53
+ * @property {boolean} [hasTriggerWidth=false] - When true, sets the content width to match the trigger width using CSS variable.
54
+ * @property {string} [className] - Additional CSS classes to apply.
55
+ *
56
+ * @dataAttribute {string} data-state - "open" | "closed"
57
+ * @dataAttribute {string} data-side - "top" | "right" | "bottom" | "left"
58
+ * @dataAttribute {string} data-align - "start" | "end" | "center"
59
+ *
60
+ * @cssVariable --radix-dropdown-menu-content-transform-origin - The transform origin based on content side
61
+ * @cssVariable --radix-dropdown-menu-trigger-width - The width of the trigger element
62
+ * @cssVariable --radix-dropdown-menu-content-available-width - The available width before overflow
63
+ * @cssVariable --radix-dropdown-menu-content-available-height - The available height before overflow
64
+ */
65
+ type ContentProps = ComponentProps<typeof DropdownMenuPrimitive.Content> & VariantProps<typeof contentStyles>;
66
+ /**
67
+ * Props for the DropdownMenu Item component.
68
+ *
69
+ * @property {boolean} [disabled] - When true, prevents the user from interacting with the item.
70
+ * @property {(event: Event) => void} [onSelect] - Event handler called when the user selects an item (via mouse or keyboard).
71
+ * @property {string} [textValue] - Optional text used for typeahead purposes. By default, the typeahead behavior will use the .textContent of the item.
72
+ * @property {string} [className] - Additional CSS classes to apply.
73
+ *
74
+ * @dataAttribute {string} data-highlighted - Present when highlighted via keyboard navigation or hover
75
+ * @dataAttribute {string} data-disabled - Present when disabled
76
+ */
77
+ type ItemProps = ComponentProps<typeof DropdownMenuPrimitive.Item>;
78
+ /**
79
+ * Props for the DropdownMenu Separator component.
80
+ *
81
+ * @property {string} [className] - Additional CSS classes to apply.
82
+ */
83
+ type SeparatorProps = ComponentProps<typeof DropdownMenuPrimitive.Separator>;
84
+ /**
85
+ * Props for the DropdownMenu Label component.
86
+ *
87
+ * @property {string} [className] - Additional CSS classes to apply.
88
+ */
89
+ type LabelProps = ComponentProps<typeof DropdownMenuPrimitive.Label>;
90
+ /**
91
+ * Props for the DropdownMenu Sub component.
92
+ *
93
+ * @property {boolean} [defaultOpen] - The open state of the submenu when it is initially rendered. Use when you do not need to control its open state.
94
+ * @property {boolean} [open] - The controlled open state of the submenu. Must be used in conjunction with onOpenChange.
95
+ * @property {(open: boolean) => void} [onOpenChange] - Event handler called when the open state of the submenu changes.
96
+ */
97
+ type SubProps = ComponentProps<typeof DropdownMenuPrimitive.Sub>;
98
+ /**
99
+ * Props for the DropdownMenu SubTrigger component.
100
+ *
101
+ * @property {boolean} [disabled] - When true, prevents the user from interacting with the item.
102
+ * @property {string} [textValue] - Optional text used for typeahead purposes. By default, the typeahead behavior will use the .textContent of the item.
103
+ * @property {string} [className] - Additional CSS classes to apply.
104
+ *
105
+ * @dataAttribute {string} data-state - "open" | "closed"
106
+ * @dataAttribute {string} data-highlighted - Present when highlighted via keyboard navigation or hover
107
+ * @dataAttribute {string} data-disabled - Present when disabled
108
+ */
109
+ type SubTriggerProps = ComponentProps<typeof DropdownMenuPrimitive.SubTrigger>;
110
+ /**
111
+ * Props for the DropdownMenu SubContent component.
112
+ *
113
+ * @property {boolean} [loop=false] - When true, keyboard navigation will loop from last item to first, and vice versa.
114
+ * @property {number} [sideOffset=2] - The distance in pixels from the trigger.
115
+ * @property {number} [alignOffset=-5] - An offset in pixels from the "start" or "end" alignment options.
116
+ * @property {boolean} [avoidCollisions=true] - When true, overrides side and align to prevent collisions with boundary edges.
117
+ * @property {Element | null} [collisionBoundary] - The element used as the collision boundary.
118
+ * @property {number} [collisionPadding=0] - The distance in pixels from the boundary edges where collision detection should occur.
119
+ * @property {string} [className] - Additional CSS classes to apply.
120
+ *
121
+ * @dataAttribute {string} data-state - "open" | "closed"
122
+ * @dataAttribute {string} data-side - "top" | "right" | "bottom" | "left"
123
+ * @dataAttribute {string} data-align - "start" | "end" | "center"
124
+ *
125
+ * @cssVariable --radix-dropdown-menu-content-transform-origin - The transform origin based on content side
126
+ * @cssVariable --radix-dropdown-menu-content-available-width - The available width before overflow
127
+ * @cssVariable --radix-dropdown-menu-content-available-height - The available height before overflow
128
+ */
129
+ type SubContentProps = ComponentProps<typeof DropdownMenuPrimitive.SubContent>;
130
+ /**
131
+ * DropdownMenu is the compound component for attaching a menu of secondary
132
+ * actions to a button or icon trigger — edit/duplicate/delete rows, account
133
+ * menus, overflow affordances, and nested submenus. Built on Radix UI's
134
+ * DropdownMenu primitive, so keyboard navigation, focus trapping, typeahead,
135
+ * and viewport-collision detection come for free.
136
+ *
137
+ * Compose it from `Root` / `Trigger` / `Portal` / `Content` and fill the
138
+ * menu with `Item`, `Separator`, `Label`, and — for nested flows — `Sub` /
139
+ * `SubTrigger` / `SubContent`. Wrap content in `Portal` so the menu escapes
140
+ * ancestor `overflow:hidden` and z-index stacking contexts.
141
+ *
142
+ * Do **not** use DropdownMenu for primary navigation (use a real nav menu),
143
+ * for single-choice form input (use a `Select`), or for command palettes
144
+ * (use a dedicated command component). For radio/checkbox-style toggles,
145
+ * use Radix's `CheckboxItem` / `RadioItem` primitives directly — those
146
+ * parts are not exposed here yet.
147
+ *
148
+ * @summary Compound overlay menu for secondary actions, grouped items, and submenus
149
+ *
150
+ * @see {@link https://www.radix-ui.com/primitives/docs/components/dropdown-menu|Radix UI DropdownMenu}
151
+ *
152
+ * @example
153
+ * ```tsx
154
+ * import { DropdownMenu } from '@agentero/design-system/dropdown-menu';
155
+ *
156
+ * <DropdownMenu.Root>
157
+ * <DropdownMenu.Trigger>
158
+ * <IconMoreVert />
159
+ * </DropdownMenu.Trigger>
160
+ *
161
+ * <DropdownMenu.Portal>
162
+ * <DropdownMenu.Content side="bottom" align="end">
163
+ * <DropdownMenu.Label>Actions</DropdownMenu.Label>
164
+ *
165
+ * <DropdownMenu.Item onSelect={() => handleEdit()}>
166
+ * <IconEdit />
167
+ * Edit
168
+ * </DropdownMenu.Item>
169
+ *
170
+ * <DropdownMenu.Sub>
171
+ * <DropdownMenu.SubTrigger>Share</DropdownMenu.SubTrigger>
172
+ * <DropdownMenu.Portal>
173
+ * <DropdownMenu.SubContent>
174
+ * <DropdownMenu.Item>Email</DropdownMenu.Item>
175
+ * <DropdownMenu.Item>Slack</DropdownMenu.Item>
176
+ * </DropdownMenu.SubContent>
177
+ * </DropdownMenu.Portal>
178
+ * </DropdownMenu.Sub>
179
+ *
180
+ * <DropdownMenu.Separator />
181
+ *
182
+ * <DropdownMenu.Item
183
+ * onSelect={() => handleDelete()}
184
+ * disabled={!canDelete}
185
+ * >
186
+ * <IconDelete />
187
+ * Delete
188
+ * </DropdownMenu.Item>
189
+ * </DropdownMenu.Content>
190
+ * </DropdownMenu.Portal>
191
+ * </DropdownMenu.Root>
192
+ * ```
193
+ *
194
+ * @component
195
+ * @namespace DropdownMenu
196
+ */
197
+ export declare const DropdownMenu: {
198
+ /**
199
+ * The root container component for the dropdown menu.
200
+ * @see {@link Root}
201
+ */
202
+ Root: {
203
+ (props: RootProps): import("react/jsx-runtime").JSX.Element;
204
+ displayName: string;
205
+ };
206
+ /**
207
+ * The button that toggles the dropdown menu.
208
+ * @see {@link Trigger}
209
+ */
210
+ Trigger: {
211
+ ({ className, ...props }: TriggerProps): import("react/jsx-runtime").JSX.Element;
212
+ displayName: string;
213
+ };
214
+ /**
215
+ * Portals the content to the body element.
216
+ * @see {@link Portal}
217
+ */
218
+ Portal: import('react').FC<DropdownMenuPrimitive.DropdownMenuPortalProps>;
219
+ /**
220
+ * The popup component containing menu items.
221
+ * @see {@link Content}
222
+ */
223
+ Content: {
224
+ ({ className, hasTriggerWidth, sideOffset, ...props }: ContentProps): import("react/jsx-runtime").JSX.Element;
225
+ displayName: string;
226
+ };
227
+ /**
228
+ * An individual menu item.
229
+ * @see {@link Item}
230
+ */
231
+ Item: {
232
+ ({ className, ...props }: ItemProps): import("react/jsx-runtime").JSX.Element;
233
+ displayName: string;
234
+ };
235
+ /**
236
+ * A visual divider between menu items.
237
+ * @see {@link Separator}
238
+ */
239
+ Separator: {
240
+ ({ className, ...props }: SeparatorProps): import("react/jsx-runtime").JSX.Element;
241
+ displayName: string;
242
+ };
243
+ /**
244
+ * A non-interactive label for menu sections.
245
+ * @see {@link Label}
246
+ */
247
+ Label: {
248
+ ({ className, ...props }: LabelProps): import("react/jsx-runtime").JSX.Element;
249
+ displayName: string;
250
+ };
251
+ /**
252
+ * Container for submenu parts.
253
+ * @see {@link Sub}
254
+ */
255
+ Sub: {
256
+ (props: SubProps): import("react/jsx-runtime").JSX.Element;
257
+ displayName: string;
258
+ };
259
+ /**
260
+ * An item that opens a submenu.
261
+ * @see {@link SubTrigger}
262
+ */
263
+ SubTrigger: {
264
+ ({ className, children, ...props }: SubTriggerProps): import("react/jsx-runtime").JSX.Element;
265
+ displayName: string;
266
+ };
267
+ /**
268
+ * The popup component for submenu items.
269
+ * @see {@link SubContent}
270
+ */
271
+ SubContent: {
272
+ ({ className, sideOffset, alignOffset, ...props }: SubContentProps): import("react/jsx-runtime").JSX.Element;
273
+ displayName: string;
274
+ };
275
+ };
276
+ export {};
@@ -0,0 +1,111 @@
1
+ "use client";
2
+ import { cn as e } from "../../lib/utils.js";
3
+ import { IconArrowRight as t } from "./icons.js";
4
+ import { tv as n } from "tailwind-variants";
5
+ import { jsx as r, jsxs as i } from "react/jsx-runtime";
6
+ import * as a from "@radix-ui/react-dropdown-menu";
7
+ //#region src/dropdown-menu/dropdown-menu.tsx
8
+ var o = (e) => /* @__PURE__ */ r(a.Root, {
9
+ "data-slot": "dropdown-menu-root",
10
+ ...e
11
+ });
12
+ o.displayName = "DropdownMenu.Root";
13
+ var s = ({ className: t, ...n }) => /* @__PURE__ */ r(a.Trigger, {
14
+ "data-slot": "dropdown-menu-trigger",
15
+ className: e("cursor-pointer outline-none focus:outline-none", t),
16
+ ...n
17
+ });
18
+ s.displayName = "DropdownMenu.Trigger";
19
+ var c = a.Portal, l = n({
20
+ base: [
21
+ "z-[1000] flex flex-col rounded-lg bg-bg-default-base-primary p-1 shadow-xl",
22
+ "border border-border-default-base-primary",
23
+ "will-change-[transform,opacity]",
24
+ "data-[state=open]:animate-[dropdownSlideIn_200ms_ease-out]",
25
+ "data-[state=closed]:animate-[dropdownSlideOut_150ms_ease-in]",
26
+ "data-[side=bottom]:origin-top",
27
+ "data-[side=left]:origin-right",
28
+ "data-[side=right]:origin-left",
29
+ "data-[side=top]:origin-bottom",
30
+ "data-[side=bottom]:animate-[dropdownSlideInFromTop_200ms_ease-out]",
31
+ "data-[side=left]:animate-[dropdownSlideInFromRight_200ms_ease-out]",
32
+ "data-[side=right]:animate-[dropdownSlideInFromLeft_200ms_ease-out]",
33
+ "data-[side=top]:animate-[dropdownSlideInFromBottom_200ms_ease-out]"
34
+ ],
35
+ variants: { hasTriggerWidth: { true: "w-[var(--radix-dropdown-menu-trigger-width)]" } }
36
+ }), u = ({ className: e, hasTriggerWidth: t = !1, sideOffset: n = 8, ...i }) => /* @__PURE__ */ r(a.Content, {
37
+ "data-slot": "dropdown-menu-content",
38
+ sideOffset: n,
39
+ className: l({
40
+ hasTriggerWidth: t,
41
+ className: e
42
+ }),
43
+ ...i
44
+ });
45
+ u.displayName = "DropdownMenu.Content";
46
+ var d = ({ className: t, ...n }) => /* @__PURE__ */ r(a.Item, {
47
+ "data-slot": "dropdown-menu-item",
48
+ className: e("flex items-center gap-2 bg-bg-default-base-primary px-3 py-1.75 text-sm text-text-default-base-primary", "cursor-pointer rounded-md no-underline transition-colors outline-none", "min-w-40", "data-highlighted:bg-bg-default-base-primary-hover", "data-disabled:pointer-events-none data-disabled:cursor-not-allowed", "data-disabled:text-text-default-disable-primary", "data-disabled:active:bg-bg-default-base-primary", "[&>svg]:h-6", "[&_path]:fill-icon-default-base-tertiary", t),
49
+ ...n
50
+ });
51
+ d.displayName = "DropdownMenu.Item";
52
+ var f = ({ className: t, ...n }) => /* @__PURE__ */ r(a.Separator, {
53
+ "data-slot": "dropdown-menu-divider",
54
+ className: e("-mx-1 my-1 w-[calc(100%+0.5rem)] border-t border-border-menu-divider", t),
55
+ ...n
56
+ });
57
+ f.displayName = "DropdownMenu.Separator";
58
+ var p = ({ className: t, ...n }) => /* @__PURE__ */ r(a.Label, {
59
+ "data-slot": "dropdown-menu-label",
60
+ className: e("px-3 py-1 text-xs text-text-default-base-tertiary", t),
61
+ ...n
62
+ });
63
+ p.displayName = "DropdownMenu.Label";
64
+ var m = (e) => /* @__PURE__ */ r(a.Sub, {
65
+ "data-slot": "dropdown-menu-sub",
66
+ ...e
67
+ });
68
+ m.displayName = "DropdownMenu.Sub";
69
+ var h = ({ className: n, children: o, ...s }) => /* @__PURE__ */ i(a.SubTrigger, {
70
+ "data-slot": "dropdown-menu-sub-trigger",
71
+ className: e("flex items-center gap-2 bg-bg-default-base-primary px-3 py-1.75 text-sm text-text-default-base-primary", "cursor-pointer rounded-md no-underline transition-colors outline-none", "min-w-40", "data-highlighted:bg-bg-default-base-primary-hover", "data-[state=open]:bg-bg-default-base-primary-hover", "data-disabled:pointer-events-none data-disabled:cursor-not-allowed", "data-disabled:text-text-default-disable-primary", "[&>svg]:h-6", "[&_path]:fill-icon-default-base-tertiary", n),
72
+ ...s,
73
+ children: [o, /* @__PURE__ */ r(t, { className: "ml-auto h-4 w-4 [&>path]:fill-icon-default-base-tertiary" })]
74
+ });
75
+ h.displayName = "DropdownMenu.SubTrigger";
76
+ var g = n({ base: [
77
+ "z-[1000] flex flex-col rounded-lg bg-bg-default-base-primary p-1 shadow-xl",
78
+ "border border-border-default-base-primary",
79
+ "will-change-[transform,opacity]",
80
+ "data-[state=open]:animate-[dropdownSlideIn_200ms_ease-out]",
81
+ "data-[state=closed]:animate-[dropdownSlideOut_150ms_ease-in]",
82
+ "data-[side=bottom]:origin-top",
83
+ "data-[side=left]:origin-right",
84
+ "data-[side=right]:origin-left",
85
+ "data-[side=top]:origin-bottom",
86
+ "data-[side=bottom]:animate-[dropdownSlideInFromTop_200ms_ease-out]",
87
+ "data-[side=left]:animate-[dropdownSlideInFromRight_200ms_ease-out]",
88
+ "data-[side=right]:animate-[dropdownSlideInFromLeft_200ms_ease-out]",
89
+ "data-[side=top]:animate-[dropdownSlideInFromBottom_200ms_ease-out]"
90
+ ] }), _ = ({ className: e, sideOffset: t = 2, alignOffset: n = -5, ...i }) => /* @__PURE__ */ r(a.SubContent, {
91
+ "data-slot": "dropdown-menu-sub-content",
92
+ sideOffset: t,
93
+ alignOffset: n,
94
+ className: g({ className: e }),
95
+ ...i
96
+ });
97
+ _.displayName = "DropdownMenu.SubContent";
98
+ var v = {
99
+ Root: o,
100
+ Trigger: s,
101
+ Portal: c,
102
+ Content: u,
103
+ Item: d,
104
+ Separator: f,
105
+ Label: p,
106
+ Sub: m,
107
+ SubTrigger: h,
108
+ SubContent: _
109
+ };
110
+ //#endregion
111
+ export { v as DropdownMenu };
@@ -0,0 +1,9 @@
1
+ import { SVGProps } from 'react';
2
+ /**
3
+ * Right-arrow indicator rendered inside `DropdownMenu.SubTrigger` to signal
4
+ * that a submenu will open. Fill color is supplied by the surrounding class
5
+ * (`[&>path]:fill-...`) so the icon inherits the trigger's color token.
6
+ *
7
+ * @summary 24px arrow-right icon used as the submenu affordance
8
+ */
9
+ export declare const IconArrowRight: (props: SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ //#region src/dropdown-menu/icons.tsx
3
+ var t = (t) => /* @__PURE__ */ e("svg", {
4
+ width: "24",
5
+ height: "24",
6
+ viewBox: "0 0 24 24",
7
+ fill: "none",
8
+ xmlns: "http://www.w3.org/2000/svg",
9
+ ...t,
10
+ children: /* @__PURE__ */ e("path", { d: "M10.25 9.92397C10.25 9.51885 10.4349 9.23841 10.8048 9.08264C11.1747 8.92688 11.5019 8.9913 11.7865 9.27592L14.0211 11.5105C14.1147 11.6041 14.1833 11.7028 14.2269 11.8066C14.2705 11.9105 14.2922 12.0227 14.2922 12.1432C14.2922 12.2637 14.2705 12.3759 14.2269 12.4797C14.1833 12.5836 14.1147 12.6823 14.0211 12.7759L11.7865 15.0105C11.5019 15.2951 11.1747 15.3595 10.8048 15.2037C10.4349 15.048 10.25 14.7675 10.25 14.3624L10.25 9.92397Z" })
11
+ });
12
+ //#endregion
13
+ export { t as IconArrowRight };
@@ -0,0 +1 @@
1
+ export { DropdownMenu } from './dropdown-menu';
@@ -0,0 +1,2 @@
1
+ import { DropdownMenu as e } from "./dropdown-menu.js";
2
+ export { e as DropdownMenu };
@@ -0,0 +1,36 @@
1
+ import { SVGProps } from 'react';
2
+ /**
3
+ * Filled check-circle icon used for success-type toasts. Inherits color
4
+ * from the surrounding text via `currentColor` when paired with Tailwind's
5
+ * `fill-current` utility on the `<path>`.
6
+ *
7
+ * @summary 24px check-circle icon for success toasts
8
+ */
9
+ export declare const IconCheckCircle: (props: SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
10
+ /**
11
+ * Outlined error icon used for error-type toasts.
12
+ *
13
+ * @summary 24px error-outline icon for error toasts
14
+ */
15
+ export declare const IconErrorOutline: (props: SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
16
+ /**
17
+ * Outlined warning triangle icon used for warning-type toasts.
18
+ *
19
+ * @summary 24px warning icon for warning toasts
20
+ */
21
+ export declare const IconWarning: (props: SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
22
+ /**
23
+ * Filled info icon used for neutral and info-type toasts. Inherits color
24
+ * from the surrounding text via `currentColor`.
25
+ *
26
+ * @summary 24px info-filled icon for neutral and info toasts
27
+ */
28
+ export declare const IconInfoFilled: (props: SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
29
+ /**
30
+ * Smaller close (X) icon used for the Toast dismiss button. The glyph sits
31
+ * closer to the viewBox edges than Alert's `IconClose`, keeping the visual
32
+ * weight balanced with the Toast content row.
33
+ *
34
+ * @summary 24px close icon sized for the Toast dismiss button
35
+ */
36
+ export declare const IconCloseSmall: (props: SVGProps<SVGSVGElement>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,45 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ //#region src/toast/icons.tsx
3
+ var t = (t) => /* @__PURE__ */ e("svg", {
4
+ width: "24",
5
+ height: "24",
6
+ viewBox: "0 0 24 24",
7
+ fill: "none",
8
+ xmlns: "http://www.w3.org/2000/svg",
9
+ ...t,
10
+ children: /* @__PURE__ */ e("path", { d: "M10.5808 14.1462L8.25765 11.8231C8.1192 11.6846 7.94517 11.6138 7.73555 11.6106C7.52593 11.6074 7.34869 11.6782 7.20382 11.8231C7.05896 11.968 6.98653 12.1436 6.98653 12.35C6.98653 12.5564 7.05896 12.732 7.20382 12.8769L9.94805 15.6211C10.1288 15.8019 10.3397 15.8923 10.5808 15.8923C10.8218 15.8923 11.0327 15.8019 11.2134 15.6211L16.7769 10.0577C16.9153 9.91923 16.9862 9.7452 16.9894 9.53558C16.9926 9.32596 16.9218 9.14872 16.7769 9.00386C16.632 8.85899 16.4564 8.78656 16.25 8.78656C16.0436 8.78656 15.8679 8.85899 15.7231 9.00386L10.5808 14.1462ZM12.0016 21.5C10.6877 21.5 9.45268 21.2506 8.29655 20.752C7.1404 20.2533 6.13472 19.5766 5.2795 18.7217C4.42427 17.8669 3.74721 16.8616 3.24833 15.706C2.74944 14.5504 2.5 13.3156 2.5 12.0017C2.5 10.6877 2.74933 9.45271 3.248 8.29658C3.74667 7.14043 4.42342 6.13475 5.27825 5.27953C6.1331 4.4243 7.13834 3.74724 8.29398 3.24836C9.44959 2.74947 10.6844 2.50003 11.9983 2.50003C13.3122 2.50003 14.5473 2.74936 15.7034 3.24803C16.8596 3.7467 17.8652 4.42345 18.7205 5.27828C19.5757 6.13313 20.2527 7.13837 20.7516 8.29401C21.2505 9.44962 21.5 10.6844 21.5 11.9983C21.5 13.3123 21.2506 14.5473 20.752 15.7034C20.2533 16.8596 19.5765 17.8653 18.7217 18.7205C17.8669 19.5757 16.8616 20.2528 15.706 20.7517C14.5504 21.2505 13.3156 21.5 12.0016 21.5ZM12 20C14.2333 20 16.125 19.225 17.675 17.675C19.225 16.125 20 14.2333 20 12C20 9.76667 19.225 7.87501 17.675 6.32501C16.125 4.77501 14.2333 4.00001 12 4.00001C9.76664 4.00001 7.87498 4.77501 6.32498 6.32501C4.77498 7.87501 3.99998 9.76667 3.99998 12C3.99998 14.2333 4.77498 16.125 6.32498 17.675C7.87498 19.225 9.76664 20 12 20Z" })
11
+ }), n = (t) => /* @__PURE__ */ e("svg", {
12
+ xmlns: "http://www.w3.org/2000/svg",
13
+ width: "24",
14
+ height: "24",
15
+ viewBox: "0 0 24 24",
16
+ fill: "none",
17
+ ...t,
18
+ children: /* @__PURE__ */ e("path", { d: "M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z" })
19
+ }), r = (t) => /* @__PURE__ */ e("svg", {
20
+ width: "24",
21
+ height: "24",
22
+ viewBox: "0 0 24 24",
23
+ fill: "none",
24
+ xmlns: "http://www.w3.org/2000/svg",
25
+ ...t,
26
+ children: /* @__PURE__ */ e("path", { d: "M3.42555 20.4999C3.25605 20.4999 3.10382 20.4585 2.96887 20.3756C2.83392 20.2928 2.72897 20.1836 2.654 20.048C2.57602 19.9134 2.53312 19.7676 2.52532 19.6105C2.51752 19.4535 2.5599 19.2979 2.65245 19.1439L11.2132 4.35609C11.3057 4.20206 11.4216 4.08819 11.5607 4.01447C11.6998 3.94074 11.8462 3.90387 12.0001 3.90387C12.1539 3.90387 12.3004 3.94074 12.4395 4.01447C12.5786 4.08819 12.6944 4.20206 12.787 4.35609L21.3477 19.1439C21.4403 19.2979 21.4827 19.4535 21.4749 19.6105C21.4671 19.7676 21.4242 19.9134 21.3462 20.048C21.2712 20.1836 21.1663 20.2928 21.0313 20.3756C20.8964 20.4585 20.7441 20.4999 20.5746 20.4999H3.42555ZM4.4501 19H19.5501L12.0001 5.99997L4.4501 19ZM12.0001 17.8076C12.2289 17.8076 12.4208 17.7302 12.5756 17.5754C12.7304 17.4206 12.8078 17.2288 12.8078 17C12.8078 16.7711 12.7304 16.5793 12.5756 16.4245C12.4208 16.2697 12.2289 16.1923 12.0001 16.1923C11.7712 16.1923 11.5794 16.2697 11.4246 16.4245C11.2698 16.5793 11.1924 16.7711 11.1924 17C11.1924 17.2288 11.2698 17.4206 11.4246 17.5754C11.5794 17.7302 11.7712 17.8076 12.0001 17.8076ZM12.0004 15.1923C12.213 15.1923 12.3911 15.1204 12.5347 14.9767C12.6783 14.8329 12.7501 14.6548 12.7501 14.4423V10.9423C12.7501 10.7298 12.6782 10.5517 12.5344 10.4079C12.3906 10.2642 12.2124 10.1923 11.9998 10.1923C11.7872 10.1923 11.6091 10.2642 11.4655 10.4079C11.3219 10.5517 11.2501 10.7298 11.2501 10.9423V14.4423C11.2501 14.6548 11.322 14.8329 11.4658 14.9767C11.6096 15.1204 11.7878 15.1923 12.0004 15.1923Z" })
27
+ }), i = (t) => /* @__PURE__ */ e("svg", {
28
+ width: "24",
29
+ height: "24",
30
+ viewBox: "0 0 24 24",
31
+ fill: "none",
32
+ xmlns: "http://www.w3.org/2000/svg",
33
+ ...t,
34
+ children: /* @__PURE__ */ e("path", { d: "M12.0003 16.75C12.2129 16.75 12.391 16.6781 12.5345 16.5343C12.6782 16.3906 12.75 16.2125 12.75 16V11.75C12.75 11.5375 12.6781 11.3593 12.5343 11.2155C12.3904 11.0718 12.2122 11 11.9998 11C11.7871 11 11.609 11.0718 11.4655 11.2155C11.3218 11.3593 11.25 11.5375 11.25 11.75V16C11.25 16.2125 11.3219 16.3906 11.4658 16.5343C11.6096 16.6781 11.7878 16.75 12.0003 16.75ZM12 9.2885C12.2288 9.2885 12.4207 9.21108 12.5755 9.05625C12.7303 8.90142 12.8077 8.70958 12.8077 8.48075C12.8077 8.25192 12.7303 8.06008 12.5755 7.90525C12.4207 7.75058 12.2288 7.67325 12 7.67325C11.7712 7.67325 11.5793 7.75058 11.4245 7.90525C11.2697 8.06008 11.1923 8.25192 11.1923 8.48075C11.1923 8.70958 11.2697 8.90142 11.4245 9.05625C11.5793 9.21108 11.7712 9.2885 12 9.2885ZM12.0017 21.5C10.6877 21.5 9.45267 21.2507 8.2965 20.752C7.14033 20.2533 6.13467 19.5766 5.2795 18.7218C4.42433 17.8669 3.74725 16.8617 3.24825 15.706C2.74942 14.5503 2.5 13.3156 2.5 12.0017C2.5 10.6877 2.74933 9.45267 3.248 8.2965C3.74667 7.14033 4.42342 6.13467 5.27825 5.2795C6.13308 4.42433 7.13833 3.74725 8.294 3.24825C9.44967 2.74942 10.6844 2.5 11.9983 2.5C13.3123 2.5 14.5473 2.74933 15.7035 3.248C16.8597 3.74667 17.8653 4.42342 18.7205 5.27825C19.5757 6.13308 20.2528 7.13833 20.7518 8.294C21.2506 9.44967 21.5 10.6844 21.5 11.9983C21.5 13.3123 21.2507 14.5473 20.752 15.7035C20.2533 16.8597 19.5766 17.8653 18.7218 18.7205C17.8669 19.5757 16.8617 20.2528 15.706 20.7518C14.5503 21.2506 13.3156 21.5 12.0017 21.5Z" })
35
+ }), a = (t) => /* @__PURE__ */ e("svg", {
36
+ width: "24",
37
+ height: "24",
38
+ viewBox: "0 0 24 24",
39
+ fill: "none",
40
+ xmlns: "http://www.w3.org/2000/svg",
41
+ ...t,
42
+ children: /* @__PURE__ */ e("path", { d: "M12 13.0634L8.75381 16.3096C8.60895 16.4545 8.4333 16.5253 8.22689 16.5221C8.02049 16.5189 7.84485 16.4449 7.69999 16.3C7.55512 16.1551 7.48269 15.9779 7.48269 15.7683C7.48269 15.5587 7.55512 15.3814 7.69999 15.2366L10.9366 12L7.69036 8.77883C7.5455 8.63396 7.47467 8.45672 7.47789 8.2471C7.48109 8.03749 7.55512 7.86024 7.69999 7.71538C7.84485 7.57051 8.0221 7.49808 8.23171 7.49808C8.44131 7.49808 8.61855 7.57051 8.76341 7.71538L12 10.9616L15.2212 7.71538C15.366 7.57051 15.5417 7.49808 15.7481 7.49808C15.9545 7.49808 16.1301 7.57051 16.275 7.71538C16.4301 7.87051 16.5077 8.05032 16.5077 8.2548C16.5077 8.45929 16.4301 8.63396 16.275 8.77883L13.0384 12L16.2846 15.2462C16.4295 15.391 16.5019 15.5667 16.5019 15.7731C16.5019 15.9795 16.4295 16.1551 16.2846 16.3C16.1295 16.4551 15.9497 16.5327 15.7452 16.5327C15.5407 16.5327 15.366 16.4551 15.2212 16.3L12 13.0634Z" })
43
+ });
44
+ //#endregion
45
+ export { t as IconCheckCircle, a as IconCloseSmall, n as IconErrorOutline, i as IconInfoFilled, r as IconWarning };
@@ -0,0 +1,2 @@
1
+ export { Toast, toast, toastRecipe } from './toast';
2
+ export type { ToastProps, ToastOptions, ToastType, ToastAction } from './toast';
@@ -0,0 +1,2 @@
1
+ import { Toast as e, toast as t, toastRecipe as n } from "./toast.js";
2
+ export { e as Toast, t as toast, n as toastRecipe };