@orangecheck/design 0.7.4 → 0.7.6
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/dist/components.js +31 -39
- package/dist/components.js.map +1 -1
- package/dist/components.mjs +30 -38
- package/dist/components.mjs.map +1 -1
- package/dist/composites.d.mts +5 -3
- package/dist/composites.d.ts +5 -3
- package/dist/composites.js +31 -39
- package/dist/composites.js.map +1 -1
- package/dist/composites.mjs +30 -38
- package/dist/composites.mjs.map +1 -1
- package/dist/format.d.mts +12 -1
- package/dist/format.d.ts +12 -1
- package/dist/format.js +48 -0
- package/dist/format.js.map +1 -1
- package/dist/format.mjs +47 -1
- package/dist/format.mjs.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +73 -11
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +72 -12
- package/dist/index.mjs.map +1 -1
- package/dist/primitives.js.map +1 -1
- package/dist/primitives.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.mjs
CHANGED
|
@@ -1904,6 +1904,38 @@ function TabsContent({ className, ...props }) {
|
|
|
1904
1904
|
}
|
|
1905
1905
|
);
|
|
1906
1906
|
}
|
|
1907
|
+
function useSpotPrice(opts = {}) {
|
|
1908
|
+
const { endpoint = "/api/price/btc-usd", intervalMs = 6e4 } = opts;
|
|
1909
|
+
const [state, setState] = useState({
|
|
1910
|
+
btcUsd: REFERENCE_BTC_USD,
|
|
1911
|
+
fetchedAt: null
|
|
1912
|
+
});
|
|
1913
|
+
useEffect(() => {
|
|
1914
|
+
let cancelled = false;
|
|
1915
|
+
async function pull() {
|
|
1916
|
+
try {
|
|
1917
|
+
const res = await fetch(endpoint);
|
|
1918
|
+
if (!res.ok) return;
|
|
1919
|
+
const json = await res.json();
|
|
1920
|
+
if (cancelled) return;
|
|
1921
|
+
if (typeof json.btc_usd === "number" && json.btc_usd > 0) {
|
|
1922
|
+
setState({
|
|
1923
|
+
btcUsd: Math.round(json.btc_usd),
|
|
1924
|
+
fetchedAt: json.fetched_at ?? null
|
|
1925
|
+
});
|
|
1926
|
+
}
|
|
1927
|
+
} catch {
|
|
1928
|
+
}
|
|
1929
|
+
}
|
|
1930
|
+
void pull();
|
|
1931
|
+
const t = setInterval(pull, intervalMs);
|
|
1932
|
+
return () => {
|
|
1933
|
+
cancelled = true;
|
|
1934
|
+
clearInterval(t);
|
|
1935
|
+
};
|
|
1936
|
+
}, [endpoint, intervalMs]);
|
|
1937
|
+
return state;
|
|
1938
|
+
}
|
|
1907
1939
|
|
|
1908
1940
|
// src/format/index.ts
|
|
1909
1941
|
var REFERENCE_BTC_USD = 95e3;
|
|
@@ -1933,6 +1965,16 @@ function usdToSats(usd, btcUsd = REFERENCE_BTC_USD) {
|
|
|
1933
1965
|
function priceBoth(sats, btcUsd = REFERENCE_BTC_USD) {
|
|
1934
1966
|
return `${formatSats(sats)} sats \xB7 ${satsToUsd(sats, btcUsd)}`;
|
|
1935
1967
|
}
|
|
1968
|
+
function asOf(iso) {
|
|
1969
|
+
if (!iso) return null;
|
|
1970
|
+
const t = new Date(iso);
|
|
1971
|
+
if (Number.isNaN(t.getTime())) return null;
|
|
1972
|
+
return `as of ${t.toLocaleTimeString(void 0, {
|
|
1973
|
+
hour: "2-digit",
|
|
1974
|
+
minute: "2-digit",
|
|
1975
|
+
hour12: false
|
|
1976
|
+
})}`;
|
|
1977
|
+
}
|
|
1936
1978
|
function relativeTime(when) {
|
|
1937
1979
|
const t = when instanceof Date ? when.getTime() : new Date(when).getTime();
|
|
1938
1980
|
if (Number.isNaN(t)) return "";
|
|
@@ -2074,28 +2116,46 @@ function QrCode({ value, size = 200, label, className }) {
|
|
|
2074
2116
|
);
|
|
2075
2117
|
}
|
|
2076
2118
|
function HelpHint({
|
|
2077
|
-
title,
|
|
2078
2119
|
children,
|
|
2079
|
-
|
|
2080
|
-
|
|
2120
|
+
title,
|
|
2121
|
+
side = "top",
|
|
2122
|
+
size = "sm",
|
|
2123
|
+
tone = "default",
|
|
2124
|
+
label = "what is this?",
|
|
2081
2125
|
className
|
|
2082
2126
|
}) {
|
|
2083
|
-
|
|
2127
|
+
const iconSize = size === "xs" ? 12 : 14;
|
|
2128
|
+
return /* @__PURE__ */ jsxs(PopoverPrimitive.Root, { children: [
|
|
2084
2129
|
/* @__PURE__ */ jsx(
|
|
2085
|
-
|
|
2130
|
+
PopoverPrimitive.Trigger,
|
|
2086
2131
|
{
|
|
2087
2132
|
"aria-label": label,
|
|
2133
|
+
onClick: (e) => e.stopPropagation(),
|
|
2088
2134
|
className: cn(
|
|
2089
|
-
"
|
|
2135
|
+
"focus-visible:ring-primary/60 inline-flex shrink-0 items-center justify-center rounded-full transition-colors outline-none focus-visible:ring-2",
|
|
2136
|
+
tone === "subtle" ? "text-muted-foreground/60 hover:text-foreground/80" : "text-primary/70 hover:text-primary",
|
|
2090
2137
|
className
|
|
2091
2138
|
),
|
|
2092
|
-
children: /* @__PURE__ */ jsx(HelpCircle, {
|
|
2139
|
+
children: /* @__PURE__ */ jsx(HelpCircle, { size: iconSize, "aria-hidden": true })
|
|
2093
2140
|
}
|
|
2094
2141
|
),
|
|
2095
|
-
/* @__PURE__ */
|
|
2096
|
-
|
|
2097
|
-
|
|
2098
|
-
|
|
2142
|
+
/* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsxs(
|
|
2143
|
+
PopoverPrimitive.Content,
|
|
2144
|
+
{
|
|
2145
|
+
side,
|
|
2146
|
+
sideOffset: 6,
|
|
2147
|
+
collisionPadding: 12,
|
|
2148
|
+
className: "border-border bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 z-50 max-w-xs rounded-md border p-3 text-xs leading-relaxed shadow-md outline-none",
|
|
2149
|
+
children: [
|
|
2150
|
+
title && /* @__PURE__ */ jsxs("div", { className: "label-mono text-primary mb-1.5", children: [
|
|
2151
|
+
"\xA7 ",
|
|
2152
|
+
title
|
|
2153
|
+
] }),
|
|
2154
|
+
/* @__PURE__ */ jsx("div", { className: "text-foreground/90", children }),
|
|
2155
|
+
/* @__PURE__ */ jsx(PopoverPrimitive.Arrow, { className: "fill-popover" })
|
|
2156
|
+
]
|
|
2157
|
+
}
|
|
2158
|
+
) })
|
|
2099
2159
|
] });
|
|
2100
2160
|
}
|
|
2101
2161
|
var TONE_CLASS = {
|
|
@@ -3870,6 +3930,6 @@ function LayoutSubHeader({
|
|
|
3870
3930
|
] }) });
|
|
3871
3931
|
}
|
|
3872
3932
|
|
|
3873
|
-
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertTitle, AlertWithAction, AlertWithCountdown, AppShell, Badge, Bar, BitcoinAddress, Button, Callout, Card, Checkbox, ConfirmHost, CopyButton, DEFAULT_OC_THEME, DataRow, DefinitionList, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, EcosystemSwitcher, EmptyState, ErrorBoundary, FAMILY_PROPERTIES, HelpHint, Input, Label, LayoutSubHeader, Modal, OC_DEFAULT_ACCENT, OC_SKIN_COOKIE, OC_THEMES, OcAccountMenu, OcAccountMenuView, OcAppearanceMenu, OcDashboardHub, OcDashboardShell, OcLogoDropdown, OcPrimaryNav, OcThemeBridge, OcThemePicker, OcThemeProvider, Pagination, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PromptHost, QrCode, REFERENCE_BTC_USD, RadioGroup, RadioGroupItem, SITE_STATE_LABEL, SatsAmount, SectionHeader, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, Sparkline, StatBlock, StatCard, StatGrid, StatTile, StatusPill, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, ThemeToggle, ThemeToggleLink, Toaster, Working, WorkingPanel, accentFor, badgeVariants, buttonVariants, cn, confirm, explorerUrl, findFamilyProperty, formatSats, formatSatsCompact, getOcThemeInitScript, isKnownTheme, makeStatusPill, priceBoth, prompt, relativeTime, resolveTheme, satsToUsd, shortenAddress, usdToSats, useOcSkin };
|
|
3933
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertTitle, AlertWithAction, AlertWithCountdown, AppShell, Badge, Bar, BitcoinAddress, Button, Callout, Card, Checkbox, ConfirmHost, CopyButton, DEFAULT_OC_THEME, DataRow, DefinitionList, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, EcosystemSwitcher, EmptyState, ErrorBoundary, FAMILY_PROPERTIES, HelpHint, Input, Label, LayoutSubHeader, Modal, OC_DEFAULT_ACCENT, OC_SKIN_COOKIE, OC_THEMES, OcAccountMenu, OcAccountMenuView, OcAppearanceMenu, OcDashboardHub, OcDashboardShell, OcLogoDropdown, OcPrimaryNav, OcThemeBridge, OcThemePicker, OcThemeProvider, Pagination, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PromptHost, QrCode, REFERENCE_BTC_USD, RadioGroup, RadioGroupItem, SITE_STATE_LABEL, SatsAmount, SectionHeader, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, Sparkline, StatBlock, StatCard, StatGrid, StatTile, StatusPill, Switch, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, ThemeToggle, ThemeToggleLink, Toaster, Working, WorkingPanel, accentFor, asOf, badgeVariants, buttonVariants, cn, confirm, explorerUrl, findFamilyProperty, formatSats, formatSatsCompact, getOcThemeInitScript, isKnownTheme, makeStatusPill, priceBoth, prompt, relativeTime, resolveTheme, satsToUsd, shortenAddress, usdToSats, useOcSkin, useSpotPrice };
|
|
3874
3934
|
//# sourceMappingURL=index.mjs.map
|
|
3875
3935
|
//# sourceMappingURL=index.mjs.map
|