@dnanpm/ui-components 0.0.4 → 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 (132) hide show
  1. package/README.md +14 -17
  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 -94
  85. package/dist/index.cjs.map +1 -1
  86. package/dist/index.d.ts +12 -5
  87. package/dist/index.d.ts.map +1 -1
  88. package/dist/index.js +12 -93
  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 +50 -119
  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.d.ts +16 -0
  109. package/dist/utils/cn/cn.d.ts.map +1 -0
  110. package/dist/utils/cn/cn.js +8 -0
  111. package/dist/utils/cn/cn.js.map +1 -0
  112. package/dist/utils/cn/index.d.ts +3 -0
  113. package/dist/utils/cn/index.d.ts.map +1 -0
  114. package/dist/utils/index.d.ts +1 -0
  115. package/dist/utils/index.d.ts.map +1 -1
  116. package/package.json +16 -5
  117. package/dist/components/Box/Box.d.ts +0 -24
  118. package/dist/components/Box/Box.d.ts.map +0 -1
  119. package/dist/components/Box/Box.types.d.ts +0 -24
  120. package/dist/components/Box/Box.types.d.ts.map +0 -1
  121. package/dist/components/Box/index.d.ts +0 -3
  122. package/dist/components/Box/index.d.ts.map +0 -1
  123. package/dist/components/Button/Button.d.ts +0 -3
  124. package/dist/components/Button/Button.d.ts.map +0 -1
  125. package/dist/components/Button/Button.types.d.ts +0 -51
  126. package/dist/components/Button/Button.types.d.ts.map +0 -1
  127. package/dist/components/Button/index.d.ts +0 -3
  128. package/dist/components/Button/index.d.ts.map +0 -1
  129. package/dist/components/index.d.ts +0 -3
  130. package/dist/components/index.d.ts.map +0 -1
  131. package/dist/utils/cn.d.ts +0 -6
  132. package/dist/utils/cn.d.ts.map +0 -1
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # DNA UI Components
2
2
 
3
- [![npm version](https://badge.fury.io/js/%40dnanpm%2Fui-components.svg)](https://badge.fury.io/js/%40dnanpm%2Fui-components)
3
+ [![npm version](https://img.shields.io/npm/v/%40dnanpm%2Fui-components?logo=npm)](https://www.npmjs.com/package/@dnanpm/ui-components)
4
4
 
5
5
  > ⚠️ **Under Heavy Development** — This package is actively being developed. Breaking changes may occur between minor versions during the 0.x release cycle.
6
6
 
@@ -12,6 +12,7 @@ React component library for the DNA Design System. Built with TypeScript, CSS Mo
12
12
  ## Features
13
13
 
14
14
  - Accessible, responsive, and customizable components
15
+ - Canonical DNA component APIs with swappable internal implementations
15
16
  - Built with TypeScript and CSS Modules
16
17
  - Themed with design tokens from `@dnanpm/design-tokens`
17
18
  - Supports server-side rendering and tree-shaking
@@ -28,27 +29,23 @@ pnpm add @dnanpm/ui-components @dnanpm/design-tokens
28
29
  ## Usage
29
30
 
30
31
  ```tsx
31
- import { Button, Box } from '@dnanpm/ui-components';
32
+ import { Breadcrumb } from '@dnanpm/ui-components';
32
33
  import '@dnanpm/ui-components/styles.css';
33
34
 
35
+ const items = [
36
+ { label: 'Home', href: '/' },
37
+ { label: 'Products', href: '/products' },
38
+ { label: 'Mobile Plans', href: '/products/mobile' },
39
+ ];
40
+
34
41
  function App() {
35
- return (
36
- <div>
37
- <Button variant="primary">Primary Button</Button>
38
- <Button variant="secondary" size="small">
39
- Small Secondary
40
- </Button>
41
- <Button loading>Processing...</Button>
42
-
43
- <Box elevation="high">
44
- <h2>Elevated Content</h2>
45
- </Box>
46
- </div>
47
- );
42
+ return <Breadcrumb items={items} />;
48
43
  }
49
44
  ```
50
45
 
51
- Design tokens are available as CSS custom properties: `var(--colors-primitive-pink-500)`, `var(--spacing-ui-md)`, etc.
46
+ ## Implementation Model
47
+
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.
52
49
 
53
50
  ### Tree-shaking
54
51
 
@@ -56,7 +53,7 @@ This package uses selective exports to optimize bundle sizes. Import only what y
56
53
 
57
54
  ```tsx
58
55
  // ✅ Good: Named imports (tree-shakeable)
59
- import { Button, Box } from '@dnanpm/ui-components';
56
+ import { Breadcrumb } from '@dnanpm/ui-components';
60
57
 
61
58
  // ❌ Avoid: Wildcard imports (larger bundle)
62
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/AccordionItem/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC"}