Skip to content

Commit 7593ba3

Browse files
Improve compilation speed (and potentially bundle size) (#801)
* Ensure sideEffects: false to enable additional tree shaking * Use granular imports of Mantine specific components * Ensure css is marked as sideEffect (mirror mantine config) * Made imports more specific in UI libs --------- Co-authored-by: Matthew Lipski <[email protected]>
1 parent 4c1e525 commit 7593ba3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+424
-271
lines changed

packages/ariakit/src/input/Form.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
import * as Ariakit from "@ariakit/react";
2-
import { assertEmpty } from "@blocknote/core";
1+
import { FormProvider as AriakitFormProvider } from "@ariakit/react";
32

3+
import { assertEmpty } from "@blocknote/core";
44
import { ComponentProps } from "@blocknote/react";
55

66
export const Form = (props: ComponentProps["Generic"]["Form"]["Root"]) => {
77
const { children, ...rest } = props;
88

99
assertEmpty(rest);
1010

11-
return <Ariakit.FormProvider>{children}</Ariakit.FormProvider>;
11+
return <AriakitFormProvider>{children}</AriakitFormProvider>;
1212
};

packages/ariakit/src/input/TextInput.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
import * as Ariakit from "@ariakit/react";
1+
import {
2+
FormInput as AriakitFormInput,
3+
FormLabel as AriakitFormLabel,
4+
} from "@ariakit/react";
25

36
import { assertEmpty, mergeCSSClasses } from "@blocknote/core";
47
import { ComponentProps } from "@blocknote/react";
@@ -26,12 +29,10 @@ export const TextInput = forwardRef<
2629

2730
return (
2831
<>
29-
{props.label && (
30-
<Ariakit.FormLabel name={name}>{label}</Ariakit.FormLabel>
31-
)}
32+
{props.label && <AriakitFormLabel name={name}>{label}</AriakitFormLabel>}
3233
<div className="bn-ak-input-wrapper">
3334
{icon}
34-
<Ariakit.FormInput
35+
<AriakitFormInput
3536
className={mergeCSSClasses("bn-ak-input", className || "")}
3637
ref={ref}
3738
name={name}

packages/ariakit/src/menu/Menu.tsx

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,13 @@
1-
import * as Ariakit from "@ariakit/react";
1+
import {
2+
CheckboxCheck as AriakitCheckboxCheck,
3+
Menu as AriakitMenu,
4+
MenuButton as AriakitMenuButton,
5+
MenuButtonArrow as AriakitMenuButtonArrow,
6+
MenuGroupLabel as AriakitMenuGroupLabel,
7+
MenuItem as AriakitMenuItem,
8+
MenuProvider as AriakitMenuProvider,
9+
MenuSeparator as AriakitMenuSeparator,
10+
} from "@ariakit/react";
211

312
import { assertEmpty, mergeCSSClasses } from "@blocknote/core";
413
import { ComponentProps } from "@blocknote/react";
@@ -16,12 +25,12 @@ export const Menu = (props: ComponentProps["Generic"]["Menu"]["Root"]) => {
1625
assertEmpty(rest);
1726

1827
return (
19-
<Ariakit.MenuProvider
28+
<AriakitMenuProvider
2029
placement={position}
2130
setOpen={onOpenChange}
2231
virtualFocus={true}>
2332
{children}
24-
</Ariakit.MenuProvider>
33+
</AriakitMenuProvider>
2534
);
2635
};
2736

@@ -39,12 +48,12 @@ export const MenuDropdown = forwardRef<
3948
assertEmpty(rest);
4049

4150
return (
42-
<Ariakit.Menu
51+
<AriakitMenu
4352
unmountOnHide={true}
4453
className={mergeCSSClasses("bn-ak-menu", className || "")}
4554
ref={ref}>
4655
{children}
47-
</Ariakit.Menu>
56+
</AriakitMenu>
4857
);
4958
});
5059

@@ -59,27 +68,27 @@ export const MenuItem = forwardRef<
5968

6069
if (subTrigger) {
6170
return (
62-
<Ariakit.MenuButton
63-
render={<Ariakit.MenuItem />}
71+
<AriakitMenuButton
72+
render={<AriakitMenuItem />}
6473
className={mergeCSSClasses("bn-ak-menu-item", className || "")}
6574
ref={ref}
6675
onClick={onClick}>
6776
{icon}
6877
{children}
69-
<Ariakit.MenuButtonArrow />
70-
{checked !== undefined && <Ariakit.CheckboxCheck checked={checked} />}
71-
</Ariakit.MenuButton>
78+
<AriakitMenuButtonArrow />
79+
{checked !== undefined && <AriakitCheckboxCheck checked={checked} />}
80+
</AriakitMenuButton>
7281
);
7382
}
7483
return (
75-
<Ariakit.MenuItem
84+
<AriakitMenuItem
7685
className={mergeCSSClasses("bn-ak-menu-item", className || "")}
7786
ref={ref}
7887
onClick={onClick}>
7988
{icon}
8089
{children}
81-
{checked !== undefined && <Ariakit.CheckboxCheck checked={checked} />}
82-
</Ariakit.MenuItem>
90+
{checked !== undefined && <AriakitCheckboxCheck checked={checked} />}
91+
</AriakitMenuItem>
8392
);
8493
});
8594

@@ -92,11 +101,11 @@ export const MenuLabel = forwardRef<
92101
assertEmpty(rest);
93102

94103
return (
95-
<Ariakit.MenuGroupLabel
104+
<AriakitMenuGroupLabel
96105
className={mergeCSSClasses("bn-ak-group-label", className || "")}
97106
ref={ref}>
98107
{children}
99-
</Ariakit.MenuGroupLabel>
108+
</AriakitMenuGroupLabel>
100109
);
101110
});
102111

@@ -111,7 +120,7 @@ export const MenuTrigger = (
111120
return children;
112121
}
113122

114-
return <Ariakit.MenuButton render={children as any}></Ariakit.MenuButton>;
123+
return <AriakitMenuButton render={children as any}></AriakitMenuButton>;
115124
};
116125

117126
export const MenuDivider = forwardRef<
@@ -123,7 +132,7 @@ export const MenuDivider = forwardRef<
123132
assertEmpty(rest);
124133

125134
return (
126-
<Ariakit.MenuSeparator
135+
<AriakitMenuSeparator
127136
className={mergeCSSClasses("bn-ak-separator", className || "")}
128137
ref={ref}
129138
/>

packages/ariakit/src/panel/Panel.tsx

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
import * as Ariakit from "@ariakit/react";
1+
import {
2+
Tab as AriakitTab,
3+
TabList as AriakitTabList,
4+
TabPanel as AriakitTabPanel,
5+
TabProvider as AriakitTabProvider,
6+
} from "@ariakit/react";
27

38
import { assertEmpty, mergeCSSClasses } from "@blocknote/core";
49
import { ComponentProps } from "@blocknote/react";
@@ -17,14 +22,13 @@ export const Panel = forwardRef<
1722
loading, // TODO: implement loading
1823
...rest
1924
} = props;
20-
2125
assertEmpty(rest);
2226

2327
return (
2428
<div
2529
className={mergeCSSClasses("bn-ak-wrapper", className || "")}
2630
ref={ref}>
27-
<Ariakit.TabProvider
31+
<AriakitTabProvider
2832
defaultSelectedId={defaultOpenTab}
2933
selectedId={openTab}
3034
setActiveId={(activeId) => {
@@ -34,22 +38,22 @@ export const Panel = forwardRef<
3438
}}>
3539
{/*{loading && <LoadingOverlay visible={loading} />}*/}
3640

37-
<Ariakit.TabList className={"bn-ak-tab-list"}>
41+
<AriakitTabList className={"bn-ak-tab-list"}>
3842
{tabs.map((tab) => (
39-
<Ariakit.Tab className={"bn-ak-tab"} id={tab.name} key={tab.name}>
43+
<AriakitTab className={"bn-ak-tab"} id={tab.name} key={tab.name}>
4044
{tab.name}
41-
</Ariakit.Tab>
45+
</AriakitTab>
4246
))}
43-
</Ariakit.TabList>
47+
</AriakitTabList>
4448

4549
<div className={"bn-ak-panels"}>
4650
{tabs.map((tab) => (
47-
<Ariakit.TabPanel tabId={tab.name} key={tab.name}>
51+
<AriakitTabPanel tabId={tab.name} key={tab.name}>
4852
{tab.tabPanel}
49-
</Ariakit.TabPanel>
53+
</AriakitTabPanel>
5054
))}
5155
</div>
52-
</Ariakit.TabProvider>
56+
</AriakitTabProvider>
5357
</div>
5458
);
5559
});

packages/ariakit/src/panel/PanelButton.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import * as Ariakit from "@ariakit/react";
1+
import { Button as AriakitButton } from "@ariakit/react";
22

33
import { assertEmpty, mergeCSSClasses } from "@blocknote/core";
44
import { ComponentProps } from "@blocknote/react";
@@ -13,12 +13,12 @@ export const PanelButton = forwardRef<
1313
assertEmpty(rest);
1414

1515
return (
16-
<Ariakit.Button
16+
<AriakitButton
1717
className={mergeCSSClasses("bn-ak-button", className || "")}
1818
onClick={onClick}
1919
aria-label={label}
2020
ref={ref}>
2121
{children}
22-
</Ariakit.Button>
22+
</AriakitButton>
2323
);
2424
});

packages/ariakit/src/panel/PanelFileInput.tsx

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1-
import * as Ariakit from "@ariakit/react";
2-
import { assertEmpty } from "@blocknote/core";
1+
import {
2+
FormInput as AriakitFormInput,
3+
FormProvider as AriakitFormProvider,
4+
} from "@ariakit/react";
35

6+
import { assertEmpty } from "@blocknote/core";
47
import { ComponentProps } from "@blocknote/react";
58
import { forwardRef } from "react";
69

@@ -13,8 +16,8 @@ export const PanelFileInput = forwardRef<
1316
assertEmpty(rest);
1417

1518
return (
16-
<Ariakit.FormProvider>
17-
<Ariakit.FormInput
19+
<AriakitFormProvider>
20+
<AriakitFormInput
1821
className={className}
1922
ref={ref}
2023
name={"panel-input"}
@@ -24,6 +27,6 @@ export const PanelFileInput = forwardRef<
2427
onChange={async (e) => onChange?.(e.target.files![0])}
2528
placeholder={placeholder}
2629
/>
27-
</Ariakit.FormProvider>
30+
</AriakitFormProvider>
2831
);
2932
});

packages/ariakit/src/panel/PanelTextInput.tsx

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
import * as Ariakit from "@ariakit/react";
1+
import {
2+
FormInput as AriakitFormInput,
3+
FormProvider as AriakitFormProvider,
4+
} from "@ariakit/react";
25

36
import { assertEmpty, mergeCSSClasses } from "@blocknote/core";
47
import { ComponentProps } from "@blocknote/react";
@@ -13,8 +16,8 @@ export const PanelTextInput = forwardRef<
1316
assertEmpty(rest);
1417

1518
return (
16-
<Ariakit.FormProvider>
17-
<Ariakit.FormInput
19+
<AriakitFormProvider>
20+
<AriakitFormInput
1821
className={mergeCSSClasses("bn-ak-input", className || "")}
1922
name={"panel-input"}
2023
value={value}
@@ -24,6 +27,6 @@ export const PanelTextInput = forwardRef<
2427
data-test={"embed-input"}
2528
ref={ref}
2629
/>
27-
</Ariakit.FormProvider>
30+
</AriakitFormProvider>
2831
);
2932
});

packages/ariakit/src/popover/Popover.tsx

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1-
import * as Ariakit from "@ariakit/react";
1+
import {
2+
Popover as AriakitPopover,
3+
PopoverDisclosure as AriakitPopoverDisclosure,
4+
PopoverProvider as AriakitPopoverProvider,
5+
} from "@ariakit/react";
26

37
import { assertEmpty, mergeCSSClasses } from "@blocknote/core";
48
import { ComponentProps } from "@blocknote/react";
@@ -12,7 +16,7 @@ export const PopoverTrigger = forwardRef<
1216

1317
assertEmpty(rest);
1418

15-
return <Ariakit.PopoverDisclosure render={children as any} ref={ref} />;
19+
return <AriakitPopoverDisclosure render={children as any} ref={ref} />;
1620
});
1721

1822
export const PopoverContent = forwardRef<
@@ -24,11 +28,11 @@ export const PopoverContent = forwardRef<
2428
assertEmpty(rest);
2529

2630
return (
27-
<Ariakit.Popover
31+
<AriakitPopover
2832
className={mergeCSSClasses("bn-ak-popover", className || "")}
2933
ref={ref}>
3034
{children}
31-
</Ariakit.Popover>
35+
</AriakitPopover>
3236
);
3337
});
3438

@@ -40,8 +44,8 @@ export const Popover = (
4044
assertEmpty(rest);
4145

4246
return (
43-
<Ariakit.PopoverProvider open={opened} placement={position}>
47+
<AriakitPopoverProvider open={opened} placement={position}>
4448
{children}
45-
</Ariakit.PopoverProvider>
49+
</AriakitPopoverProvider>
4650
);
4751
};

packages/ariakit/src/sideMenu/SideMenu.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import * as Ariakit from "@ariakit/react";
2-
import { assertEmpty } from "@blocknote/core";
1+
import { Group as AriakitGroup } from "@ariakit/react";
32

3+
import { assertEmpty } from "@blocknote/core";
44
import { ComponentProps } from "@blocknote/react";
55
import { forwardRef } from "react";
66

@@ -13,8 +13,8 @@ export const SideMenu = forwardRef<
1313
assertEmpty(rest, false);
1414

1515
return (
16-
<Ariakit.Group className={className} ref={ref} {...rest}>
16+
<AriakitGroup className={className} ref={ref} {...rest}>
1717
{children}
18-
</Ariakit.Group>
18+
</AriakitGroup>
1919
);
2020
});

packages/ariakit/src/sideMenu/SideMenuButton.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import * as Ariakit from "@ariakit/react";
1+
import { Button as AriakitButton } from "@ariakit/react";
22

33
import { assertEmpty, mergeCSSClasses } from "@blocknote/core";
44
import { ComponentProps } from "@blocknote/react";
@@ -25,7 +25,7 @@ export const SideMenuButton = forwardRef<
2525
assertEmpty(rest, false);
2626

2727
return (
28-
<Ariakit.Button
28+
<AriakitButton
2929
onDragEnd={onDragEnd}
3030
onDragStart={onDragStart}
3131
draggable={draggable}
@@ -39,6 +39,6 @@ export const SideMenuButton = forwardRef<
3939
{...rest}>
4040
{icon}
4141
{children}
42-
</Ariakit.Button>
42+
</AriakitButton>
4343
);
4444
});

0 commit comments

Comments
 (0)