@mongodb-js/compass-components 0.10.0 → 0.10.1

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 (64) hide show
  1. package/lib/components/accordion.d.ts +1 -1
  2. package/lib/components/accordion.d.ts.map +1 -1
  3. package/lib/components/accordion.js +6 -2
  4. package/lib/components/accordion.js.map +1 -1
  5. package/lib/components/checkbox.d.ts +5 -0
  6. package/lib/components/checkbox.d.ts.map +1 -0
  7. package/lib/components/checkbox.js +19 -0
  8. package/lib/components/checkbox.js.map +1 -0
  9. package/lib/components/confirmation-modal.d.ts +1 -1
  10. package/lib/components/confirmation-modal.d.ts.map +1 -1
  11. package/lib/components/confirmation-modal.js +27 -6
  12. package/lib/components/confirmation-modal.js.map +1 -1
  13. package/lib/components/error-boundary.d.ts +1 -0
  14. package/lib/components/error-boundary.d.ts.map +1 -1
  15. package/lib/components/error-boundary.js +6 -1
  16. package/lib/components/error-boundary.js.map +1 -1
  17. package/lib/components/file-input.d.ts +1 -2
  18. package/lib/components/file-input.d.ts.map +1 -1
  19. package/lib/components/file-input.js +11 -27
  20. package/lib/components/file-input.js.map +1 -1
  21. package/lib/components/inline-info-link.d.ts +8 -0
  22. package/lib/components/inline-info-link.d.ts.map +1 -0
  23. package/lib/components/inline-info-link.js +23 -0
  24. package/lib/components/inline-info-link.js.map +1 -0
  25. package/lib/components/modal.d.ts +7 -0
  26. package/lib/components/modal.d.ts.map +1 -0
  27. package/lib/components/modal.js +39 -0
  28. package/lib/components/modal.js.map +1 -0
  29. package/lib/components/placeholder.d.ts.map +1 -1
  30. package/lib/components/placeholder.js +9 -8
  31. package/lib/components/placeholder.js.map +1 -1
  32. package/lib/components/radio-box-group.d.ts +5 -0
  33. package/lib/components/radio-box-group.d.ts.map +1 -0
  34. package/lib/components/radio-box-group.js +18 -0
  35. package/lib/components/radio-box-group.js.map +1 -0
  36. package/lib/components/spin-loader.d.ts +3 -9
  37. package/lib/components/spin-loader.d.ts.map +1 -1
  38. package/lib/components/spin-loader.js +10 -31
  39. package/lib/components/spin-loader.js.map +1 -1
  40. package/lib/components/toggle.d.ts +5 -0
  41. package/lib/components/toggle.d.ts.map +1 -0
  42. package/lib/components/toggle.js +15 -0
  43. package/lib/components/toggle.js.map +1 -0
  44. package/lib/components/virtual-grid.d.ts +2 -1
  45. package/lib/components/virtual-grid.d.ts.map +1 -1
  46. package/lib/components/virtual-grid.js +6 -2
  47. package/lib/components/virtual-grid.js.map +1 -1
  48. package/lib/hooks/use-sort.d.ts +22 -0
  49. package/lib/hooks/use-sort.d.ts.map +1 -0
  50. package/lib/hooks/use-sort.js +109 -0
  51. package/lib/hooks/use-sort.js.map +1 -0
  52. package/lib/hooks/use-theme.d.ts +15 -0
  53. package/lib/hooks/use-theme.d.ts.map +1 -0
  54. package/lib/hooks/use-theme.js +40 -0
  55. package/lib/hooks/use-theme.js.map +1 -0
  56. package/lib/hooks/use-toast.d.ts +17 -0
  57. package/lib/hooks/use-toast.d.ts.map +1 -0
  58. package/lib/hooks/use-toast.js +94 -0
  59. package/lib/hooks/use-toast.js.map +1 -0
  60. package/lib/index.d.ts +13 -7
  61. package/lib/index.d.ts.map +1 -1
  62. package/lib/index.js +31 -14
  63. package/lib/index.js.map +1 -1
  64. package/package.json +6 -5
@@ -1,25 +1,10 @@
1
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;
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
20
4
  };
21
5
  Object.defineProperty(exports, "__esModule", { value: true });
22
- const react_1 = __importStar(require("react"));
6
+ exports.SpinLoader = void 0;
7
+ const react_1 = __importDefault(require("react"));
23
8
  const emotion_1 = require("@leafygreen-ui/emotion");
24
9
  const palette_1 = require("@leafygreen-ui/palette");
25
10
  const shellLoaderSpin = (0, emotion_1.keyframes) `
@@ -37,17 +22,11 @@ const spinLoaderStyle = (0, emotion_1.css) `
37
22
 
38
23
  animation: ${shellLoaderSpin} 700ms ease infinite;
39
24
  `;
40
- class SpinLoader extends react_1.Component {
41
- render() {
42
- const { size } = this.props;
43
- return (react_1.default.createElement("div", { className: spinLoaderStyle, style: {
44
- width: size,
45
- height: size,
46
- } }));
47
- }
25
+ function SpinLoader({ size = '12px' }) {
26
+ return (react_1.default.createElement("div", { className: spinLoaderStyle, style: {
27
+ width: size,
28
+ height: size,
29
+ } }));
48
30
  }
49
- exports.default = SpinLoader;
50
- SpinLoader.defaultProps = {
51
- size: '12px',
52
- };
31
+ exports.SpinLoader = SpinLoader;
53
32
  //# sourceMappingURL=spin-loader.js.map
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"spin-loader.js","sourceRoot":"","sources":["../../src/components/spin-loader.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,oDAAwD;AACxD,oDAAkD;AAMlD,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,SAAS,UAAU,CAAC,EAAE,IAAI,GAAG,MAAM,EAAmB;IACpD,OAAO,CACL,uCACE,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE;YACL,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,IAAI;SACb,GACD,CACH,CAAC;AACJ,CAAC;AAEQ,gCAAU"}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ import LeafyGreenToggle from '@leafygreen-ui/toggle';
3
+ declare function Toggle(props: React.ComponentProps<typeof LeafyGreenToggle>): ReturnType<typeof LeafyGreenToggle>;
4
+ export { Toggle };
5
+ //# sourceMappingURL=toggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle.d.ts","sourceRoot":"","sources":["../../src/components/toggle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAIrD,iBAAS,MAAM,CACb,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,GACnD,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAIrC;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Toggle = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const toggle_1 = __importDefault(require("@leafygreen-ui/toggle"));
9
+ const use_theme_1 = require("../hooks/use-theme");
10
+ function Toggle(props) {
11
+ const theme = (0, use_theme_1.useTheme)();
12
+ return react_1.default.createElement(toggle_1.default, { darkMode: (theme === null || theme === void 0 ? void 0 : theme.theme) === use_theme_1.Theme.Dark, ...props });
13
+ }
14
+ exports.Toggle = Toggle;
15
+ //# sourceMappingURL=toggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle.js","sourceRoot":"","sources":["../../src/components/toggle.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,mEAAqD;AAErD,kDAAqD;AAErD,SAAS,MAAM,CACb,KAAoD;IAEpD,MAAM,KAAK,GAAG,IAAA,oBAAQ,GAAE,CAAC;IAEzB,OAAO,8BAAC,gBAAgB,IAAC,QAAQ,EAAE,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,MAAK,iBAAK,CAAC,IAAI,KAAM,KAAK,GAAI,CAAC;AAChF,CAAC;AAEQ,wBAAM"}
@@ -20,7 +20,8 @@ declare type VirtualGridProps = {
20
20
  row?: string;
21
21
  cell?: string;
22
22
  };
23
+ itemKey?: (index: number) => React.Key | null | undefined;
23
24
  };
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 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" | "open" | "name" | "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
26
  export {};
26
27
  //# sourceMappingURL=virtual-grid.d.ts.map
@@ -1 +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"}
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;IAEF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,GAAG,GAAG,IAAI,GAAG,SAAS,CAAC;CAC3D,CAAC;AA2IF,eAAO,MAAM,WAAW,s5LA2FtB,CAAC"}
@@ -58,13 +58,15 @@ const cell = (0, emotion_1.css)({
58
58
  minWidth: 0,
59
59
  });
60
60
  const Row = ({ style, index }) => {
61
- const { colCount, itemsCount, renderItem, currentTabbable, classNames } = (0, react_1.useContext)(GridContext);
61
+ const { colCount, itemsCount, renderItem, currentTabbable, classNames, itemKey, } = (0, react_1.useContext)(GridContext);
62
62
  const rowStart = index * colCount;
63
63
  const cells = (0, react_1.useMemo)(() => {
64
64
  return Array.from({ length: colCount }, (_, cellIdx) => {
65
+ var _a;
65
66
  const itemIdx = rowStart + cellIdx;
66
67
  const isEmpty = itemIdx >= itemsCount;
67
68
  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, {
69
+ key: (_a = itemKey === null || itemKey === void 0 ? void 0 : itemKey(itemIdx)) !== null && _a !== void 0 ? _a : itemIdx,
68
70
  role: 'gridcell',
69
71
  className: (0, emotion_1.cx)(cell, classNames === null || classNames === void 0 ? void 0 : classNames.cell),
70
72
  tabIndex: itemIdx === currentTabbable ? 0 : -1,
@@ -78,6 +80,7 @@ const Row = ({ style, index }) => {
78
80
  itemsCount,
79
81
  classNames === null || classNames === void 0 ? void 0 : classNames.cell,
80
82
  renderItem,
83
+ itemKey,
81
84
  currentTabbable,
82
85
  ]);
83
86
  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));
@@ -94,7 +97,7 @@ const container = (0, emotion_1.css)({
94
97
  const grid = (0, emotion_1.css)({
95
98
  position: 'relative',
96
99
  });
97
- exports.VirtualGrid = (0, react_1.forwardRef)(function VirtualGrid({ itemMinWidth, itemHeight, itemsCount, colCount: _colCount, renderItem, headerHeight = 0, renderHeader = () => null, overscanCount = 3, classNames, ...containerProps }, ref) {
100
+ exports.VirtualGrid = (0, react_1.forwardRef)(function VirtualGrid({ itemMinWidth, itemHeight, itemsCount, colCount: _colCount, renderItem, headerHeight = 0, renderHeader = () => null, overscanCount = 3, classNames, itemKey, ...containerProps }, ref) {
98
101
  const listRef = (0, react_1.useRef)(null);
99
102
  const [rectProps, { width: _width, height }] = (0, use_dom_rect_1.useDOMRect)();
100
103
  const width = Math.max(_width, itemMinWidth);
@@ -129,6 +132,7 @@ exports.VirtualGrid = (0, react_1.forwardRef)(function VirtualGrid({ itemMinWidt
129
132
  'aria-rowcount': rowCount,
130
133
  className: (0, emotion_1.cx)(grid, classNames === null || classNames === void 0 ? void 0 : classNames.grid),
131
134
  }, navigationProps, rovingFocusProps),
135
+ itemKey,
132
136
  } },
133
137
  react_1.default.createElement("div", { ...gridContainerProps },
134
138
  react_1.default.createElement(react_window_1.FixedSizeList, { ref: listRef, width: width, height: height, innerElementType: GridWithHeader, itemCount: rowCount, itemSize: itemHeight, overscanCount: overscanCount }, Row))));
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-grid.js","sourceRoot":"","sources":["../../src/components/virtual-grid.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"virtual-grid.js","sourceRoot":"","sources":["../../src/components/virtual-grid.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+ export declare type SortOrder = 1 | -1;
3
+ declare type SortState<T> = {
4
+ name: T | null;
5
+ order: SortOrder;
6
+ };
7
+ declare type SortOptions = {
8
+ isDisabled?: boolean;
9
+ };
10
+ declare type Unwrap<T extends ArrayLike<unknown>> = T extends ArrayLike<infer V> ? V : never;
11
+ export declare function useSortControls<T extends string>(items: readonly {
12
+ name: T;
13
+ label: string;
14
+ }[], options?: SortOptions): [React.ReactElement, SortState<Unwrap<typeof items>['name']>];
15
+ export declare function useSortedItems<T extends Record<string, unknown>>(items: T[], { name, order, }: {
16
+ name: keyof T | null;
17
+ order: SortOrder;
18
+ }, sortFn?: Partial<{
19
+ [key in keyof T]: (a: T[key], b: T[key], order: SortOrder) => number;
20
+ }> | null): T[];
21
+ export {};
22
+ //# sourceMappingURL=use-sort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-sort.d.ts","sourceRoot":"","sources":["../../src/hooks/use-sort.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAuBnD,oBAAY,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/B,aAAK,SAAS,CAAC,CAAC,IAAI;IAAE,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAMzD,aAAK,WAAW,GAAG;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,aAAK,MAAM,CAAC,CAAC,SAAS,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,GACpE,CAAC,GACD,KAAK,CAAC;AAEV,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAC9C,KAAK,EAAE,SAAS;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,EAC5C,OAAO,CAAC,EAAE,WAAW,GACpB,CAAC,KAAK,CAAC,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CA2E/D;AAUD,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9D,KAAK,EAAE,CAAC,EAAE,EACV,EACE,IAAI,EACJ,KAAK,GACN,EAAE;IACD,IAAI,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,SAAS,CAAC;CAClB,EACD,MAAM,GAAE,OAAO,CACb;KACG,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,KAAK,MAAM;CACrE,CACF,GAAG,IAAW,GACd,CAAC,EAAE,CAuBL"}
@@ -0,0 +1,109 @@
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.useSortedItems = exports.useSortControls = void 0;
23
+ const react_1 = __importStar(require("react"));
24
+ const utils_1 = require("@react-aria/utils");
25
+ const __1 = require("..");
26
+ const controlsContainer = (0, __1.css)({
27
+ display: 'flex',
28
+ alignItems: 'center',
29
+ gap: __1.spacing[2],
30
+ });
31
+ const label = (0, __1.css)({
32
+ margin: '0 !important',
33
+ padding: '0 !important',
34
+ });
35
+ const select = (0, __1.css)({
36
+ '& > button': {
37
+ margin: 0,
38
+ },
39
+ });
40
+ function useSortControls(items, options) {
41
+ var _a, _b;
42
+ const labelId = (0, utils_1.useId)('Sort by');
43
+ const controlId = (0, utils_1.useId)();
44
+ const [sortState, dispatch] = (0, react_1.useReducer)((state, action) => {
45
+ if (action.type === 'change-name' && action.name !== state.name) {
46
+ return {
47
+ ...state,
48
+ name: action.name,
49
+ };
50
+ }
51
+ if (action.type === 'change-order') {
52
+ return {
53
+ ...state,
54
+ order: (state.order * -1),
55
+ };
56
+ }
57
+ return state;
58
+ }, { name: (_b = (_a = items[0]) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : null, order: 1 });
59
+ const sortControls = (0, react_1.useMemo)(() => {
60
+ var _a;
61
+ const glyph = sortState.order === -1
62
+ ? 'SortDescending'
63
+ : sortState.order === 1
64
+ ? 'SortAscending'
65
+ : 'Unsorted';
66
+ const longestLabel = Math.max(...items.map((item) => item.label.length));
67
+ return (react_1.default.createElement("div", { className: controlsContainer },
68
+ react_1.default.createElement(__1.Label, { id: labelId, htmlFor: controlId, className: label }, "Sort by"),
69
+ react_1.default.createElement(__1.Select, { disabled: options === null || options === void 0 ? void 0 : options.isDisabled, id: controlId, "aria-labelledby": labelId, allowDeselect: false, className: (0, __1.cx)(select, (0, __1.css)({ minWidth: `calc(${longestLabel}ch + ${__1.spacing[6]}px)` })), onChange: (value) => {
70
+ dispatch({ type: 'change-name', name: value || null });
71
+ }, defaultValue: (_a = sortState.name) !== null && _a !== void 0 ? _a : undefined }, items.map((item) => (react_1.default.createElement(__1.Option, { key: item.name, value: item.name }, item.label)))),
72
+ react_1.default.createElement(__1.Button, { "aria-label": glyph, title: glyph, rightGlyph: react_1.default.createElement(__1.Icon, { glyph: glyph }), onClick: () => {
73
+ dispatch({ type: 'change-order' });
74
+ }, disabled: sortState.name === null || (options === null || options === void 0 ? void 0 : options.isDisabled) })));
75
+ }, [sortState, items, labelId, controlId, options === null || options === void 0 ? void 0 : options.isDisabled]);
76
+ return [
77
+ sortControls,
78
+ (options === null || options === void 0 ? void 0 : options.isDisabled) ? { name: null, order: 1 } : sortState,
79
+ ];
80
+ }
81
+ exports.useSortControls = useSortControls;
82
+ function sortUnknown(a, b, order) {
83
+ return (a === b ? 0 : a < b ? -1 : 1) * order;
84
+ }
85
+ function sortString(a, b, order) {
86
+ return a.localeCompare(b) * order;
87
+ }
88
+ function useSortedItems(items, { name, order, }, sortFn = null) {
89
+ return (0, react_1.useMemo)(() => {
90
+ return [...items].sort((a, b) => {
91
+ if (!name) {
92
+ return 0;
93
+ }
94
+ if (typeof a[name] === 'undefined') {
95
+ return 1;
96
+ }
97
+ const sort = sortFn && sortFn[name];
98
+ if (sort) {
99
+ return sort(a[name], b[name], order);
100
+ }
101
+ if (typeof a[name] === 'string') {
102
+ return sortString(a[name], b[name], order);
103
+ }
104
+ return sortUnknown(a[name], b[name], order);
105
+ });
106
+ }, [items, name, sortFn, order]);
107
+ }
108
+ exports.useSortedItems = useSortedItems;
109
+ //# sourceMappingURL=use-sort.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-sort.js","sourceRoot":"","sources":["../../src/hooks/use-sort.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAmD;AACnD,6CAA0C;AAC1C,0BAA2E;AAE3E,MAAM,iBAAiB,GAAG,IAAA,OAAG,EAAC;IAC5B,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,QAAQ;IACpB,GAAG,EAAE,WAAO,CAAC,CAAC,CAAC;CAChB,CAAC,CAAC;AAEH,MAAM,KAAK,GAAG,IAAA,OAAG,EAAC;IAEhB,MAAM,EAAE,cAAc;IACtB,OAAO,EAAE,cAAc;CACxB,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAA,OAAG,EAAC;IAEjB,YAAY,EAAE;QACZ,MAAM,EAAE,CAAC;KACV;CACF,CAAC,CAAC;AAkBH,SAAgB,eAAe,CAC7B,KAA4C,EAC5C,OAAqB;;IAErB,MAAM,OAAO,GAAG,IAAA,aAAK,EAAC,SAAS,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,IAAA,aAAK,GAAE,CAAC;IAE1B,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,IAAA,kBAAU,EACtC,CAAC,KAAmB,EAAE,MAAqB,EAAgB,EAAE;QAC3D,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE;YAC/D,OAAO;gBACL,GAAG,KAAK;gBACR,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB,CAAC;SACH;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE;YAClC,OAAO;gBACL,GAAG,KAAK;gBACR,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAc;aACvC,CAAC;SACH;QACD,OAAO,KAAK,CAAC;IACf,CAAC,EACD,EAAE,IAAI,EAAE,MAAA,MAAA,KAAK,CAAC,CAAC,CAAC,0CAAE,IAAI,mCAAI,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAC3C,CAAC;IAEF,MAAM,YAAY,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;;QAChC,MAAM,KAAK,GACT,SAAS,CAAC,KAAK,KAAK,CAAC,CAAC;YACpB,CAAC,CAAC,gBAAgB;YAClB,CAAC,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC;gBACvB,CAAC,CAAC,eAAe;gBACjB,CAAC,CAAC,UAAU,CAAC;QAEjB,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAEzE,OAAO,CACL,uCAAK,SAAS,EAAE,iBAAiB;YAC/B,8BAAC,SAAK,IAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,cAEhD;YACR,8BAAC,UAAM,IACL,QAAQ,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,EAC7B,EAAE,EAAE,SAAS,qBACI,OAAO,EACxB,aAAa,EAAE,KAAK,EACpB,SAAS,EAAE,IAAA,MAAE,EACX,MAAM,EACN,IAAA,OAAG,EAAC,EAAE,QAAQ,EAAE,QAAQ,YAAY,QAAQ,WAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAC/D,EACD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;oBAClB,QAAQ,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAG,KAAW,IAAI,IAAI,EAAE,CAAC,CAAC;gBAChE,CAAC,EACD,YAAY,EAAE,MAAA,SAAS,CAAC,IAAI,mCAAI,SAAS,IAExC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,8BAAC,UAAM,IAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,IACrC,IAAI,CAAC,KAAK,CACJ,CACV,CAAC,CACK;YACT,8BAAC,UAAM,kBACO,KAAK,EACjB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,8BAAC,QAAI,IAAC,KAAK,EAAE,KAAK,GAAS,EACvC,OAAO,EAAE,GAAG,EAAE;oBACZ,QAAQ,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;gBACrC,CAAC,EACD,QAAQ,EAAE,SAAS,CAAC,IAAI,KAAK,IAAI,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,CAAA,GAChD,CACN,CACP,CAAC;IACJ,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,CAAC,CAAC,CAAC;IAEhE,OAAO;QACL,YAAY;QACZ,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,EAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;KAC3D,CAAC;AACJ,CAAC;AA9ED,0CA8EC;AAED,SAAS,WAAW,CAAC,CAAU,EAAE,CAAU,EAAE,KAAgB;IAC3D,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAAY,GAAI,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AACxE,CAAC;AAED,SAAS,UAAU,CAAC,CAAS,EAAE,CAAS,EAAE,KAAgB;IACxD,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AACpC,CAAC;AAED,SAAgB,cAAc,CAC5B,KAAU,EACV,EACE,IAAI,EACJ,KAAK,GAIN,EACD,SAIW,IAAI;IAEf,OAAO,IAAA,eAAO,EAAC,GAAG,EAAE;QAClB,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC9B,IAAI,CAAC,IAAI,EAAE;gBACT,OAAO,CAAC,CAAC;aACV;YAGD,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,WAAW,EAAE;gBAClC,OAAO,CAAC,CAAC;aACV;YACD,MAAM,IAAI,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;YAEpC,IAAI,IAAI,EAAE;gBACR,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;aACtC;YAED,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,QAAQ,EAAE;gBAC/B,OAAO,UAAU,CAAC,CAAC,CAAC,IAAI,CAAW,EAAE,CAAC,CAAC,IAAI,CAAW,EAAE,KAAK,CAAC,CAAC;aAChE;YACD,OAAO,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AACnC,CAAC;AArCD,wCAqCC"}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ export declare enum Theme {
3
+ Light = "Light",
4
+ Dark = "Dark"
5
+ }
6
+ declare type ThemeState = {
7
+ theme: Theme;
8
+ };
9
+ declare const ThemeProvider: ({ children, theme, }: {
10
+ children: React.ReactNode;
11
+ theme: ThemeState;
12
+ }) => React.ReactElement;
13
+ declare function useTheme(): ThemeState;
14
+ export { useTheme, ThemeProvider };
15
+ //# sourceMappingURL=use-theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-theme.d.ts","sourceRoot":"","sources":["../../src/hooks/use-theme.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAEzD,oBAAY,KAAK;IACf,KAAK,UAAU;IACf,IAAI,SAAS;CACd;AAED,aAAK,UAAU,GAAG;IAChB,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAMF,QAAA,MAAM,aAAa;cAIP,MAAM,SAAS;WAClB,UAAU;MACf,MAAM,YAIT,CAAC;AAEF,iBAAS,QAAQ,IAAI,UAAU,CAE9B;AAED,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,40 @@
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.ThemeProvider = exports.useTheme = exports.Theme = void 0;
23
+ const react_1 = __importStar(require("react"));
24
+ var Theme;
25
+ (function (Theme) {
26
+ Theme["Light"] = "Light";
27
+ Theme["Dark"] = "Dark";
28
+ })(Theme = exports.Theme || (exports.Theme = {}));
29
+ const ThemeContext = (0, react_1.createContext)({
30
+ theme: Theme.Light,
31
+ });
32
+ const ThemeProvider = ({ children, theme, }) => {
33
+ return (react_1.default.createElement(ThemeContext.Provider, { value: theme }, children));
34
+ };
35
+ exports.ThemeProvider = ThemeProvider;
36
+ function useTheme() {
37
+ return (0, react_1.useContext)(ThemeContext);
38
+ }
39
+ exports.useTheme = useTheme;
40
+ //# sourceMappingURL=use-theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-theme.js","sourceRoot":"","sources":["../../src/hooks/use-theme.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAyD;AAEzD,IAAY,KAGX;AAHD,WAAY,KAAK;IACf,wBAAe,CAAA;IACf,sBAAa,CAAA;AACf,CAAC,EAHW,KAAK,GAAL,aAAK,KAAL,aAAK,QAGhB;AAMD,MAAM,YAAY,GAAG,IAAA,qBAAa,EAAa;IAC7C,KAAK,EAAE,KAAK,CAAC,KAAK;CACnB,CAAC,CAAC;AAEH,MAAM,aAAa,GAAG,CAAC,EACrB,QAAQ,EACR,KAAK,GAIN,EAAsB,EAAE;IACvB,OAAO,CACL,8BAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IAAG,QAAQ,CAAyB,CACxE,CAAC;AACJ,CAAC,CAAC;AAMiB,sCAAa;AAJhC,SAAS,QAAQ;IACf,OAAO,IAAA,kBAAU,EAAC,YAAY,CAAC,CAAC;AAClC,CAAC;AAEQ,4BAAQ"}
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import type { ToastVariant } from '..';
3
+ declare type ToastProperties = {
4
+ title?: React.ReactNode;
5
+ body: React.ReactNode;
6
+ variant: ToastVariant;
7
+ progress?: number;
8
+ timeout?: number;
9
+ };
10
+ interface ToastActions {
11
+ openToast: (id: string, toastProperties: ToastProperties) => void;
12
+ closeToast: (id: string) => void;
13
+ }
14
+ export declare const ToastArea: React.FunctionComponent;
15
+ export declare function useToast(namespace: string): ToastActions;
16
+ export {};
17
+ //# sourceMappingURL=use-toast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-toast.d.ts","sourceRoot":"","sources":["../../src/hooks/use-toast.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAIvC,aAAK,eAAe,GAAG;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,OAAO,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,UAAU,YAAY;IACpB,SAAS,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,KAAK,IAAI,CAAC;IAClE,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAgCD,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,iBAoF7B,CAAC;AAEF,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,CAsBxD"}
@@ -0,0 +1,94 @@
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.useToast = exports.ToastArea = void 0;
23
+ const react_1 = __importStar(require("react"));
24
+ const __1 = require("..");
25
+ const __2 = require("..");
26
+ const ToastContext = (0, react_1.createContext)({
27
+ openToast: () => {
28
+ },
29
+ closeToast: () => {
30
+ },
31
+ });
32
+ const toastStyles = (0, __1.css)({
33
+ button: {
34
+ position: 'absolute',
35
+ },
36
+ });
37
+ const ToastArea = ({ children }) => {
38
+ const [toasts, setToasts] = (0, react_1.useState)({});
39
+ const timeouts = (0, react_1.useRef)({});
40
+ (0, react_1.useEffect)(() => {
41
+ return () => {
42
+ Object.values(timeouts).forEach(clearTimeout);
43
+ };
44
+ }, [timeouts]);
45
+ const clearTimeoutRef = (0, react_1.useCallback)((id) => {
46
+ clearTimeout(timeouts.current[id]);
47
+ delete timeouts.current[id];
48
+ }, [timeouts]);
49
+ const setTimeoutRef = (0, react_1.useCallback)((id, callback, timeout) => {
50
+ clearTimeoutRef(id);
51
+ timeouts.current[id] = setTimeout(callback, timeout);
52
+ }, [timeouts, clearTimeoutRef]);
53
+ const closeToast = (0, react_1.useCallback)((toastId) => {
54
+ clearTimeoutRef(toastId);
55
+ setToasts((prevToasts) => {
56
+ const newToasts = { ...prevToasts };
57
+ delete newToasts[toastId];
58
+ return newToasts;
59
+ });
60
+ }, [setToasts, clearTimeoutRef]);
61
+ const openToast = (0, react_1.useCallback)((toastId, toastProperties) => {
62
+ clearTimeoutRef(toastId);
63
+ if (toastProperties.timeout) {
64
+ setTimeoutRef(toastId, () => {
65
+ closeToast(toastId);
66
+ }, toastProperties.timeout);
67
+ }
68
+ setToasts((prevToasts) => ({
69
+ ...prevToasts,
70
+ [toastId]: {
71
+ ...toastProperties,
72
+ },
73
+ }));
74
+ }, [setToasts, setTimeoutRef, clearTimeoutRef, closeToast]);
75
+ return (react_1.default.createElement(ToastContext.Provider, { value: { closeToast, openToast } },
76
+ react_1.default.createElement(react_1.default.Fragment, null, children),
77
+ react_1.default.createElement(react_1.default.Fragment, null, Object.entries(toasts).map(([id, { title, body, variant, progress }]) => (react_1.default.createElement(__2.Toast, { className: toastStyles, key: id, title: title, body: body, variant: variant, progress: progress, open: true, close: () => closeToast(id) }))))));
78
+ };
79
+ exports.ToastArea = ToastArea;
80
+ function useToast(namespace) {
81
+ const { openToast: openGlobalToast, closeToast: closeGlobalToast } = (0, react_1.useContext)(ToastContext);
82
+ const openToast = (0, react_1.useCallback)((toastId, toastProperties) => {
83
+ openGlobalToast(`${namespace}--${toastId}`, toastProperties);
84
+ }, [namespace, openGlobalToast]);
85
+ const closeToast = (0, react_1.useCallback)((toastId) => {
86
+ closeGlobalToast(`${namespace}--${toastId}`);
87
+ }, [namespace, closeGlobalToast]);
88
+ return {
89
+ openToast,
90
+ closeToast,
91
+ };
92
+ }
93
+ exports.useToast = useToast;
94
+ //# sourceMappingURL=use-toast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-toast.js","sourceRoot":"","sources":["../../src/hooks/use-toast.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,+CAOe;AAEf,0BAAyB;AACzB,0BAA2B;AAe3B,MAAM,YAAY,GAAG,IAAA,qBAAa,EAAe;IAC/C,SAAS,EAAE,GAAG,EAAE;IAEhB,CAAC;IACD,UAAU,EAAE,GAAG,EAAE;IAEjB,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,IAAA,OAAG,EAAC;IACtB,MAAM,EAAE;QACN,QAAQ,EAAE,UAAU;KACrB;CACF,CAAC,CAAC;AAiBI,MAAM,SAAS,GAA4B,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IACjE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAkC,EAAE,CAAC,CAAC;IAC1E,MAAM,QAAQ,GAAG,IAAA,cAAM,EAAgD,EAAE,CAAC,CAAC;IAE3E,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAChD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,eAAe,GAAG,IAAA,mBAAW,EACjC,CAAC,EAAE,EAAE,EAAE;QACL,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,OAAO,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,MAAM,aAAa,GAAG,IAAA,mBAAW,EAC/B,CAAC,EAAU,EAAE,QAAoB,EAAE,OAAe,EAAE,EAAE;QACpD,eAAe,CAAC,EAAE,CAAC,CAAC;QACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC,EACD,CAAC,QAAQ,EAAE,eAAe,CAAC,CAC5B,CAAC;IAEF,MAAM,UAAU,GAAG,IAAA,mBAAW,EAC5B,CAAC,OAAe,EAAQ,EAAE;QACxB,eAAe,CAAC,OAAO,CAAC,CAAC;QAEzB,SAAS,CAAC,CAAC,UAAU,EAAE,EAAE;YACvB,MAAM,SAAS,GAAG,EAAE,GAAG,UAAU,EAAE,CAAC;YACpC,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC;YAC1B,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC,EACD,CAAC,SAAS,EAAE,eAAe,CAAC,CAC7B,CAAC;IAEF,MAAM,SAAS,GAAG,IAAA,mBAAW,EAC3B,CAAC,OAAe,EAAE,eAAgC,EAAQ,EAAE;QAC1D,eAAe,CAAC,OAAO,CAAC,CAAC;QAEzB,IAAI,eAAe,CAAC,OAAO,EAAE;YAC3B,aAAa,CACX,OAAO,EACP,GAAG,EAAE;gBACH,UAAU,CAAC,OAAO,CAAC,CAAC;YACtB,CAAC,EACD,eAAe,CAAC,OAAO,CACxB,CAAC;SACH;QAED,SAAS,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACzB,GAAG,UAAU;YACb,CAAC,OAAO,CAAC,EAAE;gBACT,GAAG,eAAe;aACnB;SACF,CAAC,CAAC,CAAC;IACN,CAAC,EACD,CAAC,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,CAAC,CACxD,CAAC;IAEF,OAAO,CACL,8BAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE;QACrD,8DAAG,QAAQ,CAAI;QACf,8DACG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CACzB,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAC5C,8BAAC,SAAK,IACJ,SAAS,EAAE,WAAW,EACtB,GAAG,EAAE,EAAE,EACP,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,GAC3B,CACH,CACF,CACA,CACmB,CACzB,CAAC;AACJ,CAAC,CAAC;AApFW,QAAA,SAAS,aAoFpB;AAEF,SAAgB,QAAQ,CAAC,SAAiB;IACxC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAChE,IAAA,kBAAU,EAAC,YAAY,CAAC,CAAC;IAE3B,MAAM,SAAS,GAAG,IAAA,mBAAW,EAC3B,CAAC,OAAe,EAAE,eAAgC,EAAQ,EAAE;QAC1D,eAAe,CAAC,GAAG,SAAS,KAAK,OAAO,EAAE,EAAE,eAAe,CAAC,CAAC;IAC/D,CAAC,EACD,CAAC,SAAS,EAAE,eAAe,CAAC,CAC7B,CAAC;IAEF,MAAM,UAAU,GAAG,IAAA,mBAAW,EAC5B,CAAC,OAAe,EAAQ,EAAE;QACxB,gBAAgB,CAAC,GAAG,SAAS,KAAK,OAAO,EAAE,CAAC,CAAC;IAC/C,CAAC,EACD,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAC9B,CAAC;IAEF,OAAO;QACL,SAAS;QACT,UAAU;KACX,CAAC;AACJ,CAAC;AAtBD,4BAsBC"}
package/lib/index.d.ts CHANGED
@@ -2,43 +2,48 @@ export { default as emotion, flush, hydrate, cx, merge, getRegisteredStyles, inj
2
2
  import CancelLoader from './components/cancel-loader';
3
3
  import ConfirmationModal from './components/confirmation-modal';
4
4
  import FileInput from './components/file-input';
5
- import SpinLoader from './components/spin-loader';
5
+ import { Modal } from './components/modal';
6
+ import { RadioBoxGroup } from './components/radio-box-group';
7
+ import { SpinLoader } from './components/spin-loader';
6
8
  import { ResizeHandle, ResizeDirection } from './components/resize-handle';
7
9
  import Accordion from './components/accordion';
8
10
  export { FavoriteIcon } from './components/icons/favorite-icon';
9
11
  export { default as Badge, Variant as BadgeVariant, } from '@leafygreen-ui/badge';
12
+ export { Footer } from '@leafygreen-ui/modal';
10
13
  export { default as Banner, Variant as BannerVariant, } from '@leafygreen-ui/banner';
11
14
  export { default as Button, Size as ButtonSize, Variant as ButtonVariant, } from '@leafygreen-ui/button';
12
15
  export { default as Card } from '@leafygreen-ui/card';
13
- export { default as Checkbox } from '@leafygreen-ui/checkbox';
16
+ export { Checkbox } from './components/checkbox';
14
17
  export { default as Icon } from '@leafygreen-ui/icon';
15
18
  export { default as IconButton } from '@leafygreen-ui/icon-button';
16
19
  export { default as LeafyGreenProvider } from '@leafygreen-ui/leafygreen-provider';
17
20
  export { AtlasLogoMark, MongoDBLogoMark, MongoDBLogo, } from '@leafygreen-ui/logo';
18
21
  export { Menu, MenuSeparator, MenuItem } from '@leafygreen-ui/menu';
19
- export { default as Modal } from '@leafygreen-ui/modal';
20
22
  export { uiColors } from '@leafygreen-ui/palette';
21
23
  export * as compassUIColors from './compass-ui-colors';
22
24
  export { default as Portal } from '@leafygreen-ui/portal';
23
- export { RadioBox, RadioBoxGroup } from '@leafygreen-ui/radio-box-group';
25
+ export { RadioBox, Size as RadioBoxSize } from '@leafygreen-ui/radio-box-group';
24
26
  export { Radio, RadioGroup } from '@leafygreen-ui/radio-group';
25
27
  export { Select, Option, OptionGroup, Size as SelectSize, } from '@leafygreen-ui/select';
26
28
  export { Tabs, Tab } from '@leafygreen-ui/tabs';
27
29
  export { default as TextArea } from '@leafygreen-ui/text-area';
28
30
  export { default as TextInput } from '@leafygreen-ui/text-input';
29
31
  export { default as Toast, Variant as ToastVariant, } from '@leafygreen-ui/toast';
30
- export { default as Toggle } from '@leafygreen-ui/toggle';
32
+ export { useToast, ToastArea } from './hooks/use-toast';
33
+ export { Toggle } from './components/toggle';
31
34
  export { breakpoints, spacing } from '@leafygreen-ui/tokens';
32
35
  export { Tooltip } from './components/tooltip';
33
- export { H1, H2, H3, Subtitle, Body, InlineCode, InlineKeyCode, Disclaimer, Overline, Link, Label, Description, } from '@leafygreen-ui/typography';
34
- export { Accordion, CancelLoader, ConfirmationModal, FileInput, SpinLoader, ResizeHandle, ResizeDirection, };
36
+ export { H1, H2, H3, Subtitle, Body, InlineCode, InlineKeyCode, Disclaimer, Overline, Label, Link, Description, } from '@leafygreen-ui/typography';
37
+ export { Accordion, CancelLoader, ConfirmationModal, FileInput, Modal, RadioBoxGroup, SpinLoader, ResizeHandle, ResizeDirection, };
35
38
  export { useFocusState, useHoverState, FocusState, } from './hooks/use-focus-hover';
39
+ export { useTheme, Theme, ThemeProvider } from './hooks/use-theme';
36
40
  export { ContentWithFallback, FadeInPlaceholder, } from './components/content-with-fallback';
37
41
  export { InlineDefinition } from './components/inline-definition';
38
42
  import type { glyphs } from '@leafygreen-ui/icon';
39
43
  export declare type IconGlyph = Extract<keyof typeof glyphs, string>;
40
44
  export { SegmentedControl, SegmentedControlOption, } from '@leafygreen-ui/segmented-control';
41
45
  export { ErrorBoundary } from './components/error-boundary';
46
+ export { InlineInfoLink } from './components/inline-info-link';
42
47
  export { Placeholder } from './components/placeholder';
43
48
  export { useDOMRect } from './hooks/use-dom-rect';
44
49
  export { Table, TableHeader, Row, Cell } from '@leafygreen-ui/table';
@@ -47,4 +52,5 @@ export { VirtualGrid } from './components/virtual-grid';
47
52
  export { mergeProps } from './utils/merge-props';
48
53
  export { useFocusRing } from './hooks/use-focus-ring';
49
54
  export { useDefaultAction } from './hooks/use-default-action';
55
+ export { useSortControls, useSortedItems } from './hooks/use-sort';
50
56
  //# sourceMappingURL=index.d.ts.map