Skip to content
Open
Show file tree
Hide file tree
Changes from 78 commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
e5d1f8f
feat(fuselage): Add Tamagui v3 foundation (config, tokens, themes, pr…
ggazzo Mar 26, 2026
b49e743
refactor(fuselage): Migrate Badge component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
c103d54
refactor(fuselage): Migrate Divider component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
6cd7ca1
refactor(fuselage): Migrate Tag component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
c563fa6
refactor(fuselage): Migrate Chip component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
46f599a
refactor(fuselage): Migrate Callout component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
85658c5
refactor(fuselage): Migrate FramedIcon component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
d9c8828
refactor(fuselage): Migrate Label component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
48f53ef
refactor(fuselage): Migrate Skeleton component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
f43f599
refactor(fuselage): Migrate Tile component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
ae0facf
refactor(fuselage): Migrate CodeSnippet component from SCSS to Tamagu…
ggazzo Mar 26, 2026
537e1b5
refactor(fuselage): Migrate Chevron component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
8d04afc
refactor(fuselage): Migrate ProgressBar component from SCSS to Tamagu…
ggazzo Mar 26, 2026
516ac2e
refactor(fuselage): Migrate Banner component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
4b14887
refactor(fuselage): Migrate Bubble component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
d5e878e
refactor(fuselage): Migrate States component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
2730fa5
refactor(fuselage): Migrate Field component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
9c53e44
refactor(fuselage): Migrate FieldGroup component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
f6e2972
refactor(fuselage): Migrate StatusBullet component from SCSS to Tamag…
ggazzo Mar 26, 2026
c89f589
refactor(fuselage): Migrate Throbber component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
8c6045d
refactor(fuselage): Migrate Tooltip component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
2aeb35f
refactor(fuselage): Migrate Grid component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
2569163
refactor(fuselage): Migrate Dropdown component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
97e94f7
refactor(fuselage): Migrate Pagination component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
d1d8add
refactor(fuselage): Migrate Card component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
dc49692
refactor(fuselage): Migrate CardGroup component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
647d747
refactor(fuselage): Migrate Avatar component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
11b256f
refactor(fuselage): Migrate Icon component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
8d6e7b7
refactor(fuselage): Migrate Option component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
0b029e6
refactor(fuselage): Migrate Options component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
22c50a6
refactor(fuselage): Migrate AutoComplete component from SCSS to Tamag…
ggazzo Mar 26, 2026
9007509
refactor(fuselage): Migrate Accordion component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
c865e6e
refactor(fuselage): Migrate Tabs component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
d087f30
refactor(fuselage): Migrate Table component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
475bc11
refactor(fuselage): Migrate ButtonGroup from SCSS to Tamagui v3
ggazzo Mar 26, 2026
746d2ea
refactor(fuselage): Migrate CheckBox from SCSS to Tamagui v3
ggazzo Mar 26, 2026
b9ba7ba
refactor(fuselage): Migrate RadioButton from SCSS to Tamagui v3
ggazzo Mar 26, 2026
757628e
refactor(fuselage): Migrate ToggleSwitch from SCSS to Tamagui v3
ggazzo Mar 26, 2026
bf803bb
refactor(fuselage): Migrate Modal component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
84f9c55
refactor(fuselage): Migrate NavBar component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
b80ae33
refactor(fuselage): Migrate Sidepanel component from SCSS to Tamagui v3
ggazzo Mar 26, 2026
01eb99f
refactor(fuselage): Migrate Button from SCSS to Tamagui v3
ggazzo Mar 26, 2026
e440fa5
refactor(fuselage): Migrate InputBox from SCSS to Tamagui v3
ggazzo Mar 26, 2026
52c5934
refactor(fuselage): Migrate Select from SCSS to Tamagui v3
ggazzo Mar 26, 2026
21b1a9c
fix(fuselage): Remove deleted button.scss import from MessageReaction…
ggazzo Mar 26, 2026
27552dd
refactor(fuselage): Migrate Sidebar from SCSS to Tamagui v3
ggazzo Mar 26, 2026
ba829ef
refactor(fuselage): Migrate SidebarV2 from SCSS to Tamagui v3
ggazzo Mar 26, 2026
a4b1795
refactor(fuselage): Migrate Message from SCSS to Tamagui v3
ggazzo Mar 26, 2026
51b19cb
refactor(fuselage): Migrate ToastBar from SCSS to Tamagui v3
ggazzo Mar 26, 2026
04e9394
chore(fuselage): Remove Box SCSS and clear index.scss
ggazzo Mar 26, 2026
53aa3fd
refactor(fuselage): Extract Box to @rocket.chat/fuselage-box package
ggazzo Mar 26, 2026
c828cb9
chore(fuselage): Remove leftover SCSS files from rebase
ggazzo Mar 26, 2026
6900bce
fix(fuselage): Add react-native-web as devDependency for Tamagui peer…
ggazzo Mar 27, 2026
65b65a3
feat: Create @rocket.chat/fuselage-ui example package
ggazzo Mar 27, 2026
6489dbf
feat: Create @rocket.chat/fuselage-admin example package
ggazzo Mar 27, 2026
3e20c4c
feat: Create demo app showing multi-package Tamagui architecture
ggazzo Mar 27, 2026
353ede3
feat: Enable Tamagui compile-time CSS extraction
ggazzo Mar 27, 2026
0f51484
feat: Update demo app configuration and components
ggazzo Mar 27, 2026
d743c67
fix(fuselage): Remove @types/react-native-web to fix CI type conflicts
ggazzo Mar 27, 2026
4b8833f
fix(fuselage-box): Use bundler module resolution for extensionless im…
ggazzo Mar 27, 2026
1945fba
fix(fuselage-box): Add lint dependencies and fix formatting
ggazzo Mar 27, 2026
0c95225
fix(fuselage): Remove transpileOnly to restore declaration emission
ggazzo Mar 27, 2026
d487dec
fix(fuselage): Split build into webpack (transpileOnly) + tsc (declar…
ggazzo Mar 27, 2026
3687472
fix(fuselage): Restore index.scss import for CSS output
ggazzo Mar 27, 2026
ee435d7
fix: Use bundler moduleResolution in packages that depend on fuselage
ggazzo Mar 27, 2026
cbabeee
fix: Add react-native shim to base tsconfig for tamagui compatibility
ggazzo Mar 31, 2026
637227d
fix: Add FuselageProvider to all downstream Storybook previews
ggazzo Mar 31, 2026
e16c979
chore: Remove fuselage-admin and fuselage-ui packages
ggazzo Mar 31, 2026
de5becf
fix(fuselage): Reintroduce fuselage-box exports and enable CSS import…
ggazzo Mar 31, 2026
7083c4b
chore: Update yarn.lock to reflect dependency changes
ggazzo Mar 31, 2026
2ba9782
feat(fuselage): Add Box props compatibility layer for Tamagui components
ggazzo Mar 31, 2026
2242e5c
feat(fuselage): Apply Box props compat layer to Divider
ggazzo Mar 31, 2026
7b7b62a
chore: Build storybook-dark-mode before storybook in all packages
ggazzo Mar 31, 2026
79d9030
fix(fuselage): Fix CI — Jest ESM transforms + build-storybook scripts
ggazzo Apr 1, 2026
c07cb49
fix: Add Jest transformIgnorePatterns to all packages using fuselage
ggazzo Apr 1, 2026
dd8230a
fix(fuselage): Bundle tamagui and fuselage-box into UMD output
ggazzo Apr 1, 2026
71503f7
fix(fuselage): Use RcxText for Skeleton to allow text children
ggazzo Apr 1, 2026
be29fa4
refactor(fuselage): Replace tamagui with @tamagui/core
ggazzo Apr 1, 2026
fb2f27e
fix(fuselage): Add missing padding, margin, inset token functions
ggazzo Apr 1, 2026
3d35670
refactor(fuselage): Migrate MessageDivider to pure Tamagui
ggazzo Apr 1, 2026
63a5fd6
refactor(fuselage): Convert MessageBody to Tamagui + fix Message tokens
ggazzo Apr 1, 2026
50b2564
refactor(fuselage): Replace negative margin pattern with gap in Message
ggazzo Apr 1, 2026
53b6918
feat(fuselage): Re-export styled, View, Text, createStyledContext fro…
ggazzo Apr 1, 2026
f134556
fix(fuselage): Export InputBoxWrapper from InputBox index
ggazzo Apr 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 8 additions & 0 deletions .cursor/hooks/state/continual-learning.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"version": 1,
"lastRunAtMs": 0,
"turnsSinceLastRun": 1,
"lastTranscriptMtimeMs": null,
"lastProcessedGenerationId": "6d6faa1c-92bf-4768-a486-ad183ef31872",
"trialStartedAtMs": null
}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,4 @@ node_modules/
**/.storybook/jest-results.json
**/bundle-report.html
.env
dist
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
| 📦 [`@rocket.chat/css-supports`](/packages/css-supports) | Memoized and SSR-compatible facade of CSS.supports API | [![npm](https://img.shields.io/npm/v/@rocket.chat/css-supports?style=flat-square)](https://www.npmjs.com/package/@rocket.chat/css-supports) | ![deps](https://img.shields.io/librariesio/release/npm/@rocket.chat/css-supports?style=flat-square) |
| 📦 [`@rocket.chat/emitter`](/packages/emitter) | Event Emitter by Rocket.Chat | [![npm](https://img.shields.io/npm/v/@rocket.chat/emitter?style=flat-square)](https://www.npmjs.com/package/@rocket.chat/emitter) | ![deps](https://img.shields.io/librariesio/release/npm/@rocket.chat/emitter?style=flat-square) |
| 📦 [`@rocket.chat/fuselage`](/packages/fuselage) | Rocket.Chat's React Components Library | [![npm](https://img.shields.io/npm/v/@rocket.chat/fuselage?style=flat-square)](https://www.npmjs.com/package/@rocket.chat/fuselage) | ![deps](https://img.shields.io/librariesio/release/npm/@rocket.chat/fuselage?style=flat-square) |
| 📦 [`@rocket.chat/fuselage-box`](/packages/fuselage-box) | Box component and styling utilities extracted from @rocket.chat/fuselage | [![npm](https://img.shields.io/npm/v/@rocket.chat/fuselage-box?style=flat-square)](https://www.npmjs.com/package/@rocket.chat/fuselage-box) | ![deps](https://img.shields.io/librariesio/release/npm/@rocket.chat/fuselage-box?style=flat-square) |
| 📦 [`@rocket.chat/fuselage-forms`](/packages/fuselage-forms) | A set of component wrappers to provide ease of use and accessibility out-of-box. | [![npm](https://img.shields.io/npm/v/@rocket.chat/fuselage-forms?style=flat-square)](https://www.npmjs.com/package/@rocket.chat/fuselage-forms) | ![deps](https://img.shields.io/librariesio/release/npm/@rocket.chat/fuselage-forms?style=flat-square) |
| 📦 [`@rocket.chat/fuselage-hooks`](/packages/fuselage-hooks) | React hooks for Fuselage, Rocket.Chat's design system and UI toolkit | [![npm](https://img.shields.io/npm/v/@rocket.chat/fuselage-hooks?style=flat-square)](https://www.npmjs.com/package/@rocket.chat/fuselage-hooks) | ![deps](https://img.shields.io/librariesio/release/npm/@rocket.chat/fuselage-hooks?style=flat-square) |
| 📦 [`@rocket.chat/fuselage-toastbar`](/packages/fuselage-toastbar) | Fuselage ToastBar component | [![npm](https://img.shields.io/npm/v/@rocket.chat/fuselage-toastbar?style=flat-square)](https://www.npmjs.com/package/@rocket.chat/fuselage-toastbar) | ![deps](https://img.shields.io/librariesio/release/npm/@rocket.chat/fuselage-toastbar?style=flat-square) |
Expand Down
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"name": "@rocket.chat/fuselage-monorepo",
"private": true,
"workspaces": [
"apps/*",
"packages/*",
"tools/*"
],
Expand Down Expand Up @@ -29,6 +30,7 @@
"@changesets/cli": "~2.30.0",
"@eslint/js": "~9.39.2",
"@rocket.chat/prettier-config": "workspace:~",
"@tamagui/vite-plugin": "2.0.0-rc.31",
"eslint": "~9.39.2",
"eslint-import-resolver-typescript": "~4.4.4",
"eslint-plugin-import-x": "~4.16.2",
Expand Down
89 changes: 89 additions & 0 deletions packages/fuselage-box/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
<!--header-->

<p align="center">
<a href="https://rocket.chat" title="Rocket.Chat">
<img src="https://github.com/RocketChat/Rocket.Chat.Artwork/raw/master/Logos/2020/png/logo-horizontal-red.png" alt="Rocket.Chat" />
</a>
</p>

# `@rocket.chat/fuselage-box`

> Box component and styling utilities extracted from @rocket.chat/fuselage

---

[![npm@latest](https://img.shields.io/npm/v/@rocket.chat/fuselage-box/latest?style=flat-square)](https://www.npmjs.com/package/@rocket.chat/fuselage-box/v/latest) [![npm@next](https://img.shields.io/npm/v/@rocket.chat/fuselage-box/next?style=flat-square)](https://www.npmjs.com/package/@rocket.chat/fuselage-box/v/next) ![react version](https://img.shields.io/npm/dependency-version/@rocket.chat/fuselage-box/peer/react?style=flat-square) ![npm downloads](https://img.shields.io/npm/dw/@rocket.chat/fuselage-box?style=flat-square) ![License: MIT](https://img.shields.io/npm/l/@rocket.chat/fuselage-box?style=flat-square)

![deps](https://img.shields.io/librariesio/release/npm/@rocket.chat/fuselage-box?style=flat-square) ![npm bundle size](https://img.shields.io/bundlephobia/min/@rocket.chat/fuselage-box?style=flat-square)

<!--/header-->

## Install

<!--install-->

Firstly, install the peer dependencies (prerequisites):

```sh
npm i react

# or, if you are using yarn:

yarn add react
```

Add `@rocket.chat/fuselage-box` as a dependency:

```sh
npm i @rocket.chat/fuselage-box

# or, if you are using yarn:

yarn add @rocket.chat/fuselage-box
```

<!--/install-->

## Contributing

<!--contributing(msg)-->

Contributions, issues, and feature requests are welcome!<br />
Feel free to check the [issues](https://github.com/RocketChat/fuselage/issues).

<!--/contributing(msg)-->

### Building

As this package dependends on others in this monorepo, before anything run the following at the root directory:

<!--yarn(build)-->

```sh
yarn build
```

<!--/yarn(build)-->

### Linting

To ensure the source is matching our coding style, we perform [linting](<https://en.wikipedia.org/wiki/Lint_(software)>).
Before commiting, check if your code fits our style by running:

<!--yarn(lint)-->

```sh
yarn lint
```

<!--/yarn(lint)-->

Some linter warnings and errors can be automatically fixed:

<!--yarn(lint-and-fix)-->

```sh
yarn lint-and-fix
```

<!--/yarn(lint-and-fix)-->
54 changes: 54 additions & 0 deletions packages/fuselage-box/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
{
"name": "@rocket.chat/fuselage-box",
"version": "0.1.0",
"description": "Box component and styling utilities extracted from @rocket.chat/fuselage",
"homepage": "https://github.com/RocketChat/fuselage#readme",
"bugs": {
"url": "https://github.com/RocketChat/fuselage/issues"
},
"repository": {
"type": "git",
"url": "git+https://github.com/RocketChat/fuselage.git",
"directory": "packages/fuselage-box"
},
"license": "MIT",
"author": {
"name": "Rocket.Chat",
"url": "https://rocket.chat/"
},
"type": "module",
"main": "dist/index.js",
"module": "dist/index.js",
"types": "dist/index.d.ts",
"files": [
"/dist"
],
"scripts": {
"build": "tsc",
"lint": "lint",
"lint-and-fix": "lint-and-fix"
},
"dependencies": {
"@rocket.chat/css-in-js": "workspace:~",
"@rocket.chat/fuselage-tokens": "workspace:~",
"@rocket.chat/memo": "workspace:~",
"invariant": "^2.2.4"
},
"devDependencies": {
"@types/invariant": "^2.2.37",
"@types/react": "~18.3.27",
"eslint": "~9.39.2",
"lint-all": "workspace:~",
"prettier": "~3.6.2",
"typescript": "~5.9.3"
},
"peerDependencies": {
"react": "*"
},
"volta": {
"extends": "../../package.json"
},
"publishConfig": {
"access": "public"
}
}
Loading
Loading