@alistigo/artifact-core-components-react 0.3.3 → 0.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,6 +2,8 @@ import { type ReactNode } from "react";
2
2
  export interface ArtifactContextMenuContainerProps {
3
3
  icon: ReactNode;
4
4
  children: ReactNode;
5
+ /** Optional badge rendered to the left of the icon button (e.g. a Draft status pill). */
6
+ statusBadge?: ReactNode;
5
7
  }
6
- export declare function ArtifactContextMenuContainer({ icon, children, }: ArtifactContextMenuContainerProps): ReactNode;
8
+ export declare function ArtifactContextMenuContainer({ icon, children, statusBadge, }: ArtifactContextMenuContainerProps): ReactNode;
7
9
  //# sourceMappingURL=ArtifactContextMenuContainer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ArtifactContextMenuContainer.d.ts","sourceRoot":"","sources":["../../src/components/ArtifactContextMenuContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAC;AAE5D,MAAM,WAAW,iCAAiC;IAChD,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,4BAA4B,CAAC,EAC3C,IAAI,EACJ,QAAQ,GACT,EAAE,iCAAiC,GAAG,SAAS,CAsD/C"}
1
+ {"version":3,"file":"ArtifactContextMenuContainer.d.ts","sourceRoot":"","sources":["../../src/components/ArtifactContextMenuContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAuB,MAAM,OAAO,CAAC;AAE5D,MAAM,WAAW,iCAAiC;IAChD,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,SAAS,CAAC;IACpB,yFAAyF;IACzF,WAAW,CAAC,EAAE,SAAS,CAAC;CACzB;AAED,wBAAgB,4BAA4B,CAAC,EAC3C,IAAI,EACJ,QAAQ,EACR,WAAW,GACZ,EAAE,iCAAiC,GAAG,SAAS,CAyD/C"}
package/dist/index.js CHANGED
@@ -1,29 +1,30 @@
1
- import { jsxs as a, Fragment as d, jsx as e } from "react/jsx-runtime";
2
- import { useState as c, useEffect as A } from "react";
3
- const o = "data:image/png;base64,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";
4
- function h({
5
- icon: r,
6
- children: t
1
+ import { jsxs as r, Fragment as c, jsx as e } from "react/jsx-runtime";
2
+ import { useState as o, useEffect as A } from "react";
3
+ const g = "data:image/png;base64,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";
4
+ function x({
5
+ icon: a,
6
+ children: t,
7
+ statusBadge: l
7
8
  }) {
8
- const [n, s] = c(!1);
9
+ const [n, i] = o(!1);
9
10
  return A(() => {
10
11
  if (!n) return;
11
- const i = (l) => {
12
- l.key === "Escape" && s(!1);
12
+ const s = (d) => {
13
+ d.key === "Escape" && i(!1);
13
14
  };
14
- return window.addEventListener("keydown", i), () => window.removeEventListener("keydown", i);
15
- }, [n]), /* @__PURE__ */ a(d, { children: [
15
+ return window.addEventListener("keydown", s), () => window.removeEventListener("keydown", s);
16
+ }, [n]), /* @__PURE__ */ r(c, { children: [
16
17
  /* @__PURE__ */ e(
17
18
  "button",
18
19
  {
19
20
  type: "button",
20
21
  "aria-label": "Close artifact info",
21
22
  tabIndex: -1,
22
- onClick: () => s(!1),
23
+ onClick: () => i(!1),
23
24
  className: `fixed inset-0 z-30 bg-black/20 transition-opacity duration-300 ${n ? "opacity-100" : "pointer-events-none opacity-0"}`
24
25
  }
25
26
  ),
26
- /* @__PURE__ */ e("div", { className: "pointer-events-none fixed inset-x-0 top-0 z-40 flex justify-end pr-4", children: /* @__PURE__ */ a(
27
+ /* @__PURE__ */ e("div", { className: "pointer-events-none fixed inset-x-0 top-0 z-40 flex justify-end pr-4", children: /* @__PURE__ */ r(
27
28
  "div",
28
29
  {
29
30
  className: "pointer-events-auto relative w-72 transition-transform duration-300 ease-out",
@@ -41,77 +42,80 @@ function h({
41
42
  children: t
42
43
  }
43
44
  ),
44
- /* @__PURE__ */ e(
45
- "button",
46
- {
47
- type: "button",
48
- "data-testid": "alistigo-badge",
49
- onClick: () => s((i) => !i),
50
- "aria-label": "Alistigo artifact info",
51
- "aria-expanded": n,
52
- className: "-mt-px absolute top-full right-0 z-20 flex h-8 w-8 cursor-pointer items-center justify-center rounded-b-lg border-x border-t border-b border-t-white border-gray-200 bg-white shadow-md hover:border-gray-400 focus:outline-none",
53
- children: r
54
- }
55
- )
45
+ /* @__PURE__ */ r("div", { className: "-mt-px absolute top-full right-0 z-20 flex items-start gap-1", children: [
46
+ l,
47
+ /* @__PURE__ */ e(
48
+ "button",
49
+ {
50
+ type: "button",
51
+ "data-testid": "alistigo-badge",
52
+ onClick: () => i((s) => !s),
53
+ "aria-label": "Alistigo artifact info",
54
+ "aria-expanded": n,
55
+ className: "flex h-8 w-8 cursor-pointer items-center justify-center rounded-b-lg border-x border-t border-b border-t-white border-gray-200 bg-white shadow-md hover:border-gray-400 focus:outline-none",
56
+ children: a
57
+ }
58
+ )
59
+ ] })
56
60
  ]
57
61
  }
58
62
  ) })
59
63
  ] });
60
64
  }
61
- function g({ plugins: r }) {
62
- return r.length === 0 ? /* @__PURE__ */ e("p", { className: "text-center text-gray-400 text-xs", children: "No plugins loaded" }) : /* @__PURE__ */ e("ul", { className: "flex flex-col gap-2", children: r.map((t) => /* @__PURE__ */ a(
65
+ function u({ plugins: a }) {
66
+ return a.length === 0 ? /* @__PURE__ */ e("p", { className: "text-center text-gray-400 text-xs", children: "No plugins loaded" }) : /* @__PURE__ */ e("ul", { className: "flex flex-col gap-2", children: a.map((t) => /* @__PURE__ */ r(
63
67
  "li",
64
68
  {
65
69
  "data-plugin-name": t.name,
66
70
  "data-plugin-status": t.status,
67
71
  className: "flex items-start justify-between gap-2",
68
72
  children: [
69
- /* @__PURE__ */ a("div", { className: "min-w-0", children: [
73
+ /* @__PURE__ */ r("div", { className: "min-w-0", children: [
70
74
  /* @__PURE__ */ e("p", { className: "truncate text-gray-800 text-xs font-medium", children: t.name }),
71
- /* @__PURE__ */ a("p", { className: "text-gray-400 text-xs", children: [
75
+ /* @__PURE__ */ r("p", { className: "text-gray-400 text-xs", children: [
72
76
  "v",
73
77
  t.version
74
78
  ] }),
75
79
  t.error != null && /* @__PURE__ */ e("p", { className: "mt-0.5 text-red-500 text-xs", children: t.error })
76
80
  ] }),
77
- /* @__PURE__ */ a("div", { className: "flex shrink-0 items-center gap-1.5", children: [
81
+ /* @__PURE__ */ r("div", { className: "flex shrink-0 items-center gap-1.5", children: [
78
82
  /* @__PURE__ */ e("span", { className: "rounded bg-gray-100 px-1.5 py-0.5 text-gray-500 text-xs", children: t.type }),
79
- /* @__PURE__ */ e(u, { status: t.status })
83
+ /* @__PURE__ */ e(m, { status: t.status })
80
84
  ] })
81
85
  ]
82
86
  },
83
87
  t.name
84
88
  )) });
85
89
  }
86
- function u({ status: r }) {
90
+ function m({ status: a }) {
87
91
  return /* @__PURE__ */ e("span", { className: `h-2 w-2 rounded-full ${{
88
92
  active: "bg-green-500",
89
93
  loading: "bg-amber-400",
90
94
  inactive: "bg-gray-300",
91
95
  error: "bg-red-500"
92
- }[r]}` });
96
+ }[a]}` });
93
97
  }
94
- function x({
95
- artifactName: r,
98
+ function f({
99
+ artifactName: a,
96
100
  artifactVersion: t,
97
- plugins: n
101
+ plugins: l
98
102
  }) {
99
- return /* @__PURE__ */ a("div", { className: "flex flex-col gap-4", children: [
100
- /* @__PURE__ */ a("div", { children: [
101
- /* @__PURE__ */ e("p", { className: "font-semibold text-gray-900 text-sm", children: r }),
102
- /* @__PURE__ */ a("p", { className: "text-gray-400 text-xs", children: [
103
+ return /* @__PURE__ */ r("div", { className: "flex flex-col gap-4", children: [
104
+ /* @__PURE__ */ r("div", { children: [
105
+ /* @__PURE__ */ e("p", { className: "font-semibold text-gray-900 text-sm", children: a }),
106
+ /* @__PURE__ */ r("p", { className: "text-gray-400 text-xs", children: [
103
107
  "v",
104
108
  t
105
109
  ] })
106
110
  ] }),
107
- /* @__PURE__ */ e(g, { plugins: n })
111
+ /* @__PURE__ */ e(u, { plugins: l })
108
112
  ] });
109
113
  }
110
- function f({ error: r, onReset: t }) {
111
- return /* @__PURE__ */ a("div", { className: "flex min-h-screen flex-col items-center justify-center gap-4 bg-white p-8", children: [
112
- /* @__PURE__ */ a("div", { className: "flex flex-col items-center gap-2 text-center", children: [
114
+ function b({ error: a, onReset: t }) {
115
+ return /* @__PURE__ */ r("div", { className: "flex min-h-screen flex-col items-center justify-center gap-4 bg-white p-8", children: [
116
+ /* @__PURE__ */ r("div", { className: "flex flex-col items-center gap-2 text-center", children: [
113
117
  /* @__PURE__ */ e("p", { className: "text-lg font-semibold text-red-600", children: "Something went wrong" }),
114
- /* @__PURE__ */ e("p", { className: "max-w-sm text-sm text-gray-500", children: r.message })
118
+ /* @__PURE__ */ e("p", { className: "max-w-sm text-sm text-gray-500", children: a.message })
115
119
  ] }),
116
120
  t != null && /* @__PURE__ */ e(
117
121
  "button",
@@ -124,33 +128,33 @@ function f({ error: r, onReset: t }) {
124
128
  )
125
129
  ] });
126
130
  }
127
- function b({ artifactName: r }) {
128
- return /* @__PURE__ */ a("div", { className: "flex min-h-screen flex-col items-center justify-center gap-4 bg-white", children: [
129
- /* @__PURE__ */ a("div", { className: "relative flex h-20 w-20 items-center justify-center", children: [
131
+ function p({ artifactName: a }) {
132
+ return /* @__PURE__ */ r("div", { className: "flex min-h-screen flex-col items-center justify-center gap-4 bg-white", children: [
133
+ /* @__PURE__ */ r("div", { className: "relative flex h-20 w-20 items-center justify-center", children: [
130
134
  /* @__PURE__ */ e("div", { className: "absolute inset-0 animate-spin rounded-full border-2 border-gray-200 border-t-gray-800" }),
131
- /* @__PURE__ */ e("img", { src: o, alt: "Alistigo", className: "h-14 w-14 rounded-2xl" })
135
+ /* @__PURE__ */ e("img", { src: g, alt: "Alistigo", className: "h-14 w-14 rounded-2xl" })
132
136
  ] }),
133
- r != null && /* @__PURE__ */ e("p", { className: "text-sm text-gray-500", children: r })
137
+ a != null && /* @__PURE__ */ e("p", { className: "text-sm text-gray-500", children: a })
134
138
  ] });
135
139
  }
136
- function y({ title: r, onClose: t, children: n, footer: s }) {
140
+ function y({ title: a, onClose: t, children: l, footer: n }) {
137
141
  return A(() => {
138
- const i = (l) => {
139
- l.key === "Escape" && t();
142
+ const i = (s) => {
143
+ s.key === "Escape" && t();
140
144
  };
141
145
  return document.addEventListener("keydown", i), () => document.removeEventListener("keydown", i);
142
- }, [t]), /* @__PURE__ */ a("div", { className: "fixed inset-0 z-50 flex items-center justify-center", children: [
146
+ }, [t]), /* @__PURE__ */ r("div", { className: "fixed inset-0 z-50 flex items-center justify-center", children: [
143
147
  /* @__PURE__ */ e("div", { className: "absolute inset-0 bg-black/40", onClick: t, "aria-hidden": "true" }),
144
- /* @__PURE__ */ a(
148
+ /* @__PURE__ */ r(
145
149
  "div",
146
150
  {
147
151
  role: "dialog",
148
152
  "aria-modal": "true",
149
- "aria-label": r,
153
+ "aria-label": a,
150
154
  className: "relative w-96 max-w-[90vw] rounded-2xl bg-white shadow-2xl",
151
155
  children: [
152
- /* @__PURE__ */ a("div", { className: "flex items-center justify-between border-b border-gray-100 px-5 py-4", children: [
153
- /* @__PURE__ */ e("h2", { className: "font-semibold text-gray-900 text-sm", children: r }),
156
+ /* @__PURE__ */ r("div", { className: "flex items-center justify-between border-b border-gray-100 px-5 py-4", children: [
157
+ /* @__PURE__ */ e("h2", { className: "font-semibold text-gray-900 text-sm", children: a }),
154
158
  /* @__PURE__ */ e(
155
159
  "button",
156
160
  {
@@ -170,20 +174,20 @@ function y({ title: r, onClose: t, children: n, footer: s }) {
170
174
  }
171
175
  )
172
176
  ] }),
173
- /* @__PURE__ */ e("div", { className: "p-5", children: n }),
174
- s != null && /* @__PURE__ */ e("div", { className: "flex justify-end gap-2 border-t border-gray-100 px-5 py-3", children: s })
177
+ /* @__PURE__ */ e("div", { className: "p-5", children: l }),
178
+ n != null && /* @__PURE__ */ e("div", { className: "flex justify-end gap-2 border-t border-gray-100 px-5 py-3", children: n })
175
179
  ]
176
180
  }
177
181
  )
178
182
  ] });
179
183
  }
180
184
  export {
181
- h as ArtifactContextMenuContainer,
182
- x as ArtifactInfoPanel,
183
- f as ErrorScreen,
184
- b as LoadingScreen,
185
+ x as ArtifactContextMenuContainer,
186
+ f as ArtifactInfoPanel,
187
+ b as ErrorScreen,
188
+ p as LoadingScreen,
185
189
  y as Modal,
186
- g as PluginList,
187
- o as alistigoLogoUrl
190
+ u as PluginList,
191
+ g as alistigoLogoUrl
188
192
  };
189
193
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/assets/logo.png","../src/components/ArtifactContextMenuContainer.tsx","../src/components/PluginList.tsx","../src/components/ArtifactInfoPanel.tsx","../src/components/ErrorScreen.tsx","../src/components/LoadingScreen.tsx","../src/components/Modal.tsx"],"sourcesContent":["export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAACXBIWXMAAA1RAAANUQHnGFNwAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAADdpJREFUeJztnX+UlNV9xp/nzu4iAkoQfzQ1qcZfhCCNO7vAVkiWGaASIYmlVEM9OUks2nja6rFJU+tpjQcTk9gaNWmO6akn1mibuCcxioYozO5ExA3sDCTaYluToJhWscGC4i7Lztynf7Brd2F3fs987+zu5y/O7jv3fs6+D/ed933v/V5KwiQTF2ctMIktkwGY4DRYC9QCJpMNmK5zIJ0OcDagk+DwFkQP4FUM6EW0bX1FuNlbu9YajsfvAOzunorGvnYnXSJyCYC5AKbk+dghgCkCz3jnf4Tmp7dNhECMqwBwZ1fUeawXtA7AjDKb20fpu977r2vh8hcq4Rci4yIA3JFsofNfALCiCs17CD9URDepOf5sFdo3pa4DwF1bT3U+81VJ6wCwyt15Evd71/gXumjJ/1S5r5pRtwFgqvNjBO4GMLvGXe8TeI1alj5S436rQt0FgMlkg5vubxXwOVMP6W7/4us3aO3arKVHudRVALg7OZ1v+UdAxKxdAADCY3K9lyu6qtdapVTqJgDcnZzOXm0E1G7tcgwJDUxdrba2PmuRUqiLJ4Hc3dHEXv94gCcfAOJs7Psek8m6fKhWFwFwvbO+BuAD1h45WOmm+9utJUoh+EsAU11XE/qmtUchCFinlti/WHsUQ9AB4I4nz6Zr+BnKf6pXKw5qAO9TW+y/rEUKJehLANnwj6ifkw8AJ7NRd1lLFEOwAeCOxKpgbveKgmuY6lxpbVEoQQaAAOl4m7VHqRC4g+l0o7VHIQQZAKQ6LwEwz1qjDOZAb/yJtUQhBBkAAn9q7VAuhP6Gu7aeau2Rj+ACwO2J01Gd17q1ZqbLZjZYS+QjuACggZcBiFhrVAJB67mzK2rtkYvgAkCPS60dKoij199ZS+QiqAAQIIjfsfaoMB9kunOttcRYBBUApJMXAJhlrVFpCHyF3d1TrT1GI6wAIDvH2qAqCGeh6fBnrDVGI6wAiGdZK1QLSjcyveXd1h7HElQAHPROa4cqMtUh8kVriWMJKgAAg7xOVgpJ65jestjaYzhhBUA4wVqhypBydxC3BPN3D0YEAED2WyvUgFb0LPm4tcQQYQVA/nVrhVpA4kvcvukkaw8gsAB4x3Gz4iYPpzs35UZrCSCwAID8T2uFWiHiBm7ffJ61R1gByA7stlaoIU2MRL5iLRHcpFCX6nwZwJnWHrVCjpeoeekTVv2HNQIAoJiwdqgllEynjwUXAA+/ydqhpghzoQNXW3UfXACQOfFRAAesNWoJwQ1MJ2u9zB1AgAFQW1sfoYesPWrMO5z8zRYdBxcAAPBOdwIY9wWahiPg00xvubDW/QYZADUve57ARBsFIvTuzlp3GmQAAMBn3I0E7gHxorVLzSBiTHV9pKZdhvYcYDSYSrwHcMsorQaxDBjXbw1/qZn9c3Xuypq8GKuLAAyH6S0nQ5HLSV0L4betfaqBiL9UNPblWvRVdwEYztHCkP5qgX8IYJq1TwV5U2y8QNElr1S7o7oOwBD8aXKmG8jeIPJ61Ndy8jEh8K1sS+xTVe9nPARgCO5InOIcP6ujawtPtPYpEy+gTS2xHdXsZFwFYAju2vxO591NEtcDqItl2mPwjFpiiwVU7SSNywAMwfSWCyl3D1C/q40kXanW+IPVan9cBwAYXG6W7ryGwu0Aplv7lMCv1JSZo/kr3qpG48E+CKoUAqRo7B75zHwAT1n7lMCZrj9StbK44z4AQ2jBij3asz8m4BbU2XsGkZ/hT5JnVaPtcX8JGA2muj5M6J8AzLR2KRQCHdmW2B9UvN2JGAAA4PbN57Eh8jgE84mZhSKxXa1Lf1zJNifMJeBYtHD5C2rMLAaw3dqlUEh/Jzs6Klo9ZcIGAAA0f8VrasrEAWy2dikMvh9nz76qoi1O1EvAcJhMnsBpvgPEKmuXvAivqdFdoPe3V2Ta3IQeAYZQe/thTdu/BkD4E1KJ01xGf12x5iZHgP+H6cdOpD/xRyCWWLvkYUDghWpZ+h/lNjQ5AgxD0VW98v2rAPyrtUseGgl9rRINTQbgGLRw5RvymQ9DeM3aJQ/Lmer6ULmNTF4CxoA9nR8gkUDY+yv/u3jyfEWjA6U2MDkCjIFaY09JCGIJdw7KLko9OQLkgACZSjwMsKYzdYvkgCKN55e6m+nkCJADARIjfwTgVWuXHJRVlHpyBCgA9nSuJvGotUcOvBwXqHlputgPTo4ABaDW2EaSVZuVUwFKLko9GYAC8Rn/5wh71XJJRaknA1AgWhjfJ/Ema49clFKUejIAxfDir78J4N+sNcakhKLUk18Ci4TpxEcpPmztkYM+0c9RdNneQg6eHAGKRNH4DyD9xNojB0UVpa7oCMCeJ98F17DIgfMgnS/wDECngIhA6ANwmMBeAHu9tAtO3YUmNSTq4LZQcvqgmuNb8x1YdgC4c8t7nY98QtClAN5XQhO/pPCwd+xQdGldTM86+oSwMw3gImuXHOxUy9ZW4eacM6BLDsDg/4LPAbi4pAZGJy3wbhziP6u9PVPBdisOexJXkvy2tUcuJHxSrbH7ch1TdACY6rqY8n8LclE5cnl4XuCNaln6SBX7KAv+fNMU/u+UvSBOs3bJwT5l+8/XwpVvjHVAwV8CuX3TSZGexF2EnqryyQeA9xL6gUt1Ps5dm4PcRUTnruwn8S1rjzzkLUpd0AjAnYn59HwYwHsqZVYwwmtyukLReFfN+84Dt28+j5FI6AWujyibnaeFy18Y7Zd5RwCmutbQ8xlYnHwAIE6j+ARTiWtM+s/B4B+16BcwNSZnUeqcAWAqcQWh78C+/EojwXvY0xXcBA0h6JdEQ3yUqcSy0X4xZgCOnnw+iICmRJH6InsS11l7jCCi71srFALJu0YrSj1qALizK0rw3rF+bwnJO7gjEcwCDl0Uewkhvx8YQpgLHTzuMnrcCWY6OZveb0S4NXYcHb8dwm4bQxD6obVDIRC4hd1PjNia97gAOPlvAPyN2mmVxEw6d38o2695MLg7lDGY5RobR6wqGvEHZKprjYBgd7oeAbkIqSXXWmsAALL92wBkrTUKQcAfc3vy7R1Z3g4A0+lGUrfZaJUGgQ187ul3WHsMPml71tqjQE5wEf92yZlhI8DBq+qpWMIgM9F/JIi7AoI7rR0KRcAnuG3bDGAwAARI4XpbrdIgcB3Tj5l/YfXUz6wdimA6phxZCwyNAOnO5QAusDQqg5nQtN+3loBnvVwCAACErgQGA+CAj9nqlAeBT1o7IKOfWysUycXcnZxOdHU1cLp/BYDJpkUVIquBgdPU9rtmew8PThI5hHCfnxyHvFY7zFAU9X3yASCCxoaYpcBgPd+XLR2KxrHFwftqv9uvCY5cbO2AsBeOHAehec4512otUgkkzLN2gFRXAQA4x0k621qjQpQyIbWi0PGgtUORzHYA3m1tUSFONX83UHcjAGY51FG93DxE8Fz8ZGOHehsBGhzqe0eNkRzOTDHtnwh6KvsoDDgAtLaoGJn+I7YCrJtnAIMcdgDMHp5UnKaBw6b9S0UtzTaH+JUD8GtrjwrxuqKrem0V6mwEEF5ygH5h7VEhXrIWEOprBCD4vCMYelnUgmAQ5V3rawTw8juc98EvbCgID4WwsvjM/IcEhFO3Q5PrAuru9uV4HPKuha8mPHo3ZbN6qjR2Kbpsrzu68QBDrnhRCL9Qc9x2QkZ66xmwX0FVMCK+DwxOCBH8A7Y65UHwe9YOQP851gZFkEU28yAwNCWM+g4A41uokpH3/l5rCYD1FICNWrBiDzA0AkSXHSR1n6lSqQiPa0HcfIm2kzvf2qFQ5HTH0L/ffnvm0XQrgD4To9KRpIIrYlUTQZUslVNNHh1ePOrtACi65BUSf2/jVBoEH9KCeLe5x+6OJgALrD0K4IiyGrHEfsT7c9+Y+TzAPTVVKp2DXgOftZYAAByaFQUQ/FNAERu0ML57+M9GBEDzV7wl+KtRB5srS7herSvCmITpgt9lDAB68Kb70rE/PG4GjVriWyTdUhun0iDwQL7yZ7WECGJCai5elTJrRiu9N/oUqtb4BgChVr54xh9y660lhiPpIYQ7avbKucvGGi1HDYAAaWb/OgS3k6Z+KrqPqL3d9r3/Mag1/oCA63B0bUBI9MphtZrbx3zSO+YkSp27sl+H3O8B2FgVtaJRSgOZuKLtQc5fUEvs6xI+hXDeqxwU/KVqjnXmOijnLFq1tx/Wnv2XEfhyZd2Kg+B31ZRtt1z6VQhqjd0n6EMAStrBq4I8L68FalmWzHdgwaVime5cS+EbqO0ysj4Bf4WW2F0Kb3gdE3Z3/iYbcD+Imi9XI3Gfz/Rfl6s87Ijji6kVzJ7kGY7+qwIuR/Unk/5Y2ez6sSpchg4BIp34OMXbAZxagx73yOHTal76RFGfKqVaOHsSrSRvBbAclQ9Cj8DPq2VpXVTeyge3bZuBKf1/RuAGALPyfqD4Hl4WdRum7r9Xc9cWPSu6rP0CuD0x10XctZLWllk1u5dih4/4e9Ecf7qehvtCYXf3VDT0XUHiKgBtKK8GYwZAp8B/wCE+Uk5p/YrsGMKOjgjOOuVi5xiXtAhAFMApOT5yAMJzJHu8w5PoP+EptbXV24uokmFP8gw4v8p5Lha1CMA5yF2RNQNgN4UdHkoik9lUqS/EVds0is8+OQ19kd9Co5uKrKbBeY8MXwewXwvj+6rSaZ3CdLoROvAueJwOh2nwnAGnN0EdBrAXbzb8d7U20JjcNWyCE0SlzUns+D+Vk+kiqjGdPAAAAABJRU5ErkJggg==\"","import { type ReactNode, useEffect, useState } from \"react\";\n\nexport interface ArtifactContextMenuContainerProps {\n icon: ReactNode;\n children: ReactNode;\n}\n\nexport function ArtifactContextMenuContainer({\n icon,\n children,\n}: ArtifactContextMenuContainerProps): ReactNode {\n const [open, setOpen] = useState(false);\n\n useEffect(() => {\n if (!open) return;\n const onKeyDown = (e: KeyboardEvent): void => {\n if (e.key === \"Escape\") setOpen(false);\n };\n window.addEventListener(\"keydown\", onKeyDown);\n return () => window.removeEventListener(\"keydown\", onKeyDown);\n }, [open]);\n\n return (\n <>\n <button\n type=\"button\"\n aria-label=\"Close artifact info\"\n tabIndex={-1}\n onClick={() => setOpen(false)}\n className={`fixed inset-0 z-30 bg-black/20 transition-opacity duration-300 ${\n open ? \"opacity-100\" : \"pointer-events-none opacity-0\"\n }`}\n />\n <div className=\"pointer-events-none fixed inset-x-0 top-0 z-40 flex justify-end pr-4\">\n <div\n className=\"pointer-events-auto relative w-72 transition-transform duration-300 ease-out\"\n style={{ transform: open ? \"translateY(0)\" : \"translateY(-100%)\" }}\n >\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Alistigo artifact info\"\n aria-hidden={!open}\n inert={!open}\n className={`relative z-10 rounded-bl-xl border border-gray-200 bg-white p-4 transition-shadow duration-300 ${\n open ? \"shadow-xl\" : \"\"\n }`}\n >\n {children}\n </div>\n <button\n type=\"button\"\n data-testid=\"alistigo-badge\"\n onClick={() => setOpen((v) => !v)}\n aria-label=\"Alistigo artifact info\"\n aria-expanded={open}\n className=\"-mt-px absolute top-full right-0 z-20 flex h-8 w-8 cursor-pointer items-center justify-center rounded-b-lg border-x border-t border-b border-t-white border-gray-200 bg-white shadow-md hover:border-gray-400 focus:outline-none\"\n >\n {icon}\n </button>\n </div>\n </div>\n </>\n );\n}\n","import type { ReactNode } from \"react\";\nimport type { PluginInfo } from \"./types.js\";\n\nexport interface PluginListProps {\n plugins: PluginInfo[];\n}\n\nexport function PluginList({ plugins }: PluginListProps): ReactNode {\n if (plugins.length === 0) {\n return <p className=\"text-center text-gray-400 text-xs\">No plugins loaded</p>;\n }\n\n return (\n <ul className=\"flex flex-col gap-2\">\n {plugins.map((plugin) => (\n <li\n key={plugin.name}\n data-plugin-name={plugin.name}\n data-plugin-status={plugin.status}\n className=\"flex items-start justify-between gap-2\"\n >\n <div className=\"min-w-0\">\n <p className=\"truncate text-gray-800 text-xs font-medium\">{plugin.name}</p>\n <p className=\"text-gray-400 text-xs\">v{plugin.version}</p>\n {plugin.error != null && <p className=\"mt-0.5 text-red-500 text-xs\">{plugin.error}</p>}\n </div>\n <div className=\"flex shrink-0 items-center gap-1.5\">\n <span className=\"rounded bg-gray-100 px-1.5 py-0.5 text-gray-500 text-xs\">\n {plugin.type}\n </span>\n <StatusDot status={plugin.status} />\n </div>\n </li>\n ))}\n </ul>\n );\n}\n\nfunction StatusDot({ status }: { status: PluginInfo[\"status\"] }): ReactNode {\n const colors: Record<PluginInfo[\"status\"], string> = {\n active: \"bg-green-500\",\n loading: \"bg-amber-400\",\n inactive: \"bg-gray-300\",\n error: \"bg-red-500\",\n };\n return <span className={`h-2 w-2 rounded-full ${colors[status]}`} />;\n}\n","import type { ReactNode } from \"react\";\nimport { PluginList } from \"./PluginList.js\";\nimport type { PluginInfo } from \"./types.js\";\n\nexport interface ArtifactInfoPanelProps {\n artifactName: string;\n artifactVersion: string;\n plugins: PluginInfo[];\n}\n\nexport function ArtifactInfoPanel({\n artifactName,\n artifactVersion,\n plugins,\n}: ArtifactInfoPanelProps): ReactNode {\n return (\n <div className=\"flex flex-col gap-4\">\n <div>\n <p className=\"font-semibold text-gray-900 text-sm\">{artifactName}</p>\n <p className=\"text-gray-400 text-xs\">v{artifactVersion}</p>\n </div>\n <PluginList plugins={plugins} />\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface ErrorScreenProps {\n error: Error;\n onReset?: (() => void) | undefined;\n}\n\nexport function ErrorScreen({ error, onReset }: ErrorScreenProps): ReactNode {\n return (\n <div className=\"flex min-h-screen flex-col items-center justify-center gap-4 bg-white p-8\">\n <div className=\"flex flex-col items-center gap-2 text-center\">\n <p className=\"text-lg font-semibold text-red-600\">Something went wrong</p>\n <p className=\"max-w-sm text-sm text-gray-500\">{error.message}</p>\n </div>\n {onReset != null && (\n <button\n type=\"button\"\n onClick={onReset}\n className=\"rounded-md bg-gray-900 px-4 py-2 text-sm text-white hover:bg-gray-700\"\n >\n Try again\n </button>\n )}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\nimport logoUrl from \"../assets/logo.png\";\n\nexport interface LoadingScreenProps {\n artifactName?: string | undefined;\n}\n\nexport function LoadingScreen({ artifactName }: LoadingScreenProps): ReactNode {\n return (\n <div className=\"flex min-h-screen flex-col items-center justify-center gap-4 bg-white\">\n <div className=\"relative flex h-20 w-20 items-center justify-center\">\n <div className=\"absolute inset-0 animate-spin rounded-full border-2 border-gray-200 border-t-gray-800\" />\n <img src={logoUrl} alt=\"Alistigo\" className=\"h-14 w-14 rounded-2xl\" />\n </div>\n {artifactName != null && <p className=\"text-sm text-gray-500\">{artifactName}</p>}\n </div>\n );\n}\n","import { type ReactNode, useEffect } from \"react\";\n\nexport interface ModalProps {\n title: string;\n onClose: () => void;\n children: ReactNode;\n footer?: ReactNode;\n}\n\nexport function Modal({ title, onClose, children, footer }: ModalProps): ReactNode {\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") onClose();\n };\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => document.removeEventListener(\"keydown\", handleKeyDown);\n }, [onClose]);\n\n return (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center\">\n <div className=\"absolute inset-0 bg-black/40\" onClick={onClose} aria-hidden=\"true\" />\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={title}\n className=\"relative w-96 max-w-[90vw] rounded-2xl bg-white shadow-2xl\"\n >\n <div className=\"flex items-center justify-between border-b border-gray-100 px-5 py-4\">\n <h2 className=\"font-semibold text-gray-900 text-sm\">{title}</h2>\n <button\n type=\"button\"\n onClick={onClose}\n aria-label=\"Close\"\n className=\"flex h-6 w-6 items-center justify-center rounded-md text-gray-400 hover:bg-gray-100 hover:text-gray-700\"\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M11 3L3 11M3 3l8 8\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n </button>\n </div>\n <div className=\"p-5\">{children}</div>\n {footer != null && (\n <div className=\"flex justify-end gap-2 border-t border-gray-100 px-5 py-3\">{footer}</div>\n )}\n </div>\n </div>\n );\n}\n"],"names":["logoUrl","ArtifactContextMenuContainer","icon","children","open","setOpen","useState","useEffect","onKeyDown","e","jsxs","Fragment","jsx","v","PluginList","plugins","plugin","StatusDot","status","ArtifactInfoPanel","artifactName","artifactVersion","ErrorScreen","error","onReset","LoadingScreen","Modal","title","onClose","footer","handleKeyDown"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/assets/logo.png","../src/components/ArtifactContextMenuContainer.tsx","../src/components/PluginList.tsx","../src/components/ArtifactInfoPanel.tsx","../src/components/ErrorScreen.tsx","../src/components/LoadingScreen.tsx","../src/components/Modal.tsx"],"sourcesContent":["export default \"data:image/png;base64,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\"","import { type ReactNode, useEffect, useState } from \"react\";\n\nexport interface ArtifactContextMenuContainerProps {\n icon: ReactNode;\n children: ReactNode;\n /** Optional badge rendered to the left of the icon button (e.g. a Draft status pill). */\n statusBadge?: ReactNode;\n}\n\nexport function ArtifactContextMenuContainer({\n icon,\n children,\n statusBadge,\n}: ArtifactContextMenuContainerProps): ReactNode {\n const [open, setOpen] = useState(false);\n\n useEffect(() => {\n if (!open) return;\n const onKeyDown = (e: KeyboardEvent): void => {\n if (e.key === \"Escape\") setOpen(false);\n };\n window.addEventListener(\"keydown\", onKeyDown);\n return () => window.removeEventListener(\"keydown\", onKeyDown);\n }, [open]);\n\n return (\n <>\n <button\n type=\"button\"\n aria-label=\"Close artifact info\"\n tabIndex={-1}\n onClick={() => setOpen(false)}\n className={`fixed inset-0 z-30 bg-black/20 transition-opacity duration-300 ${\n open ? \"opacity-100\" : \"pointer-events-none opacity-0\"\n }`}\n />\n <div className=\"pointer-events-none fixed inset-x-0 top-0 z-40 flex justify-end pr-4\">\n <div\n className=\"pointer-events-auto relative w-72 transition-transform duration-300 ease-out\"\n style={{ transform: open ? \"translateY(0)\" : \"translateY(-100%)\" }}\n >\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Alistigo artifact info\"\n aria-hidden={!open}\n inert={!open}\n className={`relative z-10 rounded-bl-xl border border-gray-200 bg-white p-4 transition-shadow duration-300 ${\n open ? \"shadow-xl\" : \"\"\n }`}\n >\n {children}\n </div>\n <div className=\"-mt-px absolute top-full right-0 z-20 flex items-start gap-1\">\n {statusBadge}\n <button\n type=\"button\"\n data-testid=\"alistigo-badge\"\n onClick={() => setOpen((v) => !v)}\n aria-label=\"Alistigo artifact info\"\n aria-expanded={open}\n className=\"flex h-8 w-8 cursor-pointer items-center justify-center rounded-b-lg border-x border-t border-b border-t-white border-gray-200 bg-white shadow-md hover:border-gray-400 focus:outline-none\"\n >\n {icon}\n </button>\n </div>\n </div>\n </div>\n </>\n );\n}\n","import type { ReactNode } from \"react\";\nimport type { PluginInfo } from \"./types.js\";\n\nexport interface PluginListProps {\n plugins: PluginInfo[];\n}\n\nexport function PluginList({ plugins }: PluginListProps): ReactNode {\n if (plugins.length === 0) {\n return <p className=\"text-center text-gray-400 text-xs\">No plugins loaded</p>;\n }\n\n return (\n <ul className=\"flex flex-col gap-2\">\n {plugins.map((plugin) => (\n <li\n key={plugin.name}\n data-plugin-name={plugin.name}\n data-plugin-status={plugin.status}\n className=\"flex items-start justify-between gap-2\"\n >\n <div className=\"min-w-0\">\n <p className=\"truncate text-gray-800 text-xs font-medium\">{plugin.name}</p>\n <p className=\"text-gray-400 text-xs\">v{plugin.version}</p>\n {plugin.error != null && <p className=\"mt-0.5 text-red-500 text-xs\">{plugin.error}</p>}\n </div>\n <div className=\"flex shrink-0 items-center gap-1.5\">\n <span className=\"rounded bg-gray-100 px-1.5 py-0.5 text-gray-500 text-xs\">\n {plugin.type}\n </span>\n <StatusDot status={plugin.status} />\n </div>\n </li>\n ))}\n </ul>\n );\n}\n\nfunction StatusDot({ status }: { status: PluginInfo[\"status\"] }): ReactNode {\n const colors: Record<PluginInfo[\"status\"], string> = {\n active: \"bg-green-500\",\n loading: \"bg-amber-400\",\n inactive: \"bg-gray-300\",\n error: \"bg-red-500\",\n };\n return <span className={`h-2 w-2 rounded-full ${colors[status]}`} />;\n}\n","import type { ReactNode } from \"react\";\nimport { PluginList } from \"./PluginList.js\";\nimport type { PluginInfo } from \"./types.js\";\n\nexport interface ArtifactInfoPanelProps {\n artifactName: string;\n artifactVersion: string;\n plugins: PluginInfo[];\n}\n\nexport function ArtifactInfoPanel({\n artifactName,\n artifactVersion,\n plugins,\n}: ArtifactInfoPanelProps): ReactNode {\n return (\n <div className=\"flex flex-col gap-4\">\n <div>\n <p className=\"font-semibold text-gray-900 text-sm\">{artifactName}</p>\n <p className=\"text-gray-400 text-xs\">v{artifactVersion}</p>\n </div>\n <PluginList plugins={plugins} />\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\n\nexport interface ErrorScreenProps {\n error: Error;\n onReset?: (() => void) | undefined;\n}\n\nexport function ErrorScreen({ error, onReset }: ErrorScreenProps): ReactNode {\n return (\n <div className=\"flex min-h-screen flex-col items-center justify-center gap-4 bg-white p-8\">\n <div className=\"flex flex-col items-center gap-2 text-center\">\n <p className=\"text-lg font-semibold text-red-600\">Something went wrong</p>\n <p className=\"max-w-sm text-sm text-gray-500\">{error.message}</p>\n </div>\n {onReset != null && (\n <button\n type=\"button\"\n onClick={onReset}\n className=\"rounded-md bg-gray-900 px-4 py-2 text-sm text-white hover:bg-gray-700\"\n >\n Try again\n </button>\n )}\n </div>\n );\n}\n","import type { ReactNode } from \"react\";\nimport logoUrl from \"../assets/logo.png\";\n\nexport interface LoadingScreenProps {\n artifactName?: string | undefined;\n}\n\nexport function LoadingScreen({ artifactName }: LoadingScreenProps): ReactNode {\n return (\n <div className=\"flex min-h-screen flex-col items-center justify-center gap-4 bg-white\">\n <div className=\"relative flex h-20 w-20 items-center justify-center\">\n <div className=\"absolute inset-0 animate-spin rounded-full border-2 border-gray-200 border-t-gray-800\" />\n <img src={logoUrl} alt=\"Alistigo\" className=\"h-14 w-14 rounded-2xl\" />\n </div>\n {artifactName != null && <p className=\"text-sm text-gray-500\">{artifactName}</p>}\n </div>\n );\n}\n","import { type ReactNode, useEffect } from \"react\";\n\nexport interface ModalProps {\n title: string;\n onClose: () => void;\n children: ReactNode;\n footer?: ReactNode;\n}\n\nexport function Modal({ title, onClose, children, footer }: ModalProps): ReactNode {\n useEffect(() => {\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") onClose();\n };\n document.addEventListener(\"keydown\", handleKeyDown);\n return () => document.removeEventListener(\"keydown\", handleKeyDown);\n }, [onClose]);\n\n return (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center\">\n <div className=\"absolute inset-0 bg-black/40\" onClick={onClose} aria-hidden=\"true\" />\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={title}\n className=\"relative w-96 max-w-[90vw] rounded-2xl bg-white shadow-2xl\"\n >\n <div className=\"flex items-center justify-between border-b border-gray-100 px-5 py-4\">\n <h2 className=\"font-semibold text-gray-900 text-sm\">{title}</h2>\n <button\n type=\"button\"\n onClick={onClose}\n aria-label=\"Close\"\n className=\"flex h-6 w-6 items-center justify-center rounded-md text-gray-400 hover:bg-gray-100 hover:text-gray-700\"\n >\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n <path\n d=\"M11 3L3 11M3 3l8 8\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n />\n </svg>\n </button>\n </div>\n <div className=\"p-5\">{children}</div>\n {footer != null && (\n <div className=\"flex justify-end gap-2 border-t border-gray-100 px-5 py-3\">{footer}</div>\n )}\n </div>\n </div>\n );\n}\n"],"names":["logoUrl","ArtifactContextMenuContainer","icon","children","statusBadge","open","setOpen","useState","useEffect","onKeyDown","e","jsxs","Fragment","jsx","v","PluginList","plugins","plugin","StatusDot","status","ArtifactInfoPanel","artifactName","artifactVersion","ErrorScreen","error","onReset","LoadingScreen","Modal","title","onClose","footer","handleKeyDown"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alistigo/artifact-core-components-react",
3
- "version": "0.3.3",
3
+ "version": "0.3.5",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "description": "Platform-level React UI components shared by all Alistigo artifacts — LoadingScreen, ErrorScreen, ArtifactContextMenuContainer, ArtifactInfoPanel. Built on Tailwind v4.",