@cieloazul310/digital-go-pandacss-preset 0.2.0 → 0.2.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.
Files changed (3) hide show
  1. package/dist/index.js +617 -39
  2. package/dist/index.mjs +600 -22
  3. package/package.json +6 -5
package/dist/index.mjs CHANGED
@@ -1903,6 +1903,583 @@ var fieldset_default = defineSlotRecipe12({
1903
1903
  }
1904
1904
  });
1905
1905
 
1906
+ // src/recipes/file-upload.ts
1907
+ import { defineSlotRecipe as defineSlotRecipe13 } from "@pandacss/dev";
1908
+
1909
+ // ../../node_modules/@zag-js/file-upload/dist/index.mjs
1910
+ import { createAnatomy as createAnatomy2 } from "@zag-js/anatomy";
1911
+
1912
+ // ../../node_modules/@zag-js/dom-query/dist/index.mjs
1913
+ var isObject = (v) => typeof v === "object" && v !== null;
1914
+ var ELEMENT_NODE = 1;
1915
+ var DOCUMENT_NODE = 9;
1916
+ var DOCUMENT_FRAGMENT_NODE = 11;
1917
+ var isHTMLElement = (el) => isObject(el) && el.nodeType === ELEMENT_NODE && typeof el.nodeName === "string";
1918
+ var isDocument = (el) => isObject(el) && el.nodeType === DOCUMENT_NODE;
1919
+ var isNode = (el) => isObject(el) && el.nodeType !== void 0;
1920
+ var isShadowRoot = (el) => isNode(el) && el.nodeType === DOCUMENT_FRAGMENT_NODE && "host" in el;
1921
+ function contains(parent, child) {
1922
+ if (!parent || !child) return false;
1923
+ if (!isHTMLElement(parent) || !isHTMLElement(child)) return false;
1924
+ const rootNode = child.getRootNode?.();
1925
+ if (parent === child) return true;
1926
+ if (parent.contains(child)) return true;
1927
+ if (rootNode && isShadowRoot(rootNode)) {
1928
+ let next = child;
1929
+ while (next) {
1930
+ if (parent === next) return true;
1931
+ next = next.parentNode || next.host;
1932
+ }
1933
+ }
1934
+ return false;
1935
+ }
1936
+ function getWindow(el) {
1937
+ if (isShadowRoot(el)) return getWindow(el.host);
1938
+ if (isDocument(el)) return el.defaultView ?? window;
1939
+ if (isHTMLElement(el)) return el.ownerDocument?.defaultView ?? window;
1940
+ return window;
1941
+ }
1942
+ function getComposedPath(event) {
1943
+ return event.composedPath?.() ?? event.nativeEvent?.composedPath?.();
1944
+ }
1945
+ function getEventTarget(event) {
1946
+ const composedPath = getComposedPath(event);
1947
+ return composedPath?.[0] ?? event.target;
1948
+ }
1949
+ var addDomEvent = (target, eventName, handler, options) => {
1950
+ const node = typeof target === "function" ? target() : target;
1951
+ node?.addEventListener(eventName, handler, options);
1952
+ return () => {
1953
+ node?.removeEventListener(eventName, handler, options);
1954
+ };
1955
+ };
1956
+ function raf(fn) {
1957
+ let cleanup;
1958
+ const id = globalThis.requestAnimationFrame(() => {
1959
+ cleanup = fn();
1960
+ });
1961
+ return () => {
1962
+ globalThis.cancelAnimationFrame(id);
1963
+ cleanup?.();
1964
+ };
1965
+ }
1966
+
1967
+ // ../../node_modules/@zag-js/file-utils/dist/index.mjs
1968
+ function isMIMEType(v) {
1969
+ return v === "audio/*" || v === "video/*" || v === "image/*" || v === "text/*" || /\w+\/[-+.\w]+/g.test(v);
1970
+ }
1971
+ function isExt(v) {
1972
+ return /^.*\.[\w]+$/.test(v);
1973
+ }
1974
+ var isValidMIME = (v) => isMIMEType(v) || isExt(v);
1975
+ function getAcceptAttrString(accept) {
1976
+ if (accept == null) return;
1977
+ if (typeof accept === "string") {
1978
+ return accept;
1979
+ }
1980
+ if (Array.isArray(accept)) {
1981
+ return accept.filter(isValidMIME).join(",");
1982
+ }
1983
+ return Object.entries(accept).reduce((a, [mimeType, ext]) => [...a, mimeType, ...ext], []).filter(isValidMIME).join(",");
1984
+ }
1985
+ var isFileEqual = (file1, file2) => {
1986
+ return file1.name === file2.name && file1.size === file2.size && file1.type === file2.type;
1987
+ };
1988
+ var isDefined = (v) => v !== void 0 && v !== null;
1989
+ function isValidFileSize(file, minSize, maxSize) {
1990
+ if (isDefined(file.size)) {
1991
+ if (isDefined(minSize) && isDefined(maxSize)) {
1992
+ if (file.size > maxSize) return [false, "FILE_TOO_LARGE"];
1993
+ if (file.size < minSize) return [false, "FILE_TOO_SMALL"];
1994
+ } else if (isDefined(minSize) && file.size < minSize) {
1995
+ return [false, "FILE_TOO_SMALL"];
1996
+ } else if (isDefined(maxSize) && file.size > maxSize) {
1997
+ return [false, "FILE_TOO_LARGE"];
1998
+ }
1999
+ }
2000
+ return [true, null];
2001
+ }
2002
+ var mimeTypes = "3g2_video/3gpp2[3gp,3gpp_video/3gpp[3mf_model/3mf[7z_application/x-7z-compressed[aac_audio/aac[ac_application/pkix-attr-cert[adp_audio/adpcm[adts_audio/aac[ai_application/postscript[aml_application/automationml-aml+xml[amlx_application/automationml-amlx+zip[amr_audio/amr[apk_application/vnd.android.package-archive[apng_image/apng[appcache,manifest_text/cache-manifest[appinstaller_application/appinstaller[appx_application/appx[appxbundle_application/appxbundle[asc_application/pgp-keys[atom_application/atom+xml[atomcat_application/atomcat+xml[atomdeleted_application/atomdeleted+xml[atomsvc_application/atomsvc+xml[au,snd_audio/basic[avi_video/x-msvideo[avci_image/avci[avcs_image/avcs[avif_image/avif[aw_application/applixware[bdoc_application/bdoc[bin,bpk,buffer,deb,deploy,dist,distz,dll,dmg,dms,dump,elc,exe,img,iso,lrf,mar,msi,msm,msp,pkg,so_application/octet-stream[bmp,dib_image/bmp[btf,btif_image/prs.btif[bz2_application/x-bzip2[c_text/x-c[ccxml_application/ccxml+xml[cdfx_application/cdfx+xml[cdmia_application/cdmi-capability[cdmic_application/cdmi-container[cdmid_application/cdmi-domain[cdmio_application/cdmi-object[cdmiq_application/cdmi-queue[cer_application/pkix-cert[cgm_image/cgm[cjs_application/node[class_application/java-vm[coffee,litcoffee_text/coffeescript[conf,def,in,ini,list,log,text,txt_text/plain[cpp,cxx,cc_text/x-c++src[cpl_application/cpl+xml[cpt_application/mac-compactpro[crl_application/pkix-crl[css_text/css[csv_text/csv[cu_application/cu-seeme[cwl_application/cwl[cww_application/prs.cww[davmount_application/davmount+xml[dbk_application/docbook+xml[doc_application/msword[docx_application/vnd.openxmlformats-officedocument.wordprocessingml.document[dsc_text/prs.lines.tag[dssc_application/dssc+der[dtd_application/xml-dtd[dwd_application/atsc-dwd+xml[ear,jar,war_application/java-archive[ecma_application/ecmascript[emf_image/emf[eml,mime_message/rfc822[emma_application/emma+xml[emotionml_application/emotionml+xml[eot_application/vnd.ms-fontobject[eps,ps_application/postscript[epub_application/epub+zip[exi_application/exi[exp_application/express[exr_image/aces[ez_application/andrew-inset[fdf_application/fdf[fdt_application/fdt+xml[fits_image/fits[flac_audio/flac[flv_video/x-flv[g3_image/g3fax[geojson_application/geo+json[gif_image/gif[glb_model/gltf-binary[gltf_model/gltf+json[gml_application/gml+xml[go_text/x-go[gpx_application/gpx+xml[gz_application/gzip[h_text/x-h[h261_video/h261[h263_video/h263[h264_video/h264[heic_image/heic[heics_image/heic-sequence[heif_image/heif[heifs_image/heif-sequence[htm,html,shtml_text/html[ico_image/x-icon[icns_image/x-icns[ics,ifb_text/calendar[iges,igs_model/iges[ink,inkml_application/inkml+xml[ipa_application/octet-stream[java_text/x-java-source[jp2,jpg2_image/jp2[jpeg,jpe,jpg_image/jpeg[jpf,jpx_image/jpx[jpm,jpgm_image/jpm[jpgv_video/jpeg[jph_image/jph[js,mjs_text/javascript[json_application/json[json5_application/json5[jsonld_application/ld+json[jsx_text/jsx[jxl_image/jxl[jxr_image/jxr[ktx_image/ktx[ktx2_image/ktx2[less_text/less[m1v,m2v,mpe,mpeg,mpg_video/mpeg[m4a_audio/mp4[m4v_video/x-m4v[md,markdown_text/markdown[mid,midi,kar,rmi_audio/midi[mkv_video/x-matroska[mp2,mp2a,mp3,mpga,m3a,m2a_audio/mpeg[mp4,mp4v,mpg4_video/mp4[mp4a_audio/mp4[mp4s,m4p_application/mp4[odp_application/vnd.oasis.opendocument.presentation[oda_application/oda[ods_application/vnd.oasis.opendocument.spreadsheet[odt_application/vnd.oasis.opendocument.text[oga,ogg,opus,spx_audio/ogg[ogv_video/ogg[ogx_application/ogg[otf_font/otf[p12,pfx_application/x-pkcs12[pdf_application/pdf[pem_application/x-pem-file[php_text/x-php[png_image/png[ppt_application/vnd.ms-powerpoint[pptx_application/vnd.openxmlformats-officedocument.presentationml.presentation[pskcxml_application/pskc+xml[psd_image/vnd.adobe.photoshop[py_text/x-python[qt,mov_video/quicktime[rar_application/vnd.rar[rdf_application/rdf+xml[rtf_text/rtf[sass_text/x-sass[scss_text/x-scss[sgm,sgml_text/sgml[sh_application/x-sh[svg,svgz_image/svg+xml[swf_application/x-shockwave-flash[tar_application/x-tar[tif,tiff_image/tiff[toml_application/toml[ts_video/mp2t[tsx_text/tsx[tsv_text/tab-separated-values[ttc_font/collection[ttf_font/ttf[vtt_text/vtt[wasm_application/wasm[wav_audio/wav[weba_audio/webm[webm_video/webm[webmanifest_application/manifest+json[webp_image/webp[wma_audio/x-ms-wma[wmv_video/x-ms-wmv[woff_font/woff[woff2_font/woff2[xls_application/vnd.ms-excel[xlsx_application/vnd.openxmlformats-officedocument.spreadsheetml.sheet[xml_application/xml[xz_application/x-xz[yaml,yml_text/yaml[zip_application/zip";
2003
+ var mimeTypesMap = new Map(
2004
+ mimeTypes.split("[").flatMap((mime) => {
2005
+ const [extensions, mimeType] = mime.split("_");
2006
+ return extensions.split(",").map((ext) => [ext, mimeType]);
2007
+ })
2008
+ );
2009
+ function getFileMimeType(name) {
2010
+ const extension = name.split(".").pop();
2011
+ return extension ? mimeTypesMap.get(extension) || null : null;
2012
+ }
2013
+ function isFileAccepted(file, accept) {
2014
+ if (file && accept) {
2015
+ const types = Array.isArray(accept) ? accept : typeof accept === "string" ? accept.split(",") : [];
2016
+ if (types.length === 0) return true;
2017
+ const fileName = file.name || "";
2018
+ const mimeType = (file.type || getFileMimeType(fileName) || "").toLowerCase();
2019
+ const baseMimeType = mimeType.replace(/\/.*$/, "");
2020
+ return types.some((type) => {
2021
+ const validType = type.trim().toLowerCase();
2022
+ if (validType.charAt(0) === ".") {
2023
+ return fileName.toLowerCase().endsWith(validType);
2024
+ }
2025
+ if (validType.endsWith("/*")) {
2026
+ return baseMimeType === validType.replace(/\/.*$/, "");
2027
+ }
2028
+ return mimeType === validType;
2029
+ });
2030
+ }
2031
+ return true;
2032
+ }
2033
+ function isValidFileType(file, accept) {
2034
+ const isAcceptable = file.type === "application/x-moz-file" || isFileAccepted(file, accept);
2035
+ return [isAcceptable, isAcceptable ? null : "FILE_INVALID_TYPE"];
2036
+ }
2037
+
2038
+ // ../../node_modules/@zag-js/types/dist/index.mjs
2039
+ var createProps = () => (props2) => Array.from(new Set(props2));
2040
+
2041
+ // ../../node_modules/@zag-js/utils/dist/index.mjs
2042
+ var fnToString = Function.prototype.toString;
2043
+ var objectCtorString = fnToString.call(Object);
2044
+ var callAll = (...fns) => (...a) => {
2045
+ fns.forEach(function(fn) {
2046
+ fn?.(...a);
2047
+ });
2048
+ };
2049
+ var { floor, abs, round, min, max, pow, sign } = Math;
2050
+ function splitProps(props2, keys) {
2051
+ const rest = {};
2052
+ const result = {};
2053
+ const keySet = new Set(keys);
2054
+ for (const key in props2) {
2055
+ if (keySet.has(key)) {
2056
+ result[key] = props2[key];
2057
+ } else {
2058
+ rest[key] = props2[key];
2059
+ }
2060
+ }
2061
+ return [result, rest];
2062
+ }
2063
+ var createSplitProps = (keys) => {
2064
+ return function split(props2) {
2065
+ return splitProps(props2, keys);
2066
+ };
2067
+ };
2068
+ var _tick;
2069
+ _tick = /* @__PURE__ */ new WeakMap();
2070
+ function warn(...a) {
2071
+ const m = a.length === 1 ? a[0] : a[1];
2072
+ const c = a.length === 2 ? a[0] : true;
2073
+ if (c && process.env.NODE_ENV !== "production") {
2074
+ console.warn(m);
2075
+ }
2076
+ }
2077
+
2078
+ // ../../node_modules/@zag-js/core/dist/index.mjs
2079
+ function createMachine(config) {
2080
+ return config;
2081
+ }
2082
+
2083
+ // ../../node_modules/@zag-js/file-upload/dist/index.mjs
2084
+ var anatomy2 = createAnatomy2("file-upload").parts(
2085
+ "root",
2086
+ "dropzone",
2087
+ "item",
2088
+ "itemDeleteTrigger",
2089
+ "itemGroup",
2090
+ "itemName",
2091
+ "itemPreview",
2092
+ "itemPreviewImage",
2093
+ "itemSizeText",
2094
+ "label",
2095
+ "trigger",
2096
+ "clearTrigger"
2097
+ );
2098
+ var parts = anatomy2.build();
2099
+ var getRootId = (ctx) => ctx.ids?.root ?? `file:${ctx.id}`;
2100
+ var getHiddenInputId = (ctx) => ctx.ids?.hiddenInput ?? `file:${ctx.id}:input`;
2101
+ var getRootEl = (ctx) => ctx.getById(getRootId(ctx));
2102
+ var getHiddenInputEl = (ctx) => ctx.getById(getHiddenInputId(ctx));
2103
+ function isFilesWithinRange(ctx, incomingCount, currentAcceptedFiles) {
2104
+ const { prop, computed } = ctx;
2105
+ if (!computed("multiple") && incomingCount > 1) return false;
2106
+ if (!computed("multiple") && incomingCount + currentAcceptedFiles.length === 2) return true;
2107
+ if (incomingCount + currentAcceptedFiles.length > prop("maxFiles")) return false;
2108
+ return true;
2109
+ }
2110
+ function getEventFiles(ctx, files, currentAcceptedFiles = [], currentRejectedFiles = []) {
2111
+ const { prop, computed } = ctx;
2112
+ const acceptedFiles = [];
2113
+ const rejectedFiles = [];
2114
+ const validateParams = {
2115
+ acceptedFiles: currentAcceptedFiles,
2116
+ rejectedFiles: currentRejectedFiles
2117
+ };
2118
+ files.forEach((file) => {
2119
+ const [accepted, acceptError] = isValidFileType(file, computed("acceptAttr"));
2120
+ const [sizeMatch, sizeError] = isValidFileSize(file, prop("minFileSize"), prop("maxFileSize"));
2121
+ const validateErrors = prop("validate")?.(file, validateParams);
2122
+ const valid = validateErrors ? validateErrors.length === 0 : true;
2123
+ if (accepted && sizeMatch && valid) {
2124
+ acceptedFiles.push(file);
2125
+ } else {
2126
+ const errors = [acceptError, sizeError];
2127
+ if (!valid) errors.push(...validateErrors ?? []);
2128
+ rejectedFiles.push({ file, errors: errors.filter(Boolean) });
2129
+ }
2130
+ });
2131
+ if (!isFilesWithinRange(ctx, acceptedFiles.length, currentAcceptedFiles)) {
2132
+ acceptedFiles.forEach((file) => {
2133
+ rejectedFiles.push({ file, errors: ["TOO_MANY_FILES"] });
2134
+ });
2135
+ acceptedFiles.splice(0);
2136
+ }
2137
+ return {
2138
+ acceptedFiles,
2139
+ rejectedFiles
2140
+ };
2141
+ }
2142
+ function setInputFiles(inputEl, files) {
2143
+ const win = getWindow(inputEl);
2144
+ try {
2145
+ if ("DataTransfer" in win) {
2146
+ const dataTransfer = new win.DataTransfer();
2147
+ files.forEach((file) => {
2148
+ dataTransfer.items.add(file);
2149
+ });
2150
+ inputEl.files = dataTransfer.files;
2151
+ }
2152
+ } catch {
2153
+ }
2154
+ }
2155
+ var machine = createMachine({
2156
+ props({ props: props2 }) {
2157
+ return {
2158
+ minFileSize: 0,
2159
+ maxFileSize: Number.POSITIVE_INFINITY,
2160
+ maxFiles: 1,
2161
+ allowDrop: true,
2162
+ preventDocumentDrop: true,
2163
+ defaultAcceptedFiles: [],
2164
+ ...props2,
2165
+ translations: {
2166
+ dropzone: "dropzone",
2167
+ itemPreview: (file) => `preview of ${file.name}`,
2168
+ deleteFile: (file) => `delete file ${file.name}`,
2169
+ ...props2.translations
2170
+ }
2171
+ };
2172
+ },
2173
+ initialState() {
2174
+ return "idle";
2175
+ },
2176
+ context({ prop, bindable, getContext }) {
2177
+ return {
2178
+ acceptedFiles: bindable(() => ({
2179
+ defaultValue: prop("defaultAcceptedFiles"),
2180
+ value: prop("acceptedFiles"),
2181
+ isEqual: (a, b) => a.length === b?.length && a.every((file, i) => isFileEqual(file, b[i])),
2182
+ hash(value) {
2183
+ return value.map((file) => `${file.name}-${file.size}`).join(",");
2184
+ },
2185
+ onChange(value) {
2186
+ const ctx = getContext();
2187
+ prop("onFileAccept")?.({ files: value });
2188
+ prop("onFileChange")?.({ acceptedFiles: value, rejectedFiles: ctx.get("rejectedFiles") });
2189
+ }
2190
+ })),
2191
+ rejectedFiles: bindable(() => ({
2192
+ defaultValue: [],
2193
+ isEqual: (a, b) => a.length === b?.length && a.every((file, i) => isFileEqual(file.file, b[i].file)),
2194
+ onChange(value) {
2195
+ const ctx = getContext();
2196
+ prop("onFileReject")?.({ files: value });
2197
+ prop("onFileChange")?.({ acceptedFiles: ctx.get("acceptedFiles"), rejectedFiles: value });
2198
+ }
2199
+ })),
2200
+ transforming: bindable(() => ({
2201
+ defaultValue: false
2202
+ }))
2203
+ };
2204
+ },
2205
+ computed: {
2206
+ acceptAttr: ({ prop }) => getAcceptAttrString(prop("accept")),
2207
+ multiple: ({ prop }) => prop("maxFiles") > 1
2208
+ },
2209
+ watch({ track, context, action }) {
2210
+ track([() => context.hash("acceptedFiles")], () => {
2211
+ action(["syncInputElement"]);
2212
+ });
2213
+ },
2214
+ on: {
2215
+ "FILES.SET": {
2216
+ actions: ["setFiles"]
2217
+ },
2218
+ "FILE.SELECT": {
2219
+ actions: ["setEventFiles"]
2220
+ },
2221
+ "FILE.DELETE": {
2222
+ actions: ["removeFile"]
2223
+ },
2224
+ "FILES.CLEAR": {
2225
+ actions: ["clearFiles"]
2226
+ },
2227
+ "REJECTED_FILES.CLEAR": {
2228
+ actions: ["clearRejectedFiles"]
2229
+ }
2230
+ },
2231
+ effects: ["preventDocumentDrop"],
2232
+ states: {
2233
+ idle: {
2234
+ on: {
2235
+ OPEN: {
2236
+ actions: ["openFilePicker"]
2237
+ },
2238
+ "DROPZONE.CLICK": {
2239
+ actions: ["openFilePicker"]
2240
+ },
2241
+ "DROPZONE.FOCUS": {
2242
+ target: "focused"
2243
+ },
2244
+ "DROPZONE.DRAG_OVER": {
2245
+ target: "dragging"
2246
+ }
2247
+ }
2248
+ },
2249
+ focused: {
2250
+ on: {
2251
+ "DROPZONE.BLUR": {
2252
+ target: "idle"
2253
+ },
2254
+ OPEN: {
2255
+ actions: ["openFilePicker"]
2256
+ },
2257
+ "DROPZONE.CLICK": {
2258
+ actions: ["openFilePicker"]
2259
+ },
2260
+ "DROPZONE.DRAG_OVER": {
2261
+ target: "dragging"
2262
+ }
2263
+ }
2264
+ },
2265
+ dragging: {
2266
+ on: {
2267
+ "DROPZONE.DROP": {
2268
+ target: "idle",
2269
+ actions: ["setEventFiles"]
2270
+ },
2271
+ "DROPZONE.DRAG_LEAVE": {
2272
+ target: "idle"
2273
+ }
2274
+ }
2275
+ }
2276
+ },
2277
+ implementations: {
2278
+ effects: {
2279
+ preventDocumentDrop({ prop, scope }) {
2280
+ if (!prop("preventDocumentDrop")) return;
2281
+ if (!prop("allowDrop")) return;
2282
+ if (prop("disabled")) return;
2283
+ const doc = scope.getDoc();
2284
+ const onDragOver = (event) => {
2285
+ event?.preventDefault();
2286
+ };
2287
+ const onDrop = (event) => {
2288
+ if (contains(getRootEl(scope), getEventTarget(event))) return;
2289
+ event.preventDefault();
2290
+ };
2291
+ return callAll(addDomEvent(doc, "dragover", onDragOver, false), addDomEvent(doc, "drop", onDrop, false));
2292
+ }
2293
+ },
2294
+ actions: {
2295
+ syncInputElement({ scope, context }) {
2296
+ queueMicrotask(() => {
2297
+ const inputEl = getHiddenInputEl(scope);
2298
+ if (!inputEl) return;
2299
+ setInputFiles(inputEl, context.get("acceptedFiles"));
2300
+ const win = scope.getWin();
2301
+ inputEl.dispatchEvent(new win.Event("change", { bubbles: true }));
2302
+ });
2303
+ },
2304
+ openFilePicker({ scope }) {
2305
+ raf(() => {
2306
+ getHiddenInputEl(scope)?.click();
2307
+ });
2308
+ },
2309
+ setFiles(params) {
2310
+ const { computed, context, event } = params;
2311
+ const { acceptedFiles, rejectedFiles } = getEventFiles(params, event.files);
2312
+ context.set(
2313
+ "acceptedFiles",
2314
+ computed("multiple") ? acceptedFiles : acceptedFiles.length > 0 ? [acceptedFiles[0]] : []
2315
+ );
2316
+ context.set("rejectedFiles", rejectedFiles);
2317
+ },
2318
+ setEventFiles(params) {
2319
+ const { computed, context, event, prop } = params;
2320
+ const currentAcceptedFiles = context.get("acceptedFiles");
2321
+ const currentRejectedFiles = context.get("rejectedFiles");
2322
+ const { acceptedFiles, rejectedFiles } = getEventFiles(
2323
+ params,
2324
+ event.files,
2325
+ currentAcceptedFiles,
2326
+ currentRejectedFiles
2327
+ );
2328
+ const set = (files) => {
2329
+ if (computed("multiple")) {
2330
+ context.set("acceptedFiles", (prev) => [...prev, ...files]);
2331
+ context.set("rejectedFiles", rejectedFiles);
2332
+ return;
2333
+ }
2334
+ if (files.length) {
2335
+ context.set("acceptedFiles", [files[0]]);
2336
+ context.set("rejectedFiles", rejectedFiles);
2337
+ return;
2338
+ }
2339
+ if (rejectedFiles.length) {
2340
+ context.set("acceptedFiles", context.get("acceptedFiles"));
2341
+ context.set("rejectedFiles", rejectedFiles);
2342
+ }
2343
+ };
2344
+ const transform = prop("transformFiles");
2345
+ if (transform) {
2346
+ context.set("transforming", true);
2347
+ transform(acceptedFiles).then(set).catch((err) => {
2348
+ warn(`[zag-js/file-upload] error transforming files
2349
+ ${err}`);
2350
+ }).finally(() => {
2351
+ context.set("transforming", false);
2352
+ });
2353
+ } else {
2354
+ set(acceptedFiles);
2355
+ }
2356
+ },
2357
+ removeFile({ context, event }) {
2358
+ if (event.itemType === "rejected") {
2359
+ const rejectedFiles = context.get("rejectedFiles").filter((item) => !isFileEqual(item.file, event.file));
2360
+ context.set("rejectedFiles", rejectedFiles);
2361
+ } else {
2362
+ const files = context.get("acceptedFiles").filter((file) => !isFileEqual(file, event.file));
2363
+ context.set("acceptedFiles", files);
2364
+ }
2365
+ },
2366
+ clearRejectedFiles({ context }) {
2367
+ context.set("rejectedFiles", []);
2368
+ },
2369
+ clearFiles({ context }) {
2370
+ context.set("acceptedFiles", []);
2371
+ context.set("rejectedFiles", []);
2372
+ }
2373
+ }
2374
+ }
2375
+ });
2376
+ var props = createProps()([
2377
+ "accept",
2378
+ "acceptedFiles",
2379
+ "allowDrop",
2380
+ "capture",
2381
+ "defaultAcceptedFiles",
2382
+ "dir",
2383
+ "directory",
2384
+ "disabled",
2385
+ "getRootNode",
2386
+ "id",
2387
+ "ids",
2388
+ "invalid",
2389
+ "locale",
2390
+ "maxFiles",
2391
+ "maxFileSize",
2392
+ "minFileSize",
2393
+ "name",
2394
+ "onFileAccept",
2395
+ "onFileChange",
2396
+ "onFileReject",
2397
+ "preventDocumentDrop",
2398
+ "required",
2399
+ "transformFiles",
2400
+ "translations",
2401
+ "validate"
2402
+ ]);
2403
+ var splitProps2 = createSplitProps(props);
2404
+ var itemProps = createProps()(["file", "type"]);
2405
+ var splitItemProps = createSplitProps(itemProps);
2406
+
2407
+ // src/recipes/file-upload.ts
2408
+ var file_upload_default = defineSlotRecipe13({
2409
+ className: "file-upload",
2410
+ slots: anatomy2.extendWith("itemDetail").keys(),
2411
+ base: {
2412
+ root: {
2413
+ display: "flex",
2414
+ flexDirection: "column",
2415
+ alignItems: "start",
2416
+ gap: 4,
2417
+ textStyle: "std-16N-170"
2418
+ },
2419
+ dropzone: {
2420
+ display: "flex",
2421
+ flexDirection: "column",
2422
+ justifyContent: "space-between",
2423
+ width: "full",
2424
+ minHeight: "208px",
2425
+ bg: { base: "solid-gray.bg", _dragging: "green.50" },
2426
+ outlineStyle: "solid",
2427
+ outlineColor: {
2428
+ base: "solid-gray.536",
2429
+ _dragging: "success.1",
2430
+ _invalid: "error.1"
2431
+ },
2432
+ outlineWidth: { base: "1px", _dragging: "4px" },
2433
+ rounded: 8,
2434
+ pt: 8,
2435
+ pb: 6,
2436
+ pl: 7,
2437
+ pr: 8
2438
+ },
2439
+ trigger: {
2440
+ flexShrink: 0
2441
+ },
2442
+ label: {
2443
+ ...label_default.base,
2444
+ textStyle: "std-17B-170"
2445
+ },
2446
+ itemGroup: {
2447
+ display: "flex",
2448
+ flexDirection: "column",
2449
+ gap: 1,
2450
+ listStyle: "inside deciminal"
2451
+ },
2452
+ item: {
2453
+ display: "list-item",
2454
+ color: {
2455
+ base: "solid-gray.600",
2456
+ "[data-status=rejected]": "error.1",
2457
+ _marker: "solid-gray.600"
2458
+ },
2459
+ "& > *": {
2460
+ display: "inline",
2461
+ mr: { base: 2, _last: 0 }
2462
+ }
2463
+ },
2464
+ itemDetail: {
2465
+ color: { base: "solid-gray.600", "[data-status=rejected] &": "error.1" },
2466
+ borderLeftWidth: { base: "0px", "[data-status=rejected] &": "4px" },
2467
+ borderColor: "currentcolor",
2468
+ pl: { base: 0, "[data-status=rejected] &": 2 },
2469
+ display: "inline-block",
2470
+ verticalAlign: "text-top"
2471
+ },
2472
+ itemName: {
2473
+ textStyle: "std-16B-170",
2474
+ color: { base: "solid-gray.800", "[data-status=rejected] &": "error.1" }
2475
+ },
2476
+ itemDeleteTrigger: {
2477
+ ...link_default.base,
2478
+ cursor: "pointer"
2479
+ }
2480
+ }
2481
+ });
2482
+
1906
2483
  // src/recipes/hamburger-menu-button.ts
1907
2484
  import { defineRecipe as defineRecipe13 } from "@pandacss/dev";
1908
2485
  var hamburger_menu_button_default = defineRecipe13({
@@ -2006,7 +2583,7 @@ var list_default = defineRecipe15({
2006
2583
  });
2007
2584
 
2008
2585
  // src/recipes/menu.ts
2009
- import { defineSlotRecipe as defineSlotRecipe13 } from "@pandacss/dev";
2586
+ import { defineSlotRecipe as defineSlotRecipe14 } from "@pandacss/dev";
2010
2587
  import { anatomy as menuAnatomy } from "@zag-js/menu";
2011
2588
 
2012
2589
  // src/recipes/menu-item.ts
@@ -2123,7 +2700,7 @@ var menu_item_default = defineRecipe16({
2123
2700
  var itemStyle = {
2124
2701
  ...menu_item_default.base
2125
2702
  };
2126
- var menu_default = defineSlotRecipe13({
2703
+ var menu_default = defineSlotRecipe14({
2127
2704
  className: "menu",
2128
2705
  slots: menuAnatomy.keys(),
2129
2706
  base: {
@@ -2213,8 +2790,8 @@ var menu_default = defineSlotRecipe13({
2213
2790
  });
2214
2791
 
2215
2792
  // src/recipes/menu-list.ts
2216
- import { defineSlotRecipe as defineSlotRecipe14 } from "@pandacss/dev";
2217
- var menu_list_default = defineSlotRecipe14({
2793
+ import { defineSlotRecipe as defineSlotRecipe15 } from "@pandacss/dev";
2794
+ var menu_list_default = defineSlotRecipe15({
2218
2795
  className: "menu-list",
2219
2796
  slots: menuListAnatomy.keys(),
2220
2797
  base: {
@@ -2279,8 +2856,8 @@ var menu_list_default = defineSlotRecipe14({
2279
2856
  });
2280
2857
 
2281
2858
  // src/recipes/notification-banner.ts
2282
- import { defineSlotRecipe as defineSlotRecipe15 } from "@pandacss/dev";
2283
- var notification_banner_default = defineSlotRecipe15({
2859
+ import { defineSlotRecipe as defineSlotRecipe16 } from "@pandacss/dev";
2860
+ var notification_banner_default = defineSlotRecipe16({
2284
2861
  className: "notification-banner",
2285
2862
  description: "\u30B5\u30A4\u30C8/\u30B5\u30FC\u30D3\u30B9\u5168\u4F53\u306B\u95A2\u308F\u308B\u3001\u307E\u305F\u306F\u30DA\u30FC\u30B8\u3084\u8981\u7D20\u5358\u4F4D\u306B\u304A\u3051\u308B\u91CD\u8981\u5EA6\u306E\u9AD8\u3044\u60C5\u5831\u3092\u3001\u30E6\u30FC\u30B6\u30FC\u306E\u64CD\u4F5C\u306B\u95A2\u308F\u3089\u305A\u3001\u30B5\u30A4\u30C8/\u30B5\u30FC\u30D3\u30B9\u5074\u304B\u3089\u30E6\u30FC\u30B6\u30FC\u3078\u63D0\u793A\u3059\u308B\u5834\u5408\u306B\u7528\u3044\u308B\u901A\u77E5\u30D0\u30CA\u30FC\u3067\u3059\u3002\u901A\u77E5\u306B\u5BFE\u3059\u308B\u30E6\u30FC\u30B6\u30FC\u30A2\u30AF\u30B7\u30E7\u30F3\u3092\u8981\u6C42\u3059\u308B\u3053\u3068\u304C\u53EF\u80FD\u3067\u3059\u3002\u30E1\u30F3\u30C6\u30CA\u30F3\u30B9\u3092\u901A\u77E5\u3057\u305F\u3044\u3001\u30E6\u30FC\u30B6\u30FC\u306E\u5BFE\u5FDC\u304C\u5FC5\u8981\u306A\u60C5\u5831\u3092\u901A\u77E5\u3057\u3066\u30A2\u30AF\u30B7\u30E7\u30F3\u3055\u305B\u305F\u3044\u3001\u3068\u3044\u3063\u305F\u8981\u6C42\u306B\u5BFE\u5FDC\u3059\u308B\u3053\u3068\u304C\u3067\u304D\u307E\u3059\u3002",
2286
2863
  slots: notificationBannerAnatomy.keys(),
@@ -2559,9 +3136,9 @@ var ordered_list_default = defineRecipe17({
2559
3136
  });
2560
3137
 
2561
3138
  // src/recipes/progress.ts
2562
- import { defineSlotRecipe as defineSlotRecipe16 } from "@pandacss/dev";
3139
+ import { defineSlotRecipe as defineSlotRecipe17 } from "@pandacss/dev";
2563
3140
  import { anatomy as progressAnatomy } from "@zag-js/progress";
2564
- var progress_default = defineSlotRecipe16({
3141
+ var progress_default = defineSlotRecipe17({
2565
3142
  className: "progress",
2566
3143
  description: "\u30D7\u30ED\u30B0\u30EC\u30B9\u30A4\u30F3\u30B8\u30B1\u30FC\u30BF\u30FC\u306F\u3001\u30E6\u30FC\u30B6\u30FC\u306E\u30A2\u30AF\u30B7\u30E7\u30F3\u306B\u5BFE\u3057\u3066\u51E6\u7406\u9032\u884C\u4E2D\u3067\u3042\u308B\u3053\u3068\u3092\u901A\u77E5\u3057\u307E\u3059\u3002\u30C7\u30FC\u30BF\u53D6\u5F97\u30EA\u30AF\u30A8\u30B9\u30C8\u306E\u5FDC\u7B54\u3092\u5F85\u3063\u3066\u3044\u308B\u3053\u3068\u3092\u30E6\u30FC\u30B6\u30FC\u306B\u4F1D\u3048\u305F\u3044\u3068\u3044\u3063\u305F\u8981\u6C42\u306B\u5BFE\u5FDC\u3057\u307E\u3059\u3002",
2567
3144
  slots: progressAnatomy.keys(),
@@ -2650,9 +3227,9 @@ var progress_default = defineSlotRecipe16({
2650
3227
  });
2651
3228
 
2652
3229
  // src/recipes/radio-group.ts
2653
- import { defineSlotRecipe as defineSlotRecipe17 } from "@pandacss/dev";
3230
+ import { defineSlotRecipe as defineSlotRecipe18 } from "@pandacss/dev";
2654
3231
  import { anatomy as radioGroupAnatomy } from "@zag-js/radio-group";
2655
- var radio_group_default = defineSlotRecipe17({
3232
+ var radio_group_default = defineSlotRecipe18({
2656
3233
  className: "radio-group",
2657
3234
  slots: radioGroupAnatomy.keys(),
2658
3235
  base: {
@@ -2925,8 +3502,8 @@ var radio_group_default = defineSlotRecipe17({
2925
3502
  });
2926
3503
 
2927
3504
  // src/recipes/resource-list.ts
2928
- import { defineSlotRecipe as defineSlotRecipe18 } from "@pandacss/dev";
2929
- var resource_list_default = defineSlotRecipe18({
3505
+ import { defineSlotRecipe as defineSlotRecipe19 } from "@pandacss/dev";
3506
+ var resource_list_default = defineSlotRecipe19({
2930
3507
  className: "resource-list",
2931
3508
  slots: resourceListAnatomy.keys(),
2932
3509
  base: {
@@ -3024,9 +3601,9 @@ var resource_list_default = defineSlotRecipe18({
3024
3601
  });
3025
3602
 
3026
3603
  // src/recipes/select.ts
3027
- import { defineSlotRecipe as defineSlotRecipe19 } from "@pandacss/dev";
3604
+ import { defineSlotRecipe as defineSlotRecipe20 } from "@pandacss/dev";
3028
3605
  import { anatomy as selectAnatomy } from "@zag-js/select";
3029
- var select_default = defineSlotRecipe19({
3606
+ var select_default = defineSlotRecipe20({
3030
3607
  className: "select",
3031
3608
  description: "\u30BB\u30EC\u30AF\u30C8\u30DC\u30C3\u30AF\u30B9\u306F\u3001\u8907\u6570\u306E\u9078\u629E\u80A2\u3092\u63D0\u4F9B\u3059\u308B\u30D5\u30A9\u30FC\u30E0\u30B3\u30F3\u30C8\u30ED\u30FC\u30EB\u3067\u3059\u3002",
3032
3609
  slots: selectAnatomy.keys(),
@@ -3126,9 +3703,9 @@ var select_default = defineSlotRecipe19({
3126
3703
  });
3127
3704
 
3128
3705
  // src/recipes/step-navigation.ts
3129
- import { defineSlotRecipe as defineSlotRecipe20 } from "@pandacss/dev";
3706
+ import { defineSlotRecipe as defineSlotRecipe21 } from "@pandacss/dev";
3130
3707
  import { anatomy as stepNavigationAnatomy } from "@zag-js/steps";
3131
- var step_navigation_default = defineSlotRecipe20({
3708
+ var step_navigation_default = defineSlotRecipe21({
3132
3709
  className: "step-navigation",
3133
3710
  slots: stepNavigationAnatomy.extendWith("title", "description").keys(),
3134
3711
  base: {
@@ -3511,8 +4088,8 @@ var step_navigation_default = defineSlotRecipe20({
3511
4088
  });
3512
4089
 
3513
4090
  // src/recipes/table.ts
3514
- import { defineSlotRecipe as defineSlotRecipe21 } from "@pandacss/dev";
3515
- var table_default = defineSlotRecipe21({
4091
+ import { defineSlotRecipe as defineSlotRecipe22 } from "@pandacss/dev";
4092
+ var table_default = defineSlotRecipe22({
3516
4093
  className: "table",
3517
4094
  slots: tableAnatomy.keys(),
3518
4095
  base: {
@@ -3651,9 +4228,9 @@ var table_default = defineSlotRecipe21({
3651
4228
  });
3652
4229
 
3653
4230
  // src/recipes/tabs.ts
3654
- import { defineSlotRecipe as defineSlotRecipe22 } from "@pandacss/dev";
4231
+ import { defineSlotRecipe as defineSlotRecipe23 } from "@pandacss/dev";
3655
4232
  import { anatomy as tabsAnatomy } from "@zag-js/tabs";
3656
- var tabs_default = defineSlotRecipe22({
4233
+ var tabs_default = defineSlotRecipe23({
3657
4234
  className: "tabs",
3658
4235
  slots: tabsAnatomy.keys(),
3659
4236
  base: {
@@ -3742,9 +4319,9 @@ var tabs_default = defineSlotRecipe22({
3742
4319
  });
3743
4320
 
3744
4321
  // src/recipes/tree-view.ts
3745
- import { defineSlotRecipe as defineSlotRecipe23 } from "@pandacss/dev";
4322
+ import { defineSlotRecipe as defineSlotRecipe24 } from "@pandacss/dev";
3746
4323
  import { anatomy as treeViewAnatomy } from "@zag-js/tree-view";
3747
- var tree_view_default = defineSlotRecipe23({
4324
+ var tree_view_default = defineSlotRecipe24({
3748
4325
  className: "tree-view",
3749
4326
  slots: treeViewAnatomy.keys(),
3750
4327
  base: {
@@ -3952,6 +4529,7 @@ var recipes = {
3952
4529
  errorText: error_text_default,
3953
4530
  field: field_default,
3954
4531
  fieldset: fieldset_default,
4532
+ fileUpload: file_upload_default,
3955
4533
  hamburgerMenuButton: hamburger_menu_button_default,
3956
4534
  input: input_default,
3957
4535
  label: label_default,