@nous-research/ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/README.md +49 -0
  2. package/dist/assets/filler-bg0.jpg +0 -0
  3. package/dist/fonts/Collapse-Bold.woff2 +0 -0
  4. package/dist/fonts/Collapse-BoldItalic.woff2 +0 -0
  5. package/dist/fonts/Collapse-Italic.woff2 +0 -0
  6. package/dist/fonts/Collapse-Light.woff2 +0 -0
  7. package/dist/fonts/Collapse-LightItalic.woff2 +0 -0
  8. package/dist/fonts/Collapse-Regular.woff2 +0 -0
  9. package/dist/fonts/Collapse-Thin.woff2 +0 -0
  10. package/dist/fonts/Collapse-ThinItalic.woff2 +0 -0
  11. package/dist/fonts/Mondwest-Regular.woff2 +0 -0
  12. package/dist/fonts/Neuebit-Bold.woff2 +0 -0
  13. package/dist/fonts/RulesCompressed-Medium.woff2 +0 -0
  14. package/dist/fonts/RulesCompressed-Regular.woff2 +0 -0
  15. package/dist/fonts/RulesExpanded-Bold.woff2 +0 -0
  16. package/dist/fonts/RulesExpanded-Regular.woff2 +0 -0
  17. package/dist/fonts.d.ts +6 -0
  18. package/dist/fonts.js +7 -0
  19. package/dist/fonts.js.map +1 -0
  20. package/dist/hooks/use-capped-frame.d.ts +2 -0
  21. package/dist/hooks/use-capped-frame.js +15 -0
  22. package/dist/hooks/use-capped-frame.js.map +1 -0
  23. package/dist/hooks/use-css-var-dims.d.ts +1 -0
  24. package/dist/hooks/use-css-var-dims.js +23 -0
  25. package/dist/hooks/use-css-var-dims.js.map +1 -0
  26. package/dist/hooks/use-gpu-tier.d.ts +10 -0
  27. package/dist/hooks/use-gpu-tier.js +92 -0
  28. package/dist/hooks/use-gpu-tier.js.map +1 -0
  29. package/dist/hooks/use-smooth-controls.d.ts +16 -0
  30. package/dist/hooks/use-smooth-controls.js +202 -0
  31. package/dist/hooks/use-smooth-controls.js.map +1 -0
  32. package/dist/index.d.ts +45 -0
  33. package/dist/index.js +48 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/ui/basic-page.d.ts +7 -0
  36. package/dist/ui/basic-page.js +9 -0
  37. package/dist/ui/basic-page.js.map +1 -0
  38. package/dist/ui/components/animated-count.d.ts +10 -0
  39. package/dist/ui/components/animated-count.js +88 -0
  40. package/dist/ui/components/animated-count.js.map +1 -0
  41. package/dist/ui/components/ascii.d.ts +10 -0
  42. package/dist/ui/components/ascii.js +62 -0
  43. package/dist/ui/components/ascii.js.map +1 -0
  44. package/dist/ui/components/badge.d.ts +2 -0
  45. package/dist/ui/components/badge.js +5 -0
  46. package/dist/ui/components/badge.js.map +1 -0
  47. package/dist/ui/components/badges/nous-girl.d.ts +2 -0
  48. package/dist/ui/components/badges/nous-girl.js +5 -0
  49. package/dist/ui/components/badges/nous-girl.js.map +1 -0
  50. package/dist/ui/components/blend-mode.d.ts +28 -0
  51. package/dist/ui/components/blend-mode.js +76 -0
  52. package/dist/ui/components/blend-mode.js.map +1 -0
  53. package/dist/ui/components/blink.d.ts +6 -0
  54. package/dist/ui/components/blink.js +7 -0
  55. package/dist/ui/components/blink.js.map +1 -0
  56. package/dist/ui/components/button.d.ts +11 -0
  57. package/dist/ui/components/button.js +52 -0
  58. package/dist/ui/components/button.js.map +1 -0
  59. package/dist/ui/components/cursor.d.ts +3 -0
  60. package/dist/ui/components/cursor.js +57 -0
  61. package/dist/ui/components/cursor.js.map +1 -0
  62. package/dist/ui/components/dropdown-menu.d.ts +12 -0
  63. package/dist/ui/components/dropdown-menu.js +53 -0
  64. package/dist/ui/components/dropdown-menu.js.map +1 -0
  65. package/dist/ui/components/fit-text/fit-text.css +42 -0
  66. package/dist/ui/components/fit-text/index.d.ts +9 -0
  67. package/dist/ui/components/fit-text/index.js +16 -0
  68. package/dist/ui/components/fit-text/index.js.map +1 -0
  69. package/dist/ui/components/graphs/bar-chart.d.ts +12 -0
  70. package/dist/ui/components/graphs/bar-chart.js +75 -0
  71. package/dist/ui/components/graphs/bar-chart.js.map +1 -0
  72. package/dist/ui/components/graphs/index.d.ts +3 -0
  73. package/dist/ui/components/graphs/index.js +4 -0
  74. package/dist/ui/components/graphs/index.js.map +1 -0
  75. package/dist/ui/components/graphs/line-chart.d.ts +14 -0
  76. package/dist/ui/components/graphs/line-chart.js +117 -0
  77. package/dist/ui/components/graphs/line-chart.js.map +1 -0
  78. package/dist/ui/components/graphs/utils.d.ts +52 -0
  79. package/dist/ui/components/graphs/utils.js +128 -0
  80. package/dist/ui/components/graphs/utils.js.map +1 -0
  81. package/dist/ui/components/grid/grid.css +78 -0
  82. package/dist/ui/components/grid/index.d.ts +2 -0
  83. package/dist/ui/components/grid/index.js +13 -0
  84. package/dist/ui/components/grid/index.js.map +1 -0
  85. package/dist/ui/components/hover-bg.d.ts +1 -0
  86. package/dist/ui/components/hover-bg.js +8 -0
  87. package/dist/ui/components/hover-bg.js.map +1 -0
  88. package/dist/ui/components/icons/arrow.d.ts +6 -0
  89. package/dist/ui/components/icons/arrow.js +6 -0
  90. package/dist/ui/components/icons/arrow.js.map +1 -0
  91. package/dist/ui/components/icons/chevron.d.ts +6 -0
  92. package/dist/ui/components/icons/chevron.js +6 -0
  93. package/dist/ui/components/icons/chevron.js.map +1 -0
  94. package/dist/ui/components/icons/eye.d.ts +2 -0
  95. package/dist/ui/components/icons/eye.js +5 -0
  96. package/dist/ui/components/icons/eye.js.map +1 -0
  97. package/dist/ui/components/icons/gear.d.ts +6 -0
  98. package/dist/ui/components/icons/gear.js +15 -0
  99. package/dist/ui/components/icons/gear.js.map +1 -0
  100. package/dist/ui/components/icons/heart.d.ts +2 -0
  101. package/dist/ui/components/icons/heart.js +5 -0
  102. package/dist/ui/components/icons/heart.js.map +1 -0
  103. package/dist/ui/components/icons/index.d.ts +8 -0
  104. package/dist/ui/components/icons/index.js +9 -0
  105. package/dist/ui/components/icons/index.js.map +1 -0
  106. package/dist/ui/components/icons/link.d.ts +2 -0
  107. package/dist/ui/components/icons/link.js +5 -0
  108. package/dist/ui/components/icons/link.js.map +1 -0
  109. package/dist/ui/components/icons/minus.d.ts +2 -0
  110. package/dist/ui/components/icons/minus.js +5 -0
  111. package/dist/ui/components/icons/minus.js.map +1 -0
  112. package/dist/ui/components/icons/search.d.ts +2 -0
  113. package/dist/ui/components/icons/search.js +5 -0
  114. package/dist/ui/components/icons/search.js.map +1 -0
  115. package/dist/ui/components/leva-client.d.ts +1 -0
  116. package/dist/ui/components/leva-client.js +12 -0
  117. package/dist/ui/components/leva-client.js.map +1 -0
  118. package/dist/ui/components/modal/index.d.ts +8 -0
  119. package/dist/ui/components/modal/index.js +15 -0
  120. package/dist/ui/components/modal/index.js.map +1 -0
  121. package/dist/ui/components/modal/modal.css +36 -0
  122. package/dist/ui/components/overlays/glitch.d.ts +6 -0
  123. package/dist/ui/components/overlays/glitch.js +191 -0
  124. package/dist/ui/components/overlays/glitch.js.map +1 -0
  125. package/dist/ui/components/overlays/greys.d.ts +6 -0
  126. package/dist/ui/components/overlays/greys.js +300 -0
  127. package/dist/ui/components/overlays/greys.js.map +1 -0
  128. package/dist/ui/components/overlays/index.d.ts +44 -0
  129. package/dist/ui/components/overlays/index.js +125 -0
  130. package/dist/ui/components/overlays/index.js.map +1 -0
  131. package/dist/ui/components/overlays/noise.d.ts +6 -0
  132. package/dist/ui/components/overlays/noise.js +115 -0
  133. package/dist/ui/components/overlays/noise.js.map +1 -0
  134. package/dist/ui/components/overlays/vignette.d.ts +6 -0
  135. package/dist/ui/components/overlays/vignette.js +40 -0
  136. package/dist/ui/components/overlays/vignette.js.map +1 -0
  137. package/dist/ui/components/progress.d.ts +9 -0
  138. package/dist/ui/components/progress.js +12 -0
  139. package/dist/ui/components/progress.js.map +1 -0
  140. package/dist/ui/components/scene-canvas.d.ts +15 -0
  141. package/dist/ui/components/scene-canvas.js +117 -0
  142. package/dist/ui/components/scene-canvas.js.map +1 -0
  143. package/dist/ui/components/scramble.d.ts +9 -0
  144. package/dist/ui/components/scramble.js +61 -0
  145. package/dist/ui/components/scramble.js.map +1 -0
  146. package/dist/ui/components/selection-switcher.d.ts +1 -0
  147. package/dist/ui/components/selection-switcher.js +29 -0
  148. package/dist/ui/components/selection-switcher.js.map +1 -0
  149. package/dist/ui/components/shader.d.ts +7 -0
  150. package/dist/ui/components/shader.js +41 -0
  151. package/dist/ui/components/shader.js.map +1 -0
  152. package/dist/ui/components/stats.d.ts +9 -0
  153. package/dist/ui/components/stats.js +7 -0
  154. package/dist/ui/components/stats.js.map +1 -0
  155. package/dist/ui/components/tv.d.ts +3 -0
  156. package/dist/ui/components/tv.js +163 -0
  157. package/dist/ui/components/tv.js.map +1 -0
  158. package/dist/ui/components/typography/h1.d.ts +11 -0
  159. package/dist/ui/components/typography/h1.js +8 -0
  160. package/dist/ui/components/typography/h1.js.map +1 -0
  161. package/dist/ui/components/typography/h2.d.ts +11 -0
  162. package/dist/ui/components/typography/h2.js +8 -0
  163. package/dist/ui/components/typography/h2.js.map +1 -0
  164. package/dist/ui/components/typography/index.d.ts +15 -0
  165. package/dist/ui/components/typography/index.js +29 -0
  166. package/dist/ui/components/typography/index.js.map +1 -0
  167. package/dist/ui/components/typography/legend.d.ts +6 -0
  168. package/dist/ui/components/typography/legend.js +7 -0
  169. package/dist/ui/components/typography/legend.js.map +1 -0
  170. package/dist/ui/components/typography/small.d.ts +2 -0
  171. package/dist/ui/components/typography/small.js +7 -0
  172. package/dist/ui/components/typography/small.js.map +1 -0
  173. package/dist/ui/components/watchlist.d.ts +11 -0
  174. package/dist/ui/components/watchlist.js +27 -0
  175. package/dist/ui/components/watchlist.js.map +1 -0
  176. package/dist/ui/fonts.css +63 -0
  177. package/dist/ui/footer.d.ts +1 -0
  178. package/dist/ui/footer.js +19 -0
  179. package/dist/ui/footer.js.map +1 -0
  180. package/dist/ui/globals.css +340 -0
  181. package/dist/ui/header.d.ts +1 -0
  182. package/dist/ui/header.js +22 -0
  183. package/dist/ui/header.js.map +1 -0
  184. package/dist/ui/layout-wrapper.d.ts +1 -0
  185. package/dist/ui/layout-wrapper.js +5 -0
  186. package/dist/ui/layout-wrapper.js.map +1 -0
  187. package/dist/utils/color.d.ts +4 -0
  188. package/dist/utils/color.js +14 -0
  189. package/dist/utils/color.js.map +1 -0
  190. package/dist/utils/index.d.ts +15 -0
  191. package/dist/utils/index.js +48 -0
  192. package/dist/utils/index.js.map +1 -0
  193. package/dist/utils/poly.d.ts +8 -0
  194. package/dist/utils/poly.js +3 -0
  195. package/dist/utils/poly.js.map +1 -0
  196. package/package.json +95 -0
@@ -0,0 +1,128 @@
1
+ 'use client';
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useEffect, useState } from 'react';
4
+ import { useSmoothControls } from '../../../hooks/use-smooth-controls';
5
+ export const accessor = (key) => typeof key === 'function' ? key : (d) => d[key];
6
+ export const CHART_MARGINS = {
7
+ marginBottom: 24,
8
+ marginLeft: 36,
9
+ marginRight: 12,
10
+ marginTop: 8
11
+ };
12
+ export const CHART_STYLE = {
13
+ background: 'transparent',
14
+ color: 'var(--midground)',
15
+ fontFamily: 'var(--font-mono), monospace',
16
+ fontSize: '11px',
17
+ overflow: 'hidden'
18
+ };
19
+ export const stylePlot = (plot) => {
20
+ plot.querySelectorAll('[aria-label*="grid"] line').forEach(el => Object.assign(el.style, {
21
+ stroke: 'currentColor',
22
+ strokeDasharray: '2,4',
23
+ strokeOpacity: '0.3'
24
+ }));
25
+ plot.querySelectorAll('text').forEach(el => Object.assign(el.style, {
26
+ fontSize: '11px',
27
+ fontWeight: '600'
28
+ }));
29
+ plot
30
+ .querySelectorAll('[aria-label*="label"] text')
31
+ .forEach(el => (el.style.opacity = '0.4'));
32
+ const svg = plot.querySelector('svg');
33
+ svg && (svg.style.display = 'block');
34
+ };
35
+ export const useDims = (ref) => {
36
+ const [dims, setDims] = useState({ h: 0, w: 0 });
37
+ useEffect(() => {
38
+ if (!ref.current) {
39
+ return;
40
+ }
41
+ const update = () => {
42
+ const { height: h, width: w } = ref.current.getBoundingClientRect();
43
+ const [rh, rw] = [Math.round(h), Math.round(w)];
44
+ rh &&
45
+ rw &&
46
+ setDims(st => (st.h === rh && st.w === rw ? st : { h: rh, w: rw }));
47
+ };
48
+ update();
49
+ const ro = new ResizeObserver(update);
50
+ ro.observe(ref.current);
51
+ return () => ro.disconnect();
52
+ }, [ref]);
53
+ return dims;
54
+ };
55
+ export const Crosshair = ({ color = 'var(--foreground)', containerWidth, height, points, x }) => {
56
+ if (x === null) {
57
+ return null;
58
+ }
59
+ const nearRight = x > containerWidth * 0.7;
60
+ return (_jsxs(_Fragment, { children: [_jsx("div", { className: "pointer-events-none absolute top-0 w-px", style: { background: color, height, left: x, opacity: 0.4 } }), points?.map((pt, i) => (_jsx("div", { className: "pointer-events-none absolute size-2 -translate-x-1/2 -translate-y-1/2 rounded-full", style: { background: color, left: x, top: pt.dotY } }, i))), points?.map((pt, i) => (_jsx("div", { className: "tooltip absolute -translate-y-1/2", style: {
61
+ left: nearRight ? undefined : x + 12,
62
+ right: nearRight ? containerWidth - x + 12 : undefined,
63
+ top: pt.dotY
64
+ }, children: pt.tooltip }, i)))] }));
65
+ };
66
+ export const setupCrosshair = (container, data, getX, getY, yDomain, formatTooltip, onUpdate, getZ) => {
67
+ if (!data.length) {
68
+ return () => { };
69
+ }
70
+ const { marginBottom, marginLeft, marginRight, marginTop } = CHART_MARGINS;
71
+ const seriesMap = data.reduce((m, d) => {
72
+ const key = getZ?.(d) ?? '__single__';
73
+ m.set(key, [...(m.get(key) ?? []), d]);
74
+ return m;
75
+ }, new Map());
76
+ const sortedSeries = [...seriesMap.values()].map(s => [...s].sort((a, b) => getX(a) - getX(b)));
77
+ const allX = data.map(getX);
78
+ const [xMin, xMax] = [Math.min(...allX), Math.max(...allX)];
79
+ const onMove = (e) => {
80
+ const rect = container.getBoundingClientRect();
81
+ const [localX, localY] = [e.clientX - rect.left, e.clientY - rect.top];
82
+ if (localX < 0 ||
83
+ localX > rect.width ||
84
+ localY < 0 ||
85
+ localY > rect.height) {
86
+ return onUpdate({ x: null });
87
+ }
88
+ const [chartLeft, chartRight] = [marginLeft, rect.width - marginRight];
89
+ const [chartTop, chartBottom] = [marginTop, rect.height - marginBottom];
90
+ if (localX < chartLeft || localX > chartRight) {
91
+ return onUpdate({ x: null });
92
+ }
93
+ const pct = (localX - chartLeft) / (chartRight - chartLeft);
94
+ const xVal = xMin + pct * (xMax - xMin);
95
+ const points = sortedSeries.map(sorted => {
96
+ const idx = sorted.findIndex(d => getX(d) >= xVal);
97
+ const [closest, yVal] = idx <= 0
98
+ ? [sorted[0], getY(sorted[0])]
99
+ : idx >= sorted.length
100
+ ? [sorted.at(-1), getY(sorted.at(-1))]
101
+ : (() => {
102
+ const [left, right] = [sorted[idx - 1], sorted[idx]];
103
+ const t = (xVal - getX(left)) / (getX(right) - getX(left));
104
+ return [
105
+ t < 0.5 ? left : right,
106
+ getY(left) + t * (getY(right) - getY(left))
107
+ ];
108
+ })();
109
+ const yPct = (yVal - yDomain[0]) / (yDomain[1] - yDomain[0]);
110
+ return {
111
+ dotY: chartBottom - yPct * (chartBottom - chartTop),
112
+ tooltip: formatTooltip(closest)
113
+ };
114
+ });
115
+ onUpdate({ points, x: localX });
116
+ };
117
+ document.addEventListener('mousemove', onMove);
118
+ return () => document.removeEventListener('mousemove', onMove);
119
+ };
120
+ export const withChartBlend = (Component) => {
121
+ const Wrapped = (props) => {
122
+ const { color } = useSmoothControls('Charts', { color: { value: '#709fea' } }, { collapsed: true });
123
+ return _jsx(Component, { ...props, color: color });
124
+ };
125
+ Wrapped.displayName = `withChartBlend(${Component.displayName ?? Component.name})`;
126
+ return Wrapped;
127
+ };
128
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/ui/components/graphs/utils.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ .g {
2
+ @apply grid grid-cols-1 border-l border-current/20;
3
+
4
+ &:has(> .gc:nth-child(3)):not(:has(> .gc:nth-child(4))) > .gc:nth-child(2) {
5
+ @apply -order-1;
6
+ }
7
+
8
+ @media (width >= 40rem) {
9
+ &:has(> .gc:nth-child(2)) {
10
+ @apply grid-cols-2;
11
+ }
12
+
13
+ &:has(> .gc:nth-child(3)):not(:has(> .gc:nth-child(4)))
14
+ > .gc:nth-child(2) {
15
+ @apply -order-1 col-span-full;
16
+ }
17
+ }
18
+
19
+ @media (width >= 64rem) {
20
+ &:has(> .gc:nth-child(3)) {
21
+ @apply grid-cols-3;
22
+ }
23
+
24
+ &:has(> .gc:nth-child(4)) {
25
+ @apply grid-cols-4;
26
+ }
27
+
28
+ &:has(> .gc:nth-child(5)) {
29
+ @apply grid-cols-5;
30
+ }
31
+
32
+ &:has(> .gc:nth-child(6)) {
33
+ @apply grid-cols-6;
34
+ }
35
+
36
+ &:has(> .gc:nth-child(3)):not(:has(> .gc:nth-child(4))) {
37
+ grid-template-columns: 1fr 2fr 1fr;
38
+
39
+ > .gc:nth-child(2) {
40
+ @apply order-none col-auto;
41
+ }
42
+ }
43
+ }
44
+
45
+ &:last-child {
46
+ @apply border-b;
47
+ }
48
+
49
+ &:first-child,
50
+ + .g > .gc,
51
+ > .g {
52
+ @apply border-t;
53
+ }
54
+
55
+ .g {
56
+ @apply border-l-0;
57
+ }
58
+
59
+ &:not(:last-child) .gc:last-child {
60
+ @apply border-b-0;
61
+ }
62
+
63
+ .gc {
64
+ @apply min-w-0 border-r border-inherit p-4;
65
+
66
+ &:has(> .gc) {
67
+ @apply p-0;
68
+
69
+ > .gc {
70
+ @apply border-r-0 not-first:border-t last:border-b-0;
71
+ }
72
+ }
73
+ }
74
+
75
+ .post.gc {
76
+ @apply lg:p-12;
77
+ }
78
+ }
@@ -0,0 +1,2 @@
1
+ export declare const Grid: import("../../..").PolyComponent<"div", object>;
2
+ export declare const Cell: import("../../..").PolyComponent<"div", object>;
@@ -0,0 +1,13 @@
1
+ import { createElement } from 'react';
2
+ import { cn, polyRef } from '../../../utils';
3
+ export const Grid = polyRef(({ as, className, ...rest }, ref) => createElement((as ?? 'div'), {
4
+ ...rest,
5
+ className: cn('g', className),
6
+ ref
7
+ }));
8
+ export const Cell = polyRef(({ as, className, ...rest }, ref) => createElement((as ?? 'div'), {
9
+ ...rest,
10
+ className: cn('gc', className),
11
+ ref
12
+ }));
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/components/grid/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAErC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAE5C,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,CAAQ,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,CACrE,aAAa,CAAC,CAAC,EAAE,IAAI,KAAK,CAAsB,EAAE;IAChD,GAAG,IAAI;IACP,SAAS,EAAE,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC;IAC7B,GAAG;CACJ,CAAC,CACH,CAAA;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,OAAO,CAAQ,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,CACrE,aAAa,CAAC,CAAC,EAAE,IAAI,KAAK,CAAsB,EAAE;IAChD,GAAG,IAAI;IACP,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;IAC9B,GAAG;CACJ,CAAC,CACH,CAAA"}
@@ -0,0 +1 @@
1
+ export declare const HoverBg: import("../..").PolyComponent<"span", object>;
@@ -0,0 +1,8 @@
1
+ import { createElement } from 'react';
2
+ import { cn, polyRef } from '../../utils';
3
+ export const HoverBg = polyRef(({ as, className, ...rest }, ref) => createElement((as ?? 'span'), {
4
+ ...rest,
5
+ className: cn('absolute inset-1 bg-midground pointer-events-none', 'opacity-5 transition-opacity duration-250 group-hover:opacity-5 opacity-0 group-hover:duration-0', className),
6
+ ref
7
+ }));
8
+ //# sourceMappingURL=hover-bg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hover-bg.js","sourceRoot":"","sources":["../../../src/ui/components/hover-bg.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAA;AAErC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAEzC,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAS,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,EAAE,EAAE,CACzE,aAAa,CAAC,CAAC,EAAE,IAAI,MAAM,CAAsB,EAAE;IACjD,GAAG,IAAI;IACP,SAAS,EAAE,EAAE,CACX,mDAAmD,EACnD,kGAAkG,EAClG,SAAS,CACV;IACD,GAAG;CACJ,CAAC,CACH,CAAA"}
@@ -0,0 +1,6 @@
1
+ import type { SVGProps } from 'react';
2
+ export declare function ArrowIcon({ className, direction, ...props }: ArrowIconProps): import("react/jsx-runtime").JSX.Element;
3
+ interface ArrowIconProps extends SVGProps<SVGSVGElement> {
4
+ direction?: 'down' | 'left' | 'right' | 'up';
5
+ }
6
+ export {};
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from '../../../utils';
3
+ export function ArrowIcon({ className, direction = 'down', ...props }) {
4
+ return (_jsxs("svg", { className: cn(direction === 'up' && 'rotate-180', direction === 'left' && 'rotate-90', direction === 'right' && '-rotate-90', 'origin-center', className), fill: "none", viewBox: "0 0 13 15", ...props, children: [_jsx("path", { clipRule: "evenodd", d: "M5 15V0h2.50075v15z", fill: "currentColor", fillRule: "evenodd" }), _jsx("path", { clipRule: "evenodd", d: "M10 12.5007H2.5V9.99998H10zM12.4976 9.99951H9.99805v-2.4996h2.49955zM2.4996 9.99951H0v-2.4996h2.4996z", fill: "currentColor", fillRule: "evenodd" })] }));
5
+ }
6
+ //# sourceMappingURL=arrow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arrow.js","sourceRoot":"","sources":["../../../../src/ui/components/icons/arrow.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AAEnC,MAAM,UAAU,SAAS,CAAC,EACxB,SAAS,EACT,SAAS,GAAG,MAAM,EAClB,GAAG,KAAK,EACO;IACf,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,SAAS,KAAK,IAAI,IAAI,YAAY,EAClC,SAAS,KAAK,MAAM,IAAI,WAAW,EACnC,SAAS,KAAK,OAAO,IAAI,YAAY,EACrC,eAAe,EACf,SAAS,CACV,EACD,IAAI,EAAC,MAAM,EACX,OAAO,EAAC,WAAW,KACf,KAAK,aAET,eACE,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,qBAAqB,EACvB,IAAI,EAAC,cAAc,EACnB,QAAQ,EAAC,SAAS,GAClB,EAEF,eACE,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,uGAAuG,EACzG,IAAI,EAAC,cAAc,EACnB,QAAQ,EAAC,SAAS,GAClB,IACE,CACP,CAAA;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { SVGProps } from 'react';
2
+ export declare function ChevronIcon({ className, direction, ...props }: ChevronIconProps): import("react/jsx-runtime").JSX.Element;
3
+ interface ChevronIconProps extends SVGProps<SVGSVGElement> {
4
+ direction?: 'left' | 'right';
5
+ }
6
+ export {};
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from '../../../utils';
3
+ export function ChevronIcon({ className, direction = 'left', ...props }) {
4
+ return (_jsxs("svg", { className: cn(direction === 'left' && 'rotate-90', direction === 'right' && '-rotate-90', className), fill: "none", viewBox: "0 0 8 13", ...props, children: [_jsx("path", { clipRule: "evenodd", d: "M0 7.49765h5V4.9969H1e-7z", fill: "currentColor", fillRule: "evenodd" }), _jsx("path", { clipRule: "evenodd", d: "M2.5 2.49765v7.5h2.50075v-7.5z", fill: "currentColor", fillRule: "evenodd" }), _jsx("path", { clipRule: "evenodd", d: "M5 .0000031V2.4996h2.4996V.0000032zM5 9.99805v2.49965h2.4996V9.99805z", fill: "currentColor", fillRule: "evenodd" })] }));
5
+ }
6
+ //# sourceMappingURL=chevron.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chevron.js","sourceRoot":"","sources":["../../../../src/ui/components/icons/chevron.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AAEnC,MAAM,UAAU,WAAW,CAAC,EAC1B,SAAS,EACT,SAAS,GAAG,MAAM,EAClB,GAAG,KAAK,EACS;IACjB,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,SAAS,KAAK,MAAM,IAAI,WAAW,EACnC,SAAS,KAAK,OAAO,IAAI,YAAY,EACrC,SAAS,CACV,EACD,IAAI,EAAC,MAAM,EACX,OAAO,EAAC,UAAU,KACd,KAAK,aAET,eACE,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,2BAA2B,EAC7B,IAAI,EAAC,cAAc,EACnB,QAAQ,EAAC,SAAS,GAClB,EACF,eACE,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,gCAAgC,EAClC,IAAI,EAAC,cAAc,EACnB,QAAQ,EAAC,SAAS,GAClB,EACF,eACE,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,uEAAuE,EACzE,IAAI,EAAC,cAAc,EACnB,QAAQ,EAAC,SAAS,GAClB,IACE,CACP,CAAA;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from 'react';
2
+ export declare function EyeIcon(props: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export function EyeIcon(props) {
3
+ return (_jsx("svg", { fill: "none", viewBox: "0 0 26 17", ...props, children: _jsxs("g", { clipRule: "evenodd", fill: "currentColor", fillRule: "evenodd", children: [_jsx("path", { d: "M2.36308 9.45484H0V7.09067h2.36308zM23.6387 9.45484h2.3631V7.09067h-2.3631zM4.73047 2.36462h3.54519v2.36309H4.73047zM8.27539 0h9.45451v2.36417H8.27539zM8.27539 14.1808h9.45451v2.3641H8.27539zM4.73047 14.1808h3.54519v-2.3631H4.73047zM21.2718 2.36462h-3.5452v2.36309h3.5452zM21.2718 14.1808h-3.5452v-2.3631h3.5452zM2.36719 4.72751h2.36308v2.36308H2.36719zM2.36719 11.8179h2.36308V9.45486H2.36719z" }), _jsx("path", { d: "M23.6346 4.72751h-2.3631v2.36308h2.3631zM23.6346 11.8179h-2.3631V9.45486h2.3631zM14.7716 6.50014h-3.5452V4.13705h3.5452zm0 0v3.54516h-3.5452v2.3631h3.5452v-2.3631h2.363V6.50014zm-3.5452 0v3.54516H8.86328V6.50014z" })] }) }));
4
+ }
5
+ //# sourceMappingURL=eye.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eye.js","sourceRoot":"","sources":["../../../../src/ui/components/icons/eye.tsx"],"names":[],"mappings":";AAEA,MAAM,UAAU,OAAO,CAAC,KAA8B;IACpD,OAAO,CACL,cAAK,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,WAAW,KAAK,KAAK,YAC5C,aAAG,QAAQ,EAAC,SAAS,EAAC,IAAI,EAAC,cAAc,EAAC,QAAQ,EAAC,SAAS,aAC1D,eAAM,CAAC,EAAC,4YAA4Y,GAAG,EACvZ,eAAM,CAAC,EAAC,sNAAsN,GAAG,IAC/N,GACA,CACP,CAAA;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { type PropsWithChildren, type SVGProps } from 'react';
2
+ export declare function GearIcon({ children, innerScale, ...props }: GearIconProps): import("react/jsx-runtime").JSX.Element;
3
+ interface GearIconProps extends PropsWithChildren<SVGProps<SVGSVGElement>> {
4
+ innerScale?: number;
5
+ }
6
+ export {};
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { isValidElement } from 'react';
3
+ const VIEWBOX = '0 0 34 38';
4
+ const GEAR_PATH = 'M10.1249 3.37446h5.0624v3.37446h-5.0624zM23.6262 3.37446h-5.0625v3.37446h5.0625zM18.5637 0v3.37446h-3.3764L15.1877 0zM3.3762 6.74879l6.7487.00013.0003 3.37588h-6.749zM30.3748 6.74879l-6.7486.00013-.0003 3.37588h6.7489zM0 26.9988v-16.874h3.3762l-.00019 16.874zM33.7505 26.9988v-16.874h-3.3757l-.0003 16.874zM10.1248 30.3751H3.37586l.00015-3.3763 6.74879.0003zM23.6262 30.3751h6.749l-.0007-3.3763-6.7483.0003zM15.1873 33.7495h-5.0624l-.0001-3.3744 5.0625-.0001zM18.5637 33.7495h5.0625v-3.3744l-5.0625-.0001zM15.1874 37.1245l-.0001-3.375h3.3764l-.0003 3.375z';
5
+ export function GearIcon({ children, innerScale = 0.55, ...props }) {
6
+ const isSvg = isValidElement(children) && children.type === 'svg';
7
+ const viewBox = isSvg
8
+ ? (children.props.viewBox ?? VIEWBOX)
9
+ : VIEWBOX;
10
+ const inner = isSvg
11
+ ? children.props.children
12
+ : children;
13
+ return (_jsxs("svg", { fill: "none", viewBox: VIEWBOX, ...props, children: [_jsx("g", { clipRule: "evenodd", fill: "currentColor", fillRule: "evenodd", children: _jsx("path", { d: GEAR_PATH }) }), children && (_jsx("svg", { height: 26 * innerScale, width: 26 * innerScale, x: 17 - (26 * innerScale) / 2, y: 19 - (26 * innerScale) / 2, viewBox, children: inner }))] }));
14
+ }
15
+ //# sourceMappingURL=gear.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gear.js","sourceRoot":"","sources":["../../../../src/ui/components/icons/gear.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,cAAc,EAIf,MAAM,OAAO,CAAA;AAEd,MAAM,OAAO,GAAG,WAAW,CAAA;AAE3B,MAAM,SAAS,GACb,6iBAA6iB,CAAA;AAE/iB,MAAM,UAAU,QAAQ,CAAC,EACvB,QAAQ,EACR,UAAU,GAAG,IAAI,EACjB,GAAG,KAAK,EACM;IACd,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,IAAI,KAAK,KAAK,CAAA;IAEjE,MAAM,OAAO,GAAG,KAAK;QACnB,CAAC,CAAC,CAAE,QAAQ,CAAC,KAA8B,CAAC,OAAO,IAAI,OAAO,CAAC;QAC/D,CAAC,CAAC,OAAO,CAAA;IAEX,MAAM,KAAK,GAAG,KAAK;QACjB,CAAC,CAAE,QAAQ,CAAC,KAAkC,CAAC,QAAQ;QACvD,CAAC,CAAC,QAAQ,CAAA;IAEZ,OAAO,CACL,eAAK,IAAI,EAAC,MAAM,EAAC,OAAO,EAAE,OAAO,KAAM,KAAK,aAC1C,YAAG,QAAQ,EAAC,SAAS,EAAC,IAAI,EAAC,cAAc,EAAC,QAAQ,EAAC,SAAS,YAC1D,eAAM,CAAC,EAAE,SAAS,GAAI,GACpB,EAEH,QAAQ,IAAI,CACX,cACE,MAAM,EAAE,EAAE,GAAG,UAAU,EACvB,KAAK,EAAE,EAAE,GAAG,UAAU,EACtB,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,EAC7B,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,EACvB,OAAO,YAEZ,KAAK,GACF,CACP,IACG,CACP,CAAA;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from 'react';
2
+ export declare function HeartIcon(props: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export function HeartIcon(props) {
3
+ return (_jsx("svg", { fill: "none", viewBox: "0 0 14 12", ...props, children: _jsx("path", { d: "M13.2 0v5.65714h-1.8857v1.88572H9.42857v1.88571H7.54286v1.88573H5.65714V9.42857H3.77143V7.54286H1.88571V5.65714H0V0h5.65714v1.88571h1.88572V0z", fill: "currentColor" }) }));
4
+ }
5
+ //# sourceMappingURL=heart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heart.js","sourceRoot":"","sources":["../../../../src/ui/components/icons/heart.tsx"],"names":[],"mappings":";AAEA,MAAM,UAAU,SAAS,CAAC,KAA8B;IACtD,OAAO,CACL,cAAK,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,WAAW,KAAK,KAAK,YAC5C,eACE,CAAC,EAAC,gJAAgJ,EAClJ,IAAI,EAAC,cAAc,GACnB,GACE,CACP,CAAA;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ export * from './arrow';
2
+ export * from './chevron';
3
+ export * from './eye';
4
+ export * from './gear';
5
+ export * from './heart';
6
+ export * from './link';
7
+ export * from './minus';
8
+ export * from './search';
@@ -0,0 +1,9 @@
1
+ export * from './arrow';
2
+ export * from './chevron';
3
+ export * from './eye';
4
+ export * from './gear';
5
+ export * from './heart';
6
+ export * from './link';
7
+ export * from './minus';
8
+ export * from './search';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/components/icons/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA;AACzB,cAAc,OAAO,CAAA;AACrB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA"}
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from 'react';
2
+ export declare function LinkIcon(props: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export function LinkIcon(props) {
3
+ return (_jsx("svg", { fill: "none", viewBox: "0 0 17 7", ...props, children: _jsx("path", { d: "M.264191.25061 6.27068.265071V2.26334h3.96512v1.99578l4.0238.00091.043-2.06986-4.0381.07302-.0142-2.01254L16.271.250649l-.0144 6.006381h-5.992l-.0287-1.9981-3.96528-.0002v1.99826l-6.02085-.0001zM6.24063 2.26197l-3.97944-.01436v1.99827l3.97954.01446z", fill: "currentColor", stroke: "currentColor", strokeWidth: ".5" }) }));
4
+ }
5
+ //# sourceMappingURL=link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../../../../src/ui/components/icons/link.tsx"],"names":[],"mappings":";AAEA,MAAM,UAAU,QAAQ,CAAC,KAA8B;IACrD,OAAO,CACL,cAAK,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,UAAU,KAAK,KAAK,YAC3C,eACE,CAAC,EAAC,2PAA2P,EAC7P,IAAI,EAAC,cAAc,EACnB,MAAM,EAAC,cAAc,EACrB,WAAW,EAAC,IAAI,GAChB,GACE,CACP,CAAA;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from 'react';
2
+ export declare function MinusIcon(props: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ export function MinusIcon(props) {
3
+ return (_jsx("svg", { fill: "none", viewBox: "0 0 12 3", ...props, children: _jsx("path", { clipRule: "evenodd", d: "M12 0 0-5.2e-7-1e-7 2.50075H12z", fill: "currentColor", fillRule: "evenodd" }) }));
4
+ }
5
+ //# sourceMappingURL=minus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"minus.js","sourceRoot":"","sources":["../../../../src/ui/components/icons/minus.tsx"],"names":[],"mappings":";AAEA,MAAM,UAAU,SAAS,CAAC,KAA8B;IACtD,OAAO,CACL,cAAK,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,UAAU,KAAK,KAAK,YAC3C,eACE,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,iCAAiC,EACnC,IAAI,EAAC,cAAc,EACnB,QAAQ,EAAC,SAAS,GAClB,GACE,CACP,CAAA;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { SVGProps } from 'react';
2
+ export declare function SearchIcon(props: SVGProps<SVGSVGElement>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ export function SearchIcon(props) {
3
+ return (_jsxs("svg", { fill: "none", viewBox: "0 0 20 21", ...props, children: [_jsx("path", { clipRule: "evenodd", d: "M7.49773 1.6664h6.66637V0H7.49773zM14.1641 15.0001H7.49773v1.6664h6.66637z", fill: "currentColor", fillRule: "evenodd" }), _jsx("path", { clipRule: "evenodd", d: "M5.8336 3.33278H7.5v-1.6664H5.8336zM15.8359 13.3329h-1.6671v1.6672h1.6671zM4.16877 5.00017h1.66717V3.33301H4.16877zM17.5 11.6665h-1.6664v1.6664H17.5zM4.16406 11.6665V5.00012h-1.6664v6.66638zM17.4977 5.00012v6.66638h1.6664V5.00012z", fill: "currentColor", fillRule: "evenodd" }), _jsx("path", { clipRule: "evenodd", d: "M17.5 5.00017V3.33301h-1.6664v1.66716zM15.8359 3.33278v-1.6664h-1.6671v1.6664zM15.8359 10.0002V6.6665h-1.6671v3.3337zM14.1641 6.6664V5h-1.6664v1.6664zM5.8335 13.3328v-1.6664H4.16633V15H7.5v-1.6671zM4.16406 16.6664V15h-1.6664v1.6664zM2.5 18.3331v-1.6664H.8336v1.6664z", fill: "currentColor", fillRule: "evenodd" })] }));
4
+ }
5
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../../../src/ui/components/icons/search.tsx"],"names":[],"mappings":";AAEA,MAAM,UAAU,UAAU,CAAC,KAA8B;IACvD,OAAO,CACL,eAAK,IAAI,EAAC,MAAM,EAAC,OAAO,EAAC,WAAW,KAAK,KAAK,aAC5C,eACE,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,4EAA4E,EAC9E,IAAI,EAAC,cAAc,EACnB,QAAQ,EAAC,SAAS,GAClB,EAEF,eACE,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,wOAAwO,EAC1O,IAAI,EAAC,cAAc,EACnB,QAAQ,EAAC,SAAS,GAClB,EAEF,eACE,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,4QAA4Q,EAC9Q,IAAI,EAAC,cAAc,EACnB,QAAQ,EAAC,SAAS,GAClB,IACE,CACP,CAAA;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function LevaClient(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,12 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Leva } from 'leva';
4
+ import { useEffect, useState } from 'react';
5
+ export function LevaClient() {
6
+ const [hidden, setHidden] = useState(true);
7
+ useEffect(() => {
8
+ setHidden(!new URLSearchParams(window.location.search).has('dev'));
9
+ }, []);
10
+ return _jsx(Leva, { hidden });
11
+ }
12
+ //# sourceMappingURL=leva-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leva-client.js","sourceRoot":"","sources":["../../../src/ui/components/leva-client.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE3C,MAAM,UAAU,UAAU;IACxB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAE1C,SAAS,CAAC,GAAG,EAAE;QACb,SAAS,CAAC,CAAC,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IACpE,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,KAAC,IAAI,IAAO,MAAM,GAAM,CAAA;AACjC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare function Modal({ children, className, id, trigger, ...props }: ModalProps): import("react/jsx-runtime").JSX.Element;
2
+ interface ModalProps extends Omit<React.ComponentProps<'dialog'>, 'open'> {
3
+ trigger: (controls: {
4
+ close: () => void;
5
+ open: () => void;
6
+ }) => React.ReactNode;
7
+ }
8
+ export {};
@@ -0,0 +1,15 @@
1
+ 'use client';
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useCallback, useEffect, useRef, useState } from 'react';
4
+ import { createPortal } from 'react-dom';
5
+ import { cn } from '../../../utils';
6
+ export function Modal({ children, className, id, trigger, ...props }) {
7
+ const ref = useRef(null);
8
+ const [mounted, setMounted] = useState(false);
9
+ useEffect(() => setMounted(true), []);
10
+ const open = useCallback(() => ref.current?.showModal(), []);
11
+ const close = useCallback(() => ref.current?.close(), []);
12
+ return (_jsxs(_Fragment, { children: [trigger({ close, open }), mounted &&
13
+ createPortal(_jsx("dialog", { className: cn('modal', className), onClick: e => e.target === e.currentTarget && close(), id, ref, ...props, children: _jsx("div", { className: "modal-body post", children: children }) }), document.body)] }));
14
+ }
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/components/modal/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AAEnC,MAAM,UAAU,KAAK,CAAC,EACpB,QAAQ,EACR,SAAS,EACT,EAAE,EACF,OAAO,EACP,GAAG,KAAK,EACG;IACX,MAAM,GAAG,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAA;IAC3C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE7C,SAAS,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;IAErC,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAA;IAC5D,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;IAEzD,OAAO,CACL,8BACG,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAExB,OAAO;gBACN,YAAY,CACV,iBACE,SAAS,EAAE,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EACjC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,aAAa,IAAI,KAAK,EAAE,EAC/C,EAAE,EAAE,GAAG,KACT,KAAK,YAET,cAAK,SAAS,EAAC,iBAAiB,YAAE,QAAQ,GAAO,GAC1C,EACT,QAAQ,CAAC,IAAI,CACd,IACF,CACJ,CAAA;AACH,CAAC"}
@@ -0,0 +1,36 @@
1
+ .modal {
2
+ @apply bg-foreground-base text-background-base z-50 m-auto max-h-[85dvh] max-w-[90dvw] p-0 opacity-0 outline-none;
3
+
4
+ transition:
5
+ opacity 0.25s ease-out,
6
+ overlay 0.25s ease-out allow-discrete,
7
+ display 0.25s ease-out allow-discrete;
8
+
9
+ &::backdrop {
10
+ @apply bg-foreground-base/2 backdrop-blur-xs;
11
+
12
+ transition:
13
+ opacity 0.25s ease-out,
14
+ overlay 0.25s ease-out allow-discrete,
15
+ display 0.25s ease-out allow-discrete;
16
+ }
17
+
18
+ &[open] {
19
+ @apply opacity-100;
20
+
21
+ &::backdrop {
22
+ @apply opacity-100;
23
+ }
24
+ }
25
+
26
+ @starting-style {
27
+ &[open],
28
+ &[open]::backdrop {
29
+ @apply opacity-0;
30
+ }
31
+ }
32
+ }
33
+
34
+ .modal-body {
35
+ @apply overflow-y-auto p-8 font-mono normal-case;
36
+ }
@@ -0,0 +1,6 @@
1
+ export declare function Glitch({ className, style }: GlitchProps): import("react/jsx-runtime").JSX.Element | null;
2
+ interface GlitchProps {
3
+ className?: string;
4
+ style?: React.CSSProperties;
5
+ }
6
+ export {};