gantri-components 2.128.4 → 2.129.0-beta.2

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 (72) hide show
  1. package/dist/components/filter-button/filter-button.types.d.ts +0 -1
  2. package/dist/components/pills/components/pill/pill.types.d.ts +0 -1
  3. package/dist/components/table/components/selectable-row-checkbox-wrapper/selectable-row-checkbox-wrapper.types.d.ts +0 -1
  4. package/dist/components/table/components/table-draggable-row/table-draggable-row.styles.d.ts +0 -3
  5. package/dist/components/table/hooks/use-selectable-table-rows/components/clear-selected-rows/clear-selected-rows.d.ts +2 -0
  6. package/dist/components/table/hooks/use-selectable-table-rows/components/clear-selected-rows/clear-selected-rows.styles.d.ts +2 -0
  7. package/dist/components/table/hooks/use-selectable-table-rows/components/clear-selected-rows/index.d.ts +1 -0
  8. package/dist/components/table/hooks/use-selectable-table-rows/components/selectable-row-cell/index.d.ts +1 -0
  9. package/dist/components/table/hooks/use-selectable-table-rows/components/selectable-row-cell/selectable-row-cell.d.ts +4 -0
  10. package/dist/components/table/hooks/use-selectable-table-rows/components/selectable-row-cell/selectable-row-cell.styles.d.ts +2 -0
  11. package/dist/components/table/hooks/use-selectable-table-rows/components/selectable-row-cell/selectable-row-cell.types.d.ts +6 -0
  12. package/dist/components/table/hooks/use-selectable-table-rows/components/selectable-table-row-footer/index.d.ts +1 -0
  13. package/dist/components/table/hooks/use-selectable-table-rows/components/selectable-table-row-footer/selectable-table-row-footer.d.ts +3 -0
  14. package/dist/components/table/hooks/use-selectable-table-rows/components/selectable-table-row-footer/selectable-table-row-footer.types.d.ts +3 -0
  15. package/dist/components/table/hooks/use-selectable-table-rows/components/selectable-table-row-header/index.d.ts +1 -0
  16. package/dist/components/table/hooks/use-selectable-table-rows/components/selectable-table-row-header/selectable-table-row-header.d.ts +4 -0
  17. package/dist/components/table/hooks/use-selectable-table-rows/components/selectable-table-row-header/selectable-table-row-header.types.d.ts +5 -0
  18. package/dist/components/table/hooks/use-selectable-table-rows/helpers/get-row-range/get-row-range.d.ts +3 -0
  19. package/dist/components/table/hooks/use-selectable-table-rows/helpers/get-row-range/get-row-range.types.d.ts +6 -0
  20. package/dist/components/table/hooks/use-selectable-table-rows/helpers/get-row-range/index.d.ts +1 -0
  21. package/dist/components/table/hooks/use-selectable-table-rows/index.d.ts +1 -0
  22. package/dist/components/table/hooks/use-selectable-table-rows/use-selectable-table-rows.constants.d.ts +6 -0
  23. package/dist/components/table/hooks/use-selectable-table-rows/use-selectable-table-rows.d.ts +10 -0
  24. package/dist/components/table/hooks/use-selectable-table-rows/use-selectable-table-rows.types.d.ts +9 -0
  25. package/dist/global/context/index.d.ts +1 -0
  26. package/dist/global/context/translation/index.d.ts +1 -0
  27. package/dist/global/context/translation/translation.context.d.ts +11 -0
  28. package/dist/global/context/translation-name-space/index.d.ts +1 -0
  29. package/dist/global/context/translation-name-space/translation-name-space.context.d.ts +11 -0
  30. package/dist/helpers/generate-skus-functions/generate-sku/__tests__/generate-sku.test.d.ts +1 -0
  31. package/dist/helpers/generate-skus-functions/generate-sku/generate-sku.d.ts +30 -0
  32. package/dist/helpers/generate-skus-functions/generate-sku/generate-sku.types.d.ts +7 -0
  33. package/dist/helpers/generate-skus-functions/generate-sku/index.d.ts +1 -0
  34. package/dist/helpers/generate-skus-functions/generate-skus/__tests__/generate-skus.test.d.ts +1 -0
  35. package/dist/helpers/generate-skus-functions/generate-skus/generate-skus.d.ts +41 -0
  36. package/dist/helpers/generate-skus-functions/generate-skus/generate-skus.types.d.ts +7 -0
  37. package/dist/helpers/generate-skus-functions/generate-skus/index.d.ts +1 -0
  38. package/dist/helpers/generate-skus-functions/generate-skus-for-product-id/__tests__/generate-skus-for-product-id.tests.d.ts +1 -0
  39. package/dist/helpers/generate-skus-functions/generate-skus-for-product-id/generate-skus-for-product-id.d.ts +40 -0
  40. package/dist/helpers/generate-skus-functions/generate-skus-for-product-id/generate-skus-for-product-id.types.d.ts +6 -0
  41. package/dist/helpers/generate-skus-functions/generate-skus-for-product-id/index.d.ts +1 -0
  42. package/dist/helpers/generate-skus-functions/generate-skus.types.d.ts +14 -0
  43. package/dist/helpers/generate-skus-functions/get-colors-by-product-id/__tests__/get-colors-by-product-id.test.d.ts +1 -0
  44. package/dist/helpers/generate-skus-functions/get-colors-by-product-id/get-colors-by-product-id.d.ts +9 -0
  45. package/dist/helpers/generate-skus-functions/get-colors-by-product-id/index.d.ts +1 -0
  46. package/dist/helpers/generate-skus-functions/get-sku-selectors/get-sku-selectors.d.ts +13 -0
  47. package/dist/helpers/generate-skus-functions/get-sku-selectors/get-sku-selectors.types.d.ts +5 -0
  48. package/dist/helpers/generate-skus-functions/get-sku-selectors/index.d.ts +1 -0
  49. package/dist/helpers/generate-skus-functions/helpers/flatten-options/flatten-options.d.ts +2 -0
  50. package/dist/helpers/generate-skus-functions/helpers/flatten-options/flatten-options.types.d.ts +6 -0
  51. package/dist/helpers/generate-skus-functions/helpers/flatten-options/index.d.ts +1 -0
  52. package/dist/helpers/generate-skus-functions/helpers/generate-skus-from-options/generate-skus-from-options.d.ts +2 -0
  53. package/dist/helpers/generate-skus-functions/helpers/generate-skus-from-options/generate-skus-from-options.types.d.ts +5 -0
  54. package/dist/helpers/generate-skus-functions/helpers/generate-skus-from-options/index.d.ts +1 -0
  55. package/dist/helpers/generate-skus-functions/helpers/get-is-color-available-for-product-id/__tests__/get-is-color-available-for-product-id.test.d.ts +1 -0
  56. package/dist/helpers/generate-skus-functions/helpers/get-is-color-available-for-product-id/get-is-color-available-for-product-id.constants.d.ts +4 -0
  57. package/dist/helpers/generate-skus-functions/helpers/get-is-color-available-for-product-id/get-is-color-available-for-product-id.d.ts +5 -0
  58. package/dist/helpers/generate-skus-functions/helpers/get-is-color-available-for-product-id/index.d.ts +1 -0
  59. package/dist/helpers/generate-skus-functions/helpers/index.d.ts +3 -0
  60. package/dist/helpers/generate-skus-functions/index.d.ts +5 -0
  61. package/dist/helpers/index.d.ts +1 -0
  62. package/dist/hooks/index.d.ts +1 -0
  63. package/dist/hooks/use-provider/index.d.ts +1 -0
  64. package/dist/hooks/use-provider/use-provider.d.ts +33 -0
  65. package/dist/hooks/use-provider/use-provider.types.d.ts +2 -0
  66. package/dist/index.cjs.js +2 -1
  67. package/dist/index.cjs.js.map +1 -0
  68. package/dist/index.esm.js +2 -1
  69. package/dist/index.esm.js.map +1 -0
  70. package/dist/index.umd.js +2 -1
  71. package/dist/index.umd.js.map +1 -0
  72. package/package.json +5 -4
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { ResolutionAwareProp } from '../../types/resolution-aware-prop.type';
3
2
  import { ButtonSize } from '../button/button.types';
4
3
  export interface FilterButtonProps {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export interface PillProps {
3
2
  icon?: JSX.Element;
4
3
  onSelected?: (value: string | number) => void;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export interface SelectableRowCheckboxWrapperProps {
3
2
  Component: JSX.Element;
4
3
  index: number;
@@ -1,4 +1 @@
1
- export declare const StyledDraggableRowTr: import("styled-components").StyledComponent<"tr", import("styled-components").DefaultTheme, {
2
- reorderEnabled: boolean;
3
- }, never>;
4
1
  export declare const StyledDraggableRowWrapper: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
@@ -0,0 +1,2 @@
1
+ export declare const dataAttrClearSelected = "data-clear-selected";
2
+ export declare const ClearSelectedRows: () => JSX.Element;
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const StyledPointerFlex: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("../../../../../flex/flex.types").FlexProps & import("react").RefAttributes<import("../../../../../flex/flex.types").FlexProps>>, import("styled-components").DefaultTheme, {}, never>;
@@ -0,0 +1,4 @@
1
+ import React, { PropsWithChildren } from 'react';
2
+ import { RowData } from '@tanstack/react-table';
3
+ import { SelectableRowCellProps } from './selectable-row-cell.types';
4
+ export declare const SelectableRowCell: <TData extends RowData<import("../../../..").CustomTData>>(props: React.PropsWithChildren<SelectableRowCellProps<TData>>) => JSX.Element;
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const StyledCheckboxCell: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("../../../../../cell/cell.types").CellProps & import("react").RefAttributes<import("../../../../../cell/cell.types").CellProps>>, import("styled-components").DefaultTheme, {}, never>;
@@ -0,0 +1,6 @@
1
+ import { Row, RowData, Table } from '@tanstack/react-table';
2
+ export interface SelectableRowCellProps<TData extends RowData> {
3
+ index: number;
4
+ row: Row<TData>;
5
+ table: Table<TData>;
6
+ }
@@ -0,0 +1 @@
1
+ export * from './selectable-table-row-footer';
@@ -0,0 +1,3 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { SelectableRowFooterProps } from './selectable-table-row-footer.types';
3
+ export declare const SelectableRowFooter: (props: PropsWithChildren<SelectableRowFooterProps>) => JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './selectable-table-row-header';
@@ -0,0 +1,4 @@
1
+ import React, { PropsWithChildren } from 'react';
2
+ import { RowData } from '@tanstack/react-table';
3
+ import { SelectableRowHeaderProps } from './selectable-table-row-header.types';
4
+ export declare const SelectableRowHeader: <TData extends RowData<import("../../../..").CustomTData>>(props: React.PropsWithChildren<SelectableRowHeaderProps<TData>>) => JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { RowData, Table } from '@tanstack/react-table';
2
+ export interface SelectableRowHeaderProps<TData extends RowData> {
3
+ index: number;
4
+ table: Table<TData>;
5
+ }
@@ -0,0 +1,3 @@
1
+ import { Row, RowData } from '@tanstack/react-table';
2
+ import { GetRowRangeProps } from './get-row-range.types';
3
+ export declare const getRowRange: <TData extends RowData<import("../../../..").CustomTData>>(props: GetRowRangeProps<TData>) => Row<TData>[];
@@ -0,0 +1,6 @@
1
+ import { Row, RowData } from '@tanstack/react-table';
2
+ export interface GetRowRangeProps<TData extends RowData> {
3
+ currentIndex: number;
4
+ prevIndex: number;
5
+ rows: Row<TData>[];
6
+ }
@@ -0,0 +1 @@
1
+ export * from './use-selectable-table-rows';
@@ -0,0 +1,6 @@
1
+ export declare const selectableRowsCheckboxSize = "2rem";
2
+ export declare const dataAttrIsRowSelected = "data-is-row-selected";
3
+ export declare const rowSelectionTypes: {
4
+ readonly checkboxes: "checkboxes";
5
+ readonly custom: "custom";
6
+ };
@@ -0,0 +1,10 @@
1
+ import { RowData } from '@tanstack/react-table';
2
+ export declare const useSelectableTableRows: <TData extends RowData<import("../..").CustomTData>>() => {
3
+ deselectRows: (rowIds: (string | number)[]) => void;
4
+ getIsRowSelected: (rowId: number | string) => boolean;
5
+ getSelectedRowData: (props: {
6
+ idProperty: keyof TData;
7
+ records: TData[];
8
+ }) => (TData | undefined)[];
9
+ selectRows: (rowIds: (string | number)[]) => void;
10
+ };
@@ -0,0 +1,9 @@
1
+ import { RowData } from '@tanstack/react-table';
2
+ import { rowSelectionTypes } from './use-selectable-table-rows.constants';
3
+ export interface RowSelection<TData extends RowData> {
4
+ disabled?: boolean;
5
+ idProperty?: keyof TData;
6
+ onSelect?: (selectedRecords: TData[]) => void;
7
+ type: RowSelectionType;
8
+ }
9
+ export type RowSelectionType = typeof rowSelectionTypes[keyof typeof rowSelectionTypes];
@@ -0,0 +1 @@
1
+ export * from './translation';
@@ -0,0 +1 @@
1
+ export * from './translation.context';
@@ -0,0 +1,11 @@
1
+ import React, { PropsWithChildren } from 'react';
2
+ type TranslationNameSpaceState = string[] | string;
3
+ export declare const defaultTranslationNameSpace: TranslationNameSpaceState;
4
+ export declare const TranslationContext: React.Context<TranslationNameSpaceState>;
5
+ export declare const useTranslationContext: () => {
6
+ nameSpace: TranslationNameSpaceState;
7
+ };
8
+ export declare const TranslationProvider: (props: React.PropsWithChildren<{
9
+ nameSpace: TranslationNameSpaceState;
10
+ }>) => React.JSX.Element;
11
+ export {};
@@ -0,0 +1 @@
1
+ export * from './translation-name-space.context';
@@ -0,0 +1,11 @@
1
+ import React, { PropsWithChildren } from 'react';
2
+ type TranslationNameSpaceState = string[] | string;
3
+ export declare const defaultTranslationNameSpace: TranslationNameSpaceState;
4
+ export declare const TranslationContext: React.Context<TranslationNameSpaceState>;
5
+ export declare const useTranslationContext: () => {
6
+ nameSpace: TranslationNameSpaceState;
7
+ };
8
+ export declare const TranslationProvider: (props: React.PropsWithChildren<{
9
+ nameSpace: TranslationNameSpaceState;
10
+ }>) => React.JSX.Element;
11
+ export {};
@@ -0,0 +1,30 @@
1
+ import { GenerateSkuProps } from './generate-sku.types';
2
+ /**
3
+ * Provide a product's selected options and get the configured sku back.
4
+ *
5
+ * *`variants` must be input in the same index order they were provided in!*
6
+ *
7
+ * @example
8
+ *
9
+ * // options as strings
10
+ * const sku = generateSku({
11
+ * color: 'carbon',
12
+ * productId: 123456,
13
+ * size: 'sm',
14
+ * variants: ['chrome_rod_finish', 'white_cord_color'],
15
+ * });
16
+ *
17
+ * // options as code objects
18
+ * const sku = generateSku({
19
+ * color: { code: 'carbon' },
20
+ * productId: 123456,
21
+ * size: { code: 'sm' },
22
+ * variants: [{ code: 'chrome_rod_finish' }, { code: 'white_cord_color' }],
23
+ * });
24
+ *
25
+ * @returns
26
+ * ```
27
+ * '123456-sm-carbon-chrome_rod_finish-white_cord_color'
28
+ * ```
29
+ */
30
+ export declare const generateSku: (props: GenerateSkuProps) => string;
@@ -0,0 +1,7 @@
1
+ import { ProductOption } from '../generate-skus.types';
2
+ export interface GenerateSkuProps {
3
+ color: ProductOption;
4
+ productId: number;
5
+ size: ProductOption;
6
+ variants: ProductOption[] | null | undefined;
7
+ }
@@ -0,0 +1 @@
1
+ export * from './generate-sku';
@@ -0,0 +1,41 @@
1
+ import { GenerateSkusProps } from './generate-skus.types';
2
+ /**
3
+ * Provide all of a product's options and get all possible skus back.
4
+ *
5
+ * *`variants` must be input in the same index order they were provided in!*
6
+ *
7
+ * @example
8
+ *
9
+ * // options as strings
10
+ * const sku = generateSkus({
11
+ * color: ['carbon', 'snow'],
12
+ * productId: 123456,
13
+ * size: 'sm',
14
+ * variants: [
15
+ * ['chrome_rod_finish'],
16
+ * ['black_cord_color', 'white_cord_color']
17
+ * ],
18
+ * });
19
+ *
20
+ * // options as code objects
21
+ * const sku = generateSkus({
22
+ * color: [{ code: 'carbon' }, {code: 'snow'}],
23
+ * productId: 123456,
24
+ * size: { code: 'sm' },
25
+ * variants: [
26
+ * [{ code: 'chrome_rod_finish' }],
27
+ * [{ code: 'black_cord_color' }, { code: 'white_cord_color' }]
28
+ * ],
29
+ * });
30
+ *
31
+ * @returns
32
+ * ```
33
+ * [
34
+ * '123456-sm-carbon-chrome_rod_finish-black_cord_color',
35
+ * '123456-sm-carbon-chrome_rod_finish-white_cord_color',
36
+ * '123456-sm-snow-chrome_rod_finish-black_cord_color',
37
+ * '123456-sm-snow-chrome_rod_finish-white_cord_color'
38
+ * ]
39
+ * ```
40
+ */
41
+ export declare const generateSkus: (props: GenerateSkusProps) => string[];
@@ -0,0 +1,7 @@
1
+ import { ProductOption } from '../generate-skus.types';
2
+ export interface GenerateSkusProps {
3
+ colors: ProductOption[] | null | undefined;
4
+ productId: number;
5
+ size: ProductOption;
6
+ variants: ProductOption[][] | null | undefined;
7
+ }
@@ -0,0 +1 @@
1
+ export * from './generate-skus';
@@ -0,0 +1,40 @@
1
+ import { GenerateSkusForProductIdProps } from './generate-skus-for-product-id.types';
2
+ /**
3
+ * Provide all of a product's options (available colors are automatically configured based on product ID) and get all possible skus back.
4
+ *
5
+ * *`variants` must be input in the same index order they were provided in!*
6
+ *
7
+ * @example
8
+ *
9
+ * // options as strings
10
+ * const sku = generateSkusForProductId({
11
+ * productId: 123456,
12
+ * size: 'sm',
13
+ * variants: [
14
+ * ['chrome_rod_finish'],
15
+ * ['black_cord_color', 'white_cord_color']
16
+ * ],
17
+ * });
18
+ *
19
+ * // options as code objects
20
+ * const sku = generateSkusForProductId({
21
+ * productId: 123456,
22
+ * size: { code: 'sm' },
23
+ * variants: [
24
+ * [{ code: 'chrome_rod_finish' }],
25
+ * [{ code: 'black_cord_color' }, { code: 'white_cord_color' }]
26
+ * ],
27
+ * });
28
+ *
29
+ * @returns
30
+ * ```
31
+ * [
32
+ * '123456-sm-blossompink-chrome_rod_finish-black_cord_color',
33
+ * '123456-sm-blossompink-chrome_rod_finish-white_cord_color',
34
+ * '123456-sm-canyon-chrome_rod_finish-black_cord_color',
35
+ * '123456-sm-canyon-chrome_rod_finish-white_cord_color',
36
+ * ...etc
37
+ * ]
38
+ * ```
39
+ */
40
+ export declare const generateSkusForProductId: (props: GenerateSkusForProductIdProps) => string[];
@@ -0,0 +1,6 @@
1
+ import { ProductOption } from '../generate-skus.types';
2
+ export interface GenerateSkusForProductIdProps {
3
+ productId: number;
4
+ size: ProductOption;
5
+ variants: ProductOption[][] | null | undefined;
6
+ }
@@ -0,0 +1 @@
1
+ export * from './generate-skus-for-product-id';
@@ -0,0 +1,14 @@
1
+ export interface VariantOption {
2
+ code: string;
3
+ name: string;
4
+ selections: VariantSelection[];
5
+ }
6
+ interface VariantSelection {
7
+ code: string;
8
+ label: string;
9
+ name: string;
10
+ }
11
+ export type ProductOption = {
12
+ code: string;
13
+ } | string | null | undefined;
14
+ export {};
@@ -0,0 +1,9 @@
1
+ import { ProductColorCode } from '../../../styles/theme';
2
+ /**
3
+ * Returns an array of colors that are available for a particular product ID.
4
+ */
5
+ export declare const getColorsByProductId: (productId: number) => {
6
+ code: ProductColorCode;
7
+ hexColor: string;
8
+ shortColorName: string;
9
+ }[];
@@ -0,0 +1 @@
1
+ export * from './get-colors-by-product-id';
@@ -0,0 +1,13 @@
1
+ import { GetSkuSelectorsProps } from './get-sku-selectors.types';
2
+ /**
3
+ * Provide a sku and the variant options and get all the product option codes back.
4
+ *
5
+ * *`variantOptions` must be input in the same index order they were provided in!*
6
+ */
7
+ export declare const getSkuSelectors: (props: GetSkuSelectorsProps) => {
8
+ colorCode: string;
9
+ productId: number;
10
+ sizeCode: string;
11
+ variantCodes: string[];
12
+ variantSelectionCodes: string[][];
13
+ };
@@ -0,0 +1,5 @@
1
+ import { VariantOption } from '../generate-skus.types';
2
+ export interface GetSkuSelectorsProps {
3
+ sku: string;
4
+ variantOptions: VariantOption[][];
5
+ }
@@ -0,0 +1 @@
1
+ export * from './get-sku-selectors';
@@ -0,0 +1,2 @@
1
+ import { FlattenOptionsProps } from './flatten-options.types';
2
+ export declare const flattenOptions: (props: FlattenOptionsProps) => string[][];
@@ -0,0 +1,6 @@
1
+ import { ProductOption } from '../../generate-skus.types';
2
+ export interface FlattenOptionsProps {
3
+ colors: ProductOption[] | null | undefined;
4
+ size: ProductOption;
5
+ variants: ProductOption[][] | null | undefined;
6
+ }
@@ -0,0 +1 @@
1
+ export * from './flatten-options';
@@ -0,0 +1,2 @@
1
+ import { GenerateSkusFromOptionsProps } from './generate-skus-from-options.types';
2
+ export declare const generateSkusFromOptions: (props: GenerateSkusFromOptionsProps) => string[];
@@ -0,0 +1,5 @@
1
+ export interface GenerateSkusFromOptionsProps {
2
+ loopNum?: number;
3
+ options: string[][];
4
+ partialSkus: string[];
5
+ }
@@ -0,0 +1 @@
1
+ export * from './generate-skus-from-options';
@@ -0,0 +1,4 @@
1
+ export declare const momaExclusiveColorsProductIds: number[];
2
+ export declare const momaExclusiveColorCodes: readonly ["cobalt", "poppy"];
3
+ export declare const kobbleExclusiveColorsProductIds: number[];
4
+ export declare const kobbleExclusiveColorCodes: readonly ["glossysnowwhite"];
@@ -0,0 +1,5 @@
1
+ import { ProductColorCode } from '../../../../styles/theme';
2
+ export declare const getIsColorAvailableForProductId: (props: {
3
+ colorCode: ProductColorCode;
4
+ productId: number;
5
+ }) => boolean;
@@ -0,0 +1 @@
1
+ export * from './get-is-color-available-for-product-id';
@@ -0,0 +1,3 @@
1
+ export * from './flatten-options';
2
+ export * from './generate-skus-from-options';
3
+ export * from './get-is-color-available-for-product-id';
@@ -0,0 +1,5 @@
1
+ export * from './get-colors-by-product-id';
2
+ export * from './generate-sku';
3
+ export * from './generate-skus';
4
+ export * from './generate-skus-for-product-id';
5
+ export * from './get-sku-selectors';
@@ -1,3 +1,4 @@
1
1
  export * from './layout.helpers';
2
2
  export * from './get-file-url';
3
3
  export * from './get-folder-structure';
4
+ export * from './generate-skus-functions';
@@ -0,0 +1 @@
1
+ export * from './use-provider';
@@ -0,0 +1 @@
1
+ export * from './use-provider';
@@ -0,0 +1,33 @@
1
+ import React, { PropsWithChildren } from 'react';
2
+ import { GenericContextValue } from './use-provider.types';
3
+ export declare const createGenericContext: <Type>(defaultValue: Type) => React.Context<GenericContextValue<Type>>;
4
+ /**
5
+ * ```
6
+ * const defaultMyValue = 'foo';
7
+ *
8
+ * const MyContext = createGenericContext(defaultMyValue);
9
+ *
10
+ * const OuterWrapper = () => {
11
+ * const MyProvider = useProvider({
12
+ * Context: MyContext,
13
+ * defaultValue: defaultMyValue,
14
+ * });
15
+ *
16
+ * return (
17
+ * <MyProvider>
18
+ * <InnerComponent />
19
+ * </MyProvider>
20
+ * );
21
+ * }
22
+ *
23
+ * const InnerComponent = () => {
24
+ * const [myValue, setMyValue] = useContext(MyContext);
25
+ *
26
+ * // ...
27
+ * }
28
+ * ```
29
+ */
30
+ export declare const useProvider: <Type>(props: {
31
+ Context: React.Context<GenericContextValue<Type>>;
32
+ defaultValue: Type;
33
+ }) => React.MemoExoticComponent<({ children }: PropsWithChildren<Record<never, never>>) => JSX.Element>;
@@ -0,0 +1,2 @@
1
+ import { Dispatch, SetStateAction } from 'react';
2
+ export type GenericContextValue<Type> = [Type, Dispatch<SetStateAction<Type>>];