@mongodb-js/compass-components 0.9.1 → 0.10.0

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 (75) hide show
  1. package/lib/compass-ui-colors.d.ts +2 -0
  2. package/lib/compass-ui-colors.d.ts.map +1 -0
  3. package/lib/compass-ui-colors.js +2 -1
  4. package/lib/compass-ui-colors.js.map +1 -1
  5. package/lib/components/accordion.d.ts +1 -0
  6. package/lib/components/accordion.d.ts.map +1 -0
  7. package/lib/components/accordion.js +5 -5
  8. package/lib/components/accordion.js.map +1 -1
  9. package/lib/components/cancel-loader.d.ts +1 -0
  10. package/lib/components/cancel-loader.d.ts.map +1 -0
  11. package/lib/components/cancel-loader.js +5 -5
  12. package/lib/components/cancel-loader.js.map +1 -1
  13. package/lib/components/confirmation-modal.d.ts +1 -0
  14. package/lib/components/confirmation-modal.d.ts.map +1 -0
  15. package/lib/components/content-with-fallback.d.ts +1 -0
  16. package/lib/components/content-with-fallback.d.ts.map +1 -0
  17. package/lib/components/error-boundary.d.ts +17 -0
  18. package/lib/components/error-boundary.d.ts.map +1 -0
  19. package/lib/components/error-boundary.js +42 -0
  20. package/lib/components/error-boundary.js.map +1 -0
  21. package/lib/components/file-input.d.ts +7 -2
  22. package/lib/components/file-input.d.ts.map +1 -0
  23. package/lib/components/file-input.js +80 -50
  24. package/lib/components/file-input.js.map +1 -1
  25. package/lib/components/icons/favorite-icon.d.ts +9 -0
  26. package/lib/components/icons/favorite-icon.d.ts.map +1 -0
  27. package/lib/components/icons/favorite-icon.js +18 -0
  28. package/lib/components/icons/favorite-icon.js.map +1 -0
  29. package/lib/components/inline-definition.d.ts +1 -0
  30. package/lib/components/inline-definition.d.ts.map +1 -0
  31. package/lib/components/placeholder.d.ts +3 -1
  32. package/lib/components/placeholder.d.ts.map +1 -0
  33. package/lib/components/placeholder.js.map +1 -1
  34. package/lib/components/resize-handle.d.ts +1 -0
  35. package/lib/components/resize-handle.d.ts.map +1 -0
  36. package/lib/components/resize-handle.js +5 -5
  37. package/lib/components/resize-handle.js.map +1 -1
  38. package/lib/components/spin-loader.d.ts +1 -0
  39. package/lib/components/spin-loader.d.ts.map +1 -0
  40. package/lib/components/spin-loader.js +3 -3
  41. package/lib/components/spin-loader.js.map +1 -1
  42. package/lib/components/tooltip.d.ts +1 -0
  43. package/lib/components/tooltip.d.ts.map +1 -0
  44. package/lib/components/virtual-grid.d.ts +26 -0
  45. package/lib/components/virtual-grid.d.ts.map +1 -0
  46. package/lib/components/virtual-grid.js +136 -0
  47. package/lib/components/virtual-grid.js.map +1 -0
  48. package/lib/hooks/use-default-action.d.ts +3 -0
  49. package/lib/hooks/use-default-action.d.ts.map +1 -0
  50. package/lib/hooks/use-default-action.js +25 -0
  51. package/lib/hooks/use-default-action.js.map +1 -0
  52. package/lib/hooks/use-dom-rect.d.ts +1 -0
  53. package/lib/hooks/use-dom-rect.d.ts.map +1 -0
  54. package/lib/hooks/use-focus-hover.d.ts +2 -1
  55. package/lib/hooks/use-focus-hover.d.ts.map +1 -0
  56. package/lib/hooks/use-focus-hover.js.map +1 -1
  57. package/lib/hooks/use-focus-ring.d.ts +5 -0
  58. package/lib/hooks/use-focus-ring.d.ts.map +1 -0
  59. package/lib/hooks/use-focus-ring.js +38 -0
  60. package/lib/hooks/use-focus-ring.js.map +1 -0
  61. package/lib/hooks/use-virtual-grid.d.ts +14 -0
  62. package/lib/hooks/use-virtual-grid.d.ts.map +1 -0
  63. package/lib/hooks/use-virtual-grid.js +122 -0
  64. package/lib/hooks/use-virtual-grid.js.map +1 -0
  65. package/lib/hooks/use-virtual-grid.test.d.ts +2 -0
  66. package/lib/hooks/use-virtual-grid.test.d.ts.map +1 -0
  67. package/lib/hooks/use-virtual-grid.test.js +209 -0
  68. package/lib/hooks/use-virtual-grid.test.js.map +1 -0
  69. package/lib/index.d.ts +9 -1
  70. package/lib/index.d.ts.map +1 -0
  71. package/lib/index.js +29 -14
  72. package/lib/index.js.map +1 -1
  73. package/lib/utils/merge-props.d.ts +2 -1
  74. package/lib/utils/merge-props.d.ts.map +1 -0
  75. package/package.json +12 -12
@@ -1 +1 @@
1
- {"version":3,"file":"resize-handle.js","sourceRoot":"","sources":["../../src/components/resize-handle.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resize-handle.js","sourceRoot":"","sources":["../../src/components/resize-handle.tsx"],"names":[],"mappings":"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"}
@@ -10,3 +10,4 @@ export default class SpinLoader extends Component<SpinLoaderProps> {
10
10
  render(): JSX.Element;
11
11
  }
12
12
  export {};
13
+ //# sourceMappingURL=spin-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spin-loader.d.ts","sourceRoot":"","sources":["../../src/components/spin-loader.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIzC,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAmBD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,SAAS,CAAC,eAAe,CAAC;IAChE,MAAM,CAAC,YAAY;;MAEjB;IAEF,MAAM,IAAI,GAAG,CAAC,OAAO;CAatB"}
@@ -20,13 +20,13 @@ var __importStar = (this && this.__importStar) || function (mod) {
20
20
  };
21
21
  Object.defineProperty(exports, "__esModule", { value: true });
22
22
  const react_1 = __importStar(require("react"));
23
- const css_1 = require("@emotion/css");
23
+ const emotion_1 = require("@leafygreen-ui/emotion");
24
24
  const palette_1 = require("@leafygreen-ui/palette");
25
- const shellLoaderSpin = (0, css_1.keyframes) `
25
+ const shellLoaderSpin = (0, emotion_1.keyframes) `
26
26
  0% { transform: rotate(0deg); }
27
27
  100% { transform: rotate(360deg); }
28
28
  `;
29
- const spinLoaderStyle = (0, css_1.css) `
29
+ const spinLoaderStyle = (0, emotion_1.css) `
30
30
  border: 2px solid transparent;
31
31
  border-top: 2px solid ${palette_1.uiColors.gray.dark3};
32
32
  border-radius: 50%;
@@ -1 +1 @@
1
- {"version":3,"file":"spin-loader.js","sourceRoot":"","sources":["../../src/components/spin-loader.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,+CAAyC;AACzC,sCAA8C;AAC9C,oDAAkD;AAOlD,MAAM,eAAe,GAAG,IAAA,eAAS,EAAA;;;CAGhC,CAAC;AAEF,MAAM,eAAe,GAAG,IAAA,SAAG,EAAA;;0BAED,kBAAQ,CAAC,IAAI,CAAC,KAAK;;;;;;;eAO9B,eAAe;CAC7B,CAAC;AAEF,MAAqB,UAAW,SAAQ,iBAA0B;IAKhE,MAAM;QACJ,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAE5B,OAAO,CACL,uCACE,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE;gBACL,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,IAAI;aACb,GACD,CACH,CAAC;IACJ,CAAC;;AAjBH,6BAkBC;AAjBQ,uBAAY,GAAG;IACpB,IAAI,EAAE,MAAM;CACb,CAAC"}
1
+ {"version":3,"file":"spin-loader.js","sourceRoot":"","sources":["../../src/components/spin-loader.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,+CAAyC;AACzC,oDAAwD;AACxD,oDAAkD;AAOlD,MAAM,eAAe,GAAG,IAAA,mBAAS,EAAA;;;CAGhC,CAAC;AAEF,MAAM,eAAe,GAAG,IAAA,aAAG,EAAA;;0BAED,kBAAQ,CAAC,IAAI,CAAC,KAAK;;;;;;;eAO9B,eAAe;CAC7B,CAAC;AAEF,MAAqB,UAAW,SAAQ,iBAA0B;IAKhE,MAAM;QACJ,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAE5B,OAAO,CACL,uCACE,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE;gBACL,KAAK,EAAE,IAAI;gBACX,MAAM,EAAE,IAAI;aACb,GACD,CACH,CAAC;IACJ,CAAC;;AAjBH,6BAkBC;AAjBQ,uBAAY,GAAG;IACpB,IAAI,EAAE,MAAM;CACb,CAAC"}
@@ -11,3 +11,4 @@ declare const Tooltip: React.FunctionComponent<TooltipTriggerProps & Omit<LeafyG
11
11
  trigger: TooltipTrigger;
12
12
  }>;
13
13
  export { Tooltip };
14
+ //# sourceMappingURL=tooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../src/components/tooltip.tsx"],"names":[],"mappings":"AAGA,OAAO,iBAAiB,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAA8B,MAAM,OAAO,CAAC;AAMnD,aAAK,mBAAmB,GAAG;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAKF,aAAK,sBAAsB,GAAG,KAAK,CAAC,wBAAwB,CAC1D,OAAO,iBAAiB,CACzB,CAAC;AAEF,aAAK,cAAc,GAAG,KAAK,CAAC,iBAAiB,CAAC;AAE9C,QAAA,MAAM,OAAO,EAAE,KAAK,CAAC,iBAAiB,CACpC,mBAAmB,GACjB,IAAI,CAAC,sBAAsB,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC,GAAG;IAC7D,OAAO,EAAE,cAAc,CAAC;CACzB,CAkCJ,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ declare type RenderItem = React.FunctionComponent<React.HTMLProps<HTMLDivElement> & {
3
+ index: number;
4
+ ['data-vlist-item-idx']: number;
5
+ }>;
6
+ declare type RenderHeader = React.FunctionComponent;
7
+ declare type VirtualGridProps = {
8
+ itemMinWidth: number;
9
+ itemHeight: number;
10
+ itemsCount: number;
11
+ colCount?: number;
12
+ renderItem: RenderItem;
13
+ headerHeight?: number;
14
+ renderHeader?: RenderHeader;
15
+ overscanCount?: number;
16
+ classNames?: {
17
+ container?: string;
18
+ header?: string;
19
+ grid?: string;
20
+ row?: string;
21
+ cell?: string;
22
+ };
23
+ };
24
+ export declare const VirtualGrid: React.ForwardRefExoticComponent<Pick<VirtualGridProps & Omit<React.HTMLProps<HTMLDivElement>, keyof VirtualGridProps>, "height" | "color" | "content" | "translate" | "width" | "start" | "hidden" | "default" | "cite" | "data" | "form" | "label" | "slot" | "span" | "style" | "summary" | "title" | "pattern" | "children" | "className" | "onClick" | "name" | "open" | "id" | "onChange" | "disabled" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "list" | "step" | "download" | "href" | "hrefLang" | "media" | "rel" | "target" | "type" | "as" | "max" | "method" | "min" | "crossOrigin" | "classID" | "useMap" | "wmode" | "cellPadding" | "cellSpacing" | "autoFocus" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "value" | "integrity" | "sizes" | "charSet" | "alt" | "coords" | "shape" | "autoPlay" | "controls" | "loop" | "mediaGroup" | "muted" | "playsInline" | "preload" | "src" | "dateTime" | "acceptCharset" | "action" | "autoComplete" | "encType" | "noValidate" | "manifest" | "allowFullScreen" | "allowTransparency" | "frameBorder" | "marginHeight" | "marginWidth" | "sandbox" | "scrolling" | "seamless" | "srcDoc" | "srcSet" | "async" | "accept" | "capture" | "checked" | "maxLength" | "minLength" | "multiple" | "readOnly" | "required" | "size" | "challenge" | "keyType" | "keyParams" | "htmlFor" | "httpEquiv" | "high" | "low" | "optimum" | "reversed" | "selected" | "defer" | "nonce" | "scoped" | "colSpan" | "headers" | "rowSpan" | "scope" | "cols" | "rows" | "wrap" | "kind" | "srcLang" | "poster" | keyof VirtualGridProps> & React.RefAttributes<HTMLDivElement>>;
25
+ export {};
26
+ //# sourceMappingURL=virtual-grid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtual-grid.d.ts","sourceRoot":"","sources":["../../src/components/virtual-grid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAUf,aAAK,UAAU,GAAG,KAAK,CAAC,iBAAiB,CACvC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;CACjC,CACF,CAAC;AACF,aAAK,YAAY,GAAG,KAAK,CAAC,iBAAiB,CAAC;AAE5C,aAAK,gBAAgB,GAAG;IAKtB,YAAY,EAAE,MAAM,CAAC;IAIrB,UAAU,EAAE,MAAM,CAAC;IAInB,UAAU,EAAE,MAAM,CAAC;IAKnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAMlB,UAAU,EAAE,UAAU,CAAC;IAIvB,YAAY,CAAC,EAAE,MAAM,CAAC;IAKtB,YAAY,CAAC,EAAE,YAAY,CAAC;IAI5B,aAAa,CAAC,EAAE,MAAM,CAAC;IAIvB,UAAU,CAAC,EAAE;QACX,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;AAmIF,eAAO,MAAM,WAAW,s5LAyFtB,CAAC"}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.VirtualGrid = void 0;
23
+ const react_1 = __importStar(require("react"));
24
+ const emotion_1 = require("@leafygreen-ui/emotion");
25
+ const react_window_1 = require("react-window");
26
+ const use_dom_rect_1 = require("../hooks/use-dom-rect");
27
+ const use_virtual_grid_1 = require("../hooks/use-virtual-grid");
28
+ const merge_props_1 = require("../utils/merge-props");
29
+ const GridContext = (0, react_1.createContext)({
30
+ headerHeight: 0,
31
+ renderHeader: () => null,
32
+ renderItem: () => null,
33
+ itemsCount: 0,
34
+ rowCount: 0,
35
+ colCount: 0,
36
+ currentTabbable: 0,
37
+ gridProps: {},
38
+ });
39
+ const GridWithHeader = (0, react_1.forwardRef)(function GridHeader({ style, children, ...props }, ref) {
40
+ const { headerHeight, renderHeader, gridProps, classNames } = (0, react_1.useContext)(GridContext);
41
+ return (react_1.default.createElement("div", { ref: ref, style: {
42
+ ...style,
43
+ height: style.height + headerHeight,
44
+ }, ...props },
45
+ react_1.default.createElement("div", { className: classNames === null || classNames === void 0 ? void 0 : classNames.header }, react_1.default.createElement(renderHeader, {})),
46
+ react_1.default.createElement("div", { ...gridProps }, children)));
47
+ });
48
+ const row = (0, emotion_1.css)({
49
+ display: 'grid',
50
+ alignItems: 'stretch',
51
+ gridTemplateRows: 'auto',
52
+ gridTemplateColumns: '1fr',
53
+ gridAutoColumns: '1fr',
54
+ gridAutoFlow: 'column',
55
+ });
56
+ const cell = (0, emotion_1.css)({
57
+ width: '100%',
58
+ minWidth: 0,
59
+ });
60
+ const Row = ({ style, index }) => {
61
+ const { colCount, itemsCount, renderItem, currentTabbable, classNames } = (0, react_1.useContext)(GridContext);
62
+ const rowStart = index * colCount;
63
+ const cells = (0, react_1.useMemo)(() => {
64
+ return Array.from({ length: colCount }, (_, cellIdx) => {
65
+ const itemIdx = rowStart + cellIdx;
66
+ const isEmpty = itemIdx >= itemsCount;
67
+ return isEmpty ? (react_1.default.createElement("div", { className: (0, emotion_1.cx)(cell, classNames === null || classNames === void 0 ? void 0 : classNames.cell), key: `empty${cellIdx}` })) : (react_1.default.createElement(renderItem, {
68
+ role: 'gridcell',
69
+ className: (0, emotion_1.cx)(cell, classNames === null || classNames === void 0 ? void 0 : classNames.cell),
70
+ tabIndex: itemIdx === currentTabbable ? 0 : -1,
71
+ ['data-vlist-item-idx']: itemIdx,
72
+ index: itemIdx,
73
+ }));
74
+ });
75
+ }, [
76
+ colCount,
77
+ rowStart,
78
+ itemsCount,
79
+ classNames === null || classNames === void 0 ? void 0 : classNames.cell,
80
+ renderItem,
81
+ currentTabbable,
82
+ ]);
83
+ return (react_1.default.createElement("div", { style: style, className: (0, emotion_1.cx)(row, classNames === null || classNames === void 0 ? void 0 : classNames.row), role: "row", "aria-rowindex": index + 1 }, cells));
84
+ };
85
+ const container = (0, emotion_1.css)({
86
+ width: '100%',
87
+ flex: 1,
88
+ overflow: 'hidden',
89
+ display: 'grid',
90
+ gridTemplateRows: 'auto 1fr',
91
+ gridTemplateColumns: '100%',
92
+ outline: 'none',
93
+ });
94
+ const grid = (0, emotion_1.css)({
95
+ position: 'relative',
96
+ });
97
+ exports.VirtualGrid = (0, react_1.forwardRef)(function VirtualGrid({ itemMinWidth, itemHeight, itemsCount, colCount: _colCount, renderItem, headerHeight = 0, renderHeader = () => null, overscanCount = 3, classNames, ...containerProps }, ref) {
98
+ const listRef = (0, react_1.useRef)(null);
99
+ const [rectProps, { width: _width, height }] = (0, use_dom_rect_1.useDOMRect)();
100
+ const width = Math.max(_width, itemMinWidth);
101
+ const colCount = _colCount !== null && _colCount !== void 0 ? _colCount : Math.max(1, Math.floor(width / itemMinWidth));
102
+ const rowCount = Math.ceil(itemsCount / colCount);
103
+ const onFocusMove = (0, react_1.useCallback)((idx) => {
104
+ var _a;
105
+ const rowIdx = Math.floor(idx / colCount);
106
+ (_a = listRef.current) === null || _a === void 0 ? void 0 : _a.scrollToItem(rowIdx);
107
+ }, [listRef, colCount]);
108
+ const [navigationProps, currentTabbable] = (0, use_virtual_grid_1.useVirtualGridArrowNavigation)({
109
+ itemsCount,
110
+ colCount,
111
+ rowCount,
112
+ });
113
+ const rovingFocusProps = (0, use_virtual_grid_1.useVirtualRovingTabIndex)({
114
+ currentTabbable,
115
+ onFocusMove,
116
+ });
117
+ const gridContainerProps = (0, merge_props_1.mergeProps)({ ref, className: (0, emotion_1.cx)(container, classNames === null || classNames === void 0 ? void 0 : classNames.container) }, containerProps, rectProps);
118
+ return (react_1.default.createElement(GridContext.Provider, { value: {
119
+ rowCount,
120
+ colCount,
121
+ itemsCount,
122
+ renderItem,
123
+ headerHeight,
124
+ renderHeader,
125
+ currentTabbable,
126
+ classNames,
127
+ gridProps: (0, merge_props_1.mergeProps)({
128
+ role: 'grid',
129
+ 'aria-rowcount': rowCount,
130
+ className: (0, emotion_1.cx)(grid, classNames === null || classNames === void 0 ? void 0 : classNames.grid),
131
+ }, navigationProps, rovingFocusProps),
132
+ } },
133
+ react_1.default.createElement("div", { ...gridContainerProps },
134
+ react_1.default.createElement(react_window_1.FixedSizeList, { ref: listRef, width: width, height: height, innerElementType: GridWithHeader, itemCount: rowCount, itemSize: itemHeight, overscanCount: overscanCount }, Row))));
135
+ });
136
+ //# sourceMappingURL=virtual-grid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtual-grid.js","sourceRoot":"","sources":["../../src/components/virtual-grid.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,+CAOe;AACf,oDAAiD;AACjD,+CAA6C;AAC7C,wDAAmD;AACnD,gEAGmC;AACnC,sDAAkD;AA4DlD,MAAM,WAAW,GAAG,IAAA,qBAAa,EAW/B;IACA,YAAY,EAAE,CAAC;IACf,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI;IACxB,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI;IACtB,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC;IACX,eAAe,EAAE,CAAC;IAClB,SAAS,EAAE,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,IAAA,kBAAU,EAS/B,SAAS,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG;IACtD,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,GACzD,IAAA,kBAAU,EAAC,WAAW,CAAC,CAAC;IAC1B,OAAO,CACL,uCACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE;YACL,GAAG,KAAK;YACR,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,YAAY;SACpC,KACG,KAAK;QAET,uCAAK,SAAS,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,IAC/B,eAAK,CAAC,aAAa,CAAC,YAAY,EAAE,EAAE,CAAC,CAClC;QACN,0CAAS,SAAS,IAAG,QAAQ,CAAO,CAChC,CACP,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,GAAG,GAAG,IAAA,aAAG,EAAC;IACd,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,SAAS;IACrB,gBAAgB,EAAE,MAAM;IACxB,mBAAmB,EAAE,KAAK;IAC1B,eAAe,EAAE,KAAK;IACtB,YAAY,EAAE,QAAQ;CACvB,CAAC,CAAC;AAEH,MAAM,IAAI,GAAG,IAAA,aAAG,EAAC;IACf,KAAK,EAAE,MAAM;IACb,QAAQ,EAAE,CAAC;CACZ,CAAC,CAAC;AAEH,MAAM,GAAG,GAGJ,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;IACxB,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,GACrE,IAAA,kBAAU,EAAC,WAAW,CAAC,CAAC;IAC1B,MAAM,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;IAClC,MAAM,KAAK,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACzB,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE;YACrD,MAAM,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;YACnC,MAAM,OAAO,GAAG,OAAO,IAAI,UAAU,CAAC;YACtC,OAAO,OAAO,CAAC,CAAC,CAAC,CACf,uCACE,SAAS,EAAE,IAAA,YAAE,EAAC,IAAI,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,CAAC,EACrC,GAAG,EAAE,QAAQ,OAAO,EAAE,GACjB,CACR,CAAC,CAAC,CAAC,CACF,eAAK,CAAC,aAAa,CAAC,UAAU,EAAE;gBAC9B,IAAI,EAAE,UAAU;gBAChB,SAAS,EAAE,IAAA,YAAE,EAAC,IAAI,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,CAAC;gBACrC,QAAQ,EAAE,OAAO,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC9C,CAAC,qBAAqB,CAAC,EAAE,OAAO;gBAChC,KAAK,EAAE,OAAO;aACf,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,EAAE;QACD,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI;QAChB,UAAU;QACV,eAAe;KAChB,CAAC,CAAC;IAEH,OAAO,CACL,uCACE,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,IAAA,YAAE,EAAC,GAAG,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,GAAG,CAAC,EACnC,IAAI,EAAC,KAAK,mBACK,KAAK,GAAG,CAAC,IAEvB,KAAK,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,IAAA,aAAG,EAAC;IACpB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,CAAC;IACP,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,MAAM;IACf,gBAAgB,EAAE,UAAU;IAC5B,mBAAmB,EAAE,MAAM;IAI3B,OAAO,EAAE,MAAM;CAChB,CAAC,CAAC;AAEH,MAAM,IAAI,GAAG,IAAA,aAAG,EAAC;IACf,QAAQ,EAAE,UAAU;CACrB,CAAC,CAAC;AAEU,QAAA,WAAW,GAAG,IAAA,kBAAU,EAInC,SAAS,WAAW,CACpB,EACE,YAAY,EACZ,UAAU,EACV,UAAU,EACV,QAAQ,EAAE,SAAS,EACnB,UAAU,EACV,YAAY,GAAG,CAAC,EAChB,YAAY,GAAG,GAAG,EAAE,CAAC,IAAI,EACzB,aAAa,GAAG,CAAC,EACjB,UAAU,EACV,GAAG,cAAc,EAClB,EACD,GAAG;IAEH,MAAM,OAAO,GAAG,IAAA,cAAM,EAAuB,IAAI,CAAC,CAAC;IACnD,MAAM,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAA,yBAAU,GAAE,CAAC;IAE5D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC;IAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC;IAElD,MAAM,WAAW,GAAG,IAAA,mBAAW,EAC7B,CAAC,GAAG,EAAE,EAAE;;QACN,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC;QAC1C,MAAA,OAAO,CAAC,OAAO,0CAAE,YAAY,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC,EACD,CAAC,OAAO,EAAE,QAAQ,CAAC,CACpB,CAAC;IAEF,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,GACtC,IAAA,gDAA6B,EAAiB;QAC5C,UAAU;QACV,QAAQ;QACR,QAAQ;KACT,CAAC,CAAC;IAEL,MAAM,gBAAgB,GAAG,IAAA,2CAAwB,EAAiB;QAChE,eAAe;QACf,WAAW;KACZ,CAAC,CAAC;IAEH,MAAM,kBAAkB,GAAG,IAAA,wBAAU,EACnC,EAAE,GAAG,EAAE,SAAS,EAAE,IAAA,YAAE,EAAC,SAAS,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,SAAS,CAAC,EAAE,EACxD,cAAc,EACd,SAAS,CACV,CAAC;IAEF,OAAO,CACL,8BAAC,WAAW,CAAC,QAAQ,IACnB,KAAK,EAAE;YACL,QAAQ;YACR,QAAQ;YACR,UAAU;YACV,UAAU;YACV,YAAY;YACZ,YAAY;YACZ,eAAe;YACf,UAAU;YACV,SAAS,EAAE,IAAA,wBAAU,EACnB;gBACE,IAAI,EAAE,MAAM;gBACZ,eAAe,EAAE,QAAQ;gBACzB,SAAS,EAAE,IAAA,YAAE,EAAC,IAAI,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,CAAC;aACtC,EACD,eAAe,EACf,gBAAgB,CACjB;SACF;QAED,0CAAS,kBAAkB;YACzB,8BAAC,4BAAa,IACZ,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,cAAc,EAChC,SAAS,EAAE,QAAQ,EACnB,QAAQ,EAAE,UAAU,EACpB,aAAa,EAAE,aAAa,IAE3B,GAAG,CACU,CACZ,CACe,CACxB,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ export declare function useDefaultAction<T>(onDefaultAction: (evt: React.KeyboardEvent<T> | React.MouseEvent<T>) => void): React.HTMLAttributes<T>;
3
+ //# sourceMappingURL=use-default-action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-default-action.d.ts","sourceRoot":"","sources":["../../src/hooks/use-default-action.ts"],"names":[],"mappings":";AAUA,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,eAAe,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,GAC3E,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAiCzB"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useDefaultAction = void 0;
4
+ const react_1 = require("react");
5
+ function useDefaultAction(onDefaultAction) {
6
+ const onMouseDown = (0, react_1.useCallback)((evt) => {
7
+ evt.preventDefault();
8
+ evt.stopPropagation();
9
+ }, []);
10
+ const onClick = (0, react_1.useCallback)((evt) => {
11
+ evt.stopPropagation();
12
+ onDefaultAction(evt);
13
+ }, [onDefaultAction]);
14
+ const onKeyDown = (0, react_1.useCallback)((evt) => {
15
+ if (evt.target === evt.currentTarget &&
16
+ [' ', 'Enter'].includes(evt.key)) {
17
+ evt.preventDefault();
18
+ evt.stopPropagation();
19
+ onDefaultAction(evt);
20
+ }
21
+ }, [onDefaultAction]);
22
+ return { onMouseDown, onClick, onKeyDown };
23
+ }
24
+ exports.useDefaultAction = useDefaultAction;
25
+ //# sourceMappingURL=use-default-action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-default-action.js","sourceRoot":"","sources":["../../src/hooks/use-default-action.ts"],"names":[],"mappings":";;;AAAA,iCAAoC;AAUpC,SAAgB,gBAAgB,CAC9B,eAA4E;IAK5E,MAAM,WAAW,GAAG,IAAA,mBAAW,EAAC,CAAC,GAAwB,EAAE,EAAE;QAC3D,GAAG,CAAC,cAAc,EAAE,CAAC;QACrB,GAAG,CAAC,eAAe,EAAE,CAAC;IACxB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,OAAO,GAAG,IAAA,mBAAW,EACzB,CAAC,GAAwB,EAAE,EAAE;QAC3B,GAAG,CAAC,eAAe,EAAE,CAAC;QACtB,eAAe,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC,EACD,CAAC,eAAe,CAAC,CAClB,CAAC;IAEF,MAAM,SAAS,GAAG,IAAA,mBAAW,EAC3B,CAAC,GAA2B,EAAE,EAAE;QAC9B,IAEE,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,aAAa;YAChC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAChC;YACA,GAAG,CAAC,cAAc,EAAE,CAAC;YACrB,GAAG,CAAC,eAAe,EAAE,CAAC;YACtB,eAAe,CAAC,GAAG,CAAC,CAAC;SACtB;IACH,CAAC,EACD,CAAC,eAAe,CAAC,CAClB,CAAC;IAEF,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAC7C,CAAC;AAnCD,4CAmCC"}
@@ -3,3 +3,4 @@ export declare function useDOMRect<T extends HTMLElement = HTMLDivElement>(): [
3
3
  React.HTMLProps<T>,
4
4
  DOMRectReadOnly
5
5
  ];
6
+ //# sourceMappingURL=use-dom-rect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-dom-rect.d.ts","sourceRoot":"","sources":["../../src/hooks/use-dom-rect.ts"],"names":[],"mappings":";AAEA,wBAAgB,UAAU,CAAC,CAAC,SAAS,WAAW,GAAG,cAAc,KAAK;IACpE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;IAClB,eAAe;CAChB,CAqBA"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import type React from 'react';
2
2
  export declare enum FocusState {
3
3
  NoFocus = "NoFocus",
4
4
  FocusVisible = "FocusVisible",
@@ -12,3 +12,4 @@ export declare function useFocusState(): [
12
12
  React.MutableRefObject<FocusState>
13
13
  ];
14
14
  export declare function useHoverState(): [React.HTMLAttributes<HTMLElement>, boolean];
15
+ //# sourceMappingURL=use-focus-hover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-focus-hover.d.ts","sourceRoot":"","sources":["../../src/hooks/use-focus-hover.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,oBAAY,UAAU;IACpB,OAAO,YAAY;IACnB,YAAY,iBAAiB;IAC7B,KAAK,UAAU;IACf,kBAAkB,uBAAuB;IACzC,WAAW,gBAAgB;CAC5B;AAkBD,wBAAgB,aAAa,IAAI;IAC/B,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC;IACjC,UAAU;IACV,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC;CACnC,CAoBA;AAED,wBAAgB,aAAa,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,CAW5E"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-focus-hover.js","sourceRoot":"","sources":["../../src/hooks/use-focus-hover.ts"],"names":[],"mappings":";;;AAAA,2DAIkC;AAClC,6CAA+C;AAC/C,iCAAyD;AAEzD,IAAY,UAMX;AAND,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,2CAA6B,CAAA;IAC7B,6BAAe,CAAA;IACf,uDAAyC,CAAA;IACzC,yCAA2B,CAAA;AAC7B,CAAC,EANW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAMrB;AAED,SAAS,aAAa,CACpB,SAAkB,EAClB,aAAsB,EACtB,cAAuB;IAEvB,OAAO,SAAS,IAAI,cAAc;QAChC,CAAC,CAAC,UAAU,CAAC,YAAY;QACzB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,UAAU,CAAC,KAAK;YAClB,CAAC,CAAC,aAAa,IAAI,cAAc;gBACjC,CAAC,CAAC,UAAU,CAAC,kBAAkB;gBAC/B,CAAC,CAAC,aAAa;oBACf,CAAC,CAAC,UAAU,CAAC,WAAW;oBACxB,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;AACzB,CAAC;AAED,SAAgB,aAAa;IAK3B,MAAM,aAAa,GAAG,IAAA,cAAM,EAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,EAAE,cAAc,EAAE,GAAG,IAAA,8BAAe,GAAE,CAAC;IAC7C,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAA,6BAAc,EAAC;QAC1C,mBAAmB,EAAE,gBAAgB;KACtC,CAAC,CAAC;IACH,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,uBAAQ,EAAC;QAC9B,aAAa,EAAE,YAAY;KAC5B,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC/B,OAAO,IAAA,kBAAU,EAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;IAClD,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACnC,aAAa,CAAC,OAAO,GAAG,aAAa,CACnC,SAAS,EACT,aAAa,EACb,cAAc,CACf,CAAC;IACF,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AAC7D,CAAC;AAxBD,sCAwBC;AAED,SAAgB,aAAa;IAC3B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG;QACjB,YAAY;YACV,YAAY,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QACD,YAAY;YACV,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;KACF,CAAC;IACF,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AACjC,CAAC;AAXD,sCAWC"}
1
+ {"version":3,"file":"use-focus-hover.js","sourceRoot":"","sources":["../../src/hooks/use-focus-hover.ts"],"names":[],"mappings":";;;AAAA,2DAIkC;AAClC,6CAA+C;AAE/C,iCAAkD;AAElD,IAAY,UAMX;AAND,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,2CAA6B,CAAA;IAC7B,6BAAe,CAAA;IACf,uDAAyC,CAAA;IACzC,yCAA2B,CAAA;AAC7B,CAAC,EANW,UAAU,GAAV,kBAAU,KAAV,kBAAU,QAMrB;AAED,SAAS,aAAa,CACpB,SAAkB,EAClB,aAAsB,EACtB,cAAuB;IAEvB,OAAO,SAAS,IAAI,cAAc;QAChC,CAAC,CAAC,UAAU,CAAC,YAAY;QACzB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,UAAU,CAAC,KAAK;YAClB,CAAC,CAAC,aAAa,IAAI,cAAc;gBACjC,CAAC,CAAC,UAAU,CAAC,kBAAkB;gBAC/B,CAAC,CAAC,aAAa;oBACf,CAAC,CAAC,UAAU,CAAC,WAAW;oBACxB,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;AACzB,CAAC;AAED,SAAgB,aAAa;IAK3B,MAAM,aAAa,GAAG,IAAA,cAAM,EAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,EAAE,cAAc,EAAE,GAAG,IAAA,8BAAe,GAAE,CAAC;IAC7C,MAAM,EAAE,gBAAgB,EAAE,GAAG,IAAA,6BAAc,EAAC;QAC1C,mBAAmB,EAAE,gBAAgB;KACtC,CAAC,CAAC;IACH,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,uBAAQ,EAAC;QAC9B,aAAa,EAAE,YAAY;KAC5B,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC/B,OAAO,IAAA,kBAAU,EAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;IAClD,CAAC,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC;IACnC,aAAa,CAAC,OAAO,GAAG,aAAa,CACnC,SAAS,EACT,aAAa,EACb,cAAc,CACf,CAAC;IACF,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AAC7D,CAAC;AAxBD,sCAwBC;AAED,SAAgB,aAAa;IAC3B,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG;QACjB,YAAY;YACV,YAAY,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;QACD,YAAY;YACV,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;KACF,CAAC;IACF,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;AACjC,CAAC;AAXD,sCAWC"}
@@ -0,0 +1,5 @@
1
+ import type React from 'react';
2
+ export declare const focusRing: string;
3
+ export declare const focusRingVisible: string;
4
+ export declare function useFocusRing<T extends HTMLElement>(): React.HTMLProps<T>;
5
+ //# sourceMappingURL=use-focus-ring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-focus-ring.d.ts","sourceRoot":"","sources":["../../src/hooks/use-focus-ring.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,eAAO,MAAM,SAAS,QAepB,CAAC;AAEH,eAAO,MAAM,gBAAgB,QAK3B,CAAC;AAEH,wBAAgB,YAAY,CAAC,CAAC,SAAS,WAAW,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAUxE"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useFocusRing = exports.focusRingVisible = exports.focusRing = void 0;
4
+ const tokens_1 = require("@leafygreen-ui/tokens");
5
+ const emotion_1 = require("@leafygreen-ui/emotion");
6
+ const palette_1 = require("@leafygreen-ui/palette");
7
+ const use_focus_hover_1 = require("./use-focus-hover");
8
+ exports.focusRing = (0, emotion_1.css)({
9
+ position: 'relative',
10
+ outline: 'none',
11
+ '&::after': {
12
+ position: 'absolute',
13
+ content: '""',
14
+ pointerEvents: 'none',
15
+ top: 3,
16
+ right: 3,
17
+ bottom: 3,
18
+ left: 3,
19
+ borderRadius: tokens_1.spacing[1],
20
+ boxShadow: `0 0 0 0 ${palette_1.uiColors.focus}`,
21
+ transition: 'box-shadow .16s ease-in',
22
+ },
23
+ });
24
+ exports.focusRingVisible = (0, emotion_1.css)({
25
+ '&::after': {
26
+ boxShadow: `0 0 0 3px ${palette_1.uiColors.focus}`,
27
+ transitionTimingFunction: 'ease-out',
28
+ },
29
+ });
30
+ function useFocusRing() {
31
+ const [focusProps, focusState] = (0, use_focus_hover_1.useFocusState)();
32
+ return {
33
+ ...focusProps,
34
+ className: (0, emotion_1.cx)(exports.focusRing, focusState === use_focus_hover_1.FocusState.FocusVisible && exports.focusRingVisible),
35
+ };
36
+ }
37
+ exports.useFocusRing = useFocusRing;
38
+ //# sourceMappingURL=use-focus-ring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-focus-ring.js","sourceRoot":"","sources":["../../src/hooks/use-focus-ring.ts"],"names":[],"mappings":";;;AACA,kDAAgD;AAChD,oDAAiD;AACjD,oDAAkD;AAClD,uDAA8D;AAEjD,QAAA,SAAS,GAAG,IAAA,aAAG,EAAC;IAC3B,QAAQ,EAAE,UAAU;IACpB,OAAO,EAAE,MAAM;IACf,UAAU,EAAE;QACV,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,IAAI;QACb,aAAa,EAAE,MAAM;QACrB,GAAG,EAAE,CAAC;QACN,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;QACT,IAAI,EAAE,CAAC;QACP,YAAY,EAAE,gBAAO,CAAC,CAAC,CAAC;QACxB,SAAS,EAAE,WAAW,kBAAQ,CAAC,KAAK,EAAE;QACtC,UAAU,EAAE,yBAAyB;KACtC;CACF,CAAC,CAAC;AAEU,QAAA,gBAAgB,GAAG,IAAA,aAAG,EAAC;IAClC,UAAU,EAAE;QACV,SAAS,EAAE,aAAa,kBAAQ,CAAC,KAAK,EAAE;QACxC,wBAAwB,EAAE,UAAU;KACrC;CACF,CAAC,CAAC;AAEH,SAAgB,YAAY;IAC1B,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,GAAG,IAAA,+BAAa,GAAE,CAAC;IAEjD,OAAO;QACL,GAAG,UAAU;QACb,SAAS,EAAE,IAAA,YAAE,EACX,iBAAS,EACT,UAAU,KAAK,4BAAU,CAAC,YAAY,IAAI,wBAAgB,CAC3D;KACF,CAAC;AACJ,CAAC;AAVD,oCAUC"}
@@ -0,0 +1,14 @@
1
+ /// <reference types="react" />
2
+ export declare function useVirtualGridArrowNavigation<T extends HTMLElement = HTMLElement>({ colCount, rowCount, itemsCount, resetActiveItemOnBlur, pageSize, defaultCurrentTabbable, }: {
3
+ colCount: number;
4
+ rowCount: number;
5
+ itemsCount: number;
6
+ resetActiveItemOnBlur?: boolean;
7
+ pageSize?: number;
8
+ defaultCurrentTabbable?: number;
9
+ }): [React.HTMLProps<T>, number];
10
+ export declare function useVirtualRovingTabIndex<T extends HTMLElement = HTMLElement>({ currentTabbable, onFocusMove, }: {
11
+ currentTabbable: number;
12
+ onFocusMove(idx: number): void;
13
+ }): React.HTMLProps<T>;
14
+ //# sourceMappingURL=use-virtual-grid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-virtual-grid.d.ts","sourceRoot":"","sources":["../../src/hooks/use-virtual-grid.ts"],"names":[],"mappings":";AAGA,wBAAgB,6BAA6B,CAC3C,CAAC,SAAS,WAAW,GAAG,WAAW,EACnC,EACA,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,qBAA4B,EAC5B,QAAY,EACZ,sBAA0B,GAC3B,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAoG/B;AAED,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,EAC5E,eAAe,EACf,WAAW,GACZ,EAAE;IACD,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAwCrB"}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useVirtualRovingTabIndex = exports.useVirtualGridArrowNavigation = void 0;
4
+ const react_1 = require("react");
5
+ const use_focus_hover_1 = require("./use-focus-hover");
6
+ function useVirtualGridArrowNavigation({ colCount, rowCount, itemsCount, resetActiveItemOnBlur = true, pageSize = 3, defaultCurrentTabbable = 0, }) {
7
+ const rootNode = (0, react_1.useRef)(null);
8
+ const [focusProps, focusState] = (0, use_focus_hover_1.useFocusState)();
9
+ const [currentTabbable, setCurrentTabbable] = (0, react_1.useState)(defaultCurrentTabbable);
10
+ (0, react_1.useEffect)(() => {
11
+ if (resetActiveItemOnBlur && focusState === use_focus_hover_1.FocusState.NoFocus) {
12
+ setCurrentTabbable(defaultCurrentTabbable);
13
+ }
14
+ }, [resetActiveItemOnBlur, focusState, defaultCurrentTabbable]);
15
+ const onKeyDown = (0, react_1.useCallback)((evt) => {
16
+ const target = evt.target;
17
+ if (rootNode.current &&
18
+ rootNode.current.contains(target) &&
19
+ target.dataset.vlistItemIdx) {
20
+ let nextTabbableIndex = -1;
21
+ if (evt.key === 'ArrowUp') {
22
+ evt.preventDefault();
23
+ evt.stopPropagation();
24
+ nextTabbableIndex =
25
+ rowCount === 1 ? currentTabbable - 1 : currentTabbable - colCount;
26
+ }
27
+ if (evt.key === 'ArrowDown') {
28
+ evt.preventDefault();
29
+ evt.stopPropagation();
30
+ nextTabbableIndex =
31
+ rowCount === 1 ? currentTabbable + 1 : currentTabbable + colCount;
32
+ }
33
+ if (evt.key === 'ArrowLeft') {
34
+ evt.stopPropagation();
35
+ nextTabbableIndex = currentTabbable - 1;
36
+ }
37
+ if (evt.key === 'ArrowRight') {
38
+ evt.stopPropagation();
39
+ nextTabbableIndex = currentTabbable + 1;
40
+ }
41
+ if (evt.key === 'Home') {
42
+ evt.preventDefault();
43
+ evt.stopPropagation();
44
+ if (evt.ctrlKey) {
45
+ nextTabbableIndex = 0;
46
+ }
47
+ else {
48
+ nextTabbableIndex =
49
+ colCount * Math.floor(currentTabbable / colCount);
50
+ }
51
+ }
52
+ if (evt.key === 'End') {
53
+ evt.preventDefault();
54
+ evt.stopPropagation();
55
+ if (evt.ctrlKey) {
56
+ nextTabbableIndex = itemsCount - 1;
57
+ }
58
+ else {
59
+ nextTabbableIndex =
60
+ colCount * Math.floor(currentTabbable / colCount) +
61
+ (colCount - 1);
62
+ }
63
+ }
64
+ if (evt.key === 'PageUp') {
65
+ evt.preventDefault();
66
+ evt.stopPropagation();
67
+ const currRow = Math.floor(currentTabbable / colCount);
68
+ const pageStep = Math.min(currRow, pageSize);
69
+ nextTabbableIndex = currentTabbable - colCount * pageStep;
70
+ }
71
+ if (evt.key === 'PageDown') {
72
+ evt.preventDefault();
73
+ evt.stopPropagation();
74
+ const currRow = Math.floor(currentTabbable / colCount);
75
+ const pageStep = Math.min(rowCount - 1 - currRow, pageSize);
76
+ nextTabbableIndex = currentTabbable + colCount * pageStep;
77
+ }
78
+ if (nextTabbableIndex !== currentTabbable &&
79
+ nextTabbableIndex >= 0 &&
80
+ nextTabbableIndex < itemsCount) {
81
+ setCurrentTabbable(nextTabbableIndex);
82
+ }
83
+ }
84
+ }, [currentTabbable, itemsCount, rowCount, colCount, pageSize]);
85
+ return [{ ref: rootNode, onKeyDown, ...focusProps }, currentTabbable];
86
+ }
87
+ exports.useVirtualGridArrowNavigation = useVirtualGridArrowNavigation;
88
+ function useVirtualRovingTabIndex({ currentTabbable, onFocusMove, }) {
89
+ const rootNode = (0, react_1.useRef)(null);
90
+ const [tabIndex, setTabIndex] = (0, react_1.useState)(0);
91
+ const [focusProps, focusState] = (0, use_focus_hover_1.useFocusState)();
92
+ const focusTabbable = (0, react_1.useCallback)(() => {
93
+ var _a, _b;
94
+ const selector = currentTabbable >= 0
95
+ ? `[data-vlist-item-idx="${currentTabbable}"]`
96
+ : '[tabindex=0]';
97
+ (_b = (_a = rootNode.current) === null || _a === void 0 ? void 0 : _a.querySelector(selector)) === null || _b === void 0 ? void 0 : _b.focus();
98
+ }, [rootNode, currentTabbable]);
99
+ (0, react_1.useEffect)(() => {
100
+ if ([
101
+ use_focus_hover_1.FocusState.Focus,
102
+ use_focus_hover_1.FocusState.FocusVisible,
103
+ use_focus_hover_1.FocusState.FocusWithin,
104
+ use_focus_hover_1.FocusState.FocusWithinVisible,
105
+ ].includes(focusState)) {
106
+ setTabIndex(-1);
107
+ onFocusMove(currentTabbable);
108
+ const frame = requestAnimationFrame(() => {
109
+ focusTabbable();
110
+ });
111
+ return () => {
112
+ cancelAnimationFrame(frame);
113
+ };
114
+ }
115
+ else {
116
+ setTabIndex(0);
117
+ }
118
+ }, [focusState, onFocusMove, focusTabbable, currentTabbable]);
119
+ return { ref: rootNode, tabIndex, ...focusProps };
120
+ }
121
+ exports.useVirtualRovingTabIndex = useVirtualRovingTabIndex;
122
+ //# sourceMappingURL=use-virtual-grid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-virtual-grid.js","sourceRoot":"","sources":["../../src/hooks/use-virtual-grid.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=use-virtual-grid.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-virtual-grid.test.d.ts","sourceRoot":"","sources":["../../src/hooks/use-virtual-grid.test.tsx"],"names":[],"mappings":""}