@regardio/react 0.3.3 → 0.4.2

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 (334) hide show
  1. package/dist/components/background-slideshow.d.ts +7 -5
  2. package/dist/components/background-slideshow.js +172 -74
  3. package/dist/components/blurry-gradient.d.ts +11 -4
  4. package/dist/components/blurry-gradient.js +121 -5
  5. package/dist/components/box.d.ts +12 -9
  6. package/dist/components/box.js +48 -23
  7. package/dist/components/carousel.d.ts +12 -10
  8. package/dist/components/carousel.js +146 -66
  9. package/dist/components/countdown.d.ts +5 -2
  10. package/dist/components/countdown.js +55 -21
  11. package/dist/components/definition-list.d.ts +19 -16
  12. package/dist/components/definition-list.js +83 -51
  13. package/dist/components/generic-error.d.ts +25 -5
  14. package/dist/components/generic-error.js +42 -34
  15. package/dist/components/heading.d.ts +14 -11
  16. package/dist/components/heading.js +114 -25
  17. package/dist/components/highlight.d.ts +11 -8
  18. package/dist/components/highlight.js +65 -17
  19. package/dist/components/icon-button.d.ts +7 -4
  20. package/dist/components/icon-button.js +16 -5
  21. package/dist/components/if.d.ts +6 -4
  22. package/dist/components/if.js +22 -14
  23. package/dist/components/iframe.d.ts +6 -4
  24. package/dist/components/iframe.js +26 -3
  25. package/dist/components/item.d.ts +18 -15
  26. package/dist/components/item.js +504 -301
  27. package/dist/components/leaflet-map.d.ts +5 -4
  28. package/dist/components/leaflet-map.js +192 -186
  29. package/dist/components/link.d.ts +24 -16
  30. package/dist/components/link.js +191 -102
  31. package/dist/components/list-item.d.ts +11 -8
  32. package/dist/components/list-item.js +35 -17
  33. package/dist/components/maptiler-map.d.ts +5 -4
  34. package/dist/components/maptiler-map.js +125 -112
  35. package/dist/components/markdown-container.d.ts +10 -8
  36. package/dist/components/markdown-container.js +181 -82
  37. package/dist/components/password-input.d.ts +7 -5
  38. package/dist/components/password-input.js +50 -8
  39. package/dist/components/picture.d.ts +19 -7
  40. package/dist/components/picture.js +75 -34
  41. package/dist/components/protected-email.d.ts +14 -3
  42. package/dist/components/protected-email.js +29 -15
  43. package/dist/components/text.d.ts +12 -9
  44. package/dist/components/text.js +42 -24
  45. package/dist/components/unordered-list.d.ts +11 -8
  46. package/dist/components/unordered-list.js +37 -19
  47. package/dist/hooks/use-current-route-data.d.ts +7 -2
  48. package/dist/hooks/use-current-route-data.js +13 -9
  49. package/dist/hooks/use-focus-search.d.ts +6 -3
  50. package/dist/hooks/use-focus-search.js +17 -13
  51. package/dist/hooks/use-matches-data.d.ts +9 -2
  52. package/dist/hooks/use-matches-data.js +12 -8
  53. package/dist/hooks/use-media-query.d.ts +8 -2
  54. package/dist/hooks/use-media-query.js +19 -15
  55. package/dist/hooks/use-mobile.d.ts +3 -2
  56. package/dist/hooks/use-mobile.js +18 -14
  57. package/dist/hooks/use-nonce.d.ts +12 -5
  58. package/dist/hooks/use-nonce.js +11 -7
  59. package/dist/hooks/use-orientation.d.ts +11 -3
  60. package/dist/hooks/use-orientation.js +28 -24
  61. package/dist/hooks/use-user.d.ts +43 -8
  62. package/dist/hooks/use-user.js +21 -13
  63. package/dist/utils/author.d.ts +4 -4
  64. package/dist/utils/author.js +49 -31
  65. package/dist/utils/cn.d.ts +8 -4
  66. package/dist/utils/cn.js +12 -8
  67. package/dist/utils/is-route-active.d.ts +19 -3
  68. package/dist/utils/is-route-active.js +45 -43
  69. package/dist/utils/locale.d.ts +66 -4
  70. package/dist/utils/locale.js +33 -22
  71. package/dist/utils/text.d.ts +24 -7
  72. package/dist/utils/text.js +114 -89
  73. package/package.json +5 -4
  74. package/dist/components/background-slideshow.d.ts.map +0 -1
  75. package/dist/components/blurry-gradient.d.ts.map +0 -1
  76. package/dist/components/box.d.ts.map +0 -1
  77. package/dist/components/carousel.d.ts.map +0 -1
  78. package/dist/components/countdown.d.ts.map +0 -1
  79. package/dist/components/definition-list.d.ts.map +0 -1
  80. package/dist/components/generic-error.d.ts.map +0 -1
  81. package/dist/components/heading.d.ts.map +0 -1
  82. package/dist/components/highlight.d.ts.map +0 -1
  83. package/dist/components/icon-button.d.ts.map +0 -1
  84. package/dist/components/if.d.ts.map +0 -1
  85. package/dist/components/iframe.d.ts.map +0 -1
  86. package/dist/components/item.d.ts.map +0 -1
  87. package/dist/components/leaflet-map.d.ts.map +0 -1
  88. package/dist/components/link.d.ts.map +0 -1
  89. package/dist/components/link.test.d.ts +0 -2
  90. package/dist/components/link.test.d.ts.map +0 -1
  91. package/dist/components/link.test.js +0 -204
  92. package/dist/components/list-item.d.ts.map +0 -1
  93. package/dist/components/maptiler-map.d.ts.map +0 -1
  94. package/dist/components/markdown-container.d.ts.map +0 -1
  95. package/dist/components/password-input.d.ts.map +0 -1
  96. package/dist/components/picture.d.ts.map +0 -1
  97. package/dist/components/protected-email.d.ts.map +0 -1
  98. package/dist/components/text.d.ts.map +0 -1
  99. package/dist/components/unordered-list.d.ts.map +0 -1
  100. package/dist/hooks/use-current-route-data.d.ts.map +0 -1
  101. package/dist/hooks/use-focus-search.d.ts.map +0 -1
  102. package/dist/hooks/use-matches-data.d.ts.map +0 -1
  103. package/dist/hooks/use-media-query.d.ts.map +0 -1
  104. package/dist/hooks/use-mobile.d.ts.map +0 -1
  105. package/dist/hooks/use-nonce.d.ts.map +0 -1
  106. package/dist/hooks/use-nonce.test.d.ts +0 -2
  107. package/dist/hooks/use-nonce.test.d.ts.map +0 -1
  108. package/dist/hooks/use-nonce.test.js +0 -27
  109. package/dist/hooks/use-orientation.d.ts.map +0 -1
  110. package/dist/hooks/use-user.d.ts.map +0 -1
  111. package/dist/shadcn/accordion.d.ts +0 -25
  112. package/dist/shadcn/accordion.d.ts.map +0 -1
  113. package/dist/shadcn/accordion.js +0 -45
  114. package/dist/shadcn/alert-dialog.d.ts +0 -73
  115. package/dist/shadcn/alert-dialog.d.ts.map +0 -1
  116. package/dist/shadcn/alert-dialog.js +0 -93
  117. package/dist/shadcn/alert.d.ts +0 -34
  118. package/dist/shadcn/alert.d.ts.map +0 -1
  119. package/dist/shadcn/alert.js +0 -42
  120. package/dist/shadcn/aspect-ratio.d.ts +0 -6
  121. package/dist/shadcn/aspect-ratio.d.ts.map +0 -1
  122. package/dist/shadcn/aspect-ratio.js +0 -7
  123. package/dist/shadcn/avatar.d.ts +0 -16
  124. package/dist/shadcn/avatar.d.ts.map +0 -1
  125. package/dist/shadcn/avatar.js +0 -27
  126. package/dist/shadcn/badge.d.ts +0 -29
  127. package/dist/shadcn/badge.d.ts.map +0 -1
  128. package/dist/shadcn/badge.js +0 -29
  129. package/dist/shadcn/breadcrumb.d.ts +0 -42
  130. package/dist/shadcn/breadcrumb.d.ts.map +0 -1
  131. package/dist/shadcn/breadcrumb.js +0 -74
  132. package/dist/shadcn/button.d.ts +0 -38
  133. package/dist/shadcn/button.d.ts.map +0 -1
  134. package/dist/shadcn/button.js +0 -38
  135. package/dist/shadcn/calendar.d.ts +0 -23
  136. package/dist/shadcn/calendar.d.ts.map +0 -1
  137. package/dist/shadcn/calendar.js +0 -163
  138. package/dist/shadcn/card.d.ts +0 -31
  139. package/dist/shadcn/card.d.ts.map +0 -1
  140. package/dist/shadcn/card.js +0 -55
  141. package/dist/shadcn/carousel.d.ts +0 -51
  142. package/dist/shadcn/carousel.d.ts.map +0 -1
  143. package/dist/shadcn/carousel.js +0 -161
  144. package/dist/shadcn/chart.d.ts +0 -103
  145. package/dist/shadcn/chart.d.ts.map +0 -1
  146. package/dist/shadcn/chart.js +0 -248
  147. package/dist/shadcn/checkbox.d.ts +0 -8
  148. package/dist/shadcn/checkbox.d.ts.map +0 -1
  149. package/dist/shadcn/checkbox.js +0 -22
  150. package/dist/shadcn/collapsible.d.ts +0 -16
  151. package/dist/shadcn/collapsible.d.ts.map +0 -1
  152. package/dist/shadcn/collapsible.js +0 -19
  153. package/dist/shadcn/command.d.ts +0 -61
  154. package/dist/shadcn/command.d.ts.map +0 -1
  155. package/dist/shadcn/command.js +0 -123
  156. package/dist/shadcn/context-menu.d.ts +0 -107
  157. package/dist/shadcn/context-menu.d.ts.map +0 -1
  158. package/dist/shadcn/context-menu.js +0 -151
  159. package/dist/shadcn/dialog.d.ts +0 -57
  160. package/dist/shadcn/dialog.d.ts.map +0 -1
  161. package/dist/shadcn/dialog.js +0 -96
  162. package/dist/shadcn/drawer.d.ts +0 -54
  163. package/dist/shadcn/drawer.d.ts.map +0 -1
  164. package/dist/shadcn/drawer.js +0 -96
  165. package/dist/shadcn/dropdown-menu.d.ts +0 -110
  166. package/dist/shadcn/dropdown-menu.d.ts.map +0 -1
  167. package/dist/shadcn/dropdown-menu.js +0 -152
  168. package/dist/shadcn/form.d.ts +0 -59
  169. package/dist/shadcn/form.d.ts.map +0 -1
  170. package/dist/shadcn/form.js +0 -99
  171. package/dist/shadcn/hover-card.d.ts +0 -20
  172. package/dist/shadcn/hover-card.d.ts.map +0 -1
  173. package/dist/shadcn/hover-card.js +0 -26
  174. package/dist/shadcn/input-otp.d.ts +0 -25
  175. package/dist/shadcn/input-otp.d.ts.map +0 -1
  176. package/dist/shadcn/input-otp.js +0 -54
  177. package/dist/shadcn/input.d.ts +0 -14
  178. package/dist/shadcn/input.d.ts.map +0 -1
  179. package/dist/shadcn/input.js +0 -48
  180. package/dist/shadcn/label.d.ts +0 -8
  181. package/dist/shadcn/label.d.ts.map +0 -1
  182. package/dist/shadcn/label.js +0 -16
  183. package/dist/shadcn/menubar.d.ts +0 -108
  184. package/dist/shadcn/menubar.d.ts.map +0 -1
  185. package/dist/shadcn/menubar.js +0 -174
  186. package/dist/shadcn/navigation-menu.d.ts +0 -79
  187. package/dist/shadcn/navigation-menu.d.ts.map +0 -1
  188. package/dist/shadcn/navigation-menu.js +0 -108
  189. package/dist/shadcn/pagination.d.ts +0 -45
  190. package/dist/shadcn/pagination.d.ts.map +0 -1
  191. package/dist/shadcn/pagination.js +0 -83
  192. package/dist/shadcn/popover.d.ts +0 -19
  193. package/dist/shadcn/popover.d.ts.map +0 -1
  194. package/dist/shadcn/popover.js +0 -29
  195. package/dist/shadcn/progress.d.ts +0 -9
  196. package/dist/shadcn/progress.d.ts.map +0 -1
  197. package/dist/shadcn/progress.js +0 -17
  198. package/dist/shadcn/radio-group.d.ts +0 -12
  199. package/dist/shadcn/radio-group.d.ts.map +0 -1
  200. package/dist/shadcn/radio-group.js +0 -32
  201. package/dist/shadcn/resizable.d.ts +0 -20
  202. package/dist/shadcn/resizable.d.ts.map +0 -1
  203. package/dist/shadcn/resizable.js +0 -32
  204. package/dist/shadcn/scroll-area.d.ts +0 -16
  205. package/dist/shadcn/scroll-area.d.ts.map +0 -1
  206. package/dist/shadcn/scroll-area.js +0 -40
  207. package/dist/shadcn/select.d.ts +0 -63
  208. package/dist/shadcn/select.d.ts.map +0 -1
  209. package/dist/shadcn/select.js +0 -120
  210. package/dist/shadcn/separator.d.ts +0 -10
  211. package/dist/shadcn/separator.d.ts.map +0 -1
  212. package/dist/shadcn/separator.js +0 -18
  213. package/dist/shadcn/sheet.d.ts +0 -48
  214. package/dist/shadcn/sheet.d.ts.map +0 -1
  215. package/dist/shadcn/sheet.js +0 -99
  216. package/dist/shadcn/sidebar.d.ts +0 -200
  217. package/dist/shadcn/sidebar.d.ts.map +0 -1
  218. package/dist/shadcn/sidebar.js +0 -528
  219. package/dist/shadcn/skeleton.d.ts +0 -6
  220. package/dist/shadcn/skeleton.d.ts.map +0 -1
  221. package/dist/shadcn/skeleton.js +0 -11
  222. package/dist/shadcn/slider.d.ts +0 -12
  223. package/dist/shadcn/slider.d.ts.map +0 -1
  224. package/dist/shadcn/slider.js +0 -50
  225. package/dist/shadcn/sonner.d.ts +0 -7
  226. package/dist/shadcn/sonner.d.ts.map +0 -1
  227. package/dist/shadcn/sonner.js +0 -20
  228. package/dist/shadcn/switch.d.ts +0 -8
  229. package/dist/shadcn/switch.d.ts.map +0 -1
  230. package/dist/shadcn/switch.js +0 -22
  231. package/dist/shadcn/table.d.ts +0 -35
  232. package/dist/shadcn/table.d.ts.map +0 -1
  233. package/dist/shadcn/table.js +0 -73
  234. package/dist/shadcn/tabs.d.ts +0 -20
  235. package/dist/shadcn/tabs.d.ts.map +0 -1
  236. package/dist/shadcn/tabs.js +0 -40
  237. package/dist/shadcn/textarea.d.ts +0 -7
  238. package/dist/shadcn/textarea.d.ts.map +0 -1
  239. package/dist/shadcn/textarea.js +0 -14
  240. package/dist/shadcn/toggle-group.d.ts +0 -22
  241. package/dist/shadcn/toggle-group.d.ts.map +0 -1
  242. package/dist/shadcn/toggle-group.js +0 -43
  243. package/dist/shadcn/toggle.d.ts +0 -29
  244. package/dist/shadcn/toggle.d.ts.map +0 -1
  245. package/dist/shadcn/toggle.js +0 -31
  246. package/dist/shadcn/tooltip.d.ts +0 -20
  247. package/dist/shadcn/tooltip.d.ts.map +0 -1
  248. package/dist/shadcn/tooltip.js +0 -40
  249. package/dist/stories/BackgroundSlideshow.stories.d.ts +0 -9
  250. package/dist/stories/BackgroundSlideshow.stories.d.ts.map +0 -1
  251. package/dist/stories/BackgroundSlideshow.stories.js +0 -60
  252. package/dist/stories/BlurryGradient.stories.d.ts +0 -11
  253. package/dist/stories/BlurryGradient.stories.d.ts.map +0 -1
  254. package/dist/stories/BlurryGradient.stories.js +0 -53
  255. package/dist/stories/Box.stories.d.ts +0 -13
  256. package/dist/stories/Box.stories.d.ts.map +0 -1
  257. package/dist/stories/Box.stories.js +0 -50
  258. package/dist/stories/Carousel.stories.d.ts +0 -9
  259. package/dist/stories/Carousel.stories.d.ts.map +0 -1
  260. package/dist/stories/Carousel.stories.js +0 -30
  261. package/dist/stories/Countdown.stories.d.ts +0 -7
  262. package/dist/stories/Countdown.stories.d.ts.map +0 -1
  263. package/dist/stories/Countdown.stories.js +0 -11
  264. package/dist/stories/DefinitionList.stories.d.ts +0 -9
  265. package/dist/stories/DefinitionList.stories.d.ts.map +0 -1
  266. package/dist/stories/DefinitionList.stories.js +0 -20
  267. package/dist/stories/GenericError.stories.d.ts +0 -9
  268. package/dist/stories/GenericError.stories.d.ts.map +0 -1
  269. package/dist/stories/GenericError.stories.js +0 -39
  270. package/dist/stories/Heading.stories.d.ts +0 -15
  271. package/dist/stories/Heading.stories.d.ts.map +0 -1
  272. package/dist/stories/Heading.stories.js +0 -61
  273. package/dist/stories/Highlight.stories.d.ts +0 -8
  274. package/dist/stories/Highlight.stories.d.ts.map +0 -1
  275. package/dist/stories/Highlight.stories.js +0 -19
  276. package/dist/stories/IconButton.stories.d.ts +0 -10
  277. package/dist/stories/IconButton.stories.d.ts.map +0 -1
  278. package/dist/stories/IconButton.stories.js +0 -32
  279. package/dist/stories/If.stories.d.ts +0 -13
  280. package/dist/stories/If.stories.d.ts.map +0 -1
  281. package/dist/stories/If.stories.js +0 -54
  282. package/dist/stories/Iframe.stories.d.ts +0 -8
  283. package/dist/stories/Iframe.stories.d.ts.map +0 -1
  284. package/dist/stories/Iframe.stories.js +0 -23
  285. package/dist/stories/Item.stories.d.ts +0 -10
  286. package/dist/stories/Item.stories.d.ts.map +0 -1
  287. package/dist/stories/Item.stories.js +0 -32
  288. package/dist/stories/Link.stories.d.ts +0 -10
  289. package/dist/stories/Link.stories.d.ts.map +0 -1
  290. package/dist/stories/Link.stories.js +0 -36
  291. package/dist/stories/ListItem.stories.d.ts +0 -9
  292. package/dist/stories/ListItem.stories.d.ts.map +0 -1
  293. package/dist/stories/ListItem.stories.js +0 -26
  294. package/dist/stories/MarkdownContainer.stories.d.ts +0 -11
  295. package/dist/stories/MarkdownContainer.stories.d.ts.map +0 -1
  296. package/dist/stories/MarkdownContainer.stories.js +0 -66
  297. package/dist/stories/PasswordInput.stories.d.ts +0 -9
  298. package/dist/stories/PasswordInput.stories.d.ts.map +0 -1
  299. package/dist/stories/PasswordInput.stories.js +0 -27
  300. package/dist/stories/Picture.stories.d.ts +0 -10
  301. package/dist/stories/Picture.stories.d.ts.map +0 -1
  302. package/dist/stories/Picture.stories.js +0 -46
  303. package/dist/stories/ProtectedEmail.stories.d.ts +0 -10
  304. package/dist/stories/ProtectedEmail.stories.d.ts.map +0 -1
  305. package/dist/stories/ProtectedEmail.stories.js +0 -34
  306. package/dist/stories/Text.stories.d.ts +0 -10
  307. package/dist/stories/Text.stories.d.ts.map +0 -1
  308. package/dist/stories/Text.stories.js +0 -31
  309. package/dist/stories/UnorderedList.stories.d.ts +0 -10
  310. package/dist/stories/UnorderedList.stories.d.ts.map +0 -1
  311. package/dist/stories/UnorderedList.stories.js +0 -24
  312. package/dist/test-setup.d.ts +0 -2
  313. package/dist/test-setup.d.ts.map +0 -1
  314. package/dist/test-setup.js +0 -1
  315. package/dist/utils/author.d.ts.map +0 -1
  316. package/dist/utils/author.test.d.ts +0 -2
  317. package/dist/utils/author.test.d.ts.map +0 -1
  318. package/dist/utils/author.test.js +0 -46
  319. package/dist/utils/cn.d.ts.map +0 -1
  320. package/dist/utils/cn.test.d.ts +0 -2
  321. package/dist/utils/cn.test.d.ts.map +0 -1
  322. package/dist/utils/cn.test.js +0 -33
  323. package/dist/utils/is-route-active.d.ts.map +0 -1
  324. package/dist/utils/is-route-active.test.d.ts +0 -2
  325. package/dist/utils/is-route-active.test.d.ts.map +0 -1
  326. package/dist/utils/is-route-active.test.js +0 -61
  327. package/dist/utils/locale.d.ts.map +0 -1
  328. package/dist/utils/locale.test.d.ts +0 -2
  329. package/dist/utils/locale.test.d.ts.map +0 -1
  330. package/dist/utils/locale.test.js +0 -99
  331. package/dist/utils/text.d.ts.map +0 -1
  332. package/dist/utils/text.test.d.ts +0 -2
  333. package/dist/utils/text.test.d.ts.map +0 -1
  334. package/dist/utils/text.test.js +0 -122
@@ -1,122 +0,0 @@
1
- import { describe, expect, test } from 'vitest';
2
- import { replaceSpecialChars, shy, toBoolean, typographicQuotes } from './text';
3
- describe('toBoolean', () => {
4
- test('returns true for boolean true', () => {
5
- expect(toBoolean(true)).toBe(true);
6
- });
7
- test('returns false for boolean false', () => {
8
- expect(toBoolean(false)).toBe(false);
9
- });
10
- test('returns true for string "true"', () => {
11
- expect(toBoolean('true')).toBe(true);
12
- });
13
- test('returns true for string "1"', () => {
14
- expect(toBoolean('1')).toBe(true);
15
- });
16
- test('returns false for string "false"', () => {
17
- expect(toBoolean('false')).toBe(false);
18
- });
19
- test('returns false for string "0"', () => {
20
- expect(toBoolean('0')).toBe(false);
21
- });
22
- test('returns false for null', () => {
23
- expect(toBoolean(null)).toBe(false);
24
- });
25
- test('returns false for undefined', () => {
26
- expect(toBoolean(undefined)).toBe(false);
27
- });
28
- test('returns false for other strings', () => {
29
- expect(toBoolean('yes')).toBe(false);
30
- expect(toBoolean('no')).toBe(false);
31
- expect(toBoolean('')).toBe(false);
32
- });
33
- });
34
- describe('shy', () => {
35
- test('returns null for null input', () => {
36
- expect(shy(null)).toBe(null);
37
- });
38
- test('replaces ­ with soft hyphen in strings', () => {
39
- const result = shy('hello­world');
40
- expect(result).toBe('hello\u00ADworld');
41
- });
42
- test('handles strings without ­', () => {
43
- expect(shy('hello world')).toBe('hello world');
44
- });
45
- test('handles multiple ­ occurrences', () => {
46
- const result = shy('one­two­three');
47
- expect(result).toBe('one\u00ADtwo\u00ADthree');
48
- });
49
- });
50
- describe('replaceSpecialChars', () => {
51
- test('replaces straight quotes for de locale', () => {
52
- const result = replaceSpecialChars('"Hello"', 'de');
53
- const str = String(result);
54
- expect(str).not.toContain('"Hello"');
55
- expect(str).toContain('Hello');
56
- });
57
- test('replaces straight quotes for de-DE locale', () => {
58
- const result = replaceSpecialChars('"Hello"', 'de-DE');
59
- const str = String(result);
60
- expect(str).not.toContain('"Hello"');
61
- expect(str).toContain('Hello');
62
- });
63
- test('replaces straight quotes for en locale', () => {
64
- const result = replaceSpecialChars('"Hello"', 'en');
65
- const str = String(result);
66
- expect(str).not.toContain('"Hello"');
67
- expect(str).toContain('Hello');
68
- });
69
- test('handles multiple quoted strings', () => {
70
- const result = replaceSpecialChars('"one" and "two"', 'de');
71
- const str = String(result);
72
- expect(str).toContain('one');
73
- expect(str).toContain('two');
74
- expect(str).toContain('and');
75
- });
76
- test('also applies shy replacement', () => {
77
- const result = replaceSpecialChars('"Hello­World"', 'en');
78
- expect(String(result)).toContain('\u00AD');
79
- });
80
- });
81
- describe('typographicQuotes', () => {
82
- test('replaces double quotes with English curly quotes', () => {
83
- const result = typographicQuotes('"Hello"', 'en');
84
- expect(result).toBe('\u201CHello\u201D');
85
- });
86
- test('replaces double quotes with German quotes', () => {
87
- const result = typographicQuotes('"Hello"', 'de');
88
- expect(result).toBe('\u201EHello\u201D');
89
- });
90
- test('replaces double quotes with French guillemets', () => {
91
- const result = typographicQuotes('"Hello"', 'fr');
92
- expect(result).toBe('\u00AB Hello \u00BB');
93
- });
94
- test('handles de-DE locale (falls back to de)', () => {
95
- const result = typographicQuotes('"Hello"', 'de-DE');
96
- expect(result).toBe('\u201EHello\u201D');
97
- });
98
- test('handles de-CH locale (Swiss German with guillemets)', () => {
99
- const result = typographicQuotes('"Hello"', 'de-CH');
100
- expect(result).toBe('\u00ABHello\u00BB');
101
- });
102
- test('handles unknown locale (falls back to English)', () => {
103
- const result = typographicQuotes('"Hello"', 'xx-YY');
104
- expect(result).toBe('\u201CHello\u201D');
105
- });
106
- test('replaces single quotes', () => {
107
- const result = typographicQuotes("'Hello'", 'en');
108
- expect(result).toBe('\u2018Hello\u2019');
109
- });
110
- test('handles multiple quoted strings', () => {
111
- const result = typographicQuotes('"one" and "two"', 'de');
112
- expect(result).toBe('\u201Eone\u201D and \u201Etwo\u201D');
113
- });
114
- test('handles Japanese quotes', () => {
115
- const result = typographicQuotes('"Hello"', 'ja');
116
- expect(result).toBe('\u300CHello\u300D');
117
- });
118
- test('preserves text without quotes', () => {
119
- const result = typographicQuotes('Hello World', 'en');
120
- expect(result).toBe('Hello World');
121
- });
122
- });