@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.js CHANGED
@@ -34,7 +34,7 @@ __export(index_exports, {
34
34
  default: () => index_default
35
35
  });
36
36
  module.exports = __toCommonJS(index_exports);
37
- var import_dev43 = require("@pandacss/dev");
37
+ var import_dev44 = require("@pandacss/dev");
38
38
  var import_digital_go_pandacss_plugin = __toESM(require("@cieloazul310/digital-go-pandacss-plugin"));
39
39
  var import_digital_go_pandacss_utils = require("@cieloazul310/digital-go-pandacss-utils");
40
40
 
@@ -1936,9 +1936,586 @@ var fieldset_default = (0, import_dev24.defineSlotRecipe)({
1936
1936
  }
1937
1937
  });
1938
1938
 
1939
- // src/recipes/hamburger-menu-button.ts
1939
+ // src/recipes/file-upload.ts
1940
1940
  var import_dev25 = require("@pandacss/dev");
1941
- var hamburger_menu_button_default = (0, import_dev25.defineRecipe)({
1941
+
1942
+ // ../../node_modules/@zag-js/file-upload/dist/index.mjs
1943
+ var import_anatomy8 = require("@zag-js/anatomy");
1944
+
1945
+ // ../../node_modules/@zag-js/dom-query/dist/index.mjs
1946
+ var isObject = (v) => typeof v === "object" && v !== null;
1947
+ var ELEMENT_NODE = 1;
1948
+ var DOCUMENT_NODE = 9;
1949
+ var DOCUMENT_FRAGMENT_NODE = 11;
1950
+ var isHTMLElement = (el) => isObject(el) && el.nodeType === ELEMENT_NODE && typeof el.nodeName === "string";
1951
+ var isDocument = (el) => isObject(el) && el.nodeType === DOCUMENT_NODE;
1952
+ var isNode = (el) => isObject(el) && el.nodeType !== void 0;
1953
+ var isShadowRoot = (el) => isNode(el) && el.nodeType === DOCUMENT_FRAGMENT_NODE && "host" in el;
1954
+ function contains(parent, child) {
1955
+ if (!parent || !child) return false;
1956
+ if (!isHTMLElement(parent) || !isHTMLElement(child)) return false;
1957
+ const rootNode = child.getRootNode?.();
1958
+ if (parent === child) return true;
1959
+ if (parent.contains(child)) return true;
1960
+ if (rootNode && isShadowRoot(rootNode)) {
1961
+ let next = child;
1962
+ while (next) {
1963
+ if (parent === next) return true;
1964
+ next = next.parentNode || next.host;
1965
+ }
1966
+ }
1967
+ return false;
1968
+ }
1969
+ function getWindow(el) {
1970
+ if (isShadowRoot(el)) return getWindow(el.host);
1971
+ if (isDocument(el)) return el.defaultView ?? window;
1972
+ if (isHTMLElement(el)) return el.ownerDocument?.defaultView ?? window;
1973
+ return window;
1974
+ }
1975
+ function getComposedPath(event) {
1976
+ return event.composedPath?.() ?? event.nativeEvent?.composedPath?.();
1977
+ }
1978
+ function getEventTarget(event) {
1979
+ const composedPath = getComposedPath(event);
1980
+ return composedPath?.[0] ?? event.target;
1981
+ }
1982
+ var addDomEvent = (target, eventName, handler, options) => {
1983
+ const node = typeof target === "function" ? target() : target;
1984
+ node?.addEventListener(eventName, handler, options);
1985
+ return () => {
1986
+ node?.removeEventListener(eventName, handler, options);
1987
+ };
1988
+ };
1989
+ function raf(fn) {
1990
+ let cleanup;
1991
+ const id = globalThis.requestAnimationFrame(() => {
1992
+ cleanup = fn();
1993
+ });
1994
+ return () => {
1995
+ globalThis.cancelAnimationFrame(id);
1996
+ cleanup?.();
1997
+ };
1998
+ }
1999
+
2000
+ // ../../node_modules/@zag-js/file-utils/dist/index.mjs
2001
+ function isMIMEType(v) {
2002
+ return v === "audio/*" || v === "video/*" || v === "image/*" || v === "text/*" || /\w+\/[-+.\w]+/g.test(v);
2003
+ }
2004
+ function isExt(v) {
2005
+ return /^.*\.[\w]+$/.test(v);
2006
+ }
2007
+ var isValidMIME = (v) => isMIMEType(v) || isExt(v);
2008
+ function getAcceptAttrString(accept) {
2009
+ if (accept == null) return;
2010
+ if (typeof accept === "string") {
2011
+ return accept;
2012
+ }
2013
+ if (Array.isArray(accept)) {
2014
+ return accept.filter(isValidMIME).join(",");
2015
+ }
2016
+ return Object.entries(accept).reduce((a, [mimeType, ext]) => [...a, mimeType, ...ext], []).filter(isValidMIME).join(",");
2017
+ }
2018
+ var isFileEqual = (file1, file2) => {
2019
+ return file1.name === file2.name && file1.size === file2.size && file1.type === file2.type;
2020
+ };
2021
+ var isDefined = (v) => v !== void 0 && v !== null;
2022
+ function isValidFileSize(file, minSize, maxSize) {
2023
+ if (isDefined(file.size)) {
2024
+ if (isDefined(minSize) && isDefined(maxSize)) {
2025
+ if (file.size > maxSize) return [false, "FILE_TOO_LARGE"];
2026
+ if (file.size < minSize) return [false, "FILE_TOO_SMALL"];
2027
+ } else if (isDefined(minSize) && file.size < minSize) {
2028
+ return [false, "FILE_TOO_SMALL"];
2029
+ } else if (isDefined(maxSize) && file.size > maxSize) {
2030
+ return [false, "FILE_TOO_LARGE"];
2031
+ }
2032
+ }
2033
+ return [true, null];
2034
+ }
2035
+ 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";
2036
+ var mimeTypesMap = new Map(
2037
+ mimeTypes.split("[").flatMap((mime) => {
2038
+ const [extensions, mimeType] = mime.split("_");
2039
+ return extensions.split(",").map((ext) => [ext, mimeType]);
2040
+ })
2041
+ );
2042
+ function getFileMimeType(name) {
2043
+ const extension = name.split(".").pop();
2044
+ return extension ? mimeTypesMap.get(extension) || null : null;
2045
+ }
2046
+ function isFileAccepted(file, accept) {
2047
+ if (file && accept) {
2048
+ const types = Array.isArray(accept) ? accept : typeof accept === "string" ? accept.split(",") : [];
2049
+ if (types.length === 0) return true;
2050
+ const fileName = file.name || "";
2051
+ const mimeType = (file.type || getFileMimeType(fileName) || "").toLowerCase();
2052
+ const baseMimeType = mimeType.replace(/\/.*$/, "");
2053
+ return types.some((type) => {
2054
+ const validType = type.trim().toLowerCase();
2055
+ if (validType.charAt(0) === ".") {
2056
+ return fileName.toLowerCase().endsWith(validType);
2057
+ }
2058
+ if (validType.endsWith("/*")) {
2059
+ return baseMimeType === validType.replace(/\/.*$/, "");
2060
+ }
2061
+ return mimeType === validType;
2062
+ });
2063
+ }
2064
+ return true;
2065
+ }
2066
+ function isValidFileType(file, accept) {
2067
+ const isAcceptable = file.type === "application/x-moz-file" || isFileAccepted(file, accept);
2068
+ return [isAcceptable, isAcceptable ? null : "FILE_INVALID_TYPE"];
2069
+ }
2070
+
2071
+ // ../../node_modules/@zag-js/types/dist/index.mjs
2072
+ var createProps = () => (props2) => Array.from(new Set(props2));
2073
+
2074
+ // ../../node_modules/@zag-js/utils/dist/index.mjs
2075
+ var fnToString = Function.prototype.toString;
2076
+ var objectCtorString = fnToString.call(Object);
2077
+ var callAll = (...fns) => (...a) => {
2078
+ fns.forEach(function(fn) {
2079
+ fn?.(...a);
2080
+ });
2081
+ };
2082
+ var { floor, abs, round, min, max, pow, sign } = Math;
2083
+ function splitProps(props2, keys) {
2084
+ const rest = {};
2085
+ const result = {};
2086
+ const keySet = new Set(keys);
2087
+ for (const key in props2) {
2088
+ if (keySet.has(key)) {
2089
+ result[key] = props2[key];
2090
+ } else {
2091
+ rest[key] = props2[key];
2092
+ }
2093
+ }
2094
+ return [result, rest];
2095
+ }
2096
+ var createSplitProps = (keys) => {
2097
+ return function split(props2) {
2098
+ return splitProps(props2, keys);
2099
+ };
2100
+ };
2101
+ var _tick;
2102
+ _tick = /* @__PURE__ */ new WeakMap();
2103
+ function warn(...a) {
2104
+ const m = a.length === 1 ? a[0] : a[1];
2105
+ const c = a.length === 2 ? a[0] : true;
2106
+ if (c && process.env.NODE_ENV !== "production") {
2107
+ console.warn(m);
2108
+ }
2109
+ }
2110
+
2111
+ // ../../node_modules/@zag-js/core/dist/index.mjs
2112
+ function createMachine(config) {
2113
+ return config;
2114
+ }
2115
+
2116
+ // ../../node_modules/@zag-js/file-upload/dist/index.mjs
2117
+ var anatomy2 = (0, import_anatomy8.createAnatomy)("file-upload").parts(
2118
+ "root",
2119
+ "dropzone",
2120
+ "item",
2121
+ "itemDeleteTrigger",
2122
+ "itemGroup",
2123
+ "itemName",
2124
+ "itemPreview",
2125
+ "itemPreviewImage",
2126
+ "itemSizeText",
2127
+ "label",
2128
+ "trigger",
2129
+ "clearTrigger"
2130
+ );
2131
+ var parts = anatomy2.build();
2132
+ var getRootId = (ctx) => ctx.ids?.root ?? `file:${ctx.id}`;
2133
+ var getHiddenInputId = (ctx) => ctx.ids?.hiddenInput ?? `file:${ctx.id}:input`;
2134
+ var getRootEl = (ctx) => ctx.getById(getRootId(ctx));
2135
+ var getHiddenInputEl = (ctx) => ctx.getById(getHiddenInputId(ctx));
2136
+ function isFilesWithinRange(ctx, incomingCount, currentAcceptedFiles) {
2137
+ const { prop, computed } = ctx;
2138
+ if (!computed("multiple") && incomingCount > 1) return false;
2139
+ if (!computed("multiple") && incomingCount + currentAcceptedFiles.length === 2) return true;
2140
+ if (incomingCount + currentAcceptedFiles.length > prop("maxFiles")) return false;
2141
+ return true;
2142
+ }
2143
+ function getEventFiles(ctx, files, currentAcceptedFiles = [], currentRejectedFiles = []) {
2144
+ const { prop, computed } = ctx;
2145
+ const acceptedFiles = [];
2146
+ const rejectedFiles = [];
2147
+ const validateParams = {
2148
+ acceptedFiles: currentAcceptedFiles,
2149
+ rejectedFiles: currentRejectedFiles
2150
+ };
2151
+ files.forEach((file) => {
2152
+ const [accepted, acceptError] = isValidFileType(file, computed("acceptAttr"));
2153
+ const [sizeMatch, sizeError] = isValidFileSize(file, prop("minFileSize"), prop("maxFileSize"));
2154
+ const validateErrors = prop("validate")?.(file, validateParams);
2155
+ const valid = validateErrors ? validateErrors.length === 0 : true;
2156
+ if (accepted && sizeMatch && valid) {
2157
+ acceptedFiles.push(file);
2158
+ } else {
2159
+ const errors = [acceptError, sizeError];
2160
+ if (!valid) errors.push(...validateErrors ?? []);
2161
+ rejectedFiles.push({ file, errors: errors.filter(Boolean) });
2162
+ }
2163
+ });
2164
+ if (!isFilesWithinRange(ctx, acceptedFiles.length, currentAcceptedFiles)) {
2165
+ acceptedFiles.forEach((file) => {
2166
+ rejectedFiles.push({ file, errors: ["TOO_MANY_FILES"] });
2167
+ });
2168
+ acceptedFiles.splice(0);
2169
+ }
2170
+ return {
2171
+ acceptedFiles,
2172
+ rejectedFiles
2173
+ };
2174
+ }
2175
+ function setInputFiles(inputEl, files) {
2176
+ const win = getWindow(inputEl);
2177
+ try {
2178
+ if ("DataTransfer" in win) {
2179
+ const dataTransfer = new win.DataTransfer();
2180
+ files.forEach((file) => {
2181
+ dataTransfer.items.add(file);
2182
+ });
2183
+ inputEl.files = dataTransfer.files;
2184
+ }
2185
+ } catch {
2186
+ }
2187
+ }
2188
+ var machine = createMachine({
2189
+ props({ props: props2 }) {
2190
+ return {
2191
+ minFileSize: 0,
2192
+ maxFileSize: Number.POSITIVE_INFINITY,
2193
+ maxFiles: 1,
2194
+ allowDrop: true,
2195
+ preventDocumentDrop: true,
2196
+ defaultAcceptedFiles: [],
2197
+ ...props2,
2198
+ translations: {
2199
+ dropzone: "dropzone",
2200
+ itemPreview: (file) => `preview of ${file.name}`,
2201
+ deleteFile: (file) => `delete file ${file.name}`,
2202
+ ...props2.translations
2203
+ }
2204
+ };
2205
+ },
2206
+ initialState() {
2207
+ return "idle";
2208
+ },
2209
+ context({ prop, bindable, getContext }) {
2210
+ return {
2211
+ acceptedFiles: bindable(() => ({
2212
+ defaultValue: prop("defaultAcceptedFiles"),
2213
+ value: prop("acceptedFiles"),
2214
+ isEqual: (a, b) => a.length === b?.length && a.every((file, i) => isFileEqual(file, b[i])),
2215
+ hash(value) {
2216
+ return value.map((file) => `${file.name}-${file.size}`).join(",");
2217
+ },
2218
+ onChange(value) {
2219
+ const ctx = getContext();
2220
+ prop("onFileAccept")?.({ files: value });
2221
+ prop("onFileChange")?.({ acceptedFiles: value, rejectedFiles: ctx.get("rejectedFiles") });
2222
+ }
2223
+ })),
2224
+ rejectedFiles: bindable(() => ({
2225
+ defaultValue: [],
2226
+ isEqual: (a, b) => a.length === b?.length && a.every((file, i) => isFileEqual(file.file, b[i].file)),
2227
+ onChange(value) {
2228
+ const ctx = getContext();
2229
+ prop("onFileReject")?.({ files: value });
2230
+ prop("onFileChange")?.({ acceptedFiles: ctx.get("acceptedFiles"), rejectedFiles: value });
2231
+ }
2232
+ })),
2233
+ transforming: bindable(() => ({
2234
+ defaultValue: false
2235
+ }))
2236
+ };
2237
+ },
2238
+ computed: {
2239
+ acceptAttr: ({ prop }) => getAcceptAttrString(prop("accept")),
2240
+ multiple: ({ prop }) => prop("maxFiles") > 1
2241
+ },
2242
+ watch({ track, context, action }) {
2243
+ track([() => context.hash("acceptedFiles")], () => {
2244
+ action(["syncInputElement"]);
2245
+ });
2246
+ },
2247
+ on: {
2248
+ "FILES.SET": {
2249
+ actions: ["setFiles"]
2250
+ },
2251
+ "FILE.SELECT": {
2252
+ actions: ["setEventFiles"]
2253
+ },
2254
+ "FILE.DELETE": {
2255
+ actions: ["removeFile"]
2256
+ },
2257
+ "FILES.CLEAR": {
2258
+ actions: ["clearFiles"]
2259
+ },
2260
+ "REJECTED_FILES.CLEAR": {
2261
+ actions: ["clearRejectedFiles"]
2262
+ }
2263
+ },
2264
+ effects: ["preventDocumentDrop"],
2265
+ states: {
2266
+ idle: {
2267
+ on: {
2268
+ OPEN: {
2269
+ actions: ["openFilePicker"]
2270
+ },
2271
+ "DROPZONE.CLICK": {
2272
+ actions: ["openFilePicker"]
2273
+ },
2274
+ "DROPZONE.FOCUS": {
2275
+ target: "focused"
2276
+ },
2277
+ "DROPZONE.DRAG_OVER": {
2278
+ target: "dragging"
2279
+ }
2280
+ }
2281
+ },
2282
+ focused: {
2283
+ on: {
2284
+ "DROPZONE.BLUR": {
2285
+ target: "idle"
2286
+ },
2287
+ OPEN: {
2288
+ actions: ["openFilePicker"]
2289
+ },
2290
+ "DROPZONE.CLICK": {
2291
+ actions: ["openFilePicker"]
2292
+ },
2293
+ "DROPZONE.DRAG_OVER": {
2294
+ target: "dragging"
2295
+ }
2296
+ }
2297
+ },
2298
+ dragging: {
2299
+ on: {
2300
+ "DROPZONE.DROP": {
2301
+ target: "idle",
2302
+ actions: ["setEventFiles"]
2303
+ },
2304
+ "DROPZONE.DRAG_LEAVE": {
2305
+ target: "idle"
2306
+ }
2307
+ }
2308
+ }
2309
+ },
2310
+ implementations: {
2311
+ effects: {
2312
+ preventDocumentDrop({ prop, scope }) {
2313
+ if (!prop("preventDocumentDrop")) return;
2314
+ if (!prop("allowDrop")) return;
2315
+ if (prop("disabled")) return;
2316
+ const doc = scope.getDoc();
2317
+ const onDragOver = (event) => {
2318
+ event?.preventDefault();
2319
+ };
2320
+ const onDrop = (event) => {
2321
+ if (contains(getRootEl(scope), getEventTarget(event))) return;
2322
+ event.preventDefault();
2323
+ };
2324
+ return callAll(addDomEvent(doc, "dragover", onDragOver, false), addDomEvent(doc, "drop", onDrop, false));
2325
+ }
2326
+ },
2327
+ actions: {
2328
+ syncInputElement({ scope, context }) {
2329
+ queueMicrotask(() => {
2330
+ const inputEl = getHiddenInputEl(scope);
2331
+ if (!inputEl) return;
2332
+ setInputFiles(inputEl, context.get("acceptedFiles"));
2333
+ const win = scope.getWin();
2334
+ inputEl.dispatchEvent(new win.Event("change", { bubbles: true }));
2335
+ });
2336
+ },
2337
+ openFilePicker({ scope }) {
2338
+ raf(() => {
2339
+ getHiddenInputEl(scope)?.click();
2340
+ });
2341
+ },
2342
+ setFiles(params) {
2343
+ const { computed, context, event } = params;
2344
+ const { acceptedFiles, rejectedFiles } = getEventFiles(params, event.files);
2345
+ context.set(
2346
+ "acceptedFiles",
2347
+ computed("multiple") ? acceptedFiles : acceptedFiles.length > 0 ? [acceptedFiles[0]] : []
2348
+ );
2349
+ context.set("rejectedFiles", rejectedFiles);
2350
+ },
2351
+ setEventFiles(params) {
2352
+ const { computed, context, event, prop } = params;
2353
+ const currentAcceptedFiles = context.get("acceptedFiles");
2354
+ const currentRejectedFiles = context.get("rejectedFiles");
2355
+ const { acceptedFiles, rejectedFiles } = getEventFiles(
2356
+ params,
2357
+ event.files,
2358
+ currentAcceptedFiles,
2359
+ currentRejectedFiles
2360
+ );
2361
+ const set = (files) => {
2362
+ if (computed("multiple")) {
2363
+ context.set("acceptedFiles", (prev) => [...prev, ...files]);
2364
+ context.set("rejectedFiles", rejectedFiles);
2365
+ return;
2366
+ }
2367
+ if (files.length) {
2368
+ context.set("acceptedFiles", [files[0]]);
2369
+ context.set("rejectedFiles", rejectedFiles);
2370
+ return;
2371
+ }
2372
+ if (rejectedFiles.length) {
2373
+ context.set("acceptedFiles", context.get("acceptedFiles"));
2374
+ context.set("rejectedFiles", rejectedFiles);
2375
+ }
2376
+ };
2377
+ const transform = prop("transformFiles");
2378
+ if (transform) {
2379
+ context.set("transforming", true);
2380
+ transform(acceptedFiles).then(set).catch((err) => {
2381
+ warn(`[zag-js/file-upload] error transforming files
2382
+ ${err}`);
2383
+ }).finally(() => {
2384
+ context.set("transforming", false);
2385
+ });
2386
+ } else {
2387
+ set(acceptedFiles);
2388
+ }
2389
+ },
2390
+ removeFile({ context, event }) {
2391
+ if (event.itemType === "rejected") {
2392
+ const rejectedFiles = context.get("rejectedFiles").filter((item) => !isFileEqual(item.file, event.file));
2393
+ context.set("rejectedFiles", rejectedFiles);
2394
+ } else {
2395
+ const files = context.get("acceptedFiles").filter((file) => !isFileEqual(file, event.file));
2396
+ context.set("acceptedFiles", files);
2397
+ }
2398
+ },
2399
+ clearRejectedFiles({ context }) {
2400
+ context.set("rejectedFiles", []);
2401
+ },
2402
+ clearFiles({ context }) {
2403
+ context.set("acceptedFiles", []);
2404
+ context.set("rejectedFiles", []);
2405
+ }
2406
+ }
2407
+ }
2408
+ });
2409
+ var props = createProps()([
2410
+ "accept",
2411
+ "acceptedFiles",
2412
+ "allowDrop",
2413
+ "capture",
2414
+ "defaultAcceptedFiles",
2415
+ "dir",
2416
+ "directory",
2417
+ "disabled",
2418
+ "getRootNode",
2419
+ "id",
2420
+ "ids",
2421
+ "invalid",
2422
+ "locale",
2423
+ "maxFiles",
2424
+ "maxFileSize",
2425
+ "minFileSize",
2426
+ "name",
2427
+ "onFileAccept",
2428
+ "onFileChange",
2429
+ "onFileReject",
2430
+ "preventDocumentDrop",
2431
+ "required",
2432
+ "transformFiles",
2433
+ "translations",
2434
+ "validate"
2435
+ ]);
2436
+ var splitProps2 = createSplitProps(props);
2437
+ var itemProps = createProps()(["file", "type"]);
2438
+ var splitItemProps = createSplitProps(itemProps);
2439
+
2440
+ // src/recipes/file-upload.ts
2441
+ var file_upload_default = (0, import_dev25.defineSlotRecipe)({
2442
+ className: "file-upload",
2443
+ slots: anatomy2.extendWith("itemDetail").keys(),
2444
+ base: {
2445
+ root: {
2446
+ display: "flex",
2447
+ flexDirection: "column",
2448
+ alignItems: "start",
2449
+ gap: 4,
2450
+ textStyle: "std-16N-170"
2451
+ },
2452
+ dropzone: {
2453
+ display: "flex",
2454
+ flexDirection: "column",
2455
+ justifyContent: "space-between",
2456
+ width: "full",
2457
+ minHeight: "208px",
2458
+ bg: { base: "solid-gray.bg", _dragging: "green.50" },
2459
+ outlineStyle: "solid",
2460
+ outlineColor: {
2461
+ base: "solid-gray.536",
2462
+ _dragging: "success.1",
2463
+ _invalid: "error.1"
2464
+ },
2465
+ outlineWidth: { base: "1px", _dragging: "4px" },
2466
+ rounded: 8,
2467
+ pt: 8,
2468
+ pb: 6,
2469
+ pl: 7,
2470
+ pr: 8
2471
+ },
2472
+ trigger: {
2473
+ flexShrink: 0
2474
+ },
2475
+ label: {
2476
+ ...label_default.base,
2477
+ textStyle: "std-17B-170"
2478
+ },
2479
+ itemGroup: {
2480
+ display: "flex",
2481
+ flexDirection: "column",
2482
+ gap: 1,
2483
+ listStyle: "inside deciminal"
2484
+ },
2485
+ item: {
2486
+ display: "list-item",
2487
+ color: {
2488
+ base: "solid-gray.600",
2489
+ "[data-status=rejected]": "error.1",
2490
+ _marker: "solid-gray.600"
2491
+ },
2492
+ "& > *": {
2493
+ display: "inline",
2494
+ mr: { base: 2, _last: 0 }
2495
+ }
2496
+ },
2497
+ itemDetail: {
2498
+ color: { base: "solid-gray.600", "[data-status=rejected] &": "error.1" },
2499
+ borderLeftWidth: { base: "0px", "[data-status=rejected] &": "4px" },
2500
+ borderColor: "currentcolor",
2501
+ pl: { base: 0, "[data-status=rejected] &": 2 },
2502
+ display: "inline-block",
2503
+ verticalAlign: "text-top"
2504
+ },
2505
+ itemName: {
2506
+ textStyle: "std-16B-170",
2507
+ color: { base: "solid-gray.800", "[data-status=rejected] &": "error.1" }
2508
+ },
2509
+ itemDeleteTrigger: {
2510
+ ...link_default.base,
2511
+ cursor: "pointer"
2512
+ }
2513
+ }
2514
+ });
2515
+
2516
+ // src/recipes/hamburger-menu-button.ts
2517
+ var import_dev26 = require("@pandacss/dev");
2518
+ var hamburger_menu_button_default = (0, import_dev26.defineRecipe)({
1942
2519
  className: "hamburger-menu-button",
1943
2520
  base: {
1944
2521
  /**
@@ -1986,8 +2563,8 @@ var hamburger_menu_button_default = (0, import_dev25.defineRecipe)({
1986
2563
  });
1987
2564
 
1988
2565
  // src/recipes/legend.ts
1989
- var import_dev26 = require("@pandacss/dev");
1990
- var legend_default = (0, import_dev26.defineRecipe)({
2566
+ var import_dev27 = require("@pandacss/dev");
2567
+ var legend_default = (0, import_dev27.defineRecipe)({
1991
2568
  className: "legend",
1992
2569
  base: {
1993
2570
  /**
@@ -2027,8 +2604,8 @@ var legend_default = (0, import_dev26.defineRecipe)({
2027
2604
  });
2028
2605
 
2029
2606
  // src/recipes/list.ts
2030
- var import_dev27 = require("@pandacss/dev");
2031
- var list_default = (0, import_dev27.defineRecipe)({
2607
+ var import_dev28 = require("@pandacss/dev");
2608
+ var list_default = (0, import_dev28.defineRecipe)({
2032
2609
  className: "list",
2033
2610
  base: {
2034
2611
  /**
@@ -2039,12 +2616,12 @@ var list_default = (0, import_dev27.defineRecipe)({
2039
2616
  });
2040
2617
 
2041
2618
  // src/recipes/menu.ts
2042
- var import_dev29 = require("@pandacss/dev");
2619
+ var import_dev30 = require("@pandacss/dev");
2043
2620
  var import_menu = require("@zag-js/menu");
2044
2621
 
2045
2622
  // src/recipes/menu-item.ts
2046
- var import_dev28 = require("@pandacss/dev");
2047
- var menu_item_default = (0, import_dev28.defineRecipe)({
2623
+ var import_dev29 = require("@pandacss/dev");
2624
+ var menu_item_default = (0, import_dev29.defineRecipe)({
2048
2625
  className: "menu-item",
2049
2626
  base: {
2050
2627
  /**
@@ -2156,7 +2733,7 @@ var menu_item_default = (0, import_dev28.defineRecipe)({
2156
2733
  var itemStyle = {
2157
2734
  ...menu_item_default.base
2158
2735
  };
2159
- var menu_default = (0, import_dev29.defineSlotRecipe)({
2736
+ var menu_default = (0, import_dev30.defineSlotRecipe)({
2160
2737
  className: "menu",
2161
2738
  slots: import_menu.anatomy.keys(),
2162
2739
  base: {
@@ -2246,8 +2823,8 @@ var menu_default = (0, import_dev29.defineSlotRecipe)({
2246
2823
  });
2247
2824
 
2248
2825
  // src/recipes/menu-list.ts
2249
- var import_dev30 = require("@pandacss/dev");
2250
- var menu_list_default = (0, import_dev30.defineSlotRecipe)({
2826
+ var import_dev31 = require("@pandacss/dev");
2827
+ var menu_list_default = (0, import_dev31.defineSlotRecipe)({
2251
2828
  className: "menu-list",
2252
2829
  slots: menuListAnatomy.keys(),
2253
2830
  base: {
@@ -2312,8 +2889,8 @@ var menu_list_default = (0, import_dev30.defineSlotRecipe)({
2312
2889
  });
2313
2890
 
2314
2891
  // src/recipes/notification-banner.ts
2315
- var import_dev31 = require("@pandacss/dev");
2316
- var notification_banner_default = (0, import_dev31.defineSlotRecipe)({
2892
+ var import_dev32 = require("@pandacss/dev");
2893
+ var notification_banner_default = (0, import_dev32.defineSlotRecipe)({
2317
2894
  className: "notification-banner",
2318
2895
  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",
2319
2896
  slots: notificationBannerAnatomy.keys(),
@@ -2572,8 +3149,8 @@ var notification_banner_default = (0, import_dev31.defineSlotRecipe)({
2572
3149
  });
2573
3150
 
2574
3151
  // src/recipes/ordered-list.ts
2575
- var import_dev32 = require("@pandacss/dev");
2576
- var ordered_list_default = (0, import_dev32.defineRecipe)({
3152
+ var import_dev33 = require("@pandacss/dev");
3153
+ var ordered_list_default = (0, import_dev33.defineRecipe)({
2577
3154
  className: "ordered-list",
2578
3155
  base: {
2579
3156
  /**
@@ -2592,9 +3169,9 @@ var ordered_list_default = (0, import_dev32.defineRecipe)({
2592
3169
  });
2593
3170
 
2594
3171
  // src/recipes/progress.ts
2595
- var import_dev33 = require("@pandacss/dev");
3172
+ var import_dev34 = require("@pandacss/dev");
2596
3173
  var import_progress = require("@zag-js/progress");
2597
- var progress_default = (0, import_dev33.defineSlotRecipe)({
3174
+ var progress_default = (0, import_dev34.defineSlotRecipe)({
2598
3175
  className: "progress",
2599
3176
  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",
2600
3177
  slots: import_progress.anatomy.keys(),
@@ -2683,9 +3260,9 @@ var progress_default = (0, import_dev33.defineSlotRecipe)({
2683
3260
  });
2684
3261
 
2685
3262
  // src/recipes/radio-group.ts
2686
- var import_dev34 = require("@pandacss/dev");
3263
+ var import_dev35 = require("@pandacss/dev");
2687
3264
  var import_radio_group = require("@zag-js/radio-group");
2688
- var radio_group_default = (0, import_dev34.defineSlotRecipe)({
3265
+ var radio_group_default = (0, import_dev35.defineSlotRecipe)({
2689
3266
  className: "radio-group",
2690
3267
  slots: import_radio_group.anatomy.keys(),
2691
3268
  base: {
@@ -2958,8 +3535,8 @@ var radio_group_default = (0, import_dev34.defineSlotRecipe)({
2958
3535
  });
2959
3536
 
2960
3537
  // src/recipes/resource-list.ts
2961
- var import_dev35 = require("@pandacss/dev");
2962
- var resource_list_default = (0, import_dev35.defineSlotRecipe)({
3538
+ var import_dev36 = require("@pandacss/dev");
3539
+ var resource_list_default = (0, import_dev36.defineSlotRecipe)({
2963
3540
  className: "resource-list",
2964
3541
  slots: resourceListAnatomy.keys(),
2965
3542
  base: {
@@ -3057,9 +3634,9 @@ var resource_list_default = (0, import_dev35.defineSlotRecipe)({
3057
3634
  });
3058
3635
 
3059
3636
  // src/recipes/select.ts
3060
- var import_dev36 = require("@pandacss/dev");
3637
+ var import_dev37 = require("@pandacss/dev");
3061
3638
  var import_select = require("@zag-js/select");
3062
- var select_default = (0, import_dev36.defineSlotRecipe)({
3639
+ var select_default = (0, import_dev37.defineSlotRecipe)({
3063
3640
  className: "select",
3064
3641
  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",
3065
3642
  slots: import_select.anatomy.keys(),
@@ -3159,9 +3736,9 @@ var select_default = (0, import_dev36.defineSlotRecipe)({
3159
3736
  });
3160
3737
 
3161
3738
  // src/recipes/step-navigation.ts
3162
- var import_dev37 = require("@pandacss/dev");
3739
+ var import_dev38 = require("@pandacss/dev");
3163
3740
  var import_steps = require("@zag-js/steps");
3164
- var step_navigation_default = (0, import_dev37.defineSlotRecipe)({
3741
+ var step_navigation_default = (0, import_dev38.defineSlotRecipe)({
3165
3742
  className: "step-navigation",
3166
3743
  slots: import_steps.anatomy.extendWith("title", "description").keys(),
3167
3744
  base: {
@@ -3544,8 +4121,8 @@ var step_navigation_default = (0, import_dev37.defineSlotRecipe)({
3544
4121
  });
3545
4122
 
3546
4123
  // src/recipes/table.ts
3547
- var import_dev38 = require("@pandacss/dev");
3548
- var table_default = (0, import_dev38.defineSlotRecipe)({
4124
+ var import_dev39 = require("@pandacss/dev");
4125
+ var table_default = (0, import_dev39.defineSlotRecipe)({
3549
4126
  className: "table",
3550
4127
  slots: tableAnatomy.keys(),
3551
4128
  base: {
@@ -3684,9 +4261,9 @@ var table_default = (0, import_dev38.defineSlotRecipe)({
3684
4261
  });
3685
4262
 
3686
4263
  // src/recipes/tabs.ts
3687
- var import_dev39 = require("@pandacss/dev");
4264
+ var import_dev40 = require("@pandacss/dev");
3688
4265
  var import_tabs = require("@zag-js/tabs");
3689
- var tabs_default = (0, import_dev39.defineSlotRecipe)({
4266
+ var tabs_default = (0, import_dev40.defineSlotRecipe)({
3690
4267
  className: "tabs",
3691
4268
  slots: import_tabs.anatomy.keys(),
3692
4269
  base: {
@@ -3775,9 +4352,9 @@ var tabs_default = (0, import_dev39.defineSlotRecipe)({
3775
4352
  });
3776
4353
 
3777
4354
  // src/recipes/tree-view.ts
3778
- var import_dev40 = require("@pandacss/dev");
4355
+ var import_dev41 = require("@pandacss/dev");
3779
4356
  var import_tree_view = require("@zag-js/tree-view");
3780
- var tree_view_default = (0, import_dev40.defineSlotRecipe)({
4357
+ var tree_view_default = (0, import_dev41.defineSlotRecipe)({
3781
4358
  className: "tree-view",
3782
4359
  slots: import_tree_view.anatomy.keys(),
3783
4360
  base: {
@@ -3893,8 +4470,8 @@ var tree_view_default = (0, import_dev40.defineSlotRecipe)({
3893
4470
  });
3894
4471
 
3895
4472
  // src/recipes/unordered-list.ts
3896
- var import_dev41 = require("@pandacss/dev");
3897
- var unordered_list_default = (0, import_dev41.defineRecipe)({
4473
+ var import_dev42 = require("@pandacss/dev");
4474
+ var unordered_list_default = (0, import_dev42.defineRecipe)({
3898
4475
  className: "unordered-list",
3899
4476
  base: {
3900
4477
  /**
@@ -3913,8 +4490,8 @@ var unordered_list_default = (0, import_dev41.defineRecipe)({
3913
4490
  });
3914
4491
 
3915
4492
  // src/recipes/utility-link.ts
3916
- var import_dev42 = require("@pandacss/dev");
3917
- var utility_link_default = (0, import_dev42.defineRecipe)({
4493
+ var import_dev43 = require("@pandacss/dev");
4494
+ var utility_link_default = (0, import_dev43.defineRecipe)({
3918
4495
  className: "utility-link",
3919
4496
  description: "\u30E6\u30FC\u30C6\u30A3\u30EA\u30C6\u30A3\u30EA\u30F3\u30AF\u306F\u3075\u3064\u3046\u306E\u6A2A\u4E26\u3073\u30EA\u30F3\u30AF\u30EA\u30B9\u30C8\u306B\u8FD1\u3044\u304C\u3001\u305D\u308C\u3088\u308A\u3082\u30B3\u30F3\u30D1\u30AF\u30C8\u306B\u4F5C\u3089\u308C\u3066\u3044\u307E\u3059\u3002",
3920
4497
  base: {
@@ -3985,6 +4562,7 @@ var recipes = {
3985
4562
  errorText: error_text_default,
3986
4563
  field: field_default,
3987
4564
  fieldset: fieldset_default,
4565
+ fileUpload: file_upload_default,
3988
4566
  hamburgerMenuButton: hamburger_menu_button_default,
3989
4567
  input: input_default,
3990
4568
  label: label_default,
@@ -4049,8 +4627,8 @@ var base = {
4049
4627
  recipes: recipes_default
4050
4628
  }
4051
4629
  };
4052
- var index_default = (0, import_dev43.definePreset)(base);
4053
- var createPreset = (keyColor) => (0, import_dev43.definePreset)({
4630
+ var index_default = (0, import_dev44.definePreset)(base);
4631
+ var createPreset = (keyColor) => (0, import_dev44.definePreset)({
4054
4632
  ...base,
4055
4633
  theme: {
4056
4634
  ...base.theme,