@a-type/ui 0.8.21 → 0.8.23

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 (49) hide show
  1. package/dist/cjs/components/button/Button.d.ts +1 -0
  2. package/dist/cjs/components/button/Button.js +4 -4
  3. package/dist/cjs/components/button/Button.js.map +1 -1
  4. package/dist/cjs/components/editableText/EditableText.d.ts +17 -0
  5. package/dist/cjs/components/editableText/EditableText.js +57 -0
  6. package/dist/cjs/components/editableText/EditableText.js.map +1 -0
  7. package/dist/cjs/components/editableText/EditableText.stories.d.ts +19 -0
  8. package/dist/cjs/components/editableText/EditableText.stories.js +34 -0
  9. package/dist/cjs/components/editableText/EditableText.stories.js.map +1 -0
  10. package/dist/cjs/components/editableText.d.ts +1 -0
  11. package/dist/cjs/components/editableText.js +19 -0
  12. package/dist/cjs/components/editableText.js.map +1 -0
  13. package/dist/cjs/components/input/Input.d.ts +1 -0
  14. package/dist/cjs/components/input/Input.js +5 -3
  15. package/dist/cjs/components/input/Input.js.map +1 -1
  16. package/dist/cjs/components/particles/particlesState.d.ts +1 -0
  17. package/dist/cjs/components/particles/particlesState.js +24 -13
  18. package/dist/cjs/components/particles/particlesState.js.map +1 -1
  19. package/dist/cjs/components/provider/Provider.js +2 -0
  20. package/dist/cjs/components/provider/Provider.js.map +1 -1
  21. package/dist/css/main.css +1 -1
  22. package/dist/esm/components/button/Button.d.ts +1 -0
  23. package/dist/esm/components/button/Button.js +4 -4
  24. package/dist/esm/components/button/Button.js.map +1 -1
  25. package/dist/esm/components/editableText/EditableText.d.ts +17 -0
  26. package/dist/esm/components/editableText/EditableText.js +50 -0
  27. package/dist/esm/components/editableText/EditableText.js.map +1 -0
  28. package/dist/esm/components/editableText/EditableText.stories.d.ts +19 -0
  29. package/dist/esm/components/editableText/EditableText.stories.js +31 -0
  30. package/dist/esm/components/editableText/EditableText.stories.js.map +1 -0
  31. package/dist/esm/components/editableText.d.ts +1 -0
  32. package/dist/esm/components/editableText.js +3 -0
  33. package/dist/esm/components/editableText.js.map +1 -0
  34. package/dist/esm/components/input/Input.d.ts +1 -0
  35. package/dist/esm/components/input/Input.js +5 -3
  36. package/dist/esm/components/input/Input.js.map +1 -1
  37. package/dist/esm/components/particles/particlesState.d.ts +1 -0
  38. package/dist/esm/components/particles/particlesState.js +24 -13
  39. package/dist/esm/components/particles/particlesState.js.map +1 -1
  40. package/dist/esm/components/provider/Provider.js +2 -0
  41. package/dist/esm/components/provider/Provider.js.map +1 -1
  42. package/package.json +1 -1
  43. package/src/components/button/Button.tsx +7 -3
  44. package/src/components/editableText/EditableText.stories.tsx +52 -0
  45. package/src/components/editableText/EditableText.tsx +118 -0
  46. package/src/components/editableText.ts +1 -0
  47. package/src/components/input/Input.tsx +8 -4
  48. package/src/components/particles/particlesState.ts +28 -14
  49. package/src/components/provider/Provider.tsx +3 -0
@@ -18,6 +18,11 @@ export class Particles {
18
18
  this.lastFrameTimestamp = 0;
19
19
  this.disabled = false;
20
20
  this.freeParticles = [];
21
+ // when true, the final frame has rendered after all particles
22
+ // are drawn, and we can stop rendering until new particles are added
23
+ // called "latch" because after the last particle frame we wait one
24
+ // more frame before closing it
25
+ this.lastDrawLatch = true;
21
26
  // keep canvas render size the same as its actual size
22
27
  this.resizeObserver = new ResizeObserver((entries) => {
23
28
  for (const entry of entries) {
@@ -57,20 +62,29 @@ export class Particles {
57
62
  this.state = 'paused';
58
63
  };
59
64
  this.draw = (timestamp) => {
60
- if (this.state === 'paused') {
61
- return;
62
- }
63
- const ctx = this.ctx;
64
- if (!ctx || !this.canvas) {
65
+ const skipDrawing = this.disabled ||
66
+ this.lastDrawLatch ||
67
+ this.state === 'paused' ||
68
+ !this.ctx ||
69
+ !this.canvas;
70
+ if (!this.ctx || !this.canvas) {
65
71
  console.warn('No canvas context');
66
72
  this.pause();
67
- return;
68
73
  }
69
74
  const delta = timestamp - this.lastFrameTimestamp;
70
- ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
71
- this.renderParticles(ctx, delta);
72
- requestAnimationFrame(this.draw);
73
75
  this.lastFrameTimestamp = timestamp;
76
+ if (skipDrawing) {
77
+ return;
78
+ }
79
+ this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
80
+ if (this.particles.length === 0) {
81
+ // skip drawing until we get particles again
82
+ this.lastDrawLatch = true;
83
+ }
84
+ else {
85
+ this.renderParticles(this.ctx, delta);
86
+ }
87
+ requestAnimationFrame(this.draw);
74
88
  };
75
89
  this.renderParticles = (ctx, delta) => {
76
90
  let freed = 0;
@@ -82,13 +96,11 @@ export class Particles {
82
96
  freed++;
83
97
  }
84
98
  }
85
- if (freed) {
86
- console.log('Freed particles', freed);
87
- }
88
99
  };
89
100
  this.addParticles = (spawn) => {
90
101
  // wrap in RAF because initializers often use element dimensions
91
102
  requestAnimationFrame(() => {
103
+ this.lastDrawLatch = false;
92
104
  if (this.freeParticles.length < spawn.count) {
93
105
  this.extendPool(spawn.count - this.freeParticles.length);
94
106
  }
@@ -100,7 +112,6 @@ export class Particles {
100
112
  }
101
113
  particle.allocate(initials.x, initials.y, initials.velocityX, initials.velocityY, initials.drag, initials.lifespan, spawn.behavior);
102
114
  }
103
- console.log('Allocated particles', spawn.count);
104
115
  });
105
116
  };
106
117
  this.extendPool = (size) => {
@@ -1 +1 @@
1
- {"version":3,"file":"particlesState.js","sourceRoot":"","sources":["../../../../src/components/particles/particlesState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"particlesState.js","sourceRoot":"","sources":["../../../../src/components/particles/particlesState.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,12 @@ import { ParticleLayer } from '../particles.js';
4
4
  import { IconSpritesheet } from '../icon.js';
5
5
  import { Toaster } from 'react-hot-toast';
6
6
  import { TooltipProvider } from '../tooltip.js';
7
+ import { useVisualViewportOffset } from '../../hooks.js';
7
8
  /**
8
9
  * Provides all the stuff for all global junk.
9
10
  */
10
11
  export function Provider({ children, disableParticles, toastPosition = 'top-center', toastContainerClassName, }) {
12
+ useVisualViewportOffset();
11
13
  const otherStuff = (_jsxs(_Fragment, { children: [_jsx(IconSpritesheet, {}), _jsx(Toaster, { position: toastPosition, containerClassName: toastContainerClassName })] }));
12
14
  if (disableParticles)
13
15
  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;AASzD;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,EACxB,QAAQ,EACR,gBAAgB,EAChB,aAAa,GAAG,YAAY,EAC5B,uBAAuB,GACR;IACf,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,EAAW,eAAe,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AASzD;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,EACxB,QAAQ,EACR,gBAAgB,EAChB,aAAa,GAAG,YAAY,EAC5B,uBAAuB,GACR;IACf,uBAAuB,EAAE,CAAC;IAE1B,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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@a-type/ui",
3
- "version": "0.8.21",
3
+ "version": "0.8.23",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "/dist",
@@ -18,6 +18,7 @@ export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
18
18
  | 'unstyled';
19
19
  size?: 'default' | 'small' | 'icon';
20
20
  toggled?: boolean;
21
+ toggleMode?: 'color' | 'indicator' | 'state-only';
21
22
  align?: 'start' | 'stretch' | 'end';
22
23
  visuallyDisabled?: boolean;
23
24
  loading?: boolean;
@@ -31,6 +32,7 @@ export const Button = forwardRef<HTMLButtonElement, ButtonProps>(
31
32
  color,
32
33
  size,
33
34
  toggled,
35
+ toggleMode = 'color',
34
36
  align,
35
37
  visuallyDisabled,
36
38
  loading,
@@ -52,7 +54,7 @@ export const Button = forwardRef<HTMLButtonElement, ButtonProps>(
52
54
  getButtonClassName({
53
55
  color,
54
56
  size,
55
- toggleable: toggled !== undefined,
57
+ toggleable: toggled !== undefined && toggleMode === 'color',
56
58
  align,
57
59
  }),
58
60
  className,
@@ -60,7 +62,7 @@ export const Button = forwardRef<HTMLButtonElement, ButtonProps>(
60
62
  };
61
63
  // set state when toggleable
62
64
  if (toggled !== undefined) {
63
- buttonProps['aria-pressed'] = toggled;
65
+ buttonProps['aria-pressed'] = !!toggled;
64
66
  }
65
67
 
66
68
  if (asChild) {
@@ -71,7 +73,9 @@ export const Button = forwardRef<HTMLButtonElement, ButtonProps>(
71
73
  return (
72
74
  <Comp {...buttonProps}>
73
75
  {loading && <Spinner size={16} className="inline-block w-1em h-1em" />}
74
- {toggled !== undefined && <ToggleIndicator value={toggled} />}
76
+ {toggled !== undefined && toggleMode !== 'state-only' && (
77
+ <ToggleIndicator value={toggled} />
78
+ )}
75
79
  {children}
76
80
  </Comp>
77
81
  );
@@ -0,0 +1,52 @@
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { EditableText } from './EditableText.js';
3
+ import { useState } from 'react';
4
+
5
+ const meta = {
6
+ title: 'EditableText',
7
+ component: EditableText,
8
+ argTypes: {},
9
+ args: {
10
+ value: 'Hello, world!',
11
+ },
12
+ parameters: {
13
+ controls: { expanded: true },
14
+ },
15
+ } satisfies Meta<typeof EditableText>;
16
+
17
+ export default meta;
18
+
19
+ type Story = StoryObj<typeof EditableText>;
20
+
21
+ export const Default: Story = {
22
+ render: (args) => {
23
+ const [value, setValue] = useState(args.value);
24
+ const [editable, setEditable] = useState(false);
25
+ return (
26
+ <EditableText
27
+ {...args}
28
+ value={value}
29
+ onValueChange={setValue}
30
+ editing={editable}
31
+ onEditingChange={setEditable}
32
+ />
33
+ );
34
+ },
35
+ };
36
+
37
+ export const Title: Story = {
38
+ render: (args) => {
39
+ const [value, setValue] = useState(args.value);
40
+ const [editable, setEditable] = useState(false);
41
+ return (
42
+ <EditableText
43
+ {...args}
44
+ value={value}
45
+ onValueChange={setValue}
46
+ editing={editable}
47
+ onEditingChange={setEditable}
48
+ className="text-2xl"
49
+ />
50
+ );
51
+ },
52
+ };
@@ -0,0 +1,118 @@
1
+ import {
2
+ ChangeEvent,
3
+ FocusEvent,
4
+ KeyboardEvent,
5
+ useCallback,
6
+ useEffect,
7
+ useRef,
8
+ useState,
9
+ } from 'react';
10
+ import { Input, inputClassName } from '../input.js';
11
+ import clsx from 'clsx';
12
+ import { Icon } from '../icon.js';
13
+
14
+ export interface EditableTextProps {
15
+ value: string;
16
+ onValueChange: (value: string) => void;
17
+ editing?: boolean;
18
+ onEditingChange?: (editing: boolean) => void;
19
+ className?: string;
20
+ id?: string;
21
+ autoSelect?: boolean;
22
+ autoFocus?: boolean;
23
+ onFocus?: (ev: FocusEvent) => void;
24
+ onBlur?: (ev: FocusEvent) => void;
25
+ onChange?: (ev: ChangeEvent<HTMLInputElement>) => void;
26
+ onKeyDown?: (ev: KeyboardEvent) => void;
27
+ onKeyUp?: (ev: KeyboardEvent) => void;
28
+ }
29
+
30
+ export function EditableText({
31
+ value,
32
+ onValueChange,
33
+ editing,
34
+ onEditingChange,
35
+ className,
36
+ id,
37
+ autoSelect,
38
+ autoFocus,
39
+ onBlur,
40
+ onChange,
41
+ onKeyDown,
42
+ ...rest
43
+ }: EditableTextProps) {
44
+ const [editingInternal, setEditingInternal] = useState(editing || autoFocus);
45
+ const editingFinal = editing ?? editingInternal;
46
+ const setEditingFinal = onEditingChange ?? setEditingInternal;
47
+
48
+ const handleChange = useCallback(
49
+ (ev: ChangeEvent<HTMLInputElement>) => {
50
+ onValueChange(ev.target.value);
51
+ onChange?.(ev);
52
+ },
53
+ [onValueChange, onChange],
54
+ );
55
+
56
+ const handleKeyDown = useCallback(
57
+ (ev: KeyboardEvent<HTMLInputElement>) => {
58
+ if (ev.key === 'Enter') {
59
+ setEditingFinal(false);
60
+ }
61
+ onKeyDown?.(ev);
62
+ },
63
+ [setEditingFinal, onKeyDown],
64
+ );
65
+
66
+ const inputRef = useRef<HTMLInputElement>(null);
67
+
68
+ useEffect(() => {
69
+ if (editingFinal && inputRef.current) {
70
+ // -10... roughly estimated based on default font.
71
+ inputRef.current.size = Math.max(1, value.length - 5);
72
+ inputRef.current.focus();
73
+ }
74
+ }, [editingFinal, inputRef]);
75
+
76
+ const handleBlur = useCallback(
77
+ (ev: FocusEvent<HTMLInputElement>) => {
78
+ setEditingFinal(false);
79
+ onBlur?.(ev);
80
+ },
81
+ [setEditingFinal, onBlur],
82
+ );
83
+
84
+ if (editingFinal) {
85
+ return (
86
+ <Input
87
+ ref={inputRef}
88
+ value={value}
89
+ onChange={handleChange}
90
+ onBlur={handleBlur}
91
+ className={clsx('layer-variants:font-size-inherit', className)}
92
+ id={id}
93
+ autoSelect={autoSelect}
94
+ onKeyDown={handleKeyDown}
95
+ {...rest}
96
+ />
97
+ );
98
+ }
99
+
100
+ return (
101
+ <button
102
+ onClick={() => setEditingFinal(true)}
103
+ className={clsx(
104
+ inputClassName,
105
+ 'layer-variants:(border-transparent bg-transparent w-auto inline-flex items-center gap-2 font-size-inherit text-inherit shadow-none)',
106
+ 'layer-variants:hover:(bg-gray-blend)',
107
+ 'layer-variants:focus-visible:(outline-none bg-gray-dark-blend)',
108
+ 'cursor-pointer',
109
+ className,
110
+ )}
111
+ id={id}
112
+ {...rest}
113
+ >
114
+ {value}
115
+ <Icon name="pencil" className="stroke-gray-blend opacity-50" />
116
+ </button>
117
+ );
118
+ }
@@ -0,0 +1 @@
1
+ export * from './editableText/EditableText.js';
@@ -6,21 +6,23 @@ import {
6
6
  forwardRef,
7
7
  useCallback,
8
8
  } from 'react';
9
+ import { Slot } from '@radix-ui/react-slot';
9
10
 
10
11
  export const inputClassName = classNames(
11
12
  'layer-components:(px-4 py-2 text-md font-sans rounded-lg bg-white select-auto min-w-60px color-black border-default shadow-sm-inset)',
12
- 'layer-components:focus:(outline-none bg-gray2 ring-4 ring-white)',
13
- 'layer-components:focus-visible:(outline-none ring-primary-wash)',
13
+ 'layer-components:focus:(outline-none bg-gray-1 ring-4 ring-white)',
14
+ 'layer-components:focus-visible:(outline-none ring-gray-dark-blend)',
14
15
  'layer-components:md:(min-w-120px)',
15
16
  );
16
17
 
17
18
  export interface InputProps extends ComponentProps<'input'> {
18
19
  variant?: 'default' | 'primary';
19
20
  autoSelect?: boolean;
21
+ asChild?: boolean;
20
22
  }
21
23
 
22
24
  export const Input = forwardRef<HTMLInputElement, InputProps>(function Input(
23
- { className, autoSelect, onFocus, variant = 'default', ...props },
25
+ { className, autoSelect, onFocus, variant = 'default', asChild, ...props },
24
26
  ref,
25
27
  ) {
26
28
  const handleFocus = useCallback(
@@ -33,8 +35,10 @@ export const Input = forwardRef<HTMLInputElement, InputProps>(function Input(
33
35
  [onFocus, autoSelect],
34
36
  );
35
37
 
38
+ const Component = asChild ? Slot : 'input';
39
+
36
40
  return (
37
- <input
41
+ <Component
38
42
  {...props}
39
43
  onFocus={handleFocus}
40
44
  className={classNames(
@@ -1,3 +1,5 @@
1
+ import { assert } from '@a-type/utils';
2
+
1
3
  export class Particles {
2
4
  private canvas: HTMLCanvasElement | null = null;
3
5
  private ctx: CanvasRenderingContext2D | null = null;
@@ -9,6 +11,12 @@ export class Particles {
9
11
  private particles: Particle[];
10
12
  private freeParticles: Particle[] = [];
11
13
 
14
+ // when true, the final frame has rendered after all particles
15
+ // are drawn, and we can stop rendering until new particles are added
16
+ // called "latch" because after the last particle frame we wait one
17
+ // more frame before closing it
18
+ private lastDrawLatch = true;
19
+
12
20
  // keep canvas render size the same as its actual size
13
21
  private resizeObserver = new ResizeObserver((entries) => {
14
22
  for (const entry of entries) {
@@ -68,25 +76,34 @@ export class Particles {
68
76
  };
69
77
 
70
78
  private draw = (timestamp: number) => {
71
- if (this.state === 'paused') {
72
- return;
73
- }
74
- const ctx = this.ctx;
75
-
76
- if (!ctx || !this.canvas) {
79
+ const skipDrawing =
80
+ this.disabled ||
81
+ this.lastDrawLatch ||
82
+ this.state === 'paused' ||
83
+ !this.ctx ||
84
+ !this.canvas;
85
+ if (!this.ctx || !this.canvas) {
77
86
  console.warn('No canvas context');
78
87
  this.pause();
79
- return;
80
88
  }
81
89
 
82
90
  const delta = timestamp - this.lastFrameTimestamp;
91
+ this.lastFrameTimestamp = timestamp;
83
92
 
84
- ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);
93
+ if (skipDrawing) {
94
+ return;
95
+ }
85
96
 
86
- this.renderParticles(ctx, delta);
97
+ this.ctx!.clearRect(0, 0, this.canvas!.width, this.canvas!.height);
98
+
99
+ if (this.particles.length === 0) {
100
+ // skip drawing until we get particles again
101
+ this.lastDrawLatch = true;
102
+ } else {
103
+ this.renderParticles(this.ctx!, delta);
104
+ }
87
105
 
88
106
  requestAnimationFrame(this.draw);
89
- this.lastFrameTimestamp = timestamp;
90
107
  };
91
108
 
92
109
  private renderParticles = (ctx: CanvasRenderingContext2D, delta: number) => {
@@ -99,14 +116,12 @@ export class Particles {
99
116
  freed++;
100
117
  }
101
118
  }
102
- if (freed) {
103
- console.log('Freed particles', freed);
104
- }
105
119
  };
106
120
 
107
121
  addParticles = (spawn: ParticleSpawn) => {
108
122
  // wrap in RAF because initializers often use element dimensions
109
123
  requestAnimationFrame(() => {
124
+ this.lastDrawLatch = false;
110
125
  if (this.freeParticles.length < spawn.count) {
111
126
  this.extendPool(spawn.count - this.freeParticles.length);
112
127
  }
@@ -126,7 +141,6 @@ export class Particles {
126
141
  spawn.behavior,
127
142
  );
128
143
  }
129
- console.log('Allocated particles', spawn.count);
130
144
  });
131
145
  };
132
146
 
@@ -3,6 +3,7 @@ import { ParticleLayer } from '../particles.js';
3
3
  import { IconSpritesheet } from '../icon.js';
4
4
  import { Toaster, ToastPosition } from 'react-hot-toast';
5
5
  import { Tooltip, TooltipProvider } from '../tooltip.js';
6
+ import { useVisualViewportOffset } from '../../hooks.js';
6
7
 
7
8
  export interface ProviderProps {
8
9
  children?: ReactNode;
@@ -20,6 +21,8 @@ export function Provider({
20
21
  toastPosition = 'top-center',
21
22
  toastContainerClassName,
22
23
  }: ProviderProps) {
24
+ useVisualViewportOffset();
25
+
23
26
  const otherStuff = (
24
27
  <>
25
28
  <IconSpritesheet />