@impulse-ui-native/toolkit 1.0.10 → 2.0.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/README.md ADDED
@@ -0,0 +1,63 @@
1
+ # @impulse-ui-native/toolkit
2
+
3
+ The complete Impulse UI Native public API from a single package. It combines the theme, primitives, components, overlays, utilities, data helpers, icons, and shared types.
4
+
5
+ ## Installation
6
+
7
+ ```sh
8
+ pnpm add @impulse-ui-native/toolkit
9
+ ```
10
+
11
+ Install the native peer dependencies required by the features you use:
12
+
13
+ ```sh
14
+ pnpm add @shopify/flash-list react-native-gesture-handler react-native-reanimated react-native-safe-area-context react-native-svg react-native-worklets
15
+ ```
16
+
17
+ ## Setup
18
+
19
+ At minimum, wrap themed components with `ThemeProvider`. Mount `LayerCenter` once when using registered flyouts such as `Select` and the date/time pickers.
20
+
21
+ ```tsx
22
+ import { GestureHandlerRootView } from "react-native-gesture-handler";
23
+ import { SafeAreaProvider } from "react-native-safe-area-context";
24
+
25
+ import { LayerCenter, ThemeProvider } from "@impulse-ui-native/toolkit";
26
+
27
+ export function App() {
28
+ return (
29
+ <GestureHandlerRootView style={{ flex: 1 }}>
30
+ <SafeAreaProvider>
31
+ <ThemeProvider>
32
+ {/* application */}
33
+ <LayerCenter />
34
+ </ThemeProvider>
35
+ </SafeAreaProvider>
36
+ </GestureHandlerRootView>
37
+ );
38
+ }
39
+ ```
40
+
41
+ Follow the installation instructions for Gesture Handler, Reanimated, and Worklets in your React Native or Expo project as well.
42
+
43
+ ## Included APIs
44
+
45
+ - Foundations: `core`, `types`, `theme`, and `primitives`.
46
+ - Inputs: `Input`, `Select`, and `MultiSelect`.
47
+ - Date and time: `DatePicker`, `DateRangePicker`, `DatetimePicker`, `DatetimeRangePicker`, and `TimePicker`.
48
+ - Feedback: `Skeleton`, `DataView`, `LoadingView`, `EmptyView`, and `ErrorView`.
49
+ - Navigation and overlays: `Stepper`, `Flyout`, `LayerCenter`, the flyout registry, and portal primitives.
50
+ - Assets and infrastructure: the icon library, `EchoInstance`, echo hooks, and endpoint factories.
51
+
52
+ All exports come from the package root:
53
+
54
+ ```tsx
55
+ import {
56
+ Button,
57
+ Input,
58
+ Select,
59
+ ThemeProvider,
60
+ } from "@impulse-ui-native/toolkit";
61
+ ```
62
+
63
+ Install an individual `@impulse-ui-native/*` package instead when you need a smaller, more explicit dependency surface.
package/dist/index.d.mts CHANGED
@@ -1,56 +1,16 @@
1
1
  export * from '@impulse-ui-native/core';
2
2
  export * from '@impulse-ui-native/theme';
3
- export * from '@impulse-ui-native/layer-manager';
4
- export * from '@impulse-ui-native/safe-area-view';
5
- export * from '@impulse-ui-native/view';
6
- export * from '@impulse-ui-native/button';
3
+ export * from '@impulse-ui-native/layers';
4
+ export * from '@impulse-ui-native/portal';
5
+ export * from '@impulse-ui-native/primitives';
7
6
  export * from '@impulse-ui-native/flyout';
8
7
  export * from '@impulse-ui-native/icon';
9
8
  export * from '@impulse-ui-native/input';
10
- export * from '@impulse-ui-native/tag';
11
- export * from '@impulse-ui-native/typography';
9
+ export * from '@impulse-ui-native/stepper';
10
+ export * from '@impulse-ui-native/data-state';
11
+ export * from '@impulse-ui-native/skeleton';
12
+ export * from '@impulse-ui-native/select';
13
+ export * from '@impulse-ui-native/datetime';
12
14
  export * from '@impulse-ui-native/echo';
13
- import { ComponentType, PropsWithChildren } from 'react';
14
-
15
- interface BaseRegistrationProps<Props extends object = {}> {
16
- id: string;
17
- title?: RegistrationTitle<Props>;
18
- Content: ComponentType<Props>;
19
- onClose?: () => void;
20
- onCloseFinished?: () => void;
21
- onOpen?: () => void;
22
- onOpenFinished?: () => void;
23
- }
24
- type RegistrationTitle<Props extends object = {}> = string | ((props: Props) => string | undefined);
25
-
26
- type FlyoutKey = string;
27
- type FlyoutOpenProps<Props extends object = {}> = {
28
- title?: string;
29
- placement?: "top" | "bottom";
30
- } & Props;
31
-
32
- interface LayerComponentBaseProps {
33
- id: string;
34
- layer: number;
35
- open?: boolean;
36
- title?: string;
37
- Content?: ComponentType<any>;
38
- onClose?: (id: string) => void;
39
- onCloseFinished?: (id: string) => void;
40
- onOpen?: (id: string) => void;
41
- onOpenFinished?: (id: string) => void;
42
- }
43
- interface Layer<Props extends object = {}> {
44
- id: string;
45
- props: Props;
46
- layerProps: BaseRegistrationProps<Props>;
47
- Component: ComponentType<PropsWithChildren<LayerComponentBaseProps & Props>>;
48
- }
49
- interface OpenLayerParams<Props extends object = {}> {
50
- id: string;
51
- props: Props;
52
- registrationProps: BaseRegistrationProps<Props>;
53
- Component: ComponentType<LayerComponentBaseProps>;
54
- }
55
-
56
- export type { BaseRegistrationProps, FlyoutKey, FlyoutOpenProps, Layer, LayerComponentBaseProps, OpenLayerParams, RegistrationTitle };
15
+ export * from '@impulse-ui-native/endpoint';
16
+ export * from '@impulse-ui-native/types';
package/dist/index.js ADDED
@@ -0,0 +1,18 @@
1
+ // src/index.ts
2
+ export * from "@impulse-ui-native/core";
3
+ export * from "@impulse-ui-native/theme";
4
+ export * from "@impulse-ui-native/layers";
5
+ export * from "@impulse-ui-native/portal";
6
+ export * from "@impulse-ui-native/primitives";
7
+ export * from "@impulse-ui-native/flyout";
8
+ export * from "@impulse-ui-native/icon";
9
+ export * from "@impulse-ui-native/input";
10
+ export * from "@impulse-ui-native/stepper";
11
+ export * from "@impulse-ui-native/data-state";
12
+ export * from "@impulse-ui-native/skeleton";
13
+ export * from "@impulse-ui-native/select";
14
+ export * from "@impulse-ui-native/datetime";
15
+ export * from "@impulse-ui-native/echo";
16
+ export * from "@impulse-ui-native/endpoint";
17
+ export * from "@impulse-ui-native/types";
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// Core foundation\r\nexport * from \"@impulse-ui-native/core\";\r\nexport * from \"@impulse-ui-native/theme\";\r\n\r\n// Layout & containers\r\nexport * from \"@impulse-ui-native/layers\";\r\nexport * from \"@impulse-ui-native/portal\";\r\n\r\n// Components\r\nexport * from \"@impulse-ui-native/primitives\";\r\nexport * from \"@impulse-ui-native/flyout\";\r\nexport * from \"@impulse-ui-native/icon\";\r\nexport * from \"@impulse-ui-native/input\";\r\nexport * from \"@impulse-ui-native/stepper\";\r\nexport * from \"@impulse-ui-native/data-state\";\r\nexport * from \"@impulse-ui-native/skeleton\";\r\nexport * from \"@impulse-ui-native/select\";\r\nexport * from \"@impulse-ui-native/datetime\";\r\n\r\n// Utilities\r\nexport * from \"@impulse-ui-native/echo\";\r\nexport * from \"@impulse-ui-native/endpoint\";\r\n\r\n// Types\r\nexport * from \"@impulse-ui-native/types\";\r\n"],"mappings":";AACA,cAAc;AACd,cAAc;AAGd,cAAc;AACd,cAAc;AAGd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAGd,cAAc;AACd,cAAc;AAGd,cAAc;","names":[]}
package/package.json CHANGED
@@ -1,56 +1,69 @@
1
1
  {
2
2
  "name": "@impulse-ui-native/toolkit",
3
- "version": "1.0.10",
3
+ "version": "2.0.1",
4
4
  "source": "src/index.ts",
5
- "main": "dist/index.cjs.js",
6
- "module": "dist/index.esm.js",
7
- "types": "dist/index.d.ts",
5
+ "module": "dist/index.js",
6
+ "types": "dist/index.d.mts",
8
7
  "react-native": "src/index.ts",
9
8
  "exports": {
10
9
  ".": {
11
- "types": "./dist/index.d.ts",
10
+ "types": "./dist/index.d.mts",
12
11
  "react-native": "./src/index.ts",
13
- "import": "./dist/index.esm.js",
14
- "require": "./dist/index.cjs.js"
12
+ "import": "./dist/index.js"
15
13
  }
16
14
  },
17
15
  "files": [
18
16
  "dist",
19
- "src",
20
17
  "README.md",
21
18
  "LICENSE"
22
19
  ],
23
20
  "dependencies": {
24
- "@impulse-ui-native/button": "1.0.10",
25
- "@impulse-ui-native/flyout": "1.0.10",
26
- "@impulse-ui-native/echo": "1.0.10",
27
- "@impulse-ui-native/core": "1.0.10",
28
- "@impulse-ui-native/input": "1.0.10",
29
- "@impulse-ui-native/layer-manager": "1.0.10",
30
- "@impulse-ui-native/theme": "1.0.10",
31
- "@impulse-ui-native/tag": "1.0.10",
32
- "@impulse-ui-native/icon": "1.0.10",
33
- "@impulse-ui-native/safe-area-view": "1.0.10",
34
- "@impulse-ui-native/view": "1.0.10",
35
- "@impulse-ui-native/typography": "1.0.10"
21
+ "@impulse-ui-native/core": "2.0.1",
22
+ "@impulse-ui-native/flyout": "2.0.1",
23
+ "@impulse-ui-native/echo": "2.0.1",
24
+ "@impulse-ui-native/icon": "2.0.1",
25
+ "@impulse-ui-native/endpoint": "2.0.1",
26
+ "@impulse-ui-native/stepper": "2.0.1",
27
+ "@impulse-ui-native/input": "2.0.1",
28
+ "@impulse-ui-native/layers": "2.0.1",
29
+ "@impulse-ui-native/types": "2.0.1",
30
+ "@impulse-ui-native/theme": "2.0.1",
31
+ "@impulse-ui-native/primitives": "2.0.1",
32
+ "@impulse-ui-native/data-state": "2.0.1",
33
+ "@impulse-ui-native/skeleton": "2.0.1",
34
+ "@impulse-ui-native/portal": "2.0.1",
35
+ "@impulse-ui-native/select": "2.0.1",
36
+ "@impulse-ui-native/datetime": "2.0.1"
36
37
  },
37
38
  "devDependencies": {
38
- "@impulse-ui-native/layer-manager-types": "1.0.10"
39
+ "@types/react": "~19.2.14",
40
+ "eslint": "^9.38.0",
41
+ "prettier": "^3.6.2",
42
+ "react": "19.2.0",
43
+ "react-native": "0.83.6",
44
+ "typescript": "~5.9.2",
45
+ "@impulse-ui-native/eslint-config": "1.0.0",
46
+ "@impulse-ui-native/tsconfig": "1.0.0",
47
+ "@impulse-ui-native/prettier-config": "1.0.0"
39
48
  },
40
49
  "peerDependencies": {
50
+ "@shopify/flash-list": ">=2",
41
51
  "react": ">=18",
42
- "react-native": ">=0.74",
43
- "expo": ">=51 || >=52",
44
- "expo-modules-core": ">=1.0.0",
45
- "react-native-gesture-handler": ">=2",
46
- "react-native-reanimated": ">=3"
52
+ "react-native": ">=0.73",
53
+ "react-native-gesture-handler": ">=2.0.0",
54
+ "react-native-reanimated": ">=3.6.0",
55
+ "react-native-safe-area-context": ">=5.0.0",
56
+ "react-native-svg": ">=13.9.0",
57
+ "react-native-worklets": ">=0.5"
47
58
  },
48
59
  "publishConfig": {
49
60
  "access": "public"
50
61
  },
62
+ "prettier": "@impulse-ui-native/prettier-config",
51
63
  "scripts": {
52
64
  "build": "tsup --config tsup.config.ts",
53
65
  "typecheck": "tsc -p tsconfig.json --noEmit",
54
- "lint": "pnpm exec eslint . --fix"
66
+ "lint": "pnpm exec eslint . --fix",
67
+ "format": "prettier --write \"./**/*.{ts,tsx,js,jsx,json,md}\" --ignore-path ../../.prettierignore"
55
68
  }
56
69
  }
package/dist/index.cjs.js DELETED
@@ -1,47 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __copyProps = (to, from, except, desc) => {
7
- if (from && typeof from === "object" || typeof from === "function") {
8
- for (let key of __getOwnPropNames(from))
9
- if (!__hasOwnProp.call(to, key) && key !== except)
10
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
- }
12
- return to;
13
- };
14
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
-
17
- // src/index.ts
18
- var index_exports = {};
19
- module.exports = __toCommonJS(index_exports);
20
- __reExport(index_exports, require("@impulse-ui-native/core"), module.exports);
21
- __reExport(index_exports, require("@impulse-ui-native/theme"), module.exports);
22
- __reExport(index_exports, require("@impulse-ui-native/layer-manager"), module.exports);
23
- __reExport(index_exports, require("@impulse-ui-native/safe-area-view"), module.exports);
24
- __reExport(index_exports, require("@impulse-ui-native/view"), module.exports);
25
- __reExport(index_exports, require("@impulse-ui-native/button"), module.exports);
26
- __reExport(index_exports, require("@impulse-ui-native/flyout"), module.exports);
27
- __reExport(index_exports, require("@impulse-ui-native/icon"), module.exports);
28
- __reExport(index_exports, require("@impulse-ui-native/input"), module.exports);
29
- __reExport(index_exports, require("@impulse-ui-native/tag"), module.exports);
30
- __reExport(index_exports, require("@impulse-ui-native/typography"), module.exports);
31
- __reExport(index_exports, require("@impulse-ui-native/echo"), module.exports);
32
- // Annotate the CommonJS export names for ESM import in node:
33
- 0 && (module.exports = {
34
- ...require("@impulse-ui-native/core"),
35
- ...require("@impulse-ui-native/theme"),
36
- ...require("@impulse-ui-native/layer-manager"),
37
- ...require("@impulse-ui-native/safe-area-view"),
38
- ...require("@impulse-ui-native/view"),
39
- ...require("@impulse-ui-native/button"),
40
- ...require("@impulse-ui-native/flyout"),
41
- ...require("@impulse-ui-native/icon"),
42
- ...require("@impulse-ui-native/input"),
43
- ...require("@impulse-ui-native/tag"),
44
- ...require("@impulse-ui-native/typography"),
45
- ...require("@impulse-ui-native/echo")
46
- });
47
- //# sourceMappingURL=index.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// Core foundation\r\nexport * from \"@impulse-ui-native/core\";\r\nexport * from \"@impulse-ui-native/theme\";\r\n\r\n// Layout & containers\r\nexport * from \"@impulse-ui-native/layer-manager\";\r\nexport * from \"@impulse-ui-native/safe-area-view\";\r\nexport * from \"@impulse-ui-native/view\";\r\n\r\n// Components\r\nexport * from \"@impulse-ui-native/button\";\r\nexport * from \"@impulse-ui-native/flyout\";\r\nexport * from \"@impulse-ui-native/icon\";\r\nexport * from \"@impulse-ui-native/input\";\r\nexport * from \"@impulse-ui-native/tag\";\r\nexport * from \"@impulse-ui-native/typography\";\r\n\r\n// Utilities\r\nexport * from \"@impulse-ui-native/echo\";\r\n\r\n// Types\r\nexport * from \"@impulse-ui-native/layer-manager-types\";\r\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AAAA;AACA,0BAAc,oCADd;AAEA,0BAAc,qCAFd;AAKA,0BAAc,6CALd;AAMA,0BAAc,8CANd;AAOA,0BAAc,oCAPd;AAUA,0BAAc,sCAVd;AAWA,0BAAc,sCAXd;AAYA,0BAAc,oCAZd;AAaA,0BAAc,qCAbd;AAcA,0BAAc,mCAdd;AAeA,0BAAc,0CAfd;AAkBA,0BAAc,oCAlBd;","names":[]}
package/dist/index.d.ts DELETED
@@ -1,56 +0,0 @@
1
- export * from '@impulse-ui-native/core';
2
- export * from '@impulse-ui-native/theme';
3
- export * from '@impulse-ui-native/layer-manager';
4
- export * from '@impulse-ui-native/safe-area-view';
5
- export * from '@impulse-ui-native/view';
6
- export * from '@impulse-ui-native/button';
7
- export * from '@impulse-ui-native/flyout';
8
- export * from '@impulse-ui-native/icon';
9
- export * from '@impulse-ui-native/input';
10
- export * from '@impulse-ui-native/tag';
11
- export * from '@impulse-ui-native/typography';
12
- export * from '@impulse-ui-native/echo';
13
- import { ComponentType, PropsWithChildren } from 'react';
14
-
15
- interface BaseRegistrationProps<Props extends object = {}> {
16
- id: string;
17
- title?: RegistrationTitle<Props>;
18
- Content: ComponentType<Props>;
19
- onClose?: () => void;
20
- onCloseFinished?: () => void;
21
- onOpen?: () => void;
22
- onOpenFinished?: () => void;
23
- }
24
- type RegistrationTitle<Props extends object = {}> = string | ((props: Props) => string | undefined);
25
-
26
- type FlyoutKey = string;
27
- type FlyoutOpenProps<Props extends object = {}> = {
28
- title?: string;
29
- placement?: "top" | "bottom";
30
- } & Props;
31
-
32
- interface LayerComponentBaseProps {
33
- id: string;
34
- layer: number;
35
- open?: boolean;
36
- title?: string;
37
- Content?: ComponentType<any>;
38
- onClose?: (id: string) => void;
39
- onCloseFinished?: (id: string) => void;
40
- onOpen?: (id: string) => void;
41
- onOpenFinished?: (id: string) => void;
42
- }
43
- interface Layer<Props extends object = {}> {
44
- id: string;
45
- props: Props;
46
- layerProps: BaseRegistrationProps<Props>;
47
- Component: ComponentType<PropsWithChildren<LayerComponentBaseProps & Props>>;
48
- }
49
- interface OpenLayerParams<Props extends object = {}> {
50
- id: string;
51
- props: Props;
52
- registrationProps: BaseRegistrationProps<Props>;
53
- Component: ComponentType<LayerComponentBaseProps>;
54
- }
55
-
56
- export type { BaseRegistrationProps, FlyoutKey, FlyoutOpenProps, Layer, LayerComponentBaseProps, OpenLayerParams, RegistrationTitle };
package/dist/index.esm.js DELETED
@@ -1,14 +0,0 @@
1
- // src/index.ts
2
- export * from "@impulse-ui-native/core";
3
- export * from "@impulse-ui-native/theme";
4
- export * from "@impulse-ui-native/layer-manager";
5
- export * from "@impulse-ui-native/safe-area-view";
6
- export * from "@impulse-ui-native/view";
7
- export * from "@impulse-ui-native/button";
8
- export * from "@impulse-ui-native/flyout";
9
- export * from "@impulse-ui-native/icon";
10
- export * from "@impulse-ui-native/input";
11
- export * from "@impulse-ui-native/tag";
12
- export * from "@impulse-ui-native/typography";
13
- export * from "@impulse-ui-native/echo";
14
- //# sourceMappingURL=index.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// Core foundation\r\nexport * from \"@impulse-ui-native/core\";\r\nexport * from \"@impulse-ui-native/theme\";\r\n\r\n// Layout & containers\r\nexport * from \"@impulse-ui-native/layer-manager\";\r\nexport * from \"@impulse-ui-native/safe-area-view\";\r\nexport * from \"@impulse-ui-native/view\";\r\n\r\n// Components\r\nexport * from \"@impulse-ui-native/button\";\r\nexport * from \"@impulse-ui-native/flyout\";\r\nexport * from \"@impulse-ui-native/icon\";\r\nexport * from \"@impulse-ui-native/input\";\r\nexport * from \"@impulse-ui-native/tag\";\r\nexport * from \"@impulse-ui-native/typography\";\r\n\r\n// Utilities\r\nexport * from \"@impulse-ui-native/echo\";\r\n\r\n// Types\r\nexport * from \"@impulse-ui-native/layer-manager-types\";\r\n"],"mappings":";AACA,cAAc;AACd,cAAc;AAGd,cAAc;AACd,cAAc;AACd,cAAc;AAGd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAGd,cAAc;","names":[]}
package/src/index.ts DELETED
@@ -1,22 +0,0 @@
1
- // Core foundation
2
- export * from "@impulse-ui-native/core";
3
- export * from "@impulse-ui-native/theme";
4
-
5
- // Layout & containers
6
- export * from "@impulse-ui-native/layer-manager";
7
- export * from "@impulse-ui-native/safe-area-view";
8
- export * from "@impulse-ui-native/view";
9
-
10
- // Components
11
- export * from "@impulse-ui-native/button";
12
- export * from "@impulse-ui-native/flyout";
13
- export * from "@impulse-ui-native/icon";
14
- export * from "@impulse-ui-native/input";
15
- export * from "@impulse-ui-native/tag";
16
- export * from "@impulse-ui-native/typography";
17
-
18
- // Utilities
19
- export * from "@impulse-ui-native/echo";
20
-
21
- // Types
22
- export * from "@impulse-ui-native/layer-manager-types";