@nodeblocks/frontend-list-organization-block 0.2.2 → 0.3.0

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.
@@ -1,16 +1,20 @@
1
- import { Stack, TabsProps, TypographyProps } from '@mui/material';
2
- import { ComponentProps, ReactNode } from 'react';
3
- import { ListOrganizationsContextValue } from './context';
4
- import { BlocksOverride } from './lib';
5
- export interface ListOrganizationsRowData {
1
+ import { StackProps } from '@mui/material';
2
+ import { ComponentProps, type ReactNode, type SyntheticEvent } from 'react';
3
+ import { BaseTable, type BaseTableSearchChip, type BlocksOverride } from '@nodeblocks/frontend-base-block';
4
+ export interface ListOrganizationsRowData extends Record<string, unknown> {
6
5
  id: string;
7
6
  createdAt: string;
8
7
  name: string;
9
8
  joinDate: string;
10
- auditStatus: string;
9
+ status: string;
11
10
  }
11
+ type ListOrganizationsRowActionType = 'activate' | 'deactivate';
12
+ type ListOrganizationsStatusMatch = {
13
+ active: string;
14
+ inactive: string;
15
+ };
12
16
  export type TabData = {
13
- key?: string;
17
+ key: string;
14
18
  label: string;
15
19
  isDisabled?: boolean;
16
20
  subtitle?: string;
@@ -25,27 +29,90 @@ export interface PaginationProps {
25
29
  /** Total number of pages in the pagination. */
26
30
  totalPages: number;
27
31
  }
28
- declare const ListOrganizations: {
29
- <CustomBlocks extends Record<string, ReactNode> = {}>({ sx, spacing, className, children, ...props }: Omit<ComponentProps<typeof Stack>, "children"> & Required<Pick<ListOrganizationsContextValue, "labels" | "onSearchFieldChange" | "onActionClick" | "onNavigate" | "onRowActionClick" | "data" | "rowHref" | "tabs" | "listOrganizationsTitle">> & Partial<Pick<ListOrganizationsContextValue, "isLoading" | "pagination" | "currentTab" | "onTabChange">> & {
30
- children?: BlocksOverride<typeof defaultBlocks, CustomBlocks>;
31
- }): import("react/jsx-runtime").JSX.Element;
32
- Title(props: Partial<TypographyProps & Pick<ListOrganizationsContextValue, "listOrganizationsTitle">>): import("react/jsx-runtime").JSX.Element;
33
- Action(props: Partial<ComponentProps<typeof Stack> & Pick<ListOrganizationsContextValue, "onActionClick" | "onSearchFieldChange" | "labels">>): import("react/jsx-runtime").JSX.Element;
34
- Header(props: Partial<ComponentProps<typeof Stack>>): import("react/jsx-runtime").JSX.Element;
35
- Loader(props: Partial<ComponentProps<typeof Stack>>): import("react/jsx-runtime").JSX.Element;
36
- Content(props: Partial<ComponentProps<typeof Stack> & Pick<ListOrganizationsContextValue, "isLoading">>): import("react/jsx-runtime").JSX.Element;
37
- Tabs<Tabs extends TabData[]>({ className, ...props }: Partial<Omit<TabsProps, "value" | "onChange" | "variant"> & Pick<ListOrganizationsContextValue<Tabs>, "tabs" | "currentTab" | "onTabChange">>): import("react/jsx-runtime").JSX.Element | null;
38
- Table<Tabs extends TabData[]>(props: Partial<ComponentProps<typeof Stack> & Pick<ListOrganizationsContextValue<Tabs>, "labels" | "data" | "rowHref" | "onNavigate" | "onRowActionClick" | "pagination">>): import("react/jsx-runtime").JSX.Element | null;
39
- };
40
- declare const defaultBlocks: {
41
- title: import("react").ReactElement<Partial<import("@mui/material").TypographyOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "p" | "style" | "color" | "left" | "right" | "children" | "className" | "classes" | "border" | "borderTop" | "borderRight" | "borderBottom" | "borderLeft" | "borderColor" | "borderRadius" | "display" | "displayPrint" | "overflow" | "textOverflow" | "visibility" | "whiteSpace" | "flexBasis" | "flexDirection" | "flexWrap" | "justifyContent" | "alignItems" | "alignContent" | "order" | "flex" | "flexGrow" | "flexShrink" | "alignSelf" | "justifyItems" | "justifySelf" | "gap" | "columnGap" | "rowGap" | "gridColumn" | "gridRow" | "gridAutoFlow" | "gridAutoColumns" | "gridAutoRows" | "gridTemplateColumns" | "gridTemplateRows" | "gridTemplateAreas" | "gridArea" | "bgcolor" | "zIndex" | "position" | "top" | "bottom" | "boxShadow" | "width" | "maxWidth" | "minWidth" | "height" | "maxHeight" | "minHeight" | "boxSizing" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "px" | "py" | "margin" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | "marginX" | "marginY" | "marginInline" | "marginInlineStart" | "marginInlineEnd" | "marginBlock" | "marginBlockStart" | "marginBlockEnd" | "padding" | "paddingTop" | "paddingRight" | "paddingBottom" | "paddingLeft" | "paddingX" | "paddingY" | "paddingInline" | "paddingInlineStart" | "paddingInlineEnd" | "paddingBlock" | "paddingBlockStart" | "paddingBlockEnd" | "typography" | "fontFamily" | "fontSize" | "fontStyle" | "fontWeight" | "letterSpacing" | "lineHeight" | "textAlign" | "textTransform" | "sx" | "align" | "gutterBottom" | "noWrap" | "paragraph" | "variant" | "variantMapping"> & {
42
- component?: React.ElementType;
43
- } & Pick<ListOrganizationsContextValue, "listOrganizationsTitle">>, (props: Partial<TypographyProps & Pick<ListOrganizationsContextValue, "listOrganizationsTitle">>) => import("react/jsx-runtime").JSX.Element>;
44
- action: import("react").ReactElement<Partial<import("@mui/material").StackOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import("@mui/material/OverridableComponent").CommonProps | keyof import("@mui/material").StackOwnProps> & Pick<ListOrganizationsContextValue, "labels" | "onSearchFieldChange" | "onActionClick">>, (props: Partial<ComponentProps<typeof Stack> & Pick<ListOrganizationsContextValue, "onActionClick" | "onSearchFieldChange" | "labels">>) => import("react/jsx-runtime").JSX.Element>;
45
- header: import("react").ReactElement<Partial<import("@mui/material").StackOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import("@mui/material/OverridableComponent").CommonProps | keyof import("@mui/material").StackOwnProps>>, (props: Partial<ComponentProps<typeof Stack>>) => import("react/jsx-runtime").JSX.Element>;
46
- content: import("react").ReactElement<Partial<import("@mui/material").StackOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import("@mui/material/OverridableComponent").CommonProps | keyof import("@mui/material").StackOwnProps> & Pick<ListOrganizationsContextValue, "isLoading">>, (props: Partial<ComponentProps<typeof Stack> & Pick<ListOrganizationsContextValue, "isLoading">>) => import("react/jsx-runtime").JSX.Element>;
47
- tabs: import("react").ReactElement<Partial<Omit<TabsProps, "onChange" | "variant" | "value"> & Pick<ListOrganizationsContextValue<TabData[]>, "tabs" | "currentTab" | "onTabChange">>, <Tabs extends TabData[]>({ className, ...props }: Partial<Omit<TabsProps, "value" | "onChange" | "variant"> & Pick<ListOrganizationsContextValue<Tabs>, "tabs" | "currentTab" | "onTabChange">>) => import("react/jsx-runtime").JSX.Element | null>;
48
- table: import("react").ReactElement<Partial<import("@mui/material").StackOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof import("@mui/material/OverridableComponent").CommonProps | keyof import("@mui/material").StackOwnProps> & Pick<ListOrganizationsContextValue<TabData[]>, "data" | "labels" | "onNavigate" | "onRowActionClick" | "rowHref" | "pagination">>, <Tabs extends TabData[]>(props: Partial<ComponentProps<typeof Stack> & Pick<ListOrganizationsContextValue<Tabs>, "labels" | "data" | "rowHref" | "onNavigate" | "onRowActionClick" | "pagination">>) => import("react/jsx-runtime").JSX.Element | null>;
32
+ type ListOrganizationsLabels = {
33
+ emptyStateMessage: string;
34
+ searchFieldPlaceholder: string;
35
+ rowActions?: {
36
+ activate: string;
37
+ deactivate: string;
38
+ };
39
+ headerRow: {
40
+ createdAt: string;
41
+ name: string;
42
+ joinDate: string;
43
+ status: string;
44
+ };
45
+ cellData: {
46
+ statusActive: string;
47
+ statusInactive: string;
48
+ };
49
+ };
50
+ type ListOrganizationsValue<TTabs extends TabData[] = TabData[]> = {
51
+ isLoading?: boolean;
52
+ labels: ListOrganizationsLabels;
53
+ searchValue?: string;
54
+ onSearchFieldChange?: (value: string) => void;
55
+ onSearchSubmit?: () => void;
56
+ onNavigate?: (to: string) => void;
57
+ onItemActivate?: (rowId: ListOrganizationsRowData['id']) => void;
58
+ onItemDeactivate?: (rowId: ListOrganizationsRowData['id']) => void;
59
+ shouldShowDropdownMenu?: (row: ListOrganizationsRowData) => boolean;
60
+ resolveRowAction?: (row: ListOrganizationsRowData) => ListOrganizationsRowActionType[] | undefined;
61
+ statusMatch?: ListOrganizationsStatusMatch;
62
+ pagination?: PaginationProps;
63
+ data: ListOrganizationsRowData[];
64
+ rowHref?: (row: ListOrganizationsRowData) => string;
65
+ tabs?: TTabs;
66
+ currentTab?: TTabs[number]['key'];
67
+ onTabChange?: (tab: TTabs[number]['key']) => void;
68
+ searchChipsTitle?: ReactNode;
69
+ searchChips?: BaseTableSearchChip[];
70
+ onSearchChipDelete?: (chip: BaseTableSearchChip, index: number, event: SyntheticEvent) => void;
71
+ listOrganizationsTitle: ReactNode;
72
+ };
73
+ type ListOrganizationsDefaultBlocks = {
74
+ title: ReactNode;
75
+ action: ReactNode;
76
+ header: ReactNode;
77
+ loader: ReactNode;
78
+ content: ReactNode;
79
+ tabs: ReactNode;
80
+ searchChips: ReactNode;
81
+ table: ReactNode;
82
+ pagination: ReactNode;
83
+ };
84
+ type ListOrganizationsRootPassthroughProps = Omit<StackProps, 'children'>;
85
+ type ListOrganizationsProps<TTabs extends TabData[] = TabData[], CustomBlocks extends Record<string, ReactNode> = {}> = ListOrganizationsRootPassthroughProps & Required<Pick<ListOrganizationsValue<TTabs>, 'labels' | 'data' | 'listOrganizationsTitle'>> & Partial<Pick<ListOrganizationsValue<TTabs>, 'isLoading' | 'searchValue' | 'onSearchFieldChange' | 'onSearchSubmit' | 'onNavigate' | 'onItemActivate' | 'onItemDeactivate' | 'shouldShowDropdownMenu' | 'resolveRowAction' | 'statusMatch' | 'pagination' | 'rowHref' | 'tabs' | 'currentTab' | 'onTabChange' | 'searchChipsTitle' | 'searchChips' | 'onSearchChipDelete'>> & {
86
+ children?: BlocksOverride<ListOrganizationsDefaultBlocks, CustomBlocks>;
87
+ };
88
+ type ListOrganizationsTitleProps = ComponentProps<typeof BaseTable.Header.Title> & {
89
+ listOrganizationsTitle?: ReactNode;
90
+ };
91
+ type ListOrganizationsHeaderProps = ComponentProps<typeof BaseTable.Header>;
92
+ type ListOrganizationsActionProps = ComponentProps<typeof BaseTable.Header.Actions> & Partial<Pick<ListOrganizationsValue, 'labels' | 'searchValue' | 'onSearchFieldChange' | 'onSearchSubmit'>>;
93
+ type ListOrganizationsLoaderProps = ComponentProps<typeof BaseTable.Content.Loader>;
94
+ type ListOrganizationsContentProps = ComponentProps<typeof BaseTable.Content>;
95
+ type ListOrganizationsTabsProps = ComponentProps<typeof BaseTable.Tabs<ListOrganizationsRowData>>;
96
+ type ListOrganizationsBaseTableGridProps = ComponentProps<typeof BaseTable.Content.Grid<ListOrganizationsRowData>>;
97
+ /**
98
+ * Props for `ListOrganizations.Table`. Managed grid props (`columns`, `rows`, `noRowsOverlay`, …) are
99
+ * omitted from the public surface; the empty-state overlay is built from `labels` via `createNoRowsOverlay`.
100
+ */
101
+ type ListOrganizationsTableProps = Omit<ListOrganizationsBaseTableGridProps, 'columns' | 'rows' | 'rowActions' | 'actionColumn' | 'onRowClick' | 'noRowsOverlay'> & Partial<Pick<ListOrganizationsValue, 'labels' | 'data' | 'onItemActivate' | 'onItemDeactivate' | 'shouldShowDropdownMenu' | 'resolveRowAction' | 'statusMatch' | 'rowHref' | 'onNavigate'>>;
102
+ type ListOrganizationsPaginationProps = Partial<Omit<ComponentProps<typeof BaseTable.Pagination>, 'pagination' | 'rows' | 'isLoading'>> & Partial<Pick<ListOrganizationsValue, 'pagination' | 'data' | 'isLoading'>>;
103
+ type ListOrganizationsSearchChipsProps = Partial<ComponentProps<typeof BaseTable.SearchChips>>;
104
+ type ListOrganizationsComponent = {
105
+ <TTabs extends TabData[] = TabData[], CustomBlocks extends Record<string, ReactNode> = {}>(props: ListOrganizationsProps<TTabs, CustomBlocks>): ReactNode;
106
+ Title: (props: ListOrganizationsTitleProps) => ReactNode;
107
+ Action: (props: ListOrganizationsActionProps) => ReactNode;
108
+ Header: (props: ListOrganizationsHeaderProps) => ReactNode;
109
+ Loader: (props: ListOrganizationsLoaderProps) => ReactNode;
110
+ Content: (props: ListOrganizationsContentProps) => ReactNode;
111
+ Tabs: (props: ListOrganizationsTabsProps) => ReactNode;
112
+ SearchChips: (props: ListOrganizationsSearchChipsProps) => ReactNode;
113
+ Table: (props: ListOrganizationsTableProps) => ReactNode;
114
+ Pagination: (props: ListOrganizationsPaginationProps) => ReactNode;
49
115
  };
116
+ declare const ListOrganizations: ListOrganizationsComponent;
50
117
  export default ListOrganizations;
51
118
  //# sourceMappingURL=list-organizations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-organizations.d.ts","sourceRoot":"","sources":["../src/list-organizations.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list-organizations.d.ts","sourceRoot":"","sources":["../src/list-organizations.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=list-organizations.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-organizations.test.d.ts","sourceRoot":"","sources":["../src/list-organizations.test.tsx"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,13 +1,12 @@
1
1
  {
2
2
  "name": "@nodeblocks/frontend-list-organization-block",
3
- "version": "0.2.2",
3
+ "version": "0.3.0",
4
4
  "main": "./dist/index.cjs.js",
5
5
  "module": "./dist/index.esm.js",
6
6
  "types": "./dist/index.d.ts",
7
7
  "exports": {
8
8
  ".": {
9
9
  "types": "./dist/index.d.ts",
10
- "development": "./src/index.ts",
11
10
  "import": "./dist/index.esm.js",
12
11
  "require": "./dist/index.cjs.js",
13
12
  "default": "./dist/index.esm.js"
@@ -17,13 +16,16 @@
17
16
  "dist/"
18
17
  ],
19
18
  "scripts": {
20
- "build": "npm run typecheck && rollup -c",
19
+ "build": "rm -rf dist && npm run typecheck && rollup -c",
20
+ "test": "vitest run",
21
+ "test:watch": "vitest",
21
22
  "watch": "rm -rf dist && cross-env NODE_ENV=development rollup -c --watch",
22
23
  "typecheck": "tsc --noEmit"
23
24
  },
24
25
  "peerDependencies": {
25
26
  "@emotion/react": "^11.14.0",
26
27
  "@emotion/styled": "^11.14.1",
28
+ "@mui/icons-material": "^7.3.5",
27
29
  "@mui/material": "^7.3.5",
28
30
  "react": ">=18 <20",
29
31
  "react-dom": ">=18 <20"
@@ -34,15 +36,19 @@
34
36
  "@rollup/plugin-node-resolve": "^15.3.0",
35
37
  "@rollup/plugin-terser": "^0.4.4",
36
38
  "@rollup/plugin-typescript": "^12.1.1",
39
+ "@testing-library/jest-dom": "^6.9.1",
40
+ "@testing-library/react": "^16.3.2",
37
41
  "@types/luxon": "^3.7.1",
38
42
  "@types/react": "19.2.7",
39
43
  "@types/react-dom": "19.2.3",
44
+ "jsdom": "^27.4.0",
40
45
  "rollup": "^4.55.1",
41
46
  "rollup-plugin-peer-deps-external": "^2.2.4",
42
47
  "rollup-plugin-postcss": "^4.0.2",
43
48
  "rollup-plugin-serve": "^1.1.1",
44
49
  "tslib": "^2.8.1",
45
- "typescript": "^5.7.2"
50
+ "typescript": "^5.7.2",
51
+ "vitest": "^3.2.4"
46
52
  },
47
53
  "dependencies": {
48
54
  "luxon": "^3.7.2"
package/dist/context.d.ts DELETED
@@ -1,51 +0,0 @@
1
- import { PaginationProps } from './list-organizations';
2
- import { ReactNode } from 'react';
3
- import { ListOrganizationsRowData, TabData } from './list-organizations';
4
- export type ListOrganizationsContextValue<Tabs extends TabData[] = TabData[]> = {
5
- /** Loading state for table */
6
- isLoading?: boolean;
7
- /** Table Labels */
8
- labels: {
9
- emptyStateMessage: string;
10
- searchFieldPlaceholder: string;
11
- actions: {
12
- headerAction: ReactNode;
13
- rowAction: ReactNode;
14
- };
15
- headerRow: {
16
- createdAt: string;
17
- name: string;
18
- joinDate: string;
19
- auditStatus: string;
20
- };
21
- cellData: {
22
- statusApproved: ReactNode;
23
- statusRejected: ReactNode;
24
- statusWaitingForReview: ReactNode;
25
- };
26
- };
27
- onSearchFieldChange: (value: string) => void;
28
- /** Callback for navigating to job page */
29
- onNavigate: (to: string) => void;
30
- onActionClick: () => void;
31
- onRowActionClick: (rowData: ListOrganizationsRowData) => void;
32
- /** Callback for pagination display */
33
- pagination?: PaginationProps;
34
- /** Job order list table data */
35
- data: ListOrganizationsRowData[];
36
- /** Callback for linking to show page */
37
- rowHref: (row: ListOrganizationsRowData) => string;
38
- /** Tabs configuration */
39
- tabs: Tabs;
40
- /** Current tab to show as selected */
41
- currentTab?: Tabs[number]['label'];
42
- /** Callback when tab is clicked */
43
- onTabChange?: (tab: Tabs[number]['label']) => void;
44
- listOrganizationsTitle: ReactNode;
45
- };
46
- export declare const keys: readonly ["isLoading", "labels", "onSearchFieldChange", "onNavigate", "onActionClick", "onRowActionClick", "pagination", "data", "rowHref", "tabs", "currentTab", "onTabChange", "listOrganizationsTitle"];
47
- export declare const ListOrganizationsProvider: <Tabs extends TabData[]>({ children, ...value }: ListOrganizationsContextValue<Tabs> & {
48
- children: ReactNode;
49
- }) => import("react/jsx-runtime").JSX.Element;
50
- export declare const useListOrganizationsContext: <Tabs extends TabData[]>() => ListOrganizationsContextValue<Tabs>;
51
- //# sourceMappingURL=context.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAiB,SAAS,EAAc,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEzE,MAAM,MAAM,6BAA6B,CAAC,IAAI,SAAS,OAAO,EAAE,GAAG,OAAO,EAAE,IAAI;IAC9E,8BAA8B;IAC9B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mBAAmB;IACnB,MAAM,EAAE;QACN,iBAAiB,EAAE,MAAM,CAAC;QAC1B,sBAAsB,EAAE,MAAM,CAAC;QAC/B,OAAO,EAAE;YACP,YAAY,EAAE,SAAS,CAAC;YACxB,SAAS,EAAE,SAAS,CAAC;SACtB,CAAC;QACF,SAAS,EAAE;YACT,SAAS,EAAE,MAAM,CAAC;YAClB,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,EAAE,MAAM,CAAC;YACjB,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC;QACF,QAAQ,EAAE;YACR,cAAc,EAAE,SAAS,CAAC;YAC1B,cAAc,EAAE,SAAS,CAAC;YAC1B,sBAAsB,EAAE,SAAS,CAAC;SACnC,CAAC;KACH,CAAC;IACF,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,0CAA0C;IAC1C,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,gBAAgB,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,IAAI,CAAC;IAC9D,sCAAsC;IACtC,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,gCAAgC;IAChC,IAAI,EAAE,wBAAwB,EAAE,CAAC;IACjC,wCAAwC;IACxC,OAAO,EAAE,CAAC,GAAG,EAAE,wBAAwB,KAAK,MAAM,CAAC;IACnD,yBAAyB;IACzB,IAAI,EAAE,IAAI,CAAC;IACX,sCAAsC;IACtC,UAAU,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;IACnC,mCAAmC;IACnC,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACnD,sBAAsB,EAAE,SAAS,CAAC;CACnC,CAAC;AAEF,eAAO,MAAM,IAAI,4MAcyB,CAAC;AAW3C,eAAO,MAAM,yBAAyB,GAAI,IAAI,SAAS,OAAO,EAAE,EAAE,wBAG/D,6BAA6B,CAAC,IAAI,CAAC,GAAG;IACvC,QAAQ,EAAE,SAAS,CAAC;CACrB,4CAEA,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAI,IAAI,SAAS,OAAO,EAAE,0CAOjE,CAAC"}
package/dist/types.d.ts DELETED
@@ -1,16 +0,0 @@
1
- import { ReactNode } from 'react';
2
- export type Blocks<T extends Record<string, ReactNode> = {}> = {
3
- [k: string]: ReactNode;
4
- } & T;
5
- export type BlocksOverride<T extends Record<string, any> = {}> = (inputs: {
6
- defaultBlocks: {
7
- [k: string]: ReactNode;
8
- };
9
- blockOrder?: string[];
10
- } & T) => {
11
- blocks?: {
12
- [k: string]: ReactNode;
13
- };
14
- blockOrder?: string[];
15
- };
16
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,EAAE,IAAI;IAC7D,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACxB,GAAG,CAAC,CAAC;AAEN,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,CAC/D,MAAM,EAAE;IACN,aAAa,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IAC1C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,GAAG,CAAC,KACF;IAAE,MAAM,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC"}