@nastechai-research/ui 0.13.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.
- package/CHANGELOG.md +5 -0
- package/README.md +21 -0
- package/dist/assets/filler-bg0.webp +0 -0
- package/dist/assets.d.ts +38 -0
- package/dist/fonts/Collapse-Bold.woff2 +0 -0
- package/dist/fonts/Collapse-BoldItalic.woff2 +0 -0
- package/dist/fonts/Collapse-Italic.woff2 +0 -0
- package/dist/fonts/Collapse-Light.woff2 +0 -0
- package/dist/fonts/Collapse-LightItalic.woff2 +0 -0
- package/dist/fonts/Collapse-Regular.woff2 +0 -0
- package/dist/fonts/Collapse-Thin.woff2 +0 -0
- package/dist/fonts/Collapse-ThinItalic.woff2 +0 -0
- package/dist/fonts/Mondwest-Regular.woff2 +0 -0
- package/dist/fonts/Neuebit-Bold.woff2 +0 -0
- package/dist/fonts/RulesCompressed-Medium.woff2 +0 -0
- package/dist/fonts/RulesCompressed-Regular.woff2 +0 -0
- package/dist/fonts/RulesExpanded-Bold.woff2 +0 -0
- package/dist/fonts/RulesExpanded-Regular.woff2 +0 -0
- package/dist/fonts.d.ts +6 -0
- package/dist/fonts.js +6 -0
- package/dist/hooks/use-below-breakpoint.d.ts +2 -0
- package/dist/hooks/use-below-breakpoint.js +17 -0
- package/dist/hooks/use-capped-frame.d.ts +2 -0
- package/dist/hooks/use-capped-frame.js +15 -0
- package/dist/hooks/use-confirm-delete.d.ts +10 -0
- package/dist/hooks/use-confirm-delete.js +35 -0
- package/dist/hooks/use-css-var-dims.d.ts +1 -0
- package/dist/hooks/use-css-var-dims.js +29 -0
- package/dist/hooks/use-gpu-tier.d.ts +34 -0
- package/dist/hooks/use-gpu-tier.js +111 -0
- package/dist/hooks/use-render-loop.d.ts +41 -0
- package/dist/hooks/use-render-loop.js +63 -0
- package/dist/hooks/use-smooth-controls.d.ts +16 -0
- package/dist/hooks/use-smooth-controls.js +217 -0
- package/dist/hooks/use-toast.d.ts +7 -0
- package/dist/hooks/use-toast.js +21 -0
- package/dist/index.d.ts +79 -0
- package/dist/index.js +107 -0
- package/dist/ui/basic-page.d.ts +7 -0
- package/dist/ui/basic-page.js +18 -0
- package/dist/ui/build.css +4 -0
- package/dist/ui/components/animated-count.d.ts +10 -0
- package/dist/ui/components/animated-count.js +113 -0
- package/dist/ui/components/ascii.d.ts +10 -0
- package/dist/ui/components/ascii.js +79 -0
- package/dist/ui/components/badge.d.ts +6 -0
- package/dist/ui/components/badge.js +40 -0
- package/dist/ui/components/badges/nous-girl.d.ts +2 -0
- package/dist/ui/components/badges/nous-girl.js +83 -0
- package/dist/ui/components/blend-mode.d.ts +28 -0
- package/dist/ui/components/blend-mode.js +69 -0
- package/dist/ui/components/blink.d.ts +6 -0
- package/dist/ui/components/blink.js +17 -0
- package/dist/ui/components/bottom-sheet.d.ts +15 -0
- package/dist/ui/components/bottom-sheet.js +192 -0
- package/dist/ui/components/button.d.ts +14 -0
- package/dist/ui/components/button.js +147 -0
- package/dist/ui/components/card.d.ts +5 -0
- package/dist/ui/components/card.js +74 -0
- package/dist/ui/components/checkbox.d.ts +2 -0
- package/dist/ui/components/checkbox.js +27 -0
- package/dist/ui/components/command-block.d.ts +24 -0
- package/dist/ui/components/command-block.js +56 -0
- package/dist/ui/components/confirm-dialog.d.ts +13 -0
- package/dist/ui/components/confirm-dialog.js +113 -0
- package/dist/ui/components/cursor.d.ts +3 -0
- package/dist/ui/components/cursor.js +97 -0
- package/dist/ui/components/dialog.d.ts +15 -0
- package/dist/ui/components/dialog.js +171 -0
- package/dist/ui/components/dropdown-menu.d.ts +12 -0
- package/dist/ui/components/dropdown-menu.js +102 -0
- package/dist/ui/components/fit-text/fit-text.css +42 -0
- package/dist/ui/components/fit-text/index.d.ts +9 -0
- package/dist/ui/components/fit-text/index.js +25 -0
- package/dist/ui/components/graphs/bar-chart.d.ts +12 -0
- package/dist/ui/components/graphs/bar-chart.js +129 -0
- package/dist/ui/components/graphs/index.d.ts +3 -0
- package/dist/ui/components/graphs/index.js +4 -0
- package/dist/ui/components/graphs/line-chart.d.ts +14 -0
- package/dist/ui/components/graphs/line-chart.js +175 -0
- package/dist/ui/components/graphs/utils.d.ts +52 -0
- package/dist/ui/components/graphs/utils.js +162 -0
- package/dist/ui/components/grid/grid.css +79 -0
- package/dist/ui/components/grid/index.d.ts +2 -0
- package/dist/ui/components/grid/index.js +17 -0
- package/dist/ui/components/hover-bg.d.ts +1 -0
- package/dist/ui/components/hover-bg.js +14 -0
- package/dist/ui/components/icons/arrow.d.ts +6 -0
- package/dist/ui/components/icons/arrow.js +44 -0
- package/dist/ui/components/icons/check.d.ts +2 -0
- package/dist/ui/components/icons/check.js +13 -0
- package/dist/ui/components/icons/chevron.d.ts +6 -0
- package/dist/ui/components/icons/chevron.js +51 -0
- package/dist/ui/components/icons/discord.d.ts +2 -0
- package/dist/ui/components/icons/discord.js +15 -0
- package/dist/ui/components/icons/eye.d.ts +2 -0
- package/dist/ui/components/icons/eye.js +8 -0
- package/dist/ui/components/icons/gear.d.ts +6 -0
- package/dist/ui/components/icons/gear.js +30 -0
- package/dist/ui/components/icons/github.d.ts +2 -0
- package/dist/ui/components/icons/github.js +15 -0
- package/dist/ui/components/icons/hamburger.d.ts +6 -0
- package/dist/ui/components/icons/hamburger.js +56 -0
- package/dist/ui/components/icons/heart.d.ts +2 -0
- package/dist/ui/components/icons/heart.js +11 -0
- package/dist/ui/components/icons/index.d.ts +12 -0
- package/dist/ui/components/icons/index.js +13 -0
- package/dist/ui/components/icons/link.d.ts +2 -0
- package/dist/ui/components/icons/link.js +13 -0
- package/dist/ui/components/icons/minus.d.ts +2 -0
- package/dist/ui/components/icons/minus.js +13 -0
- package/dist/ui/components/icons/search.d.ts +2 -0
- package/dist/ui/components/icons/search.js +33 -0
- package/dist/ui/components/image-distortion.d.ts +21 -0
- package/dist/ui/components/image-distortion.js +398 -0
- package/dist/ui/components/input.d.ts +1 -0
- package/dist/ui/components/input.js +21 -0
- package/dist/ui/components/label.d.ts +1 -0
- package/dist/ui/components/label.js +18 -0
- package/dist/ui/components/leva-client.d.ts +1 -0
- package/dist/ui/components/leva-client.js +12 -0
- package/dist/ui/components/list-item.d.ts +6 -0
- package/dist/ui/components/list-item.js +27 -0
- package/dist/ui/components/overlays/blend-modes.d.ts +1 -0
- package/dist/ui/components/overlays/blend-modes.js +14 -0
- package/dist/ui/components/overlays/glitch.d.ts +6 -0
- package/dist/ui/components/overlays/glitch.js +209 -0
- package/dist/ui/components/overlays/greys.d.ts +6 -0
- package/dist/ui/components/overlays/greys.js +339 -0
- package/dist/ui/components/overlays/index.d.ts +14 -0
- package/dist/ui/components/overlays/index.js +34 -0
- package/dist/ui/components/overlays/lens-layers.d.ts +14 -0
- package/dist/ui/components/overlays/lens-layers.js +95 -0
- package/dist/ui/components/overlays/lens.d.ts +44 -0
- package/dist/ui/components/overlays/lens.js +60 -0
- package/dist/ui/components/overlays/noise.d.ts +6 -0
- package/dist/ui/components/overlays/noise.js +136 -0
- package/dist/ui/components/overlays/vignette.d.ts +6 -0
- package/dist/ui/components/overlays/vignette.js +47 -0
- package/dist/ui/components/poster.d.ts +62 -0
- package/dist/ui/components/poster.js +256 -0
- package/dist/ui/components/progress.d.ts +9 -0
- package/dist/ui/components/progress.js +53 -0
- package/dist/ui/components/scene-canvas.d.ts +23 -0
- package/dist/ui/components/scene-canvas.js +179 -0
- package/dist/ui/components/scramble.d.ts +9 -0
- package/dist/ui/components/scramble.js +63 -0
- package/dist/ui/components/segmented.d.ts +20 -0
- package/dist/ui/components/segmented.js +51 -0
- package/dist/ui/components/select.d.ts +18 -0
- package/dist/ui/components/select.js +215 -0
- package/dist/ui/components/selection-switcher.d.ts +1 -0
- package/dist/ui/components/selection-switcher.js +34 -0
- package/dist/ui/components/separator.d.ts +5 -0
- package/dist/ui/components/separator.js +22 -0
- package/dist/ui/components/shader.d.ts +7 -0
- package/dist/ui/components/shader.js +60 -0
- package/dist/ui/components/socials.d.ts +20 -0
- package/dist/ui/components/socials.js +21 -0
- package/dist/ui/components/spinner.d.ts +20 -0
- package/dist/ui/components/spinner.js +38 -0
- package/dist/ui/components/stats.d.ts +16 -0
- package/dist/ui/components/stats.js +36 -0
- package/dist/ui/components/switch.d.ts +7 -0
- package/dist/ui/components/switch.js +37 -0
- package/dist/ui/components/tabs.d.ts +14 -0
- package/dist/ui/components/tabs.js +44 -0
- package/dist/ui/components/terminal-demo.d.ts +32 -0
- package/dist/ui/components/terminal-demo.js +125 -0
- package/dist/ui/components/theme-toggle.d.ts +6 -0
- package/dist/ui/components/theme-toggle.js +66 -0
- package/dist/ui/components/tier-card.d.ts +53 -0
- package/dist/ui/components/tier-card.js +146 -0
- package/dist/ui/components/toast.d.ts +8 -0
- package/dist/ui/components/toast.js +39 -0
- package/dist/ui/components/tv.d.ts +3 -0
- package/dist/ui/components/tv.js +239 -0
- package/dist/ui/components/typography/h1.d.ts +11 -0
- package/dist/ui/components/typography/h1.js +18 -0
- package/dist/ui/components/typography/h2.d.ts +11 -0
- package/dist/ui/components/typography/h2.js +18 -0
- package/dist/ui/components/typography/index.d.ts +15 -0
- package/dist/ui/components/typography/index.js +41 -0
- package/dist/ui/components/typography/legend.d.ts +6 -0
- package/dist/ui/components/typography/legend.js +20 -0
- package/dist/ui/components/typography/small.d.ts +2 -0
- package/dist/ui/components/typography/small.js +9 -0
- package/dist/ui/components/watchlist.d.ts +11 -0
- package/dist/ui/components/watchlist.js +80 -0
- package/dist/ui/fonts.css +63 -0
- package/dist/ui/footer.d.ts +20 -0
- package/dist/ui/footer.js +65 -0
- package/dist/ui/globals.css +395 -0
- package/dist/ui/header.d.ts +41 -0
- package/dist/ui/header.js +270 -0
- package/dist/ui/layout-wrapper.d.ts +1 -0
- package/dist/ui/layout-wrapper.js +7 -0
- package/dist/utils/color.d.ts +4 -0
- package/dist/utils/color.js +14 -0
- package/dist/utils/index.d.ts +15 -0
- package/dist/utils/index.js +48 -0
- package/dist/utils/poly.d.ts +8 -0
- package/dist/utils/poly.js +3 -0
- package/package.json +120 -0
- package/src/assets/filler-bg0.webp +0 -0
- package/src/assets.d.ts +38 -0
- package/src/fonts/Collapse-Bold.woff2 +0 -0
- package/src/fonts/Collapse-BoldItalic.woff2 +0 -0
- package/src/fonts/Collapse-Italic.woff2 +0 -0
- package/src/fonts/Collapse-Light.woff2 +0 -0
- package/src/fonts/Collapse-LightItalic.woff2 +0 -0
- package/src/fonts/Collapse-Regular.woff2 +0 -0
- package/src/fonts/Collapse-Thin.woff2 +0 -0
- package/src/fonts/Collapse-ThinItalic.woff2 +0 -0
- package/src/fonts/Mondwest-Regular.woff2 +0 -0
- package/src/fonts/Neuebit-Bold.woff2 +0 -0
- package/src/fonts/RulesCompressed-Medium.woff2 +0 -0
- package/src/fonts/RulesCompressed-Regular.woff2 +0 -0
- package/src/fonts/RulesExpanded-Bold.woff2 +0 -0
- package/src/fonts/RulesExpanded-Regular.woff2 +0 -0
- package/src/fonts.ts +6 -0
- package/src/hooks/use-below-breakpoint.ts +21 -0
- package/src/hooks/use-capped-frame.ts +18 -0
- package/src/hooks/use-confirm-delete.ts +43 -0
- package/src/hooks/use-css-var-dims.ts +39 -0
- package/src/hooks/use-gpu-tier.ts +190 -0
- package/src/hooks/use-render-loop.ts +121 -0
- package/src/hooks/use-smooth-controls.ts +318 -0
- package/src/hooks/use-toast.ts +29 -0
- package/src/index.ts +130 -0
- package/src/ui/basic-page.tsx +34 -0
- package/src/ui/build.css +4 -0
- package/src/ui/components/animated-count.stories.tsx +67 -0
- package/src/ui/components/animated-count.tsx +168 -0
- package/src/ui/components/ascii.stories.tsx +30 -0
- package/src/ui/components/ascii.tsx +110 -0
- package/src/ui/components/badge.stories.tsx +31 -0
- package/src/ui/components/badge.tsx +60 -0
- package/src/ui/components/badges/nous-girl.tsx +52 -0
- package/src/ui/components/blend-mode.stories.tsx +33 -0
- package/src/ui/components/blend-mode.tsx +129 -0
- package/src/ui/components/blink.stories.tsx +32 -0
- package/src/ui/components/blink.tsx +21 -0
- package/src/ui/components/bottom-sheet.stories.tsx +43 -0
- package/src/ui/components/bottom-sheet.tsx +227 -0
- package/src/ui/components/button.stories.tsx +68 -0
- package/src/ui/components/button.tsx +170 -0
- package/src/ui/components/card.stories.tsx +63 -0
- package/src/ui/components/card.tsx +85 -0
- package/src/ui/components/checkbox.stories.tsx +113 -0
- package/src/ui/components/checkbox.tsx +36 -0
- package/src/ui/components/command-block.stories.tsx +52 -0
- package/src/ui/components/command-block.tsx +86 -0
- package/src/ui/components/confirm-dialog.stories.tsx +91 -0
- package/src/ui/components/confirm-dialog.tsx +130 -0
- package/src/ui/components/cursor.tsx +115 -0
- package/src/ui/components/dialog.stories.tsx +169 -0
- package/src/ui/components/dialog.tsx +177 -0
- package/src/ui/components/dropdown-menu.stories.tsx +52 -0
- package/src/ui/components/dropdown-menu.tsx +117 -0
- package/src/ui/components/fit-text/fit-text.css +42 -0
- package/src/ui/components/fit-text/index.stories.tsx +33 -0
- package/src/ui/components/fit-text/index.tsx +45 -0
- package/src/ui/components/forms.stories.tsx +173 -0
- package/src/ui/components/graphs/bar-chart.tsx +153 -0
- package/src/ui/components/graphs/index.stories.tsx +64 -0
- package/src/ui/components/graphs/index.tsx +4 -0
- package/src/ui/components/graphs/line-chart.tsx +213 -0
- package/src/ui/components/graphs/utils.tsx +265 -0
- package/src/ui/components/grid/grid.css +79 -0
- package/src/ui/components/grid/index.tsx +19 -0
- package/src/ui/components/hover-bg.stories.tsx +29 -0
- package/src/ui/components/hover-bg.tsx +15 -0
- package/src/ui/components/icons/arrow.tsx +42 -0
- package/src/ui/components/icons/check.tsx +14 -0
- package/src/ui/components/icons/chevron.tsx +45 -0
- package/src/ui/components/icons/discord.tsx +16 -0
- package/src/ui/components/icons/eye.tsx +12 -0
- package/src/ui/components/icons/gear.tsx +51 -0
- package/src/ui/components/icons/github.tsx +16 -0
- package/src/ui/components/icons/hamburger.tsx +52 -0
- package/src/ui/components/icons/heart.tsx +12 -0
- package/src/ui/components/icons/index.ts +12 -0
- package/src/ui/components/icons/link.tsx +14 -0
- package/src/ui/components/icons/minus.tsx +14 -0
- package/src/ui/components/icons/search.tsx +28 -0
- package/src/ui/components/image-distortion.stories.tsx +120 -0
- package/src/ui/components/image-distortion.tsx +499 -0
- package/src/ui/components/input.stories.tsx +39 -0
- package/src/ui/components/input.tsx +20 -0
- package/src/ui/components/label.stories.tsx +26 -0
- package/src/ui/components/label.tsx +16 -0
- package/src/ui/components/leva-client.tsx +14 -0
- package/src/ui/components/list-item.stories.tsx +83 -0
- package/src/ui/components/list-item.tsx +37 -0
- package/src/ui/components/overlays/blend-modes.ts +13 -0
- package/src/ui/components/overlays/glitch.tsx +243 -0
- package/src/ui/components/overlays/greys.tsx +386 -0
- package/src/ui/components/overlays/index.tsx +47 -0
- package/src/ui/components/overlays/lens-layers.tsx +121 -0
- package/src/ui/components/overlays/lens.ts +91 -0
- package/src/ui/components/overlays/noise.tsx +174 -0
- package/src/ui/components/overlays/vignette.tsx +60 -0
- package/src/ui/components/poster.stories.tsx +513 -0
- package/src/ui/components/poster.tsx +411 -0
- package/src/ui/components/progress.stories.tsx +48 -0
- package/src/ui/components/progress.tsx +56 -0
- package/src/ui/components/scene-canvas.tsx +254 -0
- package/src/ui/components/scramble.stories.tsx +49 -0
- package/src/ui/components/scramble.tsx +95 -0
- package/src/ui/components/segmented.stories.tsx +101 -0
- package/src/ui/components/segmented.tsx +81 -0
- package/src/ui/components/select.stories.tsx +88 -0
- package/src/ui/components/select.tsx +267 -0
- package/src/ui/components/selection-switcher.tsx +44 -0
- package/src/ui/components/separator.stories.tsx +33 -0
- package/src/ui/components/separator.tsx +24 -0
- package/src/ui/components/shader.tsx +83 -0
- package/src/ui/components/socials.tsx +42 -0
- package/src/ui/components/spinner.stories.tsx +101 -0
- package/src/ui/components/spinner.tsx +60 -0
- package/src/ui/components/stats.stories.tsx +24 -0
- package/src/ui/components/stats.tsx +53 -0
- package/src/ui/components/switch.stories.tsx +77 -0
- package/src/ui/components/switch.tsx +48 -0
- package/src/ui/components/tabs.stories.tsx +101 -0
- package/src/ui/components/tabs.tsx +66 -0
- package/src/ui/components/terminal-demo.stories.tsx +67 -0
- package/src/ui/components/terminal-demo.tsx +189 -0
- package/src/ui/components/theme-toggle.stories.tsx +47 -0
- package/src/ui/components/theme-toggle.tsx +66 -0
- package/src/ui/components/tier-card.stories.tsx +217 -0
- package/src/ui/components/tier-card.tsx +190 -0
- package/src/ui/components/toast.stories.tsx +55 -0
- package/src/ui/components/toast.tsx +49 -0
- package/src/ui/components/tv.stories.tsx +37 -0
- package/src/ui/components/tv.tsx +257 -0
- package/src/ui/components/typography/h1.tsx +18 -0
- package/src/ui/components/typography/h2.tsx +18 -0
- package/src/ui/components/typography/index.tsx +54 -0
- package/src/ui/components/typography/legend.tsx +24 -0
- package/src/ui/components/typography/small.tsx +11 -0
- package/src/ui/components/watchlist.stories.tsx +33 -0
- package/src/ui/components/watchlist.tsx +105 -0
- package/src/ui/fonts.css +63 -0
- package/src/ui/footer.tsx +111 -0
- package/src/ui/globals.css +395 -0
- package/src/ui/header.tsx +398 -0
- package/src/ui/layout-wrapper.tsx +11 -0
- package/src/utils/color.ts +21 -0
- package/src/utils/index.ts +62 -0
- package/src/utils/poly.ts +26 -0
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { cn } from "../../utils/index.js";
|
|
4
|
+
import { ImageDistortion } from "./image-distortion.js";
|
|
5
|
+
import { Typography } from "./typography/index.js";
|
|
6
|
+
export function TierCard({
|
|
7
|
+
badge,
|
|
8
|
+
bullets,
|
|
9
|
+
className,
|
|
10
|
+
image,
|
|
11
|
+
isCurrent = false,
|
|
12
|
+
onSelect,
|
|
13
|
+
overlay,
|
|
14
|
+
price,
|
|
15
|
+
selected = false,
|
|
16
|
+
tint,
|
|
17
|
+
tintStrength,
|
|
18
|
+
title
|
|
19
|
+
}) {
|
|
20
|
+
return /* @__PURE__ */ jsxs(
|
|
21
|
+
"button",
|
|
22
|
+
{
|
|
23
|
+
className: cn(
|
|
24
|
+
"group relative flex w-full cursor-pointer flex-col border border-current/20",
|
|
25
|
+
"text-left transition-colors duration-300",
|
|
26
|
+
selected && "border-midground/60",
|
|
27
|
+
isCurrent && !selected && "border-midground/30",
|
|
28
|
+
className
|
|
29
|
+
),
|
|
30
|
+
onClick: onSelect,
|
|
31
|
+
type: "button",
|
|
32
|
+
children: [
|
|
33
|
+
/* @__PURE__ */ jsx(
|
|
34
|
+
"span",
|
|
35
|
+
{
|
|
36
|
+
"aria-hidden": true,
|
|
37
|
+
className: cn(
|
|
38
|
+
"arc-border transition-opacity duration-200",
|
|
39
|
+
selected ? "opacity-100" : "opacity-0 group-hover:opacity-100"
|
|
40
|
+
)
|
|
41
|
+
}
|
|
42
|
+
),
|
|
43
|
+
/* @__PURE__ */ jsxs(
|
|
44
|
+
"div",
|
|
45
|
+
{
|
|
46
|
+
className: "relative aspect-[3/4] min-h-0 w-full flex-1 overflow-hidden",
|
|
47
|
+
style: { backgroundColor: "var(--background)" },
|
|
48
|
+
children: [
|
|
49
|
+
/* @__PURE__ */ jsx(
|
|
50
|
+
ImageDistortion,
|
|
51
|
+
{
|
|
52
|
+
active: selected,
|
|
53
|
+
src: image,
|
|
54
|
+
tint,
|
|
55
|
+
tintStrength
|
|
56
|
+
}
|
|
57
|
+
),
|
|
58
|
+
overlay && /* @__PURE__ */ jsx(
|
|
59
|
+
"div",
|
|
60
|
+
{
|
|
61
|
+
className: "pointer-events-none absolute inset-0",
|
|
62
|
+
style: { backgroundColor: overlay, mixBlendMode: "color" }
|
|
63
|
+
}
|
|
64
|
+
),
|
|
65
|
+
/* @__PURE__ */ jsxs("div", { className: "pointer-events-none absolute inset-0 z-[1] flex flex-col justify-between p-3", children: [
|
|
66
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-0.5", children: [
|
|
67
|
+
/* @__PURE__ */ jsxs(
|
|
68
|
+
Typography,
|
|
69
|
+
{
|
|
70
|
+
variant: "sm",
|
|
71
|
+
className: cn(
|
|
72
|
+
"block drop-shadow-[0_1px_2px_rgba(0,0,0,0.5)] text-[1.2rem]",
|
|
73
|
+
"transition-colors",
|
|
74
|
+
selected && "text-midground"
|
|
75
|
+
),
|
|
76
|
+
style: selected ? { mixBlendMode: "plus-lighter" } : void 0,
|
|
77
|
+
children: [
|
|
78
|
+
title,
|
|
79
|
+
badge && /* @__PURE__ */ jsx("span", { className: "ml-1 opacity-50", children: badge })
|
|
80
|
+
]
|
|
81
|
+
}
|
|
82
|
+
),
|
|
83
|
+
price.secondary ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
84
|
+
/* @__PURE__ */ jsxs(
|
|
85
|
+
Typography,
|
|
86
|
+
{
|
|
87
|
+
className: "block text-md line-through opacity-50 drop-shadow-[0_1px_3px_rgba(0,0,0,0.6)]",
|
|
88
|
+
expanded: true,
|
|
89
|
+
style: { mixBlendMode: "plus-lighter" },
|
|
90
|
+
children: [
|
|
91
|
+
price.secondary,
|
|
92
|
+
price.secondarySuffix && /* @__PURE__ */ jsx("span", { className: "text-[1rem]", children: price.secondarySuffix })
|
|
93
|
+
]
|
|
94
|
+
}
|
|
95
|
+
),
|
|
96
|
+
/* @__PURE__ */ jsxs(
|
|
97
|
+
Typography,
|
|
98
|
+
{
|
|
99
|
+
className: "block text-xl font-bold drop-shadow-[0_1px_3px_rgba(0,0,0,0.6)]",
|
|
100
|
+
expanded: true,
|
|
101
|
+
style: { mixBlendMode: "plus-lighter" },
|
|
102
|
+
children: [
|
|
103
|
+
price.primary,
|
|
104
|
+
price.primarySuffix && /* @__PURE__ */ jsxs("span", { className: "text-[1rem] opacity-60", children: [
|
|
105
|
+
" ",
|
|
106
|
+
price.primarySuffix
|
|
107
|
+
] })
|
|
108
|
+
]
|
|
109
|
+
}
|
|
110
|
+
)
|
|
111
|
+
] }) : /* @__PURE__ */ jsxs(
|
|
112
|
+
Typography,
|
|
113
|
+
{
|
|
114
|
+
className: "block text-xl font-bold drop-shadow-[0_1px_3px_rgba(0,0,0,0.6)]",
|
|
115
|
+
expanded: true,
|
|
116
|
+
style: { mixBlendMode: "plus-lighter" },
|
|
117
|
+
children: [
|
|
118
|
+
price.primary,
|
|
119
|
+
price.primarySuffix && /* @__PURE__ */ jsx("span", { className: "text-[1rem] opacity-60", children: price.primarySuffix })
|
|
120
|
+
]
|
|
121
|
+
}
|
|
122
|
+
)
|
|
123
|
+
] }),
|
|
124
|
+
bullets.length > 0 && /* @__PURE__ */ jsx("ul", { className: "flex flex-col gap-1", children: bullets.map((bullet, i) => /* @__PURE__ */ jsxs(
|
|
125
|
+
"li",
|
|
126
|
+
{
|
|
127
|
+
className: cn(
|
|
128
|
+
"font-courier text-display text-[1rem] leading-tight tracking-tight",
|
|
129
|
+
"drop-shadow-[0_1px_2px_rgba(0,0,0,0.5)]"
|
|
130
|
+
),
|
|
131
|
+
children: [
|
|
132
|
+
"\xB7 ",
|
|
133
|
+
bullet
|
|
134
|
+
]
|
|
135
|
+
},
|
|
136
|
+
typeof bullet === "string" ? bullet : i
|
|
137
|
+
)) })
|
|
138
|
+
] })
|
|
139
|
+
]
|
|
140
|
+
}
|
|
141
|
+
)
|
|
142
|
+
]
|
|
143
|
+
}
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiPHN0ZGluPiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB7IGNuIH0gZnJvbSAnLi4vLi4vdXRpbHMnXG5cbmltcG9ydCB7IEltYWdlRGlzdG9ydGlvbiB9IGZyb20gJy4vaW1hZ2UtZGlzdG9ydGlvbidcbmltcG9ydCB7IFR5cG9ncmFwaHkgfSBmcm9tICcuL3R5cG9ncmFwaHknXG5pbXBvcnQgeyBTbWFsbCB9IGZyb20gJy4vdHlwb2dyYXBoeS9zbWFsbCdcblxuLyoqXG4gKiBTZWxlY3RhYmxlIHRpZXIgLyBwcmljaW5nIGNhcmQuIEZ1bGwtYmxlZWQgZGlzdG9ydGVkIGltYWdlIGJhY2tncm91bmQsXG4gKiByZWFkYWJsZSBvdmVybGF5IHRleHQsIGFuZCBhbiBhbmltYXRlZCBgLmFyYy1ib3JkZXJgIHNoaW1tZXIgb24gdGhlXG4gKiBzZWxlY3RlZCBzdGF0ZS4gRnVsbHkgcHJlc2VudGF0aW9uYWwgXHUyMDE0IHRoZSBjb25zdW1lciBvd25zIHRoZSBkYXRhXG4gKiAodGllciBzY2hlbWEsIHByaWNlIGZvcm1hdHRpbmcsIHRpZXIgaW1hZ2VyeSAvIHRpbnRzKS5cbiAqXG4gKiBWaXN1YWwgc3RhdGVzOlxuICogLSBgc2VsZWN0ZWRgOiBicmlnaHRlbnMgdGhlIGRpc3RvcnRpb24sIGFjdGl2YXRlcyBgLmFyYy1ib3JkZXJgLCBhbmRcbiAqICAgY29tcG9zaXRlcyB0aGUgaGVhZGxpbmUgLyBwcmljZSB3aXRoIGBtaXgtYmxlbmQtbW9kZTogcGx1cy1saWdodGVyYFxuICogICBzbyB0aGUgdGV4dCBsaWZ0cyBvZmYgdGhlIGltYWdlIHJlZ2FyZGxlc3Mgb2YgdGludC5cbiAqIC0gYGlzQ3VycmVudGA6IHN1YnRsZSBtaWRncm91bmQtdGludGVkIGJvcmRlciBoaW50IChzdXBwcmVzc2VkIHdoZW5cbiAqICAgYHNlbGVjdGVkYCB3aW5zKS5cbiAqIC0gYG92ZXJsYXlgOiBvcHRpb25hbCB0b3AtbGF5ZXIgY29sb3IgYmxlbmRlZCB3aXRoIGBtaXgtYmxlbmQtbW9kZTpcbiAqICAgY29sb3JgIFx1MjAxNCB1c2VkIGZvciB0aGUgXCJoaWdoZXN0IHRpZXJcIiByZWQgdHJlYXRtZW50IG9uIHRvcCBvZiBhbnlcbiAqICAgYmFzZSB0aW50LlxuICovXG5leHBvcnQgZnVuY3Rpb24gVGllckNhcmQoe1xuICBiYWRnZSxcbiAgYnVsbGV0cyxcbiAgY2xhc3NOYW1lLFxuICBpbWFnZSxcbiAgaXNDdXJyZW50ID0gZmFsc2UsXG4gIG9uU2VsZWN0LFxuICBvdmVybGF5LFxuICBwcmljZSxcbiAgc2VsZWN0ZWQgPSBmYWxzZSxcbiAgdGludCxcbiAgdGludFN0cmVuZ3RoLFxuICB0aXRsZVxufTogVGllckNhcmRQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICdncm91cCByZWxhdGl2ZSBmbGV4IHctZnVsbCBjdXJzb3ItcG9pbnRlciBmbGV4LWNvbCBib3JkZXIgYm9yZGVyLWN1cnJlbnQvMjAnLFxuICAgICAgICAndGV4dC1sZWZ0IHRyYW5zaXRpb24tY29sb3JzIGR1cmF0aW9uLTMwMCcsXG4gICAgICAgIHNlbGVjdGVkICYmICdib3JkZXItbWlkZ3JvdW5kLzYwJyxcbiAgICAgICAgaXNDdXJyZW50ICYmICFzZWxlY3RlZCAmJiAnYm9yZGVyLW1pZGdyb3VuZC8zMCcsXG4gICAgICAgIGNsYXNzTmFtZVxuICAgICAgKX1cbiAgICAgIG9uQ2xpY2s9e29uU2VsZWN0fVxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPlxuICAgICAgPHNwYW5cbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgICAnYXJjLWJvcmRlciB0cmFuc2l0aW9uLW9wYWNpdHkgZHVyYXRpb24tMjAwJyxcbiAgICAgICAgICBzZWxlY3RlZCA/ICdvcGFjaXR5LTEwMCcgOiAnb3BhY2l0eS0wIGdyb3VwLWhvdmVyOm9wYWNpdHktMTAwJ1xuICAgICAgICApfVxuICAgICAgLz5cblxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9XCJyZWxhdGl2ZSBhc3BlY3QtWzMvNF0gbWluLWgtMCB3LWZ1bGwgZmxleC0xIG92ZXJmbG93LWhpZGRlblwiXG4gICAgICAgIHN0eWxlPXt7IGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLWJhY2tncm91bmQpJyB9fVxuICAgICAgPlxuICAgICAgICA8SW1hZ2VEaXN0b3J0aW9uXG4gICAgICAgICAgYWN0aXZlPXtzZWxlY3RlZH1cbiAgICAgICAgICBzcmM9e2ltYWdlfVxuICAgICAgICAgIHRpbnQ9e3RpbnR9XG4gICAgICAgICAgdGludFN0cmVuZ3RoPXt0aW50U3RyZW5ndGh9XG4gICAgICAgIC8+XG5cbiAgICAgICAge292ZXJsYXkgJiYgKFxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInBvaW50ZXItZXZlbnRzLW5vbmUgYWJzb2x1dGUgaW5zZXQtMFwiXG4gICAgICAgICAgICBzdHlsZT17eyBiYWNrZ3JvdW5kQ29sb3I6IG92ZXJsYXksIG1peEJsZW5kTW9kZTogJ2NvbG9yJyB9fVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwb2ludGVyLWV2ZW50cy1ub25lIGFic29sdXRlIGluc2V0LTAgei1bMV0gZmxleCBmbGV4LWNvbCBqdXN0aWZ5LWJldHdlZW4gcC0zXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGdhcC0wLjVcIj5cbiAgICAgICAgICAgIDxUeXBvZ3JhcGh5IHZhcmlhbnQ9XCJzbVwiIFxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAgICAgICAgICdibG9jayBkcm9wLXNoYWRvdy1bMF8xcHhfMnB4X3JnYmEoMCwwLDAsMC41KV0gdGV4dC1bMS4ycmVtXScsXG4gICAgICAgICAgICAgICAgJ3RyYW5zaXRpb24tY29sb3JzJyxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZCAmJiAndGV4dC1taWRncm91bmQnXG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIHN0eWxlPXtzZWxlY3RlZCA/IHsgbWl4QmxlbmRNb2RlOiAncGx1cy1saWdodGVyJyB9IDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7dGl0bGV9XG4gICAgICAgICAgICAgIHtiYWRnZSAmJiA8c3BhbiBjbGFzc05hbWU9XCJtbC0xIG9wYWNpdHktNTBcIj57YmFkZ2V9PC9zcGFuPn1cbiAgICAgICAgICAgIDwvVHlwb2dyYXBoeT5cblxuICAgICAgICAgICAge3ByaWNlLnNlY29uZGFyeSA/IChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmxvY2sgdGV4dC1tZCBsaW5lLXRocm91Z2ggb3BhY2l0eS01MCBkcm9wLXNoYWRvdy1bMF8xcHhfM3B4X3JnYmEoMCwwLDAsMC42KV1cIlxuICAgICAgICAgICAgICAgICAgZXhwYW5kZWRcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IG1peEJsZW5kTW9kZTogJ3BsdXMtbGlnaHRlcicgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7cHJpY2Uuc2Vjb25kYXJ5fVxuICAgICAgICAgICAgICAgICAge3ByaWNlLnNlY29uZGFyeVN1ZmZpeCAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtWzFyZW1dXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3ByaWNlLnNlY29uZGFyeVN1ZmZpeH1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L1R5cG9ncmFwaHk+XG5cbiAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmxvY2sgdGV4dC14bCBmb250LWJvbGQgZHJvcC1zaGFkb3ctWzBfMXB4XzNweF9yZ2JhKDAsMCwwLDAuNildXCJcbiAgICAgICAgICAgICAgICAgIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgICBzdHlsZT17eyBtaXhCbGVuZE1vZGU6ICdwbHVzLWxpZ2h0ZXInIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3ByaWNlLnByaW1hcnl9XG4gICAgICAgICAgICAgICAgICB7cHJpY2UucHJpbWFyeVN1ZmZpeCAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtWzFyZW1dIG9wYWNpdHktNjBcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7JyAnfVxuICAgICAgICAgICAgICAgICAgICAgIHtwcmljZS5wcmltYXJ5U3VmZml4fVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8VHlwb2dyYXBoeVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJsb2NrIHRleHQteGwgZm9udC1ib2xkIGRyb3Atc2hhZG93LVswXzFweF8zcHhfcmdiYSgwLDAsMCwwLjYpXVwiXG4gICAgICAgICAgICAgICAgZXhwYW5kZWRcbiAgICAgICAgICAgICAgICBzdHlsZT17eyBtaXhCbGVuZE1vZGU6ICdwbHVzLWxpZ2h0ZXInIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7cHJpY2UucHJpbWFyeX1cbiAgICAgICAgICAgICAgICB7cHJpY2UucHJpbWFyeVN1ZmZpeCAmJiAoXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LVsxcmVtXSBvcGFjaXR5LTYwXCI+XG4gICAgICAgICAgICAgICAgICAgIHtwcmljZS5wcmltYXJ5U3VmZml4fVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICB7YnVsbGV0cy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGdhcC0xXCI+XG4gICAgICAgICAgICAgIHtidWxsZXRzLm1hcCgoYnVsbGV0LCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAgICAgICAgICAgICAnZm9udC1jb3VyaWVyIHRleHQtZGlzcGxheSB0ZXh0LVsxcmVtXSBsZWFkaW5nLXRpZ2h0IHRyYWNraW5nLXRpZ2h0JyxcbiAgICAgICAgICAgICAgICAgICAgJ2Ryb3Atc2hhZG93LVswXzFweF8ycHhfcmdiYSgwLDAsMCwwLjUpXScsXG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAga2V5PXt0eXBlb2YgYnVsbGV0ID09PSAnc3RyaW5nJyA/IGJ1bGxldCA6IGl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgXHUwMEI3IHtidWxsZXR9XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9idXR0b24+XG4gIClcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUaWVyQ2FyZFByaWNlIHtcbiAgLyoqIEhlYWRsaW5lIHByaWNlLCBlLmcuIGBcIiQyMFwiYCBvciBgXCJGcmVlXCJgLiAqL1xuICBwcmltYXJ5OiBzdHJpbmdcbiAgLyoqIFNtYWxsIHN1ZmZpeCByZW5kZXJlZCBhZnRlciBgcHJpbWFyeWAsIGUuZy4gYFwiL21vXCJgIG9yIGBcImZpcnN0IHBheW1lbnRcImAuICovXG4gIHByaW1hcnlTdWZmaXg/OiBzdHJpbmdcbiAgLyoqIE9wdGlvbmFsIHN0cnVjay10aHJvdWdoIGNvbXBhcmlzb24gcHJpY2UgcmVuZGVyZWQgYWJvdmUgYHByaW1hcnlgLCBlLmcuIGBcIiQzMFwiYC4gKi9cbiAgc2Vjb25kYXJ5Pzogc3RyaW5nXG4gIC8qKiBTbWFsbCBzdWZmaXggcmVuZGVyZWQgYWZ0ZXIgYHNlY29uZGFyeWAuICovXG4gIHNlY29uZGFyeVN1ZmZpeD86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRpZXJDYXJkUHJvcHMge1xuICAvKiogU21hbGwgYW5ub3RhdGlvbiBhZnRlciB0aGUgdGl0bGUsIGUuZy4gYFwiKGN1cnJlbnQpXCJgLiAqL1xuICBiYWRnZT86IFJlYWN0LlJlYWN0Tm9kZVxuICAvKiogRmVhdHVyZSBsaXN0IHJlbmRlcmVkIHVuZGVyIHRoZSBwcmljZS4gKi9cbiAgYnVsbGV0czogUmVhY3QuUmVhY3ROb2RlW11cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gIC8qKiBCYWNrZ3JvdW5kIGltYWdlIFVSTC4gKi9cbiAgaW1hZ2U6IHN0cmluZ1xuICAvKiogQXBwbGllcyB0aGUgXCJjdXJyZW50IHBsYW5cIiBib3JkZXIgaGludCB3aGVuIG5vdCBgc2VsZWN0ZWRgLiAqL1xuICBpc0N1cnJlbnQ/OiBib29sZWFuXG4gIG9uU2VsZWN0PzogKCkgPT4gdm9pZFxuICAvKiogQ29sb3IgYmxlbmRlZCB3aXRoIGBtaXgtYmxlbmQtbW9kZTogY29sb3JgIG92ZXIgdGhlIGltYWdlICh1c2VkIGZvciB0aGUgaGlnaGVzdC10aWVyIHJlZCB0cmVhdG1lbnQpLiAqL1xuICBvdmVybGF5Pzogc3RyaW5nXG4gIHByaWNlOiBUaWVyQ2FyZFByaWNlXG4gIC8qKiBBcHBsaWVzIHNlbGVjdGVkIGNocm9tZSAoYXJjLWJvcmRlciBzaGltbWVyLCBhY3RpdmUgZGlzdG9ydGlvbiwgcGx1cy1saWdodGVyIHRleHQgYmxlbmQpLiAqL1xuICBzZWxlY3RlZD86IGJvb2xlYW5cbiAgLyoqIFNoYWRlciB0aW50IHBhc3NlZCB0aHJvdWdoIHRvIGBJbWFnZURpc3RvcnRpb25gLiAqL1xuICB0aW50Pzogc3RyaW5nXG4gIC8qKiBBY3RpdmUgLyBpbmFjdGl2ZSB0aW50IHN0cmVuZ3RoIHBhc3NlZCB0aHJvdWdoIHRvIGBJbWFnZURpc3RvcnRpb25gLiAqL1xuICB0aW50U3RyZW5ndGg/OiB7IGFjdGl2ZTogbnVtYmVyOyBpbmFjdGl2ZTogbnVtYmVyIH1cbiAgLyoqIFRpZXIgbmFtZSAvIGhlYWRsaW5lLiAqL1xuICB0aXRsZTogUmVhY3QuUmVhY3ROb2RlXG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBa0RNLFNBeUNRLFVBekNSLEtBNEJNLFlBNUJOO0FBaEROLFNBQVMsVUFBVTtBQUVuQixTQUFTLHVCQUF1QjtBQUNoQyxTQUFTLGtCQUFrQjtBQW1CcEIsZ0JBQVMsU0FBUztBQUFBLEVBQ3ZCO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQSxZQUFZO0FBQUEsRUFDWjtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQSxXQUFXO0FBQUEsRUFDWDtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQ0YsR0FBa0I7QUFDaEIsU0FDRTtBQUFBLElBQUM7QUFBQTtBQUFBLE1BQ0MsV0FBVztBQUFBLFFBQ1Q7QUFBQSxRQUNBO0FBQUEsUUFDQSxZQUFZO0FBQUEsUUFDWixhQUFhLENBQUMsWUFBWTtBQUFBLFFBQzFCO0FBQUEsTUFDRjtBQUFBLE1BQ0EsU0FBUztBQUFBLE1BQ1QsTUFBSztBQUFBLE1BRUw7QUFBQTtBQUFBLFVBQUM7QUFBQTtBQUFBLFlBQ0MsZUFBVztBQUFBLFlBQ1gsV0FBVztBQUFBLGNBQ1Q7QUFBQSxjQUNBLFdBQVcsZ0JBQWdCO0FBQUEsWUFDN0I7QUFBQTtBQUFBLFFBQ0Y7QUFBQSxRQUVBO0FBQUEsVUFBQztBQUFBO0FBQUEsWUFDQyxXQUFVO0FBQUEsWUFDVixPQUFPLEVBQUUsaUJBQWlCLG9CQUFvQjtBQUFBLFlBRTlDO0FBQUE7QUFBQSxnQkFBQztBQUFBO0FBQUEsa0JBQ0MsUUFBUTtBQUFBLGtCQUNSLEtBQUs7QUFBQSxrQkFDTDtBQUFBLGtCQUNBO0FBQUE7QUFBQSxjQUNGO0FBQUEsY0FFQyxXQUNDO0FBQUEsZ0JBQUM7QUFBQTtBQUFBLGtCQUNDLFdBQVU7QUFBQSxrQkFDVixPQUFPLEVBQUUsaUJBQWlCLFNBQVMsY0FBYyxRQUFRO0FBQUE7QUFBQSxjQUMzRDtBQUFBLGNBR0YscUJBQUMsU0FBSSxXQUFVLGdGQUNiO0FBQUEscUNBQUMsU0FBSSxXQUFVLHlCQUNiO0FBQUE7QUFBQSxvQkFBQztBQUFBO0FBQUEsc0JBQVcsU0FBUTtBQUFBLHNCQUNsQixXQUFXO0FBQUEsd0JBQ1Q7QUFBQSx3QkFDQTtBQUFBLHdCQUNBLFlBQVk7QUFBQSxzQkFDZDtBQUFBLHNCQUNBLE9BQU8sV0FBVyxFQUFFLGNBQWMsZUFBZSxJQUFJO0FBQUEsc0JBRXBEO0FBQUE7QUFBQSx3QkFDQSxTQUFTLG9CQUFDLFVBQUssV0FBVSxtQkFBbUIsaUJBQU07QUFBQTtBQUFBO0FBQUEsa0JBQ3JEO0FBQUEsa0JBRUMsTUFBTSxZQUNMLGlDQUNFO0FBQUE7QUFBQSxzQkFBQztBQUFBO0FBQUEsd0JBQ0MsV0FBVTtBQUFBLHdCQUNWLFVBQVE7QUFBQSx3QkFDUixPQUFPLEVBQUUsY0FBYyxlQUFlO0FBQUEsd0JBRXJDO0FBQUEsZ0NBQU07QUFBQSwwQkFDTixNQUFNLG1CQUNMLG9CQUFDLFVBQUssV0FBVSxlQUNiLGdCQUFNLGlCQUNUO0FBQUE7QUFBQTtBQUFBLG9CQUVKO0FBQUEsb0JBRUE7QUFBQSxzQkFBQztBQUFBO0FBQUEsd0JBQ0MsV0FBVTtBQUFBLHdCQUNWLFVBQVE7QUFBQSx3QkFDUixPQUFPLEVBQUUsY0FBYyxlQUFlO0FBQUEsd0JBRXJDO0FBQUEsZ0NBQU07QUFBQSwwQkFDTixNQUFNLGlCQUNMLHFCQUFDLFVBQUssV0FBVSwwQkFDYjtBQUFBO0FBQUEsNEJBQ0EsTUFBTTtBQUFBLDZCQUNUO0FBQUE7QUFBQTtBQUFBLG9CQUVKO0FBQUEscUJBQ0YsSUFFQTtBQUFBLG9CQUFDO0FBQUE7QUFBQSxzQkFDQyxXQUFVO0FBQUEsc0JBQ1YsVUFBUTtBQUFBLHNCQUNSLE9BQU8sRUFBRSxjQUFjLGVBQWU7QUFBQSxzQkFFckM7QUFBQSw4QkFBTTtBQUFBLHdCQUNOLE1BQU0saUJBQ0wsb0JBQUMsVUFBSyxXQUFVLDBCQUNiLGdCQUFNLGVBQ1Q7QUFBQTtBQUFBO0FBQUEsa0JBRUo7QUFBQSxtQkFFSjtBQUFBLGdCQUVDLFFBQVEsU0FBUyxLQUNoQixvQkFBQyxRQUFHLFdBQVUsdUJBQ1gsa0JBQVEsSUFBSSxDQUFDLFFBQVEsTUFDcEI7QUFBQSxrQkFBQztBQUFBO0FBQUEsb0JBQ0MsV0FBVztBQUFBLHNCQUNUO0FBQUEsc0JBQ0E7QUFBQSxvQkFDRjtBQUFBLG9CQUVEO0FBQUE7QUFBQSxzQkFDSTtBQUFBO0FBQUE7QUFBQSxrQkFGRSxPQUFPLFdBQVcsV0FBVyxTQUFTO0FBQUEsZ0JBRzdDLENBQ0QsR0FDSDtBQUFBLGlCQUVKO0FBQUE7QUFBQTtBQUFBLFFBQ0Y7QUFBQTtBQUFBO0FBQUEsRUFDRjtBQUVKOyIsCiAgIm5hbWVzIjogW10KfQo=
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useState } from "react";
|
|
4
|
+
import { createPortal } from "react-dom";
|
|
5
|
+
import { cn } from "../../utils/index.js";
|
|
6
|
+
export function Toast({ toast }) {
|
|
7
|
+
const [visible, setVisible] = useState(false);
|
|
8
|
+
const [current, setCurrent] = useState(toast);
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
if (toast) {
|
|
11
|
+
setCurrent(toast);
|
|
12
|
+
setVisible(true);
|
|
13
|
+
} else {
|
|
14
|
+
setVisible(false);
|
|
15
|
+
const timer = setTimeout(() => setCurrent(null), 200);
|
|
16
|
+
return () => clearTimeout(timer);
|
|
17
|
+
}
|
|
18
|
+
}, [toast]);
|
|
19
|
+
if (!current || typeof document === "undefined") return null;
|
|
20
|
+
return createPortal(
|
|
21
|
+
/* @__PURE__ */ jsx(
|
|
22
|
+
"div",
|
|
23
|
+
{
|
|
24
|
+
"aria-live": "polite",
|
|
25
|
+
className: cn(
|
|
26
|
+
"fixed top-16 right-4 z-50 border px-4 py-2.5 font-courier text-xs tracking-wider uppercase backdrop-blur-sm",
|
|
27
|
+
current.type === "success" ? "bg-success/15 text-success border-success/30" : "bg-destructive/15 text-destructive border-destructive/30"
|
|
28
|
+
),
|
|
29
|
+
role: "status",
|
|
30
|
+
style: {
|
|
31
|
+
animation: visible ? "toast-in 200ms ease-out forwards" : "toast-out 200ms ease-in forwards"
|
|
32
|
+
},
|
|
33
|
+
children: current.message
|
|
34
|
+
}
|
|
35
|
+
),
|
|
36
|
+
document.body
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiPHN0ZGluPiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSdcblxuaW1wb3J0IHsgY24gfSBmcm9tICcuLi8uLi91dGlscydcblxuZXhwb3J0IGZ1bmN0aW9uIFRvYXN0KHsgdG9hc3QgfTogVG9hc3RQcm9wcykge1xuICBjb25zdCBbdmlzaWJsZSwgc2V0VmlzaWJsZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2N1cnJlbnQsIHNldEN1cnJlbnRdID0gdXNlU3RhdGUodG9hc3QpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodG9hc3QpIHtcbiAgICAgIHNldEN1cnJlbnQodG9hc3QpXG4gICAgICBzZXRWaXNpYmxlKHRydWUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFZpc2libGUoZmFsc2UpXG4gICAgICBjb25zdCB0aW1lciA9IHNldFRpbWVvdXQoKCkgPT4gc2V0Q3VycmVudChudWxsKSwgMjAwKVxuICAgICAgcmV0dXJuICgpID0+IGNsZWFyVGltZW91dCh0aW1lcilcbiAgICB9XG4gIH0sIFt0b2FzdF0pXG5cbiAgaWYgKCFjdXJyZW50IHx8IHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpIHJldHVybiBudWxsXG5cbiAgcmV0dXJuIGNyZWF0ZVBvcnRhbChcbiAgICA8ZGl2XG4gICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgY2xhc3NOYW1lPXtjbihcbiAgICAgICAgJ2ZpeGVkIHRvcC0xNiByaWdodC00IHotNTAgYm9yZGVyIHB4LTQgcHktMi41IGZvbnQtY291cmllciB0ZXh0LXhzIHRyYWNraW5nLXdpZGVyIHVwcGVyY2FzZSBiYWNrZHJvcC1ibHVyLXNtJyxcbiAgICAgICAgY3VycmVudC50eXBlID09PSAnc3VjY2VzcydcbiAgICAgICAgICA/ICdiZy1zdWNjZXNzLzE1IHRleHQtc3VjY2VzcyBib3JkZXItc3VjY2Vzcy8zMCdcbiAgICAgICAgICA6ICdiZy1kZXN0cnVjdGl2ZS8xNSB0ZXh0LWRlc3RydWN0aXZlIGJvcmRlci1kZXN0cnVjdGl2ZS8zMCdcbiAgICAgICl9XG4gICAgICByb2xlPVwic3RhdHVzXCJcbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIGFuaW1hdGlvbjogdmlzaWJsZVxuICAgICAgICAgID8gJ3RvYXN0LWluIDIwMG1zIGVhc2Utb3V0IGZvcndhcmRzJ1xuICAgICAgICAgIDogJ3RvYXN0LW91dCAyMDBtcyBlYXNlLWluIGZvcndhcmRzJ1xuICAgICAgfX1cbiAgICA+XG4gICAgICB7Y3VycmVudC5tZXNzYWdlfVxuICAgIDwvZGl2PixcbiAgICBkb2N1bWVudC5ib2R5XG4gIClcbn1cblxuaW50ZXJmYWNlIFRvYXN0UHJvcHMge1xuICB0b2FzdDogeyBtZXNzYWdlOiBzdHJpbmc7IHR5cGU6ICdlcnJvcicgfCAnc3VjY2VzcycgfSB8IG51bGxcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7QUF5Qkk7QUF2QkosU0FBUyxXQUFXLGdCQUFnQjtBQUNwQyxTQUFTLG9CQUFvQjtBQUU3QixTQUFTLFVBQVU7QUFFWixnQkFBUyxNQUFNLEVBQUUsTUFBTSxHQUFlO0FBQzNDLFFBQU0sQ0FBQyxTQUFTLFVBQVUsSUFBSSxTQUFTLEtBQUs7QUFDNUMsUUFBTSxDQUFDLFNBQVMsVUFBVSxJQUFJLFNBQVMsS0FBSztBQUU1QyxZQUFVLE1BQU07QUFDZCxRQUFJLE9BQU87QUFDVCxpQkFBVyxLQUFLO0FBQ2hCLGlCQUFXLElBQUk7QUFBQSxJQUNqQixPQUFPO0FBQ0wsaUJBQVcsS0FBSztBQUNoQixZQUFNLFFBQVEsV0FBVyxNQUFNLFdBQVcsSUFBSSxHQUFHLEdBQUc7QUFDcEQsYUFBTyxNQUFNLGFBQWEsS0FBSztBQUFBLElBQ2pDO0FBQUEsRUFDRixHQUFHLENBQUMsS0FBSyxDQUFDO0FBRVYsTUFBSSxDQUFDLFdBQVcsT0FBTyxhQUFhLFlBQWEsUUFBTztBQUV4RCxTQUFPO0FBQUEsSUFDTDtBQUFBLE1BQUM7QUFBQTtBQUFBLFFBQ0MsYUFBVTtBQUFBLFFBQ1YsV0FBVztBQUFBLFVBQ1Q7QUFBQSxVQUNBLFFBQVEsU0FBUyxZQUNiLGlEQUNBO0FBQUEsUUFDTjtBQUFBLFFBQ0EsTUFBSztBQUFBLFFBQ0wsT0FBTztBQUFBLFVBQ0wsV0FBVyxVQUNQLHFDQUNBO0FBQUEsUUFDTjtBQUFBLFFBRUMsa0JBQVE7QUFBQTtBQUFBLElBQ1g7QUFBQSxJQUNBLFNBQVM7QUFBQSxFQUNYO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useRef } from "react";
|
|
4
|
+
const VERT = (
|
|
5
|
+
/* glsl */
|
|
6
|
+
`attribute vec2 a;void main(){gl_Position=vec4(a,0,1);}`
|
|
7
|
+
);
|
|
8
|
+
const FRAG = (
|
|
9
|
+
/* glsl */
|
|
10
|
+
`precision highp float;
|
|
11
|
+
uniform float t;
|
|
12
|
+
uniform vec2 r;
|
|
13
|
+
|
|
14
|
+
const float FBM_STR = .08;
|
|
15
|
+
|
|
16
|
+
float h(vec2 p) { return fract(sin(dot(p, vec2(127.1, 311.7))) * 43758.5453); }
|
|
17
|
+
|
|
18
|
+
float n2(vec2 p) {
|
|
19
|
+
vec2 i = floor(p), f = fract(p);
|
|
20
|
+
f = f * f * (3. - 2. * f);
|
|
21
|
+
|
|
22
|
+
return mix(
|
|
23
|
+
mix(h(i), h(i + vec2(1, 0)), f.x),
|
|
24
|
+
mix(h(i + vec2(0, 1)), h(i + vec2(1, 1)), f.x),
|
|
25
|
+
f.y
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
float fbm(vec2 p) {
|
|
30
|
+
float v = 0., a = .5;
|
|
31
|
+
|
|
32
|
+
for (int i = 0; i < 4; i++) {
|
|
33
|
+
v += a * n2(p);
|
|
34
|
+
p *= 2.1;
|
|
35
|
+
a *= .45;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
return v;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
float drift(float speed, float s) {
|
|
42
|
+
return fract(t * speed + s + .02 * sin(t * .4 + s * 3.));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
float brushAt(vec2 uv, float y, float th, float s) {
|
|
46
|
+
float hw = .34 + .08 * h(vec2(s, 77.));
|
|
47
|
+
float cx = .5;
|
|
48
|
+
float xn = (uv.x - (cx - hw)) / (2. * hw);
|
|
49
|
+
float env = smoothstep(0., .03, xn) * smoothstep(1., .97, xn);
|
|
50
|
+
float localTh = th * env;
|
|
51
|
+
|
|
52
|
+
if (localTh < .002) return 0.;
|
|
53
|
+
|
|
54
|
+
float morph = floor(t * 8.) * .7 + s;
|
|
55
|
+
float top = y - localTh * .5 + fbm(vec2(uv.x * 6., morph)) * FBM_STR;
|
|
56
|
+
float bot = y + localTh * .5 - fbm(vec2(uv.x * 6., morph + 30.)) * FBM_STR;
|
|
57
|
+
float x0 = cx - hw + fbm(vec2(uv.y * 8., morph + 60.)) * FBM_STR;
|
|
58
|
+
float x1 = cx + hw - fbm(vec2(uv.y * 8., morph + 90.)) * FBM_STR;
|
|
59
|
+
|
|
60
|
+
float dMin = min(min(uv.y - top, bot - uv.y), min(uv.x - x0, x1 - uv.x));
|
|
61
|
+
|
|
62
|
+
float bristle = n2(vec2(uv.x * 60., uv.y * 8. + s)) * .4
|
|
63
|
+
+ n2(vec2(uv.x * 25., (uv.y - y) * 120. + s)) * .35
|
|
64
|
+
+ n2(vec2(uv.x * 90., uv.y * 3. + s * 2.)) * .25;
|
|
65
|
+
|
|
66
|
+
float eaten = smoothstep(.03, 0., dMin) * (1. - smoothstep(.2, .5, bristle));
|
|
67
|
+
|
|
68
|
+
return clamp(smoothstep(0., .003, dMin) * (1. - eaten), 0., 1.);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
void main() {
|
|
72
|
+
vec2 uv = gl_FragCoord.xy / r;
|
|
73
|
+
uv = vec2(uv.x * cos(.095) - uv.y * sin(.095), uv.x * sin(.095) + uv.y * cos(.095));
|
|
74
|
+
uv += vec2(fbm(uv * 4. + t * .06), fbm(uv * 4. + 8. + t * .05)) * .012;
|
|
75
|
+
|
|
76
|
+
vec3 c = vec3(.992, .992, .051);
|
|
77
|
+
|
|
78
|
+
float smScroll = -drift(.04, 5.) * 2.;
|
|
79
|
+
float sm = 0.;
|
|
80
|
+
|
|
81
|
+
for (int i = 0; i < 20; i++) {
|
|
82
|
+
sm = max(sm, brushAt(uv, mod(float(i) * .1 + smScroll, 2.) - .5, .04, float(i) + 10.));
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
float d1 = drift(.15, 1.), d2 = drift(.15, 1.37), d3 = drift(.15, 1.58), d4 = drift(.15, 1.82);
|
|
86
|
+
float big = max(
|
|
87
|
+
max(brushAt(uv, 1.1 - d1 * 1.4, .28, 1.), brushAt(uv, 1.1 - d2 * 1.4, .18, 2.)),
|
|
88
|
+
max(brushAt(uv, 1.1 - d3 * 1.4, .3, 3.), brushAt(uv, 1.1 - d4 * 1.4, .15, 4.))
|
|
89
|
+
);
|
|
90
|
+
|
|
91
|
+
c = mix(c, vec3(0.), clamp(max(sm, big), 0., 1.));
|
|
92
|
+
c *= .94 + .06 * sin(uv.y * r.y * 6.283);
|
|
93
|
+
|
|
94
|
+
vec2 raw = gl_FragCoord.xy / r;
|
|
95
|
+
float dx = min(raw.x - .22, .90 - raw.x);
|
|
96
|
+
float dy = min(raw.y - .29, .86 - raw.y);
|
|
97
|
+
float cycle = floor(t * .4);
|
|
98
|
+
float edge = mix(smoothstep(.22, 0., max(min(dx, dy), 0.)), 1., step(.75, h(vec2(cycle, 13.))))
|
|
99
|
+
* smoothstep(.85, 1., sin(t * 2.5) * .5 + .5)
|
|
100
|
+
* (.7 + .3 * h(vec2(cycle, 7.)));
|
|
101
|
+
|
|
102
|
+
float scanY = floor(gl_FragCoord.y);
|
|
103
|
+
float rowNoise = h(vec2(scanY, floor(t * 30.)));
|
|
104
|
+
c *= 1. - edge * max(step(.45, rowNoise), step(.3, h(vec2(gl_FragCoord.x + scanY * 7., floor(t * 45.)))) * step(.2, rowNoise));
|
|
105
|
+
|
|
106
|
+
gl_FragColor = vec4(clamp(c, 0., 1.), 1.);
|
|
107
|
+
}`
|
|
108
|
+
);
|
|
109
|
+
function useGL(ref) {
|
|
110
|
+
const raf = useRef(0);
|
|
111
|
+
useEffect(() => {
|
|
112
|
+
const c = ref.current;
|
|
113
|
+
if (!c) {
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
const gl = c.getContext("webgl");
|
|
117
|
+
if (!gl) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
const sh = (type, src) => {
|
|
121
|
+
const s = gl.createShader(type);
|
|
122
|
+
gl.shaderSource(s, src);
|
|
123
|
+
gl.compileShader(s);
|
|
124
|
+
return s;
|
|
125
|
+
};
|
|
126
|
+
const p = gl.createProgram();
|
|
127
|
+
gl.attachShader(p, sh(gl.VERTEX_SHADER, VERT));
|
|
128
|
+
gl.attachShader(p, sh(gl.FRAGMENT_SHADER, FRAG));
|
|
129
|
+
gl.linkProgram(p);
|
|
130
|
+
gl.useProgram(p);
|
|
131
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, gl.createBuffer());
|
|
132
|
+
gl.bufferData(
|
|
133
|
+
gl.ARRAY_BUFFER,
|
|
134
|
+
new Float32Array([-1, -1, 1, -1, -1, 1, 1, 1]),
|
|
135
|
+
gl.STATIC_DRAW
|
|
136
|
+
);
|
|
137
|
+
const a = gl.getAttribLocation(p, "a");
|
|
138
|
+
gl.enableVertexAttribArray(a);
|
|
139
|
+
gl.vertexAttribPointer(a, 2, gl.FLOAT, false, 0, 0);
|
|
140
|
+
const uT = gl.getUniformLocation(p, "t");
|
|
141
|
+
const uR = gl.getUniformLocation(p, "r");
|
|
142
|
+
const resize = () => {
|
|
143
|
+
const rect = c.getBoundingClientRect();
|
|
144
|
+
const dpr = Math.min(devicePixelRatio, 2);
|
|
145
|
+
c.width = rect.width * dpr;
|
|
146
|
+
c.height = rect.height * dpr;
|
|
147
|
+
gl.viewport(0, 0, c.width, c.height);
|
|
148
|
+
};
|
|
149
|
+
resize();
|
|
150
|
+
const ro = new ResizeObserver(resize);
|
|
151
|
+
ro.observe(c);
|
|
152
|
+
const t0 = performance.now();
|
|
153
|
+
let visible = !document.hidden;
|
|
154
|
+
let inView = true;
|
|
155
|
+
let raf2 = 0;
|
|
156
|
+
const tick = () => {
|
|
157
|
+
gl.uniform1f(uT, (performance.now() - t0) / 1e3);
|
|
158
|
+
gl.uniform2f(uR, c.width, c.height);
|
|
159
|
+
gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
|
|
160
|
+
raf2 = requestAnimationFrame(tick);
|
|
161
|
+
};
|
|
162
|
+
const start = () => {
|
|
163
|
+
if (visible && inView && !raf2) {
|
|
164
|
+
raf2 = requestAnimationFrame(tick);
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
const stop = () => {
|
|
168
|
+
if (raf2) {
|
|
169
|
+
cancelAnimationFrame(raf2);
|
|
170
|
+
raf2 = 0;
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
const onVisibility = () => {
|
|
174
|
+
visible = !document.hidden;
|
|
175
|
+
visible ? start() : stop();
|
|
176
|
+
};
|
|
177
|
+
const io = new IntersectionObserver(
|
|
178
|
+
(entries) => {
|
|
179
|
+
inView = entries.some((e) => e.isIntersecting);
|
|
180
|
+
inView ? start() : stop();
|
|
181
|
+
},
|
|
182
|
+
{ threshold: 0 }
|
|
183
|
+
);
|
|
184
|
+
io.observe(c);
|
|
185
|
+
document.addEventListener("visibilitychange", onVisibility);
|
|
186
|
+
start();
|
|
187
|
+
raf.current = raf2;
|
|
188
|
+
return () => {
|
|
189
|
+
stop();
|
|
190
|
+
io.disconnect();
|
|
191
|
+
document.removeEventListener("visibilitychange", onVisibility);
|
|
192
|
+
ro.disconnect();
|
|
193
|
+
};
|
|
194
|
+
}, [ref]);
|
|
195
|
+
}
|
|
196
|
+
export function TV({ className }) {
|
|
197
|
+
const canvasRef = useRef(null);
|
|
198
|
+
useGL(canvasRef);
|
|
199
|
+
return /* @__PURE__ */ jsxs("div", { className: ["relative", className].filter(Boolean).join(" "), children: [
|
|
200
|
+
/* @__PURE__ */ jsxs("svg", { className: "relative h-full w-full", fill: "none", viewBox: "0 0 210 173", children: [
|
|
201
|
+
/* @__PURE__ */ jsx(
|
|
202
|
+
"path",
|
|
203
|
+
{
|
|
204
|
+
d: "M30.8342 2.44471 6.08268 36.683c-.24437.338-.38254.7412-.39689 1.158L1.57754 157.126c-.03891 1.129.82339 2.087 1.95096 2.167l162.4835 11.463c.433.031.866-.074 1.238-.3l35.718-21.69c.607-.369.986-1.02 1.008-1.73l4.102-130.9871c.035-1.1269-.826-2.0806-1.951-2.1604L32.6847 1.58029c-.7248-.05144-1.4247.27551-1.8505.86442Z",
|
|
205
|
+
fill: "#FDFD0D",
|
|
206
|
+
stroke: "#FDFD0D",
|
|
207
|
+
strokeWidth: "3.15"
|
|
208
|
+
}
|
|
209
|
+
),
|
|
210
|
+
/* @__PURE__ */ jsx(
|
|
211
|
+
"path",
|
|
212
|
+
{
|
|
213
|
+
d: "M203.09 17.1483 35.6844 5.83395l-4.2 121.94805 168.4906 13.076z",
|
|
214
|
+
fill: "#000",
|
|
215
|
+
stroke: "#FDFD0D",
|
|
216
|
+
strokeWidth: "4.2"
|
|
217
|
+
}
|
|
218
|
+
),
|
|
219
|
+
/* @__PURE__ */ jsx(
|
|
220
|
+
"path",
|
|
221
|
+
{
|
|
222
|
+
d: "M190.491 29.7483 48.2859 18.434l-4.2 98.848 143.2901 10.976z",
|
|
223
|
+
fill: "#FDFD0D"
|
|
224
|
+
}
|
|
225
|
+
)
|
|
226
|
+
] }),
|
|
227
|
+
/* @__PURE__ */ jsx(
|
|
228
|
+
"canvas",
|
|
229
|
+
{
|
|
230
|
+
className: "absolute inset-0 h-full w-full",
|
|
231
|
+
ref: canvasRef,
|
|
232
|
+
style: {
|
|
233
|
+
clipPath: "polygon(23% 10.65%, 90.71% 17.2%, 89.23% 74.13%, 20.99% 67.79%)"
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
)
|
|
237
|
+
] });
|
|
238
|
+
}
|
|
239
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiPHN0ZGluPiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnXG5cbmNvbnN0IFZFUlQgPSAvKiBnbHNsICovIGBhdHRyaWJ1dGUgdmVjMiBhO3ZvaWQgbWFpbigpe2dsX1Bvc2l0aW9uPXZlYzQoYSwwLDEpO31gXG5cbmNvbnN0IEZSQUcgPSAvKiBnbHNsICovIGBwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG51bmlmb3JtIGZsb2F0IHQ7XG51bmlmb3JtIHZlYzIgcjtcblxuY29uc3QgZmxvYXQgRkJNX1NUUiA9IC4wODtcblxuZmxvYXQgaCh2ZWMyIHApIHsgcmV0dXJuIGZyYWN0KHNpbihkb3QocCwgdmVjMigxMjcuMSwgMzExLjcpKSkgKiA0Mzc1OC41NDUzKTsgfVxuXG5mbG9hdCBuMih2ZWMyIHApIHtcbiAgdmVjMiBpID0gZmxvb3IocCksIGYgPSBmcmFjdChwKTtcbiAgZiA9IGYgKiBmICogKDMuIC0gMi4gKiBmKTtcblxuICByZXR1cm4gbWl4KFxuICAgIG1peChoKGkpLCBoKGkgKyB2ZWMyKDEsIDApKSwgZi54KSxcbiAgICBtaXgoaChpICsgdmVjMigwLCAxKSksIGgoaSArIHZlYzIoMSwgMSkpLCBmLngpLFxuICAgIGYueVxuICApO1xufVxuXG5mbG9hdCBmYm0odmVjMiBwKSB7XG4gIGZsb2F0IHYgPSAwLiwgYSA9IC41O1xuXG4gIGZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSsrKSB7XG4gICAgdiArPSBhICogbjIocCk7XG4gICAgcCAqPSAyLjE7XG4gICAgYSAqPSAuNDU7XG4gIH1cblxuICByZXR1cm4gdjtcbn1cblxuZmxvYXQgZHJpZnQoZmxvYXQgc3BlZWQsIGZsb2F0IHMpIHtcbiAgcmV0dXJuIGZyYWN0KHQgKiBzcGVlZCArIHMgKyAuMDIgKiBzaW4odCAqIC40ICsgcyAqIDMuKSk7XG59XG5cbmZsb2F0IGJydXNoQXQodmVjMiB1diwgZmxvYXQgeSwgZmxvYXQgdGgsIGZsb2F0IHMpIHtcbiAgZmxvYXQgaHcgPSAuMzQgKyAuMDggKiBoKHZlYzIocywgNzcuKSk7XG4gIGZsb2F0IGN4ID0gLjU7XG4gIGZsb2F0IHhuID0gKHV2LnggLSAoY3ggLSBodykpIC8gKDIuICogaHcpO1xuICBmbG9hdCBlbnYgPSBzbW9vdGhzdGVwKDAuLCAuMDMsIHhuKSAqIHNtb290aHN0ZXAoMS4sIC45NywgeG4pO1xuICBmbG9hdCBsb2NhbFRoID0gdGggKiBlbnY7XG5cbiAgaWYgKGxvY2FsVGggPCAuMDAyKSByZXR1cm4gMC47XG5cbiAgZmxvYXQgbW9ycGggPSBmbG9vcih0ICogOC4pICogLjcgKyBzO1xuICBmbG9hdCB0b3AgPSB5IC0gbG9jYWxUaCAqIC41ICsgZmJtKHZlYzIodXYueCAqIDYuLCBtb3JwaCkpICogRkJNX1NUUjtcbiAgZmxvYXQgYm90ID0geSArIGxvY2FsVGggKiAuNSAtIGZibSh2ZWMyKHV2LnggKiA2LiwgbW9ycGggKyAzMC4pKSAqIEZCTV9TVFI7XG4gIGZsb2F0IHgwID0gY3ggLSBodyArIGZibSh2ZWMyKHV2LnkgKiA4LiwgbW9ycGggKyA2MC4pKSAqIEZCTV9TVFI7XG4gIGZsb2F0IHgxID0gY3ggKyBodyAtIGZibSh2ZWMyKHV2LnkgKiA4LiwgbW9ycGggKyA5MC4pKSAqIEZCTV9TVFI7XG5cbiAgZmxvYXQgZE1pbiA9IG1pbihtaW4odXYueSAtIHRvcCwgYm90IC0gdXYueSksIG1pbih1di54IC0geDAsIHgxIC0gdXYueCkpO1xuXG4gIGZsb2F0IGJyaXN0bGUgPSBuMih2ZWMyKHV2LnggKiA2MC4sIHV2LnkgKiA4LiArIHMpKSAqIC40XG4gICAgKyBuMih2ZWMyKHV2LnggKiAyNS4sICh1di55IC0geSkgKiAxMjAuICsgcykpICogLjM1XG4gICAgKyBuMih2ZWMyKHV2LnggKiA5MC4sIHV2LnkgKiAzLiArIHMgKiAyLikpICogLjI1O1xuXG4gIGZsb2F0IGVhdGVuID0gc21vb3Roc3RlcCguMDMsIDAuLCBkTWluKSAqICgxLiAtIHNtb290aHN0ZXAoLjIsIC41LCBicmlzdGxlKSk7XG5cbiAgcmV0dXJuIGNsYW1wKHNtb290aHN0ZXAoMC4sIC4wMDMsIGRNaW4pICogKDEuIC0gZWF0ZW4pLCAwLiwgMS4pO1xufVxuXG52b2lkIG1haW4oKSB7XG4gIHZlYzIgdXYgPSBnbF9GcmFnQ29vcmQueHkgLyByO1xuICB1diA9IHZlYzIodXYueCAqIGNvcyguMDk1KSAtIHV2LnkgKiBzaW4oLjA5NSksIHV2LnggKiBzaW4oLjA5NSkgKyB1di55ICogY29zKC4wOTUpKTtcbiAgdXYgKz0gdmVjMihmYm0odXYgKiA0LiArIHQgKiAuMDYpLCBmYm0odXYgKiA0LiArIDguICsgdCAqIC4wNSkpICogLjAxMjtcblxuICB2ZWMzIGMgPSB2ZWMzKC45OTIsIC45OTIsIC4wNTEpO1xuXG4gIGZsb2F0IHNtU2Nyb2xsID0gLWRyaWZ0KC4wNCwgNS4pICogMi47XG4gIGZsb2F0IHNtID0gMC47XG5cbiAgZm9yIChpbnQgaSA9IDA7IGkgPCAyMDsgaSsrKSB7XG4gICAgc20gPSBtYXgoc20sIGJydXNoQXQodXYsIG1vZChmbG9hdChpKSAqIC4xICsgc21TY3JvbGwsIDIuKSAtIC41LCAuMDQsIGZsb2F0KGkpICsgMTAuKSk7XG4gIH1cblxuICBmbG9hdCBkMSA9IGRyaWZ0KC4xNSwgMS4pLCBkMiA9IGRyaWZ0KC4xNSwgMS4zNyksIGQzID0gZHJpZnQoLjE1LCAxLjU4KSwgZDQgPSBkcmlmdCguMTUsIDEuODIpO1xuICBmbG9hdCBiaWcgPSBtYXgoXG4gICAgbWF4KGJydXNoQXQodXYsIDEuMSAtIGQxICogMS40LCAuMjgsIDEuKSwgYnJ1c2hBdCh1diwgMS4xIC0gZDIgKiAxLjQsIC4xOCwgMi4pKSxcbiAgICBtYXgoYnJ1c2hBdCh1diwgMS4xIC0gZDMgKiAxLjQsIC4zLCAzLiksIGJydXNoQXQodXYsIDEuMSAtIGQ0ICogMS40LCAuMTUsIDQuKSlcbiAgKTtcblxuICBjID0gbWl4KGMsIHZlYzMoMC4pLCBjbGFtcChtYXgoc20sIGJpZyksIDAuLCAxLikpO1xuICBjICo9IC45NCArIC4wNiAqIHNpbih1di55ICogci55ICogNi4yODMpO1xuXG4gIHZlYzIgcmF3ID0gZ2xfRnJhZ0Nvb3JkLnh5IC8gcjtcbiAgZmxvYXQgZHggPSBtaW4ocmF3LnggLSAuMjIsIC45MCAtIHJhdy54KTtcbiAgZmxvYXQgZHkgPSBtaW4ocmF3LnkgLSAuMjksIC44NiAtIHJhdy55KTtcbiAgZmxvYXQgY3ljbGUgPSBmbG9vcih0ICogLjQpO1xuICBmbG9hdCBlZGdlID0gbWl4KHNtb290aHN0ZXAoLjIyLCAwLiwgbWF4KG1pbihkeCwgZHkpLCAwLikpLCAxLiwgc3RlcCguNzUsIGgodmVjMihjeWNsZSwgMTMuKSkpKVxuICAgICogc21vb3Roc3RlcCguODUsIDEuLCBzaW4odCAqIDIuNSkgKiAuNSArIC41KVxuICAgICogKC43ICsgLjMgKiBoKHZlYzIoY3ljbGUsIDcuKSkpO1xuXG4gIGZsb2F0IHNjYW5ZID0gZmxvb3IoZ2xfRnJhZ0Nvb3JkLnkpO1xuICBmbG9hdCByb3dOb2lzZSA9IGgodmVjMihzY2FuWSwgZmxvb3IodCAqIDMwLikpKTtcbiAgYyAqPSAxLiAtIGVkZ2UgKiBtYXgoc3RlcCguNDUsIHJvd05vaXNlKSwgc3RlcCguMywgaCh2ZWMyKGdsX0ZyYWdDb29yZC54ICsgc2NhblkgKiA3LiwgZmxvb3IodCAqIDQ1LikpKSkgKiBzdGVwKC4yLCByb3dOb2lzZSkpO1xuXG4gIGdsX0ZyYWdDb2xvciA9IHZlYzQoY2xhbXAoYywgMC4sIDEuKSwgMS4pO1xufWBcblxuZnVuY3Rpb24gdXNlR0wocmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTENhbnZhc0VsZW1lbnQgfCBudWxsPikge1xuICBjb25zdCByYWYgPSB1c2VSZWYoMClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGMgPSByZWYuY3VycmVudFxuXG4gICAgaWYgKCFjKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBjb25zdCBnbCA9IGMuZ2V0Q29udGV4dCgnd2ViZ2wnKVxuXG4gICAgaWYgKCFnbCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3Qgc2ggPSAodHlwZTogbnVtYmVyLCBzcmM6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgcyA9IGdsLmNyZWF0ZVNoYWRlcih0eXBlKSFcbiAgICAgIGdsLnNoYWRlclNvdXJjZShzLCBzcmMpXG4gICAgICBnbC5jb21waWxlU2hhZGVyKHMpXG5cbiAgICAgIHJldHVybiBzXG4gICAgfVxuXG4gICAgY29uc3QgcCA9IGdsLmNyZWF0ZVByb2dyYW0oKSFcbiAgICBnbC5hdHRhY2hTaGFkZXIocCwgc2goZ2wuVkVSVEVYX1NIQURFUiwgVkVSVCkpXG4gICAgZ2wuYXR0YWNoU2hhZGVyKHAsIHNoKGdsLkZSQUdNRU5UX1NIQURFUiwgRlJBRykpXG4gICAgZ2wubGlua1Byb2dyYW0ocClcbiAgICBnbC51c2VQcm9ncmFtKHApXG5cbiAgICBnbC5iaW5kQnVmZmVyKGdsLkFSUkFZX0JVRkZFUiwgZ2wuY3JlYXRlQnVmZmVyKCkpXG4gICAgZ2wuYnVmZmVyRGF0YShcbiAgICAgIGdsLkFSUkFZX0JVRkZFUixcbiAgICAgIG5ldyBGbG9hdDMyQXJyYXkoWy0xLCAtMSwgMSwgLTEsIC0xLCAxLCAxLCAxXSksXG4gICAgICBnbC5TVEFUSUNfRFJBV1xuICAgIClcblxuICAgIGNvbnN0IGEgPSBnbC5nZXRBdHRyaWJMb2NhdGlvbihwLCAnYScpXG4gICAgZ2wuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoYSlcbiAgICBnbC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGEsIDIsIGdsLkZMT0FULCBmYWxzZSwgMCwgMClcblxuICAgIGNvbnN0IHVUID0gZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHAsICd0JylcbiAgICBjb25zdCB1UiA9IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwLCAncicpXG5cbiAgICBjb25zdCByZXNpemUgPSAoKSA9PiB7XG4gICAgICBjb25zdCByZWN0ID0gYy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKVxuICAgICAgY29uc3QgZHByID0gTWF0aC5taW4oZGV2aWNlUGl4ZWxSYXRpbywgMilcblxuICAgICAgYy53aWR0aCA9IHJlY3Qud2lkdGggKiBkcHJcbiAgICAgIGMuaGVpZ2h0ID0gcmVjdC5oZWlnaHQgKiBkcHJcblxuICAgICAgZ2wudmlld3BvcnQoMCwgMCwgYy53aWR0aCwgYy5oZWlnaHQpXG4gICAgfVxuXG4gICAgcmVzaXplKClcblxuICAgIGNvbnN0IHJvID0gbmV3IFJlc2l6ZU9ic2VydmVyKHJlc2l6ZSlcbiAgICByby5vYnNlcnZlKGMpXG5cbiAgICBjb25zdCB0MCA9IHBlcmZvcm1hbmNlLm5vdygpXG5cbiAgICBsZXQgdmlzaWJsZSA9ICFkb2N1bWVudC5oaWRkZW5cbiAgICBsZXQgaW5WaWV3ID0gdHJ1ZVxuICAgIGxldCByYWYyID0gMFxuXG4gICAgY29uc3QgdGljayA9ICgpID0+IHtcbiAgICAgIGdsLnVuaWZvcm0xZih1VCwgKHBlcmZvcm1hbmNlLm5vdygpIC0gdDApIC8gMWUzKVxuICAgICAgZ2wudW5pZm9ybTJmKHVSLCBjLndpZHRoLCBjLmhlaWdodClcbiAgICAgIGdsLmRyYXdBcnJheXMoZ2wuVFJJQU5HTEVfU1RSSVAsIDAsIDQpXG5cbiAgICAgIHJhZjIgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGljaylcbiAgICB9XG5cbiAgICBjb25zdCBzdGFydCA9ICgpID0+IHtcbiAgICAgIGlmICh2aXNpYmxlICYmIGluVmlldyAmJiAhcmFmMikge1xuICAgICAgICByYWYyID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRpY2spXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgc3RvcCA9ICgpID0+IHtcbiAgICAgIGlmIChyYWYyKSB7XG4gICAgICAgIGNhbmNlbEFuaW1hdGlvbkZyYW1lKHJhZjIpXG4gICAgICAgIHJhZjIgPSAwXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgb25WaXNpYmlsaXR5ID0gKCkgPT4ge1xuICAgICAgdmlzaWJsZSA9ICFkb2N1bWVudC5oaWRkZW5cbiAgICAgIHZpc2libGUgPyBzdGFydCgpIDogc3RvcCgpXG4gICAgfVxuXG4gICAgY29uc3QgaW8gPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXG4gICAgICBlbnRyaWVzID0+IHtcbiAgICAgICAgaW5WaWV3ID0gZW50cmllcy5zb21lKGUgPT4gZS5pc0ludGVyc2VjdGluZylcbiAgICAgICAgaW5WaWV3ID8gc3RhcnQoKSA6IHN0b3AoKVxuICAgICAgfSxcbiAgICAgIHsgdGhyZXNob2xkOiAwIH1cbiAgICApXG5cbiAgICBpby5vYnNlcnZlKGMpXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndmlzaWJpbGl0eWNoYW5nZScsIG9uVmlzaWJpbGl0eSlcblxuICAgIHN0YXJ0KClcbiAgICByYWYuY3VycmVudCA9IHJhZjJcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBzdG9wKClcbiAgICAgIGlvLmRpc2Nvbm5lY3QoKVxuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndmlzaWJpbGl0eWNoYW5nZScsIG9uVmlzaWJpbGl0eSlcbiAgICAgIHJvLmRpc2Nvbm5lY3QoKVxuICAgIH1cbiAgfSwgW3JlZl0pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBUVih7IGNsYXNzTmFtZSB9OiB7IGNsYXNzTmFtZT86IHN0cmluZyB9KSB7XG4gIGNvbnN0IGNhbnZhc1JlZiA9IHVzZVJlZjxIVE1MQ2FudmFzRWxlbWVudD4obnVsbClcbiAgdXNlR0woY2FudmFzUmVmKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e1sncmVsYXRpdmUnLCBjbGFzc05hbWVdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJyl9PlxuICAgICAgPHN2ZyBjbGFzc05hbWU9XCJyZWxhdGl2ZSBoLWZ1bGwgdy1mdWxsXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDIxMCAxNzNcIj5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBkPVwiTTMwLjgzNDIgMi40NDQ3MSA2LjA4MjY4IDM2LjY4M2MtLjI0NDM3LjMzOC0uMzgyNTQuNzQxMi0uMzk2ODkgMS4xNThMMS41Nzc1NCAxNTcuMTI2Yy0uMDM4OTEgMS4xMjkuODIzMzkgMi4wODcgMS45NTA5NiAyLjE2N2wxNjIuNDgzNSAxMS40NjNjLjQzMy4wMzEuODY2LS4wNzQgMS4yMzgtLjNsMzUuNzE4LTIxLjY5Yy42MDctLjM2OS45ODYtMS4wMiAxLjAwOC0xLjczbDQuMTAyLTEzMC45ODcxYy4wMzUtMS4xMjY5LS44MjYtMi4wODA2LTEuOTUxLTIuMTYwNEwzMi42ODQ3IDEuNTgwMjljLS43MjQ4LS4wNTE0NC0xLjQyNDcuMjc1NTEtMS44NTA1Ljg2NDQyWlwiXG4gICAgICAgICAgZmlsbD1cIiNGREZEMERcIlxuICAgICAgICAgIHN0cm9rZT1cIiNGREZEMERcIlxuICAgICAgICAgIHN0cm9rZVdpZHRoPVwiMy4xNVwiXG4gICAgICAgIC8+XG5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBkPVwiTTIwMy4wOSAxNy4xNDgzIDM1LjY4NDQgNS44MzM5NWwtNC4yIDEyMS45NDgwNSAxNjguNDkwNiAxMy4wNzZ6XCJcbiAgICAgICAgICBmaWxsPVwiIzAwMFwiXG4gICAgICAgICAgc3Ryb2tlPVwiI0ZERkQwRFwiXG4gICAgICAgICAgc3Ryb2tlV2lkdGg9XCI0LjJcIlxuICAgICAgICAvPlxuXG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgZD1cIk0xOTAuNDkxIDI5Ljc0ODMgNDguMjg1OSAxOC40MzRsLTQuMiA5OC44NDggMTQzLjI5MDEgMTAuOTc2elwiXG4gICAgICAgICAgZmlsbD1cIiNGREZEMERcIlxuICAgICAgICAvPlxuICAgICAgPC9zdmc+XG5cbiAgICAgIDxjYW52YXNcbiAgICAgICAgY2xhc3NOYW1lPVwiYWJzb2x1dGUgaW5zZXQtMCBoLWZ1bGwgdy1mdWxsXCJcbiAgICAgICAgcmVmPXtjYW52YXNSZWZ9XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgY2xpcFBhdGg6XG4gICAgICAgICAgICAncG9seWdvbigyMyUgMTAuNjUlLCA5MC43MSUgMTcuMiUsIDg5LjIzJSA3NC4xMyUsIDIwLjk5JSA2Ny43OSUpJ1xuICAgICAgICB9fVxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIjtBQWlPTSxTQUNFLEtBREY7QUEvTk4sU0FBUyxXQUFXLGNBQWM7QUFFbEMsTUFBTTtBQUFBO0FBQUEsRUFBa0I7QUFBQTtBQUV4QixNQUFNO0FBQUE7QUFBQSxFQUFrQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFtR3hCLFNBQVMsTUFBTSxLQUFnRDtBQUM3RCxRQUFNLE1BQU0sT0FBTyxDQUFDO0FBRXBCLFlBQVUsTUFBTTtBQUNkLFVBQU0sSUFBSSxJQUFJO0FBRWQsUUFBSSxDQUFDLEdBQUc7QUFDTjtBQUFBLElBQ0Y7QUFFQSxVQUFNLEtBQUssRUFBRSxXQUFXLE9BQU87QUFFL0IsUUFBSSxDQUFDLElBQUk7QUFDUDtB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
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const H1: import("react").ForwardRefExoticComponent<{
|
|
2
|
+
as?: "h1" | undefined;
|
|
3
|
+
} & {
|
|
4
|
+
expanded?: boolean | null | undefined;
|
|
5
|
+
compressed?: boolean | null | undefined;
|
|
6
|
+
courier?: boolean | null | undefined;
|
|
7
|
+
mondwest?: boolean | null | undefined;
|
|
8
|
+
mono?: boolean | null | undefined;
|
|
9
|
+
sans?: boolean | null | undefined;
|
|
10
|
+
variant?: "lg" | "md" | "sm" | "xl" | null | undefined;
|
|
11
|
+
} & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, "ref">, "as" | "expanded" | "compressed" | "courier" | "mondwest" | "mono" | "sans" | "variant"> & import("react").RefAttributes<HTMLHeadingElement>>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from "react";
|
|
3
|
+
import { cn } from "../../../utils/index.js";
|
|
4
|
+
import { Typography } from "./index.js";
|
|
5
|
+
export const H1 = forwardRef(
|
|
6
|
+
({ className, ...props }, ref) => {
|
|
7
|
+
return /* @__PURE__ */ jsx(
|
|
8
|
+
Typography,
|
|
9
|
+
{
|
|
10
|
+
as: "h1",
|
|
11
|
+
className: cn("font-bold", className),
|
|
12
|
+
variant: "xl",
|
|
13
|
+
...{ ref, ...props }
|
|
14
|
+
}
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiPHN0ZGluPiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgZm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyBjbiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJ1xuXG5pbXBvcnQgeyBUeXBvZ3JhcGh5LCB0eXBlIFR5cG9ncmFwaHlQcm9wcyB9IGZyb20gJy4nXG5cbmV4cG9ydCBjb25zdCBIMSA9IGZvcndhcmRSZWY8SFRNTEhlYWRpbmdFbGVtZW50LCBUeXBvZ3JhcGh5UHJvcHM8J2gxJz4+KFxuICAoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICA8VHlwb2dyYXBoeVxuICAgICAgICBhcz1cImgxXCJcbiAgICAgICAgY2xhc3NOYW1lPXtjbignZm9udC1ib2xkJywgY2xhc3NOYW1lKX1cbiAgICAgICAgdmFyaWFudD1cInhsXCJcbiAgICAgICAgey4uLnsgcmVmLCAuLi5wcm9wcyB9fVxuICAgICAgLz5cbiAgICApXG4gIH1cbilcbiJdLAogICJtYXBwaW5ncyI6ICJBQVNNO0FBVE4sU0FBUyxrQkFBa0I7QUFFM0IsU0FBUyxVQUFVO0FBRW5CLFNBQVMsa0JBQXdDO0FBRTFDLGFBQU0sS0FBSztBQUFBLEVBQ2hCLENBQUMsRUFBRSxXQUFXLEdBQUcsTUFBTSxHQUFHLFFBQVE7QUFDaEMsV0FDRTtBQUFBLE1BQUM7QUFBQTtBQUFBLFFBQ0MsSUFBRztBQUFBLFFBQ0gsV0FBVyxHQUFHLGFBQWEsU0FBUztBQUFBLFFBQ3BDLFNBQVE7QUFBQSxRQUNQLEdBQUcsRUFBRSxLQUFLLEdBQUcsTUFBTTtBQUFBO0FBQUEsSUFDdEI7QUFBQSxFQUVKO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const H2: import("react").ForwardRefExoticComponent<{
|
|
2
|
+
as?: "h2" | undefined;
|
|
3
|
+
} & {
|
|
4
|
+
expanded?: boolean | null | undefined;
|
|
5
|
+
compressed?: boolean | null | undefined;
|
|
6
|
+
courier?: boolean | null | undefined;
|
|
7
|
+
mondwest?: boolean | null | undefined;
|
|
8
|
+
mono?: boolean | null | undefined;
|
|
9
|
+
sans?: boolean | null | undefined;
|
|
10
|
+
variant?: "lg" | "md" | "sm" | "xl" | null | undefined;
|
|
11
|
+
} & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLHeadingElement>, HTMLHeadingElement>, "ref">, "as" | "expanded" | "compressed" | "courier" | "mondwest" | "mono" | "sans" | "variant"> & import("react").RefAttributes<HTMLHeadingElement>>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from "react";
|
|
3
|
+
import { cn } from "../../../utils/index.js";
|
|
4
|
+
import { Typography } from "./index.js";
|
|
5
|
+
export const H2 = forwardRef(
|
|
6
|
+
({ className, ...props }, ref) => {
|
|
7
|
+
return /* @__PURE__ */ jsx(
|
|
8
|
+
Typography,
|
|
9
|
+
{
|
|
10
|
+
as: "h2",
|
|
11
|
+
className: cn("font-bold", className),
|
|
12
|
+
variant: "lg",
|
|
13
|
+
...{ ref, ...props }
|
|
14
|
+
}
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiPHN0ZGluPiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgZm9yd2FyZFJlZiB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgeyBjbiB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJ1xuXG5pbXBvcnQgeyBUeXBvZ3JhcGh5LCB0eXBlIFR5cG9ncmFwaHlQcm9wcyB9IGZyb20gJy4nXG5cbmV4cG9ydCBjb25zdCBIMiA9IGZvcndhcmRSZWY8SFRNTEhlYWRpbmdFbGVtZW50LCBUeXBvZ3JhcGh5UHJvcHM8J2gyJz4+KFxuICAoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICA8VHlwb2dyYXBoeVxuICAgICAgICBhcz1cImgyXCJcbiAgICAgICAgY2xhc3NOYW1lPXtjbignZm9udC1ib2xkJywgY2xhc3NOYW1lKX1cbiAgICAgICAgdmFyaWFudD1cImxnXCJcbiAgICAgICAgey4uLnsgcmVmLCAuLi5wcm9wcyB9fVxuICAgICAgLz5cbiAgICApXG4gIH1cbilcbiJdLAogICJtYXBwaW5ncyI6ICJBQVNNO0FBVE4sU0FBUyxrQkFBa0I7QUFFM0IsU0FBUyxVQUFVO0FBRW5CLFNBQVMsa0JBQXdDO0FBRTFDLGFBQU0sS0FBSztBQUFBLEVBQ2hCLENBQUMsRUFBRSxXQUFXLEdBQUcsTUFBTSxHQUFHLFFBQVE7QUFDaEMsV0FDRTtBQUFBLE1BQUM7QUFBQTtBQUFBLFFBQ0MsSUFBRztBQUFBLFFBQ0gsV0FBVyxHQUFHLGFBQWEsU0FBUztBQUFBLFFBQ3BDLFNBQVE7QUFBQSxRQUNQLEdBQUcsRUFBRSxLQUFLLEdBQUcsTUFBTTtBQUFBO0FBQUEsSUFDdEI7QUFBQSxFQUVKO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
2
|
+
import { type PolyProps } from '../../../utils';
|
|
3
|
+
declare const typographyVariants: (props?: ({
|
|
4
|
+
compressed?: boolean | null | undefined;
|
|
5
|
+
courier?: boolean | null | undefined;
|
|
6
|
+
expanded?: boolean | null | undefined;
|
|
7
|
+
mondwest?: boolean | null | undefined;
|
|
8
|
+
mono?: boolean | null | undefined;
|
|
9
|
+
sans?: boolean | null | undefined;
|
|
10
|
+
variant?: "lg" | "md" | "sm" | "xl" | null | undefined;
|
|
11
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
12
|
+
export declare const Typography: import("../../..").PolyComponent<"span", OwnProps>;
|
|
13
|
+
type OwnProps = VariantProps<typeof typographyVariants>;
|
|
14
|
+
export type TypographyProps<T extends React.ElementType = 'span'> = PolyProps<T, OwnProps>;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { cva } from "class-variance-authority";
|
|
2
|
+
import { createElement } from "react";
|
|
3
|
+
import { cn, polyRef } from "../../../utils/index.js";
|
|
4
|
+
const typographyVariants = cva("font-sans", {
|
|
5
|
+
variants: {
|
|
6
|
+
compressed: { true: "font-compressed" },
|
|
7
|
+
courier: { true: "font-courier" },
|
|
8
|
+
expanded: { true: "font-expanded" },
|
|
9
|
+
mondwest: { true: "font-mondwest tracking-[0.1875rem]" },
|
|
10
|
+
mono: { true: "font-mono" },
|
|
11
|
+
sans: { true: "font-sans" },
|
|
12
|
+
variant: {
|
|
13
|
+
lg: "text-[2.625rem] leading-[1] tracking-[0.0525rem]",
|
|
14
|
+
md: "text-[2.625rem] leading-[1] tracking-[0.0525rem]",
|
|
15
|
+
sm: "leading-1.4 text-[.9375rem] tracking-[0.1875rem]",
|
|
16
|
+
xl: "text-[4.5rem] leading-[1] tracking-[0.135rem]"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
export const Typography = polyRef(
|
|
21
|
+
({
|
|
22
|
+
as,
|
|
23
|
+
className,
|
|
24
|
+
compressed,
|
|
25
|
+
courier,
|
|
26
|
+
expanded,
|
|
27
|
+
mondwest,
|
|
28
|
+
mono,
|
|
29
|
+
variant,
|
|
30
|
+
...rest
|
|
31
|
+
}, ref) => {
|
|
32
|
+
const fonts = { compressed, courier, expanded, mondwest, mono };
|
|
33
|
+
const fontVariant = { ...fonts, sans: !Object.values(fonts).some(Boolean) };
|
|
34
|
+
return createElement(as ?? "span", {
|
|
35
|
+
...rest,
|
|
36
|
+
className: cn(typographyVariants({ ...fontVariant, variant }), className),
|
|
37
|
+
ref
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
);
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiPHN0ZGluPiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgY3ZhLCB0eXBlIFZhcmlhbnRQcm9wcyB9IGZyb20gJ2NsYXNzLXZhcmlhbmNlLWF1dGhvcml0eSdcbmltcG9ydCB7IGNyZWF0ZUVsZW1lbnQgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgY24sIHR5cGUgUG9seVByb3BzLCBwb2x5UmVmIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnXG5cbmNvbnN0IHR5cG9ncmFwaHlWYXJpYW50cyA9IGN2YSgnZm9udC1zYW5zJywge1xuICB2YXJpYW50czoge1xuICAgIGNvbXByZXNzZWQ6IHsgdHJ1ZTogJ2ZvbnQtY29tcHJlc3NlZCcgfSxcbiAgICBjb3VyaWVyOiB7IHRydWU6ICdmb250LWNvdXJpZXInIH0sXG4gICAgZXhwYW5kZWQ6IHsgdHJ1ZTogJ2ZvbnQtZXhwYW5kZWQnIH0sXG4gICAgbW9uZHdlc3Q6IHsgdHJ1ZTogJ2ZvbnQtbW9uZHdlc3QgdHJhY2tpbmctWzAuMTg3NXJlbV0nIH0sXG4gICAgbW9ubzogeyB0cnVlOiAnZm9udC1tb25vJyB9LFxuICAgIHNhbnM6IHsgdHJ1ZTogJ2ZvbnQtc2FucycgfSxcbiAgICB2YXJpYW50OiB7XG4gICAgICBsZzogJ3RleHQtWzIuNjI1cmVtXSBsZWFkaW5nLVsxXSB0cmFja2luZy1bMC4wNTI1cmVtXScsXG4gICAgICBtZDogJ3RleHQtWzIuNjI1cmVtXSBsZWFkaW5nLVsxXSB0cmFja2luZy1bMC4wNTI1cmVtXScsXG4gICAgICBzbTogJ2xlYWRpbmctMS40IHRleHQtWy45Mzc1cmVtXSB0cmFja2luZy1bMC4xODc1cmVtXScsXG4gICAgICB4bDogJ3RleHQtWzQuNXJlbV0gbGVhZGluZy1bMV0gdHJhY2tpbmctWzAuMTM1cmVtXSdcbiAgICB9XG4gIH1cbn0pXG5cbmV4cG9ydCBjb25zdCBUeXBvZ3JhcGh5ID0gcG9seVJlZjwnc3BhbicsIE93blByb3BzPihcbiAgKFxuICAgIHtcbiAgICAgIGFzLFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgY29tcHJlc3NlZCxcbiAgICAgIGNvdXJpZXIsXG4gICAgICBleHBhbmRlZCxcbiAgICAgIG1vbmR3ZXN0LFxuICAgICAgbW9ubyxcbiAgICAgIHZhcmlhbnQsXG4gICAgICAuLi5yZXN0XG4gICAgfSxcbiAgICByZWZcbiAgKSA9PiB7XG4gICAgY29uc3QgZm9udHMgPSB7IGNvbXByZXNzZWQsIGNvdXJpZXIsIGV4cGFuZGVkLCBtb25kd2VzdCwgbW9ubyB9XG4gICAgY29uc3QgZm9udFZhcmlhbnQgPSB7IC4uLmZvbnRzLCBzYW5zOiAhT2JqZWN0LnZhbHVlcyhmb250cykuc29tZShCb29sZWFuKSB9XG5cbiAgICByZXR1cm4gY3JlYXRlRWxlbWVudCgoYXMgPz8gJ3NwYW4nKSBhcyBSZWFjdC5FbGVtZW50VHlwZSwge1xuICAgICAgLi4ucmVzdCxcbiAgICAgIGNsYXNzTmFtZTogY24odHlwb2dyYXBoeVZhcmlhbnRzKHsgLi4uZm9udFZhcmlhbnQsIHZhcmlhbnQgfSksIGNsYXNzTmFtZSksXG4gICAgICByZWZcbiAgICB9KVxuICB9XG4pXG5cbnR5cGUgT3duUHJvcHMgPSBWYXJpYW50UHJvcHM8dHlwZW9mIHR5cG9ncmFwaHlWYXJpYW50cz5cblxuZXhwb3J0IHR5cGUgVHlwb2dyYXBoeVByb3BzPFQgZXh0ZW5kcyBSZWFjdC5FbGVtZW50VHlwZSA9ICdzcGFuJz4gPSBQb2x5UHJvcHM8XG4gIFQsXG4gIE93blByb3BzXG4+XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQSxTQUFTLFdBQThCO0FBQ3ZDLFNBQVMscUJBQXFCO0FBRTlCLFNBQVMsSUFBb0IsZUFBZTtBQUU1QyxNQUFNLHFCQUFxQixJQUFJLGFBQWE7QUFBQSxFQUMxQyxVQUFVO0FBQUEsSUFDUixZQUFZLEVBQUUsTUFBTSxrQkFBa0I7QUFBQSxJQUN0QyxTQUFTLEVBQUUsTUFBTSxlQUFlO0FBQUEsSUFDaEMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCO0FBQUEsSUFDbEMsVUFBVSxFQUFFLE1BQU0scUNBQXFDO0FBQUEsSUFDdkQsTUFBTSxFQUFFLE1BQU0sWUFBWTtBQUFBLElBQzFCLE1BQU0sRUFBRSxNQUFNLFlBQVk7QUFBQSxJQUMxQixTQUFTO0FBQUEsTUFDUCxJQUFJO0FBQUEsTUFDSixJQUFJO0FBQUEsTUFDSixJQUFJO0FBQUEsTUFDSixJQUFJO0FBQUEsSUFDTjtBQUFBLEVBQ0Y7QUFDRixDQUFDO0FBRU0sYUFBTSxhQUFhO0FBQUEsRUFDeEIsQ0FDRTtBQUFBLElBQ0U7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQTtBQUFBLElBQ0E7QUFBQSxJQUNBO0FBQUEsSUFDQSxHQUFHO0FBQUEsRUFDTCxHQUNBLFFBQ0c7QUFDSCxVQUFNLFFBQVEsRUFBRSxZQUFZLFNBQVMsVUFBVSxVQUFVLEtBQUs7QUFDOUQsVUFBTSxjQUFjLEVBQUUsR0FBRyxPQUFPLE1BQU0sQ0FBQyxPQUFPLE9BQU8sS0FBSyxFQUFFLEtBQUssT0FBTyxFQUFFO0FBRTFFLFdBQU8sY0FBZSxNQUFNLFFBQThCO0FBQUEsTUFDeEQsR0FBRztBQUFBLE1BQ0gsV0FBVyxHQUFHLG1CQUFtQixFQUFFLEdBQUcsYUFBYSxRQUFRLENBQUMsR0FBRyxTQUFTO0FBQUEsTUFDeEU7QUFBQSxJQUNGLENBQUM7QUFBQSxFQUNIO0FBQ0Y7IiwKICAibmFtZXMiOiBbXQp9Cg==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../../../utils/index.js";
|
|
3
|
+
import { Small } from "./small.js";
|
|
4
|
+
export function Legend({
|
|
5
|
+
children,
|
|
6
|
+
className,
|
|
7
|
+
label,
|
|
8
|
+
sub,
|
|
9
|
+
...props
|
|
10
|
+
}) {
|
|
11
|
+
return /* @__PURE__ */ jsxs("hgroup", { className: cn("flex flex-col gap-2", className), ...props, children: [
|
|
12
|
+
/* @__PURE__ */ jsx(Small, { children: label }),
|
|
13
|
+
sub && /* @__PURE__ */ jsxs(Small, { className: "opacity-50", children: [
|
|
14
|
+
"- ",
|
|
15
|
+
sub
|
|
16
|
+
] }),
|
|
17
|
+
children
|
|
18
|
+
] });
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiPHN0ZGluPiJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHsgY24gfSBmcm9tICcuLi8uLi8uLi91dGlscydcblxuaW1wb3J0IHsgU21hbGwgfSBmcm9tICcuL3NtYWxsJ1xuXG5leHBvcnQgZnVuY3Rpb24gTGVnZW5kKHtcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgbGFiZWwsXG4gIHN1YixcbiAgLi4ucHJvcHNcbn06IExlZ2VuZFByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGhncm91cCBjbGFzc05hbWU9e2NuKCdmbGV4IGZsZXgtY29sIGdhcC0yJywgY2xhc3NOYW1lKX0gey4uLnByb3BzfT5cbiAgICAgIDxTbWFsbD57bGFiZWx9PC9TbWFsbD5cbiAgICAgIHtzdWIgJiYgPFNtYWxsIGNsYXNzTmFtZT1cIm9wYWNpdHktNTBcIj4tIHtzdWJ9PC9TbWFsbD59XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9oZ3JvdXA+XG4gIClcbn1cblxuaW50ZXJmYWNlIExlZ2VuZFByb3BzIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50UHJvcHM8J2hncm91cCc+IHtcbiAgbGFiZWw6IFJlYWN0LlJlYWN0Tm9kZVxuICBzdWI/OiBSZWFjdC5SZWFjdE5vZGVcbn1cbiJdLAogICJtYXBwaW5ncyI6ICJBQWFNLGNBQ1EsWUFEUjtBQWJOLFNBQVMsVUFBVTtBQUVuQixTQUFTLGFBQWE7QUFFZixnQkFBUyxPQUFPO0FBQUEsRUFDckI7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBLEdBQUc7QUFDTCxHQUFnQjtBQUNkLFNBQ0UscUJBQUMsWUFBTyxXQUFXLEdBQUcsdUJBQXVCLFNBQVMsR0FBSSxHQUFHLE9BQzNEO0FBQUEsd0JBQUMsU0FBTyxpQkFBTTtBQUFBLElBQ2IsT0FBTyxxQkFBQyxTQUFNLFdBQVUsY0FBYTtBQUFBO0FBQUEsTUFBRztBQUFBLE9BQUk7QUFBQSxJQUM1QztBQUFBLEtBQ0g7QUFFSjsiLAogICJuYW1lcyI6IFtdCn0K
|