@dnanpm/ui-components 0.0.5 → 0.2.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 (169) hide show
  1. package/README.md +11 -42
  2. package/dist/components/Accordion/Accordion.cjs +32 -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 +32 -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 +72 -0
  39. package/dist/components/Breadcrumb/Breadcrumb.cjs.map +1 -0
  40. package/dist/components/Breadcrumb/Breadcrumb.css +73 -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 +72 -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 +42 -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/Button/Button.cjs +104 -0
  54. package/dist/components/Button/Button.cjs.map +1 -0
  55. package/dist/components/Button/Button.css +182 -0
  56. package/dist/components/Button/Button.d.ts +1 -1
  57. package/dist/components/Button/Button.d.ts.map +1 -1
  58. package/dist/components/Button/Button.js +104 -0
  59. package/dist/components/Button/Button.js.map +1 -0
  60. package/dist/components/Button/Button.module.css.cjs +24 -0
  61. package/dist/components/Button/Button.module.css.cjs.map +1 -0
  62. package/dist/components/Button/Button.module.css.js +24 -0
  63. package/dist/components/Button/Button.module.css.js.map +1 -0
  64. package/dist/components/Button/Button.types.d.ts +68 -35
  65. package/dist/components/Button/Button.types.d.ts.map +1 -1
  66. package/dist/components/Button/index.d.ts +1 -1
  67. package/dist/components/Button/index.d.ts.map +1 -1
  68. package/dist/components/ColorScheme/ColorScheme.cjs +9 -0
  69. package/dist/components/ColorScheme/ColorScheme.cjs.map +1 -0
  70. package/dist/components/ColorScheme/ColorScheme.d.ts +3 -0
  71. package/dist/components/ColorScheme/ColorScheme.d.ts.map +1 -0
  72. package/dist/components/ColorScheme/ColorScheme.js +9 -0
  73. package/dist/components/ColorScheme/ColorScheme.js.map +1 -0
  74. package/dist/components/ColorScheme/ColorScheme.types.d.ts +10 -0
  75. package/dist/components/ColorScheme/ColorScheme.types.d.ts.map +1 -0
  76. package/dist/components/ColorScheme/index.d.ts +3 -0
  77. package/dist/components/ColorScheme/index.d.ts.map +1 -0
  78. package/dist/components/Label/Label.cjs +18 -0
  79. package/dist/components/Label/Label.cjs.map +1 -0
  80. package/dist/components/Label/Label.css +38 -0
  81. package/dist/components/Label/Label.d.ts +3 -0
  82. package/dist/components/Label/Label.d.ts.map +1 -0
  83. package/dist/components/Label/Label.js +18 -0
  84. package/dist/components/Label/Label.js.map +1 -0
  85. package/dist/components/Label/Label.module.css.cjs +16 -0
  86. package/dist/components/Label/Label.module.css.cjs.map +1 -0
  87. package/dist/components/Label/Label.module.css.js +16 -0
  88. package/dist/components/Label/Label.module.css.js.map +1 -0
  89. package/dist/components/Label/Label.types.d.ts +24 -0
  90. package/dist/components/Label/Label.types.d.ts.map +1 -0
  91. package/dist/components/Label/index.d.ts +3 -0
  92. package/dist/components/Label/index.d.ts.map +1 -0
  93. package/dist/components/Notification/Notification.cjs +57 -0
  94. package/dist/components/Notification/Notification.cjs.map +1 -0
  95. package/dist/components/Notification/Notification.css +90 -0
  96. package/dist/components/Notification/Notification.d.ts +3 -0
  97. package/dist/components/Notification/Notification.d.ts.map +1 -0
  98. package/dist/components/Notification/Notification.js +57 -0
  99. package/dist/components/Notification/Notification.js.map +1 -0
  100. package/dist/components/Notification/Notification.module.css.cjs +24 -0
  101. package/dist/components/Notification/Notification.module.css.cjs.map +1 -0
  102. package/dist/components/Notification/Notification.module.css.js +24 -0
  103. package/dist/components/Notification/Notification.module.css.js.map +1 -0
  104. package/dist/components/Notification/Notification.types.d.ts +40 -0
  105. package/dist/components/Notification/Notification.types.d.ts.map +1 -0
  106. package/dist/components/Notification/index.d.ts +3 -0
  107. package/dist/components/Notification/index.d.ts.map +1 -0
  108. package/dist/components/Spinner/Spinner.cjs +62 -0
  109. package/dist/components/Spinner/Spinner.cjs.map +1 -0
  110. package/dist/components/Spinner/Spinner.css +116 -0
  111. package/dist/components/Spinner/Spinner.d.ts +3 -0
  112. package/dist/components/Spinner/Spinner.d.ts.map +1 -0
  113. package/dist/components/Spinner/Spinner.js +62 -0
  114. package/dist/components/Spinner/Spinner.js.map +1 -0
  115. package/dist/components/Spinner/Spinner.module.css.cjs +26 -0
  116. package/dist/components/Spinner/Spinner.module.css.cjs.map +1 -0
  117. package/dist/components/Spinner/Spinner.module.css.js +26 -0
  118. package/dist/components/Spinner/Spinner.module.css.js.map +1 -0
  119. package/dist/components/Spinner/Spinner.types.d.ts +41 -0
  120. package/dist/components/Spinner/Spinner.types.d.ts.map +1 -0
  121. package/dist/components/Spinner/index.d.ts +3 -0
  122. package/dist/components/{Tooltip → Spinner}/index.d.ts.map +1 -1
  123. package/dist/font-definitions.css +61 -0
  124. package/dist/index.cjs +19 -10027
  125. package/dist/index.cjs.map +1 -1
  126. package/dist/index.d.ts +15 -7
  127. package/dist/index.d.ts.map +1 -1
  128. package/dist/index.js +17 -10008
  129. package/dist/index.js.map +1 -1
  130. package/dist/styles/utils/elevation.css +28 -0
  131. package/dist/styles/utils/elevation.module.css.cjs +10 -0
  132. package/dist/styles/utils/elevation.module.css.cjs.map +1 -0
  133. package/dist/styles/utils/elevation.module.css.js +10 -0
  134. package/dist/styles/utils/elevation.module.css.js.map +1 -0
  135. package/dist/styles/utils/focus.css +80 -0
  136. package/dist/styles/utils/focus.module.css.cjs +16 -0
  137. package/dist/styles/utils/focus.module.css.cjs.map +1 -0
  138. package/dist/styles/utils/focus.module.css.js +16 -0
  139. package/dist/styles/utils/focus.module.css.js.map +1 -0
  140. package/dist/styles/utils/text-decoration.css +7 -0
  141. package/dist/styles/utils/text-decoration.module.css.cjs +10 -0
  142. package/dist/styles/utils/text-decoration.module.css.cjs.map +1 -0
  143. package/dist/styles/utils/text-decoration.module.css.js +10 -0
  144. package/dist/styles/utils/text-decoration.module.css.js.map +1 -0
  145. package/dist/styles.css +327 -466
  146. package/dist/utils/cn/cn.cjs +8 -0
  147. package/dist/utils/cn/cn.cjs.map +1 -0
  148. package/dist/utils/cn/cn.js +8 -0
  149. package/dist/utils/cn/cn.js.map +1 -0
  150. package/package.json +11 -9
  151. package/dist/components/Box/Box.d.ts +0 -2
  152. package/dist/components/Box/Box.d.ts.map +0 -1
  153. package/dist/components/Box/Box.types.d.ts +0 -24
  154. package/dist/components/Box/Box.types.d.ts.map +0 -1
  155. package/dist/components/Box/index.d.ts +0 -3
  156. package/dist/components/Box/index.d.ts.map +0 -1
  157. package/dist/components/Dialog/Dialog.d.ts +0 -3
  158. package/dist/components/Dialog/Dialog.d.ts.map +0 -1
  159. package/dist/components/Dialog/Dialog.types.d.ts +0 -45
  160. package/dist/components/Dialog/Dialog.types.d.ts.map +0 -1
  161. package/dist/components/Dialog/index.d.ts +0 -3
  162. package/dist/components/Dialog/index.d.ts.map +0 -1
  163. package/dist/components/Tooltip/Tooltip.d.ts +0 -3
  164. package/dist/components/Tooltip/Tooltip.d.ts.map +0 -1
  165. package/dist/components/Tooltip/Tooltip.types.d.ts +0 -39
  166. package/dist/components/Tooltip/Tooltip.types.d.ts.map +0 -1
  167. package/dist/components/Tooltip/index.d.ts +0 -3
  168. package/dist/components/index.d.ts +0 -5
  169. package/dist/components/index.d.ts.map +0 -1
package/README.md CHANGED
@@ -17,7 +17,7 @@ React component library for the DNA Design System. Built with TypeScript, CSS Mo
17
17
  - Themed with design tokens from `@dnanpm/design-tokens`
18
18
  - Supports server-side rendering and tree-shaking
19
19
  - Comprehensive documentation and examples
20
- - Single CSS file for easier consumption
20
+ - One-line CSS setup via `styles.css`
21
21
  - Selective exports for optimal bundle sizes
22
22
 
23
23
  ## Installation
@@ -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 function components with CSS Modules and BEM naming. Design tokens are available as CSS custom properties: `var(--color-semantic-foreground-default)`, `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,32 @@
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 = ({
9
+ variant = "box",
10
+ autoCollapsible = false,
11
+ children,
12
+ className,
13
+ ref,
14
+ ...props
15
+ }) => {
16
+ const groupName = react.useId();
17
+ const contextValue = react.useMemo(
18
+ () => ({ variant, groupName: autoCollapsible ? groupName : void 0 }),
19
+ [variant, autoCollapsible, groupName]
20
+ );
21
+ return /* @__PURE__ */ jsxRuntime.jsx(Accordion_utils.AccordionContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(
22
+ "div",
23
+ {
24
+ ref,
25
+ className: cn.cn(Accordion_module.default.accordion, Accordion_module.default[`accordion--${variant}`], className),
26
+ ...props,
27
+ children
28
+ }
29
+ ) });
30
+ };
31
+ exports.Accordion = Accordion;
32
+ //# sourceMappingURL=Accordion.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.cjs","sources":["../../../src/components/Accordion/Accordion.tsx"],"sourcesContent":["import { 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 = ({\n variant = 'box',\n autoCollapsible = false,\n children,\n className,\n ref,\n ...props\n}: AccordionProps) => {\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"],"names":["useId","useMemo","jsx","AccordionContext","cn","styles"],"mappings":";;;;;;;AAMO,MAAM,YAAY,CAAC;AAAA,EACtB,UAAU;AAAA,EACV,kBAAkB;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACP,MAAsB;AAClB,QAAM,YAAYA,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;;"}
@@ -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: ({ variant, autoCollapsible, children, className, ref, ...props }: AccordionProps) => import("react/jsx-runtime").JSX.Element;
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,GAAI,kEAOvB,cAAc,4CAkBhB,CAAC"}
@@ -0,0 +1,32 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { 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 = ({
7
+ variant = "box",
8
+ autoCollapsible = false,
9
+ children,
10
+ className,
11
+ ref,
12
+ ...props
13
+ }) => {
14
+ const groupName = useId();
15
+ const contextValue = useMemo(
16
+ () => ({ variant, groupName: autoCollapsible ? groupName : void 0 }),
17
+ [variant, autoCollapsible, groupName]
18
+ );
19
+ return /* @__PURE__ */ jsx(AccordionContext.Provider, { value: contextValue, children: /* @__PURE__ */ jsx(
20
+ "div",
21
+ {
22
+ ref,
23
+ className: cn(styles.accordion, styles[`accordion--${variant}`], className),
24
+ ...props,
25
+ children
26
+ }
27
+ ) });
28
+ };
29
+ export {
30
+ Accordion
31
+ };
32
+ //# sourceMappingURL=Accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Accordion.js","sources":["../../../src/components/Accordion/Accordion.tsx"],"sourcesContent":["import { 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 = ({\n variant = 'box',\n autoCollapsible = false,\n children,\n className,\n ref,\n ...props\n}: AccordionProps) => {\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"],"names":[],"mappings":";;;;;AAMO,MAAM,YAAY,CAAC;AAAA,EACtB,UAAU;AAAA,EACV,kBAAkB;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACP,MAAsB;AAClB,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;"}
@@ -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 { ComponentPropsWithRef, ReactNode } from 'react';
2
+ export interface AccordionProps extends ComponentPropsWithRef<'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,qBAAqB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9D,MAAM,WAAW,cAAe,SAAQ,qBAAqB,CAAC,KAAK,CAAC;IAChE;;;;;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 icons = require("@dnanpm/icons");
5
+ const Accordion_utils = require("../Accordion/Accordion.utils.cjs");
6
+ const elevation_module = require("../../styles/utils/elevation.module.css.cjs");
7
+ const focus_module = require("../../styles/utils/focus.module.css.cjs");
8
+ const AccordionItem_module = require("./AccordionItem.module.css.cjs");
9
+ const cn = require("../../utils/cn/cn.cjs");
10
+ const AccordionItem = ({
11
+ label,
12
+ variant: variantProp,
13
+ image,
14
+ imageSize,
15
+ children,
16
+ className,
17
+ name,
18
+ ref,
19
+ ...props
20
+ }) => {
21
+ const { variant: contextVariant, groupName } = Accordion_utils.useAccordionContext();
22
+ const variant = variantProp ?? contextVariant;
23
+ const resolvedImageSize = image ? imageSize ?? "md" : void 0;
24
+ return /* @__PURE__ */ jsxRuntime.jsxs(
25
+ "details",
26
+ {
27
+ ref,
28
+ className: cn.cn(
29
+ AccordionItem_module["accordion-item"],
30
+ AccordionItem_module[`accordion-item--${variant}`],
31
+ variant === "box" && elevation_module.default.elevationLow,
32
+ className
33
+ ),
34
+ ...props,
35
+ name: groupName ?? name,
36
+ children: [
37
+ /* @__PURE__ */ jsxRuntime.jsxs("summary", { className: cn.cn(AccordionItem_module["accordion-item__summary"], focus_module.default.focusableInset), children: [
38
+ image && /* @__PURE__ */ jsxRuntime.jsx(
39
+ "span",
40
+ {
41
+ className: cn.cn(
42
+ AccordionItem_module["accordion-item__image"],
43
+ resolvedImageSize && AccordionItem_module[`accordion-item__image--${resolvedImageSize}`]
44
+ ),
45
+ children: image
46
+ }
47
+ ),
48
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: AccordionItem_module["accordion-item__label"], children: label }),
49
+ /* @__PURE__ */ jsxRuntime.jsx(icons.ChevronDown, { className: AccordionItem_module["accordion-item__chevron"], "aria-hidden": "true" })
50
+ ] }),
51
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: AccordionItem_module["accordion-item__content"], children })
52
+ ]
53
+ }
54
+ );
55
+ };
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 { 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 = ({\n label,\n variant: variantProp,\n image,\n imageSize,\n children,\n className,\n name,\n ref,\n ...props\n}: AccordionItemProps) => {\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 className={cn(styles['accordion-item__summary'], focusStyles.focusableInset)}>\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"],"names":["useAccordionContext","jsxs","cn","styles","elevationStyles","focusStyles","jsx","ChevronDown"],"mappings":";;;;;;;;;AAQO,MAAM,gBAAgB,CAAC;AAAA,EAC1B;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACP,MAA0B;AACtB,QAAM,EAAE,SAAS,gBAAgB,UAAA,IAAcA,gBAAAA,oBAAA;AAC/C,QAAM,UAAU,eAAe;AAC/B,QAAM,oBAAoB,QAAS,aAAa,OAAQ;AAExD,SACIC,2BAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACG;AAAA,MACA,WAAWC,GAAAA;AAAAA,QACPC,qBAAO,gBAAgB;AAAA,QACvBA,qBAAO,mBAAmB,OAAO,EAAE;AAAA,QACnC,YAAY,SAASC,iBAAAA,QAAgB;AAAA,QACrC;AAAA,MAAA;AAAA,MAEH,GAAG;AAAA,MACJ,MAAM,aAAa;AAAA,MAEnB,UAAA;AAAA,QAAAH,2BAAAA,KAAC,WAAA,EAAQ,WAAWC,MAAGC,qBAAO,yBAAyB,GAAGE,aAAAA,QAAY,cAAc,GAC/E,UAAA;AAAA,UAAA,SACGC,2BAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACG,WAAWJ,GAAAA;AAAAA,gBACPC,qBAAO,uBAAuB;AAAA,gBAC9B,qBACIA,qBAAO,0BAA0B,iBAAiB,EAAE;AAAA,cAAA;AAAA,cAG3D,UAAA;AAAA,YAAA;AAAA,UAAA;AAAA,yCAGR,QAAA,EAAK,WAAWA,qBAAO,uBAAuB,GAAI,UAAA,OAAM;AAAA,yCACxDI,MAAAA,aAAA,EAAY,WAAWJ,qBAAO,yBAAyB,GAAG,eAAY,OAAA,CAAO;AAAA,QAAA,GAClF;AAAA,uCACC,OAAA,EAAI,WAAWA,qBAAO,yBAAyB,GAAI,SAAA,CAAS;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGzE;;"}
@@ -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_8bxcn_10 {
11
+ background: var(--color-semantic-surface-base);
12
+ color: var(--color-semantic-foreground-default);
13
+ }
14
+
15
+ /* === Panel variant === */
16
+ /* Inherits text color from parent context intentionally */
17
+
18
+ ._accordion-item--panel_8bxcn_18 {
19
+ border-bottom: var(--borderwidth-semantic-xs) solid var(--color-semantic-border-neutral-mid);
20
+ }
21
+
22
+ /* === Summary (clickable header) === */
23
+
24
+ ._accordion-item__summary_8bxcn_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_8bxcn_24::-webkit-details-marker,
37
+ ._accordion-item__summary_8bxcn_24::marker {
38
+ display: none;
39
+ }
40
+
41
+ /* === Image === */
42
+
43
+ ._accordion-item__image_8bxcn_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_8bxcn_60 {
61
+ width: 1.5rem;
62
+ height: 1.5rem;
63
+ }
64
+
65
+ ._accordion-item__image--md_8bxcn_65 {
66
+ width: 2.5rem;
67
+ height: 2.5rem;
68
+ }
69
+
70
+ ._accordion-item__image--lg_8bxcn_70 {
71
+ width: 5rem;
72
+ height: 5rem;
73
+ }
74
+
75
+ /* === Label === */
76
+
77
+ ._accordion-item__label_8bxcn_77 {
78
+ flex: 1 1 auto;
79
+ min-width: 0;
80
+ font-weight: var(--typography-font-weight-bold);
81
+ }
82
+
83
+ /* === Chevron icon === */
84
+
85
+ ._accordion-item__chevron_8bxcn_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_8bxcn_10[open] > ._accordion-item__summary_8bxcn_24 ._accordion-item__chevron_8bxcn_85 {
93
+ transform: rotate(180deg);
94
+ }
95
+
96
+ /* === Content area === */
97
+
98
+ ._accordion-item__content_8bxcn_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_8bxcn_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_8bxcn_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: ({ label, variant: variantProp, image, imageSize, children, className, name, ref, ...props }: AccordionItemProps) => import("react/jsx-runtime").JSX.Element;
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":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,eAAO,MAAM,aAAa,GAAI,6FAU3B,kBAAkB,4CAmCpB,CAAC"}
@@ -0,0 +1,57 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { ChevronDown } from "@dnanpm/icons";
3
+ import { useAccordionContext } from "../Accordion/Accordion.utils.js";
4
+ import elevationStyles from "../../styles/utils/elevation.module.css.js";
5
+ import focusStyles from "../../styles/utils/focus.module.css.js";
6
+ import styles from "./AccordionItem.module.css.js";
7
+ import { cn } from "../../utils/cn/cn.js";
8
+ const AccordionItem = ({
9
+ label,
10
+ variant: variantProp,
11
+ image,
12
+ imageSize,
13
+ children,
14
+ className,
15
+ name,
16
+ ref,
17
+ ...props
18
+ }) => {
19
+ const { variant: contextVariant, groupName } = useAccordionContext();
20
+ const variant = variantProp ?? contextVariant;
21
+ const resolvedImageSize = image ? imageSize ?? "md" : void 0;
22
+ return /* @__PURE__ */ jsxs(
23
+ "details",
24
+ {
25
+ ref,
26
+ className: cn(
27
+ styles["accordion-item"],
28
+ styles[`accordion-item--${variant}`],
29
+ variant === "box" && elevationStyles.elevationLow,
30
+ className
31
+ ),
32
+ ...props,
33
+ name: groupName ?? name,
34
+ children: [
35
+ /* @__PURE__ */ jsxs("summary", { className: cn(styles["accordion-item__summary"], focusStyles.focusableInset), children: [
36
+ image && /* @__PURE__ */ jsx(
37
+ "span",
38
+ {
39
+ className: cn(
40
+ styles["accordion-item__image"],
41
+ resolvedImageSize && styles[`accordion-item__image--${resolvedImageSize}`]
42
+ ),
43
+ children: image
44
+ }
45
+ ),
46
+ /* @__PURE__ */ jsx("span", { className: styles["accordion-item__label"], children: label }),
47
+ /* @__PURE__ */ jsx(ChevronDown, { className: styles["accordion-item__chevron"], "aria-hidden": "true" })
48
+ ] }),
49
+ /* @__PURE__ */ jsx("div", { className: styles["accordion-item__content"], children })
50
+ ]
51
+ }
52
+ );
53
+ };
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 { 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 = ({\n label,\n variant: variantProp,\n image,\n imageSize,\n children,\n className,\n name,\n ref,\n ...props\n}: AccordionItemProps) => {\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 className={cn(styles['accordion-item__summary'], focusStyles.focusableInset)}>\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"],"names":[],"mappings":";;;;;;;AAQO,MAAM,gBAAgB,CAAC;AAAA,EAC1B;AAAA,EACA,SAAS;AAAA,EACT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACP,MAA0B;AACtB,QAAM,EAAE,SAAS,gBAAgB,UAAA,IAAc,oBAAA;AAC/C,QAAM,UAAU,eAAe;AAC/B,QAAM,oBAAoB,QAAS,aAAa,OAAQ;AAExD,SACI;AAAA,IAAC;AAAA,IAAA;AAAA,MACG;AAAA,MACA,WAAW;AAAA,QACP,OAAO,gBAAgB;AAAA,QACvB,OAAO,mBAAmB,OAAO,EAAE;AAAA,QACnC,YAAY,SAAS,gBAAgB;AAAA,QACrC;AAAA,MAAA;AAAA,MAEH,GAAG;AAAA,MACJ,MAAM,aAAa;AAAA,MAEnB,UAAA;AAAA,QAAA,qBAAC,WAAA,EAAQ,WAAW,GAAG,OAAO,yBAAyB,GAAG,YAAY,cAAc,GAC/E,UAAA;AAAA,UAAA,SACG;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,WAAW;AAAA,gBACP,OAAO,uBAAuB;AAAA,gBAC9B,qBACI,OAAO,0BAA0B,iBAAiB,EAAE;AAAA,cAAA;AAAA,cAG3D,UAAA;AAAA,YAAA;AAAA,UAAA;AAAA,8BAGR,QAAA,EAAK,WAAW,OAAO,uBAAuB,GAAI,UAAA,OAAM;AAAA,8BACxD,aAAA,EAAY,WAAW,OAAO,yBAAyB,GAAG,eAAY,OAAA,CAAO;AAAA,QAAA,GAClF;AAAA,4BACC,OAAA,EAAI,WAAW,OAAO,yBAAyB,GAAI,SAAA,CAAS;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGzE;"}
@@ -0,0 +1,17 @@
1
+ require('./AccordionItem.css');
2
+ "use strict";
3
+ const styles = {
4
+ "accordion-item--box": "_accordion-item--box_8bxcn_10",
5
+ "accordion-item--panel": "_accordion-item--panel_8bxcn_18",
6
+ "accordion-item__summary": "_accordion-item__summary_8bxcn_24",
7
+ "accordion-item__image": "_accordion-item__image_8bxcn_43",
8
+ "accordion-item__image--sm": "_accordion-item__image--sm_8bxcn_60",
9
+ "accordion-item__image--md": "_accordion-item__image--md_8bxcn_65",
10
+ "accordion-item__image--lg": "_accordion-item__image--lg_8bxcn_70",
11
+ "accordion-item__label": "_accordion-item__label_8bxcn_77",
12
+ "accordion-item__chevron": "_accordion-item__chevron_8bxcn_85",
13
+ "accordion-item": "_accordion-item_8bxcn_10",
14
+ "accordion-item__content": "_accordion-item__content_8bxcn_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_8bxcn_10",
4
+ "accordion-item--panel": "_accordion-item--panel_8bxcn_18",
5
+ "accordion-item__summary": "_accordion-item__summary_8bxcn_24",
6
+ "accordion-item__image": "_accordion-item__image_8bxcn_43",
7
+ "accordion-item__image--sm": "_accordion-item__image--sm_8bxcn_60",
8
+ "accordion-item__image--md": "_accordion-item__image--md_8bxcn_65",
9
+ "accordion-item__image--lg": "_accordion-item__image--lg_8bxcn_70",
10
+ "accordion-item__label": "_accordion-item__label_8bxcn_77",
11
+ "accordion-item__chevron": "_accordion-item__chevron_8bxcn_85",
12
+ "accordion-item": "_accordion-item_8bxcn_10",
13
+ "accordion-item__content": "_accordion-item__content_8bxcn_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 { ComponentPropsWithRef, ReactNode } from 'react';
2
+ export type ImageSize = 'sm' | 'md' | 'lg';
3
+ export interface AccordionItemProps extends ComponentPropsWithRef<'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