@gravitee/graphene-core 2.42.1 → 2.43.0-renovate-react.07a6489
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,7 @@ import { Accept, FileRejection } from 'react-dropzone';
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
interface FileUploadInputProps extends Omit<React.ComponentProps<'div'>, 'children' | 'onError'> {
|
|
4
4
|
accept?: Accept;
|
|
5
|
+
describedById?: string;
|
|
5
6
|
disabled?: boolean;
|
|
6
7
|
hint?: React.ReactNode;
|
|
7
8
|
icon?: React.ReactNode;
|
|
@@ -12,8 +13,9 @@ interface FileUploadInputProps extends Omit<React.ComponentProps<'div'>, 'childr
|
|
|
12
13
|
multiple?: boolean;
|
|
13
14
|
onFilesAccepted?: (files: File[]) => void;
|
|
14
15
|
onFilesRejected?: (rejections: FileRejection[]) => void;
|
|
16
|
+
triggerLabel?: React.ReactNode;
|
|
15
17
|
}
|
|
16
|
-
declare function FileUploadInput({ accept, className, disabled, hint, icon, invalid, label, maxFileSize, maxFiles, multiple, onFilesAccepted, onFilesRejected, ...props }: FileUploadInputProps): React.JSX.Element;
|
|
18
|
+
declare function FileUploadInput({ accept, className, describedById, disabled, hint, icon, invalid, label, maxFileSize, maxFiles, multiple, onFilesAccepted, onFilesRejected, triggerLabel, ...props }: FileUploadInputProps): React.JSX.Element;
|
|
17
19
|
export { FileUploadInput };
|
|
18
20
|
export type { Accept, FileRejection } from 'react-dropzone';
|
|
19
21
|
export type { FileUploadInputProps };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUploadInput.d.ts","sourceRoot":"","sources":["../../../src/base/FileUploadInput/FileUploadInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,aAAa,EAAe,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"FileUploadInput.d.ts","sourceRoot":"","sources":["../../../src/base/FileUploadInput/FileUploadInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,aAAa,EAAe,MAAM,gBAAgB,CAAC;AAO9E,UAAU,oBAAqB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC9F,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IAC1C,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;IACxD,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAChC;AAqBD,iBAAS,eAAe,CAAC,EACvB,MAAM,EACN,SAAS,EACT,aAAa,EACb,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,KAAK,EACL,WAAW,EACX,QAAY,EACZ,QAAgB,EAChB,eAAe,EACf,eAAe,EACf,YAA4B,EAC5B,GAAG,KAAK,EACT,EAAE,oBAAoB,qBAgFtB;AAED,OAAO,EAAE,eAAe,EAAE,CAAC;AAC3B,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC5D,YAAY,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Accept, FileRejection } from '../../base/FileUploadInput';
|
|
1
|
+
import { Accept, FileRejection, FileUploadInputProps } from '../../base/FileUploadInput';
|
|
2
2
|
import { FileUploadItemValue } from './FileUploadItem';
|
|
3
3
|
import * as React from 'react';
|
|
4
|
-
interface FileUploadProps {
|
|
4
|
+
interface FileUploadProps extends Pick<FileUploadInputProps, 'icon' | 'triggerLabel'> {
|
|
5
5
|
accept?: Accept;
|
|
6
6
|
className?: string;
|
|
7
7
|
disabled?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileUpload.d.ts","sourceRoot":"","sources":["../../../src/composed/FileUpload/FileUpload.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"FileUpload.d.ts","sourceRoot":"","sources":["../../../src/composed/FileUpload/FileUpload.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EACL,KAAK,MAAM,EACX,KAAK,aAAa,EAElB,KAAK,oBAAoB,EAC1B,MAAM,8CAA8C,CAAC;AAEtD,OAAO,EAAkB,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5E,UAAU,eAAgB,SAAQ,IAAI,CAAC,oBAAoB,EAAE,MAAM,GAAG,cAAc,CAAC;IACnF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACrC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;CACvD;AAED,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,MAAM,EACN,OAAO,EACP,KAAK,EACL,YAAY,EACZ,UAAU,EACV,aAAa,EACb,GAAG,UAAU,EACd,EAAE,eAAe,qBA4EjB;AAED,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,YAAY,EAAE,eAAe,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -23203,42 +23203,61 @@ function gB({ maxFiles: e, maxFileSize: t, multiple: n }) {
|
|
|
23203
23203
|
let r = [];
|
|
23204
23204
|
return n && e !== void 0 && e > 1 && r.push(`Max ${e} files`), t !== void 0 && r.push(`Up to ${hB(t)}`), r.length > 0 ? r.join(" · ") : null;
|
|
23205
23205
|
}
|
|
23206
|
-
function _B({ accept: e, className: t,
|
|
23207
|
-
let { getInputProps:
|
|
23206
|
+
function _B({ accept: e, className: t, describedById: n, disabled: r, hint: i, icon: a, invalid: o, label: s, maxFileSize: c, maxFiles: l = 1, multiple: u = !1, onFilesAccepted: d, onFilesRejected: f, triggerLabel: p = "Choose file", ...m }) {
|
|
23207
|
+
let { getInputProps: h, getRootProps: g, isDragActive: _, isDragReject: v, open: y } = fB({
|
|
23208
23208
|
accept: e,
|
|
23209
|
-
disabled:
|
|
23210
|
-
maxFiles:
|
|
23211
|
-
maxSize:
|
|
23212
|
-
multiple:
|
|
23213
|
-
|
|
23214
|
-
|
|
23215
|
-
|
|
23216
|
-
|
|
23217
|
-
|
|
23218
|
-
|
|
23219
|
-
|
|
23209
|
+
disabled: r,
|
|
23210
|
+
maxFiles: l,
|
|
23211
|
+
maxSize: c,
|
|
23212
|
+
multiple: u,
|
|
23213
|
+
noKeyboard: !0,
|
|
23214
|
+
onDropAccepted: d,
|
|
23215
|
+
onDropRejected: f
|
|
23216
|
+
}), x = k.useId(), S = k.useId(), C = r ? "disabled" : o || v ? "reject" : _ ? "active" : "idle", w = i === null ? null : i ?? gB({
|
|
23217
|
+
maxFiles: l,
|
|
23218
|
+
maxFileSize: c,
|
|
23219
|
+
multiple: u
|
|
23220
|
+
}), T = s === void 0 ? "Choose file to upload" : s, E = [n, w ? S : void 0].filter(Boolean).join(" ") || void 0;
|
|
23220
23221
|
return /* @__PURE__ */ U("div", {
|
|
23221
|
-
...
|
|
23222
|
-
...
|
|
23222
|
+
...m,
|
|
23223
|
+
...g(),
|
|
23223
23224
|
"data-slot": "file-upload-input",
|
|
23224
|
-
"data-state":
|
|
23225
|
-
"aria-disabled":
|
|
23226
|
-
"aria-invalid":
|
|
23227
|
-
className: q("flex cursor-pointer flex-col items-center justify-center gap-3 rounded-xl border border-dashed border-input bg-background px-6 py-10 text-center transition-colors outline-none", "
|
|
23225
|
+
"data-state": C,
|
|
23226
|
+
"aria-disabled": r ? !0 : void 0,
|
|
23227
|
+
"aria-invalid": o || v ? !0 : void 0,
|
|
23228
|
+
className: q("flex cursor-pointer flex-col items-center justify-center gap-3 rounded-xl border border-dashed border-input bg-background px-6 py-10 text-center transition-colors outline-none", "data-active:border-ring data-active:bg-accent/40", "data-[state=reject]:border-destructive", "data-[state=disabled]:pointer-events-none data-[state=disabled]:cursor-not-allowed data-[state=disabled]:opacity-50", t),
|
|
23228
23229
|
children: [
|
|
23229
|
-
/* @__PURE__ */ H("input", { ...
|
|
23230
|
+
/* @__PURE__ */ H("input", { ...h({
|
|
23231
|
+
...T ? { "aria-labelledby": x } : { "aria-label": "Choose file to upload" },
|
|
23232
|
+
"aria-describedby": E,
|
|
23233
|
+
"aria-invalid": o || v ? !0 : void 0
|
|
23234
|
+
}) }),
|
|
23230
23235
|
/* @__PURE__ */ H("div", {
|
|
23231
23236
|
"aria-hidden": "true",
|
|
23232
|
-
className: q("flex items-center justify-center text-muted-foreground",
|
|
23233
|
-
children:
|
|
23237
|
+
className: q("flex items-center justify-center text-muted-foreground", T === null && w === null && "h-full w-full"),
|
|
23238
|
+
children: a ?? /* @__PURE__ */ H(b, { className: "size-8" })
|
|
23234
23239
|
}),
|
|
23235
|
-
|
|
23236
|
-
id:
|
|
23237
|
-
children:
|
|
23240
|
+
T ? /* @__PURE__ */ H(fR, {
|
|
23241
|
+
id: x,
|
|
23242
|
+
children: T
|
|
23238
23243
|
}) : null,
|
|
23239
|
-
|
|
23244
|
+
w ? /* @__PURE__ */ H("div", {
|
|
23245
|
+
id: S,
|
|
23240
23246
|
className: "text-xs text-muted-foreground",
|
|
23241
|
-
children:
|
|
23247
|
+
children: w
|
|
23248
|
+
}) : null,
|
|
23249
|
+
p ? /* @__PURE__ */ H(hb, {
|
|
23250
|
+
type: "button",
|
|
23251
|
+
variant: "outline",
|
|
23252
|
+
size: "sm",
|
|
23253
|
+
disabled: r,
|
|
23254
|
+
"aria-describedby": E,
|
|
23255
|
+
"aria-invalid": o || v ? !0 : void 0,
|
|
23256
|
+
"data-slot": "file-upload-trigger",
|
|
23257
|
+
onClick: (e) => {
|
|
23258
|
+
e.stopPropagation(), y();
|
|
23259
|
+
},
|
|
23260
|
+
children: p
|
|
23242
23261
|
}) : null
|
|
23243
23262
|
]
|
|
23244
23263
|
});
|
|
@@ -30439,29 +30458,48 @@ function NJ({ className: e, item: t, onRemove: n, ...r }) {
|
|
|
30439
30458
|
//#endregion
|
|
30440
30459
|
//#region src/composed/FileUpload/FileUpload.tsx
|
|
30441
30460
|
function PJ({ className: e, errors: t, invalid: n, items: r, onFileRemove: i, onFilesAdd: a, onFilesReject: o, ...s }) {
|
|
30442
|
-
let c = t !== void 0 && t.length > 0
|
|
30461
|
+
let c = k.useRef(null), l = k.useId(), [u, d] = k.useState(""), f = t !== void 0 && t.length > 0, p = (e) => {
|
|
30462
|
+
e.length === 1 ? d(`Added ${e[0].name}`) : e.length > 1 && d(`Added ${e.length} files`), a?.(e);
|
|
30463
|
+
}, m = (e) => {
|
|
30464
|
+
e.length === 1 ? d(`${e[0].file.name} rejected`) : e.length > 1 && d(`${e.length} files rejected`), o?.(e);
|
|
30465
|
+
}, h = (e) => {
|
|
30466
|
+
let t = r.findIndex((t) => t.id === e), n = r[t];
|
|
30467
|
+
n && d(`Removed ${n.file.name}`);
|
|
30468
|
+
let a = r[t + 1] ?? r[t - 1];
|
|
30469
|
+
requestAnimationFrame(a ? () => {
|
|
30470
|
+
Array.from(c.current?.querySelectorAll("[data-file-upload-item-id]") ?? []).find((e) => e.getAttribute("data-file-upload-item-id") === a.id)?.querySelector("button")?.focus();
|
|
30471
|
+
} : () => c.current?.querySelector("[data-slot=\"file-upload-trigger\"]")?.focus()), i?.(e);
|
|
30472
|
+
};
|
|
30443
30473
|
return /* @__PURE__ */ U("div", {
|
|
30474
|
+
ref: c,
|
|
30444
30475
|
"data-slot": "file-upload",
|
|
30445
30476
|
className: q("flex flex-col gap-3", e),
|
|
30446
30477
|
children: [
|
|
30447
30478
|
/* @__PURE__ */ H(_B, {
|
|
30448
30479
|
...s,
|
|
30449
|
-
invalid: n ||
|
|
30450
|
-
|
|
30451
|
-
|
|
30480
|
+
invalid: n || f,
|
|
30481
|
+
describedById: f ? l : void 0,
|
|
30482
|
+
onFilesAccepted: p,
|
|
30483
|
+
onFilesRejected: m
|
|
30452
30484
|
}),
|
|
30453
|
-
|
|
30454
|
-
|
|
30455
|
-
|
|
30456
|
-
children: t.map((e, t) => /* @__PURE__ */ H("li", { children: e }, t))
|
|
30485
|
+
f ? /* @__PURE__ */ H(CR, {
|
|
30486
|
+
id: l,
|
|
30487
|
+
errors: t.map((e) => ({ message: e }))
|
|
30457
30488
|
}) : null,
|
|
30458
30489
|
r.length > 0 ? /* @__PURE__ */ H("ul", {
|
|
30459
30490
|
className: "flex flex-col gap-2",
|
|
30460
30491
|
children: r.map((e) => /* @__PURE__ */ H("li", { children: /* @__PURE__ */ H(NJ, {
|
|
30461
30492
|
item: e,
|
|
30462
|
-
onRemove:
|
|
30493
|
+
onRemove: h,
|
|
30494
|
+
"data-file-upload-item-id": e.id
|
|
30463
30495
|
}) }, e.id))
|
|
30464
|
-
}) : null
|
|
30496
|
+
}) : null,
|
|
30497
|
+
/* @__PURE__ */ H("div", {
|
|
30498
|
+
role: "status",
|
|
30499
|
+
"aria-live": "polite",
|
|
30500
|
+
className: "sr-only",
|
|
30501
|
+
children: u
|
|
30502
|
+
})
|
|
30465
30503
|
]
|
|
30466
30504
|
});
|
|
30467
30505
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gravitee/graphene-core",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.43.0-renovate-react.07a6489",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Gravitee's Graphene design system: accessible React components, design tokens, icons, and shared ESLint/TypeScript configs. Built on shadcn/ui and Tailwind.",
|
|
6
6
|
"keywords": [
|
|
@@ -91,6 +91,7 @@
|
|
|
91
91
|
},
|
|
92
92
|
"peerDependencies": {
|
|
93
93
|
"@fontsource/dm-sans": ">=5.0.0",
|
|
94
|
+
"@gravitee/graphene-core": "2.43.0-renovate-react.07a6489",
|
|
94
95
|
"@tanstack/react-table": "^8.0.0",
|
|
95
96
|
"@testing-library/dom": ">=10.0.0",
|
|
96
97
|
"@testing-library/react": ">=16.0.0",
|