@knocklabs/react 0.11.1 → 0.11.2

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 (34) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/cjs/modules/guide/components/Toolbar/V2/GuideContextDetails.js +2 -0
  3. package/dist/cjs/modules/guide/components/Toolbar/V2/GuideContextDetails.js.map +1 -0
  4. package/dist/cjs/modules/guide/components/Toolbar/V2/GuideHoverCard.js +1 -1
  5. package/dist/cjs/modules/guide/components/Toolbar/V2/GuideHoverCard.js.map +1 -1
  6. package/dist/cjs/modules/guide/components/Toolbar/V2/GuideRow.js +1 -1
  7. package/dist/cjs/modules/guide/components/Toolbar/V2/GuideRow.js.map +1 -1
  8. package/dist/cjs/modules/guide/components/Toolbar/V2/GuidesListDisplaySelect.js +1 -1
  9. package/dist/cjs/modules/guide/components/Toolbar/V2/GuidesListDisplaySelect.js.map +1 -1
  10. package/dist/cjs/modules/guide/components/Toolbar/V2/V2.js +1 -1
  11. package/dist/cjs/modules/guide/components/Toolbar/V2/V2.js.map +1 -1
  12. package/dist/cjs/modules/guide/components/Toolbar/V2/useInspectGuideClientStore.js +1 -1
  13. package/dist/cjs/modules/guide/components/Toolbar/V2/useInspectGuideClientStore.js.map +1 -1
  14. package/dist/esm/modules/guide/components/Toolbar/V2/GuideContextDetails.mjs +27 -0
  15. package/dist/esm/modules/guide/components/Toolbar/V2/GuideContextDetails.mjs.map +1 -0
  16. package/dist/esm/modules/guide/components/Toolbar/V2/GuideHoverCard.mjs +1 -1
  17. package/dist/esm/modules/guide/components/Toolbar/V2/GuideHoverCard.mjs.map +1 -1
  18. package/dist/esm/modules/guide/components/Toolbar/V2/GuideRow.mjs +17 -14
  19. package/dist/esm/modules/guide/components/Toolbar/V2/GuideRow.mjs.map +1 -1
  20. package/dist/esm/modules/guide/components/Toolbar/V2/GuidesListDisplaySelect.mjs +9 -9
  21. package/dist/esm/modules/guide/components/Toolbar/V2/GuidesListDisplaySelect.mjs.map +1 -1
  22. package/dist/esm/modules/guide/components/Toolbar/V2/V2.mjs +32 -24
  23. package/dist/esm/modules/guide/components/Toolbar/V2/V2.mjs.map +1 -1
  24. package/dist/esm/modules/guide/components/Toolbar/V2/useInspectGuideClientStore.mjs +107 -42
  25. package/dist/esm/modules/guide/components/Toolbar/V2/useInspectGuideClientStore.mjs.map +1 -1
  26. package/dist/types/modules/guide/components/Toolbar/V2/GuideContextDetails.d.ts +2 -0
  27. package/dist/types/modules/guide/components/Toolbar/V2/GuideContextDetails.d.ts.map +1 -0
  28. package/dist/types/modules/guide/components/Toolbar/V2/GuideRow.d.ts.map +1 -1
  29. package/dist/types/modules/guide/components/Toolbar/V2/GuidesListDisplaySelect.d.ts +1 -1
  30. package/dist/types/modules/guide/components/Toolbar/V2/GuidesListDisplaySelect.d.ts.map +1 -1
  31. package/dist/types/modules/guide/components/Toolbar/V2/V2.d.ts.map +1 -1
  32. package/dist/types/modules/guide/components/Toolbar/V2/useInspectGuideClientStore.d.ts +22 -2
  33. package/dist/types/modules/guide/components/Toolbar/V2/useInspectGuideClientStore.d.ts.map +1 -1
  34. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.11.2
4
+
5
+ ### Patch Changes
6
+
7
+ - b7b3708: [guides] add guide toolbar v2 poc
8
+ - Updated dependencies [cb7148b]
9
+ - Updated dependencies [04a8f16]
10
+ - Updated dependencies [b7b3708]
11
+ - @knocklabs/client@0.21.2
12
+ - @knocklabs/react-core@0.13.2
13
+
3
14
  ## 0.11.1
4
15
 
5
16
  ### Patch Changes
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("@knocklabs/react-core"),r=require("@telegraph/layout"),a=require("@telegraph/typography"),m=require("lucide-react"),u=require("react");function d(t){if(t&&typeof t=="object"&&"default"in t)return t;const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const o in t)if(o!=="default"){const c=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(n,o,c.get?c:{enumerable:!0,get:()=>t[o]})}}return n.default=t,Object.freeze(n)}const e=d(u),p=()=>{const{client:t}=s.useGuideContext(),[n,o]=e.useState(!1),c=s.useStore(t.store,l=>l.guideGroups[0]),i=(c==null?void 0:c.display_interval)??null;return e.createElement(r.Stack,{direction:"column",borderTop:"px"},e.createElement(r.Stack,{h:"5",px:"2",bg:"gray-3",align:"center",gap:"1",style:{cursor:"pointer"},onClick:()=>o(l=>!l)},e.createElement(a.Text,{as:"span",size:"0",weight:"medium"},"Details"),n?e.createElement(m.ChevronDown,{size:12}):e.createElement(m.ChevronRight,{size:12})),n&&e.createElement(r.Stack,{direction:"column"},e.createElement(r.Stack,{direction:"column",gap:"0_5",py:"1",px:"2",borderTop:"px"},e.createElement(a.Text,{as:"span",size:"0",weight:"medium"},"Throttle"),e.createElement(a.Text,{as:"code",size:"0"},i===null?"-":`Every ${i}s`)),e.createElement(r.Stack,{direction:"column",py:"1",px:"2",borderTop:"px"},e.createElement(a.Text,{as:"span",size:"0",weight:"medium"},"Target params"),e.createElement(r.Stack,{direction:"column",gap:"0_5",mt:"1"},e.createElement(a.Text,{as:"span",size:"0",color:"gray"},"Tenant"),e.createElement(a.Text,{as:"code",size:"0"},t.targetParams.tenant?e.createElement(r.Box,{rounded:"2",overflow:"auto",backgroundColor:"gray-2",border:"px",style:{maxHeight:"200px"}},e.createElement("pre",{style:{fontSize:"11px",margin:0}},e.createElement("code",null,t.targetParams.tenant))):e.createElement(a.Text,{as:"code",size:"0"},"-"))),e.createElement(r.Stack,{direction:"column",gap:"0_5"},e.createElement(a.Text,{as:"span",size:"0",color:"gray"},"Data"),t.targetParams.data?e.createElement(r.Box,{rounded:"2",overflow:"auto",backgroundColor:"gray-2",border:"px",style:{maxHeight:"200px"}},e.createElement("pre",{style:{fontSize:"11px",margin:0}},e.createElement("code",null,JSON.stringify(t.targetParams.data,null,2)))):e.createElement(a.Text,{as:"code",size:"0"},"-")))))};exports.GuideContextDetails=p;
2
+ //# sourceMappingURL=GuideContextDetails.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GuideContextDetails.js","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/GuideContextDetails.tsx"],"sourcesContent":["import { useGuideContext, useStore } from \"@knocklabs/react-core\";\nimport { Box, Stack } from \"@telegraph/layout\";\nimport { Text } from \"@telegraph/typography\";\nimport { ChevronDown, ChevronRight } from \"lucide-react\";\nimport * as React from \"react\";\n\nexport const GuideContextDetails = () => {\n const { client } = useGuideContext();\n const [isExpanded, setIsExpanded] = React.useState(false);\n\n const defaultGroup = useStore(client.store, (state) => state.guideGroups[0]);\n const displayInterval = defaultGroup?.display_interval ?? null;\n\n return (\n <Stack direction=\"column\" borderTop=\"px\">\n <Stack\n h=\"5\"\n px=\"2\"\n bg=\"gray-3\"\n align=\"center\"\n gap=\"1\"\n style={{ cursor: \"pointer\" }}\n onClick={() => setIsExpanded((prev) => !prev)}\n >\n <Text as=\"span\" size=\"0\" weight=\"medium\">\n Details\n </Text>\n {isExpanded ? <ChevronDown size={12} /> : <ChevronRight size={12} />}\n </Stack>\n\n {isExpanded && (\n <Stack direction=\"column\">\n <Stack direction=\"column\" gap=\"0_5\" py=\"1\" px=\"2\" borderTop=\"px\">\n <Text as=\"span\" size=\"0\" weight=\"medium\">\n Throttle\n </Text>\n <Text as=\"code\" size=\"0\">\n {displayInterval === null ? \"-\" : `Every ${displayInterval}s`}\n </Text>\n </Stack>\n\n <Stack direction=\"column\" py=\"1\" px=\"2\" borderTop=\"px\">\n <Text as=\"span\" size=\"0\" weight=\"medium\">\n Target params\n </Text>\n <Stack direction=\"column\" gap=\"0_5\" mt=\"1\">\n <Text as=\"span\" size=\"0\" color=\"gray\">\n Tenant\n </Text>\n <Text as=\"code\" size=\"0\">\n {client.targetParams.tenant ? (\n <Box\n rounded=\"2\"\n overflow=\"auto\"\n backgroundColor=\"gray-2\"\n border=\"px\"\n style={{ maxHeight: \"200px\" }}\n >\n <pre style={{ fontSize: \"11px\", margin: 0 }}>\n <code>{client.targetParams.tenant}</code>\n </pre>\n </Box>\n ) : (\n <Text as=\"code\" size=\"0\">\n -\n </Text>\n )}\n </Text>\n </Stack>\n\n <Stack direction=\"column\" gap=\"0_5\">\n <Text as=\"span\" size=\"0\" color=\"gray\">\n Data\n </Text>\n {client.targetParams.data ? (\n <Box\n rounded=\"2\"\n overflow=\"auto\"\n backgroundColor=\"gray-2\"\n border=\"px\"\n style={{ maxHeight: \"200px\" }}\n >\n <pre style={{ fontSize: \"11px\", margin: 0 }}>\n <code>\n {JSON.stringify(client.targetParams.data, null, 2)}\n </code>\n </pre>\n </Box>\n ) : (\n <Text as=\"code\" size=\"0\">\n -\n </Text>\n )}\n </Stack>\n </Stack>\n </Stack>\n )}\n </Stack>\n );\n};\n"],"names":["GuideContextDetails","client","useGuideContext","isExpanded","setIsExpanded","React","useState","defaultGroup","useStore","store","state","guideGroups","displayInterval","display_interval","Stack","cursor","prev","Text","ChevronDown","ChevronRight","targetParams","tenant","Box","maxHeight","fontSize","margin","data","JSON","stringify"],"mappings":"mjBAMaA,EAAsBA,IAAM,CACjC,KAAA,CAAEC,OAAAA,GAAWC,kBAAgB,EAC7B,CAACC,EAAYC,CAAa,EAAIC,EAAMC,SAAS,EAAK,EAElDC,EAAeC,WAASP,EAAOQ,SAAkBC,EAAMC,YAAY,CAAC,CAAC,EACrEC,GAAkBL,GAAAA,YAAAA,EAAcM,mBAAoB,KAE1D,uBACGC,EAAM,MAAA,CAAA,UAAU,SAAS,UAAU,IAAA,kBACjCA,EAAAA,MACC,CAAA,EAAE,IACF,GAAG,IACH,GAAG,SACH,MAAM,SACN,IAAI,IACJ,MAAO,CAAEC,OAAQ,SAAA,EACjB,QAAS,IAAMX,EAAwBY,GAAA,CAACA,CAAI,CAAA,EAE3CX,EAAA,cAAAY,EAAA,KAAA,CAAK,GAAG,OAAO,KAAK,IAAI,OAAO,UAAQ,SAExC,EACCd,EAAaE,EAAA,cAACa,EAAAA,YAAY,CAAA,KAAM,EAAM,CAAA,EAAIb,EAAA,cAAAc,EAAA,aAAA,CAAa,KAAM,EAAA,CAAM,CACtE,EAEChB,GACEE,EAAA,cAAAS,EAAAA,MAAA,CAAM,UAAU,QAAA,EACdT,EAAA,cAAAS,QAAA,CAAM,UAAU,SAAS,IAAI,MAAM,GAAG,IAAI,GAAG,IAAI,UAAU,IAAA,EACzDT,EAAA,cAAAY,EAAAA,KAAA,CAAK,GAAG,OAAO,KAAK,IAAI,OAAO,QAAA,EAAQ,UAExC,EACCZ,EAAA,cAAAY,EAAAA,KAAA,CAAK,GAAG,OAAO,KAAK,GAClBL,EAAAA,IAAoB,KAAO,IAAM,SAASA,CAAe,GAC5D,CACF,EAEAP,EAAA,cAACS,EAAAA,MAAM,CAAA,UAAU,SAAS,GAAG,IAAI,GAAG,IAAI,UAAU,IAChD,EAAAT,EAAA,cAACY,EAAK,KAAA,CAAA,GAAG,OAAO,KAAK,IAAI,OAAO,QAAQ,EAAA,eAExC,EACAZ,EAAA,cAACS,EAAAA,MAAM,CAAA,UAAU,SAAS,IAAI,MAAM,GAAG,GAAA,EACpCT,EAAA,cAAAY,EAAA,KAAA,CAAK,GAAG,OAAO,KAAK,IAAI,MAAM,MAAA,EAAM,QAErC,EACCZ,EAAA,cAAAY,EAAAA,KAAA,CAAK,GAAG,OAAO,KAAK,GAAA,EAClBhB,EAAOmB,aAAaC,OACnBhB,EAAA,cAACiB,MACC,CAAA,QAAQ,IACR,SAAS,OACT,gBAAgB,SAChB,OAAO,KACP,MAAO,CAAEC,UAAW,OAAQ,CAAA,EAE3BlB,EAAA,cAAA,MAAA,CAAI,MAAO,CAAEmB,SAAU,OAAQC,OAAQ,CAAE,CAAA,kBACvC,OAAMxB,KAAAA,EAAOmB,aAAaC,MAAO,CACpC,CACF,EAEChB,EAAA,cAAAY,EAAAA,KAAA,CAAK,GAAG,OAAO,KAAK,KAAG,GAExB,CAEJ,CACF,EAEAZ,EAAA,cAACS,EAAAA,MAAM,CAAA,UAAU,SAAS,IAAI,OAC3BT,EAAA,cAAAY,EAAAA,KAAA,CAAK,GAAG,OAAO,KAAK,IAAI,MAAM,MAAA,EAAM,MAErC,EACChB,EAAOmB,aAAaM,KAClBrB,EAAA,cAAAiB,MAAA,CACC,QAAQ,IACR,SAAS,OACT,gBAAgB,SAChB,OAAO,KACP,MAAO,CAAEC,UAAW,OAAQ,CAAA,EAE3BlB,EAAA,cAAA,MAAA,CAAI,MAAO,CAAEmB,SAAU,OAAQC,OAAQ,CAAE,CAAA,EACvCpB,EAAA,cAAA,OAAA,KACEsB,KAAKC,UAAU3B,EAAOmB,aAAaM,KAAM,KAAM,CAAC,CACnD,CACF,CACF,EAEArB,EAAA,cAACY,EAAAA,KAAK,CAAA,GAAG,OAAO,KAAK,KAAG,GAExB,CAEJ,CACF,CACF,CAEJ,CAEJ"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("@radix-ui/react-hover-card"),c=require("@telegraph/layout"),s=require("react"),d=require("./useInspectGuideClientStore.js");function l(e){if(e&&typeof e=="object"&&"default"in e)return e;const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const a=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,a.get?a:{enumerable:!0,get:()=>e[n]})}}return r.default=e,Object.freeze(r)}const o=l(u),t=l(s),f=({children:e,guide:r})=>{if(d.isUnknownGuide(r))return t.createElement(c.Stack,{align:"center"},e);const{annotation:n,activation_location_rules:a,priority:p,...i}=r;return t.createElement(o.Root,null,t.createElement(o.Trigger,null,t.createElement(c.Stack,{align:"center"},e)),t.createElement(o.Portal,null,t.createElement(o.Content,{sideOffset:44,side:"left"},t.createElement(c.Box,{px:"2",shadow:"2",rounded:"3",border:"px",overflow:"auto",backgroundColor:"surface-2",style:{width:"450px",maxHeight:"600px"}},t.createElement("pre",{style:{fontSize:"11px"}},t.createElement("code",null,JSON.stringify(i,null,2)))),t.createElement(o.Arrow,null))))};exports.GuideHoverCard=f;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("@radix-ui/react-hover-card"),c=require("@telegraph/layout"),s=require("react"),d=require("./useInspectGuideClientStore.js");function l(e){if(e&&typeof e=="object"&&"default"in e)return e;const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const a=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(r,n,a.get?a:{enumerable:!0,get:()=>e[n]})}}return r.default=e,Object.freeze(r)}const o=l(u),t=l(s),f=({children:e,guide:r})=>{if(d.isUnknownGuide(r))return t.createElement(c.Stack,{align:"center"},e);const{annotation:n,activation_location_rules:a,priority:p,...i}=r;return t.createElement(o.Root,null,t.createElement(o.Trigger,null,t.createElement(c.Stack,{align:"center"},e)),t.createElement(o.Portal,null,t.createElement(o.Content,{sideOffset:16,side:"left"},t.createElement(c.Box,{px:"2",shadow:"2",rounded:"3",border:"px",overflow:"auto",backgroundColor:"surface-2",style:{width:"450px",maxHeight:"600px"}},t.createElement("pre",{style:{fontSize:"11px"}},t.createElement("code",null,JSON.stringify(i,null,2)))),t.createElement(o.Arrow,null))))};exports.GuideHoverCard=f;
2
2
  //# sourceMappingURL=GuideHoverCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GuideHoverCard.js","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/GuideHoverCard.tsx"],"sourcesContent":["import * as HoverCard from \"@radix-ui/react-hover-card\";\nimport { Box, Stack } from \"@telegraph/layout\";\nimport * as React from \"react\";\n\nimport {\n AnnotatedGuide,\n UnknownGuide,\n isUnknownGuide,\n} from \"./useInspectGuideClientStore\";\n\ntype Props = {\n guide: AnnotatedGuide | UnknownGuide;\n};\n\nexport const GuideHoverCard = ({\n children,\n guide,\n}: React.PropsWithChildren<Props>) => {\n if (isUnknownGuide(guide)) {\n return <Stack align=\"center\">{children}</Stack>;\n }\n\n // Prune out internal or legacy fields.\n const {\n annotation: _annotation,\n activation_location_rules: _activation_location_rules,\n priority: _priority,\n ...rest\n } = guide;\n\n return (\n <HoverCard.Root>\n <HoverCard.Trigger>\n <Stack align=\"center\">{children}</Stack>\n </HoverCard.Trigger>\n <HoverCard.Portal>\n <HoverCard.Content sideOffset={44} side=\"left\">\n <Box\n px=\"2\"\n shadow=\"2\"\n rounded=\"3\"\n border=\"px\"\n overflow=\"auto\"\n backgroundColor=\"surface-2\"\n style={{\n width: \"450px\",\n maxHeight: \"600px\",\n }}\n >\n <pre\n style={{\n fontSize: \"11px\",\n }}\n >\n <code>{JSON.stringify(rest, null, 2)}</code>\n </pre>\n </Box>\n <HoverCard.Arrow />\n </HoverCard.Content>\n </HoverCard.Portal>\n </HoverCard.Root>\n );\n};\n"],"names":["GuideHoverCard","children","guide","isUnknownGuide","React","Stack","annotation","_annotation","activation_location_rules","_activation_location_rules","priority","_priority","rest","HoverCard","Box","width","maxHeight","fontSize","JSON","stringify"],"mappings":"+iBAcaA,EAAiBA,CAAC,CAC7BC,SAAAA,EACAC,MAAAA,CAC8B,IAAM,CAChCC,GAAAA,EAAAA,eAAeD,CAAK,EACtB,OAAQE,EAAA,cAAAC,EAAA,MAAA,CAAM,MAAM,QAAA,EAAUJ,CAAS,EAInC,KAAA,CACJK,WAAYC,EACZC,0BAA2BC,EAC3BC,SAAUC,EACV,GAAGC,CAAAA,EACDV,EAEJ,uBACGW,EAAU,KAAV,KACET,EAAA,cAAAS,EAAU,QAAV,KACCT,EAAA,cAACC,EAAAA,MAAM,CAAA,MAAM,UAAUJ,CAAS,CAClC,EACCG,EAAA,cAAAS,EAAU,OAAV,KACCT,EAAA,cAACS,EAAU,QAAV,CAAkB,WAAY,GAAI,KAAK,QACtCT,EAAA,cAACU,OACC,GAAG,IACH,OAAO,IACP,QAAQ,IACR,OAAO,KACP,SAAS,OACT,gBAAgB,YAChB,MAAO,CACLC,MAAO,QACPC,UAAW,OACb,CAAA,EAECZ,EAAA,cAAA,MAAA,CACC,MAAO,CACLa,SAAU,MAAA,GAGXb,EAAA,cAAA,OAAA,KAAMc,KAAKC,UAAUP,EAAM,KAAM,CAAC,CAAE,CACvC,CACF,EACCR,EAAA,cAAAS,EAAU,MAAV,IAAe,CAClB,CACF,CACF,CAEJ"}
1
+ {"version":3,"file":"GuideHoverCard.js","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/GuideHoverCard.tsx"],"sourcesContent":["import * as HoverCard from \"@radix-ui/react-hover-card\";\nimport { Box, Stack } from \"@telegraph/layout\";\nimport * as React from \"react\";\n\nimport {\n AnnotatedGuide,\n UnknownGuide,\n isUnknownGuide,\n} from \"./useInspectGuideClientStore\";\n\ntype Props = {\n guide: AnnotatedGuide | UnknownGuide;\n};\n\nexport const GuideHoverCard = ({\n children,\n guide,\n}: React.PropsWithChildren<Props>) => {\n if (isUnknownGuide(guide)) {\n return <Stack align=\"center\">{children}</Stack>;\n }\n\n // Prune out internal or legacy fields.\n const {\n annotation: _annotation,\n activation_location_rules: _activation_location_rules,\n priority: _priority,\n ...rest\n } = guide;\n\n return (\n <HoverCard.Root>\n <HoverCard.Trigger>\n <Stack align=\"center\">{children}</Stack>\n </HoverCard.Trigger>\n <HoverCard.Portal>\n <HoverCard.Content sideOffset={16} side=\"left\">\n <Box\n px=\"2\"\n shadow=\"2\"\n rounded=\"3\"\n border=\"px\"\n overflow=\"auto\"\n backgroundColor=\"surface-2\"\n style={{\n width: \"450px\",\n maxHeight: \"600px\",\n }}\n >\n <pre\n style={{\n fontSize: \"11px\",\n }}\n >\n <code>{JSON.stringify(rest, null, 2)}</code>\n </pre>\n </Box>\n <HoverCard.Arrow />\n </HoverCard.Content>\n </HoverCard.Portal>\n </HoverCard.Root>\n );\n};\n"],"names":["GuideHoverCard","children","guide","isUnknownGuide","React","Stack","annotation","_annotation","activation_location_rules","_activation_location_rules","priority","_priority","rest","HoverCard","Box","width","maxHeight","fontSize","JSON","stringify"],"mappings":"+iBAcaA,EAAiBA,CAAC,CAC7BC,SAAAA,EACAC,MAAAA,CAC8B,IAAM,CAChCC,GAAAA,EAAAA,eAAeD,CAAK,EACtB,OAAQE,EAAA,cAAAC,EAAA,MAAA,CAAM,MAAM,QAAA,EAAUJ,CAAS,EAInC,KAAA,CACJK,WAAYC,EACZC,0BAA2BC,EAC3BC,SAAUC,EACV,GAAGC,CAAAA,EACDV,EAEJ,uBACGW,EAAU,KAAV,KACET,EAAA,cAAAS,EAAU,QAAV,KACCT,EAAA,cAACC,EAAAA,MAAM,CAAA,MAAM,UAAUJ,CAAS,CAClC,EACCG,EAAA,cAAAS,EAAU,OAAV,KACCT,EAAA,cAACS,EAAU,QAAV,CAAkB,WAAY,GAAI,KAAK,QACtCT,EAAA,cAACU,OACC,GAAG,IACH,OAAO,IACP,QAAQ,IACR,OAAO,KACP,SAAS,OACT,gBAAgB,YAChB,MAAO,CACLC,MAAO,QACPC,UAAW,OACb,CAAA,EAECZ,EAAA,cAAA,MAAA,CACC,MAAO,CACLa,SAAU,MAAA,GAGXb,EAAA,cAAA,OAAA,KAAMc,KAAKC,UAAUP,EAAM,KAAM,CAAC,CAAE,CACvC,CACF,EACCR,EAAA,cAAAS,EAAU,MAAV,IAAe,CAClB,CACF,CACF,CAEJ"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@telegraph/button"),a=require("@telegraph/layout"),u=require("@telegraph/tag"),i=require("@telegraph/tooltip"),d=require("@telegraph/typography"),r=require("lucide-react"),m=require("react"),b=require("./GuideHoverCard.js"),l=require("./useInspectGuideClientStore.js");function p(e){if(e&&typeof e=="object"&&"default"in e)return e;const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const o in e)if(o!=="default"){const s=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(n,o,s.get?s:{enumerable:!0,get:()=>e[o]})}}return n.default=e,Object.freeze(n)}const t=p(m),g=({children:e})=>t.createElement(a.Stack,{h:"7",px:"2",borderTop:"px",justify:"space-between",align:"center"},e),v=({guide:e,orderIndex:n})=>t.createElement(g,null,t.createElement(a.Stack,{h:"6",justify:"flex-start",align:"center",gap:"2"},t.createElement(u.Tag,{size:"0",variant:"soft",color:e.bypass_global_group_limit?"blue":"default"},n+1),t.createElement(b.GuideHoverCard,{guide:e},t.createElement(d.Text,{as:"code",size:"1",color:e.active?"black":"disabled"},e.key))),t.createElement(a.Stack,{justify:"flex-end"},!l.isUnknownGuide(e)&&t.createElement(t.Fragment,null,t.createElement(a.Stack,{gap:"1"},t.createElement(i.Tooltip,{label:e.annotation.activatable.status?"This guide can be activated at the current location":"This guide cannot be activated at the current location"},t.createElement(c.Button,{px:"1",size:"1",variant:"soft",color:e.annotation.activatable.status?"green":"red",leadingIcon:{icon:r.LocateFixed,alt:"Target"}}))),t.createElement(a.Stack,{px:"2",align:"center"},t.createElement(a.Box,{h:"3",borderLeft:"px",borderColor:"gray-6"}))),t.createElement(a.Stack,{gap:"1"},!l.isUnknownGuide(e)&&t.createElement(t.Fragment,null,t.createElement(i.Tooltip,{label:e.annotation.targetable.status?"This user is being targeted":e.annotation.targetable.message},t.createElement(c.Button,{px:"1",size:"1",variant:"soft",color:e.annotation.targetable.status?"green":"red",leadingIcon:{icon:r.UserCircle2,alt:"Target"}})),t.createElement(i.Tooltip,{label:e.annotation.archived.status?"User has already dismissed this guide":"User has not dismissed this guide"},t.createElement(c.Button,{px:"1",size:"1",variant:"soft",color:e.annotation.archived.status?"red":"green",leadingIcon:{icon:r.Eye,alt:"Not archived"}}))),t.createElement(i.Tooltip,{label:l.isUnknownGuide(e)?"This guide has never been committed and published yet":e.active?"This guide is active":"This guide is not active"},t.createElement(c.Button,{px:"1",size:"1",variant:"soft",color:e.active?"green":"red",leadingIcon:e.active?{icon:r.CheckCircle2,alt:"Active"}:{icon:r.CircleDashed,alt:"Inactive"}})))));exports.GuideRow=v;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("@telegraph/button"),a=require("@telegraph/layout"),u=require("@telegraph/tag"),i=require("@telegraph/tooltip"),d=require("@telegraph/typography"),n=require("lucide-react"),p=require("react"),b=require("./GuideHoverCard.js"),c=require("./useInspectGuideClientStore.js");function m(e){if(e&&typeof e=="object"&&"default"in e)return e;const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const l in e)if(l!=="default"){const s=Object.getOwnPropertyDescriptor(e,l);Object.defineProperty(r,l,s.get?s:{enumerable:!0,get:()=>e[l]})}}return r.default=e,Object.freeze(r)}const t=m(p),h=({children:e})=>t.createElement(a.Stack,{h:"7",px:"2",borderTop:"px",justify:"space-between",align:"center"},e),g=({guide:e,orderIndex:r})=>t.createElement(h,null,t.createElement(b.GuideHoverCard,{guide:e},t.createElement(a.Stack,{h:"6",justify:"flex-start",align:"center",gap:"2"},t.createElement(u.Tag,{size:"0",variant:"soft",color:e.bypass_global_group_limit?"blue":"default"},r+1),t.createElement(d.Text,{as:"code",size:"1"},e.key))),t.createElement(a.Stack,{justify:"flex-end"},!c.isUnknownGuide(e)&&t.createElement(t.Fragment,null,t.createElement(a.Stack,{gap:"1"},t.createElement(i.Tooltip,{label:e.annotation.selectable.status==="returned"?"This guide was queried and can display":e.annotation.selectable.status==="queried"?"This guide was queried but cannot display":e.annotation.selectable.status==="throttled"?"This guide was queried and can display but is throttled currently":"No component is present in the current location to display this guide"},t.createElement(o.Button,{px:"1",size:"1",variant:"soft",color:e.annotation.selectable.status==="returned"?"green":e.annotation.selectable.status==="queried"?"gray":e.annotation.selectable.status==="throttled"?"yellow":"red",leadingIcon:{icon:n.Code2,alt:"Render"}})),t.createElement(i.Tooltip,{label:e.annotation.activatable.status?"This guide can be activated at the current location":"This guide cannot be activated at the current location"},t.createElement(o.Button,{px:"1",size:"1",variant:"soft",color:e.annotation.activatable.status?"green":"red",leadingIcon:{icon:n.LocateFixed,alt:"Target"}}))),t.createElement(a.Stack,{px:"2",align:"center"},t.createElement(a.Box,{h:"3",borderLeft:"px",borderColor:"gray-6"}))),t.createElement(a.Stack,{gap:"1"},!c.isUnknownGuide(e)&&t.createElement(t.Fragment,null,t.createElement(i.Tooltip,{label:e.annotation.targetable.status?"This user is being targeted":e.annotation.targetable.message},t.createElement(o.Button,{px:"1",size:"1",variant:"soft",color:e.annotation.targetable.status?"green":"red",leadingIcon:{icon:n.UserCircle2,alt:"Target"}})),t.createElement(i.Tooltip,{label:e.annotation.archived.status?"User has already dismissed this guide":"User has not dismissed this guide"},t.createElement(o.Button,{px:"1",size:"1",variant:"soft",color:e.annotation.archived.status?"red":"green",leadingIcon:{icon:n.Eye,alt:"Not archived"}}))),t.createElement(i.Tooltip,{label:c.isUnknownGuide(e)?"This guide has never been committed and published yet":e.active?"This guide is active":"This guide is not active"},t.createElement(o.Button,{px:"1",size:"1",variant:"soft",color:e.active?"green":"red",leadingIcon:e.active?{icon:n.CheckCircle2,alt:"Active"}:{icon:n.CircleDashed,alt:"Inactive"}})))));exports.GuideRow=g;
2
2
  //# sourceMappingURL=GuideRow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GuideRow.js","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/GuideRow.tsx"],"sourcesContent":["import { Button } from \"@telegraph/button\";\nimport { Box, Stack } from \"@telegraph/layout\";\nimport { Tag } from \"@telegraph/tag\";\nimport { Tooltip } from \"@telegraph/tooltip\";\nimport { Text } from \"@telegraph/typography\";\nimport {\n CheckCircle2,\n CircleDashed,\n Eye,\n LocateFixed,\n UserCircle2,\n} from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { GuideHoverCard } from \"./GuideHoverCard\";\nimport {\n AnnotatedGuide,\n UnknownGuide,\n isUnknownGuide,\n} from \"./useInspectGuideClientStore\";\n\nconst Row = ({ children }: React.PropsWithChildren) => (\n <Stack h=\"7\" px=\"2\" borderTop=\"px\" justify=\"space-between\" align=\"center\">\n {children}\n </Stack>\n);\n\ntype Props = {\n guide: UnknownGuide | AnnotatedGuide;\n orderIndex: number;\n};\n\nexport const GuideRow = ({ guide, orderIndex }: Props) => {\n return (\n <Row>\n <Stack h=\"6\" justify=\"flex-start\" align=\"center\" gap=\"2\">\n <Tag\n size=\"0\"\n variant=\"soft\"\n color={guide.bypass_global_group_limit ? \"blue\" : \"default\"}\n >\n {orderIndex + 1}\n </Tag>\n <GuideHoverCard guide={guide}>\n <Text as=\"code\" size=\"1\" color={guide.active ? \"black\" : \"disabled\"}>\n {guide.key}\n </Text>\n </GuideHoverCard>\n </Stack>\n\n <Stack justify=\"flex-end\">\n {!isUnknownGuide(guide) && (\n <>\n <Stack gap=\"1\">\n <Tooltip\n label={\n guide.annotation.activatable.status\n ? \"This guide can be activated at the current location\"\n : \"This guide cannot be activated at the current location\"\n }\n >\n <Button\n px=\"1\"\n size=\"1\"\n variant=\"soft\"\n color={guide.annotation.activatable.status ? \"green\" : \"red\"}\n leadingIcon={{ icon: LocateFixed, alt: \"Target\" }}\n />\n </Tooltip>\n </Stack>\n <Stack px=\"2\" align=\"center\">\n <Box h=\"3\" borderLeft=\"px\" borderColor=\"gray-6\" />\n </Stack>\n </>\n )}\n <Stack gap=\"1\">\n {!isUnknownGuide(guide) && (\n <>\n <Tooltip\n label={\n guide.annotation.targetable.status\n ? \"This user is being targeted\"\n : guide.annotation.targetable.message\n }\n >\n <Button\n px=\"1\"\n size=\"1\"\n variant=\"soft\"\n color={guide.annotation.targetable.status ? \"green\" : \"red\"}\n leadingIcon={{ icon: UserCircle2, alt: \"Target\" }}\n />\n </Tooltip>\n <Tooltip\n label={\n guide.annotation.archived.status\n ? \"User has already dismissed this guide\"\n : \"User has not dismissed this guide\"\n }\n >\n <Button\n px=\"1\"\n size=\"1\"\n variant=\"soft\"\n color={guide.annotation.archived.status ? \"red\" : \"green\"}\n leadingIcon={{ icon: Eye, alt: \"Not archived\" }}\n />\n </Tooltip>\n </>\n )}\n <Tooltip\n label={\n isUnknownGuide(guide)\n ? \"This guide has never been committed and published yet\"\n : !guide.active\n ? \"This guide is not active\"\n : \"This guide is active\"\n }\n >\n <Button\n px=\"1\"\n size=\"1\"\n variant=\"soft\"\n color={guide.active ? \"green\" : \"red\"}\n leadingIcon={\n guide.active\n ? { icon: CheckCircle2, alt: \"Active\" }\n : { icon: CircleDashed, alt: \"Inactive\" }\n }\n />\n </Tooltip>\n </Stack>\n </Stack>\n </Row>\n );\n};\n"],"names":["Row","children","React","Stack","GuideRow","guide","orderIndex","Tag","bypass_global_group_limit","GuideHoverCard","Text","active","key","isUnknownGuide","Tooltip","annotation","activatable","status","Button","icon","LocateFixed","alt","Box","targetable","message","UserCircle2","archived","Eye","CheckCircle2","CircleDashed"],"mappings":"yrBAqBMA,EAAMA,CAAC,CAAEC,SAAAA,CAAkC,IAC9CC,EAAA,cAAAC,EAAAA,MAAA,CAAM,EAAE,IAAI,GAAG,IAAI,UAAU,KAAK,QAAQ,gBAAgB,MAAM,QAAA,EAC9DF,CACH,EAQWG,EAAWA,CAAC,CAAEC,MAAAA,EAAOC,WAAAA,CAAkB,oBAE/CN,EACC,KAAAE,EAAA,cAACC,QAAM,CAAA,EAAE,IAAI,QAAQ,aAAa,MAAM,SAAS,IAAI,GACnD,EAAAD,EAAA,cAACK,OACC,KAAK,IACL,QAAQ,OACR,MAAOF,EAAMG,0BAA4B,OAAS,SAEjDF,EAAAA,EAAa,CAChB,EACAJ,EAAA,cAACO,kBAAe,MAAAJ,CACd,EAAAH,EAAA,cAACQ,OAAK,CAAA,GAAG,OAAO,KAAK,IAAI,MAAOL,EAAMM,OAAS,QAAU,UACtDN,EAAAA,EAAMO,GACT,CACF,CACF,EAEAV,EAAA,cAACC,EAAAA,MAAM,CAAA,QAAQ,YACZ,CAACU,iBAAeR,CAAK,mCAEjBH,EAAA,cAAAC,EAAAA,MAAA,CAAM,IAAI,GACT,EAAAD,EAAA,cAACY,WACC,MACET,EAAMU,WAAWC,YAAYC,OACzB,sDACA,wDAAA,kBAGLC,EACC,OAAA,CAAA,GAAG,IACH,KAAK,IACL,QAAQ,OACR,MAAOb,EAAMU,WAAWC,YAAYC,OAAS,QAAU,MACvD,YAAa,CAAEE,KAAMC,EAAAA,YAAaC,IAAK,QAAA,CAAW,CAAA,CAEtD,CACF,EACAnB,EAAA,cAACC,EAAAA,MAAM,CAAA,GAAG,IAAI,MAAM,QAClB,EAAAD,EAAA,cAACoB,EAAI,IAAA,CAAA,EAAE,IAAI,WAAW,KAAK,YAAY,QAAA,CAAQ,CACjD,CACF,EAEFpB,EAAA,cAACC,EAAAA,MAAM,CAAA,IAAI,GACR,EAAA,CAACU,EAAAA,eAAeR,CAAK,GAElBH,EAAA,cAAAA,EAAA,SAAA,KAAAA,EAAA,cAACY,EAAAA,QACC,CAAA,MACET,EAAMU,WAAWQ,WAAWN,OACxB,8BACAZ,EAAMU,WAAWQ,WAAWC,SAGlCtB,EAAA,cAACgB,EAAAA,OACC,CAAA,GAAG,IACH,KAAK,IACL,QAAQ,OACR,MAAOb,EAAMU,WAAWQ,WAAWN,OAAS,QAAU,MACtD,YAAa,CAAEE,KAAMM,EAAAA,YAAaJ,IAAK,QAAA,CAAW,CAAA,CAEtD,EACCnB,EAAA,cAAAY,EAAA,QAAA,CACC,MACET,EAAMU,WAAWW,SAAST,OACtB,wCACA,mCAGN,EAAAf,EAAA,cAACgB,EACC,OAAA,CAAA,GAAG,IACH,KAAK,IACL,QAAQ,OACR,MAAOb,EAAMU,WAAWW,SAAST,OAAS,MAAQ,QAClD,YAAa,CAAEE,KAAMQ,EAAAA,IAAKN,IAAK,cAAA,CAAiB,CAAA,CAEpD,CACF,EAEDnB,EAAA,cAAAY,EAAAA,QAAA,CACC,MACED,EAAAA,eAAeR,CAAK,EAChB,wDACCA,EAAMM,OAEL,uBADA,4BAIRT,EAAA,cAACgB,EAAAA,OACC,CAAA,GAAG,IACH,KAAK,IACL,QAAQ,OACR,MAAOb,EAAMM,OAAS,QAAU,MAChC,YACEN,EAAMM,OACF,CAAEQ,KAAMS,EAAAA,aAAcP,IAAK,QAAA,EAC3B,CAAEF,KAAMU,EAAAA,aAAcR,IAAK,UAAA,CAChC,CAAA,CAEL,CACF,CACF,CACF"}
1
+ {"version":3,"file":"GuideRow.js","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/GuideRow.tsx"],"sourcesContent":["import { Button } from \"@telegraph/button\";\nimport { Box, Stack } from \"@telegraph/layout\";\nimport { Tag } from \"@telegraph/tag\";\nimport { Tooltip } from \"@telegraph/tooltip\";\nimport { Text } from \"@telegraph/typography\";\nimport {\n CheckCircle2,\n CircleDashed,\n Code2,\n Eye,\n LocateFixed,\n UserCircle2,\n} from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { GuideHoverCard } from \"./GuideHoverCard\";\nimport {\n AnnotatedGuide,\n UnknownGuide,\n isUnknownGuide,\n} from \"./useInspectGuideClientStore\";\n\nconst Row = ({ children }: React.PropsWithChildren) => (\n <Stack h=\"7\" px=\"2\" borderTop=\"px\" justify=\"space-between\" align=\"center\">\n {children}\n </Stack>\n);\n\ntype Props = {\n guide: UnknownGuide | AnnotatedGuide;\n orderIndex: number;\n};\n\nexport const GuideRow = ({ guide, orderIndex }: Props) => {\n return (\n <Row>\n <GuideHoverCard guide={guide}>\n <Stack h=\"6\" justify=\"flex-start\" align=\"center\" gap=\"2\">\n <Tag\n size=\"0\"\n variant=\"soft\"\n color={guide.bypass_global_group_limit ? \"blue\" : \"default\"}\n >\n {orderIndex + 1}\n </Tag>\n <Text as=\"code\" size=\"1\">\n {guide.key}\n </Text>\n </Stack>\n </GuideHoverCard>\n\n <Stack justify=\"flex-end\">\n {!isUnknownGuide(guide) && (\n <>\n <Stack gap=\"1\">\n <Tooltip\n label={\n guide.annotation.selectable.status === \"returned\"\n ? \"This guide was queried and can display\"\n : guide.annotation.selectable.status === \"queried\"\n ? \"This guide was queried but cannot display\"\n : guide.annotation.selectable.status === \"throttled\"\n ? \"This guide was queried and can display but is throttled currently\"\n : \"No component is present in the current location to display this guide\"\n }\n >\n <Button\n px=\"1\"\n size=\"1\"\n variant=\"soft\"\n color={\n guide.annotation.selectable.status === \"returned\"\n ? \"green\"\n : guide.annotation.selectable.status === \"queried\"\n ? \"gray\"\n : guide.annotation.selectable.status === \"throttled\"\n ? \"yellow\"\n : \"red\"\n }\n leadingIcon={{ icon: Code2, alt: \"Render\" }}\n />\n </Tooltip>\n <Tooltip\n label={\n guide.annotation.activatable.status\n ? \"This guide can be activated at the current location\"\n : \"This guide cannot be activated at the current location\"\n }\n >\n <Button\n px=\"1\"\n size=\"1\"\n variant=\"soft\"\n color={guide.annotation.activatable.status ? \"green\" : \"red\"}\n leadingIcon={{ icon: LocateFixed, alt: \"Target\" }}\n />\n </Tooltip>\n </Stack>\n <Stack px=\"2\" align=\"center\">\n <Box h=\"3\" borderLeft=\"px\" borderColor=\"gray-6\" />\n </Stack>\n </>\n )}\n <Stack gap=\"1\">\n {!isUnknownGuide(guide) && (\n <>\n <Tooltip\n label={\n guide.annotation.targetable.status\n ? \"This user is being targeted\"\n : guide.annotation.targetable.message\n }\n >\n <Button\n px=\"1\"\n size=\"1\"\n variant=\"soft\"\n color={guide.annotation.targetable.status ? \"green\" : \"red\"}\n leadingIcon={{ icon: UserCircle2, alt: \"Target\" }}\n />\n </Tooltip>\n <Tooltip\n label={\n guide.annotation.archived.status\n ? \"User has already dismissed this guide\"\n : \"User has not dismissed this guide\"\n }\n >\n <Button\n px=\"1\"\n size=\"1\"\n variant=\"soft\"\n color={guide.annotation.archived.status ? \"red\" : \"green\"}\n leadingIcon={{ icon: Eye, alt: \"Not archived\" }}\n />\n </Tooltip>\n </>\n )}\n <Tooltip\n label={\n isUnknownGuide(guide)\n ? \"This guide has never been committed and published yet\"\n : !guide.active\n ? \"This guide is not active\"\n : \"This guide is active\"\n }\n >\n <Button\n px=\"1\"\n size=\"1\"\n variant=\"soft\"\n color={guide.active ? \"green\" : \"red\"}\n leadingIcon={\n guide.active\n ? { icon: CheckCircle2, alt: \"Active\" }\n : { icon: CircleDashed, alt: \"Inactive\" }\n }\n />\n </Tooltip>\n </Stack>\n </Stack>\n </Row>\n );\n};\n"],"names":["Row","children","React","Stack","GuideRow","guide","orderIndex","GuideHoverCard","Tag","bypass_global_group_limit","Text","key","isUnknownGuide","Tooltip","annotation","selectable","status","Button","icon","Code2","alt","activatable","LocateFixed","Box","targetable","message","UserCircle2","archived","Eye","active","CheckCircle2","CircleDashed"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react"),t=require("@telegraph/select"),s=require("../shared.js"),r=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},l=r(n),u=({value:e,onChange:a})=>l.default.createElement(t.Select.Root,{size:"1",value:e,onValueChange:i=>{i&&a(i)},contentProps:{style:{zIndex:s.TOOLBAR_Z_INDEX}}},l.default.createElement(t.Select.Option,{size:"1",value:"current-page"},"Displayable on current page"),l.default.createElement(t.Select.Option,{size:"1",value:"all-eligible"},"All eligible guides for user"),l.default.createElement(t.Select.Option,{size:"1",value:"all-guides"},"All existing guides"));exports.GuidesListDisplaySelect=u;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react"),t=require("@telegraph/select"),s=require("../shared.js"),u=e=>e&&typeof e=="object"&&"default"in e?e:{default:e},l=u(n),o=({value:e,onChange:a})=>l.default.createElement(t.Select.Root,{size:"1",value:e,onValueChange:i=>{i&&a(i)},contentProps:{style:{zIndex:s.TOOLBAR_Z_INDEX}}},l.default.createElement(t.Select.Option,{size:"1",value:"only-displaying"},"Displaying on current page"),l.default.createElement(t.Select.Option,{size:"1",value:"only-displayable"},"Displayable on current page"),l.default.createElement(t.Select.Option,{size:"1",value:"all-eligible"},"All eligible guides for user"),l.default.createElement(t.Select.Option,{size:"1",value:"all-guides"},"All existing guides"));exports.GuidesListDisplaySelect=o;
2
2
  //# sourceMappingURL=GuidesListDisplaySelect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GuidesListDisplaySelect.js","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/GuidesListDisplaySelect.tsx"],"sourcesContent":["import { Select } from \"@telegraph/select\";\n\nimport { TOOLBAR_Z_INDEX } from \"../shared\";\n\nexport type DisplayOption = \"current-page\" | \"all-eligible\" | \"all-guides\";\n\ntype Props = {\n value: DisplayOption;\n onChange: (option: DisplayOption) => void;\n};\n\nexport const GuidesListDisplaySelect = ({ value, onChange }: Props) => {\n return (\n <Select.Root\n size=\"1\"\n value={value}\n onValueChange={(value) => {\n if (!value) return;\n onChange(value as DisplayOption);\n }}\n contentProps={{\n style: { zIndex: TOOLBAR_Z_INDEX },\n }}\n >\n <Select.Option size=\"1\" value=\"current-page\">\n Displayable on current page\n </Select.Option>\n <Select.Option size=\"1\" value=\"all-eligible\">\n All eligible guides for user\n </Select.Option>\n <Select.Option size=\"1\" value=\"all-guides\">\n All existing guides\n </Select.Option>\n </Select.Root>\n );\n};\n"],"names":["GuidesListDisplaySelect","value","onChange","React","Select","style","zIndex","TOOLBAR_Z_INDEX"],"mappings":"iOAWaA,EAA0BA,CAAC,CAAEC,MAAAA,EAAOC,SAAAA,CAAgB,IAE7DC,UAAA,cAACC,SAAO,KAAP,CACC,KAAK,IACL,MAAAH,EACA,cAAgBA,GAAU,CACnBA,GACLC,EAASD,CAAsB,GAEjC,aAAc,CACZI,MAAO,CAAEC,OAAQC,EAAAA,eAAAA,CAAgB,CAGnC,EAAAJ,EAAA,QAAA,cAACC,EAAO,OAAA,OAAP,CAAc,KAAK,IAAI,MAAM,cAAc,EAAA,6BAE5C,EACAD,EAAA,QAAA,cAACC,SAAO,OAAP,CAAc,KAAK,IAAI,MAAM,cAAA,EAAc,8BAE5C,EACCD,EAAA,QAAA,cAAAC,EAAAA,OAAO,OAAP,CAAc,KAAK,IAAI,MAAM,YAAA,EAAY,qBAE1C,CACF"}
1
+ {"version":3,"file":"GuidesListDisplaySelect.js","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/GuidesListDisplaySelect.tsx"],"sourcesContent":["import { Select } from \"@telegraph/select\";\n\nimport { TOOLBAR_Z_INDEX } from \"../shared\";\n\nexport type DisplayOption =\n | \"only-displaying\"\n | \"only-displayable\"\n | \"all-eligible\"\n | \"all-guides\";\n\ntype Props = {\n value: DisplayOption;\n onChange: (option: DisplayOption) => void;\n};\n\nexport const GuidesListDisplaySelect = ({ value, onChange }: Props) => {\n return (\n <Select.Root\n size=\"1\"\n value={value}\n onValueChange={(value) => {\n if (!value) return;\n onChange(value as DisplayOption);\n }}\n contentProps={{\n style: { zIndex: TOOLBAR_Z_INDEX },\n }}\n >\n <Select.Option size=\"1\" value=\"only-displaying\">\n Displaying on current page\n </Select.Option>\n <Select.Option size=\"1\" value=\"only-displayable\">\n Displayable on current page\n </Select.Option>\n <Select.Option size=\"1\" value=\"all-eligible\">\n All eligible guides for user\n </Select.Option>\n <Select.Option size=\"1\" value=\"all-guides\">\n All existing guides\n </Select.Option>\n </Select.Root>\n );\n};\n"],"names":["GuidesListDisplaySelect","value","onChange","React","Select","style","zIndex","TOOLBAR_Z_INDEX"],"mappings":"iOAeaA,EAA0BA,CAAC,CAAEC,MAAAA,EAAOC,SAAAA,CAAgB,IAE7DC,UAAA,cAACC,SAAO,KAAP,CACC,KAAK,IACL,MAAAH,EACA,cAAgBA,GAAU,CACnBA,GACLC,EAASD,CAAsB,GAEjC,aAAc,CACZI,MAAO,CAAEC,OAAQC,EAAAA,eAAAA,CAAgB,GAGlCJ,EAAAA,QAAA,cAAAC,SAAO,OAAP,CAAc,KAAK,IAAI,MAAM,iBAAA,EAAiB,4BAE/C,0BACCA,EAAAA,OAAO,OAAP,CAAc,KAAK,IAAI,MAAM,oBAAkB,6BAEhD,EACAD,UAAA,cAACC,SAAO,OAAP,CAAc,KAAK,IAAI,MAAM,gBAAc,8BAE5C,EACCD,EAAAA,QAAA,cAAAC,SAAO,OAAP,CAAc,KAAK,IAAI,MAAM,cAAY,qBAE1C,CACF"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("@knocklabs/react-core"),u=require("@telegraph/button"),r=require("@telegraph/layout"),s=require("lucide-react"),b=require("react"),m=require("../KnockButton.js"),E=require("../shared.js");;/* empty css */const g=require("./GuideRow.js"),y=require("./GuidesListDisplaySelect.js"),x=require("./helpers.js"),C=require("./useInspectGuideClientStore.js"),S=t=>t&&typeof t=="object"&&"default"in t?t:{default:t},e=S(b),q=({guides:t,displayOption:i})=>t.map((n,l)=>i==="current-page"&&(!n.annotation.isEligible||!n.annotation.isQualified)||i==="all-eligible"&&!n.annotation.isEligible?null:e.default.createElement(g.GuideRow,{key:n.key,guide:n,orderIndex:l})),k=()=>{const{client:t}=p.useGuideContext(),[i,n]=e.default.useState("current-page"),[l,c]=e.default.useState(x.detectToolbarParam()),[d,a]=e.default.useState(!0);e.default.useEffect(()=>{if(l)return t.setDebug(),()=>{t.unsetDebug()}},[l,t]);const o=C.useInspectGuideClientStore();return o?e.default.createElement(r.Box,{position:"fixed",top:"4",right:"4",style:{zIndex:E.TOOLBAR_Z_INDEX}},d?e.default.createElement(m.KnockButton,{onClick:()=>a(!1)}):e.default.createElement(r.Stack,{direction:"column",backgroundColor:"surface-2",shadow:"2",rounded:"3",border:"px",overflow:"hidden",style:{width:"400px"}},e.default.createElement(r.Stack,{w:"full",p:"2",justify:"space-between",direction:"row",style:{boxSizing:"border-box"}},e.default.createElement(r.Box,{style:{width:"220px"}},e.default.createElement(y.GuidesListDisplaySelect,{value:i,onChange:f=>n(f)})),e.default.createElement(r.Stack,{gap:"2"},e.default.createElement(u.Button,{onClick:()=>c(!1),size:"1",variant:"soft",trailingIcon:{icon:s.Undo2,"aria-hidden":!0}},"Exit"),e.default.createElement(u.Button,{onClick:()=>a(!0),size:"1",variant:"soft",leadingIcon:{icon:s.Minimize2,alt:"Collapse guide toolbar"}}))),e.default.createElement(r.Box,{w:"full"},o.error&&e.default.createElement(r.Box,null,o.error),e.default.createElement(q,{guides:o.guides,displayOption:i})))):null};exports.V2=k;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("@knocklabs/react-core"),d=require("@telegraph/button"),n=require("@telegraph/layout"),f=require("lucide-react"),b=require("react"),y=require("../KnockButton.js"),m=require("../shared.js");;/* empty css */const E=require("./GuideContextDetails.js"),g=require("./GuideRow.js"),x=require("./GuidesListDisplaySelect.js"),C=require("./helpers.js"),q=require("./useInspectGuideClientStore.js"),S=t=>t&&typeof t=="object"&&"default"in t?t:{default:t},e=S(b),D=({guides:t,displayOption:i})=>t.map((r,u)=>{const{isEligible:o,isQualified:s,selectable:a}=r.annotation,l=o&&s,c=l&&a.status==="returned";return i==="only-displaying"&&!c||i==="only-displayable"&&!l||i==="all-eligible"&&!o?null:e.default.createElement(g.GuideRow,{key:r.key,guide:r,orderIndex:u})}),k=()=>{const{client:t}=p.useGuideContext(),[i,r]=e.default.useState("only-displayable"),[u,o]=e.default.useState(C.detectToolbarParam()),[s,a]=e.default.useState(!0);e.default.useEffect(()=>{if(u)return t.setDebug(),()=>{t.unsetDebug()}},[u,t]);const l=q.useInspectGuideClientStore();return l?e.default.createElement(n.Box,{position:"fixed",top:"4",right:"4",style:{zIndex:m.TOOLBAR_Z_INDEX}},s?e.default.createElement(y.KnockButton,{onClick:()=>a(!1)}):e.default.createElement(n.Stack,{direction:"column",backgroundColor:"surface-2",shadow:"2",rounded:"3",border:"px",overflow:"hidden",style:{width:"400px"}},e.default.createElement(n.Stack,{w:"full",p:"2",justify:"space-between",direction:"row",style:{boxSizing:"border-box"}},e.default.createElement(n.Box,{style:{width:"220px"}},e.default.createElement(x.GuidesListDisplaySelect,{value:i,onChange:c=>r(c)})),e.default.createElement(n.Stack,{gap:"2"},e.default.createElement(d.Button,{onClick:()=>o(!1),size:"1",variant:"soft",trailingIcon:{icon:f.Undo2,"aria-hidden":!0}},"Exit"),e.default.createElement(d.Button,{onClick:()=>a(!0),size:"1",variant:"soft",leadingIcon:{icon:f.Minimize2,alt:"Collapse guide toolbar"}}))),e.default.createElement(n.Box,{w:"full"},l.error&&e.default.createElement(n.Box,null,l.error),e.default.createElement(E.GuideContextDetails,null),e.default.createElement(D,{guides:l.guides,displayOption:i})))):null};exports.V2=k;
2
2
  //# sourceMappingURL=V2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"V2.js","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/V2.tsx"],"sourcesContent":["import { useGuideContext } from \"@knocklabs/react-core\";\nimport { Button } from \"@telegraph/button\";\nimport { Box, Stack } from \"@telegraph/layout\";\nimport { Minimize2, Undo2 } from \"lucide-react\";\nimport React from \"react\";\n\nimport { KnockButton } from \"../KnockButton\";\nimport { TOOLBAR_Z_INDEX } from \"../shared\";\nimport \"../styles.css\";\n\nimport { GuideRow } from \"./GuideRow\";\nimport {\n DisplayOption,\n GuidesListDisplaySelect,\n} from \"./GuidesListDisplaySelect\";\nimport { detectToolbarParam } from \"./helpers\";\nimport {\n InspectionResult,\n useInspectGuideClientStore,\n} from \"./useInspectGuideClientStore\";\n\nconst GuidesList = ({\n guides,\n displayOption,\n}: {\n guides: InspectionResult[\"guides\"];\n displayOption: DisplayOption;\n}) => {\n return guides.map((guide, idx) => {\n if (\n displayOption === \"current-page\" &&\n (!guide.annotation.isEligible || !guide.annotation.isQualified)\n ) {\n return null;\n }\n if (displayOption === \"all-eligible\" && !guide.annotation.isEligible) {\n return null;\n }\n\n return <GuideRow key={guide.key} guide={guide} orderIndex={idx} />;\n });\n};\n\nexport const V2 = () => {\n const { client } = useGuideContext();\n\n const [guidesListDisplayOption, setGuidesListDisplayOption] =\n React.useState<DisplayOption>(\"current-page\");\n\n const [isVisible, setIsVisible] = React.useState(detectToolbarParam());\n const [isCollapsed, setIsCollapsed] = React.useState(true);\n\n React.useEffect(() => {\n if (!isVisible) {\n return;\n }\n\n client.setDebug();\n\n return () => {\n client.unsetDebug();\n };\n }, [isVisible, client]);\n\n const result = useInspectGuideClientStore();\n if (!result) {\n return null;\n }\n\n return (\n <Box position=\"fixed\" top=\"4\" right=\"4\" style={{ zIndex: TOOLBAR_Z_INDEX }}>\n {isCollapsed ? (\n <KnockButton onClick={() => setIsCollapsed(false)} />\n ) : (\n <Stack\n direction=\"column\"\n backgroundColor=\"surface-2\"\n shadow=\"2\"\n rounded=\"3\"\n border=\"px\"\n overflow=\"hidden\"\n style={{ width: \"400px\" }}\n >\n <Stack\n w=\"full\"\n p=\"2\"\n justify=\"space-between\"\n direction=\"row\"\n style={{ boxSizing: \"border-box\" }}\n >\n <Box style={{ width: \"220px\" }}>\n <GuidesListDisplaySelect\n value={guidesListDisplayOption}\n onChange={(opt) => setGuidesListDisplayOption(opt)}\n />\n </Box>\n\n <Stack gap=\"2\">\n <Button\n onClick={() => setIsVisible(false)}\n size=\"1\"\n variant=\"soft\"\n trailingIcon={{ icon: Undo2, \"aria-hidden\": true }}\n >\n Exit\n </Button>\n <Button\n onClick={() => setIsCollapsed(true)}\n size=\"1\"\n variant=\"soft\"\n leadingIcon={{ icon: Minimize2, alt: \"Collapse guide toolbar\" }}\n />\n </Stack>\n </Stack>\n\n <Box w=\"full\">\n {result.error && <Box>{result.error}</Box>}\n <GuidesList\n guides={result.guides}\n displayOption={guidesListDisplayOption}\n />\n </Box>\n </Stack>\n )}\n </Box>\n );\n};\n"],"names":["GuidesList","guides","displayOption","map","guide","idx","annotation","isEligible","isQualified","GuideRow","key","V2","client","useGuideContext","guidesListDisplayOption","setGuidesListDisplayOption","React","useState","isVisible","setIsVisible","detectToolbarParam","isCollapsed","setIsCollapsed","useEffect","setDebug","unsetDebug","result","useInspectGuideClientStore","Box","zIndex","TOOLBAR_Z_INDEX","KnockButton","Stack","width","boxSizing","GuidesListDisplaySelect","opt","Button","icon","Undo2","Minimize2","alt","error"],"mappings":"0gBAqBMA,EAAaA,CAAC,CAClBC,OAAAA,EACAC,cAAAA,CAIF,IACSD,EAAOE,IAAI,CAACC,EAAOC,IAEtBH,IAAkB,iBACjB,CAACE,EAAME,WAAWC,YAAc,CAACH,EAAME,WAAWE,cAIjDN,IAAkB,gBAAkB,CAACE,EAAME,WAAWC,WACjD,6BAGDE,EAAS,SAAA,CAAA,IAAKL,EAAMM,IAAK,MAAAN,EAAc,WAAYC,EAAO,CACnE,EAGUM,EAAKA,IAAM,CAChB,KAAA,CAAEC,OAAAA,GAAWC,kBAAgB,EAE7B,CAACC,EAAyBC,CAA0B,EACxDC,EAAAA,QAAMC,SAAwB,cAAc,EAExC,CAACC,EAAWC,CAAY,EAAIH,EAAAA,QAAMC,SAASG,EAAAA,oBAAoB,EAC/D,CAACC,EAAaC,CAAc,EAAIN,EAAAA,QAAMC,SAAS,EAAI,EAEzDD,EAAAA,QAAMO,UAAU,IAAM,CACpB,GAAKL,EAILN,OAAAA,EAAOY,SAAS,EAET,IAAM,CACXZ,EAAOa,WAAW,CACpB,CAAA,EACC,CAACP,EAAWN,CAAM,CAAC,EAEtB,MAAMc,EAASC,EAAAA,2BAA2B,EAC1C,OAAKD,EAKHV,UAAA,cAACY,OAAI,SAAS,QAAQ,IAAI,IAAI,MAAM,IAAI,MAAO,CAAEC,OAAQC,EAAAA,eAAgB,CAAA,EACtET,EACCL,EAAAA,QAAA,cAACe,EAAY,YAAA,CAAA,QAAS,IAAMT,EAAe,EAAK,CAAE,CAAA,EAEjDN,EAAAA,QAAA,cAAAgB,EAAAA,MAAA,CACC,UAAU,SACV,gBAAgB,YAChB,OAAO,IACP,QAAQ,IACR,OAAO,KACP,SAAS,SACT,MAAO,CAAEC,MAAO,OAAQ,CAAA,EAEvBjB,EAAAA,QAAA,cAAAgB,EAAAA,MAAA,CACC,EAAE,OACF,EAAE,IACF,QAAQ,gBACR,UAAU,MACV,MAAO,CAAEE,UAAW,YAAa,CAAA,EAEhClB,EAAAA,QAAA,cAAAY,EAAA,IAAA,CAAI,MAAO,CAAEK,MAAO,OAAA,CAAQ,EAC1BjB,EAAA,QAAA,cAAAmB,EAAA,wBAAA,CACC,MAAOrB,EACP,SAAWsB,GAAQrB,EAA2BqB,CAAG,CAAE,CAAA,CAEvD,EAEApB,EAAA,QAAA,cAACgB,EAAAA,MAAM,CAAA,IAAI,GACT,EAAAhB,EAAAA,QAAA,cAACqB,EAAAA,OACC,CAAA,QAAS,IAAMlB,EAAa,EAAK,EACjC,KAAK,IACL,QAAQ,OACR,aAAc,CAAEmB,KAAMC,EAAAA,MAAO,cAAe,EAAA,CAAO,EAAA,MAGrD,EACAvB,EAAAA,QAAA,cAACqB,EAAAA,QACC,QAAS,IAAMf,EAAe,EAAI,EAClC,KAAK,IACL,QAAQ,OACR,YAAa,CAAEgB,KAAME,EAAAA,UAAWC,IAAK,wBAAyB,CAAA,CAAE,CAEpE,CACF,EAEAzB,UAAA,cAACY,EAAAA,KAAI,EAAE,MAAA,EACJF,EAAOgB,OAAU1B,EAAA,QAAA,cAAAY,EAAA,IAAA,KAAKF,EAAOgB,KAAM,EACnC1B,UAAA,cAAAhB,EAAA,CACC,OAAQ0B,EAAOzB,OACf,cAAea,CAAwB,CAAA,CAE3C,CACF,CAEJ,EA1DO,IA4DX"}
1
+ {"version":3,"file":"V2.js","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/V2.tsx"],"sourcesContent":["import { useGuideContext } from \"@knocklabs/react-core\";\nimport { Button } from \"@telegraph/button\";\nimport { Box, Stack } from \"@telegraph/layout\";\nimport { Minimize2, Undo2 } from \"lucide-react\";\nimport React from \"react\";\n\nimport { KnockButton } from \"../KnockButton\";\nimport { TOOLBAR_Z_INDEX } from \"../shared\";\nimport \"../styles.css\";\n\nimport { GuideContextDetails } from \"./GuideContextDetails\";\nimport { GuideRow } from \"./GuideRow\";\nimport {\n DisplayOption,\n GuidesListDisplaySelect,\n} from \"./GuidesListDisplaySelect\";\nimport { detectToolbarParam } from \"./helpers\";\nimport {\n InspectionResult,\n useInspectGuideClientStore,\n} from \"./useInspectGuideClientStore\";\n\nconst GuidesList = ({\n guides,\n displayOption,\n}: {\n guides: InspectionResult[\"guides\"];\n displayOption: DisplayOption;\n}) => {\n return guides.map((guide, idx) => {\n const { isEligible, isQualified, selectable } = guide.annotation;\n const isDisplayable = isEligible && isQualified;\n const isDisplaying = isDisplayable && selectable.status === \"returned\";\n\n if (displayOption === \"only-displaying\" && !isDisplaying) {\n return null;\n }\n if (displayOption === \"only-displayable\" && !isDisplayable) {\n return null;\n }\n if (displayOption === \"all-eligible\" && !isEligible) {\n return null;\n }\n\n return <GuideRow key={guide.key} guide={guide} orderIndex={idx} />;\n });\n};\n\nexport const V2 = () => {\n const { client } = useGuideContext();\n\n const [guidesListDisplayOption, setGuidesListDisplayOption] =\n React.useState<DisplayOption>(\"only-displayable\");\n\n const [isVisible, setIsVisible] = React.useState(detectToolbarParam());\n const [isCollapsed, setIsCollapsed] = React.useState(true);\n\n React.useEffect(() => {\n if (!isVisible) {\n return;\n }\n\n client.setDebug();\n\n return () => {\n client.unsetDebug();\n };\n }, [isVisible, client]);\n\n const result = useInspectGuideClientStore();\n if (!result) {\n return null;\n }\n\n return (\n <Box position=\"fixed\" top=\"4\" right=\"4\" style={{ zIndex: TOOLBAR_Z_INDEX }}>\n {isCollapsed ? (\n <KnockButton onClick={() => setIsCollapsed(false)} />\n ) : (\n <Stack\n direction=\"column\"\n backgroundColor=\"surface-2\"\n shadow=\"2\"\n rounded=\"3\"\n border=\"px\"\n overflow=\"hidden\"\n style={{ width: \"400px\" }}\n >\n <Stack\n w=\"full\"\n p=\"2\"\n justify=\"space-between\"\n direction=\"row\"\n style={{ boxSizing: \"border-box\" }}\n >\n <Box style={{ width: \"220px\" }}>\n <GuidesListDisplaySelect\n value={guidesListDisplayOption}\n onChange={(opt) => setGuidesListDisplayOption(opt)}\n />\n </Box>\n\n <Stack gap=\"2\">\n <Button\n onClick={() => setIsVisible(false)}\n size=\"1\"\n variant=\"soft\"\n trailingIcon={{ icon: Undo2, \"aria-hidden\": true }}\n >\n Exit\n </Button>\n <Button\n onClick={() => setIsCollapsed(true)}\n size=\"1\"\n variant=\"soft\"\n leadingIcon={{ icon: Minimize2, alt: \"Collapse guide toolbar\" }}\n />\n </Stack>\n </Stack>\n\n <Box w=\"full\">\n {result.error && <Box>{result.error}</Box>}\n <GuideContextDetails />\n <GuidesList\n guides={result.guides}\n displayOption={guidesListDisplayOption}\n />\n </Box>\n </Stack>\n )}\n </Box>\n );\n};\n"],"names":["GuidesList","guides","displayOption","map","guide","idx","isEligible","isQualified","selectable","annotation","isDisplayable","isDisplaying","status","GuideRow","key","V2","client","useGuideContext","guidesListDisplayOption","setGuidesListDisplayOption","React","useState","isVisible","setIsVisible","detectToolbarParam","isCollapsed","setIsCollapsed","useEffect","setDebug","unsetDebug","result","useInspectGuideClientStore","Box","zIndex","TOOLBAR_Z_INDEX","KnockButton","Stack","width","boxSizing","GuidesListDisplaySelect","opt","Button","icon","Undo2","Minimize2","alt","error","GuideContextDetails"],"mappings":"gjBAsBMA,EAAaA,CAAC,CAClBC,OAAAA,EACAC,cAAAA,CAIF,IACSD,EAAOE,IAAI,CAACC,EAAOC,IAAQ,CAC1B,KAAA,CAAEC,WAAAA,EAAYC,YAAAA,EAAaC,WAAAA,GAAeJ,EAAMK,WAChDC,EAAgBJ,GAAcC,EAC9BI,EAAeD,GAAiBF,EAAWI,SAAW,WAQxDV,OANAA,IAAkB,mBAAqB,CAACS,GAGxCT,IAAkB,oBAAsB,CAACQ,GAGzCR,IAAkB,gBAAkB,CAACI,EAChC,6BAGDO,EAAS,SAAA,CAAA,IAAKT,EAAMU,IAAK,MAAAV,EAAc,WAAYC,EAAO,CAAA,CACnE,EAGUU,EAAKA,IAAM,CAChB,KAAA,CAAEC,OAAAA,GAAWC,kBAAgB,EAE7B,CAACC,EAAyBC,CAA0B,EACxDC,EAAAA,QAAMC,SAAwB,kBAAkB,EAE5C,CAACC,EAAWC,CAAY,EAAIH,EAAAA,QAAMC,SAASG,EAAAA,oBAAoB,EAC/D,CAACC,EAAaC,CAAc,EAAIN,EAAAA,QAAMC,SAAS,EAAI,EAEzDD,EAAAA,QAAMO,UAAU,IAAM,CACpB,GAAKL,EAILN,OAAAA,EAAOY,SAAS,EAET,IAAM,CACXZ,EAAOa,WAAW,CACpB,CAAA,EACC,CAACP,EAAWN,CAAM,CAAC,EAEtB,MAAMc,EAASC,EAAAA,2BAA2B,EAC1C,OAAKD,EAKHV,UAAA,cAACY,OAAI,SAAS,QAAQ,IAAI,IAAI,MAAM,IAAI,MAAO,CAAEC,OAAQC,EAAAA,eAAgB,CAAA,EACtET,EACCL,EAAAA,QAAA,cAACe,EAAY,YAAA,CAAA,QAAS,IAAMT,EAAe,EAAK,CAAE,CAAA,EAEjDN,EAAAA,QAAA,cAAAgB,EAAAA,MAAA,CACC,UAAU,SACV,gBAAgB,YAChB,OAAO,IACP,QAAQ,IACR,OAAO,KACP,SAAS,SACT,MAAO,CAAEC,MAAO,OAAQ,CAAA,EAEvBjB,EAAAA,QAAA,cAAAgB,EAAAA,MAAA,CACC,EAAE,OACF,EAAE,IACF,QAAQ,gBACR,UAAU,MACV,MAAO,CAAEE,UAAW,YAAa,CAAA,EAEhClB,EAAAA,QAAA,cAAAY,EAAA,IAAA,CAAI,MAAO,CAAEK,MAAO,OAAA,CAAQ,EAC1BjB,EAAA,QAAA,cAAAmB,EAAA,wBAAA,CACC,MAAOrB,EACP,SAAWsB,GAAQrB,EAA2BqB,CAAG,CAAE,CAAA,CAEvD,EAEApB,EAAA,QAAA,cAACgB,EAAAA,MAAM,CAAA,IAAI,GACT,EAAAhB,EAAAA,QAAA,cAACqB,EAAAA,OACC,CAAA,QAAS,IAAMlB,EAAa,EAAK,EACjC,KAAK,IACL,QAAQ,OACR,aAAc,CAAEmB,KAAMC,EAAAA,MAAO,cAAe,EAAA,CAAO,EAAA,MAGrD,EACAvB,EAAAA,QAAA,cAACqB,EAAAA,QACC,QAAS,IAAMf,EAAe,EAAI,EAClC,KAAK,IACL,QAAQ,OACR,YAAa,CAAEgB,KAAME,EAAAA,UAAWC,IAAK,wBAAA,CAA2B,CAAA,CAEpE,CACF,EAEAzB,EAAAA,QAAA,cAACY,EAAAA,IAAI,CAAA,EAAE,MACJF,EAAAA,EAAOgB,OAAS1B,EAAAA,QAAA,cAACY,EAAAA,IAAKF,KAAAA,EAAOgB,KAAM,EACnC1B,EAAAA,QAAA,cAAA2B,EAAAA,oBAAA,IAAmB,EACpB3B,EAAA,QAAA,cAACpB,EACC,CAAA,OAAQ8B,EAAO7B,OACf,cAAeiB,CAAAA,CAAwB,CAE3C,CACF,CAEJ,EA3DO,IA6DX"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("@knocklabs/client"),i=require("@knocklabs/react-core"),l=e=>{switch(e.reason){case"not_in_target_audience":case"target_conditions_not_met":return{targetable:{status:!1,reason:e.reason,message:e.message}};case"marked_as_archived":return{archived:{status:!0}};case"guide_not_active":return{active:{status:!1}};default:return}},g=({active:e,targetable:s,archived:n})=>!(!e.status||!s.status||n.status),o=({activatable:e})=>!!e.status,f=(e,s)=>{const{ineligibleGuides:n,location:a}=s,r=n[e.key],t=r?l(r):void 0,u={active:(t==null?void 0:t.active)||{status:!0},targetable:(t==null?void 0:t.targetable)||{status:!0},archived:(t==null?void 0:t.archived)||{status:!1},activatable:{status:d.checkActivatable(e,a)}},c={...u,isEligible:g(u),isQualified:o(u)};return{...e,annotation:c}},_=e=>({__typename:"UnknownGuide",key:e,active:!1,bypass_global_group_limit:!1,annotation:{isEligible:!1,isQualified:!1}}),v=()=>{var r;const{client:e}=i.useGuideContext(),s=i.useStore(e.store,t=>({location:t.location,guides:t.guides,guideGroups:t.guideGroups,ineligibleGuides:t.ineligibleGuides,debug:t.debug}));if(!((r=s.debug)!=null&&r.debugging))return;const n=s.guideGroups[0];return n?{guides:n.display_sequence.map(t=>{const u=s.guides[t];return u?f(u,s):_(t)})}:{error:"no_guide_group",guides:[]}},G=e=>typeof e=="object"&&e!==null&&"__typename"in e&&e.__typename==="UnknownGuide";exports.isUnknownGuide=G;exports.resolveIsQualified=o;exports.useInspectGuideClientStore=v;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("@knocklabs/client"),p=require("@knocklabs/react-core"),b=e=>e.reduce((r,s)=>({...r,[s.key]:s}),{}),g=(e,r,s,n)=>{var u,t,o,a,l,c,d,f;const i=!!((a=(o=(t=(u=n.key)==null?void 0:u.one)==null?void 0:t.metadata)==null?void 0:o.opts)!=null&&a.includeThrottled)||!!((f=(d=(c=(l=n.key)==null?void 0:l.all)==null?void 0:c.metadata)==null?void 0:d.opts)!=null&&f.includeThrottled);return e.bypass_global_group_limit?"returned":e.key===s.resolved?r.throttled&&!i?"throttled":"returned":"queried"},v=(e,r,s,n)=>{var t,o,a,l;const i=!!((l=(a=(o=(t=n.type)==null?void 0:t.one)==null?void 0:o.metadata)==null?void 0:a.opts)!=null&&l.includeThrottled),u=n.type.one;if(u.size===0)return"queried";if(e.bypass_global_group_limit){const d=[...u.values()][0];return e.key!==d.key?"queried":"returned"}return e.key===s.resolved?r.throttled&&!i?"throttled":"returned":"queried"},k=(e,r,s,n)=>{var l,c,d,f;const i=n.type.all;if(i.size===0)return"queried";const u=[...i.values()],t=u[0],o=b(u);return(f=(d=(c=(l=n.type)==null?void 0:l.all)==null?void 0:c.metadata)==null?void 0:d.opts)!=null&&f.includeThrottled?o[e.key]?"returned":"queried":(t.bypass_global_group_limit||t.key===s.resolved)&&o[e.key]?r.throttled?e.bypass_global_group_limit?"returned":"throttled":"returned":"queried"},h=(e,r,s,n)=>{var i,u;if(n.key)return g(e,r,s,n);if((i=n.type)!=null&&i.all)return k(e,r,s,n);if((u=n.type)!=null&&u.one)return v(e,r,s,n)},S=(e,r,s)=>{if(!s||s.status==="open")return{status:void 0};const n={key:(s.results.key||{})[e.key],type:(s.results.type||{})[e.type]};if(!!!(n.key||n.type))return{status:void 0};const u=h(e,r,s,n);return u?{status:u,query:n}:{status:void 0}},G=e=>{switch(e.reason){case"not_in_target_audience":case"target_conditions_not_met":return{targetable:{status:!1,reason:e.reason,message:e.message}};case"marked_as_archived":return{archived:{status:!0}};case"guide_not_active":return{active:{status:!1}};default:return}},m=({active:e,targetable:r,archived:s})=>!(!e.status||!r.status||s.status),_=({activatable:e,selectable:r})=>!(!e.status||!r.status),T=(e,r,s)=>{const{ineligibleGuides:n,location:i}=r,u=n[e.key],t=u?G(u):void 0,o={active:(t==null?void 0:t.active)||{status:!0},targetable:(t==null?void 0:t.targetable)||{status:!0},archived:(t==null?void 0:t.archived)||{status:!1},activatable:{status:y.checkActivatable(e,i)},selectable:S(e,r,s)},a={...o,isEligible:m(o),isQualified:_(o)};return{...e,annotation:a}},w=e=>({__typename:"UnknownGuide",key:e,active:!1,bypass_global_group_limit:!1,annotation:{isEligible:!1,isQualified:!1,selectable:{status:void 0}}}),I=()=>{var u;const{client:e}=p.useGuideContext(),r=p.useStore(e.store,t=>{const o=y.checkStateIfThrottled(t);return{location:t.location,guides:t.guides,guideGroups:t.guideGroups,ineligibleGuides:t.ineligibleGuides,debug:t.debug,counter:t.counter,throttled:o}});if(!((u=r.debug)!=null&&u.debugging))return;const s=r.guideGroups[0];if(!s)return{error:"no_guide_group",guides:[]};const n=e.getStage();return{guides:s.display_sequence.map(t=>{const o=r.guides[t];return o?T(o,r,n):w(t)})}},q=e=>typeof e=="object"&&e!==null&&"__typename"in e&&e.__typename==="UnknownGuide";exports.isUnknownGuide=q;exports.resolveIsQualified=_;exports.useInspectGuideClientStore=I;
2
2
  //# sourceMappingURL=useInspectGuideClientStore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useInspectGuideClientStore.js","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/useInspectGuideClientStore.ts"],"sourcesContent":["import {\n KnockGuide,\n KnockGuideClientStoreState,\n KnockGuideIneligibilityMarker,\n checkActivatable,\n} from \"@knocklabs/client\";\nimport { useGuideContext, useStore } from \"@knocklabs/react-core\";\n\n/**\n * This is the main module that will house core logic for the toolbar. It hooks\n * into the guide client state store, extracts relevant data for debugging, and\n * transforms it into easily consumable data for the toolbar - namely\n * \"annotating\" guides for its various statuses to display.\n */\n\n// Active: `true` status = good\ntype ActiveStatus = {\n status: boolean;\n};\n\n// Targetable: `true` status = good\ntype TargetableStatusTrue = {\n status: true;\n};\ntype TargetableStatusFalse = {\n status: false;\n reason: string;\n message: string;\n};\ntype TargetableStatus = TargetableStatusTrue | TargetableStatusFalse;\n\ntype ActivatableStatus = {\n status: boolean;\n};\n\n// Archived: `false` status = good\ntype ArchivedStatus = {\n status: boolean;\n};\n\ntype AnnotatedStatuses = {\n // Individual eligibility statuses:\n active: ActiveStatus;\n targetable: TargetableStatus;\n archived: ArchivedStatus;\n // Individual qualified statuses:\n activatable: ActivatableStatus;\n};\n\ntype GuideAnnotation = AnnotatedStatuses & {\n // Resolved eligibility based on active, targetable and archived statuses,\n // which are backend driven evaluation results that are exposed for debugging.\n isEligible: boolean;\n\n // Resolved display qualification based on an activatable status, which\n // informs \"when\" and \"where\" an eligible guide can be displayed to user.\n isQualified: boolean;\n};\n\nexport type AnnotatedGuide = KnockGuide & {\n annotation: GuideAnnotation;\n\n // Legacy fields, typed only to make tsc happy when we prune these out.\n activation_location_rules?: KnockGuide[\"activation_url_patterns\"];\n priority?: number;\n};\n\n// Exists and ordered in control but absent in switchboard (therefore not\n// included in the api response), which implies a newly created guide that has\n// never been published to switchboard.\nexport type UnknownGuide = {\n __typename: \"UnknownGuide\";\n key: KnockGuide[\"key\"];\n active: false;\n bypass_global_group_limit: false;\n annotation: {\n isEligible: false;\n isQualified: false;\n };\n};\n\nexport type InspectionResult = {\n guides: (AnnotatedGuide | UnknownGuide)[];\n error?: \"no_guide_group\";\n};\n\nconst toIneligibilityStatus = (\n marker: KnockGuideIneligibilityMarker,\n): Partial<AnnotatedStatuses> | undefined => {\n switch (marker.reason) {\n case \"not_in_target_audience\":\n case \"target_conditions_not_met\":\n return {\n targetable: {\n status: false,\n reason: marker.reason,\n message: marker.message,\n },\n };\n\n case \"marked_as_archived\":\n return {\n archived: {\n status: true,\n },\n };\n\n case \"guide_not_active\":\n return {\n active: {\n status: false,\n },\n };\n\n default:\n return undefined;\n }\n};\n\nconst resolveIsEligible = ({\n active,\n targetable,\n archived,\n}: AnnotatedStatuses) => {\n if (!active.status) return false;\n if (!targetable.status) return false;\n if (archived.status) return false;\n return true;\n};\n\nexport const resolveIsQualified = ({ activatable }: AnnotatedStatuses) => {\n if (!activatable.status) return false;\n return true;\n};\n\ntype StoreStateSnapshot = Pick<\n KnockGuideClientStoreState,\n \"location\" | \"guides\" | \"guideGroups\" | \"ineligibleGuides\" | \"debug\"\n>;\n\nconst annotateGuide = (\n guide: KnockGuide,\n snapshot: StoreStateSnapshot,\n): AnnotatedGuide => {\n const { ineligibleGuides, location } = snapshot;\n const marker = ineligibleGuides[guide.key];\n const ineligiblity = marker ? toIneligibilityStatus(marker) : undefined;\n\n const statuses: AnnotatedStatuses = {\n // isEligible:\n active: ineligiblity?.active || { status: true },\n targetable: ineligiblity?.targetable || { status: true },\n archived: ineligiblity?.archived || { status: false },\n // isQualified:\n activatable: { status: checkActivatable(guide, location) },\n };\n\n const annotation: GuideAnnotation = {\n ...statuses,\n isEligible: resolveIsEligible(statuses),\n isQualified: resolveIsQualified(statuses),\n };\n\n return {\n ...guide,\n annotation,\n };\n};\n\nconst newUnknownGuide = (key: KnockGuide[\"key\"]) =>\n ({\n __typename: \"UnknownGuide\",\n key,\n active: false,\n bypass_global_group_limit: false,\n annotation: {\n isEligible: false,\n isQualified: false,\n },\n }) as UnknownGuide;\n\nexport const useInspectGuideClientStore = (): InspectionResult | undefined => {\n const { client } = useGuideContext();\n\n // Extract a snapshot of the client store state for debugging.\n const snapshot: StoreStateSnapshot = useStore(client.store, (state) => {\n return {\n location: state.location,\n guides: state.guides,\n guideGroups: state.guideGroups,\n ineligibleGuides: state.ineligibleGuides,\n debug: state.debug,\n };\n });\n\n // Not in debugging session, so noop.\n if (!snapshot.debug?.debugging) {\n return undefined;\n }\n\n // Only for completeness, as there should always be a default group so this\n // should never happen.\n const defaultGroup = snapshot.guideGroups[0];\n if (!defaultGroup) {\n return {\n error: \"no_guide_group\",\n guides: [],\n };\n }\n\n // Annotate guides for various eligibility, activation and query statuses\n // that are useful for debugging purposes.\n const orderedGuides = defaultGroup.display_sequence.map((guideKey) => {\n const guide = snapshot.guides[guideKey];\n if (!guide) {\n return newUnknownGuide(guideKey);\n }\n\n return annotateGuide(guide, snapshot);\n });\n\n return {\n guides: orderedGuides,\n };\n};\n\nexport const isUnknownGuide = (input: unknown): input is UnknownGuide =>\n typeof input === \"object\" &&\n input !== null &&\n \"__typename\" in input &&\n (input as UnknownGuide).__typename === \"UnknownGuide\";\n"],"names":["toIneligibilityStatus","marker","reason","targetable","status","message","archived","active","undefined","resolveIsEligible","resolveIsQualified","activatable","annotateGuide","guide","snapshot","ineligibleGuides","location","key","ineligiblity","statuses","checkActivatable","annotation","isEligible","isQualified","newUnknownGuide","__typename","bypass_global_group_limit","useInspectGuideClientStore","client","useGuideContext","useStore","store","state","guides","guideGroups","debug","debugging","defaultGroup","display_sequence","map","guideKey","error","isUnknownGuide","input"],"mappings":"wJAsFMA,EACJC,GAC2C,CAC3C,OAAQA,EAAOC,OAAM,CACnB,IAAK,yBACL,IAAK,4BACI,MAAA,CACLC,WAAY,CACVC,OAAQ,GACRF,OAAQD,EAAOC,OACfG,QAASJ,EAAOI,OAAAA,CAEpB,EAEF,IAAK,qBACI,MAAA,CACLC,SAAU,CACRF,OAAQ,EAAA,CAEZ,EAEF,IAAK,mBACI,MAAA,CACLG,OAAQ,CACNH,OAAQ,EAAA,CAEZ,EAEF,QACSI,MAAAA,CAEb,EAEMC,EAAoBA,CAAC,CACzBF,OAAAA,EACAJ,WAAAA,EACAG,SAAAA,CACiB,IACb,GAACC,EAAOH,QACR,CAACD,EAAWC,QACZE,EAASF,QAIFM,EAAqBA,CAAC,CAAEC,YAAAA,CAA+B,IAC7DA,EAAAA,EAAYP,OASbQ,EAAgBA,CACpBC,EACAC,IACmB,CACb,KAAA,CAAEC,iBAAAA,EAAkBC,SAAAA,CAAAA,EAAaF,EACjCb,EAASc,EAAiBF,EAAMI,GAAG,EACnCC,EAAejB,EAASD,EAAsBC,CAAM,EAAIO,OAExDW,EAA8B,CAElCZ,QAAQW,GAAAA,YAAAA,EAAcX,SAAU,CAAEH,OAAQ,EAAK,EAC/CD,YAAYe,GAAAA,YAAAA,EAAcf,aAAc,CAAEC,OAAQ,EAAK,EACvDE,UAAUY,GAAAA,YAAAA,EAAcZ,WAAY,CAAEF,OAAQ,EAAM,EAEpDO,YAAa,CAAEP,OAAQgB,EAAAA,iBAAiBP,EAAOG,CAAQ,CAAA,CACzD,EAEMK,EAA8B,CAClC,GAAGF,EACHG,WAAYb,EAAkBU,CAAQ,EACtCI,YAAab,EAAmBS,CAAQ,CAC1C,EAEO,MAAA,CACL,GAAGN,EACHQ,WAAAA,CACF,CACF,EAEMG,EAAmBP,IACtB,CACCQ,WAAY,eACZR,IAAAA,EACAV,OAAQ,GACRmB,0BAA2B,GAC3BL,WAAY,CACVC,WAAY,GACZC,YAAa,EAAA,CAEjB,GAEWI,EAA6BA,IAAoC,OACtE,KAAA,CAAEC,OAAAA,GAAWC,kBAAgB,EAG7Bf,EAA+BgB,EAAAA,SAASF,EAAOG,MAAkBC,IAC9D,CACLhB,SAAUgB,EAAMhB,SAChBiB,OAAQD,EAAMC,OACdC,YAAaF,EAAME,YACnBnB,iBAAkBiB,EAAMjB,iBACxBoB,MAAOH,EAAMG,KACf,EACD,EAGG,GAAA,GAACrB,EAAAA,EAASqB,QAATrB,MAAAA,EAAgBsB,WACZ5B,OAKH6B,MAAAA,EAAevB,EAASoB,YAAY,CAAC,EAC3C,OAAKG,EAkBE,CACLJ,OAVoBI,EAAaC,iBAAiBC,IAAkBC,GAAA,CAC9D3B,MAAAA,EAAQC,EAASmB,OAAOO,CAAQ,EACtC,OAAK3B,EAIED,EAAcC,EAAOC,CAAQ,EAH3BU,EAAgBgB,CAAQ,CAGG,CACrC,CAID,EAnBS,CACLC,MAAO,iBACPR,OAAQ,CAAA,CACV,CAiBJ,EAEaS,EAAkBC,GAC7B,OAAOA,GAAU,UACjBA,IAAU,MACV,eAAgBA,GACfA,EAAuBlB,aAAe"}
1
+ {"version":3,"file":"useInspectGuideClientStore.js","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/useInspectGuideClientStore.ts"],"sourcesContent":["import {\n KnockGuide,\n KnockGuideClientGroupStage,\n KnockGuideClientStoreState,\n KnockGuideIneligibilityMarker,\n KnockGuideSelectionResult,\n checkActivatable,\n checkStateIfThrottled,\n} from \"@knocklabs/client\";\nimport { useGuideContext, useStore } from \"@knocklabs/react-core\";\n\nconst byKey = <T extends { key: string }>(items: T[]) => {\n return items.reduce((acc, item) => ({ ...acc, [item.key]: item }), {});\n};\n\n/**\n * This is the main module that will house core logic for the toolbar. It hooks\n * into the guide client state store, extracts relevant data for debugging, and\n * transforms it into easily consumable data for the toolbar - namely\n * \"annotating\" guides for its various statuses to display.\n */\n\n// Active: `true` status = good\ntype ActiveStatus = {\n status: boolean;\n};\n\n// Targetable: `true` status = good\ntype TargetableStatusTrue = {\n status: true;\n};\ntype TargetableStatusFalse = {\n status: false;\n reason: string;\n message: string;\n};\ntype TargetableStatus = TargetableStatusTrue | TargetableStatusFalse;\n\ntype ActivatableStatus = {\n status: boolean;\n};\n\n// Archived: `false` status = good\ntype ArchivedStatus = {\n status: boolean;\n};\n\n// Selectable:\n// - \"returned\": Queried and resolved to return the guide from useGuide(s).\n// - \"throttled\": Queried and resolved but being throttled, so not yet returned.\n// - \"queried\": Queried but not resolved, because there are other higher\n// priority guides that are ahead of this guide in the query result.\n// - undefined: Not reachable with any of the given queries and filters.\ntype SelectionResultByLimit = {\n one?: KnockGuideSelectionResult;\n all?: KnockGuideSelectionResult;\n};\ntype SelectionResultByQuery = {\n key?: SelectionResultByLimit;\n type?: SelectionResultByLimit;\n};\ntype SelectableStatusPresent = {\n status: \"returned\" | \"throttled\" | \"queried\";\n query: SelectionResultByQuery;\n};\ntype SelectableStatusAbsent = {\n status: undefined;\n};\ntype SelectableStatus = SelectableStatusPresent | SelectableStatusAbsent;\n\ntype AnnotatedStatuses = {\n // Individual eligibility statuses:\n active: ActiveStatus;\n targetable: TargetableStatus;\n archived: ArchivedStatus;\n // Individual qualified statuses:\n activatable: ActivatableStatus;\n selectable: SelectableStatus;\n};\n\ntype GuideAnnotation = AnnotatedStatuses & {\n // Resolved eligibility based on active, targetable and archived statuses,\n // which are backend driven evaluation results that are exposed for debugging.\n isEligible: boolean;\n\n // Resolved display qualification based on an activatable status, which\n // informs \"when\" and \"where\" an eligible guide can be displayed to user.\n isQualified: boolean;\n};\n\nexport type AnnotatedGuide = KnockGuide & {\n annotation: GuideAnnotation;\n\n // Legacy fields, typed only to make tsc happy when we prune these out.\n activation_location_rules?: KnockGuide[\"activation_url_patterns\"];\n priority?: number;\n};\n\n// Exists and ordered in control but absent in switchboard (therefore not\n// included in the api response), which implies a newly created guide that has\n// never been published to switchboard.\nexport type UnknownGuide = {\n __typename: \"UnknownGuide\";\n key: KnockGuide[\"key\"];\n active: false;\n bypass_global_group_limit: false;\n annotation: {\n isEligible: false;\n isQualified: false;\n selectable: {\n status: undefined;\n };\n };\n};\n\nexport type InspectionResult = {\n guides: (AnnotatedGuide | UnknownGuide)[];\n error?: \"no_guide_group\";\n};\n\ntype StoreStateSnapshot = Pick<\n KnockGuideClientStoreState,\n | \"location\"\n | \"guides\"\n | \"guideGroups\"\n | \"ineligibleGuides\"\n | \"debug\"\n | \"counter\"\n> & {\n throttled: boolean;\n};\n\nconst inferSelectByKeyReturnStatus = (\n guide: KnockGuide,\n snapshot: StoreStateSnapshot,\n stage: KnockGuideClientGroupStage,\n query: SelectionResultByQuery,\n): SelectableStatusPresent[\"status\"] => {\n const includeThrottled =\n !!query.key?.one?.metadata?.opts?.includeThrottled ||\n !!query.key?.all?.metadata?.opts?.includeThrottled;\n\n // If unthrottled, then it should always be returned.\n if (guide.bypass_global_group_limit) {\n return \"returned\";\n }\n\n // If resolved, expect this guide to be returned unless being throttled.\n if (guide.key === stage.resolved) {\n if (snapshot.throttled && !includeThrottled) {\n return \"throttled\";\n }\n return \"returned\";\n }\n\n // If queried but not resolved, it means this guide is being shadowed by\n // another guide with higher priority because throttled guides can be\n // displayed only one at a time.\n return \"queried\";\n};\n\nconst inferSelectOneByTypeReturnStatus = (\n guide: KnockGuide,\n snapshot: StoreStateSnapshot,\n stage: KnockGuideClientGroupStage,\n query: SelectionResultByQuery,\n): SelectableStatusPresent[\"status\"] => {\n const includeThrottled = !!query.type?.one?.metadata?.opts?.includeThrottled;\n\n const result = query.type!.one!;\n if (result.size === 0) {\n return \"queried\";\n }\n\n // There may be multiple unthrottled guides of the same type, being queried\n // by type to return a single guide, for example: useGuide({ type: \"card\" }).\n //\n // So it is possible for an unthrottled guide to be shadowed by another\n // unthrottled guide of the same type with higher priority, so we need to\n // look at the query result to determine its return status.\n if (guide.bypass_global_group_limit) {\n const guides = [...result.values()];\n const first = guides[0]!;\n\n if (guide.key !== first.key) {\n // Being shadowed by another guide with higher priority.\n return \"queried\";\n }\n return \"returned\";\n }\n\n // If resolved, expect this guide to be returned unless being throttled.\n if (guide.key === stage.resolved) {\n if (snapshot.throttled && !includeThrottled) {\n return \"throttled\";\n }\n return \"returned\";\n }\n\n // If queried but not resolved, it means this guide is being shadowed by\n // another guide with higher priority because throttled guides can be\n // displayed only one at a time.\n return \"queried\";\n};\n\nconst inferSelectAllByTypeReturnStatus = (\n guide: KnockGuide,\n snapshot: StoreStateSnapshot,\n stage: KnockGuideClientGroupStage,\n query: SelectionResultByQuery,\n): SelectableStatusPresent[\"status\"] => {\n const result = query.type!.all!;\n if (result.size === 0) {\n return \"queried\";\n }\n\n const guides = [...result.values()];\n const first = guides[0]!;\n\n // Might want to consider moving this up to do once.\n const guidesByKey: Record<KnockGuide[\"key\"], KnockGuide> = byKey(guides);\n\n // If includeThrottled given, then expect all selected guides to be returned.\n const includeThrottled = !!query.type?.all?.metadata?.opts?.includeThrottled;\n if (includeThrottled) {\n return guidesByKey[guide.key] ? \"returned\" : \"queried\";\n }\n\n // If the first selected guide is unthrottled or resolved, then we should\n // have at minimum one guide to return, and potentially more based on whether\n // we are throttling currently and which other guides are unthrottled.\n if (first.bypass_global_group_limit || first.key === stage.resolved) {\n if (!guidesByKey[guide.key]) {\n return \"queried\";\n }\n if (snapshot.throttled) {\n return guide.bypass_global_group_limit ? \"returned\" : \"throttled\";\n }\n return \"returned\";\n }\n\n return \"queried\";\n};\n\nconst inferSelectReturnStatus = (\n guide: KnockGuide,\n snapshot: StoreStateSnapshot,\n stage: KnockGuideClientGroupStage,\n query: SelectionResultByQuery,\n) => {\n // Querying by key can only return up to a max of one guide, regardless of\n // useGuide or useGuides, and should take precedence in status designation.\n if (query.key) {\n return inferSelectByKeyReturnStatus(guide, snapshot, stage, query);\n }\n\n if (query.type?.all) {\n return inferSelectAllByTypeReturnStatus(guide, snapshot, stage, query);\n }\n if (query.type?.one) {\n return inferSelectOneByTypeReturnStatus(guide, snapshot, stage, query);\n }\n\n // Should not happen but just for completeness.\n return undefined;\n};\n\nconst toSelectableStatus = (\n guide: KnockGuide,\n snapshot: StoreStateSnapshot,\n stage: KnockGuideClientGroupStage | undefined,\n): SelectableStatus => {\n if (!stage || stage.status === \"open\") {\n return { status: undefined };\n }\n\n const query = {\n key: (stage.results.key || {})[guide.key],\n type: (stage.results.type || {})[guide.type],\n };\n\n const queried = Boolean(query.key || query.type);\n if (!queried) {\n // No present query in the current location can select this guide.\n return { status: undefined };\n }\n\n const status = inferSelectReturnStatus(guide, snapshot, stage, query);\n if (!status) {\n return { status: undefined };\n }\n\n return { status, query };\n};\n\nconst toIneligibilityStatus = (\n marker: KnockGuideIneligibilityMarker,\n): Partial<AnnotatedStatuses> | undefined => {\n switch (marker.reason) {\n case \"not_in_target_audience\":\n case \"target_conditions_not_met\":\n return {\n targetable: {\n status: false,\n reason: marker.reason,\n message: marker.message,\n },\n };\n\n case \"marked_as_archived\":\n return {\n archived: {\n status: true,\n },\n };\n\n case \"guide_not_active\":\n return {\n active: {\n status: false,\n },\n };\n\n default:\n return undefined;\n }\n};\n\nconst resolveIsEligible = ({\n active,\n targetable,\n archived,\n}: AnnotatedStatuses) => {\n if (!active.status) return false;\n if (!targetable.status) return false;\n if (archived.status) return false;\n return true;\n};\n\nexport const resolveIsQualified = ({\n activatable,\n selectable,\n}: AnnotatedStatuses) => {\n if (!activatable.status) return false;\n if (!selectable.status) return false;\n return true;\n};\n\nconst annotateGuide = (\n guide: KnockGuide,\n snapshot: StoreStateSnapshot,\n stage: KnockGuideClientGroupStage | undefined,\n): AnnotatedGuide => {\n const { ineligibleGuides, location } = snapshot;\n const marker = ineligibleGuides[guide.key];\n const ineligiblity = marker ? toIneligibilityStatus(marker) : undefined;\n\n const statuses: AnnotatedStatuses = {\n // isEligible:\n active: ineligiblity?.active || { status: true },\n targetable: ineligiblity?.targetable || { status: true },\n archived: ineligiblity?.archived || { status: false },\n // isQualified:\n activatable: { status: checkActivatable(guide, location) },\n selectable: toSelectableStatus(guide, snapshot, stage),\n };\n\n const annotation: GuideAnnotation = {\n ...statuses,\n isEligible: resolveIsEligible(statuses),\n isQualified: resolveIsQualified(statuses),\n };\n\n return {\n ...guide,\n annotation,\n };\n};\n\nconst newUnknownGuide = (key: KnockGuide[\"key\"]) =>\n ({\n __typename: \"UnknownGuide\",\n key,\n active: false,\n bypass_global_group_limit: false,\n annotation: {\n isEligible: false,\n isQualified: false,\n selectable: {\n status: undefined,\n },\n },\n }) as UnknownGuide;\n\nexport const useInspectGuideClientStore = (): InspectionResult | undefined => {\n const { client } = useGuideContext();\n\n // Extract a snapshot of the client store state for debugging.\n const snapshot: StoreStateSnapshot = useStore(client.store, (state) => {\n const throttled = checkStateIfThrottled(state);\n\n return {\n location: state.location,\n guides: state.guides,\n guideGroups: state.guideGroups,\n ineligibleGuides: state.ineligibleGuides,\n debug: state.debug,\n counter: state.counter,\n throttled,\n };\n });\n\n // Not in debugging session, so noop.\n if (!snapshot.debug?.debugging) {\n return undefined;\n }\n\n // Only for completeness, as there should always be a default group so this\n // should never happen.\n const defaultGroup = snapshot.guideGroups[0];\n if (!defaultGroup) {\n return {\n error: \"no_guide_group\",\n guides: [],\n };\n }\n\n const groupStage = client.getStage();\n\n // Annotate guides for various eligibility, activation and query statuses\n // that are useful for debugging purposes.\n const orderedGuides = defaultGroup.display_sequence.map((guideKey) => {\n const guide = snapshot.guides[guideKey];\n if (!guide) {\n return newUnknownGuide(guideKey);\n }\n\n return annotateGuide(guide, snapshot, groupStage);\n });\n\n return {\n guides: orderedGuides,\n };\n};\n\nexport const isUnknownGuide = (input: unknown): input is UnknownGuide =>\n typeof input === \"object\" &&\n input !== null &&\n \"__typename\" in input &&\n (input as UnknownGuide).__typename === \"UnknownGuide\";\n"],"names":["byKey","items","reduce","acc","item","key","inferSelectByKeyReturnStatus","guide","snapshot","stage","query","includeThrottled","one","metadata","opts","all","bypass_global_group_limit","resolved","throttled","inferSelectOneByTypeReturnStatus","type","result","size","first","values","inferSelectAllByTypeReturnStatus","guides","guidesByKey","inferSelectReturnStatus","toSelectableStatus","status","undefined","results","Boolean","toIneligibilityStatus","marker","reason","targetable","message","archived","active","resolveIsEligible","resolveIsQualified","activatable","selectable","annotateGuide","ineligibleGuides","location","ineligiblity","statuses","checkActivatable","annotation","isEligible","isQualified","newUnknownGuide","__typename","useInspectGuideClientStore","client","useGuideContext","useStore","store","state","checkStateIfThrottled","guideGroups","debug","counter","debugging","defaultGroup","error","groupStage","getStage","display_sequence","map","guideKey","isUnknownGuide","input"],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { useGuideContext as m, useStore as p } from "@knocklabs/react-core";
2
+ import { Stack as r, Box as s } from "@telegraph/layout";
3
+ import { Text as t } from "@telegraph/typography";
4
+ import { ChevronDown as d, ChevronRight as g } from "lucide-react";
5
+ import * as e from "react";
6
+ const z = () => {
7
+ const {
8
+ client: a
9
+ } = m(), [l, i] = e.useState(!1), n = p(a.store, (o) => o.guideGroups[0]), c = (n == null ? void 0 : n.display_interval) ?? null;
10
+ return /* @__PURE__ */ e.createElement(r, { direction: "column", borderTop: "px" }, /* @__PURE__ */ e.createElement(r, { h: "5", px: "2", bg: "gray-3", align: "center", gap: "1", style: {
11
+ cursor: "pointer"
12
+ }, onClick: () => i((o) => !o) }, /* @__PURE__ */ e.createElement(t, { as: "span", size: "0", weight: "medium" }, "Details"), l ? /* @__PURE__ */ e.createElement(d, { size: 12 }) : /* @__PURE__ */ e.createElement(g, { size: 12 })), l && /* @__PURE__ */ e.createElement(r, { direction: "column" }, /* @__PURE__ */ e.createElement(r, { direction: "column", gap: "0_5", py: "1", px: "2", borderTop: "px" }, /* @__PURE__ */ e.createElement(t, { as: "span", size: "0", weight: "medium" }, "Throttle"), /* @__PURE__ */ e.createElement(t, { as: "code", size: "0" }, c === null ? "-" : `Every ${c}s`)), /* @__PURE__ */ e.createElement(r, { direction: "column", py: "1", px: "2", borderTop: "px" }, /* @__PURE__ */ e.createElement(t, { as: "span", size: "0", weight: "medium" }, "Target params"), /* @__PURE__ */ e.createElement(r, { direction: "column", gap: "0_5", mt: "1" }, /* @__PURE__ */ e.createElement(t, { as: "span", size: "0", color: "gray" }, "Tenant"), /* @__PURE__ */ e.createElement(t, { as: "code", size: "0" }, a.targetParams.tenant ? /* @__PURE__ */ e.createElement(s, { rounded: "2", overflow: "auto", backgroundColor: "gray-2", border: "px", style: {
13
+ maxHeight: "200px"
14
+ } }, /* @__PURE__ */ e.createElement("pre", { style: {
15
+ fontSize: "11px",
16
+ margin: 0
17
+ } }, /* @__PURE__ */ e.createElement("code", null, a.targetParams.tenant))) : /* @__PURE__ */ e.createElement(t, { as: "code", size: "0" }, "-"))), /* @__PURE__ */ e.createElement(r, { direction: "column", gap: "0_5" }, /* @__PURE__ */ e.createElement(t, { as: "span", size: "0", color: "gray" }, "Data"), a.targetParams.data ? /* @__PURE__ */ e.createElement(s, { rounded: "2", overflow: "auto", backgroundColor: "gray-2", border: "px", style: {
18
+ maxHeight: "200px"
19
+ } }, /* @__PURE__ */ e.createElement("pre", { style: {
20
+ fontSize: "11px",
21
+ margin: 0
22
+ } }, /* @__PURE__ */ e.createElement("code", null, JSON.stringify(a.targetParams.data, null, 2)))) : /* @__PURE__ */ e.createElement(t, { as: "code", size: "0" }, "-")))));
23
+ };
24
+ export {
25
+ z as GuideContextDetails
26
+ };
27
+ //# sourceMappingURL=GuideContextDetails.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GuideContextDetails.mjs","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/GuideContextDetails.tsx"],"sourcesContent":["import { useGuideContext, useStore } from \"@knocklabs/react-core\";\nimport { Box, Stack } from \"@telegraph/layout\";\nimport { Text } from \"@telegraph/typography\";\nimport { ChevronDown, ChevronRight } from \"lucide-react\";\nimport * as React from \"react\";\n\nexport const GuideContextDetails = () => {\n const { client } = useGuideContext();\n const [isExpanded, setIsExpanded] = React.useState(false);\n\n const defaultGroup = useStore(client.store, (state) => state.guideGroups[0]);\n const displayInterval = defaultGroup?.display_interval ?? null;\n\n return (\n <Stack direction=\"column\" borderTop=\"px\">\n <Stack\n h=\"5\"\n px=\"2\"\n bg=\"gray-3\"\n align=\"center\"\n gap=\"1\"\n style={{ cursor: \"pointer\" }}\n onClick={() => setIsExpanded((prev) => !prev)}\n >\n <Text as=\"span\" size=\"0\" weight=\"medium\">\n Details\n </Text>\n {isExpanded ? <ChevronDown size={12} /> : <ChevronRight size={12} />}\n </Stack>\n\n {isExpanded && (\n <Stack direction=\"column\">\n <Stack direction=\"column\" gap=\"0_5\" py=\"1\" px=\"2\" borderTop=\"px\">\n <Text as=\"span\" size=\"0\" weight=\"medium\">\n Throttle\n </Text>\n <Text as=\"code\" size=\"0\">\n {displayInterval === null ? \"-\" : `Every ${displayInterval}s`}\n </Text>\n </Stack>\n\n <Stack direction=\"column\" py=\"1\" px=\"2\" borderTop=\"px\">\n <Text as=\"span\" size=\"0\" weight=\"medium\">\n Target params\n </Text>\n <Stack direction=\"column\" gap=\"0_5\" mt=\"1\">\n <Text as=\"span\" size=\"0\" color=\"gray\">\n Tenant\n </Text>\n <Text as=\"code\" size=\"0\">\n {client.targetParams.tenant ? (\n <Box\n rounded=\"2\"\n overflow=\"auto\"\n backgroundColor=\"gray-2\"\n border=\"px\"\n style={{ maxHeight: \"200px\" }}\n >\n <pre style={{ fontSize: \"11px\", margin: 0 }}>\n <code>{client.targetParams.tenant}</code>\n </pre>\n </Box>\n ) : (\n <Text as=\"code\" size=\"0\">\n -\n </Text>\n )}\n </Text>\n </Stack>\n\n <Stack direction=\"column\" gap=\"0_5\">\n <Text as=\"span\" size=\"0\" color=\"gray\">\n Data\n </Text>\n {client.targetParams.data ? (\n <Box\n rounded=\"2\"\n overflow=\"auto\"\n backgroundColor=\"gray-2\"\n border=\"px\"\n style={{ maxHeight: \"200px\" }}\n >\n <pre style={{ fontSize: \"11px\", margin: 0 }}>\n <code>\n {JSON.stringify(client.targetParams.data, null, 2)}\n </code>\n </pre>\n </Box>\n ) : (\n <Text as=\"code\" size=\"0\">\n -\n </Text>\n )}\n </Stack>\n </Stack>\n </Stack>\n )}\n </Stack>\n );\n};\n"],"names":["GuideContextDetails","client","useGuideContext","isExpanded","setIsExpanded","React","useState","defaultGroup","useStore","store","state","guideGroups","displayInterval","display_interval","Stack","cursor","prev","Text","ChevronDown","ChevronRight","targetParams","tenant","Box","maxHeight","fontSize","margin","data","JSON","stringify"],"mappings":"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"}
@@ -14,7 +14,7 @@ const f = ({
14
14
  priority: s,
15
15
  ...a
16
16
  } = o;
17
- return /* @__PURE__ */ e.createElement(t.Root, null, /* @__PURE__ */ e.createElement(t.Trigger, null, /* @__PURE__ */ e.createElement(n, { align: "center" }, r)), /* @__PURE__ */ e.createElement(t.Portal, null, /* @__PURE__ */ e.createElement(t.Content, { sideOffset: 44, side: "left" }, /* @__PURE__ */ e.createElement(l, { px: "2", shadow: "2", rounded: "3", border: "px", overflow: "auto", backgroundColor: "surface-2", style: {
17
+ return /* @__PURE__ */ e.createElement(t.Root, null, /* @__PURE__ */ e.createElement(t.Trigger, null, /* @__PURE__ */ e.createElement(n, { align: "center" }, r)), /* @__PURE__ */ e.createElement(t.Portal, null, /* @__PURE__ */ e.createElement(t.Content, { sideOffset: 16, side: "left" }, /* @__PURE__ */ e.createElement(l, { px: "2", shadow: "2", rounded: "3", border: "px", overflow: "auto", backgroundColor: "surface-2", style: {
18
18
  width: "450px",
19
19
  maxHeight: "600px"
20
20
  } }, /* @__PURE__ */ e.createElement("pre", { style: {
@@ -1 +1 @@
1
- {"version":3,"file":"GuideHoverCard.mjs","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/GuideHoverCard.tsx"],"sourcesContent":["import * as HoverCard from \"@radix-ui/react-hover-card\";\nimport { Box, Stack } from \"@telegraph/layout\";\nimport * as React from \"react\";\n\nimport {\n AnnotatedGuide,\n UnknownGuide,\n isUnknownGuide,\n} from \"./useInspectGuideClientStore\";\n\ntype Props = {\n guide: AnnotatedGuide | UnknownGuide;\n};\n\nexport const GuideHoverCard = ({\n children,\n guide,\n}: React.PropsWithChildren<Props>) => {\n if (isUnknownGuide(guide)) {\n return <Stack align=\"center\">{children}</Stack>;\n }\n\n // Prune out internal or legacy fields.\n const {\n annotation: _annotation,\n activation_location_rules: _activation_location_rules,\n priority: _priority,\n ...rest\n } = guide;\n\n return (\n <HoverCard.Root>\n <HoverCard.Trigger>\n <Stack align=\"center\">{children}</Stack>\n </HoverCard.Trigger>\n <HoverCard.Portal>\n <HoverCard.Content sideOffset={44} side=\"left\">\n <Box\n px=\"2\"\n shadow=\"2\"\n rounded=\"3\"\n border=\"px\"\n overflow=\"auto\"\n backgroundColor=\"surface-2\"\n style={{\n width: \"450px\",\n maxHeight: \"600px\",\n }}\n >\n <pre\n style={{\n fontSize: \"11px\",\n }}\n >\n <code>{JSON.stringify(rest, null, 2)}</code>\n </pre>\n </Box>\n <HoverCard.Arrow />\n </HoverCard.Content>\n </HoverCard.Portal>\n </HoverCard.Root>\n );\n};\n"],"names":["GuideHoverCard","children","guide","isUnknownGuide","React","Stack","annotation","_annotation","activation_location_rules","_activation_location_rules","priority","_priority","rest","HoverCard","Box","width","maxHeight","fontSize","JSON","stringify"],"mappings":";;;;AAcO,MAAMA,IAAiBA,CAAC;AAAA,EAC7BC,UAAAA;AAAAA,EACAC,OAAAA;AAC8B,MAAM;AAChCC,MAAAA,EAAeD,CAAK;AACtB,WAAQ,gBAAAE,EAAA,cAAAC,GAAA,EAAM,OAAM,SAAA,GAAUJ,CAAS;AAInC,QAAA;AAAA,IACJK,YAAYC;AAAAA,IACZC,2BAA2BC;AAAAA,IAC3BC,UAAUC;AAAAA,IACV,GAAGC;AAAAA,EAAAA,IACDV;AAEJ,yCACGW,EAAU,MAAV,MACE,gBAAAT,EAAA,cAAAS,EAAU,SAAV,MACC,gBAAAT,EAAA,cAACC,GAAM,EAAA,OAAM,YAAUJ,CAAS,CAClC,GACC,gBAAAG,EAAA,cAAAS,EAAU,QAAV,MACC,gBAAAT,EAAA,cAACS,EAAU,SAAV,EAAkB,YAAY,IAAI,MAAK,UACtC,gBAAAT,EAAA,cAACU,KACC,IAAG,KACH,QAAO,KACP,SAAQ,KACR,QAAO,MACP,UAAS,QACT,iBAAgB,aAChB,OAAO;AAAA,IACLC,OAAO;AAAA,IACPC,WAAW;AAAA,EACb,EAAA,GAEC,gBAAAZ,EAAA,cAAA,OAAA,EACC,OAAO;AAAA,IACLa,UAAU;AAAA,EAAA,KAGX,gBAAAb,EAAA,cAAA,QAAA,MAAMc,KAAKC,UAAUP,GAAM,MAAM,CAAC,CAAE,CACvC,CACF,GACC,gBAAAR,EAAA,cAAAS,EAAU,OAAV,IAAe,CAClB,CACF,CACF;AAEJ;"}
1
+ {"version":3,"file":"GuideHoverCard.mjs","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/GuideHoverCard.tsx"],"sourcesContent":["import * as HoverCard from \"@radix-ui/react-hover-card\";\nimport { Box, Stack } from \"@telegraph/layout\";\nimport * as React from \"react\";\n\nimport {\n AnnotatedGuide,\n UnknownGuide,\n isUnknownGuide,\n} from \"./useInspectGuideClientStore\";\n\ntype Props = {\n guide: AnnotatedGuide | UnknownGuide;\n};\n\nexport const GuideHoverCard = ({\n children,\n guide,\n}: React.PropsWithChildren<Props>) => {\n if (isUnknownGuide(guide)) {\n return <Stack align=\"center\">{children}</Stack>;\n }\n\n // Prune out internal or legacy fields.\n const {\n annotation: _annotation,\n activation_location_rules: _activation_location_rules,\n priority: _priority,\n ...rest\n } = guide;\n\n return (\n <HoverCard.Root>\n <HoverCard.Trigger>\n <Stack align=\"center\">{children}</Stack>\n </HoverCard.Trigger>\n <HoverCard.Portal>\n <HoverCard.Content sideOffset={16} side=\"left\">\n <Box\n px=\"2\"\n shadow=\"2\"\n rounded=\"3\"\n border=\"px\"\n overflow=\"auto\"\n backgroundColor=\"surface-2\"\n style={{\n width: \"450px\",\n maxHeight: \"600px\",\n }}\n >\n <pre\n style={{\n fontSize: \"11px\",\n }}\n >\n <code>{JSON.stringify(rest, null, 2)}</code>\n </pre>\n </Box>\n <HoverCard.Arrow />\n </HoverCard.Content>\n </HoverCard.Portal>\n </HoverCard.Root>\n );\n};\n"],"names":["GuideHoverCard","children","guide","isUnknownGuide","React","Stack","annotation","_annotation","activation_location_rules","_activation_location_rules","priority","_priority","rest","HoverCard","Box","width","maxHeight","fontSize","JSON","stringify"],"mappings":";;;;AAcO,MAAMA,IAAiBA,CAAC;AAAA,EAC7BC,UAAAA;AAAAA,EACAC,OAAAA;AAC8B,MAAM;AAChCC,MAAAA,EAAeD,CAAK;AACtB,WAAQ,gBAAAE,EAAA,cAAAC,GAAA,EAAM,OAAM,SAAA,GAAUJ,CAAS;AAInC,QAAA;AAAA,IACJK,YAAYC;AAAAA,IACZC,2BAA2BC;AAAAA,IAC3BC,UAAUC;AAAAA,IACV,GAAGC;AAAAA,EAAAA,IACDV;AAEJ,yCACGW,EAAU,MAAV,MACE,gBAAAT,EAAA,cAAAS,EAAU,SAAV,MACC,gBAAAT,EAAA,cAACC,GAAM,EAAA,OAAM,YAAUJ,CAAS,CAClC,GACC,gBAAAG,EAAA,cAAAS,EAAU,QAAV,MACC,gBAAAT,EAAA,cAACS,EAAU,SAAV,EAAkB,YAAY,IAAI,MAAK,UACtC,gBAAAT,EAAA,cAACU,KACC,IAAG,KACH,QAAO,KACP,SAAQ,KACR,QAAO,MACP,UAAS,QACT,iBAAgB,aAChB,OAAO;AAAA,IACLC,OAAO;AAAA,IACPC,WAAW;AAAA,EACb,EAAA,GAEC,gBAAAZ,EAAA,cAAA,OAAA,EACC,OAAO;AAAA,IACLa,UAAU;AAAA,EAAA,KAGX,gBAAAb,EAAA,cAAA,QAAA,MAAMc,KAAKC,UAAUP,GAAM,MAAM,CAAC,CAAE,CACvC,CACF,GACC,gBAAAR,EAAA,cAAAS,EAAU,OAAV,IAAe,CAClB,CACF,CACF;AAEJ;"}
@@ -1,27 +1,30 @@
1
- import { Button as r } from "@telegraph/button";
1
+ import { Button as n } from "@telegraph/button";
2
2
  import { Stack as a, Box as l } from "@telegraph/layout";
3
- import { Tag as c } from "@telegraph/tag";
4
- import { Tooltip as n } from "@telegraph/tooltip";
5
- import { Text as s } from "@telegraph/typography";
6
- import { LocateFixed as m, UserCircle2 as d, Eye as p, CheckCircle2 as b, CircleDashed as h } from "lucide-react";
3
+ import { Tag as s } from "@telegraph/tag";
4
+ import { Tooltip as r } from "@telegraph/tooltip";
5
+ import { Text as c } from "@telegraph/typography";
6
+ import { Code2 as m, LocateFixed as d, UserCircle2 as p, Eye as u, CheckCircle2 as b, CircleDashed as h } from "lucide-react";
7
7
  import * as e from "react";
8
- import { GuideHoverCard as v } from "./GuideHoverCard.mjs";
8
+ import { GuideHoverCard as E } from "./GuideHoverCard.mjs";
9
9
  import { isUnknownGuide as o } from "./useInspectGuideClientStore.mjs";
10
- const E = ({
10
+ const f = ({
11
11
  children: t
12
- }) => /* @__PURE__ */ e.createElement(a, { h: "7", px: "2", borderTop: "px", justify: "space-between", align: "center" }, t), k = ({
12
+ }) => /* @__PURE__ */ e.createElement(a, { h: "7", px: "2", borderTop: "px", justify: "space-between", align: "center" }, t), I = ({
13
13
  guide: t,
14
14
  orderIndex: i
15
- }) => /* @__PURE__ */ e.createElement(E, null, /* @__PURE__ */ e.createElement(a, { h: "6", justify: "flex-start", align: "center", gap: "2" }, /* @__PURE__ */ e.createElement(c, { size: "0", variant: "soft", color: t.bypass_global_group_limit ? "blue" : "default" }, i + 1), /* @__PURE__ */ e.createElement(v, { guide: t }, /* @__PURE__ */ e.createElement(s, { as: "code", size: "1", color: t.active ? "black" : "disabled" }, t.key))), /* @__PURE__ */ e.createElement(a, { justify: "flex-end" }, !o(t) && /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(a, { gap: "1" }, /* @__PURE__ */ e.createElement(n, { label: t.annotation.activatable.status ? "This guide can be activated at the current location" : "This guide cannot be activated at the current location" }, /* @__PURE__ */ e.createElement(r, { px: "1", size: "1", variant: "soft", color: t.annotation.activatable.status ? "green" : "red", leadingIcon: {
15
+ }) => /* @__PURE__ */ e.createElement(f, null, /* @__PURE__ */ e.createElement(E, { guide: t }, /* @__PURE__ */ e.createElement(a, { h: "6", justify: "flex-start", align: "center", gap: "2" }, /* @__PURE__ */ e.createElement(s, { size: "0", variant: "soft", color: t.bypass_global_group_limit ? "blue" : "default" }, i + 1), /* @__PURE__ */ e.createElement(c, { as: "code", size: "1" }, t.key))), /* @__PURE__ */ e.createElement(a, { justify: "flex-end" }, !o(t) && /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(a, { gap: "1" }, /* @__PURE__ */ e.createElement(r, { label: t.annotation.selectable.status === "returned" ? "This guide was queried and can display" : t.annotation.selectable.status === "queried" ? "This guide was queried but cannot display" : t.annotation.selectable.status === "throttled" ? "This guide was queried and can display but is throttled currently" : "No component is present in the current location to display this guide" }, /* @__PURE__ */ e.createElement(n, { px: "1", size: "1", variant: "soft", color: t.annotation.selectable.status === "returned" ? "green" : t.annotation.selectable.status === "queried" ? "gray" : t.annotation.selectable.status === "throttled" ? "yellow" : "red", leadingIcon: {
16
16
  icon: m,
17
- alt: "Target"
18
- } }))), /* @__PURE__ */ e.createElement(a, { px: "2", align: "center" }, /* @__PURE__ */ e.createElement(l, { h: "3", borderLeft: "px", borderColor: "gray-6" }))), /* @__PURE__ */ e.createElement(a, { gap: "1" }, !o(t) && /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(n, { label: t.annotation.targetable.status ? "This user is being targeted" : t.annotation.targetable.message }, /* @__PURE__ */ e.createElement(r, { px: "1", size: "1", variant: "soft", color: t.annotation.targetable.status ? "green" : "red", leadingIcon: {
17
+ alt: "Render"
18
+ } })), /* @__PURE__ */ e.createElement(r, { label: t.annotation.activatable.status ? "This guide can be activated at the current location" : "This guide cannot be activated at the current location" }, /* @__PURE__ */ e.createElement(n, { px: "1", size: "1", variant: "soft", color: t.annotation.activatable.status ? "green" : "red", leadingIcon: {
19
19
  icon: d,
20
20
  alt: "Target"
21
- } })), /* @__PURE__ */ e.createElement(n, { label: t.annotation.archived.status ? "User has already dismissed this guide" : "User has not dismissed this guide" }, /* @__PURE__ */ e.createElement(r, { px: "1", size: "1", variant: "soft", color: t.annotation.archived.status ? "red" : "green", leadingIcon: {
21
+ } }))), /* @__PURE__ */ e.createElement(a, { px: "2", align: "center" }, /* @__PURE__ */ e.createElement(l, { h: "3", borderLeft: "px", borderColor: "gray-6" }))), /* @__PURE__ */ e.createElement(a, { gap: "1" }, !o(t) && /* @__PURE__ */ e.createElement(e.Fragment, null, /* @__PURE__ */ e.createElement(r, { label: t.annotation.targetable.status ? "This user is being targeted" : t.annotation.targetable.message }, /* @__PURE__ */ e.createElement(n, { px: "1", size: "1", variant: "soft", color: t.annotation.targetable.status ? "green" : "red", leadingIcon: {
22
22
  icon: p,
23
+ alt: "Target"
24
+ } })), /* @__PURE__ */ e.createElement(r, { label: t.annotation.archived.status ? "User has already dismissed this guide" : "User has not dismissed this guide" }, /* @__PURE__ */ e.createElement(n, { px: "1", size: "1", variant: "soft", color: t.annotation.archived.status ? "red" : "green", leadingIcon: {
25
+ icon: u,
23
26
  alt: "Not archived"
24
- } }))), /* @__PURE__ */ e.createElement(n, { label: o(t) ? "This guide has never been committed and published yet" : t.active ? "This guide is active" : "This guide is not active" }, /* @__PURE__ */ e.createElement(r, { px: "1", size: "1", variant: "soft", color: t.active ? "green" : "red", leadingIcon: t.active ? {
27
+ } }))), /* @__PURE__ */ e.createElement(r, { label: o(t) ? "This guide has never been committed and published yet" : t.active ? "This guide is active" : "This guide is not active" }, /* @__PURE__ */ e.createElement(n, { px: "1", size: "1", variant: "soft", color: t.active ? "green" : "red", leadingIcon: t.active ? {
25
28
  icon: b,
26
29
  alt: "Active"
27
30
  } : {
@@ -29,6 +32,6 @@ const E = ({
29
32
  alt: "Inactive"
30
33
  } })))));
31
34
  export {
32
- k as GuideRow
35
+ I as GuideRow
33
36
  };
34
37
  //# sourceMappingURL=GuideRow.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"GuideRow.mjs","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/GuideRow.tsx"],"sourcesContent":["import { Button } from \"@telegraph/button\";\nimport { Box, Stack } from \"@telegraph/layout\";\nimport { Tag } from \"@telegraph/tag\";\nimport { Tooltip } from \"@telegraph/tooltip\";\nimport { Text } from \"@telegraph/typography\";\nimport {\n CheckCircle2,\n CircleDashed,\n Eye,\n LocateFixed,\n UserCircle2,\n} from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { GuideHoverCard } from \"./GuideHoverCard\";\nimport {\n AnnotatedGuide,\n UnknownGuide,\n isUnknownGuide,\n} from \"./useInspectGuideClientStore\";\n\nconst Row = ({ children }: React.PropsWithChildren) => (\n <Stack h=\"7\" px=\"2\" borderTop=\"px\" justify=\"space-between\" align=\"center\">\n {children}\n </Stack>\n);\n\ntype Props = {\n guide: UnknownGuide | AnnotatedGuide;\n orderIndex: number;\n};\n\nexport const GuideRow = ({ guide, orderIndex }: Props) => {\n return (\n <Row>\n <Stack h=\"6\" justify=\"flex-start\" align=\"center\" gap=\"2\">\n <Tag\n size=\"0\"\n variant=\"soft\"\n color={guide.bypass_global_group_limit ? \"blue\" : \"default\"}\n >\n {orderIndex + 1}\n </Tag>\n <GuideHoverCard guide={guide}>\n <Text as=\"code\" size=\"1\" color={guide.active ? \"black\" : \"disabled\"}>\n {guide.key}\n </Text>\n </GuideHoverCard>\n </Stack>\n\n <Stack justify=\"flex-end\">\n {!isUnknownGuide(guide) && (\n <>\n <Stack gap=\"1\">\n <Tooltip\n label={\n guide.annotation.activatable.status\n ? \"This guide can be activated at the current location\"\n : \"This guide cannot be activated at the current location\"\n }\n >\n <Button\n px=\"1\"\n size=\"1\"\n variant=\"soft\"\n color={guide.annotation.activatable.status ? \"green\" : \"red\"}\n leadingIcon={{ icon: LocateFixed, alt: \"Target\" }}\n />\n </Tooltip>\n </Stack>\n <Stack px=\"2\" align=\"center\">\n <Box h=\"3\" borderLeft=\"px\" borderColor=\"gray-6\" />\n </Stack>\n </>\n )}\n <Stack gap=\"1\">\n {!isUnknownGuide(guide) && (\n <>\n <Tooltip\n label={\n guide.annotation.targetable.status\n ? \"This user is being targeted\"\n : guide.annotation.targetable.message\n }\n >\n <Button\n px=\"1\"\n size=\"1\"\n variant=\"soft\"\n color={guide.annotation.targetable.status ? \"green\" : \"red\"}\n leadingIcon={{ icon: UserCircle2, alt: \"Target\" }}\n />\n </Tooltip>\n <Tooltip\n label={\n guide.annotation.archived.status\n ? \"User has already dismissed this guide\"\n : \"User has not dismissed this guide\"\n }\n >\n <Button\n px=\"1\"\n size=\"1\"\n variant=\"soft\"\n color={guide.annotation.archived.status ? \"red\" : \"green\"}\n leadingIcon={{ icon: Eye, alt: \"Not archived\" }}\n />\n </Tooltip>\n </>\n )}\n <Tooltip\n label={\n isUnknownGuide(guide)\n ? \"This guide has never been committed and published yet\"\n : !guide.active\n ? \"This guide is not active\"\n : \"This guide is active\"\n }\n >\n <Button\n px=\"1\"\n size=\"1\"\n variant=\"soft\"\n color={guide.active ? \"green\" : \"red\"}\n leadingIcon={\n guide.active\n ? { icon: CheckCircle2, alt: \"Active\" }\n : { icon: CircleDashed, alt: \"Inactive\" }\n }\n />\n </Tooltip>\n </Stack>\n </Stack>\n </Row>\n );\n};\n"],"names":["Row","children","React","Stack","GuideRow","guide","orderIndex","Tag","bypass_global_group_limit","GuideHoverCard","Text","active","key","isUnknownGuide","Tooltip","annotation","activatable","status","Button","icon","LocateFixed","alt","Box","targetable","message","UserCircle2","archived","Eye","CheckCircle2","CircleDashed"],"mappings":";;;;;;;;;AAqBA,MAAMA,IAAMA,CAAC;AAAA,EAAEC,UAAAA;AAAkC,MAC9C,gBAAAC,EAAA,cAAAC,GAAA,EAAM,GAAE,KAAI,IAAG,KAAI,WAAU,MAAK,SAAQ,iBAAgB,OAAM,SAAA,GAC9DF,CACH,GAQWG,IAAWA,CAAC;AAAA,EAAEC,OAAAA;AAAAA,EAAOC,YAAAA;AAAkB,sCAE/CN,GACC,MAAA,gBAAAE,EAAA,cAACC,GAAM,EAAA,GAAE,KAAI,SAAQ,cAAa,OAAM,UAAS,KAAI,IACnD,GAAA,gBAAAD,EAAA,cAACK,KACC,MAAK,KACL,SAAQ,QACR,OAAOF,EAAMG,4BAA4B,SAAS,UAEjDF,GAAAA,IAAa,CAChB,GACA,gBAAAJ,EAAA,cAACO,KAAe,OAAAJ,EACd,GAAA,gBAAAH,EAAA,cAACQ,GAAK,EAAA,IAAG,QAAO,MAAK,KAAI,OAAOL,EAAMM,SAAS,UAAU,WACtDN,GAAAA,EAAMO,GACT,CACF,CACF,GAEA,gBAAAV,EAAA,cAACC,GAAM,EAAA,SAAQ,cACZ,CAACU,EAAeR,CAAK,uDAEjB,gBAAAH,EAAA,cAAAC,GAAA,EAAM,KAAI,IACT,GAAA,gBAAAD,EAAA,cAACY,KACC,OACET,EAAMU,WAAWC,YAAYC,SACzB,wDACA,yDAAA,mCAGLC,GACC,EAAA,IAAG,KACH,MAAK,KACL,SAAQ,QACR,OAAOb,EAAMU,WAAWC,YAAYC,SAAS,UAAU,OACvD,aAAa;AAAA,EAAEE,MAAMC;AAAAA,EAAaC,KAAK;AAAA,EAAW,CAAA,CAEtD,CACF,GACA,gBAAAnB,EAAA,cAACC,GAAM,EAAA,IAAG,KAAI,OAAM,SAClB,GAAA,gBAAAD,EAAA,cAACoB,GAAI,EAAA,GAAE,KAAI,YAAW,MAAK,aAAY,SAAA,CAAQ,CACjD,CACF,GAEF,gBAAApB,EAAA,cAACC,GAAM,EAAA,KAAI,IACR,GAAA,CAACU,EAAeR,CAAK,KAElB,gBAAAH,EAAA,cAAAA,EAAA,UAAA,MAAA,gBAAAA,EAAA,cAACY,GACC,EAAA,OACET,EAAMU,WAAWQ,WAAWN,SACxB,gCACAZ,EAAMU,WAAWQ,WAAWC,WAGlC,gBAAAtB,EAAA,cAACgB,GACC,EAAA,IAAG,KACH,MAAK,KACL,SAAQ,QACR,OAAOb,EAAMU,WAAWQ,WAAWN,SAAS,UAAU,OACtD,aAAa;AAAA,EAAEE,MAAMM;AAAAA,EAAaJ,KAAK;AAAA,EAAW,CAAA,CAEtD,GACC,gBAAAnB,EAAA,cAAAY,GAAA,EACC,OACET,EAAMU,WAAWW,SAAST,SACtB,0CACA,oCAGN,GAAA,gBAAAf,EAAA,cAACgB,GACC,EAAA,IAAG,KACH,MAAK,KACL,SAAQ,QACR,OAAOb,EAAMU,WAAWW,SAAST,SAAS,QAAQ,SAClD,aAAa;AAAA,EAAEE,MAAMQ;AAAAA,EAAKN,KAAK;AAAA,EAAiB,CAAA,CAEpD,CACF,GAED,gBAAAnB,EAAA,cAAAY,GAAA,EACC,OACED,EAAeR,CAAK,IAChB,0DACCA,EAAMM,SAEL,yBADA,8BAIR,gBAAAT,EAAA,cAACgB,GACC,EAAA,IAAG,KACH,MAAK,KACL,SAAQ,QACR,OAAOb,EAAMM,SAAS,UAAU,OAChC,aACEN,EAAMM,SACF;AAAA,EAAEQ,MAAMS;AAAAA,EAAcP,KAAK;AAAA,IAC3B;AAAA,EAAEF,MAAMU;AAAAA,EAAcR,KAAK;AAAA,EAChC,CAAA,CAEL,CACF,CACF,CACF;"}
1
+ {"version":3,"file":"GuideRow.mjs","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/GuideRow.tsx"],"sourcesContent":["import { Button } from \"@telegraph/button\";\nimport { Box, Stack } from \"@telegraph/layout\";\nimport { Tag } from \"@telegraph/tag\";\nimport { Tooltip } from \"@telegraph/tooltip\";\nimport { Text } from \"@telegraph/typography\";\nimport {\n CheckCircle2,\n CircleDashed,\n Code2,\n Eye,\n LocateFixed,\n UserCircle2,\n} from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { GuideHoverCard } from \"./GuideHoverCard\";\nimport {\n AnnotatedGuide,\n UnknownGuide,\n isUnknownGuide,\n} from \"./useInspectGuideClientStore\";\n\nconst Row = ({ children }: React.PropsWithChildren) => (\n <Stack h=\"7\" px=\"2\" borderTop=\"px\" justify=\"space-between\" align=\"center\">\n {children}\n </Stack>\n);\n\ntype Props = {\n guide: UnknownGuide | AnnotatedGuide;\n orderIndex: number;\n};\n\nexport const GuideRow = ({ guide, orderIndex }: Props) => {\n return (\n <Row>\n <GuideHoverCard guide={guide}>\n <Stack h=\"6\" justify=\"flex-start\" align=\"center\" gap=\"2\">\n <Tag\n size=\"0\"\n variant=\"soft\"\n color={guide.bypass_global_group_limit ? \"blue\" : \"default\"}\n >\n {orderIndex + 1}\n </Tag>\n <Text as=\"code\" size=\"1\">\n {guide.key}\n </Text>\n </Stack>\n </GuideHoverCard>\n\n <Stack justify=\"flex-end\">\n {!isUnknownGuide(guide) && (\n <>\n <Stack gap=\"1\">\n <Tooltip\n label={\n guide.annotation.selectable.status === \"returned\"\n ? \"This guide was queried and can display\"\n : guide.annotation.selectable.status === \"queried\"\n ? \"This guide was queried but cannot display\"\n : guide.annotation.selectable.status === \"throttled\"\n ? \"This guide was queried and can display but is throttled currently\"\n : \"No component is present in the current location to display this guide\"\n }\n >\n <Button\n px=\"1\"\n size=\"1\"\n variant=\"soft\"\n color={\n guide.annotation.selectable.status === \"returned\"\n ? \"green\"\n : guide.annotation.selectable.status === \"queried\"\n ? \"gray\"\n : guide.annotation.selectable.status === \"throttled\"\n ? \"yellow\"\n : \"red\"\n }\n leadingIcon={{ icon: Code2, alt: \"Render\" }}\n />\n </Tooltip>\n <Tooltip\n label={\n guide.annotation.activatable.status\n ? \"This guide can be activated at the current location\"\n : \"This guide cannot be activated at the current location\"\n }\n >\n <Button\n px=\"1\"\n size=\"1\"\n variant=\"soft\"\n color={guide.annotation.activatable.status ? \"green\" : \"red\"}\n leadingIcon={{ icon: LocateFixed, alt: \"Target\" }}\n />\n </Tooltip>\n </Stack>\n <Stack px=\"2\" align=\"center\">\n <Box h=\"3\" borderLeft=\"px\" borderColor=\"gray-6\" />\n </Stack>\n </>\n )}\n <Stack gap=\"1\">\n {!isUnknownGuide(guide) && (\n <>\n <Tooltip\n label={\n guide.annotation.targetable.status\n ? \"This user is being targeted\"\n : guide.annotation.targetable.message\n }\n >\n <Button\n px=\"1\"\n size=\"1\"\n variant=\"soft\"\n color={guide.annotation.targetable.status ? \"green\" : \"red\"}\n leadingIcon={{ icon: UserCircle2, alt: \"Target\" }}\n />\n </Tooltip>\n <Tooltip\n label={\n guide.annotation.archived.status\n ? \"User has already dismissed this guide\"\n : \"User has not dismissed this guide\"\n }\n >\n <Button\n px=\"1\"\n size=\"1\"\n variant=\"soft\"\n color={guide.annotation.archived.status ? \"red\" : \"green\"}\n leadingIcon={{ icon: Eye, alt: \"Not archived\" }}\n />\n </Tooltip>\n </>\n )}\n <Tooltip\n label={\n isUnknownGuide(guide)\n ? \"This guide has never been committed and published yet\"\n : !guide.active\n ? \"This guide is not active\"\n : \"This guide is active\"\n }\n >\n <Button\n px=\"1\"\n size=\"1\"\n variant=\"soft\"\n color={guide.active ? \"green\" : \"red\"}\n leadingIcon={\n guide.active\n ? { icon: CheckCircle2, alt: \"Active\" }\n : { icon: CircleDashed, alt: \"Inactive\" }\n }\n />\n </Tooltip>\n </Stack>\n </Stack>\n </Row>\n );\n};\n"],"names":["Row","children","React","Stack","GuideRow","guide","orderIndex","GuideHoverCard","Tag","bypass_global_group_limit","Text","key","isUnknownGuide","Tooltip","annotation","selectable","status","Button","icon","Code2","alt","activatable","LocateFixed","Box","targetable","message","UserCircle2","archived","Eye","active","CheckCircle2","CircleDashed"],"mappings":"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"}
@@ -1,17 +1,17 @@
1
1
  import e from "react";
2
- import { Select as t } from "@telegraph/select";
3
- import { TOOLBAR_Z_INDEX as n } from "../shared.mjs";
4
- const u = ({
2
+ import { Select as l } from "@telegraph/select";
3
+ import { TOOLBAR_Z_INDEX as a } from "../shared.mjs";
4
+ const p = ({
5
5
  value: i,
6
- onChange: r
7
- }) => /* @__PURE__ */ e.createElement(t.Root, { size: "1", value: i, onValueChange: (l) => {
8
- l && r(l);
6
+ onChange: n
7
+ }) => /* @__PURE__ */ e.createElement(l.Root, { size: "1", value: i, onValueChange: (t) => {
8
+ t && n(t);
9
9
  }, contentProps: {
10
10
  style: {
11
- zIndex: n
11
+ zIndex: a
12
12
  }
13
- } }, /* @__PURE__ */ e.createElement(t.Option, { size: "1", value: "current-page" }, "Displayable on current page"), /* @__PURE__ */ e.createElement(t.Option, { size: "1", value: "all-eligible" }, "All eligible guides for user"), /* @__PURE__ */ e.createElement(t.Option, { size: "1", value: "all-guides" }, "All existing guides"));
13
+ } }, /* @__PURE__ */ e.createElement(l.Option, { size: "1", value: "only-displaying" }, "Displaying on current page"), /* @__PURE__ */ e.createElement(l.Option, { size: "1", value: "only-displayable" }, "Displayable on current page"), /* @__PURE__ */ e.createElement(l.Option, { size: "1", value: "all-eligible" }, "All eligible guides for user"), /* @__PURE__ */ e.createElement(l.Option, { size: "1", value: "all-guides" }, "All existing guides"));
14
14
  export {
15
- u as GuidesListDisplaySelect
15
+ p as GuidesListDisplaySelect
16
16
  };
17
17
  //# sourceMappingURL=GuidesListDisplaySelect.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"GuidesListDisplaySelect.mjs","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/GuidesListDisplaySelect.tsx"],"sourcesContent":["import { Select } from \"@telegraph/select\";\n\nimport { TOOLBAR_Z_INDEX } from \"../shared\";\n\nexport type DisplayOption = \"current-page\" | \"all-eligible\" | \"all-guides\";\n\ntype Props = {\n value: DisplayOption;\n onChange: (option: DisplayOption) => void;\n};\n\nexport const GuidesListDisplaySelect = ({ value, onChange }: Props) => {\n return (\n <Select.Root\n size=\"1\"\n value={value}\n onValueChange={(value) => {\n if (!value) return;\n onChange(value as DisplayOption);\n }}\n contentProps={{\n style: { zIndex: TOOLBAR_Z_INDEX },\n }}\n >\n <Select.Option size=\"1\" value=\"current-page\">\n Displayable on current page\n </Select.Option>\n <Select.Option size=\"1\" value=\"all-eligible\">\n All eligible guides for user\n </Select.Option>\n <Select.Option size=\"1\" value=\"all-guides\">\n All existing guides\n </Select.Option>\n </Select.Root>\n );\n};\n"],"names":["GuidesListDisplaySelect","value","onChange","React","Select","style","zIndex","TOOLBAR_Z_INDEX"],"mappings":";;;AAWO,MAAMA,IAA0BA,CAAC;AAAA,EAAEC,OAAAA;AAAAA,EAAOC,UAAAA;AAAgB,MAE7DC,gBAAAA,EAAA,cAACC,EAAO,MAAP,EACC,MAAK,KACL,OAAAH,GACA,eAAgBA,CAAAA,MAAU;AACxB,EAAKA,KACLC,EAASD,CAAsB;GAEjC,cAAc;AAAA,EACZI,OAAO;AAAA,IAAEC,QAAQC;AAAAA,EAAAA;AAAgB,EAGnC,GAAAJ,gBAAAA,EAAA,cAACC,EAAO,QAAP,EAAc,MAAK,KAAI,OAAM,eAAc,GAAA,6BAE5C,GACAD,gBAAAA,EAAA,cAACC,EAAO,QAAP,EAAc,MAAK,KAAI,OAAM,eAAA,GAAc,8BAE5C,GACCD,gBAAAA,EAAA,cAAAC,EAAO,QAAP,EAAc,MAAK,KAAI,OAAM,aAAA,GAAY,qBAE1C,CACF;"}
1
+ {"version":3,"file":"GuidesListDisplaySelect.mjs","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/GuidesListDisplaySelect.tsx"],"sourcesContent":["import { Select } from \"@telegraph/select\";\n\nimport { TOOLBAR_Z_INDEX } from \"../shared\";\n\nexport type DisplayOption =\n | \"only-displaying\"\n | \"only-displayable\"\n | \"all-eligible\"\n | \"all-guides\";\n\ntype Props = {\n value: DisplayOption;\n onChange: (option: DisplayOption) => void;\n};\n\nexport const GuidesListDisplaySelect = ({ value, onChange }: Props) => {\n return (\n <Select.Root\n size=\"1\"\n value={value}\n onValueChange={(value) => {\n if (!value) return;\n onChange(value as DisplayOption);\n }}\n contentProps={{\n style: { zIndex: TOOLBAR_Z_INDEX },\n }}\n >\n <Select.Option size=\"1\" value=\"only-displaying\">\n Displaying on current page\n </Select.Option>\n <Select.Option size=\"1\" value=\"only-displayable\">\n Displayable on current page\n </Select.Option>\n <Select.Option size=\"1\" value=\"all-eligible\">\n All eligible guides for user\n </Select.Option>\n <Select.Option size=\"1\" value=\"all-guides\">\n All existing guides\n </Select.Option>\n </Select.Root>\n );\n};\n"],"names":["GuidesListDisplaySelect","value","onChange","React","Select","style","zIndex","TOOLBAR_Z_INDEX"],"mappings":";;;AAeO,MAAMA,IAA0BA,CAAC;AAAA,EAAEC,OAAAA;AAAAA,EAAOC,UAAAA;AAAgB,MAE7DC,gBAAAA,EAAA,cAACC,EAAO,MAAP,EACC,MAAK,KACL,OAAAH,GACA,eAAgBA,CAAAA,MAAU;AACxB,EAAKA,KACLC,EAASD,CAAsB;GAEjC,cAAc;AAAA,EACZI,OAAO;AAAA,IAAEC,QAAQC;AAAAA,EAAAA;AAAgB,KAGlCJ,gBAAAA,EAAA,cAAAC,EAAO,QAAP,EAAc,MAAK,KAAI,OAAM,kBAAA,GAAiB,4BAE/C,mCACCA,EAAO,QAAP,EAAc,MAAK,KAAI,OAAM,sBAAkB,6BAEhD,GACAD,gBAAAA,EAAA,cAACC,EAAO,QAAP,EAAc,MAAK,KAAI,OAAM,kBAAc,8BAE5C,GACCD,gBAAAA,EAAA,cAAAC,EAAO,QAAP,EAAc,MAAK,KAAI,OAAM,gBAAY,qBAE1C,CACF;"}
@@ -1,46 +1,54 @@
1
- import { useGuideContext as d } from "@knocklabs/react-core";
2
- import { Button as u } from "@telegraph/button";
3
- import { Box as l, Stack as s } from "@telegraph/layout";
4
- import { Undo2 as f, Minimize2 as E } from "lucide-react";
1
+ import { useGuideContext as p } from "@knocklabs/react-core";
2
+ import { Button as d } from "@telegraph/button";
3
+ import { Box as a, Stack as m } from "@telegraph/layout";
4
+ import { Undo2 as f, Minimize2 as b } from "lucide-react";
5
5
  import e from "react";
6
- import { KnockButton as b } from "../KnockButton.mjs";
7
- import { TOOLBAR_Z_INDEX as g } from "../shared.mjs";
6
+ import { KnockButton as E } from "../KnockButton.mjs";
7
+ import { TOOLBAR_Z_INDEX as y } from "../shared.mjs";
8
8
  /* empty css */
9
+ import { GuideContextDetails as g } from "./GuideContextDetails.mjs";
9
10
  import { GuideRow as x } from "./GuideRow.mjs";
10
- import { GuidesListDisplaySelect as y } from "./GuidesListDisplaySelect.mjs";
11
- import { detectToolbarParam as C } from "./helpers.mjs";
12
- import { useInspectGuideClientStore as w } from "./useInspectGuideClientStore.mjs";
11
+ import { GuidesListDisplaySelect as C } from "./GuidesListDisplaySelect.mjs";
12
+ import { detectToolbarParam as w } from "./helpers.mjs";
13
+ import { useInspectGuideClientStore as D } from "./useInspectGuideClientStore.mjs";
13
14
  const k = ({
14
15
  guides: r,
15
16
  displayOption: i
16
- }) => r.map((t, o) => i === "current-page" && (!t.annotation.isEligible || !t.annotation.isQualified) || i === "all-eligible" && !t.annotation.isEligible ? null : /* @__PURE__ */ e.createElement(x, { key: t.key, guide: t, orderIndex: o })), V = () => {
17
+ }) => r.map((o, n) => {
18
+ const {
19
+ isEligible: l,
20
+ isQualified: u,
21
+ selectable: s
22
+ } = o.annotation, t = l && u, c = t && s.status === "returned";
23
+ return i === "only-displaying" && !c || i === "only-displayable" && !t || i === "all-eligible" && !l ? null : /* @__PURE__ */ e.createElement(x, { key: o.key, guide: o, orderIndex: n });
24
+ }), j = () => {
17
25
  const {
18
26
  client: r
19
- } = d(), [i, t] = e.useState("current-page"), [o, c] = e.useState(C()), [m, a] = e.useState(!0);
27
+ } = p(), [i, o] = e.useState("only-displayable"), [n, l] = e.useState(w()), [u, s] = e.useState(!0);
20
28
  e.useEffect(() => {
21
- if (o)
29
+ if (n)
22
30
  return r.setDebug(), () => {
23
31
  r.unsetDebug();
24
32
  };
25
- }, [o, r]);
26
- const n = w();
27
- return n ? /* @__PURE__ */ e.createElement(l, { position: "fixed", top: "4", right: "4", style: {
28
- zIndex: g
29
- } }, m ? /* @__PURE__ */ e.createElement(b, { onClick: () => a(!1) }) : /* @__PURE__ */ e.createElement(s, { direction: "column", backgroundColor: "surface-2", shadow: "2", rounded: "3", border: "px", overflow: "hidden", style: {
33
+ }, [n, r]);
34
+ const t = D();
35
+ return t ? /* @__PURE__ */ e.createElement(a, { position: "fixed", top: "4", right: "4", style: {
36
+ zIndex: y
37
+ } }, u ? /* @__PURE__ */ e.createElement(E, { onClick: () => s(!1) }) : /* @__PURE__ */ e.createElement(m, { direction: "column", backgroundColor: "surface-2", shadow: "2", rounded: "3", border: "px", overflow: "hidden", style: {
30
38
  width: "400px"
31
- } }, /* @__PURE__ */ e.createElement(s, { w: "full", p: "2", justify: "space-between", direction: "row", style: {
39
+ } }, /* @__PURE__ */ e.createElement(m, { w: "full", p: "2", justify: "space-between", direction: "row", style: {
32
40
  boxSizing: "border-box"
33
- } }, /* @__PURE__ */ e.createElement(l, { style: {
41
+ } }, /* @__PURE__ */ e.createElement(a, { style: {
34
42
  width: "220px"
35
- } }, /* @__PURE__ */ e.createElement(y, { value: i, onChange: (p) => t(p) })), /* @__PURE__ */ e.createElement(s, { gap: "2" }, /* @__PURE__ */ e.createElement(u, { onClick: () => c(!1), size: "1", variant: "soft", trailingIcon: {
43
+ } }, /* @__PURE__ */ e.createElement(C, { value: i, onChange: (c) => o(c) })), /* @__PURE__ */ e.createElement(m, { gap: "2" }, /* @__PURE__ */ e.createElement(d, { onClick: () => l(!1), size: "1", variant: "soft", trailingIcon: {
36
44
  icon: f,
37
45
  "aria-hidden": !0
38
- } }, "Exit"), /* @__PURE__ */ e.createElement(u, { onClick: () => a(!0), size: "1", variant: "soft", leadingIcon: {
39
- icon: E,
46
+ } }, "Exit"), /* @__PURE__ */ e.createElement(d, { onClick: () => s(!0), size: "1", variant: "soft", leadingIcon: {
47
+ icon: b,
40
48
  alt: "Collapse guide toolbar"
41
- } }))), /* @__PURE__ */ e.createElement(l, { w: "full" }, n.error && /* @__PURE__ */ e.createElement(l, null, n.error), /* @__PURE__ */ e.createElement(k, { guides: n.guides, displayOption: i })))) : null;
49
+ } }))), /* @__PURE__ */ e.createElement(a, { w: "full" }, t.error && /* @__PURE__ */ e.createElement(a, null, t.error), /* @__PURE__ */ e.createElement(g, null), /* @__PURE__ */ e.createElement(k, { guides: t.guides, displayOption: i })))) : null;
42
50
  };
43
51
  export {
44
- V as V2
52
+ j as V2
45
53
  };
46
54
  //# sourceMappingURL=V2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"V2.mjs","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/V2.tsx"],"sourcesContent":["import { useGuideContext } from \"@knocklabs/react-core\";\nimport { Button } from \"@telegraph/button\";\nimport { Box, Stack } from \"@telegraph/layout\";\nimport { Minimize2, Undo2 } from \"lucide-react\";\nimport React from \"react\";\n\nimport { KnockButton } from \"../KnockButton\";\nimport { TOOLBAR_Z_INDEX } from \"../shared\";\nimport \"../styles.css\";\n\nimport { GuideRow } from \"./GuideRow\";\nimport {\n DisplayOption,\n GuidesListDisplaySelect,\n} from \"./GuidesListDisplaySelect\";\nimport { detectToolbarParam } from \"./helpers\";\nimport {\n InspectionResult,\n useInspectGuideClientStore,\n} from \"./useInspectGuideClientStore\";\n\nconst GuidesList = ({\n guides,\n displayOption,\n}: {\n guides: InspectionResult[\"guides\"];\n displayOption: DisplayOption;\n}) => {\n return guides.map((guide, idx) => {\n if (\n displayOption === \"current-page\" &&\n (!guide.annotation.isEligible || !guide.annotation.isQualified)\n ) {\n return null;\n }\n if (displayOption === \"all-eligible\" && !guide.annotation.isEligible) {\n return null;\n }\n\n return <GuideRow key={guide.key} guide={guide} orderIndex={idx} />;\n });\n};\n\nexport const V2 = () => {\n const { client } = useGuideContext();\n\n const [guidesListDisplayOption, setGuidesListDisplayOption] =\n React.useState<DisplayOption>(\"current-page\");\n\n const [isVisible, setIsVisible] = React.useState(detectToolbarParam());\n const [isCollapsed, setIsCollapsed] = React.useState(true);\n\n React.useEffect(() => {\n if (!isVisible) {\n return;\n }\n\n client.setDebug();\n\n return () => {\n client.unsetDebug();\n };\n }, [isVisible, client]);\n\n const result = useInspectGuideClientStore();\n if (!result) {\n return null;\n }\n\n return (\n <Box position=\"fixed\" top=\"4\" right=\"4\" style={{ zIndex: TOOLBAR_Z_INDEX }}>\n {isCollapsed ? (\n <KnockButton onClick={() => setIsCollapsed(false)} />\n ) : (\n <Stack\n direction=\"column\"\n backgroundColor=\"surface-2\"\n shadow=\"2\"\n rounded=\"3\"\n border=\"px\"\n overflow=\"hidden\"\n style={{ width: \"400px\" }}\n >\n <Stack\n w=\"full\"\n p=\"2\"\n justify=\"space-between\"\n direction=\"row\"\n style={{ boxSizing: \"border-box\" }}\n >\n <Box style={{ width: \"220px\" }}>\n <GuidesListDisplaySelect\n value={guidesListDisplayOption}\n onChange={(opt) => setGuidesListDisplayOption(opt)}\n />\n </Box>\n\n <Stack gap=\"2\">\n <Button\n onClick={() => setIsVisible(false)}\n size=\"1\"\n variant=\"soft\"\n trailingIcon={{ icon: Undo2, \"aria-hidden\": true }}\n >\n Exit\n </Button>\n <Button\n onClick={() => setIsCollapsed(true)}\n size=\"1\"\n variant=\"soft\"\n leadingIcon={{ icon: Minimize2, alt: \"Collapse guide toolbar\" }}\n />\n </Stack>\n </Stack>\n\n <Box w=\"full\">\n {result.error && <Box>{result.error}</Box>}\n <GuidesList\n guides={result.guides}\n displayOption={guidesListDisplayOption}\n />\n </Box>\n </Stack>\n )}\n </Box>\n );\n};\n"],"names":["GuidesList","guides","displayOption","map","guide","idx","annotation","isEligible","isQualified","GuideRow","key","V2","client","useGuideContext","guidesListDisplayOption","setGuidesListDisplayOption","React","useState","isVisible","setIsVisible","detectToolbarParam","isCollapsed","setIsCollapsed","useEffect","setDebug","unsetDebug","result","useInspectGuideClientStore","Box","zIndex","TOOLBAR_Z_INDEX","KnockButton","Stack","width","boxSizing","GuidesListDisplaySelect","opt","Button","icon","Undo2","Minimize2","alt","error"],"mappings":";;;;;;;;;;;;AAqBA,MAAMA,IAAaA,CAAC;AAAA,EAClBC,QAAAA;AAAAA,EACAC,eAAAA;AAIF,MACSD,EAAOE,IAAI,CAACC,GAAOC,MAEtBH,MAAkB,mBACjB,CAACE,EAAME,WAAWC,cAAc,CAACH,EAAME,WAAWE,gBAIjDN,MAAkB,kBAAkB,CAACE,EAAME,WAAWC,aACjD,uCAGDE,GAAS,EAAA,KAAKL,EAAMM,KAAK,OAAAN,GAAc,YAAYC,GAAO,CACnE,GAGUM,IAAKA,MAAM;AAChB,QAAA;AAAA,IAAEC,QAAAA;AAAAA,MAAWC,EAAgB,GAE7B,CAACC,GAAyBC,CAA0B,IACxDC,EAAMC,SAAwB,cAAc,GAExC,CAACC,GAAWC,CAAY,IAAIH,EAAMC,SAASG,GAAoB,GAC/D,CAACC,GAAaC,CAAc,IAAIN,EAAMC,SAAS,EAAI;AAEzDD,EAAAA,EAAMO,UAAU,MAAM;AACpB,QAAKL;AAILN,aAAAA,EAAOY,SAAS,GAET,MAAM;AACXZ,QAAAA,EAAOa,WAAW;AAAA,MACpB;AAAA,EAAA,GACC,CAACP,GAAWN,CAAM,CAAC;AAEtB,QAAMc,IAASC,EAA2B;AAC1C,SAAKD,IAKHV,gBAAAA,EAAA,cAACY,KAAI,UAAS,SAAQ,KAAI,KAAI,OAAM,KAAI,OAAO;AAAA,IAAEC,QAAQC;AAAAA,EAAgB,EAAA,GACtET,IACCL,gBAAAA,EAAA,cAACe,GAAY,EAAA,SAAS,MAAMT,EAAe,EAAK,EAAE,CAAA,IAEjDN,gBAAAA,EAAA,cAAAgB,GAAA,EACC,WAAU,UACV,iBAAgB,aAChB,QAAO,KACP,SAAQ,KACR,QAAO,MACP,UAAS,UACT,OAAO;AAAA,IAAEC,OAAO;AAAA,EAAQ,EAAA,GAEvBjB,gBAAAA,EAAA,cAAAgB,GAAA,EACC,GAAE,QACF,GAAE,KACF,SAAQ,iBACR,WAAU,OACV,OAAO;AAAA,IAAEE,WAAW;AAAA,EAAa,EAAA,GAEhClB,gBAAAA,EAAA,cAAAY,GAAA,EAAI,OAAO;AAAA,IAAEK,OAAO;AAAA,EAAA,EAAQ,GAC1BjB,gBAAAA,EAAA,cAAAmB,GAAA,EACC,OAAOrB,GACP,UAAWsB,CAAAA,MAAQrB,EAA2BqB,CAAG,EAAE,CAAA,CAEvD,GAEApB,gBAAAA,EAAA,cAACgB,GAAM,EAAA,KAAI,IACT,GAAAhB,gBAAAA,EAAA,cAACqB,GACC,EAAA,SAAS,MAAMlB,EAAa,EAAK,GACjC,MAAK,KACL,SAAQ,QACR,cAAc;AAAA,IAAEmB,MAAMC;AAAAA,IAAO,eAAe;AAAA,EAAA,EAAO,GAAA,MAGrD,GACAvB,gBAAAA,EAAA,cAACqB,KACC,SAAS,MAAMf,EAAe,EAAI,GAClC,MAAK,KACL,SAAQ,QACR,aAAa;AAAA,IAAEgB,MAAME;AAAAA,IAAWC,KAAK;AAAA,EAAyB,EAAA,CAAE,CAEpE,CACF,GAEAzB,gBAAAA,EAAA,cAACY,KAAI,GAAE,OAAA,GACJF,EAAOgB,SAAU1B,gBAAAA,EAAA,cAAAY,GAAA,MAAKF,EAAOgB,KAAM,GACnC1B,gBAAAA,EAAA,cAAAhB,GAAA,EACC,QAAQ0B,EAAOzB,QACf,eAAea,EAAwB,CAAA,CAE3C,CACF,CAEJ,IA1DO;AA4DX;"}
1
+ {"version":3,"file":"V2.mjs","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/V2.tsx"],"sourcesContent":["import { useGuideContext } from \"@knocklabs/react-core\";\nimport { Button } from \"@telegraph/button\";\nimport { Box, Stack } from \"@telegraph/layout\";\nimport { Minimize2, Undo2 } from \"lucide-react\";\nimport React from \"react\";\n\nimport { KnockButton } from \"../KnockButton\";\nimport { TOOLBAR_Z_INDEX } from \"../shared\";\nimport \"../styles.css\";\n\nimport { GuideContextDetails } from \"./GuideContextDetails\";\nimport { GuideRow } from \"./GuideRow\";\nimport {\n DisplayOption,\n GuidesListDisplaySelect,\n} from \"./GuidesListDisplaySelect\";\nimport { detectToolbarParam } from \"./helpers\";\nimport {\n InspectionResult,\n useInspectGuideClientStore,\n} from \"./useInspectGuideClientStore\";\n\nconst GuidesList = ({\n guides,\n displayOption,\n}: {\n guides: InspectionResult[\"guides\"];\n displayOption: DisplayOption;\n}) => {\n return guides.map((guide, idx) => {\n const { isEligible, isQualified, selectable } = guide.annotation;\n const isDisplayable = isEligible && isQualified;\n const isDisplaying = isDisplayable && selectable.status === \"returned\";\n\n if (displayOption === \"only-displaying\" && !isDisplaying) {\n return null;\n }\n if (displayOption === \"only-displayable\" && !isDisplayable) {\n return null;\n }\n if (displayOption === \"all-eligible\" && !isEligible) {\n return null;\n }\n\n return <GuideRow key={guide.key} guide={guide} orderIndex={idx} />;\n });\n};\n\nexport const V2 = () => {\n const { client } = useGuideContext();\n\n const [guidesListDisplayOption, setGuidesListDisplayOption] =\n React.useState<DisplayOption>(\"only-displayable\");\n\n const [isVisible, setIsVisible] = React.useState(detectToolbarParam());\n const [isCollapsed, setIsCollapsed] = React.useState(true);\n\n React.useEffect(() => {\n if (!isVisible) {\n return;\n }\n\n client.setDebug();\n\n return () => {\n client.unsetDebug();\n };\n }, [isVisible, client]);\n\n const result = useInspectGuideClientStore();\n if (!result) {\n return null;\n }\n\n return (\n <Box position=\"fixed\" top=\"4\" right=\"4\" style={{ zIndex: TOOLBAR_Z_INDEX }}>\n {isCollapsed ? (\n <KnockButton onClick={() => setIsCollapsed(false)} />\n ) : (\n <Stack\n direction=\"column\"\n backgroundColor=\"surface-2\"\n shadow=\"2\"\n rounded=\"3\"\n border=\"px\"\n overflow=\"hidden\"\n style={{ width: \"400px\" }}\n >\n <Stack\n w=\"full\"\n p=\"2\"\n justify=\"space-between\"\n direction=\"row\"\n style={{ boxSizing: \"border-box\" }}\n >\n <Box style={{ width: \"220px\" }}>\n <GuidesListDisplaySelect\n value={guidesListDisplayOption}\n onChange={(opt) => setGuidesListDisplayOption(opt)}\n />\n </Box>\n\n <Stack gap=\"2\">\n <Button\n onClick={() => setIsVisible(false)}\n size=\"1\"\n variant=\"soft\"\n trailingIcon={{ icon: Undo2, \"aria-hidden\": true }}\n >\n Exit\n </Button>\n <Button\n onClick={() => setIsCollapsed(true)}\n size=\"1\"\n variant=\"soft\"\n leadingIcon={{ icon: Minimize2, alt: \"Collapse guide toolbar\" }}\n />\n </Stack>\n </Stack>\n\n <Box w=\"full\">\n {result.error && <Box>{result.error}</Box>}\n <GuideContextDetails />\n <GuidesList\n guides={result.guides}\n displayOption={guidesListDisplayOption}\n />\n </Box>\n </Stack>\n )}\n </Box>\n );\n};\n"],"names":["GuidesList","guides","displayOption","map","guide","idx","isEligible","isQualified","selectable","annotation","isDisplayable","isDisplaying","status","GuideRow","key","V2","client","useGuideContext","guidesListDisplayOption","setGuidesListDisplayOption","React","useState","isVisible","setIsVisible","detectToolbarParam","isCollapsed","setIsCollapsed","useEffect","setDebug","unsetDebug","result","useInspectGuideClientStore","Box","zIndex","TOOLBAR_Z_INDEX","KnockButton","Stack","width","boxSizing","GuidesListDisplaySelect","opt","Button","icon","Undo2","Minimize2","alt","error","GuideContextDetails"],"mappings":";;;;;;;;;;;;;AAsBA,MAAMA,IAAaA,CAAC;AAAA,EAClBC,QAAAA;AAAAA,EACAC,eAAAA;AAIF,MACSD,EAAOE,IAAI,CAACC,GAAOC,MAAQ;AAC1B,QAAA;AAAA,IAAEC,YAAAA;AAAAA,IAAYC,aAAAA;AAAAA,IAAaC,YAAAA;AAAAA,MAAeJ,EAAMK,YAChDC,IAAgBJ,KAAcC,GAC9BI,IAAeD,KAAiBF,EAAWI,WAAW;AAQxDV,SANAA,MAAkB,qBAAqB,CAACS,KAGxCT,MAAkB,sBAAsB,CAACQ,KAGzCR,MAAkB,kBAAkB,CAACI,IAChC,uCAGDO,GAAS,EAAA,KAAKT,EAAMU,KAAK,OAAAV,GAAc,YAAYC,GAAO;AAAA,CACnE,GAGUU,IAAKA,MAAM;AAChB,QAAA;AAAA,IAAEC,QAAAA;AAAAA,MAAWC,EAAgB,GAE7B,CAACC,GAAyBC,CAA0B,IACxDC,EAAMC,SAAwB,kBAAkB,GAE5C,CAACC,GAAWC,CAAY,IAAIH,EAAMC,SAASG,GAAoB,GAC/D,CAACC,GAAaC,CAAc,IAAIN,EAAMC,SAAS,EAAI;AAEzDD,EAAAA,EAAMO,UAAU,MAAM;AACpB,QAAKL;AAILN,aAAAA,EAAOY,SAAS,GAET,MAAM;AACXZ,QAAAA,EAAOa,WAAW;AAAA,MACpB;AAAA,EAAA,GACC,CAACP,GAAWN,CAAM,CAAC;AAEtB,QAAMc,IAASC,EAA2B;AAC1C,SAAKD,IAKHV,gBAAAA,EAAA,cAACY,KAAI,UAAS,SAAQ,KAAI,KAAI,OAAM,KAAI,OAAO;AAAA,IAAEC,QAAQC;AAAAA,EAAgB,EAAA,GACtET,IACCL,gBAAAA,EAAA,cAACe,GAAY,EAAA,SAAS,MAAMT,EAAe,EAAK,EAAE,CAAA,IAEjDN,gBAAAA,EAAA,cAAAgB,GAAA,EACC,WAAU,UACV,iBAAgB,aAChB,QAAO,KACP,SAAQ,KACR,QAAO,MACP,UAAS,UACT,OAAO;AAAA,IAAEC,OAAO;AAAA,EAAQ,EAAA,GAEvBjB,gBAAAA,EAAA,cAAAgB,GAAA,EACC,GAAE,QACF,GAAE,KACF,SAAQ,iBACR,WAAU,OACV,OAAO;AAAA,IAAEE,WAAW;AAAA,EAAa,EAAA,GAEhClB,gBAAAA,EAAA,cAAAY,GAAA,EAAI,OAAO;AAAA,IAAEK,OAAO;AAAA,EAAA,EAAQ,GAC1BjB,gBAAAA,EAAA,cAAAmB,GAAA,EACC,OAAOrB,GACP,UAAWsB,CAAAA,MAAQrB,EAA2BqB,CAAG,EAAE,CAAA,CAEvD,GAEApB,gBAAAA,EAAA,cAACgB,GAAM,EAAA,KAAI,IACT,GAAAhB,gBAAAA,EAAA,cAACqB,GACC,EAAA,SAAS,MAAMlB,EAAa,EAAK,GACjC,MAAK,KACL,SAAQ,QACR,cAAc;AAAA,IAAEmB,MAAMC;AAAAA,IAAO,eAAe;AAAA,EAAA,EAAO,GAAA,MAGrD,GACAvB,gBAAAA,EAAA,cAACqB,KACC,SAAS,MAAMf,EAAe,EAAI,GAClC,MAAK,KACL,SAAQ,QACR,aAAa;AAAA,IAAEgB,MAAME;AAAAA,IAAWC,KAAK;AAAA,EAAA,EAA2B,CAAA,CAEpE,CACF,GAEAzB,gBAAAA,EAAA,cAACY,GAAI,EAAA,GAAE,OACJF,GAAAA,EAAOgB,SAAS1B,gBAAAA,EAAA,cAACY,GAAKF,MAAAA,EAAOgB,KAAM,GACnC1B,gBAAAA,EAAA,cAAA2B,GAAA,IAAmB,GACpB3B,gBAAAA,EAAA,cAACpB,GACC,EAAA,QAAQ8B,EAAO7B,QACf,eAAeiB,EAAAA,CAAwB,CAE3C,CACF,CAEJ,IA3DO;AA6DX;"}
@@ -1,6 +1,58 @@
1
- import { checkActivatable as i } from "@knocklabs/client";
2
- import { useGuideContext as c, useStore as d } from "@knocklabs/react-core";
3
- const l = (e) => {
1
+ import { checkStateIfThrottled as p, checkActivatable as y } from "@knocklabs/client";
2
+ import { useGuideContext as _, useStore as b } from "@knocklabs/react-core";
3
+ const g = (e) => e.reduce((r, s) => ({
4
+ ...r,
5
+ [s.key]: s
6
+ }), {}), v = (e, r, s, n) => {
7
+ var u, t, o, a, l, c, d, f;
8
+ const i = !!((a = (o = (t = (u = n.key) == null ? void 0 : u.one) == null ? void 0 : t.metadata) == null ? void 0 : o.opts) != null && a.includeThrottled) || !!((f = (d = (c = (l = n.key) == null ? void 0 : l.all) == null ? void 0 : c.metadata) == null ? void 0 : d.opts) != null && f.includeThrottled);
9
+ return e.bypass_global_group_limit ? "returned" : e.key === s.resolved ? r.throttled && !i ? "throttled" : "returned" : "queried";
10
+ }, k = (e, r, s, n) => {
11
+ var t, o, a, l;
12
+ const i = !!((l = (a = (o = (t = n.type) == null ? void 0 : t.one) == null ? void 0 : o.metadata) == null ? void 0 : a.opts) != null && l.includeThrottled), u = n.type.one;
13
+ if (u.size === 0)
14
+ return "queried";
15
+ if (e.bypass_global_group_limit) {
16
+ const d = [...u.values()][0];
17
+ return e.key !== d.key ? "queried" : "returned";
18
+ }
19
+ return e.key === s.resolved ? r.throttled && !i ? "throttled" : "returned" : "queried";
20
+ }, h = (e, r, s, n) => {
21
+ var l, c, d, f;
22
+ const i = n.type.all;
23
+ if (i.size === 0)
24
+ return "queried";
25
+ const u = [...i.values()], t = u[0], o = g(u);
26
+ return (f = (d = (c = (l = n.type) == null ? void 0 : l.all) == null ? void 0 : c.metadata) == null ? void 0 : d.opts) != null && f.includeThrottled ? o[e.key] ? "returned" : "queried" : (t.bypass_global_group_limit || t.key === s.resolved) && o[e.key] ? r.throttled ? e.bypass_global_group_limit ? "returned" : "throttled" : "returned" : "queried";
27
+ }, m = (e, r, s, n) => {
28
+ var i, u;
29
+ if (n.key)
30
+ return v(e, r, s, n);
31
+ if ((i = n.type) != null && i.all)
32
+ return h(e, r, s, n);
33
+ if ((u = n.type) != null && u.one)
34
+ return k(e, r, s, n);
35
+ }, G = (e, r, s) => {
36
+ if (!s || s.status === "open")
37
+ return {
38
+ status: void 0
39
+ };
40
+ const n = {
41
+ key: (s.results.key || {})[e.key],
42
+ type: (s.results.type || {})[e.type]
43
+ };
44
+ if (!!!(n.key || n.type))
45
+ return {
46
+ status: void 0
47
+ };
48
+ const u = m(e, r, s, n);
49
+ return u ? {
50
+ status: u,
51
+ query: n
52
+ } : {
53
+ status: void 0
54
+ };
55
+ }, S = (e) => {
4
56
  switch (e.reason) {
5
57
  case "not_in_target_audience":
6
58
  case "target_conditions_not_met":
@@ -26,17 +78,18 @@ const l = (e) => {
26
78
  default:
27
79
  return;
28
80
  }
29
- }, f = ({
81
+ }, T = ({
30
82
  active: e,
31
- targetable: s,
32
- archived: n
33
- }) => !(!e.status || !s.status || n.status), g = ({
34
- activatable: e
35
- }) => !!e.status, _ = (e, s) => {
83
+ targetable: r,
84
+ archived: s
85
+ }) => !(!e.status || !r.status || s.status), w = ({
86
+ activatable: e,
87
+ selectable: r
88
+ }) => !(!e.status || !r.status), B = (e, r, s) => {
36
89
  const {
37
90
  ineligibleGuides: n,
38
- location: u
39
- } = s, r = n[e.key], t = r ? l(r) : void 0, a = {
91
+ location: i
92
+ } = r, u = n[e.key], t = u ? S(u) : void 0, o = {
40
93
  // isEligible:
41
94
  active: (t == null ? void 0 : t.active) || {
42
95
  status: !0
@@ -49,53 +102,65 @@ const l = (e) => {
49
102
  },
50
103
  // isQualified:
51
104
  activatable: {
52
- status: i(e, u)
53
- }
54
- }, o = {
55
- ...a,
56
- isEligible: f(a),
57
- isQualified: g(a)
105
+ status: y(e, i)
106
+ },
107
+ selectable: G(e, r, s)
108
+ }, a = {
109
+ ...o,
110
+ isEligible: T(o),
111
+ isQualified: w(o)
58
112
  };
59
113
  return {
60
114
  ...e,
61
- annotation: o
115
+ annotation: a
62
116
  };
63
- }, v = (e) => ({
117
+ }, I = (e) => ({
64
118
  __typename: "UnknownGuide",
65
119
  key: e,
66
120
  active: !1,
67
121
  bypass_global_group_limit: !1,
68
122
  annotation: {
69
123
  isEligible: !1,
70
- isQualified: !1
124
+ isQualified: !1,
125
+ selectable: {
126
+ status: void 0
127
+ }
71
128
  }
72
- }), b = () => {
73
- var r;
129
+ }), U = () => {
130
+ var u;
74
131
  const {
75
132
  client: e
76
- } = c(), s = d(e.store, (t) => ({
77
- location: t.location,
78
- guides: t.guides,
79
- guideGroups: t.guideGroups,
80
- ineligibleGuides: t.ineligibleGuides,
81
- debug: t.debug
82
- }));
83
- if (!((r = s.debug) != null && r.debugging))
133
+ } = _(), r = b(e.store, (t) => {
134
+ const o = p(t);
135
+ return {
136
+ location: t.location,
137
+ guides: t.guides,
138
+ guideGroups: t.guideGroups,
139
+ ineligibleGuides: t.ineligibleGuides,
140
+ debug: t.debug,
141
+ counter: t.counter,
142
+ throttled: o
143
+ };
144
+ });
145
+ if (!((u = r.debug) != null && u.debugging))
84
146
  return;
85
- const n = s.guideGroups[0];
86
- return n ? {
87
- guides: n.display_sequence.map((t) => {
88
- const a = s.guides[t];
89
- return a ? _(a, s) : v(t);
147
+ const s = r.guideGroups[0];
148
+ if (!s)
149
+ return {
150
+ error: "no_guide_group",
151
+ guides: []
152
+ };
153
+ const n = e.getStage();
154
+ return {
155
+ guides: s.display_sequence.map((t) => {
156
+ const o = r.guides[t];
157
+ return o ? B(o, r, n) : I(t);
90
158
  })
91
- } : {
92
- error: "no_guide_group",
93
- guides: []
94
159
  };
95
- }, m = (e) => typeof e == "object" && e !== null && "__typename" in e && e.__typename === "UnknownGuide";
160
+ }, E = (e) => typeof e == "object" && e !== null && "__typename" in e && e.__typename === "UnknownGuide";
96
161
  export {
97
- m as isUnknownGuide,
98
- g as resolveIsQualified,
99
- b as useInspectGuideClientStore
162
+ E as isUnknownGuide,
163
+ w as resolveIsQualified,
164
+ U as useInspectGuideClientStore
100
165
  };
101
166
  //# sourceMappingURL=useInspectGuideClientStore.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useInspectGuideClientStore.mjs","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/useInspectGuideClientStore.ts"],"sourcesContent":["import {\n KnockGuide,\n KnockGuideClientStoreState,\n KnockGuideIneligibilityMarker,\n checkActivatable,\n} from \"@knocklabs/client\";\nimport { useGuideContext, useStore } from \"@knocklabs/react-core\";\n\n/**\n * This is the main module that will house core logic for the toolbar. It hooks\n * into the guide client state store, extracts relevant data for debugging, and\n * transforms it into easily consumable data for the toolbar - namely\n * \"annotating\" guides for its various statuses to display.\n */\n\n// Active: `true` status = good\ntype ActiveStatus = {\n status: boolean;\n};\n\n// Targetable: `true` status = good\ntype TargetableStatusTrue = {\n status: true;\n};\ntype TargetableStatusFalse = {\n status: false;\n reason: string;\n message: string;\n};\ntype TargetableStatus = TargetableStatusTrue | TargetableStatusFalse;\n\ntype ActivatableStatus = {\n status: boolean;\n};\n\n// Archived: `false` status = good\ntype ArchivedStatus = {\n status: boolean;\n};\n\ntype AnnotatedStatuses = {\n // Individual eligibility statuses:\n active: ActiveStatus;\n targetable: TargetableStatus;\n archived: ArchivedStatus;\n // Individual qualified statuses:\n activatable: ActivatableStatus;\n};\n\ntype GuideAnnotation = AnnotatedStatuses & {\n // Resolved eligibility based on active, targetable and archived statuses,\n // which are backend driven evaluation results that are exposed for debugging.\n isEligible: boolean;\n\n // Resolved display qualification based on an activatable status, which\n // informs \"when\" and \"where\" an eligible guide can be displayed to user.\n isQualified: boolean;\n};\n\nexport type AnnotatedGuide = KnockGuide & {\n annotation: GuideAnnotation;\n\n // Legacy fields, typed only to make tsc happy when we prune these out.\n activation_location_rules?: KnockGuide[\"activation_url_patterns\"];\n priority?: number;\n};\n\n// Exists and ordered in control but absent in switchboard (therefore not\n// included in the api response), which implies a newly created guide that has\n// never been published to switchboard.\nexport type UnknownGuide = {\n __typename: \"UnknownGuide\";\n key: KnockGuide[\"key\"];\n active: false;\n bypass_global_group_limit: false;\n annotation: {\n isEligible: false;\n isQualified: false;\n };\n};\n\nexport type InspectionResult = {\n guides: (AnnotatedGuide | UnknownGuide)[];\n error?: \"no_guide_group\";\n};\n\nconst toIneligibilityStatus = (\n marker: KnockGuideIneligibilityMarker,\n): Partial<AnnotatedStatuses> | undefined => {\n switch (marker.reason) {\n case \"not_in_target_audience\":\n case \"target_conditions_not_met\":\n return {\n targetable: {\n status: false,\n reason: marker.reason,\n message: marker.message,\n },\n };\n\n case \"marked_as_archived\":\n return {\n archived: {\n status: true,\n },\n };\n\n case \"guide_not_active\":\n return {\n active: {\n status: false,\n },\n };\n\n default:\n return undefined;\n }\n};\n\nconst resolveIsEligible = ({\n active,\n targetable,\n archived,\n}: AnnotatedStatuses) => {\n if (!active.status) return false;\n if (!targetable.status) return false;\n if (archived.status) return false;\n return true;\n};\n\nexport const resolveIsQualified = ({ activatable }: AnnotatedStatuses) => {\n if (!activatable.status) return false;\n return true;\n};\n\ntype StoreStateSnapshot = Pick<\n KnockGuideClientStoreState,\n \"location\" | \"guides\" | \"guideGroups\" | \"ineligibleGuides\" | \"debug\"\n>;\n\nconst annotateGuide = (\n guide: KnockGuide,\n snapshot: StoreStateSnapshot,\n): AnnotatedGuide => {\n const { ineligibleGuides, location } = snapshot;\n const marker = ineligibleGuides[guide.key];\n const ineligiblity = marker ? toIneligibilityStatus(marker) : undefined;\n\n const statuses: AnnotatedStatuses = {\n // isEligible:\n active: ineligiblity?.active || { status: true },\n targetable: ineligiblity?.targetable || { status: true },\n archived: ineligiblity?.archived || { status: false },\n // isQualified:\n activatable: { status: checkActivatable(guide, location) },\n };\n\n const annotation: GuideAnnotation = {\n ...statuses,\n isEligible: resolveIsEligible(statuses),\n isQualified: resolveIsQualified(statuses),\n };\n\n return {\n ...guide,\n annotation,\n };\n};\n\nconst newUnknownGuide = (key: KnockGuide[\"key\"]) =>\n ({\n __typename: \"UnknownGuide\",\n key,\n active: false,\n bypass_global_group_limit: false,\n annotation: {\n isEligible: false,\n isQualified: false,\n },\n }) as UnknownGuide;\n\nexport const useInspectGuideClientStore = (): InspectionResult | undefined => {\n const { client } = useGuideContext();\n\n // Extract a snapshot of the client store state for debugging.\n const snapshot: StoreStateSnapshot = useStore(client.store, (state) => {\n return {\n location: state.location,\n guides: state.guides,\n guideGroups: state.guideGroups,\n ineligibleGuides: state.ineligibleGuides,\n debug: state.debug,\n };\n });\n\n // Not in debugging session, so noop.\n if (!snapshot.debug?.debugging) {\n return undefined;\n }\n\n // Only for completeness, as there should always be a default group so this\n // should never happen.\n const defaultGroup = snapshot.guideGroups[0];\n if (!defaultGroup) {\n return {\n error: \"no_guide_group\",\n guides: [],\n };\n }\n\n // Annotate guides for various eligibility, activation and query statuses\n // that are useful for debugging purposes.\n const orderedGuides = defaultGroup.display_sequence.map((guideKey) => {\n const guide = snapshot.guides[guideKey];\n if (!guide) {\n return newUnknownGuide(guideKey);\n }\n\n return annotateGuide(guide, snapshot);\n });\n\n return {\n guides: orderedGuides,\n };\n};\n\nexport const isUnknownGuide = (input: unknown): input is UnknownGuide =>\n typeof input === \"object\" &&\n input !== null &&\n \"__typename\" in input &&\n (input as UnknownGuide).__typename === \"UnknownGuide\";\n"],"names":["toIneligibilityStatus","marker","reason","targetable","status","message","archived","active","undefined","resolveIsEligible","resolveIsQualified","activatable","annotateGuide","guide","snapshot","ineligibleGuides","location","key","ineligiblity","statuses","checkActivatable","annotation","isEligible","isQualified","newUnknownGuide","__typename","bypass_global_group_limit","useInspectGuideClientStore","client","useGuideContext","useStore","store","state","guides","guideGroups","debug","debugging","defaultGroup","display_sequence","map","guideKey","error","isUnknownGuide","input"],"mappings":"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"}
1
+ {"version":3,"file":"useInspectGuideClientStore.mjs","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/useInspectGuideClientStore.ts"],"sourcesContent":["import {\n KnockGuide,\n KnockGuideClientGroupStage,\n KnockGuideClientStoreState,\n KnockGuideIneligibilityMarker,\n KnockGuideSelectionResult,\n checkActivatable,\n checkStateIfThrottled,\n} from \"@knocklabs/client\";\nimport { useGuideContext, useStore } from \"@knocklabs/react-core\";\n\nconst byKey = <T extends { key: string }>(items: T[]) => {\n return items.reduce((acc, item) => ({ ...acc, [item.key]: item }), {});\n};\n\n/**\n * This is the main module that will house core logic for the toolbar. It hooks\n * into the guide client state store, extracts relevant data for debugging, and\n * transforms it into easily consumable data for the toolbar - namely\n * \"annotating\" guides for its various statuses to display.\n */\n\n// Active: `true` status = good\ntype ActiveStatus = {\n status: boolean;\n};\n\n// Targetable: `true` status = good\ntype TargetableStatusTrue = {\n status: true;\n};\ntype TargetableStatusFalse = {\n status: false;\n reason: string;\n message: string;\n};\ntype TargetableStatus = TargetableStatusTrue | TargetableStatusFalse;\n\ntype ActivatableStatus = {\n status: boolean;\n};\n\n// Archived: `false` status = good\ntype ArchivedStatus = {\n status: boolean;\n};\n\n// Selectable:\n// - \"returned\": Queried and resolved to return the guide from useGuide(s).\n// - \"throttled\": Queried and resolved but being throttled, so not yet returned.\n// - \"queried\": Queried but not resolved, because there are other higher\n// priority guides that are ahead of this guide in the query result.\n// - undefined: Not reachable with any of the given queries and filters.\ntype SelectionResultByLimit = {\n one?: KnockGuideSelectionResult;\n all?: KnockGuideSelectionResult;\n};\ntype SelectionResultByQuery = {\n key?: SelectionResultByLimit;\n type?: SelectionResultByLimit;\n};\ntype SelectableStatusPresent = {\n status: \"returned\" | \"throttled\" | \"queried\";\n query: SelectionResultByQuery;\n};\ntype SelectableStatusAbsent = {\n status: undefined;\n};\ntype SelectableStatus = SelectableStatusPresent | SelectableStatusAbsent;\n\ntype AnnotatedStatuses = {\n // Individual eligibility statuses:\n active: ActiveStatus;\n targetable: TargetableStatus;\n archived: ArchivedStatus;\n // Individual qualified statuses:\n activatable: ActivatableStatus;\n selectable: SelectableStatus;\n};\n\ntype GuideAnnotation = AnnotatedStatuses & {\n // Resolved eligibility based on active, targetable and archived statuses,\n // which are backend driven evaluation results that are exposed for debugging.\n isEligible: boolean;\n\n // Resolved display qualification based on an activatable status, which\n // informs \"when\" and \"where\" an eligible guide can be displayed to user.\n isQualified: boolean;\n};\n\nexport type AnnotatedGuide = KnockGuide & {\n annotation: GuideAnnotation;\n\n // Legacy fields, typed only to make tsc happy when we prune these out.\n activation_location_rules?: KnockGuide[\"activation_url_patterns\"];\n priority?: number;\n};\n\n// Exists and ordered in control but absent in switchboard (therefore not\n// included in the api response), which implies a newly created guide that has\n// never been published to switchboard.\nexport type UnknownGuide = {\n __typename: \"UnknownGuide\";\n key: KnockGuide[\"key\"];\n active: false;\n bypass_global_group_limit: false;\n annotation: {\n isEligible: false;\n isQualified: false;\n selectable: {\n status: undefined;\n };\n };\n};\n\nexport type InspectionResult = {\n guides: (AnnotatedGuide | UnknownGuide)[];\n error?: \"no_guide_group\";\n};\n\ntype StoreStateSnapshot = Pick<\n KnockGuideClientStoreState,\n | \"location\"\n | \"guides\"\n | \"guideGroups\"\n | \"ineligibleGuides\"\n | \"debug\"\n | \"counter\"\n> & {\n throttled: boolean;\n};\n\nconst inferSelectByKeyReturnStatus = (\n guide: KnockGuide,\n snapshot: StoreStateSnapshot,\n stage: KnockGuideClientGroupStage,\n query: SelectionResultByQuery,\n): SelectableStatusPresent[\"status\"] => {\n const includeThrottled =\n !!query.key?.one?.metadata?.opts?.includeThrottled ||\n !!query.key?.all?.metadata?.opts?.includeThrottled;\n\n // If unthrottled, then it should always be returned.\n if (guide.bypass_global_group_limit) {\n return \"returned\";\n }\n\n // If resolved, expect this guide to be returned unless being throttled.\n if (guide.key === stage.resolved) {\n if (snapshot.throttled && !includeThrottled) {\n return \"throttled\";\n }\n return \"returned\";\n }\n\n // If queried but not resolved, it means this guide is being shadowed by\n // another guide with higher priority because throttled guides can be\n // displayed only one at a time.\n return \"queried\";\n};\n\nconst inferSelectOneByTypeReturnStatus = (\n guide: KnockGuide,\n snapshot: StoreStateSnapshot,\n stage: KnockGuideClientGroupStage,\n query: SelectionResultByQuery,\n): SelectableStatusPresent[\"status\"] => {\n const includeThrottled = !!query.type?.one?.metadata?.opts?.includeThrottled;\n\n const result = query.type!.one!;\n if (result.size === 0) {\n return \"queried\";\n }\n\n // There may be multiple unthrottled guides of the same type, being queried\n // by type to return a single guide, for example: useGuide({ type: \"card\" }).\n //\n // So it is possible for an unthrottled guide to be shadowed by another\n // unthrottled guide of the same type with higher priority, so we need to\n // look at the query result to determine its return status.\n if (guide.bypass_global_group_limit) {\n const guides = [...result.values()];\n const first = guides[0]!;\n\n if (guide.key !== first.key) {\n // Being shadowed by another guide with higher priority.\n return \"queried\";\n }\n return \"returned\";\n }\n\n // If resolved, expect this guide to be returned unless being throttled.\n if (guide.key === stage.resolved) {\n if (snapshot.throttled && !includeThrottled) {\n return \"throttled\";\n }\n return \"returned\";\n }\n\n // If queried but not resolved, it means this guide is being shadowed by\n // another guide with higher priority because throttled guides can be\n // displayed only one at a time.\n return \"queried\";\n};\n\nconst inferSelectAllByTypeReturnStatus = (\n guide: KnockGuide,\n snapshot: StoreStateSnapshot,\n stage: KnockGuideClientGroupStage,\n query: SelectionResultByQuery,\n): SelectableStatusPresent[\"status\"] => {\n const result = query.type!.all!;\n if (result.size === 0) {\n return \"queried\";\n }\n\n const guides = [...result.values()];\n const first = guides[0]!;\n\n // Might want to consider moving this up to do once.\n const guidesByKey: Record<KnockGuide[\"key\"], KnockGuide> = byKey(guides);\n\n // If includeThrottled given, then expect all selected guides to be returned.\n const includeThrottled = !!query.type?.all?.metadata?.opts?.includeThrottled;\n if (includeThrottled) {\n return guidesByKey[guide.key] ? \"returned\" : \"queried\";\n }\n\n // If the first selected guide is unthrottled or resolved, then we should\n // have at minimum one guide to return, and potentially more based on whether\n // we are throttling currently and which other guides are unthrottled.\n if (first.bypass_global_group_limit || first.key === stage.resolved) {\n if (!guidesByKey[guide.key]) {\n return \"queried\";\n }\n if (snapshot.throttled) {\n return guide.bypass_global_group_limit ? \"returned\" : \"throttled\";\n }\n return \"returned\";\n }\n\n return \"queried\";\n};\n\nconst inferSelectReturnStatus = (\n guide: KnockGuide,\n snapshot: StoreStateSnapshot,\n stage: KnockGuideClientGroupStage,\n query: SelectionResultByQuery,\n) => {\n // Querying by key can only return up to a max of one guide, regardless of\n // useGuide or useGuides, and should take precedence in status designation.\n if (query.key) {\n return inferSelectByKeyReturnStatus(guide, snapshot, stage, query);\n }\n\n if (query.type?.all) {\n return inferSelectAllByTypeReturnStatus(guide, snapshot, stage, query);\n }\n if (query.type?.one) {\n return inferSelectOneByTypeReturnStatus(guide, snapshot, stage, query);\n }\n\n // Should not happen but just for completeness.\n return undefined;\n};\n\nconst toSelectableStatus = (\n guide: KnockGuide,\n snapshot: StoreStateSnapshot,\n stage: KnockGuideClientGroupStage | undefined,\n): SelectableStatus => {\n if (!stage || stage.status === \"open\") {\n return { status: undefined };\n }\n\n const query = {\n key: (stage.results.key || {})[guide.key],\n type: (stage.results.type || {})[guide.type],\n };\n\n const queried = Boolean(query.key || query.type);\n if (!queried) {\n // No present query in the current location can select this guide.\n return { status: undefined };\n }\n\n const status = inferSelectReturnStatus(guide, snapshot, stage, query);\n if (!status) {\n return { status: undefined };\n }\n\n return { status, query };\n};\n\nconst toIneligibilityStatus = (\n marker: KnockGuideIneligibilityMarker,\n): Partial<AnnotatedStatuses> | undefined => {\n switch (marker.reason) {\n case \"not_in_target_audience\":\n case \"target_conditions_not_met\":\n return {\n targetable: {\n status: false,\n reason: marker.reason,\n message: marker.message,\n },\n };\n\n case \"marked_as_archived\":\n return {\n archived: {\n status: true,\n },\n };\n\n case \"guide_not_active\":\n return {\n active: {\n status: false,\n },\n };\n\n default:\n return undefined;\n }\n};\n\nconst resolveIsEligible = ({\n active,\n targetable,\n archived,\n}: AnnotatedStatuses) => {\n if (!active.status) return false;\n if (!targetable.status) return false;\n if (archived.status) return false;\n return true;\n};\n\nexport const resolveIsQualified = ({\n activatable,\n selectable,\n}: AnnotatedStatuses) => {\n if (!activatable.status) return false;\n if (!selectable.status) return false;\n return true;\n};\n\nconst annotateGuide = (\n guide: KnockGuide,\n snapshot: StoreStateSnapshot,\n stage: KnockGuideClientGroupStage | undefined,\n): AnnotatedGuide => {\n const { ineligibleGuides, location } = snapshot;\n const marker = ineligibleGuides[guide.key];\n const ineligiblity = marker ? toIneligibilityStatus(marker) : undefined;\n\n const statuses: AnnotatedStatuses = {\n // isEligible:\n active: ineligiblity?.active || { status: true },\n targetable: ineligiblity?.targetable || { status: true },\n archived: ineligiblity?.archived || { status: false },\n // isQualified:\n activatable: { status: checkActivatable(guide, location) },\n selectable: toSelectableStatus(guide, snapshot, stage),\n };\n\n const annotation: GuideAnnotation = {\n ...statuses,\n isEligible: resolveIsEligible(statuses),\n isQualified: resolveIsQualified(statuses),\n };\n\n return {\n ...guide,\n annotation,\n };\n};\n\nconst newUnknownGuide = (key: KnockGuide[\"key\"]) =>\n ({\n __typename: \"UnknownGuide\",\n key,\n active: false,\n bypass_global_group_limit: false,\n annotation: {\n isEligible: false,\n isQualified: false,\n selectable: {\n status: undefined,\n },\n },\n }) as UnknownGuide;\n\nexport const useInspectGuideClientStore = (): InspectionResult | undefined => {\n const { client } = useGuideContext();\n\n // Extract a snapshot of the client store state for debugging.\n const snapshot: StoreStateSnapshot = useStore(client.store, (state) => {\n const throttled = checkStateIfThrottled(state);\n\n return {\n location: state.location,\n guides: state.guides,\n guideGroups: state.guideGroups,\n ineligibleGuides: state.ineligibleGuides,\n debug: state.debug,\n counter: state.counter,\n throttled,\n };\n });\n\n // Not in debugging session, so noop.\n if (!snapshot.debug?.debugging) {\n return undefined;\n }\n\n // Only for completeness, as there should always be a default group so this\n // should never happen.\n const defaultGroup = snapshot.guideGroups[0];\n if (!defaultGroup) {\n return {\n error: \"no_guide_group\",\n guides: [],\n };\n }\n\n const groupStage = client.getStage();\n\n // Annotate guides for various eligibility, activation and query statuses\n // that are useful for debugging purposes.\n const orderedGuides = defaultGroup.display_sequence.map((guideKey) => {\n const guide = snapshot.guides[guideKey];\n if (!guide) {\n return newUnknownGuide(guideKey);\n }\n\n return annotateGuide(guide, snapshot, groupStage);\n });\n\n return {\n guides: orderedGuides,\n };\n};\n\nexport const isUnknownGuide = (input: unknown): input is UnknownGuide =>\n typeof input === \"object\" &&\n input !== null &&\n \"__typename\" in input &&\n (input as UnknownGuide).__typename === \"UnknownGuide\";\n"],"names":["byKey","items","reduce","acc","item","key","inferSelectByKeyReturnStatus","guide","snapshot","stage","query","includeThrottled","one","metadata","opts","all","bypass_global_group_limit","resolved","throttled","inferSelectOneByTypeReturnStatus","type","result","size","first","values","inferSelectAllByTypeReturnStatus","guides","guidesByKey","inferSelectReturnStatus","toSelectableStatus","status","undefined","results","Boolean","toIneligibilityStatus","marker","reason","targetable","message","archived","active","resolveIsEligible","resolveIsQualified","activatable","selectable","annotateGuide","ineligibleGuides","location","ineligiblity","statuses","checkActivatable","annotation","isEligible","isQualified","newUnknownGuide","__typename","useInspectGuideClientStore","client","useGuideContext","useStore","store","state","checkStateIfThrottled","guideGroups","debug","counter","debugging","defaultGroup","error","groupStage","getStage","display_sequence","map","guideKey","isUnknownGuide","input"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const GuideContextDetails: () => import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=GuideContextDetails.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GuideContextDetails.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/GuideContextDetails.tsx"],"names":[],"mappings":"AAMA,eAAO,MAAM,mBAAmB,+CA6F/B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"GuideRow.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/GuideRow.tsx"],"names":[],"mappings":"AAeA,OAAO,EACL,cAAc,EACd,YAAY,EAEb,MAAM,8BAA8B,CAAC;AAQtC,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,YAAY,GAAG,cAAc,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,uBAAuB,KAAK,4CAuGpD,CAAC"}
1
+ {"version":3,"file":"GuideRow.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/GuideRow.tsx"],"names":[],"mappings":"AAgBA,OAAO,EACL,cAAc,EACd,YAAY,EAEb,MAAM,8BAA8B,CAAC;AAQtC,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,YAAY,GAAG,cAAc,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,uBAAuB,KAAK,4CAkIpD,CAAC"}
@@ -1,4 +1,4 @@
1
- export type DisplayOption = "current-page" | "all-eligible" | "all-guides";
1
+ export type DisplayOption = "only-displaying" | "only-displayable" | "all-eligible" | "all-guides";
2
2
  type Props = {
3
3
  value: DisplayOption;
4
4
  onChange: (option: DisplayOption) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"GuidesListDisplaySelect.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/GuidesListDisplaySelect.tsx"],"names":[],"mappings":"AAIA,MAAM,MAAM,aAAa,GAAG,cAAc,GAAG,cAAc,GAAG,YAAY,CAAC;AAE3E,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;CAC3C,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,qBAAqB,KAAK,4CAwBjE,CAAC"}
1
+ {"version":3,"file":"GuidesListDisplaySelect.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/GuidesListDisplaySelect.tsx"],"names":[],"mappings":"AAIA,MAAM,MAAM,aAAa,GACrB,iBAAiB,GACjB,kBAAkB,GAClB,cAAc,GACd,YAAY,CAAC;AAEjB,KAAK,KAAK,GAAG;IACX,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;CAC3C,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,qBAAqB,KAAK,4CA2BjE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"V2.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/V2.tsx"],"names":[],"mappings":"AAQA,OAAO,eAAe,CAAC;AAmCvB,eAAO,MAAM,EAAE,sDAmFd,CAAC"}
1
+ {"version":3,"file":"V2.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/V2.tsx"],"names":[],"mappings":"AAQA,OAAO,eAAe,CAAC;AAwCvB,eAAO,MAAM,EAAE,sDAoFd,CAAC"}
@@ -1,4 +1,4 @@
1
- import { KnockGuide } from '@knocklabs/client';
1
+ import { KnockGuide, KnockGuideSelectionResult } from '@knocklabs/client';
2
2
  /**
3
3
  * This is the main module that will house core logic for the toolbar. It hooks
4
4
  * into the guide client state store, extracts relevant data for debugging, and
@@ -23,11 +23,28 @@ type ActivatableStatus = {
23
23
  type ArchivedStatus = {
24
24
  status: boolean;
25
25
  };
26
+ type SelectionResultByLimit = {
27
+ one?: KnockGuideSelectionResult;
28
+ all?: KnockGuideSelectionResult;
29
+ };
30
+ type SelectionResultByQuery = {
31
+ key?: SelectionResultByLimit;
32
+ type?: SelectionResultByLimit;
33
+ };
34
+ type SelectableStatusPresent = {
35
+ status: "returned" | "throttled" | "queried";
36
+ query: SelectionResultByQuery;
37
+ };
38
+ type SelectableStatusAbsent = {
39
+ status: undefined;
40
+ };
41
+ type SelectableStatus = SelectableStatusPresent | SelectableStatusAbsent;
26
42
  type AnnotatedStatuses = {
27
43
  active: ActiveStatus;
28
44
  targetable: TargetableStatus;
29
45
  archived: ArchivedStatus;
30
46
  activatable: ActivatableStatus;
47
+ selectable: SelectableStatus;
31
48
  };
32
49
  type GuideAnnotation = AnnotatedStatuses & {
33
50
  isEligible: boolean;
@@ -46,13 +63,16 @@ export type UnknownGuide = {
46
63
  annotation: {
47
64
  isEligible: false;
48
65
  isQualified: false;
66
+ selectable: {
67
+ status: undefined;
68
+ };
49
69
  };
50
70
  };
51
71
  export type InspectionResult = {
52
72
  guides: (AnnotatedGuide | UnknownGuide)[];
53
73
  error?: "no_guide_group";
54
74
  };
55
- export declare const resolveIsQualified: ({ activatable }: AnnotatedStatuses) => boolean;
75
+ export declare const resolveIsQualified: ({ activatable, selectable, }: AnnotatedStatuses) => boolean;
56
76
  export declare const useInspectGuideClientStore: () => InspectionResult | undefined;
57
77
  export declare const isUnknownGuide: (input: unknown) => input is UnknownGuide;
58
78
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"useInspectGuideClientStore.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/useInspectGuideClientStore.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAIX,MAAM,mBAAmB,CAAC;AAG3B;;;;;GAKG;AAGH,KAAK,YAAY,GAAG;IAClB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAGF,KAAK,oBAAoB,GAAG;IAC1B,MAAM,EAAE,IAAI,CAAC;CACd,CAAC;AACF,KAAK,qBAAqB,GAAG;IAC3B,MAAM,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AACF,KAAK,gBAAgB,GAAG,oBAAoB,GAAG,qBAAqB,CAAC;AAErE,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAGF,KAAK,cAAc,GAAG;IACpB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,KAAK,iBAAiB,GAAG;IAEvB,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,EAAE,cAAc,CAAC;IAEzB,WAAW,EAAE,iBAAiB,CAAC;CAChC,CAAC;AAEF,KAAK,eAAe,GAAG,iBAAiB,GAAG;IAGzC,UAAU,EAAE,OAAO,CAAC;IAIpB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG;IACxC,UAAU,EAAE,eAAe,CAAC;IAG5B,yBAAyB,CAAC,EAAE,UAAU,CAAC,yBAAyB,CAAC,CAAC;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAKF,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE,cAAc,CAAC;IAC3B,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACvB,MAAM,EAAE,KAAK,CAAC;IACd,yBAAyB,EAAE,KAAK,CAAC;IACjC,UAAU,EAAE;QACV,UAAU,EAAE,KAAK,CAAC;QAClB,WAAW,EAAE,KAAK,CAAC;KACpB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,CAAC,cAAc,GAAG,YAAY,CAAC,EAAE,CAAC;IAC1C,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B,CAAC;AA8CF,eAAO,MAAM,kBAAkB,GAAI,iBAAiB,iBAAiB,YAGpE,CAAC;AAgDF,eAAO,MAAM,0BAA0B,QAAO,gBAAgB,GAAG,SA2ChE,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,YAIF,CAAC"}
1
+ {"version":3,"file":"useInspectGuideClientStore.d.ts","sourceRoot":"","sources":["../../../../../../../src/modules/guide/components/Toolbar/V2/useInspectGuideClientStore.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EAIV,yBAAyB,EAG1B,MAAM,mBAAmB,CAAC;AAO3B;;;;;GAKG;AAGH,KAAK,YAAY,GAAG;IAClB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAGF,KAAK,oBAAoB,GAAG;IAC1B,MAAM,EAAE,IAAI,CAAC;CACd,CAAC;AACF,KAAK,qBAAqB,GAAG;IAC3B,MAAM,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AACF,KAAK,gBAAgB,GAAG,oBAAoB,GAAG,qBAAqB,CAAC;AAErE,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAGF,KAAK,cAAc,GAAG;IACpB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAQF,KAAK,sBAAsB,GAAG;IAC5B,GAAG,CAAC,EAAE,yBAAyB,CAAC;IAChC,GAAG,CAAC,EAAE,yBAAyB,CAAC;CACjC,CAAC;AACF,KAAK,sBAAsB,GAAG;IAC5B,GAAG,CAAC,EAAE,sBAAsB,CAAC;IAC7B,IAAI,CAAC,EAAE,sBAAsB,CAAC;CAC/B,CAAC;AACF,KAAK,uBAAuB,GAAG;IAC7B,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;IAC7C,KAAK,EAAE,sBAAsB,CAAC;CAC/B,CAAC;AACF,KAAK,sBAAsB,GAAG;IAC5B,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC;AACF,KAAK,gBAAgB,GAAG,uBAAuB,GAAG,sBAAsB,CAAC;AAEzE,KAAK,iBAAiB,GAAG;IAEvB,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,EAAE,cAAc,CAAC;IAEzB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,UAAU,EAAE,gBAAgB,CAAC;CAC9B,CAAC;AAEF,KAAK,eAAe,GAAG,iBAAiB,GAAG;IAGzC,UAAU,EAAE,OAAO,CAAC;IAIpB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG;IACxC,UAAU,EAAE,eAAe,CAAC;IAG5B,yBAAyB,CAAC,EAAE,UAAU,CAAC,yBAAyB,CAAC,CAAC;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAKF,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE,cAAc,CAAC;IAC3B,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;IACvB,MAAM,EAAE,KAAK,CAAC;IACd,yBAAyB,EAAE,KAAK,CAAC;IACjC,UAAU,EAAE;QACV,UAAU,EAAE,KAAK,CAAC;QAClB,WAAW,EAAE,KAAK,CAAC;QACnB,UAAU,EAAE;YACV,MAAM,EAAE,SAAS,CAAC;SACnB,CAAC;KACH,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,CAAC,cAAc,GAAG,YAAY,CAAC,EAAE,CAAC;IAC1C,KAAK,CAAC,EAAE,gBAAgB,CAAC;CAC1B,CAAC;AA6NF,eAAO,MAAM,kBAAkB,GAAI,8BAGhC,iBAAiB,YAInB,CAAC;AAgDF,eAAO,MAAM,0BAA0B,QAAO,gBAAgB,GAAG,SAiDhE,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,YAIF,CAAC"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@knocklabs/react",
3
3
  "description": "A set of React components to build notification experiences powered by Knock",
4
4
  "author": "@knocklabs",
5
- "version": "0.11.1",
5
+ "version": "0.11.2",
6
6
  "license": "MIT",
7
7
  "main": "dist/cjs/index.js",
8
8
  "module": "dist/esm/index.mjs",
@@ -72,8 +72,8 @@
72
72
  }
73
73
  },
74
74
  "dependencies": {
75
- "@knocklabs/client": "^0.21.1",
76
- "@knocklabs/react-core": "^0.13.1",
75
+ "@knocklabs/client": "^0.21.2",
76
+ "@knocklabs/react-core": "^0.13.2",
77
77
  "@popperjs/core": "^2.11.8",
78
78
  "@radix-ui/react-dialog": "^1.1.15",
79
79
  "@radix-ui/react-hover-card": "^1.1.15",