@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
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { AlignCenter, AlignLeft, AlignRight } from '@hanzogui/lucide-icons-2'
|
|
2
|
+
import { Label, ToggleGroup, XGroup, YGroup, XStack, YStack } from '@hanzo/gui'
|
|
3
|
+
|
|
4
|
+
export function ToggleGroupDemo() {
|
|
5
|
+
return (
|
|
6
|
+
<YStack px="$4">
|
|
7
|
+
<XStack items="center" gap="$10">
|
|
8
|
+
<YStack items="center" gap="$6">
|
|
9
|
+
<ToggleGroupComponent type="single" orientation="horizontal" />
|
|
10
|
+
<ToggleGroupComponent type="multiple" orientation="horizontal" />
|
|
11
|
+
</YStack>
|
|
12
|
+
<XStack items="center" gap="$6" y={-28}>
|
|
13
|
+
<ToggleGroupComponent type="single" orientation="vertical" />
|
|
14
|
+
<ToggleGroupComponent type="multiple" orientation="vertical" />
|
|
15
|
+
</XStack>
|
|
16
|
+
</XStack>
|
|
17
|
+
</YStack>
|
|
18
|
+
)
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
function ToggleGroupComponent(props: {
|
|
22
|
+
type: 'single' | 'multiple'
|
|
23
|
+
orientation: 'vertical' | 'horizontal'
|
|
24
|
+
}) {
|
|
25
|
+
const id = `switch-${props.type}`
|
|
26
|
+
const Group = props.orientation === 'horizontal' ? XGroup : YGroup
|
|
27
|
+
|
|
28
|
+
return (
|
|
29
|
+
<XStack
|
|
30
|
+
flexDirection={props.orientation === 'horizontal' ? 'row' : 'column'}
|
|
31
|
+
items="center"
|
|
32
|
+
justify="center"
|
|
33
|
+
gap="$4"
|
|
34
|
+
>
|
|
35
|
+
<Label pr="$0" justify="flex-end" size="$4" htmlFor={id}>
|
|
36
|
+
{props.type === 'single' ? 'Single' : 'Multiple'}
|
|
37
|
+
</Label>
|
|
38
|
+
|
|
39
|
+
<ToggleGroup
|
|
40
|
+
orientation={props.orientation}
|
|
41
|
+
id={id}
|
|
42
|
+
type={props.type as any}
|
|
43
|
+
disableDeactivation={props.type === 'single' ? true : undefined}
|
|
44
|
+
>
|
|
45
|
+
<Group>
|
|
46
|
+
<Group.Item>
|
|
47
|
+
<ToggleGroup.Item
|
|
48
|
+
value="left"
|
|
49
|
+
aria-label="Left aligned"
|
|
50
|
+
borderRadius="$4"
|
|
51
|
+
activeStyle={{ backgroundColor: '$color5' }}
|
|
52
|
+
>
|
|
53
|
+
<AlignLeft size={16} />
|
|
54
|
+
</ToggleGroup.Item>
|
|
55
|
+
</Group.Item>
|
|
56
|
+
|
|
57
|
+
<Group.Item>
|
|
58
|
+
<ToggleGroup.Item
|
|
59
|
+
value="center"
|
|
60
|
+
aria-label="Center aligned"
|
|
61
|
+
borderRadius="$4"
|
|
62
|
+
activeStyle={{ backgroundColor: '$color5' }}
|
|
63
|
+
>
|
|
64
|
+
<AlignCenter size={16} />
|
|
65
|
+
</ToggleGroup.Item>
|
|
66
|
+
</Group.Item>
|
|
67
|
+
|
|
68
|
+
<Group.Item>
|
|
69
|
+
<ToggleGroup.Item
|
|
70
|
+
value="right"
|
|
71
|
+
aria-label="Right aligned"
|
|
72
|
+
borderRadius="$4"
|
|
73
|
+
activeStyle={{ backgroundColor: '$color5' }}
|
|
74
|
+
>
|
|
75
|
+
<AlignRight size={16} />
|
|
76
|
+
</ToggleGroup.Item>
|
|
77
|
+
</Group.Item>
|
|
78
|
+
</Group>
|
|
79
|
+
</ToggleGroup>
|
|
80
|
+
</XStack>
|
|
81
|
+
)
|
|
82
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import type { Tokens } from '@hanzogui/core'
|
|
2
|
+
import { getConfig } from '@hanzogui/core'
|
|
3
|
+
import React from 'react'
|
|
4
|
+
import { Button, H2, H3, H4, Square, XGroup, XStack, YStack } from '@hanzo/gui'
|
|
5
|
+
|
|
6
|
+
type Section = 'spaceNegative' | keyof Tokens
|
|
7
|
+
|
|
8
|
+
const sections: { name: string; key: Section }[] = [
|
|
9
|
+
{
|
|
10
|
+
name: `Size`,
|
|
11
|
+
key: `size`,
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
name: `Space`,
|
|
15
|
+
key: 'space',
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: `Space (-)`,
|
|
19
|
+
key: `spaceNegative`,
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: `Radius`,
|
|
23
|
+
key: `radius`,
|
|
24
|
+
},
|
|
25
|
+
]
|
|
26
|
+
|
|
27
|
+
export function TokensDemo() {
|
|
28
|
+
const [section, setSection] = React.useState<Section>('size')
|
|
29
|
+
|
|
30
|
+
return (
|
|
31
|
+
<YStack gap="$4">
|
|
32
|
+
<XGroup items="center" self="center">
|
|
33
|
+
{sections.map(({ name, key }) => {
|
|
34
|
+
return (
|
|
35
|
+
<XGroup.Item key={key}>
|
|
36
|
+
<Button
|
|
37
|
+
size="$3"
|
|
38
|
+
theme={section === key ? 'accent' : null}
|
|
39
|
+
onPress={() => setSection(key)}
|
|
40
|
+
>
|
|
41
|
+
{name}
|
|
42
|
+
</Button>
|
|
43
|
+
</XGroup.Item>
|
|
44
|
+
)
|
|
45
|
+
})}
|
|
46
|
+
</XGroup>
|
|
47
|
+
|
|
48
|
+
{(section === 'size' ||
|
|
49
|
+
section === 'spaceNegative' ||
|
|
50
|
+
section === 'space' ||
|
|
51
|
+
section === 'radius') && <SizeSection section={section} />}
|
|
52
|
+
</YStack>
|
|
53
|
+
)
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function SizeSection({ section }: { section: Section }) {
|
|
57
|
+
const allTokens = getConfig().tokens
|
|
58
|
+
const tokens = allTokens[section.startsWith('space') ? 'space' : section]
|
|
59
|
+
const st = Object.keys(tokens).sort((a, b) =>
|
|
60
|
+
Number.parseFloat(a) > Number.parseFloat(b) ? 1 : -1
|
|
61
|
+
)
|
|
62
|
+
const spaceTokens = st.filter((t) => Number.parseFloat(t) >= 0)
|
|
63
|
+
const spaceTokensNegative = st
|
|
64
|
+
.filter((t) => Number.parseFloat(t) < 0)
|
|
65
|
+
.sort((a, b) => (Number.parseFloat(a) > Number.parseFloat(b) ? -1 : 1))
|
|
66
|
+
|
|
67
|
+
return (
|
|
68
|
+
<YStack flex={1} gap="$4">
|
|
69
|
+
<H2>Sizes</H2>
|
|
70
|
+
<YStack width="100%" gap="$2">
|
|
71
|
+
{(section === 'spaceNegative' ? spaceTokensNegative : spaceTokens).map(
|
|
72
|
+
(token) => {
|
|
73
|
+
return (
|
|
74
|
+
<XStack width="100%" items="center" key={token}>
|
|
75
|
+
<YStack width="25%">
|
|
76
|
+
<H3 size="$6">${token}</H3>
|
|
77
|
+
</YStack>
|
|
78
|
+
<YStack width="20%">
|
|
79
|
+
<H4 size="$5">{tokens[token]?.val}px</H4>
|
|
80
|
+
</YStack>
|
|
81
|
+
<Square
|
|
82
|
+
size={tokens[token]?.val as any}
|
|
83
|
+
backgroundColor="$color5"
|
|
84
|
+
{...(section === 'spaceNegative' && {
|
|
85
|
+
backgroundColor: '$red5',
|
|
86
|
+
size:
|
|
87
|
+
-tokens[
|
|
88
|
+
spaceTokensNegative.find(
|
|
89
|
+
(t) => Number.parseFloat(t) === -Number.parseFloat(token)
|
|
90
|
+
) ?? token
|
|
91
|
+
]?.val,
|
|
92
|
+
})}
|
|
93
|
+
{...(section === 'radius' && {
|
|
94
|
+
size: allTokens.size[token]?.val as any,
|
|
95
|
+
borderRadius: tokens[token]?.val as any,
|
|
96
|
+
})}
|
|
97
|
+
/>
|
|
98
|
+
</XStack>
|
|
99
|
+
)
|
|
100
|
+
}
|
|
101
|
+
)}
|
|
102
|
+
</YStack>
|
|
103
|
+
</YStack>
|
|
104
|
+
)
|
|
105
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ChevronDown,
|
|
3
|
+
ChevronLeft,
|
|
4
|
+
ChevronRight,
|
|
5
|
+
ChevronUp,
|
|
6
|
+
Circle,
|
|
7
|
+
} from '@hanzogui/lucide-icons-2'
|
|
8
|
+
import type { TooltipProps } from '@hanzo/gui'
|
|
9
|
+
import { Button, Paragraph, Theme, Tooltip, TooltipGroup, XStack, YStack } from '@hanzo/gui'
|
|
10
|
+
|
|
11
|
+
export function TooltipDemo() {
|
|
12
|
+
return (
|
|
13
|
+
<Theme name="surface2">
|
|
14
|
+
<TooltipGroup delay={{ open: 300, close: 100 }}>
|
|
15
|
+
<YStack gap="$2" self="center">
|
|
16
|
+
<XStack gap="$2">
|
|
17
|
+
<Demo groupId="0" placement="top-end" Icon={Circle} />
|
|
18
|
+
<Demo groupId="1" placement="top" Icon={ChevronUp} />
|
|
19
|
+
<Demo groupId="2" placement="top-start" Icon={Circle} />
|
|
20
|
+
</XStack>
|
|
21
|
+
<XStack gap="$2">
|
|
22
|
+
<Demo groupId="3" placement="left" Icon={ChevronLeft} />
|
|
23
|
+
<YStack flex={1} />
|
|
24
|
+
<Demo groupId="4" placement="right" Icon={ChevronRight} />
|
|
25
|
+
</XStack>
|
|
26
|
+
<XStack gap="$2">
|
|
27
|
+
<Demo groupId="5" placement="bottom-end" Icon={Circle} />
|
|
28
|
+
<Demo groupId="6" placement="bottom" Icon={ChevronDown} />
|
|
29
|
+
<Demo groupId="7" placement="bottom-start" Icon={Circle} />
|
|
30
|
+
</XStack>
|
|
31
|
+
</YStack>
|
|
32
|
+
</TooltipGroup>
|
|
33
|
+
</Theme>
|
|
34
|
+
)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function Demo({ Icon, ...props }: TooltipProps & { Icon?: any }) {
|
|
38
|
+
return (
|
|
39
|
+
<Tooltip {...props}>
|
|
40
|
+
<Tooltip.Trigger asChild>
|
|
41
|
+
<Button icon={Icon} circular />
|
|
42
|
+
</Tooltip.Trigger>
|
|
43
|
+
<Tooltip.Content
|
|
44
|
+
enterStyle={{ x: 0, y: -5, opacity: 0, scale: 0.9 }}
|
|
45
|
+
exitStyle={{ x: 0, y: -5, opacity: 0, scale: 0.9 }}
|
|
46
|
+
scale={1}
|
|
47
|
+
x={0}
|
|
48
|
+
y={0}
|
|
49
|
+
opacity={1}
|
|
50
|
+
py="$2"
|
|
51
|
+
px="$3"
|
|
52
|
+
transition={[
|
|
53
|
+
'quick',
|
|
54
|
+
{
|
|
55
|
+
opacity: {
|
|
56
|
+
overshootClamping: true,
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
]}
|
|
60
|
+
>
|
|
61
|
+
<Tooltip.Arrow />
|
|
62
|
+
<Paragraph size="$2" lineHeight="$1">
|
|
63
|
+
Hello world
|
|
64
|
+
</Paragraph>
|
|
65
|
+
</Tooltip.Content>
|
|
66
|
+
</Tooltip>
|
|
67
|
+
)
|
|
68
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { config } from '@hanzogui/config/v3'
|
|
3
|
+
import { addTheme, updateTheme } from '@hanzogui/theme'
|
|
4
|
+
|
|
5
|
+
import {
|
|
6
|
+
Button,
|
|
7
|
+
Square,
|
|
8
|
+
Theme,
|
|
9
|
+
XStack,
|
|
10
|
+
YStack,
|
|
11
|
+
getVariableValue,
|
|
12
|
+
useIsomorphicLayoutEffect,
|
|
13
|
+
} from '@hanzo/gui'
|
|
14
|
+
|
|
15
|
+
const colors = config.tokens.color
|
|
16
|
+
const colorKeys = Object.keys(colors)
|
|
17
|
+
|
|
18
|
+
export function UpdateThemeDemo() {
|
|
19
|
+
const [theme, setTheme] = React.useState<any>()
|
|
20
|
+
|
|
21
|
+
useIsomorphicLayoutEffect(() => {
|
|
22
|
+
addTheme({
|
|
23
|
+
name: 'custom',
|
|
24
|
+
insertCSS: true,
|
|
25
|
+
theme: {
|
|
26
|
+
color: 'red',
|
|
27
|
+
},
|
|
28
|
+
})
|
|
29
|
+
setTheme('custom')
|
|
30
|
+
}, [])
|
|
31
|
+
|
|
32
|
+
return (
|
|
33
|
+
<YStack items="center" gap="$4">
|
|
34
|
+
<XStack gap={'$5'}>
|
|
35
|
+
<Theme name={theme ?? null}>
|
|
36
|
+
<Square rounded="$8" size={100} bg="$color" />
|
|
37
|
+
</Theme>
|
|
38
|
+
</XStack>
|
|
39
|
+
|
|
40
|
+
<Button
|
|
41
|
+
onPress={() => {
|
|
42
|
+
const randomColor = getVariableValue(
|
|
43
|
+
colors[colorKeys[Math.floor(Math.random() * colorKeys.length)]]
|
|
44
|
+
)
|
|
45
|
+
updateTheme({
|
|
46
|
+
name: 'custom',
|
|
47
|
+
theme: {
|
|
48
|
+
color: randomColor,
|
|
49
|
+
},
|
|
50
|
+
})
|
|
51
|
+
}}
|
|
52
|
+
>
|
|
53
|
+
Set to random color
|
|
54
|
+
</Button>
|
|
55
|
+
</YStack>
|
|
56
|
+
)
|
|
57
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { config } from '@hanzogui/dev-config'
|
|
2
|
+
import { createGui } from '@hanzo/gui'
|
|
3
|
+
|
|
4
|
+
const tamaConf = createGui(config)
|
|
5
|
+
|
|
6
|
+
export type Conf = typeof tamaConf
|
|
7
|
+
|
|
8
|
+
declare module '@hanzo/gui' {
|
|
9
|
+
interface GuiCustomConfig extends Conf {}
|
|
10
|
+
|
|
11
|
+
interface TypeOverride {
|
|
12
|
+
groupNames(): 'card' | 'takeoutBody' | 'content' | 'item'
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export default tamaConf
|
package/src/index.tsx
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// Include gui config types for proper type checking
|
|
2
|
+
import type {} from './gui.config'
|
|
3
|
+
|
|
4
|
+
export * from './AccordionDemo'
|
|
5
|
+
export * from './AddThemeDemo'
|
|
6
|
+
export * from './AlertDialogDemo'
|
|
7
|
+
export * from './AnimationsDelayDemo'
|
|
8
|
+
export * from './AnimationsDemo'
|
|
9
|
+
export * from './AnimationsEnterDemo'
|
|
10
|
+
export * from './AnimationsHoverDemo'
|
|
11
|
+
export * from './AnimationsPresenceDemo'
|
|
12
|
+
export * from './AnimationsTimingDemo'
|
|
13
|
+
export * from './AvatarDemo'
|
|
14
|
+
export * from './BoxShadowTokenDemo'
|
|
15
|
+
export * from './BuildAButtonDemo'
|
|
16
|
+
export * from './ButtonDemo'
|
|
17
|
+
export * from './ThemeBuilderDemo'
|
|
18
|
+
export * from './CardDemo'
|
|
19
|
+
export * from './CheckboxDemo'
|
|
20
|
+
export * from './CheckboxHeadlessDemo'
|
|
21
|
+
export * from './CheckboxUnstyledDemo'
|
|
22
|
+
export * from './ColorsDemo'
|
|
23
|
+
export * from './ContextMenuDemo'
|
|
24
|
+
export * from './MenuDemo'
|
|
25
|
+
export * from './DialogDemo'
|
|
26
|
+
export * from './FormsDemo'
|
|
27
|
+
export * from './GroupDemo'
|
|
28
|
+
export * from './HeadingsDemo'
|
|
29
|
+
export * from './ImageDemo'
|
|
30
|
+
export * from './WebNativeImageDemo'
|
|
31
|
+
export * from './InputsDemo'
|
|
32
|
+
export * from './NewInputsDemo'
|
|
33
|
+
export * from './LabelDemo'
|
|
34
|
+
export * from './LinearGradientDemo'
|
|
35
|
+
export * from './ListItemDemo'
|
|
36
|
+
export * from './LucideIconsDemo'
|
|
37
|
+
export * from './PopoverDemo'
|
|
38
|
+
export * from './ProgressDemo'
|
|
39
|
+
export * from './RadioGroupDemo'
|
|
40
|
+
export * from './RadioGroupHeadlessDemo'
|
|
41
|
+
export * from './RadioGroupUnstyledDemo'
|
|
42
|
+
export * from './ReplaceThemeDemo'
|
|
43
|
+
export * from './ScrollViewDemo'
|
|
44
|
+
export * from './SelectDemo'
|
|
45
|
+
export * from './SeparatorDemo'
|
|
46
|
+
export * from './ShapesDemo'
|
|
47
|
+
export * from './SheetDemo'
|
|
48
|
+
export * from './SliderDemo'
|
|
49
|
+
export * from './SpinnerDemo'
|
|
50
|
+
export * from './StacksDemo'
|
|
51
|
+
export * from './SwitchDemo'
|
|
52
|
+
export * from './SwitchHeadlessDemo'
|
|
53
|
+
export * from './SwitchUnstyledDemo'
|
|
54
|
+
export * from './TabsAdvancedDemo'
|
|
55
|
+
export * from './TabsDemo'
|
|
56
|
+
export * from './TextDemo'
|
|
57
|
+
export * from './ThemeInverseDemo'
|
|
58
|
+
export * from './ToastDemo'
|
|
59
|
+
export * from './ToastDuplicateDemo'
|
|
60
|
+
export * from './ToggleGroupDemo'
|
|
61
|
+
export * from './TokensDemo'
|
|
62
|
+
export * from './TooltipDemo'
|
|
63
|
+
export * from './UpdateThemeDemo'
|
|
64
|
+
export * from './useOnIntersecting'
|
|
65
|
+
export * from './TabsHeadlessDemo'
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import type { RefObject } from 'react'
|
|
2
|
+
import { useEffect, useState } from 'react'
|
|
3
|
+
import { isWeb, useEvent } from '@hanzo/gui'
|
|
4
|
+
|
|
5
|
+
type DisposeFn = () => void
|
|
6
|
+
|
|
7
|
+
type IntersectCallback = (
|
|
8
|
+
props: (IntersectionObserverEntry | null)[],
|
|
9
|
+
didResize?: boolean
|
|
10
|
+
) => DisposeFn | void | null
|
|
11
|
+
|
|
12
|
+
type HTMLRef = RefObject<HTMLElement | null>
|
|
13
|
+
|
|
14
|
+
export function useIsIntersecting<Ref extends HTMLRef | HTMLRef[]>(
|
|
15
|
+
refs: Ref,
|
|
16
|
+
{ once, ...opts }: IntersectionObserverInit & { once?: boolean } = {}
|
|
17
|
+
): Ref extends any[] ? boolean[] : boolean {
|
|
18
|
+
const [values, setValues] = useState<boolean[]>([])
|
|
19
|
+
|
|
20
|
+
useOnIntersecting(
|
|
21
|
+
refs,
|
|
22
|
+
(entries) => {
|
|
23
|
+
if (!isWeb) return
|
|
24
|
+
const intersecting = entries.some((x) => x?.isIntersecting)
|
|
25
|
+
if (once && !intersecting) return
|
|
26
|
+
setValues((prev) => {
|
|
27
|
+
const next = entries.map((e) => e?.isIntersecting ?? false)
|
|
28
|
+
if (prev.length === next.length && prev.every((e, i) => e === next[i])) {
|
|
29
|
+
return prev
|
|
30
|
+
}
|
|
31
|
+
return next
|
|
32
|
+
})
|
|
33
|
+
},
|
|
34
|
+
opts
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
return (Array.isArray(refs) ? values : values[0]) as any
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export function useOnIntersecting<Ref extends HTMLRef | HTMLRef[]>(
|
|
41
|
+
refsIn: Ref,
|
|
42
|
+
incomingCbRaw: IntersectCallback,
|
|
43
|
+
{ threshold = 0, root, rootMargin }: IntersectionObserverInit = {},
|
|
44
|
+
mountArgs: any[] = []
|
|
45
|
+
) {
|
|
46
|
+
const onIntersectEvent = useEvent(incomingCbRaw)
|
|
47
|
+
|
|
48
|
+
useEffect(() => {
|
|
49
|
+
if (!isWeb) return
|
|
50
|
+
const refs = (Array.isArray(refsIn) ? refsIn : [refsIn]) as HTMLRef[]
|
|
51
|
+
if (!refs.length) return
|
|
52
|
+
|
|
53
|
+
let dispose: DisposeFn | null = null
|
|
54
|
+
let currentEntries: (IntersectionObserverEntry | null)[] = []
|
|
55
|
+
const options = {
|
|
56
|
+
threshold,
|
|
57
|
+
root,
|
|
58
|
+
rootMargin,
|
|
59
|
+
}
|
|
60
|
+
const io = new IntersectionObserver((entries) => {
|
|
61
|
+
currentEntries = refs.map((ref, index) => {
|
|
62
|
+
return (
|
|
63
|
+
entries.find((x) => x.target === ref.current) ?? currentEntries[index] ?? null
|
|
64
|
+
)
|
|
65
|
+
})
|
|
66
|
+
dispose?.()
|
|
67
|
+
dispose = onIntersectEvent(currentEntries) || null
|
|
68
|
+
}, options)
|
|
69
|
+
|
|
70
|
+
for (const ref of refs) {
|
|
71
|
+
if (ref.current) {
|
|
72
|
+
io.observe(ref.current)
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return () => {
|
|
77
|
+
dispose?.()
|
|
78
|
+
io.disconnect()
|
|
79
|
+
}
|
|
80
|
+
}, [
|
|
81
|
+
onIntersectEvent,
|
|
82
|
+
refsIn,
|
|
83
|
+
root,
|
|
84
|
+
rootMargin,
|
|
85
|
+
threshold,
|
|
86
|
+
|
|
87
|
+
...mountArgs,
|
|
88
|
+
])
|
|
89
|
+
}
|