@medialane/ui 0.130.1 → 0.132.0

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 (33) hide show
  1. package/dist/components/drop-item-list.cjs +118 -0
  2. package/dist/components/drop-item-list.cjs.map +1 -0
  3. package/dist/components/drop-item-list.d.cts +19 -0
  4. package/dist/components/drop-item-list.d.ts +19 -0
  5. package/dist/components/drop-item-list.js +84 -0
  6. package/dist/components/drop-item-list.js.map +1 -0
  7. package/dist/components/sheet.d.cts +1 -1
  8. package/dist/components/sheet.d.ts +1 -1
  9. package/dist/data/drop-create-schema.cjs +85 -0
  10. package/dist/data/drop-create-schema.cjs.map +1 -0
  11. package/dist/data/drop-create-schema.d.cts +111 -0
  12. package/dist/data/drop-create-schema.d.ts +111 -0
  13. package/dist/data/drop-create-schema.js +51 -0
  14. package/dist/data/drop-create-schema.js.map +1 -0
  15. package/dist/index.cjs +18 -0
  16. package/dist/index.cjs.map +1 -1
  17. package/dist/index.d.cts +5 -0
  18. package/dist/index.d.ts +5 -0
  19. package/dist/index.js +11 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/utils/launchpad-defaults.cjs +85 -0
  22. package/dist/utils/launchpad-defaults.cjs.map +1 -0
  23. package/dist/utils/launchpad-defaults.d.cts +13 -0
  24. package/dist/utils/launchpad-defaults.d.ts +13 -0
  25. package/dist/utils/launchpad-defaults.js +59 -0
  26. package/dist/utils/launchpad-defaults.js.map +1 -0
  27. package/dist/utils/use-usd-prices.cjs +65 -0
  28. package/dist/utils/use-usd-prices.cjs.map +1 -0
  29. package/dist/utils/use-usd-prices.d.cts +11 -0
  30. package/dist/utils/use-usd-prices.d.ts +11 -0
  31. package/dist/utils/use-usd-prices.js +30 -0
  32. package/dist/utils/use-usd-prices.js.map +1 -0
  33. package/package.json +5 -3
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ "use client";
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var drop_item_list_exports = {};
31
+ __export(drop_item_list_exports, {
32
+ DropItemList: () => DropItemList
33
+ });
34
+ module.exports = __toCommonJS(drop_item_list_exports);
35
+ var import_jsx_runtime = require("react/jsx-runtime");
36
+ var import_image = __toESM(require("./image.js"), 1);
37
+ var import_react = require("react");
38
+ var import_lucide_react = require("lucide-react");
39
+ var import_button = require("./button.js");
40
+ var import_input = require("./input.js");
41
+ function DropItemList({ items, collectionName, onAddFiles, onRemove, onEdit }) {
42
+ const inputRef = (0, import_react.useRef)(null);
43
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "space-y-3", children: [
44
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center justify-between", children: [
45
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("p", { className: "text-sm font-medium", children: [
46
+ "Items ",
47
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: "text-muted-foreground font-normal", children: [
48
+ "(",
49
+ items.length,
50
+ ")"
51
+ ] })
52
+ ] }),
53
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
54
+ "input",
55
+ {
56
+ ref: inputRef,
57
+ type: "file",
58
+ accept: "image/*",
59
+ multiple: true,
60
+ className: "hidden",
61
+ onChange: (e) => {
62
+ const f = Array.from(e.target.files ?? []);
63
+ if (f.length) onAddFiles(f);
64
+ e.target.value = "";
65
+ }
66
+ }
67
+ ),
68
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_button.Button, { type: "button", variant: "outline", size: "sm", onClick: () => inputRef.current?.click(), children: [
69
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.ImagePlus, { className: "h-3.5 w-3.5 mr-1.5" }),
70
+ " Add images"
71
+ ] })
72
+ ] }),
73
+ items.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "bento-cell border-dashed p-10 text-center text-sm text-muted-foreground", children: "Drag in your artwork \u2014 each image becomes a unique, licensed token. Supply = number of items." }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "space-y-2", children: items.map((it, i) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex gap-3 items-start bento-cell p-3", children: [
74
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "relative h-16 w-16 rounded-lg overflow-hidden bg-muted shrink-0", children: [
75
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_image.default, { src: it.previewUrl, alt: it.name || `Item ${i + 1}`, fill: true, className: "object-cover", unoptimized: true }),
76
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: "absolute bottom-0 left-0 text-[9px] font-bold bg-black/60 text-white px-1", children: [
77
+ "#",
78
+ i + 1
79
+ ] })
80
+ ] }),
81
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex-1 space-y-1.5", children: [
82
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
83
+ import_input.Input,
84
+ {
85
+ value: it.name,
86
+ onChange: (e) => onEdit(it.id, { name: e.target.value }),
87
+ placeholder: `${collectionName || "Item"} #${i + 1}`,
88
+ className: "h-8 text-sm"
89
+ }
90
+ ),
91
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
92
+ import_input.Input,
93
+ {
94
+ value: it.description,
95
+ onChange: (e) => onEdit(it.id, { description: e.target.value }),
96
+ placeholder: "Description (optional)",
97
+ className: "h-8 text-xs"
98
+ }
99
+ )
100
+ ] }),
101
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
102
+ "button",
103
+ {
104
+ type: "button",
105
+ onClick: () => onRemove(it.id),
106
+ className: "text-muted-foreground hover:text-destructive p-1",
107
+ "aria-label": "Remove item",
108
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.X, { className: "h-4 w-4" })
109
+ }
110
+ )
111
+ ] }, it.id)) })
112
+ ] });
113
+ }
114
+ // Annotate the CommonJS export names for ESM import in node:
115
+ 0 && (module.exports = {
116
+ DropItemList
117
+ });
118
+ //# sourceMappingURL=drop-item-list.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/drop-item-list.tsx"],"sourcesContent":["\"use client\";\n\nimport Image from \"./image.js\";\nimport { useRef } from \"react\";\nimport { ImagePlus, X } from \"lucide-react\";\nimport { Button } from \"./button.js\";\nimport { Input } from \"./input.js\";\n\nexport interface DraftItem {\n id: string;\n file: File;\n previewUrl: string;\n name: string;\n description: string;\n}\n\ninterface DropItemListProps {\n items: DraftItem[];\n collectionName: string;\n onAddFiles: (files: File[]) => void;\n onRemove: (id: string) => void;\n onEdit: (id: string, patch: Partial<Pick<DraftItem, \"name\" | \"description\">>) => void;\n}\n\nexport function DropItemList({ items, collectionName, onAddFiles, onRemove, onEdit }: DropItemListProps) {\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n return (\n <div className=\"space-y-3\">\n <div className=\"flex items-center justify-between\">\n <p className=\"text-sm font-medium\">\n Items <span className=\"text-muted-foreground font-normal\">({items.length})</span>\n </p>\n <input\n ref={inputRef}\n type=\"file\"\n accept=\"image/*\"\n multiple\n className=\"hidden\"\n onChange={(e) => {\n const f = Array.from(e.target.files ?? []);\n if (f.length) onAddFiles(f);\n e.target.value = \"\";\n }}\n />\n <Button type=\"button\" variant=\"outline\" size=\"sm\" onClick={() => inputRef.current?.click()}>\n <ImagePlus className=\"h-3.5 w-3.5 mr-1.5\" /> Add images\n </Button>\n </div>\n\n {items.length === 0 ? (\n <div className=\"bento-cell border-dashed p-10 text-center text-sm text-muted-foreground\">\n Drag in your artwork — each image becomes a unique, licensed token. Supply = number of items.\n </div>\n ) : (\n <div className=\"space-y-2\">\n {items.map((it, i) => (\n <div key={it.id} className=\"flex gap-3 items-start bento-cell p-3\">\n <div className=\"relative h-16 w-16 rounded-lg overflow-hidden bg-muted shrink-0\">\n <Image src={it.previewUrl} alt={it.name || `Item ${i + 1}`} fill className=\"object-cover\" unoptimized />\n <span className=\"absolute bottom-0 left-0 text-[9px] font-bold bg-black/60 text-white px-1\">#{i + 1}</span>\n </div>\n <div className=\"flex-1 space-y-1.5\">\n <Input\n value={it.name}\n onChange={(e) => onEdit(it.id, { name: e.target.value })}\n placeholder={`${collectionName || \"Item\"} #${i + 1}`}\n className=\"h-8 text-sm\"\n />\n <Input\n value={it.description}\n onChange={(e) => onEdit(it.id, { description: e.target.value })}\n placeholder=\"Description (optional)\"\n className=\"h-8 text-xs\"\n />\n </div>\n <button\n type=\"button\"\n onClick={() => onRemove(it.id)}\n className=\"text-muted-foreground hover:text-destructive p-1\"\n aria-label=\"Remove item\"\n >\n <X className=\"h-4 w-4\" />\n </button>\n </div>\n ))}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AA+BgB;AA7BhB,mBAAkB;AAClB,mBAAuB;AACvB,0BAA6B;AAC7B,oBAAuB;AACvB,mBAAsB;AAkBf,SAAS,aAAa,EAAE,OAAO,gBAAgB,YAAY,UAAU,OAAO,GAAsB;AACvG,QAAM,eAAW,qBAAgC,IAAI;AAErD,SACE,6CAAC,SAAI,WAAU,aACb;AAAA,iDAAC,SAAI,WAAU,qCACb;AAAA,mDAAC,OAAE,WAAU,uBAAsB;AAAA;AAAA,QAC3B,6CAAC,UAAK,WAAU,qCAAoC;AAAA;AAAA,UAAE,MAAM;AAAA,UAAO;AAAA,WAAC;AAAA,SAC5E;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,KAAK;AAAA,UACL,MAAK;AAAA,UACL,QAAO;AAAA,UACP,UAAQ;AAAA,UACR,WAAU;AAAA,UACV,UAAU,CAAC,MAAM;AACf,kBAAM,IAAI,MAAM,KAAK,EAAE,OAAO,SAAS,CAAC,CAAC;AACzC,gBAAI,EAAE,OAAQ,YAAW,CAAC;AAC1B,cAAE,OAAO,QAAQ;AAAA,UACnB;AAAA;AAAA,MACF;AAAA,MACA,6CAAC,wBAAO,MAAK,UAAS,SAAQ,WAAU,MAAK,MAAK,SAAS,MAAM,SAAS,SAAS,MAAM,GACvF;AAAA,oDAAC,iCAAU,WAAU,sBAAqB;AAAA,QAAE;AAAA,SAC9C;AAAA,OACF;AAAA,IAEC,MAAM,WAAW,IAChB,4CAAC,SAAI,WAAU,2EAA0E,gHAEzF,IAEA,4CAAC,SAAI,WAAU,aACZ,gBAAM,IAAI,CAAC,IAAI,MACd,6CAAC,SAAgB,WAAU,yCACzB;AAAA,mDAAC,SAAI,WAAU,mEACb;AAAA,oDAAC,aAAAA,SAAA,EAAM,KAAK,GAAG,YAAY,KAAK,GAAG,QAAQ,QAAQ,IAAI,CAAC,IAAI,MAAI,MAAC,WAAU,gBAAe,aAAW,MAAC;AAAA,QACtG,6CAAC,UAAK,WAAU,6EAA4E;AAAA;AAAA,UAAE,IAAI;AAAA,WAAE;AAAA,SACtG;AAAA,MACA,6CAAC,SAAI,WAAU,sBACb;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,OAAO,GAAG;AAAA,YACV,UAAU,CAAC,MAAM,OAAO,GAAG,IAAI,EAAE,MAAM,EAAE,OAAO,MAAM,CAAC;AAAA,YACvD,aAAa,GAAG,kBAAkB,MAAM,KAAK,IAAI,CAAC;AAAA,YAClD,WAAU;AAAA;AAAA,QACZ;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,OAAO,GAAG;AAAA,YACV,UAAU,CAAC,MAAM,OAAO,GAAG,IAAI,EAAE,aAAa,EAAE,OAAO,MAAM,CAAC;AAAA,YAC9D,aAAY;AAAA,YACZ,WAAU;AAAA;AAAA,QACZ;AAAA,SACF;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,SAAS,MAAM,SAAS,GAAG,EAAE;AAAA,UAC7B,WAAU;AAAA,UACV,cAAW;AAAA,UAEX,sDAAC,yBAAE,WAAU,WAAU;AAAA;AAAA,MACzB;AAAA,SA1BQ,GAAG,EA2Bb,CACD,GACH;AAAA,KAEJ;AAEJ;","names":["Image"]}
@@ -0,0 +1,19 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ interface DraftItem {
4
+ id: string;
5
+ file: File;
6
+ previewUrl: string;
7
+ name: string;
8
+ description: string;
9
+ }
10
+ interface DropItemListProps {
11
+ items: DraftItem[];
12
+ collectionName: string;
13
+ onAddFiles: (files: File[]) => void;
14
+ onRemove: (id: string) => void;
15
+ onEdit: (id: string, patch: Partial<Pick<DraftItem, "name" | "description">>) => void;
16
+ }
17
+ declare function DropItemList({ items, collectionName, onAddFiles, onRemove, onEdit }: DropItemListProps): react_jsx_runtime.JSX.Element;
18
+
19
+ export { type DraftItem, DropItemList };
@@ -0,0 +1,19 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ interface DraftItem {
4
+ id: string;
5
+ file: File;
6
+ previewUrl: string;
7
+ name: string;
8
+ description: string;
9
+ }
10
+ interface DropItemListProps {
11
+ items: DraftItem[];
12
+ collectionName: string;
13
+ onAddFiles: (files: File[]) => void;
14
+ onRemove: (id: string) => void;
15
+ onEdit: (id: string, patch: Partial<Pick<DraftItem, "name" | "description">>) => void;
16
+ }
17
+ declare function DropItemList({ items, collectionName, onAddFiles, onRemove, onEdit }: DropItemListProps): react_jsx_runtime.JSX.Element;
18
+
19
+ export { type DraftItem, DropItemList };
@@ -0,0 +1,84 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import Image from "./image.js";
4
+ import { useRef } from "react";
5
+ import { ImagePlus, X } from "lucide-react";
6
+ import { Button } from "./button.js";
7
+ import { Input } from "./input.js";
8
+ function DropItemList({ items, collectionName, onAddFiles, onRemove, onEdit }) {
9
+ const inputRef = useRef(null);
10
+ return /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
11
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
12
+ /* @__PURE__ */ jsxs("p", { className: "text-sm font-medium", children: [
13
+ "Items ",
14
+ /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground font-normal", children: [
15
+ "(",
16
+ items.length,
17
+ ")"
18
+ ] })
19
+ ] }),
20
+ /* @__PURE__ */ jsx(
21
+ "input",
22
+ {
23
+ ref: inputRef,
24
+ type: "file",
25
+ accept: "image/*",
26
+ multiple: true,
27
+ className: "hidden",
28
+ onChange: (e) => {
29
+ const f = Array.from(e.target.files ?? []);
30
+ if (f.length) onAddFiles(f);
31
+ e.target.value = "";
32
+ }
33
+ }
34
+ ),
35
+ /* @__PURE__ */ jsxs(Button, { type: "button", variant: "outline", size: "sm", onClick: () => inputRef.current?.click(), children: [
36
+ /* @__PURE__ */ jsx(ImagePlus, { className: "h-3.5 w-3.5 mr-1.5" }),
37
+ " Add images"
38
+ ] })
39
+ ] }),
40
+ items.length === 0 ? /* @__PURE__ */ jsx("div", { className: "bento-cell border-dashed p-10 text-center text-sm text-muted-foreground", children: "Drag in your artwork \u2014 each image becomes a unique, licensed token. Supply = number of items." }) : /* @__PURE__ */ jsx("div", { className: "space-y-2", children: items.map((it, i) => /* @__PURE__ */ jsxs("div", { className: "flex gap-3 items-start bento-cell p-3", children: [
41
+ /* @__PURE__ */ jsxs("div", { className: "relative h-16 w-16 rounded-lg overflow-hidden bg-muted shrink-0", children: [
42
+ /* @__PURE__ */ jsx(Image, { src: it.previewUrl, alt: it.name || `Item ${i + 1}`, fill: true, className: "object-cover", unoptimized: true }),
43
+ /* @__PURE__ */ jsxs("span", { className: "absolute bottom-0 left-0 text-[9px] font-bold bg-black/60 text-white px-1", children: [
44
+ "#",
45
+ i + 1
46
+ ] })
47
+ ] }),
48
+ /* @__PURE__ */ jsxs("div", { className: "flex-1 space-y-1.5", children: [
49
+ /* @__PURE__ */ jsx(
50
+ Input,
51
+ {
52
+ value: it.name,
53
+ onChange: (e) => onEdit(it.id, { name: e.target.value }),
54
+ placeholder: `${collectionName || "Item"} #${i + 1}`,
55
+ className: "h-8 text-sm"
56
+ }
57
+ ),
58
+ /* @__PURE__ */ jsx(
59
+ Input,
60
+ {
61
+ value: it.description,
62
+ onChange: (e) => onEdit(it.id, { description: e.target.value }),
63
+ placeholder: "Description (optional)",
64
+ className: "h-8 text-xs"
65
+ }
66
+ )
67
+ ] }),
68
+ /* @__PURE__ */ jsx(
69
+ "button",
70
+ {
71
+ type: "button",
72
+ onClick: () => onRemove(it.id),
73
+ className: "text-muted-foreground hover:text-destructive p-1",
74
+ "aria-label": "Remove item",
75
+ children: /* @__PURE__ */ jsx(X, { className: "h-4 w-4" })
76
+ }
77
+ )
78
+ ] }, it.id)) })
79
+ ] });
80
+ }
81
+ export {
82
+ DropItemList
83
+ };
84
+ //# sourceMappingURL=drop-item-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/components/drop-item-list.tsx"],"sourcesContent":["\"use client\";\n\nimport Image from \"./image.js\";\nimport { useRef } from \"react\";\nimport { ImagePlus, X } from \"lucide-react\";\nimport { Button } from \"./button.js\";\nimport { Input } from \"./input.js\";\n\nexport interface DraftItem {\n id: string;\n file: File;\n previewUrl: string;\n name: string;\n description: string;\n}\n\ninterface DropItemListProps {\n items: DraftItem[];\n collectionName: string;\n onAddFiles: (files: File[]) => void;\n onRemove: (id: string) => void;\n onEdit: (id: string, patch: Partial<Pick<DraftItem, \"name\" | \"description\">>) => void;\n}\n\nexport function DropItemList({ items, collectionName, onAddFiles, onRemove, onEdit }: DropItemListProps) {\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n return (\n <div className=\"space-y-3\">\n <div className=\"flex items-center justify-between\">\n <p className=\"text-sm font-medium\">\n Items <span className=\"text-muted-foreground font-normal\">({items.length})</span>\n </p>\n <input\n ref={inputRef}\n type=\"file\"\n accept=\"image/*\"\n multiple\n className=\"hidden\"\n onChange={(e) => {\n const f = Array.from(e.target.files ?? []);\n if (f.length) onAddFiles(f);\n e.target.value = \"\";\n }}\n />\n <Button type=\"button\" variant=\"outline\" size=\"sm\" onClick={() => inputRef.current?.click()}>\n <ImagePlus className=\"h-3.5 w-3.5 mr-1.5\" /> Add images\n </Button>\n </div>\n\n {items.length === 0 ? (\n <div className=\"bento-cell border-dashed p-10 text-center text-sm text-muted-foreground\">\n Drag in your artwork — each image becomes a unique, licensed token. Supply = number of items.\n </div>\n ) : (\n <div className=\"space-y-2\">\n {items.map((it, i) => (\n <div key={it.id} className=\"flex gap-3 items-start bento-cell p-3\">\n <div className=\"relative h-16 w-16 rounded-lg overflow-hidden bg-muted shrink-0\">\n <Image src={it.previewUrl} alt={it.name || `Item ${i + 1}`} fill className=\"object-cover\" unoptimized />\n <span className=\"absolute bottom-0 left-0 text-[9px] font-bold bg-black/60 text-white px-1\">#{i + 1}</span>\n </div>\n <div className=\"flex-1 space-y-1.5\">\n <Input\n value={it.name}\n onChange={(e) => onEdit(it.id, { name: e.target.value })}\n placeholder={`${collectionName || \"Item\"} #${i + 1}`}\n className=\"h-8 text-sm\"\n />\n <Input\n value={it.description}\n onChange={(e) => onEdit(it.id, { description: e.target.value })}\n placeholder=\"Description (optional)\"\n className=\"h-8 text-xs\"\n />\n </div>\n <button\n type=\"button\"\n onClick={() => onRemove(it.id)}\n className=\"text-muted-foreground hover:text-destructive p-1\"\n aria-label=\"Remove item\"\n >\n <X className=\"h-4 w-4\" />\n </button>\n </div>\n ))}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":";AA+BgB,SAER,KAFQ;AA7BhB,OAAO,WAAW;AAClB,SAAS,cAAc;AACvB,SAAS,WAAW,SAAS;AAC7B,SAAS,cAAc;AACvB,SAAS,aAAa;AAkBf,SAAS,aAAa,EAAE,OAAO,gBAAgB,YAAY,UAAU,OAAO,GAAsB;AACvG,QAAM,WAAW,OAAgC,IAAI;AAErD,SACE,qBAAC,SAAI,WAAU,aACb;AAAA,yBAAC,SAAI,WAAU,qCACb;AAAA,2BAAC,OAAE,WAAU,uBAAsB;AAAA;AAAA,QAC3B,qBAAC,UAAK,WAAU,qCAAoC;AAAA;AAAA,UAAE,MAAM;AAAA,UAAO;AAAA,WAAC;AAAA,SAC5E;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,KAAK;AAAA,UACL,MAAK;AAAA,UACL,QAAO;AAAA,UACP,UAAQ;AAAA,UACR,WAAU;AAAA,UACV,UAAU,CAAC,MAAM;AACf,kBAAM,IAAI,MAAM,KAAK,EAAE,OAAO,SAAS,CAAC,CAAC;AACzC,gBAAI,EAAE,OAAQ,YAAW,CAAC;AAC1B,cAAE,OAAO,QAAQ;AAAA,UACnB;AAAA;AAAA,MACF;AAAA,MACA,qBAAC,UAAO,MAAK,UAAS,SAAQ,WAAU,MAAK,MAAK,SAAS,MAAM,SAAS,SAAS,MAAM,GACvF;AAAA,4BAAC,aAAU,WAAU,sBAAqB;AAAA,QAAE;AAAA,SAC9C;AAAA,OACF;AAAA,IAEC,MAAM,WAAW,IAChB,oBAAC,SAAI,WAAU,2EAA0E,gHAEzF,IAEA,oBAAC,SAAI,WAAU,aACZ,gBAAM,IAAI,CAAC,IAAI,MACd,qBAAC,SAAgB,WAAU,yCACzB;AAAA,2BAAC,SAAI,WAAU,mEACb;AAAA,4BAAC,SAAM,KAAK,GAAG,YAAY,KAAK,GAAG,QAAQ,QAAQ,IAAI,CAAC,IAAI,MAAI,MAAC,WAAU,gBAAe,aAAW,MAAC;AAAA,QACtG,qBAAC,UAAK,WAAU,6EAA4E;AAAA;AAAA,UAAE,IAAI;AAAA,WAAE;AAAA,SACtG;AAAA,MACA,qBAAC,SAAI,WAAU,sBACb;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,OAAO,GAAG;AAAA,YACV,UAAU,CAAC,MAAM,OAAO,GAAG,IAAI,EAAE,MAAM,EAAE,OAAO,MAAM,CAAC;AAAA,YACvD,aAAa,GAAG,kBAAkB,MAAM,KAAK,IAAI,CAAC;AAAA,YAClD,WAAU;AAAA;AAAA,QACZ;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,OAAO,GAAG;AAAA,YACV,UAAU,CAAC,MAAM,OAAO,GAAG,IAAI,EAAE,aAAa,EAAE,OAAO,MAAM,CAAC;AAAA,YAC9D,aAAY;AAAA,YACZ,WAAU;AAAA;AAAA,QACZ;AAAA,SACF;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,SAAS,MAAM,SAAS,GAAG,EAAE;AAAA,UAC7B,WAAU;AAAA,UACV,cAAW;AAAA,UAEX,8BAAC,KAAE,WAAU,WAAU;AAAA;AAAA,MACzB;AAAA,SA1BQ,GAAG,EA2Bb,CACD,GACH;AAAA,KAEJ;AAEJ;","names":[]}
@@ -10,7 +10,7 @@ declare const SheetClose: React.ForwardRefExoticComponent<SheetPrimitive.DialogC
10
10
  declare const SheetPortal: React.FC<SheetPrimitive.DialogPortalProps>;
11
11
  declare const SheetOverlay: React.ForwardRefExoticComponent<Omit<SheetPrimitive.DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
12
12
  declare const sheetVariants: (props?: ({
13
- side?: "top" | "right" | "bottom" | "left" | null | undefined;
13
+ side?: "bottom" | "left" | "right" | "top" | null | undefined;
14
14
  } & class_variance_authority_types.ClassProp) | undefined) => string;
15
15
  interface SheetContentProps extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>, VariantProps<typeof sheetVariants> {
16
16
  overlayClassName?: string;
@@ -10,7 +10,7 @@ declare const SheetClose: React.ForwardRefExoticComponent<SheetPrimitive.DialogC
10
10
  declare const SheetPortal: React.FC<SheetPrimitive.DialogPortalProps>;
11
11
  declare const SheetOverlay: React.ForwardRefExoticComponent<Omit<SheetPrimitive.DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
12
12
  declare const sheetVariants: (props?: ({
13
- side?: "top" | "right" | "bottom" | "left" | null | undefined;
13
+ side?: "bottom" | "left" | "right" | "top" | null | undefined;
14
14
  } & class_variance_authority_types.ClassProp) | undefined) => string;
15
15
  interface SheetContentProps extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>, VariantProps<typeof sheetVariants> {
16
16
  overlayClassName?: string;
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ "use client";
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var drop_create_schema_exports = {};
31
+ __export(drop_create_schema_exports, {
32
+ dropCreateSchema: () => dropCreateSchema
33
+ });
34
+ module.exports = __toCommonJS(drop_create_schema_exports);
35
+ var z = __toESM(require("zod"), 1);
36
+ var import_ip = require("./ip.js");
37
+ function parseDateTime(date, time) {
38
+ const t = (/* @__PURE__ */ new Date(`${date}T${time}:00`)).getTime();
39
+ return Number.isNaN(t) ? null : t;
40
+ }
41
+ const dropCreateSchema = z.object({
42
+ name: z.string().min(1, "Collection name required").max(100),
43
+ symbol: z.string().min(1, "Symbol required").max(10).regex(/^[A-Z0-9]+$/, "Uppercase letters and numbers only"),
44
+ ipType: z.enum(import_ip.IP_TYPES),
45
+ licenseType: z.string().min(1, "License required"),
46
+ commercialUse: z.string().default(""),
47
+ derivatives: z.string().default(""),
48
+ attribution: z.string().default(""),
49
+ geographicScope: z.string().default("Worldwide"),
50
+ aiPolicy: z.string().default(""),
51
+ royalty: z.coerce.number().min(0).max(50).default(0),
52
+ descriptionTemplate: z.string().max(500).optional(),
53
+ priceAmount: z.string().default("").refine((v) => v === "" || !Number.isNaN(Number(v)), "Enter a valid price").refine((v) => v === "" || Number(v) >= 0, "Price must be zero or greater"),
54
+ paymentToken: z.string(),
55
+ startDate: z.string().min(1, "Start date required"),
56
+ startTime: z.string().default("00:00"),
57
+ endDate: z.string().min(1, "End date required"),
58
+ endTime: z.string().default("23:59"),
59
+ maxPerWallet: z.string().regex(/^\d+$/, "Must be a positive integer").refine((v) => parseInt(v, 10) >= 1, "Minimum 1").default("1"),
60
+ whitelistEnabled: z.boolean().default(false),
61
+ allowlistAddresses: z.string().default("")
62
+ }).superRefine((values, ctx) => {
63
+ const start = parseDateTime(values.startDate, values.startTime);
64
+ const end = parseDateTime(values.endDate, values.endTime);
65
+ if (start === null) {
66
+ ctx.addIssue({ code: z.ZodIssueCode.custom, path: ["startDate"], message: "Enter a valid start date and time" });
67
+ }
68
+ if (end === null) {
69
+ ctx.addIssue({ code: z.ZodIssueCode.custom, path: ["endDate"], message: "Enter a valid end date and time" });
70
+ }
71
+ if (start !== null && end !== null && end <= start) {
72
+ ctx.addIssue({ code: z.ZodIssueCode.custom, path: ["endDate"], message: "End time must be after the start time" });
73
+ }
74
+ if (values.whitelistEnabled) {
75
+ const addrs = values.allowlistAddresses.split(/[\n,\s]+/).map((a) => a.trim()).filter(Boolean);
76
+ if (addrs.length === 0) {
77
+ ctx.addIssue({ code: z.ZodIssueCode.custom, path: ["allowlistAddresses"], message: "Add at least one address, or turn the whitelist off" });
78
+ }
79
+ }
80
+ });
81
+ // Annotate the CommonJS export names for ESM import in node:
82
+ 0 && (module.exports = {
83
+ dropCreateSchema
84
+ });
85
+ //# sourceMappingURL=drop-create-schema.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/data/drop-create-schema.ts"],"sourcesContent":["\"use client\";\n\nimport * as z from \"zod\";\nimport { IP_TYPES } from \"./ip.js\";\n\nfunction parseDateTime(date: string, time: string): number | null {\n const t = new Date(`${date}T${time}:00`).getTime();\n return Number.isNaN(t) ? null : t;\n}\n\nexport const dropCreateSchema = z\n .object({\n name: z.string().min(1, \"Collection name required\").max(100),\n symbol: z\n .string()\n .min(1, \"Symbol required\")\n .max(10)\n .regex(/^[A-Z0-9]+$/, \"Uppercase letters and numbers only\"),\n\n ipType: z.enum(IP_TYPES),\n licenseType: z.string().min(1, \"License required\"),\n commercialUse: z.string().default(\"\"),\n derivatives: z.string().default(\"\"),\n attribution: z.string().default(\"\"),\n geographicScope: z.string().default(\"Worldwide\"),\n aiPolicy: z.string().default(\"\"),\n royalty: z.coerce.number().min(0).max(50).default(0),\n descriptionTemplate: z.string().max(500).optional(),\n\n priceAmount: z\n .string()\n .default(\"\")\n .refine((v: string) => v === \"\" || !Number.isNaN(Number(v)), \"Enter a valid price\")\n .refine((v: string) => v === \"\" || Number(v) >= 0, \"Price must be zero or greater\"),\n paymentToken: z.string(),\n startDate: z.string().min(1, \"Start date required\"),\n startTime: z.string().default(\"00:00\"),\n endDate: z.string().min(1, \"End date required\"),\n endTime: z.string().default(\"23:59\"),\n maxPerWallet: z\n .string()\n .regex(/^\\d+$/, \"Must be a positive integer\")\n .refine((v: string) => parseInt(v, 10) >= 1, \"Minimum 1\")\n .default(\"1\"),\n\n whitelistEnabled: z.boolean().default(false),\n allowlistAddresses: z.string().default(\"\"),\n })\n .superRefine((values, ctx) => {\n const start = parseDateTime(values.startDate, values.startTime);\n const end = parseDateTime(values.endDate, values.endTime);\n if (start === null) {\n ctx.addIssue({ code: z.ZodIssueCode.custom, path: [\"startDate\"], message: \"Enter a valid start date and time\" });\n }\n if (end === null) {\n ctx.addIssue({ code: z.ZodIssueCode.custom, path: [\"endDate\"], message: \"Enter a valid end date and time\" });\n }\n if (start !== null && end !== null && end <= start) {\n ctx.addIssue({ code: z.ZodIssueCode.custom, path: [\"endDate\"], message: \"End time must be after the start time\" });\n }\n\n if (values.whitelistEnabled) {\n const addrs = values.allowlistAddresses.split(/[\\n,\\s]+/).map((a) => a.trim()).filter(Boolean);\n if (addrs.length === 0) {\n ctx.addIssue({ code: z.ZodIssueCode.custom, path: [\"allowlistAddresses\"], message: \"Add at least one address, or turn the whitelist off\" });\n }\n }\n });\n\nexport type DropCreateFormValues = z.infer<typeof dropCreateSchema>;\n"],"mappings":"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","names":[]}
@@ -0,0 +1,111 @@
1
+ import * as z from 'zod';
2
+
3
+ declare const dropCreateSchema: z.ZodEffects<z.ZodObject<{
4
+ name: z.ZodString;
5
+ symbol: z.ZodString;
6
+ ipType: z.ZodEnum<["Audio", "Art", "Documents", "NFT", "Video", "Photography", "Patents", "Posts", "Publications", "RWA", "Software", "Custom"]>;
7
+ licenseType: z.ZodString;
8
+ commercialUse: z.ZodDefault<z.ZodString>;
9
+ derivatives: z.ZodDefault<z.ZodString>;
10
+ attribution: z.ZodDefault<z.ZodString>;
11
+ geographicScope: z.ZodDefault<z.ZodString>;
12
+ aiPolicy: z.ZodDefault<z.ZodString>;
13
+ royalty: z.ZodDefault<z.ZodNumber>;
14
+ descriptionTemplate: z.ZodOptional<z.ZodString>;
15
+ priceAmount: z.ZodEffects<z.ZodEffects<z.ZodDefault<z.ZodString>, string, string | undefined>, string, string | undefined>;
16
+ paymentToken: z.ZodString;
17
+ startDate: z.ZodString;
18
+ startTime: z.ZodDefault<z.ZodString>;
19
+ endDate: z.ZodString;
20
+ endTime: z.ZodDefault<z.ZodString>;
21
+ maxPerWallet: z.ZodDefault<z.ZodEffects<z.ZodString, string, string>>;
22
+ whitelistEnabled: z.ZodDefault<z.ZodBoolean>;
23
+ allowlistAddresses: z.ZodDefault<z.ZodString>;
24
+ }, "strip", z.ZodTypeAny, {
25
+ symbol: string;
26
+ derivatives: string;
27
+ name: string;
28
+ ipType: "Audio" | "Video" | "Art" | "Photography" | "NFT" | "Software" | "RWA" | "Patents" | "Posts" | "Publications" | "Documents" | "Custom";
29
+ licenseType: string;
30
+ commercialUse: string;
31
+ attribution: string;
32
+ aiPolicy: string;
33
+ geographicScope: string;
34
+ royalty: number;
35
+ priceAmount: string;
36
+ paymentToken: string;
37
+ startDate: string;
38
+ startTime: string;
39
+ endDate: string;
40
+ endTime: string;
41
+ maxPerWallet: string;
42
+ whitelistEnabled: boolean;
43
+ allowlistAddresses: string;
44
+ descriptionTemplate?: string | undefined;
45
+ }, {
46
+ symbol: string;
47
+ name: string;
48
+ ipType: "Audio" | "Video" | "Art" | "Photography" | "NFT" | "Software" | "RWA" | "Patents" | "Posts" | "Publications" | "Documents" | "Custom";
49
+ licenseType: string;
50
+ paymentToken: string;
51
+ startDate: string;
52
+ endDate: string;
53
+ derivatives?: string | undefined;
54
+ commercialUse?: string | undefined;
55
+ attribution?: string | undefined;
56
+ aiPolicy?: string | undefined;
57
+ geographicScope?: string | undefined;
58
+ royalty?: number | undefined;
59
+ descriptionTemplate?: string | undefined;
60
+ priceAmount?: string | undefined;
61
+ startTime?: string | undefined;
62
+ endTime?: string | undefined;
63
+ maxPerWallet?: string | undefined;
64
+ whitelistEnabled?: boolean | undefined;
65
+ allowlistAddresses?: string | undefined;
66
+ }>, {
67
+ symbol: string;
68
+ derivatives: string;
69
+ name: string;
70
+ ipType: "Audio" | "Video" | "Art" | "Photography" | "NFT" | "Software" | "RWA" | "Patents" | "Posts" | "Publications" | "Documents" | "Custom";
71
+ licenseType: string;
72
+ commercialUse: string;
73
+ attribution: string;
74
+ aiPolicy: string;
75
+ geographicScope: string;
76
+ royalty: number;
77
+ priceAmount: string;
78
+ paymentToken: string;
79
+ startDate: string;
80
+ startTime: string;
81
+ endDate: string;
82
+ endTime: string;
83
+ maxPerWallet: string;
84
+ whitelistEnabled: boolean;
85
+ allowlistAddresses: string;
86
+ descriptionTemplate?: string | undefined;
87
+ }, {
88
+ symbol: string;
89
+ name: string;
90
+ ipType: "Audio" | "Video" | "Art" | "Photography" | "NFT" | "Software" | "RWA" | "Patents" | "Posts" | "Publications" | "Documents" | "Custom";
91
+ licenseType: string;
92
+ paymentToken: string;
93
+ startDate: string;
94
+ endDate: string;
95
+ derivatives?: string | undefined;
96
+ commercialUse?: string | undefined;
97
+ attribution?: string | undefined;
98
+ aiPolicy?: string | undefined;
99
+ geographicScope?: string | undefined;
100
+ royalty?: number | undefined;
101
+ descriptionTemplate?: string | undefined;
102
+ priceAmount?: string | undefined;
103
+ startTime?: string | undefined;
104
+ endTime?: string | undefined;
105
+ maxPerWallet?: string | undefined;
106
+ whitelistEnabled?: boolean | undefined;
107
+ allowlistAddresses?: string | undefined;
108
+ }>;
109
+ type DropCreateFormValues = z.infer<typeof dropCreateSchema>;
110
+
111
+ export { type DropCreateFormValues, dropCreateSchema };
@@ -0,0 +1,111 @@
1
+ import * as z from 'zod';
2
+
3
+ declare const dropCreateSchema: z.ZodEffects<z.ZodObject<{
4
+ name: z.ZodString;
5
+ symbol: z.ZodString;
6
+ ipType: z.ZodEnum<["Audio", "Art", "Documents", "NFT", "Video", "Photography", "Patents", "Posts", "Publications", "RWA", "Software", "Custom"]>;
7
+ licenseType: z.ZodString;
8
+ commercialUse: z.ZodDefault<z.ZodString>;
9
+ derivatives: z.ZodDefault<z.ZodString>;
10
+ attribution: z.ZodDefault<z.ZodString>;
11
+ geographicScope: z.ZodDefault<z.ZodString>;
12
+ aiPolicy: z.ZodDefault<z.ZodString>;
13
+ royalty: z.ZodDefault<z.ZodNumber>;
14
+ descriptionTemplate: z.ZodOptional<z.ZodString>;
15
+ priceAmount: z.ZodEffects<z.ZodEffects<z.ZodDefault<z.ZodString>, string, string | undefined>, string, string | undefined>;
16
+ paymentToken: z.ZodString;
17
+ startDate: z.ZodString;
18
+ startTime: z.ZodDefault<z.ZodString>;
19
+ endDate: z.ZodString;
20
+ endTime: z.ZodDefault<z.ZodString>;
21
+ maxPerWallet: z.ZodDefault<z.ZodEffects<z.ZodString, string, string>>;
22
+ whitelistEnabled: z.ZodDefault<z.ZodBoolean>;
23
+ allowlistAddresses: z.ZodDefault<z.ZodString>;
24
+ }, "strip", z.ZodTypeAny, {
25
+ symbol: string;
26
+ derivatives: string;
27
+ name: string;
28
+ ipType: "Audio" | "Video" | "Art" | "Photography" | "NFT" | "Software" | "RWA" | "Patents" | "Posts" | "Publications" | "Documents" | "Custom";
29
+ licenseType: string;
30
+ commercialUse: string;
31
+ attribution: string;
32
+ aiPolicy: string;
33
+ geographicScope: string;
34
+ royalty: number;
35
+ priceAmount: string;
36
+ paymentToken: string;
37
+ startDate: string;
38
+ startTime: string;
39
+ endDate: string;
40
+ endTime: string;
41
+ maxPerWallet: string;
42
+ whitelistEnabled: boolean;
43
+ allowlistAddresses: string;
44
+ descriptionTemplate?: string | undefined;
45
+ }, {
46
+ symbol: string;
47
+ name: string;
48
+ ipType: "Audio" | "Video" | "Art" | "Photography" | "NFT" | "Software" | "RWA" | "Patents" | "Posts" | "Publications" | "Documents" | "Custom";
49
+ licenseType: string;
50
+ paymentToken: string;
51
+ startDate: string;
52
+ endDate: string;
53
+ derivatives?: string | undefined;
54
+ commercialUse?: string | undefined;
55
+ attribution?: string | undefined;
56
+ aiPolicy?: string | undefined;
57
+ geographicScope?: string | undefined;
58
+ royalty?: number | undefined;
59
+ descriptionTemplate?: string | undefined;
60
+ priceAmount?: string | undefined;
61
+ startTime?: string | undefined;
62
+ endTime?: string | undefined;
63
+ maxPerWallet?: string | undefined;
64
+ whitelistEnabled?: boolean | undefined;
65
+ allowlistAddresses?: string | undefined;
66
+ }>, {
67
+ symbol: string;
68
+ derivatives: string;
69
+ name: string;
70
+ ipType: "Audio" | "Video" | "Art" | "Photography" | "NFT" | "Software" | "RWA" | "Patents" | "Posts" | "Publications" | "Documents" | "Custom";
71
+ licenseType: string;
72
+ commercialUse: string;
73
+ attribution: string;
74
+ aiPolicy: string;
75
+ geographicScope: string;
76
+ royalty: number;
77
+ priceAmount: string;
78
+ paymentToken: string;
79
+ startDate: string;
80
+ startTime: string;
81
+ endDate: string;
82
+ endTime: string;
83
+ maxPerWallet: string;
84
+ whitelistEnabled: boolean;
85
+ allowlistAddresses: string;
86
+ descriptionTemplate?: string | undefined;
87
+ }, {
88
+ symbol: string;
89
+ name: string;
90
+ ipType: "Audio" | "Video" | "Art" | "Photography" | "NFT" | "Software" | "RWA" | "Patents" | "Posts" | "Publications" | "Documents" | "Custom";
91
+ licenseType: string;
92
+ paymentToken: string;
93
+ startDate: string;
94
+ endDate: string;
95
+ derivatives?: string | undefined;
96
+ commercialUse?: string | undefined;
97
+ attribution?: string | undefined;
98
+ aiPolicy?: string | undefined;
99
+ geographicScope?: string | undefined;
100
+ royalty?: number | undefined;
101
+ descriptionTemplate?: string | undefined;
102
+ priceAmount?: string | undefined;
103
+ startTime?: string | undefined;
104
+ endTime?: string | undefined;
105
+ maxPerWallet?: string | undefined;
106
+ whitelistEnabled?: boolean | undefined;
107
+ allowlistAddresses?: string | undefined;
108
+ }>;
109
+ type DropCreateFormValues = z.infer<typeof dropCreateSchema>;
110
+
111
+ export { type DropCreateFormValues, dropCreateSchema };