doxa-maps/library/composables
Doxa Maps 9c9fcd5572 RTL drag: the direction probe reads the handle, and two handle margins become logical
Two certain defects from source. What I could NOT settle without a browser is stated at the end
rather than guessed at.

1. THE PROBE READ THE WRONG NODE. The sign has to match the element the GRID lays out with. Both
   probes read the SHELL; the handle is a grid child, so whatever direction the grid resolves the
   handle inherits — and the shell is one node further out. A host that sets dir between the two, or
   a shellRef that is not the grid itself, yields a sign that disagrees with the mirroring the reader
   can see. Both the pointer and the keyboard path now try the handle first and fall back to the
   shell, then to ltr, so a detached handle cannot throw mid-gesture.
2. research-dashboard's two handles used PHYSICAL margins (margin-right / margin-left) while the grid
   they sit in mirrors — grid-template-columns and justify-self both follow the inline direction — so
   in Arabic each handle's 4px overhang sat on the wrong side of its own column. go-int's board
   already used the logical pair; this makes them agree.

WHAT WAS ALREADY RIGHT, so nobody re-fixes it: the xSign inversion itself is correct for a mirroring
grid and is DEPLOYED — 2 of 2 rtl checks present in the built gospel-internet, dashboard-plus-grid and
research-dashboard bundles, so this was never a stale-rebuild problem.

MEASUREMENT I NEED (rega, one line): during a drag in ar on the Gospel x Internet board, log
getComputedStyle on BOTH the handle and the shell and report each .direction. If the handle says rtl
and the shell says ltr, item 1 above is the whole bug. If both say ltr while the grid is visibly
mirrored, the mirroring comes from somewhere my probe cannot see and I will need that.

Source only. Rebuild: research-dashboard, dashboard-plus-grid, gospel-internet (library change).
2026-09-27 06:42:54 +00:00
..
legends Religion families follow the reader; the value they filter on does not 2026-09-27 01:57:23 +00:00
poster engineFor(map): build markers, popups and poster maps with the map's OWN engine 2026-09-25 18:38:17 +00:00
.gitkeep doxa-maps — portable bundler for embeddable JAMstack maps 2026-09-10 01:53:07 +00:00
printInPlace.js Prayer Walk Planner: full-page dev mount + agent-triggerable in-place print 2026-09-24 00:58:10 +00:00
retryableAsyncComponent.js Search tier 2: a misspelled country resolves to THE country (best match, 2-edit cap) 2026-09-24 00:34:19 +00:00
useAvatarGenerator.js Keep the prayer yellow to the prayer palette; other palettes keep their orange 2026-09-16 21:21:07 -05:00
useCardSurface.js The prayer-progress cards become shared components too 2026-09-27 04:14:31 +00:00
useCountryOutline.js The interactive maps fetch the web-sized boundaries 2026-09-27 03:25:59 +00:00
useCsvExport.js Four pray-tools assumptions the exporter did not know it was making 2026-09-27 01:57:50 +00:00
useDashboardData.js Kit 4d-2: useDashboardData moves to the library 2026-09-27 06:04:09 +00:00
useDashboardLayout.js RTL drag: the direction probe reads the handle, and two handle margins become logical 2026-09-27 06:42:54 +00:00
useDashboardSearch.js Kit landing 4a: the shared search, because the facet rail cannot move yet 2026-09-27 02:17:35 +00:00
useDocumentFont.js Vendor Oswald, because Bebas Neue cannot render Russian at all 2026-09-24 21:05:12 +00:00
useEdgeScrollAffordance.js doxa-maps — portable bundler for embeddable JAMstack maps 2026-09-10 01:53:07 +00:00
useFacetAggregation.js Kit 4c-1: the counting half, and the bucket that said "Other" in every locale 2026-09-27 04:14:13 +00:00
useGeocoderSearch.js Brand-neutral shared VerticalTabsLayout with lazy nested-element hosting; fix cap-5 prayer tab leaf path; neutralize library identifiers; add Forgejo CI build-gate workflow 2026-09-19 17:24:30 +00:00
useMapAttribution.js The map credit names the basemap that was actually drawn: OpenFreeMap / OpenMapTiles under MapLibre 2026-09-26 08:51:38 +00:00
useMapClustering.js "MST" clustering draws again: a true spanning tree in under a second instead of a 12-second freeze 2026-09-26 04:38:59 +00:00
useMapData.js The prayer map's legends see the pins it draws 2026-09-27 02:17:35 +00:00
useMapEvents.js Map popups show data as text: a people-group name or country field can no longer run script 2026-09-26 05:50:24 +00:00
useMapFly.js Maps stop flying for readers who ask for reduced motion: useMapFly decides it for every camera move 2026-09-26 04:38:59 +00:00
useMapInstance.js The engine logo's label follows the reader's language, on both engines 2026-09-26 13:04:16 +00:00
useMapLayers.js The interactive maps fetch the web-sized boundaries 2026-09-27 03:25:59 +00:00
useMapPacket.js doxa-maps — portable bundler for embeddable JAMstack maps 2026-09-10 01:53:07 +00:00
useMapProvider.js Three maps asked the window which engine drew them; now they ask the map 2026-09-26 17:28:46 +00:00
useMapSelection.js doxa-maps — portable bundler for embeddable JAMstack maps 2026-09-10 01:53:07 +00:00
useMapTheme.js Research map: religion joins prayer, adoption and engagement on the night look; only people, regions and languages are monochrome day 2026-09-16 21:01:37 -05:00
useOptionalT.js gospel takes the locale-honouring fallback, and it is their call that made it 2026-09-26 22:06:59 +00:00
usePosterPrints.js The prayer packet shows how its list was narrowed out of all the earth 2026-09-26 04:38:59 +00:00
usePplrInstance.js legend: open on the UPG-100 list, which is what the Driver asked for first 2026-09-24 17:59:57 +00:00
usePrayedLocally.js Public builds carry zero platform surface + copy-embed on staging 2026-09-16 05:13:44 +00:00
usePrayerStatistics.js doxa-maps — portable bundler for embeddable JAMstack maps 2026-09-10 01:53:07 +00:00
useSearch.js Religion families follow the reader; the value they filter on does not 2026-09-27 01:57:23 +00:00
useSelectedPin.js engineFor(map): build markers, popups and poster maps with the map's OWN engine 2026-09-25 18:38:17 +00:00
useSelectionBus.js D3: the bus can point at a record without choosing it 2026-09-27 02:17:35 +00:00
useSelectionCamera.js Dashboard kit, landing 3: the camera and the CSV exporter 2026-09-27 01:16:52 +00:00
useShadowStyles.js Every shadow root honours prefers-reduced-motion 2026-09-27 05:05:04 +00:00
useSharedMapToken.js Engine and token props: a token-service URL is honoured, Clear clears, and a pending token is awaited 2026-09-26 03:34:15 +00:00
useTextHighlight.js Two plugins built the same search highlighter; now there is one 2026-09-27 01:16:50 +00:00