react-marketing-ui 0.0.1

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 (318) hide show
  1. package/README.md +34 -0
  2. package/dist/accordion.d.cts +21 -0
  3. package/dist/accordion.d.ts +21 -0
  4. package/dist/accordion.d.ts.map +1 -0
  5. package/dist/accordion.js +230 -0
  6. package/dist/accordion.js.map +1 -0
  7. package/dist/accordion.mjs +4 -0
  8. package/dist/accordion.mjs.map +1 -0
  9. package/dist/action-swap.d.cts +23 -0
  10. package/dist/action-swap.d.ts +23 -0
  11. package/dist/action-swap.d.ts.map +1 -0
  12. package/dist/action-swap.js +81 -0
  13. package/dist/action-swap.js.map +1 -0
  14. package/dist/action-swap.mjs +5 -0
  15. package/dist/action-swap.mjs.map +1 -0
  16. package/dist/animated-beam.d.cts +24 -0
  17. package/dist/animated-beam.d.ts +24 -0
  18. package/dist/animated-beam.d.ts.map +1 -0
  19. package/dist/animated-beam.js +130 -0
  20. package/dist/animated-beam.js.map +1 -0
  21. package/dist/animated-beam.mjs +4 -0
  22. package/dist/animated-beam.mjs.map +1 -0
  23. package/dist/button.d.cts +55 -0
  24. package/dist/button.d.ts +55 -0
  25. package/dist/button.d.ts.map +1 -0
  26. package/dist/button.js +119 -0
  27. package/dist/button.js.map +1 -0
  28. package/dist/button.mjs +4 -0
  29. package/dist/button.mjs.map +1 -0
  30. package/dist/card.d.cts +20 -0
  31. package/dist/card.d.ts +20 -0
  32. package/dist/card.d.ts.map +1 -0
  33. package/dist/card.js +146 -0
  34. package/dist/card.js.map +1 -0
  35. package/dist/card.mjs +5 -0
  36. package/dist/card.mjs.map +1 -0
  37. package/dist/chunk-3SB6HUBA.mjs +31 -0
  38. package/dist/chunk-3SB6HUBA.mjs.map +1 -0
  39. package/dist/chunk-4PBVBXGY.mjs +84 -0
  40. package/dist/chunk-4PBVBXGY.mjs.map +1 -0
  41. package/dist/chunk-4VCFWVSJ.mjs +42 -0
  42. package/dist/chunk-4VCFWVSJ.mjs.map +1 -0
  43. package/dist/chunk-5QQAPGR2.mjs +109 -0
  44. package/dist/chunk-5QQAPGR2.mjs.map +1 -0
  45. package/dist/chunk-6MB4UKRX.mjs +19 -0
  46. package/dist/chunk-6MB4UKRX.mjs.map +1 -0
  47. package/dist/chunk-6T5LR34O.mjs +45 -0
  48. package/dist/chunk-6T5LR34O.mjs.map +1 -0
  49. package/dist/chunk-AYLCYDUM.mjs +275 -0
  50. package/dist/chunk-AYLCYDUM.mjs.map +1 -0
  51. package/dist/chunk-AYY7D2RJ.mjs +112 -0
  52. package/dist/chunk-AYY7D2RJ.mjs.map +1 -0
  53. package/dist/chunk-CTZEI2YS.mjs +324 -0
  54. package/dist/chunk-CTZEI2YS.mjs.map +1 -0
  55. package/dist/chunk-DA3I3Y5O.mjs +71 -0
  56. package/dist/chunk-DA3I3Y5O.mjs.map +1 -0
  57. package/dist/chunk-EYHT2EWJ.mjs +18 -0
  58. package/dist/chunk-EYHT2EWJ.mjs.map +1 -0
  59. package/dist/chunk-IHLGCS63.mjs +36 -0
  60. package/dist/chunk-IHLGCS63.mjs.map +1 -0
  61. package/dist/chunk-JVXJ6SFX.mjs +38 -0
  62. package/dist/chunk-JVXJ6SFX.mjs.map +1 -0
  63. package/dist/chunk-KBHYXLRG.mjs +13 -0
  64. package/dist/chunk-KBHYXLRG.mjs.map +1 -0
  65. package/dist/chunk-KMXUQYR3.mjs +74 -0
  66. package/dist/chunk-KMXUQYR3.mjs.map +1 -0
  67. package/dist/chunk-KNPOZ34H.mjs +88 -0
  68. package/dist/chunk-KNPOZ34H.mjs.map +1 -0
  69. package/dist/chunk-KRNWCJ4D.mjs +219 -0
  70. package/dist/chunk-KRNWCJ4D.mjs.map +1 -0
  71. package/dist/chunk-M5MESV26.mjs +124 -0
  72. package/dist/chunk-M5MESV26.mjs.map +1 -0
  73. package/dist/chunk-MJYBPJBA.mjs +115 -0
  74. package/dist/chunk-MJYBPJBA.mjs.map +1 -0
  75. package/dist/chunk-NNHPQ67J.mjs +10 -0
  76. package/dist/chunk-NNHPQ67J.mjs.map +1 -0
  77. package/dist/chunk-OCZFHVVD.mjs +71 -0
  78. package/dist/chunk-OCZFHVVD.mjs.map +1 -0
  79. package/dist/chunk-QAWSH567.mjs +19 -0
  80. package/dist/chunk-QAWSH567.mjs.map +1 -0
  81. package/dist/chunk-R2E2J42H.mjs +38 -0
  82. package/dist/chunk-R2E2J42H.mjs.map +1 -0
  83. package/dist/chunk-TPGLLSYV.mjs +65 -0
  84. package/dist/chunk-TPGLLSYV.mjs.map +1 -0
  85. package/dist/chunk-VJENJHXJ.mjs +72 -0
  86. package/dist/chunk-VJENJHXJ.mjs.map +1 -0
  87. package/dist/chunk-W22G7XHR.mjs +104 -0
  88. package/dist/chunk-W22G7XHR.mjs.map +1 -0
  89. package/dist/chunk-WDR5VPZJ.mjs +79 -0
  90. package/dist/chunk-WDR5VPZJ.mjs.map +1 -0
  91. package/dist/chunk-WLUGKBH7.mjs +37 -0
  92. package/dist/chunk-WLUGKBH7.mjs.map +1 -0
  93. package/dist/chunk-WYJYLDUA.mjs +84 -0
  94. package/dist/chunk-WYJYLDUA.mjs.map +1 -0
  95. package/dist/chunk-XZEDZVXT.mjs +38 -0
  96. package/dist/chunk-XZEDZVXT.mjs.map +1 -0
  97. package/dist/chunk-YKGP5JIL.mjs +328 -0
  98. package/dist/chunk-YKGP5JIL.mjs.map +1 -0
  99. package/dist/chunk-YM3U2OBE.mjs +99 -0
  100. package/dist/chunk-YM3U2OBE.mjs.map +1 -0
  101. package/dist/dia-text-reveal.css +18 -0
  102. package/dist/dia-text-reveal.css.map +1 -0
  103. package/dist/dia-text-reveal.d.cts +37 -0
  104. package/dist/dia-text-reveal.d.ts +37 -0
  105. package/dist/dia-text-reveal.d.ts.map +1 -0
  106. package/dist/dia-text-reveal.js +334 -0
  107. package/dist/dia-text-reveal.js.map +1 -0
  108. package/dist/dia-text-reveal.lines.d.cts +23 -0
  109. package/dist/dia-text-reveal.lines.d.ts +23 -0
  110. package/dist/dia-text-reveal.lines.d.ts.map +1 -0
  111. package/dist/dia-text-reveal.mjs +4 -0
  112. package/dist/dia-text-reveal.mjs.map +1 -0
  113. package/dist/dia-text-reveal.sweep.d.cts +49 -0
  114. package/dist/dia-text-reveal.sweep.d.ts +49 -0
  115. package/dist/dia-text-reveal.sweep.d.ts.map +1 -0
  116. package/dist/dia-text-reveal.utils.d.cts +3 -0
  117. package/dist/dia-text-reveal.utils.d.ts +3 -0
  118. package/dist/dia-text-reveal.utils.d.ts.map +1 -0
  119. package/dist/elevated-input.d.cts +11 -0
  120. package/dist/elevated-input.d.ts +11 -0
  121. package/dist/elevated-input.d.ts.map +1 -0
  122. package/dist/elevated-input.js +52 -0
  123. package/dist/elevated-input.js.map +1 -0
  124. package/dist/elevated-input.mjs +4 -0
  125. package/dist/elevated-input.mjs.map +1 -0
  126. package/dist/fade-in.d.cts +43 -0
  127. package/dist/fade-in.d.ts +43 -0
  128. package/dist/fade-in.d.ts.map +1 -0
  129. package/dist/fade-in.js +89 -0
  130. package/dist/fade-in.js.map +1 -0
  131. package/dist/fade-in.mjs +4 -0
  132. package/dist/fade-in.mjs.map +1 -0
  133. package/dist/feature-card.d.cts +23 -0
  134. package/dist/feature-card.d.ts +23 -0
  135. package/dist/feature-card.d.ts.map +1 -0
  136. package/dist/feature-card.js +38 -0
  137. package/dist/feature-card.js.map +1 -0
  138. package/dist/feature-card.mjs +4 -0
  139. package/dist/feature-card.mjs.map +1 -0
  140. package/dist/flowchart-parts.d.cts +61 -0
  141. package/dist/flowchart-parts.d.ts +61 -0
  142. package/dist/flowchart-parts.d.ts.map +1 -0
  143. package/dist/flowchart-parts.js +102 -0
  144. package/dist/flowchart-parts.js.map +1 -0
  145. package/dist/flowchart-parts.mjs +4 -0
  146. package/dist/flowchart-parts.mjs.map +1 -0
  147. package/dist/glossy-button.d.cts +21 -0
  148. package/dist/glossy-button.d.ts +21 -0
  149. package/dist/glossy-button.d.ts.map +1 -0
  150. package/dist/glossy-button.js +87 -0
  151. package/dist/glossy-button.js.map +1 -0
  152. package/dist/glossy-button.mjs +4 -0
  153. package/dist/glossy-button.mjs.map +1 -0
  154. package/dist/grainient.css +9 -0
  155. package/dist/grainient.css.map +1 -0
  156. package/dist/grainient.d.cts +5 -0
  157. package/dist/grainient.d.ts +5 -0
  158. package/dist/grainient.d.ts.map +1 -0
  159. package/dist/grainient.js +330 -0
  160. package/dist/grainient.js.map +1 -0
  161. package/dist/grainient.mjs +4 -0
  162. package/dist/grainient.mjs.map +1 -0
  163. package/dist/grainient.shader.d.cts +9 -0
  164. package/dist/grainient.shader.d.ts +9 -0
  165. package/dist/grainient.shader.d.ts.map +1 -0
  166. package/dist/grainient.types.d.cts +30 -0
  167. package/dist/grainient.types.d.ts +30 -0
  168. package/dist/grainient.types.d.ts.map +1 -0
  169. package/dist/highlighter.d.cts +47 -0
  170. package/dist/highlighter.d.ts +47 -0
  171. package/dist/highlighter.d.ts.map +1 -0
  172. package/dist/highlighter.js +125 -0
  173. package/dist/highlighter.js.map +1 -0
  174. package/dist/highlighter.mjs +5 -0
  175. package/dist/highlighter.mjs.map +1 -0
  176. package/dist/index.css +27 -0
  177. package/dist/index.css.map +1 -0
  178. package/dist/index.d.cts +56 -0
  179. package/dist/index.d.ts +56 -0
  180. package/dist/index.d.ts.map +1 -0
  181. package/dist/index.js +2723 -0
  182. package/dist/index.js.map +1 -0
  183. package/dist/index.mjs +34 -0
  184. package/dist/index.mjs.map +1 -0
  185. package/dist/input.d.cts +15 -0
  186. package/dist/input.d.ts +15 -0
  187. package/dist/input.d.ts.map +1 -0
  188. package/dist/input.js +110 -0
  189. package/dist/input.js.map +1 -0
  190. package/dist/input.mjs +4 -0
  191. package/dist/input.mjs.map +1 -0
  192. package/dist/lib/breakpoints.d.cts +36 -0
  193. package/dist/lib/breakpoints.d.ts +36 -0
  194. package/dist/lib/breakpoints.d.ts.map +1 -0
  195. package/dist/lib/breakpoints.js +41 -0
  196. package/dist/lib/breakpoints.js.map +1 -0
  197. package/dist/lib/breakpoints.mjs +3 -0
  198. package/dist/lib/breakpoints.mjs.map +1 -0
  199. package/dist/lib/cn.js +24 -0
  200. package/dist/lib/cn.js.map +1 -0
  201. package/dist/lib/cn.mjs +3 -0
  202. package/dist/lib/cn.mjs.map +1 -0
  203. package/dist/lib/ease.d.cts +19 -0
  204. package/dist/lib/ease.d.ts +19 -0
  205. package/dist/lib/ease.d.ts.map +1 -0
  206. package/dist/lib/ease.js +16 -0
  207. package/dist/lib/ease.js.map +1 -0
  208. package/dist/lib/ease.mjs +3 -0
  209. package/dist/lib/ease.mjs.map +1 -0
  210. package/dist/lib/surface.d.cts +14 -0
  211. package/dist/lib/surface.d.ts +14 -0
  212. package/dist/lib/surface.d.ts.map +1 -0
  213. package/dist/lib/surface.js +40 -0
  214. package/dist/lib/surface.js.map +1 -0
  215. package/dist/lib/surface.mjs +3 -0
  216. package/dist/lib/surface.mjs.map +1 -0
  217. package/dist/lib/use-media-query.d.cts +9 -0
  218. package/dist/lib/use-media-query.d.ts +9 -0
  219. package/dist/lib/use-media-query.d.ts.map +1 -0
  220. package/dist/lib/use-media-query.js +19 -0
  221. package/dist/lib/use-media-query.js.map +1 -0
  222. package/dist/lib/use-media-query.mjs +3 -0
  223. package/dist/lib/use-media-query.mjs.map +1 -0
  224. package/dist/lib/utils.d.cts +25 -0
  225. package/dist/lib/utils.d.ts +25 -0
  226. package/dist/lib/utils.d.ts.map +1 -0
  227. package/dist/liquid-metal.d.cts +24 -0
  228. package/dist/liquid-metal.d.ts +24 -0
  229. package/dist/liquid-metal.d.ts.map +1 -0
  230. package/dist/liquid-metal.js +43 -0
  231. package/dist/liquid-metal.js.map +1 -0
  232. package/dist/liquid-metal.mjs +4 -0
  233. package/dist/liquid-metal.mjs.map +1 -0
  234. package/dist/navigation-menu-icons.d.cts +5 -0
  235. package/dist/navigation-menu-icons.d.ts +5 -0
  236. package/dist/navigation-menu-icons.d.ts.map +1 -0
  237. package/dist/navigation-menu-icons.js +42 -0
  238. package/dist/navigation-menu-icons.js.map +1 -0
  239. package/dist/navigation-menu-icons.mjs +3 -0
  240. package/dist/navigation-menu-icons.mjs.map +1 -0
  241. package/dist/navigation-menu-styles.d.cts +45 -0
  242. package/dist/navigation-menu-styles.d.ts +45 -0
  243. package/dist/navigation-menu-styles.d.ts.map +1 -0
  244. package/dist/navigation-menu-styles.js +16 -0
  245. package/dist/navigation-menu-styles.js.map +1 -0
  246. package/dist/navigation-menu-styles.mjs +3 -0
  247. package/dist/navigation-menu-styles.mjs.map +1 -0
  248. package/dist/navigation-menu.d.cts +18 -0
  249. package/dist/navigation-menu.d.ts +18 -0
  250. package/dist/navigation-menu.d.ts.map +1 -0
  251. package/dist/navigation-menu.js +367 -0
  252. package/dist/navigation-menu.js.map +1 -0
  253. package/dist/navigation-menu.mjs +7 -0
  254. package/dist/navigation-menu.mjs.map +1 -0
  255. package/dist/password-input.d.cts +6 -0
  256. package/dist/password-input.d.ts +6 -0
  257. package/dist/password-input.d.ts.map +1 -0
  258. package/dist/password-input.js +174 -0
  259. package/dist/password-input.js.map +1 -0
  260. package/dist/password-input.mjs +5 -0
  261. package/dist/password-input.mjs.map +1 -0
  262. package/dist/rainbow-button.d.cts +16 -0
  263. package/dist/rainbow-button.d.ts +16 -0
  264. package/dist/rainbow-button.d.ts.map +1 -0
  265. package/dist/rainbow-button.js +49 -0
  266. package/dist/rainbow-button.js.map +1 -0
  267. package/dist/rainbow-button.mjs +4 -0
  268. package/dist/rainbow-button.mjs.map +1 -0
  269. package/dist/range-slider.d.cts +20 -0
  270. package/dist/range-slider.d.ts +20 -0
  271. package/dist/range-slider.d.ts.map +1 -0
  272. package/dist/range-slider.js +85 -0
  273. package/dist/range-slider.js.map +1 -0
  274. package/dist/range-slider.mjs +3 -0
  275. package/dist/range-slider.mjs.map +1 -0
  276. package/dist/rolling-badge.d.cts +11 -0
  277. package/dist/rolling-badge.d.ts +11 -0
  278. package/dist/rolling-badge.d.ts.map +1 -0
  279. package/dist/rolling-badge.js +71 -0
  280. package/dist/rolling-badge.js.map +1 -0
  281. package/dist/rolling-badge.mjs +4 -0
  282. package/dist/rolling-badge.mjs.map +1 -0
  283. package/dist/savings-badge.d.cts +10 -0
  284. package/dist/savings-badge.d.ts +10 -0
  285. package/dist/savings-badge.d.ts.map +1 -0
  286. package/dist/savings-badge.js +26 -0
  287. package/dist/savings-badge.js.map +1 -0
  288. package/dist/savings-badge.mjs +4 -0
  289. package/dist/savings-badge.mjs.map +1 -0
  290. package/dist/shine-border.d.cts +15 -0
  291. package/dist/shine-border.d.ts +15 -0
  292. package/dist/shine-border.d.ts.map +1 -0
  293. package/dist/shine-border.js +47 -0
  294. package/dist/shine-border.js.map +1 -0
  295. package/dist/shine-border.mjs +4 -0
  296. package/dist/shine-border.mjs.map +1 -0
  297. package/dist/sparkles-text.d.cts +22 -0
  298. package/dist/sparkles-text.d.ts +22 -0
  299. package/dist/sparkles-text.d.ts.map +1 -0
  300. package/dist/sparkles-text.js +87 -0
  301. package/dist/sparkles-text.js.map +1 -0
  302. package/dist/sparkles-text.mjs +5 -0
  303. package/dist/sparkles-text.mjs.map +1 -0
  304. package/dist/tabs.d.cts +16 -0
  305. package/dist/tabs.d.ts +16 -0
  306. package/dist/tabs.d.ts.map +1 -0
  307. package/dist/tabs.js +121 -0
  308. package/dist/tabs.js.map +1 -0
  309. package/dist/tabs.mjs +4 -0
  310. package/dist/tabs.mjs.map +1 -0
  311. package/dist/theme-toggle.d.cts +10 -0
  312. package/dist/theme-toggle.d.ts +10 -0
  313. package/dist/theme-toggle.d.ts.map +1 -0
  314. package/dist/theme-toggle.js +251 -0
  315. package/dist/theme-toggle.js.map +1 -0
  316. package/dist/theme-toggle.mjs +7 -0
  317. package/dist/theme-toggle.mjs.map +1 -0
  318. package/package.json +428 -0
@@ -0,0 +1,125 @@
1
+ 'use strict';
2
+
3
+ var framerMotion = require('framer-motion');
4
+ var react = require('react');
5
+ var roughNotation = require('rough-notation');
6
+ var clsx = require('clsx');
7
+ var tailwindMerge = require('tailwind-merge');
8
+ var jsxRuntime = require('react/jsx-runtime');
9
+
10
+ function useMediaQuery(query, defaultState = false) {
11
+ const [matches, setMatches] = react.useState(defaultState);
12
+ react.useEffect(() => {
13
+ const mql = globalThis.matchMedia(query);
14
+ setMatches(mql.matches);
15
+ const onChange = (e) => setMatches(e.matches);
16
+ mql.addEventListener("change", onChange);
17
+ return () => mql.removeEventListener("change", onChange);
18
+ }, [query]);
19
+ return matches;
20
+ }
21
+ function cn(...inputs) {
22
+ return tailwindMerge.twMerge(clsx.clsx(inputs));
23
+ }
24
+ function resolveColor(element, color) {
25
+ if (!color.startsWith("var(")) return color;
26
+ const token = color.slice(4, -1).trim();
27
+ return globalThis.getComputedStyle(element).getPropertyValue(token).trim() || color;
28
+ }
29
+ var BREAKPOINTS = [
30
+ ["xs", 30],
31
+ ["sm", 40],
32
+ ["md", 50],
33
+ ["lg", 64],
34
+ ["xl", 80],
35
+ ["2xl", 96]
36
+ ];
37
+ function getBreakpoint() {
38
+ let current = "base";
39
+ for (const [name, rem] of BREAKPOINTS) {
40
+ if (globalThis.matchMedia(`(min-width: ${rem}rem)`).matches) current = name;
41
+ }
42
+ return current;
43
+ }
44
+ function onBreakpointChange(listener) {
45
+ const queries = BREAKPOINTS.map(([, rem]) => globalThis.matchMedia(`(min-width: ${rem}rem)`));
46
+ for (const query of queries) query.addEventListener("change", listener);
47
+ return () => {
48
+ for (const query of queries) query.removeEventListener("change", listener);
49
+ };
50
+ }
51
+ function Highlighter({
52
+ children,
53
+ className,
54
+ action = "highlight",
55
+ color = "var(--marker-highlight)",
56
+ strokeWidth = 1.5,
57
+ animationDuration = 600,
58
+ delay = 0,
59
+ iterations = 2,
60
+ padding = 2,
61
+ multiline = true,
62
+ isView = false
63
+ }) {
64
+ const elementRef = react.useRef(null);
65
+ const isInView = framerMotion.useInView(elementRef, { once: true, margin: "-10%" });
66
+ const reducedMotion = useMediaQuery("(prefers-reduced-motion: reduce)");
67
+ const [themeVersion, setThemeVersion] = react.useState(0);
68
+ const shouldShow = !isView || isInView;
69
+ react.useLayoutEffect(() => {
70
+ const observer = new MutationObserver(() => setThemeVersion((v) => v + 1));
71
+ observer.observe(document.documentElement, { attributes: true, attributeFilter: ["class"] });
72
+ return () => observer.disconnect();
73
+ }, []);
74
+ react.useLayoutEffect(() => {
75
+ const element = elementRef.current;
76
+ if (!(shouldShow && element)) return;
77
+ let annotation;
78
+ let untrack;
79
+ const draw = () => {
80
+ annotation = roughNotation.annotate(element, {
81
+ type: action,
82
+ color: resolveColor(element, color),
83
+ strokeWidth,
84
+ animationDuration,
85
+ animate: !reducedMotion,
86
+ iterations,
87
+ padding,
88
+ multiline
89
+ });
90
+ annotation.show();
91
+ let drawnAt = getBreakpoint();
92
+ untrack = onBreakpointChange(() => {
93
+ const current = getBreakpoint();
94
+ if (current === drawnAt) return;
95
+ drawnAt = current;
96
+ annotation?.show();
97
+ });
98
+ };
99
+ const startDelay = reducedMotion ? 0 : delay;
100
+ const timer = startDelay > 0 ? globalThis.setTimeout(draw, startDelay) : void 0;
101
+ if (timer === void 0) draw();
102
+ return () => {
103
+ globalThis.clearTimeout(timer);
104
+ untrack?.();
105
+ annotation?.remove();
106
+ };
107
+ }, [
108
+ shouldShow,
109
+ action,
110
+ color,
111
+ strokeWidth,
112
+ animationDuration,
113
+ delay,
114
+ iterations,
115
+ padding,
116
+ multiline,
117
+ reducedMotion,
118
+ themeVersion
119
+ ]);
120
+ return /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("relative inline-block bg-transparent", className), children: /* @__PURE__ */ jsxRuntime.jsx("span", { ref: elementRef, children }) });
121
+ }
122
+
123
+ exports.Highlighter = Highlighter;
124
+ //# sourceMappingURL=highlighter.js.map
125
+ //# sourceMappingURL=highlighter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/use-media-query.ts","../src/lib/utils.ts","../src/components/highlighter.tsx"],"names":["useState","useEffect","twMerge","clsx","useRef","useInView","useLayoutEffect","annotate","jsx"],"mappings":"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","file":"highlighter.js","sourcesContent":["'use client';\n\nimport { useEffect, useState } from 'react';\n\n/**\n * Tracks a CSS media query, returning `true` when it matches.\n *\n * The default return before hydration is `false`; pass `defaultState`\n * to set a different initial value (e.g. `true` for dark-mode queries\n * whose SSR default is dark).\n */\nexport function useMediaQuery(query: string, defaultState = false): boolean {\n const [matches, setMatches] = useState(defaultState);\n\n // biome-ignore lint/plugin: subscribes to a matchMedia listener — an imperative side effect with no derived-state equivalent.\n useEffect(() => {\n const mql = globalThis.matchMedia(query);\n setMatches(mql.matches);\n\n const onChange = (e: MediaQueryListEvent) => setMatches(e.matches);\n mql.addEventListener('change', onChange);\n return () => mql.removeEventListener('change', onChange);\n }, [query]);\n\n return matches;\n}\n","import { type ClassValue, clsx } from 'clsx';\nimport type { CSSProperties } from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\n/**\n * A style object that may carry CSS custom properties (CSS variables)\n * such as `--duration`. React's `CSSProperties` intentionally drops\n * its index signature, so custom properties are not accepted without help.\n */\nexport type CSSPropertiesWithVars = CSSProperties & Record<`--${string}`, string | number>;\n\n/**\n * Builds a {@link CSSProperties} value that also allows CSS custom properties,\n * so `style` props can be written without an `as React.CSSProperties` cast while\n * still type-checking both the known style keys and the custom-property values.\n *\n * @example\n * <div style={validCssVars({ '--duration': '0.35s', color: 'red' })} />\n */\nexport function validCssVars(style: CSSPropertiesWithVars): CSSProperties {\n return style;\n}\n\n/**\n * Narrows a union to the member(s) that declare `key` — a type-guard\n * replacement for the `in` operator's discriminated-union narrowing.\n */\nexport function hasKey<K extends PropertyKey>(key: K, obj: unknown): obj is Record<K, unknown> {\n return obj !== null && typeof obj === 'object' && Object.hasOwn(obj, key);\n}\n\nexport function noop(): void {\n // intentional no-op\n}\n","'use client';\n\nimport { useInView } from 'framer-motion';\nimport { type ReactNode, useLayoutEffect, useRef, useState } from 'react';\nimport { annotate } from 'rough-notation';\nimport type { RoughAnnotation } from 'rough-notation/lib/model';\nimport { useMediaQuery } from '../lib/use-media-query.js';\nimport { cn } from '../lib/utils.js';\n\ntype AnnotationAction = 'highlight' | 'underline' | 'box' | 'circle' | 'strike-through' | 'crossed-off' | 'bracket';\n\n/**\n * rough-notation writes the colour straight into the SVG's `stroke` presentation\n * attribute, where `var()` is never substituted — so a design token has to be\n * resolved against the live element before it is handed over.\n */\nfunction resolveColor(element: Element, color: string): string {\n if (!color.startsWith('var(')) return color;\n const token = color.slice(4, -1).trim();\n return globalThis.getComputedStyle(element).getPropertyValue(token).trim() || color;\n}\n\n/**\n * The site's breakpoints, ascending, in the `rem` units Tailwind emits them in —\n * so they keep tracking the root font size the way the CSS does. Mirrored from\n * the library's `@theme` block (`xs` and `md` are custom, the rest are defaults).\n */\nconst BREAKPOINTS = [\n ['xs', 30],\n ['sm', 40],\n ['md', 50],\n ['lg', 64],\n ['xl', 80],\n ['2xl', 96],\n] as const;\n\ntype Breakpoint = 'base' | (typeof BREAKPOINTS)[number][0];\n\n/** `'base'` is the implicit below-`xs` band — the widths no `min-width` query claims. */\nfunction getBreakpoint(): Breakpoint {\n let current: Breakpoint = 'base';\n for (const [name, rem] of BREAKPOINTS) {\n if (globalThis.matchMedia(`(min-width: ${rem}rem)`).matches) current = name;\n }\n return current;\n}\n\n/**\n * Call `listener` whenever the viewport crosses a breakpoint. Returns the\n * unsubscribe.\n *\n * The imperative counterpart to a `useBreakpoint` hook, for work that has to land\n * in the *same frame* as the layout change. Media-query change events fire during\n * the rendering steps, before `requestAnimationFrame` and before paint, so a\n * listener that writes to the DOM here is painted with the new layout rather than\n * one frame behind it.\n */\nfunction onBreakpointChange(listener: () => void): () => void {\n const queries = BREAKPOINTS.map(([, rem]) => globalThis.matchMedia(`(min-width: ${rem}rem)`));\n for (const query of queries) query.addEventListener('change', listener);\n return () => {\n for (const query of queries) query.removeEventListener('change', listener);\n };\n}\n\ntype HighlighterProps = {\n /** The words to annotate. Rendered inline, so they inherit the surrounding type. */\n children: ReactNode;\n className?: string;\n /**\n * Which marker stroke to draw.\n * @default 'highlight'\n */\n action?: AnnotationAction;\n /**\n * Stroke colour. Accepts a `var(--token)` string, which is resolved against\n * the live element and re-resolved whenever the theme flips.\n * @default 'var(--marker-highlight)'\n */\n color?: string;\n /** @default 1.5 */\n strokeWidth?: number;\n /** Milliseconds the stroke takes to draw itself on. @default 600 */\n animationDuration?: number;\n /**\n * Milliseconds to hold the stroke back before it starts drawing. Ignored under\n * reduced motion, where there is no draw-on to stagger.\n * @default 0\n */\n delay?: number;\n /** Passes over the same stroke, which is what makes it read as hand-drawn. @default 2 */\n iterations?: number;\n /** Pixels of slack between the text box and the stroke. @default 2 */\n padding?: number;\n /** Annotate every line the text wraps onto, rather than one box around all of them. @default true */\n multiline?: boolean;\n /** Hold the stroke back until the text scrolls into view. @default false */\n isView?: boolean;\n};\n\n/**\n * Draws a hand-drawn marker stroke over a word or phrase.\n *\n * The stroke is an SVG that rough-notation injects on the client, so the\n * exported HTML ships the bare text and nothing about the layout depends on JS\n * having run. Readers who ask for reduced motion get the stroke without the\n * draw-on animation.\n */\nexport function Highlighter({\n children,\n className,\n action = 'highlight',\n color = 'var(--marker-highlight)',\n strokeWidth = 1.5,\n animationDuration = 600,\n delay = 0,\n iterations = 2,\n padding = 2,\n multiline = true,\n isView = false,\n}: HighlighterProps) {\n const elementRef = useRef<HTMLSpanElement>(null);\n const isInView = useInView(elementRef, { once: true, margin: '-10%' });\n const reducedMotion = useMediaQuery('(prefers-reduced-motion: reduce)');\n // Only a re-run trigger: the colour itself comes from the computed style, which\n // is already correct on first paint because the theme class is set before\n // hydration. The observer below bumps this whenever the class attribute flips.\n const [themeVersion, setThemeVersion] = useState(0);\n\n const shouldShow = !isView || isInView;\n\n // Theme flips land as a class swap on <html> (the `.dark` class toggled by the\n // theme provider), and rough-notation bakes the *resolved* token into the\n // SVG's stroke attribute — which does not track var(). Re-running the draw\n // effect with a freshly resolved colour is what repaints the stroke.\n useLayoutEffect(() => {\n const observer = new MutationObserver(() => setThemeVersion((v) => v + 1));\n observer.observe(document.documentElement, { attributes: true, attributeFilter: ['class'] });\n return () => observer.disconnect();\n }, []);\n\n // Imperatively injects and tears down a rough-notation SVG measured off live\n // DOM layout — a post-render side effect with no render-time equivalent.\n // biome-ignore lint/correctness/useExhaustiveDependencies: `themeVersion` is a redraw trigger, not a read value — the token resolves to a different colour per theme, so a flip has to repaint the stroke.\n useLayoutEffect(() => {\n const element = elementRef.current;\n if (!(shouldShow && element)) return;\n\n let annotation: RoughAnnotation | undefined;\n let untrack: (() => void) | undefined;\n\n const draw = () => {\n annotation = annotate(element, {\n type: action,\n color: resolveColor(element, color),\n strokeWidth,\n animationDuration,\n animate: !reducedMotion,\n iterations,\n padding,\n multiline,\n });\n annotation.show();\n\n // The wrapper below already carries the stroke wherever the page moves the\n // text, so the only thing left that can stale it is a change in the text's\n // own shape — which on a breakpoint-driven layout means a breakpoint. This\n // is subscribed directly rather than through a `useBreakpoint` hook because\n // a React state round-trip commits a frame or more after the browser has\n // painted the new layout, which is exactly the lag being chased out.\n // `show()` on a still-showing annotation re-renders un-animated, so the\n // stroke resizes without replaying the draw-on.\n let drawnAt = getBreakpoint();\n untrack = onBreakpointChange(() => {\n const current = getBreakpoint();\n if (current === drawnAt) return;\n drawnAt = current;\n annotation?.show();\n });\n };\n\n const startDelay = reducedMotion ? 0 : delay;\n const timer = startDelay > 0 ? globalThis.setTimeout(draw, startDelay) : undefined;\n if (timer === undefined) draw();\n\n return () => {\n globalThis.clearTimeout(timer);\n untrack?.();\n annotation?.remove();\n };\n }, [\n shouldShow,\n action,\n color,\n strokeWidth,\n animationDuration,\n delay,\n iterations,\n padding,\n multiline,\n reducedMotion,\n themeVersion,\n ]);\n\n // Two spans, and both earn their place.\n //\n // rough-notation injects its SVG as a *sibling* of the annotated element, laid\n // out `position: absolute; top: 0; left: 0`, with the stroke's coordinates baked\n // as offsets from wherever that SVG lands. Left alone it resolves against\n // whatever positioned ancestor it happens to find — for a centred, shrink-wrapped\n // page section, effectively the viewport — so every reflow that slid the text\n // sideways slid it out from under its own stroke, and only a redraw put it back.\n // The `relative` wrapper makes the SVG resolve against a box the text sits\n // inside instead, so the two now move as one and no listener is involved.\n //\n // The inner span stays plain `inline`, which is what makes `multiline` work:\n // `getClientRects()` on an inline reports one box per line, so wrapped text gets\n // a stroke per line rather than one slab drawn around the whole paragraph.\n return (\n <span className={cn('relative inline-block bg-transparent', className)}>\n <span ref={elementRef}>{children}</span>\n </span>\n );\n}\n\nexport type { AnnotationAction, HighlighterProps };\n"]}
@@ -0,0 +1,5 @@
1
+ export { Highlighter } from './chunk-5QQAPGR2.mjs';
2
+ import './chunk-EYHT2EWJ.mjs';
3
+ import './chunk-QAWSH567.mjs';
4
+ //# sourceMappingURL=highlighter.mjs.map
5
+ //# sourceMappingURL=highlighter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"highlighter.mjs"}
package/dist/index.css ADDED
@@ -0,0 +1,27 @@
1
+ /* src/components/dia-text-reveal.css */
2
+ @keyframes dia-sweep-a {
3
+ from {
4
+ background-position-x: var(--dia-sweep-from, 83.5%);
5
+ }
6
+ to {
7
+ background-position-x: var(--dia-sweep-to, 16.5%);
8
+ }
9
+ }
10
+ @keyframes dia-sweep-b {
11
+ from {
12
+ background-position-x: var(--dia-sweep-from, 83.5%);
13
+ }
14
+ to {
15
+ background-position-x: var(--dia-sweep-to, 16.5%);
16
+ }
17
+ }
18
+
19
+ /* src/components/grainient.css */
20
+ .grainient-container {
21
+ position: absolute;
22
+ inset: 0;
23
+ width: 100%;
24
+ height: 100%;
25
+ overflow: hidden;
26
+ }
27
+ /*# sourceMappingURL=index.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/dia-text-reveal.css","../src/components/grainient.css"],"sourcesContent":["/* Keyframes for DiaTextReveal's gradient sweep.\n\n The band is a static gradient several times wider than the line (see\n dia-text-reveal.sweep.ts); sweeping it is just sliding that image, so the only thing\n animating here is background-position-x. Keeping it in CSS is the point: the sweep then\n runs on the browser's animation clock instead of a requestAnimationFrame loop, so a busy\n main thread — scrolling, WebGL render loops, React commits — can no longer stall it.\n\n Two identical rules under different names. Re-assigning animation-name is what restarts a\n CSS animation, and the rotating variant needs a restart per line; the alternative,\n remounting the span, would leave wrap mode's ResizeObserver bound to a detached node.\n\n The endpoints are supplied as custom properties by the component, which derives them from\n the band geometry. The literal fallbacks match SWEEP_FROM / SWEEP_TO for the same defaults\n and only apply if those properties never land. */\n\n@keyframes dia-sweep-a {\n from {\n background-position-x: var(--dia-sweep-from, 83.5%);\n }\n to {\n background-position-x: var(--dia-sweep-to, 16.5%);\n }\n}\n\n@keyframes dia-sweep-b {\n from {\n background-position-x: var(--dia-sweep-from, 83.5%);\n }\n to {\n background-position-x: var(--dia-sweep-to, 16.5%);\n }\n}\n",".grainient-container {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n"],"mappings":";AAgBA,WAAW;AACT;AACE,2BAAuB,IAAI,gBAAgB,EAAE;AAC/C;AACA;AACE,2BAAuB,IAAI,cAAc,EAAE;AAC7C;AACF;AAEA,WAAW;AACT;AACE,2BAAuB,IAAI,gBAAgB,EAAE;AAC/C;AACA;AACE,2BAAuB,IAAI,cAAc,EAAE;AAC7C;AACF;;;AChCA,CAAC;AACC,YAAU;AACV,SAAO;AACP,SAAO;AACP,UAAQ;AACR,YAAU;AACZ;","names":[]}
@@ -0,0 +1,56 @@
1
+ export { Accordion, AccordionContent, AccordionHeader, AccordionItem, AccordionTrigger } from './components/accordion.js';
2
+ export type { ActionSwapRollProps } from './components/action-swap.js';
3
+ export { ActionSwapRollIcon, ActionSwapRollText } from './components/action-swap.js';
4
+ export type { AnimatedBeamProps } from './components/animated-beam.js';
5
+ export { AnimatedBeam } from './components/animated-beam.js';
6
+ export type { ButtonProps } from './components/button.js';
7
+ export { Button } from './components/button.js';
8
+ export type { CardProps } from './components/card.js';
9
+ export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './components/card.js';
10
+ export type { DiaTextRevealProps } from './components/dia-text-reveal.js';
11
+ export { DiaTextReveal } from './components/dia-text-reveal.js';
12
+ export { ElevatedInput } from './components/elevated-input.js';
13
+ export type { FadeInProps, StaggerItemProps, StaggerProps } from './components/fade-in.js';
14
+ export { FadeIn, Stagger, StaggerItem } from './components/fade-in.js';
15
+ export type { FeatureCardProps } from './components/feature-card.js';
16
+ export { FeatureCard } from './components/feature-card.js';
17
+ export { ArrowLeft, ArrowRight, FlowDiamond, FlowNode, FlowPill, JoinArrow, SplitArrow, TurnDown, } from './components/flowchart-parts.js';
18
+ export type { GlossyButtonProps } from './components/glossy-button.js';
19
+ export { GlossyButton, glossyButtonVariants } from './components/glossy-button.js';
20
+ export { default as Grainient } from './components/grainient.js';
21
+ export type { GrainientProps } from './components/grainient.types.js';
22
+ export type { AnnotationAction, HighlighterProps } from './components/highlighter.js';
23
+ export { Highlighter } from './components/highlighter.js';
24
+ export type { InputProps } from './components/input.js';
25
+ export { Input } from './components/input.js';
26
+ export type { LiquidMetalProps } from './components/liquid-metal.js';
27
+ export { LiquidMetal } from './components/liquid-metal.js';
28
+ export { NavigationMenu, NavigationMenuArrow, NavigationMenuBackdrop, NavigationMenuContent, NavigationMenuIcon, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPortal, NavigationMenuSub, NavigationMenuSubTrigger, NavigationMenuTrigger, NavigationMenuViewport, } from './components/navigation-menu.js';
29
+ export { ArrowSvg, ChevronDownIcon, ChevronRightIcon } from './components/navigation-menu-icons.js';
30
+ export type { NavigationMenuLinkProps, NavigationMenuProps, NavigationMenuSubProps, NavigationMenuViewportProps, } from './components/navigation-menu-styles.js';
31
+ export { navigationMenuSubTriggerStyle, navigationMenuTriggerStyle, } from './components/navigation-menu-styles.js';
32
+ export type { PasswordInputProps } from './components/password-input.js';
33
+ export { PasswordInput } from './components/password-input.js';
34
+ export type { RainbowButtonProps } from './components/rainbow-button.js';
35
+ export { RainbowButton, rainbowButtonVariants } from './components/rainbow-button.js';
36
+ export type { RangeSliderProps, Tick } from './components/range-slider.js';
37
+ export { RangeSlider } from './components/range-slider.js';
38
+ export type { BadgeEntry, RollingBadgeProps } from './components/rolling-badge.js';
39
+ export { RollingBadge } from './components/rolling-badge.js';
40
+ export { SavingsBadge } from './components/savings-badge.js';
41
+ export type { ShineBorderProps } from './components/shine-border.js';
42
+ export { ShineBorder } from './components/shine-border.js';
43
+ export type { SparklesTextProps } from './components/sparkles-text.js';
44
+ export { SparklesText } from './components/sparkles-text.js';
45
+ export type { Tab, TabsProps } from './components/tabs.js';
46
+ export { Tabs } from './components/tabs.js';
47
+ export type { ThemeToggleProps } from './components/theme-toggle.js';
48
+ export { ThemeToggle } from './components/theme-toggle.js';
49
+ export type { Breakpoint } from './lib/breakpoints.js';
50
+ export { BREAKPOINTS, getBreakpoint, onBreakpointChange, useBreakpoint } from './lib/breakpoints.js';
51
+ export { EASE_OUT, EASE_OUT_CSS, easeOut, easeOutBack, SPRING_SWAP } from './lib/ease.js';
52
+ export type { SurfaceLevel } from './lib/surface.js';
53
+ export { solidSurface } from './lib/surface.js';
54
+ export type { CSSPropertiesWithVars } from './lib/utils.js';
55
+ export { cn, hasKey, noop, validCssVars } from './lib/utils.js';
56
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,56 @@
1
+ export { Accordion, AccordionContent, AccordionHeader, AccordionItem, AccordionTrigger } from './components/accordion.js';
2
+ export type { ActionSwapRollProps } from './components/action-swap.js';
3
+ export { ActionSwapRollIcon, ActionSwapRollText } from './components/action-swap.js';
4
+ export type { AnimatedBeamProps } from './components/animated-beam.js';
5
+ export { AnimatedBeam } from './components/animated-beam.js';
6
+ export type { ButtonProps } from './components/button.js';
7
+ export { Button } from './components/button.js';
8
+ export type { CardProps } from './components/card.js';
9
+ export { Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './components/card.js';
10
+ export type { DiaTextRevealProps } from './components/dia-text-reveal.js';
11
+ export { DiaTextReveal } from './components/dia-text-reveal.js';
12
+ export { ElevatedInput } from './components/elevated-input.js';
13
+ export type { FadeInProps, StaggerItemProps, StaggerProps } from './components/fade-in.js';
14
+ export { FadeIn, Stagger, StaggerItem } from './components/fade-in.js';
15
+ export type { FeatureCardProps } from './components/feature-card.js';
16
+ export { FeatureCard } from './components/feature-card.js';
17
+ export { ArrowLeft, ArrowRight, FlowDiamond, FlowNode, FlowPill, JoinArrow, SplitArrow, TurnDown, } from './components/flowchart-parts.js';
18
+ export type { GlossyButtonProps } from './components/glossy-button.js';
19
+ export { GlossyButton, glossyButtonVariants } from './components/glossy-button.js';
20
+ export { default as Grainient } from './components/grainient.js';
21
+ export type { GrainientProps } from './components/grainient.types.js';
22
+ export type { AnnotationAction, HighlighterProps } from './components/highlighter.js';
23
+ export { Highlighter } from './components/highlighter.js';
24
+ export type { InputProps } from './components/input.js';
25
+ export { Input } from './components/input.js';
26
+ export type { LiquidMetalProps } from './components/liquid-metal.js';
27
+ export { LiquidMetal } from './components/liquid-metal.js';
28
+ export { NavigationMenu, NavigationMenuArrow, NavigationMenuBackdrop, NavigationMenuContent, NavigationMenuIcon, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuPortal, NavigationMenuSub, NavigationMenuSubTrigger, NavigationMenuTrigger, NavigationMenuViewport, } from './components/navigation-menu.js';
29
+ export { ArrowSvg, ChevronDownIcon, ChevronRightIcon } from './components/navigation-menu-icons.js';
30
+ export type { NavigationMenuLinkProps, NavigationMenuProps, NavigationMenuSubProps, NavigationMenuViewportProps, } from './components/navigation-menu-styles.js';
31
+ export { navigationMenuSubTriggerStyle, navigationMenuTriggerStyle, } from './components/navigation-menu-styles.js';
32
+ export type { PasswordInputProps } from './components/password-input.js';
33
+ export { PasswordInput } from './components/password-input.js';
34
+ export type { RainbowButtonProps } from './components/rainbow-button.js';
35
+ export { RainbowButton, rainbowButtonVariants } from './components/rainbow-button.js';
36
+ export type { RangeSliderProps, Tick } from './components/range-slider.js';
37
+ export { RangeSlider } from './components/range-slider.js';
38
+ export type { BadgeEntry, RollingBadgeProps } from './components/rolling-badge.js';
39
+ export { RollingBadge } from './components/rolling-badge.js';
40
+ export { SavingsBadge } from './components/savings-badge.js';
41
+ export type { ShineBorderProps } from './components/shine-border.js';
42
+ export { ShineBorder } from './components/shine-border.js';
43
+ export type { SparklesTextProps } from './components/sparkles-text.js';
44
+ export { SparklesText } from './components/sparkles-text.js';
45
+ export type { Tab, TabsProps } from './components/tabs.js';
46
+ export { Tabs } from './components/tabs.js';
47
+ export type { ThemeToggleProps } from './components/theme-toggle.js';
48
+ export { ThemeToggle } from './components/theme-toggle.js';
49
+ export type { Breakpoint } from './lib/breakpoints.js';
50
+ export { BREAKPOINTS, getBreakpoint, onBreakpointChange, useBreakpoint } from './lib/breakpoints.js';
51
+ export { EASE_OUT, EASE_OUT_CSS, easeOut, easeOutBack, SPRING_SWAP } from './lib/ease.js';
52
+ export type { SurfaceLevel } from './lib/surface.js';
53
+ export { solidSurface } from './lib/surface.js';
54
+ export type { CSSPropertiesWithVars } from './lib/utils.js';
55
+ export { cn, hasKey, noop, validCssVars } from './lib/utils.js';
56
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}