getlotui 0.1.0 โ 0.1.2
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/ENHANCED_INPUTS.md +141 -0
- package/README.md +133 -52
- package/apps/expo-playground/App.tsx +428 -0
- package/apps/expo-playground/app.json +30 -0
- package/apps/expo-playground/assets/adaptive-icon.png +0 -0
- package/apps/expo-playground/assets/favicon.png +0 -0
- package/apps/expo-playground/assets/icon.png +0 -0
- package/apps/expo-playground/assets/splash.png +0 -0
- package/apps/expo-playground/babel.config.js +6 -0
- package/apps/expo-playground/index.js +8 -0
- package/apps/expo-playground/metro.config.js +20 -0
- package/apps/expo-playground/package.json +29 -0
- package/apps/expo-playground/tsconfig.json +6 -0
- package/apps/flutter-playground/README.md +31 -0
- package/apps/flutter-playground/analysis_options.yaml +8 -0
- package/apps/flutter-playground/lib/main.dart +282 -0
- package/apps/flutter-playground/pubspec.lock +404 -0
- package/apps/flutter-playground/pubspec.yaml +23 -0
- package/apps/getlotui-documentation-website/app/about/page.tsx +673 -0
- package/apps/getlotui-documentation-website/app/docs/cli/page.tsx +358 -0
- package/apps/getlotui-documentation-website/app/docs/components/accordion/page.tsx +392 -0
- package/apps/getlotui-documentation-website/app/docs/components/alert/page.tsx +282 -0
- package/apps/getlotui-documentation-website/app/docs/components/alert-dialog/page.tsx +437 -0
- package/apps/getlotui-documentation-website/app/docs/components/avatar/page.tsx +301 -0
- package/apps/getlotui-documentation-website/app/docs/components/badge/page.tsx +242 -0
- package/apps/getlotui-documentation-website/app/docs/components/button/page.tsx +390 -0
- package/apps/getlotui-documentation-website/app/docs/components/card/page.tsx +264 -0
- package/apps/getlotui-documentation-website/app/docs/components/dialog/page.tsx +270 -0
- package/apps/getlotui-documentation-website/app/docs/components/dropdown/page.tsx +268 -0
- package/apps/getlotui-documentation-website/app/docs/components/input/page.tsx +438 -0
- package/apps/getlotui-documentation-website/app/docs/components/page.tsx +190 -0
- package/apps/getlotui-documentation-website/app/docs/components/text/page.tsx +237 -0
- package/apps/getlotui-documentation-website/app/docs/components/toast/page.tsx +372 -0
- package/apps/getlotui-documentation-website/app/docs/installation/page.tsx +220 -0
- package/apps/getlotui-documentation-website/app/docs/layout.tsx +53 -0
- package/apps/getlotui-documentation-website/app/docs/page.tsx +558 -0
- package/apps/getlotui-documentation-website/app/docs/quick-start/page.tsx +230 -0
- package/apps/getlotui-documentation-website/app/docs/theming/animations/page.tsx +324 -0
- package/apps/getlotui-documentation-website/app/docs/theming/colors/page.tsx +841 -0
- package/apps/getlotui-documentation-website/app/docs/theming/dark-mode/page.tsx +172 -0
- package/apps/getlotui-documentation-website/app/docs/theming/generator/page.tsx +1050 -0
- package/apps/getlotui-documentation-website/app/docs/theming/page.tsx +368 -0
- package/apps/getlotui-documentation-website/app/docs/theming/radius/page.tsx +379 -0
- package/apps/getlotui-documentation-website/app/docs/theming/spacing/page.tsx +271 -0
- package/apps/getlotui-documentation-website/app/docs/theming/typography/page.tsx +405 -0
- package/apps/getlotui-documentation-website/app/globals.css +171 -0
- package/apps/getlotui-documentation-website/app/layout.tsx +53 -0
- package/apps/getlotui-documentation-website/app/page.tsx +825 -0
- package/apps/getlotui-documentation-website/components/MockFileExplorer.tsx +84 -0
- package/apps/getlotui-documentation-website/components/command-menu.tsx +221 -0
- package/apps/getlotui-documentation-website/components/component-preview.tsx +87 -0
- package/apps/getlotui-documentation-website/components/docs-sidebar.tsx +99 -0
- package/apps/getlotui-documentation-website/components/framework-selector.tsx +171 -0
- package/apps/getlotui-documentation-website/components/installation-command.tsx +91 -0
- package/apps/getlotui-documentation-website/components/logo.tsx +50 -0
- package/apps/getlotui-documentation-website/components/mobile-sidebar.tsx +83 -0
- package/apps/getlotui-documentation-website/components/package-manager-selector.tsx +45 -0
- package/apps/getlotui-documentation-website/components/site-header.tsx +149 -0
- package/apps/getlotui-documentation-website/components/table-of-contents.tsx +126 -0
- package/apps/getlotui-documentation-website/components/theme-provider.tsx +11 -0
- package/apps/getlotui-documentation-website/components/ui/accordion.tsx +66 -0
- package/apps/getlotui-documentation-website/components/ui/alert-dialog.tsx +157 -0
- package/apps/getlotui-documentation-website/components/ui/aspect-ratio.tsx +11 -0
- package/apps/getlotui-documentation-website/components/ui/avatar.tsx +53 -0
- package/apps/getlotui-documentation-website/components/ui/badge.tsx +46 -0
- package/apps/getlotui-documentation-website/components/ui/breadcrumb.tsx +109 -0
- package/apps/getlotui-documentation-website/components/ui/button-group.tsx +83 -0
- package/apps/getlotui-documentation-website/components/ui/button.tsx +61 -0
- package/apps/getlotui-documentation-website/components/ui/calendar.tsx +213 -0
- package/apps/getlotui-documentation-website/components/ui/carousel.tsx +241 -0
- package/apps/getlotui-documentation-website/components/ui/chart.tsx +353 -0
- package/apps/getlotui-documentation-website/components/ui/checkbox.tsx +32 -0
- package/apps/getlotui-documentation-website/components/ui/collapsible.tsx +33 -0
- package/apps/getlotui-documentation-website/components/ui/command.tsx +184 -0
- package/apps/getlotui-documentation-website/components/ui/context-menu.tsx +252 -0
- package/apps/getlotui-documentation-website/components/ui/dialog.tsx +143 -0
- package/apps/getlotui-documentation-website/components/ui/drawer.tsx +135 -0
- package/apps/getlotui-documentation-website/components/ui/dropdown-menu.tsx +257 -0
- package/apps/getlotui-documentation-website/components/ui/empty.tsx +104 -0
- package/apps/getlotui-documentation-website/components/ui/field.tsx +244 -0
- package/apps/getlotui-documentation-website/components/ui/form.tsx +167 -0
- package/apps/getlotui-documentation-website/components/ui/hover-card.tsx +44 -0
- package/apps/getlotui-documentation-website/components/ui/input-group.tsx +169 -0
- package/apps/getlotui-documentation-website/components/ui/input-otp.tsx +77 -0
- package/apps/getlotui-documentation-website/components/ui/item.tsx +193 -0
- package/apps/getlotui-documentation-website/components/ui/kbd.tsx +28 -0
- package/apps/getlotui-documentation-website/components/ui/label.tsx +24 -0
- package/apps/getlotui-documentation-website/components/ui/menubar.tsx +276 -0
- package/apps/getlotui-documentation-website/components/ui/navigation-menu.tsx +166 -0
- package/apps/getlotui-documentation-website/components/ui/pagination.tsx +127 -0
- package/apps/getlotui-documentation-website/components/ui/popover.tsx +48 -0
- package/apps/getlotui-documentation-website/components/ui/progress.tsx +31 -0
- package/apps/getlotui-documentation-website/components/ui/radio-group.tsx +45 -0
- package/apps/getlotui-documentation-website/components/ui/resizable.tsx +56 -0
- package/apps/getlotui-documentation-website/components/ui/scroll-area.tsx +58 -0
- package/apps/getlotui-documentation-website/components/ui/select.tsx +185 -0
- package/apps/getlotui-documentation-website/components/ui/separator.tsx +28 -0
- package/apps/getlotui-documentation-website/components/ui/sheet.tsx +139 -0
- package/apps/getlotui-documentation-website/components/ui/sidebar.tsx +726 -0
- package/apps/getlotui-documentation-website/components/ui/skeleton.tsx +13 -0
- package/apps/getlotui-documentation-website/components/ui/slider.tsx +63 -0
- package/apps/getlotui-documentation-website/components/ui/sonner.tsx +25 -0
- package/apps/getlotui-documentation-website/components/ui/spinner.tsx +16 -0
- package/apps/getlotui-documentation-website/components/ui/switch.tsx +31 -0
- package/apps/getlotui-documentation-website/components/ui/table.tsx +116 -0
- package/apps/getlotui-documentation-website/components/ui/textarea.tsx +18 -0
- package/apps/getlotui-documentation-website/components/ui/toast.tsx +129 -0
- package/apps/getlotui-documentation-website/components/ui/toaster.tsx +35 -0
- package/apps/getlotui-documentation-website/components/ui/toggle-group.tsx +73 -0
- package/apps/getlotui-documentation-website/components/ui/toggle.tsx +47 -0
- package/apps/getlotui-documentation-website/components/ui/tooltip.tsx +61 -0
- package/apps/getlotui-documentation-website/components/ui/use-mobile.tsx +19 -0
- package/apps/getlotui-documentation-website/components/ui/use-toast.ts +191 -0
- package/apps/getlotui-documentation-website/components.json +21 -0
- package/apps/getlotui-documentation-website/config/docs.ts +41 -0
- package/apps/getlotui-documentation-website/context/framework-context.tsx +67 -0
- package/apps/getlotui-documentation-website/hooks/use-mobile.ts +19 -0
- package/apps/getlotui-documentation-website/hooks/use-toast.ts +191 -0
- package/apps/getlotui-documentation-website/lib/utils.ts +6 -0
- package/apps/getlotui-documentation-website/next.config.mjs +11 -0
- package/apps/getlotui-documentation-website/package-lock.json +4046 -0
- package/apps/getlotui-documentation-website/package.json +75 -0
- package/apps/getlotui-documentation-website/postcss.config.mjs +8 -0
- package/apps/getlotui-documentation-website/public/apple-icon.png +0 -0
- package/apps/getlotui-documentation-website/public/chirag-singh.png +0 -0
- package/apps/getlotui-documentation-website/public/chirag.png +0 -0
- package/apps/getlotui-documentation-website/public/expo.svg +7 -0
- package/apps/getlotui-documentation-website/public/flutter.svg +16 -0
- package/apps/getlotui-documentation-website/public/icon-dark-32x32.png +0 -0
- package/apps/getlotui-documentation-website/public/icon-light-32x32.png +0 -0
- package/apps/getlotui-documentation-website/public/icon.svg +26 -0
- package/apps/getlotui-documentation-website/public/nextjs-icon.svg +25 -0
- package/apps/getlotui-documentation-website/public/placeholder-logo.png +0 -0
- package/apps/getlotui-documentation-website/public/placeholder-logo.svg +1 -0
- package/apps/getlotui-documentation-website/public/placeholder-user.jpg +0 -0
- package/apps/getlotui-documentation-website/public/placeholder.jpg +0 -0
- package/apps/getlotui-documentation-website/public/placeholder.svg +1 -0
- package/apps/getlotui-documentation-website/public/swift.svg +14 -0
- package/apps/getlotui-documentation-website/styles/globals.css +136 -0
- package/apps/getlotui-documentation-website/tsconfig.json +41 -0
- package/getlotui.config.json +1 -1
- package/package.json +18 -31
- package/packages/cli/README.md +101 -0
- package/packages/cli/dist/templates/templates/expo/Button.tsx +50 -0
- package/packages/cli/getlotui.config.json +4 -0
- package/packages/cli/package-lock.json +300 -0
- package/packages/cli/package.json +31 -0
- package/packages/cli/src/templates/expo/Input.tsx +67 -0
- package/packages/cli/src/templates/web/Alert.tsx +71 -0
- package/packages/cli/src/templates/web/Card.tsx +92 -0
- package/packages/cli/src/templates/web/Input.tsx +21 -0
- package/packages/cli/src/templates/web/Tabs.tsx +66 -0
- package/packages/core/animations/press.json +4 -0
- package/packages/core/components/accordion.json +22 -0
- package/packages/core/components/alert-dialog.json +31 -0
- package/packages/core/components/alert.json +40 -0
- package/packages/core/components/avatar.json +21 -0
- package/packages/core/components/badge.json +19 -0
- package/packages/core/components/button.json +37 -0
- package/packages/core/components/card.json +32 -0
- package/packages/core/components/checkbox.json +13 -0
- package/packages/core/components/dialog.json +21 -0
- package/packages/core/components/dropdown.json +21 -0
- package/packages/core/components/input.json +64 -0
- package/packages/core/components/otp-input.json +54 -0
- package/packages/core/components/radio.json +13 -0
- package/packages/core/components/switch.json +12 -0
- package/packages/core/components/text.json +19 -0
- package/packages/core/components/toast.json +20 -0
- package/packages/core/index.ts +47 -0
- package/packages/core/package.json +13 -0
- package/packages/core/tokens/colors.json +49 -0
- package/packages/core/tokens/radius.json +7 -0
- package/packages/core/tokens/spacing.json +11 -0
- package/packages/core/tokens/typography.json +36 -0
- package/packages/expo/package.json +23 -0
- package/packages/expo/src/components/Accordion.tsx +188 -0
- package/packages/expo/src/components/Alert/Alert.tsx +116 -0
- package/packages/expo/src/components/Alert/index.tsx +1 -0
- package/packages/expo/src/components/AlertDialog.tsx +274 -0
- package/packages/expo/src/components/Avatar.tsx +78 -0
- package/packages/expo/src/components/Badge.tsx +62 -0
- package/packages/expo/src/components/Button.tsx +122 -0
- package/packages/expo/src/components/Card/Card.tsx +173 -0
- package/packages/expo/src/components/Card/index.tsx +1 -0
- package/packages/expo/src/components/Checkbox.tsx +83 -0
- package/packages/expo/src/components/Dialog/Dialog.tsx +183 -0
- package/packages/expo/src/components/Dialog/index.tsx +1 -0
- package/packages/expo/src/components/Dropdown/Dropdown.tsx +196 -0
- package/packages/expo/src/components/Dropdown/index.tsx +1 -0
- package/packages/expo/src/components/Input.tsx +278 -0
- package/packages/expo/src/components/OTPInput.tsx +218 -0
- package/packages/expo/src/components/Radio.tsx +61 -0
- package/packages/expo/src/components/Switch.tsx +91 -0
- package/packages/expo/src/components/Text/Text.tsx +66 -0
- package/packages/expo/src/components/Text/index.tsx +1 -0
- package/packages/expo/src/components/Toast/Toast.tsx +124 -0
- package/packages/expo/src/components/Toast/ToastProvider.tsx +70 -0
- package/packages/expo/src/components/Toast/index.tsx +3 -0
- package/packages/expo/src/components/Toast/useToast.ts +10 -0
- package/packages/expo/src/index.ts +19 -0
- package/packages/expo/src/theme/ThemeProvider.tsx +16 -0
- package/packages/expo/src/utils.ts +10 -0
- package/packages/expo/tsconfig.json +12 -0
- package/packages/flutter/.dart_tool/extension_discovery/vs_code.json +1 -0
- package/packages/flutter/.dart_tool/package_config.json +316 -0
- package/packages/flutter/.dart_tool/package_graph.json +425 -0
- package/packages/flutter/.dart_tool/version +1 -0
- package/packages/flutter/.flutter-plugins-dependencies +1 -0
- package/packages/flutter/lib/getlotui_flutter.dart +16 -0
- package/packages/flutter/lib/src/components/accordion.dart +155 -0
- package/packages/flutter/lib/src/components/alert.dart +95 -0
- package/packages/flutter/lib/src/components/alert_dialog.dart +197 -0
- package/packages/flutter/lib/src/components/avatar.dart +85 -0
- package/packages/flutter/lib/src/components/badge.dart +92 -0
- package/packages/flutter/lib/src/components/button.dart +118 -0
- package/packages/flutter/lib/src/components/card.dart +84 -0
- package/packages/flutter/lib/src/components/dropdown.dart +72 -0
- package/packages/flutter/lib/src/components/input.dart +80 -0
- package/packages/flutter/lib/src/components/text.dart +100 -0
- package/packages/flutter/lib/src/components/toast.dart +203 -0
- package/packages/flutter/lib/src/theme/crossui_theme.dart +128 -0
- package/packages/flutter/lib/src/theme/tokens.dart +70 -0
- package/packages/flutter/lib/src/utils.dart +20 -0
- package/packages/flutter/pubspec.lock +397 -0
- package/packages/flutter/pubspec.yaml +22 -0
- package/packages/web/package.json +22 -0
- package/packages/web/src/index.ts +1 -0
- package/packages/web/src/utils.ts +6 -0
- package/pnpm-workspace.yaml +3 -0
- /package/{dist/templates/web/Alert.tsx โ apps/getlotui-documentation-website/components/ui/alert.tsx} +0 -0
- /package/{dist/templates/web/Card.tsx โ apps/getlotui-documentation-website/components/ui/card.tsx} +0 -0
- /package/{dist/templates/web/Input.tsx โ apps/getlotui-documentation-website/components/ui/input.tsx} +0 -0
- /package/{dist/templates/web/Tabs.tsx โ apps/getlotui-documentation-website/components/ui/tabs.tsx} +0 -0
- /package/{dist/templates/templates/expo โ components/ui}/Button.tsx +0 -0
- /package/{dist/templates/expo โ components/ui}/Input.tsx +0 -0
- /package/{dist โ packages/cli/dist}/bin.d.ts +0 -0
- /package/{dist โ packages/cli/dist}/bin.js +0 -0
- /package/{dist โ packages/cli/dist}/commands/add.d.ts +0 -0
- /package/{dist โ packages/cli/dist}/commands/add.js +0 -0
- /package/{dist โ packages/cli/dist}/commands/init.d.ts +0 -0
- /package/{dist โ packages/cli/dist}/commands/init.js +0 -0
- /package/{dist โ packages/cli/dist}/index.d.ts +0 -0
- /package/{dist โ packages/cli/dist}/index.js +0 -0
- /package/{dist โ packages/cli/dist}/templates/expo/Accordion.d.ts +0 -0
- /package/{dist โ packages/cli/dist}/templates/expo/Accordion.js +0 -0
- /package/{dist โ packages/cli/dist}/templates/expo/Accordion.tsx +0 -0
- /package/{dist โ packages/cli/dist}/templates/expo/AlertDialog.d.ts +0 -0
- /package/{dist โ packages/cli/dist}/templates/expo/AlertDialog.js +0 -0
- /package/{dist โ packages/cli/dist}/templates/expo/AlertDialog.tsx +0 -0
- /package/{dist โ packages/cli/dist}/templates/expo/Avatar.d.ts +0 -0
- /package/{dist โ packages/cli/dist}/templates/expo/Avatar.js +0 -0
- /package/{dist โ packages/cli/dist}/templates/expo/Avatar.tsx +0 -0
- /package/{dist โ packages/cli/dist}/templates/expo/Badge.d.ts +0 -0
- /package/{dist โ packages/cli/dist}/templates/expo/Badge.js +0 -0
- /package/{dist โ packages/cli/dist}/templates/expo/Badge.tsx +0 -0
- /package/{dist โ packages/cli/dist}/templates/expo/Button.d.ts +0 -0
- /package/{dist โ packages/cli/dist}/templates/expo/Button.js +0 -0
- /package/{dist โ packages/cli/dist}/templates/expo/Button.tsx +0 -0
- /package/{dist โ packages/cli/dist}/templates/expo/Dropdown.d.ts +0 -0
- /package/{dist โ packages/cli/dist}/templates/expo/Dropdown.js +0 -0
- /package/{dist โ packages/cli/dist}/templates/expo/Dropdown.tsx +0 -0
- /package/{dist โ packages/cli/dist}/templates/expo/Input.d.ts +0 -0
- /package/{dist โ packages/cli/dist}/templates/expo/Input.js +0 -0
- /package/{dist/templates โ packages/cli/dist}/templates/expo/Input.tsx +0 -0
- /package/{dist โ packages/cli/dist}/templates/expo/Toast.d.ts +0 -0
- /package/{dist โ packages/cli/dist}/templates/expo/Toast.js +0 -0
- /package/{dist โ packages/cli/dist}/templates/expo/Toast.tsx +0 -0
- /package/{dist โ packages/cli/dist}/templates/expo/utils.d.ts +0 -0
- /package/{dist โ packages/cli/dist}/templates/expo/utils.js +0 -0
- /package/{dist โ packages/cli/dist}/templates/expo/utils.ts +0 -0
- /package/{dist โ packages/cli/dist}/templates/flutter/Accordion.dart +0 -0
- /package/{dist โ packages/cli/dist}/templates/flutter/Alert.dart +0 -0
- /package/{dist โ packages/cli/dist}/templates/flutter/AlertDialog.dart +0 -0
- /package/{dist โ packages/cli/dist}/templates/flutter/Avatar.dart +0 -0
- /package/{dist โ packages/cli/dist}/templates/flutter/Badge.dart +0 -0
- /package/{dist โ packages/cli/dist}/templates/flutter/Button.dart +0 -0
- /package/{dist โ packages/cli/dist}/templates/flutter/Card.dart +0 -0
- /package/{dist โ packages/cli/dist}/templates/flutter/Input.dart +0 -0
- /package/{dist โ packages/cli/dist}/templates/flutter/Text.dart +0 -0
- /package/{dist โ packages/cli/dist}/templates/flutter/utils.dart +0 -0
- /package/{src โ packages/cli/dist/templates}/templates/expo/Input.tsx +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/Accordion.d.ts +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/Accordion.js +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/Accordion.tsx +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/Alert.d.ts +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/Alert.js +0 -0
- /package/{src โ packages/cli/dist}/templates/web/Alert.tsx +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/AlertDialog.d.ts +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/AlertDialog.js +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/AlertDialog.tsx +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/Avatar.d.ts +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/Avatar.js +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/Avatar.tsx +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/Badge.d.ts +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/Badge.js +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/Badge.tsx +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/Button.d.ts +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/Button.js +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/Button.tsx +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/Card.d.ts +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/Card.js +0 -0
- /package/{src โ packages/cli/dist}/templates/web/Card.tsx +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/Dropdown.d.ts +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/Dropdown.js +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/Dropdown.tsx +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/Input.d.ts +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/Input.js +0 -0
- /package/{src โ packages/cli/dist}/templates/web/Input.tsx +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/Tabs.d.ts +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/Tabs.js +0 -0
- /package/{src โ packages/cli/dist}/templates/web/Tabs.tsx +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/Toast.d.ts +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/Toast.js +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/Toast.tsx +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/utils.d.ts +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/utils.js +0 -0
- /package/{dist โ packages/cli/dist}/templates/web/utils.ts +0 -0
- /package/{dist โ packages/cli/dist}/utils/detect.d.ts +0 -0
- /package/{dist โ packages/cli/dist}/utils/detect.js +0 -0
- /package/{dist โ packages/cli/dist}/utils/fs.d.ts +0 -0
- /package/{dist โ packages/cli/dist}/utils/fs.js +0 -0
- /package/{src โ packages/cli/src}/bin.ts +0 -0
- /package/{src โ packages/cli/src}/commands/add.ts +0 -0
- /package/{src โ packages/cli/src}/commands/init.ts +0 -0
- /package/{src โ packages/cli/src}/index.ts +0 -0
- /package/{src โ packages/cli/src}/templates/expo/Accordion.tsx +0 -0
- /package/{src โ packages/cli/src}/templates/expo/AlertDialog.tsx +0 -0
- /package/{src โ packages/cli/src}/templates/expo/Avatar.tsx +0 -0
- /package/{src โ packages/cli/src}/templates/expo/Badge.tsx +0 -0
- /package/{src โ packages/cli/src}/templates/expo/Button.tsx +0 -0
- /package/{src โ packages/cli/src}/templates/expo/Dropdown.tsx +0 -0
- /package/{src โ packages/cli/src}/templates/expo/Toast.tsx +0 -0
- /package/{src โ packages/cli/src}/templates/expo/utils.ts +0 -0
- /package/{src โ packages/cli/src}/templates/flutter/Accordion.dart +0 -0
- /package/{src โ packages/cli/src}/templates/flutter/Alert.dart +0 -0
- /package/{src โ packages/cli/src}/templates/flutter/AlertDialog.dart +0 -0
- /package/{src โ packages/cli/src}/templates/flutter/Avatar.dart +0 -0
- /package/{src โ packages/cli/src}/templates/flutter/Badge.dart +0 -0
- /package/{src โ packages/cli/src}/templates/flutter/Button.dart +0 -0
- /package/{src โ packages/cli/src}/templates/flutter/Card.dart +0 -0
- /package/{src โ packages/cli/src}/templates/flutter/Input.dart +0 -0
- /package/{src โ packages/cli/src}/templates/flutter/Text.dart +0 -0
- /package/{src โ packages/cli/src}/templates/flutter/utils.dart +0 -0
- /package/{src โ packages/cli/src}/templates/web/Accordion.tsx +0 -0
- /package/{src โ packages/cli/src}/templates/web/AlertDialog.tsx +0 -0
- /package/{src โ packages/cli/src}/templates/web/Avatar.tsx +0 -0
- /package/{src โ packages/cli/src}/templates/web/Badge.tsx +0 -0
- /package/{src โ packages/cli/src}/templates/web/Button.tsx +0 -0
- /package/{src โ packages/cli/src}/templates/web/Dropdown.tsx +0 -0
- /package/{src โ packages/cli/src}/templates/web/Toast.tsx +0 -0
- /package/{src โ packages/cli/src}/templates/web/utils.ts +0 -0
- /package/{src โ packages/cli/src}/utils/detect.ts +0 -0
- /package/{src โ packages/cli/src}/utils/fs.ts +0 -0
- /package/{tsconfig.json โ packages/cli/tsconfig.json} +0 -0
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# Enhanced Input Components
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
We've significantly enhanced the CrossUI input system with modern, production-ready components featuring animations, icons, and multiple input types.
|
|
5
|
+
|
|
6
|
+
## New Components
|
|
7
|
+
|
|
8
|
+
### 1. **OTPInput Component** ๐
|
|
9
|
+
A premium one-time password input component with:
|
|
10
|
+
- **Auto-focus**: Automatically focuses the first input
|
|
11
|
+
- **Smooth animations**: Scale animations on input
|
|
12
|
+
- **Auto-advance**: Moves to next field automatically
|
|
13
|
+
- **Backspace handling**: Smart navigation on delete
|
|
14
|
+
- **Secure mode**: Optional password masking
|
|
15
|
+
- **Customizable length**: Support for 4, 6, or any digit length
|
|
16
|
+
- **Multiple variants**: default, filled, error, success
|
|
17
|
+
- **Multiple sizes**: sm, md, lg
|
|
18
|
+
- **Completion callback**: Triggers when all digits are entered
|
|
19
|
+
|
|
20
|
+
**Usage:**
|
|
21
|
+
```tsx
|
|
22
|
+
<OTPInput
|
|
23
|
+
length={6}
|
|
24
|
+
value={otp}
|
|
25
|
+
onChange={setOtp}
|
|
26
|
+
onComplete={(code) => Alert.alert("Complete!", code)}
|
|
27
|
+
size="md"
|
|
28
|
+
variant="default"
|
|
29
|
+
/>
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### 2. **Enhanced Input Component** โจ
|
|
33
|
+
Upgraded the existing Input with:
|
|
34
|
+
- **Left/Right Icons**: Support for Ionicons on both sides
|
|
35
|
+
- **Focus Animations**: Smooth border color transitions
|
|
36
|
+
- **Helper Text**: Additional guidance below input
|
|
37
|
+
- **Improved Shadows**: Dynamic shadows based on focus state
|
|
38
|
+
- **Icon Callbacks**: Clickable right icons (e.g., clear button)
|
|
39
|
+
- **Better Visual Hierarchy**: Enhanced border widths and colors
|
|
40
|
+
|
|
41
|
+
**New Props:**
|
|
42
|
+
- `leftIcon`: Icon name from Ionicons
|
|
43
|
+
- `rightIcon`: Icon name from Ionicons
|
|
44
|
+
- `onRightIconPress`: Callback for right icon press
|
|
45
|
+
- `helperText`: Helper text displayed below input
|
|
46
|
+
|
|
47
|
+
**Usage:**
|
|
48
|
+
```tsx
|
|
49
|
+
<Input
|
|
50
|
+
label="Email"
|
|
51
|
+
placeholder="john@example.com"
|
|
52
|
+
leftIcon="mail-outline"
|
|
53
|
+
rightIcon="close-circle"
|
|
54
|
+
onRightIconPress={() => setValue("")}
|
|
55
|
+
helperText="We'll never share your email"
|
|
56
|
+
/>
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Enhanced JSON Configurations
|
|
60
|
+
|
|
61
|
+
### Input Variants
|
|
62
|
+
Added new style variants to `input.json`:
|
|
63
|
+
- **filled**: Light background, no border
|
|
64
|
+
- **outlined**: Transparent background, visible border
|
|
65
|
+
- **underlined**: Transparent background, bottom border only
|
|
66
|
+
- **focused**: Enhanced border width (2px) for better visibility
|
|
67
|
+
- **error**: Improved border width (1.5px)
|
|
68
|
+
|
|
69
|
+
### OTP Input Configuration
|
|
70
|
+
New `otp-input.json` with:
|
|
71
|
+
- **Variants**: default, filled, error, success
|
|
72
|
+
- **Sizes**: sm (40x48), md (50x56), lg (60x64)
|
|
73
|
+
- **Defaults**: 6-digit length, 12px gap between boxes
|
|
74
|
+
|
|
75
|
+
## Visual Improvements
|
|
76
|
+
|
|
77
|
+
### Animations
|
|
78
|
+
1. **Focus Animation**: Border color smoothly transitions to primary color
|
|
79
|
+
2. **OTP Scale Animation**: Each box scales on input for tactile feedback
|
|
80
|
+
3. **Icon Color Transition**: Icons change color on focus
|
|
81
|
+
|
|
82
|
+
### Shadows
|
|
83
|
+
- **Default State**: Subtle shadow (opacity: 0.05, radius: 4)
|
|
84
|
+
- **Focused State**: Enhanced shadow (opacity: 0.15, radius: 8, primary color)
|
|
85
|
+
- **OTP Boxes**: Individual shadows with focus enhancement
|
|
86
|
+
|
|
87
|
+
### Typography & Spacing
|
|
88
|
+
- **Helper Text**: 13px, subtle color
|
|
89
|
+
- **Error Text**: 13px, danger color, with icon
|
|
90
|
+
- **Labels**: 14px, semibold, consistent spacing
|
|
91
|
+
- **Icon Sizing**: Responsive to input size (16-24px)
|
|
92
|
+
|
|
93
|
+
## Demo Features in App.tsx
|
|
94
|
+
|
|
95
|
+
The playground now showcases:
|
|
96
|
+
1. **OTP Input Section**:
|
|
97
|
+
- 6-digit verification code
|
|
98
|
+
- 4-digit secure PIN with masking
|
|
99
|
+
|
|
100
|
+
2. **Enhanced Inputs Section**:
|
|
101
|
+
- Email with mail icon
|
|
102
|
+
- Password with lock icon
|
|
103
|
+
- Search with clear button
|
|
104
|
+
- Phone with call icon
|
|
105
|
+
- Location with navigation icon
|
|
106
|
+
- Multiline bio with helper text
|
|
107
|
+
- Error state with alert icon
|
|
108
|
+
|
|
109
|
+
## File Structure
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
packages/
|
|
113
|
+
โโโ core/
|
|
114
|
+
โ โโโ components/
|
|
115
|
+
โ โโโ input.json (enhanced)
|
|
116
|
+
โ โโโ otp-input.json (new)
|
|
117
|
+
โโโ expo/
|
|
118
|
+
โโโ src/
|
|
119
|
+
โโโ components/
|
|
120
|
+
โโโ Input.tsx (enhanced)
|
|
121
|
+
โโโ OTPInput.tsx (new)
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Best Practices
|
|
125
|
+
|
|
126
|
+
1. **Use helper text** for additional context
|
|
127
|
+
2. **Add icons** for better visual hierarchy
|
|
128
|
+
3. **Implement clear buttons** for better UX
|
|
129
|
+
4. **Use OTP input** for verification codes
|
|
130
|
+
5. **Leverage animations** for premium feel
|
|
131
|
+
6. **Maintain consistent spacing** with design tokens
|
|
132
|
+
|
|
133
|
+
## Next Steps
|
|
134
|
+
|
|
135
|
+
Potential enhancements:
|
|
136
|
+
- Floating label inputs
|
|
137
|
+
- Input masks (phone, credit card)
|
|
138
|
+
- Autocomplete support
|
|
139
|
+
- Voice input integration
|
|
140
|
+
- Custom keyboard types
|
|
141
|
+
- Input groups/compound inputs
|
package/README.md
CHANGED
|
@@ -1,78 +1,159 @@
|
|
|
1
|
-
#
|
|
1
|
+
# ๐ธ GetLotUI
|
|
2
|
+
|
|
3
|
+
> **The Unified, Token-Driven Design System for Every Platform.**
|
|
4
|
+
|
|
5
|
+
GetLotUI is a high-performance, platform-agnostic design system built on a **"Token-First"** architecture. It allows developers to define design intent once and deploy it across **Web**, **Expo (React Native)**, and **Flutter** with pixel-perfect consistency.
|
|
6
|
+
|
|
7
|
+
[](https://opensource.org/licenses/MIT)
|
|
8
|
+
[]()
|
|
9
|
+
[](https://pnpm.io/)
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## ๐ค Why GetLotUI?
|
|
14
|
+
|
|
15
|
+
Maintaining a consistent design system across Web and Mobile is notoriously difficult. Developers often end up duplicating styles in CSS, React Native Stylesheets, and Dart, leading to **brand drift** and maintenance nightmares.
|
|
16
|
+
|
|
17
|
+
**GetLotUI solves this by:**
|
|
18
|
+
1. **Centralizing Truth**: Every color, font size, and spacing unit lives in a single JSON source.
|
|
19
|
+
2. **Native Performance**: No runtime translation layers. We generate native code for each platform.
|
|
20
|
+
3. **Developer Experience**: Use a familiar CLI to "add" components just like shadcn/ui.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## ๐จ Design Philosophy
|
|
25
|
+
|
|
26
|
+
- **Atomic Tokens**: Every design decision is a token.
|
|
27
|
+
- **Contract over Implementation**: Define *what* a component does before deciding *how* it's rendered.
|
|
28
|
+
- **Copy-Paste (Source-First)**: Components are copied into your repo. You own the code. No complex library dependencies.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## โจ Features
|
|
33
|
+
|
|
34
|
+
- **๐ Cross-Platform by Design**: First-class support for Web, Expo, and Flutter.
|
|
35
|
+
- **๐ Token-Driven Logic**: Change a color in your JSON tokens and watch it update across JS, Dart, and CSS.
|
|
36
|
+
- **๐ ๏ธ Powerful CLI**: Scaffold components and initialize projects with a single command.
|
|
37
|
+
- **๐ฆ Monorepo powered by PNPM**: Seamlessly link core logic with platform implementations.
|
|
38
|
+
- **๐ Live Documentation**: Built-in Next.js documentation site generated from your components.
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## ๐ Architecture
|
|
43
|
+
|
|
44
|
+
GetLotUI separates **Design Intent** from **Platform Implementation**. This ensures that your brand identity remains consistent even if you change your tech stack.
|
|
45
|
+
|
|
46
|
+
```mermaid
|
|
47
|
+
graph TD
|
|
48
|
+
A[Core Tokens JSON/TS] --> B(CLI Engine)
|
|
49
|
+
B --> C[Web Styles]
|
|
50
|
+
B --> D[Expo Components]
|
|
51
|
+
B --> E[Flutter Widgets]
|
|
52
|
+
|
|
53
|
+
subgraph "Design Logic"
|
|
54
|
+
A
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
subgraph "Output Adapters"
|
|
58
|
+
C
|
|
59
|
+
D
|
|
60
|
+
E
|
|
61
|
+
end
|
|
62
|
+
```
|
|
2
63
|
|
|
3
|
-
|
|
64
|
+
### The Layered Model
|
|
4
65
|
|
|
5
|
-
|
|
66
|
+
| Layer | Responsibility | Technology | Output |
|
|
67
|
+
| :--- | :--- | :--- | :--- |
|
|
68
|
+
| **01. Token Layer** | Colors, Spacing, Typography | JSON / TypeScript | Design Variables |
|
|
69
|
+
| **02. Contract Layer** | Component Interfaces & Logic | TypeScript Interfaces | Prop Definitions |
|
|
70
|
+
| **03. Render Layer** | Platform-specific Views | React Native / Swift / Dart | The Visual UI |
|
|
6
71
|
|
|
7
|
-
|
|
8
|
-
- An existing **Expo** project (managed or bare workflow)
|
|
72
|
+
---
|
|
9
73
|
|
|
10
|
-
##
|
|
74
|
+
## ๐งฉ Available Components
|
|
11
75
|
|
|
12
|
-
|
|
76
|
+
Scaffold these instantly using `npx getlotui add <name>`:
|
|
13
77
|
|
|
14
|
-
|
|
78
|
+
| Component | Expo | Flutter | Web |
|
|
79
|
+
| :--- | :---: | :---: | :---: |
|
|
80
|
+
| **Button** | โ
| โ
| โ
|
|
|
81
|
+
| **Input** | โ
| โ
| โ
|
|
|
82
|
+
| **Toast** | โ
| ๐ง | โ
|
|
|
83
|
+
| **Badge** | โ
| ๐ง | โ
|
|
|
84
|
+
| **Avatar** | โ
| ๐ง | โ
|
|
|
85
|
+
| **Card** | โ
| โ
| โ
|
|
|
86
|
+
| **Dropdown** | โ
| ๐ง | โ
|
|
|
15
87
|
|
|
16
|
-
|
|
17
|
-
pnpm add -D getlotui
|
|
18
|
-
# or
|
|
19
|
-
npm install -D getlotui
|
|
20
|
-
# or
|
|
21
|
-
yarn add -D getlotui
|
|
22
|
-
```
|
|
88
|
+
---
|
|
23
89
|
|
|
24
|
-
##
|
|
90
|
+
## ๐ Repository Structure
|
|
25
91
|
|
|
26
|
-
|
|
92
|
+
### ๐ฆ Packages (`/packages`)
|
|
93
|
+
- **`@getlotui/core`**: The brain. Contains tokens, design system logic, and shared types.
|
|
94
|
+
- **`@getlotui/cli`**: The developer's Swiss Army knife. Used to manage the design system.
|
|
95
|
+
- **`@getlotui/expo`**: React Native (Expo) implementation of the GetLotUI components.
|
|
96
|
+
- **`@getlotui/flutter`**: Flutter implementation using Dart tokens.
|
|
97
|
+
- **`@getlotui/web`**: Web implementation (Tailwind CSS and React).
|
|
27
98
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
99
|
+
### ๐งช Apps (`/apps`)
|
|
100
|
+
- **`documentation`**: The official Next.js documentation website.
|
|
101
|
+
- **`expo-playground`**: Sandbox for testing Expo components.
|
|
102
|
+
- **`flutter-playground`**: Sandbox for testing Flutter components.
|
|
31
103
|
|
|
32
|
-
|
|
33
|
-
1. Detect your project type (e.g., Expo).
|
|
34
|
-
2. Create `getlotui.config.json` with default settings:
|
|
104
|
+
---
|
|
35
105
|
|
|
36
|
-
|
|
37
|
-
{
|
|
38
|
-
"adapter": "expo",
|
|
39
|
-
"componentsDir": "components/ui"
|
|
40
|
-
}
|
|
41
|
-
```
|
|
106
|
+
## ๐ Getting Started
|
|
42
107
|
|
|
43
|
-
|
|
108
|
+
### 1. Prerequisites
|
|
109
|
+
Ensure you have [Node 20+](https://nodejs.org/) and [pnpm](https://pnpm.io/) installed.
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
npm install -g pnpm
|
|
113
|
+
```
|
|
44
114
|
|
|
45
|
-
|
|
115
|
+
### 2. Installation
|
|
116
|
+
Install dependencies for all workspaces:
|
|
46
117
|
|
|
47
118
|
```bash
|
|
48
|
-
|
|
49
|
-
npx getlotui add input
|
|
119
|
+
pnpm install
|
|
50
120
|
```
|
|
51
121
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
122
|
+
### 3. Development
|
|
123
|
+
- **Run Docs**: `pnpm --filter documentation dev`
|
|
124
|
+
- **Run Expo Sandbox**: `pnpm --filter expo-playground start`
|
|
125
|
+
- **Run Flutter Sandbox**: `cd apps/flutter-playground && flutter run`
|
|
126
|
+
|
|
127
|
+
---
|
|
55
128
|
|
|
56
|
-
|
|
129
|
+
## ๐ ๏ธ CLI Usage
|
|
57
130
|
|
|
58
|
-
|
|
59
|
-
import { Button } from '@/components/ui/Button';
|
|
131
|
+
The GetLotUI CLI allows you to easily integrate the design system into any project.
|
|
60
132
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
133
|
+
### Initialize a project
|
|
134
|
+
Automatically detects your framework (Expo, Flutter, or Web) and sets up the configuration.
|
|
135
|
+
```bash
|
|
136
|
+
npx getlotui init
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Add a component
|
|
140
|
+
Fetch a pre-styled component from the GetLotUI library.
|
|
141
|
+
```bash
|
|
142
|
+
npx getlotui add button
|
|
143
|
+
npx getlotui add card
|
|
66
144
|
```
|
|
67
145
|
|
|
68
|
-
|
|
146
|
+
---
|
|
69
147
|
|
|
70
|
-
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
-
|
|
148
|
+
## โ๏ธ Road Map
|
|
149
|
+
- [x] Expo Implementation
|
|
150
|
+
- [x] CLI Foundation
|
|
151
|
+
- [x] Flutter Support (Beta)
|
|
152
|
+
- [ ] Web Components (Alpha)
|
|
153
|
+
- [ ] Figma to Token Sync
|
|
154
|
+
- [ ] Automated Visual Regression Testing
|
|
74
155
|
|
|
75
|
-
|
|
156
|
+
---
|
|
76
157
|
|
|
77
|
-
|
|
78
|
-
|
|
158
|
+
## ๐ License
|
|
159
|
+
MIT ยฉ 2026 GetLotUI Team. Built with โค๏ธ for the community.
|