@hanzogui/demos 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/cjs/AccordionDemo.cjs +111 -0
- package/dist/cjs/AccordionDemo.native.js +121 -0
- package/dist/cjs/AccordionDemo.native.js.map +1 -0
- package/dist/cjs/AddThemeDemo.cjs +71 -0
- package/dist/cjs/AddThemeDemo.native.js +74 -0
- package/dist/cjs/AddThemeDemo.native.js.map +1 -0
- package/dist/cjs/AlertDialogDemo.cjs +96 -0
- package/dist/cjs/AlertDialogDemo.native.js +99 -0
- package/dist/cjs/AlertDialogDemo.native.js.map +1 -0
- package/dist/cjs/AnimationsDelayDemo.cjs +85 -0
- package/dist/cjs/AnimationsDelayDemo.native.js +92 -0
- package/dist/cjs/AnimationsDelayDemo.native.js.map +1 -0
- package/dist/cjs/AnimationsDemo.cjs +100 -0
- package/dist/cjs/AnimationsDemo.native.js +107 -0
- package/dist/cjs/AnimationsDemo.native.js.map +1 -0
- package/dist/cjs/AnimationsEnterDemo.cjs +75 -0
- package/dist/cjs/AnimationsEnterDemo.native.js +82 -0
- package/dist/cjs/AnimationsEnterDemo.native.js.map +1 -0
- package/dist/cjs/AnimationsHoverDemo.cjs +47 -0
- package/dist/cjs/AnimationsHoverDemo.native.js +50 -0
- package/dist/cjs/AnimationsHoverDemo.native.js.map +1 -0
- package/dist/cjs/AnimationsPresenceDemo.cjs +123 -0
- package/dist/cjs/AnimationsPresenceDemo.native.js +134 -0
- package/dist/cjs/AnimationsPresenceDemo.native.js.map +1 -0
- package/dist/cjs/AnimationsTimingDemo.cjs +46 -0
- package/dist/cjs/AnimationsTimingDemo.native.js +49 -0
- package/dist/cjs/AnimationsTimingDemo.native.js.map +1 -0
- package/dist/cjs/AvatarDemo.cjs +53 -0
- package/dist/cjs/AvatarDemo.native.js +56 -0
- package/dist/cjs/AvatarDemo.native.js.map +1 -0
- package/dist/cjs/BoxShadowTokenDemo.cjs +57 -0
- package/dist/cjs/BoxShadowTokenDemo.native.js +62 -0
- package/dist/cjs/BoxShadowTokenDemo.native.js.map +1 -0
- package/dist/cjs/BuildAButtonDemo.cjs +129 -0
- package/dist/cjs/BuildAButtonDemo.native.js +132 -0
- package/dist/cjs/BuildAButtonDemo.native.js.map +1 -0
- package/dist/cjs/ButtonDemo.cjs +89 -0
- package/dist/cjs/ButtonDemo.native.js +92 -0
- package/dist/cjs/ButtonDemo.native.js.map +1 -0
- package/dist/cjs/CardDemo.cjs +89 -0
- package/dist/cjs/CardDemo.native.js +92 -0
- package/dist/cjs/CardDemo.native.js.map +1 -0
- package/dist/cjs/CheckboxDemo.cjs +79 -0
- package/dist/cjs/CheckboxDemo.native.js +83 -0
- package/dist/cjs/CheckboxDemo.native.js.map +1 -0
- package/dist/cjs/CheckboxHeadlessDemo.cjs +87 -0
- package/dist/cjs/CheckboxHeadlessDemo.native.js +90 -0
- package/dist/cjs/CheckboxHeadlessDemo.native.js.map +1 -0
- package/dist/cjs/CheckboxUnstyledDemo.cjs +78 -0
- package/dist/cjs/CheckboxUnstyledDemo.native.js +81 -0
- package/dist/cjs/CheckboxUnstyledDemo.native.js.map +1 -0
- package/dist/cjs/ColorsDemo.cjs +133 -0
- package/dist/cjs/ColorsDemo.native.js +143 -0
- package/dist/cjs/ColorsDemo.native.js.map +1 -0
- package/dist/cjs/ContextMenuDemo.cjs +224 -0
- package/dist/cjs/ContextMenuDemo.native.js +230 -0
- package/dist/cjs/ContextMenuDemo.native.js.map +1 -0
- package/dist/cjs/DialogDemo.cjs +212 -0
- package/dist/cjs/DialogDemo.native.js +222 -0
- package/dist/cjs/DialogDemo.native.js.map +1 -0
- package/dist/cjs/FormsDemo.cjs +85 -0
- package/dist/cjs/FormsDemo.native.js +92 -0
- package/dist/cjs/FormsDemo.native.js.map +1 -0
- package/dist/cjs/Grid.cjs +69 -0
- package/dist/cjs/Grid.native.js +75 -0
- package/dist/cjs/Grid.native.js.map +1 -0
- package/dist/cjs/GroupDemo.cjs +92 -0
- package/dist/cjs/GroupDemo.native.js +97 -0
- package/dist/cjs/GroupDemo.native.js.map +1 -0
- package/dist/cjs/HeadingsDemo.cjs +45 -0
- package/dist/cjs/HeadingsDemo.native.js +48 -0
- package/dist/cjs/HeadingsDemo.native.js.map +1 -0
- package/dist/cjs/ImageDemo.cjs +38 -0
- package/dist/cjs/ImageDemo.native.js +41 -0
- package/dist/cjs/ImageDemo.native.js.map +1 -0
- package/dist/cjs/InputsDemo.cjs +62 -0
- package/dist/cjs/InputsDemo.native.js +65 -0
- package/dist/cjs/InputsDemo.native.js.map +1 -0
- package/dist/cjs/LabelDemo.cjs +65 -0
- package/dist/cjs/LabelDemo.native.js +68 -0
- package/dist/cjs/LabelDemo.native.js.map +1 -0
- package/dist/cjs/LinearGradientDemo.cjs +48 -0
- package/dist/cjs/LinearGradientDemo.native.js +53 -0
- package/dist/cjs/LinearGradientDemo.native.js.map +1 -0
- package/dist/cjs/ListItemDemo.cjs +101 -0
- package/dist/cjs/ListItemDemo.native.js +104 -0
- package/dist/cjs/ListItemDemo.native.js.map +1 -0
- package/dist/cjs/LucideIconsDemo.cjs +93 -0
- package/dist/cjs/LucideIconsDemo.native.js +105 -0
- package/dist/cjs/LucideIconsDemo.native.js.map +1 -0
- package/dist/cjs/MenuDemo.cjs +227 -0
- package/dist/cjs/MenuDemo.native.js +233 -0
- package/dist/cjs/MenuDemo.native.js.map +1 -0
- package/dist/cjs/NewInputsDemo.cjs +63 -0
- package/dist/cjs/NewInputsDemo.native.js +66 -0
- package/dist/cjs/NewInputsDemo.native.js.map +1 -0
- package/dist/cjs/PopoverDemo.cjs +150 -0
- package/dist/cjs/PopoverDemo.native.js +157 -0
- package/dist/cjs/PopoverDemo.native.js.map +1 -0
- package/dist/cjs/ProgressDemo.cjs +88 -0
- package/dist/cjs/ProgressDemo.native.js +115 -0
- package/dist/cjs/ProgressDemo.native.js.map +1 -0
- package/dist/cjs/RadioGroupDemo.cjs +74 -0
- package/dist/cjs/RadioGroupDemo.native.js +77 -0
- package/dist/cjs/RadioGroupDemo.native.js.map +1 -0
- package/dist/cjs/RadioGroupHeadlessDemo.cjs +168 -0
- package/dist/cjs/RadioGroupHeadlessDemo.native.js +178 -0
- package/dist/cjs/RadioGroupHeadlessDemo.native.js.map +1 -0
- package/dist/cjs/RadioGroupUnstyledDemo.cjs +141 -0
- package/dist/cjs/RadioGroupUnstyledDemo.native.js +144 -0
- package/dist/cjs/RadioGroupUnstyledDemo.native.js.map +1 -0
- package/dist/cjs/ReplaceThemeDemo.cjs +78 -0
- package/dist/cjs/ReplaceThemeDemo.native.js +81 -0
- package/dist/cjs/ReplaceThemeDemo.native.js.map +1 -0
- package/dist/cjs/ScrollViewDemo.cjs +74 -0
- package/dist/cjs/ScrollViewDemo.native.js +77 -0
- package/dist/cjs/ScrollViewDemo.native.js.map +1 -0
- package/dist/cjs/SelectDemo.cjs +236 -0
- package/dist/cjs/SelectDemo.native.js +252 -0
- package/dist/cjs/SelectDemo.native.js.map +1 -0
- package/dist/cjs/SeparatorDemo.cjs +60 -0
- package/dist/cjs/SeparatorDemo.native.js +63 -0
- package/dist/cjs/SeparatorDemo.native.js.map +1 -0
- package/dist/cjs/ShapesDemo.cjs +42 -0
- package/dist/cjs/ShapesDemo.native.js +45 -0
- package/dist/cjs/ShapesDemo.native.js.map +1 -0
- package/dist/cjs/SheetDemo.cjs +192 -0
- package/dist/cjs/SheetDemo.native.js +221 -0
- package/dist/cjs/SheetDemo.native.js.map +1 -0
- package/dist/cjs/SliderDemo.cjs +58 -0
- package/dist/cjs/SliderDemo.native.js +62 -0
- package/dist/cjs/SliderDemo.native.js.map +1 -0
- package/dist/cjs/SpinnerDemo.cjs +41 -0
- package/dist/cjs/SpinnerDemo.native.js +44 -0
- package/dist/cjs/SpinnerDemo.native.js.map +1 -0
- package/dist/cjs/StacksDemo.cjs +107 -0
- package/dist/cjs/StacksDemo.native.js +111 -0
- package/dist/cjs/StacksDemo.native.js.map +1 -0
- package/dist/cjs/SwitchDemo.cjs +101 -0
- package/dist/cjs/SwitchDemo.native.js +107 -0
- package/dist/cjs/SwitchDemo.native.js.map +1 -0
- package/dist/cjs/SwitchHeadlessDemo.cjs +103 -0
- package/dist/cjs/SwitchHeadlessDemo.native.js +110 -0
- package/dist/cjs/SwitchHeadlessDemo.native.js.map +1 -0
- package/dist/cjs/SwitchUnstyledDemo.cjs +89 -0
- package/dist/cjs/SwitchUnstyledDemo.native.js +92 -0
- package/dist/cjs/SwitchUnstyledDemo.native.js.map +1 -0
- package/dist/cjs/TabsAdvancedDemo.cjs +340 -0
- package/dist/cjs/TabsAdvancedDemo.native.js +388 -0
- package/dist/cjs/TabsAdvancedDemo.native.js.map +1 -0
- package/dist/cjs/TabsDemo.cjs +214 -0
- package/dist/cjs/TabsDemo.native.js +225 -0
- package/dist/cjs/TabsDemo.native.js.map +1 -0
- package/dist/cjs/TabsHeadlessDemo.cjs +130 -0
- package/dist/cjs/TabsHeadlessDemo.native.js +144 -0
- package/dist/cjs/TabsHeadlessDemo.native.js.map +1 -0
- package/dist/cjs/TextDemo.cjs +49 -0
- package/dist/cjs/TextDemo.native.js +52 -0
- package/dist/cjs/TextDemo.native.js.map +1 -0
- package/dist/cjs/ThemeBuilderDemo.cjs +178 -0
- package/dist/cjs/ThemeBuilderDemo.native.js +181 -0
- package/dist/cjs/ThemeBuilderDemo.native.js.map +1 -0
- package/dist/cjs/ThemeInverseDemo.cjs +99 -0
- package/dist/cjs/ThemeInverseDemo.native.js +102 -0
- package/dist/cjs/ThemeInverseDemo.native.js.map +1 -0
- package/dist/cjs/ToastDemo.cjs +150 -0
- package/dist/cjs/ToastDemo.native.js +163 -0
- package/dist/cjs/ToastDemo.native.js.map +1 -0
- package/dist/cjs/ToastDuplicateDemo.cjs +83 -0
- package/dist/cjs/ToastDuplicateDemo.native.js +92 -0
- package/dist/cjs/ToastDuplicateDemo.native.js.map +1 -0
- package/dist/cjs/ToggleGroupDemo.cjs +120 -0
- package/dist/cjs/ToggleGroupDemo.native.js +123 -0
- package/dist/cjs/ToggleGroupDemo.native.js.map +1 -0
- package/dist/cjs/TokensDemo.cjs +123 -0
- package/dist/cjs/TokensDemo.native.js +145 -0
- package/dist/cjs/TokensDemo.native.js.map +1 -0
- package/dist/cjs/TooltipDemo.cjs +131 -0
- package/dist/cjs/TooltipDemo.native.js +135 -0
- package/dist/cjs/TooltipDemo.native.js.map +1 -0
- package/dist/cjs/UpdateThemeDemo.cjs +80 -0
- package/dist/cjs/UpdateThemeDemo.native.js +83 -0
- package/dist/cjs/UpdateThemeDemo.native.js.map +1 -0
- package/dist/cjs/WebNativeImageDemo.cjs +34 -0
- package/dist/cjs/WebNativeImageDemo.native.js +37 -0
- package/dist/cjs/WebNativeImageDemo.native.js.map +1 -0
- package/dist/cjs/gui.config.cjs +29 -0
- package/dist/cjs/gui.config.native.js +32 -0
- package/dist/cjs/gui.config.native.js.map +1 -0
- package/dist/cjs/index.cjs +79 -0
- package/dist/cjs/index.native.js +82 -0
- package/dist/cjs/index.native.js.map +1 -0
- package/dist/cjs/useOnIntersecting.cjs +68 -0
- package/dist/cjs/useOnIntersecting.native.js +105 -0
- package/dist/cjs/useOnIntersecting.native.js.map +1 -0
- package/dist/esm/AccordionDemo.mjs +88 -0
- package/dist/esm/AccordionDemo.mjs.map +1 -0
- package/dist/esm/AccordionDemo.native.js +95 -0
- package/dist/esm/AccordionDemo.native.js.map +1 -0
- package/dist/esm/AddThemeDemo.mjs +37 -0
- package/dist/esm/AddThemeDemo.mjs.map +1 -0
- package/dist/esm/AddThemeDemo.native.js +37 -0
- package/dist/esm/AddThemeDemo.native.js.map +1 -0
- package/dist/esm/AlertDialogDemo.mjs +73 -0
- package/dist/esm/AlertDialogDemo.mjs.map +1 -0
- package/dist/esm/AlertDialogDemo.native.js +73 -0
- package/dist/esm/AlertDialogDemo.native.js.map +1 -0
- package/dist/esm/AnimationsDelayDemo.mjs +51 -0
- package/dist/esm/AnimationsDelayDemo.mjs.map +1 -0
- package/dist/esm/AnimationsDelayDemo.native.js +55 -0
- package/dist/esm/AnimationsDelayDemo.native.js.map +1 -0
- package/dist/esm/AnimationsDemo.mjs +76 -0
- package/dist/esm/AnimationsDemo.mjs.map +1 -0
- package/dist/esm/AnimationsDemo.native.js +80 -0
- package/dist/esm/AnimationsDemo.native.js.map +1 -0
- package/dist/esm/AnimationsEnterDemo.mjs +41 -0
- package/dist/esm/AnimationsEnterDemo.mjs.map +1 -0
- package/dist/esm/AnimationsEnterDemo.native.js +45 -0
- package/dist/esm/AnimationsEnterDemo.native.js.map +1 -0
- package/dist/esm/AnimationsHoverDemo.mjs +24 -0
- package/dist/esm/AnimationsHoverDemo.mjs.map +1 -0
- package/dist/esm/AnimationsHoverDemo.native.js +24 -0
- package/dist/esm/AnimationsHoverDemo.native.js.map +1 -0
- package/dist/esm/AnimationsPresenceDemo.mjs +88 -0
- package/dist/esm/AnimationsPresenceDemo.mjs.map +1 -0
- package/dist/esm/AnimationsPresenceDemo.native.js +96 -0
- package/dist/esm/AnimationsPresenceDemo.native.js.map +1 -0
- package/dist/esm/AnimationsTimingDemo.mjs +23 -0
- package/dist/esm/AnimationsTimingDemo.mjs.map +1 -0
- package/dist/esm/AnimationsTimingDemo.native.js +23 -0
- package/dist/esm/AnimationsTimingDemo.native.js.map +1 -0
- package/dist/esm/AvatarDemo.mjs +30 -0
- package/dist/esm/AvatarDemo.mjs.map +1 -0
- package/dist/esm/AvatarDemo.native.js +30 -0
- package/dist/esm/AvatarDemo.native.js.map +1 -0
- package/dist/esm/BoxShadowTokenDemo.mjs +34 -0
- package/dist/esm/BoxShadowTokenDemo.mjs.map +1 -0
- package/dist/esm/BoxShadowTokenDemo.native.js +36 -0
- package/dist/esm/BoxShadowTokenDemo.native.js.map +1 -0
- package/dist/esm/BuildAButtonDemo.mjs +106 -0
- package/dist/esm/BuildAButtonDemo.mjs.map +1 -0
- package/dist/esm/BuildAButtonDemo.native.js +106 -0
- package/dist/esm/BuildAButtonDemo.native.js.map +1 -0
- package/dist/esm/ButtonDemo.mjs +66 -0
- package/dist/esm/ButtonDemo.mjs.map +1 -0
- package/dist/esm/ButtonDemo.native.js +66 -0
- package/dist/esm/ButtonDemo.native.js.map +1 -0
- package/dist/esm/CardDemo.mjs +65 -0
- package/dist/esm/CardDemo.mjs.map +1 -0
- package/dist/esm/CardDemo.native.js +65 -0
- package/dist/esm/CardDemo.native.js.map +1 -0
- package/dist/esm/CheckboxDemo.mjs +55 -0
- package/dist/esm/CheckboxDemo.mjs.map +1 -0
- package/dist/esm/CheckboxDemo.native.js +56 -0
- package/dist/esm/CheckboxDemo.native.js.map +1 -0
- package/dist/esm/CheckboxHeadlessDemo.mjs +53 -0
- package/dist/esm/CheckboxHeadlessDemo.mjs.map +1 -0
- package/dist/esm/CheckboxHeadlessDemo.native.js +53 -0
- package/dist/esm/CheckboxHeadlessDemo.native.js.map +1 -0
- package/dist/esm/CheckboxUnstyledDemo.mjs +54 -0
- package/dist/esm/CheckboxUnstyledDemo.mjs.map +1 -0
- package/dist/esm/CheckboxUnstyledDemo.native.js +54 -0
- package/dist/esm/CheckboxUnstyledDemo.native.js.map +1 -0
- package/dist/esm/ColorsDemo.mjs +110 -0
- package/dist/esm/ColorsDemo.mjs.map +1 -0
- package/dist/esm/ColorsDemo.native.js +117 -0
- package/dist/esm/ColorsDemo.native.js.map +1 -0
- package/dist/esm/ContextMenuDemo.mjs +190 -0
- package/dist/esm/ContextMenuDemo.mjs.map +1 -0
- package/dist/esm/ContextMenuDemo.native.js +193 -0
- package/dist/esm/ContextMenuDemo.native.js.map +1 -0
- package/dist/esm/DialogDemo.mjs +189 -0
- package/dist/esm/DialogDemo.mjs.map +1 -0
- package/dist/esm/DialogDemo.native.js +196 -0
- package/dist/esm/DialogDemo.native.js.map +1 -0
- package/dist/esm/FormsDemo.mjs +51 -0
- package/dist/esm/FormsDemo.mjs.map +1 -0
- package/dist/esm/FormsDemo.native.js +55 -0
- package/dist/esm/FormsDemo.native.js.map +1 -0
- package/dist/esm/Grid.mjs +35 -0
- package/dist/esm/Grid.mjs.map +1 -0
- package/dist/esm/Grid.native.js +38 -0
- package/dist/esm/Grid.native.js.map +1 -0
- package/dist/esm/GroupDemo.mjs +69 -0
- package/dist/esm/GroupDemo.mjs.map +1 -0
- package/dist/esm/GroupDemo.native.js +71 -0
- package/dist/esm/GroupDemo.native.js.map +1 -0
- package/dist/esm/HeadingsDemo.mjs +22 -0
- package/dist/esm/HeadingsDemo.mjs.map +1 -0
- package/dist/esm/HeadingsDemo.native.js +22 -0
- package/dist/esm/HeadingsDemo.native.js.map +1 -0
- package/dist/esm/ImageDemo.mjs +15 -0
- package/dist/esm/ImageDemo.mjs.map +1 -0
- package/dist/esm/ImageDemo.native.js +15 -0
- package/dist/esm/ImageDemo.native.js.map +1 -0
- package/dist/esm/InputsDemo.mjs +39 -0
- package/dist/esm/InputsDemo.mjs.map +1 -0
- package/dist/esm/InputsDemo.native.js +39 -0
- package/dist/esm/InputsDemo.native.js.map +1 -0
- package/dist/esm/LabelDemo.mjs +42 -0
- package/dist/esm/LabelDemo.mjs.map +1 -0
- package/dist/esm/LabelDemo.native.js +42 -0
- package/dist/esm/LabelDemo.native.js.map +1 -0
- package/dist/esm/LinearGradientDemo.mjs +25 -0
- package/dist/esm/LinearGradientDemo.mjs.map +1 -0
- package/dist/esm/LinearGradientDemo.native.js +27 -0
- package/dist/esm/LinearGradientDemo.native.js.map +1 -0
- package/dist/esm/ListItemDemo.mjs +78 -0
- package/dist/esm/ListItemDemo.mjs.map +1 -0
- package/dist/esm/ListItemDemo.native.js +78 -0
- package/dist/esm/ListItemDemo.native.js.map +1 -0
- package/dist/esm/LucideIconsDemo.mjs +59 -0
- package/dist/esm/LucideIconsDemo.mjs.map +1 -0
- package/dist/esm/LucideIconsDemo.native.js +68 -0
- package/dist/esm/LucideIconsDemo.native.js.map +1 -0
- package/dist/esm/MenuDemo.mjs +193 -0
- package/dist/esm/MenuDemo.mjs.map +1 -0
- package/dist/esm/MenuDemo.native.js +196 -0
- package/dist/esm/MenuDemo.native.js.map +1 -0
- package/dist/esm/NewInputsDemo.mjs +40 -0
- package/dist/esm/NewInputsDemo.mjs.map +1 -0
- package/dist/esm/NewInputsDemo.native.js +40 -0
- package/dist/esm/NewInputsDemo.native.js.map +1 -0
- package/dist/esm/PopoverDemo.mjs +126 -0
- package/dist/esm/PopoverDemo.mjs.map +1 -0
- package/dist/esm/PopoverDemo.native.js +130 -0
- package/dist/esm/PopoverDemo.native.js.map +1 -0
- package/dist/esm/ProgressDemo.mjs +54 -0
- package/dist/esm/ProgressDemo.mjs.map +1 -0
- package/dist/esm/ProgressDemo.native.js +78 -0
- package/dist/esm/ProgressDemo.native.js.map +1 -0
- package/dist/esm/RadioGroupDemo.mjs +50 -0
- package/dist/esm/RadioGroupDemo.mjs.map +1 -0
- package/dist/esm/RadioGroupDemo.native.js +50 -0
- package/dist/esm/RadioGroupDemo.native.js.map +1 -0
- package/dist/esm/RadioGroupHeadlessDemo.mjs +134 -0
- package/dist/esm/RadioGroupHeadlessDemo.mjs.map +1 -0
- package/dist/esm/RadioGroupHeadlessDemo.native.js +141 -0
- package/dist/esm/RadioGroupHeadlessDemo.native.js.map +1 -0
- package/dist/esm/RadioGroupUnstyledDemo.mjs +118 -0
- package/dist/esm/RadioGroupUnstyledDemo.mjs.map +1 -0
- package/dist/esm/RadioGroupUnstyledDemo.native.js +118 -0
- package/dist/esm/RadioGroupUnstyledDemo.native.js.map +1 -0
- package/dist/esm/ReplaceThemeDemo.mjs +44 -0
- package/dist/esm/ReplaceThemeDemo.mjs.map +1 -0
- package/dist/esm/ReplaceThemeDemo.native.js +44 -0
- package/dist/esm/ReplaceThemeDemo.native.js.map +1 -0
- package/dist/esm/ScrollViewDemo.mjs +51 -0
- package/dist/esm/ScrollViewDemo.mjs.map +1 -0
- package/dist/esm/ScrollViewDemo.native.js +51 -0
- package/dist/esm/ScrollViewDemo.native.js.map +1 -0
- package/dist/esm/SelectDemo.mjs +201 -0
- package/dist/esm/SelectDemo.mjs.map +1 -0
- package/dist/esm/SelectDemo.native.js +214 -0
- package/dist/esm/SelectDemo.native.js.map +1 -0
- package/dist/esm/SeparatorDemo.mjs +37 -0
- package/dist/esm/SeparatorDemo.mjs.map +1 -0
- package/dist/esm/SeparatorDemo.native.js +37 -0
- package/dist/esm/SeparatorDemo.native.js.map +1 -0
- package/dist/esm/ShapesDemo.mjs +19 -0
- package/dist/esm/ShapesDemo.mjs.map +1 -0
- package/dist/esm/ShapesDemo.native.js +19 -0
- package/dist/esm/ShapesDemo.native.js.map +1 -0
- package/dist/esm/SheetDemo.mjs +158 -0
- package/dist/esm/SheetDemo.mjs.map +1 -0
- package/dist/esm/SheetDemo.native.js +184 -0
- package/dist/esm/SheetDemo.native.js.map +1 -0
- package/dist/esm/SliderDemo.mjs +35 -0
- package/dist/esm/SliderDemo.mjs.map +1 -0
- package/dist/esm/SliderDemo.native.js +36 -0
- package/dist/esm/SliderDemo.native.js.map +1 -0
- package/dist/esm/SpinnerDemo.mjs +18 -0
- package/dist/esm/SpinnerDemo.mjs.map +1 -0
- package/dist/esm/SpinnerDemo.native.js +18 -0
- package/dist/esm/SpinnerDemo.native.js.map +1 -0
- package/dist/esm/StacksDemo.mjs +84 -0
- package/dist/esm/StacksDemo.mjs.map +1 -0
- package/dist/esm/StacksDemo.native.js +84 -0
- package/dist/esm/StacksDemo.native.js.map +1 -0
- package/dist/esm/SwitchDemo.mjs +77 -0
- package/dist/esm/SwitchDemo.mjs.map +1 -0
- package/dist/esm/SwitchDemo.native.js +80 -0
- package/dist/esm/SwitchDemo.native.js.map +1 -0
- package/dist/esm/SwitchHeadlessDemo.mjs +69 -0
- package/dist/esm/SwitchHeadlessDemo.mjs.map +1 -0
- package/dist/esm/SwitchHeadlessDemo.native.js +73 -0
- package/dist/esm/SwitchHeadlessDemo.native.js.map +1 -0
- package/dist/esm/SwitchUnstyledDemo.mjs +65 -0
- package/dist/esm/SwitchUnstyledDemo.mjs.map +1 -0
- package/dist/esm/SwitchUnstyledDemo.native.js +65 -0
- package/dist/esm/SwitchUnstyledDemo.native.js.map +1 -0
- package/dist/esm/TabsAdvancedDemo.mjs +306 -0
- package/dist/esm/TabsAdvancedDemo.mjs.map +1 -0
- package/dist/esm/TabsAdvancedDemo.native.js +351 -0
- package/dist/esm/TabsAdvancedDemo.native.js.map +1 -0
- package/dist/esm/TabsDemo.mjs +180 -0
- package/dist/esm/TabsDemo.mjs.map +1 -0
- package/dist/esm/TabsDemo.native.js +188 -0
- package/dist/esm/TabsDemo.native.js.map +1 -0
- package/dist/esm/TabsHeadlessDemo.mjs +105 -0
- package/dist/esm/TabsHeadlessDemo.mjs.map +1 -0
- package/dist/esm/TabsHeadlessDemo.native.js +114 -0
- package/dist/esm/TabsHeadlessDemo.native.js.map +1 -0
- package/dist/esm/TextDemo.mjs +26 -0
- package/dist/esm/TextDemo.mjs.map +1 -0
- package/dist/esm/TextDemo.native.js +26 -0
- package/dist/esm/TextDemo.native.js.map +1 -0
- package/dist/esm/ThemeBuilderDemo.mjs +155 -0
- package/dist/esm/ThemeBuilderDemo.mjs.map +1 -0
- package/dist/esm/ThemeBuilderDemo.native.js +155 -0
- package/dist/esm/ThemeBuilderDemo.native.js.map +1 -0
- package/dist/esm/ThemeInverseDemo.mjs +76 -0
- package/dist/esm/ThemeInverseDemo.mjs.map +1 -0
- package/dist/esm/ThemeInverseDemo.native.js +76 -0
- package/dist/esm/ThemeInverseDemo.native.js.map +1 -0
- package/dist/esm/ToastDemo.mjs +116 -0
- package/dist/esm/ToastDemo.mjs.map +1 -0
- package/dist/esm/ToastDemo.native.js +126 -0
- package/dist/esm/ToastDemo.native.js.map +1 -0
- package/dist/esm/ToastDuplicateDemo.mjs +49 -0
- package/dist/esm/ToastDuplicateDemo.mjs.map +1 -0
- package/dist/esm/ToastDuplicateDemo.native.js +55 -0
- package/dist/esm/ToastDuplicateDemo.native.js.map +1 -0
- package/dist/esm/ToggleGroupDemo.mjs +97 -0
- package/dist/esm/ToggleGroupDemo.mjs.map +1 -0
- package/dist/esm/ToggleGroupDemo.native.js +97 -0
- package/dist/esm/ToggleGroupDemo.native.js.map +1 -0
- package/dist/esm/TokensDemo.mjs +89 -0
- package/dist/esm/TokensDemo.mjs.map +1 -0
- package/dist/esm/TokensDemo.native.js +108 -0
- package/dist/esm/TokensDemo.native.js.map +1 -0
- package/dist/esm/TooltipDemo.mjs +108 -0
- package/dist/esm/TooltipDemo.mjs.map +1 -0
- package/dist/esm/TooltipDemo.native.js +109 -0
- package/dist/esm/TooltipDemo.native.js.map +1 -0
- package/dist/esm/UpdateThemeDemo.mjs +46 -0
- package/dist/esm/UpdateThemeDemo.mjs.map +1 -0
- package/dist/esm/UpdateThemeDemo.native.js +46 -0
- package/dist/esm/UpdateThemeDemo.native.js.map +1 -0
- package/dist/esm/WebNativeImageDemo.mjs +11 -0
- package/dist/esm/WebNativeImageDemo.mjs.map +1 -0
- package/dist/esm/WebNativeImageDemo.native.js +11 -0
- package/dist/esm/WebNativeImageDemo.native.js.map +1 -0
- package/dist/esm/gui.config.mjs +6 -0
- package/dist/esm/gui.config.mjs.map +1 -0
- package/dist/esm/gui.config.native.js +6 -0
- package/dist/esm/gui.config.native.js.map +1 -0
- package/dist/esm/index.js +63 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/index.mjs +63 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/index.native.js +63 -0
- package/dist/esm/index.native.js.map +1 -0
- package/dist/esm/useOnIntersecting.mjs +44 -0
- package/dist/esm/useOnIntersecting.mjs.map +1 -0
- package/dist/esm/useOnIntersecting.native.js +78 -0
- package/dist/esm/useOnIntersecting.native.js.map +1 -0
- package/package.json +68 -0
- package/src/AccordionDemo.tsx +73 -0
- package/src/AddThemeDemo.tsx +35 -0
- package/src/AlertDialogDemo.tsx +56 -0
- package/src/AnimationsDelayDemo.tsx +49 -0
- package/src/AnimationsDemo.tsx +85 -0
- package/src/AnimationsEnterDemo.tsx +43 -0
- package/src/AnimationsHoverDemo.tsx +23 -0
- package/src/AnimationsPresenceDemo.tsx +93 -0
- package/src/AnimationsTimingDemo.tsx +22 -0
- package/src/AvatarDemo.tsx +23 -0
- package/src/BoxShadowTokenDemo.tsx +35 -0
- package/src/BuildAButtonDemo.tsx +72 -0
- package/src/ButtonDemo.tsx +49 -0
- package/src/CardDemo.tsx +44 -0
- package/src/CheckboxDemo.tsx +39 -0
- package/src/CheckboxHeadlessDemo.tsx +47 -0
- package/src/CheckboxUnstyledDemo.tsx +49 -0
- package/src/ColorsDemo.tsx +133 -0
- package/src/ContextMenuDemo.tsx +178 -0
- package/src/DialogDemo.tsx +180 -0
- package/src/FormsDemo.tsx +60 -0
- package/src/Grid.tsx +46 -0
- package/src/GroupDemo.tsx +56 -0
- package/src/HeadingsDemo.tsx +14 -0
- package/src/ImageDemo.tsx +15 -0
- package/src/InputsDemo.tsx +27 -0
- package/src/LabelDemo.tsx +28 -0
- package/src/LinearGradientDemo.tsx +28 -0
- package/src/ListItemDemo.tsx +65 -0
- package/src/LucideIconsDemo.tsx +59 -0
- package/src/MenuDemo.tsx +183 -0
- package/src/NewInputsDemo.tsx +28 -0
- package/src/PopoverDemo.tsx +130 -0
- package/src/ProgressDemo.tsx +76 -0
- package/src/RadioGroupDemo.tsx +35 -0
- package/src/RadioGroupHeadlessDemo.tsx +129 -0
- package/src/RadioGroupUnstyledDemo.tsx +121 -0
- package/src/ReplaceThemeDemo.tsx +53 -0
- package/src/ScrollViewDemo.tsx +18 -0
- package/src/SelectDemo.tsx +189 -0
- package/src/SeparatorDemo.tsx +18 -0
- package/src/ShapesDemo.tsx +10 -0
- package/src/SheetDemo.tsx +156 -0
- package/src/SliderDemo.tsx +23 -0
- package/src/SpinnerDemo.tsx +10 -0
- package/src/StacksDemo.tsx +58 -0
- package/src/SwitchDemo.tsx +52 -0
- package/src/SwitchHeadlessDemo.tsx +76 -0
- package/src/SwitchUnstyledDemo.tsx +58 -0
- package/src/TabsAdvancedDemo.tsx +351 -0
- package/src/TabsDemo.tsx +171 -0
- package/src/TabsHeadlessDemo.tsx +126 -0
- package/src/TextDemo.tsx +15 -0
- package/src/ThemeBuilderDemo.tsx +124 -0
- package/src/ThemeInverseDemo.tsx +37 -0
- package/src/ToastDemo.tsx +121 -0
- package/src/ToastDuplicateDemo.tsx +47 -0
- package/src/ToggleGroupDemo.tsx +82 -0
- package/src/TokensDemo.tsx +105 -0
- package/src/TooltipDemo.tsx +68 -0
- package/src/UpdateThemeDemo.tsx +57 -0
- package/src/WebNativeImageDemo.tsx +5 -0
- package/src/gui.config.ts +16 -0
- package/src/index.tsx +65 -0
- package/src/useOnIntersecting.tsx +89 -0
package/src/TabsDemo.tsx
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import type { TabsContentProps } from '@hanzo/gui'
|
|
3
|
+
import {
|
|
4
|
+
Button,
|
|
5
|
+
H5,
|
|
6
|
+
Separator,
|
|
7
|
+
SizableText,
|
|
8
|
+
Tabs,
|
|
9
|
+
XStack,
|
|
10
|
+
YStack,
|
|
11
|
+
isWeb,
|
|
12
|
+
useWindowDimensions,
|
|
13
|
+
} from '@hanzo/gui'
|
|
14
|
+
|
|
15
|
+
const demos = ['horizontal', 'vertical'] as const
|
|
16
|
+
const demosTitle: Record<(typeof demos)[number], string> = {
|
|
17
|
+
horizontal: 'Horizontal',
|
|
18
|
+
vertical: 'Vertical',
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export function TabsDemo() {
|
|
22
|
+
const [demoIndex, setDemoIndex] = React.useState(0)
|
|
23
|
+
const demo = demos[demoIndex]
|
|
24
|
+
|
|
25
|
+
return (
|
|
26
|
+
<YStack
|
|
27
|
+
px="$4"
|
|
28
|
+
{...(isWeb && {
|
|
29
|
+
position: 'unset' as any,
|
|
30
|
+
})}
|
|
31
|
+
>
|
|
32
|
+
{demo === 'horizontal' ? <HorizontalTabs /> : <VerticalTabs />}
|
|
33
|
+
|
|
34
|
+
<XStack
|
|
35
|
+
items="center"
|
|
36
|
+
gap="$4"
|
|
37
|
+
position="absolute"
|
|
38
|
+
b="$3"
|
|
39
|
+
l="$4"
|
|
40
|
+
$maxXs={{ display: 'none' }}
|
|
41
|
+
>
|
|
42
|
+
<Button size="$2" onPress={() => setDemoIndex((x) => (x + 1) % demos.length)}>
|
|
43
|
+
{demosTitle[demo]}
|
|
44
|
+
</Button>
|
|
45
|
+
</XStack>
|
|
46
|
+
</YStack>
|
|
47
|
+
)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const HorizontalTabs = () => {
|
|
51
|
+
const { width } = useWindowDimensions()
|
|
52
|
+
return (
|
|
53
|
+
<Tabs
|
|
54
|
+
defaultValue="tab1"
|
|
55
|
+
orientation="horizontal"
|
|
56
|
+
flexDirection="column"
|
|
57
|
+
$maxMd={{ width: width - 32 }}
|
|
58
|
+
width={400}
|
|
59
|
+
height={150}
|
|
60
|
+
rounded="$4"
|
|
61
|
+
borderWidth="$0.25"
|
|
62
|
+
borderColor="$borderColor"
|
|
63
|
+
>
|
|
64
|
+
<Tabs.List aria-label="Manage your account">
|
|
65
|
+
<Tabs.Tab
|
|
66
|
+
activeStyle={{
|
|
67
|
+
backgroundColor: '$color3',
|
|
68
|
+
}}
|
|
69
|
+
flex={1}
|
|
70
|
+
value="tab1"
|
|
71
|
+
>
|
|
72
|
+
<SizableText fontFamily="$body" text="center" ellipsis>
|
|
73
|
+
Profile
|
|
74
|
+
</SizableText>
|
|
75
|
+
</Tabs.Tab>
|
|
76
|
+
<Tabs.Tab
|
|
77
|
+
activeStyle={{
|
|
78
|
+
backgroundColor: '$color3',
|
|
79
|
+
}}
|
|
80
|
+
flex={1}
|
|
81
|
+
value="tab2"
|
|
82
|
+
>
|
|
83
|
+
<SizableText fontFamily="$body" text="center" ellipsis>
|
|
84
|
+
Connections
|
|
85
|
+
</SizableText>
|
|
86
|
+
</Tabs.Tab>
|
|
87
|
+
<Tabs.Tab
|
|
88
|
+
activeStyle={{
|
|
89
|
+
backgroundColor: '$color3',
|
|
90
|
+
}}
|
|
91
|
+
flex={1}
|
|
92
|
+
value="tab3"
|
|
93
|
+
>
|
|
94
|
+
<SizableText fontFamily="$body" text="center" ellipsis>
|
|
95
|
+
Notifications
|
|
96
|
+
</SizableText>
|
|
97
|
+
</Tabs.Tab>
|
|
98
|
+
</Tabs.List>
|
|
99
|
+
<Separator />
|
|
100
|
+
<TabsContent value="tab1">
|
|
101
|
+
<H5>Profile</H5>
|
|
102
|
+
</TabsContent>
|
|
103
|
+
|
|
104
|
+
<TabsContent value="tab2">
|
|
105
|
+
<H5>Connections</H5>
|
|
106
|
+
</TabsContent>
|
|
107
|
+
|
|
108
|
+
<TabsContent value="tab3">
|
|
109
|
+
<H5>Notifications</H5>
|
|
110
|
+
</TabsContent>
|
|
111
|
+
</Tabs>
|
|
112
|
+
)
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
const VerticalTabs = () => {
|
|
116
|
+
return (
|
|
117
|
+
<Tabs
|
|
118
|
+
defaultValue="tab1"
|
|
119
|
+
flexDirection="row"
|
|
120
|
+
orientation="vertical"
|
|
121
|
+
width={400}
|
|
122
|
+
rounded="$4"
|
|
123
|
+
borderWidth="$0.25"
|
|
124
|
+
overflow="hidden"
|
|
125
|
+
borderColor="$borderColor"
|
|
126
|
+
>
|
|
127
|
+
<Tabs.List aria-label="Manage your account">
|
|
128
|
+
<Tabs.Tab activeStyle={{ backgroundColor: '$color3' }} value="tab1">
|
|
129
|
+
<SizableText>Profile</SizableText>
|
|
130
|
+
</Tabs.Tab>
|
|
131
|
+
<Tabs.Tab activeStyle={{ backgroundColor: '$color3' }} value="tab2">
|
|
132
|
+
<SizableText>Connections</SizableText>
|
|
133
|
+
</Tabs.Tab>
|
|
134
|
+
<Tabs.Tab activeStyle={{ backgroundColor: '$color3' }} value="tab3">
|
|
135
|
+
<SizableText>Notifications</SizableText>
|
|
136
|
+
</Tabs.Tab>
|
|
137
|
+
</Tabs.List>
|
|
138
|
+
<Separator vertical />
|
|
139
|
+
<TabsContent value="tab1">
|
|
140
|
+
<H5 text="center">Profile</H5>
|
|
141
|
+
</TabsContent>
|
|
142
|
+
<TabsContent value="tab2">
|
|
143
|
+
<H5 text="center">Connections</H5>
|
|
144
|
+
</TabsContent>
|
|
145
|
+
<TabsContent value="tab3">
|
|
146
|
+
<H5 text="center">Notifications</H5>
|
|
147
|
+
</TabsContent>
|
|
148
|
+
</Tabs>
|
|
149
|
+
)
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
const TabsContent = (props: TabsContentProps) => {
|
|
153
|
+
return (
|
|
154
|
+
<Tabs.Content
|
|
155
|
+
bg="$background"
|
|
156
|
+
key="tab3"
|
|
157
|
+
p="$2"
|
|
158
|
+
items="center"
|
|
159
|
+
justify="center"
|
|
160
|
+
flex={1}
|
|
161
|
+
borderColor="$background"
|
|
162
|
+
rounded="$2"
|
|
163
|
+
borderTopLeftRadius={0}
|
|
164
|
+
borderTopRightRadius={0}
|
|
165
|
+
borderWidth="$2"
|
|
166
|
+
{...props}
|
|
167
|
+
>
|
|
168
|
+
{props.children}
|
|
169
|
+
</Tabs.Content>
|
|
170
|
+
)
|
|
171
|
+
}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import React, { useState } from 'react'
|
|
2
|
+
import {
|
|
3
|
+
Button,
|
|
4
|
+
SizableStack,
|
|
5
|
+
ThemeableStack,
|
|
6
|
+
XStack,
|
|
7
|
+
YStack,
|
|
8
|
+
isWeb,
|
|
9
|
+
styled,
|
|
10
|
+
} from '@hanzo/gui'
|
|
11
|
+
import { createTabs } from '@hanzogui/tabs'
|
|
12
|
+
import { getButtonSized } from '@hanzogui/get-button-sized'
|
|
13
|
+
|
|
14
|
+
const demos = ['horizontal', 'vertical'] as const
|
|
15
|
+
|
|
16
|
+
export const TabsFrame = styled(SizableStack, {
|
|
17
|
+
name: 'TabsFrame',
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
export const TabFrame = styled(ThemeableStack, {
|
|
21
|
+
name: 'TabsTrigger',
|
|
22
|
+
render: 'button',
|
|
23
|
+
cursor: 'pointer',
|
|
24
|
+
backgroundColor: 'transparent',
|
|
25
|
+
variants: {
|
|
26
|
+
size: {
|
|
27
|
+
'...size': getButtonSized,
|
|
28
|
+
},
|
|
29
|
+
|
|
30
|
+
disabled: {
|
|
31
|
+
true: {
|
|
32
|
+
pointerEvents: 'none',
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
|
|
36
|
+
active: {
|
|
37
|
+
true: {
|
|
38
|
+
hoverStyle: {
|
|
39
|
+
backgroundColor: '$background',
|
|
40
|
+
},
|
|
41
|
+
|
|
42
|
+
focusStyle: {
|
|
43
|
+
backgroundColor: '$background',
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
} as const,
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
const CONTENT_NAME = 'TabsContent'
|
|
51
|
+
|
|
52
|
+
export const ContentFrame = styled(ThemeableStack, {
|
|
53
|
+
name: CONTENT_NAME,
|
|
54
|
+
flex: 1,
|
|
55
|
+
p: '$6',
|
|
56
|
+
justify: 'center',
|
|
57
|
+
items: 'center',
|
|
58
|
+
bg: '$color4',
|
|
59
|
+
rounded: '$4',
|
|
60
|
+
})
|
|
61
|
+
|
|
62
|
+
export const CustomTabs = createTabs({
|
|
63
|
+
TabsFrame,
|
|
64
|
+
TabFrame,
|
|
65
|
+
ContentFrame,
|
|
66
|
+
})
|
|
67
|
+
|
|
68
|
+
export function TabsHeadlessDemo() {
|
|
69
|
+
const [demo, setDemo] = useState<(typeof demos)[number]>(demos[0])
|
|
70
|
+
|
|
71
|
+
return (
|
|
72
|
+
// web only fix for position relative
|
|
73
|
+
<YStack
|
|
74
|
+
px="$4"
|
|
75
|
+
{...(isWeb && {
|
|
76
|
+
position: 'static',
|
|
77
|
+
})}
|
|
78
|
+
>
|
|
79
|
+
<TabsView flexDirection={demo === 'horizontal' ? 'row' : 'column'} />
|
|
80
|
+
|
|
81
|
+
<XStack
|
|
82
|
+
items="center"
|
|
83
|
+
gap="$4"
|
|
84
|
+
position="absolute"
|
|
85
|
+
b="$3"
|
|
86
|
+
l="$4"
|
|
87
|
+
$xxs={{ display: 'none' }}
|
|
88
|
+
>
|
|
89
|
+
<Button
|
|
90
|
+
size="$2"
|
|
91
|
+
onPress={() => setDemo(demo === 'horizontal' ? 'vertical' : 'horizontal')}
|
|
92
|
+
>
|
|
93
|
+
<Button.Text textTransform="capitalize">{demo}</Button.Text>
|
|
94
|
+
</Button>
|
|
95
|
+
</XStack>
|
|
96
|
+
</YStack>
|
|
97
|
+
)
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
const content = ['Home', 'Profile', 'Settings']
|
|
101
|
+
|
|
102
|
+
const TabsView = ({ flexDirection = 'row' }: { flexDirection: 'row' | 'column' }) => {
|
|
103
|
+
return (
|
|
104
|
+
<CustomTabs
|
|
105
|
+
flexDirection={flexDirection === 'column' ? 'row' : 'column'}
|
|
106
|
+
defaultValue={content[0]}
|
|
107
|
+
>
|
|
108
|
+
<CustomTabs.List flexDirection={flexDirection}>
|
|
109
|
+
{content.map((name, index) => (
|
|
110
|
+
<CustomTabs.Tab
|
|
111
|
+
key={index}
|
|
112
|
+
value={name}
|
|
113
|
+
activeStyle={{ backgroundColor: 'transparent' }}
|
|
114
|
+
>
|
|
115
|
+
{name}
|
|
116
|
+
</CustomTabs.Tab>
|
|
117
|
+
))}
|
|
118
|
+
</CustomTabs.List>
|
|
119
|
+
{content.map((name, index) => (
|
|
120
|
+
<CustomTabs.Content key={index} value={name}>
|
|
121
|
+
{name}
|
|
122
|
+
</CustomTabs.Content>
|
|
123
|
+
))}
|
|
124
|
+
</CustomTabs>
|
|
125
|
+
)
|
|
126
|
+
}
|
package/src/TextDemo.tsx
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Em, Paragraph, SizableText, Span, Strong, YStack } from '@hanzo/gui'
|
|
2
|
+
|
|
3
|
+
export function TextDemo() {
|
|
4
|
+
return (
|
|
5
|
+
<YStack gap="$2" items="center">
|
|
6
|
+
<SizableText size="$3">SizableText</SizableText>
|
|
7
|
+
<Paragraph size="$2" fontWeight="800">
|
|
8
|
+
Paragraph
|
|
9
|
+
</Paragraph>
|
|
10
|
+
<Paragraph>
|
|
11
|
+
<Strong>Strong</Strong>, <Em>Em</Em>, <Span>Span</Span>
|
|
12
|
+
</Paragraph>
|
|
13
|
+
</YStack>
|
|
14
|
+
)
|
|
15
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import type { SquareProps, ThemeName } from '@hanzo/gui'
|
|
2
|
+
import { Square, XStack, YStack } from '@hanzo/gui'
|
|
3
|
+
|
|
4
|
+
export function ThemeBuilderDemo() {
|
|
5
|
+
return (
|
|
6
|
+
<YStack fullscreen overflow="hidden">
|
|
7
|
+
<XStack maxH={200} y={-100} x={-50} rotate="-10deg">
|
|
8
|
+
<Col y={35} bg="$color9" />
|
|
9
|
+
<Col size="$8" y={30} bg="$color7" />
|
|
10
|
+
<Col size="$6" y={-50} bg="$color5" />
|
|
11
|
+
<Col size="$4" bg="$color3" />
|
|
12
|
+
<Col size="$2" bg="$color1" />
|
|
13
|
+
<Col size="$4" y={50} bg="$color3" />
|
|
14
|
+
<Col size="$6" y={80} bg="$color5" />
|
|
15
|
+
<Col size="$8" bg="$color7" />
|
|
16
|
+
<Col bg="$color9" />
|
|
17
|
+
<Col size="$8" bg="$color7" />
|
|
18
|
+
<Col size="$6" y={80} bg="$color5" />
|
|
19
|
+
<Col size="$4" y={50} bg="$color3" />
|
|
20
|
+
<Col size="$2" bg="$color1" />
|
|
21
|
+
<Col size="$4" bg="$color3" />
|
|
22
|
+
<Col size="$6" y={-50} bg="$color5" />
|
|
23
|
+
<Col size="$8" y={30} bg="$color7" />
|
|
24
|
+
<Col y={35} bg="$color9" />
|
|
25
|
+
</XStack>
|
|
26
|
+
</YStack>
|
|
27
|
+
)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function Col(
|
|
31
|
+
props: SquareProps & {
|
|
32
|
+
subTheme?: any
|
|
33
|
+
}
|
|
34
|
+
) {
|
|
35
|
+
const subTheme = props.subTheme ? `_${props.subTheme}` : ''
|
|
36
|
+
return (
|
|
37
|
+
<YStack p="$2.5" gap="$3.5">
|
|
38
|
+
<Square
|
|
39
|
+
rounded="$6"
|
|
40
|
+
size="$10"
|
|
41
|
+
theme={props.subTheme}
|
|
42
|
+
bg="$background"
|
|
43
|
+
{...props}
|
|
44
|
+
/>
|
|
45
|
+
<Square
|
|
46
|
+
rounded="$6"
|
|
47
|
+
size="$10"
|
|
48
|
+
theme={('orange' + subTheme) as ThemeName}
|
|
49
|
+
bg="$background"
|
|
50
|
+
{...props}
|
|
51
|
+
/>
|
|
52
|
+
<Square
|
|
53
|
+
rounded="$6"
|
|
54
|
+
size="$10"
|
|
55
|
+
theme={('yellow' + subTheme) as ThemeName}
|
|
56
|
+
bg="$background"
|
|
57
|
+
{...props}
|
|
58
|
+
/>
|
|
59
|
+
<Square
|
|
60
|
+
rounded="$6"
|
|
61
|
+
size="$10"
|
|
62
|
+
theme={('green' + subTheme) as ThemeName}
|
|
63
|
+
bg="$background"
|
|
64
|
+
{...props}
|
|
65
|
+
/>
|
|
66
|
+
<Square
|
|
67
|
+
rounded="$6"
|
|
68
|
+
size="$10"
|
|
69
|
+
theme={('blue' + subTheme) as ThemeName}
|
|
70
|
+
bg="$background"
|
|
71
|
+
{...props}
|
|
72
|
+
/>
|
|
73
|
+
<Square
|
|
74
|
+
rounded="$6"
|
|
75
|
+
size="$10"
|
|
76
|
+
theme={('purple' + subTheme) as ThemeName}
|
|
77
|
+
bg="$background"
|
|
78
|
+
{...props}
|
|
79
|
+
/>
|
|
80
|
+
<Square
|
|
81
|
+
rounded="$6"
|
|
82
|
+
size="$10"
|
|
83
|
+
theme={('pink' + subTheme) as ThemeName}
|
|
84
|
+
bg="$background"
|
|
85
|
+
{...props}
|
|
86
|
+
/>
|
|
87
|
+
<Square
|
|
88
|
+
rounded="$6"
|
|
89
|
+
size="$10"
|
|
90
|
+
theme={('red' + subTheme) as ThemeName}
|
|
91
|
+
bg="$background"
|
|
92
|
+
{...props}
|
|
93
|
+
/>
|
|
94
|
+
<Square
|
|
95
|
+
rounded="$6"
|
|
96
|
+
size="$10"
|
|
97
|
+
theme={props.subTheme}
|
|
98
|
+
bg="$background"
|
|
99
|
+
{...props}
|
|
100
|
+
/>
|
|
101
|
+
<Square
|
|
102
|
+
rounded="$6"
|
|
103
|
+
size="$10"
|
|
104
|
+
theme={('orange' + subTheme) as ThemeName}
|
|
105
|
+
bg="$background"
|
|
106
|
+
{...props}
|
|
107
|
+
/>
|
|
108
|
+
<Square
|
|
109
|
+
rounded="$6"
|
|
110
|
+
size="$10"
|
|
111
|
+
theme={('yellow' + subTheme) as ThemeName}
|
|
112
|
+
bg="$background"
|
|
113
|
+
{...props}
|
|
114
|
+
/>
|
|
115
|
+
<Square
|
|
116
|
+
rounded="$6"
|
|
117
|
+
size="$10"
|
|
118
|
+
theme={('green' + subTheme) as ThemeName}
|
|
119
|
+
bg="$background"
|
|
120
|
+
{...props}
|
|
121
|
+
/>
|
|
122
|
+
</YStack>
|
|
123
|
+
)
|
|
124
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Button, H5, Theme, XStack, YStack } from '@hanzo/gui'
|
|
2
|
+
|
|
3
|
+
export function ThemeInverseDemo() {
|
|
4
|
+
return (
|
|
5
|
+
<XStack gap="$4" flexWrap="wrap">
|
|
6
|
+
<YStack elevation="$4" bg="$background" p="$4" rounded="$4" gap="$3">
|
|
7
|
+
<H5>Base Theme</H5>
|
|
8
|
+
<Button>Normal</Button>
|
|
9
|
+
<Button theme="accent">Accent</Button>
|
|
10
|
+
</YStack>
|
|
11
|
+
|
|
12
|
+
<Theme name="red">
|
|
13
|
+
<YStack elevation="$4" bg="$background" p="$4" rounded="$4" gap="$3">
|
|
14
|
+
<H5>Red Theme</H5>
|
|
15
|
+
<Button>Normal</Button>
|
|
16
|
+
<Button theme="accent">Accent</Button>
|
|
17
|
+
</YStack>
|
|
18
|
+
</Theme>
|
|
19
|
+
|
|
20
|
+
<Theme name="blue">
|
|
21
|
+
<YStack elevation="$4" bg="$background" p="$4" rounded="$4" gap="$3">
|
|
22
|
+
<H5>Blue Theme</H5>
|
|
23
|
+
<Button>Normal</Button>
|
|
24
|
+
<Button theme="accent">Accent</Button>
|
|
25
|
+
</YStack>
|
|
26
|
+
</Theme>
|
|
27
|
+
|
|
28
|
+
<Theme name="green">
|
|
29
|
+
<YStack elevation="$4" bg="$background" p="$4" rounded="$4" gap="$3">
|
|
30
|
+
<H5>Green Theme</H5>
|
|
31
|
+
<Button>Normal</Button>
|
|
32
|
+
<Button theme="accent">Accent</Button>
|
|
33
|
+
</YStack>
|
|
34
|
+
</Theme>
|
|
35
|
+
</XStack>
|
|
36
|
+
)
|
|
37
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { Toast, useToastController, useToastState } from '@hanzogui/toast'
|
|
2
|
+
import React from 'react'
|
|
3
|
+
import { Button, Label, Switch, XStack, YStack } from '@hanzo/gui'
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* IMPORTANT NOTE: if you're copy-pasting this demo into your code, make sure to add:
|
|
7
|
+
* - <ToastProvider> at the root
|
|
8
|
+
* - <ToastViewport /> where you want to show the toasts
|
|
9
|
+
*/
|
|
10
|
+
export const ToastDemo = () => {
|
|
11
|
+
const [native, setNative] = React.useState(false)
|
|
12
|
+
|
|
13
|
+
return (
|
|
14
|
+
<YStack gap="$4" items="center">
|
|
15
|
+
<ToastControl native={native} />
|
|
16
|
+
<CurrentToast />
|
|
17
|
+
|
|
18
|
+
<NativeOptions native={native} setNative={setNative} />
|
|
19
|
+
</YStack>
|
|
20
|
+
)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const CurrentToast = () => {
|
|
24
|
+
const currentToast = useToastState()
|
|
25
|
+
|
|
26
|
+
if (!currentToast || currentToast.isHandledNatively) return null
|
|
27
|
+
|
|
28
|
+
return (
|
|
29
|
+
<Toast
|
|
30
|
+
key={currentToast.id}
|
|
31
|
+
duration={currentToast.duration}
|
|
32
|
+
viewportName={currentToast.viewportName}
|
|
33
|
+
enterStyle={{ opacity: 0, scale: 0.95, y: -80 }}
|
|
34
|
+
exitStyle={{ opacity: 0, scale: 0.95, y: -80 }}
|
|
35
|
+
opacity={1}
|
|
36
|
+
scale={1}
|
|
37
|
+
y={-50}
|
|
38
|
+
transition="quicker"
|
|
39
|
+
bg="$color2"
|
|
40
|
+
boxShadow="0px 2px 4px rgba(0,0,0,0.12), 0px 8px 24px rgba(0,0,0,0.08)"
|
|
41
|
+
>
|
|
42
|
+
<XStack gap="$5" items="center" justify="space-between">
|
|
43
|
+
<YStack gap="$0.5" flex={1}>
|
|
44
|
+
<Toast.Title>{currentToast.title}</Toast.Title>
|
|
45
|
+
{!!currentToast.message && (
|
|
46
|
+
<Toast.Description>{currentToast.message}</Toast.Description>
|
|
47
|
+
)}
|
|
48
|
+
</YStack>
|
|
49
|
+
<Toast.Action asChild altText="Dismiss toast">
|
|
50
|
+
<Button size="$2">Dismiss</Button>
|
|
51
|
+
</Toast.Action>
|
|
52
|
+
</XStack>
|
|
53
|
+
</Toast>
|
|
54
|
+
)
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
const ToastControl = ({ native }: { native: boolean }) => {
|
|
58
|
+
const toast = useToastController()
|
|
59
|
+
|
|
60
|
+
return (
|
|
61
|
+
<XStack gap="$2" justify="center">
|
|
62
|
+
<Button
|
|
63
|
+
onPress={() => {
|
|
64
|
+
toast.show('Successfully saved!', {
|
|
65
|
+
message: "Don't worry, we've got your data.",
|
|
66
|
+
native,
|
|
67
|
+
demo: true,
|
|
68
|
+
})
|
|
69
|
+
}}
|
|
70
|
+
>
|
|
71
|
+
Show
|
|
72
|
+
</Button>
|
|
73
|
+
<Button
|
|
74
|
+
onPress={() => {
|
|
75
|
+
toast.hide()
|
|
76
|
+
}}
|
|
77
|
+
>
|
|
78
|
+
Hide
|
|
79
|
+
</Button>
|
|
80
|
+
</XStack>
|
|
81
|
+
)
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
const NativeOptions = ({
|
|
85
|
+
native,
|
|
86
|
+
setNative,
|
|
87
|
+
}: {
|
|
88
|
+
native: boolean
|
|
89
|
+
setNative: (native: boolean) => void
|
|
90
|
+
}) => {
|
|
91
|
+
return (
|
|
92
|
+
<XStack gap="$3">
|
|
93
|
+
<Label size="$1" onPress={() => setNative(false)}>
|
|
94
|
+
Custom
|
|
95
|
+
</Label>
|
|
96
|
+
<Switch
|
|
97
|
+
theme="surface2"
|
|
98
|
+
id="native-toggle"
|
|
99
|
+
size="$1"
|
|
100
|
+
checked={!!native}
|
|
101
|
+
onCheckedChange={(val) => setNative(val)}
|
|
102
|
+
>
|
|
103
|
+
<Switch.Thumb
|
|
104
|
+
theme="accent"
|
|
105
|
+
transition={[
|
|
106
|
+
'quickest',
|
|
107
|
+
{
|
|
108
|
+
transform: {
|
|
109
|
+
overshootClamping: true,
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
]}
|
|
113
|
+
/>
|
|
114
|
+
</Switch>
|
|
115
|
+
|
|
116
|
+
<Label size="$1" onPress={() => setNative(true)}>
|
|
117
|
+
Native
|
|
118
|
+
</Label>
|
|
119
|
+
</XStack>
|
|
120
|
+
)
|
|
121
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { CheckCircle2 } from '@hanzogui/lucide-icons-2'
|
|
2
|
+
import { Toast } from '@hanzogui/toast'
|
|
3
|
+
import React from 'react'
|
|
4
|
+
import { Button, XStack, YStack } from '@hanzo/gui'
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* IMPORTANT NOTE: if you're copy-pasting this demo into your code, make sure to add the ToastProvider and ToastViewport as well.
|
|
8
|
+
*/
|
|
9
|
+
export const ToastDuplicateDemo = () => {
|
|
10
|
+
const [savedCount, setSavedCount] = React.useState(0)
|
|
11
|
+
|
|
12
|
+
return (
|
|
13
|
+
<YStack items="center">
|
|
14
|
+
<Button
|
|
15
|
+
onPress={() => {
|
|
16
|
+
setSavedCount((old) => old + 1)
|
|
17
|
+
}}
|
|
18
|
+
>
|
|
19
|
+
Show toast
|
|
20
|
+
</Button>
|
|
21
|
+
{[...Array(savedCount)].map((_, index) => (
|
|
22
|
+
<Toast
|
|
23
|
+
viewportName="viewport-multiple" // Sends to a viewport that supports multiple toasts with the `multipleToasts` prop
|
|
24
|
+
key={index}
|
|
25
|
+
duration={4000}
|
|
26
|
+
enterStyle={{ opacity: 0, scale: 0.5, y: -25 }}
|
|
27
|
+
exitStyle={{ opacity: 0, scale: 1, y: -20 }}
|
|
28
|
+
y={0}
|
|
29
|
+
opacity={1}
|
|
30
|
+
scale={1}
|
|
31
|
+
transition="100ms"
|
|
32
|
+
>
|
|
33
|
+
<XStack gap="$4" items="center">
|
|
34
|
+
<YStack>
|
|
35
|
+
<CheckCircle2 />
|
|
36
|
+
</YStack>
|
|
37
|
+
|
|
38
|
+
<YStack>
|
|
39
|
+
<Toast.Title>Successfully saved!</Toast.Title>
|
|
40
|
+
<Toast.Description>Don't worry... We've got your data.</Toast.Description>
|
|
41
|
+
</YStack>
|
|
42
|
+
</XStack>
|
|
43
|
+
</Toast>
|
|
44
|
+
))}
|
|
45
|
+
</YStack>
|
|
46
|
+
)
|
|
47
|
+
}
|