@plasmicapp/react-web 0.2.331 → 0.2.333

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 (30) hide show
  1. package/dist/all.d.ts +3 -2
  2. package/dist/index.cjs.js +21 -0
  3. package/dist/index.cjs.js.map +1 -1
  4. package/dist/nextjs-app-router/react-server/index.d.ts +2 -2
  5. package/dist/react-web.esm.js +21 -0
  6. package/dist/react-web.esm.js.map +1 -1
  7. package/dist/render/PlasmicHead/index.d.ts +2 -8
  8. package/lib/nextjs-app-router/react-server/index.cjs.js +8 -0
  9. package/lib/nextjs-app-router/react-server/index.cjs.js.map +1 -1
  10. package/lib/nextjs-app-router/react-server/index.d.ts +2 -2
  11. package/lib/nextjs-app-router/react-server/index.js +1 -1
  12. package/lib/nextjs-app-router/react-server/index.js.map +1 -1
  13. package/package.json +8 -8
  14. package/skinny/dist/index.js +3 -3
  15. package/skinny/dist/nextjs-app-router/react-server/index.d.ts +2 -2
  16. package/skinny/dist/plume/checkbox/index.js +3 -2
  17. package/skinny/dist/plume/checkbox/index.js.map +1 -1
  18. package/skinny/dist/plume/menu/index.js +3 -2
  19. package/skinny/dist/plume/menu/index.js.map +1 -1
  20. package/skinny/dist/plume/menu-button/index.js +3 -2
  21. package/skinny/dist/plume/menu-button/index.js.map +1 -1
  22. package/skinny/dist/plume/select/index.js +2 -1
  23. package/skinny/dist/plume/select/index.js.map +1 -1
  24. package/skinny/dist/plume/switch/index.js +3 -2
  25. package/skinny/dist/plume/switch/index.js.map +1 -1
  26. package/skinny/dist/render/PlasmicHead/index.d.ts +2 -8
  27. package/skinny/dist/render/PlasmicHead/index.js +22 -0
  28. package/skinny/dist/render/PlasmicHead/index.js.map +1 -1
  29. package/skinny/dist/{ssr-145c6cd2.js → ssr-f37a883d.js} +2 -2
  30. package/skinny/dist/{ssr-145c6cd2.js.map → ssr-f37a883d.js.map} +1 -1
@@ -1,12 +1,7 @@
1
+ import * as plasmicQuery from "@plasmicapp/query";
1
2
  import * as React from "react";
2
3
  export declare const PlasmicHeadContext: React.Context<React.ComponentType<any> | undefined>;
3
- type PlasmicHeadProps = {
4
- title?: string;
5
- description?: string;
6
- image?: string;
7
- canonical?: string;
8
- };
9
- export declare function PlasmicHead(props: PlasmicHeadProps): React.JSX.Element | null;
4
+ export declare function PlasmicHead(props: plasmicQuery.HeadMetadata): React.JSX.Element | null;
10
5
  export declare const plasmicHeadMeta: {
11
6
  name: string;
12
7
  displayName: string;
@@ -34,4 +29,3 @@ export declare const plasmicHeadMeta: {
34
29
  };
35
30
  };
36
31
  };
37
- export {};
@@ -127,9 +127,17 @@ function __EXPERMIENTAL__withExtractPlasmicQueryData(pageRootElt, _a) {
127
127
  });
128
128
  }
129
129
 
130
+ Object.defineProperty(exports, '__EXPERMIENTAL__fetchExtractedHeadMetadata', {
131
+ enumerable: true,
132
+ get: function () { return reactServer.fetchExtractedHeadMetadata; }
133
+ });
130
134
  Object.defineProperty(exports, '__EXPERMIENTAL__fetchExtractedQueryData', {
131
135
  enumerable: true,
132
136
  get: function () { return reactServer.fetchExtractedQueryData; }
133
137
  });
138
+ Object.defineProperty(exports, '__EXPERMIENTAL__withPlasmicMetadata', {
139
+ enumerable: true,
140
+ get: function () { return reactServer.withPlasmicMetadata; }
141
+ });
134
142
  exports.__EXPERMIENTAL__withExtractPlasmicQueryData = __EXPERMIENTAL__withExtractPlasmicQueryData;
135
143
  //# sourceMappingURL=index.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../../src/nextjs-app-router/react-server/index.tsx"],"sourcesContent":["import { ExtractPlasmicQueryData } from \"@plasmicapp/nextjs-app-router\";\nimport { fetchExtractedQueryData } from \"@plasmicapp/nextjs-app-router/react-server\";\nimport { PlasmicQueryDataProvider } from \"@plasmicapp/query\";\nimport React from \"react\";\n\nexport { fetchExtractedQueryData as __EXPERMIENTAL__fetchExtractedQueryData };\n\n/**\n * Helper function to extract Plasmic data.\n *\n * Given React element for your page and current pathname + search\n * params, returns:\n * - The extracted query data, if `plasmicSsr` search param is set\n * - A copy of the page element wraped within PlasmicQueryDataProvider to provide the extracted query data, otherwise\n */\nexport async function __EXPERMIENTAL__withExtractPlasmicQueryData(\n pageRootElt: React.ReactElement,\n {\n pathname,\n searchParams,\n }: {\n pathname: string;\n searchParams: Record<string, string | string[]> | undefined;\n }\n) {\n const isPlasmicSsr =\n !!searchParams?.[\"plasmicSsr\"] && searchParams?.[\"plasmicSsr\"] !== \"false\";\n\n // If `plasmicSsr` search param is set, just wrap the page inside\n // <ExtractPlasmicQueryData>\n if (isPlasmicSsr) {\n return <ExtractPlasmicQueryData>{pageRootElt}</ExtractPlasmicQueryData>;\n }\n\n // Otherwise, fetch the same endpoint, but setting `plasmicSsr` to extract the\n // query data.\n const prepassHost =\n process.env.PLASMIC_PREPASS_HOST ??\n (process.env.VERCEL_URL && `https://${process.env.VERCEL_URL}`) ??\n `http://localhost:${process.env.PORT ?? 3000}`;\n\n // Build a copy of the search params\n const newSearchParams = new URLSearchParams(\n Object.entries(searchParams ?? {}).flatMap(([key, values]) =>\n Array.isArray(values) ? values.map((v) => [key, v]) : [[key, values]]\n )\n );\n\n // Set `plasmicSsr` search param to indicate you are using this endpoint\n // to extract query data.\n newSearchParams.set(\"plasmicSsr\", \"true\");\n\n if (process.env.VERCEL_AUTOMATION_BYPASS_SECRET) {\n // If protection bypass is enabled, use it to ensure fetching from\n // the SSR endpoint will not return the authentication page HTML\n newSearchParams.set(\n \"x-vercel-protection-bypass\",\n process.env.VERCEL_AUTOMATION_BYPASS_SECRET\n );\n }\n\n // Fetch the data from the endpoint using the new search params\n const prefetchedQueryData = await fetchExtractedQueryData(\n `${prepassHost}${pathname}?${newSearchParams.toString()}`\n );\n\n // Provide the query data to your page\n return (\n <PlasmicQueryDataProvider prefetchedCache={prefetchedQueryData}>\n {pageRootElt}\n </PlasmicQueryDataProvider>\n );\n}\n"],"names":["ExtractPlasmicQueryData","fetchExtractedQueryData","PlasmicQueryDataProvider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA;;;;;;;AAOG;AACmB,SAAA,2CAA2C,CAC/D,WAA+B,EAC/B,EAMC,EAAA;;QALC,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,YAAY,GAAA,EAAA,CAAA,YAAA,CAAA;;;;;;oBAMR,YAAY,GAChB,CAAC,EAAC,YAAY,aAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAG,YAAY,CAAC,CAAA,IAAI,CAAA,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAG,YAAY,CAAC,MAAK,OAAO,CAAC;;;AAI7E,oBAAA,IAAI,YAAY,EAAE;AAChB,wBAAA,OAAA,CAAA,CAAA,aAAO,KAAC,CAAA,aAAA,CAAAA,uCAAuB,EAAE,IAAA,EAAA,WAAW,CAA2B,CAAC,CAAA;AACzE,qBAAA;AAIK,oBAAA,WAAW,GACf,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,IAC/B,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,UAAA,CAAA,MAAA,CAAW,OAAO,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC,mCAC/D,mBAAoB,CAAA,MAAA,CAAA,CAAA,EAAA,GAAA,OAAO,CAAC,GAAG,CAAC,IAAI,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,IAAI,CAAE,CAAC;oBAG3C,eAAe,GAAG,IAAI,eAAe,CACzC,MAAM,CAAC,OAAO,CAAC,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAZ,KAAA,CAAA,GAAA,YAAY,GAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAC,EAAa,EAAA;AAAb,wBAAA,IAAA,EAAA,GAAA,aAAa,EAAZ,GAAG,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,MAAM,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AACtD,wBAAA,OAAA,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,EAAK,EAAA,OAAA,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA,EAAA,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;qBAAA,CACtE,CACF,CAAC;;;AAIF,oBAAA,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAE1C,oBAAA,IAAI,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE;;;wBAG/C,eAAe,CAAC,GAAG,CACjB,4BAA4B,EAC5B,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAC5C,CAAC;AACH,qBAAA;AAG2B,oBAAA,OAAA,CAAA,CAAA,YAAMC,mCAAuB,CACvD,EAAG,CAAA,MAAA,CAAA,WAAW,CAAG,CAAA,MAAA,CAAA,QAAQ,EAAI,GAAA,CAAA,CAAA,MAAA,CAAA,eAAe,CAAC,QAAQ,EAAE,CAAE,CAC1D,CAAA,CAAA;;AAFK,oBAAA,mBAAmB,GAAG,EAE3B,CAAA,IAAA,EAAA,CAAA;;oBAGD,OAAO,CAAA,CAAA,cACL,KAAC,CAAA,aAAA,CAAAC,8BAAwB,EAAC,EAAA,eAAe,EAAE,mBAAmB,EAC3D,EAAA,WAAW,CACa,EAC3B,CAAA;;;;AACH;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../../src/nextjs-app-router/react-server/index.tsx"],"sourcesContent":["import { ExtractPlasmicQueryData } from \"@plasmicapp/nextjs-app-router\";\nimport {\n fetchExtractedHeadMetadata,\n fetchExtractedQueryData,\n withPlasmicMetadata,\n} from \"@plasmicapp/nextjs-app-router/react-server\";\nimport { PlasmicQueryDataProvider } from \"@plasmicapp/query\";\nimport React from \"react\";\n\nexport {\n fetchExtractedQueryData as __EXPERMIENTAL__fetchExtractedQueryData,\n fetchExtractedHeadMetadata as __EXPERMIENTAL__fetchExtractedHeadMetadata,\n withPlasmicMetadata as __EXPERMIENTAL__withPlasmicMetadata,\n};\n\n/**\n * Helper function to extract Plasmic data.\n *\n * Given React element for your page and current pathname + search\n * params, returns:\n * - The extracted query data, if `plasmicSsr` search param is set\n * - A copy of the page element wraped within PlasmicQueryDataProvider to provide the extracted query data, otherwise\n */\nexport async function __EXPERMIENTAL__withExtractPlasmicQueryData(\n pageRootElt: React.ReactElement,\n {\n pathname,\n searchParams,\n }: {\n pathname: string;\n searchParams: Record<string, string | string[]> | undefined;\n }\n) {\n const isPlasmicSsr =\n !!searchParams?.[\"plasmicSsr\"] && searchParams?.[\"plasmicSsr\"] !== \"false\";\n\n // If `plasmicSsr` search param is set, just wrap the page inside\n // <ExtractPlasmicQueryData>\n if (isPlasmicSsr) {\n return <ExtractPlasmicQueryData>{pageRootElt}</ExtractPlasmicQueryData>;\n }\n\n // Otherwise, fetch the same endpoint, but setting `plasmicSsr` to extract the\n // query data.\n const prepassHost =\n process.env.PLASMIC_PREPASS_HOST ??\n (process.env.VERCEL_URL && `https://${process.env.VERCEL_URL}`) ??\n `http://localhost:${process.env.PORT ?? 3000}`;\n\n // Build a copy of the search params\n const newSearchParams = new URLSearchParams(\n Object.entries(searchParams ?? {}).flatMap(([key, values]) =>\n Array.isArray(values) ? values.map((v) => [key, v]) : [[key, values]]\n )\n );\n\n // Set `plasmicSsr` search param to indicate you are using this endpoint\n // to extract query data.\n newSearchParams.set(\"plasmicSsr\", \"true\");\n\n if (process.env.VERCEL_AUTOMATION_BYPASS_SECRET) {\n // If protection bypass is enabled, use it to ensure fetching from\n // the SSR endpoint will not return the authentication page HTML\n newSearchParams.set(\n \"x-vercel-protection-bypass\",\n process.env.VERCEL_AUTOMATION_BYPASS_SECRET\n );\n }\n\n // Fetch the data from the endpoint using the new search params\n const prefetchedQueryData = await fetchExtractedQueryData(\n `${prepassHost}${pathname}?${newSearchParams.toString()}`\n );\n\n // Provide the query data to your page\n return (\n <PlasmicQueryDataProvider prefetchedCache={prefetchedQueryData}>\n {pageRootElt}\n </PlasmicQueryDataProvider>\n );\n}\n"],"names":["ExtractPlasmicQueryData","fetchExtractedQueryData","PlasmicQueryDataProvider"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA;;;;;;;AAOG;AACmB,SAAA,2CAA2C,CAC/D,WAA+B,EAC/B,EAMC,EAAA;;QALC,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,YAAY,GAAA,EAAA,CAAA,YAAA,CAAA;;;;;;oBAMR,YAAY,GAChB,CAAC,EAAC,YAAY,aAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAG,YAAY,CAAC,CAAA,IAAI,CAAA,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAG,YAAY,CAAC,MAAK,OAAO,CAAC;;;AAI7E,oBAAA,IAAI,YAAY,EAAE;AAChB,wBAAA,OAAA,CAAA,CAAA,aAAO,KAAC,CAAA,aAAA,CAAAA,uCAAuB,EAAE,IAAA,EAAA,WAAW,CAA2B,CAAC,CAAA;AACzE,qBAAA;AAIK,oBAAA,WAAW,GACf,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,IAC/B,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,UAAA,CAAA,MAAA,CAAW,OAAO,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC,mCAC/D,mBAAoB,CAAA,MAAA,CAAA,CAAA,EAAA,GAAA,OAAO,CAAC,GAAG,CAAC,IAAI,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,IAAI,CAAE,CAAC;oBAG3C,eAAe,GAAG,IAAI,eAAe,CACzC,MAAM,CAAC,OAAO,CAAC,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAZ,KAAA,CAAA,GAAA,YAAY,GAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAC,EAAa,EAAA;AAAb,wBAAA,IAAA,EAAA,GAAA,aAAa,EAAZ,GAAG,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,MAAM,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AACtD,wBAAA,OAAA,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,EAAK,EAAA,OAAA,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA,EAAA,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;qBAAA,CACtE,CACF,CAAC;;;AAIF,oBAAA,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAE1C,oBAAA,IAAI,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE;;;wBAG/C,eAAe,CAAC,GAAG,CACjB,4BAA4B,EAC5B,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAC5C,CAAC;AACH,qBAAA;AAG2B,oBAAA,OAAA,CAAA,CAAA,YAAMC,mCAAuB,CACvD,EAAG,CAAA,MAAA,CAAA,WAAW,CAAG,CAAA,MAAA,CAAA,QAAQ,EAAI,GAAA,CAAA,CAAA,MAAA,CAAA,eAAe,CAAC,QAAQ,EAAE,CAAE,CAC1D,CAAA,CAAA;;AAFK,oBAAA,mBAAmB,GAAG,EAE3B,CAAA,IAAA,EAAA,CAAA;;oBAGD,OAAO,CAAA,CAAA,cACL,KAAC,CAAA,aAAA,CAAAC,8BAAwB,EAAC,EAAA,eAAe,EAAE,mBAAmB,EAC3D,EAAA,WAAW,CACa,EAC3B,CAAA;;;;AACH;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
- import { fetchExtractedQueryData } from "@plasmicapp/nextjs-app-router/react-server";
1
+ import { fetchExtractedHeadMetadata, fetchExtractedQueryData, withPlasmicMetadata } from "@plasmicapp/nextjs-app-router/react-server";
2
2
  import React from "react";
3
- export { fetchExtractedQueryData as __EXPERMIENTAL__fetchExtractedQueryData };
3
+ export { fetchExtractedQueryData as __EXPERMIENTAL__fetchExtractedQueryData, fetchExtractedHeadMetadata as __EXPERMIENTAL__fetchExtractedHeadMetadata, withPlasmicMetadata as __EXPERMIENTAL__withPlasmicMetadata, };
4
4
  /**
5
5
  * Helper function to extract Plasmic data.
6
6
  *
@@ -1,6 +1,6 @@
1
1
  import { ExtractPlasmicQueryData } from '@plasmicapp/nextjs-app-router';
2
2
  import { fetchExtractedQueryData } from '@plasmicapp/nextjs-app-router/react-server';
3
- export { fetchExtractedQueryData as __EXPERMIENTAL__fetchExtractedQueryData } from '@plasmicapp/nextjs-app-router/react-server';
3
+ export { fetchExtractedHeadMetadata as __EXPERMIENTAL__fetchExtractedHeadMetadata, fetchExtractedQueryData as __EXPERMIENTAL__fetchExtractedQueryData, withPlasmicMetadata as __EXPERMIENTAL__withPlasmicMetadata } from '@plasmicapp/nextjs-app-router/react-server';
4
4
  import { PlasmicQueryDataProvider } from '@plasmicapp/query';
5
5
  import React from 'react';
6
6
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/nextjs-app-router/react-server/index.tsx"],"sourcesContent":["import { ExtractPlasmicQueryData } from \"@plasmicapp/nextjs-app-router\";\nimport { fetchExtractedQueryData } from \"@plasmicapp/nextjs-app-router/react-server\";\nimport { PlasmicQueryDataProvider } from \"@plasmicapp/query\";\nimport React from \"react\";\n\nexport { fetchExtractedQueryData as __EXPERMIENTAL__fetchExtractedQueryData };\n\n/**\n * Helper function to extract Plasmic data.\n *\n * Given React element for your page and current pathname + search\n * params, returns:\n * - The extracted query data, if `plasmicSsr` search param is set\n * - A copy of the page element wraped within PlasmicQueryDataProvider to provide the extracted query data, otherwise\n */\nexport async function __EXPERMIENTAL__withExtractPlasmicQueryData(\n pageRootElt: React.ReactElement,\n {\n pathname,\n searchParams,\n }: {\n pathname: string;\n searchParams: Record<string, string | string[]> | undefined;\n }\n) {\n const isPlasmicSsr =\n !!searchParams?.[\"plasmicSsr\"] && searchParams?.[\"plasmicSsr\"] !== \"false\";\n\n // If `plasmicSsr` search param is set, just wrap the page inside\n // <ExtractPlasmicQueryData>\n if (isPlasmicSsr) {\n return <ExtractPlasmicQueryData>{pageRootElt}</ExtractPlasmicQueryData>;\n }\n\n // Otherwise, fetch the same endpoint, but setting `plasmicSsr` to extract the\n // query data.\n const prepassHost =\n process.env.PLASMIC_PREPASS_HOST ??\n (process.env.VERCEL_URL && `https://${process.env.VERCEL_URL}`) ??\n `http://localhost:${process.env.PORT ?? 3000}`;\n\n // Build a copy of the search params\n const newSearchParams = new URLSearchParams(\n Object.entries(searchParams ?? {}).flatMap(([key, values]) =>\n Array.isArray(values) ? values.map((v) => [key, v]) : [[key, values]]\n )\n );\n\n // Set `plasmicSsr` search param to indicate you are using this endpoint\n // to extract query data.\n newSearchParams.set(\"plasmicSsr\", \"true\");\n\n if (process.env.VERCEL_AUTOMATION_BYPASS_SECRET) {\n // If protection bypass is enabled, use it to ensure fetching from\n // the SSR endpoint will not return the authentication page HTML\n newSearchParams.set(\n \"x-vercel-protection-bypass\",\n process.env.VERCEL_AUTOMATION_BYPASS_SECRET\n );\n }\n\n // Fetch the data from the endpoint using the new search params\n const prefetchedQueryData = await fetchExtractedQueryData(\n `${prepassHost}${pathname}?${newSearchParams.toString()}`\n );\n\n // Provide the query data to your page\n return (\n <PlasmicQueryDataProvider prefetchedCache={prefetchedQueryData}>\n {pageRootElt}\n </PlasmicQueryDataProvider>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA;;;;;;;AAOG;AACmB,SAAA,2CAA2C,CAC/D,WAA+B,EAC/B,EAMC,EAAA;;QALC,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,YAAY,GAAA,EAAA,CAAA,YAAA,CAAA;;;;;;oBAMR,YAAY,GAChB,CAAC,EAAC,YAAY,aAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAG,YAAY,CAAC,CAAA,IAAI,CAAA,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAG,YAAY,CAAC,MAAK,OAAO,CAAC;;;AAI7E,oBAAA,IAAI,YAAY,EAAE;AAChB,wBAAA,OAAA,CAAA,CAAA,aAAO,KAAC,CAAA,aAAA,CAAA,uBAAuB,EAAE,IAAA,EAAA,WAAW,CAA2B,CAAC,CAAA;AACzE,qBAAA;AAIK,oBAAA,WAAW,GACf,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,IAC/B,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,UAAA,CAAA,MAAA,CAAW,OAAO,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC,mCAC/D,mBAAoB,CAAA,MAAA,CAAA,CAAA,EAAA,GAAA,OAAO,CAAC,GAAG,CAAC,IAAI,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,IAAI,CAAE,CAAC;oBAG3C,eAAe,GAAG,IAAI,eAAe,CACzC,MAAM,CAAC,OAAO,CAAC,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAZ,KAAA,CAAA,GAAA,YAAY,GAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAC,EAAa,EAAA;AAAb,wBAAA,IAAA,EAAA,GAAA,aAAa,EAAZ,GAAG,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,MAAM,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AACtD,wBAAA,OAAA,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,EAAK,EAAA,OAAA,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA,EAAA,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;qBAAA,CACtE,CACF,CAAC;;;AAIF,oBAAA,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAE1C,oBAAA,IAAI,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE;;;wBAG/C,eAAe,CAAC,GAAG,CACjB,4BAA4B,EAC5B,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAC5C,CAAC;AACH,qBAAA;AAG2B,oBAAA,OAAA,CAAA,CAAA,YAAM,uBAAuB,CACvD,EAAG,CAAA,MAAA,CAAA,WAAW,CAAG,CAAA,MAAA,CAAA,QAAQ,EAAI,GAAA,CAAA,CAAA,MAAA,CAAA,eAAe,CAAC,QAAQ,EAAE,CAAE,CAC1D,CAAA,CAAA;;AAFK,oBAAA,mBAAmB,GAAG,EAE3B,CAAA,IAAA,EAAA,CAAA;;oBAGD,OAAO,CAAA,CAAA,cACL,KAAC,CAAA,aAAA,CAAA,wBAAwB,EAAC,EAAA,eAAe,EAAE,mBAAmB,EAC3D,EAAA,WAAW,CACa,EAC3B,CAAA;;;;AACH;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/nextjs-app-router/react-server/index.tsx"],"sourcesContent":["import { ExtractPlasmicQueryData } from \"@plasmicapp/nextjs-app-router\";\nimport {\n fetchExtractedHeadMetadata,\n fetchExtractedQueryData,\n withPlasmicMetadata,\n} from \"@plasmicapp/nextjs-app-router/react-server\";\nimport { PlasmicQueryDataProvider } from \"@plasmicapp/query\";\nimport React from \"react\";\n\nexport {\n fetchExtractedQueryData as __EXPERMIENTAL__fetchExtractedQueryData,\n fetchExtractedHeadMetadata as __EXPERMIENTAL__fetchExtractedHeadMetadata,\n withPlasmicMetadata as __EXPERMIENTAL__withPlasmicMetadata,\n};\n\n/**\n * Helper function to extract Plasmic data.\n *\n * Given React element for your page and current pathname + search\n * params, returns:\n * - The extracted query data, if `plasmicSsr` search param is set\n * - A copy of the page element wraped within PlasmicQueryDataProvider to provide the extracted query data, otherwise\n */\nexport async function __EXPERMIENTAL__withExtractPlasmicQueryData(\n pageRootElt: React.ReactElement,\n {\n pathname,\n searchParams,\n }: {\n pathname: string;\n searchParams: Record<string, string | string[]> | undefined;\n }\n) {\n const isPlasmicSsr =\n !!searchParams?.[\"plasmicSsr\"] && searchParams?.[\"plasmicSsr\"] !== \"false\";\n\n // If `plasmicSsr` search param is set, just wrap the page inside\n // <ExtractPlasmicQueryData>\n if (isPlasmicSsr) {\n return <ExtractPlasmicQueryData>{pageRootElt}</ExtractPlasmicQueryData>;\n }\n\n // Otherwise, fetch the same endpoint, but setting `plasmicSsr` to extract the\n // query data.\n const prepassHost =\n process.env.PLASMIC_PREPASS_HOST ??\n (process.env.VERCEL_URL && `https://${process.env.VERCEL_URL}`) ??\n `http://localhost:${process.env.PORT ?? 3000}`;\n\n // Build a copy of the search params\n const newSearchParams = new URLSearchParams(\n Object.entries(searchParams ?? {}).flatMap(([key, values]) =>\n Array.isArray(values) ? values.map((v) => [key, v]) : [[key, values]]\n )\n );\n\n // Set `plasmicSsr` search param to indicate you are using this endpoint\n // to extract query data.\n newSearchParams.set(\"plasmicSsr\", \"true\");\n\n if (process.env.VERCEL_AUTOMATION_BYPASS_SECRET) {\n // If protection bypass is enabled, use it to ensure fetching from\n // the SSR endpoint will not return the authentication page HTML\n newSearchParams.set(\n \"x-vercel-protection-bypass\",\n process.env.VERCEL_AUTOMATION_BYPASS_SECRET\n );\n }\n\n // Fetch the data from the endpoint using the new search params\n const prefetchedQueryData = await fetchExtractedQueryData(\n `${prepassHost}${pathname}?${newSearchParams.toString()}`\n );\n\n // Provide the query data to your page\n return (\n <PlasmicQueryDataProvider prefetchedCache={prefetchedQueryData}>\n {pageRootElt}\n </PlasmicQueryDataProvider>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA;;;;;;;AAOG;AACmB,SAAA,2CAA2C,CAC/D,WAA+B,EAC/B,EAMC,EAAA;;QALC,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,YAAY,GAAA,EAAA,CAAA,YAAA,CAAA;;;;;;oBAMR,YAAY,GAChB,CAAC,EAAC,YAAY,aAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAG,YAAY,CAAC,CAAA,IAAI,CAAA,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAG,YAAY,CAAC,MAAK,OAAO,CAAC;;;AAI7E,oBAAA,IAAI,YAAY,EAAE;AAChB,wBAAA,OAAA,CAAA,CAAA,aAAO,KAAC,CAAA,aAAA,CAAA,uBAAuB,EAAE,IAAA,EAAA,WAAW,CAA2B,CAAC,CAAA;AACzE,qBAAA;AAIK,oBAAA,WAAW,GACf,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,IAC/B,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,UAAA,CAAA,MAAA,CAAW,OAAO,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC,mCAC/D,mBAAoB,CAAA,MAAA,CAAA,CAAA,EAAA,GAAA,OAAO,CAAC,GAAG,CAAC,IAAI,MAAI,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,EAAA,GAAA,IAAI,CAAE,CAAC;oBAG3C,eAAe,GAAG,IAAI,eAAe,CACzC,MAAM,CAAC,OAAO,CAAC,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAZ,KAAA,CAAA,GAAA,YAAY,GAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAC,EAAa,EAAA;AAAb,wBAAA,IAAA,EAAA,GAAA,aAAa,EAAZ,GAAG,GAAA,EAAA,CAAA,CAAA,CAAA,EAAE,MAAM,GAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AACtD,wBAAA,OAAA,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,UAAC,CAAC,EAAK,EAAA,OAAA,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA,EAAA,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAA;qBAAA,CACtE,CACF,CAAC;;;AAIF,oBAAA,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;AAE1C,oBAAA,IAAI,OAAO,CAAC,GAAG,CAAC,+BAA+B,EAAE;;;wBAG/C,eAAe,CAAC,GAAG,CACjB,4BAA4B,EAC5B,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAC5C,CAAC;AACH,qBAAA;AAG2B,oBAAA,OAAA,CAAA,CAAA,YAAM,uBAAuB,CACvD,EAAG,CAAA,MAAA,CAAA,WAAW,CAAG,CAAA,MAAA,CAAA,QAAQ,EAAI,GAAA,CAAA,CAAA,MAAA,CAAA,eAAe,CAAC,QAAQ,EAAE,CAAE,CAC1D,CAAA,CAAA;;AAFK,oBAAA,mBAAmB,GAAG,EAE3B,CAAA,IAAA,EAAA,CAAA;;oBAGD,OAAO,CAAA,CAAA,cACL,KAAC,CAAA,aAAA,CAAA,wBAAwB,EAAC,EAAA,eAAe,EAAE,mBAAmB,EAC3D,EAAA,WAAW,CACa,EAC3B,CAAA;;;;AACH;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plasmicapp/react-web",
3
- "version": "0.2.331",
3
+ "version": "0.2.333",
4
4
  "description": "plasmic library for rendering in the presentational style",
5
5
  "main": "dist/index.cjs.js",
6
6
  "types": "dist/index.d.ts",
@@ -96,14 +96,14 @@
96
96
  "test-storybook": "test-storybook"
97
97
  },
98
98
  "dependencies": {
99
- "@plasmicapp/auth-react": "0.0.20",
100
- "@plasmicapp/data-sources": "0.1.151",
99
+ "@plasmicapp/auth-react": "0.0.21",
100
+ "@plasmicapp/data-sources": "0.1.152",
101
101
  "@plasmicapp/data-sources-context": "0.1.21",
102
- "@plasmicapp/host": "1.0.192",
102
+ "@plasmicapp/host": "1.0.193",
103
103
  "@plasmicapp/loader-splits": "1.0.60",
104
- "@plasmicapp/nextjs-app-router": "1.0.8",
105
- "@plasmicapp/prepass": "1.0.16",
106
- "@plasmicapp/query": "0.1.78",
104
+ "@plasmicapp/nextjs-app-router": "1.0.11",
105
+ "@plasmicapp/prepass": "1.0.17",
106
+ "@plasmicapp/query": "0.1.79",
107
107
  "@react-aria/checkbox": "^3.11.2",
108
108
  "@react-aria/focus": "^3.14.3",
109
109
  "@react-aria/interactions": "^3.19.1",
@@ -168,5 +168,5 @@
168
168
  "react": ">=16.8.0",
169
169
  "react-dom": ">=16.8.0"
170
170
  },
171
- "gitHead": "c6296df0e76f57a0d188ac1ef1358399ad56eab0"
171
+ "gitHead": "ec1ec1085b5ea8cdaf8eea3b901340c32656fc0d"
172
172
  }
@@ -10,14 +10,14 @@ export { default as get } from 'dlv';
10
10
  import { c as createElementWithChildren, m as mergeProps, e as ensureNotArray, N as NONE, a as mergePropVals, i as isReactNode, b as isBrowser, u as useIsomorphicLayoutEffect$1 } from './react-utils-d266354d.js';
11
11
  export { PlasmicHead, plasmicHeadMeta } from './render/PlasmicHead/index.js';
12
12
  export { PlasmicImg } from './render/PlasmicImg/index.js';
13
- import { T as Trans } from './ssr-145c6cd2.js';
14
- export { P as PlasmicLink, a as PlasmicRootProvider, g as genTranslatableString, u as useIsSSR, b as usePlasmicTranslator } from './ssr-145c6cd2.js';
13
+ import { T as Trans } from './ssr-f37a883d.js';
14
+ export { P as PlasmicLink, a as PlasmicRootProvider, g as genTranslatableString, u as useIsSSR, b as usePlasmicTranslator } from './ssr-f37a883d.js';
15
15
  import ReactDOM__default from 'react-dom';
16
16
  import { useFocusRing } from '@react-aria/focus';
17
17
  import { proxy, useSnapshot, ref, getVersion, subscribe } from 'valtio';
18
18
  import clone from 'clone';
19
- import '@react-aria/ssr';
20
19
  import '@plasmicapp/host';
20
+ import '@react-aria/ssr';
21
21
 
22
22
  // https://stackoverflow.com/a/2117523
23
23
  function uuidv4() {
@@ -1,6 +1,6 @@
1
- import { fetchExtractedQueryData } from "@plasmicapp/nextjs-app-router/react-server";
1
+ import { fetchExtractedHeadMetadata, fetchExtractedQueryData, withPlasmicMetadata } from "@plasmicapp/nextjs-app-router/react-server";
2
2
  import React from "react";
3
- export { fetchExtractedQueryData as __EXPERMIENTAL__fetchExtractedQueryData };
3
+ export { fetchExtractedQueryData as __EXPERMIENTAL__fetchExtractedQueryData, fetchExtractedHeadMetadata as __EXPERMIENTAL__fetchExtractedHeadMetadata, withPlasmicMetadata as __EXPERMIENTAL__withPlasmicMetadata, };
4
4
  /**
5
5
  * Helper function to extract Plasmic data.
6
6
  *
@@ -4,14 +4,15 @@ import { VisuallyHidden } from '@react-aria/visually-hidden';
4
4
  import { useToggleState } from '@react-stately/toggle';
5
5
  import * as React from 'react';
6
6
  import { m as mergeProps } from '../../react-utils-d266354d.js';
7
- import { c as useEnsureSSRProvider } from '../../ssr-145c6cd2.js';
7
+ import { c as useEnsureSSRProvider } from '../../ssr-f37a883d.js';
8
8
  import { m as mergeVariantToggles } from '../../plume-utils-9472dfe6.js';
9
9
  import { g as getStyleProps } from '../../props-utils-b08721e5.js';
10
10
  import 'classnames';
11
11
  import '@plasmicapp/data-sources-context';
12
+ import '@plasmicapp/host';
12
13
  import '@react-aria/ssr';
13
14
  import '../../render/PlasmicHead/index.js';
14
- import '@plasmicapp/host';
15
+ import '@plasmicapp/query';
15
16
 
16
17
  function asAriaCheckboxProps(props) {
17
18
  var ariaProps = __assign(__assign({}, props), { isSelected: props.isChecked, defaultSelected: props.defaultChecked });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/plume/checkbox/index.tsx"],"sourcesContent":["import { useCheckbox as useAriaCheckbox } from \"@react-aria/checkbox\";\nimport { VisuallyHidden } from \"@react-aria/visually-hidden\";\nimport { useToggleState } from \"@react-stately/toggle\";\nimport { AriaCheckboxProps } from \"@react-types/checkbox\";\nimport * as React from \"react\";\nimport { pick } from \"../../common\";\nimport { mergeProps } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { useEnsureSSRProvider } from \"../../render/ssr\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n VariantDef,\n} from \"../plume-utils\";\nimport { getStyleProps, StyleProps } from \"../props-utils\";\n\nexport type CheckboxRef = React.Ref<CheckboxRefValue>;\nexport interface CheckboxRefValue extends CheckboxState {\n getRoot: () => HTMLElement | null;\n focus: () => void;\n blur: () => void;\n}\n\ninterface CheckboxState {\n setChecked: (checked: boolean) => void;\n}\n\nexport interface CheckboxProps\n extends Omit<AriaCheckboxProps, \"isSelected\" | \"defaultSelected\">,\n StyleProps {\n /**\n * Whether the Checkbox is checked or not; controlled\n */\n isChecked?: boolean;\n\n /**\n * Whether the Checkbox is checked by default; uncontrolled\n */\n defaultChecked?: boolean;\n\n /**\n * Whether the Checkbox is in an \"indeterminate\" state; this usually\n * refers to a \"check all\" that is used to check / uncheck many other\n * checkboxes, and is visually indeterminate if some of its controlled\n * checkboxes are checked and some are not.\n */\n isIndeterminate?: boolean;\n}\n\nfunction asAriaCheckboxProps(props: CheckboxProps) {\n const ariaProps = {\n ...props,\n isSelected: props.isChecked,\n defaultSelected: props.defaultChecked,\n };\n delete ariaProps[\"isChecked\"];\n delete ariaProps[\"defaultChecked\"];\n return ariaProps;\n}\n\ninterface CheckboxConfig<C extends AnyPlasmicClass> {\n isCheckedVariant: VariantDef<PlasmicClassVariants<C>>;\n isIndeterminateVariant?: VariantDef<PlasmicClassVariants<C>>;\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n noLabelVariant?: VariantDef<PlasmicClassVariants<C>>;\n labelSlot?: keyof PlasmicClassArgs<C>;\n root: keyof PlasmicClassOverrides<C>;\n}\n\nexport function useCheckbox<P extends CheckboxProps, C extends AnyPlasmicClass>(\n plasmicClass: C,\n props: P,\n config: CheckboxConfig<C>,\n ref: CheckboxRef = null\n) {\n const { children, isDisabled, isIndeterminate } = props;\n useEnsureSSRProvider();\n const inputRef = React.useRef<HTMLInputElement>(null);\n const rootRef = React.useRef<HTMLElement>(null);\n const ariaProps = asAriaCheckboxProps(props);\n const state = useToggleState(ariaProps);\n const { inputProps } = useAriaCheckbox(ariaProps, state, inputRef);\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n {\n def: config.isDisabledVariant,\n active: isDisabled,\n },\n {\n def: config.isCheckedVariant,\n active: state.isSelected,\n },\n {\n def: config.isIndeterminateVariant,\n active: isIndeterminate,\n },\n {\n def: config.noLabelVariant,\n active: !children,\n }\n ),\n };\n const overrides: Overrides = {\n [config.root]: {\n as: \"label\",\n props: mergeProps(getStyleProps(props), {\n ref: rootRef,\n }),\n wrapChildren: (children: React.ReactNode) => (\n <>\n <VisuallyHidden>\n <input {...inputProps} ref={inputRef} />\n </VisuallyHidden>\n {children}\n </>\n ),\n },\n };\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n ...(config.labelSlot ? { [config.labelSlot]: children } : {}),\n };\n\n const plumeState: CheckboxState = React.useMemo(\n () => ({\n setChecked: (checked: boolean) => state.setSelected(checked),\n }),\n [state]\n );\n\n React.useImperativeHandle(\n ref,\n () => ({\n getRoot: () => rootRef.current,\n focus: () => inputRef.current?.focus(),\n blur: () => inputRef.current?.blur(),\n setChecked: (checked) => plumeState.setChecked(checked),\n }),\n [rootRef, inputRef, plumeState]\n );\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n args: args as PlasmicClassArgs<C>,\n },\n state: plumeState,\n };\n}\n"],"names":["useAriaCheckbox"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/plume/checkbox/index.tsx"],"sourcesContent":["import { useCheckbox as useAriaCheckbox } from \"@react-aria/checkbox\";\nimport { VisuallyHidden } from \"@react-aria/visually-hidden\";\nimport { useToggleState } from \"@react-stately/toggle\";\nimport { AriaCheckboxProps } from \"@react-types/checkbox\";\nimport * as React from \"react\";\nimport { pick } from \"../../common\";\nimport { mergeProps } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { useEnsureSSRProvider } from \"../../render/ssr\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n VariantDef,\n} from \"../plume-utils\";\nimport { getStyleProps, StyleProps } from \"../props-utils\";\n\nexport type CheckboxRef = React.Ref<CheckboxRefValue>;\nexport interface CheckboxRefValue extends CheckboxState {\n getRoot: () => HTMLElement | null;\n focus: () => void;\n blur: () => void;\n}\n\ninterface CheckboxState {\n setChecked: (checked: boolean) => void;\n}\n\nexport interface CheckboxProps\n extends Omit<AriaCheckboxProps, \"isSelected\" | \"defaultSelected\">,\n StyleProps {\n /**\n * Whether the Checkbox is checked or not; controlled\n */\n isChecked?: boolean;\n\n /**\n * Whether the Checkbox is checked by default; uncontrolled\n */\n defaultChecked?: boolean;\n\n /**\n * Whether the Checkbox is in an \"indeterminate\" state; this usually\n * refers to a \"check all\" that is used to check / uncheck many other\n * checkboxes, and is visually indeterminate if some of its controlled\n * checkboxes are checked and some are not.\n */\n isIndeterminate?: boolean;\n}\n\nfunction asAriaCheckboxProps(props: CheckboxProps) {\n const ariaProps = {\n ...props,\n isSelected: props.isChecked,\n defaultSelected: props.defaultChecked,\n };\n delete ariaProps[\"isChecked\"];\n delete ariaProps[\"defaultChecked\"];\n return ariaProps;\n}\n\ninterface CheckboxConfig<C extends AnyPlasmicClass> {\n isCheckedVariant: VariantDef<PlasmicClassVariants<C>>;\n isIndeterminateVariant?: VariantDef<PlasmicClassVariants<C>>;\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n noLabelVariant?: VariantDef<PlasmicClassVariants<C>>;\n labelSlot?: keyof PlasmicClassArgs<C>;\n root: keyof PlasmicClassOverrides<C>;\n}\n\nexport function useCheckbox<P extends CheckboxProps, C extends AnyPlasmicClass>(\n plasmicClass: C,\n props: P,\n config: CheckboxConfig<C>,\n ref: CheckboxRef = null\n) {\n const { children, isDisabled, isIndeterminate } = props;\n useEnsureSSRProvider();\n const inputRef = React.useRef<HTMLInputElement>(null);\n const rootRef = React.useRef<HTMLElement>(null);\n const ariaProps = asAriaCheckboxProps(props);\n const state = useToggleState(ariaProps);\n const { inputProps } = useAriaCheckbox(ariaProps, state, inputRef);\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n {\n def: config.isDisabledVariant,\n active: isDisabled,\n },\n {\n def: config.isCheckedVariant,\n active: state.isSelected,\n },\n {\n def: config.isIndeterminateVariant,\n active: isIndeterminate,\n },\n {\n def: config.noLabelVariant,\n active: !children,\n }\n ),\n };\n const overrides: Overrides = {\n [config.root]: {\n as: \"label\",\n props: mergeProps(getStyleProps(props), {\n ref: rootRef,\n }),\n wrapChildren: (children: React.ReactNode) => (\n <>\n <VisuallyHidden>\n <input {...inputProps} ref={inputRef} />\n </VisuallyHidden>\n {children}\n </>\n ),\n },\n };\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n ...(config.labelSlot ? { [config.labelSlot]: children } : {}),\n };\n\n const plumeState: CheckboxState = React.useMemo(\n () => ({\n setChecked: (checked: boolean) => state.setSelected(checked),\n }),\n [state]\n );\n\n React.useImperativeHandle(\n ref,\n () => ({\n getRoot: () => rootRef.current,\n focus: () => inputRef.current?.focus(),\n blur: () => inputRef.current?.blur(),\n setChecked: (checked) => plumeState.setChecked(checked),\n }),\n [rootRef, inputRef, plumeState]\n );\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n args: args as PlasmicClassArgs<C>,\n },\n state: plumeState,\n };\n}\n"],"names":["useAriaCheckbox"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { useMenu as useMenu$1, useMenuSection, useMenuItem as useMenuItem$1 } fr
3
3
  import { useTreeState } from '@react-stately/tree';
4
4
  import * as React from 'react';
5
5
  import { m as mergeProps } from '../../react-utils-d266354d.js';
6
- import { c as useEnsureSSRProvider } from '../../ssr-145c6cd2.js';
6
+ import { c as useEnsureSSRProvider } from '../../ssr-f37a883d.js';
7
7
  import { r as renderCollectionNode, u as useDerivedItemsFromChildren, a as renderAsCollectionChild } from '../../collection-utils-b8088b18.js';
8
8
  import { n as noOutline, m as mergeVariantToggles } from '../../plume-utils-9472dfe6.js';
9
9
  import { g as getStyleProps } from '../../props-utils-b08721e5.js';
@@ -11,9 +11,10 @@ import { T as TriggeredOverlayContext } from '../../context-e56b6773.js';
11
11
  import { useSeparator } from '@react-aria/separator';
12
12
  import 'classnames';
13
13
  import '@plasmicapp/data-sources-context';
14
+ import '@plasmicapp/host';
14
15
  import '@react-aria/ssr';
15
16
  import '../../render/PlasmicHead/index.js';
16
- import '@plasmicapp/host';
17
+ import '@plasmicapp/query';
17
18
  import '@react-stately/collections';
18
19
 
19
20
  var MenuContext = React.createContext(undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/plume/menu/context.tsx","../../../../src/plume/menu/menu.tsx","../../../../src/plume/menu/menu-group.tsx","../../../../src/plume/menu/menu-item.tsx"],"sourcesContent":["import * as React from \"react\";\nimport type { TreeState } from \"@react-stately/tree\";\nimport type { BaseMenuProps } from \"./menu\";\n\nexport interface MenuContextValue {\n menuProps: BaseMenuProps;\n state: TreeState<any>;\n}\n\nexport const MenuContext = React.createContext<MenuContextValue | undefined>(\n undefined\n);\n","import { useMenu as useAriaMenu } from \"@react-aria/menu\";\nimport { useTreeState } from \"@react-stately/tree\";\nimport { AriaMenuProps } from \"@react-types/menu\";\nimport { AriaLabelingProps, DOMProps } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport { pick } from \"../../common\";\nimport { mergeProps } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { useEnsureSSRProvider } from \"../../render/ssr\";\nimport {\n renderAsCollectionChild,\n renderCollectionNode,\n useDerivedItemsFromChildren,\n} from \"../collection-utils\";\nimport {\n AnyPlasmicClass,\n noOutline,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n VariantDef,\n} from \"../plume-utils\";\nimport { getStyleProps, StyleProps } from \"../props-utils\";\nimport { TriggeredOverlayContext } from \"../triggered-overlay/context\";\nimport { MenuContext } from \"./context\";\n\nexport interface BaseMenuProps extends DOMProps, AriaLabelingProps, StyleProps {\n /**\n * List of `Menu.Item`s or `Menu.Group`s that make up the menu\n */\n children?: React.ReactNode;\n\n /**\n * Called with the value of a `Menu.Item` when it is selected.\n */\n onAction?: (value: string) => void;\n}\n\nexport type MenuRef = React.Ref<MenuRefValue>;\nexport interface MenuRefValue extends MenuState {\n getRoot: () => HTMLElement | null;\n}\n\nconst COLLECTION_OPTS = {\n itemPlumeType: \"menu-item\",\n sectionPlumeType: \"menu-group\",\n};\n\nexport interface MenuConfig<C extends AnyPlasmicClass> {\n isPlacedTopVariant?: VariantDef<PlasmicClassVariants<C>>;\n isPlacedBottomVariant?: VariantDef<PlasmicClassVariants<C>>;\n isPlacedLeftVariant?: VariantDef<PlasmicClassVariants<C>>;\n isPlacedRightVariant?: VariantDef<PlasmicClassVariants<C>>;\n\n itemsSlot: keyof PlasmicClassArgs<C>;\n itemsContainer: keyof PlasmicClassOverrides<C>;\n root: keyof PlasmicClassOverrides<C>;\n}\n\n/**\n * Converts props from BaseMenuProps to react-aria's useMenu() props.\n */\nfunction asAriaMenuProps(props: BaseMenuProps) {\n const { children, ...rest } = props;\n const { items, disabledKeys } = useDerivedItemsFromChildren(children, {\n ...COLLECTION_OPTS,\n invalidChildError: `Can only use Menu.Item and Menu.Group as children to Menu`,\n requireItemValue: false,\n });\n\n const collectionChildRenderer = React.useCallback(\n (child: any) => renderAsCollectionChild(child, COLLECTION_OPTS),\n []\n );\n\n return {\n ariaProps: {\n ...rest,\n children: collectionChildRenderer,\n items,\n disabledKeys,\n } as AriaMenuProps<any>,\n };\n}\n\nexport interface MenuState {\n getFocusedValue: () => string | null;\n setFocusedValue: (value: string) => void;\n}\n\nexport function useMenu<P extends BaseMenuProps, C extends AnyPlasmicClass>(\n plasmicClass: C,\n props: P,\n config: MenuConfig<C>,\n ref: MenuRef = null\n) {\n useEnsureSSRProvider();\n const { ariaProps } = asAriaMenuProps(props);\n const triggerContext = React.useContext(TriggeredOverlayContext);\n const rootRef = React.useRef<HTMLElement>(null);\n\n const state = useTreeState(ariaProps);\n\n const menuListRef = React.useRef<HTMLUListElement>(null);\n\n const { menuProps } = useAriaMenu(\n {\n ...ariaProps,\n autoFocus: triggerContext?.autoFocus,\n },\n state,\n menuListRef\n );\n\n const contextValue = React.useMemo(() => ({ state, menuProps: props }), [\n state,\n props,\n ]);\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n };\n\n const overrides: Overrides = {\n [config.root]: {\n props: mergeProps(getStyleProps(props), {\n ref: rootRef,\n }),\n },\n [config.itemsContainer]: {\n as: \"ul\",\n props: mergeProps(menuProps, {\n ref: menuListRef,\n style: {\n ...noOutline(),\n },\n }),\n },\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.itemsSlot]: (\n <MenuContext.Provider value={contextValue}>\n {Array.from(state.collection).map((node) => renderCollectionNode(node))}\n </MenuContext.Provider>\n ),\n };\n\n const plumeState: MenuState = React.useMemo(\n () => ({\n getFocusedValue: () => state.selectionManager.focusedKey as string | null,\n setFocusedValue: (value: string) =>\n state.selectionManager.setFocusedKey(value),\n }),\n [state]\n );\n\n React.useImperativeHandle(\n ref,\n () => ({\n getRoot: () => rootRef.current,\n getFocusedValue: () => plumeState.getFocusedValue(),\n setFocusedValue: (key) => plumeState.setFocusedValue(key),\n }),\n [rootRef, plumeState]\n );\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n state: plumeState,\n };\n}\n","import { Node } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport { useMenuSection } from \"@react-aria/menu\";\nimport { useSeparator } from \"@react-aria/separator\";\nimport { pick } from \"../../common\";\nimport { Overrides } from \"../../render/elements\";\nimport { renderCollectionNode, SectionLikeProps } from \"../collection-utils\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n PLUME_STRICT_MODE,\n} from \"../plume-utils\";\nimport {\n getDefaultPlasmicProps,\n getStyleProps,\n StyleProps,\n} from \"../props-utils\";\nimport { MenuContext } from \"./context\";\n\nexport interface BaseMenuGroupProps extends SectionLikeProps, StyleProps {}\n\ninterface MenuGroupConfig<C extends AnyPlasmicClass> {\n noTitleVariant: PlasmicClassVariants<C>;\n isFirstVariant: PlasmicClassVariants<C>;\n\n itemsSlot: keyof PlasmicClassArgs<C>;\n titleSlot: keyof PlasmicClassArgs<C>;\n\n root: keyof PlasmicClassOverrides<C>;\n separator: keyof PlasmicClassOverrides<C>;\n titleContainer: keyof PlasmicClassOverrides<C>;\n itemsContainer: keyof PlasmicClassOverrides<C>;\n}\n\nexport function useMenuGroup<\n P extends BaseMenuGroupProps,\n C extends AnyPlasmicClass\n>(plasmicClass: C, props: P, config: MenuGroupConfig<C>) {\n const context = React.useContext(MenuContext);\n\n const node = (props as any)._node as\n | Node<React.ReactElement<BaseMenuGroupProps>>\n | undefined;\n\n if (!context || !node) {\n if (PLUME_STRICT_MODE) {\n throw new Error(\"You can only use a Menu.Group within a Menu component.\");\n }\n return getDefaultPlasmicProps(plasmicClass, props);\n }\n\n const { headingProps, groupProps } = useMenuSection({\n heading: props.title,\n \"aria-label\": props[\"aria-label\"],\n });\n\n const { separatorProps } = useSeparator({\n elementType: \"li\",\n });\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.noTitleVariant, active: !props.title },\n {\n def: config.isFirstVariant,\n active: context.state.collection.getFirstKey() === node.key,\n }\n ),\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.titleSlot]: props.title,\n [config.itemsSlot]: Array.from(node.childNodes).map((childNode) =>\n renderCollectionNode(childNode)\n ),\n };\n\n const overrides: Overrides = {\n [config.root]: {\n props: getStyleProps(props),\n },\n [config.separator]: {\n props: {\n ...separatorProps,\n },\n as: \"li\",\n },\n [config.titleContainer]: {\n props: {\n role: \"presentation\",\n ...headingProps,\n },\n ...(!props.title && {\n render: () => null,\n }),\n },\n [config.itemsContainer]: {\n props: {\n ...groupProps,\n },\n as: \"ul\",\n },\n };\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n };\n}\n","import { Node } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport { useMenuItem as useAriaMenuItem } from \"@react-aria/menu\";\nimport { pick } from \"../../common\";\nimport { mergeProps } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { ItemLikeProps } from \"../collection-utils\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n noOutline,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n PLUME_STRICT_MODE,\n VariantDef,\n} from \"../plume-utils\";\nimport { getDefaultPlasmicProps } from \"../props-utils\";\nimport { TriggeredOverlayContext } from \"../triggered-overlay/context\";\nimport { MenuContext } from \"./context\";\n\nexport interface BaseMenuItemProps extends ItemLikeProps {\n /**\n * Called when this item is selected\n */\n onAction?: (key: string) => void;\n}\n\ninterface MenuItemConfig<C extends AnyPlasmicClass> {\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n isHighlightedVariant?: VariantDef<PlasmicClassVariants<C>>;\n\n labelSlot: keyof PlasmicClassArgs<C>;\n\n root: keyof PlasmicClassOverrides<C>;\n labelContainer: keyof PlasmicClassOverrides<C>;\n}\n\nexport function useMenuItem<\n P extends BaseMenuItemProps,\n C extends AnyPlasmicClass\n>(plasmicClass: C, props: P, config: MenuItemConfig<C>) {\n const menuContext = React.useContext(MenuContext);\n const triggerContext = React.useContext(TriggeredOverlayContext);\n\n if (!menuContext) {\n if (PLUME_STRICT_MODE) {\n throw new Error(\"You can only use a Menu.Item within a Menu component.\");\n }\n\n return getDefaultPlasmicProps(plasmicClass, props);\n }\n\n const { children, onAction } = props;\n\n const { state, menuProps } = menuContext;\n\n // We pass in the Node secretly as an undocumented prop from <Select />\n const node = (props as any)._node as Node<\n React.ReactElement<BaseMenuItemProps>\n >;\n\n const isDisabled = state.disabledKeys.has(node.key);\n const isHighlighted =\n state.selectionManager.isFocused &&\n state.selectionManager.focusedKey === node.key;\n\n const ref = React.useRef<HTMLLIElement>(null);\n\n const { menuItemProps, labelProps } = useAriaMenuItem(\n mergeProps(\n {\n // We need to merge both the onAction on MenuItem and the onAction\n // on Menu\n onAction,\n },\n {\n onAction: menuProps.onAction,\n onClose: triggerContext?.state.close,\n },\n {\n isDisabled,\n \"aria-label\": node && node[\"aria-label\"],\n key: node.key,\n isVirtualized: false,\n closeOnSelect: true,\n }\n ),\n state,\n ref\n );\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.isDisabledVariant, active: isDisabled },\n { def: config.isHighlightedVariant, active: isHighlighted }\n ),\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.labelSlot]: children,\n };\n\n const overrides: Overrides = {\n [config.root]: {\n as: \"li\",\n props: mergeProps(menuItemProps, { ref, style: noOutline() }),\n },\n [config.labelContainer]: {\n props: { ...labelProps },\n },\n };\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n };\n}\n"],"names":["useAriaMenu","useAriaMenuItem"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/plume/menu/context.tsx","../../../../src/plume/menu/menu.tsx","../../../../src/plume/menu/menu-group.tsx","../../../../src/plume/menu/menu-item.tsx"],"sourcesContent":["import * as React from \"react\";\nimport type { TreeState } from \"@react-stately/tree\";\nimport type { BaseMenuProps } from \"./menu\";\n\nexport interface MenuContextValue {\n menuProps: BaseMenuProps;\n state: TreeState<any>;\n}\n\nexport const MenuContext = React.createContext<MenuContextValue | undefined>(\n undefined\n);\n","import { useMenu as useAriaMenu } from \"@react-aria/menu\";\nimport { useTreeState } from \"@react-stately/tree\";\nimport { AriaMenuProps } from \"@react-types/menu\";\nimport { AriaLabelingProps, DOMProps } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport { pick } from \"../../common\";\nimport { mergeProps } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { useEnsureSSRProvider } from \"../../render/ssr\";\nimport {\n renderAsCollectionChild,\n renderCollectionNode,\n useDerivedItemsFromChildren,\n} from \"../collection-utils\";\nimport {\n AnyPlasmicClass,\n noOutline,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n VariantDef,\n} from \"../plume-utils\";\nimport { getStyleProps, StyleProps } from \"../props-utils\";\nimport { TriggeredOverlayContext } from \"../triggered-overlay/context\";\nimport { MenuContext } from \"./context\";\n\nexport interface BaseMenuProps extends DOMProps, AriaLabelingProps, StyleProps {\n /**\n * List of `Menu.Item`s or `Menu.Group`s that make up the menu\n */\n children?: React.ReactNode;\n\n /**\n * Called with the value of a `Menu.Item` when it is selected.\n */\n onAction?: (value: string) => void;\n}\n\nexport type MenuRef = React.Ref<MenuRefValue>;\nexport interface MenuRefValue extends MenuState {\n getRoot: () => HTMLElement | null;\n}\n\nconst COLLECTION_OPTS = {\n itemPlumeType: \"menu-item\",\n sectionPlumeType: \"menu-group\",\n};\n\nexport interface MenuConfig<C extends AnyPlasmicClass> {\n isPlacedTopVariant?: VariantDef<PlasmicClassVariants<C>>;\n isPlacedBottomVariant?: VariantDef<PlasmicClassVariants<C>>;\n isPlacedLeftVariant?: VariantDef<PlasmicClassVariants<C>>;\n isPlacedRightVariant?: VariantDef<PlasmicClassVariants<C>>;\n\n itemsSlot: keyof PlasmicClassArgs<C>;\n itemsContainer: keyof PlasmicClassOverrides<C>;\n root: keyof PlasmicClassOverrides<C>;\n}\n\n/**\n * Converts props from BaseMenuProps to react-aria's useMenu() props.\n */\nfunction asAriaMenuProps(props: BaseMenuProps) {\n const { children, ...rest } = props;\n const { items, disabledKeys } = useDerivedItemsFromChildren(children, {\n ...COLLECTION_OPTS,\n invalidChildError: `Can only use Menu.Item and Menu.Group as children to Menu`,\n requireItemValue: false,\n });\n\n const collectionChildRenderer = React.useCallback(\n (child: any) => renderAsCollectionChild(child, COLLECTION_OPTS),\n []\n );\n\n return {\n ariaProps: {\n ...rest,\n children: collectionChildRenderer,\n items,\n disabledKeys,\n } as AriaMenuProps<any>,\n };\n}\n\nexport interface MenuState {\n getFocusedValue: () => string | null;\n setFocusedValue: (value: string) => void;\n}\n\nexport function useMenu<P extends BaseMenuProps, C extends AnyPlasmicClass>(\n plasmicClass: C,\n props: P,\n config: MenuConfig<C>,\n ref: MenuRef = null\n) {\n useEnsureSSRProvider();\n const { ariaProps } = asAriaMenuProps(props);\n const triggerContext = React.useContext(TriggeredOverlayContext);\n const rootRef = React.useRef<HTMLElement>(null);\n\n const state = useTreeState(ariaProps);\n\n const menuListRef = React.useRef<HTMLUListElement>(null);\n\n const { menuProps } = useAriaMenu(\n {\n ...ariaProps,\n autoFocus: triggerContext?.autoFocus,\n },\n state,\n menuListRef\n );\n\n const contextValue = React.useMemo(() => ({ state, menuProps: props }), [\n state,\n props,\n ]);\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n };\n\n const overrides: Overrides = {\n [config.root]: {\n props: mergeProps(getStyleProps(props), {\n ref: rootRef,\n }),\n },\n [config.itemsContainer]: {\n as: \"ul\",\n props: mergeProps(menuProps, {\n ref: menuListRef,\n style: {\n ...noOutline(),\n },\n }),\n },\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.itemsSlot]: (\n <MenuContext.Provider value={contextValue}>\n {Array.from(state.collection).map((node) => renderCollectionNode(node))}\n </MenuContext.Provider>\n ),\n };\n\n const plumeState: MenuState = React.useMemo(\n () => ({\n getFocusedValue: () => state.selectionManager.focusedKey as string | null,\n setFocusedValue: (value: string) =>\n state.selectionManager.setFocusedKey(value),\n }),\n [state]\n );\n\n React.useImperativeHandle(\n ref,\n () => ({\n getRoot: () => rootRef.current,\n getFocusedValue: () => plumeState.getFocusedValue(),\n setFocusedValue: (key) => plumeState.setFocusedValue(key),\n }),\n [rootRef, plumeState]\n );\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n state: plumeState,\n };\n}\n","import { Node } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport { useMenuSection } from \"@react-aria/menu\";\nimport { useSeparator } from \"@react-aria/separator\";\nimport { pick } from \"../../common\";\nimport { Overrides } from \"../../render/elements\";\nimport { renderCollectionNode, SectionLikeProps } from \"../collection-utils\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n PLUME_STRICT_MODE,\n} from \"../plume-utils\";\nimport {\n getDefaultPlasmicProps,\n getStyleProps,\n StyleProps,\n} from \"../props-utils\";\nimport { MenuContext } from \"./context\";\n\nexport interface BaseMenuGroupProps extends SectionLikeProps, StyleProps {}\n\ninterface MenuGroupConfig<C extends AnyPlasmicClass> {\n noTitleVariant: PlasmicClassVariants<C>;\n isFirstVariant: PlasmicClassVariants<C>;\n\n itemsSlot: keyof PlasmicClassArgs<C>;\n titleSlot: keyof PlasmicClassArgs<C>;\n\n root: keyof PlasmicClassOverrides<C>;\n separator: keyof PlasmicClassOverrides<C>;\n titleContainer: keyof PlasmicClassOverrides<C>;\n itemsContainer: keyof PlasmicClassOverrides<C>;\n}\n\nexport function useMenuGroup<\n P extends BaseMenuGroupProps,\n C extends AnyPlasmicClass\n>(plasmicClass: C, props: P, config: MenuGroupConfig<C>) {\n const context = React.useContext(MenuContext);\n\n const node = (props as any)._node as\n | Node<React.ReactElement<BaseMenuGroupProps>>\n | undefined;\n\n if (!context || !node) {\n if (PLUME_STRICT_MODE) {\n throw new Error(\"You can only use a Menu.Group within a Menu component.\");\n }\n return getDefaultPlasmicProps(plasmicClass, props);\n }\n\n const { headingProps, groupProps } = useMenuSection({\n heading: props.title,\n \"aria-label\": props[\"aria-label\"],\n });\n\n const { separatorProps } = useSeparator({\n elementType: \"li\",\n });\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.noTitleVariant, active: !props.title },\n {\n def: config.isFirstVariant,\n active: context.state.collection.getFirstKey() === node.key,\n }\n ),\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.titleSlot]: props.title,\n [config.itemsSlot]: Array.from(node.childNodes).map((childNode) =>\n renderCollectionNode(childNode)\n ),\n };\n\n const overrides: Overrides = {\n [config.root]: {\n props: getStyleProps(props),\n },\n [config.separator]: {\n props: {\n ...separatorProps,\n },\n as: \"li\",\n },\n [config.titleContainer]: {\n props: {\n role: \"presentation\",\n ...headingProps,\n },\n ...(!props.title && {\n render: () => null,\n }),\n },\n [config.itemsContainer]: {\n props: {\n ...groupProps,\n },\n as: \"ul\",\n },\n };\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n };\n}\n","import { Node } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport { useMenuItem as useAriaMenuItem } from \"@react-aria/menu\";\nimport { pick } from \"../../common\";\nimport { mergeProps } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { ItemLikeProps } from \"../collection-utils\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n noOutline,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n PLUME_STRICT_MODE,\n VariantDef,\n} from \"../plume-utils\";\nimport { getDefaultPlasmicProps } from \"../props-utils\";\nimport { TriggeredOverlayContext } from \"../triggered-overlay/context\";\nimport { MenuContext } from \"./context\";\n\nexport interface BaseMenuItemProps extends ItemLikeProps {\n /**\n * Called when this item is selected\n */\n onAction?: (key: string) => void;\n}\n\ninterface MenuItemConfig<C extends AnyPlasmicClass> {\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n isHighlightedVariant?: VariantDef<PlasmicClassVariants<C>>;\n\n labelSlot: keyof PlasmicClassArgs<C>;\n\n root: keyof PlasmicClassOverrides<C>;\n labelContainer: keyof PlasmicClassOverrides<C>;\n}\n\nexport function useMenuItem<\n P extends BaseMenuItemProps,\n C extends AnyPlasmicClass\n>(plasmicClass: C, props: P, config: MenuItemConfig<C>) {\n const menuContext = React.useContext(MenuContext);\n const triggerContext = React.useContext(TriggeredOverlayContext);\n\n if (!menuContext) {\n if (PLUME_STRICT_MODE) {\n throw new Error(\"You can only use a Menu.Item within a Menu component.\");\n }\n\n return getDefaultPlasmicProps(plasmicClass, props);\n }\n\n const { children, onAction } = props;\n\n const { state, menuProps } = menuContext;\n\n // We pass in the Node secretly as an undocumented prop from <Select />\n const node = (props as any)._node as Node<\n React.ReactElement<BaseMenuItemProps>\n >;\n\n const isDisabled = state.disabledKeys.has(node.key);\n const isHighlighted =\n state.selectionManager.isFocused &&\n state.selectionManager.focusedKey === node.key;\n\n const ref = React.useRef<HTMLLIElement>(null);\n\n const { menuItemProps, labelProps } = useAriaMenuItem(\n mergeProps(\n {\n // We need to merge both the onAction on MenuItem and the onAction\n // on Menu\n onAction,\n },\n {\n onAction: menuProps.onAction,\n onClose: triggerContext?.state.close,\n },\n {\n isDisabled,\n \"aria-label\": node && node[\"aria-label\"],\n key: node.key,\n isVirtualized: false,\n closeOnSelect: true,\n }\n ),\n state,\n ref\n );\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.isDisabledVariant, active: isDisabled },\n { def: config.isHighlightedVariant, active: isHighlighted }\n ),\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.labelSlot]: children,\n };\n\n const overrides: Overrides = {\n [config.root]: {\n as: \"li\",\n props: mergeProps(menuItemProps, { ref, style: noOutline() }),\n },\n [config.labelContainer]: {\n props: { ...labelProps },\n },\n };\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n };\n}\n"],"names":["useAriaMenu","useAriaMenuItem"],"mappings":"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"}
@@ -7,13 +7,14 @@ import { useMenuTrigger as useMenuTrigger$1 } from '@react-aria/menu';
7
7
  import { usePress } from '@react-aria/interactions';
8
8
  import { g as getPlumeType, m as mergeVariantToggles } from '../../plume-utils-9472dfe6.js';
9
9
  import { useFocusable } from '@react-aria/focus';
10
- import { c as useEnsureSSRProvider } from '../../ssr-145c6cd2.js';
10
+ import { c as useEnsureSSRProvider } from '../../ssr-f37a883d.js';
11
11
  import { g as getStyleProps } from '../../props-utils-b08721e5.js';
12
12
  import 'classnames';
13
13
  import '@plasmicapp/data-sources-context';
14
+ import '@plasmicapp/host';
14
15
  import '@react-aria/ssr';
15
16
  import '../../render/PlasmicHead/index.js';
16
- import '@plasmicapp/host';
17
+ import '@plasmicapp/query';
17
18
 
18
19
  /**
19
20
  * A menu trigger hook that combines react-aria's useMenuTrigger, useAriaMenuTrigger,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/plume/menu-button/menu-trigger.tsx","../../../../src/plume/menu-button/DropdownMenu.tsx","../../../../src/plume/menu-button/menu-button.tsx"],"sourcesContent":["import { Placement } from \"@react-types/overlays\";\nimport * as React from \"react\";\nimport { useMenuTrigger as useAriaMenuTrigger } from \"@react-aria/menu\";\nimport { usePress } from \"@react-aria/interactions\";\nimport { MenuTriggerState } from \"@react-stately/menu\";\nimport { mergeProps } from \"../../react-utils\";\nimport { BaseMenuProps } from \"../menu/menu\";\nimport { getPlumeType, PLUME_STRICT_MODE } from \"../plume-utils\";\nimport { TriggeredOverlayContextValue } from \"../triggered-overlay/context\";\n\n/**\n * A menu trigger hook that combines react-aria's useMenuTrigger, useAriaMenuTrigger,\n * useOverlayPosition, useOverlay, and usePress\n */\nexport function useMenuTrigger(\n opts: {\n isDisabled?: boolean;\n triggerRef: React.RefObject<HTMLElement>;\n placement?: Placement;\n menuMatchTriggerWidth?: boolean;\n menuWidth?: number;\n menu:\n | React.ReactElement<BaseMenuProps>\n | (() => React.ReactElement<BaseMenuProps>);\n },\n state: MenuTriggerState\n) {\n const {\n triggerRef,\n isDisabled,\n placement,\n menuMatchTriggerWidth,\n menuWidth,\n menu,\n } = opts;\n\n const { menuTriggerProps: triggerPressProps, menuProps } = useAriaMenuTrigger(\n {\n type: \"menu\",\n isDisabled,\n },\n state,\n triggerRef\n );\n\n const { pressProps: triggerProps } = usePress({\n ...triggerPressProps,\n isDisabled,\n });\n\n const makeMenu = () => {\n let realMenu = typeof menu === \"function\" ? menu() : menu;\n if (!realMenu) {\n return null;\n }\n if (getPlumeType(realMenu) !== \"menu\") {\n if (PLUME_STRICT_MODE) {\n throw new Error(`Must use an instance of the Menu component.`);\n }\n return null;\n }\n\n return React.cloneElement(realMenu, mergeProps(realMenu.props, menuProps));\n };\n\n const triggerContext: TriggeredOverlayContextValue = React.useMemo(\n () => ({\n triggerRef,\n state,\n autoFocus: state.focusStrategy ?? true,\n placement,\n overlayMatchTriggerWidth: menuMatchTriggerWidth,\n overlayMinTriggerWidth: true,\n overlayWidth: menuWidth,\n }),\n [triggerRef, state, placement, menuMatchTriggerWidth, menuWidth]\n );\n\n return {\n triggerProps,\n makeMenu,\n triggerContext,\n };\n}\n","import { useMenuTriggerState } from \"@react-stately/menu\";\nimport { Placement } from \"@react-types/overlays\";\nimport * as React from \"react\";\nimport { mergeProps } from \"../../react-utils\";\nimport { BaseMenuProps } from \"../menu/menu\";\nimport { TriggeredOverlayContext } from \"../triggered-overlay/context\";\nimport { useMenuTrigger } from \"./menu-trigger\";\n\nexport interface DropdownMenuProps {\n /**\n * A ReactElement that takes in a `ref` as well as the usual mouse and\n * pointer events. The dropdown menu will be positioned relative to this\n * trigger.\n */\n children: React.ReactElement;\n\n /**\n * The menu to show; must be either a ReactElement of Menu type, or\n * a function that creates one if you prefer to delay creating it until\n * the menu has been triggered.\n */\n menu:\n | React.ReactElement<BaseMenuProps>\n | (() => React.ReactElement<BaseMenuProps>);\n\n /**\n * Where to place the menu relative to the trigger.\n */\n placement?: Placement;\n\n /**\n * Whether the menu is currently shown.\n */\n isOpen?: boolean;\n\n /**\n * Uncontrolled open state.\n */\n defaultOpen?: boolean;\n\n /**\n * Event handler fired when Menu's open state changes\n */\n onOpenChange?: (isOpen: boolean) => void;\n}\n\nexport function DropdownMenu(props: DropdownMenuProps) {\n const { isOpen, defaultOpen, onOpenChange, children, placement, menu } =\n props;\n\n const triggerRef = React.useRef<HTMLElement>(null);\n\n const state = useMenuTriggerState({\n isOpen,\n defaultOpen,\n onOpenChange,\n });\n\n const { triggerProps, makeMenu, triggerContext } = useMenuTrigger(\n {\n triggerRef,\n placement,\n menu,\n },\n state\n );\n\n return (\n <TriggeredOverlayContext.Provider value={triggerContext}>\n {React.cloneElement(\n children,\n mergeProps(children.props, triggerProps, { ref: triggerRef })\n )}\n {state.isOpen && makeMenu()}\n </TriggeredOverlayContext.Provider>\n );\n}\n","import { useFocusable } from \"@react-aria/focus\";\nimport { useMenuTriggerState } from \"@react-stately/menu\";\nimport { Placement } from \"@react-types/overlays\";\nimport { DOMProps, FocusableProps } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport { pick } from \"../../common\";\nimport { mergeProps } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { useEnsureSSRProvider } from \"../../render/ssr\";\nimport { BaseMenuProps } from \"../menu/menu\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n VariantDef,\n} from \"../plume-utils\";\nimport { getStyleProps, StyleProps } from \"../props-utils\";\nimport { TriggeredOverlayContext } from \"../triggered-overlay/context\";\nimport { useMenuTrigger } from \"./menu-trigger\";\n\nexport interface BaseMenuButtonProps\n extends DOMProps,\n FocusableProps,\n StyleProps,\n Pick<React.ComponentProps<\"button\">, \"title\"> {\n /**\n * The menu to show; can either be a Menu instance, or a function that returns a Menu\n * instance if you want to defer creating the instance till when it's opened.\n */\n menu:\n | React.ReactElement<BaseMenuProps>\n | (() => React.ReactElement<BaseMenuProps>);\n\n /**\n * Whether the button is disabled\n */\n isDisabled?: boolean;\n\n /**\n * Whether the menu is currently shown.\n */\n isOpen?: boolean;\n\n /**\n * Uncontrolled open state\n */\n defaultOpen?: boolean;\n\n /**\n * Event handler fired when Menu's open state changes\n */\n onOpenChange?: (isOpen: boolean) => void;\n\n /**\n * Desired placement location of the Select dropdown\n */\n placement?: Placement;\n /**\n * If true, menu width will always match the trigger button width.\n * If false, then menu width will have min-width matching the\n * trigger button width.\n */\n menuMatchTriggerWidth?: boolean;\n\n /**\n * If set, menu width will be exactly this width, overriding\n * menuMatchTriggerWidth.\n */\n menuWidth?: number;\n}\n\nexport interface MenuButtonConfig<C extends AnyPlasmicClass> {\n isOpenVariant: VariantDef<PlasmicClassVariants<C>>;\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n\n menuSlot: keyof PlasmicClassArgs<C>;\n\n root: keyof PlasmicClassOverrides<C>;\n trigger: keyof PlasmicClassOverrides<C>;\n}\n\ninterface MenuButtonState {\n open: () => void;\n close: () => void;\n isOpen: () => boolean;\n}\n\nexport type MenuButtonRef = React.Ref<MenuButtonRefValue>;\n\nexport interface MenuButtonRefValue extends MenuButtonState {\n getRoot: () => HTMLElement | null;\n getTrigger: () => HTMLElement | null;\n focus: () => void;\n blur: () => void;\n}\n\nexport function useMenuButton<\n P extends BaseMenuButtonProps,\n C extends AnyPlasmicClass\n>(\n plasmicClass: C,\n props: P,\n config: MenuButtonConfig<C>,\n outerRef: MenuButtonRef = null\n) {\n const {\n placement,\n isOpen,\n defaultOpen,\n onOpenChange,\n isDisabled,\n menu,\n autoFocus,\n menuMatchTriggerWidth,\n menuWidth,\n } = props;\n\n useEnsureSSRProvider();\n const rootRef = React.useRef<HTMLElement>(null);\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n\n const state = useMenuTriggerState({\n isOpen,\n defaultOpen,\n onOpenChange,\n });\n\n const { triggerProps, makeMenu, triggerContext } = useMenuTrigger(\n {\n isDisabled,\n triggerRef,\n placement,\n menuMatchTriggerWidth,\n menuWidth,\n menu,\n },\n state\n );\n\n const { focusableProps: triggerFocusProps } = useFocusable(props, triggerRef);\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.isOpenVariant, active: state.isOpen },\n { def: config.isDisabledVariant, active: isDisabled }\n ),\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.menuSlot]: state.isOpen ? makeMenu() : undefined,\n };\n\n const overrides: Overrides = {\n [config.root]: {\n wrapChildren: (children: React.ReactNode) => (\n <TriggeredOverlayContext.Provider value={triggerContext}>\n {children}\n </TriggeredOverlayContext.Provider>\n ),\n props: {\n ref: rootRef,\n },\n },\n [config.trigger]: {\n props: mergeProps(\n triggerProps,\n triggerFocusProps,\n getStyleProps(props),\n pick(props, \"title\"),\n {\n ref: triggerRef,\n autoFocus,\n disabled: !!isDisabled,\n // Make sure this button is not interpreted as submit\n type: \"button\",\n }\n ),\n },\n };\n\n const plumeState: MenuButtonState = React.useMemo(\n () => ({\n open: () => state.open(),\n close: () => state.close(),\n isOpen: () => state.isOpen,\n }),\n [state]\n );\n\n React.useImperativeHandle(\n outerRef,\n () => ({\n getRoot: () => rootRef.current,\n getTrigger: () => triggerRef.current,\n focus: () => triggerRef.current && triggerRef.current.focus(),\n blur: () => triggerRef.current && triggerRef.current.blur(),\n open: plumeState.open,\n close: plumeState.close,\n isOpen: plumeState.isOpen,\n }),\n [rootRef, triggerRef, plumeState]\n );\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n state: plumeState,\n };\n}\n"],"names":["useAriaMenuTrigger"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/plume/menu-button/menu-trigger.tsx","../../../../src/plume/menu-button/DropdownMenu.tsx","../../../../src/plume/menu-button/menu-button.tsx"],"sourcesContent":["import { Placement } from \"@react-types/overlays\";\nimport * as React from \"react\";\nimport { useMenuTrigger as useAriaMenuTrigger } from \"@react-aria/menu\";\nimport { usePress } from \"@react-aria/interactions\";\nimport { MenuTriggerState } from \"@react-stately/menu\";\nimport { mergeProps } from \"../../react-utils\";\nimport { BaseMenuProps } from \"../menu/menu\";\nimport { getPlumeType, PLUME_STRICT_MODE } from \"../plume-utils\";\nimport { TriggeredOverlayContextValue } from \"../triggered-overlay/context\";\n\n/**\n * A menu trigger hook that combines react-aria's useMenuTrigger, useAriaMenuTrigger,\n * useOverlayPosition, useOverlay, and usePress\n */\nexport function useMenuTrigger(\n opts: {\n isDisabled?: boolean;\n triggerRef: React.RefObject<HTMLElement>;\n placement?: Placement;\n menuMatchTriggerWidth?: boolean;\n menuWidth?: number;\n menu:\n | React.ReactElement<BaseMenuProps>\n | (() => React.ReactElement<BaseMenuProps>);\n },\n state: MenuTriggerState\n) {\n const {\n triggerRef,\n isDisabled,\n placement,\n menuMatchTriggerWidth,\n menuWidth,\n menu,\n } = opts;\n\n const { menuTriggerProps: triggerPressProps, menuProps } = useAriaMenuTrigger(\n {\n type: \"menu\",\n isDisabled,\n },\n state,\n triggerRef\n );\n\n const { pressProps: triggerProps } = usePress({\n ...triggerPressProps,\n isDisabled,\n });\n\n const makeMenu = () => {\n let realMenu = typeof menu === \"function\" ? menu() : menu;\n if (!realMenu) {\n return null;\n }\n if (getPlumeType(realMenu) !== \"menu\") {\n if (PLUME_STRICT_MODE) {\n throw new Error(`Must use an instance of the Menu component.`);\n }\n return null;\n }\n\n return React.cloneElement(realMenu, mergeProps(realMenu.props, menuProps));\n };\n\n const triggerContext: TriggeredOverlayContextValue = React.useMemo(\n () => ({\n triggerRef,\n state,\n autoFocus: state.focusStrategy ?? true,\n placement,\n overlayMatchTriggerWidth: menuMatchTriggerWidth,\n overlayMinTriggerWidth: true,\n overlayWidth: menuWidth,\n }),\n [triggerRef, state, placement, menuMatchTriggerWidth, menuWidth]\n );\n\n return {\n triggerProps,\n makeMenu,\n triggerContext,\n };\n}\n","import { useMenuTriggerState } from \"@react-stately/menu\";\nimport { Placement } from \"@react-types/overlays\";\nimport * as React from \"react\";\nimport { mergeProps } from \"../../react-utils\";\nimport { BaseMenuProps } from \"../menu/menu\";\nimport { TriggeredOverlayContext } from \"../triggered-overlay/context\";\nimport { useMenuTrigger } from \"./menu-trigger\";\n\nexport interface DropdownMenuProps {\n /**\n * A ReactElement that takes in a `ref` as well as the usual mouse and\n * pointer events. The dropdown menu will be positioned relative to this\n * trigger.\n */\n children: React.ReactElement;\n\n /**\n * The menu to show; must be either a ReactElement of Menu type, or\n * a function that creates one if you prefer to delay creating it until\n * the menu has been triggered.\n */\n menu:\n | React.ReactElement<BaseMenuProps>\n | (() => React.ReactElement<BaseMenuProps>);\n\n /**\n * Where to place the menu relative to the trigger.\n */\n placement?: Placement;\n\n /**\n * Whether the menu is currently shown.\n */\n isOpen?: boolean;\n\n /**\n * Uncontrolled open state.\n */\n defaultOpen?: boolean;\n\n /**\n * Event handler fired when Menu's open state changes\n */\n onOpenChange?: (isOpen: boolean) => void;\n}\n\nexport function DropdownMenu(props: DropdownMenuProps) {\n const { isOpen, defaultOpen, onOpenChange, children, placement, menu } =\n props;\n\n const triggerRef = React.useRef<HTMLElement>(null);\n\n const state = useMenuTriggerState({\n isOpen,\n defaultOpen,\n onOpenChange,\n });\n\n const { triggerProps, makeMenu, triggerContext } = useMenuTrigger(\n {\n triggerRef,\n placement,\n menu,\n },\n state\n );\n\n return (\n <TriggeredOverlayContext.Provider value={triggerContext}>\n {React.cloneElement(\n children,\n mergeProps(children.props, triggerProps, { ref: triggerRef })\n )}\n {state.isOpen && makeMenu()}\n </TriggeredOverlayContext.Provider>\n );\n}\n","import { useFocusable } from \"@react-aria/focus\";\nimport { useMenuTriggerState } from \"@react-stately/menu\";\nimport { Placement } from \"@react-types/overlays\";\nimport { DOMProps, FocusableProps } from \"@react-types/shared\";\nimport * as React from \"react\";\nimport { pick } from \"../../common\";\nimport { mergeProps } from \"../../react-utils\";\nimport { Overrides } from \"../../render/elements\";\nimport { useEnsureSSRProvider } from \"../../render/ssr\";\nimport { BaseMenuProps } from \"../menu/menu\";\nimport {\n AnyPlasmicClass,\n mergeVariantToggles,\n PlasmicClassArgs,\n PlasmicClassOverrides,\n PlasmicClassVariants,\n VariantDef,\n} from \"../plume-utils\";\nimport { getStyleProps, StyleProps } from \"../props-utils\";\nimport { TriggeredOverlayContext } from \"../triggered-overlay/context\";\nimport { useMenuTrigger } from \"./menu-trigger\";\n\nexport interface BaseMenuButtonProps\n extends DOMProps,\n FocusableProps,\n StyleProps,\n Pick<React.ComponentProps<\"button\">, \"title\"> {\n /**\n * The menu to show; can either be a Menu instance, or a function that returns a Menu\n * instance if you want to defer creating the instance till when it's opened.\n */\n menu:\n | React.ReactElement<BaseMenuProps>\n | (() => React.ReactElement<BaseMenuProps>);\n\n /**\n * Whether the button is disabled\n */\n isDisabled?: boolean;\n\n /**\n * Whether the menu is currently shown.\n */\n isOpen?: boolean;\n\n /**\n * Uncontrolled open state\n */\n defaultOpen?: boolean;\n\n /**\n * Event handler fired when Menu's open state changes\n */\n onOpenChange?: (isOpen: boolean) => void;\n\n /**\n * Desired placement location of the Select dropdown\n */\n placement?: Placement;\n /**\n * If true, menu width will always match the trigger button width.\n * If false, then menu width will have min-width matching the\n * trigger button width.\n */\n menuMatchTriggerWidth?: boolean;\n\n /**\n * If set, menu width will be exactly this width, overriding\n * menuMatchTriggerWidth.\n */\n menuWidth?: number;\n}\n\nexport interface MenuButtonConfig<C extends AnyPlasmicClass> {\n isOpenVariant: VariantDef<PlasmicClassVariants<C>>;\n isDisabledVariant?: VariantDef<PlasmicClassVariants<C>>;\n\n menuSlot: keyof PlasmicClassArgs<C>;\n\n root: keyof PlasmicClassOverrides<C>;\n trigger: keyof PlasmicClassOverrides<C>;\n}\n\ninterface MenuButtonState {\n open: () => void;\n close: () => void;\n isOpen: () => boolean;\n}\n\nexport type MenuButtonRef = React.Ref<MenuButtonRefValue>;\n\nexport interface MenuButtonRefValue extends MenuButtonState {\n getRoot: () => HTMLElement | null;\n getTrigger: () => HTMLElement | null;\n focus: () => void;\n blur: () => void;\n}\n\nexport function useMenuButton<\n P extends BaseMenuButtonProps,\n C extends AnyPlasmicClass\n>(\n plasmicClass: C,\n props: P,\n config: MenuButtonConfig<C>,\n outerRef: MenuButtonRef = null\n) {\n const {\n placement,\n isOpen,\n defaultOpen,\n onOpenChange,\n isDisabled,\n menu,\n autoFocus,\n menuMatchTriggerWidth,\n menuWidth,\n } = props;\n\n useEnsureSSRProvider();\n const rootRef = React.useRef<HTMLElement>(null);\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n\n const state = useMenuTriggerState({\n isOpen,\n defaultOpen,\n onOpenChange,\n });\n\n const { triggerProps, makeMenu, triggerContext } = useMenuTrigger(\n {\n isDisabled,\n triggerRef,\n placement,\n menuMatchTriggerWidth,\n menuWidth,\n menu,\n },\n state\n );\n\n const { focusableProps: triggerFocusProps } = useFocusable(props, triggerRef);\n\n const variants = {\n ...pick(props, ...plasmicClass.internalVariantProps),\n ...mergeVariantToggles(\n { def: config.isOpenVariant, active: state.isOpen },\n { def: config.isDisabledVariant, active: isDisabled }\n ),\n };\n\n const args = {\n ...pick(props, ...plasmicClass.internalArgProps),\n [config.menuSlot]: state.isOpen ? makeMenu() : undefined,\n };\n\n const overrides: Overrides = {\n [config.root]: {\n wrapChildren: (children: React.ReactNode) => (\n <TriggeredOverlayContext.Provider value={triggerContext}>\n {children}\n </TriggeredOverlayContext.Provider>\n ),\n props: {\n ref: rootRef,\n },\n },\n [config.trigger]: {\n props: mergeProps(\n triggerProps,\n triggerFocusProps,\n getStyleProps(props),\n pick(props, \"title\"),\n {\n ref: triggerRef,\n autoFocus,\n disabled: !!isDisabled,\n // Make sure this button is not interpreted as submit\n type: \"button\",\n }\n ),\n },\n };\n\n const plumeState: MenuButtonState = React.useMemo(\n () => ({\n open: () => state.open(),\n close: () => state.close(),\n isOpen: () => state.isOpen,\n }),\n [state]\n );\n\n React.useImperativeHandle(\n outerRef,\n () => ({\n getRoot: () => rootRef.current,\n getTrigger: () => triggerRef.current,\n focus: () => triggerRef.current && triggerRef.current.focus(),\n blur: () => triggerRef.current && triggerRef.current.blur(),\n open: plumeState.open,\n close: plumeState.close,\n isOpen: plumeState.isOpen,\n }),\n [rootRef, triggerRef, plumeState]\n );\n\n return {\n plasmicProps: {\n variants: variants as PlasmicClassVariants<C>,\n args: args as PlasmicClassArgs<C>,\n overrides: overrides as PlasmicClassOverrides<C>,\n },\n state: plumeState,\n };\n}\n"],"names":["useAriaMenuTrigger"],"mappings":"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"}
@@ -6,7 +6,7 @@ import { useSelect as useSelect$1, HiddenSelect } from '@react-aria/select';
6
6
  import { useSelectState } from '@react-stately/select';
7
7
  import * as React from 'react';
8
8
  import { m as mergeProps, d as mergeRefs } from '../../react-utils-d266354d.js';
9
- import { c as useEnsureSSRProvider } from '../../ssr-145c6cd2.js';
9
+ import { c as useEnsureSSRProvider } from '../../ssr-f37a883d.js';
10
10
  import { g as getChildProp, r as renderCollectionNode, b as useDerivedItems, a as renderAsCollectionChild } from '../../collection-utils-b8088b18.js';
11
11
  import { m as mergeVariantToggles, n as noOutline } from '../../plume-utils-9472dfe6.js';
12
12
  import { g as getStyleProps } from '../../props-utils-b08721e5.js';
@@ -16,6 +16,7 @@ import 'classnames';
16
16
  import '@plasmicapp/data-sources-context';
17
17
  import '@react-aria/ssr';
18
18
  import '../../render/PlasmicHead/index.js';
19
+ import '@plasmicapp/query';
19
20
  import '@react-stately/collections';
20
21
 
21
22
  var SelectContext = React.createContext(undefined);