Commit Graph

54 Commits

Author SHA1 Message Date
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
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 6af4d7b798 feat(blocks): localize reusable application shell blocks
- move block messages beside appearance, chats, layout, navigation, and notification features\n- publish independently tree-shakeable catalogs for eight locales per block\n- localize controllers and leaf labels without rerendering surrounding interactive components\n- support descriptor-backed navigation labels, translated breadcrumbs, and compact-label truncation\n- add catalog composition helpers and coverage for reusable block consumers
2026-07-30 14:48:06 +08:00
Maofeng ae1798f6f4 feat(ui): add framework-neutral localization support
- add a lightweight UI i18n provider with translation and locale contexts\n- localize accessibility labels across breadcrumb, carousel, dialog, pagination, sheet, sidebar, spinner, and toast components\n- integrate calendar locale data without coupling UI components to Lingui\n- publish tree-shakeable catalogs for eight common locales
2026-07-30 14:47:51 +08:00
Maofeng 0768e8fa29 feat(i18n): expand catalog runtime and developer tooling
- add Intl-backed locale definitions, formatters, catalog loaders, and runtime hooks\n- compile hashed production catalogs from package-scoped catalog sources\n- drive Lingui extraction and compilation directly from project JSON config\n- redesign the devtool with localized controls, draggable persistence, settings, navigation, copy actions, ANSI output, and fullscreen support\n- extend repository APIs, CLI coverage, documentation, and runtime tests
2026-07-30 14:47:42 +08:00
Maofeng 0d0aad1d47 chore(deps): add localization support packages
- add ANSI rendering and icon dependencies for the i18n devtool\n- add flag, calendar, and jsdom dependencies for the web locale experience\n- connect reusable blocks to the shared i18n runtime\n- refresh the Bun lockfile
2026-07-30 14:47:26 +08:00