Commit Graph

62 Commits

Author SHA1 Message Date
Maofeng ffda0b9099 feat(layout): add configurable application layout 2026-09-30 01:30:47 +08:00
Maofeng 8b880a19e2 feat(docs): colocate localized package sandboxes 2026-09-29 22:13:17 +08:00
Maofeng e34675a931 docs(appearance): document preference hooks 2026-09-29 22:12:56 +08:00
Maofeng 642cb71b93 refactor(appearance): organize components and hooks 2026-09-29 22:12:40 +08:00
Maofeng 352db2c4c0 docs(appearance): document control variants 2026-09-29 21:29:49 +08:00
Maofeng 983ebead02 feat(appearance): expand preference controls 2026-09-29 21:29:38 +08:00
Maofeng 4710a56242 docs(appearance): document display preferences 2026-09-29 20:58:46 +08:00
Maofeng aae02d1502 feat(appearance): add accessible display preferences 2026-09-29 20:58:35 +08:00
Maofeng 75d8cbbfc3 feat(appearance): add display preference models 2026-09-29 20:57:59 +08:00
Maofeng 68f142dfa3 feat(docs): group package catalog 2026-09-29 20:56:44 +08:00
Maofeng 24b32ea5cc feat(cropper): expand image export API 2026-09-29 17:46:16 +08:00
Maofeng f56397fb97 feat(docs): discover package metadata 2026-09-29 17:20:25 +08:00
Maofeng 844acad316 docs(cropper): add bilingual usage guides 2026-09-29 17:09:39 +08:00
Maofeng 23e0867027 feat(cropper): add image cropping primitives 2026-09-29 17:09:26 +08:00
Maofeng acbc62463e docs(ui): explain shadcn adaptations 2026-09-29 17:08:23 +08:00
Maofeng ffe180f482 refactor(workspace): consume revised color tokens 2026-09-29 17:08:16 +08:00
Maofeng 91e010cff7 refactor(appearance): adopt accent and highlight tokens 2026-09-29 17:08:08 +08:00
Maofeng d5cec8342d refactor(ui): clarify semantic color roles 2026-09-29 17:08:03 +08:00
Maofeng d23deca0e7 feat(page): add composable page primitives 2026-09-28 23:13:49 +08:00
Maofeng 0ec968c344 feat(overlays): add managed overlay package 2026-09-28 23:13:44 +08:00
Maofeng bca874fd30 feat(ui): expose typed overlay handles 2026-09-28 23:13:39 +08:00
Maofeng 1353dc3145 docs(record): add bilingual usage guides 2026-09-28 17:24:14 +08:00
Maofeng d3de7cc172 test(record): cover providers fields and iteration 2026-09-28 17:24:08 +08:00
Maofeng 3eb0246c40 feat(record): add generic record context APIs 2026-09-28 17:23:59 +08:00
Maofeng 91cfb3d068 refactor(ui): use relative internal imports 2026-09-21 17:32:06 +08:00
Maofeng 4c61e79d0d docs(ui): expand bilingual component guides 2026-09-21 17:27:45 +08:00
Maofeng fb985edb20 feat(docs): add appearance sandbox example 2026-09-21 17:09:54 +08:00
Maofeng 6711401f5f docs(appearance): add bilingual package guides 2026-09-21 16:05:19 +08:00
Maofeng e2dbbcb884 feat(appearance): add composable theme package 2026-09-21 16:05:05 +08:00
Maofeng 71c416caab fix(ui): render select icon as child 2026-09-20 18:32:14 +08:00
Maofeng eebf29c3d5 docs(media): add standalone package guide 2026-09-20 16:44:22 +08:00
Maofeng c519d4e74b feat(media): extract workspace package 2026-09-20 16:44:15 +08:00
Maofeng a57fdbe7c6 fix(search): restore history after hydration 2026-09-20 16:22:21 +08:00
Maofeng 2dbf51ba24 chore(format): normalize repository files 2026-09-20 15:54:12 +08:00
Maofeng dc80bd8ae0 feat(docs): add bilingual package documentation site 2026-09-20 15:53:54 +08:00
Maofeng a03b04ed3f fix(lint): resolve remaining static analysis warnings 2026-09-20 15:53:02 +08:00
Maofeng 6cd981d6a2 feat(i18n): standardize bilingual catalogs and tooling 2026-09-20 15:52:48 +08:00
Maofeng ea00a71112 refactor(icons): migrate workspace to Icones 2026-09-20 15:52:22 +08:00
Maofeng 1fc56b6982 refactor(search): extract search into workspace package 2026-09-20 15:52:09 +08:00
Maofeng e02c3dceb5 feat(preferences): add extensible preference store 2026-09-20 15:52:03 +08:00
Maofeng 87df34a8ab feat(blocks): add Mini Program customer service workspace
Add a reusable one-to-one chat workspace modeled on WeChat Mini Program customer-service messages, covering text, image, link, and Mini Program page payloads. Include conversation search, message history, responsive navigation, media resolution, Unicode emoji selection, Lexical plain-text composition, attachments, localized copy, and tests for rendering and send behavior.
2026-08-08 21:14:26 +08:00
Maofeng 2c05cfa86d refactor(blocks): refine the responsive application shell
Present chat threads in a drawer on mobile and a popover on larger screens, with shared responsive triggers and automatic close after selection. Align header action icon sizing and tighten navigation spacing for the updated shell.
2026-08-08 21:14:04 +08:00
Maofeng 5fced3817c feat(blocks): add reusable theme toggle button
Expose a shared appearance control that resolves system color preference, reacts to preference changes, and toggles between light and dark modes. Disable interaction until client mounting to keep the initial rendered state stable.
2026-08-08 21:13:54 +08:00
Maofeng c64864b3b5 feat(lexical): support styling declarative actions
Accept className on action declarations and carry it through compiled actions, default toolbar controls, menu items, custom renderers, and custom controls. Keep preset action ordering consistent across toolbar and bubble placements, with coverage for default and custom rendering paths.
2026-08-08 21:13:49 +08:00
Maofeng bc84912e48 fix(ui): preserve popover arrows around scrollable content
Keep the anchored surface overflow-visible so the arrow is not clipped. Move height-constrained scrolling into an inner viewport and expose viewportClassName for content-specific styling.
2026-08-08 21:13:43 +08:00
Maofeng 94506aa349 feat(ui): expose advanced popover positioning
Forward explicit anchors and position-method selection through PopoverContent so consumers can position popovers against virtual or custom anchors without bypassing the shared primitive.
2026-07-31 16:06:44 +08:00
Maofeng d364e5e39f feat(icons): extract shared workspace icon package
Create @workspace/icons as the single Hugeicons-backed Icon primitive and icon-data export surface, with size presets and inherited current color.

Migrate blocks and the web app to the shared package, remove duplicated direct Hugeicons dependencies and the blocks-local Icon component, and update the lockfile.
2026-07-31 16:06:39 +08:00
Maofeng 38d2defeb1 feat(blocks): add context-driven global search
Add a command-style global search dialog with asynchronous cancellation, paginated grouped results, highlighting, loading and error states, recent query history, and a configurable Mod+K shortcut.

Make search sources and result actions host-defined through SearchProvider and SearchAdapter, so the block has no route, database, or HTTP dependency. Export the block, register i18n discovery, and cover adapter pagination and selection behavior.
2026-07-31 16:06:29 +08:00
Maofeng 324d8c0244 feat(blocks): add context-driven media library
Provide a reusable image and video library with folders, filters, search, pagination, favorites, upload targets, detail preview, contextual actions, and single or multi-select picker flows.

Keep persistence, upload, storage, and reference resolution behind MediaProvider's MediaAdapter; export the block and register its English and Simplified Chinese catalogs. Include adapter-bound UI coverage.
2026-07-31 16:04:15 +08:00
Maofeng 263b400860 feat(lexical): support local image data URLs
Allow the image insertion dialog to select a local image and embed it as a Base64 data URL, while retaining URL-based insertion and leaving video URL-only.

Extract shared abortable FileReader handling for clipboard uploads and dialog selection; add English and Simplified Chinese messages plus an interaction test covering file selection through insertion.
2026-07-31 16:03:54 +08:00