alouette 20.4.0 → 20.5.1
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/bin/install-skills.mjs +1 -1
- package/dist/definitions/animationDurationsMs.d.ts +1 -1
- package/dist/definitions/index.d.ts +17 -1
- package/dist/definitions/index.d.ts.map +1 -1
- package/dist/definitions/ui/actions/ActionButton.d.ts +9 -0
- package/dist/definitions/ui/actions/ActionButton.d.ts.map +1 -0
- package/dist/definitions/ui/actions/ActionButton.stories.d.ts +19 -0
- package/dist/definitions/ui/actions/ActionButton.stories.d.ts.map +1 -0
- package/dist/definitions/ui/actions/Button.d.ts +31 -2
- package/dist/definitions/ui/actions/Button.d.ts.map +1 -1
- package/dist/definitions/ui/actions/Button.stories.d.ts.map +1 -1
- package/dist/definitions/ui/actions/usePressAsync.d.ts +13 -0
- package/dist/definitions/ui/actions/usePressAsync.d.ts.map +1 -0
- package/dist/definitions/ui/containers/Modal.d.ts.map +1 -1
- package/dist/definitions/ui/containers/StableAccentScope.d.ts +16 -0
- package/dist/definitions/ui/containers/StableAccentScope.d.ts.map +1 -0
- package/dist/definitions/ui/containers/Surface.d.ts +2 -2
- package/dist/definitions/ui/containers/Surface.d.ts.map +1 -1
- package/dist/definitions/ui/feedback/Message.d.ts +1 -0
- package/dist/definitions/ui/feedback/Message.d.ts.map +1 -1
- package/dist/definitions/ui/feedback/Message.stories.d.ts.map +1 -1
- package/dist/definitions/ui/feedback/RingCircle.d.ts.map +1 -1
- package/dist/definitions/ui/feedback/RingCircle.web.d.ts.map +1 -1
- package/dist/definitions/ui/feedback/useSimulatedProgress.d.ts +6 -0
- package/dist/definitions/ui/feedback/useSimulatedProgress.d.ts.map +1 -1
- package/dist/definitions/ui/forms/Form.d.ts +26 -0
- package/dist/definitions/ui/forms/Form.d.ts.map +1 -0
- package/dist/definitions/ui/forms/Form.stories.d.ts +13 -0
- package/dist/definitions/ui/forms/Form.stories.d.ts.map +1 -0
- package/dist/definitions/ui/forms/FormField.d.ts +30 -0
- package/dist/definitions/ui/forms/FormField.d.ts.map +1 -0
- package/dist/definitions/ui/forms/FormField.stories.d.ts +13 -0
- package/dist/definitions/ui/forms/FormField.stories.d.ts.map +1 -0
- package/dist/definitions/ui/forms/FormFieldArray.d.ts +39 -0
- package/dist/definitions/ui/forms/FormFieldArray.d.ts.map +1 -0
- package/dist/definitions/ui/forms/FormFieldArray.stories.d.ts +18 -0
- package/dist/definitions/ui/forms/FormFieldArray.stories.d.ts.map +1 -0
- package/dist/definitions/ui/forms/FormItem.d.ts +31 -0
- package/dist/definitions/ui/forms/FormItem.d.ts.map +1 -0
- package/dist/definitions/ui/forms/FormItem.stories.d.ts +14 -0
- package/dist/definitions/ui/forms/FormItem.stories.d.ts.map +1 -0
- package/dist/definitions/ui/forms/FormSubmitButton.d.ts +20 -0
- package/dist/definitions/ui/forms/FormSubmitButton.d.ts.map +1 -0
- package/dist/definitions/ui/forms/FormSubmitButton.stories.d.ts +15 -0
- package/dist/definitions/ui/forms/FormSubmitButton.stories.d.ts.map +1 -0
- package/dist/definitions/ui/forms/SimpleVForm.d.ts +18 -0
- package/dist/definitions/ui/forms/SimpleVForm.d.ts.map +1 -0
- package/dist/definitions/ui/forms/SimpleVForm.stories.d.ts +14 -0
- package/dist/definitions/ui/forms/SimpleVForm.stories.d.ts.map +1 -0
- package/dist/index-browser.es.js +660 -173
- package/dist/index-browser.es.js.map +1 -1
- package/dist/index-node22.cjs +684 -194
- package/dist/index-node22.cjs.map +1 -1
- package/dist/index-node22.mjs +677 -196
- package/dist/index-node22.mjs.map +1 -1
- package/dist/index-react-native.cjs.js +684 -194
- package/dist/index-react-native.cjs.js.map +1 -1
- package/dist/index-react-native.es.js +677 -196
- package/dist/index-react-native.es.js.map +1 -1
- package/package.json +13 -11
- package/skills/alouette-actions/SKILL.md +46 -2
- package/skills/alouette-animation/SKILL.md +5 -3
- package/skills/alouette-dialogs/SKILL.md +163 -0
- package/skills/alouette-external-links/SKILL.md +1 -1
- package/skills/alouette-feedback/SKILL.md +59 -12
- package/skills/alouette-forms/SKILL.md +288 -13
- package/skills/alouette-icons/SKILL.md +1 -1
- package/skills/alouette-layout/SKILL.md +1 -1
- package/skills/alouette-responsive/SKILL.md +1 -1
- package/skills/alouette-setup/SKILL.md +1 -1
- package/skills/alouette-theming/SKILL.md +50 -3
- package/skills/alouette-typography/SKILL.md +1 -1
- package/src/animationDurationsMs.ts +1 -1
- package/src/index.ts +17 -0
- package/src/ui/actions/ActionButton.stories.tsx +137 -0
- package/src/ui/actions/ActionButton.tsx +36 -0
- package/src/ui/actions/Button.stories.tsx +43 -1
- package/src/ui/actions/Button.tsx +88 -6
- package/src/ui/actions/usePressAsync.ts +88 -0
- package/src/ui/containers/Modal.tsx +11 -9
- package/src/ui/containers/StableAccentScope.tsx +33 -0
- package/src/ui/containers/Surface.tsx +1 -1
- package/src/ui/feedback/Message.stories.tsx +2 -0
- package/src/ui/feedback/Message.tsx +5 -0
- package/src/ui/feedback/RingCircle.tsx +25 -14
- package/src/ui/feedback/RingCircle.web.tsx +24 -12
- package/src/ui/feedback/useSimulatedProgress.ts +9 -0
- package/src/ui/forms/Form.stories.tsx +83 -0
- package/src/ui/forms/Form.tsx +64 -0
- package/src/ui/forms/FormField.stories.tsx +112 -0
- package/src/ui/forms/FormField.tsx +79 -0
- package/src/ui/forms/FormFieldArray.stories.tsx +383 -0
- package/src/ui/forms/FormFieldArray.tsx +172 -0
- package/src/ui/forms/FormItem.stories.tsx +167 -0
- package/src/ui/forms/FormItem.tsx +131 -0
- package/src/ui/forms/FormSubmitButton.stories.tsx +114 -0
- package/src/ui/forms/FormSubmitButton.tsx +34 -0
- package/src/ui/forms/SimpleVForm.stories.tsx +203 -0
- package/src/ui/forms/SimpleVForm.tsx +43 -0
package/bin/install-skills.mjs
CHANGED
|
@@ -20,7 +20,7 @@ import { fileURLToPath } from "node:url";
|
|
|
20
20
|
// `alouette-install-skills` removes their leftover symlinks from projects
|
|
21
21
|
// that installed an earlier version. Add a name the same release its
|
|
22
22
|
// skills/<name> directory is deleted.
|
|
23
|
-
const REMOVED_SKILLS = [];
|
|
23
|
+
const REMOVED_SKILLS = ["alouette-forms-composition"];
|
|
24
24
|
|
|
25
25
|
const packageRoot = join(dirname(fileURLToPath(import.meta.url)), "..");
|
|
26
26
|
const sourceSkillsDir = join(packageRoot, "skills");
|
|
@@ -35,6 +35,8 @@ export type { BoxProps, InteractiveBoxProps, SafeAreaBoxProps, } from "./ui/cont
|
|
|
35
35
|
export { Box, InteractiveBox, SafeAreaBox } from "./ui/containers/Box";
|
|
36
36
|
export type { AccentScopeProps } from "./ui/containers/AccentScope";
|
|
37
37
|
export { AccentScope } from "./ui/containers/AccentScope";
|
|
38
|
+
export type { StableAccentScopeProps } from "./ui/containers/StableAccentScope";
|
|
39
|
+
export { StableAccentScope } from "./ui/containers/StableAccentScope";
|
|
38
40
|
export type { PresenceListProps, PresenceOneProps, } from "./ui/containers/Presence";
|
|
39
41
|
export { PresenceList, PresenceOne } from "./ui/containers/Presence";
|
|
40
42
|
export { animationDurationsMs } from "./animationDurationsMs";
|
|
@@ -48,8 +50,10 @@ export type { IconProps, SVGIconElement } from "./ui/primitives/Icon";
|
|
|
48
50
|
export { Icon } from "./ui/primitives/Icon";
|
|
49
51
|
export type { PressableBoxProps } from "./ui/data/PressableBox";
|
|
50
52
|
export { PressableBox } from "./ui/data/PressableBox";
|
|
51
|
-
export type { ButtonProps, ExternalLinkButtonProps, InternalLinkButtonProps, } from "./ui/actions/Button";
|
|
53
|
+
export type { ButtonProps, ButtonState, ExternalLinkButtonProps, InternalLinkButtonProps, } from "./ui/actions/Button";
|
|
52
54
|
export { Button, ExternalLinkButton, InternalLinkButton, } from "./ui/actions/Button";
|
|
55
|
+
export type { ActionButtonProps } from "./ui/actions/ActionButton";
|
|
56
|
+
export { ActionButton } from "./ui/actions/ActionButton";
|
|
53
57
|
export type { IconButtonProps } from "./ui/actions/IconButton";
|
|
54
58
|
export { IconButton } from "./ui/actions/IconButton";
|
|
55
59
|
export type { InputTextMode, InputTextProps } from "./ui/inputs/InputText";
|
|
@@ -60,6 +64,18 @@ export type { SwitchProps } from "./ui/inputs/Switch";
|
|
|
60
64
|
export { Switch } from "./ui/inputs/Switch";
|
|
61
65
|
export type { SelectOption, SelectProps } from "./ui/inputs/Select.shared";
|
|
62
66
|
export { Select } from "./ui/inputs/Select";
|
|
67
|
+
export type { FormItemProps } from "./ui/forms/FormItem";
|
|
68
|
+
export { FormItem } from "./ui/forms/FormItem";
|
|
69
|
+
export type { FormProps } from "./ui/forms/Form";
|
|
70
|
+
export { Form, FormValidationError } from "./ui/forms/Form";
|
|
71
|
+
export type { FormFieldProps } from "./ui/forms/FormField";
|
|
72
|
+
export { FormField } from "./ui/forms/FormField";
|
|
73
|
+
export type { FormFieldArrayProps } from "./ui/forms/FormFieldArray";
|
|
74
|
+
export { FormFieldArray } from "./ui/forms/FormFieldArray";
|
|
75
|
+
export type { FormSubmitButtonProps } from "./ui/forms/FormSubmitButton";
|
|
76
|
+
export { FormSubmitButton } from "./ui/forms/FormSubmitButton";
|
|
77
|
+
export type { SimpleVFormProps } from "./ui/forms/SimpleVForm";
|
|
78
|
+
export { SimpleVForm } from "./ui/forms/SimpleVForm";
|
|
63
79
|
export type { BadgeProps } from "./ui/feedback/Badge";
|
|
64
80
|
export { Badge } from "./ui/feedback/Badge";
|
|
65
81
|
export type { ConnectionStateProps, ConnectionStateStatus, } from "./ui/feedback/ConnectionState";
|
|
@@ -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,9 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { GestureResponderEvent } from "react-native";
|
|
3
|
+
import { type ButtonProps } from "./Button";
|
|
4
|
+
export interface ActionButtonProps extends Omit<ButtonProps, "onPress" | "state"> {
|
|
5
|
+
onPress: (event: GestureResponderEvent) => unknown;
|
|
6
|
+
errorToMessage: (error: unknown) => string;
|
|
7
|
+
}
|
|
8
|
+
export declare function ActionButton({ onPress, errorToMessage, ...buttonProps }: ActionButtonProps): ReactNode;
|
|
9
|
+
//# sourceMappingURL=ActionButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionButton.d.ts","sourceRoot":"","sources":["../../../../src/ui/actions/ActionButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAI1D,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAGpD,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAC7C,WAAW,EACX,SAAS,GAAG,OAAO,CACpB;IACC,OAAO,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,OAAO,CAAC;IACnD,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CAC5C;AAED,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,cAAc,EACd,GAAG,WAAW,EACf,EAAE,iBAAiB,GAAG,SAAS,CAe/B"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { StoryObj } from "@storybook/react-vite";
|
|
2
|
+
import { ActionButton } from "./ActionButton";
|
|
3
|
+
type ThisStory = StoryObj<typeof ActionButton>;
|
|
4
|
+
declare const _default: {
|
|
5
|
+
title: string;
|
|
6
|
+
component: typeof ActionButton;
|
|
7
|
+
parameters: {
|
|
8
|
+
componentSubtitle: string;
|
|
9
|
+
docs: {
|
|
10
|
+
description: {
|
|
11
|
+
component: string;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export default _default;
|
|
17
|
+
export declare const ActionButtonPreviewStory: ThisStory;
|
|
18
|
+
export declare const ActionButtonVariantsStory: ThisStory;
|
|
19
|
+
//# sourceMappingURL=ActionButton.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActionButton.stories.d.ts","sourceRoot":"","sources":["../../../../src/ui/actions/ActionButton.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,KAAK,SAAS,GAAG,QAAQ,CAAC,OAAO,YAAY,CAAC,CAAC;;;;;;;;;;;;;AAE/C,wBAoBsC;AAgBtC,eAAO,MAAM,wBAAwB,EAAE,SAetC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,SA4EvC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
2
|
import { type VariantProps } from "tailwind-variants";
|
|
3
3
|
import type { Accent } from "../../core/AlouetteConfig";
|
|
4
4
|
import { type PressableBoxProps } from "../data/PressableBox";
|
|
@@ -33,10 +33,19 @@ declare const buttonVariants: import("tailwind-variants").TVReturnType<{
|
|
|
33
33
|
true: {};
|
|
34
34
|
false: {};
|
|
35
35
|
};
|
|
36
|
+
dimmed: {
|
|
37
|
+
true: {
|
|
38
|
+
text: string;
|
|
39
|
+
icon: string;
|
|
40
|
+
};
|
|
41
|
+
false: {};
|
|
42
|
+
};
|
|
36
43
|
}, {
|
|
37
44
|
frame: string;
|
|
38
45
|
text: string;
|
|
39
46
|
icon: string;
|
|
47
|
+
terminalIcon: string;
|
|
48
|
+
overlayIconContainer: string;
|
|
40
49
|
}, undefined, {
|
|
41
50
|
size: {
|
|
42
51
|
sm: {
|
|
@@ -63,10 +72,19 @@ declare const buttonVariants: import("tailwind-variants").TVReturnType<{
|
|
|
63
72
|
true: {};
|
|
64
73
|
false: {};
|
|
65
74
|
};
|
|
75
|
+
dimmed: {
|
|
76
|
+
true: {
|
|
77
|
+
text: string;
|
|
78
|
+
icon: string;
|
|
79
|
+
};
|
|
80
|
+
false: {};
|
|
81
|
+
};
|
|
66
82
|
}, {
|
|
67
83
|
frame: string;
|
|
68
84
|
text: string;
|
|
69
85
|
icon: string;
|
|
86
|
+
terminalIcon: string;
|
|
87
|
+
overlayIconContainer: string;
|
|
70
88
|
}, import("tailwind-variants").TVReturnType<{
|
|
71
89
|
size: {
|
|
72
90
|
sm: {
|
|
@@ -93,18 +111,29 @@ declare const buttonVariants: import("tailwind-variants").TVReturnType<{
|
|
|
93
111
|
true: {};
|
|
94
112
|
false: {};
|
|
95
113
|
};
|
|
114
|
+
dimmed: {
|
|
115
|
+
true: {
|
|
116
|
+
text: string;
|
|
117
|
+
icon: string;
|
|
118
|
+
};
|
|
119
|
+
false: {};
|
|
120
|
+
};
|
|
96
121
|
}, {
|
|
97
122
|
frame: string;
|
|
98
123
|
text: string;
|
|
99
124
|
icon: string;
|
|
125
|
+
terminalIcon: string;
|
|
126
|
+
overlayIconContainer: string;
|
|
100
127
|
}, undefined, unknown, unknown, undefined>>;
|
|
101
128
|
type ButtonSizeProps = Pick<VariantProps<typeof buttonVariants>, "size">;
|
|
129
|
+
export type ButtonState = "failed" | "loading" | "success";
|
|
102
130
|
export interface ButtonProps extends Omit<PressableBoxProps, "children">, ButtonSizeProps {
|
|
103
131
|
icon?: SVGIconElement;
|
|
104
132
|
accent?: Accent;
|
|
105
133
|
text: ReactNode;
|
|
134
|
+
state?: ButtonState;
|
|
106
135
|
}
|
|
107
|
-
export declare function Button({ icon, text, disabled, accent, variant, size, className, ...pressableProps }: ButtonProps): ReactNode;
|
|
136
|
+
export declare function Button({ icon, text, disabled, state, accent, variant, size, className, ...pressableProps }: ButtonProps): ReactNode;
|
|
108
137
|
export interface ExternalLinkButtonProps extends ButtonProps {
|
|
109
138
|
href: string;
|
|
110
139
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/ui/actions/Button.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/ui/actions/Button.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAC;AAE5D,OAAO,EAAE,KAAK,YAAY,EAAM,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG5E,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAI/D,eAAO,MAAM,YAAY;;;CAGf,CAAC;AAEX,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2CA8DnB,CAAC;AAEF,KAAK,eAAe,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC;AAEzE,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AAuB3D,MAAM,WAAW,WACf,SAAQ,IAAI,CAAC,iBAAiB,EAAE,UAAU,CAAC,EAAE,eAAe;IAC5D,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED,wBAAgB,MAAM,CAAC,EACrB,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,MAAgB,EAChB,OAAqB,EACrB,IAAW,EACX,SAAS,EACT,GAAG,cAAc,EAClB,EAAE,WAAW,GAAG,SAAS,CAuEzB;AAED,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IAC1D,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,OAAO,EACP,GAAG,WAAW,EACf,EAAE,uBAAuB,GAAG,SAAS,CAiBrC;AAED,MAAM,WAAW,uBAAwB,SAAQ,WAAW;IAC1D,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EAAE,KAAK,EACX,GAAG,WAAW,EACf,EAAE,uBAAuB,GAAG,SAAS,CAErC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.stories.d.ts","sourceRoot":"","sources":["../../../../src/ui/actions/Button.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAK5D,OAAO,EAAE,MAAM,EAAsB,MAAM,UAAU,CAAC;AAEtD,KAAK,SAAS,GAAG,QAAQ,CAAC,OAAO,MAAM,CAAC,CAAC;;;;;;;;;;;;;AAEzC,wBAwBgC;AAEhC,eAAO,MAAM,kBAAkB,EAAE,SAKhC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"Button.stories.d.ts","sourceRoot":"","sources":["../../../../src/ui/actions/Button.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAK5D,OAAO,EAAE,MAAM,EAAsB,MAAM,UAAU,CAAC;AAEtD,KAAK,SAAS,GAAG,QAAQ,CAAC,OAAO,MAAM,CAAC,CAAC;;;;;;;;;;;;;AAEzC,wBAwBgC;AAEhC,eAAO,MAAM,kBAAkB,EAAE,SAKhC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,SA+HtB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { GestureResponderEvent } from "react-native";
|
|
2
|
+
import type { ButtonState } from "./Button";
|
|
3
|
+
export declare const settledDisplayDurationMs = 4000;
|
|
4
|
+
interface PressAsyncState {
|
|
5
|
+
buttonState: ButtonState | undefined;
|
|
6
|
+
error: Error | null;
|
|
7
|
+
}
|
|
8
|
+
export interface UsePressAsyncResult extends PressAsyncState {
|
|
9
|
+
handlePress: (event: GestureResponderEvent) => void;
|
|
10
|
+
}
|
|
11
|
+
export declare function usePressAsync(onPress: (event: GestureResponderEvent) => unknown): UsePressAsyncResult;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=usePressAsync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePressAsync.d.ts","sourceRoot":"","sources":["../../../../src/ui/actions/usePressAsync.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,UAAU,eAAe;IACvB,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;IACrC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AA4BD,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,WAAW,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACrD;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,OAAO,GACjD,mBAAmB,CA4CrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../../src/ui/containers/Modal.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAS,MAAM,OAAO,CAAC;AAE9C,OAAO,EAAE,KAAK,YAAY,EAAM,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../../src/ui/containers/Modal.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAS,MAAM,OAAO,CAAC;AAE9C,OAAO,EAAE,KAAK,YAAY,EAAM,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAGxD,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAQ/D,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;qDAelB,CAAC;AAEF,KAAK,iBAAiB,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC;AAqB5D,UAAU,cAAc;IACtB,kCAAkC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,kEAAkE;IAClE,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,yEAAyE;IACzE,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACjC,4EAA4E;IAC5E,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,6CAA6C;IAC7C,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;OAGG;IACH,IAAI,CAAC,EAAE,aAAa,GAAG,QAAQ,CAAC;IAChC,6EAA6E;IAC7E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,mBAAoB,SAAQ,cAAc;IAClD,iFAAiF;IACjF,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,sBAAuB,SAAQ,cAAc;IACrD,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,0EAA0E;IAC1E,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,UAAU,GAAG,sBAAsB,GAAG,mBAAmB,CAAC;AAEtE,wBAAgB,KAAK,CAAC,EACpB,OAAO,EACP,OAAO,EACP,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,MAAM,EACN,IAAW,EACX,KAAK,EACL,eAAuB,EACvB,oBAA8B,EAC9B,IAAe,EACf,kBAAkB,EAAE,eAAe,EACnC,MAAM,EACN,YAAY,EAAE,SAAS,GACxB,EAAE,UAAU,GAAG,SAAS,CAuFxB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import type { Accent } from "../../core/AlouetteConfig";
|
|
3
|
+
export interface StableAccentScopeProps {
|
|
4
|
+
mode?: "dark" | "light";
|
|
5
|
+
accent?: Accent;
|
|
6
|
+
children?: ReactNode;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Like AccentScope, but always keeps a ScopedTheme mounted — when `accent` is
|
|
10
|
+
* unset it re-applies the inherited theme instead of dropping the wrapper.
|
|
11
|
+
* Toggling `accent` (e.g. on hover) therefore only changes the theme prop, so
|
|
12
|
+
* the subtree — and any focused input inside it — is never remounted. Prefer
|
|
13
|
+
* AccentScope when the accent is fixed; reach for this only when it toggles.
|
|
14
|
+
*/
|
|
15
|
+
export declare function StableAccentScope({ mode: forcedMode, accent, children, }: StableAccentScopeProps): ReactNode;
|
|
16
|
+
//# sourceMappingURL=StableAccentScope.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StableAccentScope.d.ts","sourceRoot":"","sources":["../../../../src/ui/containers/StableAccentScope.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAIxD,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EAAE,UAAU,EAChB,MAAM,EACN,QAAQ,GACT,EAAE,sBAAsB,GAAG,SAAS,CAUpC"}
|
|
@@ -23,7 +23,7 @@ declare const surfaceVariants: import("tailwind-variants").TVReturnType<{
|
|
|
23
23
|
l: string;
|
|
24
24
|
lowered: string;
|
|
25
25
|
};
|
|
26
|
-
}, undefined, "overflow-hidden", {
|
|
26
|
+
}, undefined, "overflow-hidden transition-background duration-fast", {
|
|
27
27
|
size: {
|
|
28
28
|
xs: string;
|
|
29
29
|
sm: string;
|
|
@@ -65,7 +65,7 @@ declare const surfaceVariants: import("tailwind-variants").TVReturnType<{
|
|
|
65
65
|
l: string;
|
|
66
66
|
lowered: string;
|
|
67
67
|
};
|
|
68
|
-
}, undefined, "overflow-hidden", unknown, unknown, undefined>>;
|
|
68
|
+
}, undefined, "overflow-hidden transition-background duration-fast", unknown, unknown, undefined>>;
|
|
69
69
|
type SurfaceVariantProps = VariantProps<typeof surfaceVariants>;
|
|
70
70
|
export interface SurfaceProps extends BoxProps, SurfaceVariantProps {
|
|
71
71
|
accent?: Accent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Surface.d.ts","sourceRoot":"","sources":["../../../../src/ui/containers/Surface.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,KAAK,YAAY,EAAM,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EAAO,KAAK,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE3C,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"Surface.d.ts","sourceRoot":"","sources":["../../../../src/ui/containers/Surface.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,KAAK,YAAY,EAAM,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAExD,OAAO,EAAO,KAAK,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE3C,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kGAgCpB,CAAC;AAEF,KAAK,mBAAmB,GAAG,YAAY,CAAC,OAAO,eAAe,CAAC,CAAC;AAEhE,MAAM,WAAW,YAAa,SAAQ,QAAQ,EAAE,mBAAmB;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,OAAO,iGAmBnB,CAAC"}
|
|
@@ -44,5 +44,6 @@ type AccentMessageProps = Except<MessageProps, "accent" | "icon">;
|
|
|
44
44
|
export declare function InfoMessage(props: AccentMessageProps): ReactNode;
|
|
45
45
|
export declare function ConfirmationMessage(props: AccentMessageProps): ReactNode;
|
|
46
46
|
export declare function WarningMessage(props: AccentMessageProps): ReactNode;
|
|
47
|
+
export declare function ErrorMessage(props: AccentMessageProps): ReactNode;
|
|
47
48
|
export {};
|
|
48
49
|
//# sourceMappingURL=Message.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Message.d.ts","sourceRoot":"","sources":["../../../../src/ui/feedback/Message.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Message.d.ts","sourceRoot":"","sources":["../../../../src/ui/feedback/Message.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,KAAK,YAAY,EAAM,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAIxD,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAG/D,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;wGAazB,CAAC;AAEF,KAAK,mBAAmB,GAAG,YAAY,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACrE,KAAK,WAAW,GAAG,WAAW,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;AAS5D,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,cAAc,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AACD,UAAU,uBAAwB,SAAQ,gBAAgB;IACxD,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AACD,UAAU,0BAA2B,SAAQ,gBAAgB;IAC3D,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,oBAAoB,CAAC,EAAE,SAAS,CAAC;CAClC;AAED,MAAM,MAAM,YAAY,GAAG,uBAAuB,GAAG,0BAA0B,CAAC;AAEhF,wBAAgB,OAAO,CAAC,EACtB,IAAI,EACJ,IAAW,EACX,MAAM,EACN,QAAQ,EACR,SAAS,EACT,oBAAoB,GACrB,EAAE,YAAY,GAAG,SAAS,CAyB1B;AAED,KAAK,kBAAkB,GAAG,MAAM,CAAC,YAAY,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC;AAElE,wBAAgB,WAAW,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAEhE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAExE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAEnE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAEjE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Message.stories.d.ts","sourceRoot":"","sources":["../../../../src/ui/feedback/Message.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAK5D,OAAO,
|
|
1
|
+
{"version":3,"file":"Message.stories.d.ts","sourceRoot":"","sources":["../../../../src/ui/feedback/Message.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAK5D,OAAO,EAIL,OAAO,EAER,MAAM,WAAW,CAAC;AAEnB,KAAK,SAAS,GAAG,QAAQ,CAAC,OAAO,OAAO,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAI1C,wBAsBiC;AAEjC,eAAO,MAAM,mBAAmB,EAAE,SAOjC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,SAuEtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RingCircle.d.ts","sourceRoot":"","sources":["../../../../src/ui/feedback/RingCircle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAWvC,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gGAAgG;IAChG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sHAAsH;IACtH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAOD,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,MAAM,EACN,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,KAAK,EACL,KAAK,EACL,MAAM,GACP,EAAE,eAAe,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"RingCircle.d.ts","sourceRoot":"","sources":["../../../../src/ui/feedback/RingCircle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAWvC,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gGAAgG;IAChG,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sHAAsH;IACtH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAOD,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,MAAM,EACN,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,KAAK,EACL,KAAK,EACL,MAAM,GACP,EAAE,eAAe,GAAG,SAAS,CAsD7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RingCircle.web.d.ts","sourceRoot":"","sources":["../../../../src/ui/feedback/RingCircle.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,MAAM,EACN,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,KAAK,EACL,MAAM,GACP,EAAE,eAAe,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"RingCircle.web.d.ts","sourceRoot":"","sources":["../../../../src/ui/feedback/RingCircle.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpD,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,MAAM,EACN,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,SAAS,EACT,KAAK,EACL,MAAM,GACP,EAAE,eAAe,GAAG,SAAS,CAsC7B"}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Time from `loading` going false until the ring has finished completing to
|
|
3
|
+
* 100% and faded out — how long a consumer must keep the component mounted
|
|
4
|
+
* to see the finish animation instead of cutting it off.
|
|
5
|
+
*/
|
|
6
|
+
export declare const indeterminateExitDurationMs: number;
|
|
1
7
|
export declare function useSimulatedProgress(loading: boolean): {
|
|
2
8
|
progress: number;
|
|
3
9
|
hidden: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSimulatedProgress.d.ts","sourceRoot":"","sources":["../../../../src/ui/feedback/useSimulatedProgress.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useSimulatedProgress.d.ts","sourceRoot":"","sources":["../../../../src/ui/feedback/useSimulatedProgress.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,eAAO,MAAM,2BAA2B,QACE,CAAC;AAkB3C,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB,CAuCA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import { type DefaultValues, type FieldValues, type SubmitHandler, type UseFormProps } from "react-hook-form";
|
|
3
|
+
export declare class FormValidationError extends Error {
|
|
4
|
+
constructor();
|
|
5
|
+
}
|
|
6
|
+
export interface FormProps<TFieldValues extends FieldValues> {
|
|
7
|
+
defaultValues: DefaultValues<TFieldValues>;
|
|
8
|
+
mode?: UseFormProps<TFieldValues>["mode"];
|
|
9
|
+
onSubmit: SubmitHandler<TFieldValues>;
|
|
10
|
+
onSubmitError?: (error: unknown) => void;
|
|
11
|
+
render: (params: {
|
|
12
|
+
submit: () => Promise<void>;
|
|
13
|
+
}) => ReactNode;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Owns the react-hook-form instance and exposes it through context, so
|
|
17
|
+
* FormField never needs a `control` prop. submit() rejects with
|
|
18
|
+
* FormValidationError when fields are invalid (nothing was submitted), so
|
|
19
|
+
* FormSubmitButton can tell that apart from a genuine onSubmit failure.
|
|
20
|
+
* Without `onSubmitError`, an exception thrown from `onSubmit` is left to
|
|
21
|
+
* propagate as a genuine unhandled rejection rather than being silently
|
|
22
|
+
* logged — FormSubmitButton (built on ActionButton) consumes it instead to
|
|
23
|
+
* drive its own loading/success/failed state.
|
|
24
|
+
*/
|
|
25
|
+
export declare function Form<TFieldValues extends FieldValues>({ defaultValues, mode, onSubmit, onSubmitError, render, }: FormProps<TFieldValues>): ReactNode;
|
|
26
|
+
//# sourceMappingURL=Form.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Form.d.ts","sourceRoot":"","sources":["../../../../src/ui/forms/Form.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,WAAW,EAEhB,KAAK,aAAa,EAClB,KAAK,YAAY,EAElB,MAAM,iBAAiB,CAAC;AAEzB,qBAAa,mBAAoB,SAAQ,KAAK;;CAK7C;AAED,MAAM,WAAW,SAAS,CAAC,YAAY,SAAS,WAAW;IACzD,aAAa,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IAC3C,IAAI,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IACtC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,MAAM,EAAE,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;KAAE,KAAK,SAAS,CAAC;CAChE;AAED;;;;;;;;;GASG;AACH,wBAAgB,IAAI,CAAC,YAAY,SAAS,WAAW,EAAE,EACrD,aAAa,EACb,IAAkB,EAClB,QAAQ,EACR,aAAa,EACb,MAAM,GACP,EAAE,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAsBrC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { StoryObj } from "@storybook/react-vite";
|
|
2
|
+
import { Form } from "./Form";
|
|
3
|
+
type ThisStory = StoryObj<typeof Form>;
|
|
4
|
+
declare const _default: {
|
|
5
|
+
title: string;
|
|
6
|
+
component: typeof Form;
|
|
7
|
+
parameters: {
|
|
8
|
+
componentSubtitle: string;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export default _default;
|
|
12
|
+
export declare const FormStory: ThisStory;
|
|
13
|
+
//# sourceMappingURL=Form.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Form.stories.d.ts","sourceRoot":"","sources":["../../../../src/ui/forms/Form.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAK5D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAW9B,KAAK,SAAS,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;;;;;;;;AAEvC,wBAO8B;AAE9B,eAAO,MAAM,SAAS,EAAE,SAsDvB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
import { type ControllerRenderProps, type FieldError, type FieldPath, type FieldValues, type RegisterOptions } from "react-hook-form";
|
|
3
|
+
export interface FormFieldProps<TFieldValues extends FieldValues> {
|
|
4
|
+
name: FieldPath<TFieldValues>;
|
|
5
|
+
label: string;
|
|
6
|
+
/**
|
|
7
|
+
* Marks the field required and shows FormItem's marker. Pass true for no
|
|
8
|
+
* message, or any other ReactNode to use as the required-field error —
|
|
9
|
+
* unless renderError overrides it — once the field is left empty.
|
|
10
|
+
* react-hook-form's own FieldError.message is always a plain string, so
|
|
11
|
+
* this is the only way to get a richer, i18n'd required message without
|
|
12
|
+
* reaching for renderError.
|
|
13
|
+
*/
|
|
14
|
+
required?: ReactNode;
|
|
15
|
+
validate?: RegisterOptions<TFieldValues>["validate"];
|
|
16
|
+
renderError?: (error: FieldError | undefined) => ReactNode;
|
|
17
|
+
render: (params: {
|
|
18
|
+
field: ControllerRenderProps<TFieldValues>;
|
|
19
|
+
labelId: string;
|
|
20
|
+
}) => ReactNode;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Wires a react-hook-form Controller to FormItem's label/error/layout.
|
|
24
|
+
* Must be used inside <Form>, which provides the control via context.
|
|
25
|
+
* Renders any input via `render` — not tied to a specific input component.
|
|
26
|
+
* The rendered input must attach `field.ref` for pressing the label to
|
|
27
|
+
* focus it, via react-hook-form's own setFocus.
|
|
28
|
+
*/
|
|
29
|
+
export declare function FormField<TFieldValues extends FieldValues>({ name, label, required, validate, renderError, render, }: FormFieldProps<TFieldValues>): ReactNode;
|
|
30
|
+
//# sourceMappingURL=FormField.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormField.d.ts","sourceRoot":"","sources":["../../../../src/ui/forms/FormField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,eAAe,EAErB,MAAM,iBAAiB,CAAC;AAGzB,MAAM,WAAW,cAAc,CAAC,YAAY,SAAS,WAAW;IAC9D,IAAI,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,eAAe,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,CAAC;IACrD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,KAAK,SAAS,CAAC;IAC3D,MAAM,EAAE,CAAC,MAAM,EAAE;QACf,KAAK,EAAE,qBAAqB,CAAC,YAAY,CAAC,CAAC;QAC3C,OAAO,EAAE,MAAM,CAAC;KACjB,KAAK,SAAS,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,YAAY,SAAS,WAAW,EAAE,EAC1D,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,MAAM,GACP,EAAE,cAAc,CAAC,YAAY,CAAC,GAAG,SAAS,CAgC1C"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { StoryObj } from "@storybook/react-vite";
|
|
2
|
+
import { FormField } from "./FormField";
|
|
3
|
+
type ThisStory = StoryObj<typeof FormField>;
|
|
4
|
+
declare const _default: {
|
|
5
|
+
title: string;
|
|
6
|
+
component: typeof FormField;
|
|
7
|
+
parameters: {
|
|
8
|
+
componentSubtitle: string;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export default _default;
|
|
12
|
+
export declare const FormFieldStory: ThisStory;
|
|
13
|
+
//# sourceMappingURL=FormField.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormField.stories.d.ts","sourceRoot":"","sources":["../../../../src/ui/forms/FormField.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAO5D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA+DxC,KAAK,SAAS,GAAG,QAAQ,CAAC,OAAO,SAAS,CAAC,CAAC;;;;;;;;AAE5C,wBAOmC;AAEnC,eAAO,MAAM,cAAc,EAAE,SA6B5B,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
import { type ArrayPath, type FieldArray, type FieldPath, type FieldValues } from "react-hook-form";
|
|
3
|
+
export interface FormFieldArrayProps<TFieldValues extends FieldValues> {
|
|
4
|
+
name: ArrayPath<TFieldValues>;
|
|
5
|
+
label: string;
|
|
6
|
+
/** Muted helper text shown under the label (e.g. a minimum-count hint). */
|
|
7
|
+
details?: ReactNode;
|
|
8
|
+
/** Value appended when a new item is added. */
|
|
9
|
+
emptyValue: FieldArray<TFieldValues, ArrayPath<TFieldValues>>;
|
|
10
|
+
/**
|
|
11
|
+
* Minimum number of items. The array is padded to this length on mount and
|
|
12
|
+
* the leading `minSize` items cannot be removed.
|
|
13
|
+
*/
|
|
14
|
+
minSize?: number;
|
|
15
|
+
/** aria-label for the add button. */
|
|
16
|
+
addLabel?: string;
|
|
17
|
+
/** Disables the add button, e.g. while the last item is still empty. */
|
|
18
|
+
disableAdd?: boolean;
|
|
19
|
+
/** aria-label for each remove button, given the item's own label. */
|
|
20
|
+
removeLabel?: (itemLabel: string) => string;
|
|
21
|
+
render: (params: {
|
|
22
|
+
/** Path prefix for this item, e.g. "guests.0". Build sub-paths as `${name}.value`. */
|
|
23
|
+
name: FieldPath<TFieldValues>;
|
|
24
|
+
index: number;
|
|
25
|
+
/** Per-item base accessible name (`${label} ${index + 1}`), e.g. "Guests 1". */
|
|
26
|
+
label: string;
|
|
27
|
+
}) => ReactNode;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* A repeatable list of object fields backed by react-hook-form's useFieldArray.
|
|
31
|
+
* Must be used inside <Form>. FormFieldArray owns only the array label and the
|
|
32
|
+
* add/remove buttons — it is agnostic about what an item contains, including
|
|
33
|
+
* any per-item framing (a caller can wrap multi-field items in a Surface). Each item's inputs (their values, labels and error
|
|
34
|
+
* messages) are the caller's job: `render` receives the item's path prefix
|
|
35
|
+
* (e.g. "guests.0") and composes its own FormField(s), bound to `name` for a
|
|
36
|
+
* raw value or `${name}.value` / `${name}.firstName` for an object item.
|
|
37
|
+
*/
|
|
38
|
+
export declare function FormFieldArray<TFieldValues extends FieldValues>({ name, label, details, emptyValue, minSize, addLabel, disableAdd, removeLabel, render, }: FormFieldArrayProps<TFieldValues>): ReactNode;
|
|
39
|
+
//# sourceMappingURL=FormFieldArray.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormFieldArray.d.ts","sourceRoot":"","sources":["../../../../src/ui/forms/FormFieldArray.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAA+B,MAAM,OAAO,CAAC;AACpE,OAAO,EACL,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,SAAS,EACd,KAAK,WAAW,EAGjB,MAAM,iBAAiB,CAAC;AAQzB,MAAM,WAAW,mBAAmB,CAAC,YAAY,SAAS,WAAW;IACnE,IAAI,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,+CAA+C;IAC/C,UAAU,EAAE,UAAU,CAAC,YAAY,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9D;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qEAAqE;IACrE,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,MAAM,EAAE,CAAC,MAAM,EAAE;QACf,sFAAsF;QACtF,IAAI,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;QAC9B,KAAK,EAAE,MAAM,CAAC;QACd,gFAAgF;QAChF,KAAK,EAAE,MAAM,CAAC;KACf,KAAK,SAAS,CAAC;CACjB;AAmDD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,YAAY,SAAS,WAAW,EAAE,EAC/D,IAAI,EACJ,KAAK,EACL,OAAO,EACP,UAAU,EACV,OAAW,EACX,QAAqB,EACrB,UAAU,EACV,WAAkD,EAClD,MAAM,GACP,EAAE,mBAAmB,CAAC,YAAY,CAAC,GAAG,SAAS,CA0D/C"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { StoryObj } from "@storybook/react-vite";
|
|
2
|
+
import { FormFieldArray } from "./FormFieldArray";
|
|
3
|
+
type ThisStory = StoryObj<typeof FormFieldArray>;
|
|
4
|
+
declare const _default: {
|
|
5
|
+
title: string;
|
|
6
|
+
component: typeof FormFieldArray;
|
|
7
|
+
parameters: {
|
|
8
|
+
componentSubtitle: string;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export default _default;
|
|
12
|
+
export declare const FormFieldArrayPreviewStory: ThisStory;
|
|
13
|
+
export declare const FormFieldArrayVariantsStory: ThisStory;
|
|
14
|
+
export declare const Tests: ThisStory;
|
|
15
|
+
export declare const MinSizeTests: ThisStory;
|
|
16
|
+
export declare const MultiFieldTests: ThisStory;
|
|
17
|
+
export declare const RawStringTests: ThisStory;
|
|
18
|
+
//# sourceMappingURL=FormFieldArray.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormFieldArray.stories.d.ts","sourceRoot":"","sources":["../../../../src/ui/forms/FormFieldArray.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAW5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AA+LlD,KAAK,SAAS,GAAG,QAAQ,CAAC,OAAO,cAAc,CAAC,CAAC;;;;;;;;AAEjD,wBAOwC;AAExC,eAAO,MAAM,0BAA0B,EAAE,SASxC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,SAkCzC,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,SA2CnB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,SAmB1B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,SA0B7B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,SA2B5B,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
export interface FormItemProps {
|
|
3
|
+
label: string;
|
|
4
|
+
/** Muted helper text shown between the label and the input. */
|
|
5
|
+
details?: ReactNode;
|
|
6
|
+
error?: ReactNode;
|
|
7
|
+
/**
|
|
8
|
+
* True when `error` is caused by the field being left empty, as opposed
|
|
9
|
+
* to some other validation failure. An empty required field just needs
|
|
10
|
+
* its star recolored — a second warning icon would be a redundant cue.
|
|
11
|
+
*/
|
|
12
|
+
isRequiredError?: boolean;
|
|
13
|
+
/** true shows the default marker; any other ReactNode replaces it. */
|
|
14
|
+
required?: ReactNode;
|
|
15
|
+
/**
|
|
16
|
+
* Wraps the rendered content in a left border + padding to visually nest it
|
|
17
|
+
* inside a group. The label stays at full width above the rail.
|
|
18
|
+
*/
|
|
19
|
+
indented?: boolean;
|
|
20
|
+
/** Called when the label is pressed, so it can focus the input. */
|
|
21
|
+
onLabelPress?: () => void;
|
|
22
|
+
render: (labelId: string) => ReactNode;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Label, error message and layout for a single form field. Form-library
|
|
26
|
+
* agnostic — pass the input as a render prop so it can wire
|
|
27
|
+
* aria-labelledby to the generated labelId, and onLabelPress so the label
|
|
28
|
+
* can focus it, matching a native <label for> click.
|
|
29
|
+
*/
|
|
30
|
+
export declare function FormItem({ label, details, error, isRequiredError, required, indented, onLabelPress, render, }: FormItemProps): ReactNode;
|
|
31
|
+
//# sourceMappingURL=FormItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormItem.d.ts","sourceRoot":"","sources":["../../../../src/ui/forms/FormItem.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAS,MAAM,OAAO,CAAC;AAQ9C,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,sEAAsE;IACtE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC;CACxC;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,OAAO,EACP,KAAK,EACL,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,MAAM,GACP,EAAE,aAAa,GAAG,SAAS,CAkF3B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { StoryObj } from "@storybook/react-vite";
|
|
2
|
+
import { FormItem } from "./FormItem";
|
|
3
|
+
type ThisStory = StoryObj<typeof FormItem>;
|
|
4
|
+
declare const _default: {
|
|
5
|
+
title: string;
|
|
6
|
+
component: typeof FormItem;
|
|
7
|
+
parameters: {
|
|
8
|
+
componentSubtitle: string;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export default _default;
|
|
12
|
+
export declare const Variants: ThisStory;
|
|
13
|
+
export declare const Tests: ThisStory;
|
|
14
|
+
//# sourceMappingURL=FormItem.stories.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormItem.stories.d.ts","sourceRoot":"","sources":["../../../../src/ui/forms/FormItem.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAK5D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAiGtC,KAAK,SAAS,GAAG,QAAQ,CAAC,OAAO,QAAQ,CAAC,CAAC;;;;;;;;AAE3C,wBAOkC;AAElC,eAAO,MAAM,QAAQ,EAAE,SAgCtB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,SAkBnB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ReactNode } from "react";
|
|
2
|
+
export interface FormSubmitButtonProps {
|
|
3
|
+
label: string;
|
|
4
|
+
onPress: () => Promise<void>;
|
|
5
|
+
/**
|
|
6
|
+
* Maps a submit failure to displayed text. Required rather than
|
|
7
|
+
* defaulted, since a library-provided default could only ever be a
|
|
8
|
+
* hardcoded English string — not translatable. Check
|
|
9
|
+
* `error instanceof FormValidationError` to render a "fix the errors
|
|
10
|
+
* above" case distinctly from a genuine onSubmit failure.
|
|
11
|
+
*/
|
|
12
|
+
errorToMessage: (error: unknown) => string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Submit button for a <Form>. Built on ActionButton, so submission gets the
|
|
16
|
+
* same loading/success/failed lifecycle and inline error message as any
|
|
17
|
+
* other async action in the app, rather than a plain boolean isSubmitting.
|
|
18
|
+
*/
|
|
19
|
+
export declare function FormSubmitButton({ label, onPress, errorToMessage, }: FormSubmitButtonProps): ReactNode;
|
|
20
|
+
//# sourceMappingURL=FormSubmitButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormSubmitButton.d.ts","sourceRoot":"","sources":["../../../../src/ui/forms/FormSubmitButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B;;;;;;OAMG;IACH,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CAC5C;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,OAAO,EACP,cAAc,GACf,EAAE,qBAAqB,GAAG,SAAS,CAQnC"}
|