reshaped 3.1.5 → 3.1.6

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 (78) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/bundle.css +1 -1
  3. package/dist/bundle.d.ts +2 -0
  4. package/dist/bundle.js +10 -11
  5. package/dist/components/Actionable/Actionable.d.ts +1 -1
  6. package/dist/components/Actionable/Actionable.js +2 -2
  7. package/dist/components/Actionable/Actionable.module.css +1 -1
  8. package/dist/components/Actionable/Actionable.types.d.ts +1 -0
  9. package/dist/components/Autocomplete/Autocomplete.js +10 -4
  10. package/dist/components/Button/Button.js +1 -1
  11. package/dist/components/Card/Card.d.ts +1 -1
  12. package/dist/components/Card/tests/Card.stories.d.ts +1 -1
  13. package/dist/components/DropdownMenu/DropdownMenu.types.d.ts +1 -1
  14. package/dist/components/FormControl/FormControl.context.d.ts +2 -1
  15. package/dist/components/Grid/Grid.d.ts +6 -0
  16. package/dist/components/Grid/Grid.js +46 -0
  17. package/dist/components/Grid/Grid.module.css +1 -0
  18. package/dist/components/Grid/Grid.types.d.ts +31 -0
  19. package/dist/components/Grid/Grid.types.js +1 -0
  20. package/dist/components/Grid/index.d.ts +2 -0
  21. package/dist/components/Grid/index.js +1 -0
  22. package/dist/components/Grid/tests/Grid.stories.d.ts +18 -0
  23. package/dist/components/Grid/tests/Grid.stories.js +170 -0
  24. package/dist/components/Icon/Icon.module.css +1 -1
  25. package/dist/components/Link/Link.d.ts +1 -1
  26. package/dist/components/Loader/Loader.module.css +1 -1
  27. package/dist/components/Loader/Loader.types.d.ts +1 -1
  28. package/dist/components/Loader/tests/Loader.stories.js +5 -3
  29. package/dist/components/Overlay/tests/Overlay.stories.js +1 -1
  30. package/dist/components/Popover/Popover.js +2 -4
  31. package/dist/components/Popover/Popover.types.d.ts +1 -1
  32. package/dist/components/Select/Select.js +1 -1
  33. package/dist/components/Tabs/Tabs.d.ts +1 -1
  34. package/dist/components/Tabs/Tabs.module.css +1 -1
  35. package/dist/components/Tabs/TabsItem.d.ts +1 -1
  36. package/dist/components/Tabs/TabsItem.js +2 -3
  37. package/dist/components/Tabs/tests/Tabs.stories.d.ts +15 -13
  38. package/dist/components/Tabs/tests/Tabs.stories.js +71 -8
  39. package/dist/components/Tooltip/Tooltip.js +1 -1
  40. package/dist/components/View/View.js +7 -3
  41. package/dist/components/View/View.module.css +1 -1
  42. package/dist/components/View/View.types.d.ts +2 -2
  43. package/dist/components/_private/Expandable/Expandable.js +9 -5
  44. package/dist/components/_private/Flyout/Flyout.module.css +1 -1
  45. package/dist/components/_private/Flyout/Flyout.types.d.ts +11 -2
  46. package/dist/components/_private/Flyout/FlyoutControlled.js +33 -18
  47. package/dist/components/_private/Flyout/tests/Flyout.stories.d.ts +1 -0
  48. package/dist/components/_private/Flyout/tests/Flyout.stories.js +28 -18
  49. package/dist/components/_private/Flyout/useFlyout.d.ts +2 -1
  50. package/dist/components/_private/Flyout/useFlyout.js +46 -57
  51. package/dist/components/_private/Flyout/utilities/calculatePosition.js +16 -11
  52. package/dist/components/_private/Flyout/utilities/cooldown.d.ts +1 -1
  53. package/dist/components/_private/Flyout/utilities/cooldown.js +17 -5
  54. package/dist/components/_private/Flyout/utilities/getPositionFallbacks.d.ts +3 -0
  55. package/dist/components/_private/Flyout/utilities/getPositionFallbacks.js +39 -0
  56. package/dist/config/tailwind.d.ts +1 -1
  57. package/dist/hooks/_private/useOnClickOutside.js +3 -2
  58. package/dist/hooks/_private/useSingletonHotkeys.js +15 -12
  59. package/dist/hooks/tests/useHotkeys.stories.js +3 -0
  60. package/dist/index.d.ts +2 -0
  61. package/dist/index.js +1 -0
  62. package/dist/styles/align/align.module.css +1 -0
  63. package/dist/styles/align/index.d.ts +3 -0
  64. package/dist/styles/align/index.js +10 -0
  65. package/dist/styles/justify/index.d.ts +3 -0
  66. package/dist/styles/justify/index.js +10 -0
  67. package/dist/styles/justify/justify.module.css +1 -0
  68. package/dist/styles/types.d.ts +2 -0
  69. package/dist/tests/ShadowDOM.stories.d.ts +6 -0
  70. package/dist/tests/ShadowDOM.stories.js +110 -0
  71. package/dist/themes/_generator/tests/themes.stories.js +1 -1
  72. package/dist/utilities/a11y/TrapFocus.d.ts +1 -1
  73. package/dist/utilities/a11y/TrapFocus.js +14 -5
  74. package/dist/utilities/a11y/focus.d.ts +1 -1
  75. package/dist/utilities/a11y/focus.js +10 -5
  76. package/dist/utilities/dom.d.ts +2 -1
  77. package/dist/utilities/dom.js +12 -2
  78. package/package.json +31 -29
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
2
  import type * as T from "./Actionable.types";
3
- declare const Actionable: React.ForwardRefExoticComponent<T.Props & React.RefAttributes<HTMLAnchorElement | HTMLButtonElement>>;
3
+ declare const Actionable: React.ForwardRefExoticComponent<T.Props & React.RefAttributes<HTMLButtonElement | HTMLAnchorElement>>;
4
4
  export default Actionable;
@@ -5,8 +5,8 @@ import { classNames } from "../../utilities/helpers.js";
5
5
  import * as keys from "../../constants/keys.js";
6
6
  import s from "./Actionable.module.css";
7
7
  const Actionable = forwardRef((props, ref) => {
8
- const { children, href, onClick, type, disabled, insetFocus, borderRadius, as, fullWidth, className, attributes, } = props;
9
- const rootClassNames = classNames(s.root, className, disabled && s["--disabled"], borderRadius && s[`--radius-${borderRadius}`], insetFocus && s["--inset"], fullWidth && s["--full-width"]);
8
+ const { children, href, onClick, type, disabled, insetFocus, disableFocusRing, borderRadius, as, fullWidth, className, attributes, } = props;
9
+ const rootClassNames = classNames(s.root, className, disabled && s["--disabled"], borderRadius && s[`--radius-${borderRadius}`], insetFocus && s["--inset"], disableFocusRing && s["--disabled-focus-ring"], fullWidth && s["--full-width"]);
10
10
  const rootAttributes = { ...attributes };
11
11
  const hasClickHandler = onClick || attributes?.onClick;
12
12
  const hasFocusHandler = attributes?.onFocus || attributes?.onBlur;
@@ -1 +1 @@
1
- @layer rs.reset{.root{background:none;border:0;color:inherit;display:inline-block;font-size:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0;position:relative;text-align:initial;text-decoration:none;vertical-align:top;-webkit-tap-highlight-color:transparent}}.root:focus{outline:none}.root:focus-visible{box-shadow:var(--rs-focus-shadow);outline:none;z-index:var(--rs-z-index-raised)}.root.--inset:focus-visible{box-shadow:var(--rs-focus-inset-shadow)}.root.--radius-inherit:focus-visible{box-shadow:none}.root.--radius-inherit:focus-visible>*{box-shadow:var(--rs-focus-shadow)}.root.--radius-inherit.--inset:focus-visible>*{box-shadow:var(--rs-focus-inset-shadow)}[role=button].root,button.root{cursor:pointer;user-select:none}.root.--disabled,.root[disabled]{cursor:not-allowed}.root.--disabled:active,.root[disabled]:active{transform:none}.root.--full-width{width:100%}
1
+ @layer rs.reset{.root{background:none;border:0;color:inherit;display:inline-block;font-size:inherit;font-weight:inherit;line-height:inherit;margin:0;padding:0;position:relative;text-align:initial;text-decoration:none;vertical-align:top;-webkit-tap-highlight-color:transparent}}.root:focus{outline:none}.root:focus-visible{box-shadow:var(--rs-focus-shadow);outline:none;z-index:var(--rs-z-index-raised)}.root.--inset:focus-visible{box-shadow:var(--rs-focus-inset-shadow)}.root.--disabled-focus-ring:focus-visible{box-shadow:none}.root.--radius-inherit:focus-visible{box-shadow:none}.root.--radius-inherit:focus-visible>*{box-shadow:var(--rs-focus-shadow)}.root.--radius-inherit.--inset:focus-visible>*{box-shadow:var(--rs-focus-inset-shadow)}[role=button].root,button.root{cursor:pointer;user-select:none}.root.--disabled,.root[disabled]{cursor:not-allowed}.root.--disabled:active,.root[disabled]:active{transform:none}.root.--full-width{width:100%}
@@ -8,6 +8,7 @@ export type Props = {
8
8
  disabled?: boolean;
9
9
  fullWidth?: boolean;
10
10
  insetFocus?: boolean;
11
+ disableFocusRing?: boolean;
11
12
  borderRadius?: "inherit";
12
13
  as?: keyof JSX.IntrinsicElements;
13
14
  className?: G.ClassName;
@@ -19,7 +19,11 @@ const Autocomplete = (props) => {
19
19
  const [active, setActive] = React.useState(false);
20
20
  const hasChildren = !!React.Children.toArray(children).filter(Boolean).length;
21
21
  const lockedRef = React.useRef(false);
22
- const handleOpen = React.useCallback(() => setActive(true), []);
22
+ const handleOpen = React.useCallback(() => {
23
+ if (lockedRef.current)
24
+ return;
25
+ setActive(true);
26
+ }, []);
23
27
  const handleClose = () => setActive(false);
24
28
  useHotkeys({
25
29
  [keys.BACKSPACE]: () => onBackspaceRef.current?.(),
@@ -28,9 +32,11 @@ const Autocomplete = (props) => {
28
32
  disabled: !onBackspaceRef.current,
29
33
  });
30
34
  useHotkeys({
31
- [keys.DOWN]: () => handleOpen(),
35
+ [keys.DOWN]: () => {
36
+ handleOpen();
37
+ },
32
38
  [keys.ENTER]: () => {
33
- const el = getActiveElement();
39
+ const el = getActiveElement(inputRef.current);
34
40
  el?.click();
35
41
  },
36
42
  }, [handleOpen], { ref: inputRef, preventDefault: true });
@@ -50,7 +56,7 @@ const Autocomplete = (props) => {
50
56
  onInput?.({ value: e.currentTarget.value, name, event: e });
51
57
  textFieldProps.inputAttributes?.onInput?.(e);
52
58
  };
53
- return (_jsx(AutocompleteContext.Provider, { value: { onItemClick: handleItemClick }, children: _jsxs(DropdownMenu, { position: "bottom", width: "trigger", triggerType: "focus", trapFocusMode: "selection-menu", active: !lockedRef.current && hasChildren && active, onClose: handleClose, onOpen: handleOpen, containerRef: containerRef, disableHideAnimation: true, instanceRef: instanceRef, children: [_jsx(DropdownMenu.Trigger, { children: ({ ref, ...attributes }) => (_jsx(TextField, { ...textFieldProps, name: name, onChange: handleChange, focused: hasChildren && active,
59
+ return (_jsx(AutocompleteContext.Provider, { value: { onItemClick: handleItemClick }, children: _jsxs(DropdownMenu, { position: "bottom", width: "trigger", triggerType: "focus", trapFocusMode: "selection-menu", active: hasChildren && active, onClose: handleClose, onOpen: handleOpen, containerRef: containerRef, disableHideAnimation: true, instanceRef: instanceRef, children: [_jsx(DropdownMenu.Trigger, { children: ({ ref, ...attributes }) => (_jsx(TextField, { ...textFieldProps, name: name, onChange: handleChange, focused: hasChildren && active,
54
60
  // Ignoring the type check since TS can't infer the correct html element type
55
61
  attributes: { ...textFieldProps.attributes, ref }, inputAttributes: {
56
62
  ...textFieldProps.inputAttributes,
@@ -27,7 +27,7 @@ const Button = forwardRef((props, ref) => {
27
27
  });
28
28
  return (_jsx(Icon, { className: iconClassName, svg: (position === "start" ? icon : endIcon), size: iconSize, autoWidth: true }));
29
29
  };
30
- return (_jsxs(Actionable, { disabled: disabled || loading, className: rootClassName, attributes: { ...attributes, "data-rs-aligner-target": true }, type: type, onClick: onClick, href: href, ref: ref, as: as, children: [loading && (_jsx("div", { className: s.loader, children: _jsx(Loader, { size: "small", color: "inherit" }) })), renderIcon("start"), children && _jsx("span", { className: s.text, children: children }), renderIcon("end")] }));
30
+ return (_jsxs(Actionable, { disabled: disabled || loading, className: rootClassName, attributes: { ...attributes, "data-rs-aligner-target": true }, type: type, onClick: onClick, href: href, ref: ref, as: as, children: [loading && (_jsx("div", { className: s.loader, children: _jsx(Loader, { color: "inherit" }) })), renderIcon("start"), children && _jsx("span", { className: s.text, children: children }), renderIcon("end")] }));
31
31
  });
32
32
  Button.Group = ButtonGroup;
33
33
  Button.Aligner = ButtonAligner;
@@ -9,7 +9,7 @@ declare const Card: React.ForwardRefExoticComponent<{
9
9
  href?: string;
10
10
  as?: keyof JSX.IntrinsicElements | undefined;
11
11
  className?: import("../../types/global").ClassName;
12
- attributes?: (import("../../types/global").Attributes<keyof JSX.IntrinsicElements> & ((import("../../types/global").Attributes<"button"> & Omit<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "form" | "slot" | "style" | "title" | "disabled" | "className" | "color" | "hidden" | "content" | "ref" | "children" | "type" | "key" | "value" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "name" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "autoFocus" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "id" | "lang" | "nonce" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "rel" | "resource" | "rev" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "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-rowindextext" | "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" | "onChange" | "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" | "onResize" | "onResizeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "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" | "onPointerLeave" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture"> & {
12
+ attributes?: (import("../../types/global").Attributes<keyof JSX.IntrinsicElements> & ((import("../../types/global").Attributes<"button"> & Omit<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "form" | "slot" | "style" | "title" | "disabled" | "className" | "color" | "hidden" | "content" | "ref" | "children" | "type" | "key" | "value" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "name" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "autoCapitalize" | "autoFocus" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "enterKeyHint" | "id" | "lang" | "nonce" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "rel" | "resource" | "rev" | "typeof" | "vocab" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "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-rowindextext" | "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" | "onChange" | "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" | "onResize" | "onResizeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "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" | "onPointerLeave" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture"> & {
13
13
  ref?: React.RefObject<HTMLButtonElement | HTMLAnchorElement>;
14
14
  }) | undefined)) | undefined;
15
15
  } & Pick<import("../View").ViewProps, "height"> & React.RefAttributes<HTMLElement>>;
@@ -11,7 +11,7 @@ declare const _default: {
11
11
  href?: string;
12
12
  as?: keyof JSX.IntrinsicElements | undefined;
13
13
  className?: import("../../../types/global").ClassName;
14
- attributes?: (import("../../../types/global").Attributes<keyof JSX.IntrinsicElements> & ((import("../../../types/global").Attributes<"button"> & Omit<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "children" | "ref" | "style" | "form" | "slot" | "title" | "className" | "aria-orientation" | "role" | "hidden" | "color" | "content" | "disabled" | "suppressHydrationWarning" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "value" | "dir" | "name" | "key" | "accessKey" | "autoFocus" | "contentEditable" | "contextMenu" | "draggable" | "nonce" | "spellCheck" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "rel" | "resource" | "rev" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "type" | "id" | "lang" | "tabIndex" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "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-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "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" | "onChange" | "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" | "onResize" | "onResizeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "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" | "onPointerLeave" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture"> & {
14
+ attributes?: (import("../../../types/global").Attributes<keyof JSX.IntrinsicElements> & ((import("../../../types/global").Attributes<"button"> & Omit<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "children" | "ref" | "style" | "form" | "slot" | "title" | "className" | "aria-orientation" | "role" | "hidden" | "color" | "content" | "disabled" | "suppressHydrationWarning" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "value" | "dir" | "name" | "key" | "accessKey" | "autoCapitalize" | "autoFocus" | "contentEditable" | "contextMenu" | "draggable" | "enterKeyHint" | "nonce" | "spellCheck" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "rel" | "resource" | "rev" | "typeof" | "vocab" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "type" | "id" | "lang" | "tabIndex" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-braillelabel" | "aria-brailleroledescription" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colindextext" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-description" | "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-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowindextext" | "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" | "onChange" | "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" | "onResize" | "onResizeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "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" | "onPointerLeave" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture"> & {
15
15
  ref?: React.RefObject<HTMLButtonElement | HTMLAnchorElement>;
16
16
  }) | undefined)) | undefined;
17
17
  } & Pick<import("../../View").ViewProps, "height"> & React.RefAttributes<HTMLElement>>;
@@ -2,7 +2,7 @@ import type React from "react";
2
2
  import type { PopoverProps, PopoverInstance } from "../Popover";
3
3
  import type { FlyoutContentProps } from "../_private/Flyout";
4
4
  export type Instance = PopoverInstance;
5
- export type Props = Pick<PopoverProps, "children" | "position" | "forcePosition" | "triggerType" | "contentGap" | "onOpen" | "onClose" | "active" | "defaultActive" | "width" | "disableHideAnimation" | "disableCloseOnOutsideClick" | "instanceRef" | "containerRef"> & {
5
+ export type Props = Pick<PopoverProps, "children" | "position" | "forcePosition" | "fallbackPositions" | "triggerType" | "contentGap" | "onOpen" | "onClose" | "active" | "defaultActive" | "width" | "disableHideAnimation" | "disableCloseOnOutsideClick" | "instanceRef" | "containerRef"> & {
6
6
  trapFocusMode?: Extract<PopoverProps["trapFocusMode"], "action-menu" | "selection-menu">;
7
7
  };
8
8
  export type ContentProps = Pick<FlyoutContentProps, "attributes" | "children" | "className">;
@@ -9,12 +9,14 @@ export declare const useFormControl: () => {
9
9
  suppressContentEditableWarning?: boolean | undefined;
10
10
  suppressHydrationWarning?: boolean | undefined;
11
11
  accessKey?: string | undefined;
12
+ autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {});
12
13
  autoFocus?: boolean | undefined;
13
14
  className?: string | undefined;
14
15
  contentEditable?: (boolean | "false" | "true") | "inherit" | "plaintext-only" | undefined;
15
16
  contextMenu?: string | undefined;
16
17
  dir?: string | undefined;
17
18
  draggable?: (boolean | "false" | "true") | undefined;
19
+ enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
18
20
  hidden?: boolean | undefined;
19
21
  id?: string | undefined;
20
22
  lang?: string | undefined;
@@ -38,7 +40,6 @@ export declare const useFormControl: () => {
38
40
  rev?: string | undefined;
39
41
  typeof?: string | undefined;
40
42
  vocab?: string | undefined;
41
- autoCapitalize?: string | undefined;
42
43
  autoCorrect?: string | undefined;
43
44
  autoSave?: string | undefined;
44
45
  color?: string | undefined;
@@ -0,0 +1,6 @@
1
+ import type * as T from "./Grid.types";
2
+ declare const Grid: {
3
+ <As extends keyof JSX.IntrinsicElements = "div">(props: T.Props<As>): import("react/jsx-runtime").JSX.Element;
4
+ Item: <As extends keyof JSX.IntrinsicElements = "div">(props: T.ItemProps<As>) => import("react/jsx-runtime").JSX.Element;
5
+ };
6
+ export default Grid;
@@ -0,0 +1,46 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { classNames, responsiveVariables, responsivePropDependency } from "../../utilities/helpers.js";
3
+ import getAlignStyles from "../../styles/align/index.js";
4
+ import getJustifyStyles from "../../styles/justify/index.js";
5
+ import s from "./Grid.module.css";
6
+ const GridItem = (props) => {
7
+ const { area, colStart, colEnd, colSpan, rowStart, rowEnd, rowSpan, children, className, as: TagName = "div", attributes, } = props;
8
+ const itemClassNames = classNames(s.item, className);
9
+ const resolvedColSpan = responsivePropDependency(colSpan, (value) => value && `span ${value}`);
10
+ const resolvedRowSpan = responsivePropDependency(rowSpan, (value) => value && `span ${value}`);
11
+ const rootVariables = {
12
+ ...responsiveVariables("--rs-grid-area", area),
13
+ ...responsiveVariables("--rs-grid-col-end", resolvedColSpan),
14
+ // both span and end use the same css variable but end has a higher prioerity
15
+ ...responsiveVariables("--rs-grid-col-end", colEnd),
16
+ ...responsiveVariables("--rs-grid-col-start", colStart),
17
+ ...responsiveVariables("--rs-grid-row-end", resolvedRowSpan),
18
+ ...responsiveVariables("--rs-grid-row-end", rowEnd),
19
+ ...responsiveVariables("--rs-grid-row-start", rowStart),
20
+ };
21
+ return (_jsx(TagName, { ...attributes, className: itemClassNames, style: rootVariables, children: children }));
22
+ };
23
+ const Grid = (props) => {
24
+ const { areas, columns, rows, gap, align, justify, autoColumns, autoRows, autoFlow, children, className, as: TagName = "div", attributes, } = props;
25
+ const alignStyles = getAlignStyles(align);
26
+ const justifyStyles = getJustifyStyles(justify);
27
+ const resolvedRows = responsivePropDependency(rows, (value) => typeof value === "number" ? `repeat(${value}, 1fr)` : value);
28
+ const resolvedColumns = responsivePropDependency(columns, (value) => typeof value === "number" ? `repeat(${value}, 1fr)` : value);
29
+ const resolvedAreas = responsivePropDependency(areas, (value) => value
30
+ ? `"${value?.join('" "')}"
31
+ `
32
+ : undefined);
33
+ const rootClassNames = classNames(s.root, alignStyles?.classNames, justifyStyles?.classNames, className);
34
+ const rootVariables = {
35
+ ...responsiveVariables("--rs-grid-gap", gap),
36
+ ...responsiveVariables("--rs-grid-rows", resolvedRows),
37
+ ...responsiveVariables("--rs-grid-columns", resolvedColumns),
38
+ ...responsiveVariables("--rs-grid-areas", resolvedAreas),
39
+ ...responsiveVariables("--rs-grid-auto-flow", autoFlow),
40
+ ...responsiveVariables("--rs-grid-auto-columns", autoColumns),
41
+ ...responsiveVariables("--rs-grid-auto-rows", autoRows),
42
+ };
43
+ return (_jsx(TagName, { ...attributes, className: rootClassNames, style: rootVariables, children: children }));
44
+ };
45
+ Grid.Item = GridItem;
46
+ export default Grid;
@@ -0,0 +1 @@
1
+ .root{display:grid}[style*="--rs-grid-gap"]{--rs-grid-gap-value:calc(var(--rs-grid-gap) * var(--rs-unit-x1));gap:var(--rs-grid-gap-value);--rs-grid-gap-s:0;--rs-grid-gap-m:var(--rs-grid-gap-s);--rs-grid-gap-l:var(--rs-grid-gap-m);--rs-grid-gap-xl:var(--rs-grid-gap-l);--rs-grid-gap:var(--rs-grid-gap-s)}[style*="--rs-grid-rows"]{grid-template-rows:var(--rs-grid-rows);--rs-grid-rows-s: ;--rs-grid-rows-m:var(--rs-grid-rows-s);--rs-grid-rows-l:var(--rs-grid-rows-m);--rs-grid-rows-xl:var(--rs-grid-rows-l);--rs-grid-rows:var(--rs-grid-rows-s)}[style*="--rs-grid-columns"]{grid-template-columns:var(--rs-grid-columns);--rs-grid-columns-s: ;--rs-grid-columns-m:var(--rs-grid-columns-s);--rs-grid-columns-l:var(--rs-grid-columns-m);--rs-grid-columns-xl:var(--rs-grid-columns-l);--rs-grid-columns:var(--rs-grid-columns-s)}[style*="--rs-grid-areas"]{grid-template-areas:var(--rs-grid-areas);--rs-grid-areas-s: ;--rs-grid-areas-m:var(--rs-grid-areas-s);--rs-grid-areas-l:var(--rs-grid-areas-m);--rs-grid-areas-xl:var(--rs-grid-areas-l);--rs-grid-areas:var(--rs-grid-areas-s)}[style*="--rs-grid-auto-flow"]{grid-auto-flow:var(--rs-grid-auto-flow);--rs-grid-auto-flow-s: ;--rs-grid-auto-flow-m:var(--rs-grid-auto-flow-s);--rs-grid-auto-flow-l:var(--rs-grid-auto-flow-m);--rs-grid-auto-flow-xl:var(--rs-grid-auto-flow-l);--rs-grid-auto-flow:var(--rs-grid-auto-flow-s)}[style*="--rs-grid-auto-columns"]{grid-auto-columns:var(--rs-grid-auto-columns);--rs-grid-auto-columns-s: ;--rs-grid-auto-columns-m:var(--rs-grid-auto-columns-s);--rs-grid-auto-columns-l:var(--rs-grid-auto-columns-m);--rs-grid-auto-columns-xl:var(--rs-grid-auto-columns-l);--rs-grid-auto-columns:var(--rs-grid-auto-columns-s)}[style*="--rs-grid-auto-rows"]{grid-auto-rows:var(--rs-grid-auto-rows);--rs-grid-auto-rows-s: ;--rs-grid-auto-rows-m:var(--rs-grid-auto-rows-s);--rs-grid-auto-rows-l:var(--rs-grid-auto-rows-m);--rs-grid-auto-rows-xl:var(--rs-grid-auto-rows-l);--rs-grid-auto-rows:var(--rs-grid-auto-rows-s)}[style*="--rs-grid-area"]{grid-area:var(--rs-grid-area);--rs-grid-area-s: ;--rs-grid-area-m:var(--rs-grid-area-s);--rs-grid-area-l:var(--rs-grid-area-m);--rs-grid-area-xl:var(--rs-grid-area-l);--rs-grid-area:var(--rs-grid-area-s)}[style*="--rs-grid-col-start"]{grid-column-start:var(--rs-grid-col-start);--rs-grid-col-start-s: ;--rs-grid-col-start-m:var(--rs-grid-col-start-s);--rs-grid-col-start-l:var(--rs-grid-col-start-m);--rs-grid-col-start-xl:var(--rs-grid-col-start-l);--rs-grid-col-start:var(--rs-grid-col-start-s)}[style*="--rs-grid-col-end"]{grid-column-end:var(--rs-grid-col-end);--rs-grid-col-end-s: ;--rs-grid-col-end-m:var(--rs-grid-col-end-s);--rs-grid-col-end-l:var(--rs-grid-col-end-m);--rs-grid-col-end-xl:var(--rs-grid-col-end-l);--rs-grid-col-end:var(--rs-grid-col-end-s)}[style*="--rs-grid-row-start"]{grid-row-start:var(--rs-grid-row-start);--rs-grid-row-start-s: ;--rs-grid-row-start-m:var(--rs-grid-row-start-s);--rs-grid-row-start-l:var(--rs-grid-row-start-m);--rs-grid-row-start-xl:var(--rs-grid-row-start-l);--rs-grid-row-start:var(--rs-grid-row-start-s)}[style*="--rs-grid-row-end"]{grid-row-end:var(--rs-grid-row-end);--rs-grid-row-end-s: ;--rs-grid-row-end-m:var(--rs-grid-row-end-s);--rs-grid-row-end-l:var(--rs-grid-row-end-m);--rs-grid-row-end-xl:var(--rs-grid-row-end-l);--rs-grid-row-end:var(--rs-grid-row-end-s)}@media (--rs-viewport-m ){[style*="--rs-grid-gap"]{--rs-grid-gap:var(--rs-grid-gap-m)}[style*="--rs-grid-rows"]{--rs-grid-rows:var(--rs-grid-rows-m)}[style*="--rs-grid-columns"]{--rs-grid-columns:var(--rs-grid-columns-m)}[style*="--rs-grid-areas"]{--rs-grid-areas:var(--rs-grid-areas-m)}[style*="--rs-grid-auto-flow"]{--rs-grid-auto-flow:var(--rs-grid-auto-flow-m)}[style*="--rs-grid-auto-columns"]{--rs-grid-auto-columns:var(--rs-grid-auto-columns-m)}[style*="--rs-grid-auto-rows"]{--rs-grid-auto-rows:var(--rs-grid-auto-rows-m)}[style*="--rs-grid-area"]{--rs-grid-area:var(--rs-grid-area-m)}[style*="--rs-grid-col-start"]{--rs-grid-col-start:var(--rs-grid-col-start-m)}[style*="--rs-grid-col-end"]{--rs-grid-col-end:var(--rs-grid-col-end-m)}[style*="--rs-grid-row-start"]{--rs-grid-row-start:var(--rs-grid-row-start-m)}[style*="--rs-grid-row-end"]{--rs-grid-row-end:var(--rs-grid-row-end-m)}}@media (--rs-viewport-l ){[style*="--rs-grid-gap"]{--rs-grid-gap:var(--rs-grid-gap-l)}[style*="--rs-grid-rows"]{--rs-grid-rows:var(--rs-grid-rows-l)}[style*="--rs-grid-columns"]{--rs-grid-columns:var(--rs-grid-columns-l)}[style*="--rs-grid-areas"]{--rs-grid-areas:var(--rs-grid-areas-l)}[style*="--rs-grid-auto-flow"]{--rs-grid-auto-flow:var(--rs-grid-auto-flow-l)}[style*="--rs-grid-auto-columns"]{--rs-grid-auto-columns:var(--rs-grid-auto-columns-l)}[style*="--rs-grid-auto-rows"]{--rs-grid-auto-rows:var(--rs-grid-auto-rows-l)}[style*="--rs-grid-area"]{--rs-grid-area:var(--rs-grid-area-l)}[style*="--rs-grid-col-start"]{--rs-grid-col-start:var(--rs-grid-col-start-l)}[style*="--rs-grid-col-end"]{--rs-grid-col-end:var(--rs-grid-col-end-l)}[style*="--rs-grid-row-start"]{--rs-grid-row-start:var(--rs-grid-row-start-l)}[style*="--rs-grid-row-end"]{--rs-grid-row-end:var(--rs-grid-row-end-l)}}@media (--rs-viewport-xl ){[style*="--rs-grid-gap"]{--rs-grid-gap:var(--rs-grid-gap-xl)}[style*="--rs-grid-rows"]{--rs-grid-rows:var(--rs-grid-rows-xl)}[style*="--rs-grid-columns"]{--rs-grid-columns:var(--rs-grid-columns-xl)}[style*="--rs-grid-areas"]{--rs-grid-areas:var(--rs-grid-areas-xl)}[style*="--rs-grid-auto-flow"]{--rs-grid-auto-flow:var(--rs-grid-auto-flow-xl)}[style*="--rs-grid-auto-columns"]{--rs-grid-auto-columns:var(--rs-grid-auto-columns-xl)}[style*="--rs-grid-auto-rows"]{--rs-grid-auto-rows:var(--rs-grid-auto-rows-xl)}[style*="--rs-grid-area"]{--rs-grid-area:var(--rs-grid-area-xl)}[style*="--rs-grid-col-start"]{--rs-grid-col-start:var(--rs-grid-col-start-xl)}[style*="--rs-grid-col-end"]{--rs-grid-col-end:var(--rs-grid-col-end-xl)}[style*="--rs-grid-row-start"]{--rs-grid-row-start:var(--rs-grid-row-start-xl)}[style*="--rs-grid-row-end"]{--rs-grid-row-end:var(--rs-grid-row-end-xl)}}
@@ -0,0 +1,31 @@
1
+ import type { Property } from "csstype";
2
+ import type * as G from "../../types/global";
3
+ import type * as TStyles from "../../styles/types";
4
+ export type Props<TagName extends keyof JSX.IntrinsicElements = "div"> = {
5
+ gap?: G.Responsive<number>;
6
+ align?: G.Responsive<TStyles.Align>;
7
+ justify?: G.Responsive<TStyles.Justify>;
8
+ rows?: G.Responsive<number | Property.GridTemplateRows>;
9
+ columns?: G.Responsive<number | Property.GridTemplateColumns>;
10
+ areas?: G.Responsive<string[]>;
11
+ autoFlow?: G.Responsive<Property.GridAutoFlow>;
12
+ autoColumns?: G.Responsive<Property.GridAutoColumns>;
13
+ autoRows?: G.Responsive<Property.GridAutoRows>;
14
+ children?: React.ReactNode;
15
+ as?: TagName;
16
+ className?: G.ClassName;
17
+ attributes?: G.Attributes<TagName>;
18
+ };
19
+ export type ItemProps<TagName extends keyof JSX.IntrinsicElements = "div"> = {
20
+ area?: string;
21
+ colStart?: G.Responsive<number>;
22
+ colEnd?: G.Responsive<number>;
23
+ colSpan?: G.Responsive<number>;
24
+ rowStart?: G.Responsive<number>;
25
+ rowEnd?: G.Responsive<number>;
26
+ rowSpan?: G.Responsive<number>;
27
+ children?: React.ReactNode;
28
+ as?: TagName;
29
+ className?: G.ClassName;
30
+ attributes?: G.Attributes<TagName>;
31
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ export { default } from "./Grid";
2
+ export type { Props as GridProps, ItemProps as GridItemProps } from "./Grid.types";
@@ -0,0 +1 @@
1
+ export { default } from "./Grid.js";
@@ -0,0 +1,18 @@
1
+ declare const _default: {
2
+ title: string;
3
+ component: {
4
+ <As extends keyof JSX.IntrinsicElements = "div">(props: import("./..").GridProps<As>): import("react").JSX.Element;
5
+ Item: <As extends keyof JSX.IntrinsicElements = "div">(props: import("./..").GridItemProps<As>) => import("react").JSX.Element;
6
+ };
7
+ parameters: {
8
+ iframe: {
9
+ url: string;
10
+ };
11
+ };
12
+ };
13
+ export default _default;
14
+ export declare const base: () => import("react").JSX.Element;
15
+ export declare const layout: () => import("react").JSX.Element;
16
+ export declare const itemLayout: () => import("react").JSX.Element;
17
+ export declare const areas: () => import("react").JSX.Element;
18
+ export declare const auto: () => import("react").JSX.Element;
@@ -0,0 +1,170 @@
1
+ import { Example } from "../../../utilities/storybook/index.js";
2
+ import Grid from "../index.js";
3
+ import View from "../../View/index.js";
4
+ export default {
5
+ title: "Utilities/Grid",
6
+ component: Grid,
7
+ parameters: {
8
+ iframe: {
9
+ url: "https://reshaped.so/docs/utilities/grid",
10
+ },
11
+ },
12
+ };
13
+ export const base = () => (<Example>
14
+ <Example.Item title="gap: 2">
15
+ <Grid gap={2} columns={2}>
16
+ {[1, 2].map((i) => (<View backgroundColor="neutral-faded" borderRadius="medium" padding={4} key={i}>
17
+ {i}
18
+ </View>))}
19
+ </Grid>
20
+ </Example.Item>
21
+ <Example.Item title="align: center">
22
+ <Grid gap={2} columns={2} align="center">
23
+ <View backgroundColor="neutral-faded" borderRadius="medium" padding={4}>
24
+ 1
25
+ </View>
26
+ <View backgroundColor="neutral-faded" borderRadius="medium" padding={8}>
27
+ 2
28
+ </View>
29
+ </Grid>
30
+ </Example.Item>
31
+ <Example.Item title="justify: center">
32
+ <Grid gap={2} columns="200px 200px" justify="center">
33
+ <View backgroundColor="neutral-faded" borderRadius="medium" padding={4}>
34
+ 1
35
+ </View>
36
+ <View backgroundColor="neutral-faded" borderRadius="medium" padding={4}>
37
+ 2
38
+ </View>
39
+ </Grid>
40
+ </Example.Item>
41
+ </Example>);
42
+ export const layout = () => (<Example>
43
+ <Example.Item title="simple: 2 rows, 3 columns">
44
+ <Grid gap={4} columns={3} rows={2}>
45
+ {[1, 2, 3, 4, 5].map((i) => (<View backgroundColor="neutral-faded" borderRadius="medium" padding={4} key={i}>
46
+ {i}
47
+ </View>))}
48
+ </Grid>
49
+ </Example.Item>
50
+ <Example.Item title="columns template, 1fr 2fr 1fr">
51
+ <Grid gap={4} columns="1fr 2fr 1fr" rows={2}>
52
+ {[1, 2, 3, 4, 5].map((i) => (<View backgroundColor="neutral-faded" borderRadius="medium" padding={4} key={i}>
53
+ {i}
54
+ </View>))}
55
+ </Grid>
56
+ </Example.Item>
57
+ <Example.Item title="rows template, 1fr 2fr">
58
+ <Grid gap={4} columns={3} rows="1fr 2fr">
59
+ {[1, 2, 3, 4, 5].map((i) => (<View backgroundColor="neutral-faded" borderRadius="medium" padding={4} key={i}>
60
+ {i}
61
+ </View>))}
62
+ </Grid>
63
+ </Example.Item>
64
+ <Example.Item title="responsive">
65
+ <Grid gap={4} columns={{ s: 3, m: "1fr 2fr 1fr" }} rows={{ s: 2, m: "1fr 2fr" }}>
66
+ {[1, 2, 3, 4, 5].map((i) => (<View backgroundColor="neutral-faded" borderRadius="medium" padding={4} key={i}>
67
+ {i}
68
+ </View>))}
69
+ </Grid>
70
+ </Example.Item>
71
+ </Example>);
72
+ export const itemLayout = () => (<Example>
73
+ <Example.Item title="column, start 1, end 3">
74
+ <Grid gap={4} columns={3} rows={2}>
75
+ <Grid.Item colStart={1} colEnd={3}>
76
+ <View backgroundColor="neutral-faded" borderRadius="medium" padding={4} height="100%">
77
+ 1
78
+ </View>
79
+ </Grid.Item>
80
+ {[2, 3, 4, 5].map((i) => (<View backgroundColor="neutral-faded" borderRadius="medium" padding={4} key={i}>
81
+ {i}
82
+ </View>))}
83
+ </Grid>
84
+ </Example.Item>
85
+ <Example.Item title="column, start 1, span 2">
86
+ <Grid gap={4} columns={3} rows={2}>
87
+ <Grid.Item colStart={1} colSpan={2}>
88
+ <View backgroundColor="neutral-faded" borderRadius="medium" padding={4} height="100%">
89
+ 1
90
+ </View>
91
+ </Grid.Item>
92
+ {[2, 3, 4, 5].map((i) => (<View backgroundColor="neutral-faded" borderRadius="medium" padding={4} key={i}>
93
+ {i}
94
+ </View>))}
95
+ </Grid>
96
+ </Example.Item>
97
+
98
+ <Example.Item title="row, start 1, end 3">
99
+ <Grid gap={4} columns={3} rows={2}>
100
+ <Grid.Item rowStart={1} rowEnd={3}>
101
+ <View backgroundColor="neutral-faded" borderRadius="medium" padding={4} height="100%">
102
+ 1
103
+ </View>
104
+ </Grid.Item>
105
+ {[2, 3, 4, 5].map((i) => (<View backgroundColor="neutral-faded" borderRadius="medium" padding={4} key={i}>
106
+ {i}
107
+ </View>))}
108
+ </Grid>
109
+ </Example.Item>
110
+
111
+ <Example.Item title="row, start 1, span 2">
112
+ <Grid gap={4} columns={3} rows={2}>
113
+ <Grid.Item rowStart={1} rowSpan={2}>
114
+ <View backgroundColor="neutral-faded" borderRadius="medium" padding={4} height="100%">
115
+ 1
116
+ </View>
117
+ </Grid.Item>
118
+ {[2, 3, 4, 5].map((i) => (<View backgroundColor="neutral-faded" borderRadius="medium" padding={4} key={i}>
119
+ {i}
120
+ </View>))}
121
+ </Grid>
122
+ </Example.Item>
123
+
124
+ <Example.Item title="responsive">
125
+ <Grid gap={4} columns={3} rows={2}>
126
+ <Grid.Item rowStart={1} rowSpan={{ s: 1, m: 2 }} colStart={1} colSpan={{ s: 1, m: 2 }}>
127
+ <View backgroundColor="neutral-faded" borderRadius="medium" padding={4} height="100%">
128
+ 1
129
+ </View>
130
+ </Grid.Item>
131
+ {[2, 3, 4, 5].map((i) => (<View backgroundColor="neutral-faded" borderRadius="medium" padding={4} key={i}>
132
+ {i}
133
+ </View>))}
134
+ </Grid>
135
+ </Example.Item>
136
+ </Example>);
137
+ export const areas = () => (<Example>
138
+ <Example.Item title="simple: 2 rows, 3 columns">
139
+ <Grid gap={4} rows={2} areas={["a .", "a b"]}>
140
+ {["a", "b"].map((area) => (<Grid.Item area={area} key={area}>
141
+ <View backgroundColor="neutral-faded" borderRadius="medium" padding={4} height="100%">
142
+ {area}
143
+ </View>
144
+ </Grid.Item>))}
145
+ </Grid>
146
+ </Example.Item>
147
+ </Example>);
148
+ export const auto = () => (<Example>
149
+ <Example.Item title="auto flow: column">
150
+ <Grid gap={4} autoFlow="column" rows={2} columns={2}>
151
+ {[1, 2, 3].map((i) => (<View backgroundColor="neutral-faded" borderRadius="medium" padding={4} key={i}>
152
+ {i}
153
+ </View>))}
154
+ </Grid>
155
+ </Example.Item>
156
+ <Example.Item title="auto rows">
157
+ <Grid gap={4} autoRows="100px" columns={2}>
158
+ {[1, 2, 3].map((i) => (<View backgroundColor="neutral-faded" borderRadius="medium" padding={4} key={i}>
159
+ {i}
160
+ </View>))}
161
+ </Grid>
162
+ </Example.Item>
163
+ <Example.Item title="auto columns">
164
+ <Grid gap={4} autoColumns="100px" autoFlow="column">
165
+ {[1, 2, 3].map((i) => (<View backgroundColor="neutral-faded" borderRadius="medium" padding={4} key={i}>
166
+ {i}
167
+ </View>))}
168
+ </Grid>
169
+ </Example.Item>
170
+ </Example>);
@@ -1 +1 @@
1
- .root{aspect-ratio:1;display:flex;justify-content:center}.--auto{aspect-ratio:auto;justify-content:flex-start;width:auto}.root svg{display:block;height:100%;min-width:100%}.--color-neutral{color:var(--rs-color-foreground-neutral)}.--color-neutral-faded{color:var(--rs-color-foreground-neutral-faded)}.--color-primary{color:var(--rs-color-foreground-primary)}.--color-positive{color:var(--rs-color-foreground-positive)}.--color-warning{color:var(--rs-color-foreground-warning)}.--color-critical{color:var(--rs-color-foreground-critical)}.--color-disabled{color:var(--rs-color-foreground-disabled)}
1
+ .root{aspect-ratio:1;display:flex;justify-content:center}.--auto{aspect-ratio:auto;justify-content:flex-start;width:auto}.root svg{display:block;height:100%;min-width:100%;width:auto}.--color-neutral{color:var(--rs-color-foreground-neutral)}.--color-neutral-faded{color:var(--rs-color-foreground-neutral-faded)}.--color-primary{color:var(--rs-color-foreground-primary)}.--color-positive{color:var(--rs-color-foreground-positive)}.--color-warning{color:var(--rs-color-foreground-warning)}.--color-critical{color:var(--rs-color-foreground-critical)}.--color-disabled{color:var(--rs-color-foreground-disabled)}
@@ -2,5 +2,5 @@ declare const Link: import("react").ForwardRefExoticComponent<Pick<import("../Ac
2
2
  icon?: import("../Icon").IconProps["svg"];
3
3
  color?: "inherit" | "critical" | "primary" | "positive" | "warning";
4
4
  variant?: "plain" | "underline";
5
- } & import("react").RefAttributes<HTMLAnchorElement | HTMLButtonElement>>;
5
+ } & import("react").RefAttributes<HTMLButtonElement | HTMLAnchorElement>>;
6
6
  export default Link;
@@ -1 +1 @@
1
- @keyframes rs-reshaped-loader{0%{transform:rotate(0deg)}50%{transform:rotate(540deg)}to{transform:rotate(3turn)}}.root{animation:rs-reshaped-loader 2.2s cubic-bezier(.445,.05,.55,.95) infinite;display:block;height:var(--rs-loader-size);position:relative;width:var(--rs-loader-size)}.root:after,.root:before{background:var(--rs-loader-color);border-radius:50%;content:"";height:var(--rs-loader-stroke);position:absolute;top:50%;transform:translateY(-50%);width:var(--rs-loader-stroke);z-index:2}.root:before{left:0}.root:after{right:0}.inner:after,.inner:before{border:var(--rs-loader-stroke) solid var(--rs-loader-color);border-radius:50%;content:"";inset:0;position:absolute}.inner:before{opacity:.28}.inner:after{border-bottom-color:transparent;border-left-color:transparent;transform:rotate(-45deg)}.--color-inherit{--rs-loader-color:currentcolor}.--color-primary{--rs-loader-color:var(--rs-color-border-primary)}.--color-positive{--rs-loader-color:var(--rs-color-border-positive)}.--color-critical{--rs-loader-color:var(--rs-color-border-critical)}.--size-small{--rs-loader-size:var(--rs-unit-x4);--rs-loader-stroke:2px}.--size-medium{--rs-loader-size:var(--rs-unit-x6);--rs-loader-stroke:3px}@media (--rs-viewport-m ){.--size-small--m{--rs-loader-size:var(--rs-unit-x4);--rs-loader-stroke:2px}.--size-medium--m{--rs-loader-size:var(--rs-unit-x6);--rs-loader-stroke:3px}}@media (--rs-viewport-l ){.--size-small--l{--rs-loader-size:var(--rs-unit-x4);--rs-loader-stroke:2px}.--size-medium--l{--rs-loader-size:var(--rs-unit-x6);--rs-loader-stroke:3px}}@media (--rs-viewport-xl ){.--size-small--xl{--rs-loader-size:var(--rs-unit-x4);--rs-loader-stroke:2px}.--size-medium--xl{--rs-loader-size:var(--rs-unit-x6);--rs-loader-stroke:3px}}
1
+ @keyframes rs-reshaped-loader{0%{transform:rotate(0deg)}50%{transform:rotate(540deg)}to{transform:rotate(3turn)}}.root{animation:rs-reshaped-loader 2.2s cubic-bezier(.445,.05,.55,.95) infinite;display:block;height:var(--rs-loader-size);position:relative;width:var(--rs-loader-size)}.root:after,.root:before{background:var(--rs-loader-color);border-radius:50%;content:"";height:var(--rs-loader-stroke);position:absolute;top:50%;transform:translateY(-50%);width:var(--rs-loader-stroke);z-index:2}.root:before{left:0}.root:after{right:0}.inner:after,.inner:before{border:var(--rs-loader-stroke) solid var(--rs-loader-color);border-radius:50%;content:"";inset:0;position:absolute}.inner:before{opacity:.28}.inner:after{border-bottom-color:transparent;border-left-color:transparent;transform:rotate(-45deg)}.--color-inherit{--rs-loader-color:currentcolor}.--color-primary{--rs-loader-color:var(--rs-color-border-primary)}.--color-positive{--rs-loader-color:var(--rs-color-border-positive)}.--color-critical{--rs-loader-color:var(--rs-color-border-critical)}.--size-small{--rs-loader-size:var(--rs-unit-x4);--rs-loader-stroke:2px}.--size-medium{--rs-loader-size:var(--rs-unit-x6);--rs-loader-stroke:3px}.--size-large{--rs-loader-size:var(--rs-unit-x10);--rs-loader-stroke:5px}@media (--rs-viewport-m ){.--size-small--m{--rs-loader-size:var(--rs-unit-x4);--rs-loader-stroke:2px}.--size-medium--m{--rs-loader-size:var(--rs-unit-x6);--rs-loader-stroke:3px}.--size-large--m{--rs-loader-size:var(--rs-unit-x10);--rs-loader-stroke:5px}}@media (--rs-viewport-l ){.--size-small--l{--rs-loader-size:var(--rs-unit-x4);--rs-loader-stroke:2px}.--size-medium--l{--rs-loader-size:var(--rs-unit-x6);--rs-loader-stroke:3px}.--size-large--l{--rs-loader-size:var(--rs-unit-x10);--rs-loader-stroke:5px}}@media (--rs-viewport-xl ){.--size-small--xl{--rs-loader-size:var(--rs-unit-x4);--rs-loader-stroke:2px}.--size-medium--xl{--rs-loader-size:var(--rs-unit-x6);--rs-loader-stroke:3px}.--size-large--xl{--rs-loader-size:var(--rs-unit-x10);--rs-loader-stroke:5px}}
@@ -1,6 +1,6 @@
1
1
  import type * as G from "../../types/global";
2
2
  export type Props = {
3
- size?: G.Responsive<"small" | "medium">;
3
+ size?: G.Responsive<"small" | "medium" | "large">;
4
4
  color?: "primary" | "critical" | "positive" | "inherit";
5
5
  className?: G.ClassName;
6
6
  attributes?: G.Attributes<"span">;
@@ -10,13 +10,15 @@ export default {
10
10
  },
11
11
  };
12
12
  export const size = () => {
13
- const attributes = {};
14
13
  return (<Example>
15
14
  <Example.Item title="size: medium">
16
- <Loader size="medium" attributes={attributes}/>
15
+ <Loader size="medium"/>
17
16
  </Example.Item>
18
17
  <Example.Item title="size: small">
19
- <Loader size="small" attributes={{ "data-foo": "23" }}/>
18
+ <Loader size="small"/>
19
+ </Example.Item>
20
+ <Example.Item title="size: large">
21
+ <Loader size="large"/>
20
22
  </Example.Item>
21
23
  <Example.Item title={["responsive size", "[s] small", "[m+] medium"]}>
22
24
  <Loader size={{ s: "small", m: "medium" }}/>
@@ -9,7 +9,7 @@ export default {
9
9
  component: Overlay,
10
10
  parameters: {
11
11
  iframe: {
12
- url: "https://reshaped.so/docs/components/overlay",
12
+ url: "https://reshaped.so/docs/utilities/overlay",
13
13
  },
14
14
  },
15
15
  };
@@ -5,14 +5,12 @@ import Dismissible from "../Dismissible/index.js";
5
5
  import s from "./Popover.module.css";
6
6
  import getPaddingStyles from "../../styles/padding/index.js";
7
7
  const Popover = (props) => {
8
- const { id, forcePosition, onOpen, onClose, active, defaultActive, children, width, contentGap, variant = "elevated", triggerType = "click", position = "bottom", disableHideAnimation, disableContentHover, disableCloseOnOutsideClick, instanceRef, containerRef, } = props;
8
+ const { width, variant = "elevated", triggerType = "click", position = "bottom", ...flyoutProps } = props;
9
9
  const padding = props.padding ?? (variant === "headless" ? 0 : 4);
10
10
  const trapFocusMode = props.trapFocusMode || (triggerType === "hover" ? "content-menu" : undefined);
11
11
  const paddingStyles = getPaddingStyles(padding);
12
12
  const contentClassName = classNames(s.content, !!width && s["content--has-width"], variant && s[`content--variant-${variant}`], paddingStyles?.classNames);
13
- return (
14
- // @ts-ignore
15
- _jsx(Flyout, { id: id, instanceRef: instanceRef, position: position, forcePosition: forcePosition, onOpen: onOpen, onClose: onClose, trapFocusMode: trapFocusMode, triggerType: triggerType, active: active, defaultActive: defaultActive, width: width, disableHideAnimation: disableHideAnimation, disableContentHover: disableContentHover, disableCloseOnOutsideClick: disableCloseOnOutsideClick, contentGap: contentGap, containerRef: containerRef, contentClassName: contentClassName, contentAttributes: { style: { ...paddingStyles?.variables } }, children: children }));
13
+ return (_jsx(Flyout, { ...flyoutProps, position: position, trapFocusMode: trapFocusMode, triggerType: triggerType, width: width, contentClassName: contentClassName, contentAttributes: { style: { ...paddingStyles?.variables } } }));
16
14
  };
17
15
  const PopoverDismissible = (props) => {
18
16
  const { handleClose } = useFlyoutContext();
@@ -1,7 +1,7 @@
1
1
  import type React from "react";
2
2
  import type { FlyoutProps, FlyoutInstance } from "../_private/Flyout";
3
3
  export type Instance = FlyoutInstance;
4
- export type Props = Pick<FlyoutProps, "id" | "position" | "forcePosition" | "onOpen" | "onClose" | "width" | "trapFocusMode" | "active" | "defaultActive" | "contentGap" | "instanceRef" | "triggerType" | "disableHideAnimation" | "disableContentHover" | "disableCloseOnOutsideClick" | "containerRef"> & {
4
+ export type Props = Pick<FlyoutProps, "id" | "position" | "forcePosition" | "fallbackPositions" | "onOpen" | "onClose" | "width" | "trapFocusMode" | "active" | "defaultActive" | "contentGap" | "instanceRef" | "triggerType" | "disableHideAnimation" | "disableContentHover" | "disableCloseOnOutsideClick" | "containerRef" | "initialFocusRef"> & {
5
5
  children?: React.ReactNode;
6
6
  padding?: number;
7
7
  variant?: "elevated" | "headless";