@hanzo/ui 8.27.9 → 8.27.10
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/backends/gui/3d-card.cjs +100 -0
- package/dist/backends/gui/3d-card.d.ts +59 -0
- package/dist/backends/gui/3d-card.d.ts.map +1 -0
- package/dist/backends/gui/3d-card.js +92 -0
- package/dist/backends/gui/3d-card.js.map +1 -0
- package/dist/backends/gui/3d-marquee.cjs +225 -0
- package/dist/backends/gui/3d-marquee.d.ts +114 -0
- package/dist/backends/gui/3d-marquee.d.ts.map +1 -0
- package/dist/backends/gui/3d-marquee.js +190 -0
- package/dist/backends/gui/3d-marquee.js.map +1 -0
- package/dist/backends/gui/3d-pin.cjs +51 -0
- package/dist/backends/gui/3d-pin.d.ts +14 -0
- package/dist/backends/gui/3d-pin.d.ts.map +1 -0
- package/dist/backends/gui/3d-pin.js +49 -0
- package/dist/backends/gui/3d-pin.js.map +1 -0
- package/dist/backends/gui/advanced-chart.cjs +61 -0
- package/dist/backends/gui/advanced-chart.d.ts +38 -0
- package/dist/backends/gui/advanced-chart.d.ts.map +1 -0
- package/dist/backends/gui/advanced-chart.js +59 -0
- package/dist/backends/gui/advanced-chart.js.map +1 -0
- package/dist/backends/gui/alert.cjs +106 -0
- package/dist/backends/gui/alert.d.ts +39 -0
- package/dist/backends/gui/alert.d.ts.map +1 -0
- package/dist/backends/gui/alert.js +102 -0
- package/dist/backends/gui/alert.js.map +1 -0
- package/dist/backends/gui/android.cjs +52 -0
- package/dist/backends/gui/android.d.ts +16 -0
- package/dist/backends/gui/android.d.ts.map +1 -0
- package/dist/backends/gui/android.js +50 -0
- package/dist/backends/gui/android.js.map +1 -0
- package/dist/backends/gui/animated-beam.cjs +97 -0
- package/dist/backends/gui/animated-beam.d.ts +57 -0
- package/dist/backends/gui/animated-beam.d.ts.map +1 -0
- package/dist/backends/gui/animated-beam.js +62 -0
- package/dist/backends/gui/animated-beam.js.map +1 -0
- package/dist/backends/gui/animated-cursor.cjs +183 -0
- package/dist/backends/gui/animated-cursor.d.ts +42 -0
- package/dist/backends/gui/animated-cursor.d.ts.map +1 -0
- package/dist/backends/gui/animated-cursor.js +181 -0
- package/dist/backends/gui/animated-cursor.js.map +1 -0
- package/dist/backends/gui/animated-testimonials.cjs +109 -0
- package/dist/backends/gui/animated-testimonials.d.ts +23 -0
- package/dist/backends/gui/animated-testimonials.d.ts.map +1 -0
- package/dist/backends/gui/animated-testimonials.js +74 -0
- package/dist/backends/gui/animated-testimonials.js.map +1 -0
- package/dist/backends/gui/animated-tooltip.cjs +100 -0
- package/dist/backends/gui/animated-tooltip.d.ts +15 -0
- package/dist/backends/gui/animated-tooltip.d.ts.map +1 -0
- package/dist/backends/gui/animated-tooltip.js +65 -0
- package/dist/backends/gui/animated-tooltip.js.map +1 -0
- package/dist/backends/gui/announcement.cjs +54 -0
- package/dist/backends/gui/announcement.d.ts +26 -0
- package/dist/backends/gui/announcement.d.ts.map +1 -0
- package/dist/backends/gui/announcement.js +52 -0
- package/dist/backends/gui/announcement.js.map +1 -0
- package/dist/backends/gui/apple-cards-carousel.cjs +198 -0
- package/dist/backends/gui/apple-cards-carousel.d.ts +45 -0
- package/dist/backends/gui/apple-cards-carousel.d.ts.map +1 -0
- package/dist/backends/gui/apple-cards-carousel.js +162 -0
- package/dist/backends/gui/apple-cards-carousel.js.map +1 -0
- package/dist/backends/gui/apple-hello-effect.cjs +38 -0
- package/dist/backends/gui/apple-hello-effect.d.ts +9 -0
- package/dist/backends/gui/apple-hello-effect.d.ts.map +1 -0
- package/dist/backends/gui/apple-hello-effect.js +36 -0
- package/dist/backends/gui/apple-hello-effect.js.map +1 -0
- package/dist/backends/gui/banner.cjs +108 -0
- package/dist/backends/gui/banner.d.ts +33 -0
- package/dist/backends/gui/banner.d.ts.map +1 -0
- package/dist/backends/gui/banner.js +106 -0
- package/dist/backends/gui/banner.js.map +1 -0
- package/dist/backends/gui/calendar.cjs +152 -0
- package/dist/backends/gui/calendar.d.ts +41 -0
- package/dist/backends/gui/calendar.d.ts.map +1 -0
- package/dist/backends/gui/calendar.js +151 -0
- package/dist/backends/gui/calendar.js.map +1 -0
- package/dist/backends/gui/choicebox.cjs +50 -0
- package/dist/backends/gui/choicebox.d.ts +33 -0
- package/dist/backends/gui/choicebox.d.ts.map +1 -0
- package/dist/backends/gui/choicebox.js +49 -0
- package/dist/backends/gui/choicebox.js.map +1 -0
- package/dist/backends/gui/code-block.cjs +120 -0
- package/dist/backends/gui/code-block.d.ts +22 -0
- package/dist/backends/gui/code-block.d.ts.map +1 -0
- package/dist/backends/gui/code-block.js +118 -0
- package/dist/backends/gui/code-block.js.map +1 -0
- package/dist/backends/gui/code-editor.cjs +195 -0
- package/dist/backends/gui/code-editor.d.ts +43 -0
- package/dist/backends/gui/code-editor.d.ts.map +1 -0
- package/dist/backends/gui/code-editor.js +160 -0
- package/dist/backends/gui/code-editor.js.map +1 -0
- package/dist/backends/gui/code-tabs.cjs +21 -0
- package/dist/backends/gui/code-tabs.d.ts +22 -0
- package/dist/backends/gui/code-tabs.d.ts.map +1 -0
- package/dist/backends/gui/code-tabs.js +19 -0
- package/dist/backends/gui/code-tabs.js.map +1 -0
- package/dist/backends/gui/color-picker.cjs +141 -0
- package/dist/backends/gui/color-picker.d.ts +25 -0
- package/dist/backends/gui/color-picker.d.ts.map +1 -0
- package/dist/backends/gui/color-picker.js +139 -0
- package/dist/backends/gui/color-picker.js.map +1 -0
- package/dist/backends/gui/combobox.cjs +42 -0
- package/dist/backends/gui/combobox.d.ts +39 -0
- package/dist/backends/gui/combobox.d.ts.map +1 -0
- package/dist/backends/gui/combobox.js +40 -0
- package/dist/backends/gui/combobox.js.map +1 -0
- package/dist/backends/gui/company-profile.cjs +43 -0
- package/dist/backends/gui/company-profile.d.ts +33 -0
- package/dist/backends/gui/company-profile.d.ts.map +1 -0
- package/dist/backends/gui/company-profile.js +41 -0
- package/dist/backends/gui/company-profile.js.map +1 -0
- package/dist/backends/gui/comparison.cjs +43 -0
- package/dist/backends/gui/comparison.d.ts +16 -0
- package/dist/backends/gui/comparison.d.ts.map +1 -0
- package/dist/backends/gui/comparison.js +41 -0
- package/dist/backends/gui/comparison.js.map +1 -0
- package/dist/backends/gui/credit-card.cjs +80 -0
- package/dist/backends/gui/credit-card.d.ts +21 -0
- package/dist/backends/gui/credit-card.d.ts.map +1 -0
- package/dist/backends/gui/credit-card.js +78 -0
- package/dist/backends/gui/credit-card.js.map +1 -0
- package/dist/backends/gui/crypto-market.cjs +128 -0
- package/dist/backends/gui/crypto-market.d.ts +52 -0
- package/dist/backends/gui/crypto-market.d.ts.map +1 -0
- package/dist/backends/gui/crypto-market.js +126 -0
- package/dist/backends/gui/crypto-market.js.map +1 -0
- package/dist/backends/gui/crypto-screener.cjs +55 -0
- package/dist/backends/gui/crypto-screener.d.ts +42 -0
- package/dist/backends/gui/crypto-screener.d.ts.map +1 -0
- package/dist/backends/gui/crypto-screener.js +53 -0
- package/dist/backends/gui/crypto-screener.js.map +1 -0
- package/dist/backends/gui/cursor.cjs +40 -0
- package/dist/backends/gui/cursor.d.ts +16 -0
- package/dist/backends/gui/cursor.d.ts.map +1 -0
- package/dist/backends/gui/cursor.js +38 -0
- package/dist/backends/gui/cursor.js.map +1 -0
- package/dist/backends/gui/data-table.cjs +211 -0
- package/dist/backends/gui/data-table.d.ts +71 -0
- package/dist/backends/gui/data-table.d.ts.map +1 -0
- package/dist/backends/gui/data-table.js +175 -0
- package/dist/backends/gui/data-table.js.map +1 -0
- package/dist/backends/gui/date-picker.cjs +66 -0
- package/dist/backends/gui/date-picker.d.ts +29 -0
- package/dist/backends/gui/date-picker.d.ts.map +1 -0
- package/dist/backends/gui/date-picker.js +64 -0
- package/dist/backends/gui/date-picker.js.map +1 -0
- package/dist/backends/gui/desktop-spotlight.cjs +46 -0
- package/dist/backends/gui/desktop-spotlight.d.ts +34 -0
- package/dist/backends/gui/desktop-spotlight.d.ts.map +1 -0
- package/dist/backends/gui/desktop-spotlight.js +44 -0
- package/dist/backends/gui/desktop-spotlight.js.map +1 -0
- package/dist/backends/gui/desktop-window.cjs +180 -0
- package/dist/backends/gui/desktop-window.d.ts +51 -0
- package/dist/backends/gui/desktop-window.d.ts.map +1 -0
- package/dist/backends/gui/desktop-window.js +177 -0
- package/dist/backends/gui/desktop-window.js.map +1 -0
- package/dist/backends/gui/desktop.cjs +238 -0
- package/dist/backends/gui/desktop.d.ts +109 -0
- package/dist/backends/gui/desktop.d.ts.map +1 -0
- package/dist/backends/gui/desktop.js +199 -0
- package/dist/backends/gui/desktop.js.map +1 -0
- package/dist/backends/gui/dialog-stack.cjs +26 -0
- package/dist/backends/gui/dialog-stack.d.ts +23 -0
- package/dist/backends/gui/dialog-stack.d.ts.map +1 -0
- package/dist/backends/gui/dialog-stack.js +24 -0
- package/dist/backends/gui/dialog-stack.js.map +1 -0
- package/dist/backends/gui/dock.cjs +99 -0
- package/dist/backends/gui/dock.d.ts +41 -0
- package/dist/backends/gui/dock.d.ts.map +1 -0
- package/dist/backends/gui/dock.js +96 -0
- package/dist/backends/gui/dock.js.map +1 -0
- package/dist/backends/gui/dropzone.cjs +142 -0
- package/dist/backends/gui/dropzone.d.ts +12 -0
- package/dist/backends/gui/dropzone.d.ts.map +1 -0
- package/dist/backends/gui/dropzone.js +140 -0
- package/dist/backends/gui/dropzone.js.map +1 -0
- package/dist/backends/gui/editor.cjs +80 -0
- package/dist/backends/gui/editor.d.ts +23 -0
- package/dist/backends/gui/editor.d.ts.map +1 -0
- package/dist/backends/gui/editor.js +45 -0
- package/dist/backends/gui/editor.js.map +1 -0
- package/dist/backends/gui/empty.cjs +71 -0
- package/dist/backends/gui/empty.d.ts +43 -0
- package/dist/backends/gui/empty.d.ts.map +1 -0
- package/dist/backends/gui/empty.js +63 -0
- package/dist/backends/gui/empty.js.map +1 -0
- package/dist/backends/gui/financials.cjs +45 -0
- package/dist/backends/gui/financials.d.ts +36 -0
- package/dist/backends/gui/financials.d.ts.map +1 -0
- package/dist/backends/gui/financials.js +43 -0
- package/dist/backends/gui/financials.js.map +1 -0
- package/dist/backends/gui/forex-market.cjs +21 -0
- package/dist/backends/gui/forex-market.d.ts +17 -0
- package/dist/backends/gui/forex-market.d.ts.map +1 -0
- package/dist/backends/gui/forex-market.js +19 -0
- package/dist/backends/gui/forex-market.js.map +1 -0
- package/dist/backends/gui/forex-screener.cjs +57 -0
- package/dist/backends/gui/forex-screener.d.ts +45 -0
- package/dist/backends/gui/forex-screener.d.ts.map +1 -0
- package/dist/backends/gui/forex-screener.js +55 -0
- package/dist/backends/gui/forex-screener.js.map +1 -0
- package/dist/backends/gui/gantt.cjs +50 -0
- package/dist/backends/gui/gantt.d.ts +19 -0
- package/dist/backends/gui/gantt.d.ts.map +1 -0
- package/dist/backends/gui/gantt.js +49 -0
- package/dist/backends/gui/gantt.js.map +1 -0
- package/dist/backends/gui/index.cjs +108 -1
- package/dist/backends/gui/index.d.ts +41 -0
- package/dist/backends/gui/index.d.ts.map +1 -1
- package/dist/backends/gui/index.js +41 -0
- package/dist/backends/gui/index.js.map +1 -1
- package/dist/gallery.html +1 -1
- package/dist/index.cjs +70 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/index.node.cjs +70 -1
- package/dist/index.node.js +3 -0
- package/package.json +1 -1
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Alert — a callout for one piece of information the page wants read: an
|
|
3
|
+
* optional leading icon, a title and a description in a bordered box, with a
|
|
4
|
+
* `default` and a `destructive` variant.
|
|
5
|
+
*
|
|
6
|
+
* The icon is the first child when that child is neither `AlertTitle` nor
|
|
7
|
+
* `AlertDescription`. It sits absolutely at the top-left corner and the text
|
|
8
|
+
* column indents to clear it, so `<Alert><Icon /><AlertTitle /><AlertDescription /></Alert>`
|
|
9
|
+
* needs no `icon` prop and a trailing action stays in the flow. Surface, icon,
|
|
10
|
+
* title and description are four styled parts sharing one `variant` through a
|
|
11
|
+
* styled context — the surface owns the border, the other three own color.
|
|
12
|
+
*/
|
|
13
|
+
import { type ComponentProps } from 'react';
|
|
14
|
+
export type AlertVariant = 'default' | 'destructive';
|
|
15
|
+
declare const AlertFrame: import("@hanzogui/web").GuiComponent<import("@hanzogui/web").TamaDefer, import("@hanzogui/web").GuiElement, import("@hanzogui/core").RNGuiViewNonStyleProps, import("@hanzogui/web").StackStyleBase, {
|
|
16
|
+
elevation?: number | import("@hanzogui/web").SizeTokens | undefined;
|
|
17
|
+
fullscreen?: boolean | undefined;
|
|
18
|
+
variant?: "default" | "destructive" | undefined;
|
|
19
|
+
}, import("@hanzogui/web").StaticConfigPublic>;
|
|
20
|
+
declare const AlertTitleText: import("@hanzogui/web").GuiComponent<import("@hanzogui/web").TamaDefer, import("@hanzogui/web").GuiTextElement, import("@hanzogui/web").TextNonStyleProps, import("@hanzogui/web").TextStylePropsBase, {
|
|
21
|
+
size?: import("@hanzogui/web").FontSizeTokens | undefined;
|
|
22
|
+
unstyled?: boolean | undefined;
|
|
23
|
+
variant?: "default" | "destructive" | undefined;
|
|
24
|
+
}, import("@hanzogui/web").StaticConfigPublic>;
|
|
25
|
+
declare const AlertDescriptionText: import("@hanzogui/web").GuiComponent<import("@hanzogui/web").TamaDefer, import("@hanzogui/web").GuiTextElement, import("@hanzogui/web").TextNonStyleProps, import("@hanzogui/web").TextStylePropsBase, {
|
|
26
|
+
size?: import("@hanzogui/web").FontSizeTokens | undefined;
|
|
27
|
+
unstyled?: boolean | undefined;
|
|
28
|
+
variant?: "default" | "destructive" | undefined;
|
|
29
|
+
}, import("@hanzogui/web").StaticConfigPublic>;
|
|
30
|
+
export type AlertProps = Omit<ComponentProps<typeof AlertFrame>, 'variant'> & {
|
|
31
|
+
variant?: AlertVariant | null;
|
|
32
|
+
};
|
|
33
|
+
export type AlertTitleProps = ComponentProps<typeof AlertTitleText>;
|
|
34
|
+
export type AlertDescriptionProps = ComponentProps<typeof AlertDescriptionText>;
|
|
35
|
+
declare function Alert({ variant, children, ...props }: AlertProps): import("react").JSX.Element;
|
|
36
|
+
declare const AlertTitle: (props: AlertTitleProps) => import("react").JSX.Element;
|
|
37
|
+
declare const AlertDescription: (props: AlertDescriptionProps) => import("react").JSX.Element;
|
|
38
|
+
export { Alert, AlertTitle, AlertDescription };
|
|
39
|
+
//# sourceMappingURL=alert.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/alert.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,OAAO,EAA4B,KAAK,cAAc,EAAE,MAAM,OAAO,CAAA;AAKrE,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,aAAa,CAAA;AAOpD,QAAA,MAAM,UAAU;;;;8CAmBd,CAAA;AAEF,QAAA,MAAM,cAAc;;;;8CAgBlB,CAAA;AAGF,QAAA,MAAM,oBAAoB;;;;8CAaxB,CAAA;AAyBF,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,EAAE,SAAS,CAAC,GAAG;IAC5E,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,CAAA;CAC9B,CAAA;AACD,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,cAAc,CAAC,CAAA;AACnE,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAE/E,iBAAS,KAAK,CAAC,EAAE,OAAmB,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,+BAkBrE;AAED,QAAA,MAAM,UAAU,UAAW,eAAe,gCAA2D,CAAA;AAErG,QAAA,MAAM,gBAAgB,UAAW,qBAAqB,gCAErD,CAAA;AAED,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAA"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* Alert — a callout for one piece of information the page wants read: an
|
|
5
|
+
* optional leading icon, a title and a description in a bordered box, with a
|
|
6
|
+
* `default` and a `destructive` variant.
|
|
7
|
+
*
|
|
8
|
+
* The icon is the first child when that child is neither `AlertTitle` nor
|
|
9
|
+
* `AlertDescription`. It sits absolutely at the top-left corner and the text
|
|
10
|
+
* column indents to clear it, so `<Alert><Icon /><AlertTitle /><AlertDescription /></Alert>`
|
|
11
|
+
* needs no `icon` prop and a trailing action stays in the flow. Surface, icon,
|
|
12
|
+
* title and description are four styled parts sharing one `variant` through a
|
|
13
|
+
* styled context — the surface owns the border, the other three own color.
|
|
14
|
+
*/
|
|
15
|
+
import { Children, isValidElement } from 'react';
|
|
16
|
+
import { SizableText, YStack, createStyledContext, styled } from '@hanzo/gui';
|
|
17
|
+
import { ink } from './ink.js';
|
|
18
|
+
import { slot } from './slot.js';
|
|
19
|
+
const ICON = 16;
|
|
20
|
+
const ICON_GUTTER = 28;
|
|
21
|
+
const AlertContext = /* @__PURE__ */ createStyledContext({ variant: 'default' });
|
|
22
|
+
const AlertFrame = styled(YStack, {
|
|
23
|
+
name: 'Alert',
|
|
24
|
+
context: AlertContext,
|
|
25
|
+
position: 'relative',
|
|
26
|
+
width: '100%',
|
|
27
|
+
rounded: '$4',
|
|
28
|
+
borderWidth: 1,
|
|
29
|
+
borderColor: '$borderColor',
|
|
30
|
+
bg: '$background',
|
|
31
|
+
p: '$4',
|
|
32
|
+
variants: {
|
|
33
|
+
variant: {
|
|
34
|
+
default: {},
|
|
35
|
+
destructive: { borderColor: '$red9' },
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
defaultVariants: { variant: 'default' },
|
|
39
|
+
});
|
|
40
|
+
const AlertTitleText = styled(SizableText, {
|
|
41
|
+
name: 'AlertTitle',
|
|
42
|
+
context: AlertContext,
|
|
43
|
+
render: 'h5',
|
|
44
|
+
size: '$3',
|
|
45
|
+
fontWeight: '500',
|
|
46
|
+
lineHeight: 16,
|
|
47
|
+
mb: '$1',
|
|
48
|
+
color: '$ink',
|
|
49
|
+
variants: {
|
|
50
|
+
variant: {
|
|
51
|
+
default: {},
|
|
52
|
+
destructive: { color: '$red9' },
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
// A div, so a paragraph or a list inside the description is valid markup.
|
|
57
|
+
const AlertDescriptionText = styled(SizableText, {
|
|
58
|
+
name: 'AlertDescription',
|
|
59
|
+
context: AlertContext,
|
|
60
|
+
render: 'div',
|
|
61
|
+
size: '$2',
|
|
62
|
+
color: '$quiet',
|
|
63
|
+
variants: {
|
|
64
|
+
variant: {
|
|
65
|
+
default: {},
|
|
66
|
+
destructive: { color: '$red9' },
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
// A Text host because a View takes no `color`, and an svg child paints in
|
|
71
|
+
// `currentColor`.
|
|
72
|
+
const IconSlot = styled(SizableText, {
|
|
73
|
+
name: 'AlertIcon',
|
|
74
|
+
context: AlertContext,
|
|
75
|
+
display: 'flex',
|
|
76
|
+
position: 'absolute',
|
|
77
|
+
t: '$4',
|
|
78
|
+
l: '$4',
|
|
79
|
+
width: ICON,
|
|
80
|
+
height: ICON,
|
|
81
|
+
items: 'center',
|
|
82
|
+
justify: 'center',
|
|
83
|
+
color: '$ink',
|
|
84
|
+
variants: {
|
|
85
|
+
variant: {
|
|
86
|
+
default: {},
|
|
87
|
+
destructive: { color: '$red9' },
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
function Alert({ variant = 'default', children, ...props }) {
|
|
92
|
+
const resolved = variant ?? 'default';
|
|
93
|
+
const items = Children.toArray(children);
|
|
94
|
+
const head = items[0];
|
|
95
|
+
const icon = isValidElement(head) && head.type !== AlertTitle && head.type !== AlertDescription ? head : null;
|
|
96
|
+
const body = icon ? items.slice(1) : items;
|
|
97
|
+
return (_jsxs(AlertFrame, { role: "alert", variant: resolved, ...slot('alert'), "data-variant": resolved, ...props, children: [icon ? (_jsx(IconSlot, { variant: resolved, ...slot('alert-icon'), children: icon })) : null, _jsx(YStack, { pl: icon ? ICON_GUTTER : 0, children: ink(body) })] }));
|
|
98
|
+
}
|
|
99
|
+
const AlertTitle = (props) => _jsx(AlertTitleText, { ...slot('alert-title'), ...props });
|
|
100
|
+
const AlertDescription = (props) => (_jsx(AlertDescriptionText, { ...slot('alert-description'), ...props }));
|
|
101
|
+
export { Alert, AlertTitle, AlertDescription };
|
|
102
|
+
//# sourceMappingURL=alert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert.js","sourceRoot":"","sources":["../../../src/backends/gui/alert.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
'use client';"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Android = Android;
|
|
5
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
|
+
/**
|
|
7
|
+
* Android — the Android robot, drawn as an icon.
|
|
8
|
+
*
|
|
9
|
+
* Four sizes on the icon ladder (16, 24, 32 and 48px) and one ink. `color`
|
|
10
|
+
* fills the body, arms and antennae and defaults to `currentColor`, so the
|
|
11
|
+
* mark takes the text color around it. The eyes take the opposite pole — white
|
|
12
|
+
* on inherited ink, black on a named color — so they stay visible against
|
|
13
|
+
* either fill.
|
|
14
|
+
*
|
|
15
|
+
* The frame is a gui stack rendered as a <span>: an icon is phrasing content,
|
|
16
|
+
* so it sits inside a button or a line of text where a <div> is not allowed
|
|
17
|
+
* (a parser closes a <p> at a <div>, and the hydrated tree then disagrees
|
|
18
|
+
* with the markup). It takes every stack prop — a hover style, a press
|
|
19
|
+
* handler, a class string. The frame owns the size and the drawing fills it,
|
|
20
|
+
* so a `width` set on the frame carries the drawing with it. The frame also
|
|
21
|
+
* carries the name, as `role="img"` and an `aria-label`, so the drawing inside
|
|
22
|
+
* is hidden from the reader and there is one label, not two; beside a label
|
|
23
|
+
* that already names the platform, pass `aria-hidden` and let the words carry
|
|
24
|
+
* it. The drawing is a plain <svg>, since gui has no vector primitive of its
|
|
25
|
+
* own.
|
|
26
|
+
*/
|
|
27
|
+
const gui_1 = require("@hanzo/gui");
|
|
28
|
+
const sx_1 = require("../../sx.cjs");
|
|
29
|
+
/** Edge of the icon per size, px. */
|
|
30
|
+
const EDGE = { sm: 16, default: 24, lg: 32, xl: 48 };
|
|
31
|
+
const Frame = (0, gui_1.styled)(gui_1.XStack, {
|
|
32
|
+
name: 'Android',
|
|
33
|
+
render: 'span',
|
|
34
|
+
display: 'inline-flex',
|
|
35
|
+
items: 'center',
|
|
36
|
+
justify: 'center',
|
|
37
|
+
shrink: 0,
|
|
38
|
+
variants: {
|
|
39
|
+
size: {
|
|
40
|
+
sm: { width: EDGE.sm, height: EDGE.sm },
|
|
41
|
+
default: { width: EDGE.default, height: EDGE.default },
|
|
42
|
+
lg: { width: EDGE.lg, height: EDGE.lg },
|
|
43
|
+
xl: { width: EDGE.xl, height: EDGE.xl },
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
defaultVariants: { size: 'default' },
|
|
47
|
+
});
|
|
48
|
+
function Android({ className, size = 'default', color = 'currentColor', ...props }) {
|
|
49
|
+
const resolved = size ?? 'default';
|
|
50
|
+
const eye = color === 'currentColor' ? '#ffffff' : '#000000';
|
|
51
|
+
return ((0, jsx_runtime_1.jsx)(Frame, { "data-slot": "android", "data-size": resolved, role: "img", "aria-label": "Android", size: resolved, ...(0, sx_1.sx)(className), ...props, children: (0, jsx_runtime_1.jsxs)("svg", { width: "100%", height: "100%", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": true, children: [(0, jsx_runtime_1.jsx)("path", { d: "M6 18c0 .55.45 1 1 1h1v3.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5V19h2v3.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5V19h1c.55 0 1-.45 1-1V8H6v10z", fill: color }), (0, jsx_runtime_1.jsx)("path", { d: "M15.5 6.5C15.5 5.12 14.38 4 13 4h-2c-1.38 0-2.5 1.12-2.5 2.5S9.62 9 11 9h2c1.38 0 2.5-1.12 2.5-2.5z", fill: color }), (0, jsx_runtime_1.jsx)("path", { d: "M7.5 2.5L9 4", stroke: color, strokeWidth: "1.5", strokeLinecap: "round" }), (0, jsx_runtime_1.jsx)("path", { d: "M16.5 2.5L15 4", stroke: color, strokeWidth: "1.5", strokeLinecap: "round" }), (0, jsx_runtime_1.jsx)("path", { d: "M4 10.5c0-.83.67-1.5 1.5-1.5S7 9.67 7 10.5v3c0 .83-.67 1.5-1.5 1.5S4 14.33 4 13.5v-3z", fill: color }), (0, jsx_runtime_1.jsx)("path", { d: "M17 10.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v3c0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5v-3z", fill: color }), (0, jsx_runtime_1.jsx)("circle", { cx: "10", cy: "6.5", r: "0.5", fill: eye }), (0, jsx_runtime_1.jsx)("circle", { cx: "14", cy: "6.5", r: "0.5", fill: eye })] }) }));
|
|
52
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ComponentProps } from 'react';
|
|
2
|
+
export type AndroidSize = 'sm' | 'default' | 'lg' | 'xl';
|
|
3
|
+
declare const Frame: import("@hanzogui/web").GuiComponent<import("@hanzogui/web").TamaDefer, import("@hanzogui/web").GuiElement, import("@hanzogui/core").RNGuiViewNonStyleProps, import("@hanzogui/web").StackStyleBase, {
|
|
4
|
+
elevation?: number | import("@hanzogui/web").SizeTokens | undefined;
|
|
5
|
+
fullscreen?: boolean | undefined;
|
|
6
|
+
size?: "default" | "lg" | "sm" | "xl" | undefined;
|
|
7
|
+
}, import("@hanzogui/web").StaticConfigPublic>;
|
|
8
|
+
export type AndroidProps = Omit<ComponentProps<typeof Frame>, 'size' | 'color'> & {
|
|
9
|
+
size?: AndroidSize | null;
|
|
10
|
+
/** Fill of the body, arms and antennae. Inherits the surrounding text by default. */
|
|
11
|
+
color?: string;
|
|
12
|
+
className?: string;
|
|
13
|
+
};
|
|
14
|
+
export declare function Android({ className, size, color, ...props }: AndroidProps): import("react").JSX.Element;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=android.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"android.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/android.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAI3C,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,GAAG,IAAI,CAAA;AAKxD,QAAA,MAAM,KAAK;;;;8CAkBT,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG;IAChF,IAAI,CAAC,EAAE,WAAW,GAAG,IAAI,CAAA;IACzB,qFAAqF;IACrF,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,wBAAgB,OAAO,CAAC,EACtB,SAAS,EACT,IAAgB,EAChB,KAAsB,EACtB,GAAG,KAAK,EACT,EAAE,YAAY,+BA4Cd"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* Android — the Android robot, drawn as an icon.
|
|
5
|
+
*
|
|
6
|
+
* Four sizes on the icon ladder (16, 24, 32 and 48px) and one ink. `color`
|
|
7
|
+
* fills the body, arms and antennae and defaults to `currentColor`, so the
|
|
8
|
+
* mark takes the text color around it. The eyes take the opposite pole — white
|
|
9
|
+
* on inherited ink, black on a named color — so they stay visible against
|
|
10
|
+
* either fill.
|
|
11
|
+
*
|
|
12
|
+
* The frame is a gui stack rendered as a <span>: an icon is phrasing content,
|
|
13
|
+
* so it sits inside a button or a line of text where a <div> is not allowed
|
|
14
|
+
* (a parser closes a <p> at a <div>, and the hydrated tree then disagrees
|
|
15
|
+
* with the markup). It takes every stack prop — a hover style, a press
|
|
16
|
+
* handler, a class string. The frame owns the size and the drawing fills it,
|
|
17
|
+
* so a `width` set on the frame carries the drawing with it. The frame also
|
|
18
|
+
* carries the name, as `role="img"` and an `aria-label`, so the drawing inside
|
|
19
|
+
* is hidden from the reader and there is one label, not two; beside a label
|
|
20
|
+
* that already names the platform, pass `aria-hidden` and let the words carry
|
|
21
|
+
* it. The drawing is a plain <svg>, since gui has no vector primitive of its
|
|
22
|
+
* own.
|
|
23
|
+
*/
|
|
24
|
+
import { XStack, styled } from '@hanzo/gui';
|
|
25
|
+
import { sx } from '../../sx.js';
|
|
26
|
+
/** Edge of the icon per size, px. */
|
|
27
|
+
const EDGE = { sm: 16, default: 24, lg: 32, xl: 48 };
|
|
28
|
+
const Frame = styled(XStack, {
|
|
29
|
+
name: 'Android',
|
|
30
|
+
render: 'span',
|
|
31
|
+
display: 'inline-flex',
|
|
32
|
+
items: 'center',
|
|
33
|
+
justify: 'center',
|
|
34
|
+
shrink: 0,
|
|
35
|
+
variants: {
|
|
36
|
+
size: {
|
|
37
|
+
sm: { width: EDGE.sm, height: EDGE.sm },
|
|
38
|
+
default: { width: EDGE.default, height: EDGE.default },
|
|
39
|
+
lg: { width: EDGE.lg, height: EDGE.lg },
|
|
40
|
+
xl: { width: EDGE.xl, height: EDGE.xl },
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
defaultVariants: { size: 'default' },
|
|
44
|
+
});
|
|
45
|
+
export function Android({ className, size = 'default', color = 'currentColor', ...props }) {
|
|
46
|
+
const resolved = size ?? 'default';
|
|
47
|
+
const eye = color === 'currentColor' ? '#ffffff' : '#000000';
|
|
48
|
+
return (_jsx(Frame, { "data-slot": "android", "data-size": resolved, role: "img", "aria-label": "Android", size: resolved, ...sx(className), ...props, children: _jsxs("svg", { width: "100%", height: "100%", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": true, children: [_jsx("path", { d: "M6 18c0 .55.45 1 1 1h1v3.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5V19h2v3.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5V19h1c.55 0 1-.45 1-1V8H6v10z", fill: color }), _jsx("path", { d: "M15.5 6.5C15.5 5.12 14.38 4 13 4h-2c-1.38 0-2.5 1.12-2.5 2.5S9.62 9 11 9h2c1.38 0 2.5-1.12 2.5-2.5z", fill: color }), _jsx("path", { d: "M7.5 2.5L9 4", stroke: color, strokeWidth: "1.5", strokeLinecap: "round" }), _jsx("path", { d: "M16.5 2.5L15 4", stroke: color, strokeWidth: "1.5", strokeLinecap: "round" }), _jsx("path", { d: "M4 10.5c0-.83.67-1.5 1.5-1.5S7 9.67 7 10.5v3c0 .83-.67 1.5-1.5 1.5S4 14.33 4 13.5v-3z", fill: color }), _jsx("path", { d: "M17 10.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v3c0 .83-.67 1.5-1.5 1.5s-1.5-.67-1.5-1.5v-3z", fill: color }), _jsx("circle", { cx: "10", cy: "6.5", r: "0.5", fill: eye }), _jsx("circle", { cx: "14", cy: "6.5", r: "0.5", fill: eye })] }) }));
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=android.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"android.js","sourceRoot":"","sources":["../../../src/backends/gui/android.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAG3C,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAA;AAI7B,qCAAqC;AACrC,MAAM,IAAI,GAAgC,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAA;AAEjF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE;IAC3B,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,aAAa;IACtB,KAAK,EAAE,QAAQ;IACf,OAAO,EAAE,QAAQ;IACjB,MAAM,EAAE,CAAC;IAET,QAAQ,EAAE;QACR,IAAI,EAAE;YACJ,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;YACvC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE;YACtD,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;YACvC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;SACxC;KACO;IAEV,eAAe,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;CACrC,CAAC,CAAA;AASF,MAAM,UAAU,OAAO,CAAC,EACtB,SAAS,EACT,IAAI,GAAG,SAAS,EAChB,KAAK,GAAG,cAAc,EACtB,GAAG,KAAK,EACK;IACb,MAAM,QAAQ,GAAG,IAAI,IAAI,SAAS,CAAA;IAClC,MAAM,GAAG,GAAG,KAAK,KAAK,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;IAC5D,OAAO,CACL,KAAC,KAAK,iBACM,SAAS,eACR,QAAQ,EACnB,IAAI,EAAC,KAAK,gBACC,SAAS,EACpB,IAAI,EAAE,QAAQ,KACV,EAAE,CAAC,SAAS,CAAC,KACZ,KAAsC,YAE3C,eACE,KAAK,EAAC,MAAM,EACZ,MAAM,EAAC,MAAM,EACb,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,kCAGlC,eACE,CAAC,EAAC,4IAA4I,EAC9I,IAAI,EAAE,KAAK,GACX,EACF,eACE,CAAC,EAAC,qGAAqG,EACvG,IAAI,EAAE,KAAK,GACX,EACF,eAAM,CAAC,EAAC,cAAc,EAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAC,KAAK,EAAC,aAAa,EAAC,OAAO,GAAG,EAChF,eAAM,CAAC,EAAC,gBAAgB,EAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAC,KAAK,EAAC,aAAa,EAAC,OAAO,GAAG,EAClF,eACE,CAAC,EAAC,uFAAuF,EACzF,IAAI,EAAE,KAAK,GACX,EACF,eACE,CAAC,EAAC,2FAA2F,EAC7F,IAAI,EAAE,KAAK,GACX,EACF,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,IAAI,EAAE,GAAG,GAAI,EAC9C,iBAAQ,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,KAAK,EAAC,CAAC,EAAC,KAAK,EAAC,IAAI,EAAE,GAAG,GAAI,IAC1C,GACA,CACT,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
'use client';"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
36
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
+
exports.AnimatedBeam = void 0;
|
|
38
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
39
|
+
const React = __importStar(require("react"));
|
|
40
|
+
const slot_1 = require("./slot.cjs");
|
|
41
|
+
const KEYFRAMES = `
|
|
42
|
+
@keyframes beam-draw { from { stroke-dashoffset: 1 } to { stroke-dashoffset: 0 } }
|
|
43
|
+
@media (prefers-reduced-motion: reduce) { [data-slot="animated-beam-flow"] { animation: none !important } }
|
|
44
|
+
`;
|
|
45
|
+
/** The DOM node behind an anchor, if there is one; a native view has none. */
|
|
46
|
+
const node = (ref) => typeof HTMLElement !== 'undefined' && ref?.current instanceof HTMLElement ? ref.current : null;
|
|
47
|
+
/** The center of `el` in the coordinate space of the box `origin`. */
|
|
48
|
+
const center = (el, origin) => {
|
|
49
|
+
const r = el.getBoundingClientRect();
|
|
50
|
+
return [r.left - origin.left + r.width / 2, r.top - origin.top + r.height / 2];
|
|
51
|
+
};
|
|
52
|
+
exports.AnimatedBeam = React.forwardRef(({ style, duration = 3, delay = 0, pathColor = 'gray', pathWidth = 2, gradientStartColor = '#18CCFC', gradientStopColor = '#6344F5', containerRef, fromRef, toRef, ...props }, ref) => {
|
|
53
|
+
const gradientId = React.useId();
|
|
54
|
+
const [ends, setEnds] = React.useState(null);
|
|
55
|
+
React.useEffect(() => {
|
|
56
|
+
const container = node(containerRef);
|
|
57
|
+
const from = node(fromRef);
|
|
58
|
+
const to = node(toRef);
|
|
59
|
+
if (!container || !from || !to)
|
|
60
|
+
return;
|
|
61
|
+
const draw = () => {
|
|
62
|
+
const origin = container.getBoundingClientRect();
|
|
63
|
+
const next = [...center(from, origin), ...center(to, origin)];
|
|
64
|
+
setEnds((prev) => (prev && next.every((v, i) => v === prev[i]) ? prev : next));
|
|
65
|
+
};
|
|
66
|
+
draw();
|
|
67
|
+
if (typeof ResizeObserver === 'undefined') {
|
|
68
|
+
window.addEventListener('resize', draw);
|
|
69
|
+
return () => window.removeEventListener('resize', draw);
|
|
70
|
+
}
|
|
71
|
+
const observer = new ResizeObserver(draw);
|
|
72
|
+
for (const el of [container, from, to])
|
|
73
|
+
observer.observe(el);
|
|
74
|
+
return () => observer.disconnect();
|
|
75
|
+
}, [containerRef, fromRef, toRef]);
|
|
76
|
+
const [x1, y1, x2, y2] = ends ?? [0, 0, 0, 0];
|
|
77
|
+
const d = ends ? `M ${x1} ${y1} Q ${(x1 + x2) / 2} ${Math.min(y1, y2) - 50} ${x2} ${y2}` : '';
|
|
78
|
+
// The style is a sibling, not a child: React hoists a keyed `<style>` only
|
|
79
|
+
// from an HTML host, never from inside an svg.
|
|
80
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("style", { href: "animated-beam", precedence: "default", children: KEYFRAMES }), (0, jsx_runtime_1.jsxs)("svg", { ref: ref, ...(0, slot_1.slot)('animated-beam'), style: {
|
|
81
|
+
position: 'absolute',
|
|
82
|
+
inset: 0,
|
|
83
|
+
width: '100%',
|
|
84
|
+
height: '100%',
|
|
85
|
+
overflow: 'visible',
|
|
86
|
+
pointerEvents: 'none',
|
|
87
|
+
...style,
|
|
88
|
+
}, ...props, children: [(0, jsx_runtime_1.jsx)("path", { d: d, stroke: pathColor, strokeWidth: pathWidth, fill: "none", strokeOpacity: 0.2 }), (0, jsx_runtime_1.jsx)("path", { ...(0, slot_1.slot)('animated-beam-flow'), d: d, pathLength: 1, strokeDasharray: 1, stroke: `url(#${gradientId})`, strokeWidth: pathWidth, fill: "none", style: {
|
|
89
|
+
animationName: 'beam-draw',
|
|
90
|
+
animationDuration: `${duration}s`,
|
|
91
|
+
animationDelay: `${delay}s`,
|
|
92
|
+
animationTimingFunction: 'ease-in-out',
|
|
93
|
+
animationIterationCount: 'infinite',
|
|
94
|
+
animationFillMode: 'backwards',
|
|
95
|
+
} }), (0, jsx_runtime_1.jsx)("defs", { children: (0, jsx_runtime_1.jsxs)("linearGradient", { id: gradientId, gradientUnits: "userSpaceOnUse", x1: x1, y1: y1, x2: x2, y2: y2, children: [(0, jsx_runtime_1.jsx)("stop", { offset: "0%", stopColor: gradientStartColor }), (0, jsx_runtime_1.jsx)("stop", { offset: "100%", stopColor: gradientStopColor })] }) })] })] }));
|
|
96
|
+
});
|
|
97
|
+
exports.AnimatedBeam.displayName = 'AnimatedBeam';
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AnimatedBeam — a line of light drawn between two elements inside a shared
|
|
3
|
+
* container, for showing a connection or a flow between them.
|
|
4
|
+
*
|
|
5
|
+
* The path is a quadratic curve from `fromRef` to `toRef`, its control point
|
|
6
|
+
* bowed 50px above the higher of the two ends. It is measured from each
|
|
7
|
+
* element's `getBoundingClientRect()` relative to `containerRef` and measured
|
|
8
|
+
* again whenever any of the three resizes; an anchor may be a gui stack or a
|
|
9
|
+
* plain element. A dim stroke marks the whole path at all times, and over it a
|
|
10
|
+
* gradient stroke draws itself from start to end on a loop. The gradient runs
|
|
11
|
+
* in user space from the `from` center to the `to` center, so it keeps its
|
|
12
|
+
* direction whichever way the beam points and still paints when the curve is
|
|
13
|
+
* vertical — a bounding-box gradient is dropped once the box has no width.
|
|
14
|
+
* That path declares `pathLength={1}`, so its dash is one unit long whatever
|
|
15
|
+
* the curve measures, and one keyframe slides the dash offset from 1 to 0 —
|
|
16
|
+
* the stroke is hidden through `delay`, then draws. Under
|
|
17
|
+
* `prefers-reduced-motion` it is shown whole and still. The keyframe rides
|
|
18
|
+
* along as a hoisted `<style>` keyed by `href`, so any number of beams on a
|
|
19
|
+
* page emit it once.
|
|
20
|
+
*
|
|
21
|
+
* The drawing is a plain <svg>, since gui has no vector primitive of its own.
|
|
22
|
+
* It sits absolutely over the container, sized to it — an svg is a replaced
|
|
23
|
+
* element, and `inset: 0` alone leaves it at its intrinsic 300×150 — with
|
|
24
|
+
* overflow visible so the bow above the higher end still shows, and it takes
|
|
25
|
+
* no pointer events.
|
|
26
|
+
*/
|
|
27
|
+
import type { GuiElement } from '@hanzo/gui';
|
|
28
|
+
import * as React from 'react';
|
|
29
|
+
type Anchor = React.RefObject<HTMLElement | GuiElement | null>;
|
|
30
|
+
export type AnimatedBeamProps = React.SVGAttributes<SVGSVGElement> & {
|
|
31
|
+
/** Seconds for one pass of the flowing stroke. */
|
|
32
|
+
duration?: number;
|
|
33
|
+
/** Seconds before its first pass. */
|
|
34
|
+
delay?: number;
|
|
35
|
+
pathColor?: string;
|
|
36
|
+
pathWidth?: number;
|
|
37
|
+
gradientStartColor?: string;
|
|
38
|
+
gradientStopColor?: string;
|
|
39
|
+
containerRef?: Anchor;
|
|
40
|
+
fromRef?: Anchor;
|
|
41
|
+
toRef?: Anchor;
|
|
42
|
+
};
|
|
43
|
+
export declare const AnimatedBeam: React.ForwardRefExoticComponent<React.SVGAttributes<SVGSVGElement> & {
|
|
44
|
+
/** Seconds for one pass of the flowing stroke. */
|
|
45
|
+
duration?: number;
|
|
46
|
+
/** Seconds before its first pass. */
|
|
47
|
+
delay?: number;
|
|
48
|
+
pathColor?: string;
|
|
49
|
+
pathWidth?: number;
|
|
50
|
+
gradientStartColor?: string;
|
|
51
|
+
gradientStopColor?: string;
|
|
52
|
+
containerRef?: Anchor;
|
|
53
|
+
fromRef?: Anchor;
|
|
54
|
+
toRef?: Anchor;
|
|
55
|
+
} & React.RefAttributes<SVGSVGElement>>;
|
|
56
|
+
export {};
|
|
57
|
+
//# sourceMappingURL=animated-beam.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animated-beam.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/animated-beam.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,KAAK,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,UAAU,GAAG,IAAI,CAAC,CAAA;AAE9D,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG;IACnE,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAiBD,eAAO,MAAM,YAAY;IA5BvB,kDAAkD;eACvC,MAAM;IACjB,qCAAqC;YAC7B,MAAM;gBACF,MAAM;gBACN,MAAM;yBACG,MAAM;wBACP,MAAM;mBACX,MAAM;cACX,MAAM;YACR,MAAM;uCAgHf,CAAA"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { slot } from './slot.js';
|
|
5
|
+
const KEYFRAMES = `
|
|
6
|
+
@keyframes beam-draw { from { stroke-dashoffset: 1 } to { stroke-dashoffset: 0 } }
|
|
7
|
+
@media (prefers-reduced-motion: reduce) { [data-slot="animated-beam-flow"] { animation: none !important } }
|
|
8
|
+
`;
|
|
9
|
+
/** The DOM node behind an anchor, if there is one; a native view has none. */
|
|
10
|
+
const node = (ref) => typeof HTMLElement !== 'undefined' && ref?.current instanceof HTMLElement ? ref.current : null;
|
|
11
|
+
/** The center of `el` in the coordinate space of the box `origin`. */
|
|
12
|
+
const center = (el, origin) => {
|
|
13
|
+
const r = el.getBoundingClientRect();
|
|
14
|
+
return [r.left - origin.left + r.width / 2, r.top - origin.top + r.height / 2];
|
|
15
|
+
};
|
|
16
|
+
export const AnimatedBeam = React.forwardRef(({ style, duration = 3, delay = 0, pathColor = 'gray', pathWidth = 2, gradientStartColor = '#18CCFC', gradientStopColor = '#6344F5', containerRef, fromRef, toRef, ...props }, ref) => {
|
|
17
|
+
const gradientId = React.useId();
|
|
18
|
+
const [ends, setEnds] = React.useState(null);
|
|
19
|
+
React.useEffect(() => {
|
|
20
|
+
const container = node(containerRef);
|
|
21
|
+
const from = node(fromRef);
|
|
22
|
+
const to = node(toRef);
|
|
23
|
+
if (!container || !from || !to)
|
|
24
|
+
return;
|
|
25
|
+
const draw = () => {
|
|
26
|
+
const origin = container.getBoundingClientRect();
|
|
27
|
+
const next = [...center(from, origin), ...center(to, origin)];
|
|
28
|
+
setEnds((prev) => (prev && next.every((v, i) => v === prev[i]) ? prev : next));
|
|
29
|
+
};
|
|
30
|
+
draw();
|
|
31
|
+
if (typeof ResizeObserver === 'undefined') {
|
|
32
|
+
window.addEventListener('resize', draw);
|
|
33
|
+
return () => window.removeEventListener('resize', draw);
|
|
34
|
+
}
|
|
35
|
+
const observer = new ResizeObserver(draw);
|
|
36
|
+
for (const el of [container, from, to])
|
|
37
|
+
observer.observe(el);
|
|
38
|
+
return () => observer.disconnect();
|
|
39
|
+
}, [containerRef, fromRef, toRef]);
|
|
40
|
+
const [x1, y1, x2, y2] = ends ?? [0, 0, 0, 0];
|
|
41
|
+
const d = ends ? `M ${x1} ${y1} Q ${(x1 + x2) / 2} ${Math.min(y1, y2) - 50} ${x2} ${y2}` : '';
|
|
42
|
+
// The style is a sibling, not a child: React hoists a keyed `<style>` only
|
|
43
|
+
// from an HTML host, never from inside an svg.
|
|
44
|
+
return (_jsxs(_Fragment, { children: [_jsx("style", { href: "animated-beam", precedence: "default", children: KEYFRAMES }), _jsxs("svg", { ref: ref, ...slot('animated-beam'), style: {
|
|
45
|
+
position: 'absolute',
|
|
46
|
+
inset: 0,
|
|
47
|
+
width: '100%',
|
|
48
|
+
height: '100%',
|
|
49
|
+
overflow: 'visible',
|
|
50
|
+
pointerEvents: 'none',
|
|
51
|
+
...style,
|
|
52
|
+
}, ...props, children: [_jsx("path", { d: d, stroke: pathColor, strokeWidth: pathWidth, fill: "none", strokeOpacity: 0.2 }), _jsx("path", { ...slot('animated-beam-flow'), d: d, pathLength: 1, strokeDasharray: 1, stroke: `url(#${gradientId})`, strokeWidth: pathWidth, fill: "none", style: {
|
|
53
|
+
animationName: 'beam-draw',
|
|
54
|
+
animationDuration: `${duration}s`,
|
|
55
|
+
animationDelay: `${delay}s`,
|
|
56
|
+
animationTimingFunction: 'ease-in-out',
|
|
57
|
+
animationIterationCount: 'infinite',
|
|
58
|
+
animationFillMode: 'backwards',
|
|
59
|
+
} }), _jsx("defs", { children: _jsxs("linearGradient", { id: gradientId, gradientUnits: "userSpaceOnUse", x1: x1, y1: y1, x2: x2, y2: y2, children: [_jsx("stop", { offset: "0%", stopColor: gradientStartColor }), _jsx("stop", { offset: "100%", stopColor: gradientStopColor })] }) })] })] }));
|
|
60
|
+
});
|
|
61
|
+
AnimatedBeam.displayName = 'AnimatedBeam';
|
|
62
|
+
//# sourceMappingURL=animated-beam.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animated-beam.js","sourceRoot":"","sources":["../../../src/backends/gui/animated-beam.tsx"],"names":[],"mappings":"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"}
|