Cats Juice
ca9811792d
feat(component): emoji and icon picker ( #13638 )
...

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Icon Picker added with Emoji and Icon panels, search/filtering, recent
selections, color selection, skin tone options, and smooth group
navigation.
- **Documentation**
- Storybook example added to preview and test the Icon Picker.
- **Chores**
- Bumped icon library dependency to a newer minor version.
- Added emoji data dependency to support the Emoji Picker.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-09-24 07:14:54 +00:00
Cats Juice
ea7678f17e
feat(component): new component to edit icon and name ( #12921 )
...
https://github.com/user-attachments/assets/994f7f58-bcbe-4f26-9142-282ffa5025f9
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
- **New Features**
- Introduced an icon and name editor component, allowing users to select
emoji icons and edit names within a menu popover.
- Added an emoji picker for icon selection, supporting theme adaptation.
- **Style**
- Applied new styles for the icon and name editor, including emoji
picker appearance.
- **Documentation**
- Added Storybook stories to showcase and demonstrate the new icon and
name editor component.
- **Chores**
- Added emoji-related dependencies to support emoji selection features.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-06-26 02:39:16 +00:00
pengx17
6c125d9a38
feat(electron): audio capture permissions and settings ( #11185 )
...
fix AF-2420, AF-2391, AF-2265
2025-03-28 09:12:26 +00:00
CatsJuice
a53e231bad
feat(component, mobile): masonry layout with virtual scroll support, adapted with all docs ( #9208 )
...
### Preview

### Render when scrolling

### api
```tsx
const items = useMemo(() => {
return {
id: '',
height: 100,
children: <div></div>
}
}, [])
<Masonry items={items} />
```
2024-12-20 05:32:17 +00:00
pengx17
4335b0dc79
feat(core): add draghandle to doc page title ( #9079 )
...
fix AF-1846
2024-12-10 02:13:09 +00:00
pengx17
4b6c4ed546
feat(core): doc database properties ( #8520 )
...
fix AF-1454
1. move inline tags editor to components
2. add progress component
3. adjust doc properties styles for desktop
4. subscribe bs database links and display in doc info
5. move update/create dates to doc info
6. a trivial e2e test
<div class='graphite__hidden'>
<div>🎥 Video uploaded on Graphite:</div>
<a href="https://app.graphite.dev/media/video/T2klNLEk0wxLh4NRDzhk/eed266c1-fdac-4f0e-baa9-4aa00d14a2e8.mp4 ">
<img src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/T2klNLEk0wxLh4NRDzhk/eed266c1-fdac-4f0e-baa9-4aa00d14a2e8.mp4 ">
</a>
</div>
<video src="https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/T2klNLEk0wxLh4NRDzhk/eed266c1-fdac-4f0e-baa9-4aa00d14a2e8.mp4 ">10月23日.mp4</video>
2024-10-24 07:38:45 +00:00
EYHN
24e0c5797c
refactor(core): doc property ( #8465 )
...
doc property upgraded to use orm.
The visibility of the property are simplified to three types: `always show`, `always hide`, `hide when empty`, and the default is `always show`.

Added a sidebar view to manage properties

new property ui in workspace settings

Property lists can be collapsed

2024-10-15 10:17:12 +00:00
CatsJuice
b7d05d2078
feat(core): new empty states for doc/collection/tag ( #8197 )
...
AF-1329, AF-1330
2024-09-11 10:48:52 +00:00
CatsJuice
81ab8ac8b3
feat(mobile): pwa and browser theme-color optimization ( #8168 )
...
[AF-1325](https://linear.app/affine-design/issue/AF-1325/优化-pwa-体验 ), [AF-1317](https://linear.app/affine-design/issue/AF-1317/优化:-pwa-的顶部-status-bar-颜色应与背景保持一致 ), [AF-1318](https://linear.app/affine-design/issue/AF-1318/优化:pwa-的底部应当有符合设备安全高度的padding ), [AF-1321](https://linear.app/affine-design/issue/AF-1321/更新一下-fail-的-pwa-icon )
- New `<SafeArea />` ui component
- New `useThemeColorV1` / `useThemeColorV2` hook:
- to modify `<meta name="theme-color" />` with given theme key
2024-09-11 02:20:59 +00:00
CatsJuice
f1bb1fc9b8
feat(mobile): search page ui ( #8012 )
...
feat(mobile): search page ui
fix(core): quick search tags performance issue
2024-08-29 09:05:23 +00:00
JimmFly
03c4d56a91
feat(component): add slider ui component ( #7879 )
...

2024-08-22 04:24:37 +00:00
JimmFly
4916eea24f
feat(core): new share menu ( #7838 )
...
close AF-1224 AF-1216

2024-08-19 05:51:05 +00:00
EYHN
54da85ec62
feat(core): init organize ( #7456 )
2024-07-26 04:35:32 +00:00
CatsJuice
827c952e9f
refactor(component): new Radio component ( #6910 )
...
# New `RadioGroup` component to replace `RadioButton`

### what's new
- [x] Change the API
- [x] More customizable options
- [x] Indicator animation
- [x] Dynamic width support(responsive)
- [x] Storybook
- [x] JSDoc
2024-06-27 06:04:19 +00:00
forehalo
7b3673ae82
chore: assign todos ( #7297 )
2024-06-21 07:54:14 +00:00
CatsJuice
98e35384a6
feat(component): helper function observeResize to observe size change via global ResizeObserver ( #7241 )
...
```ts
import { observeResize } from "@affine/component";
useEffect(() => {
const dispose = observeResize(element entry => {
console.log(entry.contentRect);
});
return () => dispose();
}, []);
```
2024-06-19 09:04:56 +00:00
EYHN
06fda3b62c
feat(infra): framework
2024-04-17 15:09:09 +08:00
CatsJuice
a4cd51e503
refactor(component): new notification center implemented with sonner ( #6416 )
...
The Notification has been reimplemented using sooner, no longer relies on jotai, and new story has been added.
- Before
```ts
import { pushNotificationAtom } from '@affine/component/notification-center';
import { useSetAtom } from 'jotai';
export const Component = () => {
const pushNotification = useSetAtom(pushNotificationAtom);
pushNotification({ ... });
}
```
- After
```ts
import { notify } from "@affine/component";
export const Component = () => {
notify({ ... });
}
```
2024-04-02 03:18:57 +00:00
Peng Xiao
f41b7d7e71
feat(component): react wrapper for blocksuite editor ( #5606 )
...
A React wrapper for blocksuite editor from title/meta/doc/edgless fragments.
This PR only **clones** the `AffineEditorContainer`'s existing behavior and make it easier for extension in affine later.
fix TOV-315
### Some core issues:
A customized version of `createComponent` from `@lit/react`. The [existing and solutions in the community](https://github.com/lit/lit/issues/4435 ) does not work well in our case.
Alternatively in this PR the approach we have is to create web component instances in React lifecycle and then append them to DOM. However this make it hard to wrap the exported Lit component's using React and therefore we will have an additional wrapper tag for the wrapped web component.
To mitigate the migration issue on using React instead of Lit listed on last day, we now use [a proxy to mimic the wrapped React component](https://github.com/toeverything/AFFiNE/pull/5606/files#diff-5b7f0ae7b52a08739d50e78e9ec803c26ff3d3e5437581c692add0de12d3ede5R142-R183 ) into an `AffineEditorContainer` instance.
2024-01-22 08:25:29 +00:00
Cats Juice
943ede4ffd
feat(component): new inline-edit component ( #5517 )
...
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/toeverything/AFFiNE/assets/39363750/6dad59f0-5e63-4c25-a81c-dff397da1d34 ">
<img height="100" alt="" src="https://github.com/toeverything/AFFiNE/assets/39363750/7c30d7b2-55c9-49eb-82e7-a0882f2e0493 ">
</picture>
2024-01-18 03:33:47 +00:00
Cats Juice
2db3c933fa
refactor(component): move date-picker to ui, add story, support responsive ( #5468 )
...
- move to `component/ui`
- add `AFFiNEDatePicker` & `BlocksuiteDatePicker` story
- inline mode support
- responsive support
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/toeverything/AFFiNE/assets/39363750/320bef49-380f-40a2-b3b2-4b74dd2d8da4 ">
<img alt="" src="https://github.com/toeverything/AFFiNE/assets/39363750/fc9e7808-02fe-49a1-aa78-aea254fb1f9d ">
</picture>
2024-01-17 09:16:46 +00:00
Peng Xiao
ed8e526f71
fix(core): remove duplicate loading component ( #5168 )
2023-12-07 15:34:10 +00:00
Cats Juice
0abadbe7bb
refactor(component): migrate design components ( #5000 )
...
```[tasklist]
### Tasks
- [x] Migrate components from [design](https://github.com/toeverything/design )
- [x] Replace all imports from `@toeverything/components`
- [x] Clean up `@toeverything/components` dependencies
- [x] Storybook
```
### Influence
Here are all the components that are influenced by `@toeverything/components`
- `@affine/component`
- App update `Button` `Tooltip`
- App sidebar header `IconButton`, `Tooltip`
- Back `Button`
- Auth
- Change email page save `Button`
- Change password page all `Button`s (Save, Later, Open)
- Confirm change email `Button`
- Set password page `Button`
- Sign in success page `Button`
- Sign up page `Button`
- Auth `Modal`
- Workspace card `Avatar`, `Divider`, `Tooltip`, `IconButton`
- Share
- Disable shared public link `Modal`
- Import page `IconButton`, `Tooltip`
- Accept invite page `Avatar`, `Button`
- Invite member `Modal`
- 404 Page `Avatar`, `Button`, `IconButton`, `Tooltip`
- Notification center `IconButton`
- Page list
- operation cell `IconButton`, `Menu`, `ConfirmModal`, `Tooltip`
- tags more `Menu`
- favorite `IconButton`, `Tooltip`
- new page dropdown `Menu`
- filter `Menu`, `Button`, `IconButton`
- Page operation `Menu`
- export `MenuItem`
- move to trash `MenuItem`, `ConfirmModal`
- Workspace header filter `Menu`, `Button`
- Collection bar `Button`, `Tooltip` (*⚠️ seems not used*)
- Collection operation `Menu`, `MenuItem`
- Create collection `Modal`, `Button`
- Edit collection `Modal`, `Button`
- Page mode filter `Menu`
- Page mode `Button`, `Menu`
- Setting modal
- storage usage progress `Button`, `Tooltip`
- On boarding tour `Modal`
- `@affine/core`
- Bookmark `Menu`
- Affine error boundary `Button`
- After sign in send email `Button`
- After sign up send email `Button`
- Send email `Button`
- Sign in `Button`
- Subscription redirect `Loading`, `Button`
- Setting `Modal`
- User plan button `Tooltip`
- Members `Avatar`, `Button`, `IconButton`, `Loading`, `Tooltip`, `Menu`
- Profile `Button`, `Avatar`
- Workspace
- publish panel `Button`, `Tooltip`
- export panel `Button`
- storage panel `Button`, `Tooltip`
- delete `ConfirmModal`
- Language `Menu`
- Account setting `Avatar`, `Button`
- Date format setting `Menu`
- Billing `Button`, `IconButton`, `Loading`
- Payment plans `Button`, `ConfirmModal`, `Modal`, `Tooltip`
- Create workspace `Modal`, `ConfirmModal`, `Button`
- Payment disabled `ConfirmModal`
- Share/Export `Menu`, `Button`, `Divider`
- Sign out `ConfirmModal`
- Temp disable affine cloud `Modal`
- Page detail operation `Menu`
- Blocksuite mode switch `Tooltip`
- Login card `Avatar`
- Help island `Tooltip`
- `plugin`
- copilot
- hello world
- image preview
- outline
2023-12-04 08:32:12 +00:00
Cats Juice
57d42bf491
refactor(core): remove all MUI related components and utilities ( #4941 )
2023-11-20 10:51:28 +08:00
3720
ef8024c657
feat: new collections ( #4530 )
...
Co-authored-by: Peng Xiao <pengxiao@outlook.com >
2023-10-27 09:06:59 +00:00
Peng Xiao
817463c40e
feat(component): checkbox ( #4665 )
2023-10-20 03:46:44 +00:00
Joooye_34
bed9310519
refactor(infra): directory structure ( #4615 )
2023-10-18 15:30:08 +00:00