@cronocode/react-box 3.0.12 → 3.0.14

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 (73) hide show
  1. package/README.md +8 -7
  2. package/array.d.ts +13 -0
  3. package/box.cjs +1 -1
  4. package/box.d.ts +8 -9
  5. package/box.mjs +16 -16
  6. package/components/button.d.ts +7 -6
  7. package/components/checkbox.d.ts +5 -3
  8. package/components/checkbox.mjs +4 -4
  9. package/components/dataGrid/contracts/dataGridContract.d.ts +36 -0
  10. package/components/dataGrid/dataGridCell.d.ts +8 -0
  11. package/components/dataGrid/dataGridGroupRow.d.ts +6 -0
  12. package/components/dataGrid/dataGridHeaderCell.d.ts +6 -0
  13. package/components/dataGrid/dataGridPagination.d.ts +6 -0
  14. package/components/dataGrid/dataGridRow.d.ts +6 -0
  15. package/components/dataGrid/models/cellModel.d.ts +10 -0
  16. package/components/dataGrid/models/columnModel.d.ts +36 -0
  17. package/components/dataGrid/models/gridModel.d.ts +44 -0
  18. package/components/dataGrid/models/groupRowCellModel.d.ts +10 -0
  19. package/components/dataGrid/models/groupRowModel.d.ts +23 -0
  20. package/components/dataGrid/models/rowModel.d.ts +16 -0
  21. package/components/dataGrid/useGrid.d.ts +3 -0
  22. package/components/dataGrid.cjs +1 -1
  23. package/components/dataGrid.d.ts +2 -7
  24. package/components/dataGrid.mjs +656 -18
  25. package/components/dropdown.cjs +1 -1
  26. package/components/dropdown.d.ts +2 -2
  27. package/components/dropdown.mjs +63 -62
  28. package/components/flex.d.ts +2 -1
  29. package/components/form.cjs +1 -1
  30. package/components/form.mjs +11 -8
  31. package/components/grid.d.ts +2 -1
  32. package/components/radioButton.cjs +1 -1
  33. package/components/radioButton.d.ts +7 -6
  34. package/components/radioButton.mjs +9 -9
  35. package/components/semantics.cjs +1 -1
  36. package/components/semantics.d.ts +27 -25
  37. package/components/semantics.mjs +26 -25
  38. package/components/textarea.d.ts +7 -6
  39. package/components/textbox.d.ts +7 -6
  40. package/components/tooltip.cjs +1 -1
  41. package/components/tooltip.d.ts +1 -1
  42. package/components/tooltip.mjs +20 -22
  43. package/core/boxConstants.d.ts +1 -0
  44. package/core/boxStyles.d.ts +112 -37
  45. package/core/boxStylesFormatters.d.ts +1 -1
  46. package/core/classNames.d.ts +1 -1
  47. package/core/extends/boxComponents.d.ts +391 -0
  48. package/core/{boxExtends.d.ts → extends/boxExtends.d.ts} +4 -1
  49. package/core/extends/useComponents.d.ts +2 -0
  50. package/core/theme/theme.d.ts +1 -3
  51. package/core/theme/themeContext.d.ts +2 -4
  52. package/core/useStyles.d.ts +2 -2
  53. package/core/variables.d.ts +1 -0
  54. package/core.cjs +4 -4
  55. package/core.mjs +634 -511
  56. package/hooks/useVisibility.d.ts +9 -1
  57. package/icons/arrowIcon.d.ts +2 -0
  58. package/icons/dotsIcon.d.ts +2 -0
  59. package/icons/groupingIcon.d.ts +2 -0
  60. package/icons/pinIcon.d.ts +2 -0
  61. package/package.json +1 -1
  62. package/types.d.ts +35 -6
  63. package/utils/fn/fnUtils.d.ts +4 -0
  64. package/utils/memo.d.ts +5 -0
  65. package/utils/object/objectUtils.d.ts +1 -1
  66. package/components/dataGrid/dataGridContract.d.ts +0 -24
  67. package/components/dataGrid/useGridData.d.ts +0 -7
  68. package/components/label.cjs +0 -1
  69. package/components/label.d.ts +0 -5
  70. package/components/label.mjs +0 -10
  71. package/core/theme/defaultTheme.d.ts +0 -3
  72. package/core/theme/themeContract.d.ts +0 -25
  73. package/core/theme/useTheme.d.ts +0 -2
@@ -1 +1,9 @@
1
- export default function useVisibility<T extends HTMLElement = HTMLDivElement>(node?: Nullable<T>): [boolean, React.Dispatch<React.SetStateAction<boolean>>, React.RefObject<T>];
1
+ interface Props<T extends HTMLElement = HTMLDivElement> {
2
+ node?: Nullable<T>;
3
+ event?: 'mousedown' | 'click';
4
+ hideOnScroll?: boolean;
5
+ hideOnResize?: boolean;
6
+ hideOnEscape?: boolean;
7
+ }
8
+ export default function useVisibility<T extends HTMLElement = HTMLDivElement>(props?: Props<T>): [boolean, React.Dispatch<React.SetStateAction<boolean>>, React.RefObject<T>];
9
+ export {};
@@ -0,0 +1,2 @@
1
+ import { BaseSvgProps } from '../components/baseSvg';
2
+ export default function ArrowIcon(props: BaseSvgProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { BaseSvgProps } from '../components/baseSvg';
2
+ export default function DotsIcon(props: BaseSvgProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { BaseSvgProps } from '../components/baseSvg';
2
+ export default function GroupingIcon(props: BaseSvgProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { BaseSvgProps } from '../components/baseSvg';
2
+ export default function PinIcon(props: BaseSvgProps): import("react/jsx-runtime").JSX.Element;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cronocode/react-box",
3
- "version": "3.0.12",
3
+ "version": "3.0.14",
4
4
  "type": "module",
5
5
  "main": "./box.cjs",
6
6
  "module": "./box.mjs",
package/types.d.ts CHANGED
@@ -1,10 +1,14 @@
1
1
  import { breakpoints, cssStyles, pseudo1, pseudo2, pseudoClasses, pseudoGroupClasses } from './core/boxStyles';
2
+ import { ClassNameType } from './core/classNames';
2
3
  import { BoxStyle, BoxStylesType, ExtractKeys } from './core/coreTypes';
4
+ import { default as boxComponents } from './core/extends/boxComponents';
3
5
  export declare namespace Augmented {
4
6
  interface BoxProps {
5
7
  }
6
8
  interface BoxPropTypes {
7
9
  }
10
+ interface ComponentsTypes {
11
+ }
8
12
  }
9
13
  type ExtractBoxStylesInternal<T extends Record<string, BoxStyle[]>> = {
10
14
  [K in keyof T]?: K extends keyof Augmented.BoxPropTypes ? BoxStylesType<ArrayType<T[K]>['values']> | Augmented.BoxPropTypes[K] : BoxStylesType<ArrayType<T[K]>['values']>;
@@ -19,13 +23,38 @@ type BoxPseudoClassesStyles2Nested = ExtractKeys<typeof pseudo2, BoxStylesWithPs
19
23
  type BoxPseudoClassesStyles2TopLevel = ExtractKeys<typeof pseudo2, boolean | [boolean, BoxStylesWithPseudoClasses]>;
20
24
  export interface BoxStylesWithPseudoClasses extends BoxStyles, BoxPseudoClassesStyles1, BoxPseudoClassesStyles2Nested {
21
25
  }
22
- type BoxPseudoGroupClassesStyles = ExtractKeys<typeof pseudoGroupClasses, string | Record<string, BoxStyles>>;
26
+ type BoxPseudoGroupClassesStyles = ExtractKeys<typeof pseudoGroupClasses, Record<string, BoxStyles>>;
23
27
  type BoxBreakpointsStyles = ExtractKeys<typeof breakpoints, BoxStylesWithPseudoClasses & BoxPseudoGroupClassesStyles>;
24
- export interface ThemeProps {
28
+ type ExtractVariants<T> = T extends {
29
+ variants?: infer Variants;
30
+ } ? keyof Variants extends never ? never : Extract<keyof Variants, string> : never;
31
+ type ExtractChildrenVariants<T> = T extends {
32
+ children?: infer Children;
33
+ } ? {
34
+ [K in keyof Children & string]: ExtractVariants<Children[K]> | ExtractChildrenVariants<Children[K]>;
35
+ }[keyof Children & string] : never;
36
+ type ExtractChildrenNames<T, Prefix extends string = ''> = T extends {
37
+ children?: infer Children;
38
+ } ? {
39
+ [K in keyof Children & string]: `${Prefix}${Prefix extends '' ? '' : '.'}${K}` | ExtractChildrenNames<Children[K], `${Prefix}${Prefix extends '' ? '' : '.'}${K}`>;
40
+ }[keyof Children & string] : never;
41
+ export type ExtractComponentsAndVariants<T> = {
42
+ [K in keyof T & string]: ExtractVariants<T[K]> | ExtractChildrenVariants<T[K]>;
43
+ } & {
44
+ [K in keyof T & string as ExtractChildrenNames<T[K], K>]: ExtractChildrenVariants<T[K]>;
45
+ };
46
+ type MergeUnion<T, U> = {
47
+ [K in keyof T | keyof U]: K extends keyof T ? K extends keyof U ? T[K] | U[K] : T[K] : K extends keyof U ? U[K] : never;
48
+ };
49
+ type Simplify<T> = T extends infer U ? {
50
+ [K in keyof U]: U[K];
51
+ } : never;
52
+ export type ComponentsAndVariants = Simplify<MergeUnion<ExtractComponentsAndVariants<typeof boxComponents>, Augmented.ComponentsTypes>>;
53
+ export interface ComponentProps<TKey extends keyof ComponentsAndVariants = never> {
25
54
  clean?: boolean;
26
- component?: string;
27
- theme?: string;
55
+ component?: TKey;
56
+ variant?: ClassNameType<ComponentsAndVariants[TKey]>;
28
57
  }
29
- export type BoxStyleProps = BoxStyles & BoxPseudoClassesStyles1 & BoxPseudoClassesStyles2TopLevel & BoxPseudoGroupClassesStyles & BoxBreakpointsStyles & ThemeProps;
30
- export type BoxThemeStyles = BoxStylesWithPseudoClasses & BoxBreakpointsStyles;
58
+ export type BoxStyleProps<TKey extends keyof ComponentsAndVariants = never> = Simplify<BoxStyles & BoxPseudoClassesStyles1 & BoxPseudoClassesStyles2TopLevel & BoxPseudoGroupClassesStyles & BoxBreakpointsStyles & ComponentProps<TKey>>;
59
+ export type BoxComponentStyles = Simplify<BoxStylesWithPseudoClasses & BoxBreakpointsStyles & BoxPseudoGroupClassesStyles>;
31
60
  export {};
@@ -0,0 +1,4 @@
1
+ declare namespace FnUtils {
2
+ function throttle<T extends unknown[]>(callback: (...args: T) => void, wait?: number): (...args: T) => void;
3
+ }
4
+ export default FnUtils;
@@ -0,0 +1,5 @@
1
+ export interface Memo<T> {
2
+ value: T;
3
+ clear(): void;
4
+ }
5
+ export default function memo<T>(action: () => T): Memo<T>;
@@ -3,7 +3,7 @@ declare namespace ObjectUtils {
3
3
  props?: Object;
4
4
  }, TKey extends keyof T>(props: T, keys: Readonly<TKey[]>, extraTagProps?: Object): T;
5
5
  function isObject(value: unknown): value is object;
6
- function mergeDeep<T>(...objects: object[]): T;
6
+ function mergeDeep<T>(...objects: T[]): T;
7
7
  function isKeyOf<T extends object>(key: any, obj: T): key is keyof T;
8
8
  }
9
9
  export default ObjectUtils;
@@ -1,24 +0,0 @@
1
- import { Key } from 'react';
2
- type KeysMatching<T, V> = {
3
- [K in keyof T]-?: T[K] extends V ? K : never;
4
- }[keyof T];
5
- export interface GridDef<TRow> {
6
- rowKey?: KeysMatching<TRow, Key> | ((rowData: TRow) => Key);
7
- columns: GridColumn<TRow>[];
8
- }
9
- export interface GridCell<TRow> {
10
- key: keyof TRow;
11
- value: React.ReactNode;
12
- }
13
- export interface GridColumn<TRow> {
14
- key: keyof TRow;
15
- }
16
- export interface GridRow<TRow> {
17
- dataRow: TRow;
18
- cells: GridCell<TRow>[];
19
- }
20
- export interface GridData<TRow> {
21
- columns: GridColumn<TRow>[];
22
- rows: GridRow<TRow>[];
23
- }
24
- export {};
@@ -1,7 +0,0 @@
1
- import { GridColumn, GridData } from './dataGridContract';
2
- interface Props<TRow> {
3
- data?: TRow[];
4
- columns: GridColumn<TRow>[];
5
- }
6
- export default function useGridData<TRow>(props: Props<TRow>): GridData<TRow>;
7
- export {};
@@ -1 +0,0 @@
1
- "use strict";const r=require("react/jsx-runtime"),n=require("react"),o=require("../box.cjs");function s(e,t){return r.jsx(o,{tag:"label",ref:t,component:"label",...e})}const c=n.forwardRef(s);module.exports=c;
@@ -1,5 +0,0 @@
1
- import { BoxProps } from '../box';
2
- interface Props extends Omit<BoxProps<'label'>, 'ref' | 'tag'> {
3
- }
4
- declare const _default: import('react').ForwardRefExoticComponent<Props & import('react').RefAttributes<HTMLLabelElement>>;
5
- export default _default;
@@ -1,10 +0,0 @@
1
- import { jsx as t } from "react/jsx-runtime";
2
- import { forwardRef as e } from "react";
3
- import a from "../box.mjs";
4
- function l(o, r) {
5
- return /* @__PURE__ */ t(a, { tag: "label", ref: r, component: "label", ...o });
6
- }
7
- const p = e(l);
8
- export {
9
- p as default
10
- };
@@ -1,3 +0,0 @@
1
- import { ThemeSetup } from './themeContract';
2
- declare const defaultTheme: ThemeSetup;
3
- export default defaultTheme;
@@ -1,25 +0,0 @@
1
- import { BoxThemeStyles } from '../../types';
2
- export interface ThemeComponentStyles {
3
- clean?: boolean;
4
- styles: BoxThemeStyles;
5
- themes?: {
6
- [name: string]: BoxThemeStyles;
7
- };
8
- children?: ThemeType;
9
- }
10
- export type ThemeType = {
11
- [componentName: string]: ThemeComponentStyles;
12
- };
13
- export interface ThemeSetup {
14
- components?: ThemeType;
15
- button?: ThemeComponentStyles;
16
- textbox?: ThemeComponentStyles;
17
- textarea?: ThemeComponentStyles;
18
- checkbox?: ThemeComponentStyles;
19
- radioButton?: ThemeComponentStyles;
20
- label?: ThemeComponentStyles;
21
- dropdown?: ThemeComponentStyles;
22
- }
23
- export interface Themes {
24
- [name: string]: ThemeSetup;
25
- }
@@ -1,2 +0,0 @@
1
- import { BoxThemeStyles, ThemeProps } from '../../types';
2
- export default function useTheme(props: ThemeProps): BoxThemeStyles | undefined;