# App Studio complete documentation Generated from the public pages. Start with https://app-studio-6167b.web.app/llms.txt for a smaller index. Source: https://app-studio-6167b.web.app/components [@APP-STUDIO/COMPONENTS](https://app-studio-6167b.web.app/docs/GettingStarted) # React UI. Built to compose. A TypeScript component library for React and React Native. Build consistent interfaces with shared themes, style props, and documented APIs. [Start building](https://app-studio-6167b.web.app/components#get-started)[Explore components](https://app-studio-6167b.web.app/button) TypeScript first Source available Web + Native REAL COMPONENTS. GO AHEAD, TRY THEM. COMPONENT PREVIEW ### Compose your next interface. Controlled inputs. Typed callbacks. Shared styling. Project name A real TextField and Button. No mockup. CONTROLLED COMPONENTS ### Inputs and controls. **Stay in the loop**Only the updates that matter. Include the good stuff All systems go⌘ KNew release One component. Your style. Preview Code Not a screenshot. Your future building blocks.[Explore Button](https://app-studio-6167b.web.app/button) FAMILIAR TOOLS. A FRESH START. React React Native TypeScript[a. Powered by App Studio](https://app-studio-6167b.web.app/) THE REPETITIVE PART? ALREADY DONE. ## Your ideas deserve more of your time. Spend less time rebuilding the same controls. Start with a consistent foundation, then bring your own point of view. ### Compose. Don’t compromise. From buttons and inputs to dialogs and navigation. Start small, combine freely, and keep control of the result. [Meet the components](https://app-studio-6167b.web.app/docs/Button) ### Your brand belongs here. Theme tokens, variants, and internal view overrides make a shared foundation feel like your own product. [Explore the design system](https://app-studio-6167b.web.app/design-system) ### Details that make a difference. Controls with labels, focus states, and keyboard interactions. Check each component’s examples for its supported behavior. [Try an interactive control](https://app-studio-6167b.web.app/docs/Checkbox) DIFFERENT SCREENS. SHARED FOUNDATIONS. ## One familiar API. More places to go. Use the same imports and component patterns on web and React Native. Each platform gets a dedicated implementation. - Shared theme tokens and styling conventions - Platform-aware package exports - Native compatibility documented per component [Read the native compatibility guide](https://github.com/rize-network/app-studio-components/blob/main/docs/getting-started/react-native.md) Some components are web-only. Native animations, icons, and gradients can require additional peers. ******your-next-app.dev a. A SHARED FOUNDATION ### Good morning, possibility. Ready to build**Something great ↗** ************** REACT DOM a.YOUR NEXT APP ### Same idea. New screen. Made for here. REACT NATIVE ILLUSTRATIVE LAYOUT · PLATFORM-SPECIFIC RENDERING FIND YOUR BUILDING BLOCKS ## Small pieces. Whole experiences. A library that grows with your interface, from the first input to the finishing touch. [01 ### Actions & inputs Button, TextField, Checkbox, Switch](https://app-studio-6167b.web.app/button)[02 ### Structure & navigation Tabs, Sidebar, Accordion, NavigationMenu](https://app-studio-6167b.web.app/tabs)[03 ### Feedback & overlays Alert, Modal, Toast, Tooltip](https://app-studio-6167b.web.app/modal)[04 ### Content & data Card, Avatar, Badge, Table](https://app-studio-6167b.web.app/card) FROM IDEA TO FIRST RENDER ## Install. Configure. Build. Start with your existing React project. Add the package, wrap your app, and make it yours. 1. 01 ### Install your foundation The component library uses App Studio for styling. `npm install @app-studio/components app-studio` [Check platform requirements and peer dependencies](https://app-studio-6167b.web.app/docs/installation) 2. 02 ### Set up your providers ThemeProvider resolves your color tokens. ResponsiveProvider enables device-aware layouts. 3. 03 ### Build something that feels like you Use typed props and your own theme. Keep your existing React tools. ```tsx import { ThemeProvider, ResponsiveProvider, Vertical } from 'app-studio'; import { Button, Text } from '@app-studio/components'; export default function App() { return ( Hello, possibility. ); } ``` Ready for your React project[Full setup guide](https://app-studio-6167b.web.app/docs/installation) A LITTLE GUIDANCE GOES A LONG WAY ## Built for the way developers learn. Start with a working example. Understand the decisions. Go deeper when you need to. [01 / GUIDE ### Your first component Installation, providers, peer dependencies, and a working example. Open the guide](https://app-studio-6167b.web.app/docs/installation)[02 / GUIDE ### Explore the components Props, variants, and interactive examples. Find your next building block. Open the guide](https://app-studio-6167b.web.app/docs/Button)[03 / GUIDE ### Understand the engine See how App Studio handles styling, themes, and responsive layouts. Open the guide](https://app-studio-6167b.web.app/) GOOD QUESTIONS ## A few things to know. Which package should I start with? Choose @app-studio/components for ready-made UI and install app-studio alongside it. Choose app-studio alone when you want to build your own components from layout and styling primitives. Can I make the components match my brand? Yes. Use ThemeProvider for shared color tokens, component props for variants and sizes, and the views prop to style internal parts. Start with one component before creating a shared design system. What does React Native support include? The library ships dedicated native implementations with a shared public API. Availability and behavior depend on the component; some controls are web-only and some native features need optional peers. The setup guide links to the compatibility matrix. Where can I check the source and license? Both repositories are public on GitHub. Review the LICENSE file included with the version you adopt. The component repository currently has conflicting license information between its README and LICENSE; confirm the terms before commercial use. YOUR NEXT PROJECT STARTS HERE ## Make your next interface a great one. [Start building](https://app-studio-6167b.web.app/components#get-started)[Read the documentation](https://app-studio-6167b.web.app/docs/installation) --- Source: https://app-studio-6167b.web.app/ [APP-STUDIO / STYLING FRAMEWORK](https://app-studio-6167b.web.app/docs/AppStudio) # Your styles. Your components. One API. Style React with the props you already understand. Layout, themes, responsive design, and motion — together in your component. [Get started](https://app-studio-6167b.web.app/#get-started)[Read the docs](https://app-studio-6167b.web.app/docs/AppStudio) Typed style props Web + Native MIT licensed ```tsx Make it yours. ``` LIVE PREVIEW ### Make it yours. Typed styles, rendered live. YOUR PALETTE PROPS → PIXELS ONE CONNECTED STYLING SYSTEM Style props Theme tokens Responsive Animation CLOSE TO YOUR COMPONENT. OUT OF YOUR WAY. ## Less context switching. More clarity. Read the structure and the styling in the same place. A View for your layout. Tokens for your colors. Props for the details. ### CSS you already know. Use padding, gap, borderRadius, and other typed style props directly. Compose layouts with View, Horizontal, and Vertical. [See it in the guide](https://app-studio-6167b.web.app/docs/AppStudio) ### Tokens that connect the dots. Define your theme once. Use theme-primary and color tokens throughout your interface, with light and dark palettes. [See it in the guide](https://app-studio-6167b.web.app/docs/AppStudio) ### Made to respond and move. Adapt layouts with the media prop. Add Animation presets on web, and use Reanimated for supported native motion. [See it in the guide](https://app-studio-6167b.web.app/docs/AppStudio) TWO PACKAGES. CLEAR ROLES. ## Start at the layer that works for you. App Studio gives you the primitives. The component library builds on them. Use either starting point without learning a second styling language. [Discover the component library](https://app-studio-6167b.web.app/components) [02 / THE BUILDING BLOCKS ### @app-studio/components Buttons, inputs, dialogs, navigation, and more.](https://app-studio-6167b.web.app/components)[01 / THE FOUNDATION ### app-studio Layout primitives · style props · tokens · motion](https://app-studio-6167b.web.app/docs/AppStudio) React DOM React Native FROM IDEA TO FIRST RENDER ## Install. Configure. Build. Start with your existing React project. Add the package, wrap your app, and make it yours. 1. 01 ### Install your foundation The styling engine works on its own. `npm install app-studio` [Check platform requirements and peer dependencies](https://app-studio-6167b.web.app/docs/core) 2. 02 ### Set up your providers ThemeProvider resolves your color tokens. ResponsiveProvider enables device-aware layouts. 3. 03 ### Build something that feels like you Use typed props and your own theme. Keep your existing React tools. ```tsx import { ThemeProvider, ResponsiveProvider, Vertical, Text, Animation } from 'app-studio'; export default function App() { return ( Make room for your ideas. ); } ``` Ready for your React project[Full setup guide](https://app-studio-6167b.web.app/docs/core) A LITTLE GUIDANCE GOES A LONG WAY ## Built for the way developers learn. Start with a working example. Understand the decisions. Go deeper when you need to. [01 / GUIDE ### Understand the foundations Style props, theme tokens, responsive layouts, and your first component. Open the guide](https://app-studio-6167b.web.app/docs/core)[02 / GUIDE ### Go deeper into the API Styling states, animations, hooks, providers, and composition. Open the guide](https://github.com/rize-network/app-studio/blob/main/docs/README.md)[03 / GUIDE ### Take it to native Native mappings, optional peers, and the web APIs that differ. Open the guide](https://github.com/rize-network/app-studio/blob/main/docs/Native.md) GOOD QUESTIONS ## A few things to know. How is App Studio different from the component library? App Studio is the foundation: layout primitives, style props, tokens, hooks, and animations. @app-studio/components adds ready-made controls such as buttons, dialogs, and forms. Use the engine alone or use both together. Do I have to replace my existing styling? No. Start with a View or a layout in one part of your React app. App Studio can sit alongside your existing components and styles. Theme tokens need ThemeProvider; responsive device names need ResponsiveProvider. Does exactly the same code work on web and native? The package selects a dedicated build for each platform and shares its styling API. Native uses a supported subset: browser selectors and CSS Grid do not map one-to-one. Check the native guide before sharing a screen. Can I use it in a commercial project? Yes. App Studio is open source under the MIT license. You can inspect the implementation, adapt it, and use it in commercial applications. YOUR NEXT PROJECT STARTS HERE ## Your ideas. A better foundation. [Start building](https://app-studio-6167b.web.app/#get-started)[Read the documentation](https://app-studio-6167b.web.app/docs/core) --- Source: https://app-studio-6167b.web.app/docs # Build with App Studio A shared foundation for React and React Native. Start with ready-made UI, or build your own components with the styling framework underneath it. [START HERE**Install the packages**Requirements, peer dependencies, and provider setup.](https://app-studio-6167b.web.app/docs/installation)[EXPLORE THE LIBRARY**Find a component**Browse categories, try controls, and open working examples.](https://app-studio-6167b.web.app/docs/components) ## Two packages, one foundation **`app-studio`** is the framework: layout primitives such as `View`, `Horizontal`, and `Vertical`, typed style props, theme tokens, responsive rules, hooks, and animation presets. **`@app-studio/components`** is the component library built on that framework: buttons, inputs, navigation, feedback, overlays, and other interface controls. Use the framework on its own when you want to create your own controls. Install both packages when you want ready-made components. You do not need to replace your existing React state management or application architecture. ## Your path to a first interface 1. **Install:** choose your platform and add compatible dependencies in [Installation](https://app-studio-6167b.web.app/docs/installation). 2. **Configure:** wrap the app in `ThemeProvider` and `ResponsiveProvider`. 3. **Build:** follow the [Quick start](https://app-studio-6167b.web.app/docs/quick-start) to connect real state to your first controls. 4. **Customize:** learn [styling](https://app-studio-6167b.web.app/docs/styling), [themes](https://app-studio-6167b.web.app/docs/theming), and [responsive layouts](https://app-studio-6167b.web.app/docs/responsive). 5. **Explore:** use the [component browser](https://app-studio-6167b.web.app/docs/components) to find reference material and existing examples. ## Conventions to know - Import layout primitives and providers from `app-studio`. - Import ready-made controls from `@app-studio/components`. - Pass familiar styling properties directly as props. - Resolve `theme-*` and `color-*` tokens through `ThemeProvider`. - Input callbacks use values: `TextField` returns a string; `Checkbox` and `Switch` return booleans. - Platform support depends on the component. Read [React Native](https://app-studio-6167b.web.app/docs/react-native) before sharing a screen. ## How to use this documentation **Getting started** takes you from installation to your first working interface. **Foundations** explains the styling model. **Guides** covers common implementation decisions. The **component library** is grouped by category. A component's **Reference** page contains its existing documentation, while **Examples** opens its interactive demonstration page. The component browser exposes both, so you can inspect behavior before using it. Component references include import instructions, interactive examples with copyable source, and searchable props tables. Required props, literal implementation defaults, and compound parts are listed together. Shared styling props link back to the foundations guides. ## Build in the open Explore [the component source](https://github.com/rize-network/app-studio-components) and [the framework source](https://github.com/rize-network/app-studio). Refer to each package's included `LICENSE` for its terms of use. --- Source: https://app-studio-6167b.web.app/docs/installation # Installation Start with an existing React project. Choose the component library for ready-made controls, or the framework alone for your own component system. ## Requirements - React 18 or newer. Keep `react` and `react-dom` on matching versions in a web app. - A React build setup that resolves package exports, such as Vite or your existing framework. - TypeScript is supported; JavaScript projects can use the same components. - For React Native, follow [native setup](https://app-studio-6167b.web.app/docs/react-native). The core package declares React Native 0.79 or newer. ## Install the component library The library depends on App Studio for styling. Install both: ```bash npm install @app-studio/components app-studio ``` Install the web peer dependencies you do not already have: ```bash npm install react react-dom react-router-dom formik zustand lucide-react ``` Keep existing compatible versions. React Router supports router-dependent components, Formik powers its form wrappers, and Zustand and the icon package support components that use them. Do not use `--force` to hide incompatible peer versions in a consuming application. With another package manager, use the same package names with `pnpm add` or `yarn add`. ## Use the framework on its own If you only need layout primitives, style props, tokens, and motion: ```bash npm install app-studio ``` You do not need the component library or its Formik, Zustand, and icon peers for this starting point. A web app still needs React and React DOM. ## Configure the providers `ThemeProvider` defines the color variables behind `theme-*` and `color-*` tokens. `ResponsiveProvider` supplies the device and breakpoint configuration used by `media` and responsive hooks. ```tsx import React from 'react'; import { ThemeProvider, ResponsiveProvider, Vertical, Text } from 'app-studio'; export default function App() { return ( App Studio is ready. Add your application's components here. ); } ``` Mount providers near the root. Keep your existing router, data fetching, and state providers; App Studio does not replace them. ## Add document defaults The library styles components, not the browser document. Add these defaults to your application's stylesheet: ```css * { box-sizing: border-box; } body { margin: 0; font-family: system-ui, sans-serif; } button, input, textarea, select { font: inherit; } ``` There is no separate component stylesheet to import for these examples. ## When routing is needed Router-dependent components need your app's React Router context. A simple `Button` with `onClick` does not need a router. Internal routing links and navigation components can require one. ## Verify your setup Start your development server. Confirm that the example renders, `theme-primary` has a color, and changing the viewport affects a component with `media` rules. Continue with the [Quick start](https://app-studio-6167b.web.app/docs/quick-start). If colors or imports are missing, use [Troubleshooting](https://app-studio-6167b.web.app/docs/troubleshooting). --- Source: https://app-studio-6167b.web.app/docs/quick-start # Quick start Build a small interface with real React state. Complete [Installation](https://app-studio-6167b.web.app/docs/installation) first; this example needs both packages and their web peers. ## Start with a working screen Copy this into your app's entry component. Edit the name, toggle notifications, and press the button. This example updates local state only; it does not save data to a server. ```tsx import React from 'react'; import { ThemeProvider, ResponsiveProvider, Vertical, Text } from 'app-studio'; import { Button, TextField, Switch } from '@app-studio/components'; export default function App() { const [name, setName] = React.useState('My project'); const [notifications, setNotifications] = React.useState(true); const [message, setMessage] = React.useState(''); return ( Your first interface {message} ); } ``` ## Understand the imports `ThemeProvider`, `ResponsiveProvider`, `Vertical`, and `Text` come from the framework. `Button`, `TextField`, and `Switch` come from the ready-made component library. `Vertical` stacks children. `gap` sets space between them. `padding` and the `media` override describe the layout alongside its structure. ## Connect state with values `TextField` calls `onChange` with the new string. `Switch` and `Checkbox` call it with a boolean. Pass your setter directly, or transform the value in your callback. These callbacks do not pass a DOM change event. The empty-name check disables the button. Your app remains responsible for validation and persistence; a styled control does not save data automatically. ## Make one change at a time - Change `theme.primary` in [Colors & theming](https://app-studio-6167b.web.app/docs/theming). - Choose variants or customize internal views in [Styling & composition](https://app-studio-6167b.web.app/docs/styling). - Connect a complete form in [Forms & validation](https://app-studio-6167b.web.app/docs/forms). - Use the [component browser](https://app-studio-6167b.web.app/docs/components) to find your next building block. --- Source: https://app-studio-6167b.web.app/docs/react-native # React Native Both packages ship dedicated native builds. Sharing an API reduces repetition, but each platform still needs its own setup and verification. ## Requirements and installation Use an existing React Native project with package exports enabled. The current core package declares React Native 0.79 or newer. Keep the React version required by your native project. For the framework alone: ```bash npm install app-studio ``` For the ready-made component library: ```bash npm install app-studio @app-studio/components lucide-react-native ``` The native app provides `react` and `react-native`. Do not add React DOM or React Router just to use native primitives. ## Package resolution Import from `app-studio` and `@app-studio/components` as usual. Metro uses the `react-native` export condition to choose native implementations. Do not import browser bundle paths into a native screen. For a native TypeScript consumer, follow your framework's configuration and the libraries' native guide. If the wrong typings are selected, check package-export support and the `react-native` custom condition rather than suppressing errors. ## Providers Use `ThemeProvider` for tokens and `ResponsiveProvider` for responsive rules, as on web. Put them near your native app's root. Text content should use the library's text components rather than assuming a DOM container can render text. ## Optional native features - `react-native-reanimated` enables supported animation presets. - `react-native-svg` is used by components that render SVG. - `react-native-linear-gradient` supports native gradients. - `lucide-react-native` supplies native icons where used. Install only the peers required by the components you use. Follow their version-specific setup and run pod installation when your iOS project requires it. ## Differences to plan for - **Availability:** some components are web-only. Check the compatibility matrix before importing a screen's controls. - **Layout:** CSS Grid maps to supported fixed-column native layouts, not the entire CSS Grid feature set. - **Interaction:** browser hover selectors and pseudo-elements do not apply to touch interfaces. - **Forms:** submission, return keys, and focus need explicit native wiring. - **Navigation:** use your native navigation setup; browser link behavior is not a native route model. - **Accessibility:** test native labels, roles, focus, and screen-reader behavior separately. ## Compatibility reference Use the [component compatibility matrix and setup guide](https://github.com/rize-network/app-studio-components/blob/main/docs/getting-started/react-native.md) and the [framework native mappings](https://github.com/rize-network/app-studio/blob/main/docs/Native.md). The previews on this documentation site run in a browser and do not prove native compatibility. --- Source: https://app-studio-6167b.web.app/docs/core # App Studio foundations `app-studio` is the framework underneath `@app-studio/components`. It provides a common way to describe layout and styling in React and React Native. ## Layout primitives - `View` is a general-purpose container. - `Vertical` stacks children in a column. - `Horizontal` places children in a row. - `Center` centers its children. - `Text` renders text with typography and color props. - `Grid` uses CSS Grid on web and a fixed-column Flexbox mapping on native. ```tsx import React from 'react'; import { Vertical, Horizontal, Text } from 'app-studio'; export function ProjectSummary() { return ( Project overview Ready to build React + Native ); } ``` ## Style props Pass familiar properties such as `padding`, `gap`, `borderRadius`, and `backgroundColor` directly to a primitive. Numbers represent pixels on web and native layout units on React Native. On web, use semantic elements through `as`, for example `Text as="h2"` or `View as="section"`. Native accessibility semantics need platform-specific props and behavior; browser tags are not native accessibility roles. ## Providers and tokens `ThemeProvider` resolves color tokens. `ResponsiveProvider` configures named devices and breakpoints. Keep them near the root so screens share the same foundation. - `theme-primary` expresses a semantic role you configure. - `color-blue-900` selects a palette entry. - `media={{ mobile: { padding: 16 } }}` changes styles for a configured device. Use [Colors & theming](https://app-studio-6167b.web.app/docs/theming) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive) for practical examples. ## Composition stays in React Extract reusable components, pass props and children, and use hooks as you would in a React app. Routing, application state, data fetching, and validation stay with your chosen tools. The ready-made library adds props such as `variant`, `size`, and `views`. See [Styling & composition](https://app-studio-6167b.web.app/docs/styling) before creating wrappers around every control. ## What changes between platforms Package exports select separate web and native implementations. Many props and conventions are shared, but browser selectors, form semantics, navigation, and CSS Grid do not map one-to-one. Read [React Native](https://app-studio-6167b.web.app/docs/react-native) before assuming a web example can be shared unchanged. ## Further reference The framework repository has detailed references for [primitives](https://github.com/rize-network/app-studio/blob/main/docs/Components.md), [providers](https://github.com/rize-network/app-studio/blob/main/docs/Providers.md), and [hooks](https://github.com/rize-network/app-studio/blob/main/docs/Hooks.md). --- Source: https://app-studio-6167b.web.app/docs/styling # Styling & composition Use the same styling foundation across your own primitives and the ready-made library. Keep layout close to the component and customize only what you need. ## Start with style props ```tsx import React from 'react'; import { View, Text } from 'app-studio'; export function Callout() { return ( A consistent foundation, with room for your design. ); } ``` Resolve tokens through `ThemeProvider`. Numeric spacing values represent pixels on web and native layout units on React Native. ## Choose a built-in variant Before overriding internal styles, check the component's `variant`, `size`, and other documented props. ```tsx import React from 'react'; import { Horizontal } from 'app-studio'; import { Button } from '@app-studio/components'; export function Actions() { return ( ); } ``` Variant names differ between components. Use each component's TypeScript props and examples rather than assuming every control accepts the same names. ## Customize internal views `views` exposes named internal parts. Button exposes `container`, `content`, and icon and loader parts. The available names are component-specific. ```tsx import React from 'react'; import { Button } from '@app-studio/components'; export function CustomButton() { return ( ); } ``` Preserve labels, focus indicators, disabled behavior, and hit areas when overriding views. ## Interaction states on the web Primitives support state styles such as `_hover`, `_active`, and `_focus`. Use a semantic interactive element and keep keyboard focus visible. ```tsx import React from 'react'; import { View } from 'app-studio'; export function StateExample() { return ( Focus or hover me ); } ``` Browser selectors and pseudo-elements are web-only. On native, use supported platform events and accessibility behavior. See [platform differences](https://app-studio-6167b.web.app/docs/react-native). ## Compose ordinary React components Extract a component when layout or behavior repeats. A single visual adjustment can stay as props at the call site. Configure [theme tokens](https://app-studio-6167b.web.app/docs/theming) before copying raw colors across your app. The [framework styling reference](https://github.com/rize-network/app-studio/blob/main/docs/Styling.md) documents more states and selectors. --- Source: https://app-studio-6167b.web.app/docs/providers # Providers Providers share configuration through React context. Start with the theme and responsive providers; add optional contexts only when your app consumes them. ## The usual starting point ```tsx import React from 'react'; import { ThemeProvider, ResponsiveProvider, Vertical, Text } from 'app-studio'; export function ProviderSetup() { return ( Shared configuration Your application's screens belong inside these providers. ); } ``` Keep this setup near your app's root. Your router, state, and data providers remain ordinary React providers alongside it. ## ThemeProvider `theme` maps semantic tokens such as `primary` to colors. `mode` selects `light` or `dark`. The optional `light` and `dark` props customize palette configuration. The hook API uses different names: `useTheme()` returns `themeMode` and `setThemeMode`, as well as color resolution helpers. See [Colors & theming](https://app-studio-6167b.web.app/docs/theming) and [Hooks](https://app-studio-6167b.web.app/docs/hooks). ## ResponsiveProvider `breakpoints` defines screen sizes and `devices` groups them into names such as `mobile`. Descendants use that configuration through `media` or `useResponsive()`. Keep device names consistent with the rules in your components. See [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). ## Optional providers **`WindowSizeProvider`** supplies dimensions to `useWindowSize()`. Add it around the consumers that need window measurements. Responsive styling does not require you to add window measurements to every component. **`AnalyticsProvider`** accepts a `trackEvent` callback. Wire it only if your application needs event tracking; it is not required for basic styling or component rendering. ## Scope configuration deliberately React context follows the component tree. Keep shared configuration at the root and use nested providers for a deliberate local variation. Test portaled controls, such as dialogs, when a local theme differs from the surrounding app. The native build exposes the corresponding providers with platform-specific dimension tracking. See [React Native](https://app-studio-6167b.web.app/docs/react-native). --- Source: https://app-studio-6167b.web.app/docs/theming # Colors & theming Connect your interface to shared color tokens. Put `ThemeProvider` near the root so primitives and ready-made components resolve the same palette. ## Theme tokens and palette tokens `theme-primary` is a semantic role. You decide which palette entry it points to. `color-blue-900` is a specific palette entry. Both are resolved through the provider. ```tsx import React from 'react'; import { ThemeProvider, Vertical, Text } from 'app-studio'; import { Button } from '@app-studio/components'; export function BrandExample() { return ( Your brand, shared. ); } ``` Use semantic tokens for roles that should change together. Use palette tokens when a deliberate fixed color is appropriate. ## Light and dark mode Control the provider's `mode` prop with React state. It selects the light or dark palette; it does not automatically redesign every custom color or browser document style in your application. ```tsx import React from 'react'; import { ThemeProvider, Vertical, Text } from 'app-studio'; import { Button } from '@app-studio/components'; export function ThemeExample() { const [dark, setDark] = React.useState(false); return ( A shared color system. ); } ``` Check text contrast, surfaces, borders, disabled states, and focus rings in each mode. Raw hex colors keep their literal value rather than following the palette. ## Per-component colors Button supports `backgroundColor` for its surface and `textColor` for explicit content color. Other components have their own color props and internal `views` parts. Check the current TypeScript props before copying an override across components. ## Custom palettes and external tools The provider also accepts `light` and `dark` palette configurations. `useTheme` exposes helpers such as `getColor` for CSS variables and `getColorHex` when another library needs a literal color. See the [full theming reference](https://github.com/rize-network/app-studio/blob/main/docs/Theming.md) for palette structure and resolution rules. Start with a few semantic tokens before replacing the entire palette. --- Source: https://app-studio-6167b.web.app/docs/responsive # Responsive layouts Use the `media` prop for layout and style changes. Use responsive hooks when the rendered behavior or content must change. Configure both through `ResponsiveProvider`. ## Adapt a layout with media ```tsx import React from 'react'; import { Horizontal, Vertical, Text } from 'app-studio'; import { Button } from '@app-studio/components'; export function ResponsiveActions() { return ( Ready for any screen Resize the viewport to change the layout. ); } ``` Named devices such as `mobile` depend on your provider configuration. They are not independent magic widths. On web, style overrides use media queries rather than requiring a hook-driven render. ## Configure breakpoints The shipped defaults use `xs: 0`, `sm: 340`, `md: 560`, `lg: 1080`, and `xl: 1300`. You can supply explicit project breakpoints and device groups: ```ts const breakpoints = { xs: 0, sm: 480, md: 768, lg: 1024, xl: 1440 }; const devices = { mobile: ['xs', 'sm'], tablet: ['md'], desktop: ['lg', 'xl'], }; // Pass both objects to ResponsiveProvider near the root. ``` Keep this configuration shared across screens. Changing it changes every named-device rule beneath that provider. ## When to use a hook `useResponsive()` exposes helpers such as `on('mobile')` for device-aware logic. Hook-driven decisions re-render when the responsive state changes. Prefer `media` for purely visual changes and avoid hiding essential content on small screens. ## Native and constrained layouts Native responsive state follows window dimensions, including rotation and split-screen. CSS Grid does not exist on native: use a fixed integer column count for the supported mapping or explicit Flexbox layouts. A browser-window breakpoint is not the same as the width of a narrow panel. The framework's [responsive reference](https://github.com/rize-network/app-studio/blob/main/docs/Responsive.md) also covers container-scoped responsiveness. ## Verify the result Test a narrow phone, a tablet-sized viewport, a wide screen, and enlarged text. Check focus visibility and code overflow as well as visual alignment. --- Source: https://app-studio-6167b.web.app/docs/animation # Animation Use motion to explain a change or draw attention to new content. Keep important content and controls usable without animation. ## Add an animation preset Import `Animation` from `app-studio` and pass a preset to `animate`: ```tsx import React from 'react'; import { View, Text, Animation } from 'app-studio'; import { Button } from '@app-studio/components'; export function MotionExample() { const [version, setVersion] = React.useState(0); return ( New content, gently introduced. ); } ``` The React key remounts the animated content for this demonstration. Do not remount an entire form or screen merely to replay motion; that can reset user state. ## Respect reduced motion On web, add a reduced-motion rule for the region your app animates: ```css @media (prefers-reduced-motion: reduce) { .app-motion, .app-motion * { animation: none !important; transition: none !important; } } ``` Do not make completion, navigation, or access to information depend on an animation finishing. Check your native app's reduced-motion behavior separately. ## Native setup Web presets use CSS keyframes. Native presets use the optional `react-native-reanimated` peer. Without it, animation props are ignored. Follow the peer's platform setup, including the configuration required by your installed version. See [native setup](https://app-studio-6167b.web.app/docs/react-native) and the [animation reference](https://github.com/rize-network/app-studio/blob/main/docs/Animation.md) for supported presets and options. --- Source: https://app-studio-6167b.web.app/docs/hooks # Hooks Use framework hooks when React needs to know about the environment or an interaction. Prefer style props for visual changes that do not need application logic. ## Read the current theme `useTheme()` exposes `themeMode`, `setThemeMode`, `theme`, and color helpers. The provider accepts `mode`; the hook's state is named `themeMode`. ```tsx import React from 'react'; import { useTheme, Text } from 'app-studio'; export function CurrentTheme() { const { themeMode } = useTheme(); return Current theme: {themeMode}; } ``` Components resolve color tokens automatically. Use `getColor` for a CSS value or `getColorHex` when an external tool requires a literal color. See [Colors & theming](https://app-studio-6167b.web.app/docs/theming). ## Respond to device state `useResponsive()` reads the configuration from `ResponsiveProvider`. Use `on('mobile')` for device-aware logic. A hook-driven decision re-renders when its state changes; use the `media` prop for purely visual overrides. ```tsx import React from 'react'; import { useResponsive, Text } from 'app-studio'; export function DeviceHint() { const { on } = useResponsive(); return {on('mobile') ? 'Compact viewport' : 'Larger viewport'}; } ``` Avoid removing essential content just because a viewport is smaller. See [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). ## Track hover for a visual detail ```tsx import React from 'react'; import { useHover, View, Text } from 'app-studio'; export function HoverDetail() { const [ref, hovered] = useHover(); return ( Hover changes this surface; the information is always available. ); } ``` Hover is a browser interaction, not a native touch interaction. Keep actions and information available to keyboard, touch, and assistive-technology users. ## Read window dimensions Wrap consumers of `useWindowSize()` in `WindowSizeProvider`: ```tsx import React from 'react'; import { WindowSizeProvider, useWindowSize, Text } from 'app-studio'; function Dimensions() { const { width, height } = useWindowSize(); return ( Window: {width} × {height} ); } export function WindowExample() { return ( ); } ``` Window dimensions describe the window, not necessarily a component's available width. On native, verify rotation and split-screen behavior on the target platform. ## Further hooks The framework also exposes hooks for focus, visibility, scrolling, and element position. Consult the [hook reference](https://github.com/rize-network/app-studio/blob/main/docs/Hooks.md) and current TypeScript signatures for their options and platform differences. --- Source: https://app-studio-6167b.web.app/docs/forms # Forms & validation Choose controlled inputs for a small interaction or Formik wrappers for a larger form. Your application owns validation, submission, loading, and server errors. ## Use value-first callbacks `TextField` calls `onChange` with a string. `Checkbox` and `Switch` call it with a boolean. Their callbacks do not receive DOM change events. ```tsx import React from 'react'; import { Vertical } from 'app-studio'; import { TextField, Checkbox } from '@app-studio/components'; export function ControlledFields() { const [name, setName] = React.useState(''); const [updates, setUpdates] = React.useState(false); return ( ); } ``` ## Connect Formik Formik is a web peer dependency of the component library. Its named wrappers connect field names to form state. This example validates a required value and displays a local confirmation; it does not call an API. ```tsx import React from 'react'; import { Formik } from 'formik'; import { Vertical, Text } from 'app-studio'; import { FormikForm, FormikTextField, Button } from '@app-studio/components'; export function ProjectForm() { const [message, setMessage] = React.useState(''); return ( values.name.trim() ? {} : { name: 'Enter a project name.' } } onSubmit={(values, { setSubmitting }) => { setMessage(`Ready: ${values.name.trim()}`); setSubmitting(false); }} > {({ isSubmitting }) => ( {message} )} ); } ``` For a real asynchronous request, return or await the request in `onSubmit`. Keep submitted data until the save is confirmed, surface failures, and prevent duplicate submissions. Local validation does not replace server validation. ## Labels, errors, and focus Use a visible label for every field. Keep error text close to its input and programmatically associated with it. After validation fails, help the user reach the first invalid field without losing their values. Check keyboard submission as well as pointer interaction. Avoid using placeholder text as the only label. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). ## Native forms Native does not have browser form semantics. Wire submission, return keys, focus, and validation explicitly. See [React Native](https://app-studio-6167b.web.app/docs/react-native) before sharing a form screen. --- Source: https://app-studio-6167b.web.app/docs/accessibility # Accessibility Components are a starting point. The accessibility of your product also depends on composition, labels, content, styling overrides, and platform behavior. ## Give controls a clear name Use visible labels for fields and meaningful text for actions. An icon-only button needs an accessible name. Avoid using a placeholder as the only field label. ```tsx import React from 'react'; import { Vertical } from 'app-studio'; import { TextField, Button } from '@app-studio/components'; export function LabeledControls() { return ( ); } ``` ## Preserve semantics and keyboard behavior Use buttons for actions and links for navigation. When using primitives on web, choose the appropriate `as` element. Keep a visible focus indicator and do not recreate a button with a clickable generic container. Check Tab order, Enter and Space activation, Escape behavior for overlays, and focus return after a dialog closes. Test each component's supported keyboard behavior before composing a new interaction. ## Communicate state and errors Make disabled, selected, loading, success, and error states understandable without color alone. Associate error text with the corresponding field. Announce relevant asynchronous results without moving focus unnecessarily. Do not add ARIA roles that conflict with a control's native semantics. The appropriate API differs between the web and native implementations. ## Check colors and motion Verify contrast in light and dark mode and after applying theme or view overrides. Ensure focus indicators remain visible against the actual surface. Respect reduced motion as described in [Animation](https://app-studio-6167b.web.app/docs/animation). ## Test the composed experience 1. Complete the main task using only a keyboard. 2. Check names, roles, state, and reading order with a screen reader. 3. Enlarge text and test narrow layouts without losing content or controls. 4. Test invalid and loading states, not only the successful path. 5. Repeat platform-specific checks on a real native target when sharing a screen. Automated checks can catch some problems. They do not establish full conformance or replace testing your product's real workflows. --- Source: https://app-studio-6167b.web.app/docs/ai-assistants # App Studio with AI & coding assistants App Studio publishes the same documentation for people and coding assistants. Use the [documentation index](https://app-studio-6167b.web.app/llms.txt) to find a topic, then fetch its Markdown page for the actual API and examples. These files are regenerated with the website so the two formats stay aligned. ## Choose the right package - **`app-studio`** is the styling framework. Import `View`, `Horizontal`, `Vertical`, `Text`, `ThemeProvider`, and `ResponsiveProvider` from this package. Install it on its own when building your own component system. - **`@app-studio/components`** provides ready-made controls built on the framework. Install both packages when using these controls. Check the component's Import section: repository-only modules are explicitly identified. - Web and React Native use dedicated builds. Shared imports do not guarantee identical platform support; check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) and the component reference. ## Give your assistant the documentation Start with [llms.txt](https://app-studio-6167b.web.app/llms.txt), a compact index of the framework, setup guides, and component references. Every public page has a Markdown alternative: for example, [installation.md](https://app-studio-6167b.web.app/docs/installation.md) and [Button.md](https://app-studio-6167b.web.app/docs/Button.md). The page's HTML head also links to this alternative. The [complete Markdown export](https://app-studio-6167b.web.app/llms-full.txt) combines the public pages in one file. It is larger; fetch individual pages when your assistant only needs one API or setup step. Use this starting prompt with a coding assistant that can fetch URLs: ```text Read https://app-studio-6167b.web.app/llms.txt. Use its installation, quick-start, styling, and relevant component references. Build a React screen with App Studio using the documented imports and callbacks. Check required props, provider setup, peer dependencies, and platform limitations. Link the reference pages you used and identify anything the docs do not establish. ``` If the assistant cannot fetch websites, paste the relevant Markdown page into its context. In an existing repository, include your installed package versions and target platform so the assistant can compare the documentation with your local types. ## Check generated code 1. Follow [Installation](https://app-studio-6167b.web.app/docs/installation) before adding controls. Keep existing compatible peers rather than forcing an installation. 2. Mount `ThemeProvider` when using `theme-*` and `color-*` tokens. Use `ResponsiveProvider` for named responsive rules. 3. Use the props documented for the actual component. Required flags, literal defaults, and compound parts are listed in the reference; defaults can be overridden by your design system. 4. Controlled input callbacks receive values: `TextField` returns a string, while `Checkbox` and `Switch` return booleans. Keep that value in React or form state. 5. Try the generated result in the component playground and run your application's type checks, keyboard checks, and platform tests. A code example does not establish support for every browser or native platform. Continue with [Quick start](https://app-studio-6167b.web.app/docs/quick-start), [Styling & composition](https://app-studio-6167b.web.app/docs/styling), and [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). ## Verify source and licensing The [framework repository](https://github.com/rize-network/app-studio) and [component repository](https://github.com/rize-network/app-studio-components) provide the implementation behind the docs. Component references link to their source declarations. Check the `LICENSE` included with the version you adopt; the two packages have separate terms. These exports make documentation easier to retrieve. They do not guarantee that a search engine or assistant will index, recommend, or cite the project. --- Source: https://app-studio-6167b.web.app/docs/troubleshooting # Troubleshooting Start with the smallest component that reproduces the issue. Check the installed package versions and your provider setup before adding overrides. ## Colors are missing Confirm that `ThemeProvider` wraps the component and the token exists. `theme-primary` and `color-*` props resolve through the provider's variables. A raw color and a token follow different resolution paths. Inspect the rendered element and its computed color. Check whether a local `views` override or surrounding stylesheet changes the value. See [Colors & theming](https://app-studio-6167b.web.app/docs/theming). ## Responsive props do nothing Mount `ResponsiveProvider`. Check its breakpoint and device configuration, and confirm which viewport or container drives the rule. Do not assume a narrow panel automatically counts as the `mobile` device. See [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). ## Input state does not update Use value-first handlers. `TextField` returns a string; `Checkbox` and `Switch` return booleans. Use `onChange={setValue}` for controlled state rather than reading `event.target.value` from these component callbacks. Keep the controlled value and handler on the same component. See [Forms & validation](https://app-studio-6167b.web.app/docs/forms). ## An import or peer dependency fails Check the package's exported entry points and the peer versions used by your app. Install compatible peers instead of forcing an incompatible dependency tree. Keep React and its renderer compatible. If you develop these repositories locally, build the sibling `app-studio` package before consuming its generated entry points. That source-checkout step is separate from installing the published package in an application. ## A routing component throws Check whether the component depends on React Router and whether it is inside your application's router. A component's navigation behavior is different from a simple action button with an `onClick` handler. ## Native rendering differs from the web preview The site's previews are browser examples. Check component availability, Metro export resolution, optional native peers, and native-specific setup. Browser selectors, form semantics, and navigation do not map directly to native. Start with [React Native](https://app-studio-6167b.web.app/docs/react-native) and the linked compatibility matrix. ## An older reference differs from the API Individual component pages contain existing reference material. Confirm the current TypeScript props and compare the [interactive examples](https://app-studio-6167b.web.app/docs/components) before copying an older prop value. Report the exact page, package versions, platform, and minimal reproduction when opening an issue. ## Where to ask or contribute Use the [component repository](https://github.com/rize-network/app-studio-components/issues) for ready-made UI issues and the [framework repository](https://github.com/rize-network/app-studio/issues) for primitives and styling behavior. Include the error message and a small reproduction without credentials or private application data. --- Source: https://app-studio-6167b.web.app/docs/components COMPONENT LIBRARY # Find your building blocks. Browse the library, try a few controls, then open a component’s reference or its existing examples. TRY THE REAL THING ## Components you can interact with. These controls use the library itself. Toggle an option or switch between preview and code. [Build your first interface](https://app-studio-6167b.web.app/docs/quick-start) REAL COMPONENTS. GO AHEAD, TRY THEM. COMPONENT PREVIEW ### Compose your next interface. Controlled inputs. Typed callbacks. Shared styling. Project name A real TextField and Button. No mockup. CONTROLLED COMPONENTS ### Inputs and controls. **Stay in the loop**Only the updates that matter. Include the good stuff All systems go⌘ KNew release One component. Your style. Preview Code Not a screenshot. Your future building blocks.[Explore Button](https://app-studio-6167b.web.app/button) 77 components Navigation ## [Accordion](https://app-studio-6167b.web.app/docs/Accordion) Explore the Accordion component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Accordion)[View examples](https://app-studio-6167b.web.app/accordion) Feedback ## [Alert](https://app-studio-6167b.web.app/docs/Alert) Explore the Alert component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Alert)[View examples](https://app-studio-6167b.web.app/alert) Layout ## [AspectRatio](https://app-studio-6167b.web.app/docs/AspectRatio) Explore the AspectRatio component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/AspectRatio)[View examples](https://app-studio-6167b.web.app/aspectratio) Data Display ## [AttachmentGroup](https://app-studio-6167b.web.app/docs/AttachmentGroup) Explore the AttachmentGroup component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/AttachmentGroup)[View examples](https://app-studio-6167b.web.app/attachment-group) Inputs ## [Audio Input](https://app-studio-6167b.web.app/docs/AudioInput) Explore the Audio Input component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/AudioInput)[View examples](https://app-studio-6167b.web.app/audio-input) Data Display ## [Avatar](https://app-studio-6167b.web.app/docs/Avatar) Explore the Avatar component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Avatar)[View examples](https://app-studio-6167b.web.app/avatar) Layout ## [Background](https://app-studio-6167b.web.app/docs/Background) Explore the Background component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Background)[View examples](https://app-studio-6167b.web.app/background) Data Display ## [Badge](https://app-studio-6167b.web.app/docs/Badge) Explore the Badge component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Badge)[View examples](https://app-studio-6167b.web.app/badge) Inputs ## [BlockEditor](https://app-studio-6167b.web.app/docs/BlockEditor) Explore the BlockEditor component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/BlockEditor)[View examples](https://app-studio-6167b.web.app/blockeditor) Inputs ## [Button](https://app-studio-6167b.web.app/docs/Button) Explore the Button component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Button)[View examples](https://app-studio-6167b.web.app/button) Layout ## [Card](https://app-studio-6167b.web.app/docs/Card) Explore the Card component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Card)[View examples](https://app-studio-6167b.web.app/card) Data Display ## [Carousel](https://app-studio-6167b.web.app/docs/Carousel) Explore the Carousel component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Carousel)[View examples](https://app-studio-6167b.web.app/carousel) Layout ## [Center](https://app-studio-6167b.web.app/docs/Center) Explore the Center component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Center) Data Display ## [Chart](https://app-studio-6167b.web.app/docs/Chart) Explore the Chart component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Chart)[View examples](https://app-studio-6167b.web.app/chart) Experimental ## [Chat](https://app-studio-6167b.web.app/docs/ChatInput) Explore the Chat component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/ChatInput)[View examples](https://app-studio-6167b.web.app/chat) Experimental ## [ChatWidget](https://app-studio-6167b.web.app/docs/ChatWidget) Explore the ChatWidget component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/ChatWidget)[View examples](https://app-studio-6167b.web.app/chat-widget) Inputs ## [Checkbox](https://app-studio-6167b.web.app/docs/Checkbox) Explore the Checkbox component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Checkbox)[View examples](https://app-studio-6167b.web.app/checkbox) Inputs ## [ColorInput](https://app-studio-6167b.web.app/docs/ColorInput) Explore the ColorInput component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/ColorInput) Inputs ## [ColorPicker](https://app-studio-6167b.web.app/docs/ColorPicker) Explore the ColorPicker component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/ColorPicker)[View examples](https://app-studio-6167b.web.app/colorpicker) Inputs ## [ComboBox](https://app-studio-6167b.web.app/docs/ComboBox) Explore the ComboBox component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/ComboBox)[View examples](https://app-studio-6167b.web.app/combobox) Experimental ## [Command](https://app-studio-6167b.web.app/docs/Command) Explore the Command component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Command)[View examples](https://app-studio-6167b.web.app/command) Navigation ## [ContextMenu](https://app-studio-6167b.web.app/docs/ContextMenu) Explore the ContextMenu component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/ContextMenu)[View examples](https://app-studio-6167b.web.app/contextmenu) Feedback ## [CookieConsent](https://app-studio-6167b.web.app/docs/CookieConsent) Explore the CookieConsent component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/CookieConsent)[View examples](https://app-studio-6167b.web.app/cookieconsent) Inputs ## [CountryPicker](https://app-studio-6167b.web.app/docs/CountryPicker) Explore the CountryPicker component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/CountryPicker)[View examples](https://app-studio-6167b.web.app/countrypicker) Inputs ## [DatePicker](https://app-studio-6167b.web.app/docs/DatePicker) Explore the DatePicker component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/DatePicker)[View examples](https://app-studio-6167b.web.app/datepicker) Experimental ## [Drag and Drop](https://app-studio-6167b.web.app/docs/DragAndDrop) Explore the Drag and Drop component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/DragAndDrop)[View examples](https://app-studio-6167b.web.app/dragAndDrop) Layout ## [Drawer](https://app-studio-6167b.web.app/docs/Drawer) Explore the Drawer component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Drawer)[View examples](https://app-studio-6167b.web.app/drawer) Navigation ## [DropdownMenu](https://app-studio-6167b.web.app/docs/DropdownMenu) Explore the DropdownMenu component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/DropdownMenu)[View examples](https://app-studio-6167b.web.app/dropdownmenu) Experimental ## [DropZone](https://app-studio-6167b.web.app/docs/DropZone) Explore the DropZone component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/DropZone)[View examples](https://app-studio-6167b.web.app/dropzone) Experimental ## [EditComponent](https://app-studio-6167b.web.app/docs/EditComponent) Explore the EditComponent component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/EditComponent)[View examples](https://app-studio-6167b.web.app/edit-component) Inputs ## [EmojiPicker](https://app-studio-6167b.web.app/docs/EmojiPicker) Explore the EmojiPicker component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/EmojiPicker)[View examples](https://app-studio-6167b.web.app/emojipicker) Inputs ## [File](https://app-studio-6167b.web.app/docs/File) Explore the File component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/File) Inputs ## [Form](https://app-studio-6167b.web.app/docs/Form) Explore the Form component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Form) Inputs ## [Formik](https://app-studio-6167b.web.app/docs/Formik) Explore the Formik component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Formik)[View examples](https://app-studio-6167b.web.app/formik) Experimental ## [Gradient](https://app-studio-6167b.web.app/docs/Gradient) Explore the Gradient component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Gradient)[View examples](https://app-studio-6167b.web.app/gradient) Layout ## [Horizontal](https://app-studio-6167b.web.app/docs/Horizontal) Explore the Horizontal component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Horizontal) Layout ## [HoverCard](https://app-studio-6167b.web.app/docs/HoverCard) Explore the HoverCard component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/HoverCard)[View examples](https://app-studio-6167b.web.app/hovercard) Data Display ## [Icon](https://app-studio-6167b.web.app/docs/Icon) Explore the Icon component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Icon)[View examples](https://app-studio-6167b.web.app/icon) Inputs ## [IconPicker](https://app-studio-6167b.web.app/docs/IconPicker) Explore the IconPicker component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/IconPicker)[View examples](https://app-studio-6167b.web.app/iconpicker) Layout ## [KeyboardAvoidingView](https://app-studio-6167b.web.app/docs/KeyboardAvoidingView) Explore the KeyboardAvoidingView component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/KeyboardAvoidingView)[View examples](https://app-studio-6167b.web.app/keyboardavoidingview) Inputs ## [Label](https://app-studio-6167b.web.app/docs/Label) Explore the Label component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Label) Navigation ## [Link](https://app-studio-6167b.web.app/docs/Link) Explore the Link component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Link)[View examples](https://app-studio-6167b.web.app/link) Feedback ## [Loader](https://app-studio-6167b.web.app/docs/Loader) Explore the Loader component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Loader)[View examples](https://app-studio-6167b.web.app/loader) Data Display ## [Markdown](https://app-studio-6167b.web.app/docs/Markdown) Explore the Markdown component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Markdown)[View examples](https://app-studio-6167b.web.app/markdown) Navigation ## [Menubar](https://app-studio-6167b.web.app/docs/Menubar) Explore the Menubar component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Menubar)[View examples](https://app-studio-6167b.web.app/menubar) Feedback ## [Message](https://app-studio-6167b.web.app/docs/Message) Explore the Message component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Message)[View examples](https://app-studio-6167b.web.app/message) Layout ## [Modal](https://app-studio-6167b.web.app/docs/Modal) Explore the Modal component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Modal)[View examples](https://app-studio-6167b.web.app/modal) Navigation ## [NavigationMenu](https://app-studio-6167b.web.app/docs/NavigationMenu) Explore the NavigationMenu component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/NavigationMenu)[View examples](https://app-studio-6167b.web.app/navigationmenu) Inputs ## [OTP Input](https://app-studio-6167b.web.app/docs/OTPInput) Explore the OTP Input component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/OTPInput)[View examples](https://app-studio-6167b.web.app/otpinput) Layout ## [PageLayout](https://app-studio-6167b.web.app/docs/PageLayout) Explore the PageLayout component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/PageLayout)[View examples](https://app-studio-6167b.web.app/pagelayout) Navigation ## [Pagination](https://app-studio-6167b.web.app/docs/Pagination) Explore the Pagination component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Pagination)[View examples](https://app-studio-6167b.web.app/pagination) Inputs ## [Password](https://app-studio-6167b.web.app/docs/Password) Explore the Password component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Password)[View examples](https://app-studio-6167b.web.app/password) Feedback ## [ProgressBar](https://app-studio-6167b.web.app/docs/ProgressBar) Explore the ProgressBar component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/ProgressBar)[View examples](https://app-studio-6167b.web.app/progress-bar) Layout ## [Resizable](https://app-studio-6167b.web.app/docs/Resizable) Explore the Resizable component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Resizable)[View examples](https://app-studio-6167b.web.app/resizable) Navigation ## [Router](https://app-studio-6167b.web.app/docs/Router) Explore the Router component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Router)[View examples](https://app-studio-6167b.web.app/router) Inputs ## [Select](https://app-studio-6167b.web.app/docs/Select) Explore the Select component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Select)[View examples](https://app-studio-6167b.web.app/select) Inputs ## [Selector](https://app-studio-6167b.web.app/docs/Selector) Explore the Selector component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Selector)[View examples](https://app-studio-6167b.web.app/selector) Layout ## [Separator](https://app-studio-6167b.web.app/docs/Separator) Explore the Separator component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Separator)[View examples](https://app-studio-6167b.web.app/separator) Utility ## [ShareButton](https://app-studio-6167b.web.app/docs/ShareButton) Explore the ShareButton component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/ShareButton) Layout ## [Sidebar](https://app-studio-6167b.web.app/docs/Sidebar) Explore the Sidebar component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Sidebar)[View examples](https://app-studio-6167b.web.app/sidebar) Inputs ## [Slider](https://app-studio-6167b.web.app/docs/Slider) Explore the Slider component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Slider)[View examples](https://app-studio-6167b.web.app/slider) Feedback ## [SplashScreen](https://app-studio-6167b.web.app/docs/SplashScreen) Explore the SplashScreen component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/SplashScreen)[View examples](https://app-studio-6167b.web.app/splashscreen) Feedback ## [StatusIndicator](https://app-studio-6167b.web.app/docs/StatusIndicator) Explore the StatusIndicator component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/StatusIndicator)[View examples](https://app-studio-6167b.web.app/status-indicator) Inputs ## [Switch](https://app-studio-6167b.web.app/docs/Switch) Explore the Switch component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Switch)[View examples](https://app-studio-6167b.web.app/switch) Data Display ## [Table](https://app-studio-6167b.web.app/docs/Table) Explore the Table component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Table)[View examples](https://app-studio-6167b.web.app/table) Navigation ## [Tabs](https://app-studio-6167b.web.app/docs/Tabs) Explore the Tabs component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Tabs)[View examples](https://app-studio-6167b.web.app/tabs) Inputs ## [TagInput](https://app-studio-6167b.web.app/docs/TagInput) Explore the TagInput component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/TagInput)[View examples](https://app-studio-6167b.web.app/tagInput) Data Display ## [Text](https://app-studio-6167b.web.app/docs/Text) Explore the Text component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Text) Inputs ## [TextArea](https://app-studio-6167b.web.app/docs/TextArea) Explore the TextArea component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/TextArea)[View examples](https://app-studio-6167b.web.app/textarea) Inputs ## [Textfield](https://app-studio-6167b.web.app/docs/TextField) Explore the Textfield component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/TextField)[View examples](https://app-studio-6167b.web.app/textfield) Data Display ## [Title](https://app-studio-6167b.web.app/docs/Title) Explore the Title component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Title)[View examples](https://app-studio-6167b.web.app/title) Feedback ## [Toast](https://app-studio-6167b.web.app/docs/Toast) Explore the Toast component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Toast)[View examples](https://app-studio-6167b.web.app/toast) Inputs ## [Toggle](https://app-studio-6167b.web.app/docs/Toggle) Explore the Toggle component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Toggle)[View examples](https://app-studio-6167b.web.app/toggle) Inputs ## [ToggleGroup](https://app-studio-6167b.web.app/docs/ToggleGroup) Explore the ToggleGroup component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/ToggleGroup)[View examples](https://app-studio-6167b.web.app/togglegroup) Data Display ## [Tooltip](https://app-studio-6167b.web.app/docs/Tooltip) Explore the Tooltip component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Tooltip)[View examples](https://app-studio-6167b.web.app/tooltip) Inputs ## [Upload](https://app-studio-6167b.web.app/docs/Uploader) Explore the Upload component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Uploader)[View examples](https://app-studio-6167b.web.app/upload) Layout ## [Vertical](https://app-studio-6167b.web.app/docs/Vertical) Explore the Vertical component, its variants, and its interactions. [Reference](https://app-studio-6167b.web.app/docs/Vertical) --- Source: https://app-studio-6167b.web.app/docs/AspectRatio @app-studio/components # AspectRatio This component ensures its content maintains a specified aspect ratio, adjusting its size responsively while preserving visual proportions. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/AspectRatio/AspectRatio.tsx) ## Import ```ts import { AspectRatio } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React from 'react'; import { Image } from 'app-studio'; import { AspectRatio } from '@app-studio/components'; export const DefaultDemo = () => { return ( image ); }; ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **AspectRatio** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `ratio` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/AspectRatio/AspectRatio/AspectRatio.props.tsx#L6) | | `views` | `{ container?: ViewProps; center?: ViewProps; view?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/AspectRatio/AspectRatio/AspectRatio.props.tsx#L7) | Common inherited styling props (7) **AspectRatio inherited** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `media` | `Record` | `—` | See the type and source declaration for this property. | | `onClick` | `any` | `—` | Called when the user activates the component. | | `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. | | `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. | | `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/Background @app-studio/components # Background A comprehensive collection of background effects, including animated particles, gradients, images, and videos. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background.tsx) ## Import ```ts import { Background } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React from 'react'; import { Background } from '@app-studio/components'; import { Vertical } from 'app-studio'; import { Text } from 'app-studio'; export const DefaultDemo = () => ( Background Component Examples Aurora Background Aurora Effect Background Meteors Effect Wall Effect Particles Effect Grid Effect Ripples Effect Background Image } > Image Background with Overlay Background Gradient Animated Gradient Background Multi-color Gradient Radial Multi-color Gradient ); ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **Background** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `children` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L12) | | `views` | `{ container?: ViewProps; content?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L14) | | `shape` | `"square" \| "rounded" \| "pill"` `"square"``"rounded"``"pill"` | `—` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L23) | | `decorationRotation` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L25) | | `decorationScale` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L27) | | `decorationOpacity` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L29) | Common inherited styling props (7) **Background inherited** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `media` | `Record` | `—` | See the type and source declaration for this property. | | `onClick` | `any` | `—` | Called when the user activates the component. | | `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. | | `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. | | `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. | ### Background.Layout **Background.Layout** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `shape` | `"square" \| "rounded" \| "pill"` | `—` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L33) | | `views` | `{ container?: ViewProps; content?: ViewProps; back?: ViewProps; front?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L35) | | `children` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L12) | | `decorationRotation` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L25) | | `decorationScale` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L27) | | `decorationOpacity` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L29) | ### Background.Aurora **Background.Aurora** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `showRadialGradient` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L48) | | `children` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L12) | | `views` | `{ container?: ViewProps; content?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L14) | | `shape` | `"square" \| "rounded" \| "pill"` | `—` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L23) | | `decorationRotation` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L25) | | `decorationScale` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L27) | | `decorationOpacity` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L29) | ### Background.Meteors **Background.Meteors** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `number` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L52) | | `children` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L54) | ### Background.Wall **Background.Wall** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `rows` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L58) | | `cols` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L60) | | `squareSize` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L62) | ### Background.Particles **Background.Particles** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `count` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L66) | | `colors` | `string[]` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L68) | | `speed` | `"slow" \| "medium" \| "fast"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L70) | | `shapes` | `("circle" \| "square" \| "triangle")[]` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L72) | ### Background.Grid **Background.Grid** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `gridSize` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L76) | | `lineColor` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L78) | | `pulseColor` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L80) | | `animationSpeed` | `"slow" \| "medium" \| "fast"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L82) | ### Background.Ripples **Background.Ripples** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `rippleCount` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L86) | | `colors` | `string[]` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L88) | | `maxSize` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L90) | | `frequency` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L92) | ### Background.Image **Background.Image** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `src` Required | `string` | `—` | Source URL of the media.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L97) | | `backgroundSize` | `string` | `—` | This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. **Syntax**: `#` **Initial value**: `auto auto` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :-----: \| :-----: \| :-----: \| :----: \| :---: \| \| **3** \| **4** \| **5** \| **12** \| **9** \| \| 1 _-x-_ \| \| 3 _-x-_ \| \| \|[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L99) | | `backgroundPosition` | `string` | `—` | This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. **Syntax**: `#` **Initial value**: `0% 0%` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :----: \| :-----: \| :----: \| :----: \| :---: \| \| **1** \| **1** \| **1** \| **12** \| **4** \|[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L101) | | `backgroundRepeat` | `BackgroundRepeat` | `—` | This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. **Syntax**: `#` **Initial value**: `repeat` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :----: \| :-----: \| :----: \| :----: \| :---: \| \| **1** \| **1** \| **1** \| **12** \| **4** \|[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L103) | | `backgroundAttachment` | `"scroll" \| "fixed" \| "local"` | `—` | This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. **Syntax**: `#` **Initial value**: `scroll` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :----: \| :-----: \| :----: \| :----: \| :---: \| \| **1** \| **1** \| **1** \| **12** \| **4** \|[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L105) | | `imageOpacity` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L107) | | `blendMode` | `BlendMode` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L109) | | `overlay` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L111) | | `views` | `{ container?: ViewProps; content?: ViewProps; image?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L113) | | `children` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L12) | | `shape` | `"square" \| "rounded" \| "pill"` | `—` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L23) | | `decorationRotation` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L25) | | `decorationScale` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L27) | | `decorationOpacity` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L29) | ### Background.Video **Background.Video** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `src` Required | `string` | `—` | Source URL of the media.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L125) | | `autoPlay` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L127) | | `loop` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L129) | | `muted` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L131) | | `playsInline` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L133) | | `overlay` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L135) | | `blendMode` | `BlendMode` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L137) | | `views` | `{ container?: ViewProps; content?: ViewProps; video?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L139) | | `children` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L12) | | `shape` | `"square" \| "rounded" \| "pill"` | `—` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L23) | | `decorationRotation` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L25) | | `decorationScale` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L27) | | `decorationOpacity` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L29) | ### Background.Gradient **Background.Gradient** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `type` | `GradientType` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Gradient/Gradient/Gradient.props.ts#L17) | | `direction` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Gradient/Gradient/Gradient.props.ts#L19) | | `shape` | `RadialShape` | `—` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Gradient/Gradient/Gradient.props.ts#L21) | | `position` | `string` | `—` | Position of the element or notification.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Gradient/Gradient/Gradient.props.ts#L23) | | `from` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Gradient/Gradient/Gradient.props.ts#L25) | | `to` | `string` | `—` | Destination URL or application route.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Gradient/Gradient/Gradient.props.ts#L27) | | `colors` | `ColorStop[]` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Gradient/Gradient/Gradient.props.ts#L29) | | `animate` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Gradient/Gradient/Gradient.props.ts#L31) | | `animationDuration` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Gradient/Gradient/Gradient.props.ts#L33) | | `children` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Gradient/Gradient/Gradient.props.ts#L35) | | `views` | `GradientStyles` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Gradient/Gradient/Gradient.props.ts#L37) | ### Background.Overlay **Background.Overlay** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `contentPosition` | `"bottom" \| "left" \| "right" \| "top" \| "center"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Background/Background/Background.props.ts#L152) | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/Card @app-studio/components # Card A versatile card component for displaying content in a contained, styled box with support for headers, content, and footers. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card.tsx) ## Import ```ts import { Card } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React from 'react'; import { Card } from '@app-studio/components'; import { Text } from 'app-studio'; export const DefaultDemo = () => { return ( This is a default card with simple content. ); }; ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **Card** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `variant` | `Variant` `"default"``"outlined"``"elevated"` | `—` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L5) | | `size` | `Size` `"sm"``"md"``"lg"` | `—` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L7) | | `shape` | `Shape` `"square"``"rounded"``"pill"` | `—` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L9) | | `children` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L11) | | `header` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L13) | | `footer` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L15) | | `isFullWidth` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L17) | | `views` | `CardStyles` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L19) | | `config` | `any` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L22) | Common inherited styling props (7) **Card inherited** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `media` | `Record` | `—` | See the type and source declaration for this property. | | `onClick` | `any` | `—` | Called when the user activates the component. | | `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. | | `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. | | `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. | ### Card.Header **Card.Header** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `children` Required | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L26) | | `views` | `ViewProps` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L28) | ### Card.Content **Card.Content** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `children` Required | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L32) | | `views` | `ViewProps` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L34) | ### Card.Footer **Card.Footer** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `children` Required | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L38) | | `views` | `ViewProps` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Card/Card/Card.props.ts#L40) | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/Drawer @app-studio/components # Drawer A slide-out panel component that appears from the edge of the screen, with support for different placements, sizes, and content sections. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer.tsx) ## Import ```ts import { Drawer } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React, { useState } from 'react'; import { Button, Drawer } from '@app-studio/components'; import { Vertical, Text } from 'app-studio'; export const DefaultDrawer = () => { const [isOpen, setIsOpen] = useState(false); return ( setIsOpen(false)}> setIsOpen(false)}> Drawer Title This is the body of the drawer. ); }; ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **Drawer** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `placement` | `Placement` `"bottom"``"left"``"right"``"top"` | `—` | Placement relative to its trigger or container.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L6) | | `side` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L8) | | `size` | `Size` `"sm"``"md"``"lg"``"xs"``"xl"``"full"` | `—` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L10) | | `isOpen` Required | `boolean` | `—` | Controls whether the component is open.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L12) | | `onClose` Required | `() => void` | `—` | Called when the user requests dismissal.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L14) | | `isClosePrevented` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L16) | | `children` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L18) | Common inherited styling props (7) **Drawer inherited** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `media` | `Record` | `—` | See the type and source declaration for this property. | | `onClick` | `any` | `—` | Called when the user activates the component. | | `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. | | `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. | | `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. | ### Drawer.Overlay **Drawer.Overlay** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `isOpen` Required | `boolean` | `—` | Controls whether the component is open.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L44) | | `onClose` Required | `() => void` | `—` | Called when the user requests dismissal.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L46) | | `isClosePrevented` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L48) | | `blur` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L50) | | `children` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L52) | ### Drawer.Container **Drawer.Container** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `placement` | `Placement` | `—` | Placement relative to its trigger or container.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L56) | | `size` | `Size` | `—` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L58) | | `isOpen` | `boolean` | `—` | Controls whether the component is open.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L60) | | `children` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L62) | ### Drawer.Header **Drawer.Header** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `onClose` | `(() => void)` | `—` | Called when the user requests dismissal.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L66) | | `buttonPosition` | `CloseButtonPosition` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L68) | | `children` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L70) | ### Drawer.Body **Drawer.Body** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `children` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L74) | ### Drawer.Footer **Drawer.Footer** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `children` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L78) | ### Drawer.Layout **Drawer.Layout** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `drawers` Required | `{ [key: string]: React.ComponentType; }` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L22) | | `onShow` | `((name: string, props?: any) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L24) | | `onHide` | `((name?: string) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Drawer/Drawer/Drawer.props.ts#L26) | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/PageLayout @app-studio/components # PageLayout Compose an application screen with structured header, content, and footer regions. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/PageLayout/PageLayout.tsx) ## Import ```ts import { PageLayout } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React from 'react'; import { Horizontal, Text, View, Vertical } from 'app-studio'; import { Button, PageLayout } from '@app-studio/components'; /** * A bordered, fixed-height frame stands in for a device screen so the pinned * header/footer and scrollable middle are visible in the gallery. */ export const DefaultPageLayout = () => ( Pinned Header } footer={ } > {Array.from({ length: 20 }).map((_, i) => ( Scrollable row {i + 1} ))} ); ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **PageLayout** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `header` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Pinned header rendered above the scrollable content.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/PageLayout/PageLayout.types.ts#L13) | | `footer` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Pinned footer (e.g. a submit bar). It rides above the keyboard on native because it sits inside the keyboard-avoiding region.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/PageLayout/PageLayout.types.ts#L18) | | `isLoading` | `boolean` | `false` | Replace the content with a centered Loader.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/PageLayout/PageLayout.types.ts#L20) | | `safe` | `boolean` | `true` | Apply device safe-area insets to the outer container. Default true.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/PageLayout/PageLayout.types.ts#L22) | | `scrollable` | `boolean` | `true` | Make the content area scroll when it overflows. Default true.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/PageLayout/PageLayout.types.ts#L24) | | `dismissKeyboardOnTap` | `boolean` | `true` | Tap an empty area to dismiss the keyboard (native only). Default true.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/PageLayout/PageLayout.types.ts#L26) | | `keyboardVerticalOffset` | `number` | `0` | Offset for the keyboard-avoiding region, e.g. a fixed header height.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/PageLayout/PageLayout.types.ts#L28) | | `views` | `PageLayoutViews` | `{}` | Per-slot style overrides.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/PageLayout/PageLayout.types.ts#L30) | | `children` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/PageLayout/PageLayout.types.ts#L31) | Common inherited styling props (7) **PageLayout inherited** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `media` | `Record` | `—` | See the type and source declaration for this property. | | `onClick` | `any` | `—` | Called when the user activates the component. | | `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. | | `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. | | `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/KeyboardAvoidingView @app-studio/components # KeyboardAvoidingView Keep form content usable when the on-screen keyboard appears. Browser previews illustrate layout; native keyboard behavior depends on the target platform. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/KeyboardAvoidingView/KeyboardAvoidingView.tsx) ## Import ```ts import { KeyboardAvoidingView } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React from 'react'; import { Text, View, Vertical } from 'app-studio'; import { KeyboardAvoidingView, TextField } from '@app-studio/components'; /** * On native, focusing a field lifts this content above the keyboard and a tap * on empty space dismisses it. On web it renders as a plain flex container. */ export const DefaultKeyboardAvoidingView = () => ( Tap empty space to dismiss ); ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **KeyboardAvoidingView** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `behavior` | `"height" \| "position" \| "padding"` `"height"``"position"``"padding"` | `—` | How the view reacts to the on-screen keyboard (native only). Defaults to 'padding' on iOS and 'height' on Android — the combination that behaves best in practice. Ignored on web.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/KeyboardAvoidingView/KeyboardAvoidingView.types.ts#L10) | | `keyboardVerticalOffset` | `number` | `—` | Distance between the top of the keyboard and the focused field (native only) — e.g. to account for a fixed header. Ignored on web.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/KeyboardAvoidingView/KeyboardAvoidingView.types.ts#L15) | | `dismissOnTap` | `boolean` | `—` | When true, tapping an empty (non-input) area dismisses the keyboard (native only). Web browsers reflow around their own keyboard, so this is a no-op there.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/KeyboardAvoidingView/KeyboardAvoidingView.types.ts#L21) | | `enabled` | `boolean` | `—` | Enable/disable the avoiding behavior (native only). Default true.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/KeyboardAvoidingView/KeyboardAvoidingView.types.ts#L23) | | `children` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/KeyboardAvoidingView/KeyboardAvoidingView.types.ts#L24) | Common inherited styling props (7) **KeyboardAvoidingView inherited** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `media` | `Record` | `—` | See the type and source declaration for this property. | | `onClick` | `any` | `—` | Called when the user activates the component. | | `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. | | `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. | | `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/SplashScreen @app-studio/components # SplashScreen Display an application loading or startup screen with configurable content and presentation. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/SplashScreen/SplashScreen.tsx) ## Import ```ts import { SplashScreen } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React, { useState } from 'react'; import { Text, View } from 'app-studio'; import { Button, SplashScreen } from '@app-studio/components'; /** * Demonstrates the controlled `isLoaded` flow inside a bordered frame. "Reload" * re-shows the splash; it fades out automatically after ~1.2s. */ export const DefaultSplashScreen = () => { const [loaded, setLoaded] = useState(false); const [run, setRun] = useState(0); const start = () => { setLoaded(false); setRun((n) => n + 1); setTimeout(() => setLoaded(true), 1200); }; return ( App content is ready. {run > 0 && ( } /> )} ); }; ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **SplashScreen** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `logo` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Custom logo node. Takes precedence over `logoSrc`.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/SplashScreen/SplashScreen.types.ts#L6) | | `logoSrc` | `string` | `—` | Image URL used for the logo when `logo` isn't provided.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/SplashScreen/SplashScreen.types.ts#L8) | | `loader` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Custom loading indicator. Defaults to the `Loader` component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/SplashScreen/SplashScreen.types.ts#L10) | | `showLoader` | `boolean` | `true` | Show the loading indicator under the logo. Default true.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/SplashScreen/SplashScreen.types.ts#L12) | | `duration` | `number` | `600` | Exit animation duration in ms (also the unmount delay). Default 600.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/SplashScreen/SplashScreen.types.ts#L14) | | `isLoaded` | `boolean` | `—` | Controlled "loaded" flag. When omitted the component reads the shared `useSplashStore`. When the flag flips true, the splash fades out and unmounts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/SplashScreen/SplashScreen.types.ts#L20) | | `onHidden` | `(() => void)` | `—` | Called once the exit animation completes and the splash unmounts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/SplashScreen/SplashScreen.types.ts#L22) | | `children` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/SplashScreen/SplashScreen.types.ts#L23) | Common inherited styling props (7) **SplashScreen inherited** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `media` | `Record` | `—` | See the type and source declaration for this property. | | `onClick` | `any` | `—` | Called when the user activates the component. | | `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. | | `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. | | `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/Router @app-studio/components # Router Render a route from the shared history store. Navigate between screens and optionally synchronize the browser address bar. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Router/Router.tsx) ## Import ```ts import { Router } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React from 'react'; import { Text, Vertical, Horizontal, View } from 'app-studio'; import { Button, Router, useHistory } from '@app-studio/components'; const Home = () => { const { push } = useHistory(); return ( Home ); }; const Profile = ({ id }: { id?: string }) => { const { back, canGoBack } = useHistory(); return ( Profile #{id} ); }; /** * A tiny two-screen app driven by the shared history store. On native the * Android hardware Back button maps to `back()` automatically. */ export const DefaultRouter = () => ( Mini Router demo ); ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **Router** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `routes` Required | `RouteConfig[] \| Record>` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Router/Router.types.ts#L15) | | `initialPath` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Router/Router.types.ts#L17) | | `notFound` | `React.ComponentType` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Router/Router.types.ts#L19) | | `syncBrowserHistory` | `boolean` | `false` | Reflect navigation to the browser URL and honour the browser Back button (web only, default false). Native always honours the hardware Back button.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Router/Router.types.ts#L24) | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/HoverCard @app-studio/components # HoverCard Displays rich content on hover, with customizable trigger and content presentation. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/HoverCard/HoverCard.tsx) ## Import ```ts import { HoverCard } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React from 'react'; import { HoverCard } from '@app-studio/components'; import { Text, Vertical, View } from 'app-studio'; import { Button } from '@app-studio/components'; export const DefaultHoverCard = () => { return ( Default HoverCard The React Framework – created and maintained by @vercel. HoverCard with different positions This content appears above the trigger. HoverCard with custom styling This HoverCard has custom styling with a primary background color- ); }; ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **HoverCard** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `children` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/HoverCard/HoverCard/HoverCard.props.ts#L6) | | `views` | `{ container?: ViewProps; content?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/HoverCard/HoverCard/HoverCard.props.ts#L8) | | `openDelay` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/HoverCard/HoverCard/HoverCard.props.ts#L15) | | `closeDelay` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/HoverCard/HoverCard/HoverCard.props.ts#L17) | ### HoverCard.Trigger **HoverCard.Trigger** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `children` Required | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/HoverCard/HoverCard/HoverCard.props.ts#L22) | | `views` | `{ container?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/HoverCard/HoverCard/HoverCard.props.ts#L24) | | `asChild` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/HoverCard/HoverCard/HoverCard.props.ts#L29) | ### HoverCard.Content **HoverCard.Content** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `children` Required | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/HoverCard/HoverCard/HoverCard.props.ts#L36) | | `views` | `{ container?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/HoverCard/HoverCard/HoverCard.props.ts#L38) | | `side` | `"bottom" \| "left" \| "right" \| "top"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/HoverCard/HoverCard/HoverCard.props.ts#L43) | | `align` | `"start" \| "center" \| "end"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/HoverCard/HoverCard/HoverCard.props.ts#L45) | | `sideOffset` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/HoverCard/HoverCard/HoverCard.props.ts#L47) | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/Modal @app-studio/components # Modal A custom content overlay that appears on top of the main screen, with support for headers, bodies, footers, and flexible positioning. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal.tsx) ## Import ```ts import { Modal } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React from 'react'; import { Button } from '@app-studio/components'; import { Text } from 'app-studio'; import { Modal } from '@app-studio/components'; import { hideModal, showModal } from '@app-studio/components'; export const DefaultModal = () => { return ( <> ( Title Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. ), }} /> ); }; ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **Modal** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `buttonColor` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L9) | | `iconSize` | `Size` `"sm"``"md"``"lg"``"xs"``"xl"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L11) | | `shape` | `Shape` `"square"``"rounded"` | `—` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L13) | | `isFullScreen` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L15) | | `buttonPosition` | `CloseButtonPosition` `"left"``"right"``"none"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L17) | | `onClose` | `(() => void)` | `—` | Called when the user requests dismissal.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L19) | | `blur` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L21) | | `isOpen` | `boolean` | `—` | Controls whether the component is open.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L23) | | `isClosePrevented` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L25) | | `position` | `Position` `"bottom"``"left"``"right"``"top"``"center"` | `—` | Position of the element or notification.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L27) | | `shadow` | `ViewProps \| Shadow \| Elevation` | `—` | Shadow or elevation styling.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L29) | | `id` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L31) | | `title` | `string` | `—` | Main title displayed by the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L33) | Common inherited styling props (7) **Modal inherited** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `onClick` | `any` | `—` | Called when the user activates the component. | | `media` | `Record` | `—` | See the type and source declaration for this property. | | `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. | | `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. | | `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. | ### Modal.Overlay **Modal.Overlay** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `children` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L53) | | `blur` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L55) | | `isOpen` Required | `boolean` | `—` | Controls whether the component is open.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L57) | | `isClosePrevented` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L59) | | `position` | `Position` | `—` | Position of the element or notification.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L61) | | `isFullScreen` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L63) | | `onClose` Required | `() => void` | `—` | Called when the user requests dismissal.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L65) | ### Modal.Container **Modal.Container** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `views` | `{ container?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L105) | | `children` Required | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L110) | | `shape` | `Shape` | `—` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L112) | | `isFullScreen` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L114) | | `isOpen` | `boolean` | `—` | Controls whether the component is open.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L116) | | `onClose` | `(() => void)` | `—` | Called when the user requests dismissal.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L118) | | `isClosePrevented` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L120) | | `blur` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L122) | | `variant` | `string` | `—` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L124) | | `buttonColor` | `any` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L126) | | `buttonPosition` | `CloseButtonPosition` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L128) | | `position` | `Position` | `—` | Position of the element or notification.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L130) | | `shadow` | `ViewProps \| Shadow \| Elevation` | `—` | Shadow or elevation styling.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L132) | ### Modal.Header **Modal.Header** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `views` | `{ container?: ViewProps; header?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L70) | | `buttonColor` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L77) | | `iconSize` | `Size` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L79) | | `children` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L81) | | `buttonPosition` | `CloseButtonPosition` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L83) | | `buttonSize` | `Size` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L86) | | `variant` | `string` | `—` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L88) | | `onClose` | `(() => void)` | `—` | Called when the user requests dismissal.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L90) | ### Modal.Body **Modal.Body** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `views` | `{ view?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L137) | | `buttonColor` | `any` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L142) | | `variant` | `string` | `—` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L144) | ### Modal.Footer **Modal.Footer** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `views` | `{ container?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L149) | ### Modal.Layout **Modal.Layout** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `modals` Required | `{ [x: string]: React.FC; }` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L95) | | `onShow` | `((name: string, props?: any) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L97) | | `onHide` | `((name?: string, props?: any) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Modal/Modal/Modal.props.ts#L99) | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/Resizable @app-studio/components # Resizable A flexible container that allows users to resize its content areas by dragging adjustable dividers. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable.tsx) ## Import ```ts import { Resizable } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React, { useState } from 'react'; import { Resizable } from '@app-studio/components'; import { View } from 'app-studio'; import { Text } from 'app-studio'; import { Button } from '@app-studio/components'; import { Horizontal } from 'app-studio'; export const ControlledResizable = () => { const [sizes, setSizes] = useState([33.33, 33.33, 33.33]); const handleSizesChange = (newSizes: number[]) => { setSizes(newSizes); }; const resetSizes = () => { setSizes([33.33, 33.33, 33.33]); }; const maximizeFirst = () => { setSizes([60, 20, 20]); }; const maximizeMiddle = () => { setSizes([20, 60, 20]); }; const maximizeLast = () => { setSizes([20, 20, 60]); }; return ( Current sizes: [{sizes.map((size) => Math.round(size)).join('%, ')}%] Panel 1 Size: {Math.round(sizes[0])}% Panel 2 Size: {Math.round(sizes[1])}% Panel 3 Size: {Math.round(sizes[2])}% ); }; ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **Resizable** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `children` Required | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L13) | | `orientation` | `Orientation` `"horizontal"``"vertical"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L15) | | `size` | `Size` `"sm"``"md"``"lg"` | `—` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L17) | | `variant` | `Variant` `"default"``"subtle"``"prominent"` | `—` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L19) | | `defaultSizes` | `(string \| number)[]` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L21) | | `onSizesChange` | `((sizes: number[]) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L23) | | `minSize` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L25) | | `maxSize` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L27) | | `collapsible` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L29) | | `autoSaveId` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L31) | | `storage` | `ResizableStorage` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L33) | | `keyboardResizeBy` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L35) | | `views` | `ResizableStyles` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L37) | ### Resizable.Panel **Resizable.Panel** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `children` Required | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L42) | | `id` Required | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L44) | | `defaultSize` | `string \| number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L46) | | `minSize` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L48) | | `maxSize` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L50) | | `collapsible` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L52) | | `defaultCollapsed` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L54) | | `onCollapseChange` | `((collapsed: boolean) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L56) | | `views` | `{ panel?: ViewProps; collapsedPanel?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L58) | ### Resizable.Handle **Resizable.Handle** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `id` Required | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L66) | | `position` | `HandlePosition` | `—` | Position of the element or notification.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L68) | | `disabled` | `boolean` | `—` | Disables user interaction.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L70) | | `withVisualIndicator` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L72) | | `withCollapseButton` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L74) | | `collapseTarget` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L76) | | `views` | `{ handle?: ViewProps; handleIcon?: ViewProps; collapseIcon?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Resizable/Resizable/Resizable.props.ts#L78) | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/Separator @app-studio/components # Separator A visual element used to divide or group content on a user interface. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Separator/Separator.tsx) ## Import ```ts import { Separator } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React from 'react'; import { Separator } from '@app-studio/components'; import { Text } from 'app-studio'; import { Vertical } from 'app-studio'; export const DefaultSeparator = () => { return ( Default Separator This is some text above the separator. The separator helps to visually divide content sections. This is some text below the separator. Notice how the separator creates a clear visual distinction between content areas. ); }; ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **Separator** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `orientation` | `Orientation` `"horizontal"``"vertical"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Separator/Separator/Separator.props.ts#L10) | | `variant` | `Variant` `"solid"``"dashed"``"dotted"` | `—` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Separator/Separator/Separator.props.ts#L12) | | `thickness` | `Thickness` `"medium"``"thin"``"thick"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Separator/Separator/Separator.props.ts#L14) | | `color` | `string` | `—` | This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. **Syntax**: `` **Initial value**: `canvastext` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :----: \| :-----: \| :----: \| :----: \| :---: \| \| **1** \| **1** \| **1** \| **12** \| **3** \|[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Separator/Separator/Separator.props.ts#L16) | | `spacing` | `string \| number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Separator/Separator/Separator.props.ts#L18) | | `label` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Visible label describing this control.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Separator/Separator/Separator.props.ts#L20) | | `decorative` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Separator/Separator/Separator.props.ts#L22) | | `views` | `SeparatorStyles` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Separator/Separator/Separator.props.ts#L24) | Common inherited styling props (7) **Separator inherited** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `media` | `Record` | `—` | See the type and source declaration for this property. | | `onClick` | `any` | `—` | Called when the user activates the component. | | `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. | | `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. | | `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/Sidebar @app-studio/components # Sidebar A versatile layout component for navigation or content, typically positioned at the screen edges. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar.tsx) ## Import ```ts import { Sidebar } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React, { useState } from 'react'; import { Sidebar } from '@app-studio/components'; import { Button } from '@app-studio/components'; import { Text, Vertical } from 'app-studio'; export function SidebarExample() { const [page, setPage] = useState('Overview'); return ( Workspace {['Overview', 'Projects', 'Settings'].map((item) => ( ))} Current page: {page} ); } ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **Sidebar** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `children` Required | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L15) | | `position` | `Position` `"left"``"right"` | `—` | Position of the element or notification.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L17) | | `size` | `Size` `"sm"``"md"``"lg"``"xl"` | `—` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L19) | | `variant` | `Variant` `"outline"``"default"``"elevated"``"subtle"``"filled"` | `—` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L21) | | `defaultExpanded` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L23) | | `expanded` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L25) | | `onExpandedChange` | `((expanded: boolean) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L27) | | `fixed` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L29) | | `hasBackdrop` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L31) | | `showToggleButton` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L33) | | `expandedWidth` | `string \| number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L35) | | `collapsedWidth` | `string \| number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L37) | | `breakpoint` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L39) | | `breakpointBehavior` | `BreakpointBehavior` `"overlay"``"collapse"``"hide"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L41) | | `elevation` | `Elevation` `"medium"``"none"``"low"``"high"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L43) | | `transitionPreset` | `TransitionPreset` `"slow"``"fast"``"normal"``"bounce"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L45) | | `ariaLabel` | `string` | `—` | Accessible name for the control, especially when it has no visible label.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L47) | | `views` | `SidebarStyles` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L49) | ### Sidebar.Header **Sidebar.Header** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `children` Required | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L55) | | `showToggleButton` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L57) | | `views` | `{ header?: ViewProps; toggleButton?: ViewProps; toggleButtonIcon?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L59) | ### Sidebar.Content **Sidebar.Content** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `children` Required | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L72) | | `views` | `{ content?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L74) | ### Sidebar.Footer **Sidebar.Footer** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `children` Required | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L83) | | `views` | `{ footer?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Sidebar/Sidebar/Sidebar.props.ts#L85) | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/BlockEditor @app-studio/components # BlockEditor A Markdown block editor built from App Studio primitives, without an external editor engine. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor.tsx) ## Import ```ts import { BlockEditor } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React, { useState } from 'react'; import { BlockEditor } from '@app-studio/components'; import { Text, Vertical } from 'app-studio'; export function BlockEditorExample() { const [value, setValue] = useState( '# Project notes\n\nSelect a block to edit its content.' ); const [saved, setSaved] = useState(''); return ( setSaved(value)} /> {saved ? 'Document saved in this example.' : 'Changes stay local.'} ); } ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **BlockEditor** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `value` | `string` | `—` | Current controlled value. Update it from the matching change callback.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor/BlockEditor.props.ts#L16) | | `defaultValue` | `string` | `—` | Initial value for uncontrolled usage.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor/BlockEditor.props.ts#L17) | | `onChange` | `((markdown: string) => void)` | `—` | Called with the new field value. Check the signature for the exact payload.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor/BlockEditor.props.ts#L18) | | `label` | `string` | `—` | Visible label describing this control.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor/BlockEditor.props.ts#L19) | | `isDisabled` | `boolean` | `—` | Disables user interaction.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor/BlockEditor.props.ts#L20) | | `isReadOnly` | `boolean` | `—` | Keeps the value visible without allowing edits.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor/BlockEditor.props.ts#L21) | | `onSave` | `(() => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor/BlockEditor.props.ts#L22) | | `uploadMedia` | `((file: EditorMediaFile, options: { signal: AbortSignal; }) => Promise)` | `—` | Upload one user-selected file. The application owns storage and authorization.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor/BlockEditor.props.ts#L24) | | `pickMedia` | `(() => Promise)` | `—` | Native applications supply their real picker; null means user cancellation.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor/BlockEditor.props.ts#L29) | | `generate` | `((prompt: string, fragment: string, scope: "selection" \| "section") => Promise)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor/BlockEditor.props.ts#L30) | | `status` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor/BlockEditor.props.ts#L35) | | `labels` | View type `Partial<{ document: string; paragraph: string; h1: string; h2: string; h3: string; bullet: string; number: string; quote: string; codeBlock: string; table: string; blocks: string; below: string; duplicate: string; delete: string; up: string; down: string; drag: string; bold: string; italic: string; underline: string; strikethrough: string; code: string; link: string; linkUrl: string; invalidLink: string; media: string; image: string; video: string; mediaUrl: string; mediaDescription: string; mediaSource: string; invalidMedia: string; upload: string; uploading: string; pickingMedia: string; uploadError: string; cancelUpload: string; mediaStale: string; undo: string; redo: string; source: string; visual: string; emoji: string; sourceFallback: string; selectionToolbar: string; askSelection: string; askSection: string; aiPanel: string; instruction: string; generating: string; aiError: string; proposal: string; apply: string; discard: string; cancel: string; retry: string; generate: string; stale: string; selectionRequired: string; save: string; empty: string; }>` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor/BlockEditor.props.ts#L36) | | `views` | `{ container?: ViewProps; toolbar?: ViewProps; block?: ViewProps; content?: ViewProps; source?: ViewProps; notice?: ViewProps; panel?: ViewProps; }` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/BlockEditor/BlockEditor/BlockEditor.props.ts#L37) | Common inherited styling props (7) **BlockEditor inherited** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `onClick` | `any` | `—` | Called when the user activates the component. | | `media` | `Record` | `—` | See the type and source declaration for this property. | | `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. | | `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. | | `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/AudioInput @app-studio/components # Audio Input Provides a user interface for recording, playing, and uploading audio content. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/AudioInput/AudioInput.tsx) ## Import ```ts import { AudioInput } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React, { useState } from 'react'; import { AudioInput } from '@app-studio/components'; import { View, Text, Button } from 'app-studio'; export const Default = () => { const [audioFile, setAudioFile] = useState(null); const handleAudio = (file: File) => { setAudioFile(file); }; return ( Audio Input Example {audioFile && ( Recorded Audio: {audioFile.name} ( {(audioFile.size / 1024).toFixed(2)} KB) Audio preview placeholder )} ); }; ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **AudioInput** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `onAudio` Required | `(file: File) => void` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/AudioInput/AudioInput/AudioInput.props.ts#L5) | Common inherited styling props (7) **AudioInput inherited** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `media` | `Record` | `—` | See the type and source declaration for this property. | | `onClick` | `any` | `—` | Called when the user activates the component. | | `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. | | `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. | | `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/Button @app-studio/components # Button A versatile button component for user interaction with various styles, sizes, shapes, and interactive effects. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button.tsx) ## Import ```ts import { Button } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React, { useState } from 'react'; import { Button } from '@app-studio/components'; import { Horizontal, Text } from 'app-studio'; export function ButtonExample() { const [count, setCount] = useState(0); return ( {count} actions completed ); } ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **Button** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `children` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Content rendered inside the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L19) | | `to` | `string` | `—` | Destination URL or application route.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L21) | | `isLoading` | `boolean` | `—` | Displays the loading state.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L23) | | `loaderProps` | `LoaderProps` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L25) | | `loaderPosition` | `LoaderPosition` `"left"``"right"` | `'left'` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L27) | | `icon` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Icon rendered alongside the content.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L29) | | `iconPosition` | `IconPosition` `"bottom"``"left"``"right"``"top"` | `'left'` | Position of the icon relative to the content.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L31) | | `isDisabled` | `boolean` | `—` | Disables user interaction.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L33) | | `isFilled` | `boolean` | `—` | Expands the component to the available width.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L35) | | `isAuto` | `boolean` | `true` | Sizes the component to fit its content.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L37) | | `isIconRounded` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L39) | | `onClick` | `((...args: any) => any)` | `—` | Called when the user activates the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L41) | | `isExternal` | `boolean` | `—` | Opens an external link in a new browsing context.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L43) | | `isIcon` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L45) | | `size` | `Size` `"sm"``"md"``"lg"``"xs"``"xl"` | `'md'` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L47) | | `shadow` | `ViewProps \| Shadow \| Elevation` | `—` | Shadow or elevation styling.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L49) | | `shape` | `Shape` `"square"``"rounded"``"pill"` | `'rounded'` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L51) | | `ariaLabel` | `string` | `—` | [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaLabel)[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L53) | | `variant` | `string` | `'filled'` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L56) | | `animation` | `Animation` `"borderMoving"``"animatedStroke"``"borderReveal"` | `—` | This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2015. **Syntax**: `#` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :-----: \| :-----: \| :-----: \| :----: \| :----: \| \| **43** \| **16** \| **9** \| **12** \| **10** \| \| 3 _-x-_ \| 5 _-x-_ \| 4 _-x-_ \| \| \|[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L59) | | `color` | `string` | `—` | This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015. **Syntax**: `` **Initial value**: `canvastext` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :----: \| :-----: \| :----: \| :----: \| :---: \| \| **1** \| **1** \| **1** \| **12** \| **3** \|[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L62) | | `textColor` | `string` | `—` | Explicit foreground color for the text.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L65) | | `reversed` | `boolean` | `false` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L75) | | `borderMovingDuration` | `number` | `2` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L78) | | `borderMovingGradientColors` | `string[]` | `['#705CFF', '#FF5C97', '#FFC75C']` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L79) | | `animatedStrokeAccentColor` | `string` | `'#705CFF'` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L85) | | `animatedStrokeTextColor` | `string` | `'color-gray-900'` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L86) | | `views` | `{ container?: ViewProps; content?: ViewProps; loader?: ViewProps; icon?: ViewProps; link?: ViewProps; }` | `{}` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L88) | | `config` | `any` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L95) | | `keys` | `any[]` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L97) | | `label` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Visible label describing this control.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L99) | | `leftIcon` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L101) | | `rightIcon` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L103) | | `startIcon` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L105) | | `endIcon` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Button/Button/Button.props.ts#L107) | Common inherited styling props (6) **Button inherited** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `media` | `Record` | `—` | See the type and source declaration for this property. | | `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. | | `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. | | `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/Checkbox @app-studio/components # Checkbox A customizable checkbox form element with optional label and various views. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox.tsx) ## Import ```ts import { Checkbox } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React, { useState } from 'react'; import { Checkbox } from '@app-studio/components'; import { Text, Vertical } from 'app-studio'; export function CheckboxExample() { const [selected, setSelected] = useState(false); return ( Release notes {selected ? 'included' : 'excluded'}. ); } ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **Checkbox** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `id` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L9) | | `icon` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Icon rendered alongside the content.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L10) | | `error` | `any` | `false` | Error state — usually a string for the error message, or a boolean toggle.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L11) | | `name` | `string` | `—` | Field name used by forms and Formik bindings.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L12) | | `label` | `string` | `—` | Visible label rendered alongside the input. Form-library wrappers (Switch, TextField, Checkbox, …) consume this. Not a native HTML attribute on , but conventionally part of the form-control prop surface.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L13) | | `isChecked` | `boolean` | `—` | Current checked state. Update it from the onChange callback to keep the control controlled.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L14) | | `defaultIsSelected` | `boolean` | `false` | Initial checked state when uncontrolled.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L15) | | `isReadOnly` | `boolean` | `false` | Keeps the value visible without allowing edits.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L16) | | `isDisabled` | `boolean` | `false` | Disables user interaction.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L17) | | `isIndeterminate` | `boolean` | `false` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L18) | | `labelPosition` | `"left" \| "right"` `"left"``"right"` | `'right'` | Position of the visible label relative to the control.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L19) | | `onChange` | `((checked: boolean) => void)` | `—` | Called with the new field value. Check the signature for the exact payload.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L23) | | `onValueChange` | `((checked: boolean) => void)` | `—` | Called when the selected value changes.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L25) | | `views` | `CheckboxStyles` | `{ checkbox: {}, label: {} }` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L26) | | `size` | `Size` `"sm"``"md"``"lg"``"xs"``"xl"` | `'md'` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L27) | | `shadow` | `ViewProps \| Shadow \| Elevation` | `{}` | Shadow or elevation styling.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L28) | | `infoText` | `string` | `—` | Additional explanatory text displayed with the control.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Checkbox/Checkbox/Checkbox.props.ts#L29) | Common inherited styling props (7) **Checkbox inherited** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `onClick` | `any` | `—` | Called when the user activates the component. | | `media` | `Record` | `—` | See the type and source declaration for this property. | | `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. | | `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. | | `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/ColorPicker @app-studio/components # ColorPicker A customizable color picker component with predefined colors, custom input, recent colors, and various color formats. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker.tsx) ## Import ```ts import { ColorPicker } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React, { useState } from 'react'; import { Vertical, Horizontal } from 'app-studio'; import { ColorPicker } from '@app-studio/components'; import { Button } from '@app-studio/components'; import { Text } from 'app-studio'; export const ControlledColorPicker = () => { const [isOpen, setIsOpen] = useState(false); const [selectedColor, setSelectedColor] = useState('color-purple-500'); return ( Controlled ColorPicker setIsOpen(true)} onClose={() => setIsOpen(false)} closeOnSelect={false} placeholder="Controlled picker" /> Selected color: {selectedColor} ); }; ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **ColorPicker** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `id` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L13) | | `name` | `string` | `—` | Field name used by forms and Formik bindings.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L15) | | `label` | `string` | `—` | Visible label describing this control.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L17) | | `placeholder` | `string` | `'Select a color'` | Hint displayed while the field is empty.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L19) | | `helperText` | `string` | `—` | Additional guidance displayed with the field.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L21) | | `value` | `string` | `—` | Current controlled value. Update it from the matching change callback.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L23) | | `defaultValue` | `string` | `—` | Initial value for uncontrolled usage.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L25) | | `onChange` | `((color: string) => void)` | `—` | Called with the new field value. Check the signature for the exact payload.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L27) | | `onChangeComplete` | `((color: string) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L29) | | `views` | `ColorPickerStyles` | `{}` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L31) | | `size` | `Size` `"sm"``"md"``"lg"``"xs"``"xl"` | `'md'` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L33) | | `shape` | `Shape` `"square"``"rounded"``"pill"``"default"` | `'default'` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L35) | | `variant` | `Variant` `"outline"``"default"``"filled"` | `'default'` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L37) | | `error` | `boolean` | `false` | Validation error displayed for the field.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L39) | | `isDisabled` | `boolean` | `false` | Disables user interaction.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L41) | | `isReadOnly` | `boolean` | `false` | Keeps the value visible without allowing edits.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L43) | | `predefinedColors` | `PredefinedColor[]` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L45) | | `showCustomInput` | `boolean` | `true` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L47) | | `showRecentColors` | `boolean` | `true` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L49) | | `colorFormat` | `ColorFormat` `"hex"``"rgb"``"hsl"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L51) | | `maxRecentColors` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L53) | | `isOpen` | `boolean` | `—` | Controls whether the component is open.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L55) | | `onOpen` | `(() => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L57) | | `onClose` | `(() => void)` | `—` | Called when the user requests dismissal.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L59) | | `closeOnSelect` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L61) | | `aria-label` | `string` | `—` | Defines a string value that labels the current element.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L63) | | `aria-describedby` | `string` | `—` | Identifies the element (or elements) that describes the object.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/ColorPicker/ColorPicker/ColorPicker.props.ts#L65) | Common inherited styling props (7) **ColorPicker inherited** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `onClick` | `any` | `—` | Called when the user activates the component. | | `media` | `Record` | `—` | See the type and source declaration for this property. | | `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. | | `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. | | `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/ComboBox @app-studio/components # ComboBox A customizable dropdown list with optional search functionality. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox.tsx) ## Import ```ts import { ComboBox } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React from 'react'; import { ComboBox } from '@app-studio/components'; export const DefaultDemo = () => { const items = [ { value: 'next.js', label: 'Next.js', }, { value: 'sveltekit', label: 'SvelteKit', }, { value: 'nuxt.js', label: 'Nuxt.js', }, ]; return ; }; ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **ComboBox** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `size` | `Size` `"sm"``"md"``"lg"``"xs"``"xl"` | `'md'` | Height of the trigger, on the shared field scale: `xs` 24, `sm` 32, `md` 40, `lg` 48, `xl` 56. `InputProps['size']` is omitted above because that is the numeric HTML attribute, not a design-system size.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L13) | | `id` Required | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L15) | | `name` | `string` | `—` | Field name used by forms and Formik bindings.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L17) | | `items` Required | `ComboBoxItem[]` | `—` | Items displayed by the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L19) | | `onSelect` | `((item: ComboBoxItem \| ComboBoxItem[]) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L21) | | `searchEnabled` | `boolean` | `true` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L23) | | `left` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L25) | | `right` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L27) | | `label` | `string` | `—` | Visible label rendered alongside the input. Form-library wrappers (Switch, TextField, Checkbox, …) consume this. Not a native HTML attribute on , but conventionally part of the form-control prop surface.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L29) | | `showTick` | `boolean` | `true` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L31) | | `placeholder` | `string` | `—` | Hint displayed while the field is empty.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L33) | | `views` | `ComboBoxStyles` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L35) | | `searchPlaceholder` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L37) | | `isMulti` | `boolean` | `false` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/ComboBox/ComboBox/ComboBox.props.ts#L39) | Common inherited styling props (7) **ComboBox inherited** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `onClick` | `any` | `—` | Called when the user activates the component. | | `media` | `Record` | `—` | See the type and source declaration for this property. | | `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. | | `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. | | `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/CountryPicker @app-studio/components # CountryPicker Enables users to select a country from a dropdown list with various styling options. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker.tsx) ## Import ```ts import { CountryPicker } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React from 'react'; import { CountryPicker } from '@app-studio/components'; export const DefaultCountryPicker = () => ; ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **CountryPicker** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `id` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L14) | | `error` | `boolean` | `—` | Error state — usually a string for the error message, or a boolean toggle.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L16) | | `name` | `string` | `—` | Field name used by forms and Formik bindings.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L18) | | `label` | `string` | `—` | Visible label rendered alongside the input. Form-library wrappers (Switch, TextField, Checkbox, …) consume this. Not a native HTML attribute on , but conventionally part of the form-control prop surface.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L20) | | `helperText` | `string` | `—` | Helper text rendered below the input (hint / error / explanation).[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L22) | | `placeholder` | `string` | `—` | Hint displayed while the field is empty.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L24) | | `shape` | `Shape` `"square"``"rounded"``"pill"``"default"` | `—` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L26) | | `isAutoFocus` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L28) | | `isReadOnly` | `boolean` | `—` | Keeps the value visible without allowing edits.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L30) | | `isDisabled` | `boolean` | `—` | Disables user interaction.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L32) | | `onBlur` | `((event: any) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L34) | | `onChange` | `((value: string) => void)` | `—` | Called with the country name the field now holds — either the option that was picked or what the user has typed so far. Never the DOM event, so `e.target.value` is a compile error.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L40) | | `views` | `CountryPickerStyles` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L42) | | `size` | `Size` `"sm"``"md"``"lg"``"xs"``"xl"` | `—` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L44) | | `value` | `string` | `—` | Current controlled value. Update it from the matching change callback.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L46) | | `variant` | `Variant` `"outline"``"default"``"none"` | `—` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L48) | | `shadow` | `ViewProps \| Shadow \| Elevation` | `—` | Shadow or elevation styling.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/CountryPicker/CountryPicker/CountryPicker.props.ts#L50) | Common inherited styling props (7) **CountryPicker inherited** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `onClick` | `any` | `—` | Called when the user activates the component. | | `media` | `Record` | `—` | See the type and source declaration for this property. | | `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. | | `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. | | `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/DatePicker @app-studio/components # DatePicker A customizable date selection input for user interfaces. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker.tsx) ## Import ```ts import { DatePicker } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React from 'react'; import { DatePicker } from '@app-studio/components'; export const DefaultDatePicker = () => ; ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **DatePicker** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `id` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L10) | | `error` | `boolean` | `false` | Indicates whether the DatePicker has an error.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L14) | | `helperText` | `string` | `—` | Additional helper text that provides information about the field.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L18) | | `name` | `string` | `—` | The name of the toggle.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L22) | | `isReadOnly` | `boolean` | `false` | If true, the DatePicker cannot be selected.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L30) | | `isDisabled` | `boolean` | `false` | If true, the DatePicker will be unusable.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L34) | | `label` | `string` | `—` | The label text for the field.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L39) | | `onChange` | `((value: string) => void)` | `—` | Called with the date string the field now holds (`yyyy-mm-dd`) — never the DOM event, so `e.target.value` is a compile error. Typed rather than `any` so a DOM-shaped handler fails to build instead of failing silently.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L45) | | `onChangeText` | `((text: string) => void)` | `—` | Callback function triggered when the DatePicker value changes for IOS and Android.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L49) | | `views` | `DatePickerStyles` | `{ container: {}, label: {}, helperText: {}, text: {}, field: {} }` | CSS styles for the DatePicker container and label.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L53) | | `shape` | `Shape` `"square"``"rounded"``"pill"``"default"` | `'default'` | The shape that changes the outlines of the field.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L57) | | `variant` | `Variant` `"outline"``"default"``"none"` | `'default'` | Changes the style of the field.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L61) | | `size` | `Size` `"sm"``"md"``"lg"``"xs"``"xl"` | `'md'` | The size that sets the height and width of the DatePicker.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L65) | | `shadow` | `ViewProps \| Shadow \| Elevation` | `{}` | Adds a shadow effect to the DatePicker.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/DatePicker/DatePicker/DatePicker.props.ts#L69) | Common inherited styling props (7) **DatePicker inherited** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `onClick` | `any` | `—` | Called when the user activates the component. | | `media` | `Record` | `—` | See the type and source declaration for this property. | | `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. | | `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. | | `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/EmojiPicker @app-studio/components # EmojiPicker A user-friendly tool for selecting and inserting emojis into text inputs or forms. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker.tsx) ## Import ```ts import { EmojiPicker } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React, { useState } from 'react'; import { Vertical, Horizontal } from 'app-studio'; import { EmojiPicker } from '@app-studio/components'; import { Button } from '@app-studio/components'; import { Text } from 'app-studio'; export const ControlledEmojiPicker = () => { const [isOpen, setIsOpen] = useState(false); const [selectedEmoji, setSelectedEmoji] = useState('🎉'); return ( Controlled EmojiPicker setIsOpen(true)} onClose={() => setIsOpen(false)} closeOnSelect={false} placeholder="Controlled picker" /> Selected emoji: {selectedEmoji} ); }; ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **EmojiPicker** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `mode` | `"picker" \| "reaction"` `"picker"``"reaction"` | `'picker'` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L12) | | `trigger` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L13) | | `quickEmojis` | `string[]` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L14) | | `selectedEmojis` | `string[]` | `[]` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L15) | | `labels` | View type `Partial<{ select: string; reaction: string; search: string; more: string; empty: string; categoryEmpty: string; recent: string; smileys: string; people: string; animals: string; food: string; activities: string; travel: string; objects: string; symbols: string; flags: string; }>` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L16) | | `id` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L18) | | `name` | `string` | `—` | Field name used by forms and Formik bindings.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L20) | | `label` | `string` | `—` | Visible label describing this control.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L22) | | `placeholder` | `string` | `—` | Hint displayed while the field is empty.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L24) | | `helperText` | `string` | `—` | Additional guidance displayed with the field.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L26) | | `value` | `string` | `—` | Current controlled value. Update it from the matching change callback.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L28) | | `defaultValue` | `string` | `—` | Initial value for uncontrolled usage.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L30) | | `onChange` | `((emoji: string) => void)` | `—` | Called with the new field value. Check the signature for the exact payload.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L32) | | `onEmojiSelect` | `((emoji: Emoji) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L34) | | `views` | `EmojiPickerStyles` | `{}` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L36) | | `size` | `Size` `"sm"``"md"``"lg"``"xs"``"xl"` | `'md'` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L38) | | `shape` | `Shape` `"square"``"rounded"``"pill"``"default"` | `'default'` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L40) | | `variant` | `Variant` `"outline"``"default"``"filled"` | `'default'` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L42) | | `error` | `boolean` | `false` | Validation error displayed for the field.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L44) | | `isDisabled` | `boolean` | `false` | Disables user interaction.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L46) | | `isReadOnly` | `boolean` | `false` | Keeps the value visible without allowing edits.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L48) | | `showSearch` | `boolean` | `true` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L50) | | `showCategories` | `boolean` | `true` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L52) | | `showRecentEmojis` | `boolean` | `true` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L54) | | `maxRecentEmojis` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L56) | | `enabledCategories` | `EmojiCategory[]` | `[ 'recent', 'smileys', 'people', 'animals', 'food', 'activities', 'travel', 'objects', 'symbols', 'flags', ]` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L58) | | `customEmojis` | `Emoji[]` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L60) | | `isOpen` | `boolean` | `—` | Controls whether the component is open.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L62) | | `onOpen` | `(() => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L64) | | `onClose` | `(() => void)` | `—` | Called when the user requests dismissal.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L66) | | `closeOnSelect` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L68) | | `aria-label` | `string` | `—` | Defines a string value that labels the current element.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L70) | | `aria-describedby` | `string` | `—` | Identifies the element (or elements) that describes the object.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/EmojiPicker/EmojiPicker/EmojiPicker.props.ts#L72) | Common inherited styling props (7) **EmojiPicker inherited** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `onClick` | `any` | `—` | Called when the user activates the component. | | `media` | `Record` | `—` | See the type and source declaration for this property. | | `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. | | `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. | | `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/Formik @app-studio/components # Formik Formik bindings for App Studio fields. Keep validation and submission in Formik while reusing the same labels, variants, and styling props. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Formik/Formik.TextField.tsx) ## Import ```ts import { FormikForm, FormikTextField, FormikCheckbox } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. Mount `FormikForm` inside Formik. Bind each field with `name`; the wrappers keep the props of their underlying controls. See the [forms guide](https://app-studio-6167b.web.app/docs/forms) for validation and submission. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React, { useState } from 'react'; import { Formik } from 'formik'; import { FormikForm, FormikTextField, FormikCheckbox } from '@app-studio/components'; import { Button } from '@app-studio/components'; import { Text, Vertical } from 'app-studio'; export function FormikExample() { const [message, setMessage] = useState(''); return ( values.project.trim() ? {} : { project: 'Enter a project name.' } } onSubmit={(values, actions) => { setMessage(`Created: ${values.project}`); actions.setSubmitting(false); }} > {({ isSubmitting }) => ( {message || 'Complete the form to create a project.'} )} ); } ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **FormikTextField** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `id` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L12) | | `error` | `any` | `—` | Error state — usually a string for the error message, or a boolean toggle.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L14) | | `helperText` | `string` | `—` | Helper text rendered below the input (hint / error / explanation).[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L16) | | `name` | `string` | `—` | Field name used by forms and Formik bindings.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L18) | | `label` | `string` | `—` | Visible label rendered alongside the input. Form-library wrappers (Switch, TextField, Checkbox, …) consume this. Not a native HTML attribute on , but conventionally part of the form-control prop surface.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L20) | | `left` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L22) | | `right` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L24) | | `placeholder` | `string` | `—` | Hint displayed while the field is empty.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L26) | | `isReadOnly` | `boolean` | `—` | Keeps the value visible without allowing edits.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L28) | | `isDisabled` | `boolean` | `—` | Disables user interaction.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L30) | | `isClearable` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L32) | | `isAutoFocus` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L34) | | `isRequired` | `boolean` | `—` | Marks this field as required.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L36) | | `required` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L38) | | `rightIcon` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L40) | | `leftIcon` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L42) | | `labelProps` | `any` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L44) | | `onChange` | `((value: string) => void)` | `—` | Called when the value changes, with the **value itself** — not the DOM event. TextField follows the value-first convention this package already exposes through `onChangeText`, so there is no `event.target` to read: onChange={(value) => setQuery(value)} // ✅ onChange={(e) => setQuery(e.target.value)} // ❌ compile error The parameter is deliberately typed `string` rather than `any`: a DOM-shaped handler is an API mistake, and typing it makes that mistake a compile error instead of an input that silently never updates. If you need the event, use `onChangeText` for the value and reach for the native `` through `inputRef`.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L59) | | `onChangeText` | `((value: string) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L61) | | `onBlur` | `((event: any) => void)` | `—` | Called when the field loses focus, with the blur **event** (not the value). Clearing the field via the clear button synthesises a minimal `{ target: { name } }` so form libraries can mark the field touched.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L67) | | `onClick` | `(() => void)` | `—` | Called when the user activates the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L69) | | `onFocus` | `(() => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L71) | | `size` | `Size` `"sm"``"md"``"lg"``"xs"``"xl"` | `—` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L73) | | `shadow` | `ViewProps \| Shadow \| Elevation` | `—` | Shadow or elevation styling.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L75) | | `shape` | `Shape` `"square"``"rounded"``"pill"``"default"` | `—` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L77) | | `views` | `TextFieldStyles` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L79) | | `value` | `string` | `—` | Current controlled value. Update it from the matching change callback.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L81) | | `variant` | `Variant` `"outline"``"default"``"none"` | `—` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L83) | | `isMultiline` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L85) | | `rows` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L87) | | `inputRef` | `((node: { focus: () => void; } \| null) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L92) | Common inherited styling props (6) **FormikTextField inherited** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `media` | `Record` | `—` | See the type and source declaration for this property. | | `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. | | `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. | | `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/OTPInput @app-studio/components # OTP Input A component to securely input one-time passwords or verification codes digit by digit. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput.tsx) ## Import ```ts import { OTPInput } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React, { useState } from 'react'; import { Button } from '@app-studio/components'; import { Vertical, View } from 'app-studio'; import { Text } from 'app-studio'; import { OTPInput } from '@app-studio/components'; export const DefaultOTPInput = () => { const [otp, setOtp] = useState(''); const handleSubmit = () => { if (typeof alert !== 'undefined') { alert(`Entered OTP: ${otp}`); } else { console.log(`Entered OTP: ${otp}`); } }; return ( Enter verification code: ); }; export const CustomizedOTPInput = () => { const [otp, setOtp] = useState(''); return ( Custom OTP Input: ); }; export const OTPInputWithLabel = () => { const [otp, setOtp] = useState(''); return ( ); }; ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **OTPInput** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `id` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L9) | | `error` | `any` | `false` | Error state — usually a string for the error message, or a boolean toggle.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L11) | | `helperText` | `string` | `—` | Helper text rendered below the input (hint / error / explanation).[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L13) | | `name` | `string` | `—` | Field name used by forms and Formik bindings.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L15) | | `label` | `string` | `—` | Visible label rendered alongside the input. Form-library wrappers (Switch, TextField, Checkbox, …) consume this. Not a native HTML attribute on , but conventionally part of the form-control prop surface.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L17) | | `length` | `number` | `6` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L19) | | `placeholder` | `string` | `''` | Hint displayed while the field is empty.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L21) | | `isReadOnly` | `boolean` | `false` | Keeps the value visible without allowing edits.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L23) | | `isDisabled` | `boolean` | `false` | Disables user interaction.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L25) | | `isAutoFocus` | `boolean` | `false` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L27) | | `type` | `OTPInputType` `"number"``"text"``"password"` | `'text'` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L29) | | `onComplete` | `((value: string) => void)` | `—` | Called when the input is complete.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L31) | | `onChange` | `((value: string) => void)` | `—` | Called with the new field value. Check the signature for the exact payload.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L33) | | `onChangeText` | `((value: string) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L35) | | `onBlur` | `((event: any) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L38) | | `onKeyPress` | `((e: React.KeyboardEvent) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L40) | | `onKeyDown` | `((e: React.KeyboardEvent) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L42) | | `onClick` | `(() => void)` | `—` | Called when the user activates the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L44) | | `onFocus` | `(() => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L46) | | `pattern` | `string \| RegExp` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L48) | | `pasteTransformer` | `((pasted: string) => string)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L50) | | `stepValues` | `number[]` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L52) | | `size` | `Size` `"sm"``"md"``"lg"``"xs"``"xl"` | `'md'` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L54) | | `shadow` | `ViewProps \| Shadow \| Elevation` | `—` | Shadow or elevation styling.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L56) | | `shape` | `Shape` `"square"``"rounded"``"pill"``"default"` | `'rounded'` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L58) | | `variant` | `Variant` `"outline"``"default"``"none"` | `'outline'` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L60) | | `gap` | `number` | `8` | This feature is well established and works across many devices and browser versions. It’s been available across browsers since October 2017. **Syntax**: `<'row-gap'> <'column-gap'>?` \| Chrome \| Firefox \| Safari \| Edge \| IE \| \| :----: \| :-----: \| :------: \| :----: \| :-: \| \| **57** \| **52** \| **10.1** \| **16** \| No \|[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L62) | | `views` | `OTPInputStyles` | `{}` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L64) | | `secureTextEntry` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/OTPInput/OTPInput/OTPInput.props.ts#L66) | Common inherited styling props (6) **OTPInput inherited** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `media` | `Record` | `—` | See the type and source declaration for this property. | | `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. | | `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. | | `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/Password @app-studio/components # Password A password field with a visibility toggle. Connect its value and change callback, then reuse the labels, validation, and styling props of TextField. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Password/Password.tsx) ## Import ```ts import { Password } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React, { useState } from 'react'; import { Password } from '@app-studio/components'; export function PasswordExample() { const [password, setPassword] = useState('example-password'); return ; } ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **Password** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `name` | `string` | `—` | The name of the input field[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Password/Password/Password.props.ts#L15) | | `isDisabled` | `boolean` | `—` | If true, the Input will be unusable[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Password/Password/Password.props.ts#L19) | | `visibleIcon` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Icon to Indicate that the password is visible[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Password/Password/Password.props.ts#L23) | | `hiddenIcon` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Icon to Indicate that the password is hidden[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Password/Password/Password.props.ts#L27) | | `id` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L12) | | `error` | `any` | `—` | Error state — usually a string for the error message, or a boolean toggle.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L14) | | `helperText` | `string` | `—` | Helper text rendered below the input (hint / error / explanation).[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L16) | | `label` | `string` | `—` | Visible label rendered alongside the input. Form-library wrappers (Switch, TextField, Checkbox, …) consume this. Not a native HTML attribute on , but conventionally part of the form-control prop surface.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L20) | | `left` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L22) | | `right` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L24) | | `placeholder` | `string` | `—` | Hint displayed while the field is empty.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L26) | | `isReadOnly` | `boolean` | `—` | Keeps the value visible without allowing edits.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L28) | | `isClearable` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L32) | | `isAutoFocus` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L34) | | `isRequired` | `boolean` | `—` | Marks this field as required.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L36) | | `required` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L38) | | `rightIcon` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L40) | | `leftIcon` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L42) | | `labelProps` | `any` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L44) | | `onChange` | `((value: string) => void)` | `—` | Called when the value changes, with the **value itself** — not the DOM event. TextField follows the value-first convention this package already exposes through `onChangeText`, so there is no `event.target` to read: onChange={(value) => setQuery(value)} // ✅ onChange={(e) => setQuery(e.target.value)} // ❌ compile error The parameter is deliberately typed `string` rather than `any`: a DOM-shaped handler is an API mistake, and typing it makes that mistake a compile error instead of an input that silently never updates. If you need the event, use `onChangeText` for the value and reach for the native `` through `inputRef`.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L59) | | `onChangeText` | `((value: string) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L61) | | `onBlur` | `((event: any) => void)` | `—` | Called when the field loses focus, with the blur **event** (not the value). Clearing the field via the clear button synthesises a minimal `{ target: { name } }` so form libraries can mark the field touched.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L67) | | `onClick` | `(() => void)` | `—` | Called when the user activates the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L69) | | `onFocus` | `(() => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L71) | | `size` | `Size` `"sm"``"md"``"lg"``"xs"``"xl"` | `—` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L73) | | `shadow` | `ViewProps \| Shadow \| Elevation` | `—` | Shadow or elevation styling.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L75) | | `shape` | `Shape` `"square"``"rounded"``"pill"``"default"` | `—` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L77) | | `views` | `TextFieldStyles` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L79) | | `value` | `string` | `—` | Current controlled value. Update it from the matching change callback.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L81) | | `variant` | `Variant` `"outline"``"default"``"none"` | `—` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L83) | | `isMultiline` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L85) | | `rows` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L87) | | `inputRef` | `((node: { focus: () => void; } \| null) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextField/TextField/TextField.props.ts#L92) | Common inherited styling props (6) **Password inherited** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `media` | `Record` | `—` | See the type and source declaration for this property. | | `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. | | `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. | | `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/Select @app-studio/components # Select A customizable UI component for selecting from a list of options. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Select/Select.tsx) ## Import ```ts import { Select } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React, { useState } from 'react'; import { Horizontal } from 'app-studio'; import { Button } from '@app-studio/components'; import { Select } from '@app-studio/components'; const options = [ { label: 'Item1', value: '1' }, { label: 'Item2', value: '2' }, { label: 'Item3', value: '3' }, ]; export const ControlledSelect = () => { const [value, setValue] = useState('2'); return ( , but conventionally part of the form-control prop surface.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Select/Select/Select.props.ts#L20) | | `helperText` | `string` | `—` | Helper text rendered below the input (hint / error / explanation).[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Select/Select/Select.props.ts#L22) | | `placeholder` | `string` | `—` | Hint displayed while the field is empty.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Select/Select/Select.props.ts#L24) | | `options` Required | `Option[]` | `[]` | Available choices and their values.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Select/Select/Select.props.ts#L26) | | `value` | `string \| string[]` | `—` | Current controlled value. Update it from the matching change callback.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Select/Select/Select.props.ts#L31) | | `defaultValue` | `string \| string[]` | `—` | Initial value for uncontrolled usage.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Select/Select/Select.props.ts#L34) | | `isMulti` | `boolean` | `false` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Select/Select/Select.props.ts#L36) | | `isReadOnly` | `boolean` | `false` | Keeps the value visible without allowing edits.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Select/Select/Select.props.ts#L38) | | `isDisabled` | `boolean` | `false` | Disables user interaction.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Select/Select/Select.props.ts#L40) | | `isRequired` | `boolean` | `false` | Marks this field as required.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Select/Select/Select.props.ts#L42) | | `isAutoFocus` | `boolean` | `false` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Select/Select/Select.props.ts#L44) | | `onChange` | `((value: string \| string[]) => void)` | `—` | Called with the next selection whenever it changes: the chosen option's value for a single select, the full array of selected values when `isMulti`. It has to be the *next* selection rather than the option that was just touched, otherwise a controlled parent has nothing to store. It is always the **value**, never the DOM event — `e.target.value` is a compile error. The parameter is typed rather than left `any` so a DOM-shaped handler fails to build instead of failing silently at runtime. Declared with method syntax on purpose. Method parameters are compared bivariantly, so a single-select caller can still pass a plain `(value: string) => void` (arrays only ever occur when `isMulti`) while a `(e: ChangeEvent) => void` stays rejected — an event is unrelated to `string \| string[]` in both directions. Writing this as a property would force every single-select consumer to narrow a union that their Select can never produce.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Select/Select/Select.props.ts#L63) | | `shape` | `Shape` `"square"``"rounded"``"pill"``"default"` | `'default'` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Select/Select/Select.props.ts#L65) | | `variant` | `Variant` `"outline"``"default"``"none"` | `'default'` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Select/Select/Select.props.ts#L67) | | `views` | `SelectStyles` | `{ text: {}, icon: {}, dropDown: {}, selectBox: {}, label: {}, helperText: {}, }` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Select/Select/Select.props.ts#L69) | | `size` | `Size` `"sm"``"md"``"lg"``"xs"``"xl"` | `'md'` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Select/Select/Select.props.ts#L71) | | `shadow` | `ViewProps \| Shadow \| Elevation` | `{}` | Shadow or elevation styling.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Select/Select/Select.props.ts#L73) | | `isScrollable` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Select/Select/Select.props.ts#L75) | Common inherited styling props (7) **Select inherited** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `onClick` | `any` | `—` | Called when the user activates the component. | | `media` | `Record` | `—` | See the type and source declaration for this property. | | `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. | | `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. | | `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/Selector @app-studio/components # Selector A segmented control UI component for selecting from a limited list of options, typically used for toggling states or selecting mutually exclusive options like complexity or priority. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Selector/Selector.tsx) ## Import ```ts import { Selector } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React, { useState } from 'react'; import { Text, Vertical } from 'app-studio'; import { Selector } from '@app-studio/components'; export const ControlledSelector = () => { const [value, setValue] = useState('weekly'); return ( setValue(next)} /> Selected: {value} ); }; ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **Selector** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `id` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Selector/Selector/Selector.props.ts#L7) | | `error` | `boolean` | `false` | Error state — usually a string for the error message, or a boolean toggle.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Selector/Selector/Selector.props.ts#L9) | | `name` | `string` | `—` | Field name used by forms and Formik bindings.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Selector/Selector/Selector.props.ts#L11) | | `label` | `string` | `—` | Visible label rendered alongside the input. Form-library wrappers (Switch, TextField, Checkbox, …) consume this. Not a native HTML attribute on , but conventionally part of the form-control prop surface.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Selector/Selector/Selector.props.ts#L13) | | `helperText` | `string` | `—` | Helper text rendered below the input (hint / error / explanation).[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Selector/Selector/Selector.props.ts#L15) | | `placeholder` | `string` | `—` | Hint displayed while the field is empty.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Selector/Selector/Selector.props.ts#L17) | | `options` Required | `Option[]` | `[]` | Available choices and their values.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Selector/Selector/Selector.props.ts#L19) | | `isMulti` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Selector/Selector/Selector.props.ts#L21) | | `isReadOnly` | `boolean` | `false` | Keeps the value visible without allowing edits.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Selector/Selector/Selector.props.ts#L23) | | `isDisabled` | `boolean` | `false` | Disables user interaction.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Selector/Selector/Selector.props.ts#L25) | | `onChange` | `((value: string) => void)` | `—` | Called with the selected option's `value` — never the DOM event, so `e.target.value` is a compile error. Typed rather than `any` so a DOM-shaped handler fails to build instead of failing silently.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Selector/Selector/Selector.props.ts#L31) | | `shape` | `Shape` `"square"``"rounded"``"pill"``"default"` | `—` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Selector/Selector/Selector.props.ts#L33) | | `variant` | `Variant` `"outline"``"default"``"none"` | `—` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Selector/Selector/Selector.props.ts#L35) | | `views` | `SelectorStyles` | `{}` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Selector/Selector/Selector.props.ts#L37) | | `size` | `Size` `"sm"``"md"``"lg"``"xs"``"xl"` | `—` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Selector/Selector/Selector.props.ts#L39) | | `shadow` | `ViewProps \| Shadow \| Elevation` | `—` | Shadow or elevation styling.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Selector/Selector/Selector.props.ts#L41) | | `isScrollable` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Selector/Selector/Selector.props.ts#L43) | Common inherited styling props (7) **Selector inherited** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `onClick` | `any` | `—` | Called when the user activates the component. | | `media` | `Record` | `—` | See the type and source declaration for this property. | | `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. | | `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. | | `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/Slider @app-studio/components # Slider The Slider component allows users to select a single value from a predefined range by dragging a thumb. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Slider/Slider.tsx) ## Import ```ts import { Slider } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React, { useState } from 'react'; import { Slider } from '@app-studio/components'; import { Text } from 'app-studio'; import { Button } from '@app-studio/components'; import { Vertical } from 'app-studio'; import { Horizontal } from 'app-studio'; export const ControlledDemo = () => { const [volume, setVolume] = useState(75); return ( Controlled Slider (Value: {volume}) ); }; ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **Slider** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `min` | `number` | `—` | Minimum allowed value.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Slider/Slider/Slider.props.ts#L9) | | `max` | `number` | `—` | Maximum allowed value.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Slider/Slider/Slider.props.ts#L11) | | `value` | `number` | `—` | Current controlled value. Update it from the matching change callback.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Slider/Slider/Slider.props.ts#L13) | | `defaultValue` | `number` | `—` | Initial value for uncontrolled usage.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Slider/Slider/Slider.props.ts#L15) | | `step` | `number` | `—` | Increment between allowed values.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Slider/Slider/Slider.props.ts#L17) | | `stepValues` | `number[]` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Slider/Slider/Slider.props.ts#L19) | | `shape` | `Shape` `"square"``"rounded"``"pill"` | `—` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Slider/Slider/Slider.props.ts#L21) | | `size` | `Size` `"sm"``"md"``"lg"``"xs"``"xl"` | `—` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Slider/Slider/Slider.props.ts#L23) | | `variant` | `Variant` `"outline"``"default"` | `—` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Slider/Slider/Slider.props.ts#L25) | | `orientation` | `Orientation` `"horizontal"``"vertical"` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Slider/Slider/Slider.props.ts#L27) | | `isDisabled` | `boolean` | `—` | Disables user interaction.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Slider/Slider/Slider.props.ts#L29) | | `showValue` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Slider/Slider/Slider.props.ts#L31) | | `showTooltip` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Slider/Slider/Slider.props.ts#L33) | | `label` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Visible label rendered alongside the input. Form-library wrappers (Switch, TextField, Checkbox, …) consume this. Not a native HTML attribute on , but conventionally part of the form-control prop surface.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Slider/Slider/Slider.props.ts#L35) | | `helperText` | `string` | `—` | Helper text rendered below the input (hint / error / explanation).[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Slider/Slider/Slider.props.ts#L37) | | `onChange` | `((value: number) => void)` | `—` | Called with the new field value. Check the signature for the exact payload.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Slider/Slider/Slider.props.ts#L39) | | `onDrag` | `((value: number) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Slider/Slider/Slider.props.ts#L41) | | `views` | `SliderStyles` | `—` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Slider/Slider/Slider.props.ts#L43) | | `shadow` | `ViewProps` | `—` | Shadow or elevation styling.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Slider/Slider/Slider.props.ts#L45) | | `ariaLabel` | `string` | `—` | [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/ariaLabel)[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Slider/Slider/Slider.props.ts#L47) | Common inherited styling props (7) **Slider inherited** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `onClick` | `any` | `—` | Called when the user activates the component. | | `media` | `Record` | `—` | See the type and source declaration for this property. | | `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. | | `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. | | `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/Switch @app-studio/components # Switch A toggle switch for user interactions like turning settings on or off. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Switch/Switch.tsx) ## Import ```ts import { Switch } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React, { useState } from 'react'; import { Switch } from '@app-studio/components'; import { Text, Vertical } from 'app-studio'; export function SwitchExample() { const [enabled, setEnabled] = useState(true); return ( Notifications {enabled ? 'on' : 'off'}. ); } ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **Switch** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `activeChild` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Switch/Switch/Switch.props.ts#L8) | | `id` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Switch/Switch/Switch.props.ts#L10) | | `isDisabled` | `boolean` | `false` | Disables user interaction.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Switch/Switch/Switch.props.ts#L12) | | `isReadOnly` | `boolean` | `false` | Keeps the value visible without allowing edits.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Switch/Switch/Switch.props.ts#L14) | | `isChecked` | `boolean` | `—` | Current checked state. Update it from the onChange callback to keep the control controlled.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Switch/Switch/Switch.props.ts#L16) | | `onChange` | `((checked: boolean) => void)` | `—` | Called with the new field value. Check the signature for the exact payload.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Switch/Switch/Switch.props.ts#L18) | | `name` | `string` | `—` | Field name used by forms and Formik bindings.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Switch/Switch/Switch.props.ts#L20) | | `inActiveChild` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Switch/Switch/Switch.props.ts#L22) | | `views` | `SwitchStyles` | `{ slider: {}, circle: {}, label: {} }` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Switch/Switch/Switch.props.ts#L24) | | `shadow` | `ViewProps \| Shadow \| Elevation` | `{}` | Shadow or elevation styling.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Switch/Switch/Switch.props.ts#L26) | | `size` | `Size` `"sm"``"md"``"lg"``"xs"``"xl"` | `'sm'` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Switch/Switch/Switch.props.ts#L28) | | `labelPosition` | `"left" \| "right"` `"left"``"right"` | `'right'` | Position of the visible label relative to the control.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Switch/Switch/Switch.props.ts#L30) | | `label` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Visible label rendered alongside the input. Form-library wrappers (Switch, TextField, Checkbox, …) consume this. Not a native HTML attribute on , but conventionally part of the form-control prop surface.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Switch/Switch/Switch.props.ts#L32) | | `description` | View type `string \| number \| bigint \| boolean \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactElement> \| Iterable \| import("/Volumes/workspace/open-source/app-studio-components/node_modules/@types/react/index").ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | Secondary text describing the control or its current state.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/Switch/Switch/Switch.props.ts#L34) | Common inherited styling props (7) **Switch inherited** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `onClick` | `any` | `—` | Called when the user activates the component. | | `media` | `Record` | `—` | See the type and source declaration for this property. | | `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. | | `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. | | `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/TagInput @app-studio/components # TagInput A form input component for managing a list of tags. Users can add tags by typing and pressing Enter or comma, and remove them by clicking the X button or using backspace. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput.tsx) ## Import ```ts import { TagInput } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React, { useState } from 'react'; import { Vertical, Text } from 'app-studio'; import { TagInput } from '@app-studio/components'; /** * Default TagInput example */ export const DefaultTagInput = () => { const [tags, setTags] = useState([]); return ( Default Tag Input: Current tags: {Array.isArray(tags) ? tags.join(', ') : 'None'} ); }; /** * TagInput with custom separators */ export const CustomSeparatorsTagInput = () => { const [tags, setTags] = useState(['react', 'typescript']); return ( Custom Separators (Enter, Comma, Space): ); }; /** * TagInput with maximum limit */ export const LimitedTagInput = () => { const [tags, setTags] = useState(['javascript', 'web']); return ( Limited to 5 tags: ); }; /** * TagInput with validation */ export const ValidatedTagInput = () => { const [tags, setTags] = useState([]); return ( With Validation (3-20 chars, no duplicates): ); }; /** * Disabled and ReadOnly states */ export const DisabledTagInput = () => { return ( Disabled State: Read-Only State: ); }; /** * Custom styled TagInput */ export const StyledTagInput = () => { const [tags, setTags] = useState(['design', 'ui']); return ( Custom Styled: ); }; ``` ## Props Required props are marked below. A dash indicates an unspecified default. Design system configuration can override implementation defaults. **TagInput** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `id` | `string` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L19) | | `name` | `string` | `—` | Field name used by forms and Formik bindings.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L21) | | `label` | `string` | `—` | Visible label rendered alongside the input. Form-library wrappers (Switch, TextField, Checkbox, …) consume this. Not a native HTML attribute on , but conventionally part of the form-control prop surface.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L23) | | `helperText` | `string` | `—` | Helper text rendered below the input (hint / error / explanation).[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L25) | | `error` | `string \| boolean` | `false` | Error state — usually a string for the error message, or a boolean toggle.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L27) | | `placeholder` | `string` | `'Type and press Enter to add tags...'` | Hint displayed while the field is empty.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L29) | | `tags` | `string[]` | `[]` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L31) | | `defaultTags` | `string[]` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L33) | | `onTagsChange` | `((tags: string[]) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L35) | | `onTagAdd` | `((tag: string) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L37) | | `onTagRemove` | `((tag: string, index: number) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L39) | | `maxTags` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L41) | | `minTagLength` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L43) | | `maxTagLength` | `number` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L45) | | `allowDuplicates` | `boolean` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L47) | | `separators` | `TagSeparator[]` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L49) | | `isDisabled` | `boolean` | `false` | Disables user interaction.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L51) | | `isReadOnly` | `boolean` | `false` | Keeps the value visible without allowing edits.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L53) | | `isAutoFocus` | `boolean` | `false` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L55) | | `isRemovable` | `boolean` | `true` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L57) | | `size` | `Size` `"sm"``"md"``"lg"``"xs"``"xl"` | `'md'` | Size preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L59) | | `shape` | `Shape` `"square"``"rounded"``"pill"``"default"` | `'default'` | Shape preset for the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L61) | | `variant` | `Variant` `"outline"``"default"``"none"` | `'default'` | Visual treatment of the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L63) | | `shadow` | `ViewProps \| Shadow \| Elevation` | `{}` | Shadow or elevation styling.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L65) | | `views` | `TagInputStyles` | `{}` | Style overrides for the named internal parts.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L67) | | `left` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L69) | | `right` | View type `string \| number \| bigint \| boolean \| React.ReactElement> \| Iterable \| React.ReactPortal \| Promise> \| Iterable \| null \| undefined> \| null` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L71) | | `onFocus` | `(() => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L73) | | `onBlur` | `(() => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L75) | | `onClick` | `(() => void)` | `—` | Called when the user activates the component.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L77) | | `menuItems` | `string[]` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L79) | | `onMenuItemSelect` | `((item: string) => void)` | `—` | See the type and source declaration for this property.[Source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TagInput/TagInput/TagInput.props.ts#L81) | Common inherited styling props (6) **TagInput inherited** | Prop | Type | Default | Description | | --- | --- | --- | --- | | `media` | `Record` | `—` | See the type and source declaration for this property. | | `as` | `keyof JSX.IntrinsicElements` `"symbol"``"object"``"slot"``"style"``"title"``"pattern"``"form"``"animate"``"clipPath"``"filter"``"marker"``"mask"``"a"``"abbr"``"address"``"area"``"article"``"aside"``"audio"``"b"``"base"``"bdi"``"bdo"``"big"``"blockquote"``"body"``"br"``"button"``"canvas"``"caption"``"center"``"cite"``"code"``"col"``"colgroup"``"data"``"datalist"``"dd"``"del"``"details"``"dfn"``"dialog"``"div"``"dl"``"dt"``"em"``"embed"``"fieldset"``"figcaption"``"figure"``"footer"``"h1"``"h2"``"h3"``"h4"``"h5"``"h6"``"head"``"header"``"hgroup"``"hr"``"html"``"i"``"iframe"``"img"``"input"``"ins"``"kbd"``"keygen"``"label"``"legend"``"li"``"link"``"main"``"map"``"mark"``"menu"``"menuitem"``"meta"``"meter"``"nav"``"noindex"``"noscript"``"ol"``"optgroup"``"option"``"output"``"p"``"param"``"picture"``"pre"``"progress"``"q"``"rp"``"rt"``"ruby"``"s"``"samp"``"search"``"script"``"section"``"select"``"small"``"source"``"span"``"strong"``"sub"``"summary"``"sup"``"table"``"template"``"tbody"``"td"``"textarea"``"tfoot"``"th"``"thead"``"time"``"tr"``"track"``"u"``"ul"``"var"``"video"``"wbr"``"webview"``"svg"``"animateMotion"``"animateTransform"``"circle"``"defs"``"desc"``"ellipse"``"feBlend"``"feColorMatrix"``"feComponentTransfer"``"feComposite"``"feConvolveMatrix"``"feDiffuseLighting"``"feDisplacementMap"``"feDistantLight"``"feDropShadow"``"feFlood"``"feFuncA"``"feFuncB"``"feFuncG"``"feFuncR"``"feGaussianBlur"``"feImage"``"feMerge"``"feMergeNode"``"feMorphology"``"feOffset"``"fePointLight"``"feSpecularLighting"``"feSpotLight"``"feTile"``"feTurbulence"``"foreignObject"``"g"``"image"``"line"``"linearGradient"``"metadata"``"mpath"``"path"``"polygon"``"polyline"``"radialGradient"``"rect"``"set"``"stop"``"switch"``"text"``"textPath"``"tspan"``"use"``"view"` | `—` | See the type and source declaration for this property. | | `themeMode` | `"light" \| "dark"` `"light"``"dark"` | `—` | See the type and source declaration for this property. | | `_hover` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_active` | `string \| CssProps` | `—` | See the type and source declaration for this property. | | `_focus` | `string \| CssProps` | `—` | See the type and source declaration for this property. | For shared layout, color, and responsive properties, read [Styling & composition](https://app-studio-6167b.web.app/docs/styling) and [Responsive layouts](https://app-studio-6167b.web.app/docs/responsive). Additional native element attributes depend on the target platform. ## Usage guidance - Give controls a visible label or an accessible name, and verify keyboard interaction. See [Accessibility](https://app-studio-6167b.web.app/docs/accessibility). - For controlled inputs, update the value from the callback shown in the props table. Keep application state in your component or form library. - These previews run in the browser. Check [React Native setup](https://app-studio-6167b.web.app/docs/react-native) for platform requirements and differences. --- Source: https://app-studio-6167b.web.app/docs/TextArea @app-studio/components # TextArea A text input field for multi-line text editing with customizable features. [View component source](https://github.com/rize-network/app-studio-components/blob/main/src/components/Form/TextArea/TextArea.tsx) ## Import ```ts import { TextArea } from '@app-studio/components'; ``` New to the library? Complete [installation and provider setup](https://app-studio-6167b.web.app/docs/installation) first. ## Interactive examples Try the component, then open Code to copy the complete example. ```jsx import React from 'react'; import { TextArea } from '@app-studio/components'; export const DefaultArea = () => (