@graview/react 0.1.7 → 0.1.9
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.
- package/dist/connectors.d.ts.map +1 -1
- package/dist/connectors.js +3 -2
- package/dist/connectors.js.map +1 -1
- package/dist/context.d.ts +11 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +6 -0
- package/dist/context.js.map +1 -1
- package/dist/edge-signs.d.ts +1 -1
- package/dist/edge-signs.d.ts.map +1 -1
- package/dist/edge-signs.js +2 -1
- package/dist/edge-signs.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/plots.d.ts +3 -26
- package/dist/plots.d.ts.map +1 -1
- package/dist/plots.js +5 -60
- package/dist/plots.js.map +1 -1
- package/dist/popover.d.ts +190 -0
- package/dist/popover.d.ts.map +1 -0
- package/dist/popover.js +374 -0
- package/dist/popover.js.map +1 -0
- package/dist/provider.d.ts +2 -0
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +1 -0
- package/dist/provider.js.map +1 -1
- package/dist/rails.d.ts +5 -1
- package/dist/rails.d.ts.map +1 -1
- package/dist/rails.js +8 -2
- package/dist/rails.js.map +1 -1
- package/dist/resolved-view.d.ts.map +1 -1
- package/dist/resolved-view.js +14 -47
- package/dist/resolved-view.js.map +1 -1
- package/dist/scene-lines.d.ts +1 -1
- package/dist/scene-lines.d.ts.map +1 -1
- package/dist/scene-lines.js +3 -2
- package/dist/scene-lines.js.map +1 -1
- package/dist/scene-root.js +6 -6
- package/dist/scene-root.js.map +1 -1
- package/dist/view-host.js +2 -2
- package/dist/view-host.js.map +1 -1
- package/package.json +5 -5
package/dist/plots.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plots.js","sourceRoot":"","sources":["../src/plots.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plots.js","sourceRoot":"","sources":["../src/plots.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAwC,MAAM,eAAe,CAAC;AAC/G,OAAO,EAAE,UAAU,EAA2B,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAyC,MAAM,OAAO,CAAC;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA4BxC,0GAA0G;AAC1G,MAAM,UAAU,WAAW,CAAC,IAAc,EAAE,IAAU,EAAE,MAAa,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;IACjF,MAAM,EAAE,GAAG,CAAC,GAAW,EAAE,GAAW,EAAS,EAAE;QAC7C,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;IAC9E,CAAC,CAAC;IACF,OAAO;QACL,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC;QACtB,EAAE,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;QAClC,EAAE,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9C,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;KACnC,CAAC;AACJ,CAAC;AAED,MAAM,MAAM,GAAG,CAAC,OAAyB,EAAU,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAgB1H;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAc;IAChG,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,UAAU,EAAE,CAAC;IACpD,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACpG,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC;IAC7B,2FAA2F;IAC3F,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9B,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,EAAU,EAAE,EAAE;QACvC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,SAAS,EAAE,OAAO;YAAE,OAAO,KAAK,CAAC;QACvD,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB;;;;OAIG;IACH,MAAM,cAAc,GAAG,GAAG,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,IAAK,CAAC,GAAG,IAAI,IAAI,CAAC,IAAK,CAAC,GAAG,IAAI,IAAI,CAAC,IAAK,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IACvI,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE;QACzB,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QAC7C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAgB,CAAC;QAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACjC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI;gBAAE,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACvD,GAAG,IAAI;YACP,CAAC,EAAE,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAE,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAE,EAAE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;iBACxF,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC3E,IAAI,CAAC,GAAG,CAAC;SACb,CAAC,CAAC,CAAC;QACJ,sDAAsD;IACxD,CAAC,EAAE,CAAC,cAAc,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnC,6EAA6E;IAC7E,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG,EAAuB,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAuB,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,IAAI,EAAE,CAAC;QAChD,MAAM,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,CAAC,IAAK,CAAC,GAAG,IAAI,IAAI,CAAC,IAAK,CAAC,GAAG,IAAI,IAAI,CAAC,IAAK,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAClG,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YAC7B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACxB,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAC5B,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,IAAK,EAAE,OAAO,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,IAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE;YAChB,GAAG;YACH,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC;YACrB,KAAK,EAAE,OAAO,CAAC,CAAC,CAAE;YAClB,IAAI;YACJ,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;SACrG,CAAC,CAAC;IACL,CAAC;IACD,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;IAErB,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,KAAK,GAAkB,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IACnH,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,OAAO,CACL,cAAK,SAAS,EAAC,eAAe,iBAAa,MAAM,wBAAoB,EAAE,EAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,wBAAsB,KAAK,CAAC,MAAM,YAClJ,aAAG,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,aAClG,YAAG,SAAS,EAAC,eAAe,wBAAqB,KAAK,CAAC,MAAM,YAC1D,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAClB,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CACrB,aAEE,SAAS,EAAC,cAAc,uBACL,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,sBACrB,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,aAErF,eAAM,SAAS,EAAC,mBAAmB,EAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAI,EACjD,eAAM,SAAS,EAAC,kBAAkB,EAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAI,KAN3C,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,CAO5B,CACL,CAAC,CAAC,CAAC,IAAI,CACT,GACC,EACH,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,KAAC,QAAQ,IAEP,EAAE,EAAE,IAAI,CAAC,EAAE,EACX,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,EAClD,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAE,EAC3B,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,EACrC,SAAS,EAAE,SAAS,EACpB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,IAPP,IAAI,CAAC,EAAE,CAQZ,CACH,CAAC,IACA,GACA,CACP,CAAC;AACJ,CAAC;AAYD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,QAAQ,CAAC,EACtC,EAAE,EACF,GAAG,EACH,OAAO,EACP,MAAM,EACN,SAAS,EACT,UAAU,EACV,KAAK,GAUN;IACC,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,OAAO,CACL,aAAG,SAAS,EAAC,cAAc,uBAAoB,EAAE,yBAAuB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,eAAyB,CAAC,EAAE,GAAG,EAAE,aAC1I,kBACE,SAAS,EAAC,mBAAmB,EAC7B,MAAM,EAAE,OAAO,CAAC,IAAI,EACpB,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;oBACjB,IAAI,KAAK,CAAC,EAAE,CAAC;wBAAE,KAAK,CAAC,eAAe,EAAE,CAAC;gBACzC,CAAC,GACD,EAED,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC9B,aAAG,SAAS,EAAC,iBAAiB,0BAAuB,OAAO,CAAC,SAAS,CAAC,MAAM,uBAAqB,OAAO,CAAC,IAAI,IAAI,SAAS,aACxH,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAChC,aAEE,SAAS,EAAC,kBAAkB,2BACL,KAAK,CAAC,EAAE,0BACT,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,2BACpC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,aAE5D,kBAAS,SAAS,EAAC,kBAAkB,EAAC,MAAM,EAAE,KAAK,CAAC,IAAI,GAAI,EAC5D,kBAAS,SAAS,EAAC,mBAAmB,EAAC,MAAM,EAAE,KAAK,CAAC,KAAK,GAAI,EAC9D,kBAAS,SAAS,EAAC,kBAAkB,EAAC,MAAM,EAAE,KAAK,CAAC,IAAI,GAAI,KARvD,KAAK,CAAC,EAAE,CASX,CACL,CAAC,EACD,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAClB,gBAAM,SAAS,EAAC,sBAAsB,EAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,UAAU,EAAC,QAAQ,kBAClG,OAAO,CAAC,IAAI,IACT,CACR,CAAC,CAAC,CAAC,IAAI,IACN,CACL,CAAC,CAAC,CAAC,IAAI,IACN,CACL,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAE9E;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAGhE,yEAAyE;AACzE,MAAM,UAAU,aAAa,CAAC,QAAkB,EAAE,IAAU,EAAE,GAAU;IACtE,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,CAAC,GAAW,EAAE,GAAW,EAAE,IAAI,GAAG,CAAC,EAAS,EAAE;QACvD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACvC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;IACrF,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC;IACpE,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;IAChE,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,GAAG,IAAI,EAAE,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC;IAC/D,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAChD,KAAK,EAAE,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACnD,GAAG,EAAE,IAAI;KACV,CAAC;AACJ,CAAC;AAED,+EAA+E;AAE/E,8EAA8E;AAC9E,MAAM,UAAU,SAAS,CAAC,KAAY,EAAE,IAAU,EAAE,GAAU;IAC5D,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC;IACzC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC;IACzC,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;AAChG,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,KAAY,EAAE,IAAc,EAAE,IAAU,EAAE,GAAU,EAAW,EAAE;IACnF,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACjD,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;AAC1G,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,CAAC,CAAQ,EAAE,CAAQ,EAAE,CAAS,EAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAEhH;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAC,IAAc,EAAE,EAAY;IACvD,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC;IAChC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,CAAC,IAAc,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,CAAC,IAAc,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC;IAClE,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxB,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxB,+GAA+G;IAC/G,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,CAAC;IACtG,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,GAAG,GAAG,CAAC;IAC9F,MAAM,GAAG,GAAG;QACV,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;QACpB,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;QACpB,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;QACpB,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;QACpB,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;KACrB,CAAC;IACF,uFAAuF;IACvF,MAAM,GAAG,GAAmC,EAAE,CAAC;IAC/C,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjC,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;YAAE,SAAS;QAC7F,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACd,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;QACtB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;QAClB,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;QACtB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACjF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QACjF,IAAI,OAAO,IAAI,OAAO;YAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,IAAc,EAAE,EAAY,EAAE,IAAU,EAAE,GAAU;IAC9E,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;IAC9E,CAAC,CAAC,CAAC;IACH,wEAAwE;IACxE,MAAM,GAAG,GAAY,EAAE,CAAC;IACxB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;QACrB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;gBAAE,SAAS;YAC7C,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5B,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;gBAC1B,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC;oBAAE,EAAE,GAAG,GAAG,CAAC;;oBACtD,EAAE,GAAG,GAAG,CAAC;YAChB,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACzB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;QACD,mEAAmE;QACnE,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YACjC,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,IAAI,EAAE,GAAG,CAAC,CAAC;YACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5B,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;gBAC1B,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC;oBAAE,EAAE,GAAG,GAAG,CAAC;;oBACpD,EAAE,GAAG,GAAG,CAAC;YAChB,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACzB,OAAO,GAAG,CAAC;QACb,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACd,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import { type CSSProperties, type RefObject } from "react";
|
|
2
|
+
/**
|
|
3
|
+
* EVERY POPOVER THE FRAMEWORK DRAWS, BY NAME — the family a harness opens
|
|
4
|
+
* one by one rather than a list somebody keeps by hand (FR-77). Each says
|
|
5
|
+
* the `data-testid` of what opens it and of its pane, how it is opened,
|
|
6
|
+
* where the framework draws it, and where the keyboard goes when it opens:
|
|
7
|
+
* into the pane, except under the Find box, which is a combobox's listbox
|
|
8
|
+
* and keeps the keyboard in the box (its rows are `aria-activedescendant`).
|
|
9
|
+
* A popover that is not in here is not in the family, and `usePopover`
|
|
10
|
+
* takes no name that is not.
|
|
11
|
+
*/
|
|
12
|
+
export declare const POPOVERS: {
|
|
13
|
+
/** Who you are and your own settings, from the bar and the embed's strip. */
|
|
14
|
+
readonly profile: {
|
|
15
|
+
readonly trigger: "profile-button";
|
|
16
|
+
readonly pane: "profile";
|
|
17
|
+
readonly opens: "press";
|
|
18
|
+
readonly focus: "into";
|
|
19
|
+
readonly drawn: readonly ["shell", "embed"];
|
|
20
|
+
};
|
|
21
|
+
/** What is broken, from Standing, on the bar and the strip. */
|
|
22
|
+
readonly problems: {
|
|
23
|
+
readonly trigger: "standing";
|
|
24
|
+
readonly pane: "problems";
|
|
25
|
+
readonly opens: "press";
|
|
26
|
+
readonly focus: "into";
|
|
27
|
+
readonly drawn: readonly ["shell", "embed"];
|
|
28
|
+
};
|
|
29
|
+
/** What has happened, from the bar. */
|
|
30
|
+
readonly activity: {
|
|
31
|
+
readonly trigger: "activity-button";
|
|
32
|
+
readonly pane: "activity";
|
|
33
|
+
readonly opens: "press";
|
|
34
|
+
readonly focus: "into";
|
|
35
|
+
readonly drawn: readonly ["shell"];
|
|
36
|
+
};
|
|
37
|
+
/** What the words find, under the Find box. */
|
|
38
|
+
readonly find: {
|
|
39
|
+
readonly trigger: "find-box";
|
|
40
|
+
readonly pane: "find-strip";
|
|
41
|
+
readonly opens: "typing";
|
|
42
|
+
readonly focus: "stays";
|
|
43
|
+
readonly drawn: readonly ["shell"];
|
|
44
|
+
};
|
|
45
|
+
/** The districts the row could not hold, from "+N more" on the ground. */
|
|
46
|
+
readonly districts: {
|
|
47
|
+
readonly trigger: "beyond-more";
|
|
48
|
+
readonly pane: "beyond-list";
|
|
49
|
+
readonly opens: "press";
|
|
50
|
+
readonly focus: "into";
|
|
51
|
+
readonly drawn: readonly ["shell", "embed"];
|
|
52
|
+
};
|
|
53
|
+
/** A card's acts at the pointer: right-click, the context menu. The card is what the keyboard goes back to. */
|
|
54
|
+
readonly acts: {
|
|
55
|
+
readonly trigger: null;
|
|
56
|
+
readonly pane: "context-menu";
|
|
57
|
+
readonly opens: "context-menu";
|
|
58
|
+
readonly focus: "into";
|
|
59
|
+
readonly drawn: readonly ["shell", "embed"];
|
|
60
|
+
};
|
|
61
|
+
/** The conversation as a pill's popover, where an app puts `ChatPanel` on a bar of its own. */
|
|
62
|
+
readonly chat: {
|
|
63
|
+
readonly trigger: "chat";
|
|
64
|
+
readonly pane: "chat-panel";
|
|
65
|
+
readonly opens: "press";
|
|
66
|
+
readonly focus: "into";
|
|
67
|
+
readonly drawn: readonly [];
|
|
68
|
+
};
|
|
69
|
+
/** The studio's own seat, from its bar. */
|
|
70
|
+
readonly "studio-ask": {
|
|
71
|
+
readonly trigger: "studio-agent";
|
|
72
|
+
readonly pane: "studio-agent-panel";
|
|
73
|
+
readonly opens: "press";
|
|
74
|
+
readonly focus: "into";
|
|
75
|
+
readonly drawn: readonly ["studio"];
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
export type PopoverName = keyof typeof POPOVERS;
|
|
79
|
+
/**
|
|
80
|
+
* A TRANSIENT SURFACE OPENS IN THE BROWSER'S TOP LAYER (FR-76).
|
|
81
|
+
*
|
|
82
|
+
* A popover, a menu, a list of suggestions: each used to hang from its
|
|
83
|
+
* trigger with `position: absolute` and a `z-index` of its own choosing, in
|
|
84
|
+
* the one stacking context the bar, the scene and the seat's rail share —
|
|
85
|
+
* and on a hosted app the profile opened under the rail at 40 and could not
|
|
86
|
+
* be read. The browser has a layer above every stacking context for exactly
|
|
87
|
+
* this: an element shown with `showPopover()` is drawn over everything on
|
|
88
|
+
* the page, whatever `z-index`, `overflow: hidden` or `backdrop-filter` its
|
|
89
|
+
* ancestors carry, and it is still where it was in the DOM — so an embed's
|
|
90
|
+
* scoped theme still reaches it and its custom properties are inherited,
|
|
91
|
+
* and nothing of it lands on the host's page that was not there before.
|
|
92
|
+
*
|
|
93
|
+
* Chromium 114, Firefox 125 and Safari 17 have it, and Playwright's
|
|
94
|
+
* Chromium, WebKit and Firefox do; where `showPopover` is missing, the pane
|
|
95
|
+
* stands on the ladder's popover rung (`layer("popover")`), over every rail.
|
|
96
|
+
*
|
|
97
|
+
* In the top layer the pane's containing block is the viewport, so it is
|
|
98
|
+
* placed by its anchor's rectangle: under it, or over it where there is
|
|
99
|
+
* more room above (`placePane`), and kept to the viewport on both axes.
|
|
100
|
+
*/
|
|
101
|
+
export declare const POPOVER_STYLE: CSSProperties;
|
|
102
|
+
/** What a pane hangs from: an element, or a point (a right-click). */
|
|
103
|
+
export type PopoverAnchor = RefObject<HTMLElement | null> | (() => {
|
|
104
|
+
readonly x: number;
|
|
105
|
+
readonly y: number;
|
|
106
|
+
} | null);
|
|
107
|
+
export interface PlaceOptions {
|
|
108
|
+
/** Which edge of the anchor the pane lines up with. `end` (the default) hangs it from the anchor's right edge. */
|
|
109
|
+
readonly align?: "start" | "end";
|
|
110
|
+
}
|
|
111
|
+
/** Whether the pane is in the top layer now. */
|
|
112
|
+
export declare function inTopLayer(pane: HTMLElement): boolean;
|
|
113
|
+
/**
|
|
114
|
+
* Puts the pane by its anchor, inside the viewport: under the anchor, or
|
|
115
|
+
* over it when the room above is the larger and the pane does not fit
|
|
116
|
+
* below; no taller than the room it was given, so what it holds scrolls
|
|
117
|
+
* inside it rather than running off the screen.
|
|
118
|
+
*/
|
|
119
|
+
export declare function placePane(pane: HTMLElement, anchor: PopoverAnchor, options?: PlaceOptions): void;
|
|
120
|
+
/**
|
|
121
|
+
* Shows the pane in the top layer while `open`, placed by its anchor and
|
|
122
|
+
* placed again as the page scrolls, the window changes size or the pane's
|
|
123
|
+
* own content does. The pane carries `popover="manual"` and
|
|
124
|
+
* `POPOVER_STYLE`; whoever draws it decides when it is open.
|
|
125
|
+
*/
|
|
126
|
+
export declare function useTopLayer(pane: RefObject<HTMLElement | null>, open: boolean, anchor: PopoverAnchor, options?: PlaceOptions): void;
|
|
127
|
+
/** Keeps an element in the top layer over any popover that opens after it; returns the way to stop. */
|
|
128
|
+
export declare function raiseOverPopovers(element: HTMLElement): () => void;
|
|
129
|
+
export interface PopoverOptions extends PlaceOptions {
|
|
130
|
+
/**
|
|
131
|
+
* Open and closed held by somebody else — the provider's pointer menu, a
|
|
132
|
+
* combobox's own rule for when its list shows. Without these the hook
|
|
133
|
+
* holds it.
|
|
134
|
+
*/
|
|
135
|
+
readonly open?: boolean;
|
|
136
|
+
readonly onOpenChange?: (open: boolean) => void;
|
|
137
|
+
/** A point to hang from, where there is no trigger: a right-click. */
|
|
138
|
+
readonly at?: () => {
|
|
139
|
+
readonly x: number;
|
|
140
|
+
readonly y: number;
|
|
141
|
+
} | null;
|
|
142
|
+
/** Where the keyboard goes back to when there is no trigger: the card a menu was opened on. */
|
|
143
|
+
readonly returnTo?: () => HTMLElement | null;
|
|
144
|
+
/** False draws it as part of something else — `ChatPanel` inside a rail — and the family leaves it alone. */
|
|
145
|
+
readonly popover?: boolean;
|
|
146
|
+
}
|
|
147
|
+
export interface Popover {
|
|
148
|
+
readonly open: boolean;
|
|
149
|
+
/** Opens or closes it; closing gives the keyboard back to the trigger when it was inside the pane. */
|
|
150
|
+
setOpen(open: boolean): void;
|
|
151
|
+
toggle(): void;
|
|
152
|
+
/** What the trigger carries: `{...popover.trigger}` and an `onClick` of `toggle`. */
|
|
153
|
+
readonly trigger: {
|
|
154
|
+
readonly ref: (element: HTMLElement | null) => void;
|
|
155
|
+
readonly "aria-expanded": boolean;
|
|
156
|
+
readonly "aria-controls": string;
|
|
157
|
+
readonly "data-graview-popover-trigger": PopoverName;
|
|
158
|
+
};
|
|
159
|
+
/** What the pane carries, with `POPOVER_STYLE` in its style. */
|
|
160
|
+
readonly pane: {
|
|
161
|
+
readonly ref: (element: HTMLElement | null) => void;
|
|
162
|
+
readonly id: string;
|
|
163
|
+
readonly popover: "manual";
|
|
164
|
+
readonly tabIndex: -1;
|
|
165
|
+
readonly "data-graview-popover": PopoverName;
|
|
166
|
+
readonly "data-graview-overlay": "";
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* ONE FAMILY OF POPOVERS (FR-77).
|
|
171
|
+
*
|
|
172
|
+
* Every popover had its own way of closing: the profile closed on a press
|
|
173
|
+
* outside it, the districts on a pointer down, the menu at the pointer a
|
|
174
|
+
* frame late; one gave the keyboard back to its button and the next left
|
|
175
|
+
* it on `<body>`; none moved the keyboard in when it opened, so a person
|
|
176
|
+
* working from the keyboard opened the profile and was still on its button;
|
|
177
|
+
* and two could be open at once. This is the one way, and every popover in
|
|
178
|
+
* `POPOVERS` uses it:
|
|
179
|
+
*
|
|
180
|
+
* one at a time — opening one closes any other, page-wide;
|
|
181
|
+
* the keyboard goes in — to the pane's first control, or the pane;
|
|
182
|
+
* Escape closes it, and so does a press anywhere that is not the pane or
|
|
183
|
+
* its trigger (nor a dialog the pane opened); the keyboard goes back to
|
|
184
|
+
* the trigger when it was inside the pane or the press left it nowhere;
|
|
185
|
+
* it hangs from its trigger, in the top layer (`useTopLayer`), turned
|
|
186
|
+
* over when there is more room above and no taller than the room, so
|
|
187
|
+
* no row of it is ever under the viewport's edge.
|
|
188
|
+
*/
|
|
189
|
+
export declare function usePopover(name: PopoverName, options?: PopoverOptions): Popover;
|
|
190
|
+
//# sourceMappingURL=popover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../src/popover.ts"],"names":[],"mappings":"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"}
|
package/dist/popover.js
ADDED
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
import { layer } from "@graview/core";
|
|
2
|
+
import { useCallback, useEffect, useId, useLayoutEffect, useRef, useState } from "react";
|
|
3
|
+
/**
|
|
4
|
+
* EVERY POPOVER THE FRAMEWORK DRAWS, BY NAME — the family a harness opens
|
|
5
|
+
* one by one rather than a list somebody keeps by hand (FR-77). Each says
|
|
6
|
+
* the `data-testid` of what opens it and of its pane, how it is opened,
|
|
7
|
+
* where the framework draws it, and where the keyboard goes when it opens:
|
|
8
|
+
* into the pane, except under the Find box, which is a combobox's listbox
|
|
9
|
+
* and keeps the keyboard in the box (its rows are `aria-activedescendant`).
|
|
10
|
+
* A popover that is not in here is not in the family, and `usePopover`
|
|
11
|
+
* takes no name that is not.
|
|
12
|
+
*/
|
|
13
|
+
export const POPOVERS = {
|
|
14
|
+
/** Who you are and your own settings, from the bar and the embed's strip. */
|
|
15
|
+
profile: { trigger: "profile-button", pane: "profile", opens: "press", focus: "into", drawn: ["shell", "embed"] },
|
|
16
|
+
/** What is broken, from Standing, on the bar and the strip. */
|
|
17
|
+
problems: { trigger: "standing", pane: "problems", opens: "press", focus: "into", drawn: ["shell", "embed"] },
|
|
18
|
+
/** What has happened, from the bar. */
|
|
19
|
+
activity: { trigger: "activity-button", pane: "activity", opens: "press", focus: "into", drawn: ["shell"] },
|
|
20
|
+
/** What the words find, under the Find box. */
|
|
21
|
+
find: { trigger: "find-box", pane: "find-strip", opens: "typing", focus: "stays", drawn: ["shell"] },
|
|
22
|
+
/** The districts the row could not hold, from "+N more" on the ground. */
|
|
23
|
+
districts: { trigger: "beyond-more", pane: "beyond-list", opens: "press", focus: "into", drawn: ["shell", "embed"] },
|
|
24
|
+
/** A card's acts at the pointer: right-click, the context menu. The card is what the keyboard goes back to. */
|
|
25
|
+
acts: { trigger: null, pane: "context-menu", opens: "context-menu", focus: "into", drawn: ["shell", "embed"] },
|
|
26
|
+
/** The conversation as a pill's popover, where an app puts `ChatPanel` on a bar of its own. */
|
|
27
|
+
chat: { trigger: "chat", pane: "chat-panel", opens: "press", focus: "into", drawn: [] },
|
|
28
|
+
/** The studio's own seat, from its bar. */
|
|
29
|
+
"studio-ask": { trigger: "studio-agent", pane: "studio-agent-panel", opens: "press", focus: "into", drawn: ["studio"] },
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* A TRANSIENT SURFACE OPENS IN THE BROWSER'S TOP LAYER (FR-76).
|
|
33
|
+
*
|
|
34
|
+
* A popover, a menu, a list of suggestions: each used to hang from its
|
|
35
|
+
* trigger with `position: absolute` and a `z-index` of its own choosing, in
|
|
36
|
+
* the one stacking context the bar, the scene and the seat's rail share —
|
|
37
|
+
* and on a hosted app the profile opened under the rail at 40 and could not
|
|
38
|
+
* be read. The browser has a layer above every stacking context for exactly
|
|
39
|
+
* this: an element shown with `showPopover()` is drawn over everything on
|
|
40
|
+
* the page, whatever `z-index`, `overflow: hidden` or `backdrop-filter` its
|
|
41
|
+
* ancestors carry, and it is still where it was in the DOM — so an embed's
|
|
42
|
+
* scoped theme still reaches it and its custom properties are inherited,
|
|
43
|
+
* and nothing of it lands on the host's page that was not there before.
|
|
44
|
+
*
|
|
45
|
+
* Chromium 114, Firefox 125 and Safari 17 have it, and Playwright's
|
|
46
|
+
* Chromium, WebKit and Firefox do; where `showPopover` is missing, the pane
|
|
47
|
+
* stands on the ladder's popover rung (`layer("popover")`), over every rail.
|
|
48
|
+
*
|
|
49
|
+
* In the top layer the pane's containing block is the viewport, so it is
|
|
50
|
+
* placed by its anchor's rectangle: under it, or over it where there is
|
|
51
|
+
* more room above (`placePane`), and kept to the viewport on both axes.
|
|
52
|
+
*/
|
|
53
|
+
export const POPOVER_STYLE = {
|
|
54
|
+
position: "fixed",
|
|
55
|
+
inset: "auto",
|
|
56
|
+
margin: 0,
|
|
57
|
+
zIndex: layer("popover"),
|
|
58
|
+
boxSizing: "border-box",
|
|
59
|
+
};
|
|
60
|
+
/** The pane's distance from its anchor, and from the viewport's edges. */
|
|
61
|
+
const GAP = 6;
|
|
62
|
+
const MARGIN = 8;
|
|
63
|
+
const supportsTopLayer = (pane) => typeof pane.showPopover === "function";
|
|
64
|
+
/** Whether the pane is in the top layer now. */
|
|
65
|
+
export function inTopLayer(pane) {
|
|
66
|
+
try {
|
|
67
|
+
return pane.matches(":popover-open");
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function anchorRect(anchor) {
|
|
74
|
+
if (typeof anchor === "function") {
|
|
75
|
+
const at = anchor();
|
|
76
|
+
return at ? { left: at.x, right: at.x, top: at.y, bottom: at.y } : null;
|
|
77
|
+
}
|
|
78
|
+
const element = anchor.current;
|
|
79
|
+
if (!element || !element.isConnected)
|
|
80
|
+
return null;
|
|
81
|
+
const rect = element.getBoundingClientRect();
|
|
82
|
+
return { left: rect.left, right: rect.right, top: rect.top, bottom: rect.bottom };
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Puts the pane by its anchor, inside the viewport: under the anchor, or
|
|
86
|
+
* over it when the room above is the larger and the pane does not fit
|
|
87
|
+
* below; no taller than the room it was given, so what it holds scrolls
|
|
88
|
+
* inside it rather than running off the screen.
|
|
89
|
+
*/
|
|
90
|
+
export function placePane(pane, anchor, options = {}) {
|
|
91
|
+
const at = anchorRect(anchor);
|
|
92
|
+
if (!at)
|
|
93
|
+
return;
|
|
94
|
+
const view = { width: document.documentElement.clientWidth || innerWidth, height: innerHeight };
|
|
95
|
+
// The height the pane was designed to stop at, kept the first time: the room is laid over it, never instead of it.
|
|
96
|
+
const designed = (pane.dataset["graviewDesignedHeight"] ??= pane.style.maxHeight);
|
|
97
|
+
pane.style.maxHeight = designed;
|
|
98
|
+
const natural = pane.getBoundingClientRect();
|
|
99
|
+
const below = view.height - at.bottom - GAP - MARGIN;
|
|
100
|
+
const above = at.top - GAP - MARGIN;
|
|
101
|
+
const down = natural.height <= below || below >= above;
|
|
102
|
+
const room = Math.max(96, Math.floor(down ? below : above));
|
|
103
|
+
const height = Math.min(natural.height, room);
|
|
104
|
+
// Border-box (`POPOVER_STYLE`), so the room is the pane's whole height, its frame included.
|
|
105
|
+
if (natural.height > room)
|
|
106
|
+
pane.style.maxHeight = designed ? `min(${designed}, ${room}px)` : `${room}px`;
|
|
107
|
+
const width = natural.width;
|
|
108
|
+
const wanted = options.align === "start" ? at.left : at.right - width;
|
|
109
|
+
// A sheet the viewport's width (a phone's) stands from its left edge; anything narrower keeps a margin.
|
|
110
|
+
const left = width >= view.width - 2 * MARGIN ? Math.max(0, (view.width - width) / 2) : Math.max(MARGIN, Math.min(wanted, view.width - MARGIN - width));
|
|
111
|
+
const top = down ? at.bottom + GAP : Math.max(MARGIN, at.top - GAP - height);
|
|
112
|
+
pane.style.left = `${Math.round(left)}px`;
|
|
113
|
+
pane.style.top = `${Math.round(top)}px`;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Shows the pane in the top layer while `open`, placed by its anchor and
|
|
117
|
+
* placed again as the page scrolls, the window changes size or the pane's
|
|
118
|
+
* own content does. The pane carries `popover="manual"` and
|
|
119
|
+
* `POPOVER_STYLE`; whoever draws it decides when it is open.
|
|
120
|
+
*/
|
|
121
|
+
export function useTopLayer(pane, open, anchor, options = {}) {
|
|
122
|
+
const align = options.align ?? "end";
|
|
123
|
+
useLayoutEffect(() => {
|
|
124
|
+
const element = pane.current;
|
|
125
|
+
if (!open || !element)
|
|
126
|
+
return;
|
|
127
|
+
if (supportsTopLayer(element) && !inTopLayer(element)) {
|
|
128
|
+
try {
|
|
129
|
+
element.showPopover();
|
|
130
|
+
// The notices stay over it: the ladder's top rung is theirs.
|
|
131
|
+
raiseAgain();
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
// Not connected, or shown already: the ladder's rung still holds it over every rail.
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
let frame = 0;
|
|
138
|
+
const place = (event) => {
|
|
139
|
+
// The pane's own scrolling moves nothing it hangs from.
|
|
140
|
+
if (event?.target instanceof Node && element.contains(event.target))
|
|
141
|
+
return;
|
|
142
|
+
cancelAnimationFrame(frame);
|
|
143
|
+
frame = requestAnimationFrame(() => placePane(element, anchor, { align }));
|
|
144
|
+
};
|
|
145
|
+
placePane(element, anchor, { align });
|
|
146
|
+
addEventListener("resize", place);
|
|
147
|
+
addEventListener("scroll", place, true);
|
|
148
|
+
const watch = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(() => place());
|
|
149
|
+
watch?.observe(element);
|
|
150
|
+
return () => {
|
|
151
|
+
cancelAnimationFrame(frame);
|
|
152
|
+
removeEventListener("resize", place);
|
|
153
|
+
removeEventListener("scroll", place, true);
|
|
154
|
+
watch?.disconnect();
|
|
155
|
+
if (element.isConnected && inTopLayer(element)) {
|
|
156
|
+
try {
|
|
157
|
+
element.hidePopover();
|
|
158
|
+
}
|
|
159
|
+
catch {
|
|
160
|
+
// Gone already.
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
// The anchor is read when placing, not watched: a new function each render is the same anchor.
|
|
165
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
166
|
+
}, [open, pane, align]);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* WHAT STANDS OVER A POPOVER: the notices (FR-75), the ladder's top rung.
|
|
170
|
+
* The top layer is ordered by when a thing was shown, so a popover opened
|
|
171
|
+
* after a toast would stand over it; each element here is shown again,
|
|
172
|
+
* over it, the moment a popover of the family opens.
|
|
173
|
+
*/
|
|
174
|
+
const raised = new Set();
|
|
175
|
+
/** Keeps an element in the top layer over any popover that opens after it; returns the way to stop. */
|
|
176
|
+
export function raiseOverPopovers(element) {
|
|
177
|
+
raised.add(element);
|
|
178
|
+
return () => raised.delete(element);
|
|
179
|
+
}
|
|
180
|
+
function raiseAgain() {
|
|
181
|
+
for (const element of raised) {
|
|
182
|
+
if (!element.isConnected || !inTopLayer(element))
|
|
183
|
+
continue;
|
|
184
|
+
try {
|
|
185
|
+
element.hidePopover();
|
|
186
|
+
element.showPopover();
|
|
187
|
+
}
|
|
188
|
+
catch {
|
|
189
|
+
// Not shown after all: nothing to raise.
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* THE ONE OPEN POPOVER, page-wide. Opening one closes the one before it —
|
|
195
|
+
* two embeds on a page included — so a profile and a problems list are
|
|
196
|
+
* never open over each other, each sure it is the one on top.
|
|
197
|
+
*/
|
|
198
|
+
let current = null;
|
|
199
|
+
/** Where the keyboard can land inside a pane. */
|
|
200
|
+
const FOCUSABLE = 'button:not([disabled]), [href], input:not([disabled]):not([type="hidden"]), select:not([disabled]), textarea:not([disabled]), summary, [tabindex]:not([tabindex="-1"])';
|
|
201
|
+
/** The first thing in the pane the keyboard can stand on, or the pane itself. */
|
|
202
|
+
function firstStop(pane) {
|
|
203
|
+
for (const candidate of pane.querySelectorAll(FOCUSABLE)) {
|
|
204
|
+
// Not one that is hidden, or inside something hidden (a closed setting's own pane).
|
|
205
|
+
if (candidate.closest("[hidden]") === null && getComputedStyle(candidate).visibility !== "hidden")
|
|
206
|
+
return candidate;
|
|
207
|
+
}
|
|
208
|
+
return pane;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* ONE FAMILY OF POPOVERS (FR-77).
|
|
212
|
+
*
|
|
213
|
+
* Every popover had its own way of closing: the profile closed on a press
|
|
214
|
+
* outside it, the districts on a pointer down, the menu at the pointer a
|
|
215
|
+
* frame late; one gave the keyboard back to its button and the next left
|
|
216
|
+
* it on `<body>`; none moved the keyboard in when it opened, so a person
|
|
217
|
+
* working from the keyboard opened the profile and was still on its button;
|
|
218
|
+
* and two could be open at once. This is the one way, and every popover in
|
|
219
|
+
* `POPOVERS` uses it:
|
|
220
|
+
*
|
|
221
|
+
* one at a time — opening one closes any other, page-wide;
|
|
222
|
+
* the keyboard goes in — to the pane's first control, or the pane;
|
|
223
|
+
* Escape closes it, and so does a press anywhere that is not the pane or
|
|
224
|
+
* its trigger (nor a dialog the pane opened); the keyboard goes back to
|
|
225
|
+
* the trigger when it was inside the pane or the press left it nowhere;
|
|
226
|
+
* it hangs from its trigger, in the top layer (`useTopLayer`), turned
|
|
227
|
+
* over when there is more room above and no taller than the room, so
|
|
228
|
+
* no row of it is ever under the viewport's edge.
|
|
229
|
+
*/
|
|
230
|
+
export function usePopover(name, options = {}) {
|
|
231
|
+
const { at, returnTo, onOpenChange } = options;
|
|
232
|
+
const enabled = options.popover !== false;
|
|
233
|
+
const [held, setHeld] = useState(false);
|
|
234
|
+
const open = options.open ?? held;
|
|
235
|
+
const triggerRef = useRef(null);
|
|
236
|
+
const paneRef = useRef(null);
|
|
237
|
+
// Callbacks, so a button, a section or a list can each carry them.
|
|
238
|
+
const holdTrigger = useCallback((element) => {
|
|
239
|
+
triggerRef.current = element;
|
|
240
|
+
}, []);
|
|
241
|
+
const holdPane = useCallback((element) => {
|
|
242
|
+
paneRef.current = element;
|
|
243
|
+
}, []);
|
|
244
|
+
const id = `graview-popover-${useId().replace(/:/g, "")}`;
|
|
245
|
+
const latest = useRef({ onOpenChange, returnTo, controlled: options.open !== undefined });
|
|
246
|
+
latest.current = { onOpenChange, returnTo, controlled: options.open !== undefined };
|
|
247
|
+
const change = useCallback((next) => {
|
|
248
|
+
if (!latest.current.controlled)
|
|
249
|
+
setHeld(next);
|
|
250
|
+
latest.current.onOpenChange?.(next);
|
|
251
|
+
}, []);
|
|
252
|
+
/** Closes it; the keyboard goes back to where it came from when it was inside, or nowhere. */
|
|
253
|
+
const close = useCallback((giveBack) => {
|
|
254
|
+
const pane = paneRef.current;
|
|
255
|
+
const active = typeof document === "undefined" ? null : document.activeElement;
|
|
256
|
+
const lost = active === null || active === document.body || (pane !== null && pane.contains(active));
|
|
257
|
+
change(false);
|
|
258
|
+
if (!giveBack || !lost)
|
|
259
|
+
return;
|
|
260
|
+
const back = triggerRef.current ?? latest.current.returnTo?.() ?? null;
|
|
261
|
+
back?.focus({ preventScroll: true });
|
|
262
|
+
}, [change]);
|
|
263
|
+
useTopLayer(paneRef, enabled && open, at ?? triggerRef, options.align ? { align: options.align } : {});
|
|
264
|
+
useEffect(() => {
|
|
265
|
+
if (!enabled || !open)
|
|
266
|
+
return;
|
|
267
|
+
const me = { name, close: () => close(false) };
|
|
268
|
+
if (current && current.close !== me.close)
|
|
269
|
+
current.close();
|
|
270
|
+
current = me;
|
|
271
|
+
/* The keyboard goes in, unless it stays in a combobox's box. */
|
|
272
|
+
if (POPOVERS[name].focus === "into") {
|
|
273
|
+
const pane = paneRef.current;
|
|
274
|
+
if (pane && !pane.contains(document.activeElement))
|
|
275
|
+
firstStop(pane).focus({ preventScroll: true });
|
|
276
|
+
}
|
|
277
|
+
const key = (event) => {
|
|
278
|
+
if (event.key !== "Escape")
|
|
279
|
+
return;
|
|
280
|
+
close(true);
|
|
281
|
+
};
|
|
282
|
+
const away = (event) => {
|
|
283
|
+
const target = event.target;
|
|
284
|
+
if (!(target instanceof Node))
|
|
285
|
+
return;
|
|
286
|
+
const pane = paneRef.current;
|
|
287
|
+
if (pane?.contains(target) || triggerRef.current?.contains(target))
|
|
288
|
+
return;
|
|
289
|
+
/*
|
|
290
|
+
* A CONTROL IN HERE MAY OPEN SOMETHING BIGGER THAN HERE: the studio is
|
|
291
|
+
* a dialog its button in the profile opens, portalled to the body, and
|
|
292
|
+
* a press inside it is not a press away from the pane that opened it.
|
|
293
|
+
* A dialog the pane itself stands in (the studio's own seat) is not
|
|
294
|
+
* that: a press elsewhere in it is away.
|
|
295
|
+
*/
|
|
296
|
+
const dialog = target instanceof Element ? target.closest('[role="dialog"], [role="alertdialog"]') : null;
|
|
297
|
+
if (dialog && !(pane && dialog.contains(pane)))
|
|
298
|
+
return;
|
|
299
|
+
close(false);
|
|
300
|
+
/*
|
|
301
|
+
* A press on something that takes the keyboard keeps it; a press on
|
|
302
|
+
* bare ground gives it back to the trigger. Not to a combobox's box: a
|
|
303
|
+
* press away from a text box is leaving it, and putting the keyboard
|
|
304
|
+
* back in would open its list again.
|
|
305
|
+
*/
|
|
306
|
+
if (POPOVERS[name].focus !== "into")
|
|
307
|
+
return;
|
|
308
|
+
requestAnimationFrame(() => {
|
|
309
|
+
const active = document.activeElement;
|
|
310
|
+
if (active === null || active === document.body || (pane !== null && pane.contains(active))) {
|
|
311
|
+
(triggerRef.current ?? latest.current.returnTo?.() ?? null)?.focus({ preventScroll: true });
|
|
312
|
+
}
|
|
313
|
+
});
|
|
314
|
+
};
|
|
315
|
+
/*
|
|
316
|
+
* A DIALOG IT OPENED TAKES OVER. The studio is a dialog its button in
|
|
317
|
+
* the profile opens; in the top layer the profile stood over it and
|
|
318
|
+
* covered its bar. When the keyboard goes into a dialog the pane does
|
|
319
|
+
* not hold, the pane closes (it stays mounted where its owner keeps it
|
|
320
|
+
* so, and the dialog with it), and when that dialog is gone and has left
|
|
321
|
+
* the keyboard nowhere — its way back was a control in the closed pane —
|
|
322
|
+
* the keyboard goes to the trigger.
|
|
323
|
+
*/
|
|
324
|
+
let handedTo = null;
|
|
325
|
+
let watching = null;
|
|
326
|
+
const takenOver = (event) => {
|
|
327
|
+
const target = event.target;
|
|
328
|
+
if (!(target instanceof Element))
|
|
329
|
+
return;
|
|
330
|
+
const pane = paneRef.current;
|
|
331
|
+
const dialog = target.closest('[role="dialog"], [role="alertdialog"]');
|
|
332
|
+
if (!dialog || (pane && (pane.contains(dialog) || dialog.contains(pane))))
|
|
333
|
+
return;
|
|
334
|
+
handedTo = dialog;
|
|
335
|
+
close(false);
|
|
336
|
+
};
|
|
337
|
+
document.addEventListener("keydown", key);
|
|
338
|
+
document.addEventListener("pointerdown", away, true);
|
|
339
|
+
document.addEventListener("focusin", takenOver);
|
|
340
|
+
return () => {
|
|
341
|
+
document.removeEventListener("keydown", key);
|
|
342
|
+
document.removeEventListener("pointerdown", away, true);
|
|
343
|
+
document.removeEventListener("focusin", takenOver);
|
|
344
|
+
const dialog = handedTo;
|
|
345
|
+
if (dialog && typeof MutationObserver !== "undefined") {
|
|
346
|
+
watching?.disconnect();
|
|
347
|
+
watching = new MutationObserver(() => {
|
|
348
|
+
if (dialog.isConnected)
|
|
349
|
+
return;
|
|
350
|
+
watching?.disconnect();
|
|
351
|
+
requestAnimationFrame(() => {
|
|
352
|
+
const active = document.activeElement;
|
|
353
|
+
const lost = active === null || active === document.body || (active instanceof HTMLElement && active.closest("[hidden]") !== null);
|
|
354
|
+
if (lost)
|
|
355
|
+
(triggerRef.current ?? latest.current.returnTo?.() ?? null)?.focus({ preventScroll: true });
|
|
356
|
+
});
|
|
357
|
+
});
|
|
358
|
+
watching.observe(document.body, { childList: true, subtree: true });
|
|
359
|
+
// Given up after a while: a dialog left open for good is not waited on.
|
|
360
|
+
setTimeout(() => watching?.disconnect(), 10 * 60_000);
|
|
361
|
+
}
|
|
362
|
+
if (current?.close === me.close)
|
|
363
|
+
current = null;
|
|
364
|
+
};
|
|
365
|
+
}, [enabled, open, name, close]);
|
|
366
|
+
return {
|
|
367
|
+
open,
|
|
368
|
+
setOpen: (next) => (next ? change(true) : close(true)),
|
|
369
|
+
toggle: () => (open ? close(true) : change(true)),
|
|
370
|
+
trigger: { ref: holdTrigger, "aria-expanded": open, "aria-controls": id, "data-graview-popover-trigger": name },
|
|
371
|
+
pane: { ref: holdPane, id, popover: "manual", tabIndex: -1, "data-graview-popover": name, "data-graview-overlay": "" },
|
|
372
|
+
};
|
|
373
|
+
}
|
|
374
|
+
//# sourceMappingURL=popover.js.map
|