@dnanpm/ui-components 0.0.5 → 0.1.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.
Files changed (136) hide show
  1. package/README.md +10 -41
  2. package/dist/components/Accordion/Accordion.cjs +26 -0
  3. package/dist/components/Accordion/Accordion.cjs.map +1 -0
  4. package/dist/components/Accordion/Accordion.css +19 -0
  5. package/dist/components/Accordion/Accordion.d.ts +3 -0
  6. package/dist/components/Accordion/Accordion.d.ts.map +1 -0
  7. package/dist/components/Accordion/Accordion.js +26 -0
  8. package/dist/components/Accordion/Accordion.js.map +1 -0
  9. package/dist/components/Accordion/Accordion.module.css.cjs +12 -0
  10. package/dist/components/Accordion/Accordion.module.css.cjs.map +1 -0
  11. package/dist/components/Accordion/Accordion.module.css.js +12 -0
  12. package/dist/components/Accordion/Accordion.module.css.js.map +1 -0
  13. package/dist/components/Accordion/Accordion.types.d.ts +21 -0
  14. package/dist/components/Accordion/Accordion.types.d.ts.map +1 -0
  15. package/dist/components/Accordion/Accordion.utils.cjs +8 -0
  16. package/dist/components/Accordion/Accordion.utils.cjs.map +1 -0
  17. package/dist/components/Accordion/Accordion.utils.d.ts +8 -0
  18. package/dist/components/Accordion/Accordion.utils.d.ts.map +1 -0
  19. package/dist/components/Accordion/Accordion.utils.js +8 -0
  20. package/dist/components/Accordion/Accordion.utils.js.map +1 -0
  21. package/dist/components/Accordion/index.d.ts +3 -0
  22. package/dist/components/Accordion/index.d.ts.map +1 -0
  23. package/dist/components/AccordionItem/AccordionItem.cjs +57 -0
  24. package/dist/components/AccordionItem/AccordionItem.cjs.map +1 -0
  25. package/dist/components/AccordionItem/AccordionItem.css +128 -0
  26. package/dist/components/AccordionItem/AccordionItem.d.ts +3 -0
  27. package/dist/components/AccordionItem/AccordionItem.d.ts.map +1 -0
  28. package/dist/components/AccordionItem/AccordionItem.js +57 -0
  29. package/dist/components/AccordionItem/AccordionItem.js.map +1 -0
  30. package/dist/components/AccordionItem/AccordionItem.module.css.cjs +17 -0
  31. package/dist/components/AccordionItem/AccordionItem.module.css.cjs.map +1 -0
  32. package/dist/components/AccordionItem/AccordionItem.module.css.js +18 -0
  33. package/dist/components/AccordionItem/AccordionItem.module.css.js.map +1 -0
  34. package/dist/components/AccordionItem/AccordionItem.types.d.ts +32 -0
  35. package/dist/components/AccordionItem/AccordionItem.types.d.ts.map +1 -0
  36. package/dist/components/AccordionItem/index.d.ts +3 -0
  37. package/dist/components/AccordionItem/index.d.ts.map +1 -0
  38. package/dist/components/Breadcrumb/Breadcrumb.cjs +73 -0
  39. package/dist/components/Breadcrumb/Breadcrumb.cjs.map +1 -0
  40. package/dist/components/Breadcrumb/Breadcrumb.css +72 -0
  41. package/dist/components/Breadcrumb/Breadcrumb.d.ts +3 -0
  42. package/dist/components/Breadcrumb/Breadcrumb.d.ts.map +1 -0
  43. package/dist/components/Breadcrumb/Breadcrumb.js +73 -0
  44. package/dist/components/Breadcrumb/Breadcrumb.js.map +1 -0
  45. package/dist/components/Breadcrumb/Breadcrumb.module.css.cjs +25 -0
  46. package/dist/components/Breadcrumb/Breadcrumb.module.css.cjs.map +1 -0
  47. package/dist/components/Breadcrumb/Breadcrumb.module.css.js +25 -0
  48. package/dist/components/Breadcrumb/Breadcrumb.module.css.js.map +1 -0
  49. package/dist/components/Breadcrumb/Breadcrumb.types.d.ts +46 -0
  50. package/dist/components/Breadcrumb/Breadcrumb.types.d.ts.map +1 -0
  51. package/dist/components/Breadcrumb/index.d.ts +3 -0
  52. package/dist/components/Breadcrumb/index.d.ts.map +1 -0
  53. package/dist/components/Label/Label.cjs +20 -0
  54. package/dist/components/Label/Label.cjs.map +1 -0
  55. package/dist/components/Label/Label.css +40 -0
  56. package/dist/components/Label/Label.d.ts +3 -0
  57. package/dist/components/Label/Label.d.ts.map +1 -0
  58. package/dist/components/Label/Label.js +20 -0
  59. package/dist/components/Label/Label.js.map +1 -0
  60. package/dist/components/Label/Label.module.css.cjs +16 -0
  61. package/dist/components/Label/Label.module.css.cjs.map +1 -0
  62. package/dist/components/Label/Label.module.css.js +16 -0
  63. package/dist/components/Label/Label.module.css.js.map +1 -0
  64. package/dist/components/Label/Label.types.d.ts +28 -0
  65. package/dist/components/Label/Label.types.d.ts.map +1 -0
  66. package/dist/components/Label/index.d.ts +3 -0
  67. package/dist/components/Label/index.d.ts.map +1 -0
  68. package/dist/components/Notification/Notification.cjs +58 -0
  69. package/dist/components/Notification/Notification.cjs.map +1 -0
  70. package/dist/components/Notification/Notification.css +91 -0
  71. package/dist/components/Notification/Notification.d.ts +3 -0
  72. package/dist/components/Notification/Notification.d.ts.map +1 -0
  73. package/dist/components/Notification/Notification.js +58 -0
  74. package/dist/components/Notification/Notification.js.map +1 -0
  75. package/dist/components/Notification/Notification.module.css.cjs +24 -0
  76. package/dist/components/Notification/Notification.module.css.cjs.map +1 -0
  77. package/dist/components/Notification/Notification.module.css.js +24 -0
  78. package/dist/components/Notification/Notification.module.css.js.map +1 -0
  79. package/dist/components/Notification/Notification.types.d.ts +40 -0
  80. package/dist/components/Notification/Notification.types.d.ts.map +1 -0
  81. package/dist/components/Notification/index.d.ts +3 -0
  82. package/dist/components/Notification/index.d.ts.map +1 -0
  83. package/dist/font-definitions.css +61 -0
  84. package/dist/index.cjs +13 -10027
  85. package/dist/index.cjs.map +1 -1
  86. package/dist/index.d.ts +10 -8
  87. package/dist/index.d.ts.map +1 -1
  88. package/dist/index.js +12 -10009
  89. package/dist/index.js.map +1 -1
  90. package/dist/styles/utils/elevation.css +28 -0
  91. package/dist/styles/utils/elevation.module.css.cjs +10 -0
  92. package/dist/styles/utils/elevation.module.css.cjs.map +1 -0
  93. package/dist/styles/utils/elevation.module.css.js +10 -0
  94. package/dist/styles/utils/elevation.module.css.js.map +1 -0
  95. package/dist/styles/utils/focus.css +59 -0
  96. package/dist/styles/utils/focus.module.css.cjs +16 -0
  97. package/dist/styles/utils/focus.module.css.cjs.map +1 -0
  98. package/dist/styles/utils/focus.module.css.js +16 -0
  99. package/dist/styles/utils/focus.module.css.js.map +1 -0
  100. package/dist/styles/utils/text-decoration.css +7 -0
  101. package/dist/styles/utils/text-decoration.module.css.cjs +10 -0
  102. package/dist/styles/utils/text-decoration.module.css.cjs.map +1 -0
  103. package/dist/styles/utils/text-decoration.module.css.js +10 -0
  104. package/dist/styles/utils/text-decoration.module.css.js.map +1 -0
  105. package/dist/styles.css +49 -347
  106. package/dist/utils/cn/cn.cjs +8 -0
  107. package/dist/utils/cn/cn.cjs.map +1 -0
  108. package/dist/utils/cn/cn.js +8 -0
  109. package/dist/utils/cn/cn.js.map +1 -0
  110. package/package.json +9 -7
  111. package/dist/components/Box/Box.d.ts +0 -2
  112. package/dist/components/Box/Box.d.ts.map +0 -1
  113. package/dist/components/Box/Box.types.d.ts +0 -24
  114. package/dist/components/Box/Box.types.d.ts.map +0 -1
  115. package/dist/components/Box/index.d.ts +0 -3
  116. package/dist/components/Box/index.d.ts.map +0 -1
  117. package/dist/components/Button/Button.d.ts +0 -3
  118. package/dist/components/Button/Button.d.ts.map +0 -1
  119. package/dist/components/Button/Button.types.d.ts +0 -51
  120. package/dist/components/Button/Button.types.d.ts.map +0 -1
  121. package/dist/components/Button/index.d.ts +0 -3
  122. package/dist/components/Button/index.d.ts.map +0 -1
  123. package/dist/components/Dialog/Dialog.d.ts +0 -3
  124. package/dist/components/Dialog/Dialog.d.ts.map +0 -1
  125. package/dist/components/Dialog/Dialog.types.d.ts +0 -45
  126. package/dist/components/Dialog/Dialog.types.d.ts.map +0 -1
  127. package/dist/components/Dialog/index.d.ts +0 -3
  128. package/dist/components/Dialog/index.d.ts.map +0 -1
  129. package/dist/components/Tooltip/Tooltip.d.ts +0 -3
  130. package/dist/components/Tooltip/Tooltip.d.ts.map +0 -1
  131. package/dist/components/Tooltip/Tooltip.types.d.ts +0 -39
  132. package/dist/components/Tooltip/Tooltip.types.d.ts.map +0 -1
  133. package/dist/components/Tooltip/index.d.ts +0 -3
  134. package/dist/components/Tooltip/index.d.ts.map +0 -1
  135. package/dist/components/index.d.ts +0 -5
  136. package/dist/components/index.d.ts.map +0 -1
package/README.md CHANGED
@@ -29,54 +29,23 @@ pnpm add @dnanpm/ui-components @dnanpm/design-tokens
29
29
  ## Usage
30
30
 
31
31
  ```tsx
32
- import { Box, Button, Dialog, Tooltip } from '@dnanpm/ui-components';
32
+ import { Breadcrumb } from '@dnanpm/ui-components';
33
33
  import '@dnanpm/ui-components/styles.css';
34
34
 
35
+ const items = [
36
+ { label: 'Home', href: '/' },
37
+ { label: 'Products', href: '/products' },
38
+ { label: 'Mobile Plans', href: '/products/mobile' },
39
+ ];
40
+
35
41
  function App() {
36
- return (
37
- <div>
38
- <Button variant="primary">Primary Button</Button>
39
- <Button variant="secondary" size="small">
40
- Small Secondary
41
- </Button>
42
- <Button loading>Processing...</Button>
43
-
44
- <Box elevation="high">
45
- <h2>Elevated Content</h2>
46
- </Box>
47
-
48
- <Tooltip content="Additional context lives behind the same DNA API.">
49
- <Button aria-label="Show more information" variant="secondary">
50
- Hover me
51
- </Button>
52
- </Tooltip>
53
-
54
- <Dialog
55
- trigger={<Button>Open dialog</Button>}
56
- title="Project details"
57
- description="Implementation stays internal to the design system."
58
- footer={<Button>Done</Button>}
59
- >
60
- <p>
61
- Consumers use the same component contract regardless of what powers it
62
- underneath.
63
- </p>
64
- </Dialog>
65
- </div>
66
- );
42
+ return <Breadcrumb items={items} />;
67
43
  }
68
44
  ```
69
45
 
70
46
  ## Implementation Model
71
47
 
72
- This package now supports two contributor paths under one public API surface:
73
-
74
- - `Plain React` components, written entirely in-house.
75
- - `Base UI` components, where the public DNA API is built on top of a headless library primitive directly in the component file.
76
-
77
- Consumers should not need to know which path a component uses. Public names, props, and behavior belong to DNA; implementation choices stay internal.
78
-
79
- Design tokens are available as CSS custom properties: `var(--colors-primitive-pink-500)`, `var(--spacing-ui-md)`, etc.
48
+ Components are written as plain React, with `forwardRef`, CSS Modules, and BEM naming. Design tokens are available as CSS custom properties: `var(--colors-primitive-pink-500)`, `var(--spacing-ui-md)`, etc.
80
49
 
81
50
  ### Tree-shaking
82
51
 
@@ -84,7 +53,7 @@ This package uses selective exports to optimize bundle sizes. Import only what y
84
53
 
85
54
  ```tsx
86
55
  // ✅ Good: Named imports (tree-shakeable)
87
- import { Button, Box } from '@dnanpm/ui-components';
56
+ import { Breadcrumb } from '@dnanpm/ui-components';
88
57
 
89
58
  // ❌ Avoid: Wildcard imports (larger bundle)
90
59
  import * as UI from '@dnanpm/ui-components';
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const react = require("react");
5
+ const Accordion_utils = require("./Accordion.utils.cjs");
6
+ const Accordion_module = require("./Accordion.module.css.cjs");
7
+ const cn = require("../../utils/cn/cn.cjs");
8
+ const Accordion = react.forwardRef(function Accordion2({ variant = "box", autoCollapsible = false, children, className, ...props }, ref) {
9
+ const groupName = react.useId();
10
+ const contextValue = react.useMemo(
11
+ () => ({ variant, groupName: autoCollapsible ? groupName : void 0 }),
12
+ [variant, autoCollapsible, groupName]
13
+ );
14
+ return /* @__PURE__ */ jsxRuntime.jsx(Accordion_utils.AccordionContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(
15
+ "div",
16
+ {
17
+ ref,
18
+ className: cn.cn(Accordion_module.default.accordion, Accordion_module.default[`accordion--${variant}`], className),
19
+ ...props,
20
+ children
21
+ }
22
+ ) });
23
+ });
24
+ Accordion.displayName = "Accordion";
25
+ exports.Accordion = Accordion;
26
+ //# sourceMappingURL=Accordion.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.cjs","sources":["../../../src/components/Accordion/Accordion.tsx"],"sourcesContent":["import { forwardRef, useId, useMemo } from 'react';\nimport { cn } from '../../utils/cn';\nimport { AccordionContext } from './Accordion.utils';\nimport styles from './Accordion.module.css';\nimport type { AccordionProps } from './Accordion.types';\n\nexport const Accordion = forwardRef<HTMLDivElement, AccordionProps>(function Accordion(\n { variant = 'box', autoCollapsible = false, children, className, ...props },\n ref,\n) {\n const groupName = useId();\n const contextValue = useMemo(\n () => ({ variant, groupName: autoCollapsible ? groupName : undefined }),\n [variant, autoCollapsible, groupName],\n );\n\n return (\n <AccordionContext.Provider value={contextValue}>\n <div\n ref={ref}\n className={cn(styles.accordion, styles[`accordion--${variant}`], className)}\n {...props}\n >\n {children}\n </div>\n </AccordionContext.Provider>\n );\n});\n\nAccordion.displayName = 'Accordion';\n"],"names":["forwardRef","Accordion","useId","useMemo","jsx","AccordionContext","cn","styles"],"mappings":";;;;;;;AAMO,MAAM,YAAYA,MAAAA,WAA2C,SAASC,WACzE,EAAE,UAAU,OAAO,kBAAkB,OAAO,UAAU,WAAW,GAAG,MAAA,GACpE,KACF;AACE,QAAM,YAAYC,MAAAA,MAAA;AAClB,QAAM,eAAeC,MAAAA;AAAAA,IACjB,OAAO,EAAE,SAAS,WAAW,kBAAkB,YAAY,OAAA;AAAA,IAC3D,CAAC,SAAS,iBAAiB,SAAS;AAAA,EAAA;AAGxC,SACIC,2BAAAA,IAACC,gBAAAA,iBAAiB,UAAjB,EAA0B,OAAO,cAC9B,UAAAD,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACG;AAAA,MACA,WAAWE,GAAAA,GAAGC,iBAAAA,QAAO,WAAWA,iBAAAA,QAAO,cAAc,OAAO,EAAE,GAAG,SAAS;AAAA,MACzE,GAAG;AAAA,MAEH;AAAA,IAAA;AAAA,EAAA,GAET;AAER,CAAC;AAED,UAAU,cAAc;;"}
@@ -0,0 +1,19 @@
1
+ @layer dna-design-system {/**
2
+ * Accordion Component Styles
3
+ *
4
+ * Layout wrapper that spaces AccordionItem children evenly.
5
+ */
6
+
7
+ ._accordion_oi7d7_7 {
8
+ display: flex;
9
+ flex-direction: column;
10
+ }
11
+
12
+ ._accordion--box_oi7d7_12 {
13
+ gap: var(--spacing-ui-md);
14
+ }
15
+
16
+ ._accordion--panel_oi7d7_16 {
17
+ gap: 0;
18
+ }
19
+ }
@@ -0,0 +1,3 @@
1
+ import { AccordionProps } from './Accordion.types';
2
+ export declare const Accordion: import('react').ForwardRefExoticComponent<AccordionProps & import('react').RefAttributes<HTMLDivElement>>;
3
+ //# sourceMappingURL=Accordion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../src/components/Accordion/Accordion.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,eAAO,MAAM,SAAS,2GAqBpB,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { forwardRef, useId, useMemo } from "react";
3
+ import { AccordionContext } from "./Accordion.utils.js";
4
+ import styles from "./Accordion.module.css.js";
5
+ import { cn } from "../../utils/cn/cn.js";
6
+ const Accordion = forwardRef(function Accordion2({ variant = "box", autoCollapsible = false, children, className, ...props }, ref) {
7
+ const groupName = useId();
8
+ const contextValue = useMemo(
9
+ () => ({ variant, groupName: autoCollapsible ? groupName : void 0 }),
10
+ [variant, autoCollapsible, groupName]
11
+ );
12
+ return /* @__PURE__ */ jsx(AccordionContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(
13
+ "div",
14
+ {
15
+ ref,
16
+ className: cn(styles.accordion, styles[`accordion--${variant}`], className),
17
+ ...props,
18
+ children
19
+ }
20
+ ) });
21
+ });
22
+ Accordion.displayName = "Accordion";
23
+ export {
24
+ Accordion
25
+ };
26
+ //# sourceMappingURL=Accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.js","sources":["../../../src/components/Accordion/Accordion.tsx"],"sourcesContent":["import { forwardRef, useId, useMemo } from 'react';\nimport { cn } from '../../utils/cn';\nimport { AccordionContext } from './Accordion.utils';\nimport styles from './Accordion.module.css';\nimport type { AccordionProps } from './Accordion.types';\n\nexport const Accordion = forwardRef<HTMLDivElement, AccordionProps>(function Accordion(\n { variant = 'box', autoCollapsible = false, children, className, ...props },\n ref,\n) {\n const groupName = useId();\n const contextValue = useMemo(\n () => ({ variant, groupName: autoCollapsible ? groupName : undefined }),\n [variant, autoCollapsible, groupName],\n );\n\n return (\n <AccordionContext.Provider value={contextValue}>\n <div\n ref={ref}\n className={cn(styles.accordion, styles[`accordion--${variant}`], className)}\n {...props}\n >\n {children}\n </div>\n </AccordionContext.Provider>\n );\n});\n\nAccordion.displayName = 'Accordion';\n"],"names":["Accordion"],"mappings":";;;;;AAMO,MAAM,YAAY,WAA2C,SAASA,WACzE,EAAE,UAAU,OAAO,kBAAkB,OAAO,UAAU,WAAW,GAAG,MAAA,GACpE,KACF;AACE,QAAM,YAAY,MAAA;AAClB,QAAM,eAAe;AAAA,IACjB,OAAO,EAAE,SAAS,WAAW,kBAAkB,YAAY,OAAA;AAAA,IAC3D,CAAC,SAAS,iBAAiB,SAAS;AAAA,EAAA;AAGxC,SACI,oBAAC,iBAAiB,UAAjB,EAA0B,OAAO,cAC9B,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACG;AAAA,MACA,WAAW,GAAG,OAAO,WAAW,OAAO,cAAc,OAAO,EAAE,GAAG,SAAS;AAAA,MACzE,GAAG;AAAA,MAEH;AAAA,IAAA;AAAA,EAAA,GAET;AAER,CAAC;AAED,UAAU,cAAc;"}
@@ -0,0 +1,12 @@
1
+ require('./Accordion.css');
2
+ "use strict";
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
4
+ const accordion = "_accordion_oi7d7_7";
5
+ const styles = {
6
+ accordion,
7
+ "accordion--box": "_accordion--box_oi7d7_12",
8
+ "accordion--panel": "_accordion--panel_oi7d7_16"
9
+ };
10
+ exports.accordion = accordion;
11
+ exports.default = styles;
12
+ //# sourceMappingURL=Accordion.module.css.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
@@ -0,0 +1,12 @@
1
+ import './Accordion.css';
2
+ const accordion = "_accordion_oi7d7_7";
3
+ const styles = {
4
+ accordion,
5
+ "accordion--box": "_accordion--box_oi7d7_12",
6
+ "accordion--panel": "_accordion--panel_oi7d7_16"
7
+ };
8
+ export {
9
+ accordion,
10
+ styles as default
11
+ };
12
+ //# sourceMappingURL=Accordion.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,21 @@
1
+ import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ export interface AccordionProps extends ComponentPropsWithoutRef<'div'> {
3
+ /**
4
+ * Visual style variant that controls spacing between items.
5
+ * - `box`: 16px gap between items
6
+ * - `panel`: no gap between items (items stack flush)
7
+ * @default 'box'
8
+ */
9
+ readonly variant?: 'box' | 'panel';
10
+ /**
11
+ * When true, only one AccordionItem can be open at a time.
12
+ * Uses the native `<details>` `name` attribute to create an exclusive group.
13
+ * @default false
14
+ */
15
+ readonly autoCollapsible?: boolean;
16
+ /**
17
+ * AccordionItem elements to render within the accordion group.
18
+ */
19
+ readonly children: ReactNode;
20
+ }
21
+ //# sourceMappingURL=Accordion.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.types.d.ts","sourceRoot":"","sources":["../../../src/components/Accordion/Accordion.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEjE,MAAM,WAAW,cAAe,SAAQ,wBAAwB,CAAC,KAAK,CAAC;IACnE;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;CAChC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const react = require("react");
4
+ const AccordionContext = react.createContext({ variant: "box" });
5
+ const useAccordionContext = () => react.useContext(AccordionContext);
6
+ exports.AccordionContext = AccordionContext;
7
+ exports.useAccordionContext = useAccordionContext;
8
+ //# sourceMappingURL=Accordion.utils.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.utils.cjs","sources":["../../../src/components/Accordion/Accordion.utils.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\ninterface AccordionContextValue {\n variant: 'box' | 'panel';\n groupName?: string;\n}\n\nexport const AccordionContext = createContext<AccordionContextValue>({ variant: 'box' });\n\nexport const useAccordionContext = () => useContext(AccordionContext);\n"],"names":["createContext","useContext"],"mappings":";;;AAOO,MAAM,mBAAmBA,MAAAA,cAAqC,EAAE,SAAS,OAAO;AAEhF,MAAM,sBAAsB,MAAMC,MAAAA,WAAW,gBAAgB;;;"}
@@ -0,0 +1,8 @@
1
+ interface AccordionContextValue {
2
+ variant: 'box' | 'panel';
3
+ groupName?: string;
4
+ }
5
+ export declare const AccordionContext: import('react').Context<AccordionContextValue>;
6
+ export declare const useAccordionContext: () => AccordionContextValue;
7
+ export {};
8
+ //# sourceMappingURL=Accordion.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.utils.d.ts","sourceRoot":"","sources":["../../../src/components/Accordion/Accordion.utils.ts"],"names":[],"mappings":"AAEA,UAAU,qBAAqB;IAC3B,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,gBAAgB,gDAA2D,CAAC;AAEzF,eAAO,MAAM,mBAAmB,6BAAqC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { createContext, useContext } from "react";
2
+ const AccordionContext = createContext({ variant: "box" });
3
+ const useAccordionContext = () => useContext(AccordionContext);
4
+ export {
5
+ AccordionContext,
6
+ useAccordionContext
7
+ };
8
+ //# sourceMappingURL=Accordion.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.utils.js","sources":["../../../src/components/Accordion/Accordion.utils.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\ninterface AccordionContextValue {\n variant: 'box' | 'panel';\n groupName?: string;\n}\n\nexport const AccordionContext = createContext<AccordionContextValue>({ variant: 'box' });\n\nexport const useAccordionContext = () => useContext(AccordionContext);\n"],"names":[],"mappings":";AAOO,MAAM,mBAAmB,cAAqC,EAAE,SAAS,OAAO;AAEhF,MAAM,sBAAsB,MAAM,WAAW,gBAAgB;"}
@@ -0,0 +1,3 @@
1
+ export { Accordion } from './Accordion';
2
+ export type { AccordionProps } from './Accordion.types';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Accordion/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
4
+ const react = require("react");
5
+ const icons = require("@dnanpm/icons");
6
+ const Accordion_utils = require("../Accordion/Accordion.utils.cjs");
7
+ const elevation_module = require("../../styles/utils/elevation.module.css.cjs");
8
+ const focus_module = require("../../styles/utils/focus.module.css.cjs");
9
+ const AccordionItem_module = require("./AccordionItem.module.css.cjs");
10
+ const cn = require("../../utils/cn/cn.cjs");
11
+ const AccordionItem = react.forwardRef(
12
+ function AccordionItem2({ label, variant: variantProp, image, imageSize, children, className, name, ...props }, ref) {
13
+ const { variant: contextVariant, groupName } = Accordion_utils.useAccordionContext();
14
+ const variant = variantProp ?? contextVariant;
15
+ const resolvedImageSize = image ? imageSize ?? "md" : void 0;
16
+ return /* @__PURE__ */ jsxRuntime.jsxs(
17
+ "details",
18
+ {
19
+ ref,
20
+ className: cn.cn(
21
+ AccordionItem_module["accordion-item"],
22
+ AccordionItem_module[`accordion-item--${variant}`],
23
+ variant === "box" && elevation_module.default.elevationLow,
24
+ className
25
+ ),
26
+ ...props,
27
+ name: groupName ?? name,
28
+ children: [
29
+ /* @__PURE__ */ jsxRuntime.jsxs(
30
+ "summary",
31
+ {
32
+ className: cn.cn(AccordionItem_module["accordion-item__summary"], focus_module.default.focusableInset),
33
+ children: [
34
+ image && /* @__PURE__ */ jsxRuntime.jsx(
35
+ "span",
36
+ {
37
+ className: cn.cn(
38
+ AccordionItem_module["accordion-item__image"],
39
+ resolvedImageSize && AccordionItem_module[`accordion-item__image--${resolvedImageSize}`]
40
+ ),
41
+ children: image
42
+ }
43
+ ),
44
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: AccordionItem_module["accordion-item__label"], children: label }),
45
+ /* @__PURE__ */ jsxRuntime.jsx(icons.ChevronDown, { className: AccordionItem_module["accordion-item__chevron"], "aria-hidden": "true" })
46
+ ]
47
+ }
48
+ ),
49
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: AccordionItem_module["accordion-item__content"], children })
50
+ ]
51
+ }
52
+ );
53
+ }
54
+ );
55
+ AccordionItem.displayName = "AccordionItem";
56
+ exports.AccordionItem = AccordionItem;
57
+ //# sourceMappingURL=AccordionItem.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccordionItem.cjs","sources":["../../../src/components/AccordionItem/AccordionItem.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { ChevronDown } from '@dnanpm/icons';\nimport { cn } from '../../utils/cn';\nimport { useAccordionContext } from '../Accordion/Accordion.utils';\nimport elevationStyles from '../../styles/utils/elevation.module.css';\nimport focusStyles from '../../styles/utils/focus.module.css';\nimport styles from './AccordionItem.module.css';\nimport type { AccordionItemProps } from './AccordionItem.types';\n\nexport const AccordionItem = forwardRef<HTMLDetailsElement, AccordionItemProps>(\n function AccordionItem(\n { label, variant: variantProp, image, imageSize, children, className, name, ...props },\n ref,\n ) {\n const { variant: contextVariant, groupName } = useAccordionContext();\n const variant = variantProp ?? contextVariant;\n const resolvedImageSize = image ? (imageSize ?? 'md') : undefined;\n\n return (\n <details\n ref={ref}\n className={cn(\n styles['accordion-item'],\n styles[`accordion-item--${variant}`],\n variant === 'box' && elevationStyles.elevationLow,\n className,\n )}\n {...props}\n name={groupName ?? name}\n >\n <summary\n className={cn(styles['accordion-item__summary'], focusStyles.focusableInset)}\n >\n {image && (\n <span\n className={cn(\n styles['accordion-item__image'],\n resolvedImageSize &&\n styles[`accordion-item__image--${resolvedImageSize}`],\n )}\n >\n {image}\n </span>\n )}\n <span className={styles['accordion-item__label']}>{label}</span>\n <ChevronDown className={styles['accordion-item__chevron']} aria-hidden=\"true\" />\n </summary>\n <div className={styles['accordion-item__content']}>{children}</div>\n </details>\n );\n },\n);\n\nAccordionItem.displayName = 'AccordionItem';\n"],"names":["forwardRef","AccordionItem","useAccordionContext","jsxs","cn","styles","elevationStyles","focusStyles","jsx","ChevronDown"],"mappings":";;;;;;;;;;AASO,MAAM,gBAAgBA,MAAAA;AAAAA,EACzB,SAASC,eACL,EAAE,OAAO,SAAS,aAAa,OAAO,WAAW,UAAU,WAAW,MAAM,GAAG,MAAA,GAC/E,KACF;AACE,UAAM,EAAE,SAAS,gBAAgB,UAAA,IAAcC,gBAAAA,oBAAA;AAC/C,UAAM,UAAU,eAAe;AAC/B,UAAM,oBAAoB,QAAS,aAAa,OAAQ;AAExD,WACIC,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACG;AAAA,QACA,WAAWC,GAAAA;AAAAA,UACPC,qBAAO,gBAAgB;AAAA,UACvBA,qBAAO,mBAAmB,OAAO,EAAE;AAAA,UACnC,YAAY,SAASC,iBAAAA,QAAgB;AAAA,UACrC;AAAA,QAAA;AAAA,QAEH,GAAG;AAAA,QACJ,MAAM,aAAa;AAAA,QAEnB,UAAA;AAAA,UAAAH,2BAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACG,WAAWC,GAAAA,GAAGC,qBAAO,yBAAyB,GAAGE,aAAAA,QAAY,cAAc;AAAA,cAE1E,UAAA;AAAA,gBAAA,SACGC,2BAAAA;AAAAA,kBAAC;AAAA,kBAAA;AAAA,oBACG,WAAWJ,GAAAA;AAAAA,sBACPC,qBAAO,uBAAuB;AAAA,sBAC9B,qBACIA,qBAAO,0BAA0B,iBAAiB,EAAE;AAAA,oBAAA;AAAA,oBAG3D,UAAA;AAAA,kBAAA;AAAA,gBAAA;AAAA,+CAGR,QAAA,EAAK,WAAWA,qBAAO,uBAAuB,GAAI,UAAA,OAAM;AAAA,+CACxDI,MAAAA,aAAA,EAAY,WAAWJ,qBAAO,yBAAyB,GAAG,eAAY,OAAA,CAAO;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,yCAEjF,OAAA,EAAI,WAAWA,qBAAO,yBAAyB,GAAI,SAAA,CAAS;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGzE;AACJ;AAEA,cAAc,cAAc;;"}
@@ -0,0 +1,128 @@
1
+ @layer dna-design-system {/**
2
+ * AccordionItem Component Styles
3
+ *
4
+ * Uses native <details> element for expand/collapse behavior.
5
+ * Two variants: box (elevated card) and panel (flat bordered).
6
+ */
7
+
8
+ /* === Box variant === */
9
+
10
+ ._accordion-item--box_1724u_10 {
11
+ background: var(--colors-semantic-surface-base);
12
+ color: var(--colors-semantic-foreground-default);
13
+ }
14
+
15
+ /* === Panel variant === */
16
+ /* Inherits text color from parent context intentionally */
17
+
18
+ ._accordion-item--panel_1724u_18 {
19
+ border-bottom: var(--borderwidth-semantic-xs) solid var(--colors-semantic-border-neutral-mid);
20
+ }
21
+
22
+ /* === Summary (clickable header) === */
23
+
24
+ ._accordion-item__summary_1724u_24 {
25
+ display: flex;
26
+ align-items: center;
27
+ gap: var(--spacing-ui-lg);
28
+ padding: var(--spacing-ui-md) var(--spacing-ui-lg);
29
+ cursor: pointer;
30
+ list-style: none;
31
+ user-select: none;
32
+ border-radius: var(--radius-semantic-md);
33
+ }
34
+
35
+ /* Remove default marker in all browsers */
36
+ ._accordion-item__summary_1724u_24::-webkit-details-marker,
37
+ ._accordion-item__summary_1724u_24::marker {
38
+ display: none;
39
+ }
40
+
41
+ /* === Image === */
42
+
43
+ ._accordion-item__image_1724u_43 {
44
+ display: flex;
45
+ align-items: center;
46
+ justify-content: center;
47
+ flex: 0 0 auto;
48
+ overflow: hidden;
49
+
50
+ & > img,
51
+ & > svg {
52
+ max-width: 100%;
53
+ max-height: 100%;
54
+ display: block;
55
+ }
56
+ }
57
+
58
+ /* === Image size variants === */
59
+
60
+ ._accordion-item__image--sm_1724u_60 {
61
+ width: 1.5rem;
62
+ height: 1.5rem;
63
+ }
64
+
65
+ ._accordion-item__image--md_1724u_65 {
66
+ width: 2.5rem;
67
+ height: 2.5rem;
68
+ }
69
+
70
+ ._accordion-item__image--lg_1724u_70 {
71
+ width: 5rem;
72
+ height: 5rem;
73
+ }
74
+
75
+ /* === Label === */
76
+
77
+ ._accordion-item__label_1724u_77 {
78
+ flex: 1 1 auto;
79
+ min-width: 0;
80
+ font-weight: 700;
81
+ }
82
+
83
+ /* === Chevron icon === */
84
+
85
+ ._accordion-item__chevron_1724u_85 {
86
+ flex: 0 0 auto;
87
+ width: 1.5rem;
88
+ height: 1.5rem;
89
+ transition: transform 0.2s ease-in-out;
90
+ }
91
+
92
+ ._accordion-item_1724u_10[open] > ._accordion-item__summary_1724u_24 ._accordion-item__chevron_1724u_85 {
93
+ transform: rotate(180deg);
94
+ }
95
+
96
+ /* === Content area === */
97
+
98
+ ._accordion-item__content_1724u_98 {
99
+ padding: 0 var(--spacing-ui-lg) var(--spacing-ui-lg);
100
+
101
+ & > *:last-child {
102
+ margin-bottom: 0;
103
+ }
104
+ }
105
+
106
+ /* === Animation === */
107
+ ._accordion-item_1724u_10::details-content {
108
+ display: block;
109
+ block-size: 0;
110
+ opacity: 0;
111
+ overflow: hidden;
112
+ @supports (interpolate-size: allow-keywords) {
113
+ transition-property: block-size, content-visibility, opacity;
114
+ transition-duration: 0.2s;
115
+ transition-timing-function: ease-in-out;
116
+ transition-behavior: allow-discrete;
117
+ }
118
+ }
119
+ ._accordion-item_1724u_10[open]::details-content {
120
+ /* Fallback for browsers that don't support calc-size() function */
121
+ block-size: auto;
122
+ opacity: 1;
123
+ @supports (interpolate-size: allow-keywords) {
124
+ /* calc-size() function allows transition to height: auto; */
125
+ block-size: calc-size(auto, size);
126
+ }
127
+ }
128
+ }
@@ -0,0 +1,3 @@
1
+ import { AccordionItemProps } from './AccordionItem.types';
2
+ export declare const AccordionItem: import('react').ForwardRefExoticComponent<AccordionItemProps & import('react').RefAttributes<HTMLDetailsElement>>;
3
+ //# sourceMappingURL=AccordionItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccordionItem.d.ts","sourceRoot":"","sources":["../../../src/components/AccordionItem/AccordionItem.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,eAAO,MAAM,aAAa,mHA0CzB,CAAC"}
@@ -0,0 +1,57 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { forwardRef } from "react";
3
+ import { ChevronDown } from "@dnanpm/icons";
4
+ import { useAccordionContext } from "../Accordion/Accordion.utils.js";
5
+ import elevationStyles from "../../styles/utils/elevation.module.css.js";
6
+ import focusStyles from "../../styles/utils/focus.module.css.js";
7
+ import styles from "./AccordionItem.module.css.js";
8
+ import { cn } from "../../utils/cn/cn.js";
9
+ const AccordionItem = forwardRef(
10
+ function AccordionItem2({ label, variant: variantProp, image, imageSize, children, className, name, ...props }, ref) {
11
+ const { variant: contextVariant, groupName } = useAccordionContext();
12
+ const variant = variantProp ?? contextVariant;
13
+ const resolvedImageSize = image ? imageSize ?? "md" : void 0;
14
+ return /* @__PURE__ */ jsxs(
15
+ "details",
16
+ {
17
+ ref,
18
+ className: cn(
19
+ styles["accordion-item"],
20
+ styles[`accordion-item--${variant}`],
21
+ variant === "box" && elevationStyles.elevationLow,
22
+ className
23
+ ),
24
+ ...props,
25
+ name: groupName ?? name,
26
+ children: [
27
+ /* @__PURE__ */ jsxs(
28
+ "summary",
29
+ {
30
+ className: cn(styles["accordion-item__summary"], focusStyles.focusableInset),
31
+ children: [
32
+ image && /* @__PURE__ */ jsx(
33
+ "span",
34
+ {
35
+ className: cn(
36
+ styles["accordion-item__image"],
37
+ resolvedImageSize && styles[`accordion-item__image--${resolvedImageSize}`]
38
+ ),
39
+ children: image
40
+ }
41
+ ),
42
+ /* @__PURE__ */ jsx("span", { className: styles["accordion-item__label"], children: label }),
43
+ /* @__PURE__ */ jsx(ChevronDown, { className: styles["accordion-item__chevron"], "aria-hidden": "true" })
44
+ ]
45
+ }
46
+ ),
47
+ /* @__PURE__ */ jsx("div", { className: styles["accordion-item__content"], children })
48
+ ]
49
+ }
50
+ );
51
+ }
52
+ );
53
+ AccordionItem.displayName = "AccordionItem";
54
+ export {
55
+ AccordionItem
56
+ };
57
+ //# sourceMappingURL=AccordionItem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccordionItem.js","sources":["../../../src/components/AccordionItem/AccordionItem.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { ChevronDown } from '@dnanpm/icons';\nimport { cn } from '../../utils/cn';\nimport { useAccordionContext } from '../Accordion/Accordion.utils';\nimport elevationStyles from '../../styles/utils/elevation.module.css';\nimport focusStyles from '../../styles/utils/focus.module.css';\nimport styles from './AccordionItem.module.css';\nimport type { AccordionItemProps } from './AccordionItem.types';\n\nexport const AccordionItem = forwardRef<HTMLDetailsElement, AccordionItemProps>(\n function AccordionItem(\n { label, variant: variantProp, image, imageSize, children, className, name, ...props },\n ref,\n ) {\n const { variant: contextVariant, groupName } = useAccordionContext();\n const variant = variantProp ?? contextVariant;\n const resolvedImageSize = image ? (imageSize ?? 'md') : undefined;\n\n return (\n <details\n ref={ref}\n className={cn(\n styles['accordion-item'],\n styles[`accordion-item--${variant}`],\n variant === 'box' && elevationStyles.elevationLow,\n className,\n )}\n {...props}\n name={groupName ?? name}\n >\n <summary\n className={cn(styles['accordion-item__summary'], focusStyles.focusableInset)}\n >\n {image && (\n <span\n className={cn(\n styles['accordion-item__image'],\n resolvedImageSize &&\n styles[`accordion-item__image--${resolvedImageSize}`],\n )}\n >\n {image}\n </span>\n )}\n <span className={styles['accordion-item__label']}>{label}</span>\n <ChevronDown className={styles['accordion-item__chevron']} aria-hidden=\"true\" />\n </summary>\n <div className={styles['accordion-item__content']}>{children}</div>\n </details>\n );\n },\n);\n\nAccordionItem.displayName = 'AccordionItem';\n"],"names":["AccordionItem"],"mappings":";;;;;;;;AASO,MAAM,gBAAgB;AAAA,EACzB,SAASA,eACL,EAAE,OAAO,SAAS,aAAa,OAAO,WAAW,UAAU,WAAW,MAAM,GAAG,MAAA,GAC/E,KACF;AACE,UAAM,EAAE,SAAS,gBAAgB,UAAA,IAAc,oBAAA;AAC/C,UAAM,UAAU,eAAe;AAC/B,UAAM,oBAAoB,QAAS,aAAa,OAAQ;AAExD,WACI;AAAA,MAAC;AAAA,MAAA;AAAA,QACG;AAAA,QACA,WAAW;AAAA,UACP,OAAO,gBAAgB;AAAA,UACvB,OAAO,mBAAmB,OAAO,EAAE;AAAA,UACnC,YAAY,SAAS,gBAAgB;AAAA,UACrC;AAAA,QAAA;AAAA,QAEH,GAAG;AAAA,QACJ,MAAM,aAAa;AAAA,QAEnB,UAAA;AAAA,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,WAAW,GAAG,OAAO,yBAAyB,GAAG,YAAY,cAAc;AAAA,cAE1E,UAAA;AAAA,gBAAA,SACG;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACG,WAAW;AAAA,sBACP,OAAO,uBAAuB;AAAA,sBAC9B,qBACI,OAAO,0BAA0B,iBAAiB,EAAE;AAAA,oBAAA;AAAA,oBAG3D,UAAA;AAAA,kBAAA;AAAA,gBAAA;AAAA,oCAGR,QAAA,EAAK,WAAW,OAAO,uBAAuB,GAAI,UAAA,OAAM;AAAA,oCACxD,aAAA,EAAY,WAAW,OAAO,yBAAyB,GAAG,eAAY,OAAA,CAAO;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,8BAEjF,OAAA,EAAI,WAAW,OAAO,yBAAyB,GAAI,SAAA,CAAS;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAGzE;AACJ;AAEA,cAAc,cAAc;"}
@@ -0,0 +1,17 @@
1
+ require('./AccordionItem.css');
2
+ "use strict";
3
+ const styles = {
4
+ "accordion-item--box": "_accordion-item--box_1724u_10",
5
+ "accordion-item--panel": "_accordion-item--panel_1724u_18",
6
+ "accordion-item__summary": "_accordion-item__summary_1724u_24",
7
+ "accordion-item__image": "_accordion-item__image_1724u_43",
8
+ "accordion-item__image--sm": "_accordion-item__image--sm_1724u_60",
9
+ "accordion-item__image--md": "_accordion-item__image--md_1724u_65",
10
+ "accordion-item__image--lg": "_accordion-item__image--lg_1724u_70",
11
+ "accordion-item__label": "_accordion-item__label_1724u_77",
12
+ "accordion-item__chevron": "_accordion-item__chevron_1724u_85",
13
+ "accordion-item": "_accordion-item_1724u_10",
14
+ "accordion-item__content": "_accordion-item__content_1724u_98"
15
+ };
16
+ module.exports = styles;
17
+ //# sourceMappingURL=AccordionItem.module.css.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccordionItem.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
@@ -0,0 +1,18 @@
1
+ import './AccordionItem.css';
2
+ const styles = {
3
+ "accordion-item--box": "_accordion-item--box_1724u_10",
4
+ "accordion-item--panel": "_accordion-item--panel_1724u_18",
5
+ "accordion-item__summary": "_accordion-item__summary_1724u_24",
6
+ "accordion-item__image": "_accordion-item__image_1724u_43",
7
+ "accordion-item__image--sm": "_accordion-item__image--sm_1724u_60",
8
+ "accordion-item__image--md": "_accordion-item__image--md_1724u_65",
9
+ "accordion-item__image--lg": "_accordion-item__image--lg_1724u_70",
10
+ "accordion-item__label": "_accordion-item__label_1724u_77",
11
+ "accordion-item__chevron": "_accordion-item__chevron_1724u_85",
12
+ "accordion-item": "_accordion-item_1724u_10",
13
+ "accordion-item__content": "_accordion-item__content_1724u_98"
14
+ };
15
+ export {
16
+ styles as default
17
+ };
18
+ //# sourceMappingURL=AccordionItem.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccordionItem.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;"}
@@ -0,0 +1,32 @@
1
+ import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ export type ImageSize = 'sm' | 'md' | 'lg';
3
+ export interface AccordionItemProps extends ComponentPropsWithoutRef<'details'> {
4
+ /**
5
+ * The visible label text displayed in the summary row.
6
+ */
7
+ readonly label: string;
8
+ /**
9
+ * Visual style variant.
10
+ * - `box`: elevated card with rounded corners and full border
11
+ * - `panel`: flat style with bottom border only
12
+ * @default 'box'
13
+ */
14
+ readonly variant?: 'box' | 'panel';
15
+ /**
16
+ * Optional image or icon element rendered before the label in the summary row.
17
+ */
18
+ readonly image?: ReactNode;
19
+ /**
20
+ * Size of the square image area in the summary row.
21
+ * Defaults to `md` when `image` is provided and `imageSize` is not set.
22
+ * - `sm`: 24×24 px
23
+ * - `md`: 40×40 px
24
+ * - `lg`: 80×80 px
25
+ */
26
+ readonly imageSize?: ImageSize;
27
+ /**
28
+ * The expandable content area. Can contain any React elements.
29
+ */
30
+ readonly children: ReactNode;
31
+ }
32
+ //# sourceMappingURL=AccordionItem.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccordionItem.types.d.ts","sourceRoot":"","sources":["../../../src/components/AccordionItem/AccordionItem.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEjE,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3C,MAAM,WAAW,kBAAmB,SAAQ,wBAAwB,CAAC,SAAS,CAAC;IAC3E;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;IACnC;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC/B;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;CAChC"}
@@ -0,0 +1,3 @@
1
+ export { AccordionItem } from './AccordionItem';
2
+ export type { AccordionItemProps, ImageSize } from './AccordionItem.types';
3
+ //# sourceMappingURL=index.d.ts.map