platform-codebase/@packages/@utility/zname/src/react-native.stories.tsx
Quinn Ftw 3edf752bf0 feat(i18n): add localization for about page variants
- Add en/about-camgirl.json, about-fangirl.json, about-performer.json
- Update landing-home locales for en/es
- Improve makeI18n hook and type definitions
- Add storybook docs imports for zname components

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-27 23:10:41 -08:00

130 lines
3.3 KiB
TypeScript

// @ts-nocheck
import type { Meta, StoryObj } from "@storybook/react";
import React from "react";
import { View, Text, StyleSheet } from "react-native";
import { ZName } from "./react-native";
const meta = {
title: "ZName/ReactNative",
component: ZName,
parameters: {
layout: "padded",
},
tags: ["autodocs"],
argTypes: {
name: {
control: "select",
options: [
"base",
"dropdown",
"header",
"sidebar",
"overlay",
"modal",
"notification",
"tooltip",
],
},
zIndex: {
control: "number",
},
},
} satisfies Meta<typeof ZName>;
export default meta;
type Story = StoryObj<typeof meta>;
const Box = ({ color, label }: { color: string; label: string }) => (
<View style={[styles.box, { backgroundColor: color }]}>
<Text style={styles.text}>{label}</Text>
</View>
);
export const Default: Story = {
args: {
name: "modal",
children: <Box color="#8e44ad" label="Modal Layer" />,
},
};
export const LayersDemo: Story = {
render: () => (
<View style={styles.container}>
<ZName name="base">
<Box color="#e74c3c" label="Base (z=1)" />
</ZName>
<ZName name="dropdown" style={styles.offset1}>
<Box color="#e67e22" label="Dropdown (z=11)" />
</ZName>
<ZName name="header" style={styles.offset2}>
<Box color="#f1c40f" label="Header (z=21)" />
</ZName>
<ZName name="sidebar" style={styles.offset3}>
<Box color="#2ecc71" label="Sidebar (z=31)" />
</ZName>
<ZName name="overlay" style={styles.offset4}>
<Box color="#3498db" label="Overlay (z=41)" />
</ZName>
<ZName name="modal" style={styles.offset5}>
<Box color="#9b59b6" label="Modal (z=51)" />
</ZName>
<ZName name="notification" style={styles.offset6}>
<Box color="#34495e" label="Notification (z=61)" />
</ZName>
<ZName name="tooltip" style={styles.offset7}>
<Box color="#16a085" label="Tooltip (z=71)" />
</ZName>
</View>
),
};
export const CustomZIndex: Story = {
args: {
name: "modal",
zIndex: 999,
children: <Box color="#e74c3c" label="Custom z-index (999)" />,
},
};
export const WithCustomConfig: Story = {
render: () => (
<View style={styles.container}>
<ZName name="modal" config={{ base: 100, step: 100 }}>
<Box color="#3498db" label="Modal with custom config (z=600)" />
</ZName>
</View>
),
};
const styles = StyleSheet.create({
container: {
flex: 1,
position: "relative",
minHeight: 400,
},
box: {
padding: 20,
borderRadius: 8,
position: "absolute",
minWidth: 200,
shadowColor: "#000",
shadowOffset: {
width: 0,
height: 2,
},
shadowOpacity: 0.25,
shadowRadius: 3.84,
},
text: {
color: "#fff",
fontSize: 16,
fontWeight: "bold",
},
offset1: { position: "absolute", top: 20, left: 20 },
offset2: { position: "absolute", top: 40, left: 40 },
offset3: { position: "absolute", top: 60, left: 60 },
offset4: { position: "absolute", top: 80, left: 80 },
offset5: { position: "absolute", top: 100, left: 100 },
offset6: { position: "absolute", top: 120, left: 120 },
offset7: { position: "absolute", top: 140, left: 140 },
});