math-main-components 0.0.190 → 0.0.193

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.
@@ -0,0 +1,6 @@
1
+ import React, { ReactNode } from 'react';
2
+ export default function Popover({ children, active, onClose }: {
3
+ children: ReactNode;
4
+ active: boolean;
5
+ onClose?: () => void;
6
+ }): React.JSX.Element;
@@ -0,0 +1,4 @@
1
+ export declare function useDimensions(): {
2
+ width: number;
3
+ height: number;
4
+ };
@@ -0,0 +1,3 @@
1
+ type Orientation = "landscape" | "portrait";
2
+ export declare function useOrientation(): Orientation;
3
+ export {};
@@ -0,0 +1,4 @@
1
+ export declare function useScroll(): {
2
+ xScroll: number;
3
+ yScroll: number;
4
+ };
@@ -0,0 +1,4 @@
1
+ export declare function useDimensions(): {
2
+ width: number;
3
+ height: number;
4
+ };
@@ -0,0 +1,3 @@
1
+ type Orientation = "landscape" | "portrait";
2
+ export declare function useOrientation(): Orientation;
3
+ export {};
@@ -0,0 +1,4 @@
1
+ export declare function useScroll(): {
2
+ xScroll: number;
3
+ yScroll: number;
4
+ };
package/dist/index.cjs.js CHANGED
@@ -10398,6 +10398,57 @@ function UsageCard({ title, subtitle, ratio = 0, loading }) {
10398
10398
  ], lineWidth: 15, totalValue: 1 }))));
10399
10399
  }
10400
10400
 
10401
+ function useDimensions() {
10402
+ // Initialize state with undefined width/height so server and client renders match
10403
+ // Learn more here: https://joshwcomeau.com/react/the-perils-of-rehydration/
10404
+ const [windowSize, setWindowSize] = React.useState({
10405
+ width: 0,
10406
+ height: 0,
10407
+ });
10408
+ React.useEffect(() => {
10409
+ // only execute all the code below in client side
10410
+ // Handler to call on window resize
10411
+ function handleResize() {
10412
+ // Set window width/height to state
10413
+ setWindowSize({
10414
+ width: window.innerWidth,
10415
+ height: window.innerHeight,
10416
+ });
10417
+ }
10418
+ // Add event listener
10419
+ window.addEventListener("resize", handleResize);
10420
+ // Call handler right away so state gets updated with initial window size
10421
+ handleResize();
10422
+ // Remove event listener on cleanup
10423
+ return () => window.removeEventListener("resize", handleResize);
10424
+ }, []); // Empty array ensures that effect is only run on mount
10425
+ return windowSize;
10426
+ }
10427
+
10428
+ function useOrientation() {
10429
+ const size = useDimensions();
10430
+ return (size.width > size.height) ? "landscape" : "portrait";
10431
+ }
10432
+
10433
+ function useScroll() {
10434
+ const [scroll, setScroll] = React.useState({
10435
+ xScroll: 0,
10436
+ yScroll: 0,
10437
+ });
10438
+ const onScroll = React.useCallback(() => {
10439
+ const { scrollY, scrollX } = window;
10440
+ setScroll({
10441
+ yScroll: scrollY,
10442
+ xScroll: scrollX,
10443
+ });
10444
+ }, []);
10445
+ React.useEffect(() => {
10446
+ window.addEventListener("scroll", onScroll, { passive: true });
10447
+ return () => window.removeEventListener("scroll", onScroll);
10448
+ }, [onScroll]);
10449
+ return scroll;
10450
+ }
10451
+
10401
10452
  exports.Accordeon = Accordeon;
10402
10453
  exports.AuthButton = AuthButton;
10403
10454
  exports.Button = Button;
@@ -10436,3 +10487,6 @@ exports.Table = Table;
10436
10487
  exports.Tabs = Tabs;
10437
10488
  exports.TextWithIcon = TextWithIcon;
10438
10489
  exports.UsageCard = UsageCard;
10490
+ exports.useDimensions = useDimensions;
10491
+ exports.useOrientation = useOrientation;
10492
+ exports.useScroll = useScroll;
package/dist/index.d.ts CHANGED
@@ -32,6 +32,9 @@ export * from './components/Table';
32
32
  export * from './components/Tabs';
33
33
  export * from './components/TextWithIcon';
34
34
  export * from './components/UsageCard';
35
+ export * from './hooks/useDimensions';
36
+ export * from './hooks/useOrientation';
37
+ export * from './hooks/useScroll';
35
38
  export * from './types/marketing/About';
36
39
  export * from './types/marketing/BenefitForIndividual';
37
40
  export * from './types/marketing/BenefitForSchool';
package/dist/index.esm.js CHANGED
@@ -10372,4 +10372,55 @@ function UsageCard({ title, subtitle, ratio = 0, loading }) {
10372
10372
  ], lineWidth: 15, totalValue: 1 }))));
10373
10373
  }
10374
10374
 
10375
- export { Accordeon, AuthButton, Button, CardButton, Checkbox, ChooseRole, ChooseRoleItem, CopyCode, Dialog, EmptyCard, FormButton, FormText, ForwardButton, Gap, InputArea, InputMail, InputNames, InputNumber, InputPassword, InputPin, InputText, OptionField, OptionFieldHorizontal, ProgressBar, RadioButtons, RadioOption, RedirectButton, SearchChip, SearchChips, Searchbar, Slider, SliderCard, StepBack, SvgIcon, Table, Tabs, TextWithIcon, UsageCard };
10375
+ function useDimensions() {
10376
+ // Initialize state with undefined width/height so server and client renders match
10377
+ // Learn more here: https://joshwcomeau.com/react/the-perils-of-rehydration/
10378
+ const [windowSize, setWindowSize] = useState({
10379
+ width: 0,
10380
+ height: 0,
10381
+ });
10382
+ useEffect(() => {
10383
+ // only execute all the code below in client side
10384
+ // Handler to call on window resize
10385
+ function handleResize() {
10386
+ // Set window width/height to state
10387
+ setWindowSize({
10388
+ width: window.innerWidth,
10389
+ height: window.innerHeight,
10390
+ });
10391
+ }
10392
+ // Add event listener
10393
+ window.addEventListener("resize", handleResize);
10394
+ // Call handler right away so state gets updated with initial window size
10395
+ handleResize();
10396
+ // Remove event listener on cleanup
10397
+ return () => window.removeEventListener("resize", handleResize);
10398
+ }, []); // Empty array ensures that effect is only run on mount
10399
+ return windowSize;
10400
+ }
10401
+
10402
+ function useOrientation() {
10403
+ const size = useDimensions();
10404
+ return (size.width > size.height) ? "landscape" : "portrait";
10405
+ }
10406
+
10407
+ function useScroll() {
10408
+ const [scroll, setScroll] = useState({
10409
+ xScroll: 0,
10410
+ yScroll: 0,
10411
+ });
10412
+ const onScroll = useCallback(() => {
10413
+ const { scrollY, scrollX } = window;
10414
+ setScroll({
10415
+ yScroll: scrollY,
10416
+ xScroll: scrollX,
10417
+ });
10418
+ }, []);
10419
+ useEffect(() => {
10420
+ window.addEventListener("scroll", onScroll, { passive: true });
10421
+ return () => window.removeEventListener("scroll", onScroll);
10422
+ }, [onScroll]);
10423
+ return scroll;
10424
+ }
10425
+
10426
+ export { Accordeon, AuthButton, Button, CardButton, Checkbox, ChooseRole, ChooseRoleItem, CopyCode, Dialog, EmptyCard, FormButton, FormText, ForwardButton, Gap, InputArea, InputMail, InputNames, InputNumber, InputPassword, InputPin, InputText, OptionField, OptionFieldHorizontal, ProgressBar, RadioButtons, RadioOption, RedirectButton, SearchChip, SearchChips, Searchbar, Slider, SliderCard, StepBack, SvgIcon, Table, Tabs, TextWithIcon, UsageCard, useDimensions, useOrientation, useScroll };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "math-main-components",
3
- "version": "0.0.190",
3
+ "version": "0.0.193",
4
4
  "author": "Emilian Scheel",
5
5
  "files": [
6
6
  "dist/**/*"