impact-nova 2.0.1 → 2.0.2

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.
@@ -1,4 +1,4 @@
1
- const t = new URL("../../../../assets/empty-state-1-Bqh-20pq.webp", import.meta.url).href;
1
+ const t = new URL("../../../../assets/empty-state-1-3H9kriwm.webp", import.meta.url).href;
2
2
  export {
3
3
  t as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const t = new URL("../../../../assets/empty-state-2-DPMRkOBw.webp", import.meta.url).href;
1
+ const e = new URL("../../../../assets/empty-state-2-Brn6WD3e.webp", import.meta.url).href;
2
2
  export {
3
- t as default
3
+ e as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const t = new URL("../../../../assets/empty-state-3-BqSOh0-t.webp", import.meta.url).href;
1
+ const t = new URL("../../../../assets/empty-state-3-CqLldG5q.webp", import.meta.url).href;
2
2
  export {
3
3
  t as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const t = new URL("../../../../assets/empty-state-4-CjN-c01q.webp", import.meta.url).href;
1
+ const t = new URL("../../../../assets/empty-state-4-Br-xaUJO.webp", import.meta.url).href;
2
2
  export {
3
3
  t as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const t = new URL("../../../../assets/empty-state-5-D4RMA1H1.webp", import.meta.url).href;
1
+ const t = new URL("../../../../assets/empty-state-5-BanvbHv1.webp", import.meta.url).href;
2
2
  export {
3
3
  t as default
4
4
  };
@@ -1,4 +1,4 @@
1
- const t = new URL("../../../../assets/empty-state-6-Dlnf1-2W.webp", import.meta.url).href;
1
+ const e = new URL("../../../../assets/empty-state-6-Egbfj9Fe.webp", import.meta.url).href;
2
2
  export {
3
- t as default
3
+ e as default
4
4
  };
@@ -7,7 +7,7 @@ import { default as emptyState6Url } from './assets/empty-state-6.webp?url';
7
7
  export interface EmptyStateImageEntry {
8
8
  width: number;
9
9
  height: number;
10
- src: string;
10
+ loadSrc: () => Promise<string>;
11
11
  }
12
- export declare const EMPTY_STATE_IMAGES: EmptyStateImageEntry[];
12
+ export declare const EMPTY_STATE_IMAGE_LOADERS: EmptyStateImageEntry[];
13
13
  export { emptyState1Url as EmptyState1Url, emptyState2Url as EmptyState2Url, emptyState3Url as EmptyState3Url, emptyState4Url as EmptyState4Url, emptyState5Url as EmptyState5Url, emptyState6Url as EmptyState6Url, };
@@ -1,23 +1,35 @@
1
- import t from "./assets/empty-state-1.webp.js";
2
- import r from "./assets/empty-state-2.webp.js";
3
- import e from "./assets/empty-state-3.webp.js";
4
- import m from "./assets/empty-state-4.webp.js";
5
- import p from "./assets/empty-state-5.webp.js";
6
- import a from "./assets/empty-state-6.webp.js";
7
- const y = [
8
- { width: 225, height: 150, src: t },
9
- { width: 200, height: 200, src: r },
10
- { width: 225, height: 150, src: e },
11
- { width: 250, height: 180, src: m },
12
- { width: 225, height: 150, src: p },
13
- { width: 225, height: 150, src: a }
1
+ const h = [
2
+ {
3
+ width: 225,
4
+ height: 150,
5
+ loadSrc: () => import("./assets/empty-state-1.webp.js").then((t) => t.default)
6
+ },
7
+ {
8
+ width: 200,
9
+ height: 200,
10
+ loadSrc: () => import("./assets/empty-state-2.webp.js").then((t) => t.default)
11
+ },
12
+ {
13
+ width: 225,
14
+ height: 150,
15
+ loadSrc: () => import("./assets/empty-state-3.webp.js").then((t) => t.default)
16
+ },
17
+ {
18
+ width: 250,
19
+ height: 180,
20
+ loadSrc: () => import("./assets/empty-state-4.webp.js").then((t) => t.default)
21
+ },
22
+ {
23
+ width: 225,
24
+ height: 150,
25
+ loadSrc: () => import("./assets/empty-state-5.webp.js").then((t) => t.default)
26
+ },
27
+ {
28
+ width: 225,
29
+ height: 150,
30
+ loadSrc: () => import("./assets/empty-state-6.webp.js").then((t) => t.default)
31
+ }
14
32
  ];
15
33
  export {
16
- y as EMPTY_STATE_IMAGES,
17
- t as EmptyState1Url,
18
- r as EmptyState2Url,
19
- e as EmptyState3Url,
20
- m as EmptyState4Url,
21
- p as EmptyState5Url,
22
- a as EmptyState6Url
34
+ h as EMPTY_STATE_IMAGE_LOADERS
23
35
  };
@@ -1,79 +1,94 @@
1
- import { jsx as r } from "react/jsx-runtime";
2
- import * as m from "react";
3
- import { Slot as c } from "@radix-ui/react-slot";
4
- import { cn as l } from "../../lib/utils.js";
5
- import { EMPTY_STATE_IMAGES as u } from "./empty-container/emptyStateIllustrations.js";
6
- const E = m.forwardRef(
7
- ({ className: a, children: t, asChild: e = !1, ...o }, n) => /* @__PURE__ */ r(
8
- e ? c : "div",
1
+ import { jsx as m } from "react/jsx-runtime";
2
+ import * as i from "react";
3
+ import { Slot as f } from "@radix-ui/react-slot";
4
+ import { cn as p } from "../../lib/utils.js";
5
+ import { EMPTY_STATE_IMAGE_LOADERS as y } from "./empty-container/emptyStateIllustrations.js";
6
+ const N = i.forwardRef(
7
+ ({ className: a, children: t, asChild: e = !1, ...o }, n) => /* @__PURE__ */ m(
8
+ e ? f : "div",
9
9
  {
10
10
  ref: n,
11
- className: l(
11
+ className: p(
12
12
  "flex flex-col items-center justify-center py-16 px-5 text-center animate-in fade-in zoom-in duration-300 border border-stroke-subtle rounded-xl bg-canvas-elevated w-[884px] min-w-[884px] h-auto",
13
13
  a
14
14
  ),
15
15
  "data-component": "empty-container",
16
16
  ...o,
17
- children: /* @__PURE__ */ r("div", { className: "flex flex-col items-center max-w-[650px]", children: t })
17
+ children: /* @__PURE__ */ m("div", { className: "flex flex-col items-center max-w-[650px]", children: t })
18
18
  }
19
19
  )
20
20
  );
21
- E.displayName = "EmptyContainer";
22
- const b = m.forwardRef(
21
+ N.displayName = "EmptyContainer";
22
+ const S = i.forwardRef(
23
23
  ({
24
24
  className: a,
25
25
  children: t,
26
26
  src: e,
27
27
  alt: o = "",
28
28
  width: n,
29
- height: i,
30
- asChild: y = !1,
31
- ...p
32
- }, x) => {
33
- const [f] = m.useState(() => t || e ? null : Math.floor(Math.random() * u.length)), s = f !== null ? u[f] : null, C = n || (t ? "auto" : s?.width ?? 225), g = i || (t ? "auto" : s?.height ?? 150), h = () => {
29
+ height: s,
30
+ asChild: g = !1,
31
+ ...d
32
+ }, h) => {
33
+ const [u] = i.useState(() => t || e ? null : Math.floor(Math.random() * y.length)), [l, x] = i.useState(null), r = u !== null ? y[u] : null;
34
+ i.useEffect(() => {
35
+ if (t || e || !r)
36
+ return;
37
+ let c = !1;
38
+ return r.loadSrc().then((b) => {
39
+ c || x({
40
+ imageSource: b,
41
+ width: r.width,
42
+ height: r.height
43
+ });
44
+ }), () => {
45
+ c = !0;
46
+ };
47
+ }, [t, r, e]);
48
+ const C = n || (t ? "auto" : l?.width ?? r?.width ?? 225), w = s || (t ? "auto" : l?.height ?? r?.height ?? 150), E = () => {
34
49
  if (t)
35
50
  return t;
36
- const d = e ?? s?.src;
37
- return d ? /* @__PURE__ */ r(
51
+ const c = e ?? l?.imageSource;
52
+ return c ? /* @__PURE__ */ m(
38
53
  "img",
39
54
  {
40
- src: d,
55
+ src: c,
41
56
  alt: o,
42
57
  className: "object-contain shrink-0 select-none",
43
58
  style: {
44
- width: n || s?.width || "100%",
45
- height: i || s?.height || "100%"
59
+ width: n || l?.width || r?.width || "100%",
60
+ height: s || l?.height || r?.height || "100%"
46
61
  }
47
62
  }
48
63
  ) : null;
49
64
  };
50
- return /* @__PURE__ */ r(
51
- y ? c : "div",
65
+ return /* @__PURE__ */ m(
66
+ g ? f : "div",
52
67
  {
53
- ref: x,
54
- className: l(
68
+ ref: h,
69
+ className: p(
55
70
  "mb-4 flex items-center justify-center relative",
56
71
  "after:absolute after:inset-0 after:bg-brand/5 after:blur-3xl after:-z-10 after:rounded-full",
57
72
  a
58
73
  ),
59
74
  style: {
60
75
  width: C,
61
- height: g,
62
- ...p.style
76
+ height: w,
77
+ ...d.style
63
78
  },
64
79
  "data-component": "empty-container-image",
65
- ...p,
66
- children: h()
80
+ ...d,
81
+ children: E()
67
82
  }
68
83
  );
69
84
  }
70
85
  );
71
- b.displayName = "EmptyContainerImage";
72
- const w = m.forwardRef(({ className: a, children: t, asChild: e = !1, ...o }, n) => /* @__PURE__ */ r(
73
- e ? c : "h3",
86
+ S.displayName = "EmptyContainerImage";
87
+ const I = i.forwardRef(({ className: a, children: t, asChild: e = !1, ...o }, n) => /* @__PURE__ */ m(
88
+ e ? f : "h3",
74
89
  {
75
90
  ref: n,
76
- className: l(
91
+ className: p(
77
92
  "text-xl font-bold tracking-tight leading-[30px] text-content",
78
93
  a
79
94
  ),
@@ -82,12 +97,12 @@ const w = m.forwardRef(({ className: a, children: t, asChild: e = !1, ...o }, n)
82
97
  children: t
83
98
  }
84
99
  ));
85
- w.displayName = "EmptyContainerTitle";
86
- const N = m.forwardRef(({ className: a, children: t, asChild: e = !1, ...o }, n) => /* @__PURE__ */ r(
87
- e ? c : "p",
100
+ I.displayName = "EmptyContainerTitle";
101
+ const v = i.forwardRef(({ className: a, children: t, asChild: e = !1, ...o }, n) => /* @__PURE__ */ m(
102
+ e ? f : "p",
88
103
  {
89
104
  ref: n,
90
- className: l(
105
+ className: p(
91
106
  "text-base leading-[21px] mt-1 font-medium text-secondary-foreground",
92
107
  a
93
108
  ),
@@ -96,12 +111,12 @@ const N = m.forwardRef(({ className: a, children: t, asChild: e = !1, ...o }, n)
96
111
  children: t
97
112
  }
98
113
  ));
99
- N.displayName = "EmptyContainerDescription";
100
- const v = m.forwardRef(({ className: a, children: t, asChild: e = !1, ...o }, n) => /* @__PURE__ */ r(
101
- e ? c : "div",
114
+ v.displayName = "EmptyContainerDescription";
115
+ const R = i.forwardRef(({ className: a, children: t, asChild: e = !1, ...o }, n) => /* @__PURE__ */ m(
116
+ e ? f : "div",
102
117
  {
103
118
  ref: n,
104
- className: l(
119
+ className: p(
105
120
  "mt-6 flex flex-wrap items-center justify-center gap-3",
106
121
  a
107
122
  ),
@@ -110,11 +125,11 @@ const v = m.forwardRef(({ className: a, children: t, asChild: e = !1, ...o }, n)
110
125
  children: t
111
126
  }
112
127
  ));
113
- v.displayName = "EmptyContainerAction";
128
+ R.displayName = "EmptyContainerAction";
114
129
  export {
115
- E as EmptyContainer,
116
- v as EmptyContainerAction,
117
- N as EmptyContainerDescription,
118
- b as EmptyContainerImage,
119
- w as EmptyContainerTitle
130
+ N as EmptyContainer,
131
+ R as EmptyContainerAction,
132
+ v as EmptyContainerDescription,
133
+ S as EmptyContainerImage,
134
+ I as EmptyContainerTitle
120
135
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "impact-nova",
3
- "version": "2.0.1",
3
+ "version": "2.0.2",
4
4
  "description": "Enterprise-grade React design system built with React 19, Vite, Tailwind CSS, and Radix UI. Built-in internationalization (i18n) and comprehensive UI component library for scalable, accessible, and performant applications.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -679,6 +679,7 @@
679
679
  "prepublishOnly": "npm i && npm run build",
680
680
  "validate-imports": "node scripts/validate-imports.mjs",
681
681
  "build": "node scripts/validate-imports.mjs && tsc -b && vite build && node scripts/build-css-splits.mjs && node scripts/build-llms.mjs",
682
+ "analyze": "ANALYZE=true npm run build",
682
683
  "lint": "eslint .",
683
684
  "preview": "vite preview",
684
685
  "storybook": "storybook dev -p 6006",
@@ -747,11 +748,13 @@
747
748
  "playwright": "^1.58.0",
748
749
  "postcss": "^8.5.6",
749
750
  "sass": "^1.97.3",
751
+ "sharp": "^0.35.3",
750
752
  "storybook": "^10.2.0",
751
753
  "tailwindcss": "^3.4.19",
752
754
  "typescript": "~5.9.3",
753
755
  "typescript-eslint": "^8.46.4",
754
756
  "vite": "^7.2.4",
757
+ "vite-bundle-analyzer": "^1.3.8",
755
758
  "vite-plugin-dts": "^4.5.4",
756
759
  "vite-plugin-svgr": "^4.5.0",
757
760
  "vitest": "^4.0.18"