@startinblox/component-tamis
v3.0.3
Published
TAMIS components
Keywords
Readme
TAMIS SOLID Components
Lit-based web-components library (@startinblox/component-tamis) that renders the TAMIS frontend on top of the Startin'blox SOLID framework (sibStore, sibRouter, Orbit). It is the client counterpart to djangoldp-tamis and consumes its LDP resources directly — there is no custom API.
User-facing flow
TAMIS is a post-production coordination tool for clients (broadcasters, studios) and providers (post-production houses). The components in this library compose into the four screens that drive the daily workflow:
- Prestations — the operator's main workspace. A list/cards/table view of every prestation the user can access (driven by their group memberships on the backend), with a detail page showing the prestation's header, its delivery → validation timeline, the linked editorial work, and the deliverable assets attached to it. Rejecting a delivery here is what triggers the backend signal that re-queues another
Livraison+Validationround. - Commandes — the order-level view. Lists every
Commande(a Client/Provider purchase order) with its status and the prestations underneath, so a project manager can see all the work scoped under a single order. - Assets — the deliverables view. Browses the files produced by a prestation (
MediaResources and their audio/video tracks), grouped per asset, with copy/preview UI primitives. - Profile / Favourites — per-user pages: enterprise/title/job/phone (from
TamisProfile) and pinned prestations (Favourite) for quick re-entry.
On boot, solid-autologin-menu warms the SOLID store with every container the app needs so that subsequent navigation is instant rather than waterfall-fetched. All access control is enforced server-side by djangoldp-tamis — the components simply render whatever the user is allowed to see.
What it provides
A set of <solid-tamis-*> custom elements, organised by domain:
components/orbit/— top-level menu entries plugged into Orbit (solid-tamis-prestation-menu,…-commande-menu,…-asset-menu,…-favourite-menu,…-profile-menu/-top) plussolid-autologin-menu, which prewarmssibStorewith every TAMIS container (series/,seasons/,programmes/,editorialworks/,commandes/,prestations/,prestationsteps/,steptotemplates/,assets/,mediaresources/,tracks/,videotracks/,audiotracks/,steps/,agents/,clients/,providers/,formats/,identifiants/,users/,groups/) at load time.components/common/— shared views: prestation cards/table/timeline, prestation detail header, commande table, linked-prestation display, breadcrumb, back button, folder/asset/media displays, and form helpers (identifiant form, reactive select, form-value-to-dict).components/asset/,components/commande/,components/dashboard/,components/prestation/,components/profile/— page-level compositions.components/ui/— primitives (button,collapsible,copy,popover,tag).helpers/orbitComponent.js— aLitElementbase with helpers to expand LDP proxy values, walkldp:contains, cherry-pick serializer fields, and subscribe to route/resource changes (setupComponentSubscriptions,setupCacheInvalidation,setupCacheOnResourceReady,setupOnSaveReset,requestNavigation).tamis.d.ts— TypeScript interfaces for every resource (Prestation,EditorialWork,Commande,Asset,MediaResource, …) mirroring the djangoldp-tamis serializer output.- Icons are pulled from
@iconify-json/simple-line-iconsviaunplugin-iconsand auto-defined as web components.
Distributed as an ESM library (dist/index.js) built from src/index.js, which eagerly glob-imports every components/**/*.js. In dev mode it logs the detected window.orbit, sibStore, and sibRouter for inspection.
Build
npm install
npm run watch # vite dev server
npm run build # produces dist/ (ESM, target esnext, browserslist: last 2 Chrome)
npm run serve # vite preview of the built libraryPath aliases: @components, @helpers, @styles → src/components, src/helpers, src/styles.
Installation in an application
See the client installation guide.
