@blockle/blocks-react 3.2.0 → 3.3.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 (75) hide show
  1. package/dist/components/display/Divider/divider.css.js +3 -3
  2. package/dist/components/form/Label/Label.d.ts +1 -1
  3. package/dist/components/form/Label/Label.d.ts.map +1 -1
  4. package/dist/components/form/Select/select.css.js +1 -1
  5. package/dist/components/navigation/Tabs/Tab.d.ts +21 -0
  6. package/dist/components/navigation/Tabs/Tab.d.ts.map +1 -0
  7. package/dist/components/navigation/Tabs/Tab.js +138 -0
  8. package/dist/components/navigation/Tabs/TabIndicator.d.ts +6 -0
  9. package/dist/components/navigation/Tabs/TabIndicator.d.ts.map +1 -0
  10. package/dist/components/navigation/Tabs/TabIndicator.js +19 -0
  11. package/dist/components/navigation/Tabs/TabList.d.ts +10 -0
  12. package/dist/components/navigation/Tabs/TabList.d.ts.map +1 -0
  13. package/dist/components/navigation/Tabs/TabList.js +101 -0
  14. package/dist/components/navigation/Tabs/TabListContext.d.ts +13 -0
  15. package/dist/components/navigation/Tabs/TabListContext.d.ts.map +1 -0
  16. package/dist/components/navigation/Tabs/TabListContext.js +6 -0
  17. package/dist/components/navigation/Tabs/TabNav.d.ts +15 -0
  18. package/dist/components/navigation/Tabs/TabNav.d.ts.map +1 -0
  19. package/dist/components/navigation/Tabs/TabNav.js +44 -0
  20. package/dist/components/navigation/Tabs/TabPanel.d.ts +14 -0
  21. package/dist/components/navigation/Tabs/TabPanel.d.ts.map +1 -0
  22. package/dist/components/navigation/Tabs/TabPanel.js +31 -0
  23. package/dist/components/navigation/Tabs/Tabs.d.ts +13 -0
  24. package/dist/components/navigation/Tabs/Tabs.d.ts.map +1 -0
  25. package/dist/components/navigation/Tabs/Tabs.js +33 -0
  26. package/dist/components/navigation/Tabs/TabsContext.d.ts +13 -0
  27. package/dist/components/navigation/Tabs/TabsContext.d.ts.map +1 -0
  28. package/dist/components/navigation/Tabs/TabsContext.js +27 -0
  29. package/dist/components/navigation/Tabs/tabs.css.d.ts +7 -0
  30. package/dist/components/navigation/Tabs/tabs.css.d.ts.map +1 -0
  31. package/dist/components/navigation/Tabs/tabs.css.js +122 -0
  32. package/dist/components/overlay/Dialog/Dialog.d.ts +1 -1
  33. package/dist/components/overlay/Dialog/Dialog.d.ts.map +1 -1
  34. package/dist/components/overlay/Dialog/Dialog.js +9 -7
  35. package/dist/components/overlay/Drawer/Drawer.d.ts +1 -1
  36. package/dist/components/overlay/Drawer/Drawer.d.ts.map +1 -1
  37. package/dist/components/overlay/Drawer/Drawer.js +9 -7
  38. package/dist/components/overlay/Menu/Menu.d.ts +52 -0
  39. package/dist/components/overlay/Menu/Menu.d.ts.map +1 -0
  40. package/dist/components/overlay/Menu/Menu.js +273 -0
  41. package/dist/components/overlay/Menu/menu-utils.d.ts +33 -0
  42. package/dist/components/overlay/Menu/menu-utils.d.ts.map +1 -0
  43. package/dist/components/overlay/Menu/menu-utils.js +54 -0
  44. package/dist/components/overlay/Popover/Popover.d.ts +9 -0
  45. package/dist/components/overlay/Popover/Popover.d.ts.map +1 -1
  46. package/dist/components/overlay/Popover/Popover.js +84 -31
  47. package/dist/components/overlay/Popover/popover-utils.d.ts +32 -1
  48. package/dist/components/overlay/Popover/popover-utils.d.ts.map +1 -1
  49. package/dist/components/overlay/Popover/popover-utils.js +77 -22
  50. package/dist/components/overlay/modalOverlayStack.d.ts +8 -0
  51. package/dist/components/overlay/modalOverlayStack.d.ts.map +1 -0
  52. package/dist/components/overlay/modalOverlayStack.js +37 -0
  53. package/dist/components/overlay/useModalOverlay.d.ts +6 -14
  54. package/dist/components/overlay/useModalOverlay.d.ts.map +1 -1
  55. package/dist/components/overlay/useModalOverlay.js +8 -31
  56. package/dist/components/typography/textOverflow.css.d.ts.map +1 -1
  57. package/dist/hooks/useModalDialog/useModalDialog.d.ts +5 -0
  58. package/dist/hooks/useModalDialog/useModalDialog.d.ts.map +1 -1
  59. package/dist/hooks/useModalDialog/useModalDialog.js +3 -2
  60. package/dist/hooks/usePreventBodyScroll/usePreventBodyScroll.d.ts +5 -0
  61. package/dist/hooks/usePreventBodyScroll/usePreventBodyScroll.d.ts.map +1 -1
  62. package/dist/hooks/usePreventBodyScroll/usePreventBodyScroll.js +31 -16
  63. package/dist/index.d.ts +6 -0
  64. package/dist/index.d.ts.map +1 -1
  65. package/dist/index.js +12 -0
  66. package/dist/testUtils/browser/contrast.d.ts +6 -2
  67. package/dist/testUtils/browser/contrast.d.ts.map +1 -1
  68. package/dist/testUtils/browser/emulateNoAnchorPositioning.d.ts +8 -0
  69. package/dist/testUtils/browser/emulateNoAnchorPositioning.d.ts.map +1 -0
  70. package/dist/testUtils/browser/render.d.ts +6 -2
  71. package/dist/testUtils/browser/render.d.ts.map +1 -1
  72. package/dist/testUtils/browser/screenshot.d.ts +2 -0
  73. package/dist/testUtils/browser/screenshot.d.ts.map +1 -0
  74. package/dist/testUtils/testTheme.css.d.ts.map +1 -1
  75. package/package.json +2 -2
@@ -1,28 +1,43 @@
1
1
  "use client";
2
2
  import { useIsomorphicLayoutEffect } from "../useIsomorphicLayoutEffect/useIsomorphicLayoutEffect.js";
3
+ let lockCount = 0;
4
+ let unlock = null;
5
+ const lock = () => {
6
+ const prevOverflow = document.body.style.getPropertyValue("overflow");
7
+ const prevScrollTop = document.documentElement.scrollTop;
8
+ if (document.body.scrollHeight > window.innerHeight) {
9
+ document.body.style.position = "fixed";
10
+ document.body.style.overflow = "hidden";
11
+ document.body.style.overflowY = "scroll";
12
+ document.body.style.width = "100%";
13
+ document.body.style.top = `-${prevScrollTop}px`;
14
+ } else {
15
+ document.body.style.overflow = "hidden";
16
+ }
17
+ return () => {
18
+ document.body.style.position = "";
19
+ document.body.style.overflow = prevOverflow;
20
+ document.body.style.overflowY = "";
21
+ document.body.style.width = "";
22
+ document.body.style.top = "";
23
+ document.documentElement.scrollTop = prevScrollTop;
24
+ };
25
+ };
3
26
  const usePreventBodyScroll = (enabled = true) => {
4
27
  useIsomorphicLayoutEffect(() => {
5
28
  if (!enabled) {
6
29
  return;
7
30
  }
8
- const prevOverflow = document.body.style.getPropertyValue("overflow");
9
- const prevScrollTop = document.documentElement.scrollTop;
10
- if (document.body.scrollHeight > window.innerHeight) {
11
- document.body.style.position = "fixed";
12
- document.body.style.overflow = "hidden";
13
- document.body.style.overflowY = "scroll";
14
- document.body.style.width = "100%";
15
- document.body.style.top = `-${prevScrollTop}px`;
16
- } else {
17
- document.body.style.overflow = "hidden";
31
+ lockCount += 1;
32
+ if (lockCount === 1) {
33
+ unlock = lock();
18
34
  }
19
35
  return () => {
20
- document.body.style.position = "";
21
- document.body.style.overflow = prevOverflow;
22
- document.body.style.overflowY = "";
23
- document.body.style.width = "";
24
- document.body.style.top = "";
25
- document.documentElement.scrollTop = prevScrollTop;
36
+ lockCount -= 1;
37
+ if (lockCount === 0) {
38
+ unlock?.();
39
+ unlock = null;
40
+ }
26
41
  };
27
42
  }, [enabled]);
28
43
  };
package/dist/index.d.ts CHANGED
@@ -27,8 +27,14 @@ export { GridItem, type GridItemProps, } from './components/layout/Grid/GridItem
27
27
  export { Inline, type InlineProps } from './components/layout/Inline/Inline.js';
28
28
  export { Stack, type StackProps } from './components/layout/Stack/Stack.js';
29
29
  export { Link, type LinkProps } from './components/navigation/Link/Link.js';
30
+ export { Tab, type TabProps } from './components/navigation/Tabs/Tab.js';
31
+ export { TabList, type TabListProps, } from './components/navigation/Tabs/TabList.js';
32
+ export { TabNav, type TabNavProps, } from './components/navigation/Tabs/TabNav.js';
33
+ export { TabPanel, type TabPanelProps, } from './components/navigation/Tabs/TabPanel.js';
34
+ export { Tabs, type TabsProps } from './components/navigation/Tabs/Tabs.js';
30
35
  export { Dialog, type DialogProps, } from './components/overlay/Dialog/Dialog.js';
31
36
  export { Drawer, type DrawerProps, } from './components/overlay/Drawer/Drawer.js';
37
+ export { Menu, type MenuActionItem, type MenuItem, type MenuProps, type MenuRadioGroupItem, type MenuRadioItem, type MenuSeparatorItem, } from './components/overlay/Menu/Menu.js';
32
38
  export { Popover, type PopoverPlacement, type PopoverProps, } from './components/overlay/Popover/Popover.js';
33
39
  export { Portal, type PortalProps, } from './components/overlay/Portal/Portal.js';
34
40
  export type { RequestCloseReason } from './components/overlay/requestCloseReason.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -27,8 +27,14 @@ import { GridItem } from "./components/layout/Grid/GridItem.js";
27
27
  import { Inline } from "./components/layout/Inline/Inline.js";
28
28
  import { Stack } from "./components/layout/Stack/Stack.js";
29
29
  import { Link } from "./components/navigation/Link/Link.js";
30
+ import { Tab } from "./components/navigation/Tabs/Tab.js";
31
+ import { TabList } from "./components/navigation/Tabs/TabList.js";
32
+ import { TabNav } from "./components/navigation/Tabs/TabNav.js";
33
+ import { TabPanel } from "./components/navigation/Tabs/TabPanel.js";
34
+ import { Tabs } from "./components/navigation/Tabs/Tabs.js";
30
35
  import { Dialog } from "./components/overlay/Dialog/Dialog.js";
31
36
  import { Drawer } from "./components/overlay/Drawer/Drawer.js";
37
+ import { Menu } from "./components/overlay/Menu/Menu.js";
32
38
  import { Popover } from "./components/overlay/Popover/Popover.js";
33
39
  import { Portal } from "./components/overlay/Portal/Portal.js";
34
40
  import { Tooltip } from "./components/overlay/Tooltip/Tooltip.js";
@@ -60,6 +66,7 @@ export {
60
66
  Inline,
61
67
  Label,
62
68
  Link,
69
+ Menu,
63
70
  NumericInput,
64
71
  Popover,
65
72
  Portal,
@@ -71,6 +78,11 @@ export {
71
78
  Spinner,
72
79
  Stack,
73
80
  Switch,
81
+ Tab,
82
+ TabList,
83
+ TabNav,
84
+ TabPanel,
85
+ Tabs,
74
86
  Tag,
75
87
  Text,
76
88
  TextInput,
@@ -1,4 +1,8 @@
1
- /** Resolves a CSS `var(--x)` reference to a computed rgb() string. */
2
- export declare function resolve(cssVar: string, colorMode: 'light' | 'dark'): Promise<string>;
1
+ import { Theme } from '@blockle/blocks-core';
2
+ /**
3
+ * Resolves a CSS `var(--x)` reference to a computed rgb() string, under the
4
+ * momotaro theme unless `theme` says otherwise.
5
+ */
6
+ export declare function resolve(cssVar: string, colorMode: 'light' | 'dark', theme?: Theme): Promise<string>;
3
7
  export declare function contrast(a: string, b: string): number;
4
8
  //# sourceMappingURL=contrast.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contrast.d.ts","sourceRoot":"","sources":["../../../src/testUtils/browser/contrast.tsx"],"names":[],"mappings":"AAEA,sEAAsE;AACtE,wBAAsB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM,mBAYxE;AAeD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,UAM5C"}
1
+ {"version":3,"file":"contrast.d.ts","sourceRoot":"","sources":["../../../src/testUtils/browser/contrast.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAIlD;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO,GAAG,MAAM,EAC3B,KAAK,CAAC,EAAE,KAAK,mBAcd;AAeD,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,UAM5C"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Makes the page's styles behave as in a browser without CSS anchor
3
+ * positioning, by inverting every `@supports` rule that tests for it. Returns a
4
+ * function that puts the original rules back. Only covers styles already on the
5
+ * page, so call it after rendering.
6
+ */
7
+ export declare function emulateNoAnchorPositioning(): () => void;
8
+ //# sourceMappingURL=emulateNoAnchorPositioning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emulateNoAnchorPositioning.d.ts","sourceRoot":"","sources":["../../../src/testUtils/browser/emulateNoAnchorPositioning.ts"],"names":[],"mappings":"AAwCA;;;;;GAKG;AACH,wBAAgB,0BAA0B,IAAI,MAAM,IAAI,CAyBvD"}
@@ -1,13 +1,17 @@
1
+ import { Theme } from '@blockle/blocks-core';
1
2
  import { render as browserRender } from 'vitest-browser-react';
2
3
  import { BlocksProviderProps } from '../../components/providers/BlocksProvider/BlocksProvider.js';
3
4
  type RenderOptions = Parameters<typeof browserRender>[1] & {
4
5
  /** Passed to the outermost BlocksProvider. Omit to use its default. */
5
6
  colorMode?: BlocksProviderProps['colorMode'];
7
+ /** The theme to render under. Defaults to momotaro. */
8
+ theme?: Theme;
6
9
  };
7
10
  /**
8
- * Renders the UI in a real browser, under BlocksProvider with the momotaro theme.
11
+ * Renders the UI in a real browser, under BlocksProvider with the momotaro theme
12
+ * unless `theme` says otherwise.
9
13
  * Use for tests that need real computed styles.
10
14
  */
11
- export declare const render: (ui: Parameters<typeof browserRender>[0], { colorMode, ...options }?: RenderOptions) => Promise<import('vitest-browser-react').RenderResult>;
15
+ export declare const render: (ui: Parameters<typeof browserRender>[0], { colorMode, theme, ...options }?: RenderOptions) => Promise<import('vitest-browser-react').RenderResult>;
12
16
  export {};
13
17
  //# sourceMappingURL=render.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/testUtils/browser/render.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,6DAA6D,CAAC;AAErE,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG;IACzD,uEAAuE;IACvE,SAAS,CAAC,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;CAC9C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,MAAM,GACjB,IAAI,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,EACvC,4BAA2B,aAAkB,yDAU9C,CAAC"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/testUtils/browser/render.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,6DAA6D,CAAC;AAErE,KAAK,aAAa,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG;IACzD,uEAAuE;IACvE,SAAS,CAAC,EAAE,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC7C,uDAAuD;IACvD,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,MAAM,GACjB,IAAI,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,EACvC,mCAA6C,aAAkB,yDAUhE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function itScreenshot(name: string, test: () => Promise<void> | void): void;
2
+ //# sourceMappingURL=screenshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screenshot.d.ts","sourceRoot":"","sources":["../../../src/testUtils/browser/screenshot.ts"],"names":[],"mappings":"AAQA,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,QAE1E"}
@@ -1 +1 @@
1
- {"version":3,"file":"testTheme.css.d.ts","sourceRoot":"","sources":["../../src/testUtils/testTheme.css.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,YAAY,KAyMvB,CAAC"}
1
+ {"version":3,"file":"testTheme.css.d.ts","sourceRoot":"","sources":["../../src/testUtils/testTheme.css.ts"],"names":[],"mappings":"AA0BA,eAAO,MAAM,YAAY,KAoNvB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blockle/blocks-react",
3
- "version": "3.2.0",
3
+ "version": "3.3.1",
4
4
  "description": "React hooks and components for Blockle",
5
5
  "type": "module",
6
6
  "exports": {
@@ -34,7 +34,7 @@
34
34
  "@vanilla-extract/css": "^1.18.0"
35
35
  },
36
36
  "peerDependencies": {
37
- "@blockle/blocks-core": ">=3.2.x",
37
+ "@blockle/blocks-core": ">=3.3.x",
38
38
  "@blockle/blocks-react-slot": ">=1.2.x",
39
39
  "@vanilla-extract/css": "^1.18.0",
40
40
  "react": ">=19.1.0",