@medialane/ui 0.140.0 → 0.140.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.
@@ -27,6 +27,38 @@ var import_react = require("react");
27
27
  var import_lucide_react = require("lucide-react");
28
28
  var import_cn = require("../utils/cn.js");
29
29
  var import_asset_picker_cell = require("./asset-picker-cell.js");
30
+ function MintPromoCard({ onMintClick }) {
31
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "rounded-2xl p-[1.5px] bg-gradient-to-br from-brand-purple to-brand-orange", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "rounded-[15px] bg-card p-5 flex flex-col sm:flex-row sm:items-center gap-4", children: [
32
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "h-11 w-11 rounded-xl bg-gradient-to-br from-brand-purple to-brand-orange flex items-center justify-center shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Sparkles, { className: "h-5 w-5 text-white" }) }),
33
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex-1 min-w-0", children: [
34
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-sm font-bold text-foreground", children: "Mint your first asset" }),
35
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { className: "text-xs text-muted-foreground mt-0.5", children: "It becomes your avatar and app theme \u2014 ready in seconds." })
36
+ ] }),
37
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "btn-border-animated shrink-0 p-[1px] rounded-xl", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
38
+ "button",
39
+ {
40
+ type: "button",
41
+ onClick: onMintClick,
42
+ className: "h-10 px-4 rounded-[11px] bg-card text-sm font-semibold text-foreground hover:brightness-110 active:scale-[0.98] transition-all whitespace-nowrap",
43
+ children: "Mint an asset"
44
+ }
45
+ ) })
46
+ ] }) });
47
+ }
48
+ function MintTile({ onMintClick }) {
49
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
50
+ "button",
51
+ {
52
+ type: "button",
53
+ onClick: onMintClick,
54
+ className: "aspect-square rounded-xl border-2 border-dashed border-brand-purple/40 hover:border-brand-purple/70 hover:bg-brand-purple/5 transition-colors flex flex-col items-center justify-center gap-1 text-brand-purple",
55
+ children: [
56
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.Plus, { className: "h-4 w-4" }),
57
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "text-2xs font-semibold", children: "New" })
58
+ ]
59
+ }
60
+ );
61
+ }
30
62
  function AssetPicker({
31
63
  assets,
32
64
  isLoading,
@@ -34,6 +66,7 @@ function AssetPicker({
34
66
  onSelect,
35
67
  emptyStateHref,
36
68
  emptyStateLabel,
69
+ onMintClick,
37
70
  className
38
71
  }) {
39
72
  const [query, setQuery] = (0, import_react.useState)("");
@@ -42,6 +75,7 @@ function AssetPicker({
42
75
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: (0, import_cn.cn)("grid grid-cols-3 sm:grid-cols-4 gap-2.5", className), children: Array.from({ length: 8 }).map((_, i) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "aspect-square rounded-xl bg-muted/60 animate-pulse" }, i)) });
43
76
  }
44
77
  if (assets.length === 0) {
78
+ if (onMintClick) return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MintPromoCard, { onMintClick });
45
79
  return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: (0, import_cn.cn)("rounded-xl border border-dashed border-border/60 p-6 text-center text-sm text-muted-foreground", className), children: [
46
80
  "You don't own any assets yet.",
47
81
  emptyStateHref ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("a", { href: emptyStateHref, className: "ml-1 font-semibold text-foreground underline underline-offset-2", children: emptyStateLabel ?? "Create one" }) : null
@@ -61,15 +95,18 @@ function AssetPicker({
61
95
  }
62
96
  )
63
97
  ] }) : null,
64
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "grid grid-cols-3 sm:grid-cols-4 gap-2.5 max-h-80 overflow-y-auto pr-0.5", children: filtered.map((asset) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
65
- import_asset_picker_cell.AssetPickerCell,
66
- {
67
- asset,
68
- active: (0, import_asset_picker_cell.isSameAsset)(asset, selected),
69
- onSelect
70
- },
71
- `${asset.contractAddress}-${asset.tokenId}`
72
- )) }),
98
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "grid grid-cols-3 sm:grid-cols-4 gap-2.5 max-h-80 overflow-y-auto pr-0.5", children: [
99
+ filtered.map((asset) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
100
+ import_asset_picker_cell.AssetPickerCell,
101
+ {
102
+ asset,
103
+ active: (0, import_asset_picker_cell.isSameAsset)(asset, selected),
104
+ onSelect
105
+ },
106
+ `${asset.contractAddress}-${asset.tokenId}`
107
+ )),
108
+ onMintClick && !query ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(MintTile, { onMintClick }) : null
109
+ ] }),
73
110
  query && filtered.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("p", { className: "text-xs text-muted-foreground text-center py-4", children: [
74
111
  'No assets match "',
75
112
  query,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/asset-picker.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState } from \"react\";\nimport { Search } from \"lucide-react\";\nimport { cn } from \"../utils/cn.js\";\nimport { AssetPickerCell, isSameAsset } from \"./asset-picker-cell.js\";\n\nexport interface OwnedAsset {\n contractAddress: string;\n tokenId: string;\n name: string;\n image: string | null;\n}\n\nexport interface AssetPickerProps {\n\n assets: OwnedAsset[];\n isLoading: boolean;\n selected: OwnedAsset | null;\n onSelect: (asset: OwnedAsset) => void;\n\n emptyStateHref?: string;\n emptyStateLabel?: string;\n className?: string;\n}\n\nexport function AssetPicker({\n assets, isLoading, selected, onSelect, emptyStateHref, emptyStateLabel, className,\n}: AssetPickerProps) {\n const [query, setQuery] = useState(\"\");\n const filtered = query\n ? assets.filter((a) => a.name.toLowerCase().includes(query.toLowerCase()))\n : assets;\n\n if (isLoading) {\n return (\n <div className={cn(\"grid grid-cols-3 sm:grid-cols-4 gap-2.5\", className)}>\n {Array.from({ length: 8 }).map((_, i) => (\n <div key={i} className=\"aspect-square rounded-xl bg-muted/60 animate-pulse\" />\n ))}\n </div>\n );\n }\n\n if (assets.length === 0) {\n return (\n <div className={cn(\"rounded-xl border border-dashed border-border/60 p-6 text-center text-sm text-muted-foreground\", className)}>\n You don&apos;t own any assets yet.\n {emptyStateHref ? (\n <a href={emptyStateHref} className=\"ml-1 font-semibold text-foreground underline underline-offset-2\">\n {emptyStateLabel ?? \"Create one\"}\n </a>\n ) : null}\n </div>\n );\n }\n\n return (\n <div className={cn(\"space-y-3\", className)}>\n {assets.length > 8 ? (\n <div className=\"relative\">\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none\" />\n <input\n type=\"text\"\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n placeholder=\"Search your assets\"\n className=\"w-full h-10 rounded-full border border-border bg-card pl-9 pr-4 text-sm placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-brand-purple/40 focus:border-brand-purple/40\"\n />\n </div>\n ) : null}\n\n <div className=\"grid grid-cols-3 sm:grid-cols-4 gap-2.5 max-h-80 overflow-y-auto pr-0.5\">\n {filtered.map((asset) => (\n <AssetPickerCell\n key={`${asset.contractAddress}-${asset.tokenId}`}\n asset={asset}\n active={isSameAsset(asset, selected)}\n onSelect={onSelect}\n />\n ))}\n </div>\n\n {query && filtered.length === 0 ? (\n <p className=\"text-xs text-muted-foreground text-center py-4\">No assets match &quot;{query}&quot;.</p>\n ) : null}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAsCU;AApCV,mBAAyB;AACzB,0BAAuB;AACvB,gBAAmB;AACnB,+BAA6C;AAqBtC,SAAS,YAAY;AAAA,EAC1B;AAAA,EAAQ;AAAA,EAAW;AAAA,EAAU;AAAA,EAAU;AAAA,EAAgB;AAAA,EAAiB;AAC1E,GAAqB;AACnB,QAAM,CAAC,OAAO,QAAQ,QAAI,uBAAS,EAAE;AACrC,QAAM,WAAW,QACb,OAAO,OAAO,CAAC,MAAM,EAAE,KAAK,YAAY,EAAE,SAAS,MAAM,YAAY,CAAC,CAAC,IACvE;AAEJ,MAAI,WAAW;AACb,WACE,4CAAC,SAAI,eAAW,cAAG,2CAA2C,SAAS,GACpE,gBAAM,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,MACjC,4CAAC,SAAY,WAAU,wDAAb,CAAkE,CAC7E,GACH;AAAA,EAEJ;AAEA,MAAI,OAAO,WAAW,GAAG;AACvB,WACE,6CAAC,SAAI,eAAW,cAAG,kGAAkG,SAAS,GAAG;AAAA;AAAA,MAE9H,iBACC,4CAAC,OAAE,MAAM,gBAAgB,WAAU,mEAChC,6BAAmB,cACtB,IACE;AAAA,OACN;AAAA,EAEJ;AAEA,SACE,6CAAC,SAAI,eAAW,cAAG,aAAa,SAAS,GACtC;AAAA,WAAO,SAAS,IACf,6CAAC,SAAI,WAAU,YACb;AAAA,kDAAC,8BAAO,WAAU,8FAA6F;AAAA,MAC/G;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,OAAO;AAAA,UACP,UAAU,CAAC,MAAM,SAAS,EAAE,OAAO,KAAK;AAAA,UACxC,aAAY;AAAA,UACZ,WAAU;AAAA;AAAA,MACZ;AAAA,OACF,IACE;AAAA,IAEJ,4CAAC,SAAI,WAAU,2EACZ,mBAAS,IAAI,CAAC,UACb;AAAA,MAAC;AAAA;AAAA,QAEC;AAAA,QACA,YAAQ,sCAAY,OAAO,QAAQ;AAAA,QACnC;AAAA;AAAA,MAHK,GAAG,MAAM,eAAe,IAAI,MAAM,OAAO;AAAA,IAIhD,CACD,GACH;AAAA,IAEC,SAAS,SAAS,WAAW,IAC5B,6CAAC,OAAE,WAAU,kDAAiD;AAAA;AAAA,MAAuB;AAAA,MAAM;AAAA,OAAO,IAChG;AAAA,KACN;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../src/components/asset-picker.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState } from \"react\";\nimport { Search, Plus, Sparkles } from \"lucide-react\";\nimport { cn } from \"../utils/cn.js\";\nimport { AssetPickerCell, isSameAsset } from \"./asset-picker-cell.js\";\n\nexport interface OwnedAsset {\n contractAddress: string;\n tokenId: string;\n name: string;\n image: string | null;\n}\n\nexport interface AssetPickerProps {\n\n assets: OwnedAsset[];\n isLoading: boolean;\n selected: OwnedAsset | null;\n onSelect: (asset: OwnedAsset) => void;\n\n emptyStateHref?: string;\n emptyStateLabel?: string;\n onMintClick?: () => void;\n className?: string;\n}\n\nfunction MintPromoCard({ onMintClick }: { onMintClick: () => void }) {\n return (\n <div className=\"rounded-2xl p-[1.5px] bg-gradient-to-br from-brand-purple to-brand-orange\">\n <div className=\"rounded-[15px] bg-card p-5 flex flex-col sm:flex-row sm:items-center gap-4\">\n <div className=\"h-11 w-11 rounded-xl bg-gradient-to-br from-brand-purple to-brand-orange flex items-center justify-center shrink-0\">\n <Sparkles className=\"h-5 w-5 text-white\" />\n </div>\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm font-bold text-foreground\">Mint your first asset</p>\n <p className=\"text-xs text-muted-foreground mt-0.5\">It becomes your avatar and app theme — ready in seconds.</p>\n </div>\n <div className=\"btn-border-animated shrink-0 p-[1px] rounded-xl\">\n <button\n type=\"button\"\n onClick={onMintClick}\n className=\"h-10 px-4 rounded-[11px] bg-card text-sm font-semibold text-foreground hover:brightness-110 active:scale-[0.98] transition-all whitespace-nowrap\"\n >\n Mint an asset\n </button>\n </div>\n </div>\n </div>\n );\n}\n\nfunction MintTile({ onMintClick }: { onMintClick: () => void }) {\n return (\n <button\n type=\"button\"\n onClick={onMintClick}\n className=\"aspect-square rounded-xl border-2 border-dashed border-brand-purple/40 hover:border-brand-purple/70 hover:bg-brand-purple/5 transition-colors flex flex-col items-center justify-center gap-1 text-brand-purple\"\n >\n <Plus className=\"h-4 w-4\" />\n <span className=\"text-2xs font-semibold\">New</span>\n </button>\n );\n}\n\nexport function AssetPicker({\n assets, isLoading, selected, onSelect, emptyStateHref, emptyStateLabel, onMintClick, className,\n}: AssetPickerProps) {\n const [query, setQuery] = useState(\"\");\n const filtered = query\n ? assets.filter((a) => a.name.toLowerCase().includes(query.toLowerCase()))\n : assets;\n\n if (isLoading) {\n return (\n <div className={cn(\"grid grid-cols-3 sm:grid-cols-4 gap-2.5\", className)}>\n {Array.from({ length: 8 }).map((_, i) => (\n <div key={i} className=\"aspect-square rounded-xl bg-muted/60 animate-pulse\" />\n ))}\n </div>\n );\n }\n\n if (assets.length === 0) {\n if (onMintClick) return <MintPromoCard onMintClick={onMintClick} />;\n return (\n <div className={cn(\"rounded-xl border border-dashed border-border/60 p-6 text-center text-sm text-muted-foreground\", className)}>\n You don&apos;t own any assets yet.\n {emptyStateHref ? (\n <a href={emptyStateHref} className=\"ml-1 font-semibold text-foreground underline underline-offset-2\">\n {emptyStateLabel ?? \"Create one\"}\n </a>\n ) : null}\n </div>\n );\n }\n\n return (\n <div className={cn(\"space-y-3\", className)}>\n {assets.length > 8 ? (\n <div className=\"relative\">\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none\" />\n <input\n type=\"text\"\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n placeholder=\"Search your assets\"\n className=\"w-full h-10 rounded-full border border-border bg-card pl-9 pr-4 text-sm placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-brand-purple/40 focus:border-brand-purple/40\"\n />\n </div>\n ) : null}\n\n <div className=\"grid grid-cols-3 sm:grid-cols-4 gap-2.5 max-h-80 overflow-y-auto pr-0.5\">\n {filtered.map((asset) => (\n <AssetPickerCell\n key={`${asset.contractAddress}-${asset.tokenId}`}\n asset={asset}\n active={isSameAsset(asset, selected)}\n onSelect={onSelect}\n />\n ))}\n {onMintClick && !query ? <MintTile onMintClick={onMintClick} /> : null}\n </div>\n\n {query && filtered.length === 0 ? (\n <p className=\"text-xs text-muted-foreground text-center py-4\">No assets match &quot;{query}&quot;.</p>\n ) : null}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAgCU;AA9BV,mBAAyB;AACzB,0BAAuC;AACvC,gBAAmB;AACnB,+BAA6C;AAsB7C,SAAS,cAAc,EAAE,YAAY,GAAgC;AACnE,SACE,4CAAC,SAAI,WAAU,6EACb,uDAAC,SAAI,WAAU,8EACb;AAAA,gDAAC,SAAI,WAAU,sHACb,sDAAC,gCAAS,WAAU,sBAAqB,GAC3C;AAAA,IACA,6CAAC,SAAI,WAAU,kBACb;AAAA,kDAAC,OAAE,WAAU,qCAAoC,mCAAqB;AAAA,MACtE,4CAAC,OAAE,WAAU,wCAAuC,2EAAwD;AAAA,OAC9G;AAAA,IACA,4CAAC,SAAI,WAAU,mDACb;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,SAAS;AAAA,QACT,WAAU;AAAA,QACX;AAAA;AAAA,IAED,GACF;AAAA,KACF,GACF;AAEJ;AAEA,SAAS,SAAS,EAAE,YAAY,GAAgC;AAC9D,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,SAAS;AAAA,MACT,WAAU;AAAA,MAEV;AAAA,oDAAC,4BAAK,WAAU,WAAU;AAAA,QAC1B,4CAAC,UAAK,WAAU,0BAAyB,iBAAG;AAAA;AAAA;AAAA,EAC9C;AAEJ;AAEO,SAAS,YAAY;AAAA,EAC1B;AAAA,EAAQ;AAAA,EAAW;AAAA,EAAU;AAAA,EAAU;AAAA,EAAgB;AAAA,EAAiB;AAAA,EAAa;AACvF,GAAqB;AACnB,QAAM,CAAC,OAAO,QAAQ,QAAI,uBAAS,EAAE;AACrC,QAAM,WAAW,QACb,OAAO,OAAO,CAAC,MAAM,EAAE,KAAK,YAAY,EAAE,SAAS,MAAM,YAAY,CAAC,CAAC,IACvE;AAEJ,MAAI,WAAW;AACb,WACE,4CAAC,SAAI,eAAW,cAAG,2CAA2C,SAAS,GACpE,gBAAM,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,MACjC,4CAAC,SAAY,WAAU,wDAAb,CAAkE,CAC7E,GACH;AAAA,EAEJ;AAEA,MAAI,OAAO,WAAW,GAAG;AACvB,QAAI,YAAa,QAAO,4CAAC,iBAAc,aAA0B;AACjE,WACE,6CAAC,SAAI,eAAW,cAAG,kGAAkG,SAAS,GAAG;AAAA;AAAA,MAE9H,iBACC,4CAAC,OAAE,MAAM,gBAAgB,WAAU,mEAChC,6BAAmB,cACtB,IACE;AAAA,OACN;AAAA,EAEJ;AAEA,SACE,6CAAC,SAAI,eAAW,cAAG,aAAa,SAAS,GACtC;AAAA,WAAO,SAAS,IACf,6CAAC,SAAI,WAAU,YACb;AAAA,kDAAC,8BAAO,WAAU,8FAA6F;AAAA,MAC/G;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,OAAO;AAAA,UACP,UAAU,CAAC,MAAM,SAAS,EAAE,OAAO,KAAK;AAAA,UACxC,aAAY;AAAA,UACZ,WAAU;AAAA;AAAA,MACZ;AAAA,OACF,IACE;AAAA,IAEJ,6CAAC,SAAI,WAAU,2EACZ;AAAA,eAAS,IAAI,CAAC,UACb;AAAA,QAAC;AAAA;AAAA,UAEC;AAAA,UACA,YAAQ,sCAAY,OAAO,QAAQ;AAAA,UACnC;AAAA;AAAA,QAHK,GAAG,MAAM,eAAe,IAAI,MAAM,OAAO;AAAA,MAIhD,CACD;AAAA,MACA,eAAe,CAAC,QAAQ,4CAAC,YAAS,aAA0B,IAAK;AAAA,OACpE;AAAA,IAEC,SAAS,SAAS,WAAW,IAC5B,6CAAC,OAAE,WAAU,kDAAiD;AAAA;AAAA,MAAuB;AAAA,MAAM;AAAA,OAAO,IAChG;AAAA,KACN;AAEJ;","names":[]}
@@ -13,8 +13,9 @@ interface AssetPickerProps {
13
13
  onSelect: (asset: OwnedAsset) => void;
14
14
  emptyStateHref?: string;
15
15
  emptyStateLabel?: string;
16
+ onMintClick?: () => void;
16
17
  className?: string;
17
18
  }
18
- declare function AssetPicker({ assets, isLoading, selected, onSelect, emptyStateHref, emptyStateLabel, className, }: AssetPickerProps): react_jsx_runtime.JSX.Element;
19
+ declare function AssetPicker({ assets, isLoading, selected, onSelect, emptyStateHref, emptyStateLabel, onMintClick, className, }: AssetPickerProps): react_jsx_runtime.JSX.Element;
19
20
 
20
21
  export { AssetPicker, type AssetPickerProps, type OwnedAsset };
@@ -13,8 +13,9 @@ interface AssetPickerProps {
13
13
  onSelect: (asset: OwnedAsset) => void;
14
14
  emptyStateHref?: string;
15
15
  emptyStateLabel?: string;
16
+ onMintClick?: () => void;
16
17
  className?: string;
17
18
  }
18
- declare function AssetPicker({ assets, isLoading, selected, onSelect, emptyStateHref, emptyStateLabel, className, }: AssetPickerProps): react_jsx_runtime.JSX.Element;
19
+ declare function AssetPicker({ assets, isLoading, selected, onSelect, emptyStateHref, emptyStateLabel, onMintClick, className, }: AssetPickerProps): react_jsx_runtime.JSX.Element;
19
20
 
20
21
  export { AssetPicker, type AssetPickerProps, type OwnedAsset };
@@ -1,9 +1,41 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import { useState } from "react";
4
- import { Search } from "lucide-react";
4
+ import { Search, Plus, Sparkles } from "lucide-react";
5
5
  import { cn } from "../utils/cn.js";
6
6
  import { AssetPickerCell, isSameAsset } from "./asset-picker-cell.js";
7
+ function MintPromoCard({ onMintClick }) {
8
+ return /* @__PURE__ */ jsx("div", { className: "rounded-2xl p-[1.5px] bg-gradient-to-br from-brand-purple to-brand-orange", children: /* @__PURE__ */ jsxs("div", { className: "rounded-[15px] bg-card p-5 flex flex-col sm:flex-row sm:items-center gap-4", children: [
9
+ /* @__PURE__ */ jsx("div", { className: "h-11 w-11 rounded-xl bg-gradient-to-br from-brand-purple to-brand-orange flex items-center justify-center shrink-0", children: /* @__PURE__ */ jsx(Sparkles, { className: "h-5 w-5 text-white" }) }),
10
+ /* @__PURE__ */ jsxs("div", { className: "flex-1 min-w-0", children: [
11
+ /* @__PURE__ */ jsx("p", { className: "text-sm font-bold text-foreground", children: "Mint your first asset" }),
12
+ /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground mt-0.5", children: "It becomes your avatar and app theme \u2014 ready in seconds." })
13
+ ] }),
14
+ /* @__PURE__ */ jsx("div", { className: "btn-border-animated shrink-0 p-[1px] rounded-xl", children: /* @__PURE__ */ jsx(
15
+ "button",
16
+ {
17
+ type: "button",
18
+ onClick: onMintClick,
19
+ className: "h-10 px-4 rounded-[11px] bg-card text-sm font-semibold text-foreground hover:brightness-110 active:scale-[0.98] transition-all whitespace-nowrap",
20
+ children: "Mint an asset"
21
+ }
22
+ ) })
23
+ ] }) });
24
+ }
25
+ function MintTile({ onMintClick }) {
26
+ return /* @__PURE__ */ jsxs(
27
+ "button",
28
+ {
29
+ type: "button",
30
+ onClick: onMintClick,
31
+ className: "aspect-square rounded-xl border-2 border-dashed border-brand-purple/40 hover:border-brand-purple/70 hover:bg-brand-purple/5 transition-colors flex flex-col items-center justify-center gap-1 text-brand-purple",
32
+ children: [
33
+ /* @__PURE__ */ jsx(Plus, { className: "h-4 w-4" }),
34
+ /* @__PURE__ */ jsx("span", { className: "text-2xs font-semibold", children: "New" })
35
+ ]
36
+ }
37
+ );
38
+ }
7
39
  function AssetPicker({
8
40
  assets,
9
41
  isLoading,
@@ -11,6 +43,7 @@ function AssetPicker({
11
43
  onSelect,
12
44
  emptyStateHref,
13
45
  emptyStateLabel,
46
+ onMintClick,
14
47
  className
15
48
  }) {
16
49
  const [query, setQuery] = useState("");
@@ -19,6 +52,7 @@ function AssetPicker({
19
52
  return /* @__PURE__ */ jsx("div", { className: cn("grid grid-cols-3 sm:grid-cols-4 gap-2.5", className), children: Array.from({ length: 8 }).map((_, i) => /* @__PURE__ */ jsx("div", { className: "aspect-square rounded-xl bg-muted/60 animate-pulse" }, i)) });
20
53
  }
21
54
  if (assets.length === 0) {
55
+ if (onMintClick) return /* @__PURE__ */ jsx(MintPromoCard, { onMintClick });
22
56
  return /* @__PURE__ */ jsxs("div", { className: cn("rounded-xl border border-dashed border-border/60 p-6 text-center text-sm text-muted-foreground", className), children: [
23
57
  "You don't own any assets yet.",
24
58
  emptyStateHref ? /* @__PURE__ */ jsx("a", { href: emptyStateHref, className: "ml-1 font-semibold text-foreground underline underline-offset-2", children: emptyStateLabel ?? "Create one" }) : null
@@ -38,15 +72,18 @@ function AssetPicker({
38
72
  }
39
73
  )
40
74
  ] }) : null,
41
- /* @__PURE__ */ jsx("div", { className: "grid grid-cols-3 sm:grid-cols-4 gap-2.5 max-h-80 overflow-y-auto pr-0.5", children: filtered.map((asset) => /* @__PURE__ */ jsx(
42
- AssetPickerCell,
43
- {
44
- asset,
45
- active: isSameAsset(asset, selected),
46
- onSelect
47
- },
48
- `${asset.contractAddress}-${asset.tokenId}`
49
- )) }),
75
+ /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-3 sm:grid-cols-4 gap-2.5 max-h-80 overflow-y-auto pr-0.5", children: [
76
+ filtered.map((asset) => /* @__PURE__ */ jsx(
77
+ AssetPickerCell,
78
+ {
79
+ asset,
80
+ active: isSameAsset(asset, selected),
81
+ onSelect
82
+ },
83
+ `${asset.contractAddress}-${asset.tokenId}`
84
+ )),
85
+ onMintClick && !query ? /* @__PURE__ */ jsx(MintTile, { onMintClick }) : null
86
+ ] }),
50
87
  query && filtered.length === 0 ? /* @__PURE__ */ jsxs("p", { className: "text-xs text-muted-foreground text-center py-4", children: [
51
88
  'No assets match "',
52
89
  query,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/asset-picker.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState } from \"react\";\nimport { Search } from \"lucide-react\";\nimport { cn } from \"../utils/cn.js\";\nimport { AssetPickerCell, isSameAsset } from \"./asset-picker-cell.js\";\n\nexport interface OwnedAsset {\n contractAddress: string;\n tokenId: string;\n name: string;\n image: string | null;\n}\n\nexport interface AssetPickerProps {\n\n assets: OwnedAsset[];\n isLoading: boolean;\n selected: OwnedAsset | null;\n onSelect: (asset: OwnedAsset) => void;\n\n emptyStateHref?: string;\n emptyStateLabel?: string;\n className?: string;\n}\n\nexport function AssetPicker({\n assets, isLoading, selected, onSelect, emptyStateHref, emptyStateLabel, className,\n}: AssetPickerProps) {\n const [query, setQuery] = useState(\"\");\n const filtered = query\n ? assets.filter((a) => a.name.toLowerCase().includes(query.toLowerCase()))\n : assets;\n\n if (isLoading) {\n return (\n <div className={cn(\"grid grid-cols-3 sm:grid-cols-4 gap-2.5\", className)}>\n {Array.from({ length: 8 }).map((_, i) => (\n <div key={i} className=\"aspect-square rounded-xl bg-muted/60 animate-pulse\" />\n ))}\n </div>\n );\n }\n\n if (assets.length === 0) {\n return (\n <div className={cn(\"rounded-xl border border-dashed border-border/60 p-6 text-center text-sm text-muted-foreground\", className)}>\n You don&apos;t own any assets yet.\n {emptyStateHref ? (\n <a href={emptyStateHref} className=\"ml-1 font-semibold text-foreground underline underline-offset-2\">\n {emptyStateLabel ?? \"Create one\"}\n </a>\n ) : null}\n </div>\n );\n }\n\n return (\n <div className={cn(\"space-y-3\", className)}>\n {assets.length > 8 ? (\n <div className=\"relative\">\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none\" />\n <input\n type=\"text\"\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n placeholder=\"Search your assets\"\n className=\"w-full h-10 rounded-full border border-border bg-card pl-9 pr-4 text-sm placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-brand-purple/40 focus:border-brand-purple/40\"\n />\n </div>\n ) : null}\n\n <div className=\"grid grid-cols-3 sm:grid-cols-4 gap-2.5 max-h-80 overflow-y-auto pr-0.5\">\n {filtered.map((asset) => (\n <AssetPickerCell\n key={`${asset.contractAddress}-${asset.tokenId}`}\n asset={asset}\n active={isSameAsset(asset, selected)}\n onSelect={onSelect}\n />\n ))}\n </div>\n\n {query && filtered.length === 0 ? (\n <p className=\"text-xs text-muted-foreground text-center py-4\">No assets match &quot;{query}&quot;.</p>\n ) : null}\n </div>\n );\n}\n"],"mappings":";AAsCU,cAQJ,YARI;AApCV,SAAS,gBAAgB;AACzB,SAAS,cAAc;AACvB,SAAS,UAAU;AACnB,SAAS,iBAAiB,mBAAmB;AAqBtC,SAAS,YAAY;AAAA,EAC1B;AAAA,EAAQ;AAAA,EAAW;AAAA,EAAU;AAAA,EAAU;AAAA,EAAgB;AAAA,EAAiB;AAC1E,GAAqB;AACnB,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,EAAE;AACrC,QAAM,WAAW,QACb,OAAO,OAAO,CAAC,MAAM,EAAE,KAAK,YAAY,EAAE,SAAS,MAAM,YAAY,CAAC,CAAC,IACvE;AAEJ,MAAI,WAAW;AACb,WACE,oBAAC,SAAI,WAAW,GAAG,2CAA2C,SAAS,GACpE,gBAAM,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,MACjC,oBAAC,SAAY,WAAU,wDAAb,CAAkE,CAC7E,GACH;AAAA,EAEJ;AAEA,MAAI,OAAO,WAAW,GAAG;AACvB,WACE,qBAAC,SAAI,WAAW,GAAG,kGAAkG,SAAS,GAAG;AAAA;AAAA,MAE9H,iBACC,oBAAC,OAAE,MAAM,gBAAgB,WAAU,mEAChC,6BAAmB,cACtB,IACE;AAAA,OACN;AAAA,EAEJ;AAEA,SACE,qBAAC,SAAI,WAAW,GAAG,aAAa,SAAS,GACtC;AAAA,WAAO,SAAS,IACf,qBAAC,SAAI,WAAU,YACb;AAAA,0BAAC,UAAO,WAAU,8FAA6F;AAAA,MAC/G;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,OAAO;AAAA,UACP,UAAU,CAAC,MAAM,SAAS,EAAE,OAAO,KAAK;AAAA,UACxC,aAAY;AAAA,UACZ,WAAU;AAAA;AAAA,MACZ;AAAA,OACF,IACE;AAAA,IAEJ,oBAAC,SAAI,WAAU,2EACZ,mBAAS,IAAI,CAAC,UACb;AAAA,MAAC;AAAA;AAAA,QAEC;AAAA,QACA,QAAQ,YAAY,OAAO,QAAQ;AAAA,QACnC;AAAA;AAAA,MAHK,GAAG,MAAM,eAAe,IAAI,MAAM,OAAO;AAAA,IAIhD,CACD,GACH;AAAA,IAEC,SAAS,SAAS,WAAW,IAC5B,qBAAC,OAAE,WAAU,kDAAiD;AAAA;AAAA,MAAuB;AAAA,MAAM;AAAA,OAAO,IAChG;AAAA,KACN;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../src/components/asset-picker.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState } from \"react\";\nimport { Search, Plus, Sparkles } from \"lucide-react\";\nimport { cn } from \"../utils/cn.js\";\nimport { AssetPickerCell, isSameAsset } from \"./asset-picker-cell.js\";\n\nexport interface OwnedAsset {\n contractAddress: string;\n tokenId: string;\n name: string;\n image: string | null;\n}\n\nexport interface AssetPickerProps {\n\n assets: OwnedAsset[];\n isLoading: boolean;\n selected: OwnedAsset | null;\n onSelect: (asset: OwnedAsset) => void;\n\n emptyStateHref?: string;\n emptyStateLabel?: string;\n onMintClick?: () => void;\n className?: string;\n}\n\nfunction MintPromoCard({ onMintClick }: { onMintClick: () => void }) {\n return (\n <div className=\"rounded-2xl p-[1.5px] bg-gradient-to-br from-brand-purple to-brand-orange\">\n <div className=\"rounded-[15px] bg-card p-5 flex flex-col sm:flex-row sm:items-center gap-4\">\n <div className=\"h-11 w-11 rounded-xl bg-gradient-to-br from-brand-purple to-brand-orange flex items-center justify-center shrink-0\">\n <Sparkles className=\"h-5 w-5 text-white\" />\n </div>\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm font-bold text-foreground\">Mint your first asset</p>\n <p className=\"text-xs text-muted-foreground mt-0.5\">It becomes your avatar and app theme — ready in seconds.</p>\n </div>\n <div className=\"btn-border-animated shrink-0 p-[1px] rounded-xl\">\n <button\n type=\"button\"\n onClick={onMintClick}\n className=\"h-10 px-4 rounded-[11px] bg-card text-sm font-semibold text-foreground hover:brightness-110 active:scale-[0.98] transition-all whitespace-nowrap\"\n >\n Mint an asset\n </button>\n </div>\n </div>\n </div>\n );\n}\n\nfunction MintTile({ onMintClick }: { onMintClick: () => void }) {\n return (\n <button\n type=\"button\"\n onClick={onMintClick}\n className=\"aspect-square rounded-xl border-2 border-dashed border-brand-purple/40 hover:border-brand-purple/70 hover:bg-brand-purple/5 transition-colors flex flex-col items-center justify-center gap-1 text-brand-purple\"\n >\n <Plus className=\"h-4 w-4\" />\n <span className=\"text-2xs font-semibold\">New</span>\n </button>\n );\n}\n\nexport function AssetPicker({\n assets, isLoading, selected, onSelect, emptyStateHref, emptyStateLabel, onMintClick, className,\n}: AssetPickerProps) {\n const [query, setQuery] = useState(\"\");\n const filtered = query\n ? assets.filter((a) => a.name.toLowerCase().includes(query.toLowerCase()))\n : assets;\n\n if (isLoading) {\n return (\n <div className={cn(\"grid grid-cols-3 sm:grid-cols-4 gap-2.5\", className)}>\n {Array.from({ length: 8 }).map((_, i) => (\n <div key={i} className=\"aspect-square rounded-xl bg-muted/60 animate-pulse\" />\n ))}\n </div>\n );\n }\n\n if (assets.length === 0) {\n if (onMintClick) return <MintPromoCard onMintClick={onMintClick} />;\n return (\n <div className={cn(\"rounded-xl border border-dashed border-border/60 p-6 text-center text-sm text-muted-foreground\", className)}>\n You don&apos;t own any assets yet.\n {emptyStateHref ? (\n <a href={emptyStateHref} className=\"ml-1 font-semibold text-foreground underline underline-offset-2\">\n {emptyStateLabel ?? \"Create one\"}\n </a>\n ) : null}\n </div>\n );\n }\n\n return (\n <div className={cn(\"space-y-3\", className)}>\n {assets.length > 8 ? (\n <div className=\"relative\">\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none\" />\n <input\n type=\"text\"\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n placeholder=\"Search your assets\"\n className=\"w-full h-10 rounded-full border border-border bg-card pl-9 pr-4 text-sm placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-brand-purple/40 focus:border-brand-purple/40\"\n />\n </div>\n ) : null}\n\n <div className=\"grid grid-cols-3 sm:grid-cols-4 gap-2.5 max-h-80 overflow-y-auto pr-0.5\">\n {filtered.map((asset) => (\n <AssetPickerCell\n key={`${asset.contractAddress}-${asset.tokenId}`}\n asset={asset}\n active={isSameAsset(asset, selected)}\n onSelect={onSelect}\n />\n ))}\n {onMintClick && !query ? <MintTile onMintClick={onMintClick} /> : null}\n </div>\n\n {query && filtered.length === 0 ? (\n <p className=\"text-xs text-muted-foreground text-center py-4\">No assets match &quot;{query}&quot;.</p>\n ) : null}\n </div>\n );\n}\n"],"mappings":";AAgCU,cAEF,YAFE;AA9BV,SAAS,gBAAgB;AACzB,SAAS,QAAQ,MAAM,gBAAgB;AACvC,SAAS,UAAU;AACnB,SAAS,iBAAiB,mBAAmB;AAsB7C,SAAS,cAAc,EAAE,YAAY,GAAgC;AACnE,SACE,oBAAC,SAAI,WAAU,6EACb,+BAAC,SAAI,WAAU,8EACb;AAAA,wBAAC,SAAI,WAAU,sHACb,8BAAC,YAAS,WAAU,sBAAqB,GAC3C;AAAA,IACA,qBAAC,SAAI,WAAU,kBACb;AAAA,0BAAC,OAAE,WAAU,qCAAoC,mCAAqB;AAAA,MACtE,oBAAC,OAAE,WAAU,wCAAuC,2EAAwD;AAAA,OAC9G;AAAA,IACA,oBAAC,SAAI,WAAU,mDACb;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,SAAS;AAAA,QACT,WAAU;AAAA,QACX;AAAA;AAAA,IAED,GACF;AAAA,KACF,GACF;AAEJ;AAEA,SAAS,SAAS,EAAE,YAAY,GAAgC;AAC9D,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,SAAS;AAAA,MACT,WAAU;AAAA,MAEV;AAAA,4BAAC,QAAK,WAAU,WAAU;AAAA,QAC1B,oBAAC,UAAK,WAAU,0BAAyB,iBAAG;AAAA;AAAA;AAAA,EAC9C;AAEJ;AAEO,SAAS,YAAY;AAAA,EAC1B;AAAA,EAAQ;AAAA,EAAW;AAAA,EAAU;AAAA,EAAU;AAAA,EAAgB;AAAA,EAAiB;AAAA,EAAa;AACvF,GAAqB;AACnB,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,EAAE;AACrC,QAAM,WAAW,QACb,OAAO,OAAO,CAAC,MAAM,EAAE,KAAK,YAAY,EAAE,SAAS,MAAM,YAAY,CAAC,CAAC,IACvE;AAEJ,MAAI,WAAW;AACb,WACE,oBAAC,SAAI,WAAW,GAAG,2CAA2C,SAAS,GACpE,gBAAM,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,MACjC,oBAAC,SAAY,WAAU,wDAAb,CAAkE,CAC7E,GACH;AAAA,EAEJ;AAEA,MAAI,OAAO,WAAW,GAAG;AACvB,QAAI,YAAa,QAAO,oBAAC,iBAAc,aAA0B;AACjE,WACE,qBAAC,SAAI,WAAW,GAAG,kGAAkG,SAAS,GAAG;AAAA;AAAA,MAE9H,iBACC,oBAAC,OAAE,MAAM,gBAAgB,WAAU,mEAChC,6BAAmB,cACtB,IACE;AAAA,OACN;AAAA,EAEJ;AAEA,SACE,qBAAC,SAAI,WAAW,GAAG,aAAa,SAAS,GACtC;AAAA,WAAO,SAAS,IACf,qBAAC,SAAI,WAAU,YACb;AAAA,0BAAC,UAAO,WAAU,8FAA6F;AAAA,MAC/G;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,OAAO;AAAA,UACP,UAAU,CAAC,MAAM,SAAS,EAAE,OAAO,KAAK;AAAA,UACxC,aAAY;AAAA,UACZ,WAAU;AAAA;AAAA,MACZ;AAAA,OACF,IACE;AAAA,IAEJ,qBAAC,SAAI,WAAU,2EACZ;AAAA,eAAS,IAAI,CAAC,UACb;AAAA,QAAC;AAAA;AAAA,UAEC;AAAA,UACA,QAAQ,YAAY,OAAO,QAAQ;AAAA,UACnC;AAAA;AAAA,QAHK,GAAG,MAAM,eAAe,IAAI,MAAM,OAAO;AAAA,MAIhD,CACD;AAAA,MACA,eAAe,CAAC,QAAQ,oBAAC,YAAS,aAA0B,IAAK;AAAA,OACpE;AAAA,IAEC,SAAS,SAAS,WAAW,IAC5B,qBAAC,OAAE,WAAU,kDAAiD;AAAA;AAAA,MAAuB;AAAA,MAAM;AAAA,OAAO,IAChG;AAAA,KACN;AAEJ;","names":[]}
@@ -4,7 +4,7 @@ import * as React from 'react';
4
4
  import { VariantProps } from 'class-variance-authority';
5
5
 
6
6
  declare const badgeVariants: (props?: ({
7
- variant?: "outline" | "default" | "destructive" | "secondary" | null | undefined;
7
+ variant?: "default" | "destructive" | "outline" | "secondary" | null | undefined;
8
8
  } & class_variance_authority_types.ClassProp) | undefined) => string;
9
9
  interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
10
10
  }
@@ -4,7 +4,7 @@ import * as React from 'react';
4
4
  import { VariantProps } from 'class-variance-authority';
5
5
 
6
6
  declare const badgeVariants: (props?: ({
7
- variant?: "outline" | "default" | "destructive" | "secondary" | null | undefined;
7
+ variant?: "default" | "destructive" | "outline" | "secondary" | null | undefined;
8
8
  } & class_variance_authority_types.ClassProp) | undefined) => string;
9
9
  interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
10
10
  }
@@ -3,8 +3,8 @@ import * as React from 'react';
3
3
  import { VariantProps } from 'class-variance-authority';
4
4
 
5
5
  declare const buttonVariants: (props?: ({
6
- variant?: "link" | "ghost" | "outline" | "default" | "destructive" | "secondary" | "premium" | "tonal" | "gradient-border" | "gradient-fill" | null | undefined;
7
- size?: "default" | "icon" | "sm" | "lg" | null | undefined;
6
+ variant?: "link" | "default" | "destructive" | "outline" | "ghost" | "secondary" | "premium" | "tonal" | "gradient-border" | "gradient-fill" | null | undefined;
7
+ size?: "icon" | "default" | "sm" | "lg" | null | undefined;
8
8
  } & class_variance_authority_types.ClassProp) | undefined) => string;
9
9
  interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
10
10
  asChild?: boolean;
@@ -3,8 +3,8 @@ import * as React from 'react';
3
3
  import { VariantProps } from 'class-variance-authority';
4
4
 
5
5
  declare const buttonVariants: (props?: ({
6
- variant?: "link" | "ghost" | "outline" | "default" | "destructive" | "secondary" | "premium" | "tonal" | "gradient-border" | "gradient-fill" | null | undefined;
7
- size?: "default" | "icon" | "sm" | "lg" | null | undefined;
6
+ variant?: "link" | "default" | "destructive" | "outline" | "ghost" | "secondary" | "premium" | "tonal" | "gradient-border" | "gradient-fill" | null | undefined;
7
+ size?: "icon" | "default" | "sm" | "lg" | null | undefined;
8
8
  } & class_variance_authority_types.ClassProp) | undefined) => string;
9
9
  interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
10
10
  asChild?: boolean;
@@ -23,8 +23,8 @@ declare const dropCreateSchema: z.ZodEffects<z.ZodObject<{
23
23
  allowlistAddresses: z.ZodDefault<z.ZodString>;
24
24
  }, "strip", z.ZodTypeAny, {
25
25
  symbol: string;
26
- name: string;
27
26
  derivatives: string;
27
+ name: string;
28
28
  ipType: "Audio" | "Video" | "Art" | "Photography" | "NFT" | "Software" | "RWA" | "Patents" | "Posts" | "Publications" | "Documents" | "Custom";
29
29
  licenseType: string;
30
30
  commercialUse: string;
@@ -65,8 +65,8 @@ declare const dropCreateSchema: z.ZodEffects<z.ZodObject<{
65
65
  allowlistAddresses?: string | undefined;
66
66
  }>, {
67
67
  symbol: string;
68
- name: string;
69
68
  derivatives: string;
69
+ name: string;
70
70
  ipType: "Audio" | "Video" | "Art" | "Photography" | "NFT" | "Software" | "RWA" | "Patents" | "Posts" | "Publications" | "Documents" | "Custom";
71
71
  licenseType: string;
72
72
  commercialUse: string;
@@ -23,8 +23,8 @@ declare const dropCreateSchema: z.ZodEffects<z.ZodObject<{
23
23
  allowlistAddresses: z.ZodDefault<z.ZodString>;
24
24
  }, "strip", z.ZodTypeAny, {
25
25
  symbol: string;
26
- name: string;
27
26
  derivatives: string;
27
+ name: string;
28
28
  ipType: "Audio" | "Video" | "Art" | "Photography" | "NFT" | "Software" | "RWA" | "Patents" | "Posts" | "Publications" | "Documents" | "Custom";
29
29
  licenseType: string;
30
30
  commercialUse: string;
@@ -65,8 +65,8 @@ declare const dropCreateSchema: z.ZodEffects<z.ZodObject<{
65
65
  allowlistAddresses?: string | undefined;
66
66
  }>, {
67
67
  symbol: string;
68
- name: string;
69
68
  derivatives: string;
69
+ name: string;
70
70
  ipType: "Audio" | "Video" | "Art" | "Photography" | "NFT" | "Software" | "RWA" | "Patents" | "Posts" | "Publications" | "Documents" | "Custom";
71
71
  licenseType: string;
72
72
  commercialUse: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@medialane/ui",
3
- "version": "0.140.0",
3
+ "version": "0.140.1",
4
4
  "description": "Shared UI components for Medialane apps",
5
5
  "type": "module",
6
6
  "sideEffects": false,