@dilipod/ui 0.2.5 → 0.2.7

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.
@@ -4,8 +4,10 @@ export interface FormFieldProps {
4
4
  label?: string;
5
5
  /** Error message to display */
6
6
  error?: string;
7
- /** Helper text to display */
7
+ /** Helper text to display below the field */
8
8
  helperText?: string;
9
+ /** Hint element to display on the right side of the label (e.g., link) */
10
+ hint?: React.ReactNode;
9
11
  /** Whether the field is required */
10
12
  required?: boolean;
11
13
  /** Field ID for accessibility */
@@ -1 +1 @@
1
- {"version":3,"file":"form-field.d.ts","sourceRoot":"","sources":["../../src/components/form-field.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAM9B,MAAM,WAAW,cAAc;IAC7B,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,6BAA6B;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,iCAAiC;IACjC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4CAA4C;IAC5C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED,QAAA,MAAM,SAAS,uFA4Cd,CAAA;AAGD,OAAO,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"form-field.d.ts","sourceRoot":"","sources":["../../src/components/form-field.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,MAAM,WAAW,cAAc;IAC7B,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,0EAA0E;IAC1E,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,iCAAiC;IACjC,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4CAA4C;IAC5C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED,QAAA,MAAM,SAAS,uFAiDd,CAAA;AAGD,OAAO,EAAE,SAAS,EAAE,CAAA"}
@@ -27,6 +27,14 @@ export interface SidebarProps extends React.HTMLAttributes<HTMLElement> {
27
27
  weight?: 'fill' | 'regular';
28
28
  }>;
29
29
  };
30
+ /** Optional assistant button configuration */
31
+ assistantButton?: {
32
+ label?: string;
33
+ icon?: React.ComponentType<React.SVGProps<SVGSVGElement> & {
34
+ weight?: 'fill' | 'regular';
35
+ }>;
36
+ onClick?: () => void;
37
+ };
30
38
  /** Header content (e.g., Logo) */
31
39
  header?: React.ReactNode;
32
40
  /** Custom Link component (e.g., Next.js Link) */
@@ -1 +1 @@
1
- {"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../src/components/sidebar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC,CAAA;CAC3F;AAED,MAAM,WAAW,YAAa,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IACrE,4CAA4C;IAC5C,OAAO,CAAC,EAAE,cAAc,EAAE,CAAA;IAC1B,8CAA8C;IAC9C,SAAS,CAAC,EAAE,cAAc,EAAE,CAAA;IAC5B,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2CAA2C;IAC3C,YAAY,CAAC,EAAE;QACb,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;KACrB,CAAA;IACD,iCAAiC;IACjC,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG;YAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SAAE,CAAC,CAAA;KAC5F,CAAA;IACD,kCAAkC;IAClC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,iDAAiD;IACjD,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACtG;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,cAAc,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4BAA4B;IAC5B,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;CAC5H;AAED,QAAA,MAAM,cAAc,+FAsCnB,CAAA;AAGD,QAAA,MAAM,OAAO,kFAqGZ,CAAA;AAGD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAA"}
1
+ {"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../src/components/sidebar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC,CAAA;CAC3F;AAED,MAAM,WAAW,YAAa,SAAQ,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IACrE,4CAA4C;IAC5C,OAAO,CAAC,EAAE,cAAc,EAAE,CAAA;IAC1B,8CAA8C;IAC9C,SAAS,CAAC,EAAE,cAAc,EAAE,CAAA;IAC5B,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,2CAA2C;IAC3C,YAAY,CAAC,EAAE;QACb,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;KACrB,CAAA;IACD,iCAAiC;IACjC,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG;YAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SAAE,CAAC,CAAA;KAC5F,CAAA;IACD,8CAA8C;IAC9C,eAAe,CAAC,EAAE;QAChB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,IAAI,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG;YAAE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;SAAE,CAAC,CAAA;QAC3F,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;KACrB,CAAA;IACD,kCAAkC;IAClC,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,iDAAiD;IACjD,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CACtG;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,cAAc,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4BAA4B;IAC5B,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;CAC5H;AAED,QAAA,MAAM,cAAc,+FAsCnB,CAAA;AAGD,QAAA,MAAM,OAAO,kFAiHZ,CAAA;AAGD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAA"}
@@ -0,0 +1,19 @@
1
+ import * as React from 'react';
2
+ import * as ToastPrimitives from '@radix-ui/react-toast';
3
+ import { type VariantProps } from 'class-variance-authority';
4
+ declare const ToastProvider: React.FC<ToastPrimitives.ToastProviderProps>;
5
+ declare const ToastViewport: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastViewportProps & React.RefAttributes<HTMLOListElement>, "ref"> & React.RefAttributes<HTMLOListElement>>;
6
+ declare const Toast: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastProps & React.RefAttributes<HTMLLIElement>, "ref"> & VariantProps<(props?: ({
7
+ variant?: "default" | "success" | "warning" | "error" | null | undefined;
8
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string> & React.RefAttributes<HTMLLIElement>>;
9
+ declare const ToastAction: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastActionProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
10
+ declare const ToastClose: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastCloseProps & React.RefAttributes<HTMLButtonElement>, "ref"> & React.RefAttributes<HTMLButtonElement>>;
11
+ declare const ToastTitle: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastTitleProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
12
+ declare const ToastDescription: React.ForwardRefExoticComponent<Omit<ToastPrimitives.ToastDescriptionProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
13
+ type ToastProps = React.ComponentPropsWithoutRef<typeof Toast>;
14
+ type ToastActionElement = React.ReactElement<typeof ToastAction>;
15
+ declare const ToastIcon: ({ variant }: {
16
+ variant?: "default" | "success" | "error" | "warning";
17
+ }) => import("react/jsx-runtime").JSX.Element;
18
+ export { type ToastProps, type ToastActionElement, ToastProvider, ToastViewport, Toast, ToastTitle, ToastDescription, ToastClose, ToastAction, ToastIcon, };
19
+ //# sourceMappingURL=toast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../src/components/toast.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,eAAe,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,aAAa,8CAA2B,CAAA;AAE9C,QAAA,MAAM,aAAa,kKAYjB,CAAA;AAoBF,QAAA,MAAM,KAAK;;qHAYT,CAAA;AAGF,QAAA,MAAM,WAAW,kKAYf,CAAA;AAGF,QAAA,MAAM,UAAU,iKAed,CAAA;AAGF,QAAA,MAAM,UAAU,2JASd,CAAA;AAGF,QAAA,MAAM,gBAAgB,iKASpB,CAAA;AAGF,KAAK,UAAU,GAAG,KAAK,CAAC,wBAAwB,CAAC,OAAO,KAAK,CAAC,CAAA;AAE9D,KAAK,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,WAAW,CAAC,CAAA;AAGhE,QAAA,MAAM,SAAS,GAAI,aAAa;IAAE,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAA;CAAE,4CAWxF,CAAA;AAED,OAAO,EACL,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,aAAa,EACb,aAAa,EACb,KAAK,EACL,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,SAAS,GACV,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare function Toaster(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=toaster.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toaster.d.ts","sourceRoot":"","sources":["../../src/components/toaster.tsx"],"names":[],"mappings":"AAaA,wBAAgB,OAAO,4CA0BtB"}
@@ -0,0 +1,45 @@
1
+ import * as React from 'react';
2
+ import type { ToastActionElement, ToastProps } from './toast';
3
+ type ToasterToast = ToastProps & {
4
+ id: string;
5
+ title?: React.ReactNode;
6
+ description?: React.ReactNode;
7
+ action?: ToastActionElement;
8
+ };
9
+ declare const actionTypes: {
10
+ readonly ADD_TOAST: "ADD_TOAST";
11
+ readonly UPDATE_TOAST: "UPDATE_TOAST";
12
+ readonly DISMISS_TOAST: "DISMISS_TOAST";
13
+ readonly REMOVE_TOAST: "REMOVE_TOAST";
14
+ };
15
+ type ActionType = typeof actionTypes;
16
+ type Action = {
17
+ type: ActionType['ADD_TOAST'];
18
+ toast: ToasterToast;
19
+ } | {
20
+ type: ActionType['UPDATE_TOAST'];
21
+ toast: Partial<ToasterToast>;
22
+ } | {
23
+ type: ActionType['DISMISS_TOAST'];
24
+ toastId?: ToasterToast['id'];
25
+ } | {
26
+ type: ActionType['REMOVE_TOAST'];
27
+ toastId?: ToasterToast['id'];
28
+ };
29
+ interface State {
30
+ toasts: ToasterToast[];
31
+ }
32
+ export declare const reducer: (state: State, action: Action) => State;
33
+ type Toast = Omit<ToasterToast, 'id'>;
34
+ declare function toast({ ...props }: Toast): {
35
+ id: string;
36
+ dismiss: () => void;
37
+ update: (props: ToasterToast) => void;
38
+ };
39
+ declare function useToast(): {
40
+ toast: typeof toast;
41
+ dismiss: (toastId?: string) => void;
42
+ toasts: ToasterToast[];
43
+ };
44
+ export { useToast, toast };
45
+ //# sourceMappingURL=use-toast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-toast.d.ts","sourceRoot":"","sources":["../../src/components/use-toast.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAK7D,KAAK,YAAY,GAAG,UAAU,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,MAAM,CAAC,EAAE,kBAAkB,CAAA;CAC5B,CAAA;AAED,QAAA,MAAM,WAAW;;;;;CAKP,CAAA;AASV,KAAK,UAAU,GAAG,OAAO,WAAW,CAAA;AAEpC,KAAK,MAAM,GACP;IACE,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,CAAA;IAC7B,KAAK,EAAE,YAAY,CAAA;CACpB,GACD;IACE,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,CAAA;IAChC,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC,CAAA;CAC7B,GACD;IACE,IAAI,EAAE,UAAU,CAAC,eAAe,CAAC,CAAA;IACjC,OAAO,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;CAC7B,GACD;IACE,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,CAAA;IAChC,OAAO,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAA;CAC7B,CAAA;AAEL,UAAU,KAAK;IACb,MAAM,EAAE,YAAY,EAAE,CAAA;CACvB;AAoBD,eAAO,MAAM,OAAO,GAAI,OAAO,KAAK,EAAE,QAAQ,MAAM,KAAG,KAmDtD,CAAA;AAaD,KAAK,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;AAErC,iBAAS,KAAK,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK;;;oBAGT,YAAY;EAwBpC;AAED,iBAAS,QAAQ;;wBAgBO,MAAM;YApIpB,YAAY,EAAE;EAsIvB;AAED,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA"}
package/dist/index.d.ts CHANGED
@@ -41,6 +41,10 @@ export type { FormFieldProps } from './components/form-field';
41
41
  export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption, } from './components/table';
42
42
  export { Divider } from './components/divider';
43
43
  export type { DividerProps } from './components/divider';
44
+ export { ToastProvider, ToastViewport, Toast, ToastTitle, ToastDescription, ToastClose, ToastAction, ToastIcon, } from './components/toast';
45
+ export type { ToastProps, ToastActionElement } from './components/toast';
46
+ export { Toaster } from './components/toaster';
47
+ export { useToast, toast } from './components/use-toast';
44
48
  export { cn } from './lib/utils';
45
49
  export * from './icons';
46
50
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -13,6 +13,7 @@ var AccordionPrimitive = require('@radix-ui/react-accordion');
13
13
  var NavigationMenuPrimitive = require('@radix-ui/react-navigation-menu');
14
14
  var AvatarPrimitive = require('@radix-ui/react-avatar');
15
15
  var DropdownMenuPrimitive = require('@radix-ui/react-dropdown-menu');
16
+ var ToastPrimitives = require('@radix-ui/react-toast');
16
17
 
17
18
  function _interopNamespace(e) {
18
19
  if (e && e.__esModule) return e;
@@ -38,6 +39,7 @@ var AccordionPrimitive__namespace = /*#__PURE__*/_interopNamespace(AccordionPrim
38
39
  var NavigationMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(NavigationMenuPrimitive);
39
40
  var AvatarPrimitive__namespace = /*#__PURE__*/_interopNamespace(AvatarPrimitive);
40
41
  var DropdownMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(DropdownMenuPrimitive);
42
+ var ToastPrimitives__namespace = /*#__PURE__*/_interopNamespace(ToastPrimitives);
41
43
 
42
44
  // src/components/button.tsx
43
45
  function cn(...inputs) {
@@ -1168,6 +1170,7 @@ var Sidebar = React21__namespace.forwardRef(
1168
1170
  pathname,
1169
1171
  searchButton,
1170
1172
  helpLink,
1173
+ assistantButton,
1171
1174
  header,
1172
1175
  LinkComponent,
1173
1176
  className,
@@ -1213,7 +1216,7 @@ var Sidebar = React21__namespace.forwardRef(
1213
1216
  item.name
1214
1217
  )) }),
1215
1218
  children,
1216
- (bottomNav.length > 0 || helpLink) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-3 pb-3 space-y-1 border-t pt-3", children: [
1219
+ (bottomNav.length > 0 || helpLink || assistantButton) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "px-3 pb-3 space-y-1 border-t pt-3", children: [
1217
1220
  bottomNav.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
1218
1221
  SidebarNavItem,
1219
1222
  {
@@ -1223,6 +1226,17 @@ var Sidebar = React21__namespace.forwardRef(
1223
1226
  },
1224
1227
  item.name
1225
1228
  )),
1229
+ assistantButton && /* @__PURE__ */ jsxRuntime.jsxs(
1230
+ "button",
1231
+ {
1232
+ onClick: assistantButton.onClick,
1233
+ className: "flex w-full items-center gap-3 rounded-sm px-3 py-2 text-sm bg-[var(--cyan)]/10 text-[var(--black)] hover:bg-[var(--cyan)]/20 transition-colors font-medium",
1234
+ children: [
1235
+ assistantButton.icon && /* @__PURE__ */ jsxRuntime.jsx(assistantButton.icon, { className: "h-4 w-4 text-[var(--cyan)]" }),
1236
+ assistantButton.label
1237
+ ]
1238
+ }
1239
+ ),
1226
1240
  helpLink && /* @__PURE__ */ jsxRuntime.jsxs(
1227
1241
  "a",
1228
1242
  {
@@ -1329,7 +1343,7 @@ var CodeBlock = React21__namespace.forwardRef(
1329
1343
  );
1330
1344
  CodeBlock.displayName = "CodeBlock";
1331
1345
  var FormField = React21__namespace.forwardRef(
1332
- ({ label, error, helperText, required, id, className, children, ...props }, ref) => {
1346
+ ({ label, error, helperText, hint, required, id, className, children, ...props }, ref) => {
1333
1347
  const fieldId = id || React21__namespace.useId();
1334
1348
  const errorId = `${fieldId}-error`;
1335
1349
  const helperId = `${fieldId}-helper`;
@@ -1349,7 +1363,10 @@ var FormField = React21__namespace.forwardRef(
1349
1363
  return child;
1350
1364
  });
1351
1365
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: cn("space-y-2", className), ...props, children: [
1352
- label && /* @__PURE__ */ jsxRuntime.jsx(Label2, { htmlFor: fieldId, className: required ? 'after:content-["*"] after:ml-0.5 after:text-red-500' : "", children: label }),
1366
+ (label || hint) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
1367
+ label && /* @__PURE__ */ jsxRuntime.jsx(Label2, { htmlFor: fieldId, className: required ? 'after:content-["*"] after:ml-0.5 after:text-red-500' : "", children: label }),
1368
+ hint && /* @__PURE__ */ jsxRuntime.jsx("div", { children: hint })
1369
+ ] }),
1353
1370
  enhancedChildren,
1354
1371
  error && /* @__PURE__ */ jsxRuntime.jsx("p", { id: errorId, className: "text-sm text-red-600", role: "alert", children: error }),
1355
1372
  helperText && !error && /* @__PURE__ */ jsxRuntime.jsx("p", { id: helperId, className: "text-xs text-muted-foreground", children: helperText })
@@ -1456,6 +1473,238 @@ var Divider = React21__namespace.forwardRef(
1456
1473
  }
1457
1474
  );
1458
1475
  Divider.displayName = "Divider";
1476
+ var ToastProvider = ToastPrimitives__namespace.Provider;
1477
+ var ToastViewport = React21__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1478
+ ToastPrimitives__namespace.Viewport,
1479
+ {
1480
+ ref,
1481
+ className: cn(
1482
+ "fixed bottom-0 right-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:max-w-[420px]",
1483
+ className
1484
+ ),
1485
+ ...props
1486
+ }
1487
+ ));
1488
+ ToastViewport.displayName = ToastPrimitives__namespace.Viewport.displayName;
1489
+ var toastVariants = classVarianceAuthority.cva(
1490
+ "group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-sm border p-4 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-bottom-full",
1491
+ {
1492
+ variants: {
1493
+ variant: {
1494
+ default: "border-gray-200 bg-white text-[var(--black)]",
1495
+ success: "border-emerald-200 bg-emerald-50 text-emerald-900",
1496
+ error: "border-red-200 bg-red-50 text-red-900",
1497
+ warning: "border-amber-200 bg-amber-50 text-amber-900"
1498
+ }
1499
+ },
1500
+ defaultVariants: {
1501
+ variant: "default"
1502
+ }
1503
+ }
1504
+ );
1505
+ var Toast = React21__namespace.forwardRef(({ className, variant, ...props }, ref) => {
1506
+ return /* @__PURE__ */ jsxRuntime.jsx(
1507
+ ToastPrimitives__namespace.Root,
1508
+ {
1509
+ ref,
1510
+ className: cn(toastVariants({ variant }), className),
1511
+ ...props
1512
+ }
1513
+ );
1514
+ });
1515
+ Toast.displayName = ToastPrimitives__namespace.Root.displayName;
1516
+ var ToastAction = React21__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1517
+ ToastPrimitives__namespace.Action,
1518
+ {
1519
+ ref,
1520
+ className: cn(
1521
+ "inline-flex h-8 shrink-0 items-center justify-center rounded-sm border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
1522
+ className
1523
+ ),
1524
+ ...props
1525
+ }
1526
+ ));
1527
+ ToastAction.displayName = ToastPrimitives__namespace.Action.displayName;
1528
+ var ToastClose = React21__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1529
+ ToastPrimitives__namespace.Close,
1530
+ {
1531
+ ref,
1532
+ className: cn(
1533
+ "absolute right-2 top-2 rounded-sm p-1 text-gray-500 opacity-0 transition-opacity hover:text-gray-900 focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100",
1534
+ className
1535
+ ),
1536
+ "toast-close": "",
1537
+ ...props,
1538
+ children: /* @__PURE__ */ jsxRuntime.jsx(react.X, { size: 16 })
1539
+ }
1540
+ ));
1541
+ ToastClose.displayName = ToastPrimitives__namespace.Close.displayName;
1542
+ var ToastTitle = React21__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1543
+ ToastPrimitives__namespace.Title,
1544
+ {
1545
+ ref,
1546
+ className: cn("text-sm font-semibold", className),
1547
+ ...props
1548
+ }
1549
+ ));
1550
+ ToastTitle.displayName = ToastPrimitives__namespace.Title.displayName;
1551
+ var ToastDescription = React21__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
1552
+ ToastPrimitives__namespace.Description,
1553
+ {
1554
+ ref,
1555
+ className: cn("text-sm opacity-90", className),
1556
+ ...props
1557
+ }
1558
+ ));
1559
+ ToastDescription.displayName = ToastPrimitives__namespace.Description.displayName;
1560
+ var ToastIcon = ({ variant }) => {
1561
+ switch (variant) {
1562
+ case "success":
1563
+ return /* @__PURE__ */ jsxRuntime.jsx(react.CheckCircle, { size: 20, weight: "fill", className: "text-emerald-600" });
1564
+ case "error":
1565
+ return /* @__PURE__ */ jsxRuntime.jsx(react.WarningCircle, { size: 20, weight: "fill", className: "text-red-600" });
1566
+ case "warning":
1567
+ return /* @__PURE__ */ jsxRuntime.jsx(react.WarningCircle, { size: 20, weight: "fill", className: "text-amber-600" });
1568
+ default:
1569
+ return /* @__PURE__ */ jsxRuntime.jsx(react.Info, { size: 20, weight: "fill", className: "text-gray-600" });
1570
+ }
1571
+ };
1572
+ var TOAST_LIMIT = 5;
1573
+ var TOAST_REMOVE_DELAY = 5e3;
1574
+ var count = 0;
1575
+ function genId() {
1576
+ count = (count + 1) % Number.MAX_SAFE_INTEGER;
1577
+ return count.toString();
1578
+ }
1579
+ var toastTimeouts = /* @__PURE__ */ new Map();
1580
+ var addToRemoveQueue = (toastId) => {
1581
+ if (toastTimeouts.has(toastId)) {
1582
+ return;
1583
+ }
1584
+ const timeout = setTimeout(() => {
1585
+ toastTimeouts.delete(toastId);
1586
+ dispatch({
1587
+ type: "REMOVE_TOAST",
1588
+ toastId
1589
+ });
1590
+ }, TOAST_REMOVE_DELAY);
1591
+ toastTimeouts.set(toastId, timeout);
1592
+ };
1593
+ var reducer = (state, action) => {
1594
+ switch (action.type) {
1595
+ case "ADD_TOAST":
1596
+ return {
1597
+ ...state,
1598
+ toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT)
1599
+ };
1600
+ case "UPDATE_TOAST":
1601
+ return {
1602
+ ...state,
1603
+ toasts: state.toasts.map(
1604
+ (t) => t.id === action.toast.id ? { ...t, ...action.toast } : t
1605
+ )
1606
+ };
1607
+ case "DISMISS_TOAST": {
1608
+ const { toastId } = action;
1609
+ if (toastId) {
1610
+ addToRemoveQueue(toastId);
1611
+ } else {
1612
+ state.toasts.forEach((toast2) => {
1613
+ addToRemoveQueue(toast2.id);
1614
+ });
1615
+ }
1616
+ return {
1617
+ ...state,
1618
+ toasts: state.toasts.map(
1619
+ (t) => t.id === toastId || toastId === void 0 ? {
1620
+ ...t,
1621
+ open: false
1622
+ } : t
1623
+ )
1624
+ };
1625
+ }
1626
+ case "REMOVE_TOAST":
1627
+ if (action.toastId === void 0) {
1628
+ return {
1629
+ ...state,
1630
+ toasts: []
1631
+ };
1632
+ }
1633
+ return {
1634
+ ...state,
1635
+ toasts: state.toasts.filter((t) => t.id !== action.toastId)
1636
+ };
1637
+ }
1638
+ };
1639
+ var listeners = [];
1640
+ var memoryState = { toasts: [] };
1641
+ function dispatch(action) {
1642
+ memoryState = reducer(memoryState, action);
1643
+ listeners.forEach((listener) => {
1644
+ listener(memoryState);
1645
+ });
1646
+ }
1647
+ function toast({ ...props }) {
1648
+ const id = genId();
1649
+ const update = (props2) => dispatch({
1650
+ type: "UPDATE_TOAST",
1651
+ toast: { ...props2, id }
1652
+ });
1653
+ const dismiss = () => dispatch({ type: "DISMISS_TOAST", toastId: id });
1654
+ dispatch({
1655
+ type: "ADD_TOAST",
1656
+ toast: {
1657
+ ...props,
1658
+ id,
1659
+ open: true,
1660
+ onOpenChange: (open) => {
1661
+ if (!open) dismiss();
1662
+ }
1663
+ }
1664
+ });
1665
+ return {
1666
+ id,
1667
+ dismiss,
1668
+ update
1669
+ };
1670
+ }
1671
+ function useToast() {
1672
+ const [state, setState] = React21__namespace.useState(memoryState);
1673
+ React21__namespace.useEffect(() => {
1674
+ listeners.push(setState);
1675
+ return () => {
1676
+ const index = listeners.indexOf(setState);
1677
+ if (index > -1) {
1678
+ listeners.splice(index, 1);
1679
+ }
1680
+ };
1681
+ }, [state]);
1682
+ return {
1683
+ ...state,
1684
+ toast,
1685
+ dismiss: (toastId) => dispatch({ type: "DISMISS_TOAST", toastId })
1686
+ };
1687
+ }
1688
+ function Toaster() {
1689
+ const { toasts } = useToast();
1690
+ return /* @__PURE__ */ jsxRuntime.jsxs(ToastProvider, { children: [
1691
+ toasts.map(function({ id, title, description, action, variant, ...props }) {
1692
+ const safeVariant = variant ?? void 0;
1693
+ return /* @__PURE__ */ jsxRuntime.jsxs(Toast, { variant: safeVariant, ...props, children: [
1694
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-3", children: [
1695
+ /* @__PURE__ */ jsxRuntime.jsx(ToastIcon, { variant: safeVariant }),
1696
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-1", children: [
1697
+ title && /* @__PURE__ */ jsxRuntime.jsx(ToastTitle, { children: title }),
1698
+ description && /* @__PURE__ */ jsxRuntime.jsx(ToastDescription, { children: description })
1699
+ ] })
1700
+ ] }),
1701
+ action,
1702
+ /* @__PURE__ */ jsxRuntime.jsx(ToastClose, {})
1703
+ ] }, id);
1704
+ }),
1705
+ /* @__PURE__ */ jsxRuntime.jsx(ToastViewport, {})
1706
+ ] });
1707
+ }
1459
1708
 
1460
1709
  Object.defineProperty(exports, "AddressBook", {
1461
1710
  enumerable: true,
@@ -1846,6 +2095,15 @@ exports.TableHeader = TableHeader;
1846
2095
  exports.TableRow = TableRow;
1847
2096
  exports.Tag = Tag;
1848
2097
  exports.Textarea = Textarea;
2098
+ exports.Toast = Toast;
2099
+ exports.ToastAction = ToastAction;
2100
+ exports.ToastClose = ToastClose;
2101
+ exports.ToastDescription = ToastDescription;
2102
+ exports.ToastIcon = ToastIcon;
2103
+ exports.ToastProvider = ToastProvider;
2104
+ exports.ToastTitle = ToastTitle;
2105
+ exports.ToastViewport = ToastViewport;
2106
+ exports.Toaster = Toaster;
1849
2107
  exports.alertVariants = alertVariants;
1850
2108
  exports.badgeVariants = badgeVariants;
1851
2109
  exports.buttonVariants = buttonVariants;
@@ -1855,6 +2113,8 @@ exports.navigationMenuTriggerStyle = navigationMenuTriggerStyle;
1855
2113
  exports.progressVariants = progressVariants;
1856
2114
  exports.statVariants = statVariants;
1857
2115
  exports.tagVariants = tagVariants;
2116
+ exports.toast = toast;
2117
+ exports.useToast = useToast;
1858
2118
  exports.valueVariants = valueVariants;
1859
2119
  //# sourceMappingURL=index.js.map
1860
2120
  //# sourceMappingURL=index.js.map