Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
5927845
feat(iot-hub): add IoT Hub section with build-time API fetch
vvlladd28 May 26, 2026
383797d
fix(iot-hub): address review findings
vvlladd28 May 26, 2026
c09e6bb
feat(iot-hub): implement home page design from Figma
vvlladd28 May 27, 2026
23d60e5
chore(iot-hub): migrate to @ path aliases, relocate modules, bump deps
ikulikov May 27, 2026
c726c68
feat(iot-hub): refine hero spacing, transparency, and per-category ac…
ikulikov May 27, 2026
d59b039
feat(iot-hub): clickable hero highlights with synced cluster icons
ikulikov May 28, 2026
0101704
feat(iot-hub): align home page spacing, layout, and load animation wi…
ikulikov May 28, 2026
c77dff8
feat(iot-hub): refactor listings collection and unify listing card
vvlladd28 May 28, 2026
9819031
feat(iot-hub): align compact listing card layout with Figma
vvlladd28 May 28, 2026
cb5e81d
feat(iot-hub): dark mode + responsive polish, hairline borders, searc…
ikulikov May 28, 2026
d4698f6
feat(iot-hub): redesign category listing page per Figma
vvlladd28 May 29, 2026
8655844
fix(dev): keep <style> tags out of Starlight's theme-icons <template>
ikulikov May 29, 2026
6c209f0
feat(iot-hub): filter panel with build-time facets + mobile drawer
vvlladd28 May 29, 2026
1a03903
fix(iot-hub): clear lint + type-check warnings
vvlladd28 May 29, 2026
20ec937
feat(iot-hub): implement listing detail page per Figma designs
ikulikov May 29, 2026
bc852be
Merge remote-tracking branch 'origin/main' into feature/iot-hub-page
vvlladd28 Jun 1, 2026
e1fbcc5
feat(iot-hub): shared IotHubIcon component + listing detail polish
ikulikov Jun 1, 2026
7420580
feat(iot-hub): TB version + CE/PE badges in detail hero, thingsboard …
ikulikov Jun 1, 2026
4e7799b
feat(iot-hub): install/connect dialog for listing cards and detail hero
vvlladd28 Jun 1, 2026
836dfae
refactor(iot-hub): rule-node chips per platform, drop Figma comments
ikulikov Jun 1, 2026
9f4b77d
feat(iot-hub): interactive screenshot carousel with drag + autoplay
ikulikov Jun 1, 2026
98f5b8c
feat(iot-hub): render listing description as markdown; install verb v…
ikulikov Jun 1, 2026
21b3258
feat(iot-hub): creator profile page
vvlladd28 Jun 1, 2026
ed8b433
fix(iot-hub): replace empty catch bindings in DetailGallery (eslint n…
vvlladd28 Jun 1, 2026
263a430
feat(iot-hub): split-and-render markdown — Code blocks + ImageGallery
ikulikov Jun 1, 2026
f6803fb
feat(iot-hub): markdown — Asides, doc-link buttons, listingDetail prop
ikulikov Jun 2, 2026
185f436
chore(iot-hub): comment cleanup; new IotHubListingLink + listing-link…
ikulikov Jun 2, 2026
b6f43cd
feat(iot-hub): use publishedListingCount on creator page
ikulikov Jun 2, 2026
862c747
refactor(iot-hub): creator page paginates across creator's whole cata…
ikulikov Jun 2, 2026
57a8f0d
feat(iot-hub): /iot-hub/search/ page + shared IotHubBreadcrumbs
ikulikov Jun 2, 2026
0f2ddee
feat(iot-hub): custom clear button on hero search input
ikulikov Jun 2, 2026
105dfc9
feat(iot-hub): hero search popup with debounced API search
ikulikov Jun 2, 2026
6a5dd26
refactor(iot-hub): IotHubListingLink + IotHubIcon → Pattern C (shared…
ikulikov Jun 2, 2026
aaad7b6
feat(iot-hub): dynamic search on /iot-hub/search/
ikulikov Jun 3, 2026
9a211c9
feat(iot-hub): dynamic search + filter integration across listing pages
ikulikov Jun 4, 2026
7395b1c
feat(iot-hub): fade in/out animation for install dialog
vvlladd28 Jun 4, 2026
5d7bcd2
fix(scss): migrate ~/styles/... imports to relative paths
vvlladd28 Jun 4, 2026
4c49df7
feat(iot-hub): fetch-error panel with debounced "Try again" retry
ikulikov Jun 5, 2026
b1a7642
fix(iot-hub): address PR review feedback
vvlladd28 Jun 5, 2026
8b06a65
feat(iot-hub): normalize external thingsboard.io links to canonical s…
vvlladd28 Jun 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 19 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,24 @@ All documentation lives in `src/content/docs/{lang}/` as `.mdx` files with YAML

### Path Alias

`~/*` maps to `./src/*` (configured in tsconfig.json).
**Always use the `@`-prefixed path aliases for local imports** — never relative paths (`../../`) and never the legacy `~/*` alias for new code. Aliases are configured in `tsconfig.json`:

| Alias | Maps to |
|-------|---------|
| `@models/*` | `src/models/*` |
| `@components/*` | `src/components/*` |
| `@layouts/*` | `src/layouts/*` |
| `@styles/*` | `src/styles/*` |
| `@data/*` | `src/data/*` |
| `@util/*` | `src/util/*` |
| `@includes/*` | `src/content/_includes/*` |
| `@root/*` | `src/*` (catch-all for paths without a dedicated alias, e.g. `@root/consts`, `@root/pages/...`) |

Prefer the most specific alias whenever one matches the target folder; fall back to `@root/*` only for `src/` paths no other alias covers.

Example: `import { foo } from '@util/fetch-utils';` (not `~/util/fetch-utils` or `../../util/fetch-utils`).

`~/*` (maps to `./src/*`) still exists for legacy code, but always prefer an `@` alias. SCSS `@use`/`@import` use **relative paths** (e.g., `@use '../../styles/_variables.scss' as *;`); inside `src/styles/` use sibling imports like `@use 'variables' as *;`.

### Starlight Customization

Expand Down Expand Up @@ -259,6 +276,7 @@ Use the `release` skill for the full checklist. Key files:
- Tabs for indentation in code files; spaces for JSON, Markdown, MDX, YAML, TOML
- Prettier with `prettier-plugin-astro`, printWidth 100, single quotes, trailing commas
- ESLint flat config with TypeScript and Astro plugins
- **No Figma references in comments.** Don't write "Figma", "Figma node 1234:5678", or any tool-specific node IDs in source comments — they're meaningless to anyone without access to the Figma file and rot fast. Refer to the visual spec as "the design" (or "per the design", "matches the design") and describe what's actually being implemented (sizes, colors, behaviors) so the comment stands on its own.

## CI Checks

Expand Down
18 changes: 0 additions & 18 deletions astro.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ export default defineConfig({
vite: {
resolve: {
alias: {
'~': fileURLToPath(new URL('./src', import.meta.url)),
'@starlight/icons': fileURLToPath(
new URL('./node_modules/@astrojs/starlight/components-internals/Icons.ts', import.meta.url)
),
Expand All @@ -53,23 +52,6 @@ export default defineConfig({
),
},
},
Comment thread
vvlladd28 marked this conversation as resolved.
css: {
preprocessorOptions: {
scss: {
importers: [
{
findFileUrl(url: string) {
if (!url.startsWith('~/')) return null;
return new URL(
url.slice(2),
new URL('./src/', import.meta.url)
);
},
},
],
},
},
},
optimizeDeps: {
include: ['photoswipe', 'photoswipe/lightbox'],
},
Expand Down
10 changes: 6 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
"@types/hast": "^3.0.4",
"@types/node": "^24.12.2",
"@typescript-eslint/parser": "^8.59.1",
"astro": "^6.1.9",
"astro": "^6.3.8",
"astro-eslint-parser": "^1.4.0",
"astro-icon": "^1.1.5",
"dedent-js": "^1.0.1",
Expand All @@ -61,11 +61,13 @@
"vite-plugin-svgo": "^2.0.0"
},
"dependencies": {
"@astrojs/check": "^0.9.8",
"@astrojs/check": "^0.9.9",
"@astrojs/markdown-remark": "^7.1.2",
"@astrojs/rss": "4.0.18",
"@astrojs/sitemap": "^3.7.2",
"@astrojs/starlight": "^0.38.4",
"@astrojs/sitemap": "^3.7.3",
"@astrojs/starlight": "^0.39.2",
"@expressive-code/plugin-collapsible-sections": "^0.41.7",
"@fontsource/material-icons": "^5.2.7",
"@lunariajs/core": "^0.1.1",
"canvas-confetti": "^1.9.4",
"photoswipe": "^5.4.4",
Expand Down
Loading