@dynatrace/strato-components 1.4.0 → 1.6.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 (375) hide show
  1. package/buttons/button/Button.css +18 -22
  2. package/buttons/button/Button.d.ts +4 -4
  3. package/buttons/button/Button.js +48 -34
  4. package/buttons/button/Button.sty.js +5 -4
  5. package/buttons/button/Label.d.ts +2 -2
  6. package/buttons/button/Label.js +7 -5
  7. package/buttons/button/Prefix.d.ts +2 -2
  8. package/buttons/button/Prefix.js +7 -15
  9. package/buttons/button/Suffix.d.ts +3 -3
  10. package/buttons/button/Suffix.js +7 -15
  11. package/buttons/button/types/button-aria.js +1 -0
  12. package/buttons/button/utils/focus-without-scrolling.js +1 -0
  13. package/buttons/button/utils/is-virtual-event.js +1 -0
  14. package/buttons/index.js +1 -0
  15. package/buttons/intent-button/IntentButton.d.ts +2 -2
  16. package/buttons/intent-button/IntentButton.js +17 -21
  17. package/buttons/intent-button/useIntentButton.d.ts +4 -3
  18. package/buttons/intent-button/useIntentButton.js +1 -0
  19. package/content/index.js +1 -0
  20. package/content/progress/ProgressBar.css +71 -71
  21. package/content/progress/ProgressBar.d.ts +4 -5
  22. package/content/progress/ProgressBar.js +50 -41
  23. package/content/progress/ProgressBar.sty.js +6 -5
  24. package/content/progress/ProgressBarIcon.css +2 -2
  25. package/content/progress/ProgressBarIcon.d.ts +1 -2
  26. package/content/progress/ProgressBarIcon.js +7 -5
  27. package/content/progress/ProgressBarIcon.sty.js +2 -1
  28. package/content/progress/ProgressBarLabel.css +3 -3
  29. package/content/progress/ProgressBarLabel.d.ts +1 -2
  30. package/content/progress/ProgressBarLabel.js +7 -5
  31. package/content/progress/ProgressBarLabel.sty.js +2 -1
  32. package/content/progress/ProgressBarValue.css +5 -5
  33. package/content/progress/ProgressBarValue.d.ts +1 -2
  34. package/content/progress/ProgressBarValue.js +7 -5
  35. package/content/progress/ProgressBarValue.sty.js +2 -1
  36. package/content/progress/ProgressCircle.css +40 -40
  37. package/content/progress/ProgressCircle.d.ts +1 -2
  38. package/content/progress/ProgressCircle.js +61 -55
  39. package/content/progress/ProgressCircle.sty.js +6 -5
  40. package/content/progress/contexts/SharedProgressBarPropsContext.d.ts +1 -2
  41. package/content/progress/contexts/SharedProgressBarPropsContext.js +3 -12
  42. package/content/progress/hooks/useProgressAriaProps.js +1 -0
  43. package/content/progress/hooks/useProgressBarPropsContext.js +1 -0
  44. package/content/skeleton/Skeleton.css +6 -6
  45. package/content/skeleton/Skeleton.d.ts +2 -2
  46. package/content/skeleton/Skeleton.js +7 -5
  47. package/content/skeleton/Skeleton.sty.js +2 -1
  48. package/content/skeleton/SkeletonText.d.ts +2 -2
  49. package/content/skeleton/SkeletonText.js +10 -18
  50. package/core/components/app-root/AppRoot.d.ts +3 -3
  51. package/core/components/app-root/AppRoot.js +16 -24
  52. package/core/components/app-root/AppRoot.sty.js +1 -0
  53. package/core/components/focus-scope/FocusScope.d.ts +1 -2
  54. package/core/components/focus-scope/FocusScope.js +7 -15
  55. package/core/contexts/FocusContext.js +1 -0
  56. package/core/hooks/useActiveElement.js +1 -0
  57. package/core/hooks/useAriaLabelingProps.js +1 -0
  58. package/core/hooks/useCurrentTheme.js +1 -0
  59. package/core/hooks/useFocusContext.js +1 -0
  60. package/core/hooks/useFontsUpdated.js +2 -1
  61. package/core/hooks/useId.js +1 -0
  62. package/core/hooks/useMergeRefs.d.ts +2 -2
  63. package/core/hooks/useMergeRefs.js +1 -0
  64. package/core/hooks/useSafeForwardProps.js +1 -0
  65. package/core/index.js +1 -0
  66. package/core/providers/FocusProvider.d.ts +1 -2
  67. package/core/providers/FocusProvider.js +7 -15
  68. package/core/styles/focusRing.css +66 -66
  69. package/core/styles/focusRing.sty.js +3 -2
  70. package/core/styles/useFocusRing.d.ts +3 -3
  71. package/core/styles/useFocusRing.js +1 -0
  72. package/core/types/a11y-props.js +1 -0
  73. package/core/types/data-props.js +1 -0
  74. package/core/types/dom.js +1 -0
  75. package/core/types/heading.js +1 -0
  76. package/core/types/masking-props.js +1 -0
  77. package/core/types/polymorph.d.ts +1 -1
  78. package/core/types/polymorph.js +1 -0
  79. package/core/types/styling-props.d.ts +1 -1
  80. package/core/types/styling-props.js +1 -0
  81. package/core/types/with-children.d.ts +1 -1
  82. package/core/types/with-children.js +1 -0
  83. package/core/utils/_is-string-children.d.ts +2 -2
  84. package/core/utils/_is-string-children.js +3 -12
  85. package/core/utils/colorUtils.css +60 -60
  86. package/core/utils/colorUtils.sty.js +3 -2
  87. package/core/utils/focus-management/attempt-focus.js +1 -0
  88. package/core/utils/focus-management/focus-first-descendant.js +1 -0
  89. package/core/utils/focus-management/get-first-focusable-child.js +1 -0
  90. package/core/utils/focus-management/get-last-focusable-child.js +1 -0
  91. package/core/utils/focus-management/is-focusable.js +1 -0
  92. package/core/utils/isBrowser.js +1 -0
  93. package/core/utils/merge-props.js +1 -0
  94. package/core/utils/parse-boolean.js +1 -0
  95. package/core/utils/seed-random.js +1 -0
  96. package/core/utils/uuidv4.js +1 -0
  97. package/esm/buttons/button/Button.css +18 -22
  98. package/esm/buttons/button/Button.js +49 -35
  99. package/esm/buttons/button/Button.js.map +2 -2
  100. package/esm/buttons/button/Button.sty.js +4 -4
  101. package/esm/buttons/button/Button.sty.js.map +1 -1
  102. package/esm/buttons/button/Label.js +6 -5
  103. package/esm/buttons/button/Label.js.map +2 -2
  104. package/esm/buttons/button/Prefix.js +6 -5
  105. package/esm/buttons/button/Prefix.js.map +2 -2
  106. package/esm/buttons/button/Suffix.js +6 -5
  107. package/esm/buttons/button/Suffix.js.map +2 -2
  108. package/esm/buttons/intent-button/IntentButton.js +16 -11
  109. package/esm/buttons/intent-button/IntentButton.js.map +2 -2
  110. package/esm/buttons/intent-button/useIntentButton.js +4 -1
  111. package/esm/buttons/intent-button/useIntentButton.js.map +2 -2
  112. package/esm/content/progress/ProgressBar.css +71 -71
  113. package/esm/content/progress/ProgressBar.js +53 -41
  114. package/esm/content/progress/ProgressBar.js.map +2 -2
  115. package/esm/content/progress/ProgressBar.sty.js +5 -5
  116. package/esm/content/progress/ProgressBar.sty.js.map +1 -1
  117. package/esm/content/progress/ProgressBarIcon.css +2 -2
  118. package/esm/content/progress/ProgressBarIcon.js +6 -5
  119. package/esm/content/progress/ProgressBarIcon.js.map +2 -2
  120. package/esm/content/progress/ProgressBarIcon.sty.js +1 -1
  121. package/esm/content/progress/ProgressBarIcon.sty.js.map +1 -1
  122. package/esm/content/progress/ProgressBarLabel.css +3 -3
  123. package/esm/content/progress/ProgressBarLabel.js +6 -5
  124. package/esm/content/progress/ProgressBarLabel.js.map +2 -2
  125. package/esm/content/progress/ProgressBarLabel.sty.js +1 -1
  126. package/esm/content/progress/ProgressBarLabel.sty.js.map +1 -1
  127. package/esm/content/progress/ProgressBarValue.css +5 -5
  128. package/esm/content/progress/ProgressBarValue.js +6 -5
  129. package/esm/content/progress/ProgressBarValue.js.map +2 -2
  130. package/esm/content/progress/ProgressBarValue.sty.js +1 -1
  131. package/esm/content/progress/ProgressBarValue.sty.js.map +1 -1
  132. package/esm/content/progress/ProgressCircle.css +40 -40
  133. package/esm/content/progress/ProgressCircle.js +60 -55
  134. package/esm/content/progress/ProgressCircle.js.map +2 -2
  135. package/esm/content/progress/ProgressCircle.sty.js +5 -5
  136. package/esm/content/progress/ProgressCircle.sty.js.map +1 -1
  137. package/esm/content/progress/contexts/SharedProgressBarPropsContext.js +2 -2
  138. package/esm/content/progress/contexts/SharedProgressBarPropsContext.js.map +2 -2
  139. package/esm/content/skeleton/Skeleton.css +6 -6
  140. package/esm/content/skeleton/Skeleton.js +6 -5
  141. package/esm/content/skeleton/Skeleton.js.map +2 -2
  142. package/esm/content/skeleton/Skeleton.sty.js +1 -1
  143. package/esm/content/skeleton/Skeleton.sty.js.map +1 -1
  144. package/esm/content/skeleton/SkeletonText.js +9 -8
  145. package/esm/content/skeleton/SkeletonText.js.map +2 -2
  146. package/esm/core/components/app-root/AppRoot.js +15 -14
  147. package/esm/core/components/app-root/AppRoot.js.map +2 -2
  148. package/esm/core/components/focus-scope/FocusScope.js +6 -5
  149. package/esm/core/components/focus-scope/FocusScope.js.map +2 -2
  150. package/esm/core/hooks/useFontsUpdated.js +1 -1
  151. package/esm/core/hooks/useFontsUpdated.js.map +2 -2
  152. package/esm/core/hooks/useMergeRefs.js +3 -1
  153. package/esm/core/hooks/useMergeRefs.js.map +2 -2
  154. package/esm/core/providers/FocusProvider.js +6 -5
  155. package/esm/core/providers/FocusProvider.js.map +2 -2
  156. package/esm/core/styles/focusRing.css +66 -66
  157. package/esm/core/styles/focusRing.sty.js +2 -2
  158. package/esm/core/styles/focusRing.sty.js.map +1 -1
  159. package/esm/core/styles/useFocusRing.js.map +1 -1
  160. package/esm/core/utils/_is-string-children.js +2 -2
  161. package/esm/core/utils/_is-string-children.js.map +2 -2
  162. package/esm/core/utils/colorUtils.css +60 -60
  163. package/esm/core/utils/colorUtils.sty.js +2 -2
  164. package/esm/core/utils/colorUtils.sty.js.map +1 -1
  165. package/esm/layouts/container/Container.css +4 -4
  166. package/esm/layouts/container/Container.js +7 -6
  167. package/esm/layouts/container/Container.js.map +2 -2
  168. package/esm/layouts/container/Container.sty.js +1 -1
  169. package/esm/layouts/container/Container.sty.js.map +1 -1
  170. package/esm/layouts/divider/Divider.css +6 -6
  171. package/esm/layouts/divider/Divider.js +3 -2
  172. package/esm/layouts/divider/Divider.js.map +2 -2
  173. package/esm/layouts/divider/Divider.sty.js +1 -1
  174. package/esm/layouts/divider/Divider.sty.js.map +1 -1
  175. package/esm/layouts/flex/Flex.js +6 -5
  176. package/esm/layouts/flex/Flex.js.map +2 -2
  177. package/esm/layouts/grid/Grid.js +6 -5
  178. package/esm/layouts/grid/Grid.js.map +2 -2
  179. package/esm/layouts/surface/Surface.css +39 -39
  180. package/esm/layouts/surface/Surface.js +17 -14
  181. package/esm/layouts/surface/Surface.js.map +2 -2
  182. package/esm/layouts/surface/Surface.sty.js +2 -2
  183. package/esm/layouts/surface/Surface.sty.js.map +1 -1
  184. package/esm/layouts/surface/variables.sty.js +1 -1
  185. package/esm/layouts/surface/variables.sty.js.map +1 -1
  186. package/esm/styles/colorUtils.css +60 -60
  187. package/esm/styles/colorUtils.sty.js +2 -2
  188. package/esm/styles/colorUtils.sty.js.map +1 -1
  189. package/esm/styles/container.css +47 -47
  190. package/esm/styles/container.sty.js +2 -2
  191. package/esm/styles/container.sty.js.map +1 -1
  192. package/esm/styles/ellipsis.css +1 -1
  193. package/esm/styles/ellipsis.sty.js +1 -1
  194. package/esm/styles/ellipsis.sty.js.map +1 -1
  195. package/esm/styles/field.css +153 -153
  196. package/esm/styles/field.sty.js +2 -2
  197. package/esm/styles/field.sty.js.map +1 -1
  198. package/esm/styles/getFlexStyles.js.map +1 -1
  199. package/esm/styles/getGridStyles.js.map +1 -1
  200. package/esm/styles/getLayoutSizeStyles.js.map +1 -1
  201. package/esm/styles/sprinkles.css +262 -262
  202. package/esm/styles/sprinkles.sty.js +1 -1
  203. package/esm/styles/sprinkles.sty.js.map +1 -1
  204. package/esm/styles/textStyle.css +8 -8
  205. package/esm/styles/textStyle.sty.js +1 -1
  206. package/esm/styles/textStyle.sty.js.map +1 -1
  207. package/esm/typography/block-quote/Blockquote.css +2 -2
  208. package/esm/typography/block-quote/Blockquote.js +6 -5
  209. package/esm/typography/block-quote/Blockquote.js.map +2 -2
  210. package/esm/typography/block-quote/Blockquote.sty.js +1 -1
  211. package/esm/typography/block-quote/Blockquote.sty.js.map +1 -1
  212. package/esm/typography/code/Code.css +1 -1
  213. package/esm/typography/code/Code.js +6 -5
  214. package/esm/typography/code/Code.js.map +2 -2
  215. package/esm/typography/code/Code.sty.js +1 -1
  216. package/esm/typography/code/Code.sty.js.map +1 -1
  217. package/esm/typography/emphasis/Emphasis.css +1 -1
  218. package/esm/typography/emphasis/Emphasis.js +6 -5
  219. package/esm/typography/emphasis/Emphasis.js.map +2 -2
  220. package/esm/typography/emphasis/Emphasis.sty.js +1 -1
  221. package/esm/typography/emphasis/Emphasis.sty.js.map +1 -1
  222. package/esm/typography/external-link/ExternalLink.css +6 -6
  223. package/esm/typography/external-link/ExternalLink.js +22 -16
  224. package/esm/typography/external-link/ExternalLink.js.map +2 -2
  225. package/esm/typography/external-link/ExternalLink.sty.js +1 -1
  226. package/esm/typography/external-link/ExternalLink.sty.js.map +1 -1
  227. package/esm/typography/heading/Heading.css +7 -7
  228. package/esm/typography/heading/Heading.js +6 -5
  229. package/esm/typography/heading/Heading.js.map +2 -2
  230. package/esm/typography/heading/Heading.sty.js +1 -1
  231. package/esm/typography/heading/Heading.sty.js.map +1 -1
  232. package/esm/typography/highlight/Highlight.css +2 -1
  233. package/esm/typography/highlight/Highlight.js +31 -18
  234. package/esm/typography/highlight/Highlight.js.map +3 -3
  235. package/esm/typography/highlight/Highlight.sty.js +1 -1
  236. package/esm/typography/highlight/Highlight.sty.js.map +1 -1
  237. package/esm/typography/link/Link.css +4 -4
  238. package/esm/typography/link/Link.js +6 -5
  239. package/esm/typography/link/Link.js.map +2 -2
  240. package/esm/typography/link/Link.sty.js +1 -1
  241. package/esm/typography/link/Link.sty.js.map +1 -1
  242. package/esm/typography/list/List.css +4 -4
  243. package/esm/typography/list/List.js +14 -9
  244. package/esm/typography/list/List.js.map +2 -2
  245. package/esm/typography/list/List.sty.js +2 -2
  246. package/esm/typography/list/List.sty.js.map +1 -1
  247. package/esm/typography/paragraph/Paragraph.css +3 -3
  248. package/esm/typography/paragraph/Paragraph.js +6 -5
  249. package/esm/typography/paragraph/Paragraph.js.map +2 -2
  250. package/esm/typography/paragraph/Paragraph.sty.js +1 -1
  251. package/esm/typography/paragraph/Paragraph.sty.js.map +1 -1
  252. package/esm/typography/strikethrough/Strikethrough.css +1 -1
  253. package/esm/typography/strikethrough/Strikethrough.js +6 -5
  254. package/esm/typography/strikethrough/Strikethrough.js.map +2 -2
  255. package/esm/typography/strikethrough/Strikethrough.sty.js +1 -1
  256. package/esm/typography/strikethrough/Strikethrough.sty.js.map +1 -1
  257. package/esm/typography/strong/Strong.css +1 -1
  258. package/esm/typography/strong/Strong.js +6 -5
  259. package/esm/typography/strong/Strong.js.map +2 -2
  260. package/esm/typography/strong/Strong.sty.js +1 -1
  261. package/esm/typography/strong/Strong.sty.js.map +1 -1
  262. package/esm/typography/text/Text.css +3 -3
  263. package/esm/typography/text/Text.js +6 -5
  264. package/esm/typography/text/Text.js.map +2 -2
  265. package/esm/typography/text/Text.sty.js +1 -1
  266. package/esm/typography/text/Text.sty.js.map +1 -1
  267. package/esm/typography/text-ellipsis/TextEllipsis.css +8 -5
  268. package/esm/typography/text-ellipsis/TextEllipsis.js +16 -15
  269. package/esm/typography/text-ellipsis/TextEllipsis.js.map +2 -2
  270. package/esm/typography/text-ellipsis/TextEllipsis.sty.js +4 -4
  271. package/esm/typography/text-ellipsis/TextEllipsis.sty.js.map +2 -2
  272. package/index.js +1 -0
  273. package/layouts/container/Container.css +4 -4
  274. package/layouts/container/Container.js +8 -6
  275. package/layouts/container/Container.sty.js +2 -1
  276. package/layouts/divider/Divider.css +6 -6
  277. package/layouts/divider/Divider.d.ts +1 -2
  278. package/layouts/divider/Divider.js +4 -2
  279. package/layouts/divider/Divider.sty.js +2 -1
  280. package/layouts/flex/Flex.js +7 -5
  281. package/layouts/grid/Grid.d.ts +1 -1
  282. package/layouts/grid/Grid.js +7 -5
  283. package/layouts/helpers/spacingToCss.js +1 -0
  284. package/layouts/hooks/useBreakpoint.js +1 -0
  285. package/layouts/hooks/useLayoutSizeProps.js +1 -0
  286. package/layouts/hooks/useLayoutStyles.js +1 -0
  287. package/layouts/hooks/useMarginProps.js +1 -0
  288. package/layouts/hooks/usePaddingProps.js +1 -0
  289. package/layouts/index.js +1 -0
  290. package/layouts/surface/Surface.css +39 -39
  291. package/layouts/surface/Surface.js +18 -14
  292. package/layouts/surface/Surface.sty.js +3 -2
  293. package/layouts/surface/variables.sty.js +2 -1
  294. package/layouts/types/layout.types.d.ts +1 -1
  295. package/layouts/types/layout.types.js +1 -0
  296. package/package.json +5 -5
  297. package/styles/colorUtils.css +60 -60
  298. package/styles/colorUtils.sty.js +3 -2
  299. package/styles/container.css +47 -47
  300. package/styles/container.sty.js +3 -2
  301. package/styles/ellipsis.css +1 -1
  302. package/styles/ellipsis.sty.js +2 -1
  303. package/styles/extract-util.js +1 -0
  304. package/styles/field.css +153 -153
  305. package/styles/field.sty.js +3 -2
  306. package/styles/getFlexStyles.d.ts +17 -17
  307. package/styles/getFlexStyles.js +1 -0
  308. package/styles/getGapSprinkles.js +1 -0
  309. package/styles/getGridFlexPositionSprinkles.js +1 -0
  310. package/styles/getGridStyles.d.ts +22 -22
  311. package/styles/getGridStyles.js +1 -0
  312. package/styles/getLayoutSizeStyles.d.ts +1 -1
  313. package/styles/getLayoutSizeStyles.js +1 -0
  314. package/styles/getSpacingSprinkles.js +1 -0
  315. package/styles/index.js +1 -0
  316. package/styles/safe-sprinkles.js +1 -0
  317. package/styles/sprinkle-properties.js +1 -0
  318. package/styles/sprinkles.css +262 -262
  319. package/styles/sprinkles.sty.js +2 -1
  320. package/styles/textStyle.css +8 -8
  321. package/styles/textStyle.sty.js +2 -1
  322. package/typography/block-quote/Blockquote.css +2 -2
  323. package/typography/block-quote/Blockquote.d.ts +1 -2
  324. package/typography/block-quote/Blockquote.js +7 -5
  325. package/typography/block-quote/Blockquote.sty.js +2 -1
  326. package/typography/code/Code.css +1 -1
  327. package/typography/code/Code.d.ts +1 -2
  328. package/typography/code/Code.js +7 -5
  329. package/typography/code/Code.sty.js +2 -1
  330. package/typography/emphasis/Emphasis.css +1 -1
  331. package/typography/emphasis/Emphasis.d.ts +1 -2
  332. package/typography/emphasis/Emphasis.js +7 -5
  333. package/typography/emphasis/Emphasis.sty.js +2 -1
  334. package/typography/external-link/ExternalLink.css +6 -6
  335. package/typography/external-link/ExternalLink.d.ts +2 -2
  336. package/typography/external-link/ExternalLink.js +23 -16
  337. package/typography/external-link/ExternalLink.sty.js +2 -1
  338. package/typography/heading/Heading.css +7 -7
  339. package/typography/heading/Heading.d.ts +1 -2
  340. package/typography/heading/Heading.js +7 -5
  341. package/typography/heading/Heading.sty.js +2 -1
  342. package/typography/highlight/Highlight.css +2 -1
  343. package/typography/highlight/Highlight.d.ts +1 -1
  344. package/typography/highlight/Highlight.js +22 -17
  345. package/typography/highlight/Highlight.sty.js +2 -1
  346. package/typography/index.js +1 -0
  347. package/typography/link/Link.css +4 -4
  348. package/typography/link/Link.d.ts +1 -1
  349. package/typography/link/Link.js +7 -5
  350. package/typography/link/Link.sty.js +2 -1
  351. package/typography/list/List.css +4 -4
  352. package/typography/list/List.d.ts +1 -2
  353. package/typography/list/List.js +11 -9
  354. package/typography/list/List.sty.js +3 -2
  355. package/typography/paragraph/Paragraph.css +3 -3
  356. package/typography/paragraph/Paragraph.d.ts +1 -2
  357. package/typography/paragraph/Paragraph.js +7 -5
  358. package/typography/paragraph/Paragraph.sty.js +2 -1
  359. package/typography/strikethrough/Strikethrough.css +1 -1
  360. package/typography/strikethrough/Strikethrough.d.ts +1 -2
  361. package/typography/strikethrough/Strikethrough.js +7 -5
  362. package/typography/strikethrough/Strikethrough.sty.js +2 -1
  363. package/typography/strong/Strong.css +1 -1
  364. package/typography/strong/Strong.d.ts +1 -2
  365. package/typography/strong/Strong.js +7 -5
  366. package/typography/strong/Strong.sty.js +2 -1
  367. package/typography/text/Text.css +3 -3
  368. package/typography/text/Text.js +7 -5
  369. package/typography/text/Text.sty.js +2 -1
  370. package/typography/text-ellipsis/TextEllipsis.css +8 -5
  371. package/typography/text-ellipsis/TextEllipsis.d.ts +2 -2
  372. package/typography/text-ellipsis/TextEllipsis.js +17 -15
  373. package/typography/text-ellipsis/TextEllipsis.sty.d.ts +7 -2
  374. package/typography/text-ellipsis/TextEllipsis.sty.js +5 -4
  375. package/typography/utils.js +1 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/typography/external-link/ExternalLink.tsx"],
4
- "sourcesContent": ["import clsx from 'clsx';\nimport React, { forwardRef, MouseEventHandler } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { ExternalLinkIcon } from '@dynatrace/strato-icons';\n\nimport { externalLinkCSS } from './ExternalLink.sty.js';\nimport {\n type DataTestId,\n type StylingProps,\n type WithChildren,\n _mergeProps,\n} from '../../core/index.js';\nimport { useFocusRing } from '../../core/styles/useFocusRing.js';\nimport type { MaskingProps } from '../../core/types/masking-props.js';\n\n/**\n * The props for the ExternalLink component.\n * @public\n */\nexport interface ExternalLinkProps\n extends WithChildren,\n StylingProps,\n DataTestId,\n MaskingProps {\n /** The href used for the link. */\n href: string;\n /** Callback handler called on click. */\n onClick?: MouseEventHandler;\n}\n\n/**\n * Use the `ExternalLink` component to link to external resources\n * (i.e., outside the current environment). To link to any internal resources, use the\n * {@link https://developer.dynatrace.com/design/components/typography/Link/ | `Link`}\n * component instead.\n * @public\n */\nexport const ExternalLink = /* @__PURE__ */ forwardRef<\n HTMLAnchorElement,\n ExternalLinkProps\n>((props, ref) => {\n const {\n children,\n 'data-testid': dataTestId,\n 'data-dtrum-mask': dataDtrumMask,\n 'data-dtrum-allow': dataDtrumAllow,\n className: consumerClassName,\n style: consumerStyle,\n ...remainingProps\n } = props;\n\n const { focusProps, focusClassName } = useFocusRing({\n variant: 'primary',\n isMinimal: true,\n });\n\n const intl = useIntl();\n\n return (\n <a\n ref={ref}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n data-testid={dataTestId}\n data-dtrum-mask={dataDtrumMask}\n data-dtrum-allow={dataDtrumAllow}\n className={clsx(focusClassName, externalLinkCSS, consumerClassName)}\n style={consumerStyle}\n {..._mergeProps(remainingProps, focusProps)}\n >\n {children}\n <span>\n &#65279;\n <ExternalLinkIcon\n aria-hidden=\"false\"\n // https://www.w3.org/WAI/tutorials/images/functional/#example-3-icon-image-conveying-information-within-link-text\n aria-label={intl.formatMessage({\n defaultMessage: 'Opening the link in a new window',\n id: 'JzYy8MUVfPcyf4l5',\n description:\n 'External link icon that describes the external link icon',\n })}\n />\n </span>\n </a>\n );\n});\n\n(ExternalLink as typeof ExternalLink & { displayName: string }).displayName =\n 'ExternalLink';\n"],
5
- "mappings": "AAAA,OAAO,UAAU;AACjB,OAAO,SAAS,kBAAqC;AACrD,SAAS,eAAe;AAExB,SAAS,wBAAwB;AAEjC,SAAS,uBAAuB;AAChC;AAAA,EAIE;AAAA,OACK;AACP,SAAS,oBAAoB;AAyBtB,MAAM,eAA+B,2BAG1C,CAAC,OAAO,QAAQ;AAChB,QAAM;AAAA,IACJ;AAAA,IACA,eAAe;AAAA,IACf,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,IACpB,WAAW;AAAA,IACX,OAAO;AAAA,IACP,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,EAAE,YAAY,eAAe,IAAI,aAAa;AAAA,IAClD,SAAS;AAAA,IACT,WAAW;AAAA,EACb,CAAC;AAED,QAAM,OAAO,QAAQ;AAErB,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,QAAO;AAAA,MACP,KAAI;AAAA,MACJ,eAAa;AAAA,MACb,mBAAiB;AAAA,MACjB,oBAAkB;AAAA,MAClB,WAAW,KAAK,gBAAgB,iBAAiB,iBAAiB;AAAA,MAClE,OAAO;AAAA,MACN,GAAG,YAAY,gBAAgB,UAAU;AAAA;AAAA,IAEzC;AAAA,IACD,oCAAC,cAAK,UAEJ;AAAA,MAAC;AAAA;AAAA,QACC,eAAY;AAAA,QAEZ,cAAY,KAAK,cAAc;AAAA,UAC7B,gBAAgB;AAAA,UAChB,IAAI;AAAA,UACJ,aACE;AAAA,QACJ,CAAC;AAAA;AAAA,IACH,CACF;AAAA,EACF;AAEJ,CAAC;AAEA,aAA+D,cAC9D;",
4
+ "sourcesContent": ["import clsx from 'clsx';\nimport { forwardRef, type MouseEventHandler } from 'react';\nimport { useIntl } from 'react-intl';\n\nimport { ExternalLinkIcon } from '@dynatrace/strato-icons';\n\nimport { externalLinkCSS } from './ExternalLink.sty.js';\nimport {\n type DataTestId,\n type StylingProps,\n type WithChildren,\n _mergeProps,\n} from '../../core/index.js';\nimport { useFocusRing } from '../../core/styles/useFocusRing.js';\nimport type { MaskingProps } from '../../core/types/masking-props.js';\n\n/**\n * The props for the ExternalLink component.\n * @public\n */\nexport interface ExternalLinkProps\n extends WithChildren,\n StylingProps,\n DataTestId,\n MaskingProps {\n /** The href used for the link. */\n href: string;\n /** Callback handler called on click. */\n onClick?: MouseEventHandler;\n}\n\n/**\n * Use the `ExternalLink` component to link to external resources\n * (i.e., outside the current environment). To link to any internal resources, use the\n * {@link https://developer.dynatrace.com/design/components/typography/Link/ | `Link`}\n * component instead.\n * @public\n */\nexport const ExternalLink = /* @__PURE__ */ forwardRef<\n HTMLAnchorElement,\n ExternalLinkProps\n>((props, ref) => {\n const {\n children,\n 'data-testid': dataTestId,\n 'data-dtrum-mask': dataDtrumMask,\n 'data-dtrum-allow': dataDtrumAllow,\n className: consumerClassName,\n style: consumerStyle,\n ...remainingProps\n } = props;\n\n const { focusProps, focusClassName } = useFocusRing({\n variant: 'primary',\n isMinimal: true,\n });\n\n const intl = useIntl();\n\n return (\n <a\n ref={ref}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n data-testid={dataTestId}\n data-dtrum-mask={dataDtrumMask}\n data-dtrum-allow={dataDtrumAllow}\n className={clsx(focusClassName, externalLinkCSS, consumerClassName)}\n style={consumerStyle}\n {..._mergeProps(remainingProps, focusProps)}\n >\n {children}\n <span>\n &#65279;\n <ExternalLinkIcon\n aria-hidden=\"false\"\n // https://www.w3.org/WAI/tutorials/images/functional/#example-3-icon-image-conveying-information-within-link-text\n aria-label={intl.formatMessage({\n defaultMessage: 'Opening the link in a new window',\n id: 'JzYy8MUVfPcyf4l5',\n description:\n 'External link icon that describes the external link icon',\n })}\n />\n </span>\n </a>\n );\n});\n\n(ExternalLink as typeof ExternalLink & { displayName: string }).displayName =\n 'ExternalLink';\n"],
5
+ "mappings": "AAwEM,SAEE,KAFF;AAxEN,OAAO,UAAU;AACjB,SAAS,kBAA0C;AACnD,SAAS,eAAe;AAExB,SAAS,wBAAwB;AAEjC,SAAS,uBAAuB;AAChC;AAAA,EAIE;AAAA,OACK;AACP,SAAS,oBAAoB;AAyBtB,MAAM,eAA+B,2BAG1C,CAAC,OAAO,QAAQ;AAChB,QAAM;AAAA,IACJ;AAAA,IACA,eAAe;AAAA,IACf,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,IACpB,WAAW;AAAA,IACX,OAAO;AAAA,IACP,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,EAAE,YAAY,eAAe,IAAI,aAAa;AAAA,IAClD,SAAS;AAAA,IACT,WAAW;AAAA,EACb,CAAC;AAED,QAAM,OAAO,QAAQ;AAErB,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,QAAO;AAAA,MACP,KAAI;AAAA,MACJ,eAAa;AAAA,MACb,mBAAiB;AAAA,MACjB,oBAAkB;AAAA,MAClB,WAAW,KAAK,gBAAgB,iBAAiB,iBAAiB;AAAA,MAClE,OAAO;AAAA,MACN,GAAG,YAAY,gBAAgB,UAAU;AAAA,MAEzC;AAAA;AAAA,QACD,qBAAC,UAAK;AAAA;AAAA,UAEJ;AAAA,YAAC;AAAA;AAAA,cACC,eAAY;AAAA,cAEZ,cAAY,KAAK,cAAc;AAAA,gBAC7B,gBAAgB;AAAA,gBAChB,IAAI;AAAA,gBACJ,aACE;AAAA,cACJ,CAAC;AAAA;AAAA,UACH;AAAA,WACF;AAAA;AAAA;AAAA,EACF;AAEJ,CAAC;AAEA,aAA+D,cAC9D;",
6
6
  "names": []
7
7
  }
@@ -1,5 +1,5 @@
1
1
  import "./ExternalLink.css";
2
- var externalLinkCSS = "_1v1skpy0-1-4-0";
2
+ var externalLinkCSS = "_1v1skpy0-1-6-0";
3
3
  export {
4
4
  externalLinkCSS
5
5
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/typography/external-link/ExternalLink.css.ts"],
4
- "sourcesContent": ["import './ExternalLink.css';\nexport var externalLinkCSS = '_1v1skpy0-1-4-0';"],
4
+ "sourcesContent": ["import './ExternalLink.css';\nexport var externalLinkCSS = '_1v1skpy0-1-6-0';"],
5
5
  "mappings": "AAAA,OAAO;AACA,IAAI,kBAAkB;",
6
6
  "names": []
7
7
  }
@@ -1,10 +1,10 @@
1
- ._5ei34w0-1-4-0 {
1
+ ._5ei34w0-1-6-0 {
2
2
  margin: 0;
3
3
  overflow-wrap: break-word;
4
4
  font-style: normal;
5
5
  color: inherit;
6
6
  }
7
- ._5ei34w1-1-4-0 {
7
+ ._5ei34w1-1-6-0 {
8
8
  font-family: var(--dt-typography-heading-level-1-family, DynatraceFlow,Roboto,Helvetica,sans-serif);
9
9
  font-size: var(--dt-typography-heading-level-1-size, 32px);
10
10
  font-weight: var(--dt-typography-heading-level-1-weight, 600);
@@ -12,7 +12,7 @@
12
12
  text-transform: var(--dt-typography-heading-level-1-text-transform, none);
13
13
  text-decoration: var(--dt-typography-heading-level-1-text-decoration, none);
14
14
  }
15
- ._5ei34w2-1-4-0 {
15
+ ._5ei34w2-1-6-0 {
16
16
  font-family: var(--dt-typography-heading-level-2-family, DynatraceFlow,Roboto,Helvetica,sans-serif);
17
17
  font-size: var(--dt-typography-heading-level-2-size, 28px);
18
18
  font-weight: var(--dt-typography-heading-level-2-weight, 600);
@@ -20,7 +20,7 @@
20
20
  text-transform: var(--dt-typography-heading-level-2-text-transform, none);
21
21
  text-decoration: var(--dt-typography-heading-level-2-text-decoration, none);
22
22
  }
23
- ._5ei34w3-1-4-0 {
23
+ ._5ei34w3-1-6-0 {
24
24
  font-family: var(--dt-typography-heading-level-3-family, DynatraceFlow,Roboto,Helvetica,sans-serif);
25
25
  font-size: var(--dt-typography-heading-level-3-size, 24px);
26
26
  font-weight: var(--dt-typography-heading-level-3-weight, 600);
@@ -28,7 +28,7 @@
28
28
  text-transform: var(--dt-typography-heading-level-3-text-transform, none);
29
29
  text-decoration: var(--dt-typography-heading-level-3-text-decoration, none);
30
30
  }
31
- ._5ei34w4-1-4-0 {
31
+ ._5ei34w4-1-6-0 {
32
32
  font-family: var(--dt-typography-heading-level-4-family, DynatraceFlow,Roboto,Helvetica,sans-serif);
33
33
  font-size: var(--dt-typography-heading-level-4-size, 20px);
34
34
  font-weight: var(--dt-typography-heading-level-4-weight, 600);
@@ -36,7 +36,7 @@
36
36
  text-transform: var(--dt-typography-heading-level-4-text-transform, none);
37
37
  text-decoration: var(--dt-typography-heading-level-4-text-decoration, none);
38
38
  }
39
- ._5ei34w5-1-4-0 {
39
+ ._5ei34w5-1-6-0 {
40
40
  font-family: var(--dt-typography-heading-level-5-family, DynatraceFlow,Roboto,Helvetica,sans-serif);
41
41
  font-size: var(--dt-typography-heading-level-5-size, 16px);
42
42
  font-weight: var(--dt-typography-heading-level-5-weight, 600);
@@ -44,7 +44,7 @@
44
44
  text-transform: var(--dt-typography-heading-level-5-text-transform, none);
45
45
  text-decoration: var(--dt-typography-heading-level-5-text-decoration, none);
46
46
  }
47
- ._5ei34w6-1-4-0 {
47
+ ._5ei34w6-1-6-0 {
48
48
  font-family: var(--dt-typography-heading-level-6-family, DynatraceFlow,Roboto,Helvetica,sans-serif);
49
49
  font-size: var(--dt-typography-heading-level-6-size, 14px);
50
50
  font-weight: var(--dt-typography-heading-level-6-weight, 600);
@@ -1,5 +1,6 @@
1
+ import { jsx } from "react/jsx-runtime";
1
2
  import clsx from "clsx";
2
- import React, { forwardRef } from "react";
3
+ import { forwardRef } from "react";
3
4
  import { headingCSS } from "./Heading.sty.js";
4
5
  const Heading = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
5
6
  const {
@@ -15,7 +16,7 @@ const Heading = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
15
16
  } = props;
16
17
  const visualLevel = level ?? 1;
17
18
  const HeadingTag = as ?? `h${visualLevel}`;
18
- return /* @__PURE__ */ React.createElement(
19
+ return /* @__PURE__ */ jsx(
19
20
  HeadingTag,
20
21
  {
21
22
  ref: forwardedRef,
@@ -24,9 +25,9 @@ const Heading = /* @__PURE__ */ forwardRef((props, forwardedRef) => {
24
25
  "data-dtrum-allow": dataDtrumAllow,
25
26
  className: clsx(headingCSS({ visualLevel }), consumerClassName),
26
27
  style: consumerStyle,
27
- ...remainingProps
28
- },
29
- children
28
+ ...remainingProps,
29
+ children
30
+ }
30
31
  );
31
32
  });
32
33
  Heading.displayName = "Heading";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/typography/heading/Heading.tsx"],
4
- "sourcesContent": ["import clsx from 'clsx';\nimport React, { forwardRef } from 'react';\n\nimport { headingCSS } from './Heading.sty.js';\nimport {\n type DataTestId,\n type StylingProps,\n type WithChildren,\n type MaskingProps,\n} from '../../core/index.js';\nimport type { DOMProps } from '../../core/types/dom.js';\nimport type { _HeadingTag } from '../../core/types/heading.js';\n\n/**\n * Props used for the Heading component\n * @public\n */\nexport interface HeadingProps\n extends DOMProps,\n WithChildren,\n StylingProps,\n DataTestId,\n MaskingProps {\n /**\n * The visual level of the heading.\n * @defaultValue 1\n */\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n /**\n * The polymorphed HTML tag that determines the semantic level of the heading.\n * @defaultValue 'h1'\n */\n as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n}\n\n/**\n * Use the `Heading` to render semantic HTML heading elements (`h1`, `h2`, etc.).\n * The component allows you to independently define both the visual and the semantic level of the heading.\n * @public\n */\nexport const Heading = /* @__PURE__ */ forwardRef<\n HTMLHeadingElement,\n HeadingProps\n>((props, forwardedRef) => {\n const {\n level,\n children,\n as,\n 'data-testid': dataTestId,\n 'data-dtrum-mask': dataDtrumMask,\n 'data-dtrum-allow': dataDtrumAllow,\n className: consumerClassName,\n style: consumerStyle,\n ...remainingProps\n } = props;\n\n const visualLevel = level ?? 1;\n // semantic level\n const HeadingTag: _HeadingTag = as ?? (`h${visualLevel}` as _HeadingTag);\n\n return (\n <HeadingTag\n ref={forwardedRef}\n data-testid={dataTestId}\n data-dtrum-mask={dataDtrumMask}\n data-dtrum-allow={dataDtrumAllow}\n className={clsx(headingCSS({ visualLevel }), consumerClassName)}\n style={consumerStyle}\n {...remainingProps}\n >\n {children}\n </HeadingTag>\n );\n});\n\n(Heading as typeof Heading & { displayName: string }).displayName = 'Heading';\n"],
5
- "mappings": "AAAA,OAAO,UAAU;AACjB,OAAO,SAAS,kBAAkB;AAElC,SAAS,kBAAkB;AAqCpB,MAAM,UAA0B,2BAGrC,CAAC,OAAO,iBAAiB;AACzB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe;AAAA,IACf,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,IACpB,WAAW;AAAA,IACX,OAAO;AAAA,IACP,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,cAAc,SAAS;AAE7B,QAAM,aAA0B,MAAO,IAAI,WAAW;AAEtD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,KAAK;AAAA,MACL,eAAa;AAAA,MACb,mBAAiB;AAAA,MACjB,oBAAkB;AAAA,MAClB,WAAW,KAAK,WAAW,EAAE,YAAY,CAAC,GAAG,iBAAiB;AAAA,MAC9D,OAAO;AAAA,MACN,GAAG;AAAA;AAAA,IAEH;AAAA,EACH;AAEJ,CAAC;AAEA,QAAqD,cAAc;",
4
+ "sourcesContent": ["import clsx from 'clsx';\nimport { forwardRef } from 'react';\n\nimport { headingCSS } from './Heading.sty.js';\nimport {\n type DataTestId,\n type StylingProps,\n type WithChildren,\n type MaskingProps,\n} from '../../core/index.js';\nimport type { DOMProps } from '../../core/types/dom.js';\nimport type { _HeadingTag } from '../../core/types/heading.js';\n\n/**\n * Props used for the Heading component\n * @public\n */\nexport interface HeadingProps\n extends DOMProps,\n WithChildren,\n StylingProps,\n DataTestId,\n MaskingProps {\n /**\n * The visual level of the heading.\n * @defaultValue 1\n */\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n /**\n * The polymorphed HTML tag that determines the semantic level of the heading.\n * @defaultValue 'h1'\n */\n as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n}\n\n/**\n * Use the `Heading` to render semantic HTML heading elements (`h1`, `h2`, etc.).\n * The component allows you to independently define both the visual and the semantic level of the heading.\n * @public\n */\nexport const Heading = /* @__PURE__ */ forwardRef<\n HTMLHeadingElement,\n HeadingProps\n>((props, forwardedRef) => {\n const {\n level,\n children,\n as,\n 'data-testid': dataTestId,\n 'data-dtrum-mask': dataDtrumMask,\n 'data-dtrum-allow': dataDtrumAllow,\n className: consumerClassName,\n style: consumerStyle,\n ...remainingProps\n } = props;\n\n const visualLevel = level ?? 1;\n // semantic level\n const HeadingTag: _HeadingTag = as ?? (`h${visualLevel}` as _HeadingTag);\n\n return (\n <HeadingTag\n ref={forwardedRef}\n data-testid={dataTestId}\n data-dtrum-mask={dataDtrumMask}\n data-dtrum-allow={dataDtrumAllow}\n className={clsx(headingCSS({ visualLevel }), consumerClassName)}\n style={consumerStyle}\n {...remainingProps}\n >\n {children}\n </HeadingTag>\n );\n});\n\n(Heading as typeof Heading & { displayName: string }).displayName = 'Heading';\n"],
5
+ "mappings": "AA6DI;AA7DJ,OAAO,UAAU;AACjB,SAAS,kBAAkB;AAE3B,SAAS,kBAAkB;AAqCpB,MAAM,UAA0B,2BAGrC,CAAC,OAAO,iBAAiB;AACzB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe;AAAA,IACf,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,IACpB,WAAW;AAAA,IACX,OAAO;AAAA,IACP,GAAG;AAAA,EACL,IAAI;AAEJ,QAAM,cAAc,SAAS;AAE7B,QAAM,aAA0B,MAAO,IAAI,WAAW;AAEtD,SACE;AAAA,IAAC;AAAA;AAAA,MACC,KAAK;AAAA,MACL,eAAa;AAAA,MACb,mBAAiB;AAAA,MACjB,oBAAkB;AAAA,MAClB,WAAW,KAAK,WAAW,EAAE,YAAY,CAAC,GAAG,iBAAiB;AAAA,MAC9D,OAAO;AAAA,MACN,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEJ,CAAC;AAEA,QAAqD,cAAc;",
6
6
  "names": []
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import "./Heading.css";
2
2
  import { createRuntimeFn as _7a468 } from "@vanilla-extract/recipes/createRuntimeFn";
3
- var headingCSS = _7a468({ defaultClassName: "_5ei34w0-1-4-0", variantClassNames: { visualLevel: { "1": "_5ei34w1-1-4-0", "2": "_5ei34w2-1-4-0", "3": "_5ei34w3-1-4-0", "4": "_5ei34w4-1-4-0", "5": "_5ei34w5-1-4-0", "6": "_5ei34w6-1-4-0" } }, defaultVariants: {}, compoundVariants: [] });
3
+ var headingCSS = _7a468({ defaultClassName: "_5ei34w0-1-6-0", variantClassNames: { visualLevel: { "1": "_5ei34w1-1-6-0", "2": "_5ei34w2-1-6-0", "3": "_5ei34w3-1-6-0", "4": "_5ei34w4-1-6-0", "5": "_5ei34w5-1-6-0", "6": "_5ei34w6-1-6-0" } }, defaultVariants: {}, compoundVariants: [] });
4
4
  export {
5
5
  headingCSS
6
6
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/typography/heading/Heading.css.ts"],
4
- "sourcesContent": ["import './Heading.css';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var headingCSS = _7a468({defaultClassName:'_5ei34w0-1-4-0',variantClassNames:{visualLevel:{'1':'_5ei34w1-1-4-0','2':'_5ei34w2-1-4-0','3':'_5ei34w3-1-4-0','4':'_5ei34w4-1-4-0','5':'_5ei34w5-1-4-0','6':'_5ei34w6-1-4-0'}},defaultVariants:{},compoundVariants:[]});"],
4
+ "sourcesContent": ["import './Heading.css';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var headingCSS = _7a468({defaultClassName:'_5ei34w0-1-6-0',variantClassNames:{visualLevel:{'1':'_5ei34w1-1-6-0','2':'_5ei34w2-1-6-0','3':'_5ei34w3-1-6-0','4':'_5ei34w4-1-6-0','5':'_5ei34w5-1-6-0','6':'_5ei34w6-1-6-0'}},defaultVariants:{},compoundVariants:[]});"],
5
5
  "mappings": "AAAA,OAAO;AACP,SAAS,mBAAmB,cAAc;AACnC,IAAI,aAAa,OAAO,EAAC,kBAAiB,kBAAiB,mBAAkB,EAAC,aAAY,EAAC,KAAI,kBAAiB,KAAI,kBAAiB,KAAI,kBAAiB,KAAI,kBAAiB,KAAI,kBAAiB,KAAI,iBAAgB,EAAC,GAAE,iBAAgB,CAAC,GAAE,kBAAiB,CAAC,EAAC,CAAC;",
6
6
  "names": []
7
7
  }
@@ -1,4 +1,5 @@
1
- ._lajjl30-1-4-0 {
1
+ ._lajjl30-1-6-0 {
2
2
  color: var(--dt-colors-text-neutral-on-accent-default, #f3f3f6);
3
3
  background: var(--dt-colors-background-container-neutral-accent, #5a5b8c);
4
+ white-space: pre-wrap;
4
5
  }
@@ -1,6 +1,16 @@
1
+ import { Fragment, jsx } from "react/jsx-runtime";
1
2
  import clsx from "clsx";
2
- import React from "react";
3
- import { FormattedMessage, useIntl } from "react-intl";
3
+ import {
4
+ Children,
5
+ cloneElement,
6
+ createElement,
7
+ Fragment as Fragment2,
8
+ isValidElement
9
+ } from "react";
10
+ import {
11
+ FormattedMessage,
12
+ useIntl
13
+ } from "react-intl";
4
14
  import { isElement } from "react-is";
5
15
  import { highlightCSS } from "./Highlight.sty.js";
6
16
  const HTML_CHARS_OVERRIDES = [
@@ -19,7 +29,7 @@ function highlightChildren(intl, children, term, caseSensitive, dataTestId, data
19
29
  }
20
30
  return term ? [term] : [];
21
31
  })();
22
- return terms.length > 0 ? React.Children.map(
32
+ return terms.length > 0 ? Children.map(
23
33
  children,
24
34
  (child) => highlightRecursive(
25
35
  intl,
@@ -32,12 +42,15 @@ function highlightChildren(intl, children, term, caseSensitive, dataTestId, data
32
42
  )
33
43
  ) : children;
34
44
  }
45
+ function isFormattedMessageElement(node) {
46
+ return isElement(node) && node.type !== void 0 && node.type === FormattedMessage;
47
+ }
35
48
  function highlightRecursive(intl, sourceElement, terms, caseSensitive, dataTestId, dataDtrumMask, dataDtrumAllow) {
36
49
  if (!sourceElement) {
37
50
  return sourceElement;
38
51
  }
39
52
  let elementToHighlight = sourceElement;
40
- if (isElement(elementToHighlight) && elementToHighlight.type && elementToHighlight.type === FormattedMessage) {
53
+ if (isFormattedMessageElement(elementToHighlight)) {
41
54
  const { id, description, defaultMessage, values } = elementToHighlight.props;
42
55
  const messageDescriptor = {
43
56
  id,
@@ -48,7 +61,7 @@ function highlightRecursive(intl, sourceElement, terms, caseSensitive, dataTestI
48
61
  if (Array.isArray(elementToHighlight)) {
49
62
  return highlightRecursive(
50
63
  intl,
51
- React.createElement(React.Fragment, { children: elementToHighlight }),
64
+ createElement(Fragment2, { children: elementToHighlight }),
52
65
  terms,
53
66
  caseSensitive,
54
67
  dataTestId,
@@ -57,8 +70,8 @@ function highlightRecursive(intl, sourceElement, terms, caseSensitive, dataTestI
57
70
  );
58
71
  }
59
72
  }
60
- if (React.isValidElement(elementToHighlight)) {
61
- const children = React.Children.map(
73
+ if (isValidElement(elementToHighlight)) {
74
+ const children = Children.map(
62
75
  elementToHighlight.props.children,
63
76
  (child) => highlightRecursive(
64
77
  intl,
@@ -70,7 +83,7 @@ function highlightRecursive(intl, sourceElement, terms, caseSensitive, dataTestI
70
83
  dataDtrumAllow
71
84
  )
72
85
  );
73
- return React.cloneElement(
86
+ return cloneElement(
74
87
  elementToHighlight,
75
88
  elementToHighlight.props,
76
89
  children
@@ -95,24 +108,24 @@ function highlightLeafElement(textContent, terms, caseSensitive, dataTestId, dat
95
108
  );
96
109
  const termsInLowerCase = terms.map((t) => t.toLowerCase());
97
110
  return getTextTokens(sanitizedTextContent, terms, caseSensitive).map(
98
- (token) => termsInLowerCase.includes(token.toLowerCase()) ? /* @__PURE__ */ React.createElement(
111
+ (token) => termsInLowerCase.includes(token.toLowerCase()) ? /* @__PURE__ */ jsx(
99
112
  "mark",
100
113
  {
101
114
  role: "mark",
102
115
  className: clsx(highlightCSS),
103
116
  "data-dtrum-mask": dataDtrumMask,
104
- "data-dtrum-allow": dataDtrumAllow
105
- },
106
- token
107
- ) : /* @__PURE__ */ React.createElement(
117
+ "data-dtrum-allow": dataDtrumAllow,
118
+ children: token
119
+ }
120
+ ) : /* @__PURE__ */ jsx(
108
121
  "span",
109
122
  {
110
123
  style: {
111
124
  whiteSpace: "pre-wrap",
112
125
  flex: "none"
113
- }
114
- },
115
- token
126
+ },
127
+ children: token
128
+ }
116
129
  )
117
130
  );
118
131
  }
@@ -134,7 +147,7 @@ const Highlight = (props) => {
134
147
  "data-dtrum-allow": dataDtrumAllow
135
148
  } = props;
136
149
  const intl = useIntl();
137
- return /* @__PURE__ */ React.createElement(React.Fragment, null, highlightChildren(
150
+ return /* @__PURE__ */ jsx(Fragment, { children: highlightChildren(
138
151
  intl,
139
152
  children,
140
153
  term,
@@ -142,7 +155,7 @@ const Highlight = (props) => {
142
155
  dataTestId,
143
156
  dataDtrumMask,
144
157
  dataDtrumAllow
145
- ));
158
+ ) });
146
159
  };
147
160
  Highlight.displayName = "Highlight";
148
161
  export {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/typography/highlight/Highlight.tsx"],
4
- "sourcesContent": ["import clsx from 'clsx';\nimport React, { ReactElement, ReactNode } from 'react';\nimport { FormattedMessage, useIntl, type IntlShape } from 'react-intl';\nimport { isElement } from 'react-is';\n\nimport { highlightCSS } from './Highlight.sty.js';\nimport { type DataTestId, type WithChildren } from '../../core/index.js';\nimport type { MaskingProps } from '../../core/types/masking-props.js';\n\n/**\n * The props for the Heading component.\n * @public\n */\nexport interface HighlightProps extends WithChildren, DataTestId, MaskingProps {\n /**\n * Either a substring or an array of multiple different substrings that\n * should be highlighted in the projected content.\n * Every occurrence of the string(s) is highlighted accordingly.\n */\n term: string | string[];\n\n /**\n * Property that determines whether the highlighting search is case-sensitive.\n * If set to `true`, the component searches for case sensitive occurrences.\n * @defaultValue false\n */\n caseSensitive?: boolean;\n}\n\nconst HTML_CHARS_OVERRIDES: [RegExp, string][] = [\n [/&lt;/g, '<'],\n [/&gt;/g, '>'],\n [/&amp;/g, '&'],\n [/&nbsp;/g, ' '],\n];\n\n/** Escapes all characters that could be dangerous for a regular expression */\nfunction escapeRegExp(text: string): string {\n return text.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); // $& means the whole matched string\n}\n\n/** Highlights all occurences of a list of terms within a ReactNode. */\nfunction highlightChildren(\n intl: IntlShape,\n children: ReactNode,\n term: string | string[],\n caseSensitive: boolean,\n dataTestId?: string,\n dataDtrumMask?: boolean,\n dataDtrumAllow?: boolean,\n) {\n const terms = (() => {\n if (Array.isArray(term)) {\n return term.filter((t) => t);\n }\n\n return term ? [term] : [];\n })();\n\n return terms.length > 0\n ? React.Children.map(children, (child: ReactNode) =>\n highlightRecursive(\n intl,\n child,\n terms,\n caseSensitive,\n dataTestId,\n dataDtrumMask,\n dataDtrumAllow,\n ),\n )\n : children;\n}\n\n/**\n * Iterates over all children of a ReactNode recursively to look\n * for a list of terms and highlights them.\n */\nfunction highlightRecursive(\n intl: IntlShape,\n sourceElement: ReactNode,\n terms: string[],\n caseSensitive: boolean,\n dataTestId?: string,\n dataDtrumMask?: boolean,\n dataDtrumAllow?: boolean,\n): ReactNode {\n if (!sourceElement) {\n return sourceElement;\n }\n\n let elementToHighlight = sourceElement;\n\n // For `FormattedMessage` components explicitly retrieve its node(s)\n if (\n isElement(elementToHighlight) &&\n elementToHighlight.type &&\n elementToHighlight.type === FormattedMessage\n ) {\n const { id, description, defaultMessage, values } =\n elementToHighlight.props;\n\n const messageDescriptor = {\n id,\n description,\n defaultMessage,\n };\n elementToHighlight = intl.formatMessage(messageDescriptor, values);\n\n if (Array.isArray(elementToHighlight)) {\n return highlightRecursive(\n intl,\n React.createElement(React.Fragment, { children: elementToHighlight }),\n terms,\n caseSensitive,\n dataTestId,\n dataDtrumMask,\n dataDtrumAllow,\n );\n }\n }\n\n if (React.isValidElement(elementToHighlight)) {\n const children = React.Children.map(\n elementToHighlight.props.children,\n (child) =>\n highlightRecursive(\n intl,\n child,\n terms,\n caseSensitive,\n dataTestId,\n dataDtrumMask,\n dataDtrumAllow,\n ),\n );\n\n return React.cloneElement(\n elementToHighlight,\n elementToHighlight.props,\n children,\n );\n }\n\n return highlightLeafElement(\n elementToHighlight as string | number,\n terms,\n caseSensitive,\n dataTestId,\n dataDtrumMask,\n dataDtrumAllow,\n );\n}\n\n/** Highlights parts of the text that match a certain group of terms. */\nfunction highlightLeafElement(\n textContent: string | number,\n terms: string[],\n caseSensitive: boolean,\n dataTestId?: string,\n dataDtrumMask?: boolean,\n dataDtrumAllow?: boolean,\n): ReactNode {\n if (terms.length === 0) {\n return textContent;\n }\n\n const sanitizedTextContent = HTML_CHARS_OVERRIDES.reduce(\n (text, [needle, replacement]) => text.replace(needle, replacement),\n `${textContent}`,\n );\n const termsInLowerCase = terms.map((t) => t.toLowerCase());\n\n return getTextTokens(sanitizedTextContent, terms, caseSensitive).map(\n (token: string) =>\n termsInLowerCase.includes(token.toLowerCase()) ? (\n <mark\n role=\"mark\"\n className={clsx(highlightCSS)}\n data-dtrum-mask={dataDtrumMask}\n data-dtrum-allow={dataDtrumAllow}\n >\n {token}\n </mark>\n ) : (\n <span\n style={{\n whiteSpace: 'pre-wrap',\n flex: 'none',\n }}\n >\n {token}\n </span>\n ),\n );\n}\n\n/**\n * Splits text into an array of strings where a given list of terms\n * acts as separator strings.\n */\nfunction getTextTokens(\n textContent: string | number,\n terms: string[],\n caseSensitive: boolean,\n): string[] {\n const flags = caseSensitive ? 'gm' : 'gmi';\n const regExp = new RegExp(\n `(${terms.map((t) => escapeRegExp(t)).join('|')})`,\n flags,\n );\n\n return textContent\n .toString()\n .split(regExp)\n .filter((s) => s.length > 0);\n}\n\n/**\n * Use the `Highlight` component to highlight one or more substrings within a\n * text.\n * @public\n */\nexport const Highlight = (props: HighlightProps): ReactElement => {\n const {\n children,\n term,\n caseSensitive = false,\n 'data-testid': dataTestId,\n 'data-dtrum-mask': dataDtrumMask,\n 'data-dtrum-allow': dataDtrumAllow,\n } = props;\n const intl = useIntl();\n\n return (\n <>\n {highlightChildren(\n intl,\n children,\n term,\n caseSensitive,\n dataTestId,\n dataDtrumMask,\n dataDtrumAllow,\n )}\n </>\n );\n};\n\n(Highlight as typeof Highlight & { displayName: string }).displayName =\n 'Highlight';\n"],
5
- "mappings": "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",
6
- "names": []
4
+ "sourcesContent": ["import clsx from 'clsx';\nimport {\n Children,\n cloneElement,\n createElement,\n Fragment,\n isValidElement,\n type PropsWithChildren,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport {\n FormattedMessage,\n useIntl,\n type IntlShape,\n type MessageDescriptor,\n} from 'react-intl';\nimport { isElement } from 'react-is';\n\nimport { highlightCSS } from './Highlight.sty.js';\nimport { type DataTestId, type WithChildren } from '../../core/index.js';\nimport type { MaskingProps } from '../../core/types/masking-props.js';\n\n/**\n * The props for the Heading component.\n * @public\n */\nexport interface HighlightProps extends WithChildren, DataTestId, MaskingProps {\n /**\n * Either a substring or an array of multiple different substrings that\n * should be highlighted in the projected content.\n * Every occurrence of the string(s) is highlighted accordingly.\n */\n term: string | string[];\n\n /**\n * Property that determines whether the highlighting search is case-sensitive.\n * If set to `true`, the component searches for case sensitive occurrences.\n * @defaultValue false\n */\n caseSensitive?: boolean;\n}\n\nconst HTML_CHARS_OVERRIDES: [RegExp, string][] = [\n [/&lt;/g, '<'],\n [/&gt;/g, '>'],\n [/&amp;/g, '&'],\n [/&nbsp;/g, ' '],\n];\n\n/** Escapes all characters that could be dangerous for a regular expression */\nfunction escapeRegExp(text: string): string {\n return text.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&'); // $& means the whole matched string\n}\n\n/** Highlights all occurences of a list of terms within a ReactNode. */\nfunction highlightChildren(\n intl: IntlShape,\n children: ReactNode,\n term: string | string[],\n caseSensitive: boolean,\n dataTestId?: string,\n dataDtrumMask?: boolean,\n dataDtrumAllow?: boolean,\n) {\n const terms = (() => {\n if (Array.isArray(term)) {\n return term.filter((t) => t);\n }\n\n return term ? [term] : [];\n })();\n\n return terms.length > 0\n ? Children.map(children, (child: ReactNode) =>\n highlightRecursive(\n intl,\n child,\n terms,\n caseSensitive,\n dataTestId,\n dataDtrumMask,\n dataDtrumAllow,\n ),\n )\n : children;\n}\n\nfunction isFormattedMessageElement(\n node: ReactNode,\n // Needs to overlap with the types from the FormattedMessage function\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): node is ReactElement<MessageDescriptor & { values: Record<string, any> }> {\n return (\n isElement(node) && node.type !== undefined && node.type === FormattedMessage\n );\n}\n\n/**\n * Iterates over all children of a ReactNode recursively to look\n * for a list of terms and highlights them.\n */\nfunction highlightRecursive(\n intl: IntlShape,\n sourceElement: ReactNode,\n terms: string[],\n caseSensitive: boolean,\n dataTestId?: string,\n dataDtrumMask?: boolean,\n dataDtrumAllow?: boolean,\n): ReactNode {\n if (!sourceElement) {\n return sourceElement;\n }\n\n let elementToHighlight = sourceElement;\n\n // For `FormattedMessage` components explicitly retrieve its node(s)\n if (isFormattedMessageElement(elementToHighlight)) {\n const { id, description, defaultMessage, values } =\n elementToHighlight.props;\n\n const messageDescriptor = {\n id,\n description,\n defaultMessage,\n };\n elementToHighlight = intl.formatMessage(messageDescriptor, values);\n\n if (Array.isArray(elementToHighlight)) {\n return highlightRecursive(\n intl,\n createElement(Fragment, { children: elementToHighlight }),\n terms,\n caseSensitive,\n dataTestId,\n dataDtrumMask,\n dataDtrumAllow,\n );\n }\n }\n\n if (isValidElement(elementToHighlight)) {\n const children = Children.map(\n (elementToHighlight.props as PropsWithChildren).children,\n (child) =>\n highlightRecursive(\n intl,\n child,\n terms,\n caseSensitive,\n dataTestId,\n dataDtrumMask,\n dataDtrumAllow,\n ),\n );\n\n return cloneElement(\n elementToHighlight,\n elementToHighlight.props as PropsWithChildren,\n children,\n );\n }\n\n return highlightLeafElement(\n elementToHighlight as string | number,\n terms,\n caseSensitive,\n dataTestId,\n dataDtrumMask,\n dataDtrumAllow,\n );\n}\n\n/** Highlights parts of the text that match a certain group of terms. */\nfunction highlightLeafElement(\n textContent: string | number,\n terms: string[],\n caseSensitive: boolean,\n dataTestId?: string,\n dataDtrumMask?: boolean,\n dataDtrumAllow?: boolean,\n): ReactNode {\n if (terms.length === 0) {\n return textContent;\n }\n\n const sanitizedTextContent = HTML_CHARS_OVERRIDES.reduce(\n (text, [needle, replacement]) => text.replace(needle, replacement),\n `${textContent}`,\n );\n const termsInLowerCase = terms.map((t) => t.toLowerCase());\n\n return getTextTokens(sanitizedTextContent, terms, caseSensitive).map(\n (token: string) =>\n termsInLowerCase.includes(token.toLowerCase()) ? (\n <mark\n role=\"mark\"\n className={clsx(highlightCSS)}\n data-dtrum-mask={dataDtrumMask}\n data-dtrum-allow={dataDtrumAllow}\n >\n {token}\n </mark>\n ) : (\n <span\n style={{\n whiteSpace: 'pre-wrap',\n flex: 'none',\n }}\n >\n {token}\n </span>\n ),\n );\n}\n\n/**\n * Splits text into an array of strings where a given list of terms\n * acts as separator strings.\n */\nfunction getTextTokens(\n textContent: string | number,\n terms: string[],\n caseSensitive: boolean,\n): string[] {\n const flags = caseSensitive ? 'gm' : 'gmi';\n const regExp = new RegExp(\n `(${terms.map((t) => escapeRegExp(t)).join('|')})`,\n flags,\n );\n\n return textContent\n .toString()\n .split(regExp)\n .filter((s) => s.length > 0);\n}\n\n/**\n * Use the `Highlight` component to highlight one or more substrings within a\n * text.\n * @public\n */\nexport const Highlight = (props: HighlightProps): ReactElement => {\n const {\n children,\n term,\n caseSensitive = false,\n 'data-testid': dataTestId,\n 'data-dtrum-mask': dataDtrumMask,\n 'data-dtrum-allow': dataDtrumAllow,\n } = props;\n const intl = useIntl();\n\n return (\n <>\n {highlightChildren(\n intl,\n children,\n term,\n caseSensitive,\n dataTestId,\n dataDtrumMask,\n dataDtrumAllow,\n )}\n </>\n );\n};\n\n(Highlight as typeof Highlight & { displayName: string }).displayName =\n 'Highlight';\n"],
5
+ "mappings": "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",
6
+ "names": ["Fragment"]
7
7
  }
@@ -1,5 +1,5 @@
1
1
  import "./Highlight.css";
2
- var highlightCSS = "_lajjl30-1-4-0";
2
+ var highlightCSS = "_lajjl30-1-6-0";
3
3
  export {
4
4
  highlightCSS
5
5
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/typography/highlight/Highlight.css.ts"],
4
- "sourcesContent": ["import './Highlight.css';\nexport var highlightCSS = '_lajjl30-1-4-0';"],
4
+ "sourcesContent": ["import './Highlight.css';\nexport var highlightCSS = '_lajjl30-1-6-0';"],
5
5
  "mappings": "AAAA,OAAO;AACA,IAAI,eAAe;",
6
6
  "names": []
7
7
  }
@@ -1,15 +1,15 @@
1
- ._1iksxp40-1-4-0 {
1
+ ._1iksxp40-1-6-0 {
2
2
  display: inline;
3
3
  color: var(--dt-colors-text-primary-default, #454cc9);
4
4
  text-decoration: underline;
5
5
  overflow-wrap: anywhere;
6
6
  }
7
- ._1iksxp40-1-4-0:hover {
7
+ ._1iksxp40-1-6-0:hover {
8
8
  color: var(--dt-colors-text-primary-default-hover, #3332ae);
9
9
  }
10
- ._1iksxp40-1-4-0:active {
10
+ ._1iksxp40-1-6-0:active {
11
11
  color: var(--dt-colors-text-primary-default-active, #241193);
12
12
  }
13
- ._1iksxp40-1-4-0:focus-visible {
13
+ ._1iksxp40-1-6-0:focus-visible {
14
14
  text-decoration: none;
15
15
  }
@@ -1,5 +1,6 @@
1
+ import { jsx } from "react/jsx-runtime";
1
2
  import clsx from "clsx";
2
- import React, { forwardRef } from "react";
3
+ import { forwardRef } from "react";
3
4
  import { linkCSS } from "./Link.sty.js";
4
5
  import {
5
6
  _mergeProps
@@ -21,7 +22,7 @@ const Link = /* @__PURE__ */ forwardRef(
21
22
  isMinimal: true
22
23
  });
23
24
  const LinkTag = as || "a";
24
- return /* @__PURE__ */ React.createElement(
25
+ return /* @__PURE__ */ jsx(
25
26
  LinkTag,
26
27
  {
27
28
  ref,
@@ -36,9 +37,9 @@ const Link = /* @__PURE__ */ forwardRef(
36
37
  // polymorphic inheritance.
37
38
  remainingProps,
38
39
  focusProps
39
- )
40
- },
41
- children
40
+ ),
41
+ children
42
+ }
42
43
  );
43
44
  }
44
45
  );
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/typography/link/Link.tsx"],
4
- "sourcesContent": ["import clsx from 'clsx';\nimport React, { ElementType, forwardRef, ReactElement } from 'react';\n\nimport { linkCSS } from './Link.sty.js';\nimport {\n type PolymorphicComponentProps,\n type DataTestId,\n type StylingProps,\n type WithChildren,\n _mergeProps,\n} from '../../core/index.js';\nimport { useFocusRing } from '../../core/styles/useFocusRing.js';\nimport type { MaskingProps } from '../../core/types/masking-props.js';\n\n/**\n * The props for the Link component.\n * @public\n */\nexport type LinkProps<E extends ElementType> = PolymorphicComponentProps<\n E,\n WithChildren & StylingProps & DataTestId & MaskingProps\n>;\n\n/**\n * Use the `Link` component to link to any internal resources.\n * For external resources (i.e., outside the current environment), use the\n * {@link https://developer.dynatrace.com/design/components/typography/ExternalLink/ | `ExternalLink`}\n * component instead.\n * @public\n */\nexport const Link: <E extends ElementType = 'a'>(\n props: LinkProps<E>,\n) => ReactElement | null = /* @__PURE__ */ forwardRef(\n <E extends ElementType>(\n {\n children,\n as,\n 'data-testid': dataTestId,\n 'data-dtrum-mask': dataDtrumMask,\n 'data-dtrum-allow': dataDtrumAllow,\n className: consumerClassName,\n style: consumerStyle,\n ...remainingProps\n }: LinkProps<E>,\n ref: typeof remainingProps.ref,\n ) => {\n const { focusProps, focusClassName } = useFocusRing({\n variant: 'primary',\n isMinimal: true,\n });\n const LinkTag = as || 'a';\n\n return (\n <LinkTag\n ref={ref}\n data-testid={dataTestId}\n data-dtrum-mask={dataDtrumMask}\n data-dtrum-allow={dataDtrumAllow}\n className={clsx(focusClassName, linkCSS, consumerClassName)}\n style={consumerStyle}\n {..._mergeProps(\n // Need to cast this one as the inference of mergeProps would generate\n // a not allowed overlap. The remainingProps type is too complex due to the\n // polymorphic inheritance.\n remainingProps as Record<string, unknown>,\n focusProps,\n )}\n >\n {children}\n </LinkTag>\n );\n },\n);\n\n(Link as typeof Link & { displayName: string }).displayName = 'Link';\n"],
5
- "mappings": "AAAA,OAAO,UAAU;AACjB,OAAO,SAAsB,kBAAgC;AAE7D,SAAS,eAAe;AACxB;AAAA,EAKE;AAAA,OACK;AACP,SAAS,oBAAoB;AAmBtB,MAAM,OAE8B;AAAA,EACzC,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA,eAAe;AAAA,IACf,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,IACpB,WAAW;AAAA,IACX,OAAO;AAAA,IACP,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,EAAE,YAAY,eAAe,IAAI,aAAa;AAAA,MAClD,SAAS;AAAA,MACT,WAAW;AAAA,IACb,CAAC;AACD,UAAM,UAAU,MAAM;AAEtB,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,eAAa;AAAA,QACb,mBAAiB;AAAA,QACjB,oBAAkB;AAAA,QAClB,WAAW,KAAK,gBAAgB,SAAS,iBAAiB;AAAA,QAC1D,OAAO;AAAA,QACN,GAAG;AAAA;AAAA;AAAA;AAAA,UAIF;AAAA,UACA;AAAA,QACF;AAAA;AAAA,MAEC;AAAA,IACH;AAAA,EAEJ;AACF;AAEC,KAA+C,cAAc;",
4
+ "sourcesContent": ["import clsx from 'clsx';\nimport { type ElementType, forwardRef, type ReactElement } from 'react';\n\nimport { linkCSS } from './Link.sty.js';\nimport {\n type PolymorphicComponentProps,\n type DataTestId,\n type StylingProps,\n type WithChildren,\n _mergeProps,\n} from '../../core/index.js';\nimport { useFocusRing } from '../../core/styles/useFocusRing.js';\nimport type { MaskingProps } from '../../core/types/masking-props.js';\n\n/**\n * The props for the Link component.\n * @public\n */\nexport type LinkProps<E extends ElementType> = PolymorphicComponentProps<\n E,\n WithChildren & StylingProps & DataTestId & MaskingProps\n>;\n\n/**\n * Use the `Link` component to link to any internal resources.\n * For external resources (i.e., outside the current environment), use the\n * {@link https://developer.dynatrace.com/design/components/typography/ExternalLink/ | `ExternalLink`}\n * component instead.\n * @public\n */\nexport const Link: <E extends ElementType = 'a'>(\n props: LinkProps<E>,\n) => ReactElement | null = /* @__PURE__ */ forwardRef(\n <E extends ElementType>(\n {\n children,\n as,\n 'data-testid': dataTestId,\n 'data-dtrum-mask': dataDtrumMask,\n 'data-dtrum-allow': dataDtrumAllow,\n className: consumerClassName,\n style: consumerStyle,\n ...remainingProps\n }: LinkProps<E>,\n ref: typeof remainingProps.ref,\n ) => {\n const { focusProps, focusClassName } = useFocusRing({\n variant: 'primary',\n isMinimal: true,\n });\n const LinkTag = as || 'a';\n\n return (\n <LinkTag\n ref={ref}\n data-testid={dataTestId}\n data-dtrum-mask={dataDtrumMask}\n data-dtrum-allow={dataDtrumAllow}\n className={clsx(focusClassName, linkCSS, consumerClassName)}\n style={consumerStyle}\n {..._mergeProps(\n // Need to cast this one as the inference of mergeProps would generate\n // a not allowed overlap. The remainingProps type is too complex due to the\n // polymorphic inheritance.\n remainingProps as Record<string, unknown>,\n focusProps,\n )}\n >\n {children}\n </LinkTag>\n );\n },\n);\n\n(Link as typeof Link & { displayName: string }).displayName = 'Link';\n"],
5
+ "mappings": "AAqDM;AArDN,OAAO,UAAU;AACjB,SAA2B,kBAAqC;AAEhE,SAAS,eAAe;AACxB;AAAA,EAKE;AAAA,OACK;AACP,SAAS,oBAAoB;AAmBtB,MAAM,OAE8B;AAAA,EACzC,CACE;AAAA,IACE;AAAA,IACA;AAAA,IACA,eAAe;AAAA,IACf,mBAAmB;AAAA,IACnB,oBAAoB;AAAA,IACpB,WAAW;AAAA,IACX,OAAO;AAAA,IACP,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,EAAE,YAAY,eAAe,IAAI,aAAa;AAAA,MAClD,SAAS;AAAA,MACT,WAAW;AAAA,IACb,CAAC;AACD,UAAM,UAAU,MAAM;AAEtB,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,eAAa;AAAA,QACb,mBAAiB;AAAA,QACjB,oBAAkB;AAAA,QAClB,WAAW,KAAK,gBAAgB,SAAS,iBAAiB;AAAA,QAC1D,OAAO;AAAA,QACN,GAAG;AAAA;AAAA;AAAA;AAAA,UAIF;AAAA,UACA;AAAA,QACF;AAAA,QAEC;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AAEC,KAA+C,cAAc;",
6
6
  "names": []
7
7
  }
@@ -1,5 +1,5 @@
1
1
  import "./Link.css";
2
- var linkCSS = "_1iksxp40-1-4-0";
2
+ var linkCSS = "_1iksxp40-1-6-0";
3
3
  export {
4
4
  linkCSS
5
5
  };
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/typography/link/Link.css.ts"],
4
- "sourcesContent": ["import './Link.css';\nexport var linkCSS = '_1iksxp40-1-4-0';"],
4
+ "sourcesContent": ["import './Link.css';\nexport var linkCSS = '_1iksxp40-1-6-0';"],
5
5
  "mappings": "AAAA,OAAO;AACA,IAAI,UAAU;",
6
6
  "names": []
7
7
  }
@@ -1,16 +1,16 @@
1
- ._16276mt0-1-4-0 {
1
+ ._16276mt0-1-6-0 {
2
2
  margin: 0;
3
3
  padding-left: var(--dt-spacings-size-40, 40px);
4
4
  }
5
- ._16276mt0-1-4-0 ._16276mt0-1-4-0 {
5
+ ._16276mt0-1-6-0 ._16276mt0-1-6-0 {
6
6
  margin-block: var(--dt-spacings-size-4, 4px);
7
7
  padding-left: var(--dt-spacings-size-28, 28px);
8
8
  }
9
- ._16276mt1-1-4-0 {
9
+ ._16276mt1-1-6-0 {
10
10
  position: relative;
11
11
  overflow-wrap: break-word;
12
12
  margin-block: var(--dt-spacings-size-2, 2px);
13
13
  }
14
- ._16276mt1-1-4-0::marker {
14
+ ._16276mt1-1-6-0::marker {
15
15
  font-weight: var(--dt-typography-text-base-emphasized-weight, 500);
16
16
  }
@@ -1,11 +1,16 @@
1
+ import { jsx } from "react/jsx-runtime";
1
2
  import clsx from "clsx";
2
- import React, { forwardRef } from "react";
3
+ import {
4
+ Children,
5
+ forwardRef,
6
+ isValidElement
7
+ } from "react";
3
8
  import { listCSS, listItemCSS } from "./List.sty.js";
4
9
  import { Text } from "../text/Text.js";
5
10
  function interleaveListItems(listItems) {
6
11
  const items = [];
7
- React.Children.forEach(listItems, (listItem) => {
8
- if (React.isValidElement(listItem)) {
12
+ Children.forEach(listItems, (listItem) => {
13
+ if (isValidElement(listItem)) {
9
14
  if (listItem.type === List) {
10
15
  if (items.length === 0) {
11
16
  items.push([listItem]);
@@ -19,13 +24,13 @@ function interleaveListItems(listItems) {
19
24
  });
20
25
  return items.map((values, index) => {
21
26
  const itemKey = `list-item-${getItemKey(values, index)}`;
22
- return /* @__PURE__ */ React.createElement("li", { key: itemKey, className: listItemCSS }, values);
27
+ return /* @__PURE__ */ jsx("li", { className: listItemCSS, children: values }, itemKey);
23
28
  });
24
29
  }
25
30
  function getItemKey(values, index) {
26
31
  const isArray = Array.isArray(values);
27
32
  const value = isArray ? values?.[0] : values;
28
- if (React.isValidElement(value)) {
33
+ if (isValidElement(value)) {
29
34
  if (value.key) {
30
35
  return value.key;
31
36
  } else if (value.props && value.props.children) {
@@ -53,7 +58,7 @@ const List = /* @__PURE__ */ forwardRef(
53
58
  style: consumerStyle,
54
59
  ...remainingProps
55
60
  } = props;
56
- return /* @__PURE__ */ React.createElement(
61
+ return /* @__PURE__ */ jsx(
57
62
  Text,
58
63
  {
59
64
  ref,
@@ -68,9 +73,9 @@ const List = /* @__PURE__ */ forwardRef(
68
73
  "data-dtrum-allow": dataDtrumAllow,
69
74
  className: clsx(listCSS, consumerClassName),
70
75
  style: consumerStyle,
71
- ...remainingProps
72
- },
73
- interleaveListItems(children)
76
+ ...remainingProps,
77
+ children: interleaveListItems(children)
78
+ }
74
79
  );
75
80
  }
76
81
  );
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/typography/list/List.tsx"],
4
- "sourcesContent": ["import clsx from 'clsx';\nimport React, { forwardRef } from 'react';\n\nimport { listCSS, listItemCSS } from './List.sty.js';\nimport { type DataTestId } from '../../core/types/data-props.js';\nimport { type MaskingProps } from '../../core/types/masking-props.js';\nimport { type StylingProps } from '../../core/types/styling-props.js';\nimport { type WithChildren } from '../../core/types/with-children.js';\nimport { Text } from '../text/Text.js';\n\n/**\n * The props for the Link component.\n * @public\n */\nexport interface ListProps<TOrdered extends boolean = false>\n extends WithChildren,\n StylingProps,\n DataTestId,\n MaskingProps {\n /**\n * Whether the List is ordered or not. This changes whether numbers or bullets are used.\n * @defaultValue false\n */\n ordered?: TOrdered;\n /**\n * Sets the text style for the List.\n * @defaultValue 'base'\n */\n textStyle?: 'base' | 'base-emphasized' | 'small' | 'small-emphasized';\n /**\n * Sets the text style for the List.\n * @defaultValue 'text'\n */\n fontStyle?: 'text' | 'code';\n /**\n * Sets the starting number of the first item in an ordered list.\n * The value is always treated as an integer (floor).\n * @defaultValue 1\n */\n start?: number;\n}\n\n/** Maps a list of (potentially) nested list items to HTML list structure. */\nfunction interleaveListItems(listItems: React.ReactNode) {\n const items: React.ReactNode[][] = [];\n\n React.Children.forEach(listItems, (listItem) => {\n if (React.isValidElement(listItem)) {\n if (listItem.type === List) {\n if (items.length === 0) {\n items.push([listItem]);\n } else {\n items[items.length - 1].push(listItem);\n }\n } else {\n items.push([listItem]);\n }\n }\n });\n\n return items.map((values, index) => {\n const itemKey = `list-item-${getItemKey(values, index)}`;\n return (\n <li key={itemKey} className={listItemCSS}>\n {values}\n </li>\n );\n });\n}\n\n/**\n * Generates a key for a list item. We try to avoid\n * generating [Object object] by looking down levels\n * recursively. If there is an existing key defined in\n * a descendant uses that as part of the key otherwise\n * if we get a string value, use that. Otherwise uses\n * the index if nothing was found.\n * @param values - nodes inside the list item\n * @param index - current zero based index\n * @returns a key generated for the item\n */\nfunction getItemKey(values: React.ReactNode[], index: number): string | number {\n const isArray = Array.isArray(values);\n const value = isArray ? values?.[0] : values;\n if (React.isValidElement(value)) {\n if (value.key) {\n return value.key;\n } else if (value.props && value.props.children) {\n return getItemKey(value.props.children, index);\n }\n return value as unknown as string | number;\n }\n\n if (value === undefined) {\n return index;\n }\n\n return value as unknown as string | number;\n}\n\n/**\n * The `List` component groups a set of related content in a list and can be arbitrarily nested.\n * List items are preceded by either a consecutive number (for ordered lists) or a bullet point\n * (for unordered lists).\n * @public\n */\nexport const List = /* @__PURE__ */ forwardRef(\n <TOrdered extends boolean = false>(\n props: ListProps<TOrdered>,\n ref: React.ForwardedRef<\n TOrdered extends true ? HTMLOListElement : HTMLUListElement\n >,\n ) => {\n const {\n children,\n ordered = undefined,\n textStyle,\n fontStyle,\n start = 1,\n 'data-testid': dataTestId,\n 'data-dtrum-mask': dataDtrumMask,\n 'data-dtrum-allow': dataDtrumAllow,\n className: consumerClassName,\n style: consumerStyle,\n ...remainingProps\n } = props;\n\n return (\n <Text\n ref={ref}\n as={ordered ? 'ol' : 'ul'}\n {...(ordered && {\n start,\n })}\n textStyle={textStyle}\n fontStyle={fontStyle}\n data-testid={dataTestId}\n data-dtrum-mask={dataDtrumMask}\n data-dtrum-allow={dataDtrumAllow}\n className={clsx(listCSS, consumerClassName)}\n style={consumerStyle}\n {...remainingProps}\n >\n {interleaveListItems(children)}\n </Text>\n );\n },\n);\n\n(List as typeof List & { displayName: string }).displayName = 'List';\n"],
5
- "mappings": "AAAA,OAAO,UAAU;AACjB,OAAO,SAAS,kBAAkB;AAElC,SAAS,SAAS,mBAAmB;AAKrC,SAAS,YAAY;AAmCrB,SAAS,oBAAoB,WAA4B;AACvD,QAAM,QAA6B,CAAC;AAEpC,QAAM,SAAS,QAAQ,WAAW,CAAC,aAAa;AAC9C,QAAI,MAAM,eAAe,QAAQ,GAAG;AAClC,UAAI,SAAS,SAAS,MAAM;AAC1B,YAAI,MAAM,WAAW,GAAG;AACtB,gBAAM,KAAK,CAAC,QAAQ,CAAC;AAAA,QACvB,OAAO;AACL,gBAAM,MAAM,SAAS,CAAC,EAAE,KAAK,QAAQ;AAAA,QACvC;AAAA,MACF,OAAO;AACL,cAAM,KAAK,CAAC,QAAQ,CAAC;AAAA,MACvB;AAAA,IACF;AAAA,EACF,CAAC;AAED,SAAO,MAAM,IAAI,CAAC,QAAQ,UAAU;AAClC,UAAM,UAAU,aAAa,WAAW,QAAQ,KAAK,CAAC;AACtD,WACE,oCAAC,QAAG,KAAK,SAAS,WAAW,eAC1B,MACH;AAAA,EAEJ,CAAC;AACH;AAaA,SAAS,WAAW,QAA2B,OAAgC;AAC7E,QAAM,UAAU,MAAM,QAAQ,MAAM;AACpC,QAAM,QAAQ,UAAU,SAAS,CAAC,IAAI;AACtC,MAAI,MAAM,eAAe,KAAK,GAAG;AAC/B,QAAI,MAAM,KAAK;AACb,aAAO,MAAM;AAAA,IACf,WAAW,MAAM,SAAS,MAAM,MAAM,UAAU;AAC9C,aAAO,WAAW,MAAM,MAAM,UAAU,KAAK;AAAA,IAC/C;AACA,WAAO;AAAA,EACT;AAEA,MAAI,UAAU,QAAW;AACvB,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAQO,MAAM,OAAuB;AAAA,EAClC,CACE,OACA,QAGG;AACH,UAAM;AAAA,MACJ;AAAA,MACA,UAAU;AAAA,MACV;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,MACR,eAAe;AAAA,MACf,mBAAmB;AAAA,MACnB,oBAAoB;AAAA,MACpB,WAAW;AAAA,MACX,OAAO;AAAA,MACP,GAAG;AAAA,IACL,IAAI;AAEJ,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,IAAI,UAAU,OAAO;AAAA,QACpB,GAAI,WAAW;AAAA,UACd;AAAA,QACF;AAAA,QACA;AAAA,QACA;AAAA,QACA,eAAa;AAAA,QACb,mBAAiB;AAAA,QACjB,oBAAkB;AAAA,QAClB,WAAW,KAAK,SAAS,iBAAiB;AAAA,QAC1C,OAAO;AAAA,QACN,GAAG;AAAA;AAAA,MAEH,oBAAoB,QAAQ;AAAA,IAC/B;AAAA,EAEJ;AACF;AAEC,KAA+C,cAAc;",
4
+ "sourcesContent": ["import clsx from 'clsx';\nimport {\n Children,\n forwardRef,\n isValidElement,\n type ForwardedRef,\n type PropsWithChildren,\n type ReactNode,\n} from 'react';\n\nimport { listCSS, listItemCSS } from './List.sty.js';\nimport { type DataTestId } from '../../core/types/data-props.js';\nimport { type MaskingProps } from '../../core/types/masking-props.js';\nimport { type StylingProps } from '../../core/types/styling-props.js';\nimport { type WithChildren } from '../../core/types/with-children.js';\nimport { Text } from '../text/Text.js';\n\n/**\n * The props for the Link component.\n * @public\n */\nexport interface ListProps<TOrdered extends boolean = false>\n extends WithChildren,\n StylingProps,\n DataTestId,\n MaskingProps {\n /**\n * Whether the List is ordered or not. This changes whether numbers or bullets are used.\n * @defaultValue false\n */\n ordered?: TOrdered;\n /**\n * Sets the text style for the List.\n * @defaultValue 'base'\n */\n textStyle?: 'base' | 'base-emphasized' | 'small' | 'small-emphasized';\n /**\n * Sets the text style for the List.\n * @defaultValue 'text'\n */\n fontStyle?: 'text' | 'code';\n /**\n * Sets the starting number of the first item in an ordered list.\n * The value is always treated as an integer (floor).\n * @defaultValue 1\n */\n start?: number;\n}\n\n/** Maps a list of (potentially) nested list items to HTML list structure. */\nfunction interleaveListItems(listItems: ReactNode) {\n const items: ReactNode[][] = [];\n\n Children.forEach(listItems, (listItem) => {\n if (isValidElement(listItem)) {\n if (listItem.type === List) {\n if (items.length === 0) {\n items.push([listItem]);\n } else {\n items[items.length - 1].push(listItem);\n }\n } else {\n items.push([listItem]);\n }\n }\n });\n\n return items.map((values, index) => {\n const itemKey = `list-item-${getItemKey(values, index)}`;\n return (\n <li key={itemKey} className={listItemCSS}>\n {values}\n </li>\n );\n });\n}\n\n/**\n * Generates a key for a list item. We try to avoid\n * generating [Object object] by looking down levels\n * recursively. If there is an existing key defined in\n * a descendant uses that as part of the key otherwise\n * if we get a string value, use that. Otherwise uses\n * the index if nothing was found.\n * @param values - nodes inside the list item\n * @param index - current zero based index\n * @returns a key generated for the item\n */\nfunction getItemKey(values: ReactNode, index: number): string | number {\n const isArray = Array.isArray(values);\n const value = isArray ? values?.[0] : values;\n if (isValidElement<PropsWithChildren>(value)) {\n if (value.key) {\n return value.key;\n } else if (value.props && value.props.children) {\n return getItemKey(value.props.children, index);\n }\n return value as unknown as string | number;\n }\n\n if (value === undefined) {\n return index;\n }\n\n return value as unknown as string | number;\n}\n\n/**\n * The `List` component groups a set of related content in a list and can be arbitrarily nested.\n * List items are preceded by either a consecutive number (for ordered lists) or a bullet point\n * (for unordered lists).\n * @public\n */\nexport const List = /* @__PURE__ */ forwardRef(\n <TOrdered extends boolean = false>(\n props: ListProps<TOrdered>,\n ref: ForwardedRef<\n TOrdered extends true ? HTMLOListElement : HTMLUListElement\n >,\n ) => {\n const {\n children,\n ordered = undefined,\n textStyle,\n fontStyle,\n start = 1,\n 'data-testid': dataTestId,\n 'data-dtrum-mask': dataDtrumMask,\n 'data-dtrum-allow': dataDtrumAllow,\n className: consumerClassName,\n style: consumerStyle,\n ...remainingProps\n } = props;\n\n return (\n <Text\n ref={ref}\n as={ordered ? 'ol' : 'ul'}\n {...(ordered && {\n start,\n })}\n textStyle={textStyle}\n fontStyle={fontStyle}\n data-testid={dataTestId}\n data-dtrum-mask={dataDtrumMask}\n data-dtrum-allow={dataDtrumAllow}\n className={clsx(listCSS, consumerClassName)}\n style={consumerStyle}\n {...remainingProps}\n >\n {interleaveListItems(children)}\n </Text>\n );\n },\n);\n\n(List as typeof List & { displayName: string }).displayName = 'List';\n"],
5
+ "mappings": "AAsEM;AAtEN,OAAO,UAAU;AACjB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,OAIK;AAEP,SAAS,SAAS,mBAAmB;AAKrC,SAAS,YAAY;AAmCrB,SAAS,oBAAoB,WAAsB;AACjD,QAAM,QAAuB,CAAC;AAE9B,WAAS,QAAQ,WAAW,CAAC,aAAa;AACxC,QAAI,eAAe,QAAQ,GAAG;AAC5B,UAAI,SAAS,SAAS,MAAM;AAC1B,YAAI,MAAM,WAAW,GAAG;AACtB,gBAAM,KAAK,CAAC,QAAQ,CAAC;AAAA,QACvB,OAAO;AACL,gBAAM,MAAM,SAAS,CAAC,EAAE,KAAK,QAAQ;AAAA,QACvC;AAAA,MACF,OAAO;AACL,cAAM,KAAK,CAAC,QAAQ,CAAC;AAAA,MACvB;AAAA,IACF;AAAA,EACF,CAAC;AAED,SAAO,MAAM,IAAI,CAAC,QAAQ,UAAU;AAClC,UAAM,UAAU,aAAa,WAAW,QAAQ,KAAK,CAAC;AACtD,WACE,oBAAC,QAAiB,WAAW,aAC1B,oBADM,OAET;AAAA,EAEJ,CAAC;AACH;AAaA,SAAS,WAAW,QAAmB,OAAgC;AACrE,QAAM,UAAU,MAAM,QAAQ,MAAM;AACpC,QAAM,QAAQ,UAAU,SAAS,CAAC,IAAI;AACtC,MAAI,eAAkC,KAAK,GAAG;AAC5C,QAAI,MAAM,KAAK;AACb,aAAO,MAAM;AAAA,IACf,WAAW,MAAM,SAAS,MAAM,MAAM,UAAU;AAC9C,aAAO,WAAW,MAAM,MAAM,UAAU,KAAK;AAAA,IAC/C;AACA,WAAO;AAAA,EACT;AAEA,MAAI,UAAU,QAAW;AACvB,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAQO,MAAM,OAAuB;AAAA,EAClC,CACE,OACA,QAGG;AACH,UAAM;AAAA,MACJ;AAAA,MACA,UAAU;AAAA,MACV;AAAA,MACA;AAAA,MACA,QAAQ;AAAA,MACR,eAAe;AAAA,MACf,mBAAmB;AAAA,MACnB,oBAAoB;AAAA,MACpB,WAAW;AAAA,MACX,OAAO;AAAA,MACP,GAAG;AAAA,IACL,IAAI;AAEJ,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,IAAI,UAAU,OAAO;AAAA,QACpB,GAAI,WAAW;AAAA,UACd;AAAA,QACF;AAAA,QACA;AAAA,QACA;AAAA,QACA,eAAa;AAAA,QACb,mBAAiB;AAAA,QACjB,oBAAkB;AAAA,QAClB,WAAW,KAAK,SAAS,iBAAiB;AAAA,QAC1C,OAAO;AAAA,QACN,GAAG;AAAA,QAEH,8BAAoB,QAAQ;AAAA;AAAA,IAC/B;AAAA,EAEJ;AACF;AAEC,KAA+C,cAAc;",
6
6
  "names": []
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import "./List.css";
2
- var listCSS = "_16276mt0-1-4-0";
3
- var listItemCSS = "_16276mt1-1-4-0";
2
+ var listCSS = "_16276mt0-1-6-0";
3
+ var listItemCSS = "_16276mt1-1-6-0";
4
4
  export {
5
5
  listCSS,
6
6
  listItemCSS
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/typography/list/List.css.ts"],
4
- "sourcesContent": ["import './List.css';\nexport var listCSS = '_16276mt0-1-4-0';\nexport var listItemCSS = '_16276mt1-1-4-0';"],
4
+ "sourcesContent": ["import './List.css';\nexport var listCSS = '_16276mt0-1-6-0';\nexport var listItemCSS = '_16276mt1-1-6-0';"],
5
5
  "mappings": "AAAA,OAAO;AACA,IAAI,UAAU;AACd,IAAI,cAAc;",
6
6
  "names": []
7
7
  }