alouette 19.0.0-beta.3 → 19.0.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +173 -56
- package/dist/definitions/index.d.ts +4 -0
- package/dist/definitions/index.d.ts.map +1 -1
- package/dist/definitions/ui/primitives/FlatList.d.ts +5 -0
- package/dist/definitions/ui/primitives/FlatList.d.ts.map +1 -0
- package/dist/definitions/ui/primitives/FlatList.stories.d.ts +18 -0
- package/dist/definitions/ui/primitives/FlatList.stories.d.ts.map +1 -0
- package/dist/definitions/ui/primitives/SectionList.d.ts +7 -0
- package/dist/definitions/ui/primitives/SectionList.d.ts.map +1 -0
- package/dist/definitions/ui/primitives/SectionList.stories.d.ts +20 -0
- package/dist/definitions/ui/primitives/SectionList.stories.d.ts.map +1 -0
- package/dist/index-browser.es.js +14 -3
- package/dist/index-browser.es.js.map +1 -1
- package/dist/index-node22.cjs +13 -0
- package/dist/index-node22.cjs.map +1 -1
- package/dist/index-node22.mjs +14 -3
- package/dist/index-node22.mjs.map +1 -1
- package/dist/index-react-native.cjs.js +13 -0
- package/dist/index-react-native.cjs.js.map +1 -1
- package/dist/index-react-native.es.js +14 -3
- package/dist/index-react-native.es.js.map +1 -1
- package/package.json +3 -2
- package/skills/alouette-actions/SKILL.md +1 -1
- package/skills/alouette-animation/SKILL.md +1 -1
- package/skills/alouette-external-links/SKILL.md +1 -1
- package/skills/alouette-feedback/SKILL.md +1 -1
- package/skills/alouette-forms/SKILL.md +1 -1
- package/skills/alouette-icons/SKILL.md +2 -1
- package/skills/alouette-layout/SKILL.md +2 -1
- package/skills/alouette-responsive/SKILL.md +1 -1
- package/skills/alouette-setup/SKILL.md +74 -13
- package/skills/alouette-theming/SKILL.md +2 -1
- package/skills/alouette-typography/SKILL.md +2 -1
- package/src/global.css +6 -0
- package/src/index.ts +4 -0
- package/src/ui/primitives/FlatList.stories.tsx +112 -0
- package/src/ui/primitives/FlatList.tsx +14 -0
- package/src/ui/primitives/SectionList.stories.tsx +119 -0
- package/src/ui/primitives/SectionList.tsx +20 -0
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
</h1>
|
|
4
4
|
|
|
5
5
|
<p align="center">
|
|
6
|
-
A modern, customizable design system built on top of
|
|
6
|
+
A modern, customizable design system built on top of NativeWind v5 with configurable defaults
|
|
7
7
|
</p>
|
|
8
8
|
|
|
9
9
|
<p align="center">
|
|
@@ -13,78 +13,196 @@
|
|
|
13
13
|
<a href="https://npmjs.org/package/alouette"><img src="https://img.shields.io/npm/types/alouette.svg?style=flat-square" alt="types"></a>
|
|
14
14
|
</p>
|
|
15
15
|
|
|
16
|
+
Alouette provides a comprehensive set of universal components that render on both
|
|
17
|
+
web and React Native, styled entirely through Tailwind `className` via
|
|
18
|
+
[NativeWind v5](https://www.nativewind.dev/). Themes, accents, and design tokens
|
|
19
|
+
ship as CSS custom properties that cascade through the tree, so components stay
|
|
20
|
+
declarative and consistent across platforms.
|
|
21
|
+
|
|
16
22
|
## 🚀 Getting Started
|
|
17
23
|
|
|
18
24
|
### Prerequisites
|
|
19
25
|
|
|
20
|
-
- Node.js >=
|
|
26
|
+
- Node.js >= 22.18.0 (includes Corepack for package management)
|
|
27
|
+
- A React Native / Expo app using Metro, or a web app using NativeWind v5
|
|
21
28
|
|
|
22
29
|
### Installation
|
|
23
30
|
|
|
24
|
-
1. Enable Corepack (if not already enabled):
|
|
25
|
-
|
|
26
31
|
```bash
|
|
27
|
-
|
|
32
|
+
npm install alouette
|
|
33
|
+
# or with yarn
|
|
34
|
+
yarn add alouette
|
|
28
35
|
```
|
|
29
36
|
|
|
30
|
-
|
|
37
|
+
`alouette-icons` is installed automatically as a dependency.
|
|
38
|
+
|
|
39
|
+
Install the peer dependencies if your app does not already provide them:
|
|
31
40
|
|
|
32
41
|
```bash
|
|
33
|
-
npm install
|
|
34
|
-
|
|
35
|
-
yarn add alouette
|
|
42
|
+
npm install nativewind@5.0.0-preview.4 tailwindcss@^4 \
|
|
43
|
+
react-native-reanimated react-native-svg
|
|
36
44
|
```
|
|
37
45
|
|
|
38
|
-
|
|
46
|
+
`expo-web-browser`, `react-dom`, and `react-native-reanimated` are optional peers
|
|
47
|
+
— add them only if your target needs them (`react-dom` for web, `react-native-reanimated`
|
|
48
|
+
for native animations, `expo-web-browser` for `ExternalLink`).
|
|
39
49
|
|
|
40
50
|
### Configuration
|
|
41
51
|
|
|
42
|
-
|
|
52
|
+
Alouette relies on NativeWind v5's Metro + PostCSS pipeline. NativeWind discovers
|
|
53
|
+
themes and utilities from the imported `global.css` and scans your sources via
|
|
54
|
+
`@source` directives — there is no JS config to maintain.
|
|
55
|
+
|
|
56
|
+
1. **Metro** — wrap your config with the Alouette helper:
|
|
57
|
+
|
|
58
|
+
```js
|
|
59
|
+
// metro.config.cjs
|
|
60
|
+
const { withAlouetteConfig } = require("alouette/metro");
|
|
61
|
+
const { getDefaultConfig } = require("expo/metro-config.js");
|
|
62
|
+
|
|
63
|
+
module.exports = withAlouetteConfig(getDefaultConfig(__dirname));
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
2. **CSS entry** — create a `global.css` that re-exports Alouette's tokens and
|
|
67
|
+
points `@source` at the directories NativeWind should scan for class names:
|
|
68
|
+
|
|
69
|
+
```css
|
|
70
|
+
/* global.css */
|
|
71
|
+
@import "alouette/global.css";
|
|
72
|
+
|
|
73
|
+
@source './src'; /* your own className / tv() literals */
|
|
74
|
+
@source '../node_modules/alouette/src'; /* alouette's source — required */
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Tailwind only emits classes it finds while scanning `@source` paths, so both
|
|
78
|
+
your app's source **and** alouette's source must be covered or the matching
|
|
79
|
+
utilities are silently purged. In a monorepo where alouette is hoisted to the
|
|
80
|
+
repo root `node_modules`, adjust the depth (e.g.
|
|
81
|
+
`@source '../../../node_modules/alouette/src'`); a path that resolves to nothing
|
|
82
|
+
fails silently with no error.
|
|
83
|
+
|
|
84
|
+
Import it once at your app's entry point:
|
|
43
85
|
|
|
44
86
|
```ts
|
|
45
|
-
import
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
87
|
+
import "./global.css";
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
3. **PostCSS** — NativeWind compiles Tailwind through PostCSS on both web and
|
|
91
|
+
native. `@tailwindcss/postcss` ships as a dependency of `alouette`, so you
|
|
92
|
+
only add the config file (use `.mjs` so it loads as ESM regardless of your
|
|
93
|
+
package's `"type"`):
|
|
94
|
+
|
|
95
|
+
```js
|
|
96
|
+
// postcss.config.mjs
|
|
97
|
+
export default {
|
|
98
|
+
plugins: {
|
|
99
|
+
"@tailwindcss/postcss": {},
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
4. **Babel** — use the Expo preset and the Reanimated/worklets plugin:
|
|
105
|
+
|
|
106
|
+
```js
|
|
107
|
+
// babel.config.js
|
|
108
|
+
export default function (api) {
|
|
109
|
+
api.cache(true);
|
|
110
|
+
return {
|
|
111
|
+
presets: [["babel-preset-expo", { reanimated: false }]],
|
|
112
|
+
plugins: ["react-native-worklets/plugin"],
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
5. **Provider** — wrap your app in `AlouetteProvider`. It applies the OS
|
|
118
|
+
light/dark scheme as the root theme so base tokens resolve app-wide:
|
|
119
|
+
|
|
120
|
+
```tsx
|
|
121
|
+
import { AlouetteProvider } from "alouette";
|
|
122
|
+
|
|
123
|
+
export function App() {
|
|
124
|
+
return <AlouetteProvider>{/* your app */}</AlouetteProvider>;
|
|
125
|
+
}
|
|
126
|
+
```
|
|
51
127
|
|
|
52
|
-
|
|
53
|
-
|
|
128
|
+
6. **Fonts** — Alouette's typography uses Sora (body/heading) and Chivo Mono
|
|
129
|
+
(mono). On native, load the weight-specific font files (the standalone
|
|
130
|
+
`font-weight` utility has no effect because each weight is a distinct file):
|
|
54
131
|
|
|
55
|
-
|
|
132
|
+
```tsx
|
|
133
|
+
import {
|
|
134
|
+
Sora_400Regular as SoraRegular,
|
|
135
|
+
Sora_700Bold as SoraBold,
|
|
136
|
+
Sora_800ExtraBold as SoraExtraBold,
|
|
137
|
+
useFonts,
|
|
138
|
+
} from "@expo-google-fonts/sora";
|
|
139
|
+
import {
|
|
140
|
+
ChivoMono_400Regular as ChivoMonoRegular,
|
|
141
|
+
ChivoMono_700Bold as ChivoMonoBold,
|
|
142
|
+
ChivoMono_800ExtraBold as ChivoMonoExtraBold,
|
|
143
|
+
} from "@expo-google-fonts/chivo-mono";
|
|
144
|
+
|
|
145
|
+
const [fontsLoaded] = useFonts({
|
|
146
|
+
SoraRegular,
|
|
147
|
+
SoraBold,
|
|
148
|
+
SoraExtraBold,
|
|
149
|
+
ChivoMonoRegular,
|
|
150
|
+
ChivoMonoBold,
|
|
151
|
+
ChivoMonoExtraBold,
|
|
152
|
+
});
|
|
56
153
|
```
|
|
57
154
|
|
|
58
155
|
## 🎨 Core Features
|
|
59
156
|
|
|
60
157
|
### Components
|
|
61
158
|
|
|
62
|
-
Alouette
|
|
159
|
+
Alouette ships a universal component set styled through `className`:
|
|
63
160
|
|
|
64
|
-
|
|
161
|
+
- **Actions** — `Button`, `ExternalLinkButton`, `InternalLinkButton`, `IconButton`
|
|
162
|
+
- **Containers** — `Box`, `InteractiveBox`, `SafeAreaBox`, `Surface`, `ScopedTheme`, `AccentScope`, `PresenceOne`, `PresenceList`
|
|
163
|
+
- **Inputs** — `InputText`, `TextArea`, `Switch`
|
|
164
|
+
- **Feedback** — `Message`, `InfoMessage`, `ConfirmationMessage`, `WarningMessage`
|
|
165
|
+
- **Data** — `PressableBox`, `PressableListItem`
|
|
166
|
+
- **Layout** — `GradientBackground`, `GradientScrollView`
|
|
167
|
+
- **Primitives** — `View`, `Text`, `Paragraph`, `Icon`, `ScrollView`, `Stack`, `HStack`, `VStack`, `Separator`
|
|
168
|
+
- **Responsive** — `SwitchBreakpointsUsingDisplayNone`, `SwitchBreakpointsUsingNull`, `useCurrentBreakpointName`
|
|
65
169
|
|
|
66
|
-
|
|
67
|
-
- `IconButton`: Circular button optimized for icon display
|
|
170
|
+
For detailed examples and API documentation, visit our [Storybook](https://www.chromatic.com/library?appId=679f9e8df3edc5f07975b64a).
|
|
68
171
|
|
|
69
|
-
|
|
172
|
+
### Text styling
|
|
70
173
|
|
|
71
|
-
|
|
72
|
-
|
|
174
|
+
`<Text>` has no variant props — style it entirely via `className`. Family and
|
|
175
|
+
weight are combined into a single utility (`font-body`, `font-body-bold`,
|
|
176
|
+
`font-heading-extrabold`, `font-mono`, …); size uses standard Tailwind
|
|
177
|
+
`text-*`; color uses tokens like `text-sharp`, `text-muted`, `text-accent`.
|
|
73
178
|
|
|
74
|
-
|
|
179
|
+
```tsx
|
|
180
|
+
import { Text } from "alouette";
|
|
75
181
|
|
|
76
|
-
-
|
|
182
|
+
<Text className="text-base">Body</Text>;
|
|
183
|
+
<Text className="font-heading-extrabold text-4xl">Title</Text>;
|
|
184
|
+
<Text className="font-mono text-xs text-muted">Code</Text>;
|
|
185
|
+
```
|
|
77
186
|
|
|
78
|
-
|
|
187
|
+
### Theming and accents
|
|
79
188
|
|
|
80
|
-
|
|
81
|
-
|
|
189
|
+
Themes are sets of CSS variables (`light`, `dark`, `light_brand`, `dark_info`, …)
|
|
190
|
+
applied by `ScopedTheme`. Child components use **base tokens** (`bg-surface`,
|
|
191
|
+
`text-accent`, `border-muted`, …) and inherit the correct values from the nearest
|
|
192
|
+
theme scope. Components that introduce an accent wrap their children in
|
|
193
|
+
`AccentScope`:
|
|
82
194
|
|
|
83
|
-
|
|
195
|
+
```tsx
|
|
196
|
+
import { AccentScope, Surface } from "alouette";
|
|
197
|
+
|
|
198
|
+
<AccentScope accent="info">
|
|
199
|
+
<Surface>{/* children use base tokens */}</Surface>
|
|
200
|
+
</AccentScope>;
|
|
201
|
+
```
|
|
84
202
|
|
|
85
203
|
### Icons
|
|
86
204
|
|
|
87
|
-
Icons
|
|
205
|
+
Icons come from the integrated `alouette-icons` package:
|
|
88
206
|
|
|
89
207
|
```tsx
|
|
90
208
|
import { ArrowLeftRegularIcon } from "alouette-icons/phosphor-icons/ArrowLeftRegularIcon";
|
|
@@ -94,24 +212,6 @@ function MyComponent() {
|
|
|
94
212
|
}
|
|
95
213
|
```
|
|
96
214
|
|
|
97
|
-
## 🏗️ Architecture
|
|
98
|
-
|
|
99
|
-
### Core Principles
|
|
100
|
-
|
|
101
|
-
1. **Universal Design**: Components work seamlessly across web and native platforms
|
|
102
|
-
2. **Performance First**: Optimized bundle size and runtime performance through Tamagui
|
|
103
|
-
3. **Accessibility**: WCAG 2.1 compliant components with proper ARIA attributes
|
|
104
|
-
4. **Customization**: Flexible theming system with sensible defaults
|
|
105
|
-
5. **Type Safety**: Built with TypeScript for enhanced developer experience
|
|
106
|
-
|
|
107
|
-
### Technical Architecture
|
|
108
|
-
|
|
109
|
-
- **Component Structure**: Atomic design pattern with atoms, molecules, and organisms
|
|
110
|
-
- **Styling System**: Tamagui's compile-time styling with runtime fallbacks
|
|
111
|
-
- **Theme System**: Token-based design system with support for light/dark modes
|
|
112
|
-
- **Responsive Design**: Mobile-first approach with flexible breakpoint system
|
|
113
|
-
- **Icon System**: Based on Phosphor Icons with optimized bundle size
|
|
114
|
-
|
|
115
215
|
## 🎯 Examples
|
|
116
216
|
|
|
117
217
|
### Basic Button
|
|
@@ -122,7 +222,7 @@ import { Button } from "alouette";
|
|
|
122
222
|
function MyComponent() {
|
|
123
223
|
return (
|
|
124
224
|
<Button
|
|
125
|
-
|
|
225
|
+
accent="brand"
|
|
126
226
|
text="Click me"
|
|
127
227
|
onPress={() => console.log("Clicked!")}
|
|
128
228
|
/>
|
|
@@ -138,14 +238,31 @@ import { ArrowLeftRegularIcon } from "alouette-icons/phosphor-icons/ArrowLeftReg
|
|
|
138
238
|
|
|
139
239
|
function MyComponent() {
|
|
140
240
|
return (
|
|
141
|
-
<Button
|
|
241
|
+
<Button accent="brand" icon={<ArrowLeftRegularIcon />} text="Go Back" />
|
|
142
242
|
);
|
|
143
243
|
}
|
|
144
244
|
```
|
|
145
245
|
|
|
146
|
-
##
|
|
246
|
+
## 🤖 Using an AI agent?
|
|
247
|
+
|
|
248
|
+
Alouette ships [skills](https://www.npmjs.com/package/@tanstack/intent) that teach
|
|
249
|
+
AI coding agents how to use the design system correctly:
|
|
147
250
|
|
|
148
|
-
|
|
251
|
+
```bash
|
|
252
|
+
npx @tanstack/intent@latest install
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
## 🏗️ Architecture
|
|
256
|
+
|
|
257
|
+
- **Universal Design** — components render across web and native from one API
|
|
258
|
+
- **NativeWind v5 styling** — Tailwind `className`; animations are CSS
|
|
259
|
+
`@keyframes` + `--animate-*` tokens, run on native via Reanimated
|
|
260
|
+
- **Token-based theming** — CSS custom properties cascade through `ScopedTheme`;
|
|
261
|
+
light/dark + accent scopes
|
|
262
|
+
- **Accessibility** — proper ARIA / accessibility attributes
|
|
263
|
+
- **Type Safety** — built with TypeScript
|
|
264
|
+
|
|
265
|
+
## 📚 Documentation
|
|
149
266
|
|
|
150
267
|
- [Component Documentation](https://www.chromatic.com/library?appId=679f9e8df3edc5f07975b64a)
|
|
151
268
|
- [GitHub Repository](https://github.com/christophehurpeau/alouette)
|
|
@@ -14,6 +14,10 @@ export type { TextProps, ParagraphProps } from "./ui/primitives/Text";
|
|
|
14
14
|
export { Text, Paragraph } from "./ui/primitives/Text";
|
|
15
15
|
export type { ScrollViewProps } from "./ui/primitives/ScrollView";
|
|
16
16
|
export { ScrollView } from "./ui/primitives/ScrollView";
|
|
17
|
+
export type { FlatListProps } from "./ui/primitives/FlatList";
|
|
18
|
+
export { FlatList } from "./ui/primitives/FlatList";
|
|
19
|
+
export type { SectionListProps } from "./ui/primitives/SectionList";
|
|
20
|
+
export { SectionList } from "./ui/primitives/SectionList";
|
|
17
21
|
export type { HStackProps, VStackProps, StackProps } from "./ui/stacks/stacks";
|
|
18
22
|
export { Stack, HStack, VStack } from "./ui/stacks/stacks";
|
|
19
23
|
export type { SeparatorProps } from "./ui/stacks/Separator";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import { type FlatListProps as RNFlatListProps } from "react-native";
|
|
3
|
+
export type FlatListProps<ItemT> = RNFlatListProps<ItemT>;
|
|
4
|
+
export declare const FlatList: <ItemT>(props: FlatListProps<ItemT>) => ReactNode;
|
|
5
|
+
//# sourceMappingURL=FlatList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlatList.d.ts","sourceRoot":"","sources":["../../../../src/ui/primitives/FlatList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAEL,KAAK,aAAa,IAAI,eAAe,EACtC,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,aAAa,CAAC,KAAK,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AAE1D,eAAO,MAAM,QAAQ,EAIf,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { StoryObj } from "@storybook/react-vite";
|
|
2
|
+
import type { ReactNode } from "react";
|
|
3
|
+
declare const _default: {
|
|
4
|
+
title: string;
|
|
5
|
+
component: <ItemT>(props: import("./FlatList").FlatListProps<ItemT>) => ReactNode;
|
|
6
|
+
parameters: {
|
|
7
|
+
componentSubtitle: string;
|
|
8
|
+
docs: {
|
|
9
|
+
description: {
|
|
10
|
+
component: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
export default _default;
|
|
16
|
+
export declare const PreviewStory: StoryObj;
|
|
17
|
+
export declare const VariantsStory: StoryObj;
|
|
18
|
+
//# sourceMappingURL=FlatList.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FlatList.stories.d.ts","sourceRoot":"","sources":["../../../../src/ui/primitives/FlatList.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;;;;;;;;;;;;;AAOvC,wBAwBkC;AA6DlC,eAAO,MAAM,YAAY,EAAE,QAG1B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,QAa3B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import { type SectionListProps as RNSectionListProps } from "react-native";
|
|
3
|
+
type DefaultSectionT = Record<string, unknown>;
|
|
4
|
+
export type SectionListProps<ItemT, SectionT = DefaultSectionT> = RNSectionListProps<ItemT, SectionT>;
|
|
5
|
+
export declare const SectionList: <ItemT, SectionT = DefaultSectionT>(props: SectionListProps<ItemT, SectionT>) => ReactNode;
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=SectionList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SectionList.d.ts","sourceRoot":"","sources":["../../../../src/ui/primitives/SectionList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAEL,KAAK,gBAAgB,IAAI,kBAAkB,EAC5C,MAAM,cAAc,CAAC;AAEtB,KAAK,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE/C,MAAM,MAAM,gBAAgB,CAC1B,KAAK,EACL,QAAQ,GAAG,eAAe,IACxB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAExC,eAAO,MAAM,WAAW,EAGlB,CAAC,KAAK,EAAE,QAAQ,GAAG,eAAe,EACtC,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,KACrC,SAAS,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { StoryObj } from "@storybook/react-vite";
|
|
2
|
+
import type { ReactNode } from "react";
|
|
3
|
+
declare const _default: {
|
|
4
|
+
title: string;
|
|
5
|
+
component: <ItemT, SectionT = {
|
|
6
|
+
[x: string]: unknown;
|
|
7
|
+
}>(props: import("./SectionList").SectionListProps<ItemT, SectionT>) => ReactNode;
|
|
8
|
+
parameters: {
|
|
9
|
+
componentSubtitle: string;
|
|
10
|
+
docs: {
|
|
11
|
+
description: {
|
|
12
|
+
component: string;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
export default _default;
|
|
18
|
+
export declare const PreviewStory: StoryObj;
|
|
19
|
+
export declare const VariantsStory: StoryObj;
|
|
20
|
+
//# sourceMappingURL=SectionList.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SectionList.stories.d.ts","sourceRoot":"","sources":["../../../../src/ui/primitives/SectionList.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;;;;;;;;;;;;;;;AAOvC,wBAyBqC;AA8DrC,eAAO,MAAM,YAAY,EAAE,QAG1B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,QAkB3B,CAAC"}
|
package/dist/index-browser.es.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
|
|
2
|
-
import { VariableContextProvider } from 'nativewind';
|
|
2
|
+
import { VariableContextProvider, styled as styled$1 } from 'nativewind';
|
|
3
3
|
import { createContext, useContext, forwardRef, Fragment, Children, cloneElement, useRef, useState, useEffect, isValidElement, useCallback } from 'react';
|
|
4
|
-
import { useColorScheme, View as View$1, Text as Text$1, ScrollView as ScrollView$1, Pressable, Platform, TextInput, useWindowDimensions } from 'react-native-web';
|
|
4
|
+
import { useColorScheme, View as View$1, Text as Text$1, ScrollView as ScrollView$1, FlatList as FlatList$1, SectionList as SectionList$1, Pressable, Platform, TextInput, useWindowDimensions } from 'react-native-web';
|
|
5
5
|
import { extendTailwindMerge, twMerge as twMerge$1 } from 'tailwind-merge';
|
|
6
6
|
import { tv } from 'tailwind-variants';
|
|
7
7
|
import { CheckRegularIcon } from 'alouette-icons/phosphor-icons/CheckRegularIcon';
|
|
@@ -687,6 +687,17 @@ const ScrollView = forwardRef(
|
|
|
687
687
|
}
|
|
688
688
|
);
|
|
689
689
|
|
|
690
|
+
const FlatList = styled$1(FlatList$1, {
|
|
691
|
+
className: "style",
|
|
692
|
+
contentContainerClassName: "contentContainerStyle",
|
|
693
|
+
columnWrapperClassName: "columnWrapperStyle"
|
|
694
|
+
});
|
|
695
|
+
|
|
696
|
+
const SectionList = styled$1(SectionList$1, {
|
|
697
|
+
className: "style",
|
|
698
|
+
contentContainerClassName: "contentContainerStyle"
|
|
699
|
+
});
|
|
700
|
+
|
|
690
701
|
const Stack = forwardRef(
|
|
691
702
|
({ className, ...props }, ref) => {
|
|
692
703
|
return /* @__PURE__ */ jsx(
|
|
@@ -1933,5 +1944,5 @@ function ExternalLink({
|
|
|
1933
1944
|
);
|
|
1934
1945
|
}
|
|
1935
1946
|
|
|
1936
|
-
export { AccentScope, AlouetteDecorator, AlouetteProvider, Box, BreakpointNameEnum, Breakpoints, Button, ConfirmationMessage, ExternalLink, ExternalLinkButton, GradientBackground, GradientScrollView, HStack, Icon, IconButton, InfoMessage, InputText, InteractiveBox, InternalLinkButton, Message, Paragraph, PresenceList, PresenceOne, PressableBox, PressableListItem, SafeAreaBox, SafeAreaProvider, ScopedTheme, ScrollView, Separator, Stack, Story, StoryContainer, StoryDecorator, StoryGrid, StoryTitle, Surface, Switch, SwitchBreakpointsUsingDisplayNone, SwitchBreakpointsUsingNull, Text, TextArea, VStack, View, WarningMessage, animationDurationsMs, styled, themeVariables, useCurrentBreakpointName, useCurrentBreakpointNameFiltered, useCurrentMode, useCurrentTheme, useSafeAreaInsets, useThemeToken };
|
|
1947
|
+
export { AccentScope, AlouetteDecorator, AlouetteProvider, Box, BreakpointNameEnum, Breakpoints, Button, ConfirmationMessage, ExternalLink, ExternalLinkButton, FlatList, GradientBackground, GradientScrollView, HStack, Icon, IconButton, InfoMessage, InputText, InteractiveBox, InternalLinkButton, Message, Paragraph, PresenceList, PresenceOne, PressableBox, PressableListItem, SafeAreaBox, SafeAreaProvider, ScopedTheme, ScrollView, SectionList, Separator, Stack, Story, StoryContainer, StoryDecorator, StoryGrid, StoryTitle, Surface, Switch, SwitchBreakpointsUsingDisplayNone, SwitchBreakpointsUsingNull, Text, TextArea, VStack, View, WarningMessage, animationDurationsMs, styled, themeVariables, useCurrentBreakpointName, useCurrentBreakpointNameFiltered, useCurrentMode, useCurrentTheme, useSafeAreaInsets, useThemeToken };
|
|
1937
1948
|
//# sourceMappingURL=index-browser.es.js.map
|