You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-`skipMessageDataMemoization` prop exists for channels with 1000s of messages
113
117
@@ -248,6 +252,108 @@ Closes #123
248
252
249
253
**Release:** Automated via semantic-release based on commit messages.
250
254
255
+
### Deprecation Pattern
256
+
257
+
When deprecating, use `@deprecated` JSDoc tag with reason and docs link. Commit under `deprecate` type. See `developers/DEPRECATIONS.md` for full process.
258
+
259
+
## Build System
260
+
261
+
The build runs 5 steps in parallel via `concurrently`:
262
+
263
+
1.**`copy-css.sh`** β Copies pre-built CSS/SCSS/assets from `@stream-io/stream-chat-css` into `dist/`
264
+
2.**`build-translations`** β Extracts `t()` calls from source via `i18next-cli`
265
+
3.**`vite build`** β Bundles 3 entry points (index, emojis, mp3-encoder) as CJS + ESM, no minification
266
+
4.**`tsc`** β Generates `.d.ts` type declarations only (`tsconfig.lib.json`)
All steps write to separate directories under `dist/` so they don't conflict.
270
+
271
+
## Styling Architecture
272
+
273
+
### Dual-Layer CSS System
274
+
275
+
This repo has **two style sources**:
276
+
277
+
1.**`@stream-io/stream-chat-css`** (external dep) β Base design system. Copied to `dist/css/v2/` and `dist/scss/v2/` at build time. Organized as `*-layout.scss` (structure) + `*-theme.scss` (colors/typography) per component.
-**Validation**: `yarn lint` runs `scripts/validate-translations.js` β fails on any empty translation string (zero tolerance)
300
+
-**Date/time**: `Streami18n` class wraps i18next + Dayjs with per-locale calendar formats
301
+
-**When adding translatable strings**: Use `t()` from `useTranslationContext()`, then run `yarn build-translations` to update JSON files. All 12 language files must have non-empty values.
302
+
303
+
## Styling Architecture
304
+
305
+
### Dual-Layer CSS System
306
+
307
+
Styles come from two sources:
308
+
309
+
1.**`@stream-io/stream-chat-css`** β Base design system (copied to `dist/css/v2/` and `dist/scss/v2/` via `scripts/copy-css.sh`). Layout and theme SCSS split per component (`*-layout.scss` + `*-theme.scss`).
310
+
2.**`src/styling/`** β SDK-specific styles compiled to `dist/css/index.css` via Sass. Master entry: `src/styling/index.scss`.
311
+
312
+
Component styles live in `src/components/*/styling/index.scss` and are imported by the master stylesheet.
313
+
314
+
### CSS Layers & Theming
315
+
316
+
CSS layers control cascade order (no `!important` needed):
0 commit comments