@a-type/ui 1.1.17 → 1.1.18

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 (52) hide show
  1. package/dist/cjs/components/dialog/Dialog.js +1 -1
  2. package/dist/cjs/components/dialog/Dialog.js.map +1 -1
  3. package/dist/cjs/components/dialog/Dialog.stories.d.ts +1 -0
  4. package/dist/cjs/components/dialog/Dialog.stories.js +16 -1
  5. package/dist/cjs/components/dialog/Dialog.stories.js.map +1 -1
  6. package/dist/cjs/components/layouts/PageNav.js +11 -1
  7. package/dist/cjs/components/layouts/PageNav.js.map +1 -1
  8. package/dist/cjs/components/layouts/PageNowPlaying.d.ts +2 -1
  9. package/dist/cjs/components/layouts/PageNowPlaying.js +7 -3
  10. package/dist/cjs/components/layouts/PageNowPlaying.js.map +1 -1
  11. package/dist/cjs/components/layouts/layouts.stories.d.ts +2 -0
  12. package/dist/cjs/components/layouts/layouts.stories.js +22 -2
  13. package/dist/cjs/components/layouts/layouts.stories.js.map +1 -1
  14. package/dist/cjs/components/provider/Provider.d.ts +2 -1
  15. package/dist/cjs/components/provider/Provider.js +3 -1
  16. package/dist/cjs/components/provider/Provider.js.map +1 -1
  17. package/dist/cjs/hooks/useVirtualKeyboardBehavior.d.ts +1 -0
  18. package/dist/cjs/hooks/useVirtualKeyboardBehavior.js +15 -0
  19. package/dist/cjs/hooks/useVirtualKeyboardBehavior.js.map +1 -0
  20. package/dist/cjs/uno.preset.js +1 -0
  21. package/dist/cjs/uno.preset.js.map +1 -1
  22. package/dist/css/main.css +2 -2
  23. package/dist/esm/components/dialog/Dialog.js +1 -1
  24. package/dist/esm/components/dialog/Dialog.js.map +1 -1
  25. package/dist/esm/components/dialog/Dialog.stories.d.ts +1 -0
  26. package/dist/esm/components/dialog/Dialog.stories.js +15 -0
  27. package/dist/esm/components/dialog/Dialog.stories.js.map +1 -1
  28. package/dist/esm/components/layouts/PageNav.js +11 -1
  29. package/dist/esm/components/layouts/PageNav.js.map +1 -1
  30. package/dist/esm/components/layouts/PageNowPlaying.d.ts +2 -1
  31. package/dist/esm/components/layouts/PageNowPlaying.js +7 -3
  32. package/dist/esm/components/layouts/PageNowPlaying.js.map +1 -1
  33. package/dist/esm/components/layouts/layouts.stories.d.ts +2 -0
  34. package/dist/esm/components/layouts/layouts.stories.js +21 -1
  35. package/dist/esm/components/layouts/layouts.stories.js.map +1 -1
  36. package/dist/esm/components/provider/Provider.d.ts +2 -1
  37. package/dist/esm/components/provider/Provider.js +3 -1
  38. package/dist/esm/components/provider/Provider.js.map +1 -1
  39. package/dist/esm/hooks/useVirtualKeyboardBehavior.d.ts +1 -0
  40. package/dist/esm/hooks/useVirtualKeyboardBehavior.js +11 -0
  41. package/dist/esm/hooks/useVirtualKeyboardBehavior.js.map +1 -0
  42. package/dist/esm/uno.preset.js +1 -0
  43. package/dist/esm/uno.preset.js.map +1 -1
  44. package/package.json +1 -1
  45. package/src/components/dialog/Dialog.stories.tsx +41 -0
  46. package/src/components/dialog/Dialog.tsx +1 -1
  47. package/src/components/layouts/PageNav.tsx +11 -1
  48. package/src/components/layouts/PageNowPlaying.tsx +12 -2
  49. package/src/components/layouts/layouts.stories.tsx +71 -0
  50. package/src/components/provider/Provider.tsx +6 -2
  51. package/src/hooks/useVirtualKeyboardBehavior.ts +12 -0
  52. package/src/uno.preset.ts +2 -0
@@ -5,6 +5,9 @@ import { PageContent } from './PageContent.js';
5
5
  import { PageNav } from './PageNav.js';
6
6
  import { NavBarItem, NavBarItemIcon, NavBarItemIconWrapper, NavBarItemPip, NavBarItemText, NavBarRoot, } from '../navBar.js';
7
7
  import { Icon } from '../icon.js';
8
+ import { PageNowPlaying } from './PageNowPlaying.js';
9
+ import { useEffect, useState } from 'react';
10
+ import { Button } from '../button.js';
8
11
  const meta = {
9
12
  title: 'layouts',
10
13
  argTypes: {},
@@ -15,6 +18,23 @@ const meta = {
15
18
  };
16
19
  export default meta;
17
20
  export const Default = {
18
- render: () => (_jsxs(PageRoot, Object.assign({ className: "w-full h-full" }, { children: [_jsx(PageContent, { children: _jsxs("div", Object.assign({ className: "text-center" }, { children: [_jsx("h1", Object.assign({ className: "text-3xl font-bold" }, { children: "Hello, World!" })), _jsx("p", Object.assign({ className: "text-lg" }, { children: "This is a simple page layout." }))] })) }), _jsx(PageNav, { children: _jsxs(NavBarRoot, { children: [_jsxs(NavBarItem, { children: [_jsx(NavBarItemIconWrapper, { children: _jsx(NavBarItemIcon, { name: "cart" }) }), _jsx(NavBarItemText, { children: "Item 1 long" })] }), _jsxs(NavBarItem, Object.assign({ active: true }, { children: [_jsx(NavBarItemIconWrapper, { children: _jsx(NavBarItemIcon, Object.assign({ asChild: true }, { children: _jsx(Icon, { name: "book" }) })) }), _jsx(NavBarItemText, { children: "Item 2" }), _jsx(NavBarItemPip, {})] }))] }) })] }))),
21
+ render: () => (_jsxs(PageRoot, Object.assign({ className: "w-full h-full" }, { children: [_jsxs(PageContent, { children: [_jsxs("div", Object.assign({ className: "text-center" }, { children: [_jsx("h1", Object.assign({ className: "text-3xl font-bold" }, { children: "Hello, World!" })), _jsx("p", Object.assign({ className: "text-lg" }, { children: "This is a simple page layout." }))] })), _jsx(PageNowPlaying, { children: "Now playing" })] }), _jsx(PageNav, { children: _jsxs(NavBarRoot, { children: [_jsxs(NavBarItem, { children: [_jsx(NavBarItemIconWrapper, { children: _jsx(NavBarItemIcon, { name: "cart" }) }), _jsx(NavBarItemText, { children: "Item 1 long" })] }), _jsxs(NavBarItem, Object.assign({ active: true }, { children: [_jsx(NavBarItemIconWrapper, { children: _jsx(NavBarItemIcon, Object.assign({ asChild: true }, { children: _jsx(Icon, { name: "book" }) })) }), _jsx(NavBarItemText, { children: "Item 2" }), _jsx(NavBarItemPip, {})] }))] }) })] }))),
22
+ };
23
+ export const WithoutNav = {
24
+ render: () => (_jsx(PageRoot, Object.assign({ className: "w-full h-full" }, { children: _jsxs(PageContent, { children: [_jsxs("div", Object.assign({ className: "text-center" }, { children: [_jsx("h1", Object.assign({ className: "text-3xl font-bold" }, { children: "Hello, World!" })), _jsx("p", Object.assign({ className: "text-lg" }, { children: "This is a simple page layout." }))] })), _jsx(PageNowPlaying, { children: "Now playing" })] }) }))),
25
+ };
26
+ export const WithVirtualKeyboard = {
27
+ render() {
28
+ const [keyboard, setKeyboard] = useState(false);
29
+ useEffect(() => {
30
+ if (keyboard) {
31
+ document.body.style.setProperty('--mock-virtual-keyboard-height', '300px');
32
+ }
33
+ else {
34
+ document.body.style.removeProperty('--mock-virtual-keyboard-height');
35
+ }
36
+ }, [keyboard]);
37
+ return (_jsxs(PageRoot, Object.assign({ className: "w-full h-full" }, { children: [_jsxs(PageContent, { children: [_jsxs("div", Object.assign({ className: "text-center" }, { children: [_jsx("h1", Object.assign({ className: "text-3xl font-bold" }, { children: "Hello, World!" })), _jsx("p", Object.assign({ className: "text-lg" }, { children: "This is a simple page layout." }))] })), _jsx(PageNowPlaying, Object.assign({ keepAboveKeyboard: true }, { children: _jsx(Button, Object.assign({ onClick: () => setKeyboard((v) => !v) }, { children: "Toggle vkeyboard" })) }))] }), _jsx(PageNav, { children: _jsxs(NavBarRoot, { children: [_jsxs(NavBarItem, { children: [_jsx(NavBarItemIconWrapper, { children: _jsx(NavBarItemIcon, { name: "cart" }) }), _jsx(NavBarItemText, { children: "Item 1 long" })] }), _jsxs(NavBarItem, Object.assign({ active: true }, { children: [_jsx(NavBarItemIconWrapper, { children: _jsx(NavBarItemIcon, Object.assign({ asChild: true }, { children: _jsx(Icon, { name: "book" }) })) }), _jsx(NavBarItemText, { children: "Item 2" }), _jsx(NavBarItemPip, {})] }))] }) }), _jsx("div", { className: "fixed bottom-0 h-[var(--mock-virtual-keyboard-height,0)] bg-black w-full transition-height left-0 right-0" })] })));
38
+ },
19
39
  };
20
40
  //# sourceMappingURL=layouts.stories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"layouts.stories.js","sourceRoot":"","sources":["../../../../src/components/layouts/layouts.stories.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EACN,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,aAAa,EACb,cAAc,EACd,UAAU,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAElC,MAAM,IAAI,GAAG;IACZ,KAAK,EAAE,SAAS;IAChB,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE;QACX,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC5B,MAAM,EAAE,YAAY;KACpB;CACc,CAAC;AAEjB,eAAe,IAAI,CAAC;AAIpB,MAAM,CAAC,MAAM,OAAO,GAAU;IAC7B,MAAM,EAAE,GAAG,EAAE,CAAC,CACb,MAAC,QAAQ,kBAAC,SAAS,EAAC,eAAe,iBAClC,KAAC,WAAW,cACX,6BAAK,SAAS,EAAC,aAAa,iBAC3B,2BAAI,SAAS,EAAC,oBAAoB,mCAAmB,EACrD,0BAAG,SAAS,EAAC,SAAS,mDAAkC,KACnD,GACO,EACd,KAAC,OAAO,cACP,MAAC,UAAU,eACV,MAAC,UAAU,eACV,KAAC,qBAAqB,cACrB,KAAC,cAAc,IAAC,IAAI,EAAC,MAAM,GAAG,GACP,EACxB,KAAC,cAAc,8BAA6B,IAChC,EACb,MAAC,UAAU,kBAAC,MAAM,EAAE,IAAI,iBACvB,KAAC,qBAAqB,cACrB,KAAC,cAAc,kBAAC,OAAO,sBACtB,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,GAAG,IACJ,GACM,EACxB,KAAC,cAAc,yBAAwB,EACvC,KAAC,aAAa,KAAG,KACL,IACD,GACJ,KACA,CACX;CACD,CAAC"}
1
+ {"version":3,"file":"layouts.stories.js","sourceRoot":"","sources":["../../../../src/components/layouts/layouts.stories.tsx"],"names":[],"mappings":"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"}
@@ -6,8 +6,9 @@ export interface ProviderProps {
6
6
  toastPosition?: ToastPosition;
7
7
  toastContainerClassName?: string;
8
8
  disableViewportOffset?: boolean;
9
+ virtualKeyboardBehavior?: 'overlay' | 'displace';
9
10
  }
10
11
  /**
11
12
  * Provides all the stuff for all global junk.
12
13
  */
13
- export declare function Provider({ children, disableParticles, toastPosition, toastContainerClassName, disableViewportOffset }: ProviderProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function Provider({ children, disableParticles, toastPosition, toastContainerClassName, disableViewportOffset, virtualKeyboardBehavior, }: ProviderProps): import("react/jsx-runtime").JSX.Element;
@@ -5,11 +5,13 @@ import { IconSpritesheet } from '../icon.js';
5
5
  import { Toaster } from 'react-hot-toast';
6
6
  import { TooltipProvider } from '../tooltip.js';
7
7
  import { useVisualViewportOffset } from '../../hooks.js';
8
+ import { useVirtualKeyboardBehavior } from '../../hooks/useVirtualKeyboardBehavior.js';
8
9
  /**
9
10
  * Provides all the stuff for all global junk.
10
11
  */
11
- export function Provider({ children, disableParticles, toastPosition = 'top-center', toastContainerClassName, disableViewportOffset }) {
12
+ export function Provider({ children, disableParticles, toastPosition = 'top-center', toastContainerClassName, disableViewportOffset = true, virtualKeyboardBehavior = 'overlay', }) {
12
13
  useVisualViewportOffset(disableViewportOffset);
14
+ useVirtualKeyboardBehavior(virtualKeyboardBehavior);
13
15
  const otherStuff = (_jsxs(_Fragment, { children: [_jsx(IconSpritesheet, {}), _jsx(Toaster, { position: toastPosition, containerClassName: toastContainerClassName })] }));
14
16
  if (disableParticles)
15
17
  return (_jsxs(TooltipProvider, { children: [children, otherStuff] }));
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../../src/components/provider/Provider.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAiB,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAW,eAAe,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAUzD;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,EACxB,QAAQ,EACR,gBAAgB,EAChB,aAAa,GAAG,YAAY,EAC5B,uBAAuB,EACvB,qBAAqB,EACN;IACf,uBAAuB,CAAC,qBAAqB,CAAC,CAAC;IAE/C,MAAM,UAAU,GAAG,CAClB,8BACC,KAAC,eAAe,KAAG,EACnB,KAAC,OAAO,IACP,QAAQ,EAAE,aAAa,EACvB,kBAAkB,EAAE,uBAAuB,GAC1C,IACA,CACH,CAAC;IAEF,IAAI,gBAAgB;QACnB,OAAO,CACN,MAAC,eAAe,eACd,QAAQ,EACR,UAAU,IACM,CAClB,CAAC;IAEH,OAAO,CACN,KAAC,eAAe,cACf,MAAC,aAAa,eACZ,QAAQ,EACR,UAAU,IACI,GACC,CAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../../src/components/provider/Provider.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAiB,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AAWvF;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,EACxB,QAAQ,EACR,gBAAgB,EAChB,aAAa,GAAG,YAAY,EAC5B,uBAAuB,EACvB,qBAAqB,GAAG,IAAI,EAC5B,uBAAuB,GAAG,SAAS,GACpB;IACf,uBAAuB,CAAC,qBAAqB,CAAC,CAAC;IAC/C,0BAA0B,CAAC,uBAAuB,CAAC,CAAC;IAEpD,MAAM,UAAU,GAAG,CAClB,8BACC,KAAC,eAAe,KAAG,EACnB,KAAC,OAAO,IACP,QAAQ,EAAE,aAAa,EACvB,kBAAkB,EAAE,uBAAuB,GAC1C,IACA,CACH,CAAC;IAEF,IAAI,gBAAgB;QACnB,OAAO,CACN,MAAC,eAAe,eACd,QAAQ,EACR,UAAU,IACM,CAClB,CAAC;IAEH,OAAO,CACN,KAAC,eAAe,cACf,MAAC,aAAa,eACZ,QAAQ,EACR,UAAU,IACI,GACC,CAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function useVirtualKeyboardBehavior(behavior?: 'overlay' | 'displace'): void;
@@ -0,0 +1,11 @@
1
+ // @unocss-include
2
+ import { useEffect } from 'react';
3
+ export function useVirtualKeyboardBehavior(behavior = 'overlay') {
4
+ useEffect(() => {
5
+ if ('virtualKeyboard' in navigator) {
6
+ // @ts-ignore
7
+ navigator.virtualKeyboard.overlaysContent = behavior === 'overlay';
8
+ }
9
+ }, [behavior]);
10
+ }
11
+ //# sourceMappingURL=useVirtualKeyboardBehavior.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useVirtualKeyboardBehavior.js","sourceRoot":"","sources":["../../../src/hooks/useVirtualKeyboardBehavior.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,UAAU,0BAA0B,CACzC,WAAmC,SAAS;IAE5C,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,iBAAiB,IAAI,SAAS,EAAE;YACnC,aAAa;YACb,SAAS,CAAC,eAAe,CAAC,eAAe,GAAG,QAAQ,KAAK,SAAS,CAAC;SACnE;IACF,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChB,CAAC"}
@@ -368,6 +368,7 @@ export default function presetAglio({ spacingIncrement = 0.25, interFontLocation
368
368
  'outline-off': '[outline:none]',
369
369
  'bg-wash': 'bg-[var(--color-wash)]',
370
370
  unset: '[all:unset]',
371
+ 'bottom-keyboard': 'bottom-[var(--mock-virtual-keyboard-height,env(keyboard-inset-height,0px))]',
371
372
  },
372
373
  preflights: [
373
374
  {
@@ -1 +1 @@
1
- {"version":3,"file":"uno.preset.js","sourceRoot":"","sources":["../../src/uno.preset.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uno.preset.js","sourceRoot":"","sources":["../../src/uno.preset.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@a-type/ui",
3
- "version": "1.1.17",
3
+ "version": "1.1.18",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "/dist",
@@ -10,6 +10,7 @@ import {
10
10
  import { ParticleLayer } from '../particles.js';
11
11
  import { H1, P } from '../typography.js';
12
12
  import { Button } from '../button.js';
13
+ import { useEffect, useState } from 'react';
13
14
 
14
15
  const meta = {
15
16
  title: 'Dialog',
@@ -106,3 +107,43 @@ export const Positioned: Story = {
106
107
  ),
107
108
  },
108
109
  };
110
+
111
+ export const VirtualKeyboard: Story = {
112
+ render: () => {
113
+ const [keyboard, setKeyboard] = useState(false);
114
+
115
+ useEffect(() => {
116
+ if (keyboard) {
117
+ document.body.style.setProperty(
118
+ '--mock-virtual-keyboard-height',
119
+ '300px',
120
+ );
121
+ } else {
122
+ document.body.style.removeProperty('--mock-virtual-keyboard-height');
123
+ }
124
+ }, [keyboard]);
125
+
126
+ return (
127
+ <ParticleLayer noPortal>
128
+ <Dialog>
129
+ <DialogTrigger asChild>
130
+ <Button>Open</Button>
131
+ </DialogTrigger>
132
+ <DummyContent />
133
+ <DialogContent>
134
+ <DialogTitle>Hello world</DialogTitle>
135
+ <DialogActions>
136
+ <DialogClose asChild>
137
+ <Button>Close</Button>
138
+ </DialogClose>
139
+ <Button onClick={() => setKeyboard((v) => !v)}>
140
+ Toggle fake virtual kb
141
+ </Button>
142
+ </DialogActions>
143
+ </DialogContent>
144
+ </Dialog>
145
+ <div className="fixed bottom-0 h-[var(--mock-virtual-keyboard-height,0)] bg-black w-full transition-height left-0 right-0" />
146
+ </ParticleLayer>
147
+ );
148
+ },
149
+ };
@@ -36,7 +36,7 @@ const StyledContent = withClassName(
36
36
  'layer-components:(animate-dialog-in [&[data-state=closed]]:animate-dialog-out motion-reduce:animate-none)',
37
37
  );
38
38
  const sheetClassName = classNames(
39
- 'layer-variants:lt-sm:(translate-0 bottom-[calc(var(--viewport-bottom-offset,0px)+var(--gesture-y,0px))] left-0 right-0 top-auto h-min-content max-h-[calc(0.85*var(--viewport-height,100vh))] rounded-tl-xl rounded-tr-xl rounded-b-0 p-6 pt-8 w-full max-w-none pb-[calc(3rem+env(safe-area-inset-bottom,0px))] border-b-0)',
39
+ 'layer-variants:lt-sm:(translate-0 bottom-[calc(var(--mock-virtual-keyboard-height,env(keyboard-inset-height,0px))+var(--gesture-y,0px))] left-0 right-0 top-auto h-min-content max-h-[calc(85vh-var(--mock-virtual-keyboard-height,env(keyboard-inset-height,0px)))] rounded-tl-xl rounded-tr-xl rounded-b-0 p-6 pt-8 w-full max-w-none pb-[calc(3rem+env(safe-area-inset-bottom,0px))] border-b-0)',
40
40
  'layer-variants:lt-sm:(animate-ease-in animate-fade-in-up [&[data-state=closed]]:animate-fade-out-down)',
41
41
  );
42
42
 
@@ -1,13 +1,22 @@
1
1
  'use client';
2
2
 
3
3
  import classNames from 'clsx';
4
- import { HTMLAttributes } from 'react';
4
+ import { HTMLAttributes, useRef } from 'react';
5
+ import { useBoundsCssVars } from '../../hooks.js';
5
6
 
6
7
  export function PageNav({
7
8
  className,
8
9
  children,
9
10
  ...props
10
11
  }: HTMLAttributes<HTMLDivElement>) {
12
+ const bodyRef = useRef(document.body);
13
+ const ref = useBoundsCssVars<HTMLDivElement>(undefined, bodyRef, {
14
+ left: '--nav-left',
15
+ top: '--nav-top',
16
+ width: '--nav-width',
17
+ height: '--nav-height',
18
+ ready: '--nav-ready',
19
+ });
11
20
  return (
12
21
  <div
13
22
  {...props}
@@ -16,6 +25,7 @@ export function PageNav({
16
25
  'layer-components:sm:([grid-area:nav] sticky top-0 h-auto bottom-auto left-auto right-auto)',
17
26
  className,
18
27
  )}
28
+ ref={ref}
19
29
  >
20
30
  {children}
21
31
  </div>
@@ -6,17 +6,27 @@ import { HTMLAttributes } from 'react';
6
6
  export function PageNowPlaying({
7
7
  className,
8
8
  unstyled,
9
+ keepAboveKeyboard,
9
10
  ...props
10
- }: HTMLAttributes<HTMLDivElement> & { unstyled?: boolean }) {
11
+ }: HTMLAttributes<HTMLDivElement> & {
12
+ unstyled?: boolean;
13
+ keepAboveKeyboard?: boolean;
14
+ }) {
11
15
  return (
12
16
  <div
13
17
  {...props}
14
18
  className={classNames(
15
- 'layer-components:(fixed bottom-[calc(env(safe-area-inset-bottom,0px)+var(--now-playing-bottom,60px))] left-0 right-0 z-now-playing flex flex-col gap-2 items-end)',
19
+ 'layer-components:(fixed left-0 right-0 z-now-playing flex flex-col gap-2 items-end)',
20
+ // on mobile, this must be positioned above any nav bar that's present,
21
+ // or at minimum in the safe area
22
+ 'layer-components:bottom-[var(--nav-height,env(safe-area-inset-bottom,0px))]',
23
+ 'layer-components:transition-bottom',
16
24
  'layer-components:sm:(fixed bottom-3 left-[var(--content-left,20%)] transition-opacity top-auto items-end w-[var(--content-width,100%)] max-w-80vw p-0 opacity-[var(--content-ready,0)])',
17
25
  unstyled
18
26
  ? 'layer-variants:p-2'
19
27
  : 'layer-components:(bg-wash p-2px rounded-xl border-light shadow-md min-w-32px items-center justify-center m-2 w-auto)',
28
+ keepAboveKeyboard &&
29
+ 'layer-variants:lt-sm:bottom-[max(var(--mock-virtual-keyboard-height,env(keyboard-inset-height,0px),var(--nav-height,env(safe-area-inset-bottom,0px))))]',
20
30
  className,
21
31
  )}
22
32
  />
@@ -11,6 +11,9 @@ import {
11
11
  NavBarRoot,
12
12
  } from '../navBar.js';
13
13
  import { Icon } from '../icon.js';
14
+ import { PageNowPlaying } from './PageNowPlaying.js';
15
+ import { useEffect, useState } from 'react';
16
+ import { Button } from '../button.js';
14
17
 
15
18
  const meta = {
16
19
  title: 'layouts',
@@ -33,6 +36,7 @@ export const Default: Story = {
33
36
  <h1 className="text-3xl font-bold">Hello, World!</h1>
34
37
  <p className="text-lg">This is a simple page layout.</p>
35
38
  </div>
39
+ <PageNowPlaying>Now playing</PageNowPlaying>
36
40
  </PageContent>
37
41
  <PageNav>
38
42
  <NavBarRoot>
@@ -56,3 +60,70 @@ export const Default: Story = {
56
60
  </PageRoot>
57
61
  ),
58
62
  };
63
+
64
+ export const WithoutNav: Story = {
65
+ render: () => (
66
+ <PageRoot className="w-full h-full">
67
+ <PageContent>
68
+ <div className="text-center">
69
+ <h1 className="text-3xl font-bold">Hello, World!</h1>
70
+ <p className="text-lg">This is a simple page layout.</p>
71
+ </div>
72
+ <PageNowPlaying>Now playing</PageNowPlaying>
73
+ </PageContent>
74
+ </PageRoot>
75
+ ),
76
+ };
77
+
78
+ export const WithVirtualKeyboard: Story = {
79
+ render() {
80
+ const [keyboard, setKeyboard] = useState(false);
81
+
82
+ useEffect(() => {
83
+ if (keyboard) {
84
+ document.body.style.setProperty(
85
+ '--mock-virtual-keyboard-height',
86
+ '300px',
87
+ );
88
+ } else {
89
+ document.body.style.removeProperty('--mock-virtual-keyboard-height');
90
+ }
91
+ }, [keyboard]);
92
+
93
+ return (
94
+ <PageRoot className="w-full h-full">
95
+ <PageContent>
96
+ <div className="text-center">
97
+ <h1 className="text-3xl font-bold">Hello, World!</h1>
98
+ <p className="text-lg">This is a simple page layout.</p>
99
+ </div>
100
+ <PageNowPlaying keepAboveKeyboard>
101
+ <Button onClick={() => setKeyboard((v) => !v)}>
102
+ Toggle vkeyboard
103
+ </Button>
104
+ </PageNowPlaying>
105
+ </PageContent>
106
+ <PageNav>
107
+ <NavBarRoot>
108
+ <NavBarItem>
109
+ <NavBarItemIconWrapper>
110
+ <NavBarItemIcon name="cart" />
111
+ </NavBarItemIconWrapper>
112
+ <NavBarItemText>Item 1 long</NavBarItemText>
113
+ </NavBarItem>
114
+ <NavBarItem active={true}>
115
+ <NavBarItemIconWrapper>
116
+ <NavBarItemIcon asChild>
117
+ <Icon name="book" />
118
+ </NavBarItemIcon>
119
+ </NavBarItemIconWrapper>
120
+ <NavBarItemText>Item 2</NavBarItemText>
121
+ <NavBarItemPip />
122
+ </NavBarItem>
123
+ </NavBarRoot>
124
+ </PageNav>
125
+ <div className="fixed bottom-0 h-[var(--mock-virtual-keyboard-height,0)] bg-black w-full transition-height left-0 right-0" />
126
+ </PageRoot>
127
+ );
128
+ },
129
+ };
@@ -2,8 +2,9 @@ import { ReactNode } from 'react';
2
2
  import { ParticleLayer } from '../particles.js';
3
3
  import { IconSpritesheet } from '../icon.js';
4
4
  import { Toaster, ToastPosition } from 'react-hot-toast';
5
- import { Tooltip, TooltipProvider } from '../tooltip.js';
5
+ import { TooltipProvider } from '../tooltip.js';
6
6
  import { useVisualViewportOffset } from '../../hooks.js';
7
+ import { useVirtualKeyboardBehavior } from '../../hooks/useVirtualKeyboardBehavior.js';
7
8
 
8
9
  export interface ProviderProps {
9
10
  children?: ReactNode;
@@ -11,6 +12,7 @@ export interface ProviderProps {
11
12
  toastPosition?: ToastPosition;
12
13
  toastContainerClassName?: string;
13
14
  disableViewportOffset?: boolean;
15
+ virtualKeyboardBehavior?: 'overlay' | 'displace';
14
16
  }
15
17
 
16
18
  /**
@@ -21,9 +23,11 @@ export function Provider({
21
23
  disableParticles,
22
24
  toastPosition = 'top-center',
23
25
  toastContainerClassName,
24
- disableViewportOffset
26
+ disableViewportOffset = true,
27
+ virtualKeyboardBehavior = 'overlay',
25
28
  }: ProviderProps) {
26
29
  useVisualViewportOffset(disableViewportOffset);
30
+ useVirtualKeyboardBehavior(virtualKeyboardBehavior);
27
31
 
28
32
  const otherStuff = (
29
33
  <>
@@ -0,0 +1,12 @@
1
+ import { useEffect } from 'react';
2
+
3
+ export function useVirtualKeyboardBehavior(
4
+ behavior: 'overlay' | 'displace' = 'overlay',
5
+ ) {
6
+ useEffect(() => {
7
+ if ('virtualKeyboard' in navigator) {
8
+ // @ts-ignore
9
+ navigator.virtualKeyboard.overlaysContent = behavior === 'overlay';
10
+ }
11
+ }, [behavior]);
12
+ }
package/src/uno.preset.ts CHANGED
@@ -399,6 +399,8 @@ export default function presetAglio({
399
399
  'outline-off': '[outline:none]',
400
400
  'bg-wash': 'bg-[var(--color-wash)]',
401
401
  unset: '[all:unset]',
402
+ 'bottom-keyboard':
403
+ 'bottom-[var(--mock-virtual-keyboard-height,env(keyboard-inset-height,0px))]',
402
404
  },
403
405
 
404
406
  preflights: [