@orangecheck/design 0.5.1 → 0.5.3
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/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +33 -5
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +32 -6
- package/dist/index.mjs.map +1 -1
- package/dist/primitives.js +3 -0
- package/dist/primitives.js.map +1 -1
- package/dist/primitives.mjs +3 -0
- package/dist/primitives.mjs.map +1 -1
- package/dist/styles/theme.css +13 -0
- package/dist/tokens.d.mts +9 -1
- package/dist/tokens.d.ts +9 -1
- package/dist/tokens.js +28 -5
- package/dist/tokens.js.map +1 -1
- package/dist/tokens.mjs +27 -6
- package/dist/tokens.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { DEFAULT_OC_THEME, OC_SKIN_COOKIE, OC_THEMES, OcAppearanceMenu, OcAppearanceMenuProps, OcTheme, OcThemeBridge, OcThemeId, OcThemePicker, OcThemePickerProps, OcThemeProvider, OcThemeProviderProps, cn, getOcThemeInitScript, isKnownTheme, resolveTheme, useOcSkin } from './tokens.mjs';
|
|
1
|
+
export { DEFAULT_OC_THEME, OC_DEFAULT_ACCENT, OC_SKIN_COOKIE, OC_THEMES, OcAppearanceMenu, OcAppearanceMenuProps, OcTheme, OcThemeBridge, OcThemeId, OcThemePicker, OcThemePickerProps, OcThemeProvider, OcThemeProviderProps, accentFor, cn, getOcThemeInitScript, isKnownTheme, resolveTheme, useOcSkin } from './tokens.mjs';
|
|
2
2
|
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertTitle, AlertWithAction, AlertWithActionProps, AlertWithCountdown, AlertWithCountdownProps, Badge, Bar, BarProps, BitcoinAddress, BitcoinAddressProps, Button, Card, CardProps, ConfirmHost, ConfirmOptions, CopyButton, CopyButtonProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, ErrorBoundary, Input, Label, Modal, ModalProps, Pagination, PaginationProps, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PromptHost, PromptOptions, QrCode, QrCodeProps, SatsAmount, SatsAmountProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, SkeletonProps, Sparkline, SparklineProps, StatBlock, StatBlockProps, StatusPill, StatusPillProps, StatusTone, Textarea, ThemeToggle, ThemeToggleLink, Toaster, Working, WorkingPanel, WorkingProps, badgeVariants, buttonVariants, confirm, prompt } from './primitives.mjs';
|
|
3
3
|
export * from '@orangecheck/ui';
|
|
4
4
|
export { ExplorerNetwork, ExplorerTarget, REFERENCE_BTC_USD, explorerUrl, formatSats, formatSatsCompact, priceBoth, relativeTime, satsToUsd, shortenAddress, usdToSats } from './format.mjs';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { DEFAULT_OC_THEME, OC_SKIN_COOKIE, OC_THEMES, OcAppearanceMenu, OcAppearanceMenuProps, OcTheme, OcThemeBridge, OcThemeId, OcThemePicker, OcThemePickerProps, OcThemeProvider, OcThemeProviderProps, cn, getOcThemeInitScript, isKnownTheme, resolveTheme, useOcSkin } from './tokens.js';
|
|
1
|
+
export { DEFAULT_OC_THEME, OC_DEFAULT_ACCENT, OC_SKIN_COOKIE, OC_THEMES, OcAppearanceMenu, OcAppearanceMenuProps, OcTheme, OcThemeBridge, OcThemeId, OcThemePicker, OcThemePickerProps, OcThemeProvider, OcThemeProviderProps, accentFor, cn, getOcThemeInitScript, isKnownTheme, resolveTheme, useOcSkin } from './tokens.js';
|
|
2
2
|
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, Alert, AlertDescription, AlertTitle, AlertWithAction, AlertWithActionProps, AlertWithCountdown, AlertWithCountdownProps, Badge, Bar, BarProps, BitcoinAddress, BitcoinAddressProps, Button, Card, CardProps, ConfirmHost, ConfirmOptions, CopyButton, CopyButtonProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, ErrorBoundary, Input, Label, Modal, ModalProps, Pagination, PaginationProps, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PromptHost, PromptOptions, QrCode, QrCodeProps, SatsAmount, SatsAmountProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, SkeletonProps, Sparkline, SparklineProps, StatBlock, StatBlockProps, StatusPill, StatusPillProps, StatusTone, Textarea, ThemeToggle, ThemeToggleLink, Toaster, Working, WorkingPanel, WorkingProps, badgeVariants, buttonVariants, confirm, prompt } from './primitives.js';
|
|
3
3
|
export * from '@orangecheck/ui';
|
|
4
4
|
export { ExplorerNetwork, ExplorerTarget, REFERENCE_BTC_USD, explorerUrl, formatSats, formatSatsCompact, priceBoth, relativeTime, satsToUsd, shortenAddress, usdToSats } from './format.js';
|
package/dist/index.js
CHANGED
|
@@ -100,6 +100,7 @@ __export(src_exports, {
|
|
|
100
100
|
Input: () => Input,
|
|
101
101
|
Label: () => Label,
|
|
102
102
|
Modal: () => Modal,
|
|
103
|
+
OC_DEFAULT_ACCENT: () => OC_DEFAULT_ACCENT,
|
|
103
104
|
OC_SKIN_COOKIE: () => OC_SKIN_COOKIE,
|
|
104
105
|
OC_THEMES: () => OC_THEMES,
|
|
105
106
|
OcAppearanceMenu: () => OcAppearanceMenu,
|
|
@@ -146,6 +147,7 @@ __export(src_exports, {
|
|
|
146
147
|
Toaster: () => Toaster,
|
|
147
148
|
Working: () => Working,
|
|
148
149
|
WorkingPanel: () => WorkingPanel,
|
|
150
|
+
accentFor: () => accentFor,
|
|
149
151
|
badgeVariants: () => badgeVariants,
|
|
150
152
|
buttonVariants: () => buttonVariants,
|
|
151
153
|
cn: () => cn,
|
|
@@ -173,24 +175,32 @@ var OC_THEMES = [
|
|
|
173
175
|
{
|
|
174
176
|
id: "orangecheck",
|
|
175
177
|
label: "orangecheck",
|
|
176
|
-
description: "the chain \u2014 Bitcoin orange, sharp 0.25rem corners, Inter + JetBrains Mono"
|
|
178
|
+
description: "the chain \u2014 Bitcoin orange, sharp 0.25rem corners, Inter + JetBrains Mono",
|
|
179
|
+
accent: "#f97316"
|
|
177
180
|
},
|
|
178
181
|
{
|
|
179
182
|
id: "phosphor",
|
|
180
183
|
label: "phosphor",
|
|
181
|
-
description: "the node \u2014 CRT terminal green, hard 0.125rem, all-mono \xB7 sovereignty & verify"
|
|
184
|
+
description: "the node \u2014 CRT terminal green, hard 0.125rem, all-mono \xB7 sovereignty & verify",
|
|
185
|
+
accent: "#55d671"
|
|
182
186
|
},
|
|
183
187
|
{
|
|
184
188
|
id: "lightning",
|
|
185
189
|
label: "lightning",
|
|
186
|
-
description: "the network \u2014 electric violet (L2), hardest 0rem edges, sans \xB7 instant"
|
|
190
|
+
description: "the network \u2014 electric violet (L2), hardest 0rem edges, sans \xB7 instant",
|
|
191
|
+
accent: "#c27dff"
|
|
187
192
|
},
|
|
188
193
|
{
|
|
189
194
|
id: "gold",
|
|
190
195
|
label: "gold",
|
|
191
|
-
description: "sound money \u2014 digital gold, hard 0.125rem milled edge, mono ledger \xB7 21M"
|
|
196
|
+
description: "sound money \u2014 digital gold, hard 0.125rem milled edge, mono ledger \xB7 21M",
|
|
197
|
+
accent: "#e3b831"
|
|
192
198
|
}
|
|
193
199
|
];
|
|
200
|
+
var OC_DEFAULT_ACCENT = "#f97316";
|
|
201
|
+
function accentFor(id) {
|
|
202
|
+
return OC_THEMES.find((t) => t.id === id)?.accent ?? OC_DEFAULT_ACCENT;
|
|
203
|
+
}
|
|
194
204
|
var DEFAULT_OC_THEME = "orangecheck";
|
|
195
205
|
function isKnownTheme(id) {
|
|
196
206
|
return !!id && OC_THEMES.some((t) => t.id === id);
|
|
@@ -232,6 +242,15 @@ function applyAttr(skin) {
|
|
|
232
242
|
if (typeof document === "undefined") return;
|
|
233
243
|
document.documentElement.setAttribute(ATTR, skin);
|
|
234
244
|
}
|
|
245
|
+
function applySkinChrome(skin) {
|
|
246
|
+
if (typeof window === "undefined") return;
|
|
247
|
+
if (typeof window.__ocApplySkinChrome === "function") {
|
|
248
|
+
window.__ocApplySkinChrome(skin);
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
const meta = document.querySelector('meta[name="theme-color"]');
|
|
252
|
+
if (meta) meta.setAttribute("content", accentFor(skin));
|
|
253
|
+
}
|
|
235
254
|
var OcSkinContext = React2.createContext(null);
|
|
236
255
|
function OcThemeProvider({ children, defaultSkin = DEFAULT_OC_THEME }) {
|
|
237
256
|
const [skin, setSkinState] = React2.useState(() => resolveTheme(defaultSkin));
|
|
@@ -241,6 +260,7 @@ function OcThemeProvider({ children, defaultSkin = DEFAULT_OC_THEME }) {
|
|
|
241
260
|
hydratedRef.current = true;
|
|
242
261
|
const fromCookie = resolveTheme(readSkinCookie() ?? defaultSkin);
|
|
243
262
|
applyAttr(fromCookie);
|
|
263
|
+
applySkinChrome(fromCookie);
|
|
244
264
|
setSkinState(fromCookie);
|
|
245
265
|
}, [defaultSkin]);
|
|
246
266
|
React2.useEffect(() => {
|
|
@@ -248,6 +268,7 @@ function OcThemeProvider({ children, defaultSkin = DEFAULT_OC_THEME }) {
|
|
|
248
268
|
const fromCookie = resolveTheme(readSkinCookie() ?? skin);
|
|
249
269
|
if (fromCookie !== skin) {
|
|
250
270
|
applyAttr(fromCookie);
|
|
271
|
+
applySkinChrome(fromCookie);
|
|
251
272
|
setSkinState(fromCookie);
|
|
252
273
|
}
|
|
253
274
|
}
|
|
@@ -261,6 +282,7 @@ function OcThemeProvider({ children, defaultSkin = DEFAULT_OC_THEME }) {
|
|
|
261
282
|
const setSkin = React2.useCallback((id) => {
|
|
262
283
|
const next = resolveTheme(id);
|
|
263
284
|
applyAttr(next);
|
|
285
|
+
applySkinChrome(next);
|
|
264
286
|
writeSkinCookie(next);
|
|
265
287
|
setSkinState(next);
|
|
266
288
|
}, []);
|
|
@@ -278,7 +300,8 @@ function useOcSkin() {
|
|
|
278
300
|
return ctx;
|
|
279
301
|
}
|
|
280
302
|
function getOcThemeInitScript(defaultSkin = DEFAULT_OC_THEME) {
|
|
281
|
-
|
|
303
|
+
const accents = Object.fromEntries(OC_THEMES.map((t) => [t.id, t.accent]));
|
|
304
|
+
return `(function(){var ACC=${JSON.stringify(accents)},DEF=${JSON.stringify(defaultSkin)},ORIG=${JSON.stringify(OC_DEFAULT_ACCENT)},fav=null;function acc(s){return ACC[s]||ACC[DEF]||ORIG;}window.__ocApplySkinChrome=function(s){try{var a=acc(s);var meta=document.querySelector('meta[name="theme-color"]');if(meta){meta.setAttribute('content',a);}var link=document.querySelector('link[rel~="icon"][type="image/svg+xml"]');if(!link){return;}var paint=function(svg){link.setAttribute('href','data:image/svg+xml,'+encodeURIComponent(svg.split(ORIG).join(a)));};if(fav!=null){paint(fav);return;}var h=link.getAttribute('href');if(!h||h.indexOf('data:')===0){return;}fetch(h).then(function(r){return r.text();}).then(function(svg){fav=svg;paint(svg);}).catch(function(){});}catch(e){}};try{var m=document.cookie.match(/(?:^|; )${OC_SKIN_COOKIE}=([^;]*)/);var s=m?decodeURIComponent(m[1]):DEF;if(!s){s=DEF;}document.documentElement.setAttribute('${ATTR}',s);window.__ocApplySkinChrome(s);}catch(e){document.documentElement.setAttribute('${ATTR}',DEF);}})();`;
|
|
282
305
|
}
|
|
283
306
|
var COOKIE = "oc_theme";
|
|
284
307
|
var ALLOWED = /* @__PURE__ */ new Set(["light", "dark", "system"]);
|
|
@@ -752,6 +775,9 @@ function Textarea({ className, ...props }) {
|
|
|
752
775
|
className: cn(
|
|
753
776
|
"placeholder:text-muted-foreground border-input bg-input/30 hover:bg-input/50 dark:bg-input/30 dark:hover:bg-input/50 w-full min-w-0 rounded-md border px-3 py-2 font-mono text-xs leading-relaxed shadow-xs transition-[color,box-shadow,background-color] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50",
|
|
754
777
|
"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
|
|
778
|
+
// aria-invalid parity with Input — error styling when a consumer
|
|
779
|
+
// marks the field invalid.
|
|
780
|
+
"aria-invalid:ring-brand/25 dark:aria-invalid:ring-brand/35 aria-invalid:border-brand",
|
|
755
781
|
className
|
|
756
782
|
),
|
|
757
783
|
...props
|
|
@@ -2029,6 +2055,7 @@ exports.ErrorBoundary = ErrorBoundary;
|
|
|
2029
2055
|
exports.Input = Input;
|
|
2030
2056
|
exports.Label = Label;
|
|
2031
2057
|
exports.Modal = Modal;
|
|
2058
|
+
exports.OC_DEFAULT_ACCENT = OC_DEFAULT_ACCENT;
|
|
2032
2059
|
exports.OC_SKIN_COOKIE = OC_SKIN_COOKIE;
|
|
2033
2060
|
exports.OC_THEMES = OC_THEMES;
|
|
2034
2061
|
exports.OcAppearanceMenu = OcAppearanceMenu;
|
|
@@ -2075,6 +2102,7 @@ exports.ThemeToggleLink = ThemeToggleLink;
|
|
|
2075
2102
|
exports.Toaster = Toaster;
|
|
2076
2103
|
exports.Working = Working;
|
|
2077
2104
|
exports.WorkingPanel = WorkingPanel;
|
|
2105
|
+
exports.accentFor = accentFor;
|
|
2078
2106
|
exports.badgeVariants = badgeVariants;
|
|
2079
2107
|
exports.buttonVariants = buttonVariants;
|
|
2080
2108
|
exports.cn = cn;
|