@dynatrace/strato-components 0.84.31 → 0.84.51

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 (404) hide show
  1. package/content/index.d.ts +7 -0
  2. package/content/index.js +25 -0
  3. package/content/progress/ProgressBar.css +52 -0
  4. package/content/progress/ProgressBar.d.ts +56 -0
  5. package/content/progress/ProgressBar.js +191 -0
  6. package/content/progress/ProgressBar.sty.d.ts +42 -0
  7. package/content/progress/ProgressBar.sty.js +28 -0
  8. package/content/progress/ProgressBarIcon.css +5 -0
  9. package/content/progress/ProgressBarIcon.d.ts +15 -0
  10. package/content/progress/ProgressBarIcon.js +68 -0
  11. package/content/progress/ProgressBarIcon.sty.d.ts +1 -0
  12. package/content/progress/ProgressBarIcon.sty.js +25 -0
  13. package/content/progress/ProgressBarLabel.css +9 -0
  14. package/content/progress/ProgressBarLabel.d.ts +15 -0
  15. package/content/progress/ProgressBarLabel.js +75 -0
  16. package/content/progress/ProgressBarLabel.sty.d.ts +13 -0
  17. package/content/progress/ProgressBarLabel.sty.js +26 -0
  18. package/content/progress/ProgressBarValue.css +28 -0
  19. package/content/progress/ProgressBarValue.d.ts +15 -0
  20. package/content/progress/ProgressBarValue.js +72 -0
  21. package/content/progress/ProgressBarValue.sty.d.ts +34 -0
  22. package/content/progress/ProgressBarValue.sty.js +26 -0
  23. package/content/progress/ProgressCircle.css +52 -0
  24. package/content/progress/ProgressCircle.d.ts +51 -0
  25. package/content/progress/ProgressCircle.js +174 -0
  26. package/content/progress/ProgressCircle.sty.d.ts +41 -0
  27. package/content/progress/ProgressCircle.sty.js +37 -0
  28. package/content/progress/contexts/SharedProgressBarPropsContext.d.ts +9 -0
  29. package/content/progress/contexts/SharedProgressBarPropsContext.js +38 -0
  30. package/content/progress/hooks/useProgressAriaProps.d.ts +38 -0
  31. package/content/progress/hooks/useProgressAriaProps.js +63 -0
  32. package/content/progress/hooks/useProgressBarPropsContext.d.ts +2 -0
  33. package/content/progress/hooks/useProgressBarPropsContext.js +32 -0
  34. package/content/progress/utils.d.ts +2 -0
  35. package/content/progress/utils.js +50 -0
  36. package/core/components/app-root/AppRoot.d.ts +4 -4
  37. package/core/hooks/useAriaLabelingProps.d.ts +6 -0
  38. package/core/hooks/useAriaLabelingProps.js +30 -0
  39. package/core/hooks/useCurrentTheme.d.ts +1 -1
  40. package/core/hooks/useFontsUpdated.d.ts +9 -0
  41. package/core/hooks/useFontsUpdated.js +51 -0
  42. package/core/hooks/useId.d.ts +12 -0
  43. package/core/hooks/useId.js +32 -0
  44. package/core/hooks/useMergeRefs.d.ts +7 -0
  45. package/core/hooks/useMergeRefs.js +34 -0
  46. package/core/hooks/useSafeForwardProps.d.ts +10 -0
  47. package/core/hooks/useSafeForwardProps.js +34 -0
  48. package/core/index.d.ts +12 -0
  49. package/core/index.js +12 -0
  50. package/core/styles/focusRing.css +88 -0
  51. package/core/styles/focusRing.sty.d.ts +96 -0
  52. package/core/styles/focusRing.sty.js +27 -0
  53. package/core/styles/useFocusRing.d.ts +49 -0
  54. package/core/styles/useFocusRing.js +83 -0
  55. package/core/types/a11y-props.d.ts +26 -0
  56. package/core/types/a11y-props.js +15 -0
  57. package/core/types/data-props.d.ts +1 -1
  58. package/core/types/dom.d.ts +8 -0
  59. package/core/types/dom.js +15 -0
  60. package/core/types/heading.d.ts +9 -0
  61. package/core/types/heading.js +15 -0
  62. package/core/types/masking-props.d.ts +2 -1
  63. package/core/types/polymorph.d.ts +28 -0
  64. package/core/types/polymorph.js +15 -0
  65. package/core/types/role-variant.d.ts +10 -0
  66. package/core/types/role-variant.js +30 -0
  67. package/core/types/styling-props.d.ts +1 -1
  68. package/core/types/with-children.d.ts +1 -1
  69. package/core/utils/_is-string-children.d.ts +6 -0
  70. package/core/utils/_is-string-children.js +44 -0
  71. package/core/utils/colorUtils.css +80 -0
  72. package/core/utils/colorUtils.sty.d.ts +48 -0
  73. package/core/utils/colorUtils.sty.js +27 -0
  74. package/core/utils/isBrowser.d.ts +1 -1
  75. package/core/utils/merge-props.d.ts +4 -5
  76. package/core/utils/seed-random.d.ts +5 -0
  77. package/core/utils/seed-random.js +34 -0
  78. package/core/utils/uuidv4.d.ts +5 -0
  79. package/core/utils/uuidv4.js +31 -0
  80. package/esm/content/index.js +7 -0
  81. package/esm/content/index.js.map +7 -0
  82. package/esm/content/progress/ProgressBar.css +52 -0
  83. package/esm/content/progress/ProgressBar.js +163 -0
  84. package/esm/content/progress/ProgressBar.js.map +7 -0
  85. package/esm/content/progress/ProgressBar.sty.js +10 -0
  86. package/esm/content/progress/ProgressBar.sty.js.map +7 -0
  87. package/esm/content/progress/ProgressBarIcon.css +5 -0
  88. package/esm/content/progress/ProgressBarIcon.js +40 -0
  89. package/esm/content/progress/ProgressBarIcon.js.map +7 -0
  90. package/esm/content/progress/ProgressBarIcon.sty.js +7 -0
  91. package/esm/content/progress/ProgressBarIcon.sty.js.map +7 -0
  92. package/esm/content/progress/ProgressBarLabel.css +9 -0
  93. package/esm/content/progress/ProgressBarLabel.js +47 -0
  94. package/esm/content/progress/ProgressBarLabel.js.map +7 -0
  95. package/esm/content/progress/ProgressBarLabel.sty.js +8 -0
  96. package/esm/content/progress/ProgressBarLabel.sty.js.map +7 -0
  97. package/esm/content/progress/ProgressBarValue.css +28 -0
  98. package/esm/content/progress/ProgressBarValue.js +44 -0
  99. package/esm/content/progress/ProgressBarValue.js.map +7 -0
  100. package/esm/content/progress/ProgressBarValue.sty.js +8 -0
  101. package/esm/content/progress/ProgressBarValue.sty.js.map +7 -0
  102. package/esm/content/progress/ProgressCircle.css +52 -0
  103. package/esm/content/progress/ProgressCircle.js +153 -0
  104. package/esm/content/progress/ProgressCircle.js.map +7 -0
  105. package/esm/content/progress/ProgressCircle.sty.js +19 -0
  106. package/esm/content/progress/ProgressCircle.sty.js.map +7 -0
  107. package/esm/content/progress/contexts/SharedProgressBarPropsContext.js +10 -0
  108. package/esm/content/progress/contexts/SharedProgressBarPropsContext.js.map +7 -0
  109. package/esm/content/progress/hooks/useProgressAriaProps.js +45 -0
  110. package/esm/content/progress/hooks/useProgressAriaProps.js.map +7 -0
  111. package/esm/content/progress/hooks/useProgressBarPropsContext.js +16 -0
  112. package/esm/content/progress/hooks/useProgressBarPropsContext.js.map +7 -0
  113. package/esm/content/progress/utils.js +22 -0
  114. package/esm/content/progress/utils.js.map +7 -0
  115. package/esm/core/components/app-root/AppRoot.js.map +1 -1
  116. package/esm/core/hooks/useAriaLabelingProps.js +12 -0
  117. package/esm/core/hooks/useAriaLabelingProps.js.map +7 -0
  118. package/esm/core/hooks/useCurrentTheme.js.map +1 -1
  119. package/esm/core/hooks/useFontsUpdated.js +33 -0
  120. package/esm/core/hooks/useFontsUpdated.js.map +7 -0
  121. package/esm/core/hooks/useId.js +14 -0
  122. package/esm/core/hooks/useId.js.map +7 -0
  123. package/esm/core/hooks/useMergeRefs.js +16 -0
  124. package/esm/core/hooks/useMergeRefs.js.map +7 -0
  125. package/esm/core/hooks/useSafeForwardProps.js +16 -0
  126. package/esm/core/hooks/useSafeForwardProps.js.map +7 -0
  127. package/esm/core/index.js +12 -0
  128. package/esm/core/index.js.map +2 -2
  129. package/esm/core/styles/focusRing.css +88 -0
  130. package/esm/core/styles/focusRing.sty.js +9 -0
  131. package/esm/core/styles/focusRing.sty.js.map +7 -0
  132. package/esm/core/styles/useFocusRing.js +69 -0
  133. package/esm/core/styles/useFocusRing.js.map +7 -0
  134. package/esm/core/types/a11y-props.js +1 -0
  135. package/esm/core/types/a11y-props.js.map +7 -0
  136. package/esm/core/types/dom.js +1 -0
  137. package/esm/core/types/dom.js.map +7 -0
  138. package/esm/core/types/heading.js +1 -0
  139. package/esm/core/types/heading.js.map +7 -0
  140. package/esm/core/types/polymorph.js +1 -0
  141. package/esm/core/types/polymorph.js.map +7 -0
  142. package/esm/core/types/role-variant.js +12 -0
  143. package/esm/core/types/role-variant.js.map +7 -0
  144. package/esm/core/utils/_is-string-children.js +16 -0
  145. package/esm/core/utils/_is-string-children.js.map +7 -0
  146. package/esm/core/utils/colorUtils.css +80 -0
  147. package/esm/core/utils/colorUtils.sty.js +9 -0
  148. package/esm/core/utils/colorUtils.sty.js.map +7 -0
  149. package/esm/core/utils/isBrowser.js.map +1 -1
  150. package/esm/core/utils/merge-props.js.map +2 -2
  151. package/esm/core/utils/seed-random.js +16 -0
  152. package/esm/core/utils/seed-random.js.map +7 -0
  153. package/esm/core/utils/uuidv4.js +13 -0
  154. package/esm/core/utils/uuidv4.js.map +7 -0
  155. package/esm/index.js +4 -0
  156. package/esm/index.js.map +2 -2
  157. package/esm/layouts/Divider/Divider.css +23 -0
  158. package/esm/layouts/Divider/Divider.js +39 -0
  159. package/esm/layouts/Divider/Divider.js.map +7 -0
  160. package/esm/layouts/Divider/Divider.sty.js +8 -0
  161. package/esm/layouts/Divider/Divider.sty.js.map +7 -0
  162. package/esm/layouts/container/Container.css +8 -0
  163. package/esm/layouts/container/Container.js +55 -0
  164. package/esm/layouts/container/Container.js.map +7 -0
  165. package/esm/layouts/container/Container.sty.js +7 -0
  166. package/esm/layouts/container/Container.sty.js.map +7 -0
  167. package/esm/layouts/flex/Flex.js +46 -0
  168. package/esm/layouts/flex/Flex.js.map +7 -0
  169. package/esm/layouts/grid/Grid.js +46 -0
  170. package/esm/layouts/grid/Grid.js.map +7 -0
  171. package/esm/layouts/index.js +11 -0
  172. package/esm/layouts/index.js.map +7 -0
  173. package/esm/styles/colorUtils.css +80 -0
  174. package/esm/styles/colorUtils.sty.js +9 -0
  175. package/esm/styles/colorUtils.sty.js.map +7 -0
  176. package/esm/styles/container.css +64 -0
  177. package/esm/styles/container.sty.js +9 -0
  178. package/esm/styles/container.sty.js.map +7 -0
  179. package/esm/styles/ellipsis.css +5 -0
  180. package/esm/styles/ellipsis.sty.js +6 -0
  181. package/esm/styles/ellipsis.sty.js.map +7 -0
  182. package/esm/styles/extract-util.js +15 -0
  183. package/esm/styles/extract-util.js.map +7 -0
  184. package/esm/styles/getFlexStyles.js +69 -0
  185. package/esm/styles/getFlexStyles.js.map +7 -0
  186. package/esm/styles/getGapSprinkles.js +18 -0
  187. package/esm/styles/getGapSprinkles.js.map +7 -0
  188. package/esm/styles/getGridFlexPositionSprinkles.js +25 -0
  189. package/esm/styles/getGridFlexPositionSprinkles.js.map +7 -0
  190. package/esm/styles/getGridStyles.js +78 -0
  191. package/esm/styles/getGridStyles.js.map +7 -0
  192. package/esm/styles/getLayoutSizeStyles.js +21 -0
  193. package/esm/styles/getLayoutSizeStyles.js.map +7 -0
  194. package/esm/styles/getSpacingSprinkles.js +50 -0
  195. package/esm/styles/getSpacingSprinkles.js.map +7 -0
  196. package/esm/styles/index.js +49 -0
  197. package/esm/styles/index.js.map +7 -0
  198. package/esm/styles/safe-sprinkles.js +17 -0
  199. package/esm/styles/safe-sprinkles.js.map +7 -0
  200. package/esm/styles/sprinkle-properties.js +137 -0
  201. package/esm/styles/sprinkle-properties.js.map +7 -0
  202. package/esm/styles/sprinkles.css +786 -0
  203. package/esm/styles/sprinkles.sty.js +9 -0
  204. package/esm/styles/sprinkles.sty.js.map +7 -0
  205. package/esm/styles/textStyle.css +64 -0
  206. package/esm/styles/textStyle.sty.js +7 -0
  207. package/esm/styles/textStyle.sty.js.map +7 -0
  208. package/esm/typography/BlockQuote/Blockquote.css +17 -0
  209. package/esm/typography/BlockQuote/Blockquote.js +34 -0
  210. package/esm/typography/BlockQuote/Blockquote.js.map +7 -0
  211. package/esm/typography/BlockQuote/Blockquote.sty.js +6 -0
  212. package/esm/typography/BlockQuote/Blockquote.sty.js.map +7 -0
  213. package/esm/typography/Code/Code.css +16 -0
  214. package/esm/typography/Code/Code.js +34 -0
  215. package/esm/typography/Code/Code.js.map +7 -0
  216. package/esm/typography/Code/Code.sty.js +6 -0
  217. package/esm/typography/Code/Code.sty.js.map +7 -0
  218. package/esm/typography/Emphasis/Emphasis.css +4 -0
  219. package/esm/typography/Emphasis/Emphasis.js +34 -0
  220. package/esm/typography/Emphasis/Emphasis.js.map +7 -0
  221. package/esm/typography/Emphasis/Emphasis.sty.js +6 -0
  222. package/esm/typography/Emphasis/Emphasis.sty.js.map +7 -0
  223. package/esm/typography/ExternalLink/ExternalLink.css +28 -0
  224. package/esm/typography/ExternalLink/ExternalLink.js +56 -0
  225. package/esm/typography/ExternalLink/ExternalLink.js.map +7 -0
  226. package/esm/typography/ExternalLink/ExternalLink.sty.js +6 -0
  227. package/esm/typography/ExternalLink/ExternalLink.sty.js.map +7 -0
  228. package/esm/typography/Heading/Heading.css +54 -0
  229. package/esm/typography/Heading/Heading.js +36 -0
  230. package/esm/typography/Heading/Heading.js.map +7 -0
  231. package/esm/typography/Heading/Heading.sty.js +7 -0
  232. package/esm/typography/Heading/Heading.sty.js.map +7 -0
  233. package/esm/typography/Highlight/Highlight.css +4 -0
  234. package/esm/typography/Highlight/Highlight.js +111 -0
  235. package/esm/typography/Highlight/Highlight.js.map +7 -0
  236. package/esm/typography/Highlight/Highlight.sty.js +6 -0
  237. package/esm/typography/Highlight/Highlight.sty.js.map +7 -0
  238. package/esm/typography/Link/Link.css +15 -0
  239. package/esm/typography/Link/Link.js +49 -0
  240. package/esm/typography/Link/Link.js.map +7 -0
  241. package/esm/typography/Link/Link.sty.js +6 -0
  242. package/esm/typography/Link/Link.sty.js.map +7 -0
  243. package/esm/typography/List/List.css +16 -0
  244. package/esm/typography/List/List.js +81 -0
  245. package/esm/typography/List/List.js.map +7 -0
  246. package/esm/typography/List/List.sty.js +8 -0
  247. package/esm/typography/List/List.sty.js.map +7 -0
  248. package/esm/typography/Paragraph/Paragraph.css +19 -0
  249. package/esm/typography/Paragraph/Paragraph.js +49 -0
  250. package/esm/typography/Paragraph/Paragraph.js.map +7 -0
  251. package/esm/typography/Paragraph/Paragraph.sty.js +7 -0
  252. package/esm/typography/Paragraph/Paragraph.sty.js.map +7 -0
  253. package/esm/typography/Strikethrough/Strikethrough.css +5 -0
  254. package/esm/typography/Strikethrough/Strikethrough.js +32 -0
  255. package/esm/typography/Strikethrough/Strikethrough.js.map +7 -0
  256. package/esm/typography/Strikethrough/Strikethrough.sty.js +6 -0
  257. package/esm/typography/Strikethrough/Strikethrough.sty.js.map +7 -0
  258. package/esm/typography/Strong/Strong.css +4 -0
  259. package/esm/typography/Strong/Strong.js +34 -0
  260. package/esm/typography/Strong/Strong.js.map +7 -0
  261. package/esm/typography/Strong/Strong.sty.js +6 -0
  262. package/esm/typography/Strong/Strong.sty.js.map +7 -0
  263. package/esm/typography/Text/Text.css +18 -0
  264. package/esm/typography/Text/Text.js +43 -0
  265. package/esm/typography/Text/Text.js.map +7 -0
  266. package/esm/typography/Text/Text.sty.js +7 -0
  267. package/esm/typography/Text/Text.sty.js.map +7 -0
  268. package/esm/typography/TextEllipsis/TextEllipsis.css +22 -0
  269. package/esm/typography/TextEllipsis/TextEllipsis.js +143 -0
  270. package/esm/typography/TextEllipsis/TextEllipsis.js.map +7 -0
  271. package/esm/typography/TextEllipsis/TextEllipsis.sty.js +7 -0
  272. package/esm/typography/TextEllipsis/TextEllipsis.sty.js.map +7 -0
  273. package/esm/typography/index.js +43 -0
  274. package/esm/typography/index.js.map +7 -0
  275. package/esm/typography/utils.js +101 -0
  276. package/esm/typography/utils.js.map +7 -0
  277. package/index.d.ts +4 -0
  278. package/index.js +4 -0
  279. package/lang/en.json +12 -0
  280. package/lang/uncompiled/en.json +10 -1
  281. package/layouts/Divider/Divider.css +23 -0
  282. package/layouts/Divider/Divider.d.ts +39 -0
  283. package/layouts/Divider/Divider.js +67 -0
  284. package/layouts/Divider/Divider.sty.d.ts +16 -0
  285. package/layouts/Divider/Divider.sty.js +26 -0
  286. package/layouts/container/Container.css +8 -0
  287. package/layouts/container/Container.d.ts +34 -0
  288. package/layouts/container/Container.js +80 -0
  289. package/layouts/container/Container.sty.d.ts +1 -0
  290. package/layouts/container/Container.sty.js +25 -0
  291. package/layouts/flex/Flex.d.ts +23 -0
  292. package/layouts/flex/Flex.js +72 -0
  293. package/layouts/grid/Grid.d.ts +23 -0
  294. package/layouts/grid/Grid.js +72 -0
  295. package/layouts/index.d.ts +6 -0
  296. package/layouts/index.js +29 -0
  297. package/package.json +34 -4
  298. package/styles/colorUtils.css +80 -0
  299. package/styles/colorUtils.sty.d.ts +56 -0
  300. package/styles/colorUtils.sty.js +27 -0
  301. package/styles/container.css +64 -0
  302. package/styles/container.sty.d.ts +54 -0
  303. package/styles/container.sty.js +27 -0
  304. package/styles/ellipsis.css +5 -0
  305. package/styles/ellipsis.sty.d.ts +5 -0
  306. package/styles/ellipsis.sty.js +24 -0
  307. package/styles/extract-util.d.ts +9 -0
  308. package/styles/extract-util.js +33 -0
  309. package/styles/getFlexStyles.d.ts +64 -0
  310. package/styles/getFlexStyles.js +95 -0
  311. package/styles/getGapSprinkles.d.ts +19 -0
  312. package/styles/getGapSprinkles.js +36 -0
  313. package/styles/getGridFlexPositionSprinkles.d.ts +35 -0
  314. package/styles/getGridFlexPositionSprinkles.js +43 -0
  315. package/styles/getGridStyles.d.ts +74 -0
  316. package/styles/getGridStyles.js +100 -0
  317. package/styles/getLayoutSizeStyles.d.ts +29 -0
  318. package/styles/getLayoutSizeStyles.js +39 -0
  319. package/styles/getSpacingSprinkles.d.ts +74 -0
  320. package/styles/getSpacingSprinkles.js +68 -0
  321. package/styles/index.d.ts +11 -0
  322. package/styles/index.js +47 -0
  323. package/styles/safe-sprinkles.d.ts +6 -0
  324. package/styles/safe-sprinkles.js +35 -0
  325. package/styles/sprinkle-properties.d.ts +257 -0
  326. package/styles/sprinkle-properties.js +165 -0
  327. package/styles/sprinkles.css +786 -0
  328. package/styles/sprinkles.sty.d.ts +913 -0
  329. package/styles/sprinkles.sty.js +27 -0
  330. package/styles/textStyle.css +64 -0
  331. package/styles/textStyle.sty.d.ts +13 -0
  332. package/styles/textStyle.sty.js +25 -0
  333. package/testing/mocks/canvas-mock.js +6 -1
  334. package/testing/mocks/text-ellipsis-mock.d.ts +1 -1
  335. package/testing/mocks/text-ellipsis-mock.js +8 -3
  336. package/typography/BlockQuote/Blockquote.css +17 -0
  337. package/typography/BlockQuote/Blockquote.d.ts +19 -0
  338. package/typography/BlockQuote/Blockquote.js +62 -0
  339. package/typography/BlockQuote/Blockquote.sty.d.ts +1 -0
  340. package/typography/BlockQuote/Blockquote.sty.js +24 -0
  341. package/typography/Code/Code.css +16 -0
  342. package/typography/Code/Code.d.ts +17 -0
  343. package/typography/Code/Code.js +62 -0
  344. package/typography/Code/Code.sty.d.ts +1 -0
  345. package/typography/Code/Code.sty.js +24 -0
  346. package/typography/Emphasis/Emphasis.css +4 -0
  347. package/typography/Emphasis/Emphasis.d.ts +14 -0
  348. package/typography/Emphasis/Emphasis.js +62 -0
  349. package/typography/Emphasis/Emphasis.sty.d.ts +1 -0
  350. package/typography/Emphasis/Emphasis.sty.js +24 -0
  351. package/typography/ExternalLink/ExternalLink.css +28 -0
  352. package/typography/ExternalLink/ExternalLink.d.ts +21 -0
  353. package/typography/ExternalLink/ExternalLink.js +82 -0
  354. package/typography/ExternalLink/ExternalLink.sty.d.ts +1 -0
  355. package/typography/ExternalLink/ExternalLink.sty.js +24 -0
  356. package/typography/Heading/Heading.css +54 -0
  357. package/typography/Heading/Heading.d.ts +24 -0
  358. package/typography/Heading/Heading.js +64 -0
  359. package/typography/Heading/Heading.sty.d.ts +52 -0
  360. package/typography/Heading/Heading.sty.js +25 -0
  361. package/typography/Highlight/Highlight.css +4 -0
  362. package/typography/Highlight/Highlight.d.ts +27 -0
  363. package/typography/Highlight/Highlight.js +139 -0
  364. package/typography/Highlight/Highlight.sty.d.ts +1 -0
  365. package/typography/Highlight/Highlight.sty.js +24 -0
  366. package/typography/Link/Link.css +15 -0
  367. package/typography/Link/Link.d.ts +16 -0
  368. package/typography/Link/Link.js +75 -0
  369. package/typography/Link/Link.sty.d.ts +1 -0
  370. package/typography/Link/Link.sty.js +24 -0
  371. package/typography/List/List.css +16 -0
  372. package/typography/List/List.d.ts +39 -0
  373. package/typography/List/List.js +109 -0
  374. package/typography/List/List.sty.d.ts +2 -0
  375. package/typography/List/List.sty.js +26 -0
  376. package/typography/Paragraph/Paragraph.css +19 -0
  377. package/typography/Paragraph/Paragraph.d.ts +19 -0
  378. package/typography/Paragraph/Paragraph.js +77 -0
  379. package/typography/Paragraph/Paragraph.sty.d.ts +16 -0
  380. package/typography/Paragraph/Paragraph.sty.js +25 -0
  381. package/typography/Strikethrough/Strikethrough.css +5 -0
  382. package/typography/Strikethrough/Strikethrough.d.ts +15 -0
  383. package/typography/Strikethrough/Strikethrough.js +60 -0
  384. package/typography/Strikethrough/Strikethrough.sty.d.ts +1 -0
  385. package/typography/Strikethrough/Strikethrough.sty.js +24 -0
  386. package/typography/Strong/Strong.css +4 -0
  387. package/typography/Strong/Strong.d.ts +14 -0
  388. package/typography/Strong/Strong.js +62 -0
  389. package/typography/Strong/Strong.sty.d.ts +1 -0
  390. package/typography/Strong/Strong.sty.js +24 -0
  391. package/typography/Text/Text.css +18 -0
  392. package/typography/Text/Text.d.ts +26 -0
  393. package/typography/Text/Text.js +71 -0
  394. package/typography/Text/Text.sty.d.ts +16 -0
  395. package/typography/Text/Text.sty.js +25 -0
  396. package/typography/TextEllipsis/TextEllipsis.css +22 -0
  397. package/typography/TextEllipsis/TextEllipsis.d.ts +32 -0
  398. package/typography/TextEllipsis/TextEllipsis.js +167 -0
  399. package/typography/TextEllipsis/TextEllipsis.sty.d.ts +15 -0
  400. package/typography/TextEllipsis/TextEllipsis.sty.js +25 -0
  401. package/typography/index.d.ts +28 -0
  402. package/typography/index.js +54 -0
  403. package/typography/utils.d.ts +52 -0
  404. package/typography/utils.js +119 -0
@@ -0,0 +1,71 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+ var Text_exports = {};
29
+ __export(Text_exports, {
30
+ Text: () => Text
31
+ });
32
+ module.exports = __toCommonJS(Text_exports);
33
+ var import_clsx = __toESM(require("clsx"));
34
+ var import_react = __toESM(require("react"));
35
+ var import_Text_css = require("./Text.sty.js");
36
+ var import_textStyle_css = require("../../styles/textStyle.sty.js");
37
+ const Text = /* @__PURE__ */ (0, import_react.forwardRef)(
38
+ ({
39
+ children,
40
+ textStyle,
41
+ fontStyle,
42
+ as,
43
+ className: consumerClassName,
44
+ style: consumerStyle,
45
+ "data-testid": dataTestId,
46
+ "data-dtrum-mask": dataDtrumMask,
47
+ "data-dtrum-allow": dataDtrumAllow,
48
+ ...remainingProps
49
+ }, ref) => {
50
+ const TextTag = as || "span";
51
+ let ellipsis;
52
+ return /* @__PURE__ */ import_react.default.createElement(
53
+ TextTag,
54
+ {
55
+ "data-testid": dataTestId,
56
+ "data-dtrum-mask": dataDtrumMask,
57
+ "data-dtrum-allow": dataDtrumAllow,
58
+ ref,
59
+ className: (0, import_clsx.default)([
60
+ (0, import_Text_css.textCSS)({ ellipsis }),
61
+ (fontStyle || textStyle) && (0, import_textStyle_css.textStyleCSS)({ fontStyle, textStyle }),
62
+ consumerClassName
63
+ ]),
64
+ style: consumerStyle,
65
+ ...remainingProps
66
+ },
67
+ children
68
+ );
69
+ }
70
+ );
71
+ Text.displayName = "Text";
@@ -0,0 +1,16 @@
1
+ export declare const textCSS: import("@vanilla-extract/recipes").RuntimeFn<{
2
+ ellipsis: {
3
+ singleLine: {
4
+ display: "block";
5
+ whiteSpace: "nowrap";
6
+ textOverflow: "ellipsis";
7
+ overflow: "hidden";
8
+ };
9
+ multiLine: {
10
+ display: "-webkit-box";
11
+ WebkitLineClamp: "var(--strato-ellipsis-line-clamp)";
12
+ WebkitBoxOrient: "vertical";
13
+ overflow: "hidden";
14
+ };
15
+ };
16
+ }>;
@@ -0,0 +1,25 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var Text_css_exports = {};
19
+ __export(Text_css_exports, {
20
+ textCSS: () => textCSS
21
+ });
22
+ module.exports = __toCommonJS(Text_css_exports);
23
+ var import_Text_css_ts_vanilla = require("./Text.css");
24
+ var import_createRuntimeFn = require("@vanilla-extract/recipes/createRuntimeFn");
25
+ var textCSS = (0, import_createRuntimeFn.createRuntimeFn)({ defaultClassName: "Text_textCSS__ty6wu50", variantClassNames: { ellipsis: { singleLine: "Text_textCSS_ellipsis_singleLine__ty6wu51", multiLine: "Text_textCSS_ellipsis_multiLine__ty6wu52" } }, defaultVariants: {}, compoundVariants: [] });
@@ -0,0 +1,22 @@
1
+ .TextEllipsis_textEllipsisCSS__1n6xzhd0 {
2
+ display: inline-block;
3
+ box-sizing: border-box;
4
+ vertical-align: middle;
5
+ overflow: hidden;
6
+ word-break: keep-all;
7
+ overflow-wrap: normal;
8
+ white-space: nowrap;
9
+ text-decoration: inherit;
10
+ width: 100%;
11
+ }
12
+ .TextEllipsis_textEllipsisCSS_truncationMode_start__1n6xzhd1 {
13
+ text-overflow: ellipsis;
14
+ direction: rtl;
15
+ text-align: left;
16
+ }
17
+ .TextEllipsis_textEllipsisCSS_truncationMode_middle__1n6xzhd2 {
18
+ text-overflow: clip;
19
+ }
20
+ .TextEllipsis_textEllipsisCSS_truncationMode_end__1n6xzhd3 {
21
+ text-overflow: ellipsis;
22
+ }
@@ -0,0 +1,32 @@
1
+ import React, { HTMLAttributes } from 'react';
2
+ import { type DataTestId } from '../../core/types/data-props.js';
3
+ import { type MaskingProps } from '../../core/types/masking-props.js';
4
+ import { type StylingProps } from '../../core/types/styling-props.js';
5
+ /**
6
+ * Available modes for how overly long text is truncated and where the ellipsis is placed.
7
+ * @internal
8
+ * */
9
+ export type _TruncationMode = 'start' | 'middle' | 'end';
10
+ /**
11
+ * The props for the TextEllipsis component.
12
+ * @public
13
+ * */
14
+ export interface TextEllipsisProps extends HTMLAttributes<HTMLSpanElement>, StylingProps, DataTestId, MaskingProps {
15
+ /** The children (as text) passed to the component. */
16
+ children: string;
17
+ /**
18
+ * The mode used for for truncating the text, either at the start, in the middle or at the end.
19
+ * @defaultValue 'end'
20
+ */
21
+ truncationMode?: 'start' | 'middle' | 'end';
22
+ /** Gets called when text needs to get truncated due to lack of horizontal space. */
23
+ onTextOverflow?: (ellipsized: boolean) => void;
24
+ }
25
+ /**
26
+ * @public
27
+ * Use the `TextEllipsis` component to truncate text and show an ellipsis whenever
28
+ * there is insufficient space to render the entire text. While some of our Strato
29
+ * components provide ellipsis out of the box, you need to take care of this yourself
30
+ * when writing your own components.
31
+ */
32
+ export declare const TextEllipsis: (props: TextEllipsisProps & React.RefAttributes<HTMLSpanElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
@@ -0,0 +1,167 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+ var TextEllipsis_exports = {};
29
+ __export(TextEllipsis_exports, {
30
+ TextEllipsis: () => TextEllipsis
31
+ });
32
+ module.exports = __toCommonJS(TextEllipsis_exports);
33
+ var import_clsx = __toESM(require("clsx"));
34
+ var import_react = __toESM(require("react"));
35
+ var import_use_resize_observer = __toESM(require("use-resize-observer"));
36
+ var import_TextEllipsis_css = require("./TextEllipsis.sty.js");
37
+ var import_useFontsUpdated = require("../../core/hooks/useFontsUpdated.js");
38
+ var import_useMergeRefs = require("../../core/hooks/useMergeRefs.js");
39
+ var import_utils2 = require("../utils.js");
40
+ function getFontProps(textWrapper) {
41
+ const computedStyle = window.getComputedStyle(textWrapper, null);
42
+ return {
43
+ fontStyle: computedStyle.getPropertyValue("font-style"),
44
+ fontWeight: computedStyle.getPropertyValue("font-weight"),
45
+ fontSize: computedStyle.getPropertyValue("font-size"),
46
+ fontFamily: computedStyle.getPropertyValue("font-family")
47
+ };
48
+ }
49
+ function isNativeEllipsisActive(textWrapper, containerWidth) {
50
+ const textWidth = Math.floor(textWrapper.getBoundingClientRect().width * 100) / 100;
51
+ return textWidth > containerWidth;
52
+ }
53
+ function renderEllipsizedText(originalText, truncationMode, containerRef, wasEllipsized, onTextOverflow) {
54
+ const containerElement = containerRef.current;
55
+ const textWrapper = containerElement?.firstElementChild || null;
56
+ if (containerElement !== null && textWrapper !== null) {
57
+ if (textWrapper.textContent !== originalText) {
58
+ textWrapper.textContent = originalText;
59
+ }
60
+ const containerWidth = Math.ceil(containerElement.getBoundingClientRect().width * 100) / 100;
61
+ if (truncationMode === "middle") {
62
+ if (isNativeEllipsisActive(textWrapper, containerWidth)) {
63
+ const ellipsizedText = (0, import_utils2._centerEllipsizeText)(
64
+ originalText,
65
+ getFontProps(textWrapper),
66
+ containerWidth
67
+ );
68
+ textWrapper.textContent = ellipsizedText;
69
+ if (ellipsizedText !== originalText) {
70
+ if (onTextOverflow && !wasEllipsized) {
71
+ onTextOverflow(true);
72
+ }
73
+ return true;
74
+ }
75
+ }
76
+ if (onTextOverflow && wasEllipsized) {
77
+ onTextOverflow(false);
78
+ }
79
+ } else if (isNativeEllipsisActive(textWrapper, containerWidth)) {
80
+ if (onTextOverflow && !wasEllipsized) {
81
+ onTextOverflow(true);
82
+ }
83
+ return true;
84
+ } else if (onTextOverflow && wasEllipsized) {
85
+ onTextOverflow(false);
86
+ }
87
+ }
88
+ return false;
89
+ }
90
+ const ComputedTextEllipsis = /* @__PURE__ */ (0, import_react.forwardRef)((props, forwardedRef) => {
91
+ const {
92
+ children,
93
+ truncationMode = "end",
94
+ onTextOverflow,
95
+ className: consumerClassName,
96
+ style: consumerStyle,
97
+ "data-testid": dataTestId,
98
+ "data-dtrum-mask": dataDtrumMask,
99
+ "data-dtrum-allow": dataDtrumAllow,
100
+ ...remainingProps
101
+ } = props;
102
+ const { ref: observerContainerRef } = (0, import_use_resize_observer.default)();
103
+ const containerRef = (0, import_react.useRef)(null);
104
+ const ellipsisStateRef = (0, import_react.useRef)(false);
105
+ const mergedRef = (0, import_useMergeRefs.useMergeRefs)([
106
+ observerContainerRef,
107
+ (instance) => {
108
+ containerRef.current = instance;
109
+ },
110
+ forwardedRef
111
+ ]);
112
+ const containerWidth = containerRef.current?.getBoundingClientRect().width;
113
+ const fontsUpdated = (0, import_useFontsUpdated._useFontsUpdated)();
114
+ (0, import_react.useLayoutEffect)(() => {
115
+ ellipsisStateRef.current = renderEllipsizedText(
116
+ children,
117
+ truncationMode,
118
+ containerRef,
119
+ ellipsisStateRef.current,
120
+ onTextOverflow
121
+ );
122
+ }, [containerWidth, children, truncationMode, fontsUpdated, onTextOverflow]);
123
+ return /* @__PURE__ */ import_react.default.createElement(
124
+ "span",
125
+ {
126
+ ref: mergedRef,
127
+ "aria-label": children,
128
+ "data-ellipsis": true,
129
+ "data-testid": dataTestId,
130
+ "data-dtrum-mask": dataDtrumMask,
131
+ "data-dtrum-allow": dataDtrumAllow,
132
+ className: (0, import_clsx.default)((0, import_TextEllipsis_css.textEllipsisCSS)({ truncationMode }), consumerClassName),
133
+ style: consumerStyle,
134
+ ...remainingProps
135
+ },
136
+ /* @__PURE__ */ import_react.default.createElement("span", null, children)
137
+ );
138
+ });
139
+ const CssTextEllipsis = /* @__PURE__ */ (0, import_react.forwardRef)((props, forwardedRef) => {
140
+ const {
141
+ children,
142
+ truncationMode = "end",
143
+ onTextOverflow,
144
+ className: consumerClassName,
145
+ style: consumerStyle,
146
+ "data-testid": dataTestId,
147
+ ...remainingProps
148
+ } = props;
149
+ return /* @__PURE__ */ import_react.default.createElement(
150
+ "span",
151
+ {
152
+ ref: forwardedRef,
153
+ "aria-label": children,
154
+ "data-ellipsis": true,
155
+ "data-testid": dataTestId,
156
+ className: (0, import_clsx.default)((0, import_TextEllipsis_css.textEllipsisCSS)({ truncationMode }), consumerClassName),
157
+ style: consumerStyle,
158
+ ...remainingProps
159
+ },
160
+ /* @__PURE__ */ import_react.default.createElement("span", null, children)
161
+ );
162
+ });
163
+ const TextEllipsis = /* @__PURE__ */ (0, import_react.forwardRef)((props, forwardedRef) => {
164
+ const cssOnlyEllipsis = !props.onTextOverflow && props.truncationMode !== "middle";
165
+ return cssOnlyEllipsis ? /* @__PURE__ */ import_react.default.createElement(CssTextEllipsis, { ref: forwardedRef, ...props }) : /* @__PURE__ */ import_react.default.createElement(ComputedTextEllipsis, { ref: forwardedRef, ...props });
166
+ });
167
+ TextEllipsis.displayName = "TextEllipsis";
@@ -0,0 +1,15 @@
1
+ export declare const textEllipsisCSS: import("@vanilla-extract/recipes").RuntimeFn<{
2
+ truncationMode: {
3
+ start: {
4
+ textOverflow: "ellipsis";
5
+ direction: "rtl";
6
+ textAlign: "left";
7
+ };
8
+ middle: {
9
+ textOverflow: "clip";
10
+ };
11
+ end: {
12
+ textOverflow: "ellipsis";
13
+ };
14
+ };
15
+ }>;
@@ -0,0 +1,25 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var TextEllipsis_css_exports = {};
19
+ __export(TextEllipsis_css_exports, {
20
+ textEllipsisCSS: () => textEllipsisCSS
21
+ });
22
+ module.exports = __toCommonJS(TextEllipsis_css_exports);
23
+ var import_TextEllipsis_css_ts_vanilla = require("./TextEllipsis.css");
24
+ var import_createRuntimeFn = require("@vanilla-extract/recipes/createRuntimeFn");
25
+ var textEllipsisCSS = (0, import_createRuntimeFn.createRuntimeFn)({ defaultClassName: "TextEllipsis_textEllipsisCSS__1n6xzhd0", variantClassNames: { truncationMode: { start: "TextEllipsis_textEllipsisCSS_truncationMode_start__1n6xzhd1", middle: "TextEllipsis_textEllipsisCSS_truncationMode_middle__1n6xzhd2", end: "TextEllipsis_textEllipsisCSS_truncationMode_end__1n6xzhd3" } }, defaultVariants: {}, compoundVariants: [] });
@@ -0,0 +1,28 @@
1
+ export { Blockquote } from './BlockQuote/Blockquote.js';
2
+ export type { BlockquoteProps } from './BlockQuote/Blockquote.js';
3
+ export { Code } from './Code/Code.js';
4
+ export type { CodeProps } from './Code/Code.js';
5
+ export { Emphasis } from './Emphasis/Emphasis.js';
6
+ export type { EmphasisProps } from './Emphasis/Emphasis.js';
7
+ export { ExternalLink } from './ExternalLink/ExternalLink.js';
8
+ export type { ExternalLinkProps } from './ExternalLink/ExternalLink.js';
9
+ export { Heading } from './Heading/Heading.js';
10
+ export type { HeadingProps } from './Heading/Heading.js';
11
+ export { Highlight } from './Highlight/Highlight.js';
12
+ export type { HighlightProps } from './Highlight/Highlight.js';
13
+ export { Link } from './Link/Link.js';
14
+ export type { LinkProps } from './Link/Link.js';
15
+ export { List } from './List/List.js';
16
+ export type { ListProps } from './List/List.js';
17
+ export { Paragraph } from './Paragraph/Paragraph.js';
18
+ export type { ParagraphProps } from './Paragraph/Paragraph.js';
19
+ export { Strikethrough } from './Strikethrough/Strikethrough.js';
20
+ export type { StrikethroughProps } from './Strikethrough/Strikethrough.js';
21
+ export { Strong } from './Strong/Strong.js';
22
+ export type { StrongProps } from './Strong/Strong.js';
23
+ export { Text } from './Text/Text.js';
24
+ export type { TextOwnProps, TextProps } from './Text/Text.js';
25
+ export { TextEllipsis } from './TextEllipsis/TextEllipsis.js';
26
+ export type { TextEllipsisProps, _TruncationMode, } from './TextEllipsis/TextEllipsis.js';
27
+ export { _calculateEllipsisInfo, _getTextHeight, _centerEllipsizeText, _getTextWidth, _ELLIPSIS_APPROXIMATION_THRESHOLD, _ELLIPSIS_CHARACTER, } from './utils.js';
28
+ export type { _Font } from './utils.js';
@@ -0,0 +1,54 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var typography_exports = {};
19
+ __export(typography_exports, {
20
+ Blockquote: () => import_Blockquote.Blockquote,
21
+ Code: () => import_Code.Code,
22
+ Emphasis: () => import_Emphasis.Emphasis,
23
+ ExternalLink: () => import_ExternalLink.ExternalLink,
24
+ Heading: () => import_Heading.Heading,
25
+ Highlight: () => import_Highlight.Highlight,
26
+ Link: () => import_Link.Link,
27
+ List: () => import_List.List,
28
+ Paragraph: () => import_Paragraph.Paragraph,
29
+ Strikethrough: () => import_Strikethrough.Strikethrough,
30
+ Strong: () => import_Strong.Strong,
31
+ Text: () => import_Text.Text,
32
+ TextEllipsis: () => import_TextEllipsis.TextEllipsis,
33
+ _ELLIPSIS_APPROXIMATION_THRESHOLD: () => import_utils._ELLIPSIS_APPROXIMATION_THRESHOLD,
34
+ _ELLIPSIS_CHARACTER: () => import_utils._ELLIPSIS_CHARACTER,
35
+ _calculateEllipsisInfo: () => import_utils._calculateEllipsisInfo,
36
+ _centerEllipsizeText: () => import_utils._centerEllipsizeText,
37
+ _getTextHeight: () => import_utils._getTextHeight,
38
+ _getTextWidth: () => import_utils._getTextWidth
39
+ });
40
+ module.exports = __toCommonJS(typography_exports);
41
+ var import_Blockquote = require("./BlockQuote/Blockquote.js");
42
+ var import_Code = require("./Code/Code.js");
43
+ var import_Emphasis = require("./Emphasis/Emphasis.js");
44
+ var import_ExternalLink = require("./ExternalLink/ExternalLink.js");
45
+ var import_Heading = require("./Heading/Heading.js");
46
+ var import_Highlight = require("./Highlight/Highlight.js");
47
+ var import_Link = require("./Link/Link.js");
48
+ var import_List = require("./List/List.js");
49
+ var import_Paragraph = require("./Paragraph/Paragraph.js");
50
+ var import_Strikethrough = require("./Strikethrough/Strikethrough.js");
51
+ var import_Strong = require("./Strong/Strong.js");
52
+ var import_Text = require("./Text/Text.js");
53
+ var import_TextEllipsis = require("./TextEllipsis/TextEllipsis.js");
54
+ var import_utils = require("./utils.js");
@@ -0,0 +1,52 @@
1
+ /**
2
+ * @internal
3
+ * Properties describing how a piece of text is formatted. */
4
+ export type _Font = {
5
+ fontStyle?: string;
6
+ fontWeight?: string;
7
+ fontSize: string;
8
+ fontFamily: string;
9
+ };
10
+ /**
11
+ * @internal
12
+ * The Unicode character representing an ellipsis. */
13
+ export declare const _ELLIPSIS_CHARACTER = "\u2026";
14
+ /**
15
+ * @internal
16
+ * Max iterations for finding the perfect truncated text for a given width */
17
+ export declare const _ELLIPSIS_APPROXIMATION_THRESHOLD = 15;
18
+ /**
19
+ * Calculates the width of formatted text in pixels.
20
+ *
21
+ * @param text - The text to calculate the width of
22
+ * @param textFont - The font settings for the text
23
+ * @internal
24
+ */
25
+ export declare function _getTextWidth(text: string, textFont: _Font): number;
26
+ /**
27
+ * @internal
28
+ * Calculates the height of formatted text in pixels.
29
+ * @param text - The text to calculate the height of
30
+ * @param textFont - The font settings for the text
31
+ */
32
+ export declare function _getTextHeight(text: string, textFont: _Font): number;
33
+ /**
34
+ * Cuts off text that exceeds the maximum width in the center and
35
+ * concatenates both shortened ends of the text with an ellipsis.
36
+ *
37
+ * @param originalText - The text to be truncated if its width exceeds <code>maxWidthInPx</code>
38
+ * @param textFont - Different font settings to be considered when determining the width of the text
39
+ * @param maxWidthInPx - If the text's width exceeds this value, the text will be truncated to a string whose width is guaranteed to be below it
40
+ * @internal
41
+ */
42
+ export declare function _centerEllipsizeText(originalText: string, textFont: _Font, maxWidthInPx: number): string;
43
+ /**
44
+ * Returns an object containing the width of a given formatted text and the
45
+ * width of an ellipsis character with the same text format or `null`
46
+ * if the text width does not exceed its maximum available width.
47
+ * @internal
48
+ */
49
+ export declare function _calculateEllipsisInfo(originalText: string, textFont: _Font, maxWidthInPx: number): {
50
+ ellipsisWidth: number;
51
+ avgLetterWidth: number;
52
+ } | null;
@@ -0,0 +1,119 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var utils_exports = {};
19
+ __export(utils_exports, {
20
+ _ELLIPSIS_APPROXIMATION_THRESHOLD: () => _ELLIPSIS_APPROXIMATION_THRESHOLD,
21
+ _ELLIPSIS_CHARACTER: () => _ELLIPSIS_CHARACTER,
22
+ _calculateEllipsisInfo: () => _calculateEllipsisInfo,
23
+ _centerEllipsizeText: () => _centerEllipsizeText,
24
+ _getTextHeight: () => _getTextHeight,
25
+ _getTextWidth: () => _getTextWidth
26
+ });
27
+ module.exports = __toCommonJS(utils_exports);
28
+ const _ELLIPSIS_CHARACTER = "\u2026";
29
+ const _ELLIPSIS_APPROXIMATION_THRESHOLD = 15;
30
+ let inMemContext2d;
31
+ function _getTextWidth(text, textFont) {
32
+ const context = getCanvasContext2d();
33
+ context.font = getFontString(textFont);
34
+ const textMetrics = context.measureText(text);
35
+ if (textMetrics.width < 0) {
36
+ return textMetrics.width;
37
+ }
38
+ const actualTextWidth = Math.abs(textMetrics.actualBoundingBoxLeft) + Math.abs(textMetrics.actualBoundingBoxRight);
39
+ return Math.ceil(actualTextWidth);
40
+ }
41
+ function _getTextHeight(text, textFont) {
42
+ const context = getCanvasContext2d();
43
+ context.font = getFontString(textFont);
44
+ const textMetrics = context.measureText(text);
45
+ const actualTextHeight = Math.abs(textMetrics.actualBoundingBoxAscent) + Math.abs(textMetrics.actualBoundingBoxDescent);
46
+ return Math.ceil(actualTextHeight);
47
+ }
48
+ function _centerEllipsizeText(originalText, textFont, maxWidthInPx) {
49
+ const ellipsisInfo = _calculateEllipsisInfo(
50
+ originalText,
51
+ textFont,
52
+ maxWidthInPx
53
+ );
54
+ if (ellipsisInfo === null) {
55
+ return originalText;
56
+ }
57
+ const { ellipsisWidth, avgLetterWidth } = ellipsisInfo;
58
+ const availableTextWidth = maxWidthInPx - ellipsisWidth;
59
+ if (availableTextWidth <= ellipsisWidth) {
60
+ return _ELLIPSIS_CHARACTER;
61
+ }
62
+ const initialPrefixSuffixLength = Math.floor(availableTextWidth / avgLetterWidth / 2) + 1;
63
+ let prefix;
64
+ let suffix;
65
+ let ellipsizedText;
66
+ let approximatedTextWidth;
67
+ let attempt = 1;
68
+ let prefixLength = initialPrefixSuffixLength;
69
+ let suffixLength = initialPrefixSuffixLength;
70
+ do {
71
+ prefixLength -= attempt % 2 === 1 ? 1 : 0;
72
+ suffixLength -= attempt % 2 === 0 ? 1 : 0;
73
+ prefix = originalText.substring(0, prefixLength);
74
+ suffix = originalText.substring(originalText.length - suffixLength);
75
+ ellipsizedText = `${prefix}${_ELLIPSIS_CHARACTER}${suffix}`;
76
+ approximatedTextWidth = _getTextWidth(ellipsizedText, textFont);
77
+ attempt++;
78
+ } while (attempt <= _ELLIPSIS_APPROXIMATION_THRESHOLD && approximatedTextWidth >= maxWidthInPx);
79
+ return ellipsizedText;
80
+ }
81
+ function getFontString(textFont) {
82
+ const { fontStyle, fontWeight, fontSize, fontFamily } = textFont;
83
+ return [
84
+ fontStyle === "normal" ? "" : fontStyle,
85
+ fontWeight === "400" ? "" : fontWeight,
86
+ fontSize,
87
+ fontFamily
88
+ ].filter((value) => value !== void 0 && value !== "").map(
89
+ (value) => (
90
+ // we need to resolve CSS variables manually because they are not supported by the canvas API
91
+ value?.trim().startsWith("var(") ? value.replace(/^\s*var\(--[0-9A-Za-z-]+,\s*([^)]+)\)\s*$/, "$1") : value
92
+ )
93
+ ).join(" ");
94
+ }
95
+ function _calculateEllipsisInfo(originalText, textFont, maxWidthInPx) {
96
+ const originalTextLength = originalText.length;
97
+ if (originalTextLength <= 1) {
98
+ return null;
99
+ }
100
+ const textWidth = _getTextWidth(originalText, textFont);
101
+ const avgLetterWidth = textWidth / originalTextLength;
102
+ return textWidth > maxWidthInPx ? {
103
+ ellipsisWidth: _getTextWidth(_ELLIPSIS_CHARACTER, textFont),
104
+ avgLetterWidth
105
+ } : null;
106
+ }
107
+ function getCanvasContext2d() {
108
+ if (!inMemContext2d) {
109
+ const context = document.createElement("canvas").getContext("2d");
110
+ if (context !== null) {
111
+ context.imageSmoothingEnabled = false;
112
+ context.imageSmoothingQuality = "low";
113
+ inMemContext2d = context;
114
+ } else {
115
+ throw new Error("Failed to create a Canvas 2D context");
116
+ }
117
+ }
118
+ return inMemContext2d;
119
+ }