Commit Graph

3771 Commits

Author SHA1 Message Date
megayu
d6403b7746 dependencies upgrade (#12460) 2026-03-23 21:32:28 +08:00
Tienson Qin
eaa0d6ff96 fix: re-ordered tx data by replace-attr-retract-with-retract-entity 2026-03-18 16:42:21 +08:00
Tienson Qin
8d080cd4fa fix: lint 2026-03-18 07:48:01 +08:00
Tienson Qin
e7bcdb0bcc fix: batch tx should separate schema ops from data ops 2026-03-18 07:43:23 +08:00
Tienson Qin
35206ab1f4 ignore recycle apis 2026-03-18 06:35:28 +08:00
Tienson Qin
ad3cc18a63 fix: lint 2026-03-18 06:31:47 +08:00
Tienson Qin
e122073693 fix: lint 2026-03-18 06:23:22 +08:00
Tienson Qin
e3e54eba3f tag/property/closed value should be hard retracted 2026-03-18 06:11:04 +08:00
Tienson Qin
1f30693851 fix: tests 2026-03-18 06:11:04 +08:00
Tienson Qin
6ca2cc4312 fix(sync): disable checksum for encrypted graphs 2026-03-18 06:11:04 +08:00
Tienson Qin
16f775c9ad refactor: separate sync into modules 2026-03-18 06:11:04 +08:00
Tienson Qin
5e957beafb add more tests 2026-03-18 06:11:04 +08:00
Tienson Qin
fb76b061b4 fix: simplify db sync for recycle semantics 2026-03-18 06:11:04 +08:00
Tienson Qin
7630d49207 fix: tests 2026-03-18 06:11:04 +08:00
Tienson Qin
174cdfd865 feat: recycle 2026-03-18 06:11:04 +08:00
Tienson Qin
dc829be3f1 fix: lint 2026-03-18 06:11:04 +08:00
Tienson Qin
917309113f feat: sync checksum 2026-03-17 00:07:33 +08:00
Tienson Qin
33098113ee enhance: returns rejected tx 2026-03-17 00:07:33 +08:00
Tienson Qin
071d922442 fix: sync tests 2026-03-17 00:07:33 +08:00
Tienson Qin
68476aee3e refactor(outliner): batch ops via temp conn 2026-03-17 00:07:33 +08:00
Tienson Qin
42fec8324e simplify sync by applied txs sequentially 2026-03-17 00:07:33 +08:00
Tienson Qin
b8d7483a81 add scripts to manage graphs 2026-03-17 00:07:33 +08:00
Tienson Qin
01c1a498cd fix: uploaded graph not ready 2026-03-14 10:11:34 +08:00
scheinriese
57adfb144a Assorted code quality cleanups
- Remove unused clojure.string require in core_test.cljs
- Replace promesa.core p/delay with js/setTimeout, remove import
- Remove redundant final-result binding in print-shortcut-key
- Flatten nested if chain to cond for raw-binding
- Fix nested button inside button (keystroke-active → div)
- Remove dead .cp__shortcut-table-wrap CSS
- Align global-handlers set in get-cross-context-conflicts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 20:45:58 +08:00
scheinriese
8d62b4d6bc Use cond-> for container-attrs in shortcut badge components
Replace chained if/assoc rebindings with idiomatic cond-> in
combo-keys, separate-keys, and compact-keys.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 20:45:58 +08:00
scheinriese
e02810f983 Show readable PgUp/PgDn labels in shortcut kbd badges
The page-up and page-down keys were mapped to Private Use Area Unicode
characters (U+F571, U+F572) that don't exist in any font loaded by the
kbd elements, rendering as invisible/empty badges.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 20:45:58 +08:00
scheinriese
19c878cba0 Fix Option key recording and show ⌥ symbol on macOS
On macOS, Option+key combos in the shortcut recording dialog were
silently dropped because Google Closure's KeyHandler corrupts the
keyCode (merging keydown/keypress produces Unicode charCodes like ç
instead of the base key). Fall back to the native KeyboardEvent.code
property when the primary key-names lookup fails and a modifier is
held — works cross-platform (also helps AltGr on Windows).

Also replace "Opt" text with the standard ⌥ symbol in shortcut badges,
matching ⌘ and ⇧, and update all round-trip paths (decorate, undecorate,
canonicalize, normalize) to handle the new symbol.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 20:45:58 +08:00
scheinriese
4dcdbcc44c Replace flat row flash with accent shimmer sweep and fix combo key press animation
- Row highlight on shortcut trigger now uses a horizontal gradient sweep
  (background-position animation) instead of a static background flash,
  providing a distinct visual language from the focus ring
- Shimmer uses theme-aware accent color via color-mix on keymap page,
  with a neutral fallback in shui.css base styles
- Guard against animation spam: clearTimeout+reset pattern prevents
  stale timeout accumulation during rapid key repeat; reflow only
  forced on first trigger, class stays applied until last trigger ends
- Fix combo key press animation: animate the container (the keycap)
  instead of individual kbd elements, so translateY and box-shadow
  follow the container's border-radius correctly
- Scope row shimmer to .shui-shortcut-row/.shortcut-row elements
  to prevent accidental shimmer on standalone badge containers
- Respect prefers-reduced-motion for all new animations

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 20:45:58 +08:00
scheinriese
f6668aef37 Fix row highlight for keymap shortcut press animation
highlight-row! was looking for .shui-shortcut-row but keymap rows use
.shortcut-row, so the row highlight silently failed. Widen the selector
and add a visible background style for keymap rows.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 20:45:58 +08:00
scheinriese
93ae5648be Fix React key warning, binding normalization mismatch, and focus return
- Add ^{:key} metadata to fragment in shortcut-keymap-x for loop
- Normalize "cmd"/"command" → "meta" and "opt"/"option" → "alt" in
  normalize-binding so cmdk shortcut-press! calls match rendered
  data-shortcut-binding attributes
- Remove onCloseAutoFocus preventDefault from both popovers so Radix
  returns focus to the trigger button on close

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 20:45:58 +08:00
scheinriese
c3df1d857d Internationalize all hardcoded English strings in shortcut redesign
Replace 24 hardcoded English UI strings with (t :keymap/...) translation
calls and add corresponding keys to en.edn. Thread a :chord-separator
prop through the shui shortcut component so chord sequence "then" text
is translatable without adding i18n awareness to the presentation layer.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 20:45:58 +08:00
scheinriese
5b08feecfa Fix chord sequence display, add polish and resilience improvements
- Add chord-sequence-keys component to shui shortcut for multi-step
  bindings (e.g. ⌘C then ⌘R) that were previously truncated to just
  the first key. Detects nested binding groups and renders each combo
  with a "then" separator and proper glow styling.
- Update normalize-binding to handle chord sequences by joining groups
  with spaces instead of flattening into a single combo string.
- Cap keystroke recording at 5 keys to prevent app crashes from
  excessively long bindings being persisted to localStorage.
- Add try/catch around localStorage shortcut reads for resilience
  against corrupt data on startup.
- Fix vertical centering of shortcut badges using display:contents
  wrappers and removing padding-top from label-wrap/action-wrap.
- Style Reset button with accent color and underline-on-hover.
- Add white-space:nowrap to button reset block to prevent text wrapping.
- Use gap instead of margin for shortcut-input-binding spacing.
- Minor CSS refinements: search input padding, keystroke border color,
  empty state sizing, toolbar action specificity.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 20:45:58 +08:00
scheinriese
4c5b7ca511 Address remaining should-fix items from pr-review
- Extract animate-element!/highlight-row! helpers in shortcut-press! (was 4x duplication)
- Extract matches-keystroke? predicate (was duplicated in count + render)
- Replace <a> tags with <button> for all interactive elements (remove, clear, reset, undo, toggle, refresh)
- Add aria-label to icon-only buttons for screen reader support
- Add button reset CSS for elements changed from <a> to <button>
- Replace hardcoded rgba colors in CSS glow/shadow/row-pressed with theme variables
- Define press-animation-ms constant (was magic number 160)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 20:45:58 +08:00
scheinriese
def3dfb233 Implement V3 shortcut customization popover with two-tier conflict detection
Rewrite the shortcut customization UI from a modal dialog to an inline
popover with a state machine (idle → recording → accepted/conflict).
Add cross-context conflict awareness with amber warnings for non-blocking
conflicts across handler groups, while keeping red blocking conflicts for
same-context collisions. Redesign Esc/Backspace semantics for consistency:
Esc always closes, Backspace always removes. Add Radix tooltip on Reassign
button and polish spacing, animations, and feedback banners.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 20:45:58 +08:00
scheinriese
7f8c11680a Polish shortcut redesign: remove interactive prop, wire up press animations
- Remove unused `interactive?` prop from shortcut component and all call sites
- Trigger `shortcut-press!` animation when shortcuts are invoked
- Update shortcut settings UI to use `shui/shortcut` instead of raw `<code>` elements
- Fix shortcut key min-width (fit-content → 20px) for consistent sizing
- Pass raw-binding through `render-keyboard-shortcut` for data attribute matching

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 20:45:58 +08:00
scheinriese
67c123b4ed Redesign keyboard shortcut component with 3 display modes
Replace the single-style shortcut renderer with a new component
supporting combo (simultaneous keys), separate (sequential keys),
and compact (text-only) display styles with auto-detection.

- Add shortcut-press! for triggering key press animations via DOM
- Add CSS for all 3 styles with glow effects and reduced-motion support
- Update CMD+K to use v2 styles and press animations on Enter/Cmd+C
- Add accessibility defaults (interactive?/aria-hidden?) to consumers
- Remove old v1 namespace, consolidate under logseq.shui.shortcut
- Remove unused size/theme/animate-on-press? params from API
2026-03-13 20:45:58 +08:00
Tienson Qin
84965424a9 fix: gate graph when it's not ready for downloading 2026-03-13 18:22:16 +08:00
Tienson Qin
eeabd54d87 refactor: graph download switch to use r2 snapshot 2026-03-13 16:43:54 +08:00
megayu
adbaf10abc chore: tech stack upgrade (#12448)
* fix(lint): make worker/frontend separation lint work on Windows

* chore: update cljs:electron-watch script to include test flag

* chore: remove dead root dependencies

* chore(deps): converge better-sqlite3 to 12.6.2 across deps packages

* chore(deps): converge fs-extra to ^11.3.0 across package roots

* fix(test): correct parameters for create-if-not-exists function

* chore(deps): converge cljs-bean to 1.9.0 across deps roots

* fix(tests): escape regex in cljs:run-test script

* chore: pin root packageManager to yarn 1.22.22

* chore(build): replace del with fs.rmSync in gulp clean

* chore(build): replace npm-run-all with npm-run-all2

* chore(security): upgrade dompurify and unify sanitizer path

* chore(observability): upgrade web sentry to 8.x

* chore: remove unused react-draggable dependencies

* chore(ci): fix windows release artifact collection

* fix(build): create static dir before gulp clean scans it

* fix: update nbb-logseq dependency to version feat-db-v33

* fix(test): move start-time initialization after clone repo

* fix(deps): update nbb dependencies and adjust test script paths to compatible with windows path delimiter

* chore(deps): remove dead meander dependency

---------

Co-authored-by: Tienson Qin <tiensonqin@gmail.com>
2026-03-13 13:20:49 +08:00
Gabriel Horner
2e8d7c6303 fix: bump nbb-logseq to include datascript fix 2026-03-12 10:21:54 -04:00
Tienson Qin
81d1ded924 fix(sync): gate rtc until snapshot upload finishes 2026-03-12 20:00:29 +08:00
Tienson Qin
f538491096 chore: reduce test noise and infer warnings 2026-03-12 17:51:23 +08:00
Tienson Qin
80b48b7b86 enhance(rtc): improve snapshot import progress 2026-03-12 17:51:23 +08:00
Charlie
1b0db68098 enhance(ux): align for the image asset block container (#12425)
* feat(asset): add alignment options for images
* enhance(ux): select block for the action of double click in the image asset container
* enhance(asset): change alignment property type from string to keyword and normalize alignment handling
2026-03-12 11:18:51 +08:00
Tienson Qin
7386eec6db fix(db-sync): server shouldn't delete addrs 2026-03-12 08:28:38 +08:00
Tienson Qin
5d602c9d58 fix(db-sync): drop stale lookup-ref tx datoms 2026-03-12 08:18:52 +08:00
Gabriel Horner
ae003f1469 fix: clean up template property handling
When new built-in properties are supported in exporter, all-built-in-names
and file-built-in-property-names should be updated. No need
to handle block/properties-order and block/properties-text-values
as those are ignored
2026-03-11 15:44:12 -04:00
Gabriel Horner
fdf1a8f8cc fix: imported Template blocks
Template blocks were being copied instead of updated in place. Would
feel buggy to user as Template blocks would show up twice in search and
would not be where they had defined them
2026-03-11 15:44:12 -04:00
Mega Yu
df5fb72ed9 fix lint Shadowed var 2026-03-11 15:44:12 -04:00
Mega Yu
371b1d5301 feat(exporter): support template import 2026-03-11 15:44:12 -04:00