react-better-html 1.1.276 → 1.1.278

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.
package/dist/index.d.mts CHANGED
@@ -5,6 +5,14 @@ import { ComponentProps, ReactNode } from 'react';
5
5
  import { WebTarget } from 'styled-components';
6
6
  import { Location, useNavigate, useLocation, useInRouterContext, useSearchParams, createSearchParams } from 'react-router-dom';
7
7
 
8
+ type Language = string;
9
+ type LanguageData<Words> = {
10
+ name: string;
11
+ code: Language;
12
+ words: Words;
13
+ flagCode: string;
14
+ };
15
+
8
16
  type PluginName = "alerts" | "react-router-dom" | "localStorage";
9
17
  type BetterHtmlPluginConstructor<T extends object = object> = (config?: T) => BetterHtmlPlugin<T>;
10
18
  type BetterHtmlPlugin<T = object> = {
@@ -322,6 +330,8 @@ type DropdownProps<Value = unknown, Data = unknown> = {
322
330
  debounceIsLoading?: boolean;
323
331
  debounceMinimumSymbolsRequired?: number;
324
332
  /** @default false */
333
+ withoutArrow?: boolean;
334
+ /** @default false */
325
335
  withoutClearButton?: boolean;
326
336
  /** @default false */
327
337
  withoutRenderingOptionsWhenClosed?: boolean;
@@ -341,11 +351,15 @@ type DropdownProps<Value = unknown, Data = unknown> = {
341
351
  });
342
352
  type DropdownComponentType = {
343
353
  <Value, Data>(props: ComponentPropWithRef<HTMLDivElement, DropdownProps<Value, Data>>): React.ReactElement;
344
- countries: (props: ComponentPropWithRef<HTMLDivElement, OmitProps<DropdownProps<string, Country>, "options">>) => React.ReactElement;
354
+ countries: (props: ComponentPropWithRef<HTMLDivElement, OmitProps<DropdownProps<Country["code"], Country>, "options">>) => React.ReactElement;
355
+ language: (props: ComponentPropWithRef<HTMLDivElement, OmitProps<DropdownProps<Language, LanguageData<object>> & {
356
+ isSmall?: boolean;
357
+ }, "options">>) => React.ReactElement;
345
358
  };
346
359
  declare const DropdownComponent: DropdownComponentType;
347
360
  declare const Dropdown: typeof DropdownComponent & {
348
361
  countries: typeof DropdownComponent.countries;
362
+ language: typeof DropdownComponent.language;
349
363
  };
350
364
 
351
365
  type ToggleInputRef = {};
@@ -457,6 +471,7 @@ type BetterHtmlConfig = {
457
471
  app: AppConfig;
458
472
  sideMenuIsCollapsed: boolean;
459
473
  sideMenuIsOpenMobile: boolean;
474
+ language: Language | undefined;
460
475
  components: {
461
476
  button?: {
462
477
  style?: ComponentStyleConfig<ButtonProps, "default" | "secondary" | "destructive" | "icon" | "upload">;
@@ -466,7 +481,7 @@ type BetterHtmlConfig = {
466
481
  style?: ComponentStyleConfig<InputFieldProps, "default" | "multiline" | "email" | "password" | "search" | "phoneNumber" | "date" | "dateTime" | "time" | "color">;
467
482
  };
468
483
  dropdown?: {
469
- style?: ComponentStyleConfig<DropdownProps, "default" | "countries">;
484
+ style?: ComponentStyleConfig<DropdownProps, "default" | "countries" | "language">;
470
485
  };
471
486
  toggleInput?: {
472
487
  style?: ComponentStyleConfig<ToggleInputProps, "checkbox" | "radiobutton" | "switch">;
@@ -486,6 +501,8 @@ type BetterHtmlConfig = {
486
501
  sideMenu?: {
487
502
  /** @default 300 */
488
503
  width?: number;
504
+ /** @default 80 */
505
+ sidebarWidth?: number;
489
506
  };
490
507
  };
491
508
  };
@@ -517,8 +534,9 @@ type TabsProps = {
517
534
  tabs: Tab[];
518
535
  name?: string;
519
536
  accentColor?: Color;
520
- style?: "default" | "borderRadiusTop" | "box";
537
+ style?: "default" | "borderRadiusTop" | "box" | "bubble";
521
538
  gap?: number;
539
+ borderRadius?: React.CSSProperties["borderRadius"];
522
540
  noBottomLine?: boolean;
523
541
  /** @default true */
524
542
  keepUrlHistory?: boolean;
@@ -655,6 +673,30 @@ declare function generateLocalStorage<LocalStorage extends object>(): {
655
673
  }) => void;
656
674
  };
657
675
 
676
+ declare function generateI18n<Words extends object & {
677
+ templates: Record<string, string>;
678
+ }>(config: {
679
+ defaultLanguage: Language;
680
+ languages: Record<Language, LanguageData<Words>>;
681
+ }): {
682
+ defaultLanguage: Language;
683
+ languages: Record<Language, LanguageData<Words>>;
684
+ t: {
685
+ <T extends Record<string, (text: string, index: number) => React.ReactNode>>(getString: (path: (typeof config.languages)[Language]["words"]) => string, template: T): React.ReactNode;
686
+ (getString: (path: (typeof config.languages)[Language]["words"]) => string): string;
687
+ };
688
+ language: string;
689
+ setLanguage: (language: Language) => void;
690
+ useI18n: () => {
691
+ t: {
692
+ <T extends Record<string, (text: string, index: number) => React.ReactNode>>(getString: (path: (typeof config.languages)[Language]["words"]) => string, template: T): React.ReactNode;
693
+ (getString: (path: (typeof config.languages)[Language]["words"]) => string): string;
694
+ };
695
+ language: string;
696
+ setLanguage: (language: Language) => void;
697
+ };
698
+ };
699
+
658
700
  type LoaderProps = {
659
701
  /** @default textPrimary */
660
702
  color?: Color;
@@ -1053,6 +1095,7 @@ declare const Tooltip: typeof TooltipComponent & {
1053
1095
  type FoldableProps = {
1054
1096
  isOpen?: boolean;
1055
1097
  defaultOpen?: boolean;
1098
+ withoutLine?: boolean;
1056
1099
  headerPaddingBlock?: React.CSSProperties["paddingBlock"];
1057
1100
  headerPaddingInline?: React.CSSProperties["paddingInline"];
1058
1101
  /** @default "right" */
@@ -1093,10 +1136,13 @@ type SideMenuItem = {
1093
1136
  type: "divider";
1094
1137
  shortText?: string;
1095
1138
  });
1139
+ type SideMenuPosition = "left" | "right";
1096
1140
  type SideMenuProps = {
1097
1141
  items: SideMenuItem[];
1098
1142
  bottomItems?: SideMenuItem[];
1099
1143
  location: Location;
1144
+ /** @default "left" */
1145
+ position?: SideMenuPosition;
1100
1146
  topSpace?: number;
1101
1147
  logoAssetName?: AssetName | AnyOtherString;
1102
1148
  logoUrl?: string;
@@ -1109,6 +1155,7 @@ type SideMenuProps = {
1109
1155
  itemsAdditionalComponent?: React.ReactNode;
1110
1156
  betweenItemsAdditionalComponent?: React.ReactNode;
1111
1157
  bottomItemsAdditionalComponent?: React.ReactNode;
1158
+ border?: React.CSSProperties["border"];
1112
1159
  isLoading?: boolean;
1113
1160
  /** @default backgroundContent */
1114
1161
  backgroundColor?: React.CSSProperties["backgroundColor"];
@@ -1120,8 +1167,10 @@ type SideMenuProps = {
1120
1167
  paddingBottom?: React.CSSProperties["paddingBottom"];
1121
1168
  /** @default "left" */
1122
1169
  mobileFoldToPosition?: "left" | "right";
1170
+ sideBar?: React.ReactNode;
1123
1171
  renderItemsHolder?: (items: React.ReactNode) => React.ReactNode;
1124
1172
  renderBottomItemsHolder?: (items: React.ReactNode) => React.ReactNode;
1173
+ children?: React.ReactNode;
1125
1174
  };
1126
1175
  type SideMenuComponentType = {
1127
1176
  (props: SideMenuProps): React.ReactElement;
@@ -1202,4 +1251,4 @@ type LocalStoragePluginOptions = {
1202
1251
  declare const defaultLocalStoragePluginOptions: Required<LocalStoragePluginOptions>;
1203
1252
  declare const localStoragePlugin: BetterHtmlPluginConstructor<LocalStoragePluginOptions>;
1204
1253
 
1205
- export { type Alert, type AlertDisplay, type AlertDuration, type AlertType, type AlertsPluginOptions, type AppConfig, type BetterHtmlConfig, type BetterHtmlPlugin, _default$1 as BetterHtmlProvider, type BetterHtmlProviderConfig, type BrowserName, type BurgerButtonProps, Button, type ButtonProps, Chip, type ChipProps, ColorThemeSwitch, type ColorThemeSwitchProps, type ComponentHoverStyle, type ComponentMarginProps, type ComponentPaddingProps, Div, type DivProps, _default$4 as Divider, Dropdown, type DropdownOption, type DropdownProps, Foldable, type FoldableProps, type FoldableRef, Form, type FormProps, FormRow, type FormRowProps, type HorizontalDividerProps, _default as Icon, type IconProps, _default$2 as Image, type ImageProps, InputField, type InputFieldProps, _default$3 as Label, type LabelProps, Loader, type LoaderProps, type LocalStoragePluginOptions, Modal, type ModalProps, type ModalRef, PageHeader, type PageHeaderProps, PageHolder, type PageHolderProps, Pagination, type PluginName, type ReactRouterDomPluginOptions, SideMenu, type SideMenuItem, type SideMenuProps, type Tab, type TabGroup, Table, type TableColumn, type TableFilterData, type TableListFilterListItem, type TableProps, type TableRef, Tabs, type TabsProps, type TabsRef, Text, type TextAs, type TextProps, type TextareaFieldProps, _default$5 as ToggleInput, type ToggleInputProps, type ToggleInputRef, Tooltip, type TooltipProps, type TooltipRef, type VerticalDividerProps, alertControls, alertsPlugin, defaultAlertsPluginOptions, defaultLocalStoragePluginOptions, defaultReactRouterDomPluginOptions, filterHover, generateLocalStorage, getBrowser, getFormErrorObject, isMobileDevice, localStoragePlugin, reactRouterDomPlugin, sideMenuControls, useAlertControls, useBetterHtmlContext, useForm, useMediaQuery, usePageResize, usePageScroll, useUrlQuery };
1254
+ export { type Alert, type AlertDisplay, type AlertDuration, type AlertType, type AlertsPluginOptions, type AppConfig, type BetterHtmlConfig, type BetterHtmlPlugin, _default$1 as BetterHtmlProvider, type BetterHtmlProviderConfig, type BrowserName, type BurgerButtonProps, Button, type ButtonProps, Chip, type ChipProps, ColorThemeSwitch, type ColorThemeSwitchProps, type ComponentHoverStyle, type ComponentMarginProps, type ComponentPaddingProps, Div, type DivProps, _default$4 as Divider, Dropdown, type DropdownOption, type DropdownProps, Foldable, type FoldableProps, type FoldableRef, Form, type FormProps, FormRow, type FormRowProps, type HorizontalDividerProps, _default as Icon, type IconProps, _default$2 as Image, type ImageProps, InputField, type InputFieldProps, _default$3 as Label, type LabelProps, type Language, type LanguageData, Loader, type LoaderProps, type LocalStoragePluginOptions, Modal, type ModalProps, type ModalRef, PageHeader, type PageHeaderProps, PageHolder, type PageHolderProps, Pagination, type PluginName, type ReactRouterDomPluginOptions, SideMenu, type SideMenuItem, type SideMenuProps, type Tab, type TabGroup, Table, type TableColumn, type TableFilterData, type TableListFilterListItem, type TableProps, type TableRef, Tabs, type TabsProps, type TabsRef, Text, type TextAs, type TextProps, type TextareaFieldProps, _default$5 as ToggleInput, type ToggleInputProps, type ToggleInputRef, Tooltip, type TooltipProps, type TooltipRef, type VerticalDividerProps, alertControls, alertsPlugin, defaultAlertsPluginOptions, defaultLocalStoragePluginOptions, defaultReactRouterDomPluginOptions, filterHover, generateI18n, generateLocalStorage, getBrowser, getFormErrorObject, isMobileDevice, localStoragePlugin, reactRouterDomPlugin, sideMenuControls, useAlertControls, useBetterHtmlContext, useForm, useMediaQuery, usePageResize, usePageScroll, useUrlQuery };
package/dist/index.d.ts CHANGED
@@ -5,6 +5,14 @@ import { ComponentProps, ReactNode } from 'react';
5
5
  import { WebTarget } from 'styled-components';
6
6
  import { Location, useNavigate, useLocation, useInRouterContext, useSearchParams, createSearchParams } from 'react-router-dom';
7
7
 
8
+ type Language = string;
9
+ type LanguageData<Words> = {
10
+ name: string;
11
+ code: Language;
12
+ words: Words;
13
+ flagCode: string;
14
+ };
15
+
8
16
  type PluginName = "alerts" | "react-router-dom" | "localStorage";
9
17
  type BetterHtmlPluginConstructor<T extends object = object> = (config?: T) => BetterHtmlPlugin<T>;
10
18
  type BetterHtmlPlugin<T = object> = {
@@ -322,6 +330,8 @@ type DropdownProps<Value = unknown, Data = unknown> = {
322
330
  debounceIsLoading?: boolean;
323
331
  debounceMinimumSymbolsRequired?: number;
324
332
  /** @default false */
333
+ withoutArrow?: boolean;
334
+ /** @default false */
325
335
  withoutClearButton?: boolean;
326
336
  /** @default false */
327
337
  withoutRenderingOptionsWhenClosed?: boolean;
@@ -341,11 +351,15 @@ type DropdownProps<Value = unknown, Data = unknown> = {
341
351
  });
342
352
  type DropdownComponentType = {
343
353
  <Value, Data>(props: ComponentPropWithRef<HTMLDivElement, DropdownProps<Value, Data>>): React.ReactElement;
344
- countries: (props: ComponentPropWithRef<HTMLDivElement, OmitProps<DropdownProps<string, Country>, "options">>) => React.ReactElement;
354
+ countries: (props: ComponentPropWithRef<HTMLDivElement, OmitProps<DropdownProps<Country["code"], Country>, "options">>) => React.ReactElement;
355
+ language: (props: ComponentPropWithRef<HTMLDivElement, OmitProps<DropdownProps<Language, LanguageData<object>> & {
356
+ isSmall?: boolean;
357
+ }, "options">>) => React.ReactElement;
345
358
  };
346
359
  declare const DropdownComponent: DropdownComponentType;
347
360
  declare const Dropdown: typeof DropdownComponent & {
348
361
  countries: typeof DropdownComponent.countries;
362
+ language: typeof DropdownComponent.language;
349
363
  };
350
364
 
351
365
  type ToggleInputRef = {};
@@ -457,6 +471,7 @@ type BetterHtmlConfig = {
457
471
  app: AppConfig;
458
472
  sideMenuIsCollapsed: boolean;
459
473
  sideMenuIsOpenMobile: boolean;
474
+ language: Language | undefined;
460
475
  components: {
461
476
  button?: {
462
477
  style?: ComponentStyleConfig<ButtonProps, "default" | "secondary" | "destructive" | "icon" | "upload">;
@@ -466,7 +481,7 @@ type BetterHtmlConfig = {
466
481
  style?: ComponentStyleConfig<InputFieldProps, "default" | "multiline" | "email" | "password" | "search" | "phoneNumber" | "date" | "dateTime" | "time" | "color">;
467
482
  };
468
483
  dropdown?: {
469
- style?: ComponentStyleConfig<DropdownProps, "default" | "countries">;
484
+ style?: ComponentStyleConfig<DropdownProps, "default" | "countries" | "language">;
470
485
  };
471
486
  toggleInput?: {
472
487
  style?: ComponentStyleConfig<ToggleInputProps, "checkbox" | "radiobutton" | "switch">;
@@ -486,6 +501,8 @@ type BetterHtmlConfig = {
486
501
  sideMenu?: {
487
502
  /** @default 300 */
488
503
  width?: number;
504
+ /** @default 80 */
505
+ sidebarWidth?: number;
489
506
  };
490
507
  };
491
508
  };
@@ -517,8 +534,9 @@ type TabsProps = {
517
534
  tabs: Tab[];
518
535
  name?: string;
519
536
  accentColor?: Color;
520
- style?: "default" | "borderRadiusTop" | "box";
537
+ style?: "default" | "borderRadiusTop" | "box" | "bubble";
521
538
  gap?: number;
539
+ borderRadius?: React.CSSProperties["borderRadius"];
522
540
  noBottomLine?: boolean;
523
541
  /** @default true */
524
542
  keepUrlHistory?: boolean;
@@ -655,6 +673,30 @@ declare function generateLocalStorage<LocalStorage extends object>(): {
655
673
  }) => void;
656
674
  };
657
675
 
676
+ declare function generateI18n<Words extends object & {
677
+ templates: Record<string, string>;
678
+ }>(config: {
679
+ defaultLanguage: Language;
680
+ languages: Record<Language, LanguageData<Words>>;
681
+ }): {
682
+ defaultLanguage: Language;
683
+ languages: Record<Language, LanguageData<Words>>;
684
+ t: {
685
+ <T extends Record<string, (text: string, index: number) => React.ReactNode>>(getString: (path: (typeof config.languages)[Language]["words"]) => string, template: T): React.ReactNode;
686
+ (getString: (path: (typeof config.languages)[Language]["words"]) => string): string;
687
+ };
688
+ language: string;
689
+ setLanguage: (language: Language) => void;
690
+ useI18n: () => {
691
+ t: {
692
+ <T extends Record<string, (text: string, index: number) => React.ReactNode>>(getString: (path: (typeof config.languages)[Language]["words"]) => string, template: T): React.ReactNode;
693
+ (getString: (path: (typeof config.languages)[Language]["words"]) => string): string;
694
+ };
695
+ language: string;
696
+ setLanguage: (language: Language) => void;
697
+ };
698
+ };
699
+
658
700
  type LoaderProps = {
659
701
  /** @default textPrimary */
660
702
  color?: Color;
@@ -1053,6 +1095,7 @@ declare const Tooltip: typeof TooltipComponent & {
1053
1095
  type FoldableProps = {
1054
1096
  isOpen?: boolean;
1055
1097
  defaultOpen?: boolean;
1098
+ withoutLine?: boolean;
1056
1099
  headerPaddingBlock?: React.CSSProperties["paddingBlock"];
1057
1100
  headerPaddingInline?: React.CSSProperties["paddingInline"];
1058
1101
  /** @default "right" */
@@ -1093,10 +1136,13 @@ type SideMenuItem = {
1093
1136
  type: "divider";
1094
1137
  shortText?: string;
1095
1138
  });
1139
+ type SideMenuPosition = "left" | "right";
1096
1140
  type SideMenuProps = {
1097
1141
  items: SideMenuItem[];
1098
1142
  bottomItems?: SideMenuItem[];
1099
1143
  location: Location;
1144
+ /** @default "left" */
1145
+ position?: SideMenuPosition;
1100
1146
  topSpace?: number;
1101
1147
  logoAssetName?: AssetName | AnyOtherString;
1102
1148
  logoUrl?: string;
@@ -1109,6 +1155,7 @@ type SideMenuProps = {
1109
1155
  itemsAdditionalComponent?: React.ReactNode;
1110
1156
  betweenItemsAdditionalComponent?: React.ReactNode;
1111
1157
  bottomItemsAdditionalComponent?: React.ReactNode;
1158
+ border?: React.CSSProperties["border"];
1112
1159
  isLoading?: boolean;
1113
1160
  /** @default backgroundContent */
1114
1161
  backgroundColor?: React.CSSProperties["backgroundColor"];
@@ -1120,8 +1167,10 @@ type SideMenuProps = {
1120
1167
  paddingBottom?: React.CSSProperties["paddingBottom"];
1121
1168
  /** @default "left" */
1122
1169
  mobileFoldToPosition?: "left" | "right";
1170
+ sideBar?: React.ReactNode;
1123
1171
  renderItemsHolder?: (items: React.ReactNode) => React.ReactNode;
1124
1172
  renderBottomItemsHolder?: (items: React.ReactNode) => React.ReactNode;
1173
+ children?: React.ReactNode;
1125
1174
  };
1126
1175
  type SideMenuComponentType = {
1127
1176
  (props: SideMenuProps): React.ReactElement;
@@ -1202,4 +1251,4 @@ type LocalStoragePluginOptions = {
1202
1251
  declare const defaultLocalStoragePluginOptions: Required<LocalStoragePluginOptions>;
1203
1252
  declare const localStoragePlugin: BetterHtmlPluginConstructor<LocalStoragePluginOptions>;
1204
1253
 
1205
- export { type Alert, type AlertDisplay, type AlertDuration, type AlertType, type AlertsPluginOptions, type AppConfig, type BetterHtmlConfig, type BetterHtmlPlugin, _default$1 as BetterHtmlProvider, type BetterHtmlProviderConfig, type BrowserName, type BurgerButtonProps, Button, type ButtonProps, Chip, type ChipProps, ColorThemeSwitch, type ColorThemeSwitchProps, type ComponentHoverStyle, type ComponentMarginProps, type ComponentPaddingProps, Div, type DivProps, _default$4 as Divider, Dropdown, type DropdownOption, type DropdownProps, Foldable, type FoldableProps, type FoldableRef, Form, type FormProps, FormRow, type FormRowProps, type HorizontalDividerProps, _default as Icon, type IconProps, _default$2 as Image, type ImageProps, InputField, type InputFieldProps, _default$3 as Label, type LabelProps, Loader, type LoaderProps, type LocalStoragePluginOptions, Modal, type ModalProps, type ModalRef, PageHeader, type PageHeaderProps, PageHolder, type PageHolderProps, Pagination, type PluginName, type ReactRouterDomPluginOptions, SideMenu, type SideMenuItem, type SideMenuProps, type Tab, type TabGroup, Table, type TableColumn, type TableFilterData, type TableListFilterListItem, type TableProps, type TableRef, Tabs, type TabsProps, type TabsRef, Text, type TextAs, type TextProps, type TextareaFieldProps, _default$5 as ToggleInput, type ToggleInputProps, type ToggleInputRef, Tooltip, type TooltipProps, type TooltipRef, type VerticalDividerProps, alertControls, alertsPlugin, defaultAlertsPluginOptions, defaultLocalStoragePluginOptions, defaultReactRouterDomPluginOptions, filterHover, generateLocalStorage, getBrowser, getFormErrorObject, isMobileDevice, localStoragePlugin, reactRouterDomPlugin, sideMenuControls, useAlertControls, useBetterHtmlContext, useForm, useMediaQuery, usePageResize, usePageScroll, useUrlQuery };
1254
+ export { type Alert, type AlertDisplay, type AlertDuration, type AlertType, type AlertsPluginOptions, type AppConfig, type BetterHtmlConfig, type BetterHtmlPlugin, _default$1 as BetterHtmlProvider, type BetterHtmlProviderConfig, type BrowserName, type BurgerButtonProps, Button, type ButtonProps, Chip, type ChipProps, ColorThemeSwitch, type ColorThemeSwitchProps, type ComponentHoverStyle, type ComponentMarginProps, type ComponentPaddingProps, Div, type DivProps, _default$4 as Divider, Dropdown, type DropdownOption, type DropdownProps, Foldable, type FoldableProps, type FoldableRef, Form, type FormProps, FormRow, type FormRowProps, type HorizontalDividerProps, _default as Icon, type IconProps, _default$2 as Image, type ImageProps, InputField, type InputFieldProps, _default$3 as Label, type LabelProps, type Language, type LanguageData, Loader, type LoaderProps, type LocalStoragePluginOptions, Modal, type ModalProps, type ModalRef, PageHeader, type PageHeaderProps, PageHolder, type PageHolderProps, Pagination, type PluginName, type ReactRouterDomPluginOptions, SideMenu, type SideMenuItem, type SideMenuProps, type Tab, type TabGroup, Table, type TableColumn, type TableFilterData, type TableListFilterListItem, type TableProps, type TableRef, Tabs, type TabsProps, type TabsRef, Text, type TextAs, type TextProps, type TextareaFieldProps, _default$5 as ToggleInput, type ToggleInputProps, type ToggleInputRef, Tooltip, type TooltipProps, type TooltipRef, type VerticalDividerProps, alertControls, alertsPlugin, defaultAlertsPluginOptions, defaultLocalStoragePluginOptions, defaultReactRouterDomPluginOptions, filterHover, generateI18n, generateLocalStorage, getBrowser, getFormErrorObject, isMobileDevice, localStoragePlugin, reactRouterDomPlugin, sideMenuControls, useAlertControls, useBetterHtmlContext, useForm, useMediaQuery, usePageResize, usePageScroll, useUrlQuery };