alouette 20.3.0 → 20.4.0

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.
Files changed (56) hide show
  1. package/bin/install-skills.mjs +72 -0
  2. package/dist/definitions/animationDurationsMs.d.ts +3 -0
  3. package/dist/definitions/animationDurationsMs.d.ts.map +1 -1
  4. package/dist/definitions/core/useColorToken.d.ts +9 -0
  5. package/dist/definitions/core/useColorToken.d.ts.map +1 -0
  6. package/dist/definitions/index.d.ts +4 -0
  7. package/dist/definitions/index.d.ts.map +1 -1
  8. package/dist/definitions/ui/feedback/CircularProgress.d.ts +21 -0
  9. package/dist/definitions/ui/feedback/CircularProgress.d.ts.map +1 -0
  10. package/dist/definitions/ui/feedback/CircularProgress.stories.d.ts +38 -0
  11. package/dist/definitions/ui/feedback/CircularProgress.stories.d.ts.map +1 -0
  12. package/dist/definitions/ui/feedback/LinearProgress.d.ts +21 -0
  13. package/dist/definitions/ui/feedback/LinearProgress.d.ts.map +1 -0
  14. package/dist/definitions/ui/feedback/LinearProgress.stories.d.ts +38 -0
  15. package/dist/definitions/ui/feedback/LinearProgress.stories.d.ts.map +1 -0
  16. package/dist/definitions/ui/feedback/RingCircle.d.ts +16 -0
  17. package/dist/definitions/ui/feedback/RingCircle.d.ts.map +1 -0
  18. package/dist/definitions/ui/feedback/RingCircle.web.d.ts +4 -0
  19. package/dist/definitions/ui/feedback/RingCircle.web.d.ts.map +1 -0
  20. package/dist/definitions/ui/feedback/useSimulatedProgress.d.ts +5 -0
  21. package/dist/definitions/ui/feedback/useSimulatedProgress.d.ts.map +1 -0
  22. package/dist/definitions/ui/primitives/Icon.d.ts +2 -1
  23. package/dist/definitions/ui/primitives/Icon.d.ts.map +1 -1
  24. package/dist/definitions/ui/story-components/IndeterminateToggleDemo.d.ts +7 -0
  25. package/dist/definitions/ui/story-components/IndeterminateToggleDemo.d.ts.map +1 -0
  26. package/dist/index-browser.es.js +144 -16
  27. package/dist/index-browser.es.js.map +1 -1
  28. package/dist/index-node22.cjs +171 -14
  29. package/dist/index-node22.cjs.map +1 -1
  30. package/dist/index-node22.mjs +170 -15
  31. package/dist/index-node22.mjs.map +1 -1
  32. package/dist/index-react-native.cjs.js +171 -14
  33. package/dist/index-react-native.cjs.js.map +1 -1
  34. package/dist/index-react-native.es.js +170 -15
  35. package/dist/index-react-native.es.js.map +1 -1
  36. package/package.json +6 -2
  37. package/src/animationDurationsMs.ts +4 -1
  38. package/src/core/useColorToken.ts +31 -0
  39. package/src/global.css +21 -12
  40. package/src/index.ts +12 -0
  41. package/src/themeVariables.ts +6 -6
  42. package/src/ui/containers/Box.tsx +1 -1
  43. package/src/ui/feedback/CircularProgress.stories.tsx +100 -0
  44. package/src/ui/feedback/CircularProgress.tsx +118 -0
  45. package/src/ui/feedback/ConnectionState.tsx +2 -2
  46. package/src/ui/feedback/LinearProgress.stories.tsx +101 -0
  47. package/src/ui/feedback/LinearProgress.tsx +77 -0
  48. package/src/ui/feedback/RingCircle.tsx +83 -0
  49. package/src/ui/feedback/RingCircle.web.tsx +39 -0
  50. package/src/ui/feedback/useSimulatedProgress.ts +66 -0
  51. package/src/ui/inputs/InputText.tsx +1 -1
  52. package/src/ui/inputs/Select.shared.tsx +1 -1
  53. package/src/ui/inputs/Select.web.tsx +2 -2
  54. package/src/ui/inputs/Switch.web.tsx +2 -2
  55. package/src/ui/primitives/Icon.tsx +4 -22
  56. package/src/ui/story-components/IndeterminateToggleDemo.tsx +29 -0
@@ -0,0 +1,72 @@
1
+ #!/usr/bin/env node
2
+ // Symlinks alouette's packages/alouette/skills/* into the consuming
3
+ // project's .claude/skills/ so AI coding agents pick them up.
4
+ //
5
+ // Usage: npx alouette-install-skills
6
+
7
+ import {
8
+ existsSync,
9
+ lstatSync,
10
+ mkdirSync,
11
+ readdirSync,
12
+ readlinkSync,
13
+ rmSync,
14
+ symlinkSync,
15
+ } from "node:fs";
16
+ import { dirname, join, relative } from "node:path";
17
+ import { fileURLToPath } from "node:url";
18
+
19
+ // Names of skills retired from packages/alouette/skills. Listed here so
20
+ // `alouette-install-skills` removes their leftover symlinks from projects
21
+ // that installed an earlier version. Add a name the same release its
22
+ // skills/<name> directory is deleted.
23
+ const REMOVED_SKILLS = [];
24
+
25
+ const packageRoot = join(dirname(fileURLToPath(import.meta.url)), "..");
26
+ const sourceSkillsDir = join(packageRoot, "skills");
27
+ const targetSkillsDir = join(process.cwd(), ".claude", "skills");
28
+
29
+ if (!existsSync(sourceSkillsDir)) {
30
+ console.error(`No skills directory found at ${sourceSkillsDir}`);
31
+ process.exit(1);
32
+ }
33
+
34
+ mkdirSync(targetSkillsDir, { recursive: true });
35
+
36
+ for (const name of readdirSync(sourceSkillsDir)) {
37
+ const source = join(sourceSkillsDir, name);
38
+ if (!lstatSync(source).isDirectory()) continue;
39
+
40
+ const target = join(targetSkillsDir, name);
41
+ const link = relative(targetSkillsDir, source);
42
+ const stat = lstatSync(target, { throwIfNoEntry: false });
43
+
44
+ if (stat) {
45
+ if (stat.isSymbolicLink() && readlinkSync(target) === link) {
46
+ console.log(`up to date: ${name}`);
47
+ continue;
48
+ }
49
+ if (!stat.isSymbolicLink()) {
50
+ console.warn(
51
+ `skipping ${name}: ${target} already exists and is not a symlink`,
52
+ );
53
+ continue;
54
+ }
55
+ rmSync(target);
56
+ }
57
+
58
+ symlinkSync(link, target, "dir");
59
+ console.log(`linked: ${name}`);
60
+ }
61
+
62
+ for (const name of REMOVED_SKILLS) {
63
+ const target = join(targetSkillsDir, name);
64
+ const stat = lstatSync(target, { throwIfNoEntry: false });
65
+ if (!stat) continue;
66
+ if (!stat.isSymbolicLink()) {
67
+ console.warn(`skipping removal of ${name}: ${target} is not a symlink`);
68
+ continue;
69
+ }
70
+ rmSync(target);
71
+ console.log(`removed (retired): ${name}`);
72
+ }
@@ -6,5 +6,8 @@
6
6
  export declare const animationDurationsMs: {
7
7
  readonly slide: 600;
8
8
  readonly collapse: 800;
9
+ readonly progress: 300;
10
+ readonly fade: 300;
11
+ readonly fast: 200;
9
12
  };
10
13
  //# sourceMappingURL=animationDurationsMs.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"animationDurationsMs.d.ts","sourceRoot":"","sources":["../../src/animationDurationsMs.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;CAGvB,CAAC"}
1
+ {"version":3,"file":"animationDurationsMs.d.ts","sourceRoot":"","sources":["../../src/animationDurationsMs.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;;;;CAMvB,CAAC"}
@@ -0,0 +1,9 @@
1
+ export type ColorClassName = string | "text-accent" | "text-disabled-muted" | "text-disabled" | "text-muted" | "text-on-accent-muted" | "text-on-accent" | "text-sharp";
2
+ /**
3
+ * Resolves a `text-*` Tailwind className (e.g. `"text-accent"`) to its
4
+ * concrete `--color-*` token value for the active theme. For native SVG
5
+ * props (`color`, `stroke`, `fill`) that can't take a className directly and
6
+ * so can't rely on CSS `currentColor` the way web SVG can.
7
+ */
8
+ export declare function useColorToken(className: ColorClassName): string | undefined;
9
+ //# sourceMappingURL=useColorToken.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useColorToken.d.ts","sourceRoot":"","sources":["../../../src/core/useColorToken.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,cAAc,GACtB,MAAM,GAEN,aAAa,GAEb,qBAAqB,GAErB,eAAe,GAEf,YAAY,GAEZ,sBAAsB,GAEtB,gBAAgB,GAEhB,YAAY,CAAC;AACjB;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,cAAc,GAAG,MAAM,GAAG,SAAS,CAM3E"}
@@ -64,6 +64,10 @@ export type { BadgeProps } from "./ui/feedback/Badge";
64
64
  export { Badge } from "./ui/feedback/Badge";
65
65
  export type { ConnectionStateProps, ConnectionStateStatus, } from "./ui/feedback/ConnectionState";
66
66
  export { ConnectionState } from "./ui/feedback/ConnectionState";
67
+ export type { IndeterminateLinearProgressProps, LinearProgressProps, LinearProgressSize, } from "./ui/feedback/LinearProgress";
68
+ export { LinearProgress } from "./ui/feedback/LinearProgress";
69
+ export type { CircularProgressProps, CircularProgressSize, IndeterminateCircularProgressProps, } from "./ui/feedback/CircularProgress";
70
+ export { CircularProgress } from "./ui/feedback/CircularProgress";
67
71
  export type { MessageProps } from "./ui/feedback/Message";
68
72
  export { ConfirmationMessage, InfoMessage, Message, WarningMessage, } from "./ui/feedback/Message";
69
73
  export type { PressableListItemProps } from "./ui/data/PressableListItem";
@@ -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,21 @@
1
+ import type { ReactNode } from "react";
2
+ import type { Accent } from "../../core/AlouetteConfig";
3
+ export type CircularProgressSize = "lg" | "md" | "sm" | "xs";
4
+ export interface CircularProgressProps {
5
+ /** Known completion percentage, 0-100. For an unknown percentage (e.g.
6
+ * reconnecting, page transitions), use `IndeterminateCircularProgress` instead. */
7
+ progress: number;
8
+ hidden?: boolean;
9
+ accent?: Accent;
10
+ size?: CircularProgressSize;
11
+ }
12
+ export declare function CircularProgress({ progress, hidden, accent, size, }: CircularProgressProps): ReactNode;
13
+ export interface IndeterminateCircularProgressProps {
14
+ /** Whether an operation is in progress. The ring creeps toward 100% while
15
+ * `true`, then completes and fades out once `false`. */
16
+ loading: boolean;
17
+ accent?: Accent;
18
+ size?: CircularProgressSize;
19
+ }
20
+ export declare function IndeterminateCircularProgress({ loading, accent, size, }: IndeterminateCircularProgressProps): ReactNode;
21
+ //# sourceMappingURL=CircularProgress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CircularProgress.d.ts","sourceRoot":"","sources":["../../../../src/ui/feedback/CircularProgress.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAOxD,MAAM,MAAM,oBAAoB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AA2B7D,MAAM,WAAW,qBAAqB;IACpC;uFACmF;IACnF,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,oBAAoB,CAAC;CAC7B;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,MAAc,EACd,MAAgB,EAChB,IAAW,GACZ,EAAE,qBAAqB,GAAG,SAAS,CA0CnC;AAED,MAAM,WAAW,kCAAkC;IACjD;4DACwD;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,oBAAoB,CAAC;CAC7B;AAED,wBAAgB,6BAA6B,CAAC,EAC5C,OAAO,EACP,MAAM,EACN,IAAI,GACL,EAAE,kCAAkC,GAAG,SAAS,CAWhD"}
@@ -0,0 +1,38 @@
1
+ import type { StoryObj } from "@storybook/react-vite";
2
+ import { CircularProgress } from "./CircularProgress";
3
+ type ThisStory = StoryObj<typeof CircularProgress>;
4
+ declare const _default: {
5
+ title: string;
6
+ component: typeof CircularProgress;
7
+ parameters: {
8
+ componentSubtitle: string;
9
+ };
10
+ argTypes: {
11
+ progress: {
12
+ description: string;
13
+ control: {
14
+ type: "range";
15
+ min: number;
16
+ max: number;
17
+ };
18
+ };
19
+ hidden: {
20
+ description: string;
21
+ control: "boolean";
22
+ };
23
+ accent: {
24
+ description: string;
25
+ control: "select";
26
+ options: string[];
27
+ };
28
+ size: {
29
+ description: string;
30
+ control: "select";
31
+ options: string[];
32
+ };
33
+ };
34
+ };
35
+ export default _default;
36
+ export declare const CircularProgressPreviewStory: ThisStory;
37
+ export declare const CircularProgressVariantsStory: ThisStory;
38
+ //# sourceMappingURL=CircularProgress.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CircularProgress.stories.d.ts","sourceRoot":"","sources":["../../../../src/ui/feedback/CircularProgress.stories.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAK5D,OAAO,EACL,gBAAgB,EAEjB,MAAM,oBAAoB,CAAC;AAE5B,KAAK,SAAS,GAAG,QAAQ,CAAC,OAAO,gBAAgB,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEnD,wBA2B0C;AAE1C,eAAO,MAAM,4BAA4B,EAAE,SAuB1C,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,SAgC3C,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { ReactNode } from "react";
2
+ import type { Accent } from "../../core/AlouetteConfig";
3
+ export type LinearProgressSize = "lg" | "md" | "sm" | "xs";
4
+ export interface LinearProgressProps {
5
+ /** Known completion percentage, 0-100. For an unknown percentage (e.g.
6
+ * reconnecting, page transitions), use `IndeterminateLinearProgress` instead. */
7
+ progress: number;
8
+ hidden?: boolean;
9
+ accent?: Accent;
10
+ size?: LinearProgressSize;
11
+ }
12
+ export declare function LinearProgress({ progress, hidden, accent, size, }: LinearProgressProps): ReactNode;
13
+ export interface IndeterminateLinearProgressProps {
14
+ /** Whether an operation is in progress. The bar creeps toward 100% while
15
+ * `true`, then completes and fades out once `false`. */
16
+ loading: boolean;
17
+ accent?: Accent;
18
+ size?: LinearProgressSize;
19
+ }
20
+ export declare function IndeterminateLinearProgress({ loading, accent, size, }: IndeterminateLinearProgressProps): ReactNode;
21
+ //# sourceMappingURL=LinearProgress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinearProgress.d.ts","sourceRoot":"","sources":["../../../../src/ui/feedback/LinearProgress.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAKxD,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAmB3D,MAAM,WAAW,mBAAmB;IAClC;qFACiF;IACjF,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,kBAAkB,CAAC;CAC3B;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,MAAc,EACd,MAAgB,EAChB,IAAW,GACZ,EAAE,mBAAmB,GAAG,SAAS,CAWjC;AAED,MAAM,WAAW,gCAAgC;IAC/C;4DACwD;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,kBAAkB,CAAC;CAC3B;AAED,wBAAgB,2BAA2B,CAAC,EAC1C,OAAO,EACP,MAAM,EACN,IAAI,GACL,EAAE,gCAAgC,GAAG,SAAS,CAW9C"}
@@ -0,0 +1,38 @@
1
+ import type { StoryObj } from "@storybook/react-vite";
2
+ import { LinearProgress } from "./LinearProgress";
3
+ type ThisStory = StoryObj<typeof LinearProgress>;
4
+ declare const _default: {
5
+ title: string;
6
+ component: typeof LinearProgress;
7
+ parameters: {
8
+ componentSubtitle: string;
9
+ };
10
+ argTypes: {
11
+ progress: {
12
+ description: string;
13
+ control: {
14
+ type: "range";
15
+ min: number;
16
+ max: number;
17
+ };
18
+ };
19
+ hidden: {
20
+ description: string;
21
+ control: "boolean";
22
+ };
23
+ accent: {
24
+ description: string;
25
+ control: "select";
26
+ options: string[];
27
+ };
28
+ size: {
29
+ description: string;
30
+ control: "select";
31
+ options: string[];
32
+ };
33
+ };
34
+ };
35
+ export default _default;
36
+ export declare const LinearProgressPreviewStory: ThisStory;
37
+ export declare const LinearProgressVariantsStory: ThisStory;
38
+ //# sourceMappingURL=LinearProgress.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LinearProgress.stories.d.ts","sourceRoot":"","sources":["../../../../src/ui/feedback/LinearProgress.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAI5D,OAAO,EAA+B,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE/E,KAAK,SAAS,GAAG,QAAQ,CAAC,OAAO,cAAc,CAAC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEjD,wBA2BwC;AAExC,eAAO,MAAM,0BAA0B,EAAE,SAQxC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,SAqDzC,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { ReactNode } from "react";
2
+ export interface RingCircleProps {
3
+ center: number;
4
+ radius: number;
5
+ strokeWidth: number;
6
+ strokeDasharray?: number;
7
+ strokeDashoffset?: number;
8
+ /** Injected by the native `Icon` via `cloneElement`, resolved from a `useColorToken` string. */
9
+ color?: string;
10
+ /** Injected by the web `Icon` via `cloneElement` — the `text-*` class itself, resolved through CSS `currentColor`. */
11
+ className?: string;
12
+ width?: number;
13
+ height?: number;
14
+ }
15
+ export declare function RingCircle({ center, radius, strokeWidth, strokeDasharray, strokeDashoffset, color, width, height, }: RingCircleProps): ReactNode;
16
+ //# sourceMappingURL=RingCircle.d.ts.map
@@ -0,0 +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,CA2C7B"}
@@ -0,0 +1,4 @@
1
+ import type { ReactNode } from "react";
2
+ import type { RingCircleProps } from "./RingCircle";
3
+ export declare function RingCircle({ center, radius, strokeWidth, strokeDasharray, strokeDashoffset, className, width, height, }: RingCircleProps): ReactNode;
4
+ //# sourceMappingURL=RingCircle.web.d.ts.map
@@ -0,0 +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,CA0B7B"}
@@ -0,0 +1,5 @@
1
+ export declare function useSimulatedProgress(loading: boolean): {
2
+ progress: number;
3
+ hidden: boolean;
4
+ };
5
+ //# sourceMappingURL=useSimulatedProgress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSimulatedProgress.d.ts","sourceRoot":"","sources":["../../../../src/ui/feedback/useSimulatedProgress.ts"],"names":[],"mappings":"AAuBA,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB,CAuCA"}
@@ -1,4 +1,5 @@
1
1
  import { type ReactElement, type ReactNode, type SVGProps } from "react";
2
+ import type { ColorClassName } from "../../core/useColorToken";
2
3
  export type SVGIconElement = ReactElement<SVGProps<SVGSVGElement>>;
3
4
  export interface IconProps {
4
5
  icon: SVGIconElement;
@@ -9,7 +10,7 @@ export interface IconProps {
9
10
  * `text-muted`, `text-accent`, `text-on-accent`, `text-disabled-muted`.
10
11
  * Defaults to `text-sharp`.
11
12
  */
12
- className?: string | "text-accent" | "text-disabled-muted" | "text-disabled" | "text-muted" | "text-on-accent-muted" | "text-on-accent" | "text-sharp";
13
+ className?: ColorClassName;
13
14
  }
14
15
  export declare function Icon({ icon, size, className, }: IconProps): ReactNode;
15
16
  //# sourceMappingURL=Icon.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../../../src/ui/primitives/Icon.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,QAAQ,EAEd,MAAM,OAAO,CAAC;AAGf,MAAM,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;AAEnE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,cAAc,CAAC;IACrB,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,SAAS,CAAC,EACN,MAAM,GAEN,aAAa,GAEb,qBAAqB,GAErB,eAAe,GAEf,YAAY,GAEZ,sBAAsB,GAEtB,gBAAgB,GAEhB,YAAY,CAAC;CAClB;AAED,wBAAgB,IAAI,CAAC,EACnB,IAAI,EACJ,IAAS,EACT,SAAwB,GACzB,EAAE,SAAS,GAAG,SAAS,CAavB"}
1
+ {"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../../../src/ui/primitives/Icon.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,QAAQ,EAEd,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,MAAM,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;AAEnE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,cAAc,CAAC;IACrB,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;AAED,wBAAgB,IAAI,CAAC,EACnB,IAAI,EACJ,IAAS,EACT,SAAwB,GACzB,EAAE,SAAS,GAAG,SAAS,CASvB"}
@@ -0,0 +1,7 @@
1
+ import type { ReactNode } from "react";
2
+ export interface IndeterminateToggleDemoProps {
3
+ boxClassName: string;
4
+ children: (loading: boolean) => ReactNode;
5
+ }
6
+ export declare function IndeterminateToggleDemo({ boxClassName, children, }: IndeterminateToggleDemoProps): ReactNode;
7
+ //# sourceMappingURL=IndeterminateToggleDemo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IndeterminateToggleDemo.d.ts","sourceRoot":"","sources":["../../../../src/ui/story-components/IndeterminateToggleDemo.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAMvC,MAAM,WAAW,4BAA4B;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,SAAS,CAAC;CAC3C;AAED,wBAAgB,uBAAuB,CAAC,EACtC,YAAY,EACZ,QAAQ,GACT,EAAE,4BAA4B,GAAG,SAAS,CAc1C"}
@@ -36,7 +36,7 @@ const themeVariables = {
36
36
  "--color-interactive-accent-contained-bg-disabled": "#EBEBEB",
37
37
  "--color-interactive-accent-outlined-disabled": "#B8B8B8",
38
38
  "--color-screen": "#EBEBEB",
39
- "--color-surface": "#F5F5F5",
39
+ "--color-surface": "#FAFAFA",
40
40
  "--color-highlight": "#FFFFFF",
41
41
  "--color-enabled": "#C7C7C7",
42
42
  "--color-highlight-accent": "#E0E0E0",
@@ -47,8 +47,8 @@ const themeVariables = {
47
47
  "--color-border-muted": "#8F8F8F",
48
48
  "--color-border-sharp": "#616161",
49
49
  "--color-interactive-contained-pressable": "#FFFFFF",
50
- "--color-interactive-contained-hover": "#F5F5F5",
51
- "--color-interactive-contained-focus": "#F5F5F5",
50
+ "--color-interactive-contained-hover": "#FAFAFA",
51
+ "--color-interactive-contained-focus": "#FAFAFA",
52
52
  "--color-interactive-contained-active": "#EBEBEB",
53
53
  "--color-interactive-outlined-pressable": "#616161",
54
54
  "--color-interactive-outlined-hover": "#8F8F8F",
@@ -65,9 +65,9 @@ const themeVariables = {
65
65
  "--color-on-accent-muted": "#616161",
66
66
  "--color-selection": "#47474740",
67
67
  "--color-interactive-accent-contained-bg": "#EBEBEB",
68
- "--color-interactive-accent-contained-bg-hover": "#F5F5F5",
69
- "--color-interactive-accent-contained-bg-focus": "#F5F5F5",
70
- "--color-interactive-accent-contained-bg-active": "#F5F5F5"
68
+ "--color-interactive-accent-contained-bg-hover": "#FAFAFA",
69
+ "--color-interactive-accent-contained-bg-focus": "#FAFAFA",
70
+ "--color-interactive-accent-contained-bg-active": "#FAFAFA"
71
71
  },
72
72
  "dark": {
73
73
  "--color-translucent": "#1f1e1e55",
@@ -785,7 +785,7 @@ const interactiveBoxVariants = tv({
785
785
  base: [
786
786
  boxBaseClasses,
787
787
  "cursor-pointer",
788
- "transition-[transform,background-color,border-color] duration-200 ease-in",
788
+ "transition-[transform,background-color,border-color] duration-fast ease-in",
789
789
  "disabled:cursor-not-allowed disabled:opacity-70 aria-disabled:cursor-not-allowed aria-disabled:opacity-70",
790
790
  "active:scale-[0.975]"
791
791
  ].join(" "),
@@ -1251,7 +1251,10 @@ function PresenceOne({
1251
1251
 
1252
1252
  const animationDurationsMs = {
1253
1253
  "slide": 600,
1254
- "collapse": 800
1254
+ "collapse": 800,
1255
+ "progress": 300,
1256
+ "fade": 300,
1257
+ "fast": 200
1255
1258
  };
1256
1259
 
1257
1260
  const pressableBoxVariants = tv(
@@ -1832,7 +1835,7 @@ const inputVariants = tv(
1832
1835
  base: [
1833
1836
  "bg-highlight text-base text-sharp",
1834
1837
  "border",
1835
- "transition-[border-color,background-color,outline-color] duration-200 ease-in",
1838
+ "transition-[border-color,background-color,outline-color] duration-fast ease-in",
1836
1839
  "outline-interactive-outlined-pressable",
1837
1840
  // to have proper outline color transition
1838
1841
  process.env.EXPO_PUBLIC_STORYBOOK_ENABLED ? "" : "border-interactive-outlined-pressable",
@@ -1929,7 +1932,7 @@ const trackVariants = tv(
1929
1932
  "height-[36px] w-[58px]",
1930
1933
  // Must be identical to TRACK_HEIGHT and TRACK_WIDTH constants above
1931
1934
  "relative rounded-full overflow-hidden shadow-lowered pointer-events-auto",
1932
- "transition-background-color duration-200 ease-in",
1935
+ "transition-background-color duration-fast ease-in",
1933
1936
  "outline-interactive-outlined-outline-focus",
1934
1937
  "aria-disabled:bg-disabled-interactive-muted"
1935
1938
  ].join(" "),
@@ -1948,7 +1951,7 @@ const thumbVariants = tv(
1948
1951
  {
1949
1952
  base: [
1950
1953
  "absolute rounded-full shadow-s aria-disabled:shadow-none",
1951
- "transition-transform duration-200 ease-in",
1954
+ "transition-transform duration-fast ease-in",
1952
1955
  "bg-surface aria-disabled:bg-disabled-interactive"
1953
1956
  ].join(" ")
1954
1957
  },
@@ -2074,8 +2077,8 @@ function SelectTriggerContent({
2074
2077
  const wrapperVariants = tv(
2075
2078
  {
2076
2079
  base: [
2077
- "flex-row flex-1 rounded-md border min-h-11",
2078
- "transition-[border-color,outline-color] duration-200 ease-in",
2080
+ "relative flex-row flex-1 rounded-md border min-h-11",
2081
+ "transition-[border-color,outline-color] duration-fast ease-in",
2079
2082
  "outline-interactive-outlined-pressable"
2080
2083
  // for a proper outline color transition
2081
2084
  ].join(" "),
@@ -2279,8 +2282,133 @@ function ConnectionState({
2279
2282
  return /* @__PURE__ */ jsx(AccentScope, { accent, children: /* @__PURE__ */ jsx(
2280
2283
  View,
2281
2284
  {
2282
- className: `absolute inset-x-0 top-0 z-9 h-0.5 bg-interactive-contained-pressable shadow-m transition-transform duration-700 ease-in-out ${hidden ? "-translate-y-6" : "translate-y-0"}`,
2283
- children: state ? /* @__PURE__ */ jsx(Text, { className: "absolute left-1/2 top-0.5 h-5.5 w-50 -translate-x-1/2 rounded-b-sm bg-interactive-contained-pressable text-center leading-5.5 text-on-accent transition-colors duration-200", children }) : null
2285
+ className: `absolute inset-x-0 top-0 z-9 h-0.5 bg-interactive-contained-pressable shadow-m transition-transform duration-slide ease-in-out ${hidden ? "-translate-y-6" : "translate-y-0"}`,
2286
+ children: state ? /* @__PURE__ */ jsx(Text, { className: "absolute left-1/2 top-0.5 h-5.5 w-50 -translate-x-1/2 rounded-b-sm bg-interactive-contained-pressable text-center leading-5.5 text-on-accent transition-colors duration-fast", children }) : null
2287
+ }
2288
+ ) });
2289
+ }
2290
+
2291
+ const track = tv({
2292
+ base: "absolute inset-x-0 top-0 z-10 overflow-hidden transition-opacity duration-fade",
2293
+ variants: {
2294
+ size: {
2295
+ xs: "h-0.5",
2296
+ sm: "h-1",
2297
+ md: "h-1.5",
2298
+ lg: "h-2"
2299
+ },
2300
+ hidden: {
2301
+ true: "opacity-0",
2302
+ false: "opacity-100"
2303
+ }
2304
+ },
2305
+ defaultVariants: { size: "md", hidden: false }
2306
+ });
2307
+ function LinearProgress({
2308
+ progress,
2309
+ hidden = false,
2310
+ accent = "brand",
2311
+ size = "md"
2312
+ }) {
2313
+ return /* @__PURE__ */ jsx(AccentScope, { accent, children: /* @__PURE__ */ jsx(View, { pointerEvents: "none", className: track({ size, hidden }), children: /* @__PURE__ */ jsx(
2314
+ View,
2315
+ {
2316
+ className: "h-full bg-accent transition-[width] duration-progress ease-out",
2317
+ style: { width: `${progress}%` }
2318
+ }
2319
+ ) }) });
2320
+ }
2321
+
2322
+ function RingCircle({
2323
+ center,
2324
+ radius,
2325
+ strokeWidth,
2326
+ strokeDasharray,
2327
+ strokeDashoffset,
2328
+ className,
2329
+ width,
2330
+ height
2331
+ }) {
2332
+ return /* @__PURE__ */ jsx("svg", { className, width, height, children: /* @__PURE__ */ jsx(
2333
+ "circle",
2334
+ {
2335
+ cx: center,
2336
+ cy: center,
2337
+ r: radius,
2338
+ stroke: "currentColor",
2339
+ strokeWidth,
2340
+ strokeDasharray,
2341
+ strokeDashoffset,
2342
+ strokeLinecap: strokeDasharray == null ? void 0 : "round",
2343
+ transform: strokeDasharray == null ? void 0 : `rotate(-90 ${center} ${center})`,
2344
+ className: strokeDasharray == null ? void 0 : "transition-[stroke-dashoffset] duration-progress ease-out",
2345
+ fill: "none"
2346
+ }
2347
+ ) });
2348
+ }
2349
+
2350
+ const diameterBySize = {
2351
+ xs: 16,
2352
+ sm: 32,
2353
+ md: 64,
2354
+ lg: 128
2355
+ };
2356
+ const strokeWidthBySize = {
2357
+ xs: 2,
2358
+ sm: 4,
2359
+ md: 8,
2360
+ lg: 16
2361
+ };
2362
+ const ring = tv({
2363
+ base: "relative transition-opacity duration-fade",
2364
+ variants: {
2365
+ hidden: {
2366
+ true: "opacity-0",
2367
+ false: "opacity-100"
2368
+ }
2369
+ },
2370
+ defaultVariants: { hidden: false }
2371
+ });
2372
+ function CircularProgress({
2373
+ progress,
2374
+ hidden = false,
2375
+ accent = "brand",
2376
+ size = "md"
2377
+ }) {
2378
+ const diameter = diameterBySize[size];
2379
+ const strokeWidth = strokeWidthBySize[size];
2380
+ const radius = (diameter - strokeWidth) / 2;
2381
+ const circumference = 2 * Math.PI * radius;
2382
+ const clampedProgress = Math.min(Math.max(progress, 0), 100);
2383
+ const dashOffset = circumference * (1 - clampedProgress / 100);
2384
+ const center = diameter / 2;
2385
+ const trackRing = /* @__PURE__ */ jsx(RingCircle, { center, radius, strokeWidth });
2386
+ const fillRing = /* @__PURE__ */ jsx(
2387
+ RingCircle,
2388
+ {
2389
+ center,
2390
+ radius,
2391
+ strokeWidth,
2392
+ strokeDasharray: circumference,
2393
+ strokeDashoffset: dashOffset
2394
+ }
2395
+ );
2396
+ return /* @__PURE__ */ jsx(AccentScope, { accent, children: /* @__PURE__ */ jsxs(
2397
+ View,
2398
+ {
2399
+ className: ring({ hidden }),
2400
+ style: { width: diameter, height: diameter },
2401
+ children: [
2402
+ /* @__PURE__ */ jsx(View, { className: "absolute inset-0", children: /* @__PURE__ */ jsx(
2403
+ Icon,
2404
+ {
2405
+ icon: trackRing,
2406
+ size: diameter,
2407
+ className: "text-highlight-accent"
2408
+ }
2409
+ ) }),
2410
+ /* @__PURE__ */ jsx(View, { className: "absolute inset-0", children: /* @__PURE__ */ jsx(Icon, { icon: fillRing, size: diameter, className: "text-accent" }) })
2411
+ ]
2284
2412
  }
2285
2413
  ) });
2286
2414
  }
@@ -2531,5 +2659,5 @@ function ExternalLink({
2531
2659
  );
2532
2660
  }
2533
2661
 
2534
- export { AccentScope, AlertDialog, AlouetteDecorator, AlouetteProvider, Badge, Box, BreakpointNameEnum, Breakpoints, Button, ConfirmationMessage, ConnectionState, ExternalLink, ExternalLinkButton, FlatList, GradientBackground, GradientScrollView, HStack, Icon, IconButton, InfoAlertDialog, InfoMessage, InputText, InteractiveBox, InternalLinkButton, Message, Modal, Paragraph, PresenceList, PresenceOne, PressableBox, PressableListItem, QuestionAlertDialog, SafeAreaBox, SafeAreaProvider, ScopedTheme, ScrollView, SectionList, Select, Separator, Stack, Story, StoryContainer, StoryDecorator, StoryGrid, StoryTitle, SuccessAlertDialog, Surface, Switch, SwitchBreakpointsUsingDisplayNone, SwitchBreakpointsUsingNull, Text, TextArea, VStack, View, WarningAlertDialog, WarningMessage, animationDurationsMs, styled, themeVariables, useCurrentBreakpointName, useCurrentBreakpointNameFiltered, useCurrentMode, useCurrentTheme, useSafeAreaInsets, useThemeToken };
2662
+ export { AccentScope, AlertDialog, AlouetteDecorator, AlouetteProvider, Badge, Box, BreakpointNameEnum, Breakpoints, Button, CircularProgress, ConfirmationMessage, ConnectionState, ExternalLink, ExternalLinkButton, FlatList, GradientBackground, GradientScrollView, HStack, Icon, IconButton, InfoAlertDialog, InfoMessage, InputText, InteractiveBox, InternalLinkButton, LinearProgress, Message, Modal, Paragraph, PresenceList, PresenceOne, PressableBox, PressableListItem, QuestionAlertDialog, SafeAreaBox, SafeAreaProvider, ScopedTheme, ScrollView, SectionList, Select, Separator, Stack, Story, StoryContainer, StoryDecorator, StoryGrid, StoryTitle, SuccessAlertDialog, Surface, Switch, SwitchBreakpointsUsingDisplayNone, SwitchBreakpointsUsingNull, Text, TextArea, VStack, View, WarningAlertDialog, WarningMessage, animationDurationsMs, styled, themeVariables, useCurrentBreakpointName, useCurrentBreakpointNameFiltered, useCurrentMode, useCurrentTheme, useSafeAreaInsets, useThemeToken };
2535
2663
  //# sourceMappingURL=index-browser.es.js.map