@dnanpm/ui-components 0.9.0 → 0.10.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 (240) hide show
  1. package/README.md +13 -0
  2. package/dist/components/Accordion/Accordion.css +5 -1
  3. package/dist/components/AccordionItem/AccordionItem.cjs +4 -4
  4. package/dist/components/AccordionItem/AccordionItem.cjs.map +1 -1
  5. package/dist/components/AccordionItem/AccordionItem.css +4 -1
  6. package/dist/components/AccordionItem/AccordionItem.d.ts.map +1 -1
  7. package/dist/components/AccordionItem/AccordionItem.js +2 -2
  8. package/dist/components/AccordionItem/AccordionItem.js.map +1 -1
  9. package/dist/components/Avatar/Avatar.cjs +83 -0
  10. package/dist/components/Avatar/Avatar.cjs.map +1 -0
  11. package/dist/components/Avatar/Avatar.css +188 -0
  12. package/dist/components/Avatar/Avatar.d.ts +3 -0
  13. package/dist/components/Avatar/Avatar.d.ts.map +1 -0
  14. package/dist/components/Avatar/Avatar.js +83 -0
  15. package/dist/components/Avatar/Avatar.js.map +1 -0
  16. package/dist/components/Avatar/Avatar.module.css.cjs +40 -0
  17. package/dist/components/Avatar/Avatar.module.css.cjs.map +1 -0
  18. package/dist/components/Avatar/Avatar.module.css.js +40 -0
  19. package/dist/components/Avatar/Avatar.module.css.js.map +1 -0
  20. package/dist/components/Avatar/Avatar.types.d.ts +66 -0
  21. package/dist/components/Avatar/Avatar.types.d.ts.map +1 -0
  22. package/dist/components/Avatar/Avatar.utils.cjs +17 -0
  23. package/dist/components/Avatar/Avatar.utils.cjs.map +1 -0
  24. package/dist/components/Avatar/Avatar.utils.d.ts +6 -0
  25. package/dist/components/Avatar/Avatar.utils.d.ts.map +1 -0
  26. package/dist/components/Avatar/Avatar.utils.js +17 -0
  27. package/dist/components/Avatar/Avatar.utils.js.map +1 -0
  28. package/dist/components/Avatar/index.d.ts +3 -0
  29. package/dist/components/Avatar/index.d.ts.map +1 -0
  30. package/dist/components/Breadcrumb/Breadcrumb.cjs +9 -12
  31. package/dist/components/Breadcrumb/Breadcrumb.cjs.map +1 -1
  32. package/dist/components/Breadcrumb/Breadcrumb.css +16 -16
  33. package/dist/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  34. package/dist/components/Breadcrumb/Breadcrumb.js +2 -5
  35. package/dist/components/Breadcrumb/Breadcrumb.js.map +1 -1
  36. package/dist/components/Breadcrumb/Breadcrumb.module.css.cjs +5 -8
  37. package/dist/components/Breadcrumb/Breadcrumb.module.css.cjs.map +1 -1
  38. package/dist/components/Breadcrumb/Breadcrumb.module.css.js +5 -8
  39. package/dist/components/Breadcrumb/Breadcrumb.module.css.js.map +1 -1
  40. package/dist/components/Button/Button.cjs +29 -3
  41. package/dist/components/Button/Button.cjs.map +1 -1
  42. package/dist/components/Button/Button.css +78 -31
  43. package/dist/components/Button/Button.d.ts +1 -1
  44. package/dist/components/Button/Button.d.ts.map +1 -1
  45. package/dist/components/Button/Button.js +28 -2
  46. package/dist/components/Button/Button.js.map +1 -1
  47. package/dist/components/Button/Button.module.css.cjs +19 -11
  48. package/dist/components/Button/Button.module.css.cjs.map +1 -1
  49. package/dist/components/Button/Button.module.css.js +19 -11
  50. package/dist/components/Button/Button.module.css.js.map +1 -1
  51. package/dist/components/Button/Button.types.d.ts +20 -3
  52. package/dist/components/Button/Button.types.d.ts.map +1 -1
  53. package/dist/components/Button/index.d.ts +1 -1
  54. package/dist/components/Button/index.d.ts.map +1 -1
  55. package/dist/components/ButtonCard/ButtonCard.cjs +19 -14
  56. package/dist/components/ButtonCard/ButtonCard.cjs.map +1 -1
  57. package/dist/components/ButtonCard/ButtonCard.css +63 -20
  58. package/dist/components/ButtonCard/ButtonCard.d.ts +2 -1
  59. package/dist/components/ButtonCard/ButtonCard.d.ts.map +1 -1
  60. package/dist/components/ButtonCard/ButtonCard.js +17 -12
  61. package/dist/components/ButtonCard/ButtonCard.js.map +1 -1
  62. package/dist/components/ButtonCard/ButtonCard.module.css.cjs +14 -12
  63. package/dist/components/ButtonCard/ButtonCard.module.css.cjs.map +1 -1
  64. package/dist/components/ButtonCard/ButtonCard.module.css.js +14 -12
  65. package/dist/components/ButtonCard/ButtonCard.module.css.js.map +1 -1
  66. package/dist/components/ButtonCard/ButtonCard.types.d.ts +3 -2
  67. package/dist/components/ButtonCard/ButtonCard.types.d.ts.map +1 -1
  68. package/dist/components/Checkbox/Checkbox.cjs +105 -0
  69. package/dist/components/Checkbox/Checkbox.cjs.map +1 -0
  70. package/dist/components/Checkbox/Checkbox.css +323 -0
  71. package/dist/components/Checkbox/Checkbox.d.ts +3 -0
  72. package/dist/components/Checkbox/Checkbox.d.ts.map +1 -0
  73. package/dist/components/Checkbox/Checkbox.js +105 -0
  74. package/dist/components/Checkbox/Checkbox.js.map +1 -0
  75. package/dist/components/Checkbox/Checkbox.module.css.cjs +35 -0
  76. package/dist/components/Checkbox/Checkbox.module.css.cjs.map +1 -0
  77. package/dist/components/Checkbox/Checkbox.module.css.js +35 -0
  78. package/dist/components/Checkbox/Checkbox.module.css.js.map +1 -0
  79. package/dist/components/Checkbox/Checkbox.types.d.ts +47 -0
  80. package/dist/components/Checkbox/Checkbox.types.d.ts.map +1 -0
  81. package/dist/components/Checkbox/index.d.ts +3 -0
  82. package/dist/components/Checkbox/index.d.ts.map +1 -0
  83. package/dist/components/ContentCard/ContentCard.cjs +8 -7
  84. package/dist/components/ContentCard/ContentCard.cjs.map +1 -1
  85. package/dist/components/ContentCard/ContentCard.css +39 -34
  86. package/dist/components/ContentCard/ContentCard.d.ts.map +1 -1
  87. package/dist/components/ContentCard/ContentCard.js +3 -2
  88. package/dist/components/ContentCard/ContentCard.js.map +1 -1
  89. package/dist/components/ContentCard/ContentCard.module.css.cjs +18 -18
  90. package/dist/components/ContentCard/ContentCard.module.css.js +18 -18
  91. package/dist/components/ContentCard/ContentCard.types.d.ts +2 -1
  92. package/dist/components/ContentCard/ContentCard.types.d.ts.map +1 -1
  93. package/dist/components/Drawer/Drawer.cjs +15 -7
  94. package/dist/components/Drawer/Drawer.cjs.map +1 -1
  95. package/dist/components/Drawer/Drawer.css +48 -45
  96. package/dist/components/Drawer/Drawer.d.ts.map +1 -1
  97. package/dist/components/Drawer/Drawer.js +12 -4
  98. package/dist/components/Drawer/Drawer.js.map +1 -1
  99. package/dist/components/Drawer/Drawer.module.css.cjs +16 -16
  100. package/dist/components/Drawer/Drawer.module.css.js +16 -16
  101. package/dist/components/Footer/Footer.cjs +8 -9
  102. package/dist/components/Footer/Footer.cjs.map +1 -1
  103. package/dist/components/Footer/Footer.css +87 -83
  104. package/dist/components/Footer/Footer.d.ts.map +1 -1
  105. package/dist/components/Footer/Footer.js +1 -2
  106. package/dist/components/Footer/Footer.js.map +1 -1
  107. package/dist/components/Footer/Footer.module.css.cjs +39 -39
  108. package/dist/components/Footer/Footer.module.css.js +39 -39
  109. package/dist/components/FunctionButton/FunctionButton.cjs +2 -2
  110. package/dist/components/FunctionButton/FunctionButton.cjs.map +1 -1
  111. package/dist/components/FunctionButton/FunctionButton.css +5 -1
  112. package/dist/components/FunctionButton/FunctionButton.js +1 -1
  113. package/dist/components/FunctionButton/FunctionButton.js.map +1 -1
  114. package/dist/components/Hero/Hero.cjs +30 -27
  115. package/dist/components/Hero/Hero.cjs.map +1 -1
  116. package/dist/components/Hero/Hero.css +49 -44
  117. package/dist/components/Hero/Hero.d.ts +1 -1
  118. package/dist/components/Hero/Hero.d.ts.map +1 -1
  119. package/dist/components/Hero/Hero.js +30 -27
  120. package/dist/components/Hero/Hero.js.map +1 -1
  121. package/dist/components/Hero/Hero.module.css.cjs +18 -18
  122. package/dist/components/Hero/Hero.module.css.js +18 -18
  123. package/dist/components/Hero/Hero.types.d.ts +2 -6
  124. package/dist/components/Hero/Hero.types.d.ts.map +1 -1
  125. package/dist/components/IconButton/IconButton.cjs +3 -4
  126. package/dist/components/IconButton/IconButton.cjs.map +1 -1
  127. package/dist/components/IconButton/IconButton.css +5 -1
  128. package/dist/components/IconButton/IconButton.d.ts.map +1 -1
  129. package/dist/components/IconButton/IconButton.js +1 -2
  130. package/dist/components/IconButton/IconButton.js.map +1 -1
  131. package/dist/components/Label/Label.css +5 -1
  132. package/dist/components/MainNavigation/MainNavigation.cjs +216 -162
  133. package/dist/components/MainNavigation/MainNavigation.cjs.map +1 -1
  134. package/dist/components/MainNavigation/MainNavigation.css +206 -183
  135. package/dist/components/MainNavigation/MainNavigation.d.ts +1 -1
  136. package/dist/components/MainNavigation/MainNavigation.d.ts.map +1 -1
  137. package/dist/components/MainNavigation/MainNavigation.js +177 -123
  138. package/dist/components/MainNavigation/MainNavigation.js.map +1 -1
  139. package/dist/components/MainNavigation/MainNavigation.module.css.cjs +80 -78
  140. package/dist/components/MainNavigation/MainNavigation.module.css.cjs.map +1 -1
  141. package/dist/components/MainNavigation/MainNavigation.module.css.js +80 -78
  142. package/dist/components/MainNavigation/MainNavigation.module.css.js.map +1 -1
  143. package/dist/components/MainNavigation/MainNavigation.types.d.ts +0 -13
  144. package/dist/components/MainNavigation/MainNavigation.types.d.ts.map +1 -1
  145. package/dist/components/MainNavigation/MainNavigation.utils.cjs +8 -4
  146. package/dist/components/MainNavigation/MainNavigation.utils.cjs.map +1 -1
  147. package/dist/components/MainNavigation/MainNavigation.utils.d.ts +1 -0
  148. package/dist/components/MainNavigation/MainNavigation.utils.d.ts.map +1 -1
  149. package/dist/components/MainNavigation/MainNavigation.utils.js +8 -4
  150. package/dist/components/MainNavigation/MainNavigation.utils.js.map +1 -1
  151. package/dist/components/Modal/Modal.cjs +14 -6
  152. package/dist/components/Modal/Modal.cjs.map +1 -1
  153. package/dist/components/Modal/Modal.css +44 -40
  154. package/dist/components/Modal/Modal.d.ts.map +1 -1
  155. package/dist/components/Modal/Modal.js +12 -4
  156. package/dist/components/Modal/Modal.js.map +1 -1
  157. package/dist/components/Modal/Modal.module.css.cjs +18 -18
  158. package/dist/components/Modal/Modal.module.css.js +18 -18
  159. package/dist/components/Notification/Notification.cjs +3 -2
  160. package/dist/components/Notification/Notification.cjs.map +1 -1
  161. package/dist/components/Notification/Notification.css +16 -11
  162. package/dist/components/Notification/Notification.d.ts.map +1 -1
  163. package/dist/components/Notification/Notification.js +2 -1
  164. package/dist/components/Notification/Notification.js.map +1 -1
  165. package/dist/components/Notification/Notification.module.css.cjs +9 -9
  166. package/dist/components/Notification/Notification.module.css.js +9 -9
  167. package/dist/components/Pagination/Pagination.cjs +142 -0
  168. package/dist/components/Pagination/Pagination.cjs.map +1 -0
  169. package/dist/components/Pagination/Pagination.css +256 -0
  170. package/dist/components/Pagination/Pagination.d.ts +3 -0
  171. package/dist/components/Pagination/Pagination.d.ts.map +1 -0
  172. package/dist/components/Pagination/Pagination.js +142 -0
  173. package/dist/components/Pagination/Pagination.js.map +1 -0
  174. package/dist/components/Pagination/Pagination.module.css.cjs +34 -0
  175. package/dist/components/Pagination/Pagination.module.css.cjs.map +1 -0
  176. package/dist/components/Pagination/Pagination.module.css.js +34 -0
  177. package/dist/components/Pagination/Pagination.module.css.js.map +1 -0
  178. package/dist/components/Pagination/Pagination.types.d.ts +20 -0
  179. package/dist/components/Pagination/Pagination.types.d.ts.map +1 -0
  180. package/dist/components/Pagination/Pagination.utils.cjs +76 -0
  181. package/dist/components/Pagination/Pagination.utils.cjs.map +1 -0
  182. package/dist/components/Pagination/Pagination.utils.d.ts +21 -0
  183. package/dist/components/Pagination/Pagination.utils.d.ts.map +1 -0
  184. package/dist/components/Pagination/Pagination.utils.js +76 -0
  185. package/dist/components/Pagination/Pagination.utils.js.map +1 -0
  186. package/dist/components/Pagination/index.d.ts +3 -0
  187. package/dist/components/Pagination/index.d.ts.map +1 -0
  188. package/dist/components/Pictograph/Pictograph.css +5 -1
  189. package/dist/components/Pictograph/PictographItem.css +5 -1
  190. package/dist/components/Quote/Quote.css +5 -1
  191. package/dist/components/Spinner/Spinner.css +5 -1
  192. package/dist/design-tokens/dist/tokens.cjs +5 -0
  193. package/dist/design-tokens/dist/tokens.cjs.map +1 -0
  194. package/dist/design-tokens/dist/tokens.js +5 -0
  195. package/dist/design-tokens/dist/tokens.js.map +1 -0
  196. package/dist/index.cjs +6 -0
  197. package/dist/index.cjs.map +1 -1
  198. package/dist/index.d.ts +7 -1
  199. package/dist/index.d.ts.map +1 -1
  200. package/dist/index.js +6 -0
  201. package/dist/index.js.map +1 -1
  202. package/dist/styles/utilities.css +6 -0
  203. package/dist/styles/utils/elevation.css +35 -26
  204. package/dist/styles/utils/focus.css +63 -68
  205. package/dist/styles/utils/index.cjs +33 -0
  206. package/dist/styles/utils/index.cjs.map +1 -0
  207. package/dist/styles/utils/index.d.ts +20 -0
  208. package/dist/styles/utils/index.d.ts.map +1 -0
  209. package/dist/styles/utils/index.js +33 -0
  210. package/dist/styles/utils/index.js.map +1 -0
  211. package/dist/styles/utils/overlay.css +35 -27
  212. package/dist/styles/utils/text-decoration.css +20 -12
  213. package/dist/styles.css +27 -3
  214. package/dist/utils/index.d.ts +1 -0
  215. package/dist/utils/index.d.ts.map +1 -1
  216. package/dist/utils/isRenderable/index.d.ts +2 -0
  217. package/dist/utils/isRenderable/index.d.ts.map +1 -0
  218. package/dist/utils/isRenderable/isRenderable.cjs +5 -0
  219. package/dist/utils/isRenderable/isRenderable.cjs.map +1 -0
  220. package/dist/utils/isRenderable/isRenderable.d.ts +4 -0
  221. package/dist/utils/isRenderable/isRenderable.d.ts.map +1 -0
  222. package/dist/utils/isRenderable/isRenderable.js +5 -0
  223. package/dist/utils/isRenderable/isRenderable.js.map +1 -0
  224. package/package.json +12 -4
  225. package/dist/styles/utils/elevation.module.css.cjs +0 -16
  226. package/dist/styles/utils/elevation.module.css.cjs.map +0 -1
  227. package/dist/styles/utils/elevation.module.css.js +0 -16
  228. package/dist/styles/utils/elevation.module.css.js.map +0 -1
  229. package/dist/styles/utils/focus.module.css.cjs +0 -16
  230. package/dist/styles/utils/focus.module.css.cjs.map +0 -1
  231. package/dist/styles/utils/focus.module.css.js +0 -16
  232. package/dist/styles/utils/focus.module.css.js.map +0 -1
  233. package/dist/styles/utils/overlay.module.css.cjs +0 -13
  234. package/dist/styles/utils/overlay.module.css.cjs.map +0 -1
  235. package/dist/styles/utils/overlay.module.css.js +0 -13
  236. package/dist/styles/utils/overlay.module.css.js.map +0 -1
  237. package/dist/styles/utils/text-decoration.module.css.cjs +0 -13
  238. package/dist/styles/utils/text-decoration.module.css.cjs.map +0 -1
  239. package/dist/styles/utils/text-decoration.module.css.js +0 -13
  240. package/dist/styles/utils/text-decoration.module.css.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ContentCard.cjs","sources":["../../../src/components/ContentCard/ContentCard.tsx"],"sourcesContent":["import { useId } from 'react';\nimport type { CSSProperties, ElementType, ReactNode } from 'react';\nimport { cn } from '../../utils/cn';\nimport elevationStyles from '../../styles/utils/elevation.module.css';\nimport styles from './ContentCard.module.css';\nimport type { ContentCardLogoBackground, ContentCardProps } from './ContentCard.types';\n\nconst logoBackgroundToken: Record<ContentCardLogoBackground, string> = {\n white: 'var(--color-semantic-surface-base)',\n 'sand-soft': 'var(--color-semantic-surface-neutral-soft)',\n 'sand-mid': 'var(--color-semantic-surface-neutral-mid)',\n 'sand-strong': 'var(--color-semantic-surface-neutral-strong)',\n 'pink-soft': 'var(--color-semantic-surface-primary-soft)',\n 'pink-mid': 'var(--color-semantic-surface-primary-mid)',\n 'pink-strong': 'var(--color-semantic-surface-primary-strong)',\n 'plum-soft': 'var(--color-semantic-surface-secondary-soft)',\n 'plum-mid': 'var(--color-semantic-surface-secondary-mid)',\n 'plum-strong': 'var(--color-semantic-surface-secondary-strong)',\n};\n\n// A boolean ReactNode (e.g. from `condition && <X />`) renders nothing, so treat it as absent.\nconst isRenderable = (node: ReactNode): boolean => node != null && typeof node !== 'boolean';\n\nexport const ContentCard = ({\n media,\n mediaKind = 'image',\n mediaBackground,\n mediaWidth = '1/3',\n mediaPosition = 'start',\n titlePrefix,\n title,\n headingLevel = 'h3',\n body,\n actions,\n appearance = 'plain',\n as = 'article',\n className,\n ref,\n ...props\n}: ContentCardProps) => {\n const titleId = useId();\n const HeadingLevel = headingLevel;\n // Cast to ElementType so the constrained union of tags renders without ref/props conflicts.\n const Root = as as ElementType;\n const hasMedia = isRenderable(media);\n const ariaLabel = props['aria-label'];\n // Keep an explicit aria-labelledby; only the generated title fallback is suppressed for a\n // bare div or when an aria-label is provided.\n const ariaLabelledBy =\n props['aria-labelledby'] ?? (ariaLabel || as === 'div' ? undefined : titleId);\n\n return (\n <Root\n ref={ref}\n {...props}\n className={cn(\n styles['content-card'],\n hasMedia && mediaWidth === '1/2' && styles['content-card--media-half'],\n hasMedia && mediaPosition === 'end' && styles['content-card--media-end'],\n appearance === 'border' && styles['content-card--border'],\n appearance === 'elevated' && styles['content-card--elevated'],\n appearance === 'elevated' && elevationStyles.elevationLow,\n className,\n )}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n <div className={styles['content-card__layout']}>\n {hasMedia && (\n <div\n className={cn(\n styles['content-card__media'],\n mediaKind === 'logo'\n ? styles['content-card__media--logo']\n : styles['content-card__media--image'],\n )}\n style={\n mediaKind === 'logo' && mediaBackground != null\n ? ({\n '--_cc-logo-bg': logoBackgroundToken[mediaBackground],\n } as CSSProperties)\n : undefined\n }\n >\n <div className={styles['content-card__media-inner']}>{media}</div>\n </div>\n )}\n\n <div className={styles['content-card__content']}>\n <div className={styles['content-card__content-inner']}>\n <div className={styles['content-card__body-region']}>\n <div className={styles['content-card__header']}>\n {isRenderable(titlePrefix) && (\n <div className={styles['content-card__prefix']}>\n {titlePrefix}\n </div>\n )}\n <HeadingLevel\n id={titleId}\n className={styles['content-card__title']}\n >\n {title}\n </HeadingLevel>\n </div>\n {isRenderable(body) && (\n <div className={cn(styles['content-card__body'], 'dds-prose')}>\n {body}\n </div>\n )}\n </div>\n {isRenderable(actions) && (\n <div className={styles['content-card__actions']}>{actions}</div>\n )}\n </div>\n </div>\n </div>\n </Root>\n );\n};\n"],"names":["useId","jsx","cn","styles","elevationStyles","jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"ContentCard.cjs","sources":["../../../src/components/ContentCard/ContentCard.tsx"],"sourcesContent":["import { useId } from 'react';\nimport type { CSSProperties, ElementType, ReactNode } from 'react';\nimport { cn } from '../../utils/cn';\nimport { isRenderable } from '../../utils/isRenderable';\nimport { elevationStyles } from '../../styles/utils';\nimport styles from './ContentCard.module.css';\nimport type { ContentCardLogoBackground, ContentCardProps } from './ContentCard.types';\n\nconst logoBackgroundToken: Record<ContentCardLogoBackground, string> = {\n white: 'var(--color-semantic-surface-base)',\n 'sand-soft': 'var(--color-semantic-surface-neutral-soft)',\n 'sand-mid': 'var(--color-semantic-surface-neutral-mid)',\n 'sand-strong': 'var(--color-semantic-surface-neutral-strong)',\n 'pink-soft': 'var(--color-semantic-surface-primary-soft)',\n 'pink-mid': 'var(--color-semantic-surface-primary-mid)',\n 'pink-strong': 'var(--color-semantic-surface-primary-strong)',\n 'plum-soft': 'var(--color-semantic-surface-secondary-soft)',\n 'plum-mid': 'var(--color-semantic-surface-secondary-mid)',\n 'plum-strong': 'var(--color-semantic-surface-secondary-strong)',\n};\n\nexport const ContentCard = ({\n media,\n mediaKind = 'image',\n mediaBackground,\n mediaWidth = '1/3',\n mediaPosition = 'start',\n titlePrefix,\n title,\n headingLevel = 'h3',\n body,\n actions,\n appearance = 'plain',\n as = 'article',\n className,\n ref,\n ...props\n}: ContentCardProps) => {\n const titleId = useId();\n const HeadingLevel = headingLevel;\n // Cast to ElementType so the constrained union of tags renders without ref/props conflicts.\n const Root = as as ElementType;\n const hasMedia = isRenderable(media);\n const ariaLabel = props['aria-label'];\n // Keep an explicit aria-labelledby; only the generated title fallback is suppressed for a\n // bare div or when an aria-label is provided.\n const ariaLabelledBy =\n props['aria-labelledby'] ?? (ariaLabel || as === 'div' ? undefined : titleId);\n\n return (\n <Root\n ref={ref}\n {...props}\n data-color-scheme=\"light\"\n className={cn(\n styles['content-card'],\n hasMedia && mediaWidth === '1/2' && styles['content-card--media-half'],\n hasMedia && mediaPosition === 'end' && styles['content-card--media-end'],\n appearance === 'border' && styles['content-card--border'],\n appearance === 'elevated' && styles['content-card--elevated'],\n appearance === 'elevated' && elevationStyles.elevationLow,\n className,\n )}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n <div className={styles['content-card__layout']}>\n {hasMedia && (\n <div\n className={cn(\n styles['content-card__media'],\n mediaKind === 'logo'\n ? styles['content-card__media--logo']\n : styles['content-card__media--image'],\n )}\n style={\n mediaKind === 'logo' && mediaBackground != null\n ? ({\n '--_cc-logo-bg': logoBackgroundToken[mediaBackground],\n } as CSSProperties)\n : undefined\n }\n >\n <div className={styles['content-card__media-inner']}>{media}</div>\n </div>\n )}\n\n <div className={styles['content-card__content']}>\n <div className={styles['content-card__content-inner']}>\n <div className={styles['content-card__body-region']}>\n <div className={styles['content-card__header']}>\n {isRenderable(titlePrefix) && (\n <div className={styles['content-card__prefix']}>\n {titlePrefix}\n </div>\n )}\n <HeadingLevel\n id={titleId}\n className={styles['content-card__title']}\n >\n {title}\n </HeadingLevel>\n </div>\n {isRenderable(body) && (\n <div className={cn(styles['content-card__body'], 'dds-prose')}>\n {body}\n </div>\n )}\n </div>\n {isRenderable(actions) && (\n <div className={styles['content-card__actions']}>{actions}</div>\n )}\n </div>\n </div>\n </div>\n </Root>\n );\n};\n"],"names":["useId","isRenderable","jsx","cn","styles","elevationStyles","jsxs"],"mappings":"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"}
@@ -11,13 +11,14 @@
11
11
  * gaps stay constant across sizes.
12
12
  */
13
13
 
14
- ._content-card_1pa46_10 {
14
+ ._content-card_15yr0_10 {
15
15
  display: flex;
16
16
  flex-direction: column;
17
17
  width: 100%;
18
18
  min-width: 0;
19
19
  /* Reset the base list-item margin when the root renders as <li>. */
20
20
  margin: 0;
21
+ color: var(--color-semantic-foreground-default);
21
22
  background-color: var(--color-semantic-surface-base);
22
23
  border-radius: var(--radius-semantic-md);
23
24
  /* Clips media corners to the card radius; the card's own box-shadow is not clipped. */
@@ -26,12 +27,12 @@
26
27
  container-type: inline-size;
27
28
  }
28
29
 
29
- ._content-card--border_1pa46_25 {
30
+ ._content-card--border_15yr0_26 {
30
31
  border: var(--borderwidth-semantic-xs) solid var(--color-semantic-border-neutral-base);
31
32
  }
32
33
 
33
34
  /* Layout wrapper: a descendant of the container so its direction can respond to card width. */
34
- ._content-card__layout_1pa46_30 {
35
+ ._content-card__layout_15yr0_31 {
35
36
  display: flex;
36
37
  flex: 1;
37
38
  flex-direction: column;
@@ -40,22 +41,22 @@
40
41
 
41
42
  /* ─── Media ─── */
42
43
 
43
- ._content-card__media_1pa46_39 {
44
+ ._content-card__media_15yr0_40 {
44
45
  position: relative;
45
46
  width: 100%;
46
47
  }
47
48
 
48
- ._content-card__media--image_1pa46_44 {
49
+ ._content-card__media--image_15yr0_45 {
49
50
  aspect-ratio: 21 / 9;
50
51
  }
51
52
 
52
- ._content-card__media--logo_1pa46_48 {
53
+ ._content-card__media--logo_15yr0_49 {
53
54
  aspect-ratio: 21 / 9;
54
55
  background-color: var(--_cc-logo-bg, var(--color-semantic-surface-neutral-mid));
55
56
  }
56
57
 
57
58
  /* Absolute inner fills the media box so content can't stretch the aspect ratio. */
58
- ._content-card__media-inner_1pa46_54 {
59
+ ._content-card__media-inner_15yr0_55 {
59
60
  position: absolute;
60
61
  inset: 0;
61
62
 
@@ -69,7 +70,7 @@
69
70
  }
70
71
 
71
72
  /* Logo sits in a centered 4:3 box and is contained within it. */
72
- ._content-card__media--logo_1pa46_48 ._content-card__media-inner_1pa46_54 {
73
+ ._content-card__media--logo_15yr0_49 ._content-card__media-inner_15yr0_55 {
73
74
  display: flex;
74
75
  align-items: center;
75
76
  justify-content: center;
@@ -86,7 +87,7 @@
86
87
 
87
88
  /* ─── Content ─── */
88
89
 
89
- ._content-card__content_1pa46_85 {
90
+ ._content-card__content_15yr0_86 {
90
91
  display: flex;
91
92
  flex: 1 1 auto;
92
93
  flex-direction: column;
@@ -96,7 +97,7 @@
96
97
  }
97
98
 
98
99
  /* Padded stack: a descendant of the content container so padding can respond to content width. */
99
- ._content-card__content-inner_1pa46_95 {
100
+ ._content-card__content-inner_15yr0_96 {
100
101
  display: flex;
101
102
  flex: 1;
102
103
  flex-direction: column;
@@ -105,23 +106,23 @@
105
106
  padding: var(--spacing-space-20) var(--spacing-space-20) var(--spacing-space-32);
106
107
  }
107
108
 
108
- ._content-card__body-region_1pa46_104 {
109
+ ._content-card__body-region_15yr0_105 {
109
110
  display: flex;
110
111
  flex-direction: column;
111
112
  gap: var(--spacing-space-20);
112
113
  }
113
114
 
114
- ._content-card__header_1pa46_110 {
115
+ ._content-card__header_15yr0_111 {
115
116
  display: flex;
116
117
  flex-direction: column;
117
118
  gap: var(--spacing-space-4);
118
119
  }
119
120
 
120
- ._content-card__prefix_1pa46_116 {
121
+ ._content-card__prefix_15yr0_117 {
121
122
  align-self: flex-start;
122
123
  }
123
124
 
124
- ._content-card__title_1pa46_120 {
125
+ ._content-card__title_15yr0_121 {
125
126
  margin: 0;
126
127
  color: var(--color-semantic-foreground-default);
127
128
  font: var(--typography-heading-sm);
@@ -132,7 +133,7 @@
132
133
  hyphenate-limit-chars: 12 6 3;
133
134
  }
134
135
 
135
- ._content-card__body_1pa46_104 {
136
+ ._content-card__body_15yr0_105 {
136
137
  margin: 0;
137
138
  color: var(--color-semantic-foreground-default);
138
139
  font: var(--typography-body-md);
@@ -143,15 +144,15 @@
143
144
  hyphenate-limit-chars: 12 6 3;
144
145
  }
145
146
 
146
- ._content-card__body_1pa46_104 p {
147
+ ._content-card__body_15yr0_105 p {
147
148
  margin: 0;
148
149
  }
149
150
 
150
- ._content-card__body_1pa46_104 p + p {
151
+ ._content-card__body_15yr0_105 p + p {
151
152
  margin-top: var(--spacing-space-12);
152
153
  }
153
154
 
154
- ._content-card__actions_1pa46_150 {
155
+ ._content-card__actions_15yr0_151 {
155
156
  display: flex;
156
157
  flex-direction: row;
157
158
  flex-wrap: wrap;
@@ -165,17 +166,17 @@
165
166
  /* ─── Content-area size steps (vertical paddings; based on content width) ─── */
166
167
 
167
168
  @container content-card-content (min-width: 24rem) {
168
- ._content-card__content-inner_1pa46_95 {
169
+ ._content-card__content-inner_15yr0_96 {
169
170
  padding: var(--spacing-space-24) var(--spacing-space-40) var(--spacing-space-40);
170
171
  }
171
172
 
172
- ._content-card__title_1pa46_120 {
173
+ ._content-card__title_15yr0_121 {
173
174
  font: var(--typography-heading-md);
174
175
  }
175
176
  }
176
177
 
177
178
  @container content-card-content (min-width: 36rem) {
178
- ._content-card__content-inner_1pa46_95 {
179
+ ._content-card__content-inner_15yr0_96 {
179
180
  padding: var(--spacing-space-32) var(--spacing-space-64) var(--spacing-space-48);
180
181
  }
181
182
  }
@@ -183,54 +184,54 @@
183
184
  /* ─── Horizontal layout (card wide enough) ─── */
184
185
 
185
186
  @container content-card (min-width: 40rem) {
186
- ._content-card__layout_1pa46_30 {
187
+ ._content-card__layout_15yr0_31 {
187
188
  flex-direction: row;
188
189
  }
189
190
 
190
- ._content-card--media-end_1pa46_186 ._content-card__layout_1pa46_30 {
191
+ ._content-card--media-end_15yr0_187 ._content-card__layout_15yr0_31 {
191
192
  flex-direction: row-reverse;
192
193
  }
193
194
 
194
- ._content-card__media_1pa46_39 {
195
+ ._content-card__media_15yr0_40 {
195
196
  align-self: stretch;
196
197
  /* Non-shrinking basis so mediaWidth is honoured even next to long content. */
197
198
  flex: 0 0 33.3333%;
198
199
  aspect-ratio: auto;
199
200
  }
200
201
 
201
- ._content-card--media-half_1pa46_197 ._content-card__media_1pa46_39 {
202
+ ._content-card--media-half_15yr0_198 ._content-card__media_15yr0_40 {
202
203
  flex-basis: 50%;
203
204
  }
204
205
 
205
206
  /* Content is vertically centered against the media in the horizontal layout. */
206
- ._content-card__content_1pa46_85 {
207
+ ._content-card__content_15yr0_86 {
207
208
  align-self: center;
208
209
  }
209
210
 
210
- ._content-card__actions_1pa46_150 {
211
+ ._content-card__actions_15yr0_151 {
211
212
  margin-top: 0;
212
213
  }
213
214
 
214
215
  /* Minimum media height follows a 4:3 shape of its own width. */
215
- ._content-card__media--image_1pa46_44::before {
216
+ ._content-card__media--image_15yr0_45::before {
216
217
  content: '';
217
218
  display: block;
218
219
  padding-top: 75%;
219
220
  }
220
221
 
221
222
  /* Horizontal paddings override the vertical ones, still stepping by content width. */
222
- ._content-card__content-inner_1pa46_95 {
223
+ ._content-card__content-inner_15yr0_96 {
223
224
  padding: var(--spacing-space-32) var(--spacing-space-20);
224
225
  }
225
226
 
226
227
  @container content-card-content (min-width: 24rem) {
227
- ._content-card__content-inner_1pa46_95 {
228
+ ._content-card__content-inner_15yr0_96 {
228
229
  padding: var(--spacing-space-40);
229
230
  }
230
231
  }
231
232
 
232
233
  @container content-card-content (min-width: 36rem) {
233
- ._content-card__content-inner_1pa46_95 {
234
+ ._content-card__content-inner_15yr0_96 {
234
235
  padding: var(--spacing-space-48) var(--spacing-space-64);
235
236
  }
236
237
  }
@@ -239,11 +240,15 @@
239
240
  /* ─── Forced colors ─── */
240
241
 
241
242
  @media (forced-colors: active) {
242
- ._content-card_1pa46_10 {
243
+ ._content-card_15yr0_10 {
243
244
  border: var(--borderwidth-semantic-xs) solid CanvasText;
244
245
  }
245
246
 
246
- ._content-card--elevated_1pa46_242 {
247
+ ._content-card--elevated_15yr0_243 {
247
248
  box-shadow: none;
248
249
  }
249
- } }
250
+ }
251
+
252
+ /**
253
+ * Do not edit directly, this file was auto-generated.
254
+ */ }
@@ -1 +1 @@
1
- {"version":3,"file":"ContentCard.d.ts","sourceRoot":"","sources":["../../../src/components/ContentCard/ContentCard.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAA6B,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAkBvF,eAAO,MAAM,WAAW,GAAI,6JAgBzB,gBAAgB,4CA+ElB,CAAC"}
1
+ {"version":3,"file":"ContentCard.d.ts","sourceRoot":"","sources":["../../../src/components/ContentCard/ContentCard.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAA6B,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAevF,eAAO,MAAM,WAAW,GAAI,6JAgBzB,gBAAgB,4CAgFlB,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { useId } from "react";
3
- import elevationStyles from "../../styles/utils/elevation.module.css.js";
3
+ import { elevationStyles } from "../../styles/utils/index.js";
4
4
  import styles from "./ContentCard.module.css.js";
5
+ import { isRenderable } from "../../utils/isRenderable/isRenderable.js";
5
6
  import { cn } from "../../utils/cn/cn.js";
6
7
  const logoBackgroundToken = {
7
8
  white: "var(--color-semantic-surface-base)",
@@ -15,7 +16,6 @@ const logoBackgroundToken = {
15
16
  "plum-mid": "var(--color-semantic-surface-secondary-mid)",
16
17
  "plum-strong": "var(--color-semantic-surface-secondary-strong)"
17
18
  };
18
- const isRenderable = (node) => node != null && typeof node !== "boolean";
19
19
  const ContentCard = ({
20
20
  media,
21
21
  mediaKind = "image",
@@ -44,6 +44,7 @@ const ContentCard = ({
44
44
  {
45
45
  ref,
46
46
  ...props,
47
+ "data-color-scheme": "light",
47
48
  className: cn(
48
49
  styles["content-card"],
49
50
  hasMedia && mediaWidth === "1/2" && styles["content-card--media-half"],
@@ -1 +1 @@
1
- {"version":3,"file":"ContentCard.js","sources":["../../../src/components/ContentCard/ContentCard.tsx"],"sourcesContent":["import { useId } from 'react';\nimport type { CSSProperties, ElementType, ReactNode } from 'react';\nimport { cn } from '../../utils/cn';\nimport elevationStyles from '../../styles/utils/elevation.module.css';\nimport styles from './ContentCard.module.css';\nimport type { ContentCardLogoBackground, ContentCardProps } from './ContentCard.types';\n\nconst logoBackgroundToken: Record<ContentCardLogoBackground, string> = {\n white: 'var(--color-semantic-surface-base)',\n 'sand-soft': 'var(--color-semantic-surface-neutral-soft)',\n 'sand-mid': 'var(--color-semantic-surface-neutral-mid)',\n 'sand-strong': 'var(--color-semantic-surface-neutral-strong)',\n 'pink-soft': 'var(--color-semantic-surface-primary-soft)',\n 'pink-mid': 'var(--color-semantic-surface-primary-mid)',\n 'pink-strong': 'var(--color-semantic-surface-primary-strong)',\n 'plum-soft': 'var(--color-semantic-surface-secondary-soft)',\n 'plum-mid': 'var(--color-semantic-surface-secondary-mid)',\n 'plum-strong': 'var(--color-semantic-surface-secondary-strong)',\n};\n\n// A boolean ReactNode (e.g. from `condition && <X />`) renders nothing, so treat it as absent.\nconst isRenderable = (node: ReactNode): boolean => node != null && typeof node !== 'boolean';\n\nexport const ContentCard = ({\n media,\n mediaKind = 'image',\n mediaBackground,\n mediaWidth = '1/3',\n mediaPosition = 'start',\n titlePrefix,\n title,\n headingLevel = 'h3',\n body,\n actions,\n appearance = 'plain',\n as = 'article',\n className,\n ref,\n ...props\n}: ContentCardProps) => {\n const titleId = useId();\n const HeadingLevel = headingLevel;\n // Cast to ElementType so the constrained union of tags renders without ref/props conflicts.\n const Root = as as ElementType;\n const hasMedia = isRenderable(media);\n const ariaLabel = props['aria-label'];\n // Keep an explicit aria-labelledby; only the generated title fallback is suppressed for a\n // bare div or when an aria-label is provided.\n const ariaLabelledBy =\n props['aria-labelledby'] ?? (ariaLabel || as === 'div' ? undefined : titleId);\n\n return (\n <Root\n ref={ref}\n {...props}\n className={cn(\n styles['content-card'],\n hasMedia && mediaWidth === '1/2' && styles['content-card--media-half'],\n hasMedia && mediaPosition === 'end' && styles['content-card--media-end'],\n appearance === 'border' && styles['content-card--border'],\n appearance === 'elevated' && styles['content-card--elevated'],\n appearance === 'elevated' && elevationStyles.elevationLow,\n className,\n )}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n <div className={styles['content-card__layout']}>\n {hasMedia && (\n <div\n className={cn(\n styles['content-card__media'],\n mediaKind === 'logo'\n ? styles['content-card__media--logo']\n : styles['content-card__media--image'],\n )}\n style={\n mediaKind === 'logo' && mediaBackground != null\n ? ({\n '--_cc-logo-bg': logoBackgroundToken[mediaBackground],\n } as CSSProperties)\n : undefined\n }\n >\n <div className={styles['content-card__media-inner']}>{media}</div>\n </div>\n )}\n\n <div className={styles['content-card__content']}>\n <div className={styles['content-card__content-inner']}>\n <div className={styles['content-card__body-region']}>\n <div className={styles['content-card__header']}>\n {isRenderable(titlePrefix) && (\n <div className={styles['content-card__prefix']}>\n {titlePrefix}\n </div>\n )}\n <HeadingLevel\n id={titleId}\n className={styles['content-card__title']}\n >\n {title}\n </HeadingLevel>\n </div>\n {isRenderable(body) && (\n <div className={cn(styles['content-card__body'], 'dds-prose')}>\n {body}\n </div>\n )}\n </div>\n {isRenderable(actions) && (\n <div className={styles['content-card__actions']}>{actions}</div>\n )}\n </div>\n </div>\n </div>\n </Root>\n );\n};\n"],"names":[],"mappings":";;;;;AAOA,MAAM,sBAAiE;AAAA,EACnE,OAAO;AAAA,EACP,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,eAAe;AACnB;AAGA,MAAM,eAAe,CAAC,SAA6B,QAAQ,QAAQ,OAAO,SAAS;AAE5E,MAAM,cAAc,CAAC;AAAA,EACxB;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb,KAAK;AAAA,EACL;AAAA,EACA;AAAA,EACA,GAAG;AACP,MAAwB;AACpB,QAAM,UAAU,MAAA;AAChB,QAAM,eAAe;AAErB,QAAM,OAAO;AACb,QAAM,WAAW,aAAa,KAAK;AACnC,QAAM,YAAY,MAAM,YAAY;AAGpC,QAAM,iBACF,MAAM,iBAAiB,MAAM,aAAa,OAAO,QAAQ,SAAY;AAEzE,SACI;AAAA,IAAC;AAAA,IAAA;AAAA,MACG;AAAA,MACC,GAAG;AAAA,MACJ,WAAW;AAAA,QACP,OAAO,cAAc;AAAA,QACrB,YAAY,eAAe,SAAS,OAAO,0BAA0B;AAAA,QACrE,YAAY,kBAAkB,SAAS,OAAO,yBAAyB;AAAA,QACvE,eAAe,YAAY,OAAO,sBAAsB;AAAA,QACxD,eAAe,cAAc,OAAO,wBAAwB;AAAA,QAC5D,eAAe,cAAc,gBAAgB;AAAA,QAC7C;AAAA,MAAA;AAAA,MAEJ,cAAY;AAAA,MACZ,mBAAiB;AAAA,MAEjB,UAAA,qBAAC,OAAA,EAAI,WAAW,OAAO,sBAAsB,GACxC,UAAA;AAAA,QAAA,YACG;AAAA,UAAC;AAAA,UAAA;AAAA,YACG,WAAW;AAAA,cACP,OAAO,qBAAqB;AAAA,cAC5B,cAAc,SACR,OAAO,2BAA2B,IAClC,OAAO,4BAA4B;AAAA,YAAA;AAAA,YAE7C,OACI,cAAc,UAAU,mBAAmB,OACpC;AAAA,cACG,iBAAiB,oBAAoB,eAAe;AAAA,YAAA,IAExD;AAAA,YAGV,8BAAC,OAAA,EAAI,WAAW,OAAO,2BAA2B,GAAI,UAAA,MAAA,CAAM;AAAA,UAAA;AAAA,QAAA;AAAA,QAIpE,oBAAC,OAAA,EAAI,WAAW,OAAO,uBAAuB,GAC1C,UAAA,qBAAC,OAAA,EAAI,WAAW,OAAO,6BAA6B,GAChD,UAAA;AAAA,UAAA,qBAAC,OAAA,EAAI,WAAW,OAAO,2BAA2B,GAC9C,UAAA;AAAA,YAAA,qBAAC,OAAA,EAAI,WAAW,OAAO,sBAAsB,GACxC,UAAA;AAAA,cAAA,aAAa,WAAW,KACrB,oBAAC,OAAA,EAAI,WAAW,OAAO,sBAAsB,GACxC,UAAA,YAAA,CACL;AAAA,cAEJ;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACG,IAAI;AAAA,kBACJ,WAAW,OAAO,qBAAqB;AAAA,kBAEtC,UAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,YACL,GACJ;AAAA,YACC,aAAa,IAAI,KACd,oBAAC,OAAA,EAAI,WAAW,GAAG,OAAO,oBAAoB,GAAG,WAAW,GACvD,UAAA,KAAA,CACL;AAAA,UAAA,GAER;AAAA,UACC,aAAa,OAAO,KACjB,oBAAC,SAAI,WAAW,OAAO,uBAAuB,GAAI,UAAA,QAAA,CAAQ;AAAA,QAAA,EAAA,CAElE,EAAA,CACJ;AAAA,MAAA,EAAA,CACJ;AAAA,IAAA;AAAA,EAAA;AAGZ;"}
1
+ {"version":3,"file":"ContentCard.js","sources":["../../../src/components/ContentCard/ContentCard.tsx"],"sourcesContent":["import { useId } from 'react';\nimport type { CSSProperties, ElementType, ReactNode } from 'react';\nimport { cn } from '../../utils/cn';\nimport { isRenderable } from '../../utils/isRenderable';\nimport { elevationStyles } from '../../styles/utils';\nimport styles from './ContentCard.module.css';\nimport type { ContentCardLogoBackground, ContentCardProps } from './ContentCard.types';\n\nconst logoBackgroundToken: Record<ContentCardLogoBackground, string> = {\n white: 'var(--color-semantic-surface-base)',\n 'sand-soft': 'var(--color-semantic-surface-neutral-soft)',\n 'sand-mid': 'var(--color-semantic-surface-neutral-mid)',\n 'sand-strong': 'var(--color-semantic-surface-neutral-strong)',\n 'pink-soft': 'var(--color-semantic-surface-primary-soft)',\n 'pink-mid': 'var(--color-semantic-surface-primary-mid)',\n 'pink-strong': 'var(--color-semantic-surface-primary-strong)',\n 'plum-soft': 'var(--color-semantic-surface-secondary-soft)',\n 'plum-mid': 'var(--color-semantic-surface-secondary-mid)',\n 'plum-strong': 'var(--color-semantic-surface-secondary-strong)',\n};\n\nexport const ContentCard = ({\n media,\n mediaKind = 'image',\n mediaBackground,\n mediaWidth = '1/3',\n mediaPosition = 'start',\n titlePrefix,\n title,\n headingLevel = 'h3',\n body,\n actions,\n appearance = 'plain',\n as = 'article',\n className,\n ref,\n ...props\n}: ContentCardProps) => {\n const titleId = useId();\n const HeadingLevel = headingLevel;\n // Cast to ElementType so the constrained union of tags renders without ref/props conflicts.\n const Root = as as ElementType;\n const hasMedia = isRenderable(media);\n const ariaLabel = props['aria-label'];\n // Keep an explicit aria-labelledby; only the generated title fallback is suppressed for a\n // bare div or when an aria-label is provided.\n const ariaLabelledBy =\n props['aria-labelledby'] ?? (ariaLabel || as === 'div' ? undefined : titleId);\n\n return (\n <Root\n ref={ref}\n {...props}\n data-color-scheme=\"light\"\n className={cn(\n styles['content-card'],\n hasMedia && mediaWidth === '1/2' && styles['content-card--media-half'],\n hasMedia && mediaPosition === 'end' && styles['content-card--media-end'],\n appearance === 'border' && styles['content-card--border'],\n appearance === 'elevated' && styles['content-card--elevated'],\n appearance === 'elevated' && elevationStyles.elevationLow,\n className,\n )}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n <div className={styles['content-card__layout']}>\n {hasMedia && (\n <div\n className={cn(\n styles['content-card__media'],\n mediaKind === 'logo'\n ? styles['content-card__media--logo']\n : styles['content-card__media--image'],\n )}\n style={\n mediaKind === 'logo' && mediaBackground != null\n ? ({\n '--_cc-logo-bg': logoBackgroundToken[mediaBackground],\n } as CSSProperties)\n : undefined\n }\n >\n <div className={styles['content-card__media-inner']}>{media}</div>\n </div>\n )}\n\n <div className={styles['content-card__content']}>\n <div className={styles['content-card__content-inner']}>\n <div className={styles['content-card__body-region']}>\n <div className={styles['content-card__header']}>\n {isRenderable(titlePrefix) && (\n <div className={styles['content-card__prefix']}>\n {titlePrefix}\n </div>\n )}\n <HeadingLevel\n id={titleId}\n className={styles['content-card__title']}\n >\n {title}\n </HeadingLevel>\n </div>\n {isRenderable(body) && (\n <div className={cn(styles['content-card__body'], 'dds-prose')}>\n {body}\n </div>\n )}\n </div>\n {isRenderable(actions) && (\n <div className={styles['content-card__actions']}>{actions}</div>\n )}\n </div>\n </div>\n </div>\n </Root>\n );\n};\n"],"names":[],"mappings":";;;;;;AAQA,MAAM,sBAAiE;AAAA,EACnE,OAAO;AAAA,EACP,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,eAAe;AACnB;AAEO,MAAM,cAAc,CAAC;AAAA,EACxB;AAAA,EACA,YAAY;AAAA,EACZ;AAAA,EACA,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb,KAAK;AAAA,EACL;AAAA,EACA;AAAA,EACA,GAAG;AACP,MAAwB;AACpB,QAAM,UAAU,MAAA;AAChB,QAAM,eAAe;AAErB,QAAM,OAAO;AACb,QAAM,WAAW,aAAa,KAAK;AACnC,QAAM,YAAY,MAAM,YAAY;AAGpC,QAAM,iBACF,MAAM,iBAAiB,MAAM,aAAa,OAAO,QAAQ,SAAY;AAEzE,SACI;AAAA,IAAC;AAAA,IAAA;AAAA,MACG;AAAA,MACC,GAAG;AAAA,MACJ,qBAAkB;AAAA,MAClB,WAAW;AAAA,QACP,OAAO,cAAc;AAAA,QACrB,YAAY,eAAe,SAAS,OAAO,0BAA0B;AAAA,QACrE,YAAY,kBAAkB,SAAS,OAAO,yBAAyB;AAAA,QACvE,eAAe,YAAY,OAAO,sBAAsB;AAAA,QACxD,eAAe,cAAc,OAAO,wBAAwB;AAAA,QAC5D,eAAe,cAAc,gBAAgB;AAAA,QAC7C;AAAA,MAAA;AAAA,MAEJ,cAAY;AAAA,MACZ,mBAAiB;AAAA,MAEjB,UAAA,qBAAC,OAAA,EAAI,WAAW,OAAO,sBAAsB,GACxC,UAAA;AAAA,QAAA,YACG;AAAA,UAAC;AAAA,UAAA;AAAA,YACG,WAAW;AAAA,cACP,OAAO,qBAAqB;AAAA,cAC5B,cAAc,SACR,OAAO,2BAA2B,IAClC,OAAO,4BAA4B;AAAA,YAAA;AAAA,YAE7C,OACI,cAAc,UAAU,mBAAmB,OACpC;AAAA,cACG,iBAAiB,oBAAoB,eAAe;AAAA,YAAA,IAExD;AAAA,YAGV,8BAAC,OAAA,EAAI,WAAW,OAAO,2BAA2B,GAAI,UAAA,MAAA,CAAM;AAAA,UAAA;AAAA,QAAA;AAAA,QAIpE,oBAAC,OAAA,EAAI,WAAW,OAAO,uBAAuB,GAC1C,UAAA,qBAAC,OAAA,EAAI,WAAW,OAAO,6BAA6B,GAChD,UAAA;AAAA,UAAA,qBAAC,OAAA,EAAI,WAAW,OAAO,2BAA2B,GAC9C,UAAA;AAAA,YAAA,qBAAC,OAAA,EAAI,WAAW,OAAO,sBAAsB,GACxC,UAAA;AAAA,cAAA,aAAa,WAAW,KACrB,oBAAC,OAAA,EAAI,WAAW,OAAO,sBAAsB,GACxC,UAAA,YAAA,CACL;AAAA,cAEJ;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACG,IAAI;AAAA,kBACJ,WAAW,OAAO,qBAAqB;AAAA,kBAEtC,UAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,YACL,GACJ;AAAA,YACC,aAAa,IAAI,KACd,oBAAC,OAAA,EAAI,WAAW,GAAG,OAAO,oBAAoB,GAAG,WAAW,GACvD,UAAA,KAAA,CACL;AAAA,UAAA,GAER;AAAA,UACC,aAAa,OAAO,KACjB,oBAAC,SAAI,WAAW,OAAO,uBAAuB,GAAI,UAAA,QAAA,CAAQ;AAAA,QAAA,EAAA,CAElE,EAAA,CACJ;AAAA,MAAA,EAAA,CACJ;AAAA,IAAA;AAAA,EAAA;AAGZ;"}
@@ -1,24 +1,24 @@
1
1
  require('./ContentCard.css');
2
2
  "use strict";
3
3
  const styles = {
4
- "content-card": "_content-card_1pa46_10",
5
- "content-card--border": "_content-card--border_1pa46_25",
6
- "content-card__layout": "_content-card__layout_1pa46_30",
7
- "content-card__media": "_content-card__media_1pa46_39",
8
- "content-card__media--image": "_content-card__media--image_1pa46_44",
9
- "content-card__media--logo": "_content-card__media--logo_1pa46_48",
10
- "content-card__media-inner": "_content-card__media-inner_1pa46_54",
11
- "content-card__content": "_content-card__content_1pa46_85",
12
- "content-card__content-inner": "_content-card__content-inner_1pa46_95",
13
- "content-card__body-region": "_content-card__body-region_1pa46_104",
14
- "content-card__header": "_content-card__header_1pa46_110",
15
- "content-card__prefix": "_content-card__prefix_1pa46_116",
16
- "content-card__title": "_content-card__title_1pa46_120",
17
- "content-card__body": "_content-card__body_1pa46_104",
18
- "content-card__actions": "_content-card__actions_1pa46_150",
19
- "content-card--media-end": "_content-card--media-end_1pa46_186",
20
- "content-card--media-half": "_content-card--media-half_1pa46_197",
21
- "content-card--elevated": "_content-card--elevated_1pa46_242"
4
+ "content-card": "_content-card_15yr0_10",
5
+ "content-card--border": "_content-card--border_15yr0_26",
6
+ "content-card__layout": "_content-card__layout_15yr0_31",
7
+ "content-card__media": "_content-card__media_15yr0_40",
8
+ "content-card__media--image": "_content-card__media--image_15yr0_45",
9
+ "content-card__media--logo": "_content-card__media--logo_15yr0_49",
10
+ "content-card__media-inner": "_content-card__media-inner_15yr0_55",
11
+ "content-card__content": "_content-card__content_15yr0_86",
12
+ "content-card__content-inner": "_content-card__content-inner_15yr0_96",
13
+ "content-card__body-region": "_content-card__body-region_15yr0_105",
14
+ "content-card__header": "_content-card__header_15yr0_111",
15
+ "content-card__prefix": "_content-card__prefix_15yr0_117",
16
+ "content-card__title": "_content-card__title_15yr0_121",
17
+ "content-card__body": "_content-card__body_15yr0_105",
18
+ "content-card__actions": "_content-card__actions_15yr0_151",
19
+ "content-card--media-end": "_content-card--media-end_15yr0_187",
20
+ "content-card--media-half": "_content-card--media-half_15yr0_198",
21
+ "content-card--elevated": "_content-card--elevated_15yr0_243"
22
22
  };
23
23
  module.exports = styles;
24
24
  //# sourceMappingURL=ContentCard.module.css.cjs.map
@@ -1,23 +1,23 @@
1
1
  import './ContentCard.css';
2
2
  const styles = {
3
- "content-card": "_content-card_1pa46_10",
4
- "content-card--border": "_content-card--border_1pa46_25",
5
- "content-card__layout": "_content-card__layout_1pa46_30",
6
- "content-card__media": "_content-card__media_1pa46_39",
7
- "content-card__media--image": "_content-card__media--image_1pa46_44",
8
- "content-card__media--logo": "_content-card__media--logo_1pa46_48",
9
- "content-card__media-inner": "_content-card__media-inner_1pa46_54",
10
- "content-card__content": "_content-card__content_1pa46_85",
11
- "content-card__content-inner": "_content-card__content-inner_1pa46_95",
12
- "content-card__body-region": "_content-card__body-region_1pa46_104",
13
- "content-card__header": "_content-card__header_1pa46_110",
14
- "content-card__prefix": "_content-card__prefix_1pa46_116",
15
- "content-card__title": "_content-card__title_1pa46_120",
16
- "content-card__body": "_content-card__body_1pa46_104",
17
- "content-card__actions": "_content-card__actions_1pa46_150",
18
- "content-card--media-end": "_content-card--media-end_1pa46_186",
19
- "content-card--media-half": "_content-card--media-half_1pa46_197",
20
- "content-card--elevated": "_content-card--elevated_1pa46_242"
3
+ "content-card": "_content-card_15yr0_10",
4
+ "content-card--border": "_content-card--border_15yr0_26",
5
+ "content-card__layout": "_content-card__layout_15yr0_31",
6
+ "content-card__media": "_content-card__media_15yr0_40",
7
+ "content-card__media--image": "_content-card__media--image_15yr0_45",
8
+ "content-card__media--logo": "_content-card__media--logo_15yr0_49",
9
+ "content-card__media-inner": "_content-card__media-inner_15yr0_55",
10
+ "content-card__content": "_content-card__content_15yr0_86",
11
+ "content-card__content-inner": "_content-card__content-inner_15yr0_96",
12
+ "content-card__body-region": "_content-card__body-region_15yr0_105",
13
+ "content-card__header": "_content-card__header_15yr0_111",
14
+ "content-card__prefix": "_content-card__prefix_15yr0_117",
15
+ "content-card__title": "_content-card__title_15yr0_121",
16
+ "content-card__body": "_content-card__body_15yr0_105",
17
+ "content-card__actions": "_content-card__actions_15yr0_151",
18
+ "content-card--media-end": "_content-card--media-end_15yr0_187",
19
+ "content-card--media-half": "_content-card--media-half_15yr0_198",
20
+ "content-card--elevated": "_content-card--elevated_15yr0_243"
21
21
  };
22
22
  export {
23
23
  styles as default
@@ -63,7 +63,8 @@ type ContentCardBaseProps = {
63
63
  */
64
64
  readonly actions?: ReactNode;
65
65
  /**
66
- * Card surface treatment.
66
+ * Card surface treatment. The card always establishes a light colour scheme
67
+ * for its light surface, regardless of the parent scheme.
67
68
  * @default 'plain'
68
69
  */
69
70
  readonly appearance?: ContentCardAppearance;
@@ -1 +1 @@
1
- {"version":3,"file":"ContentCard.types.d.ts","sourceRoot":"","sources":["../../../src/components/ContentCard/ContentCard.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9D,MAAM,MAAM,uBAAuB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC9E,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,MAAM,CAAC;AACpD,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,KAAK,CAAC;AAClD,MAAM,MAAM,wBAAwB,GAAG,OAAO,GAAG,KAAK,CAAC;AACvD,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEpE;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GAC/B,OAAO,GACP,WAAW,GACX,UAAU,GACV,aAAa,GACb,WAAW,GACX,UAAU,GACV,aAAa,GACb,WAAW,GACX,UAAU,GACV,aAAa,CAAC;AAEpB,KAAK,oBAAoB,GAAG;IACxB;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,oBAAoB,CAAC;IAC1C;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,yBAAyB,CAAC;IACrD;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,qBAAqB,CAAC;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,wBAAwB,CAAC;IAClD;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,uBAAuB,CAAC;IAChD;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,qBAAqB,CAAC;CAC/C,CAAC;AAEF,MAAM,WAAW,uBACb,SAAQ,oBAAoB,EAAE,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC1F;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,kBACb,SAAQ,oBAAoB,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACrF,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,uBACb,SAAQ,oBAAoB,EAAE,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC1F,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,mBACb,SAAQ,oBAAoB,EAAE,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACtF,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GACtB,uBAAuB,GACvB,kBAAkB,GAClB,uBAAuB,GACvB,mBAAmB,CAAC;AAE1B,2DAA2D;AAC3D,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"ContentCard.types.d.ts","sourceRoot":"","sources":["../../../src/components/ContentCard/ContentCard.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9D,MAAM,MAAM,uBAAuB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC9E,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,MAAM,CAAC;AACpD,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,KAAK,CAAC;AAClD,MAAM,MAAM,wBAAwB,GAAG,OAAO,GAAG,KAAK,CAAC;AACvD,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEpE;;;;GAIG;AACH,MAAM,MAAM,yBAAyB,GAC/B,OAAO,GACP,WAAW,GACX,UAAU,GACV,aAAa,GACb,WAAW,GACX,UAAU,GACV,aAAa,GACb,WAAW,GACX,UAAU,GACV,aAAa,CAAC;AAEpB,KAAK,oBAAoB,GAAG;IACxB;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,oBAAoB,CAAC;IAC1C;;;OAGG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,yBAAyB,CAAC;IACrD;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,qBAAqB,CAAC;IAC5C;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,wBAAwB,CAAC;IAClD;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IACjC,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,uBAAuB,CAAC;IAChD;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,qBAAqB,CAAC;CAC/C,CAAC;AAEF,MAAM,WAAW,uBACb,SAAQ,oBAAoB,EAAE,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC1F;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,kBACb,SAAQ,oBAAoB,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACrF,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,uBACb,SAAQ,oBAAoB,EAAE,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAC1F,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;CAC1B;AAED,MAAM,WAAW,mBACb,SAAQ,oBAAoB,EAAE,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACtF,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;CACtB;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GACtB,uBAAuB,GACvB,kBAAkB,GAClB,uBAAuB,GACvB,mBAAmB,CAAC;AAE1B,2DAA2D;AAC3D,MAAM,MAAM,kBAAkB,GAAG,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC"}
@@ -3,8 +3,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
4
  const react = require("react");
5
5
  const icons = require("@dnanpm/icons");
6
- const elevation_module = require("../../styles/utils/elevation.module.css.cjs");
7
- const focus_module = require("../../styles/utils/focus.module.css.cjs");
6
+ const index = require("../../styles/utils/index.cjs");
8
7
  const useDialogDismissal = require("../Modal/useDialogDismissal.cjs");
9
8
  const useNativeDialog = require("../Modal/useNativeDialog.cjs");
10
9
  const Drawer_module = require("./Drawer.module.css.cjs");
@@ -53,6 +52,7 @@ const Drawer = ({
53
52
  "dialog",
54
53
  {
55
54
  ...props,
55
+ "data-color-scheme": "light",
56
56
  ref: (node) => {
57
57
  dialogRef.current = node;
58
58
  if (typeof ref === "function") ref(node);
@@ -60,7 +60,7 @@ const Drawer = ({
60
60
  },
61
61
  className: cn.cn(
62
62
  Drawer_module.default.drawer,
63
- elevation_module.default.elevationHigh,
63
+ index.elevationStyles.elevationHigh,
64
64
  Drawer_module.default[`drawer--${size}`],
65
65
  Drawer_module.default[`drawer--${headerStyle}`],
66
66
  Drawer_module.default[`drawer--${side}`],
@@ -79,20 +79,28 @@ const Drawer = ({
79
79
  "button",
80
80
  {
81
81
  type: "button",
82
- className: cn.cn(Drawer_module.default.drawer__close, focus_module.default.focusable),
82
+ className: cn.cn(Drawer_module.default.drawer__close, index.focusStyles.focusable),
83
83
  "aria-label": closeLabel,
84
84
  "data-dialog-autofocus": "true",
85
+ "data-color-scheme": headerStyle,
85
86
  onClick: close,
86
87
  children: /* @__PURE__ */ jsxRuntime.jsx(icons.Close, { "aria-hidden": "true" })
87
88
  }
88
89
  ),
89
- (title || description) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Drawer_module.default.drawer__title, children: [
90
+ (title || description) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Drawer_module.default.drawer__title, "data-color-scheme": headerStyle, children: [
90
91
  title && /* @__PURE__ */ jsxRuntime.jsx("h2", { id: titleId, className: Drawer_module.default.drawer__heading, children: title }),
91
- description && /* @__PURE__ */ jsxRuntime.jsx("div", { id: descriptionId, className: Drawer_module.default.drawer__description, children: description })
92
+ description && /* @__PURE__ */ jsxRuntime.jsx(
93
+ "div",
94
+ {
95
+ id: descriptionId,
96
+ className: cn.cn(Drawer_module.default.drawer__description, "dds-prose"),
97
+ children: description
98
+ }
99
+ )
92
100
  ] }),
93
101
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: Drawer_module.default.drawer__content, children })
94
102
  ] }),
95
- footer && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn.cn(Drawer_module.default["drawer__bottom-bar"], elevation_module.default.elevationMedium), children: footer })
103
+ footer && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn.cn(Drawer_module.default["drawer__bottom-bar"], index.elevationStyles.elevationMedium), children: footer })
96
104
  ]
97
105
  }
98
106
  );
@@ -1 +1 @@
1
- {"version":3,"file":"Drawer.cjs","sources":["../../../src/components/Drawer/Drawer.tsx"],"sourcesContent":["import { useId } from 'react';\nimport { Close } from '@dnanpm/icons';\nimport { cn } from '../../utils/cn';\nimport elevationStyles from '../../styles/utils/elevation.module.css';\nimport focusStyles from '../../styles/utils/focus.module.css';\nimport { useDialogDismissal } from '../Modal/useDialogDismissal';\nimport { useNativeDialog } from '../Modal/useNativeDialog';\nimport styles from './Drawer.module.css';\nimport type { DrawerProps } from './Drawer.types';\n\nexport const Drawer = ({\n open,\n onOpenChange,\n title,\n description,\n children,\n footer,\n size = 'small',\n headerStyle = 'light',\n side = 'right',\n fixedTitle = false,\n disableCloseOptions = false,\n closeLabel = 'Sulje dialogi',\n keepMounted = false,\n className,\n ref,\n onKeyDown,\n onClick,\n onPointerDown,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n ...props\n}: DrawerProps) => {\n const titleId = useId();\n const descriptionId = useId();\n const { dialogRef, close, phase, isPresent } = useNativeDialog({\n open: open ?? false,\n keepMounted,\n onOpenChange,\n });\n const describedBy =\n [description ? descriptionId : undefined, ariaDescribedBy].filter(Boolean).join(' ') ||\n undefined;\n const dialogDismissalProps = useDialogDismissal({\n close,\n disableCloseOptions,\n onClick,\n onKeyDown,\n onPointerDown,\n });\n\n if (!isPresent) return null;\n\n return (\n <dialog\n {...props}\n ref={(node) => {\n dialogRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) ref.current = node;\n }}\n className={cn(\n styles.drawer,\n elevationStyles.elevationHigh,\n styles[`drawer--${size}`],\n styles[`drawer--${headerStyle}`],\n styles[`drawer--${side}`],\n { [styles['drawer--fixed-title']]: fixedTitle },\n { [styles['drawer--opening']]: phase !== 'closing' },\n { [styles['drawer--closing']]: phase === 'closing' },\n className,\n )}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy ?? (!ariaLabel && title ? titleId : undefined)}\n aria-describedby={describedBy}\n {...dialogDismissalProps}\n >\n <div className={styles.drawer__container}>\n {!disableCloseOptions && (\n <button\n type=\"button\"\n className={cn(styles.drawer__close, focusStyles.focusable)}\n aria-label={closeLabel}\n data-dialog-autofocus=\"true\"\n onClick={close}\n >\n <Close aria-hidden=\"true\" />\n </button>\n )}\n {(title || description) && (\n <div className={styles.drawer__title}>\n {title && (\n <h2 id={titleId} className={styles.drawer__heading}>\n {title}\n </h2>\n )}\n {description && (\n <div id={descriptionId} className={styles.drawer__description}>\n {description}\n </div>\n )}\n </div>\n )}\n <div className={styles.drawer__content}>{children}</div>\n </div>\n {footer && (\n <div className={cn(styles['drawer__bottom-bar'], elevationStyles.elevationMedium)}>\n {footer}\n </div>\n )}\n </dialog>\n );\n};\n"],"names":["useId","useNativeDialog","useDialogDismissal","jsxs","cn","styles","elevationStyles","jsx","focusStyles","Close"],"mappings":"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"}
1
+ {"version":3,"file":"Drawer.cjs","sources":["../../../src/components/Drawer/Drawer.tsx"],"sourcesContent":["import { useId } from 'react';\nimport { Close } from '@dnanpm/icons';\nimport { cn } from '../../utils/cn';\nimport { elevationStyles, focusStyles } from '../../styles/utils';\nimport { useDialogDismissal } from '../Modal/useDialogDismissal';\nimport { useNativeDialog } from '../Modal/useNativeDialog';\nimport styles from './Drawer.module.css';\nimport type { DrawerProps } from './Drawer.types';\n\nexport const Drawer = ({\n open,\n onOpenChange,\n title,\n description,\n children,\n footer,\n size = 'small',\n headerStyle = 'light',\n side = 'right',\n fixedTitle = false,\n disableCloseOptions = false,\n closeLabel = 'Sulje dialogi',\n keepMounted = false,\n className,\n ref,\n onKeyDown,\n onClick,\n onPointerDown,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n ...props\n}: DrawerProps) => {\n const titleId = useId();\n const descriptionId = useId();\n const { dialogRef, close, phase, isPresent } = useNativeDialog({\n open: open ?? false,\n keepMounted,\n onOpenChange,\n });\n const describedBy =\n [description ? descriptionId : undefined, ariaDescribedBy].filter(Boolean).join(' ') ||\n undefined;\n const dialogDismissalProps = useDialogDismissal({\n close,\n disableCloseOptions,\n onClick,\n onKeyDown,\n onPointerDown,\n });\n\n if (!isPresent) return null;\n\n return (\n <dialog\n {...props}\n data-color-scheme=\"light\"\n ref={(node) => {\n dialogRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) ref.current = node;\n }}\n className={cn(\n styles.drawer,\n elevationStyles.elevationHigh,\n styles[`drawer--${size}`],\n styles[`drawer--${headerStyle}`],\n styles[`drawer--${side}`],\n { [styles['drawer--fixed-title']]: fixedTitle },\n { [styles['drawer--opening']]: phase !== 'closing' },\n { [styles['drawer--closing']]: phase === 'closing' },\n className,\n )}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy ?? (!ariaLabel && title ? titleId : undefined)}\n aria-describedby={describedBy}\n {...dialogDismissalProps}\n >\n <div className={styles.drawer__container}>\n {!disableCloseOptions && (\n <button\n type=\"button\"\n className={cn(styles.drawer__close, focusStyles.focusable)}\n aria-label={closeLabel}\n data-dialog-autofocus=\"true\"\n data-color-scheme={headerStyle}\n onClick={close}\n >\n <Close aria-hidden=\"true\" />\n </button>\n )}\n {(title || description) && (\n <div className={styles.drawer__title} data-color-scheme={headerStyle}>\n {title && (\n <h2 id={titleId} className={styles.drawer__heading}>\n {title}\n </h2>\n )}\n {description && (\n <div\n id={descriptionId}\n className={cn(styles.drawer__description, 'dds-prose')}\n >\n {description}\n </div>\n )}\n </div>\n )}\n <div className={styles.drawer__content}>{children}</div>\n </div>\n {footer && (\n <div className={cn(styles['drawer__bottom-bar'], elevationStyles.elevationMedium)}>\n {footer}\n </div>\n )}\n </dialog>\n );\n};\n"],"names":["useId","useNativeDialog","useDialogDismissal","jsxs","cn","styles","elevationStyles","jsx","focusStyles","Close"],"mappings":"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"}