Commit graph

875 commits

Author SHA1 Message Date
Arthur Belleville
354785edff
Pass tablo list to dashboard views
Update DashboardPage and DashboardContentSwap to receive the list of
tablos so the sidebar can display real project data. Extract tablo icon
palette logic into a new tabloicons package that maps hex colors to
presentation attributes (icon, background, foreground colors).

Update handlers to load tablos from the repository before rendering
dashboard views. Refactor TabloCardView to use icon presentation instead
of initials when available.
2026-05-10 14:56:46 +02:00
Arthur Belleville
3232309388
Make tablo icon selection dynamic based on color using nearest palette
match

Instead of selecting icons based on tablo name length, compute the
closest matching icon from a predefined palette by comparing hex color
values. This ensures consistent icon-color pairing and better visual
harmony.
2026-05-10 14:18:33 +02:00
Arthur Belleville
c780dd1625
Remove server-side search filtering and implement client-side filtering
This commit moves project search filtering from the server to the
client.
Changes include:

- Remove `Query` field from `ListTablosInput` and related handlers
- Add French date formatting for project cards
- Convert search form to client-side filter with data attributes
- Add empty state message for no search results
- Update button border-radius from 0 to 0.7rem
- Increase air.toml build command to include Tailwind CSS generation
2026-05-10 13:53:23 +02:00
Arthur Belleville
8bcf81a3f1
Add co-located CSS sources and semantic token infrastructure to Go
backend

Create the foundational structure for managing design-system CSS with
co-located sources and semantic tokens:

- Add `cmd/buildstyles` to concatenate ordered CSS sources into a single
  shipped stylesheet
- Define semantic color and effect tokens in `internal/web/ui/base.css`
- Move primitive and catalog CSS sources from `static/css/` to
  co-located locations under `internal/web/ui/`
- Update test contract to verify token presence and proper stylesheet
  generation
- Regenerate `static/styles.css` with new semantic token layer and
  source annotations
2026-05-10 11:47:42 +02:00
Arthur Belleville
0ac8bd0fc9
Update templ 2026-05-10 11:23:48 +02:00
Arthur Belleville
90da6646ea
docs: update css co-location design spec 2026-05-10 11:03:53 +02:00
Arthur Belleville
69a6844324
docs: add css-sources-per-primitive design spec 2026-05-10 10:42:13 +02:00
Arthur Belleville
2e52daa81d
Add space X and space Y to components 2026-05-10 10:38:07 +02:00
Arthur Belleville
b84eff7887
Add spacing, update catalog, and make several improvements to the tablo:
add update
2026-05-10 10:37:47 +02:00
Arthur Belleville
c89f526780
docs: add spacing primitives design spec 2026-05-10 10:04:39 +02:00
Arthur Belleville
cf64404d25
feat: refresh go-backend button variants and tablos styling 2026-05-10 09:22:22 +02:00
Arthur Belleville
a089f35a9b
docs: add go-backend tablo edit color design 2026-05-10 09:21:34 +02:00
Arthur Belleville
c14af76fb2
feat: toggle overview projects with vanilla js 2026-05-09 21:46:56 +02:00
Arthur Belleville
4ac33c77b9
feat: add go-backend design system and tablos UI 2026-05-09 20:18:24 +02:00
Arthur Belleville
bea78ffca7
docs: add go-backend design system design 2026-05-09 15:03:55 +02:00
Arthur Belleville
63882be278
docs: add go-backend tablos index CRUD design 2026-05-08 21:33:51 +02:00
Arthur Belleville
a5ea88b0a6
CI for go-backend on github actions 2026-05-08 16:28:48 +02:00
Arthur Belleville
c4eb878b0e
Split components, add sessions to the DB and make the apercu page 2026-05-08 16:03:54 +02:00
Arthur Belleville
0a38442d88 Build go-backend auth app with Podman dev flow 2026-05-08 12:08:53 +02:00
Arthur Belleville
98952ace6e
Deprecate previous backend 2026-05-07 23:02:29 +02:00
Arthur Belleville
0a647fc7c4
fix: make revenuecat config optional in api 2026-05-06 23:44:02 +02:00
Arthur Belleville
8a99a1a792
Merge pull request #85 from artslidd/in-app-purchases
In app purchases
2026-05-03 09:36:49 +02:00
Arthur Belleville
66fa698e48
feat: add apple billing flow for expo app 2026-05-03 09:28:46 +02:00
Arthur Belleville
5fba42f678
docs: add expo apple iap unified billing design 2026-05-02 16:25:32 +02:00
Arthur Belleville
888bc269ba
Merge pull request #84 from artslidd/work-2
Work 2
2026-05-02 11:21:31 +02:00
Arthur Belleville
eb23d84f8e
Merge branch 'develop' into work-2 2026-05-02 11:21:20 +02:00
Arthur Belleville
e18dd8f017
feat: route client auth through clients app 2026-05-01 11:55:05 +02:00
Arthur Belleville
90d34833e8
Fix config.ts 2026-05-01 10:33:00 +02:00
Arthur Belleville
2cf5eb8789
feat: migrate client portal to magic link auth 2026-05-01 10:11:08 +02:00
Arthur Belleville
06e1114cf8 feat: add client auth helpers and middleware 2026-04-30 18:37:29 +02:00
Arthur Belleville
fda95d9ce4 feat: add client auth tables 2026-04-30 18:33:31 +02:00
Arthur Belleville
f3ea5ac76e
docs: add client magic link auth replacement design 2026-04-30 18:21:38 +02:00
Arthur Belleville
b1e9d74857
fix(types): resolve typecheck errors after is_temporary removal
Some checks are pending
xtablo-ci / Checks (push) Waiting to run
Frontend Sourcemaps / upload-sourcemaps (push) Waiting to run
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-30 17:11:43 +02:00
Arthur Belleville
c56d5718b8
refactor: remove is_temporary flag across the entire codebase
Drop the is_temporary boolean from the DB schema (new migration), types,
API routers/helpers/middleware, and all frontend components and tests.
Access control now relies solely on is_client.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-30 17:04:11 +02:00
Arthur Belleville
4eaa8731c4
fix(api): remove redundant profile soft-delete
profiles.id has ON DELETE CASCADE from auth.users, so calling
auth.admin.deleteUser already removes the profile row. Only the
org soft-delete needs to happen explicitly.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-29 18:22:36 +02:00
Arthur Belleville
42d5161ab6
chore(db): add deleted_at to profiles and organizations
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-29 17:45:40 +02:00
Arthur Belleville
a60cd7739a
Merge pull request #82 from artslidd/work-2
Work 2
2026-04-29 15:54:54 +02:00
Arthur Belleville
6c74bb8bcf
fix(expo): harden account deletion handler
- Add isDeletingAccount ref to prevent double-tap race
- Guard against null session before calling API
- Set 15s timeout on delete request (API makes 3-4 Supabase round-trips)
- Log error to console and restore guard in finally block

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-29 15:51:38 +02:00
Arthur Belleville
ea90d5133c
feat(expo): add account deletion in settings danger zone
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-29 15:48:27 +02:00
Arthur Belleville
77aaca171d
Merge branch 'main' into work-2 2026-04-29 15:46:46 +02:00
Arthur Belleville
9aa4953ae5
Changes to xtablo app 2026-04-29 15:45:31 +02:00
Arthur Belleville
07d61421b3
fix(api): improve deleteMe handler and test placement
- Use direct cast pattern consistent with rest of file
- Add console.warn/error logging for count query failure and rollback failures
- Move DELETE /me tests to end of suite to avoid ownerUser teardown ordering issue

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-29 15:45:03 +02:00
Arthur Belleville
e21f82fd8f
feat(api): add DELETE /users/me account deletion endpoint
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-29 15:40:16 +02:00
Arthur Belleville
a8bae0c1c3
docs: add account deletion implementation plan
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-29 15:37:14 +02:00
Arthur Belleville
03e1f335bc
docs: add account deletion design spec
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-29 15:34:46 +02:00
Arthur Belleville
1eace2291b
Remove is_temporary invite flow in favor of is_client client invites
The USE_CLIENT_PASSWORD_INVITES flag was hardcoded true. This removes the
dead else-branch (old is_temporary flow sending users to app.xtablo.com/login)
and always shows the Accès client form that routes new clients through
clients.xtablo.com/set-password with is_client: true.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-28 22:35:15 +02:00
Arthur Belleville
0476a87afd
fix onboarding modal 2026-04-25 10:28:29 +02:00
Arthur Belleville
3fd0f3dcde
Add rum + fix icon in clients.xtablo.com 2026-04-25 09:39:36 +02:00
Arthur Belleville
43349260ac
Merge pull request #80 from artslidd/develop
Develop
2026-04-24 21:08:33 +02:00
Arthur Belleville
3fa3425443
Merge pull request #81 from artslidd/admin-panel
Admin panel
2026-04-24 20:13:42 +02:00