Commit Graph

60 Commits

Author SHA1 Message Date
Maofeng 93373adb9a feat(docs): enhance code presentation 2026-09-28 16:00:01 +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 a9d6856ab8 feat(docs): add MDX sandbox previews 2026-09-21 17:09:44 +08:00
Maofeng b26c8886cf chore(web): resolve source alias from ESM config 2026-09-21 16:18:33 +08:00
Maofeng 3e671cce47 test(web): cover select disclosure icon 2026-09-21 16:18:29 +08:00
Maofeng 4d3892a5ea fix(docs): stabilize shared layout rendering 2026-09-21 16:17:06 +08:00
Maofeng df5bbc739c refactor(docs): share site header and footer 2026-09-21 16:12:12 +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 a6f5f0b649 docs: rewrite project readme 2026-09-20 16:49:28 +08:00
Maofeng 02df33ce6b style(docs): update homepage branding 2026-09-20 16:44:27 +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 2a6284d1b0 chore(docs): add Cloudflare deployment 2026-09-20 16:29:08 +08:00
Maofeng 7d57c9e7ae chore(docs): remove redundant workspace files 2026-09-20 16:23:41 +08:00
Maofeng 9635de56e8 feat(docs): add static generation and search indexes 2026-09-20 16:23:32 +08:00
Maofeng a57fdbe7c6 fix(search): restore history after hydration 2026-09-20 16:22:21 +08:00
Maofeng f442c07dbf chore(zed): update workspace editor settings 2026-09-20 15:58:00 +08:00
Maofeng 93e7941dc4 fix(docs): include section in article breadcrumb 2026-09-20 15:57:47 +08:00
Maofeng e70ad64b19 fix(docs): adapt code blocks to color scheme 2026-09-20 15:57:47 +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 60f6f1fb1a chore(repo): add shared editor defaults 2026-09-20 15:53:07 +08:00
Maofeng a03b04ed3f fix(lint): resolve remaining static analysis warnings 2026-09-20 15:53:02 +08:00
Maofeng f246d81088 feat(web): add dashboard composer preview 2026-09-20 15:52:52 +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 2043c7d777 chore(web): move the development server to port 7100
Use port 7100 for the local Vite server while retaining external host access.
2026-08-08 21:14:37 +08:00
Maofeng 6cd7d436ef feat(web): add login and customer chat demos
Add a responsive login screen using the shared appearance controls and a browser-only customer-service simulator for the chat workspace. Register both routes and include mock media resolution, message sending, and earlier-history loading for interactive verification.
2026-08-08 21:14:31 +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
Maofeng cbf5ee784f feat(web): integrate localized Lexical editor demo
Register Lexical's English and Simplified Chinese catalogs in the application loader, import its global styles, and add the workspace dependency with its resolved lockfile graph.\n\nReplace the dashboard placeholder with a controlled rich-text editor demo that composes default actions, fixed and bubble toolbars, draggable blocks, generated HTML output, and reset behavior.
2026-07-31 15:09:02 +08:00
Maofeng 0d817537be feat(lexical): add declarative rich text editor
Introduce @workspace/lexical with composable actions, toolbars, embeds, rich-text nodes, media uploads, selection utilities, HTML serialization, and theme styling.\n\nLocalize built-in controls through MessageDescriptor catalogs for English and Simplified Chinese, while providing an English I18nProvider fallback for standalone editor use. Include focused unit coverage for actions, controls, serialization, plugins, public API, and catalogs.
2026-07-31 15:07:09 +08:00
Maofeng 1fe9c1021a refactor(blocks): consume runtime localized text
Replace the blocks-local LocalizedText implementation with the shared i18n runtime primitive in navigation and appearance blocks.\n\nRemove the former blocks component entry point as requested; consumers must now import LocalizedText from @workspace/i18n.
2026-07-31 15:07:03 +08:00
Maofeng 8d4d389982 feat(i18n): expose localized text runtime primitive
Add a DOM-free LocalizedText component for MessageDescriptor values and export it from the runtime entry point.\n\nAlso expose provider detection so packages with a standalone fallback provider can avoid invoking Lingui hooks outside a provider. Cover localized rendering without an extra wrapper node.
2026-07-31 15:06:58 +08:00
Maofeng d36028d67b build: migrate workspace tooling to Oxc
Replace Turbo task orchestration with Bun workspace scripts and remove the Prettier configuration. Add Oxlint and Oxfmt project configuration, including Tailwind class sorting, generated-file exclusions, and unified check/fix commands. Apply the new formatter and resolve Hook dependency errors surfaced by Oxlint.
2026-07-30 15:50:51 +08:00
Maofeng 8cf3a1f03a feat(web): integrate localized application catalogs
- compose app, UI, and independently imported block catalogs from JSON configuration\n- persist the selected locale on the server and activate it without hydration flicker\n- add a flag-based language switcher and localized navigation descriptors\n- mount the redesigned i18n devtool only in development\n- regenerate English and Simplified Chinese catalogs and add switcher coverage
2026-07-30 14:48:25 +08:00