@donotdev/components 0.0.16 → 0.0.17

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 (36) hide show
  1. package/dist/advanced/Bento/Bento.d.ts +1 -1
  2. package/dist/advanced/Bento/Bento.js +1 -1
  3. package/dist/advanced/Code/CodeContent.js +1 -1
  4. package/dist/atomic/Alert/index.d.ts +1 -1
  5. package/dist/atomic/Alert/index.js +1 -1
  6. package/dist/atomic/Badge/index.d.ts +1 -1
  7. package/dist/atomic/Button/index.d.ts +1 -1
  8. package/dist/atomic/CopyToClipboard/index.d.ts.map +1 -1
  9. package/dist/atomic/DropdownMenu/DropdownMenuPrimitive.d.ts.map +1 -1
  10. package/dist/atomic/DropdownMenu/DropdownMenuPrimitive.js +5 -21
  11. package/dist/atomic/DropdownMenu/index.d.ts.map +1 -1
  12. package/dist/atomic/DropdownMenu/index.js +6 -16
  13. package/dist/atomic/Grid/index.d.ts +2 -2
  14. package/dist/atomic/Grid/index.js +2 -2
  15. package/dist/atomic/HeroSection/index.js +1 -1
  16. package/dist/atomic/Rating/index.d.ts +1 -1
  17. package/dist/atomic/Rating/index.d.ts.map +1 -1
  18. package/dist/atomic/Section/index.js +1 -1
  19. package/dist/atomic/Stack/index.d.ts +2 -2
  20. package/dist/atomic/Stack/index.js +2 -2
  21. package/dist/atomic/Stepper/index.d.ts +1 -1
  22. package/dist/atomic/Stepper/index.js +1 -1
  23. package/dist/atomic/Table/index.d.ts +24 -2
  24. package/dist/atomic/Table/index.d.ts.map +1 -1
  25. package/dist/atomic/Table/index.js +55 -6
  26. package/dist/atomic/Tabs/index.d.ts +1 -1
  27. package/dist/atomic/Tag/index.d.ts +1 -1
  28. package/dist/atomic/Text/index.d.ts +2 -0
  29. package/dist/atomic/Text/index.d.ts.map +1 -1
  30. package/dist/atomic/Text/index.js +2 -1
  31. package/dist/atomic/Toaster/ToastPrimitive.d.ts +1 -1
  32. package/dist/atomic/Toggle/index.d.ts +1 -1
  33. package/dist/index.js +6 -4
  34. package/dist/styles/index.css +28 -24
  35. package/dist/utils/variants.d.ts +1 -1
  36. package/package.json +1 -1
@@ -66,7 +66,7 @@ export type BentoProps = {
66
66
  * { id: '3', content: <SmallCard /> },
67
67
  * ]}
68
68
  * columns={{ mobile: 1, tablet: 2, desktop: 3, wide: 4 }}
69
- * gap="medium"
69
+ *
70
70
  * />
71
71
  * ```
72
72
  */
@@ -25,7 +25,7 @@ import { cn } from '../../utils/helpers';
25
25
  * { id: '3', content: <SmallCard /> },
26
26
  * ]}
27
27
  * columns={{ mobile: 1, tablet: 2, desktop: 3, wide: 4 }}
28
- * gap="medium"
28
+ *
29
29
  * />
30
30
  * ```
31
31
  */
@@ -142,7 +142,7 @@ function Code({ children, language = 'tsx', className, showLineNumbers = true, w
142
142
  useEffect(() => {
143
143
  setIsClient(true);
144
144
  }, []);
145
- return (_jsxs(Stack, { gap: "none", className: "dndev-code dndev-surface", "data-glow": "blank", "data-compact": compact, children: [!compact && (_jsx("div", { className: "dndev-code-header", children: _jsxs(Stack, { direction: "row", align: "center", justify: "between", gap: "medium", children: [_jsxs(Stack, { direction: "row", align: "center", gap: "tight", children: [_jsxs("div", { className: "dndev-code-traffic-lights", children: [_jsx("div", { className: "dndev-code-traffic-light", "data-color": "red" }), _jsx("div", { className: "dndev-code-traffic-light", "data-color": "yellow" }), _jsx("div", { className: "dndev-code-traffic-light", "data-color": "green" })] }), _jsx(Text, { as: "span", className: "dndev-code-language", children: language }), _jsxs(Text, { as: "span", className: "dndev-code-line-count", children: [lines.length, " line", lines.length !== 1 ? 's' : ''] })] }), showCopyButton && isClient && (_jsx(CopyToClipboard, { text: children, onCopy: onCopy }))] }) })), _jsx(ScrollArea, { className: "dndev-code-content", showHorizontal: !wrapLines, showVertical: true, children: _jsx("pre", { className: "dndev-code-pre", "data-wrap": wrapLines, "data-compact": compact, children: showLineNumbers ? (_jsxs(Stack, { direction: "row", gap: "none", children: [_jsx("div", { className: "dndev-code-line-numbers", children: lines.map((_, index) => (_jsx("div", { className: "dndev-code-line-number", children: String(index + 1).padStart(2, ' ') }, index))) }), highlightedCode ? (_jsx("code", { className: "dndev-code-code", dangerouslySetInnerHTML: { __html: highlightedCode } })) : (_jsx("code", { className: "dndev-code-code", children: lines.map((line, index) => (_jsx(Text, { as: "code", variant: "code", style: {
145
+ return (_jsxs(Stack, { gap: "none", className: "dndev-code dndev-surface", "data-glow": "blank", "data-compact": compact, children: [!compact && (_jsx("div", { className: "dndev-code-header", children: _jsxs(Stack, { direction: "row", align: "center", justify: "between", children: [_jsxs(Stack, { direction: "row", align: "center", gap: "tight", children: [_jsxs("div", { className: "dndev-code-traffic-lights", children: [_jsx("div", { className: "dndev-code-traffic-light", "data-color": "red" }), _jsx("div", { className: "dndev-code-traffic-light", "data-color": "yellow" }), _jsx("div", { className: "dndev-code-traffic-light", "data-color": "green" })] }), _jsx(Text, { as: "span", className: "dndev-code-language", children: language }), _jsxs(Text, { as: "span", className: "dndev-code-line-count", children: [lines.length, " line", lines.length !== 1 ? 's' : ''] })] }), showCopyButton && isClient && (_jsx(CopyToClipboard, { text: children, onCopy: onCopy }))] }) })), _jsx(ScrollArea, { className: "dndev-code-content", showHorizontal: !wrapLines, showVertical: true, children: _jsx("pre", { className: "dndev-code-pre", "data-wrap": wrapLines, "data-compact": compact, children: showLineNumbers ? (_jsxs(Stack, { direction: "row", gap: "none", children: [_jsx("div", { className: "dndev-code-line-numbers", children: lines.map((_, index) => (_jsx("div", { className: "dndev-code-line-number", children: String(index + 1).padStart(2, ' ') }, index))) }), highlightedCode ? (_jsx("code", { className: "dndev-code-code", dangerouslySetInnerHTML: { __html: highlightedCode } })) : (_jsx("code", { className: "dndev-code-code", children: lines.map((line, index) => (_jsx(Text, { as: "code", variant: "code", style: {
146
146
  display: 'block',
147
147
  background: 'transparent',
148
148
  padding: 0,
@@ -20,7 +20,7 @@ export declare const ALERT_VARIANT: {
20
20
  readonly INFO: "info";
21
21
  };
22
22
  declare const alertVariants: (props?: ({
23
- variant?: "muted" | "success" | "warning" | "error" | "info" | null | undefined;
23
+ variant?: "error" | "warning" | "info" | "success" | "muted" | null | undefined;
24
24
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
25
25
  export type AlertVariant = (typeof ALERT_VARIANT)[keyof typeof ALERT_VARIANT];
26
26
  export interface AlertProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'>, VariantProps<typeof alertVariants> {
@@ -72,7 +72,7 @@ const Alert = ({ className, variant = ALERT_VARIANT.DEFAULT, hideIcon = false, t
72
72
  const variantAttrs = getVariantDataAttrs({
73
73
  variant: getThemeVariant(variant),
74
74
  });
75
- return (_jsxs(Stack, { direction: "row", gap: "medium", role: "alert", className: cn(alertVariants({ variant }), className), ...variantAttrs, title: tooltip, ...props, children: [!hideIcon && (_jsx(Icon, { icon: IconComponent, className: "dndev-size-md dndev-flex-shrink-0", "aria-hidden": "true" })), _jsxs(Stack, { gap: "tight", flex: "1", className: "dndev-min-w-0", children: [title && (_jsx("div", { className: "dndev-alert-title dndev-text-h5", children: title })), description && (_jsx("div", { className: "dndev-text-base dndev-alert-description", children: description })), children] })] }));
75
+ return (_jsxs(Stack, { direction: "row", role: "alert", className: cn(alertVariants({ variant }), className), ...variantAttrs, title: tooltip, ...props, children: [!hideIcon && (_jsx(Icon, { icon: IconComponent, className: "dndev-size-md dndev-flex-shrink-0", "aria-hidden": "true" })), _jsxs(Stack, { gap: "tight", flex: "1", className: "dndev-min-w-0", children: [title && (_jsx("div", { className: "dndev-alert-title dndev-text-h5", children: title })), description && (_jsx("div", { className: "dndev-text-base dndev-alert-description", children: description })), children] })] }));
76
76
  };
77
77
  export default Alert;
78
78
  export { alertVariants };
@@ -24,7 +24,7 @@ export declare const BADGE_VARIANT: {
24
24
  readonly DESTRUCTIVE: "destructive";
25
25
  };
26
26
  declare const badgeVariants: (props?: ({
27
- variant?: "default" | "muted" | "primary" | "secondary" | "accent" | "success" | "warning" | "destructive" | "outline" | null | undefined;
27
+ variant?: "default" | "outline" | "primary" | "destructive" | "warning" | "success" | "muted" | "secondary" | "accent" | null | undefined;
28
28
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
29
29
  export type BadgeVariant = VariantProps<typeof badgeVariants>['variant'];
30
30
  /**
@@ -21,7 +21,7 @@ export declare const BUTTON_VARIANT: {
21
21
  readonly DESTRUCTIVE: "destructive";
22
22
  };
23
23
  declare const buttonVariants: (props?: ({
24
- variant?: "default" | "muted" | "primary" | "secondary" | "accent" | "success" | "warning" | "destructive" | "ghost" | "outline" | "link" | null | undefined;
24
+ variant?: "default" | "outline" | "ghost" | "link" | "primary" | "destructive" | "warning" | "success" | "muted" | "secondary" | "accent" | null | undefined;
25
25
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
26
26
  /**
27
27
  * Button variant type - derived from buttonVariants to ensure type safety
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/CopyToClipboard/index.tsx"],"names":[],"mappings":"AAgBA,OAAe,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,uBAAuB,CAAC;AAE/B,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAChD,WAAW,EACX,UAAU,GAAG,MAAM,GAAG,QAAQ,CAC/B;IACC,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,uCAAuC;IACvC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,oFAAoF;IACpF,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC3D,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8BAA8B;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AACD;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,oBAAoB,CAwDrE,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/CopyToClipboard/index.tsx"],"names":[],"mappings":"AAgBA,OAAe,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,uBAAuB,CAAC;AAE/B,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAChD,WAAW,EACX,UAAU,GAAG,MAAM,GAAG,QAAQ,CAC/B;IACC,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,uCAAuC;IACvC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,oFAAoF;IACpF,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC3D,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8BAA8B;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AACD;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,oBAAoB,CA2DrE,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownMenuPrimitive.d.ts","sourceRoot":"","sources":["../../../src/atomic/DropdownMenu/DropdownMenuPrimitive.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,iBAAiB,MAAM,+BAA+B,CAAC;AAMnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,QAAA,MAAM,qBAAqB,yDAAyB,CAAC;AACrD,QAAA,MAAM,4BAA4B,0IAA4B,CAAC;AAC/D,QAAA,MAAM,0BAA0B,qIAA0B,CAAC;AAC3D,QAAA,MAAM,2BAA2B,+DAA2B,CAAC;AAC7D,QAAA,MAAM,wBAAwB,4DAAwB,CAAC;AACvD,QAAA,MAAM,+BAA+B,0IAA+B,CAAC;AAErE,QAAA,MAAM,+BAA+B,GAAI,0CAKtC,cAAc,CAAC,OAAO,iBAAiB,CAAC,UAAU,CAAC,GAAG;IACvD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,4CASA,CAAC;AAEF,QAAA,MAAM,+BAA+B,GAAI,yBAGtC,cAAc,CAAC,OAAO,iBAAiB,CAAC,UAAU,CAAC,4CAErD,CAAC;AAEF,QAAA,MAAM,4BAA4B,GAAI,8DAMnC,cAAc,CAAC,OAAO,iBAAiB,CAAC,OAAO,CAAC,GAAG;IACpD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC3C,4CAYA,CAAC;AAEF,QAAA,MAAM,yBAAyB,GAAI,yCAKhC,cAAc,CAAC,OAAO,iBAAiB,CAAC,IAAI,CAAC,GAAG;IACjD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,4CAUA,CAAC;AAEF,QAAA,MAAM,iCAAiC,GAAI,qDAMxC,cAAc,CAAC,OAAO,iBAAiB,CAAC,YAAY,CAAC,GAAG;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,4CAgBA,CAAC;AAEF,QAAA,MAAM,8BAA8B,GAAI,4CAKrC,cAAc,CAAC,OAAO,iBAAiB,CAAC,SAAS,CAAC,GAAG;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,4CAeA,CAAC;AAEF,QAAA,MAAM,0BAA0B,GAAI,yCAKjC,cAAc,CAAC,OAAO,iBAAiB,CAAC,KAAK,CAAC,GAAG;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,4CASA,CAAC;AAEF,QAAA,MAAM,8BAA8B,GAAI,kCAIrC,cAAc,CAAC,OAAO,iBAAiB,CAAC,SAAS,CAAC,GAAG;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,4CAGA,CAAC;AAEF,QAAA,MAAM,6BAA6B,GAAI,yBAGpC,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,4CAEvC,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,CAAC;AACjC,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,yBAAyB,EACzB,iCAAiC,EACjC,8BAA8B,EAC9B,0BAA0B,EAC1B,8BAA8B,EAC9B,6BAA6B,EAC7B,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,+BAA+B,EAC/B,+BAA+B,EAC/B,+BAA+B,GAChC,CAAC"}
1
+ {"version":3,"file":"DropdownMenuPrimitive.d.ts","sourceRoot":"","sources":["../../../src/atomic/DropdownMenu/DropdownMenuPrimitive.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,KAAK,iBAAiB,MAAM,+BAA+B,CAAC;AAKnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C,QAAA,MAAM,qBAAqB,yDAAyB,CAAC;AACrD,QAAA,MAAM,4BAA4B,0IAA4B,CAAC;AAC/D,QAAA,MAAM,0BAA0B,qIAA0B,CAAC;AAC3D,QAAA,MAAM,2BAA2B,+DAA2B,CAAC;AAC7D,QAAA,MAAM,wBAAwB,4DAAwB,CAAC;AACvD,QAAA,MAAM,+BAA+B,0IAA+B,CAAC;AAErE,QAAA,MAAM,+BAA+B,GAAI,0CAKtC,cAAc,CAAC,OAAO,iBAAiB,CAAC,UAAU,CAAC,GAAG;IACvD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,4CASA,CAAC;AAEF,QAAA,MAAM,+BAA+B,GAAI,yBAGtC,cAAc,CAAC,OAAO,iBAAiB,CAAC,UAAU,CAAC,4CAErD,CAAC;AAEF,QAAA,MAAM,4BAA4B,GAAI,8DAMnC,cAAc,CAAC,OAAO,iBAAiB,CAAC,OAAO,CAAC,GAAG;IACpD,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAC3C,4CAYA,CAAC;AAEF,QAAA,MAAM,yBAAyB,GAAI,yCAKhC,cAAc,CAAC,OAAO,iBAAiB,CAAC,IAAI,CAAC,GAAG;IACjD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,4CAQA,CAAC;AAEF,QAAA,MAAM,iCAAiC,GAAI,qDAMxC,cAAc,CAAC,OAAO,iBAAiB,CAAC,YAAY,CAAC,GAAG;IACzD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,4CAcA,CAAC;AAEF,QAAA,MAAM,8BAA8B,GAAI,4CAKrC,cAAc,CAAC,OAAO,iBAAiB,CAAC,SAAS,CAAC,GAAG;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,4CAaA,CAAC;AAEF,QAAA,MAAM,0BAA0B,GAAI,yCAKjC,cAAc,CAAC,OAAO,iBAAiB,CAAC,KAAK,CAAC,GAAG;IAClD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,4CAOA,CAAC;AAEF,QAAA,MAAM,8BAA8B,GAAI,kCAIrC,cAAc,CAAC,OAAO,iBAAiB,CAAC,SAAS,CAAC,GAAG;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,4CAMA,CAAC;AAEF,QAAA,MAAM,6BAA6B,GAAI,yBAGpC,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,4CAEvC,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,CAAC;AACjC,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,yBAAyB,EACzB,iCAAiC,EACjC,8BAA8B,EAC9B,0BAA0B,EAC1B,8BAA8B,EAC9B,6BAA6B,EAC7B,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,+BAA+B,EAC/B,+BAA+B,EAC/B,+BAA+B,GAChC,CAAC"}
@@ -9,7 +9,6 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
9
  * @author AMBROISE PARK Consulting
10
10
  */
11
11
  import * as RadixDropdownMenu from '@radix-ui/react-dropdown-menu';
12
- import { Slot } from '@radix-ui/react-slot';
13
12
  import { Check, ChevronRight, Circle } from 'lucide-react';
14
13
  import { cn } from '../../utils/helpers';
15
14
  const DropdownMenuPrimitive = RadixDropdownMenu.Root;
@@ -23,26 +22,11 @@ const DropdownMenuSubContentPrimitive = ({ className, ...props }) => (_jsx(Radix
23
22
  const DropdownMenuContentPrimitive = ({ className, sideOffset = 4, align = 'start', onCloseAutoFocus = (e) => e.preventDefault(), ...props }) => {
24
23
  return (_jsx(RadixDropdownMenu.Portal, { children: _jsx(RadixDropdownMenu.Content, { sideOffset: sideOffset, align: align, onCloseAutoFocus: onCloseAutoFocus, className: cn(className), ...props }) }));
25
24
  };
26
- const DropdownMenuItemPrimitive = ({ className, inset, asChild = false, ...props }) => {
27
- const Comp = asChild ? Slot : RadixDropdownMenu.Item;
28
- return (_jsx(Comp, { className: cn(className), "data-role": "menu-item", "data-inset": inset ? 'true' : undefined, ...props }));
29
- };
30
- const DropdownMenuCheckboxItemPrimitive = ({ className, children, checked, asChild = false, ...props }) => {
31
- const Comp = asChild ? Slot : RadixDropdownMenu.CheckboxItem;
32
- return (_jsxs(Comp, { className: cn(className), "data-role": "menu-item", "data-inset": "true", checked: checked, ...props, children: [_jsx(RadixDropdownMenu.ItemIndicator, { children: _jsx(Check, {}) }), children] }));
33
- };
34
- const DropdownMenuRadioItemPrimitive = ({ className, children, asChild = false, ...props }) => {
35
- const Comp = asChild ? Slot : RadixDropdownMenu.RadioItem;
36
- return (_jsxs(Comp, { className: cn(className), "data-role": "menu-item", "data-inset": "true", ...props, children: [_jsx(RadixDropdownMenu.ItemIndicator, { children: _jsx(Circle, {}) }), children] }));
37
- };
38
- const DropdownMenuLabelPrimitive = ({ className, inset, asChild = false, ...props }) => {
39
- const Comp = asChild ? Slot : RadixDropdownMenu.Label;
40
- return (_jsx(Comp, { className: cn(className), "data-inset": inset ? 'true' : undefined, ...props }));
41
- };
42
- const DropdownMenuSeparatorPrimitive = ({ className, asChild = false, ...props }) => {
43
- const Comp = asChild ? Slot : RadixDropdownMenu.Separator;
44
- return _jsx(Comp, { className: cn(className), ...props });
45
- };
25
+ const DropdownMenuItemPrimitive = ({ className, inset, asChild = false, ...props }) => (_jsx(RadixDropdownMenu.Item, { className: cn(className), "data-role": "menu-item", "data-inset": inset ? 'true' : undefined, asChild: asChild, ...props }));
26
+ const DropdownMenuCheckboxItemPrimitive = ({ className, children, checked, asChild = false, ...props }) => (_jsxs(RadixDropdownMenu.CheckboxItem, { className: cn(className), "data-role": "menu-item", "data-inset": "true", checked: checked, asChild: asChild, ...props, children: [_jsx(RadixDropdownMenu.ItemIndicator, { children: _jsx(Check, {}) }), children] }));
27
+ const DropdownMenuRadioItemPrimitive = ({ className, children, asChild = false, ...props }) => (_jsxs(RadixDropdownMenu.RadioItem, { className: cn(className), "data-role": "menu-item", "data-inset": "true", asChild: asChild, ...props, children: [_jsx(RadixDropdownMenu.ItemIndicator, { children: _jsx(Circle, {}) }), children] }));
28
+ const DropdownMenuLabelPrimitive = ({ className, inset, asChild = false, ...props }) => (_jsx(RadixDropdownMenu.Label, { className: cn(className), "data-inset": inset ? 'true' : undefined, asChild: asChild, ...props }));
29
+ const DropdownMenuSeparatorPrimitive = ({ className, asChild = false, ...props }) => (_jsx(RadixDropdownMenu.Separator, { className: cn(className), asChild: asChild, ...props }));
46
30
  const DropdownMenuShortcutPrimitive = ({ className, ...props }) => {
47
31
  return _jsx("span", { className: cn(className), ...props });
48
32
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/DropdownMenu/index.tsx"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAErE,OAAO,oBAAoB,CAAC;AAc5B,KAAK,oBAAoB,GAAG;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,gDAAgD;IAChD,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC;IACjC,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,KAAK,sBAAsB,GAAG,oBAAoB,GAAG;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,yBAAyB,GAAG;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,uBAAuB,GAAG,oBAAoB,GAAG;IACpD,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAClC,8EAA8E;IAC9E,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAC5B,sBAAsB,GACtB,qBAAqB,GACrB,yBAAyB,GACzB,uBAAuB,CAAC;AAE5B,MAAM,WAAW,iBAAiB;IAChC,sCAAsC;IACtC,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,mDAAmD;IACnD,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAC/B,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oCAAoC;IACpC,YAAY,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC1C,4BAA4B;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uCAAuC;IACvC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,QAAA,MAAM,YAAY,GAAI,+EAQnB,iBAAiB,mDAyQnB,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/DropdownMenu/index.tsx"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAErE,OAAO,oBAAoB,CAAC;AAc5B,KAAK,oBAAoB,GAAG;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,gDAAgD;IAChD,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC;IACjC,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,uCAAuC;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,KAAK,sBAAsB,GAAG,oBAAoB,GAAG;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,yBAAyB,GAAG;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,uBAAuB,GAAG,oBAAoB,GAAG;IACpD,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAClC,8EAA8E;IAC9E,UAAU,CAAC,EAAE,SAAS,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAC5B,sBAAsB,GACtB,qBAAqB,GACrB,yBAAyB,GACzB,uBAAuB,CAAC;AAE5B,MAAM,WAAW,iBAAiB;IAChC,sCAAsC;IACtC,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,mDAAmD;IACnD,KAAK,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAC/B,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oCAAoC;IACpC,YAAY,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC1C,4BAA4B;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uCAAuC;IACvC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,QAAA,MAAM,YAAY,GAAI,+EAQnB,iBAAiB,mDAsPnB,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -11,7 +11,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
11
11
  * @author AMBROISE PARK Consulting
12
12
  */
13
13
  import { ChevronRight, Check } from 'lucide-react';
14
- import { Children, isValidElement } from 'react';
14
+ import { Children } from 'react';
15
15
  import { DropdownMenuPrimitive, DropdownMenuTriggerPrimitive, DropdownMenuContentPrimitive, DropdownMenuItemPrimitive, DropdownMenuSubPrimitive, DropdownMenuSubTriggerPrimitive, DropdownMenuSubContentPrimitive, DropdownMenuPortalPrimitive, DropdownMenuLabelPrimitive, DropdownMenuSeparatorPrimitive, } from './DropdownMenuPrimitive';
16
16
  import { cn } from '../../utils/helpers';
17
17
  import ScrollArea from '../ScrollArea';
@@ -48,22 +48,12 @@ const getIconOnlyAriaLabel = (hasIcon, hasLabel, label, fallback) => {
48
48
  const DropdownMenu = ({ trigger, items = [], children, contentWidth, contentAlign = 'start', open, onOpenChange, }) => {
49
49
  if (!trigger)
50
50
  return null;
51
- // Normalize children to ensure keys (React.Children.toArray handles this automatically)
52
51
  const normalizedChildren = children ? Children.toArray(children) : [];
53
- // Wrap children in DropdownMenuItemPrimitive so they trigger auto-close behavior
54
- // This ensures clicking any child (like GoTo button) closes the dropdown
55
- const wrappedChildren = normalizedChildren.map((child, index) => {
56
- // Check if child is already a menu item by checking for data-role attribute
57
- // (our DropdownMenuItemPrimitive sets data-role="menu-item")
58
- if (isValidElement(child) &&
59
- child.props?.['data-role'] === 'menu-item') {
60
- // Already a menu item, don't wrap
61
- return child;
62
- }
63
- // Wrap child in DropdownMenuItemPrimitive for auto-close behavior
64
- // Using asChild merges props correctly with the child component
65
- return (_jsx(DropdownMenuItemPrimitive, { className: "dndev-interactive", asChild: true, children: child }, index));
66
- });
52
+ // Wrap children in DropdownMenuItemPrimitive (without asChild).
53
+ // Radix renders its own wrapper element with proper onSelect auto-close.
54
+ // asChild doesn't work here because components (GoTo, ThemeToggle, etc.)
55
+ // don't forward Radix's merged event handlers to the DOM.
56
+ const wrappedChildren = normalizedChildren.map((child, index) => (_jsx(DropdownMenuItemPrimitive, { children: child }, index)));
67
57
  const content = (_jsxs(_Fragment, { children: [wrappedChildren, items.length > 0 &&
68
58
  items.map((item, index) => {
69
59
  // Label item
@@ -5,7 +5,7 @@
5
5
  * @example
6
6
  * ```tsx
7
7
  * // Fixed 3-column grid
8
- * <Grid cols={3} gap="medium">
8
+ * <Grid cols={3}>
9
9
  * <Card />
10
10
  * <Card />
11
11
  * <Card />
@@ -13,7 +13,7 @@
13
13
  *
14
14
  * // Responsive grid: [mobile, tablet, laptop, desktop]
15
15
  * // 1 col on mobile/tablet, 2 on laptop, 3 on desktop
16
- * <Grid cols={[1, 1, 2, 3]} gap="medium">
16
+ * <Grid cols={[1, 1, 2, 3]}>
17
17
  * <Card />
18
18
  * <Card />
19
19
  * <Card />
@@ -6,7 +6,7 @@
6
6
  * @example
7
7
  * ```tsx
8
8
  * // Fixed 3-column grid
9
- * <Grid cols={3} gap="medium">
9
+ * <Grid cols={3}>
10
10
  * <Card />
11
11
  * <Card />
12
12
  * <Card />
@@ -14,7 +14,7 @@
14
14
  *
15
15
  * // Responsive grid: [mobile, tablet, laptop, desktop]
16
16
  * // 1 col on mobile/tablet, 2 on laptop, 3 on desktop
17
- * <Grid cols={[1, 1, 2, 3]} gap="medium">
17
+ * <Grid cols={[1, 1, 2, 3]}>
18
18
  * <Card />
19
19
  * <Card />
20
20
  * <Card />
@@ -56,7 +56,7 @@ const HeroSection = forwardRef(function HeroSection({ as = 'section', badge, tit
56
56
  ...props.style,
57
57
  },
58
58
  ...props,
59
- }, _jsxs(Stack, { gap: "medium", children: [badge && _jsx(Badge, { variant: BADGE_VARIANT.ACCENT, children: badge }), title && (_jsx(Text, { as: "div", level: "h1", className: "dndev-hero-title", "data-gradient-text": variant === 'subtle' ? undefined : variant || 'primary', children: title })), subtitle && (_jsx(Text, { as: "p", level: "body", className: "dndev-hero-subtitle", children: subtitle })), children] }));
59
+ }, _jsxs(Stack, { children: [badge && _jsx(Badge, { variant: BADGE_VARIANT.ACCENT, children: badge }), title && (_jsx(Text, { as: "div", level: "h1", className: "dndev-hero-title", "data-gradient-text": variant === 'subtle' ? undefined : variant || 'primary', children: title })), subtitle && (_jsx(Text, { as: "p", level: "body", className: "dndev-hero-subtitle", children: subtitle })), children] }));
60
60
  });
61
61
  HeroSection.displayName = 'HeroSection';
62
62
  export default HeroSection;
@@ -3,7 +3,7 @@ import { CONTROL_VARIANT, type ControlVariant } from '../../utils/constants';
3
3
  import './Rating.css';
4
4
  import type { HTMLAttributes } from 'react';
5
5
  declare const ratingVariants: (props?: ({
6
- variant?: "default" | "muted" | "primary" | "secondary" | "accent" | "success" | "warning" | "destructive" | null | undefined;
6
+ variant?: "default" | "primary" | "destructive" | "warning" | "success" | "muted" | "secondary" | "accent" | null | undefined;
7
7
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
8
8
  export interface RatingProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'>, VariantProps<typeof ratingVariants> {
9
9
  /** Current rating value (1-5, supports decimals for display) */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/Rating/index.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG7E,OAAO,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,OAAO,CAAC;AAE3D,QAAA,MAAM,cAAc;;8EAgBlB,CAAC;AAEH,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,EACtD,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,2BAA2B;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uBAAuB;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAiBD;;;;;;;;;;GAUG;AACH,QAAA,MAAM,MAAM,GAAI,gHAWb,WAAW,4CAoHb,CAAC;AAEF,eAAe,MAAM,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,eAAe,IAAI,cAAc,EAAE,CAAC;AAC7D,YAAY,EAAE,cAAc,IAAI,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/Rating/index.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAG7E,OAAO,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,OAAO,CAAC;AAE3D,QAAA,MAAM,cAAc;;8EAgBlB,CAAC;AAEH,MAAM,WAAW,WACf,SACE,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,EAChD,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,2BAA2B;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uBAAuB;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAiBD;;;;;;;;;;GAUG;AACH,QAAA,MAAM,MAAM,GAAI,gHAWb,WAAW,4CAkHb,CAAC;AAEF,eAAe,MAAM,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,eAAe,IAAI,cAAc,EAAE,CAAC;AAC7D,YAAY,EAAE,cAAc,IAAI,aAAa,EAAE,CAAC"}
@@ -8,7 +8,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
8
8
  * @example
9
9
  * ```tsx
10
10
  * // Fixed 3 columns
11
- * <Section title="Features" gridCols={3}>
11
+ * <Section title="Features" gridCols={[1,1,3,3]}>
12
12
  * <Card />
13
13
  * <Card />
14
14
  * <Card />
@@ -6,7 +6,7 @@
6
6
  * @example
7
7
  * ```tsx
8
8
  * // Vertical stack (default div)
9
- * <Stack gap="medium">
9
+ * <Stack>
10
10
  * <Label>Email</Label>
11
11
  * <Input />
12
12
  * </Stack>
@@ -24,7 +24,7 @@
24
24
  * </Stack>
25
25
  *
26
26
  * // Centered, fit-content width with start-aligned items
27
- * <Stack gap="medium" align="start" width="fit" centered>
27
+ * <Stack align="start" width="fit" centered>
28
28
  * <Label>Item 1</Label>
29
29
  * <Label>Item 2</Label>
30
30
  * </Stack>
@@ -7,7 +7,7 @@
7
7
  * @example
8
8
  * ```tsx
9
9
  * // Vertical stack (default div)
10
- * <Stack gap="medium">
10
+ * <Stack>
11
11
  * <Label>Email</Label>
12
12
  * <Input />
13
13
  * </Stack>
@@ -25,7 +25,7 @@
25
25
  * </Stack>
26
26
  *
27
27
  * // Centered, fit-content width with start-aligned items
28
- * <Stack gap="medium" align="start" width="fit" centered>
28
+ * <Stack align="start" width="fit" centered>
29
29
  * <Label>Item 1</Label>
30
30
  * <Label>Item 2</Label>
31
31
  * </Stack>
@@ -20,7 +20,7 @@ export interface StepperStep {
20
20
  content: ReactNode;
21
21
  }
22
22
  declare const stepperVariants: (props?: ({
23
- variant?: "default" | "muted" | "primary" | "secondary" | "accent" | "success" | "warning" | "destructive" | null | undefined;
23
+ variant?: "default" | "primary" | "destructive" | "warning" | "success" | "muted" | "secondary" | "accent" | null | undefined;
24
24
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
25
25
  export type StepperVariant = VariantProps<typeof stepperVariants>['variant'];
26
26
  export interface StepperProps extends VariantProps<typeof stepperVariants> {
@@ -79,7 +79,7 @@ export const Stepper = ({ steps, defaultStep = 0, showStepNumbers = true, showNa
79
79
  if (!currentStep) {
80
80
  return null;
81
81
  }
82
- return (_jsxs(Stack, { ref: containerRef, gap: "medium", className: cn('dndev-stepper-container', className), onKeyDown: handleKeyDown, tabIndex: 0, role: "region", "aria-label": "Stepper navigation", children: [_jsxs("div", { className: "dndev-stepper-nav", children: [showNavigation && (_jsx("button", { onClick: () => handleStepChange(activeStep - 1), disabled: isFirstStep, className: "dndev-interactive", "data-role": "stepper-nav-arrow", "aria-label": previousLabel, ...variantAttrs, children: _jsx(ChevronLeft, {}) })), steps.map((step, index) => (_jsxs("div", { className: "dndev-stepper-nav-item", children: [_jsx("button", { onClick: () => handleStepChange(index), className: "dndev-interactive", "data-role": "stepper-button", "data-state": index === activeStep
82
+ return (_jsxs(Stack, { ref: containerRef, className: cn('dndev-stepper-container', className), onKeyDown: handleKeyDown, tabIndex: 0, role: "region", "aria-label": "Stepper navigation", children: [_jsxs("div", { className: "dndev-stepper-nav", children: [showNavigation && (_jsx("button", { onClick: () => handleStepChange(activeStep - 1), disabled: isFirstStep, className: "dndev-interactive", "data-role": "stepper-nav-arrow", "aria-label": previousLabel, ...variantAttrs, children: _jsx(ChevronLeft, {}) })), steps.map((step, index) => (_jsxs("div", { className: "dndev-stepper-nav-item", children: [_jsx("button", { onClick: () => handleStepChange(index), className: "dndev-interactive", "data-role": "stepper-button", "data-state": index === activeStep
83
83
  ? 'active'
84
84
  : index < activeStep
85
85
  ? 'completed'
@@ -91,6 +91,26 @@ export interface DataTableProps<T = any> {
91
91
  onRowClick?: (row: T) => void;
92
92
  /** Additional CSS classes */
93
93
  className?: string;
94
+ /**
95
+ * Enable export functionality (CSV download button)
96
+ * @default false
97
+ */
98
+ exportable?: boolean;
99
+ /**
100
+ * Custom filename for export (without extension)
101
+ * @default 'export'
102
+ */
103
+ exportFilename?: string;
104
+ /**
105
+ * Callback when export is triggered. If provided, handles export externally.
106
+ * Receives the processed (filtered/sorted) data array.
107
+ */
108
+ onExport?: (data: T[]) => void;
109
+ /**
110
+ * Label for the export button
111
+ * @default 'Export'
112
+ */
113
+ exportLabel?: string;
94
114
  }
95
115
  /**
96
116
  * Basic Table wrapper component.
@@ -105,7 +125,7 @@ declare function TableHead({ className, ...props }: HTMLAttributes<HTMLTableCell
105
125
  declare function TableCell({ className, ...props }: HTMLAttributes<HTMLTableCellElement>): import("react/jsx-runtime").JSX.Element;
106
126
  declare function TableCaption({ className, ...props }: HTMLAttributes<HTMLTableCaptionElement>): import("react/jsx-runtime").JSX.Element;
107
127
  /**
108
- * High-level DataTable component with built-in sorting, filtering, search, and pagination.
128
+ * High-level DataTable component with built-in sorting, filtering, search, pagination, and export.
109
129
  *
110
130
  * @component
111
131
  * @example
@@ -118,12 +138,14 @@ declare function TableCaption({ className, ...props }: HTMLAttributes<HTMLTableC
118
138
  * ]}
119
139
  * searchable
120
140
  * pagination
141
+ * exportable
142
+ * exportFilename="users-export"
121
143
  * />
122
144
  * ```
123
145
  * @param {DataTableProps} props - The props for the data table
124
146
  * @returns {ReactNode} The rendered data table
125
147
  */
126
- declare const DataTable: <T = any>({ data, columns, sortable, selectable, searchable, pagination, currentPage: currentPageProp, pageSize: pageSizeProp, total: totalProp, onPageChange, onPageSizeChange, showingLabel, paginationPreviousLabel, paginationNextLabel, paginationItemsPerPagePlaceholder, loading, gridLines, onSort, onSelect, onSearch, onRowClick, className, }: DataTableProps<T>) => ReactNode;
148
+ declare const DataTable: <T = any>({ data, columns, sortable, selectable, searchable, pagination, currentPage: currentPageProp, pageSize: pageSizeProp, total: totalProp, onPageChange, onPageSizeChange, showingLabel, paginationPreviousLabel, paginationNextLabel, paginationItemsPerPagePlaceholder, loading, gridLines, onSort, onSelect, onSearch, onRowClick, className, exportable, exportFilename, onExport, exportLabel, }: DataTableProps<T>) => ReactNode;
127
149
  export default Table;
128
150
  export { TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption, DataTable, };
129
151
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/Table/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/Table/index.tsx"],"names":[],"mappings":"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"}
@@ -2,13 +2,13 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  // packages/components/src/atomic/Table/index.tsx
3
3
  /**
4
4
  * @fileoverview Table component
5
- * @description Enhanced table with sorting, filtering, and selection
5
+ * @description Enhanced table with sorting, filtering, selection, and export
6
6
  *
7
- * @version 0.0.1
7
+ * @version 0.0.2
8
8
  * @since 0.0.1
9
9
  * @author AMBROISE PARK Consulting
10
10
  */
11
- import { ChevronUp, ChevronDown, Search } from 'lucide-react';
11
+ import { ChevronUp, ChevronDown, Search, Download } from 'lucide-react';
12
12
  import { useState, useMemo, } from 'react';
13
13
  import { cn } from '../../utils/helpers';
14
14
  import Button, { BUTTON_VARIANT } from '../Button';
@@ -49,7 +49,7 @@ function TableCaption({ className, ...props }) {
49
49
  }
50
50
  // Enhanced DataTable component
51
51
  /**
52
- * High-level DataTable component with built-in sorting, filtering, search, and pagination.
52
+ * High-level DataTable component with built-in sorting, filtering, search, pagination, and export.
53
53
  *
54
54
  * @component
55
55
  * @example
@@ -62,12 +62,14 @@ function TableCaption({ className, ...props }) {
62
62
  * ]}
63
63
  * searchable
64
64
  * pagination
65
+ * exportable
66
+ * exportFilename="users-export"
65
67
  * />
66
68
  * ```
67
69
  * @param {DataTableProps} props - The props for the data table
68
70
  * @returns {ReactNode} The rendered data table
69
71
  */
70
- const DataTable = ({ data, columns, sortable = true, selectable = false, searchable = true, pagination = true, currentPage: currentPageProp, pageSize: pageSizeProp, total: totalProp, onPageChange, onPageSizeChange, showingLabel, paginationPreviousLabel, paginationNextLabel, paginationItemsPerPagePlaceholder, loading = false, gridLines = false, onSort, onSelect, onSearch, onRowClick, className, }) => {
72
+ const DataTable = ({ data, columns, sortable = true, selectable = false, searchable = true, pagination = true, currentPage: currentPageProp, pageSize: pageSizeProp, total: totalProp, onPageChange, onPageSizeChange, showingLabel, paginationPreviousLabel, paginationNextLabel, paginationItemsPerPagePlaceholder, loading = false, gridLines = false, onSort, onSelect, onSearch, onRowClick, className, exportable = false, exportFilename = 'export', onExport, exportLabel = 'Export', }) => {
71
73
  const [sortColumn, setSortColumn] = useState('');
72
74
  const [sortDirection, setSortDirection] = useState('asc');
73
75
  const [searchQuery, setSearchQuery] = useState('');
@@ -162,11 +164,58 @@ const DataTable = ({ data, columns, sortable = true, selectable = false, searcha
162
164
  setSearchQuery(query);
163
165
  onSearch?.(query);
164
166
  };
167
+ /**
168
+ * Export processed data to CSV
169
+ * Uses the current filtered/sorted data, respecting column definitions
170
+ */
171
+ const handleExport = () => {
172
+ // If custom handler provided, delegate to it
173
+ if (onExport) {
174
+ onExport(processedData);
175
+ return;
176
+ }
177
+ // Get column headers (only data columns, not render-only columns)
178
+ const dataColumns = columns.filter((col) => col.dataIndex);
179
+ const headers = dataColumns
180
+ .map((col) => {
181
+ // Extract string title, handle ReactNode titles
182
+ const title = col.title;
183
+ return typeof title === 'string' ? title : col.key;
184
+ })
185
+ .join(',');
186
+ // Build CSV rows
187
+ const rows = processedData.map((row) => dataColumns
188
+ .map((col) => {
189
+ const value = col.dataIndex ? row[col.dataIndex] : '';
190
+ // Escape quotes and wrap in quotes if contains comma, quote, or newline
191
+ const stringValue = String(value ?? '');
192
+ if (stringValue.includes(',') ||
193
+ stringValue.includes('"') ||
194
+ stringValue.includes('\n')) {
195
+ return `"${stringValue.replace(/"/g, '""')}"`;
196
+ }
197
+ return stringValue;
198
+ })
199
+ .join(','));
200
+ // Combine headers and rows
201
+ const csv = [headers, ...rows].join('\n');
202
+ // Create and trigger download
203
+ const blob = new Blob([csv], { type: 'text/csv;charset=utf-8;' });
204
+ const url = URL.createObjectURL(blob);
205
+ const link = document.createElement('a');
206
+ link.setAttribute('href', url);
207
+ link.setAttribute('download', `${exportFilename}.csv`);
208
+ link.style.visibility = 'hidden';
209
+ document.body.appendChild(link);
210
+ link.click();
211
+ document.body.removeChild(link);
212
+ URL.revokeObjectURL(url);
213
+ };
165
214
  // Industry standard pattern: When loading, pass empty rows to render actual structure
166
215
  // Component will detect empty data and render skeleton bars in cells
167
216
  const skeletonRows = Array.from({ length: 3 }, () => ({}));
168
217
  const finalDisplayData = loading ? skeletonRows : displayData;
169
- return (_jsxs(Stack, { gap: "medium", children: [searchable && (_jsxs(Stack, { direction: "row", align: "center", className: "dndev-relative dndev-flex-1 dndev-table-search-container", children: [_jsx(Search, { className: "dndev-table-search-icon" }), _jsx(Input, { placeholder: "Search...", value: searchQuery, onChange: (e) => handleSearch(e.target.value), className: "dndev-table-search-input" })] })), _jsxs(Table, { className: cn(gridLines && 'dndev-table-grid'), children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [selectable && (_jsx(TableHead, { className: "dndev-w-touch", children: _jsx(Checkbox, { checked: selectedRows.length === displayData.length &&
218
+ return (_jsxs(Stack, { children: [(searchable || exportable) && (_jsxs(Stack, { direction: "row", align: "center", gap: "tight", children: [searchable && (_jsxs(Stack, { direction: "row", align: "center", className: "dndev-relative dndev-flex-1 dndev-table-search-container", children: [_jsx(Search, { className: "dndev-table-search-icon" }), _jsx(Input, { placeholder: "Search...", value: searchQuery, onChange: (e) => handleSearch(e.target.value), className: "dndev-table-search-input" })] })), exportable && (_jsx(Button, { variant: "outline", icon: Download, onClick: handleExport, disabled: loading || processedData.length === 0, display: "compact", "aria-label": exportLabel, children: exportLabel }))] })), _jsxs(Table, { className: cn(gridLines && 'dndev-table-grid'), children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [selectable && (_jsx(TableHead, { className: "dndev-w-touch", children: _jsx(Checkbox, { checked: selectedRows.length === displayData.length &&
170
219
  displayData.length > 0, onCheckedChange: handleSelectAll, "aria-label": "Select all rows" }) })), columns.map((column) => (_jsx(TableHead, { className: cn(column.sortable && 'dndev-cursor-pointer'), "data-sortable": column.sortable, "data-align": column.align, style: { width: column.width }, onClick: (e) => {
171
220
  // Only sort if clicking on header, not on interactive elements (buttons, inputs, etc.)
172
221
  if (column.sortable) {
@@ -25,7 +25,7 @@ export interface TabItem {
25
25
  forceMount?: boolean;
26
26
  }
27
27
  declare const tabsVariants: (props?: ({
28
- variant?: "default" | "muted" | "primary" | "secondary" | "accent" | "success" | "warning" | "destructive" | null | undefined;
28
+ variant?: "default" | "primary" | "destructive" | "warning" | "success" | "muted" | "secondary" | "accent" | null | undefined;
29
29
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
30
30
  export type TabsVariant = VariantProps<typeof tabsVariants>['variant'];
31
31
  export interface TabsProps extends Omit<ComponentProps<typeof TabsPrimitive>, 'children'>, VariantProps<typeof tabsVariants> {
@@ -15,7 +15,7 @@ export declare const TAG_VARIANT: {
15
15
  readonly ACCENT: "accent";
16
16
  };
17
17
  declare const tagVariants: (props?: ({
18
- variant?: "default" | "accent" | "outline" | null | undefined;
18
+ variant?: "default" | "outline" | "accent" | null | undefined;
19
19
  size?: "sm" | "md" | "lg" | null | undefined;
20
20
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
21
21
  export interface TagProps extends Omit<HTMLAttributes<HTMLSpanElement>, 'onClick'>, VariantProps<typeof tagVariants> {
@@ -62,6 +62,8 @@ interface TextOwnProps {
62
62
  * @example 'normal' | 'medium' | 'semibold' | 'bold'
63
63
  */
64
64
  weight?: 'normal' | 'medium' | 'semibold' | 'bold';
65
+ /** Italic text */
66
+ italic?: boolean;
65
67
  }
66
68
  /**
67
69
  * Polymorphic Text props
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/Text/index.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAKf;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;CAGf,CAAC;AAEX;;GAEG;AACH,UAAU,YAAY;IACpB;;;;;;;;;;OAUG;IACH,EAAE,CAAC,EACC,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,GAAG,GACH,MAAM,GACN,KAAK,GACL,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,OAAO,GACP,MAAM,GACN,QAAQ,GACR,IAAI,CAAC;IAET,wBAAwB;IACxB,QAAQ,EAAE,SAAS,CAAC;IAEpB,gEAAgE;IAChE,OAAO,CAAC,EAAE,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;IAE3D;;;;;;;OAOG;IACH,KAAK,CAAC,EACF,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,MAAM,GACN,OAAO,GACP,SAAS,CAAC;IAEd;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IAEnC;;;;OAIG;IACH,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;CACpD;AAED;;;GAGG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,WAAW,GAAG,KAAK,IAAI,YAAY,GACjE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,MAAM,YAAY,CAAC,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,QAAA,MAAM,IAAI,uHAqDR,CAAC;AAIH,eAAe,IAAI,CAAC;AACpB,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atomic/Text/index.tsx"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,qBAAqB,EAC1B,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAKf;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;CAGf,CAAC;AAEX;;GAEG;AACH,UAAU,YAAY;IACpB;;;;;;;;;;OAUG;IACH,EAAE,CAAC,EACC,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,GAAG,GACH,MAAM,GACN,KAAK,GACL,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,OAAO,GACP,MAAM,GACN,QAAQ,GACR,IAAI,CAAC;IAET,wBAAwB;IACxB,QAAQ,EAAE,SAAS,CAAC;IAEpB,gEAAgE;IAChE,OAAO,CAAC,EAAE,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;IAE3D;;;;;;;OAOG;IACH,KAAK,CAAC,EACF,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,MAAM,GACN,OAAO,GACP,SAAS,CAAC;IAEd;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IAEnC;;;;OAIG;IACH,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IAEnD,kBAAkB;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,WAAW,GAAG,KAAK,IAAI,YAAY,GACjE,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,MAAM,YAAY,CAAC,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,QAAA,MAAM,IAAI,uHAuDR,CAAC;AAIH,eAAe,IAAI,CAAC;AACpB,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC"}
@@ -79,7 +79,7 @@ export const TEXT_VARIANT = {
79
79
  * @param {TextProps} props - The props for the text
80
80
  * @returns {JSX.Element} The rendered text component
81
81
  */
82
- const Text = forwardRef(function Text({ as = 'div', children, variant = TEXT_VARIANT.DEFAULT, level, align, weight, className, ...props }, ref) {
82
+ const Text = forwardRef(function Text({ as = 'div', children, variant = TEXT_VARIANT.DEFAULT, level, align, weight, italic, className, ...props }, ref) {
83
83
  const Component = as;
84
84
  const variantAttrs = getVariantDataAttrs({ variant });
85
85
  // Auto-map as prop to level if level not explicitly provided
@@ -99,6 +99,7 @@ const Text = forwardRef(function Text({ as = 'div', children, variant = TEXT_VAR
99
99
  className: cn('dndev-text-base', className),
100
100
  'data-text-align': align || undefined,
101
101
  'data-font-weight': weight || undefined,
102
+ 'data-italic': italic || undefined,
102
103
  ...variantAttrs,
103
104
  ...levelAttrs,
104
105
  ...props,
@@ -13,7 +13,7 @@ import type { ComponentProps, ReactElement } from 'react';
13
13
  declare const ToastProvider: import("react").FC<ToastPrimitives.ToastProviderProps>;
14
14
  declare function ToastViewport({ className, ...props }: ComponentProps<typeof ToastPrimitives.Viewport>): import("react/jsx-runtime").JSX.Element;
15
15
  declare const toastVariants: (props?: ({
16
- variant?: "default" | "success" | "warning" | "error" | "info" | null | undefined;
16
+ variant?: "default" | "error" | "warning" | "info" | "success" | null | undefined;
17
17
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
18
18
  interface ToastProps extends ComponentProps<typeof ToastPrimitives.Root>, VariantProps<typeof toastVariants> {
19
19
  toastType?: ToastType;
@@ -10,7 +10,7 @@ import { type VariantProps } from 'class-variance-authority';
10
10
  import { TogglePrimitive } from './TogglePrimitive';
11
11
  import type { ComponentPropsWithoutRef } from 'react';
12
12
  declare const toggleVariants: (props?: ({
13
- variant?: "default" | "muted" | "primary" | "secondary" | "accent" | "success" | "warning" | "destructive" | "outline" | null | undefined;
13
+ variant?: "default" | "outline" | "primary" | "destructive" | "warning" | "success" | "muted" | "secondary" | "accent" | null | undefined;
14
14
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
15
15
  export interface ToggleProps extends ComponentPropsWithoutRef<typeof TogglePrimitive>, VariantProps<typeof toggleVariants> {
16
16
  }