@octanejs/cli 0.0.1 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,7 +2,7 @@
2
2
  "bindings": [
3
3
  {
4
4
  "name": "@octanejs/apollo-client",
5
- "version": "0.1.13",
5
+ "version": "0.1.18",
6
6
  "category": "AI, data, and routing",
7
7
  "upstream": { "package": "@apollo/client", "version": "4.2.6" },
8
8
  "surface": "Complete published client adapter surface: all 18 @apollo/client/react runtime exports and their Apollo 4.2.6 TypeScript declarations, framework-neutral root/testing exports, an Octane MockedProvider, and the Octane-native /react/ssr prerenderStatic entry.",
@@ -16,7 +16,7 @@
16
16
  },
17
17
  {
18
18
  "name": "@octanejs/aria",
19
- "version": "0.0.12",
19
+ "version": "0.0.17",
20
20
  "category": "UI and interaction",
21
21
  "upstream": { "package": "react-aria", "version": "3.50.0" },
22
22
  "surface": "Phases 0-5 + the Tree/Table follow-up complete. Phases 0-1: the utils foundation, SSR utilities, the complete interactions area (usePress, useHover, focus/keyboard family, useLongPress, useMove, Pressable/PressResponder), the focus area (FocusScope with containment/restore/focus managers, FocusRing, useFocusRing, useHasTabbableChild), the i18n area (I18nProvider, locale/collator/formatter/filter hooks), form validation (useFormValidation + stately useFormValidationState), and the leaf hooks: useButton/useToggleButton(+Group), useLabel/useField, useCheckbox(+Group/+Item), useRadio/useRadioGroup, useSwitch, useTextField, useSearchField, useProgressBar, useMeter, useSeparator, useLink, useDisclosure, useToolbar, VisuallyHidden. Phase 2 adds the collections + selection tier: the stately collections engine (CollectionBuilder/Item/Section/useCollection) and selection core (Selection/SelectionManager/useMultipleSelectionState), the stately state hooks (useListState/useSingleSelectListState, useTreeState, useMenuTriggerState/useSubmenuTriggerState, useOverlayTriggerState, useSelectState, useComboBoxState, useTabListState, useNumberFieldState, useSliderState), the aria selection area (useSelectableCollection/-Item/-List, useTypeSelect, ListKeyboardDelegate, DOMLayoutDelegate), and the aria hooks useListBox/useOption/useListBoxSection, useMenu/useMenuItem/useMenuSection/useMenuTrigger/useSubmenuTrigger, useTab/useTabList/useTabPanel, useSlider/useSliderThumb, useNumberField, useGridList(+Item/+Section/+SelectionCheckbox), useTag/useTagGroup, useBreadcrumbs/useBreadcrumbItem — plus the matching react-stately state hooks under `@octanejs/aria/stately`. Phase 3 adds the overlays hooks tier: the stately `useTooltipTriggerState` and the whole aria overlays area (usePreventScroll, ariaHideOutside, DismissButton, PortalProvider, useOverlay, useOverlayTrigger, useOverlayPosition + calculatePosition, Overlay/useOverlayFocusContain, useModal/ModalProvider/OverlayProvider/OverlayContainer, useModalOverlay, usePopover), plus the consumers useDialog, useTooltip/useTooltipTrigger, useSelect/useHiddenSelect/HiddenSelect, and useComboBox. Differential-verified byte-identical against the real react-aria (interactions + button/toggle/checkbox/switch/radio/textfield/progress + tabs + listbox + select + combobox fixtures); dialog/tooltip/overlay focus-trap/dismiss/scroll-lock paths are covered by behavioral tests (the differential rig shares one document, so focus/portal/positioning aren't rig-driveable). Autocomplete (useAutocomplete/useSearchAutocomplete) is deferred — useComboBox does not depend on it in 3.50.0. Phase 4 adds the react-aria-components foundation under `@octanejs/aria/components`: the collections engine re-hosted on a detached real-DOM store (BaseCollection/CollectionBuilder/createLeafComponent/createBranchComponent/Hidden/useCachedChildren + Collection/Section), the RAC plumbing (Provider, useContextProps, slotted contexts, useRenderProps/composeRenderProps with data-* state attributes), and the non-collection components: Button, ToggleButton(+Group), Checkbox(+Group/Field/Button), Switch(+Field/Button), RadioGroup(+Radio/Field/Button), TextField, SearchField, NumberField, Form, Label/Input/TextArea/FieldError, Group, Toolbar, Separator, Header, Heading, Link, ProgressBar, Meter, Slider(+Output/Track/Thumb/Fill), Disclosure(+Group/Panel), DialogTrigger/Dialog, Modal/ModalOverlay, Popover, TooltipTrigger/Tooltip, OverlayArrow, Text, Keyboard, SelectionIndicator, SharedElementTransition. Phase-4 differentials drive the REAL components on both sides byte-identical (Button hover+mid-press, ToggleButton, Checkbox, TextField typing, Disclosure expand/collapse). Phase 5 adds the RAC collection components over that engine: Autocomplete (full — aria useAutocomplete + stately useAutocompleteState now ported), ListBox(+Item/Section/LoadMoreItem), Menu(+MenuTrigger/SubmenuTrigger/MenuItem/MenuSection), Select(+SelectValue), ComboBox(+ComboBoxValue), Tabs(+TabList/Tab/TabPanels/TabPanel), TagGroup(+TagList/Tag), GridList(+Item/Section/Header/LoadMoreItem), Breadcrumbs(+Breadcrumb), and the DragAndDrop context layer (DropIndicator/contexts/DragAndDropHooks type; components' dnd branches are inert — the dnd engine and useDragAndDrop() itself arrive in a later phase, the stub throws). Phase-5 differentials drive the REAL react-aria-components byte-identical (ListBox selection + keyed reverse, Tabs switch, TagGroup multi-select, GridList row selection, Breadcrumbs, ComboBox typing); Menu/Select open-state (portal'd) carries behavioral coverage incl. keyboard-driven submenus. The Tree/Table follow-up adds the remaining collection verticals: stately grid (GridCollection/useGridState) + the full stately table area (TableCollection/useTableState/column-resize state/UNSTABLE_useTreeGridState), the aria tree hooks (useTree/useTreeItem) and the full aria table hook area (useTable family, TableKeyboardDelegate, useTableColumnResize, grid hooks it rides on), RAC Tree(+TreeItem/TreeItemContent/TreeSection/TreeHeader/TreeLoadMoreItem) and RAC Table(+TableHeader/TableBody/Column/Row/Cell/ColumnResizer/ResizableTableContainer/TableFooter/TableLoadMoreItem). Tree structure states and the interactive Table (sort cycling, row selection) are differential-verified byte-identical vs the real react-aria-components; chevron-driven Tree interaction carries behavioral coverage (the rig's virtual clicks cannot faithfully reproduce the focus-effect interplay on the React side). TableLayout lands with the Virtualizer; date/color families and the drag-and-drop engine are not started — see the migration plan.",
@@ -31,10 +31,10 @@
31
31
  },
32
32
  {
33
33
  "name": "@octanejs/base-ui",
34
- "version": "0.1.16",
34
+ "version": "0.1.21",
35
35
  "category": "UI and interaction",
36
36
  "upstream": { "package": "@base-ui/react", "version": "1.6.0" },
37
- "surface": "Alpha, in progress: 31 of 43 upstream subpaths. The foundation, overlay infrastructure, hover/focus interaction layer, list-navigation/typeahead layer and popup viewport have landed, along with Dialog, AlertDialog, Popover, Tooltip, PreviewCard, the full form-control set, and the standalone Button/DirectionProvider/CSPProvider/useMediaQuery utilities — ported at full fidelity and differential-verified against the real `@base-ui/react`. Menu is COMPLETE at all 20 upstream parts — Root/Trigger/Portal/Positioner/Popup, the full item family (Item, LinkItem, CheckboxItem, RadioGroup/RadioItem and their indicators, Group/GroupLabel, Separator), Arrow, Backdrop, Viewport, and SubmenuRoot/SubmenuTrigger. Menubar and ContextMenu have landed too, so the whole menu family is complete.",
37
+ "surface": "Alpha, in progress: 34 of 43 upstream subpaths. The foundation, overlay infrastructure, hover/focus interaction layer, list-navigation/typeahead layer and popup viewport have landed, along with Dialog, AlertDialog, Popover, Tooltip, PreviewCard, the full form-control set, and the standalone Button/DirectionProvider/CSPProvider/useMediaQuery utilities — ported at full fidelity and differential-verified against the real `@base-ui/react`. Menu is COMPLETE at all 20 upstream parts — Root/Trigger/Portal/Positioner/Popup, the full item family (Item, LinkItem, CheckboxItem, RadioGroup/RadioItem and their indicators, Group/GroupLabel, Separator), Arrow, Backdrop, Viewport, and SubmenuRoot/SubmenuTrigger. Menubar and ContextMenu have landed too, so the whole menu family is complete. Toast is complete at all 11 parts, including the imperative toast manager, auto-dismiss timers with hover/focus pausing, and promise toasts; swipe-to-dismiss is covered too. Collapsible is complete at all 3 upstream parts (Root/Trigger/Panel), including upstream's <Activity> animation-resume suppression — octane's Activity has React's contract (hidden subtrees keep state and DOM while effects tear down and re-fire on reveal), so that path is ported rather than skipped and is the first component carrying a port of Base UI's OWN test file, under tests/upstream/ — 16 of its 35 upstream cases, being every case that does not require real layout measurement, CSS transition/keyframe sequencing, React.Activity, or find-in-page `beforematch`. Accordion is complete at all 5 upstream parts (Root/Item/Header/Trigger/Panel), built directly on Collapsible — each Item runs its own useCollapsibleRoot and provides CollapsibleRootContext, exactly as upstream does. It carries 18 tests: 15 ported from upstream's own suite plus 3 written to close a real gap — upstream only exercises single-vs-multiple toggling inside jsdom-skipped blocks, so removing the single-mode collapse branch passed every ported case.",
38
38
  "divergences": [
39
39
  "Handlers receive native DOM events (no synthetic layer): visible text controls use per-edit `input`, while the NumberField form-facing number input intentionally observes native `change` commits. React's synthetic-only `event.isPropagationStopped()` (used by Menu's popup keyboard relay) becomes a native `event.cancelBubble` read.",
40
40
  "`forwardRef` becomes ref-as-prop; `className` composes via octane's `normalizeClass` (the render-prop string merge matches Base UI exactly).",
@@ -43,11 +43,11 @@
43
43
  "`NumberField.ScrubArea` and hold-to-repeat stepping remain unported; the steppers respond to single presses only."
44
44
  ],
45
45
  "ssr": "Dedicated Node-mode tests cover server snapshots, accessible separators, edge-aligned slider visibility, and closed dialogs; hydration adopts Vite-compiled Octane server markup, transitions to the client snapshot, and preserves interaction. Open overlays and remaining components are not yet covered.",
46
- "verified": "2026-07-27"
46
+ "verified": "2026-08-01"
47
47
  },
48
48
  {
49
49
  "name": "@octanejs/cmdk",
50
- "version": "0.1.1",
50
+ "version": "0.1.6",
51
51
  "category": "UI and interaction",
52
52
  "upstream": { "package": "cmdk", "version": "1.1.1" },
53
53
  "surface": "Complete against the published `cmdk@1.1.1` public surface: `Command` (the root itself) and the `CommandRoot` named export, `Command.Input`, `Command.List`, `Command.Item`, `Command.Group`, `Command.Separator`, `Command.Dialog`, `Command.Empty`, `Command.Loading`, the flat `CommandX` aliases, `useCommandState`, and `defaultFilter` — with the DOM-authoritative store and item/group registration, `useValue` text-content inference, `onInput`-driven search, score filtering plus item and group DOM sorting, keyboard navigation (arrows/Home/End/vim/Enter), controlled `value`/`onValueChange`/`loop`/`shouldFilter`/custom `filter`/`forceMount`, the `--cmdk-list-height` ResizeObserver, and a Radix-backed `Command.Dialog`. `asChild` is the one unsupported prop (see divergences).",
@@ -78,7 +78,7 @@
78
78
  },
79
79
  {
80
80
  "name": "@octanejs/devtools",
81
- "version": "0.0.6",
81
+ "version": "0.0.11",
82
82
  "category": "Styling, tests, and devtools",
83
83
  "upstream": { "package": "octane", "version": "workspace" },
84
84
  "surface": "Octane-native DevTools plugin (not an upstream port): renders live runtime diagnostics into a TanStack Devtools host via @tanstack/devtools-event-client. P1 ships the Components tree + state inspector.",
@@ -88,7 +88,7 @@
88
88
  },
89
89
  {
90
90
  "name": "@octanejs/dexie",
91
- "version": "0.1.11",
91
+ "version": "0.1.16",
92
92
  "category": "AI, data, and routing",
93
93
  "upstream": { "package": "dexie-react-hooks", "version": "4.4.0" },
94
94
  "surface": "Port of the public dexie-react-hooks surface: useObservable, useLiveQuery, useSuspendingObservable, useSuspendingLiveQuery, usePermissions, and useDocument, with Dexie's framework-neutral API re-exported from the package root.",
@@ -102,7 +102,7 @@
102
102
  },
103
103
  {
104
104
  "name": "@octanejs/dnd-kit",
105
- "version": "0.1.13",
105
+ "version": "0.1.18",
106
106
  "category": "UI and interaction",
107
107
  "upstream": { "package": "@dnd-kit/react", "version": "0.5.0" },
108
108
  "surface": "Complete modern dnd-kit React-adapter surface: DragDropProvider, DragOverlay, useDraggable/useDroppable, manager/monitor/operation hooks, PointerSensor/KeyboardSensor re-exports, the public signal-hook utilities, useSortable, and all four upstream entry points.",
@@ -115,7 +115,7 @@
115
115
  },
116
116
  {
117
117
  "name": "@octanejs/floating-ui",
118
- "version": "0.1.17",
118
+ "version": "0.1.22",
119
119
  "category": "UI and interaction",
120
120
  "upstream": { "package": "@floating-ui/react", "version": "0.27.19" },
121
121
  "surface": "Positioning (`useFloating`, ref-aware `arrow`, the `@floating-ui/dom` middleware re-exports, the floating tree), the full interaction-hook set (`useInteractions`, `useHover` + `safePolygon`, `useClick`, `useFocus`, `useDismiss`, `useRole`, `useClientPoint`, `useListNavigation`, `useTypeahead`), the component layer (`FloatingPortal`, `FloatingOverlay`, `FloatingFocusManager`, `FloatingArrow`, `FloatingList`, `Composite`), and transitions + `FloatingDelayGroup`.",
@@ -125,7 +125,7 @@
125
125
  },
126
126
  {
127
127
  "name": "@octanejs/hook-form",
128
- "version": "0.1.15",
128
+ "version": "0.1.20",
129
129
  "category": "Forms and content",
130
130
  "upstream": { "package": "react-hook-form", "version": "7.81.0" },
131
131
  "surface": "Complete port of react-hook-form 7.81.0 (upstream commit b7df98c2) with the upstream test suite ported: `useForm`, `useController`, `useFieldArray`, `useFormState`, `useWatch`, `useFormContext`/`FormProvider`, schema resolvers, and all validation modes.",
@@ -138,7 +138,7 @@
138
138
  },
139
139
  {
140
140
  "name": "@octanejs/i18next",
141
- "version": "0.1.13",
141
+ "version": "0.1.18",
142
142
  "category": "Forms and content",
143
143
  "upstream": { "package": "react-i18next", "version": "17.0.9" },
144
144
  "surface": "Complete runtime port of react-i18next 17.0.9: useTranslation, I18nextProvider/context, Trans/TransWithoutContext, IcuTrans/IcuTransWithoutContext, Translation, the withTranslation/withSSR HOCs, useSSR, namespace reporting, initialization/default helpers, and the root ICU helper exports over the unchanged i18next core.",
@@ -153,7 +153,7 @@
153
153
  },
154
154
  {
155
155
  "name": "@octanejs/jotai",
156
- "version": "0.1.15",
156
+ "version": "0.1.20",
157
157
  "category": "Shared state",
158
158
  "upstream": { "package": "jotai", "version": "2.20.2" },
159
159
  "surface": "Complete 1:1 port: the framework-agnostic vanilla core (`jotai/vanilla`, `/vanilla/utils`, `/vanilla/internals`) is reused verbatim; the React layer (`Provider`, `useStore`, `useAtom`, `useAtomValue`, `useSetAtom`) and `react/utils` (`useResetAtom`, `useReducerAtom`, `useAtomCallback`, `useHydrateAtoms`) are ported onto octane hooks, preserving upstream's useReducer force-update + effect-subscription implementation, async atoms via octane's `use()`.",
@@ -163,7 +163,7 @@
163
163
  },
164
164
  {
165
165
  "name": "@octanejs/lexical",
166
- "version": "0.1.17",
166
+ "version": "0.1.22",
167
167
  "category": "Forms and content",
168
168
  "upstream": { "package": "@lexical/react", "version": "0.46.0" },
169
169
  "surface": "35 of 39 `@lexical/react` modules ported: composer + contexts, the editable surface, plain/rich text, and the full plugin/menu set (history, lists + check-list, links, tables, markdown shortcuts, the typeahead/node-menu/context-menu family, draggable-block, character-limit, …) plus the `useLexical*` hooks.",
@@ -176,7 +176,7 @@
176
176
  },
177
177
  {
178
178
  "name": "@octanejs/lucide",
179
- "version": "0.1.13",
179
+ "version": "0.1.18",
180
180
  "category": "UI and interaction",
181
181
  "upstream": { "package": "lucide-react", "version": "1.24.0" },
182
182
  "surface": "Complete against the published `lucide-react@1.24.0` runtime surface: every canonical icon and alias, the `icons` namespace, `Icon`, `createLucideIcon`, `LucideProvider`, `useLucideContext`, `DynamicIcon`, `iconNames`, `dynamicIconImports`, and per-icon subpath imports.",
@@ -187,9 +187,23 @@
187
187
  "ssr": "Supported and tested: icons and provider defaults render through `octane/server`, and client hydration adopts the server-rendered SVG element.",
188
188
  "verified": "2026-07-13"
189
189
  },
190
+ {
191
+ "name": "@octanejs/mantine-hooks",
192
+ "version": "0.1.4",
193
+ "category": "UI and interaction",
194
+ "upstream": { "package": "@mantine/hooks", "version": "9.5.0" },
195
+ "surface": "Complete @mantine/hooks 9.5.0 runtime export surface: state, timing, storage, viewport, input, focus, pointer, observer, hotkey, scrolling, collapse, drag, splitter, mask, and utility hooks.",
196
+ "divergences": [
197
+ "Hooks use Octane's compiler-injected hook slots and runtime lifecycle instead of React's dispatcher.",
198
+ "DOM subscriptions receive native browser events.",
199
+ "React is retained only as a source-compatibility type vocabulary for refs, events, actions, and CSS properties; it is not loaded at runtime."
200
+ ],
201
+ "ssr": "Dedicated Node-mode coverage verifies deterministic state-hook output and guarded media-query initial values without a browser. DOM-only effects remain inert during server rendering.",
202
+ "verified": "2026-07-28"
203
+ },
190
204
  {
191
205
  "name": "@octanejs/mdx",
192
- "version": "0.1.15",
206
+ "version": "0.1.20",
193
207
  "category": "Forms and content",
194
208
  "upstream": { "package": "@mdx-js/mdx", "version": "3.1.1" },
195
209
  "surface": "The full compile-don't-interpret pipeline: `.mdx`/`.md` → `@mdx-js/mdx` (reused verbatim) → octane compiler, via the `octaneMdx()` Vite plugin plus the `./compile` and `./server` entries; compiler warnings propagate through direct and Vite compile surfaces with authored `.mdx` ranges; `@mdx-js/react`'s provider layer (`MDXProvider`/`useMDXComponents`) is ported onto octane context. The octane website runs on it.",
@@ -199,9 +213,23 @@
199
213
  "ssr": "Full SSR + hydration coverage — server-compiled documents render via `renderToString` and hydrate byte-for-byte (`ssr.test.ts`, `hydration.test.ts`).",
200
214
  "verified": "2026-07-17"
201
215
  },
216
+ {
217
+ "name": "@octanejs/mobx",
218
+ "version": "0.1.4",
219
+ "category": "Shared state",
220
+ "upstream": { "package": "mobx-react-lite", "version": "4.1.1", "core": "mobx@6.16.1" },
221
+ "surface": "The framework-independent MobX core is re-exported verbatim. The function-component binding includes observer, Observer, useObserver, useLocalObservable, enableStaticRendering, isUsingStaticRendering, and the deprecated useStaticRendering alias.",
222
+ "divergences": [
223
+ "React class components and the legacy mobx-react Provider/inject APIs are not included.",
224
+ "forwardRef compatibility options are omitted because Octane uses refs as props.",
225
+ "React-specific batching, prop-types validation, React DevTools integration, and useDebugValue output are omitted."
226
+ ],
227
+ "ssr": "enableStaticRendering(true) renders observed components without creating a Reaction or retaining observable subscriptions.",
228
+ "verified": "2026-07-28"
229
+ },
202
230
  {
203
231
  "name": "@octanejs/motion",
204
- "version": "0.1.17",
232
+ "version": "0.1.22",
205
233
  "category": "UI and interaction",
206
234
  "upstream": { "package": "motion", "version": "12.42.2" },
207
235
  "surface": "Core surface: `motion.<tag>` (animate, gestures, variants with propagation/stagger, drag, layout basics), `AnimatePresence`, `MotionConfig`, and the motion-value hooks (`useMotionValue`, `useScroll`, `useTransform`, `useSpring`, `useAnimate`, `useMotionValueEvent`); motion-dom's animation engine and gesture primitives are reused verbatim.",
@@ -214,7 +242,7 @@
214
242
  },
215
243
  {
216
244
  "name": "@octanejs/nuqs",
217
- "version": "0.1.7",
245
+ "version": "0.1.12",
218
246
  "category": "AI, data, and routing",
219
247
  "upstream": { "package": "nuqs", "version": "2.9.1" },
220
248
  "surface": "Full vendored port: the framework-agnostic core (`parsers`/`parseAs*`/`createParser`, `createSerializer`, `createLoader`, `createStandardSchemaV1`, the throttle/debounce update queues, sync emitter and URL encoding) is vendored verbatim from nuqs 2.9.1; the React layer (`useQueryState`, `useQueryStates`, the `useSyncExternalStores` helper and the adapter context) is ported onto octane's hooks — same `useState`/`useEffect`/`useSyncExternalStore` implementation shape as upstream, so re-render and URL-reconciliation behaviour matches nuqs on React. Adapters ported: `@octanejs/nuqs/adapters/react` (`NuqsAdapter`, `enableHistorySync`), `/adapters/custom` (`unstable_createAdapterProvider`), `/adapters/testing` (`NuqsTestingAdapter`, `withNuqsTestingAdapter`). Server surface (`@octanejs/nuqs/server`) exposes `createLoader`/`createSerializer`/parsers/`createStandardSchemaV1`.",
@@ -227,9 +255,23 @@
227
255
  "ssr": "The server entry (`@octanejs/nuqs/server`) is react-free and usable during SSR for parsing/serialising search params; the client hooks read `location.search` through `useSyncExternalStore` with an empty-search server snapshot (upstream parity). No dedicated SSR hydration tests yet.",
228
256
  "verified": "2026-07-20"
229
257
  },
258
+ {
259
+ "name": "@octanejs/phosphor-icons",
260
+ "version": "0.0.3",
261
+ "category": "UI and interaction",
262
+ "upstream": { "package": "@phosphor-icons/react", "version": "2.1.10" },
263
+ "surface": "All 1,512 canonical icons from @phosphor-icons/core@2.1.1, including the upstream deprecated Icon-suffixed aliases, six weights, IconContext, IconBase, root exports, and per-icon imports.",
264
+ "divergences": [
265
+ "Icon refs are normal Octane ref props rather than React forwardRef components.",
266
+ "Event callbacks receive native DOM events rather than React synthetic events.",
267
+ "The React package's SSR namespace is unnecessary because Octane icons use the same components on client and server."
268
+ ],
269
+ "ssr": "Supported and tested against @phosphor-icons/react/ssr for every weight; hydration adopts and updates server-rendered SVG hosts.",
270
+ "verified": "2026-07-29"
271
+ },
230
272
  {
231
273
  "name": "@octanejs/radix",
232
- "version": "0.1.17",
274
+ "version": "0.1.22",
233
275
  "category": "UI and interaction",
234
276
  "upstream": { "package": "radix-ui", "version": "1.6.4" },
235
277
  "surface": "Complete against the unified `radix-ui@1.6.4` component surface — all primitives (incl. Dialog, the Menu/DropdownMenu/ContextMenu family, Popover, Tooltip, Select, NavigationMenu, Toast, Menubar, Slider, the form controls, and OneTimePasswordField/PasswordToggleField) plus the composition/state/overlay foundations — verified by a differential suite (same fixtures through octane and the real radix-ui, byte-identical DOM).",
@@ -240,21 +282,51 @@
240
282
  "ssr": "SSR/hydration coverage for the overlay/portal components is still open (tracked in the migration plan).",
241
283
  "verified": "2026-07-21"
242
284
  },
285
+ {
286
+ "name": "@octanejs/rainbowkit",
287
+ "version": "0.0.3",
288
+ "category": "Web3",
289
+ "upstream": { "package": "@rainbow-me/rainbowkit", "version": "2.2.11" },
290
+ "surface": "Octane-native RainbowKitProvider, ConnectButton and ConnectButton.Custom, WalletButton, connect/account/chain modal hooks, connector selection, account/chain actions, native accessible dialogs, and light/dark/midnight themes.",
291
+ "divergences": [
292
+ "IMPORTANT: upstream RainbowKit 2.2.11 declares wagmi ^2.9.0. This adapter intentionally consumes @octanejs/wagmi v3 and is not drop-in dependency or peer-range parity.",
293
+ "The React DOM and vanilla-extract implementation is replaced by native Octane TSRX, DOM events, focus/scroll containment, and CSS custom properties.",
294
+ "The wallet list merges optional configured descriptors with the enclosing Wagmi v3 connector list, deduplicated by canonical connector uid with explicit id/name fallback. Unavailable configured entries remain visible with a reason. RainbowKit wallet factories, vendor SDKs, and WalletConnect project configuration remain application-owned.",
295
+ "Authentication, recent transactions, ENS/avatar resolution, localization, cool mode, account avatars/balances, chain icons, and pixel-identical upstream themes are unsupported and their upstream props are not accepted.",
296
+ "rainbowTheme is an explicitly documented Octane-only purple/rounded preset; it is not an upstream RainbowKit export."
297
+ ],
298
+ "ssr": "The provider and controls emit deterministic disconnected markup without browser wallet access. Connector discovery and live Wagmi state become authoritative after hydration; no hydrated UI state authorizes wallet actions.",
299
+ "verified": "2026-07-29"
300
+ },
301
+ {
302
+ "name": "@octanejs/react-error-boundary",
303
+ "version": "0.1.4",
304
+ "category": "UI and interaction",
305
+ "upstream": { "package": "react-error-boundary", "version": "6.1.2" },
306
+ "surface": "Complete against the published react-error-boundary 6.1.2 function/type surface adapted to Octane: ErrorBoundary, ErrorBoundaryContext, getErrorMessage, fallback variants, onError/onReset callbacks, resetKeys, useErrorBoundary (including error), withErrorBoundary, OnErrorCallback, and UseErrorBoundaryApi.",
307
+ "divergences": [
308
+ "Component stack information is currently an empty string because Octane does not expose a public component-stack formatter.",
309
+ "Event-handler and asynchronous errors must be passed to useErrorBoundary().showBoundary(), matching upstream's explicit forwarding requirement.",
310
+ "Server rendering that must match upstream error propagation uses the explicit @octanejs/react-error-boundary/server entry."
311
+ ],
312
+ "ssr": "The explicit server entry renders children without a boundary so descendant errors propagate, matching react-error-boundary 6.1.2.",
313
+ "verified": "2026-07-29"
314
+ },
243
315
  {
244
316
  "name": "@octanejs/recharts",
245
- "version": "0.1.15",
317
+ "version": "0.1.20",
246
318
  "category": "Data-heavy screens",
247
319
  "upstream": { "package": "recharts", "version": "3.9.2" },
248
- "surface": "Partial (phases 0–1 of 5): the static `BarChart`/`LineChart` pipeline end-to-end (`isAnimationActive={false}`), byte-identical to upstream in the differential rig; the Redux/RTK state layer, `Surface`/`Layer`, and the pure shape set are in place.",
320
+ "surface": "Broad runtime support across cartesian, polar, hierarchical, tooltip, legend, responsive-container, shape, and chart-state surfaces. `Brush` and `Treemap` remain intentionally unsupported.",
249
321
  "divergences": [
250
322
  "Chart events coordinate through octane's native delegated events rather than React's synthetic layer."
251
323
  ],
252
324
  "ssr": "Untested; text measurement (`getStringSize`) returns 0×0 under SSR.",
253
- "verified": "2026-07-07"
325
+ "verified": "2026-07-29"
254
326
  },
255
327
  {
256
328
  "name": "@octanejs/redux",
257
- "version": "0.1.15",
329
+ "version": "0.1.20",
258
330
  "category": "Shared state",
259
331
  "upstream": { "package": "react-redux", "version": "9.3.0" },
260
332
  "surface": "The hooks + `Provider` surface of react-redux 9.3.0 (`useSelector`, `useDispatch`, `useStore`, and the custom-context factory variants) on octane's `useSyncExternalStore`; works with any Redux 5 / Redux Toolkit store. Export parity is pinned by test.",
@@ -267,7 +339,7 @@
267
339
  },
268
340
  {
269
341
  "name": "@octanejs/redux-toolkit",
270
- "version": "0.1.13",
342
+ "version": "0.1.18",
271
343
  "category": "Shared state",
272
344
  "upstream": { "package": "@reduxjs/toolkit", "version": "2.12.0" },
273
345
  "surface": "Complete four-entry-point port: the framework-agnostic Toolkit and RTK Query core are re-exported verbatim; `/query/react` provides generated query, lazy-query, mutation, infinite-query, prefetch hooks and `ApiProvider`; `/react` provides the dynamic-middleware dispatch-hook integration.",
@@ -280,7 +352,7 @@
280
352
  },
281
353
  {
282
354
  "name": "@octanejs/remix-router",
283
- "version": "0.1.14",
355
+ "version": "0.1.19",
284
356
  "category": "AI, data, and routing",
285
357
  "upstream": { "package": "react-router", "version": "8.2.0" },
286
358
  "surface": "COMPLETE port (all phases shipped — full export parity, EXPECTED_MISSING is empty): the framework-agnostic router core (lib/router/* + framework-free helpers, ~12k lines) is vendored byte-close and validated by 161 ported upstream router tests plus four focused v8.2 regression pins; the data-mode React layer (createMemoryRouter, RouterProvider incl. the /dom flushSync variant, Outlet, Await, RenderErrorBoundary/errorElement, Link + useLinkClickHandler, and the full read-hook family) and the declarative layer (MemoryRouter, Routes/Route in BOTH children forms — descriptor children walked upstream-style, .tsrx block children via a registration collector — Navigate, createRoutesFromChildren/Elements, the UNSAFE_With*Props wrappers) and the DOM layer (createBrowserRouter/createHashRouter with __staticRouterHydrationData parsing, BrowserRouter/HashRouter/unstable_HistoryRouter, Link + NavLink incl. the isActive/isPending render props, useLinkClickHandler, useSearchParams) and the mutation layer (Form on octane's native delegated submit event, useSubmit incl. JSON encTypes, useFormAction with ?index resolution, useFetcher/useFetchers incl. fetcher.Form/load/submit/reset and shared keys), the guard/scroll layer (useBlocker, unstable_usePrompt, ScrollRestoration/UNSAFE_useScrollRestoration, useBeforeUnload, useViewTransitionState, unstable_useRoute/unstable_useRouterState), static SSR (StaticRouter, StaticRouterProvider, createStaticHandler/createStaticRouter rendering through octane/server — markup byte-identical to react-dom/server after marker stripping, hydration payload identical), and the vendored cookie/session server runtime (createCookie/createSession/createCookieSessionStorage/createMemorySessionStorage) are transcribed onto octane and differential-verified against real react-router. Framework-mode + RSC names (Meta/Links/Scripts, createRequestHandler, UNSAFE_ internals) exist as THROWING STUBS so parity is honest.",
@@ -294,15 +366,31 @@
294
366
  "ssr": "Shipped: StaticRouter/StaticRouterProvider/createStaticHandler/createStaticRouter render through octane/server (remix-router-ssr vitest project compiles the whole graph in server mode; markup matches react-dom/server byte-for-byte after framework-marker stripping). Block-children <Routes> is CLIENT-only (the registration collector runs in layout effects) — use descriptor children or route objects for SSR.",
295
367
  "verified": "2026-07-13"
296
368
  },
369
+ {
370
+ "name": "@octanejs/rxjs",
371
+ "version": "0.1.2",
372
+ "category": "Shared state",
373
+ "upstream": {
374
+ "package": "@react-rxjs/core + @react-rxjs/utils",
375
+ "version": "0.10.8 / 0.9.7"
376
+ },
377
+ "surface": "Core bind/state/Subscribe APIs and the complete @react-rxjs/utils surface.",
378
+ "divergences": [
379
+ "StateObservable values are not JSX nodes; render them through useStateObservable or bind.",
380
+ "@react-rxjs/dom is omitted because octane batches updates without ReactDOM.unstable_batchedUpdates."
381
+ ],
382
+ "ssr": "useSyncExternalStore supplies the state snapshot during server rendering; browser-only ReactDOM batching helpers are intentionally absent.",
383
+ "verified": "2026-07-30"
384
+ },
297
385
  {
298
386
  "name": "@octanejs/shadcn",
299
- "version": "0.0.3",
387
+ "version": "0.0.8",
300
388
  "category": "UI and interaction",
301
389
  "upstream": {
302
390
  "package": "shadcn-ui/ui (radix base)",
303
391
  "version": "4baadbc6517070ae8f8feb2c97037adc2b305544 + shadcn@4.14.1"
304
392
  },
305
- "surface": "Tiers 1-2 complete plus the first Tier-3 composites — 40 component families (~185 exports). STYLING FLAVOR: the package is mid-migration from the pinned bases/radix semantic-hook (cn-*) system to the default-Tailwind utilities-inlined flavor (user-directed; class strings verbatim from supplied sources or upstream new-york-v4). Migrated: accordion, alert, alert-dialog, avatar, badge, breadcrumb, button, card, checkbox, collapsible, dialog, input, label, progress, radio-group, separator, skeleton, slider, sonner, switch, table, tabs, textarea, toggle, toggle-group. Still cn-*-hooked (style-sheet-dependent): select, scroll-area, sheet, tooltip, popover, hover-card, dropdown-menu, context-menu, menubar, navigation-menu, pagination, sidebar, field, item, empty, native-select, kbd, spinner. Structure/behavior are unchanged by the flavor migration; the shipped registry (packages/shadcn/registry, 47 items) carries the current flavors and the migrated ones install through the upstream shadcn CLI without its cn-* style-transform stripping.",
393
+ "surface": "Two primitive bases. RADIX base (default, reached at the bare subpaths): tiers 1-2 complete plus the first tier-3 composites — 40 component families. REACT ARIA base (@octanejs/shadcn/react-aria/<Family>): 33 families over @octanejs/aria/components, taken from upstream's aria-nova style and verified class-string identical to it; not ported are select and sonner (need input-group and next-themes), while hover-card, menubar and navigation-menu do not exist in upstream's aria base. Sources live at src/bases/<base>/ui/ with lib/hooks/styles shared. DISTRIBUTION is registry-first with per-family subpath exports; the monolithic root entry is removed. STYLING FLAVOR: the radix base is mid-migration from the pinned cn-* semantic-hook system to the default-Tailwind utilities-inlined flavor (user-directed); the react-aria base is uniformly the utilities-inlined aria-nova output. The shipped registry (packages/shadcn/registry) still emits the radix base only — the per-base registry namespace is decided when the first consumer needs it. BASE UI base (@octanejs/shadcn/base-ui/<Family>): STARTED, 21 of 44 families and PARTIAL. `accordion` is transcribed from upstream and runs on the @octanejs/base-ui accordion primitive — the first primitive-backed family in this base. The rest are primitive-free: `alert` is transcribed from upstream's Base UI source and verified byte-identical to it; `aspect-ratio`, `card`, `empty`, `native-select`, `skeleton` and `spinner` are DERIVED from the react-aria base and are NOT yet verified against upstream, which each file's header records. Nothing primitive-backed is ported: Base UI's primitive API is structurally different from React Aria's, so it cannot be derived and needs transcribed upstream sources. The foundations now run on real Base UI primitives: `button` (Button), `input` (Field.Control), `label` (Field.Label) and `separator` (Separator), alongside plain-host `textarea` and `kbd` — Base UI ships no textarea or Keyboard primitive, so those match the radix base's shape rather than the aria base's. `separator` deliberately takes the ARIA base's class string, not the radix one: Base UI emits `aria-orientation`, so radix's `data-horizontal:` utilities would never match and the separator would render with no thickness. `button` omits the aria base's data-variant/data-size, which upstream's Base UI base also omits, and ships no LinkButton because Base UI has no Link primitive — which is why `pagination` remains unported. `alert-dialog` is transcribed from upstream and is the first portalled family here (Overlay->Backdrop, Content->Popup, Cancel->Close); it drops upstream's `cn-font-heading` on the title, matching the react-aria base, because this package ships the utilities-inlined flavor and nothing defines that semantic hook. The form controls (`checkbox`, `switch`, `radio-group`) adapt their conditional utilities rather than copying them: Base UI publishes bare `data-checked`/`data-unchecked` where radix publishes `data-state=\"checked\"`, and every Root renders a `<span role=…>` that is never `:disabled`, so `disabled:` variants become `data-disabled:`. Both dialects are pinned by tests asserting the rendered DOM carries the attributes the class strings target. The overlays (`dialog`, `popover`, `tooltip`, plus `alert-dialog`) adapt positioning: Base UI inserts a Positioner layer (Portal > Positioner > Popup) and names its transform origin `--transform-origin`, not radix's `--radix-<part>-content-transform-origin`, so a copied radix class would reference a variable nothing sets and the popup would scale from the wrong corner. Tooltip also drops radix's `data-[state=delayed-open]` utilities, which have no Base UI counterpart. `PopoverAnchor` is absent because Base UI positions via the Positioner's `anchor` prop rather than an Anchor element — recorded in tests/cross-base.test.ts.",
306
394
  "divergences": [
307
395
  "No `\"use client\"` directives anywhere: octane has no Server Components, so the RSC axis does not exist here.",
308
396
  "Refs are props (octane has no forwardRef) — upstream v4 already dropped forwardRef, so component shapes match.",
@@ -315,14 +403,15 @@
315
403
  "Accordion arrow-key navigation is collection-driven in the radix binding rather than RovingFocusGroup-wrapped; Home/End/Arrow focus movement between triggers is behaviorally equivalent and tested.",
316
404
  "FieldError renders falsy error-list entries as null instead of React's skipped false children — identical output.",
317
405
  "SidebarTrigger's click handling is the native delegated click event; behavior is otherwise identical to upstream. At this pin SidebarProvider does not mount a TooltipProvider, so consumers using SidebarMenuButton's tooltip prop must provide one (matches upstream).",
318
- "The packaged theme.css omits the upstream site-only tokens (--surface, --code-*, --selection*) and inlines concrete oklch values for --chart-1..5 (upstream references Tailwind palette variables, which require a Tailwind build this standalone file cannot assume)."
406
+ "The packaged theme.css omits the upstream site-only tokens (--surface, --code-*, --selection*) and inlines concrete oklch values for --chart-1..5 (upstream references Tailwind palette variables, which require a Tailwind build this standalone file cannot assume).",
407
+ "The Base UI base's derived components carry unverified class strings. This is tracked rather than assumed safe: the bases genuinely diverge (the radix base's Skeleton is `bg-accent` where react-aria's is `bg-muted`), so identity is verified per component. `badge` was deliberately NOT derived — the react-aria version takes `render` as a function while Base UI's takes an element, so deriving it would ship the wrong API."
319
408
  ],
320
409
  "ssr": "Tier 1 is fully server-rendered and tested (17 families through renderToString with no browser globals, including Slot-composed hosts), with hydration adoption pinned for representative shapes (plain host, Button-asChild anchor, nested Table) — zero mismatch, preserved node identity. Tier 2's portal-free components (Checkbox, RadioGroup, Switch, Slider, Tabs, Toggle, ToggleGroup, Accordion, Collapsible, AspectRatio, Progress) are server-rendered and tested. Field is SSR-safe (no portals/browser globals); Sidebar server-renders its static desktop branch (useIsMobile is false on the server; the mobile Sheet branch and tooltip portals are client-only). Portal-backed overlays/menus/Select are excluded until the radix binding supports overlay SSR; ScrollArea awaits verification of its viewport style injection on the server.",
321
- "verified": "2026-07-25"
410
+ "verified": "2026-08-01"
322
411
  },
323
412
  {
324
413
  "name": "@octanejs/sonner",
325
- "version": "0.1.13",
414
+ "version": "0.1.18",
326
415
  "category": "UI and interaction",
327
416
  "upstream": { "package": "sonner", "version": "2.0.7" },
328
417
  "surface": "Complete against the published `sonner@2.0.7` public surface: `Toaster`, the callable `toast` API and all methods, `useSonner`, promise lifecycle, multiple toaster targeting, stacked layout, themes, styling, focus management, timers, and swipe dismissal.",
@@ -334,9 +423,22 @@
334
423
  "ssr": "Supported and tested: `Toaster` server-renders without browser globals, hydrates by adopting the server host, and can show the first client-created toast without replacing it.",
335
424
  "verified": "2026-07-13"
336
425
  },
426
+ {
427
+ "name": "@octanejs/streamdown",
428
+ "version": "0.1.2",
429
+ "category": "Forms and content",
430
+ "upstream": { "package": "streamdown", "version": "2.5.0" },
431
+ "surface": "Complete Streamdown 2.5.0 root runtime and public type surface, plus the official code 1.1.1, math 1.0.2, Mermaid 1.0.2, and CJK 1.0.3 plugins exposed through ./code, ./math, ./mermaid, and ./cjk.",
432
+ "divergences": [
433
+ "Components, hooks, contexts, lazy boundaries, portals, element inspection, and the HAST JSX runtime target Octane; callbacks receive native DOM events instead of React synthetic events.",
434
+ "The four official plugins are consolidated as subpath exports of @octanejs/streamdown instead of separate packages."
435
+ ],
436
+ "ssr": "Static and streaming Markdown, custom components, code blocks, math markup, and hydration are covered by dedicated server and hydration tests. Browser-only controls and deferred Mermaid rendering remain inert until mounted.",
437
+ "verified": "2026-07-30"
438
+ },
337
439
  {
338
440
  "name": "@octanejs/styled-components",
339
- "version": "0.1.10",
441
+ "version": "0.1.15",
340
442
  "category": "Styling, tests, and devtools",
341
443
  "upstream": { "package": "styled-components", "version": "6.4.3" },
342
444
  "surface": "Full v6 web API, ported from the upstream 6.4.3 sources: `styled` with every HTML/SVG tag shortcut, `.attrs`/`.withConfig` chaining, `css`, `keyframes`, `createGlobalStyle`, `createTheme`, `ThemeProvider`/`ThemeContext`/`ThemeConsumer`/`useTheme`/`withTheme`, `StyleSheetManager`/`StyleSheetContext`/`StyleSheetConsumer` (targets, namespaces, vendor prefixing, stylis plugins, `shouldForwardProp`), `ServerStyleSheet`, `isStyledComponent`, `version`, and `__PRIVATE__`. Component selectors, folding (`styled(Styled)`), transient `$` props, `as`/`forwardedAs`, and the grouped CSSOM sheet engine (with upstream `data-styled` rehydration) all behave as upstream. The React Native surface and the RSC-only `stylisPluginRSC` are not ported.",
@@ -355,7 +457,7 @@
355
457
  },
356
458
  {
357
459
  "name": "@octanejs/stylex",
358
- "version": "0.1.17",
460
+ "version": "0.1.22",
359
461
  "category": "Styling, tests, and devtools",
360
462
  "upstream": { "package": "@stylexjs/stylex", "version": "0.19.0" },
361
463
  "surface": "Full compile-time integration: re-exports the StyleX runtime API (`create`, `props`, `attrs`, `keyframes`, `defineVars`, `createTheme`) and registers as an import source; the `/vite` plugin runs the StyleX compiler over octane's compiled output and emits one static atomic stylesheet (`virtual:stylex.css`) with zero StyleX runtime in the bundle.",
@@ -368,7 +470,7 @@
368
470
  },
369
471
  {
370
472
  "name": "@octanejs/tanstack-ai",
371
- "version": "0.0.12",
473
+ "version": "0.0.17",
372
474
  "category": "AI, data, and routing",
373
475
  "upstream": { "package": "@tanstack/ai-react", "version": "0.17.0" },
374
476
  "surface": "Ports the @tanstack/ai-react 0.17.0 hook surface (useChat, useRealtimeChat, useGeneration, useGenerateImage/Audio/Speech/Video, useTranscription, useSummarize, useAudioRecorder, useMcpAppBridge) while reusing @tanstack/ai 0.41.0 and @tanstack/ai-client 0.21.0 unchanged and mirroring all 30 @tanstack/ai-client convenience re-exports from the upstream index.",
@@ -387,7 +489,7 @@
387
489
  },
388
490
  {
389
491
  "name": "@octanejs/tanstack-devtools",
390
- "version": "0.0.12",
492
+ "version": "0.0.17",
391
493
  "category": "Styling, tests, and devtools",
392
494
  "upstream": { "package": "@tanstack/react-devtools", "version": "0.10.7" },
393
495
  "surface": "Ports the @tanstack/react-devtools 0.10.7 public surface (the `TanStackDevtools` component plus its plugin/init types) onto Octane while reusing the framework-agnostic `@tanstack/devtools` 0.12.5 core (`TanStackDevtoolsCore`) unchanged. Plugin, title, and custom-trigger content authored as Octane elements is portaled into the containers the core creates.",
@@ -402,7 +504,7 @@
402
504
  },
403
505
  {
404
506
  "name": "@octanejs/tanstack-form",
405
- "version": "0.0.12",
507
+ "version": "0.0.17",
406
508
  "category": "Forms and content",
407
509
  "upstream": { "package": "@tanstack/react-form", "version": "1.33.2" },
408
510
  "surface": "Ports the complete @tanstack/react-form 1.33.2 adapter surface (`useForm`, `useField`, form and field groups, hook contexts and component composition) while re-exporting @tanstack/form-core 1.33.2 unchanged and using @octanejs/tanstack-store for subscriptions.",
@@ -416,7 +518,7 @@
416
518
  },
417
519
  {
418
520
  "name": "@octanejs/tanstack-hotkeys",
419
- "version": "0.0.7",
521
+ "version": "0.0.12",
420
522
  "category": "UI and interaction",
421
523
  "upstream": { "package": "@tanstack/react-hotkeys", "version": "0.10.0" },
422
524
  "surface": "Complete: the full upstream hook surface (`useHotkey`, `useHotkeys`, `useHeldKeys`, `useHeldKeyCodes`, `useKeyHold`, `useHotkeySequence`, `useHotkeySequences`, `useHotkeyRecorder`, `useHotkeySequenceRecorder`, `useHotkeyRegistrations`) plus `HotkeysProvider`/`useHotkeysContext`/`useDefaultHotkeysOptions`, re-exporting the framework-agnostic `@tanstack/hotkeys@0.8.0` core unchanged; store subscriptions go through `@octanejs/tanstack-store`.",
@@ -428,7 +530,7 @@
428
530
  },
429
531
  {
430
532
  "name": "@octanejs/tanstack-pacer",
431
- "version": "0.0.7",
533
+ "version": "0.0.12",
432
534
  "category": "UI and interaction",
433
535
  "upstream": { "package": "@tanstack/react-pacer", "version": "0.22.1" },
434
536
  "surface": "Complete: every upstream hook family — debouncer (`useDebouncer`, `useDebouncedState`, `useDebouncedValue`, `useDebouncedCallback`), throttler, rate-limiter, queuer, batcher, and their async variants (async-debouncer, async-throttler, async-rate-limiter, async-queuer, async-batcher) — plus `PacerProvider`/`usePacerContext`/`useDefaultPacerOptions`, the per-instance `Subscribe` render-prop component, and the upstream subpath exports (`/debouncer`, `/async-retryer`, `/types`, `/utils`, ...), re-exporting the framework-agnostic `@tanstack/pacer@0.21.1` core unchanged.",
@@ -440,7 +542,7 @@
440
542
  },
441
543
  {
442
544
  "name": "@octanejs/tanstack-query",
443
- "version": "0.1.17",
545
+ "version": "0.1.22",
444
546
  "category": "AI, data, and routing",
445
547
  "upstream": { "package": "@tanstack/react-query", "version": "5.101.3" },
446
548
  "surface": "Complete: 58/58 runtime exports plus the full TypeScript surface; the export surface is byte-identical to upstream in both directions (locked by test), and `@tanstack/query-core` is re-exported verbatim.",
@@ -452,7 +554,7 @@
452
554
  },
453
555
  {
454
556
  "name": "@octanejs/tanstack-router",
455
- "version": "0.1.17",
557
+ "version": "0.1.22",
456
558
  "category": "AI, data, and routing",
457
559
  "upstream": { "package": "@tanstack/react-router", "version": "1.170.18" },
458
560
  "surface": "Octane's TanStack Router binding: typed route factories and hooks, the full Match pipeline and lifecycle, file routes with TSRX-aware generator integration, full Link navigation/preloading/masking behavior, blocking, Await/deferred hydration, scroll restoration, lazy routes, not-found handling, document/head assets, and client/server SSR entries.",
@@ -466,7 +568,7 @@
466
568
  },
467
569
  {
468
570
  "name": "@octanejs/tanstack-router-ssr-query",
469
- "version": "0.0.7",
571
+ "version": "0.0.12",
470
572
  "category": "AI, data, and routing",
471
573
  "upstream": { "package": "@tanstack/react-router-ssr-query", "version": "1.167.1" },
472
574
  "surface": "Complete: `setupRouterSsrQueryIntegration` (the package's only export) delegating to `@tanstack/router-ssr-query-core@1.169.1`, with the QueryClientProvider Wrap composition on Octane.",
@@ -476,7 +578,7 @@
476
578
  },
477
579
  {
478
580
  "name": "@octanejs/tanstack-store",
479
- "version": "0.0.12",
581
+ "version": "0.0.17",
480
582
  "category": "Shared state",
481
583
  "upstream": { "package": "@tanstack/react-store", "version": "0.11.0" },
482
584
  "surface": "Re-exports `@tanstack/store@0.11.0` unchanged and implements the stable React binding surface (`useSelector`, `useAtom`, `useCreateAtom`, `useCreateStore`, `createStoreContext`, and deprecated `useStore`) on Octane hooks.",
@@ -488,7 +590,7 @@
488
590
  },
489
591
  {
490
592
  "name": "@octanejs/tanstack-table",
491
- "version": "0.1.15",
593
+ "version": "0.1.20",
492
594
  "category": "Data-heavy screens",
493
595
  "upstream": { "package": "@tanstack/react-table", "version": "9.0.0-beta.58" },
494
596
  "surface": "Complete port of the v9 adapter: the framework-agnostic `@tanstack/table-core` (constructTable + every tree-shakeable feature and row model) is reused verbatim, and the adapter — `useTable`, `Subscribe`, `flexRender`/`FlexRender`, `createTableHook`, `createTableHookContexts` — is transcribed onto octane hooks. Table state lives in TanStack Store atoms via the `coreReactivityFeature` bindings, and `useSelector` drives re-renders from the selected slice. Every store primitive (hooks, `createAtom`, `batch`, `shallow`, and the atom/store types) is imported from @octanejs/tanstack-store, which re-exports all of @tanstack/store — the binding takes no direct dependency on the store core, so there is only one path to it and atom identity cannot be split across duplicate copies.",
@@ -501,7 +603,7 @@
501
603
  },
502
604
  {
503
605
  "name": "@octanejs/tanstack-virtual",
504
- "version": "0.1.15",
606
+ "version": "0.1.20",
505
607
  "category": "Data-heavy screens",
506
608
  "upstream": { "package": "@tanstack/react-virtual", "version": "3.14.5" },
507
609
  "surface": "Complete 1:1 port: the framework-agnostic `@tanstack/virtual-core` (Virtualizer + observers + windowing math) is reused verbatim; the React adapter (`useVirtualizer`, `useWindowVirtualizer`, incl. `useFlushSync` and the experimental `directDomUpdates` surface) is transcribed onto octane hooks, preserving upstream's force-update + flushSync-on-sync-scroll wiring and layout-effect lifecycle.",
@@ -513,7 +615,7 @@
513
615
  },
514
616
  {
515
617
  "name": "@octanejs/tauri",
516
- "version": "0.0.1",
618
+ "version": "0.0.6",
517
619
  "category": "Desktop",
518
620
  "upstream": { "package": "@tauri-apps/api", "version": "2.11.1" },
519
621
  "surface": "Octane hooks over the framework-neutral Tauri IPC surface: useInvoke (suspending command), useInvokeState (pending/success/error with refetch), and useTauriEvent (event subscription with lifecycle-safe teardown). The rest of @tauri-apps/api — window, webview, menu, tray, path, dpi, image, and the plugin packages — is already framework-neutral and is imported directly rather than re-exported here.",
@@ -531,7 +633,7 @@
531
633
  },
532
634
  {
533
635
  "name": "@octanejs/testing-library",
534
- "version": "0.1.15",
636
+ "version": "0.1.20",
535
637
  "category": "Styling, tests, and devtools",
536
638
  "upstream": { "package": "@testing-library/react", "version": "unpinned" },
537
639
  "surface": "`render`/`rerender`/`cleanup`/`renderHook` + `act` over the verbatim `@testing-library/dom` (every query, `screen`, `within`, `waitFor`, `fireEvent`, `prettyDOM`, `configure`), with commit timing wired to octane's scheduler via the dom-library's `eventWrapper`/`asyncWrapper` config.",
@@ -544,7 +646,7 @@
544
646
  },
545
647
  {
546
648
  "name": "@octanejs/three",
547
- "version": "0.1.11",
649
+ "version": "0.1.16",
548
650
  "category": "Web 3D",
549
651
  "upstream": { "package": "@react-three/fiber", "version": "9.6.1 (2a528745)" },
550
652
  "surface": "Technical-preview Milestones 0–10 surface: renderer configuration and the DOM Canvas boundary, compiler ABI and renderer-local Three intrinsic types, catalogue and both extend forms, primitive/args construction, Three prop application, attachment, ordered placement/recreation, retained visibility, lifecycle/ref delivery, ownership-aware disposal, promise-returning HTMLCanvasElement and OffscreenCanvas roots, Octane act/flushSync scheduling, callback-aware unmountComponentAtNode, callable root state, scene/camera/raycaster and resize/DPR/viewport configuration, shadows/colors, one shared frame loop, controlled WebXR loop handoff, context-restore invalidation, compatible/reconstructing HMR, global effects, useStore/useThree/useFrame/useGraph and managed-instance helpers, the ray/pointer event system with DOM sources and custom managers, a keyed useLoader cache with preload/clear and GLTF graph augmentation, retained Suspense/Activity behavior, client Three-to-DOM pending/error projection, same-renderer createPortal targets with state/event enclaves and physical Three event bubbling, client-only Canvas shell streaming and production Vite/Rsbuild hydration adoption with the matching raw Rspack graph split, the explicit-target low-level DOMRegion boundary, a deterministic testing harness, an asynchronously acknowledged structured-clone transport proof, a checked public API/subpath matrix, Three r156/current compatibility lanes, a packed external consumer, real WebGL failure/recovery coverage, and semantic-checksummed renderer and shipped-size benchmarks.",
@@ -565,7 +667,7 @@
565
667
  },
566
668
  {
567
669
  "name": "@octanejs/tiptap",
568
- "version": "0.0.12",
670
+ "version": "0.0.17",
569
671
  "category": "Forms and content",
570
672
  "upstream": { "package": "@tiptap/react", "version": "3.28.0" },
571
673
  "surface": "Complete @tiptap/react 3.28.0 adapter surface across the root and ./menus entries: @tiptap/core re-exports, editor hooks and contexts, the EditorContent portal bridge, compound Tiptap API, ReactRenderer, custom NodeView/MarkView renderers and helpers, BubbleMenu, and FloatingMenu.",
@@ -580,9 +682,27 @@
580
682
  "ssr": "Covered across the complete surface: hooks use null server snapshots and suppress editor construction without a DOM, static NodeView/MarkView helpers render without a DOM renderer, detached menu targets are client-only, and hydration adopts deferred server shells before mounting live custom views and menus.",
581
683
  "verified": "2026-07-17"
582
684
  },
685
+ {
686
+ "name": "@octanejs/usehooks-ts",
687
+ "version": "0.0.4",
688
+ "category": "UI and interaction",
689
+ "upstream": {
690
+ "package": "usehooks-ts",
691
+ "version": "3.1.1",
692
+ "source": "https://github.com/juliencrn/usehooks-ts/tree/v3.1.1",
693
+ "license": "MIT"
694
+ },
695
+ "surface": "First host-safe cohort: useBoolean, useCounter, useToggle, useMap, useStep, useDebounceCallback, useDebounceValue, useInterval, useTimeout, useIsMounted, and useUnmount.",
696
+ "divergences": [
697
+ "Only the listed pure, timing, and lifecycle hooks are exported; browser storage/media hooks and DOM observer/direct-element hooks are deliberately absent.",
698
+ "Public setter types are structurally equivalent to React Dispatch/SetStateAction without importing React types."
699
+ ],
700
+ "ssr": "Supported for the listed cohort. Effects and timers do not run during server rendering; hydration activates lifecycle and timing work without requiring browser reads during render.",
701
+ "verified": "2026-07-29"
702
+ },
583
703
  {
584
704
  "name": "@octanejs/valtio",
585
- "version": "0.1.1",
705
+ "version": "0.1.6",
586
706
  "category": "Shared state",
587
707
  "upstream": { "package": "valtio", "version": "2.3.2" },
588
708
  "surface": "The framework-agnostic `valtio/vanilla` core and `valtio/vanilla/utils` are re-exported verbatim; `useSnapshot` and the `useProxy` utility are ported to Octane.",
@@ -594,7 +714,7 @@
594
714
  },
595
715
  {
596
716
  "name": "@octanejs/visx",
597
- "version": "0.1.12",
717
+ "version": "0.1.17",
598
718
  "category": "Data-heavy screens",
599
719
  "upstream": { "package": "@visx/visx", "version": "4.0.0 + master@485c035" },
600
720
  "surface": "Complete current Visx 4.x web runtime surface: the exact 35-namespace aggregate, all 40 feature entry points, and the eight public a11y/react, a11y/server, axis/react, scale/react, shape/react, theme/react, tooltip/floating, and voronoi/react subpaths. Released-only packages chord, delaunay, react-spring, sankey, and stats remain directly importable exactly as upstream specifies.",
@@ -608,9 +728,25 @@
608
728
  "ssr": "Fixed-dimension primitives, wrapped XYChart series, annotations, text, and wordclouds emit complete deterministic SVG on the server. Real hydrateRoot adoption preserves the same SVG/definition/axis/text/series/annotation/wordcloud nodes without warnings, replacement, or post-effect markup changes; generated IDs, measurement fallbacks, portals, and responsive initial sizes are covered.",
609
729
  "verified": "2026-07-14"
610
730
  },
731
+ {
732
+ "name": "@octanejs/wagmi",
733
+ "version": "0.0.3",
734
+ "category": "Web3",
735
+ "upstream": { "package": "wagmi", "version": "3.7.4" },
736
+ "surface": "WagmiProvider and createConfig over @wagmi/core 3.6.4, with config, connection, connect, disconnect, switch-connection, switch-chain, connectors, connections, chains, balance, contract read/simulate/write, transaction send/wait, and message-signing hooks.",
737
+ "divergences": [
738
+ "The binding targets Wagmi v3 names. Deprecated v2 useAccount/useSwitchAccount aliases and hooks outside the documented representative inventory are not exported.",
739
+ "Privileged mutation hooks force retry:false, require a current live connector, cancel before dispatch when the displayed wallet context changed, and quarantine a late success as ActionContextChangedError when account, chain, or connector changed after dispatch.",
740
+ "RainbowKit 2.2.x declares Wagmi v2 peers. Its defining provider/custom-button/modal contracts can be implemented over this v3 surface, proven by the deterministic disconnected-to-connecting-to-connected gate, but the downstream binding must document that peer-range divergence.",
741
+ "The connectors subpath exposes the dependency-free injected and deterministic mock connectors. Vendor connectors and their optional SDKs remain direct application dependencies.",
742
+ "EIP-1193 event validation, duplicate coalescing, and connector-generation invalidation are delegated unchanged to @wagmi/core 3.6.4. This binding does not add a second provider-event layer or claim independent normalization behavior."
743
+ ],
744
+ "ssr": "WagmiProvider supports ssr:true and initialState through @wagmi/core hydrate. parseHydratedState accepts only a versioned, 16 KiB-bounded public-state hint and rejects malformed or privileged material; a hydrated connection is never authority for signing or submission.",
745
+ "verified": "2026-07-29"
746
+ },
611
747
  {
612
748
  "name": "@octanejs/zustand",
613
- "version": "0.1.17",
749
+ "version": "0.1.22",
614
750
  "category": "Shared state",
615
751
  "upstream": { "package": "zustand", "version": "5.0.14" },
616
752
  "surface": "Complete 1:1 port: the framework-agnostic vanilla store is reused verbatim; `create`/`useStore`, `shallow`/`useShallow`, the traditional equality-fn variants, and all middleware (persist, devtools, subscribeWithSelector, combine, redux).",
@@ -627,9 +763,18 @@
627
763
  "@dnd-kit/react": "@octanejs/dnd-kit",
628
764
  "@floating-ui/react": "@octanejs/floating-ui",
629
765
  "@lexical/react": "@octanejs/lexical",
766
+ "@mantine/hooks": "@octanejs/mantine-hooks",
630
767
  "@mdx-js/react": "@octanejs/mdx",
768
+ "@phosphor-icons/react": "@octanejs/phosphor-icons",
769
+ "@rainbow-me/rainbowkit": "@octanejs/rainbowkit",
770
+ "@react-rxjs/core": "@octanejs/rxjs",
771
+ "@react-rxjs/utils": "@octanejs/rxjs",
631
772
  "@react-three/fiber": "@octanejs/three",
632
773
  "@reduxjs/toolkit": "@octanejs/redux-toolkit",
774
+ "@streamdown/cjk": "@octanejs/streamdown",
775
+ "@streamdown/code": "@octanejs/streamdown",
776
+ "@streamdown/math": "@octanejs/streamdown",
777
+ "@streamdown/mermaid": "@octanejs/streamdown",
633
778
  "@stylexjs/stylex": "@octanejs/stylex",
634
779
  "@tanstack/ai-react": "@octanejs/tanstack-ai",
635
780
  "@tanstack/react-devtools": "@octanejs/tanstack-devtools",
@@ -698,11 +843,14 @@
698
843
  "framer-motion": "@octanejs/motion",
699
844
  "jotai": "@octanejs/jotai",
700
845
  "lucide-react": "@octanejs/lucide",
846
+ "mobx-react": "@octanejs/mobx",
847
+ "mobx-react-lite": "@octanejs/mobx",
701
848
  "motion": "@octanejs/motion",
702
849
  "nuqs": "@octanejs/nuqs",
703
850
  "radix-ui": "@octanejs/radix",
704
851
  "react-aria": "@octanejs/aria",
705
852
  "react-aria-components": "@octanejs/aria",
853
+ "react-error-boundary": "@octanejs/react-error-boundary",
706
854
  "react-hook-form": "@octanejs/hook-form",
707
855
  "react-i18next": "@octanejs/i18next",
708
856
  "react-redux": "@octanejs/redux",
@@ -712,8 +860,11 @@
712
860
  "recharts": "@octanejs/recharts",
713
861
  "shadcn": "@octanejs/shadcn",
714
862
  "sonner": "@octanejs/sonner",
863
+ "streamdown": "@octanejs/streamdown",
715
864
  "styled-components": "@octanejs/styled-components",
865
+ "usehooks-ts": "@octanejs/usehooks-ts",
716
866
  "valtio": "@octanejs/valtio",
867
+ "wagmi": "@octanejs/wagmi",
717
868
  "zustand": "@octanejs/zustand"
718
869
  },
719
870
  "errorCodes": {