@sanity/ui 1.1.0-beta.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/LICENSE +1 -1
  2. package/dist/index.cjs.mjs +120 -0
  3. package/dist/index.d.ts +26 -4
  4. package/dist/{index.cjs → index.esm.js} +1987 -1946
  5. package/dist/index.esm.js.map +1 -0
  6. package/dist/index.js +2114 -1819
  7. package/dist/index.js.map +1 -1
  8. package/package.json +47 -44
  9. package/src/components/dialog/__workshop__/activate.tsx +134 -0
  10. package/src/components/dialog/__workshop__/index.ts +3 -0
  11. package/src/components/dialog/__workshop__/nested.tsx +14 -3
  12. package/src/components/dialog/__workshop__/panes.tsx +86 -0
  13. package/src/components/dialog/__workshop__/wrapped.tsx +78 -0
  14. package/src/components/dialog/dialog.tsx +110 -25
  15. package/src/components/toast/toastProvider.tsx +55 -52
  16. package/src/constants.ts +2 -2
  17. package/src/helpers/element.ts +7 -0
  18. package/src/hooks/index.ts +1 -0
  19. package/src/hooks/useArrayProp.ts +2 -1
  20. package/src/hooks/useMediaIndex/useMediaIndex.test.tsx +31 -0
  21. package/src/hooks/useMediaIndex/useMediaIndex.ts +98 -6
  22. package/src/hooks/useMounted.ts +14 -0
  23. package/src/hooks/usePrefersDark.hydration.test.tsx +56 -0
  24. package/src/hooks/usePrefersDark.test.tsx +18 -0
  25. package/src/hooks/usePrefersDark.ts +51 -18
  26. package/src/hooks/usePrefersReducedMotion.hydration.test.tsx +56 -0
  27. package/src/hooks/usePrefersReducedMotion.test.tsx +18 -0
  28. package/src/hooks/usePrefersReducedMotion.ts +62 -0
  29. package/src/observers/resizeObserver.ts +1 -1
  30. package/src/primitives/code/styles.ts +6 -0
  31. package/src/primitives/heading/styles.ts +6 -0
  32. package/src/primitives/label/styles.ts +6 -0
  33. package/src/primitives/popover/__workshop__/OpenOnMountStory.tsx +11 -0
  34. package/src/primitives/popover/__workshop__/index.ts +5 -0
  35. package/src/primitives/text/styles.ts +6 -0
  36. package/src/utils/layer/__workshop__/_debug.tsx +9 -3
  37. package/src/utils/layer/__workshop__/index.ts +3 -3
  38. package/src/utils/layer/__workshop__/multipleRoots.tsx +2 -1
  39. package/src/utils/layer/__workshop__/{plain.tsx → nested.tsx} +14 -4
  40. package/src/utils/layer/getLayerContext.test.ts +30 -0
  41. package/src/utils/layer/getLayerContext.ts +21 -0
  42. package/src/utils/layer/layer.test.tsx +1 -0
  43. package/src/utils/layer/layer.tsx +49 -7
  44. package/src/utils/layer/layerContext.ts +2 -2
  45. package/src/utils/layer/layerProvider.tsx +73 -12
  46. package/src/utils/layer/types.ts +3 -4
  47. package/src/utils/layer/useLayer.ts +9 -8
  48. package/src/utils/portal/portalContext.ts +1 -1
  49. package/src/utils/portal/portalProvider.tsx +1 -1
  50. package/dist/index.cjs.map +0 -1
  51. package/src/hooks/useMediaIndex/lib/media.ts +0 -88
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2022 Sanity.io
3
+ Copyright (c) 2023 Sanity.io
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -0,0 +1,120 @@
1
+ import cjs from './index.js';
2
+
3
+ export const Autocomplete = cjs.Autocomplete;
4
+ export const Avatar = cjs.Avatar;
5
+ export const AvatarCounter = cjs.AvatarCounter;
6
+ export const AvatarStack = cjs.AvatarStack;
7
+ export const Badge = cjs.Badge;
8
+ export const BoundaryElementProvider = cjs.BoundaryElementProvider;
9
+ export const Box = cjs.Box;
10
+ export const Breadcrumbs = cjs.Breadcrumbs;
11
+ export const Button = cjs.Button;
12
+ export const Card = cjs.Card;
13
+ export const Checkbox = cjs.Checkbox;
14
+ export const Code = cjs.Code;
15
+ export const CodeSkeleton = cjs.CodeSkeleton;
16
+ export const Container = cjs.Container;
17
+ export const Dialog = cjs.Dialog;
18
+ export const DialogContext = cjs.DialogContext;
19
+ export const DialogProvider = cjs.DialogProvider;
20
+ export const ElementQuery = cjs.ElementQuery;
21
+ export const ErrorBoundary = cjs.ErrorBoundary;
22
+ export const Flex = cjs.Flex;
23
+ export const Grid = cjs.Grid;
24
+ export const Heading = cjs.Heading;
25
+ export const HeadingSkeleton = cjs.HeadingSkeleton;
26
+ export const Hotkeys = cjs.Hotkeys;
27
+ export const Inline = cjs.Inline;
28
+ export const KBD = cjs.KBD;
29
+ export const Label = cjs.Label;
30
+ export const LabelSkeleton = cjs.LabelSkeleton;
31
+ export const Layer = cjs.Layer;
32
+ export const LayerProvider = cjs.LayerProvider;
33
+ export const Menu = cjs.Menu;
34
+ export const MenuButton = cjs.MenuButton;
35
+ export const MenuDivider = cjs.MenuDivider;
36
+ export const MenuGroup = cjs.MenuGroup;
37
+ export const MenuItem = cjs.MenuItem;
38
+ export const Popover = cjs.Popover;
39
+ export const Portal = cjs.Portal;
40
+ export const PortalProvider = cjs.PortalProvider;
41
+ export const Radio = cjs.Radio;
42
+ export const Select = cjs.Select;
43
+ export const Skeleton = cjs.Skeleton;
44
+ export const Spinner = cjs.Spinner;
45
+ export const SrOnly = cjs.SrOnly;
46
+ export const Stack = cjs.Stack;
47
+ export const Switch = cjs.Switch;
48
+ export const Tab = cjs.Tab;
49
+ export const TabList = cjs.TabList;
50
+ export const TabPanel = cjs.TabPanel;
51
+ export const Text = cjs.Text;
52
+ export const TextArea = cjs.TextArea;
53
+ export const TextInput = cjs.TextInput;
54
+ export const TextSkeleton = cjs.TextSkeleton;
55
+ export const ThemeColorProvider = cjs.ThemeColorProvider;
56
+ export const ThemeProvider = cjs.ThemeProvider;
57
+ export const Toast = cjs.Toast;
58
+ export const ToastProvider = cjs.ToastProvider;
59
+ export const Tooltip = cjs.Tooltip;
60
+ export const Tree = cjs.Tree;
61
+ export const TreeItem = cjs.TreeItem;
62
+ export const VirtualList = cjs.VirtualList;
63
+ export const _ResizeObserver = cjs._ResizeObserver;
64
+ export const _elementSizeObserver = cjs._elementSizeObserver;
65
+ export const _fillCSSObject = cjs._fillCSSObject;
66
+ export const _getArrayProp = cjs._getArrayProp;
67
+ export const _getResponsiveSpace = cjs._getResponsiveSpace;
68
+ export const _hasFocus = cjs._hasFocus;
69
+ export const _isEnterToClickElement = cjs._isEnterToClickElement;
70
+ export const _isScrollable = cjs._isScrollable;
71
+ export const _raf = cjs._raf;
72
+ export const _raf2 = cjs._raf2;
73
+ export const _responsive = cjs._responsive;
74
+ export const attemptFocus = cjs.attemptFocus;
75
+ export const containsOrEqualsElement = cjs.containsOrEqualsElement;
76
+ export const createColorTheme = cjs.createColorTheme;
77
+ export const focusFirstDescendant = cjs.focusFirstDescendant;
78
+ export const focusLastDescendant = cjs.focusLastDescendant;
79
+ export const hexToRgb = cjs.hexToRgb;
80
+ export const hslToRgb = cjs.hslToRgb;
81
+ export const isFocusable = cjs.isFocusable;
82
+ export const isHTMLAnchorElement = cjs.isHTMLAnchorElement;
83
+ export const isHTMLButtonElement = cjs.isHTMLButtonElement;
84
+ export const isHTMLElement = cjs.isHTMLElement;
85
+ export const isHTMLInputElement = cjs.isHTMLInputElement;
86
+ export const isHTMLSelectElement = cjs.isHTMLSelectElement;
87
+ export const isHTMLTextAreaElement = cjs.isHTMLTextAreaElement;
88
+ export const multiply = cjs.multiply;
89
+ export const parseColor = cjs.parseColor;
90
+ export const rem = cjs.rem;
91
+ export const responsiveCodeFontStyle = cjs.responsiveCodeFontStyle;
92
+ export const responsiveHeadingFont = cjs.responsiveHeadingFont;
93
+ export const responsiveLabelFont = cjs.responsiveLabelFont;
94
+ export const responsiveTextAlignStyle = cjs.responsiveTextAlignStyle;
95
+ export const responsiveTextFont = cjs.responsiveTextFont;
96
+ export const rgbToHex = cjs.rgbToHex;
97
+ export const rgbToHsl = cjs.rgbToHsl;
98
+ export const rgba = cjs.rgba;
99
+ export const screen = cjs.screen;
100
+ export const studioTheme = cjs.studioTheme;
101
+ export const useArrayProp = cjs.useArrayProp;
102
+ export const useBoundaryElement = cjs.useBoundaryElement;
103
+ export const useClickOutside = cjs.useClickOutside;
104
+ export const useCustomValidity = cjs.useCustomValidity;
105
+ export const useDialog = cjs.useDialog;
106
+ export const useElementRect = cjs.useElementRect;
107
+ export const useElementSize = cjs.useElementSize;
108
+ export const useForwardedRef = cjs.useForwardedRef;
109
+ export const useGlobalKeyDown = cjs.useGlobalKeyDown;
110
+ export const useLayer = cjs.useLayer;
111
+ export const useMediaIndex = cjs.useMediaIndex;
112
+ export const usePortal = cjs.usePortal;
113
+ export const usePrefersDark = cjs.usePrefersDark;
114
+ export const usePrefersReducedMotion = cjs.usePrefersReducedMotion;
115
+ export const useRootTheme = cjs.useRootTheme;
116
+ export const useTheme = cjs.useTheme;
117
+ export const useToast = cjs.useToast;
118
+ export const useTree = cjs.useTree;
119
+
120
+ export default cjs.default;
package/dist/index.d.ts CHANGED
@@ -3519,6 +3519,11 @@ export declare const Container: ForwardRefExoticComponent<
3519
3519
  */
3520
3520
  export declare interface ContainerProps extends BoxProps, ResponsiveWidthProps {}
3521
3521
 
3522
+ /**
3523
+ * @internal
3524
+ */
3525
+ export declare function containsOrEqualsElement(element: HTMLElement, node: Node): boolean
3526
+
3522
3527
  /**
3523
3528
  * @public
3524
3529
  */
@@ -3934,6 +3939,8 @@ export declare interface DialogProps extends ResponsivePaddingProps, ResponsiveW
3934
3939
  footer?: React.ReactNode
3935
3940
  header?: React.ReactNode
3936
3941
  id: string
3942
+ /** A callback that fires when the dialog becomes the top layer when it was not the top layer before. */
3943
+ onActivate?: LayerProps['onActivate']
3937
3944
  onClickOutside?: () => void
3938
3945
  onClose?: () => void
3939
3946
  portal?: string
@@ -7680,13 +7687,12 @@ export declare const Layer: ForwardRefExoticComponent<
7680
7687
  RefAttributes<HTMLDivElement>
7681
7688
  >
7682
7689
 
7683
- /**
7684
- * @public
7685
- */
7690
+ /** @public */
7686
7691
  export declare interface LayerContextValue {
7687
7692
  version: 0.0
7688
7693
  isTopLayer: boolean
7689
- registerChild: () => () => void
7694
+ level?: number
7695
+ registerChild: (childLevel?: number) => () => void
7690
7696
  size: number
7691
7697
  zIndex: number
7692
7698
  }
@@ -7696,6 +7702,8 @@ export declare interface LayerContextValue {
7696
7702
  */
7697
7703
  export declare interface LayerProps {
7698
7704
  as?: React.ElementType | keyof JSX.IntrinsicElements
7705
+ /** A callback that fires when the layer becomes the top layer when it was not the top layer before. */
7706
+ onActivate?: (props: {activeElement: HTMLElement | null}) => void
7699
7707
  zOffset?: number | number[]
7700
7708
  }
7701
7709
 
@@ -7721,6 +7729,14 @@ export declare interface MediaQueryProps {
7721
7729
  media?: number[]
7722
7730
  }
7723
7731
 
7732
+ /**
7733
+ * @internal
7734
+ */
7735
+ export declare interface _MediaStore {
7736
+ subscribe: (onStoreChange: () => void) => () => void
7737
+ getSnapshot: () => number
7738
+ }
7739
+
7724
7740
  /**
7725
7741
  * @public
7726
7742
  */
@@ -15176,6 +15192,12 @@ export declare function usePortal(): PortalContextValue
15176
15192
  */
15177
15193
  export declare function usePrefersDark(): boolean
15178
15194
 
15195
+ /**
15196
+ * Returns true if motion should be reduced
15197
+ * @public
15198
+ */
15199
+ export declare function usePrefersReducedMotion(): boolean
15200
+
15179
15201
  /**
15180
15202
  * @public
15181
15203
  */