Commit Graph
1071 Commits
Author SHA1 Message Date
Rahim b44e532c79 refactor(react): clean up skin compiler config 2026-07-13 14:11:36 -07:00
Rahim 5c8af139f1 feat(compiler): generate default video CSS skin 2026-07-13 13:57:53 -07:00
Rahim b55eb1a0fd refactor(compiler): promote styles pipeline 2026-06-26 00:20:01 -07:00
Rahim 86d84bc45a feat(compiler): add fluent transform authoring api 2026-06-25 11:58:51 -07:00
Rahim 7b05ba4588 feat(core): add feature availability primitive 2026-06-24 23:28:07 -07:00
Rahim 3e61ef65a9 refactor(core): simplify component manifests 2026-06-24 14:38:13 -07:00
Rahim 9cbcdb7704 refactor(compiler): capture tailwind property rules from ast 2026-06-24 14:30:14 -07:00
Rahim aadedca538 test(compiler): cover token var hoisting 2026-06-24 13:38:03 -07:00
Rahim 69d5afecdd feat(core): support nested component parts 2026-06-24 13:07:47 -07:00
Rahim ddccbd89d4 fix(compiler): preserve selector-scoped tailwind vars 2026-06-24 13:04:37 -07:00
Rahim 5d527cb572 feat(skin): add input feedback to generated skin 2026-06-24 12:45:39 -07:00
Rahim 4acc1bc10a fix(skin): preserve poster class in generated skin 2026-06-24 12:30:25 -07:00
Rahim 5969680809 refactor(skin): simplify buffering indicator 2026-06-24 12:21:55 -07:00
Rahim e07db4f7b2 feat(core): add text primitive 2026-06-24 12:12:58 -07:00
Rahim ce4178778e refactor(compiler): parse tailwind utilities with lightningcss 2026-06-23 23:54:59 -07:00
Rahim 9e7d3da397 refactor(compiler)!: branch tailwind utility analysis 2026-06-23 17:24:05 -07:00
Rahim d5d2ddffb6 fix(compiler): harden tailwind emit edge cases 2026-06-23 15:35:19 -07:00
Rahim 3010d38d08 refactor(compiler)!: reshape tailwind styling options 2026-06-23 15:08:19 -07:00
Rahim 89f13eb6d7 feat(core): add overlay primitive 2026-06-22 20:19:50 -07:00
Rahim aefa6c39c8 feat(compiler): improve skin transform dx 2026-06-22 16:36:39 -07:00
Rahim fcee71e1eb feat(compiler): add skin project compilation 2026-06-21 17:36:49 -07:00
Rahim e0a5710c66 refactor(core): remove ui props re-export shims 2026-06-21 16:06:58 -07:00
Rahim 22899d3d04 refactor(core): model component parts as descriptors 2026-06-20 19:13:27 -07:00
Rahim 99613ad768 refactor(core)!: tighten constrained jsx boundary 2026-06-20 15:37:34 -07:00
Rahim 5fcab69d34 refactor(compiler)!: consolidate jsx surface 2026-06-19 20:13:11 -07:00
Rahim f64acdfd15 refactor(compiler)!: move component generation to core 2026-06-19 19:37:09 -07:00
Rahim b2c6b3489f feat(compiler): restore component manifest generation 2026-06-18 02:34:54 -07:00
Rahim c3d68fa1d8 chore(skin): park current skin sources 2026-06-17 21:37:38 -07:00
Rahim 6f5f7ef577 fix(compiler): support current skin extraction patterns 2026-06-17 21:33:35 -07:00
Rahim 3108dd25ce chore(skin): remove legacy migration files 2026-06-17 21:31:10 -07:00
Rahim 21392ccd16 refactor(compiler): use vite plugin types 2026-06-17 17:13:40 -07:00
Rahim f941eacf37 feat(compiler)!: add config-driven compile pipeline 2026-06-17 17:13:40 -07:00
Rahim 0486765848 feat(compiler): configurable @property handling for --tw-* slots
Tailwind registers internal slots (`--tw-content`, `--tw-shadow`, …) via
`@property` rules that supply their defaults. `decompose` dropped those
rules, so utilities that reference a slot without setting it locally —
notably `after:*`/`before:*` emitting `content: var(--tw-content)` — left
a dangling reference that resolves to nothing and suppresses the
pseudo-element.

`decompose` now captures the `@property` registrations, and `emitCss`
gains a `properties` option to handle them, configurably:

  - `mode: 'emit'`   — emit `@property` rules for referenced slots,
    preserving Tailwind's typed defaults.
  - `mode: 'inline'` — substitute each slot's `initial-value` into the
    values that reference it (a superset of `inlineVars` for the matched
    slots), so the output is fully self-contained.
  - `resolve(name, captured)` hook — override or supply a slot's config
    (initial-value / syntax / inherits), or register one Tailwind didn't.
  - `match` — restrict handling to matching names (default `/^--tw-/`).

`tailwindPlugin` forwards `properties` through its `onCss` path. Adds 9
tests (capture, emit, inline, resolve override, match, back-compat,
plugin e2e). Compiler suite: 178 passing.
2026-06-17 17:13:40 -07:00
Rahim fbe5ffeea3 docs(plan): mark vanilla-css critical bugs fixed in audit
Update the rebase audit: marker-class drop, class-name collisions, and
undefined theme vars are fixed; note the remaining `--tw-*` @property
follow-up and the real collisions the new diagnostic will surface during
the port.
2026-06-17 17:13:40 -07:00
Rahim 578f0ca3c4 fix(compiler): vanilla-css correctness — markers, collisions, theme vars
Three correctness fixes for the `vanilla-css` Tailwind target, each
previously untested:

1. Preserve marker utilities. Utilities that produce no declarations
   (`group`, `peer`, `group/<name>`) were silently dropped when rewriting
   `className` to the semantic name, breaking every descendant
   `group-*` / `peer-*` variant. They're now kept on the element
   (`"play-button group"`), alongside any other class Tailwind doesn't
   recognize.

2. Flag class-name collisions. Two distinct elements that derive the same
   class name but resolve to different utilities would have their
   conflicting declarations silently merged into one rule (e.g. the
   forward/back `seek-icon`, buffering vs preview `spinner-icon`,
   current/duration `time-value`). The plugin now tracks a per-name
   utility signature and throws a fixable DiagnosticError on mismatch,
   while identical recurrences (repeated `Tooltip.Popup`) pass cleanly.

3. Emit referenced theme variables. The generated CSS referenced
   `var(--spacing)`, `var(--color-*)`, `var(--ease-*)` etc. with nothing
   defining them. `emitCss` now accepts a `resolveThemeVar` resolver
   (backed by `design.resolveThemeVar`) and emits a leading, transitively
   resolved theme block — scoped to the skin's hoist root when set — so
   the output resolves without a separate Tailwind theme on the page.

Adds 11 tests (markers, collisions, theme emission incl. transitive,
already-declared, scoped, and back-compat). Compiler suite: 169 passing.

Note: `@property`-registered `--tw-*` slots (e.g. `--tw-content`) resolve
to undefined and are left for a follow-up.
2026-06-17 17:13:40 -07:00
Rahim d562279df1 chore(skin): park constrained-JSX skin migration under __old__
The in-flight compiler skin migration refactored the shared Tailwind token
modules from main's function API (`root = (isShadowDOM) => cn(...)`, flat
exports) into a string-aggregate API (`video`/`audio` nested objects) that
the constrained-JSX skins consume. Since then, main built 16 runtime skin
files on the function API — including the new live-video / live-audio
presets — which the new token shape cannot satisfy without porting.

Rather than regress main's skins or break the build, park the authored
migration sources (constrained-JSX skins + refactored token layer +
tailwind.css) under packages/skins/__old__, a sibling of src/ that sits
outside the package tsconfig include, tsdown globs, and (via biome ignore)
linting. Main remains the source of truth for live skins.

The full migration snapshot (build wiring, generated React skins/CSS, core
manifests, icons generate config, html/react edits) is preserved in the
git tag backup/pre-rebase-2b2bbfad. The audit and port backlog live in
.claude/plans/compiler-rebase-audit.md.
2026-06-17 17:13:40 -07:00
Rahim b01a051744 feat(compiler): add @videojs/compiler package
Introduce the build-time compiler for constrained-JSX skins, rebased onto
current main as a clean, additive package. Provides:

- core pipeline: parse, compile, generate, JSX runtime, define-component
- transforms: import rewriting, replace/wrap, drop-unused locals/imports
- matchers + react lowering (add-prop, child-as-prop)
- styles className analyzer
- tailwind subsystem: design-system loader, decompose, evaluator,
  deriveClassName, emitCss, tailwindPlugin (three targets)

Self-contained: the integration smoke test now reads a vendored skin
fixture instead of the skins package, so the compiler builds and tests
green independently. 158 tests pass.

Wiring: register the project reference (tsconfig), commitlint scope,
CI test-matrix entry, and lockfile entries (lightningcss, tailwindcss).

The skin migration that consumes this compiler is parked separately —
its token refactor conflicts with skin work that landed on main; see the
follow-up commit and .claude/plans/compiler-rebase-audit.md.
2026-06-17 17:13:40 -07:00
Wesley LuytenandGitHub 1b31f3e8d7 feat(core): add vimeo media host and html/react components (#1667) 2026-06-18 09:36:31 +10:00
Sam PottsandGitHub 035b509c7a feat(packages): compound tooltips with label and shortcut parts (#1494) 2026-06-18 08:12:16 +10:00
Sam PottsandGitHub 9275f93504 feat(packages): add resolved rendition to auto label (#1698) 2026-06-18 07:42:00 +10:00
eae0191eed chore(ci): drop edited trigger from issue triage (#1700)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 14:28:38 -07:00
Sam PottsandGitHub 16ab90987a feat(packages): add quality menu UI (#1694) 2026-06-18 07:20:59 +10:00
Sam PottsandGitHub 74da6821d7 feat(core): add quality selection state (#1693) 2026-06-18 07:20:13 +10:00
bce79ec424 feat(spf): capability probing (#1676)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 11:22:49 -07:00
b89f1e944c feat(spf): multi cdn failover (#1671)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-17 08:20:43 -07:00
Santiago PuppoandGitHub 33873bc4ae feat(spf): Add maxResolution to SPF Background Video (#1654) 2026-06-17 11:36:02 -03:00
Ronald UrbinaandGitHub 47aca0f798 fix(core): remove 1-9 digit key seek from slider keyboard handler (#1690) 2026-06-16 10:50:16 -03:00
Wesley LuytenandGitHub 67b39fe4bd feat(core): add media tracks and renditions support (#1664) 2026-06-15 07:39:55 +10:00
Wesley LuytenandGitHub 0ffe1a9197 feat(media)!: add Google Cast by default to HLS, DASH media (#1661) 2026-06-12 17:34:14 -07:00
Renzo DelfinoandGitHub 1145f09e52 feat(site): list required css imports per skin in preset reference (#1521) 2026-06-12 14:57:42 -03:00