@sanity/form-toolkit

3.0.133.0.14
~

Modified (9 files)

Index: package/dist/hubspot/index.js
===================================================================
--- package/dist/hubspot/index.js
+++ package/dist/hubspot/index.js
@@ -1,7 +1,8 @@
 import { t as createHandler } from "../create-handler-2pX-bzeN.js";
 import { asyncList } from "@sanity/sanity-plugin-async-list";
 import { definePlugin } from "sanity";
+import "@sanity/ui/styles.css";
 import { c } from "react/compiler-runtime";
 import { Card, Text } from "@sanity/ui";
 import { jsx, jsxs } from "react/jsx-runtime";
 const Option = (option) => {
Index: package/dist/mailchimp/index.js
===================================================================
--- package/dist/mailchimp/index.js
+++ package/dist/mailchimp/index.js
@@ -1,7 +1,8 @@
 import { t as createHandler } from "../create-handler-2pX-bzeN.js";
 import { asyncList } from "@sanity/sanity-plugin-async-list";
 import { definePlugin } from "sanity";
+import "@sanity/ui/styles.css";
 import { c } from "react/compiler-runtime";
 import { Card, Text } from "@sanity/ui";
 import { jsx, jsxs } from "react/jsx-runtime";
 import mailchimp from "@mailchimp/mailchimp_marketing";
Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@sanity/form-toolkit",
-  "version": "3.0.13",
+  "version": "3.0.14",
   "description": "Tool kit for integrating forms with a Sanity Studio",
   "keywords": [
     "sanity",
     "sanity-plugin"
@@ -31,12 +31,12 @@
   },
   "dependencies": {
     "@formium/client": "^0.1.4",
     "@mailchimp/mailchimp_marketing": "^3.0.80",
-    "@sanity/ui": "^3.5.1",
+    "@sanity/ui": "^4.0.0",
     "h3": "^1.15.11",
     "react-icons": "^5.7.0",
-    "@sanity/sanity-plugin-async-list": "^3.0.0"
+    "@sanity/sanity-plugin-async-list": "^3.0.1"
   },
   "devDependencies": {
     "@sanity/tsconfig": "^2.2.1",
     "@sanity/tsdown-config": "^0.21.2",
@@ -48,9 +48,9 @@
     "babel-plugin-react-compiler": "^1.0.0",
     "jsdom": "^29.1.1",
     "react": "^19.2.8",
     "react-dom": "^19.2.8",
-    "sanity": "^6.7.0",
+    "sanity": "^6.9.0",
     "tsdown": "^0.22.14"
   },
   "peerDependencies": {
     "react": "^19.2",
Index: package/dist/hubspot/index.d.ts.map
===================================================================
--- package/dist/hubspot/index.d.ts.map
+++ package/dist/hubspot/index.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/hubspot/create-handler.ts","../../src/hubspot/fetch-hubspot-data.ts","../../src/hubspot/index.ts"],"mappings":"AAGA,cAAa,mBAAc;EAAc;mBAAc,0BAAA,qBAAA,sBAAA,oBAAA,iBAAA,oBAAA,mBAAA;;;;;;;;;;;;;;;;;;;;;;;;KCHlD;EACH;EACA;GACC;;KAGE,eAAe;EAClB;;iBAEoB,mBAAkB;EAAS;IAAiB,QAAQ;UCHhE;EACR,cAAc;;cAuBH,+BAAY,OAAA"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/hubspot/create-handler.ts","../../src/hubspot/fetch-hubspot-data.ts","../../src/hubspot/index.ts"],"mappings":";cAGa,mBAAc;EAAc;mBAAc,0BAAA,qBAAA,sBAAA,oBAAA,iBAAA,oBAAA,mBAAA;;;;;;;;;;;;;;;;;;;;;;;;KCHlD;EACH;EACA;GACC;;KAGE,eAAe;EAClB;;iBAEoB,mBAAkB;EAAS;IAAiB,QAAQ;UCFhE;EACR,cAAc;;cAuBH,+BAAY,OAAA"}
\ No newline at end of file
Index: package/dist/mailchimp/index.d.ts.map
===================================================================
--- package/dist/mailchimp/index.d.ts.map
+++ package/dist/mailchimp/index.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/mailchimp/create-handler.ts","../../src/mailchimp/index.ts"],"mappings":"AAUA,iBAAsB,qBACpB,KACA;EAEA;EACA;IACE;cAyBS,mBAAgB;EAAW;EAAa;mBAAe,0BAAA,qBAAA,sBAAA,oBAAA,iBAAA,oBAAA,mBAAA;;;;;;;;;;;;;;;;;;;;;;;;UCnC1D;EACR,cAAc;;cAqBH,iCAAc,OAAA"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","names":[],"sources":["../../src/mailchimp/create-handler.ts","../../src/mailchimp/index.ts"],"mappings":";iBAUsB,qBACpB,KACA;EAEA;EACA;IACE;cAyBS,mBAAgB;EAAW;EAAa;mBAAe,0BAAA,qBAAA,sBAAA,oBAAA,iBAAA,oBAAA,mBAAA;;;;;;;;;;;;;;;;;;;;;;;;UClC1D;EACR,cAAc;;cAqBH,iCAAc,OAAA"}
\ No newline at end of file
Index: package/dist/hubspot/index.js.map
===================================================================
--- package/dist/hubspot/index.js.map
+++ package/dist/hubspot/index.js.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"index.js","names":["Card","Text","ReactElement","Option","option","$","_c","t0","name","t1","Symbol","for","background","t2","value","t3","t4","HubSpotForm","id","name","key","MappedResult","value","fetchHubSpotData","token","Promise","apiResponse","fetch","headers","Authorization","ok","console","error","statusText","results","json","map","result","Object","assign","e","createHandler","fetchHubSpotData","hubSpotHandler","token","asyncList","definePlugin","Option","hubSpotHandler","fetchHubSpotData","HubSpotInputConfig","url","URL","ExtendedOption","value","name","hubSpotInput","options","plugins","schemaType","loader","data","fetch","body","json","autocompleteProps","renderOption","option","renderValue"],"sources":["../../src/hubspot/components/option.tsx","../../src/hubspot/fetch-hubspot-data.ts","../../src/hubspot/create-handler.ts","../../src/hubspot/index.ts"],"sourcesContent":["import {Card, Text} from '@sanity/ui'\nimport type {ReactElement} from 'react'\n\nexport const Option = (option: {value: string; name: string}): ReactElement => {\n  return (\n    <Card data-as=\"button\" padding={3} radius={2} tone=\"inherit\">\n      <Text size={2} textOverflow=\"ellipsis\">\n        {option.name}\n      </Text>\n      <Card paddingTop={2} tone=\"inherit\" style={{background: 'inherit'}}>\n        <Text size={1} textOverflow=\"ellipsis\">\n          {`ID: ${option.value}`}\n        </Text>\n      </Card>\n    </Card>\n  )\n}\n","type HubSpotForm = {\n  id: string\n  name: string\n  [key: string]: unknown // Additional properties from the API response\n}\n\ntype MappedResult = HubSpotForm & {\n  value: string\n}\nexport async function fetchHubSpotData({token}: {token: string}): Promise<MappedResult[] | null> {\n  try {\n    const apiResponse = await fetch('https://api.hubapi.com/marketing/v3/forms/?limit=9999', {\n      headers: {\n        Authorization: `Bearer ${token}`,\n      },\n    })\n\n    if (!apiResponse.ok) {\n      console.error(`Failed to fetch data: ${apiResponse.statusText}`)\n      return null\n    }\n\n    const {results}: {results: HubSpotForm[]} = await apiResponse.json()\n\n    return results.map((result) => Object.assign(result, {value: result.id}))\n  } catch (e: unknown) {\n    console.error(e)\n    return null // Explicitly return null on error\n  }\n}\n","import createHandler from '../shared/create-handler'\nimport {fetchHubSpotData} from './fetch-hubspot-data'\n\nexport const hubSpotHandler = ({token}: {token: string}) => {\n  return createHandler(() => fetchHubSpotData({token}))\n}\n","import {asyncList} from '@sanity/sanity-plugin-async-list'\nimport {definePlugin} from 'sanity'\n\nimport {Option} from './components/option'\nimport {hubSpotHandler} from './create-handler'\nimport {fetchHubSpotData} from './fetch-hubspot-data'\ninterface HubSpotInputConfig {\n  url: string | URL\n}\n\n/**\n * Usage in `sanity.config.ts` (or .js)\n *\n * ```ts\n * import {defineConfig} from 'sanity'\n * import {hubSpotInput} from '@sanity/form-toolkit/hubspot'\n *\n * export default defineConfig({\n *   // ...\n *   plugins: [\n *    hubSpotInput({\n *      url: 'http://localhost:3000/api/hubspot'\n *    })\n *   ],\n * })\n * ```\n */\n\ntype ExtendedOption = {value: string; name: string}\nexport {fetchHubSpotData, hubSpotHandler}\nexport const hubSpotInput = definePlugin<HubSpotInputConfig>((options) => {\n  return {\n    name: 'sanity-plugin-form-toolkit_hubspot-input',\n    plugins: [\n      asyncList({\n        schemaType: 'hubSpotForm',\n        loader: async () => {\n          const data = await fetch(options.url)\n          const body = await data.json()\n          return body\n        },\n        autocompleteProps: {\n          renderOption: (option) =>\n            // oxlint-disable-next-line typescript-eslint/no-unsafe-type-assertion -- HubSpot loader returns options with a name property\n            Option(option as ExtendedOption),\n          renderValue(value, option) {\n            // @ts-expect-error can't extend default type?\n            return option?.name ?? value\n          },\n        },\n      }),\n    ],\n  }\n})\n"],"mappings":";;;;;;AAGA,MAAaG,UAASC,WAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAAAC;CAAA,AAAAF,EAAA,OAAAD,OAAAI,OAKTD,KAAAF,EAAA,MAFPE,KAAA,oBAAC,MAAD;EAAY,MAAA;EAAgB,cAAA;EACzBH,UAAAA,OAAMI;CADJ,CAAA,GAEEH,EAAA,KAAAD,OAAAI,MAAAH,EAAA,KAAAE;CAAA,IAAAE;CAAA,AAAAJ,EAAA,OAAAK,OAAAC,IAAA,2BAAA,KACoCF,KAAA,EAAAG,YAAa,UAAS,GAACP,EAAA,KAAAI,MAAAA,KAAAJ,EAAA;CAE7D,IAAAQ,KAAA,OAAOT,OAAMU,SAAQC;CAAA,AAAAV,EAAA,OAAAQ,KAEnBE,KAAAV,EAAA,MAJPU,KAAA,oBAAC,MAAD;EAAkB,YAAA;EAAQ,MAAA;EAAiB,OAAAN;EACzC,UAAA,oBAAC,MAAD;GAAY,MAAA;GAAgB,cAAA;GACzBI,UAAAA;EADE,CAAA;CADF,CAAA,GAIER,EAAA,KAAAQ,IAAAR,EAAA,KAAAU;CAAA,IAAAC;CACF,OADEX,EAAA,OAAAE,MAAAF,EAAA,OAAAU,MARTC,KAAA,qBAAC,MAAD;EAAc,WAAA;EAAkB,SAAA;EAAW,QAAA;EAAQ,MAAA;EAAnD,UAAA,CACET,IAGAQ,EAJG;KASEV,EAAA,KAAAE,IAAAF,EAAA,KAAAU,IAAAV,EAAA,KAAAW,MAAAA,KAAAX,EAAA,IATPW;AASO;ACLX,eAAsBO,iBAAiB,EAACC,SAAyD;CAC/F,IAAI;EACF,IAAME,cAAc,MAAMC,MAAM,yDAAyD,EACvFC,SAAS,EACPC,eAAe,UAAUL,QAC3B,EACF,CAAC;EAED,IAAI,CAACE,YAAYI,IAEf,OADAC,QAAQC,MAAM,yBAAyBN,YAAYO,YAAY,GACxD;EAGT,IAAM,EAACC,YAAqC,MAAMR,YAAYS,KAAK;EAEnE,OAAOD,QAAQE,KAAKC,WAAWC,OAAOC,OAAOF,QAAQ,EAACf,OAAOe,OAAOnB,GAAE,CAAC,CAAC;CAC1E,SAASsB,GAAY;EAEnB,OADAT,QAAQC,MAAMQ,CAAC,GACR;CACT;AACF;AC1BA,MAAaG,kBAAkB,EAACC,YACvBH,oBAAoBC,iBAAiB,EAACE,MAAK,CAAC,CAAC,GC0BzCY,eAAeV,cAAkCW,aACrD;CACLF,MAAM;CACNG,SAAS,CACPb,UAAU;EACRc,YAAY;EACZC,QAAQ,YAGCG,OADYF,MADAC,MAAML,QAAQN,GAAG,EAAA,CACZa,KAAK;EAG/BC,mBAAmB;GACjBC,eAAeC,WAEbpB,OAAOoB,MAAwB;GACjCC,YAAYd,OAAOa,QAAQ;IAEzB,OAAOA,QAAQZ,QAAQD;GACzB;EACF;CACF,CAAC,CAAC;AAEN,EACD"}
\ No newline at end of file
+{"version":3,"file":"index.js","names":["Card","Text","ReactElement","Option","option","$","_c","t0","name","t1","Symbol","for","background","t2","value","t3","t4","HubSpotForm","id","name","key","MappedResult","value","fetchHubSpotData","token","Promise","apiResponse","fetch","headers","Authorization","ok","console","error","statusText","results","json","map","result","Object","assign","e","asyncList","definePlugin","Option","hubSpotHandler","fetchHubSpotData","HubSpotInputConfig","url","URL","ExtendedOption","value","name","hubSpotInput","options","plugins","schemaType","loader","data","fetch","body","json","autocompleteProps","renderOption","option","renderValue"],"sources":["../../src/hubspot/components/option.tsx","../../src/hubspot/fetch-hubspot-data.ts","../../src/hubspot/create-handler.ts","../../src/hubspot/index.ts"],"sourcesContent":["import {Card, Text} from '@sanity/ui'\nimport type {ReactElement} from 'react'\n\nexport const Option = (option: {value: string; name: string}): ReactElement => {\n  return (\n    <Card data-as=\"button\" padding={3} radius={2} tone=\"inherit\">\n      <Text size={2} textOverflow=\"ellipsis\">\n        {option.name}\n      </Text>\n      <Card paddingTop={2} tone=\"inherit\" style={{background: 'inherit'}}>\n        <Text size={1} textOverflow=\"ellipsis\">\n          {`ID: ${option.value}`}\n        </Text>\n      </Card>\n    </Card>\n  )\n}\n","type HubSpotForm = {\n  id: string\n  name: string\n  [key: string]: unknown // Additional properties from the API response\n}\n\ntype MappedResult = HubSpotForm & {\n  value: string\n}\nexport async function fetchHubSpotData({token}: {token: string}): Promise<MappedResult[] | null> {\n  try {\n    const apiResponse = await fetch('https://api.hubapi.com/marketing/v3/forms/?limit=9999', {\n      headers: {\n        Authorization: `Bearer ${token}`,\n      },\n    })\n\n    if (!apiResponse.ok) {\n      console.error(`Failed to fetch data: ${apiResponse.statusText}`)\n      return null\n    }\n\n    const {results}: {results: HubSpotForm[]} = await apiResponse.json()\n\n    return results.map((result) => Object.assign(result, {value: result.id}))\n  } catch (e: unknown) {\n    console.error(e)\n    return null // Explicitly return null on error\n  }\n}\n","import createHandler from '../shared/create-handler'\nimport {fetchHubSpotData} from './fetch-hubspot-data'\n\nexport const hubSpotHandler = ({token}: {token: string}) => {\n  return createHandler(() => fetchHubSpotData({token}))\n}\n","import '@sanity/ui/styles.css'\nimport {asyncList} from '@sanity/sanity-plugin-async-list'\nimport {definePlugin} from 'sanity'\n\nimport {Option} from './components/option'\nimport {hubSpotHandler} from './create-handler'\nimport {fetchHubSpotData} from './fetch-hubspot-data'\ninterface HubSpotInputConfig {\n  url: string | URL\n}\n\n/**\n * Usage in `sanity.config.ts` (or .js)\n *\n * ```ts\n * import {defineConfig} from 'sanity'\n * import {hubSpotInput} from '@sanity/form-toolkit/hubspot'\n *\n * export default defineConfig({\n *   // ...\n *   plugins: [\n *    hubSpotInput({\n *      url: 'http://localhost:3000/api/hubspot'\n *    })\n *   ],\n * })\n * ```\n */\n\ntype ExtendedOption = {value: string; name: string}\nexport {fetchHubSpotData, hubSpotHandler}\nexport const hubSpotInput = definePlugin<HubSpotInputConfig>((options) => {\n  return {\n    name: 'sanity-plugin-form-toolkit_hubspot-input',\n    plugins: [\n      asyncList({\n        schemaType: 'hubSpotForm',\n        loader: async () => {\n          const data = await fetch(options.url)\n          const body = await data.json()\n          return body\n        },\n        autocompleteProps: {\n          renderOption: (option) =>\n            // oxlint-disable-next-line typescript-eslint/no-unsafe-type-assertion -- HubSpot loader returns options with a name property\n            Option(option as ExtendedOption),\n          renderValue(value, option) {\n            // @ts-expect-error can't extend default type?\n            return option?.name ?? value\n          },\n        },\n      }),\n    ],\n  }\n})\n"],"mappings":";;;;;;;AAGA,MAAaG,UAASC,WAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAAAC;CAAA,AAAAF,EAAA,OAAAD,OAAAI,OAKTD,KAAAF,EAAA,MAFPE,KAAA,oBAAC,MAAD;EAAY,MAAA;EAAgB,cAAA;EACzBH,UAAAA,OAAMI;CADJ,CAAA,GAEEH,EAAA,KAAAD,OAAAI,MAAAH,EAAA,KAAAE;CAAA,IAAAE;CAAA,AAAAJ,EAAA,OAAAK,OAAAC,IAAA,2BAAA,KACoCF,KAAA,EAAAG,YAAa,UAAS,GAACP,EAAA,KAAAI,MAAAA,KAAAJ,EAAA;CAE7D,IAAAQ,KAAA,OAAOT,OAAMU,SAAQC;CAAA,AAAAV,EAAA,OAAAQ,KAEnBE,KAAAV,EAAA,MAJPU,KAAA,oBAAC,MAAD;EAAkB,YAAA;EAAQ,MAAA;EAAiB,OAAAN;EACzC,UAAA,oBAAC,MAAD;GAAY,MAAA;GAAgB,cAAA;GACzBI,UAAAA;EADE,CAAA;CADF,CAAA,GAIER,EAAA,KAAAQ,IAAAR,EAAA,KAAAU;CAAA,IAAAC;CACF,OADEX,EAAA,OAAAE,MAAAF,EAAA,OAAAU,MARTC,KAAA,qBAAC,MAAD;EAAc,WAAA;EAAkB,SAAA;EAAW,QAAA;EAAQ,MAAA;EAAnD,UAAA,CACET,IAGAQ,EAJG;KASEV,EAAA,KAAAE,IAAAF,EAAA,KAAAU,IAAAV,EAAA,KAAAW,MAAAA,KAAAX,EAAA,IATPW;AASO;ACLX,eAAsBO,iBAAiB,EAACC,SAAyD;CAC/F,IAAI;EACF,IAAME,cAAc,MAAMC,MAAM,yDAAyD,EACvFC,SAAS,EACPC,eAAe,UAAUL,QAC3B,EACF,CAAC;EAED,IAAI,CAACE,YAAYI,IAEf,OADAC,QAAQC,MAAM,yBAAyBN,YAAYO,YAAY,GACxD;EAGT,IAAM,EAACC,YAAqC,MAAMR,YAAYS,KAAK;EAEnE,OAAOD,QAAQE,KAAKC,WAAWC,OAAOC,OAAOF,QAAQ,EAACf,OAAOe,OAAOnB,GAAE,CAAC,CAAC;CAC1E,SAASsB,GAAY;EAEnB,OADAT,QAAQC,MAAMQ,CAAC,GACR;CACT;AACF;AC1BA,MAAa,kBAAkB,EAAC,YACvB,oBAAoB,iBAAiB,EAAC,MAAK,CAAC,CAAC,GC2BzCY,eAAeV,cAAkCW,aACrD;CACLF,MAAM;CACNG,SAAS,CACPb,UAAU;EACRc,YAAY;EACZC,QAAQ,YAGCG,OADYF,MADAC,MAAML,QAAQN,GAAG,EAAA,CACZa,KAAK;EAG/BC,mBAAmB;GACjBC,eAAeC,WAEbpB,OAAOoB,MAAwB;GACjCC,YAAYd,OAAOa,QAAQ;IAEzB,OAAOA,QAAQZ,QAAQD;GACzB;EACF;CACF,CAAC,CAAC;AAEN,EACD"}
\ No newline at end of file
Index: package/dist/mailchimp/index.js.map
===================================================================
--- package/dist/mailchimp/index.js.map
+++ package/dist/mailchimp/index.js.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"index.js","names":["Card","Text","ReactElement","Option","option","$","_c","t0","form","header","text","value","t1","t2","Symbol","for","background","t3","list","name","stats","member_count","t4","t5","mailchimp","createHandler","MailchimpSignupForm","signup_form_url","key","fetchMailchimpData","server","Promise","setConfig","apiKey","response","lists","getAllLists","Error","signupFormsPerList","all","map","list","signup_forms","signupForms","getListSignupForms","id","form","value","flat","mailchimpHandler","keys","asyncList","definePlugin","Option","mailchimpHandler","fetchMailchimpData","MailchimpInputConfig","url","URL","mailchimpInput","options","name","plugins","schemaType","loader","data","fetch","body","json","autocompleteProps","renderOption","option"],"sources":["../../src/mailchimp/components/option.tsx","../../src/mailchimp/create-handler.ts","../../src/mailchimp/index.ts"],"sourcesContent":["import {Card, Text} from '@sanity/ui'\nimport type {ReactElement} from 'react'\n\nexport const Option = (option: {\n  value: string\n  form: {\n    header: {\n      text?: string\n    }\n  }\n  list: {\n    name: string\n    stats: {\n      member_count: number\n    }\n  }\n}): ReactElement => {\n  return (\n    <Card data-as=\"button\" padding={3} radius={2} tone=\"inherit\">\n      <Text size={2} textOverflow=\"ellipsis\">\n        {`${option.form.header.text ? `${option.form.header.text} - ` : ``}${option.value}`}\n      </Text>\n      <Card paddingTop={2} tone=\"inherit\" style={{background: 'inherit'}}>\n        <Text size={1} textOverflow=\"ellipsis\">\n          {`${option.list.name} - ${option.list.stats.member_count} member${option.list.stats.member_count == 1 ? '' : 's'}`}\n        </Text>\n      </Card>\n    </Card>\n  )\n}\n","import mailchimp from '@mailchimp/mailchimp_marketing'\n\nimport createHandler from '../shared/create-handler'\n\ninterface MailchimpSignupForm {\n  signup_form_url: string\n  [key: string]: unknown\n}\n\n// Fetch from Mailchimp's API\nexport async function fetchMailchimpData({\n  key,\n  server,\n}: {\n  key: string\n  server: string\n}): Promise<unknown> {\n  mailchimp.setConfig({\n    apiKey: key,\n    server: server,\n  })\n  const response = await mailchimp.lists.getAllLists()\n  if (!('lists' in response)) {\n    throw new Error('Failed to fetch Mailchimp lists')\n  }\n  const signupFormsPerList = await Promise.all(\n    response.lists.map(async (list) => {\n      const {signup_forms: signupForms}: {signup_forms: MailchimpSignupForm[]} =\n        // @ts-expect-error getListSignupForms is missing from the mailchimp typings\n        await mailchimp.lists.getListSignupForms(list.id)\n      return signupForms.map((form) => ({\n        list,\n        form,\n        value: form.signup_form_url,\n      }))\n    }),\n  )\n  return signupFormsPerList.flat()\n}\n\n// Create the Mailchimp handler for a specific key and server\nexport const mailchimpHandler = (keys: {key: string; server: string}) => {\n  return createHandler(() => fetchMailchimpData(keys))\n}\n","import {asyncList} from '@sanity/sanity-plugin-async-list'\nimport {definePlugin} from 'sanity'\n\nimport {Option} from './components/option'\nimport {mailchimpHandler} from './create-handler'\nimport {fetchMailchimpData} from './create-handler'\ninterface MailchimpInputConfig {\n  url: string | URL\n}\n\n/**\n * Usage in `sanity.config.ts` (or .js)\n *\n * ```ts\n * import {defineConfig} from 'sanity'\n * import {mailchimpInput} from '@sanity/form-toolkit/mailchimp'\n *\n * export default defineConfig({\n *   // ...\n *   plugins: [\n *    mailchimpInput({\n *      url: 'http://localhost:3000/api/mailchimp'\n *    })\n *   ],\n * })\n * ```\n */\nexport {fetchMailchimpData, mailchimpHandler}\nexport const mailchimpInput = definePlugin<MailchimpInputConfig>((options) => {\n  return {\n    name: 'sanity-plugin-form-toolkit_mailchimp-input',\n    plugins: [\n      asyncList({\n        schemaType: 'mailchimpForm',\n        loader: async () => {\n          const data = await fetch(options.url)\n          const body = await data.json()\n          return body\n        },\n        autocompleteProps: {\n          //@ts-expect-error incorrect typing on props?\n          renderOption: (option) => Option(option),\n        },\n      }),\n    ],\n  }\n})\n"],"mappings":";;;;;;;AAGA,MAAaG,UAASC,WAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAiBbC,KAAA,GAAGH,OAAMI,KAAKC,OAAOC,OAAlB,GAA6BN,OAAMI,KAAKC,OAAOC,KAAK,OAApD,KAAiEN,OAAMO,SAAQC;CAAA,AAAAP,EAAA,OAAAE,KAC9EK,KAAAP,EAAA,MAFPO,KAAA,oBAAC,MAAD;EAAY,MAAA;EAAgB,cAAA;EACzBL,UAAAA;CADE,CAAA,GAEEF,EAAA,KAAAE,IAAAF,EAAA,KAAAO;CAAA,IAAAC;CAAA,AAAAR,EAAA,OAAAS,OAAAC,IAAA,2BAAA,KACoCF,KAAA,EAAAG,YAAa,UAAS,GAACX,EAAA,KAAAQ,MAAAA,KAAAR,EAAA;CAE7D,IAAAY,KAAA,GAAGb,OAAMc,KAAKC,KAAK,KAAMf,OAAMc,KAAKE,MAAMC,aAAa,SAAUjB,OAAMc,KAAKE,MAAMC,gBAAiB,IAAlC,KAAA,OAAgDC;CAAA,AAAAjB,EAAA,OAAAY,KAE/GK,KAAAjB,EAAA,MAJPiB,KAAA,oBAAC,MAAD;EAAkB,YAAA;EAAQ,MAAA;EAAiB,OAAAT;EACzC,UAAA,oBAAC,MAAD;GAAY,MAAA;GAAgB,cAAA;GACzBI,UAAAA;EADE,CAAA;CADF,CAAA,GAIEZ,EAAA,KAAAY,IAAAZ,EAAA,KAAAiB;CAAA,IAAAC;CACF,OADElB,EAAA,OAAAO,MAAAP,EAAA,OAAAiB,MARTC,KAAA,qBAAC,MAAD;EAAc,WAAA;EAAkB,SAAA;EAAW,QAAA;EAAQ,MAAA;EAAnD,UAAA,CACEX,IAGAU,EAJG;KASEjB,EAAA,KAAAO,IAAAP,EAAA,KAAAiB,IAAAjB,EAAA,KAAAkB,MAAAA,KAAAlB,EAAA,IATPkB;AASO;ACjBX,eAAsBM,mBAAmB,EACvCD,KACAE,UAImB;CACnBN,UAAUQ,UAAU;EAClBC,QAAQL;EACAE;CACV,CAAC;CACD,IAAMI,WAAW,MAAMV,UAAUW,MAAMC,YAAY;CACnD,IAAI,EAAE,WAAWF,WACf,MAAUG,MAAM,iCAAiC;CAcnD,QAAOC,MAZ0BP,QAAQQ,IACvCL,SAASC,MAAMK,IAAI,OAAOC,SAAS;EACjC,IAAM,EAACC,cAAcC,gBAEnB,MAAMnB,UAAUW,MAAMS,mBAAmBH,KAAKI,EAAE;EAClD,OAAOF,YAAYH,KAAKM,UAAU;GAChCL;GACAK;GACAC,OAAOD,KAAKnB;EACd,EAAE;CACJ,CAAC,CACH,EAAA,CAC0BqB,KAAK;AACjC;AAGA,MAAaC,oBAAoBC,SACxBzB,oBAAoBI,mBAAmBqB,IAAI,CAAC,GCdxCS,iBAAiBP,cAAoCQ,aACzD;CACLC,MAAM;CACNC,SAAS,CACPX,UAAU;EACRY,YAAY;EACZC,QAAQ,YAGCG,OADYF,MADAC,MAAMN,QAAQH,GAAG,EAAA,CACZW,KAAK;EAG/BC,mBAAmB,EAEjBC,eAAeC,WAAWlB,OAAOkB,MAAM,EACzC;CACF,CAAC,CAAC;AAEN,EACD"}
\ No newline at end of file
+{"version":3,"file":"index.js","names":["Card","Text","ReactElement","Option","option","$","_c","t0","form","header","text","value","t1","t2","Symbol","for","background","t3","list","name","stats","member_count","t4","t5","mailchimp","createHandler","MailchimpSignupForm","signup_form_url","key","fetchMailchimpData","server","Promise","setConfig","apiKey","response","lists","getAllLists","Error","signupFormsPerList","all","map","list","signup_forms","signupForms","getListSignupForms","id","form","value","flat","mailchimpHandler","keys","asyncList","definePlugin","Option","mailchimpHandler","fetchMailchimpData","MailchimpInputConfig","url","URL","mailchimpInput","options","name","plugins","schemaType","loader","data","fetch","body","json","autocompleteProps","renderOption","option"],"sources":["../../src/mailchimp/components/option.tsx","../../src/mailchimp/create-handler.ts","../../src/mailchimp/index.ts"],"sourcesContent":["import {Card, Text} from '@sanity/ui'\nimport type {ReactElement} from 'react'\n\nexport const Option = (option: {\n  value: string\n  form: {\n    header: {\n      text?: string\n    }\n  }\n  list: {\n    name: string\n    stats: {\n      member_count: number\n    }\n  }\n}): ReactElement => {\n  return (\n    <Card data-as=\"button\" padding={3} radius={2} tone=\"inherit\">\n      <Text size={2} textOverflow=\"ellipsis\">\n        {`${option.form.header.text ? `${option.form.header.text} - ` : ``}${option.value}`}\n      </Text>\n      <Card paddingTop={2} tone=\"inherit\" style={{background: 'inherit'}}>\n        <Text size={1} textOverflow=\"ellipsis\">\n          {`${option.list.name} - ${option.list.stats.member_count} member${option.list.stats.member_count == 1 ? '' : 's'}`}\n        </Text>\n      </Card>\n    </Card>\n  )\n}\n","import mailchimp from '@mailchimp/mailchimp_marketing'\n\nimport createHandler from '../shared/create-handler'\n\ninterface MailchimpSignupForm {\n  signup_form_url: string\n  [key: string]: unknown\n}\n\n// Fetch from Mailchimp's API\nexport async function fetchMailchimpData({\n  key,\n  server,\n}: {\n  key: string\n  server: string\n}): Promise<unknown> {\n  mailchimp.setConfig({\n    apiKey: key,\n    server: server,\n  })\n  const response = await mailchimp.lists.getAllLists()\n  if (!('lists' in response)) {\n    throw new Error('Failed to fetch Mailchimp lists')\n  }\n  const signupFormsPerList = await Promise.all(\n    response.lists.map(async (list) => {\n      const {signup_forms: signupForms}: {signup_forms: MailchimpSignupForm[]} =\n        // @ts-expect-error getListSignupForms is missing from the mailchimp typings\n        await mailchimp.lists.getListSignupForms(list.id)\n      return signupForms.map((form) => ({\n        list,\n        form,\n        value: form.signup_form_url,\n      }))\n    }),\n  )\n  return signupFormsPerList.flat()\n}\n\n// Create the Mailchimp handler for a specific key and server\nexport const mailchimpHandler = (keys: {key: string; server: string}) => {\n  return createHandler(() => fetchMailchimpData(keys))\n}\n","import '@sanity/ui/styles.css'\nimport {asyncList} from '@sanity/sanity-plugin-async-list'\nimport {definePlugin} from 'sanity'\n\nimport {Option} from './components/option'\nimport {mailchimpHandler} from './create-handler'\nimport {fetchMailchimpData} from './create-handler'\ninterface MailchimpInputConfig {\n  url: string | URL\n}\n\n/**\n * Usage in `sanity.config.ts` (or .js)\n *\n * ```ts\n * import {defineConfig} from 'sanity'\n * import {mailchimpInput} from '@sanity/form-toolkit/mailchimp'\n *\n * export default defineConfig({\n *   // ...\n *   plugins: [\n *    mailchimpInput({\n *      url: 'http://localhost:3000/api/mailchimp'\n *    })\n *   ],\n * })\n * ```\n */\nexport {fetchMailchimpData, mailchimpHandler}\nexport const mailchimpInput = definePlugin<MailchimpInputConfig>((options) => {\n  return {\n    name: 'sanity-plugin-form-toolkit_mailchimp-input',\n    plugins: [\n      asyncList({\n        schemaType: 'mailchimpForm',\n        loader: async () => {\n          const data = await fetch(options.url)\n          const body = await data.json()\n          return body\n        },\n        autocompleteProps: {\n          //@ts-expect-error incorrect typing on props?\n          renderOption: (option) => Option(option),\n        },\n      }),\n    ],\n  }\n})\n"],"mappings":";;;;;;;;AAGA,MAAaG,UAASC,WAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAiBbC,KAAA,GAAGH,OAAMI,KAAKC,OAAOC,OAAlB,GAA6BN,OAAMI,KAAKC,OAAOC,KAAK,OAApD,KAAiEN,OAAMO,SAAQC;CAAA,AAAAP,EAAA,OAAAE,KAC9EK,KAAAP,EAAA,MAFPO,KAAA,oBAAC,MAAD;EAAY,MAAA;EAAgB,cAAA;EACzBL,UAAAA;CADE,CAAA,GAEEF,EAAA,KAAAE,IAAAF,EAAA,KAAAO;CAAA,IAAAC;CAAA,AAAAR,EAAA,OAAAS,OAAAC,IAAA,2BAAA,KACoCF,KAAA,EAAAG,YAAa,UAAS,GAACX,EAAA,KAAAQ,MAAAA,KAAAR,EAAA;CAE7D,IAAAY,KAAA,GAAGb,OAAMc,KAAKC,KAAK,KAAMf,OAAMc,KAAKE,MAAMC,aAAa,SAAUjB,OAAMc,KAAKE,MAAMC,gBAAiB,IAAlC,KAAA,OAAgDC;CAAA,AAAAjB,EAAA,OAAAY,KAE/GK,KAAAjB,EAAA,MAJPiB,KAAA,oBAAC,MAAD;EAAkB,YAAA;EAAQ,MAAA;EAAiB,OAAAT;EACzC,UAAA,oBAAC,MAAD;GAAY,MAAA;GAAgB,cAAA;GACzBI,UAAAA;EADE,CAAA;CADF,CAAA,GAIEZ,EAAA,KAAAY,IAAAZ,EAAA,KAAAiB;CAAA,IAAAC;CACF,OADElB,EAAA,OAAAO,MAAAP,EAAA,OAAAiB,MARTC,KAAA,qBAAC,MAAD;EAAc,WAAA;EAAkB,SAAA;EAAW,QAAA;EAAQ,MAAA;EAAnD,UAAA,CACEX,IAGAU,EAJG;KASEjB,EAAA,KAAAO,IAAAP,EAAA,KAAAiB,IAAAjB,EAAA,KAAAkB,MAAAA,KAAAlB,EAAA,IATPkB;AASO;ACjBX,eAAsBM,mBAAmB,EACvCD,KACAE,UAImB;CACnBN,UAAUQ,UAAU;EAClBC,QAAQL;EACAE;CACV,CAAC;CACD,IAAMI,WAAW,MAAMV,UAAUW,MAAMC,YAAY;CACnD,IAAI,EAAE,WAAWF,WACf,MAAUG,MAAM,iCAAiC;CAcnD,QAAOC,MAZ0BP,QAAQQ,IACvCL,SAASC,MAAMK,IAAI,OAAOC,SAAS;EACjC,IAAM,EAACC,cAAcC,gBAEnB,MAAMnB,UAAUW,MAAMS,mBAAmBH,KAAKI,EAAE;EAClD,OAAOF,YAAYH,KAAKM,UAAU;GAChCL;GACAK;GACAC,OAAOD,KAAKnB;EACd,EAAE;CACJ,CAAC,CACH,EAAA,CAC0BqB,KAAK;AACjC;AAGA,MAAaC,oBAAoBC,SACxBzB,oBAAoBI,mBAAmBqB,IAAI,CAAC,GCbxCS,iBAAiBP,cAAoCQ,aACzD;CACLC,MAAM;CACNC,SAAS,CACPX,UAAU;EACRY,YAAY;EACZC,QAAQ,YAGCG,OADYF,MADAC,MAAMN,QAAQH,GAAG,EAAA,CACZW,KAAK;EAG/BC,mBAAmB,EAEjBC,eAAeC,WAAWlB,OAAOkB,MAAM,EACzC;CACF,CAAC,CAAC;AAEN,EACD"}
\ No newline at end of file
Index: package/dist/hubspot/index.d.ts
===================================================================
--- package/dist/hubspot/index.d.ts
+++ package/dist/hubspot/index.d.ts
@@ -1,4 +1,5 @@
+import "@sanity/ui/styles.css";
 declare const hubSpotHandler: ({ token }: {
   token: string;
 }) => import("h3").EventHandler<import("h3").EventHandlerRequest, Promise<unknown>> | ((req: import("http").IncomingMessage, res: import("http").ServerResponse) => Promise<void>) | {
   GET: ({ request }: {
Index: package/dist/mailchimp/index.d.ts
===================================================================
--- package/dist/mailchimp/index.d.ts
+++ package/dist/mailchimp/index.d.ts
@@ -1,4 +1,5 @@
+import "@sanity/ui/styles.css";
 declare function fetchMailchimpData({ key, server }: {
   key: string;
   server: string;
 }): Promise<unknown>;