studio-engine 0.17.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +67 -0
  3. data/app/assets/tailwind/studio_engine/engine-motion.css +620 -5
  4. data/app/controllers/style_controller.rb +25 -0
  5. data/app/views/studio/modals/_crop_photo.html.erb +5 -1
  6. data/app/views/studio/modals/_host.html.erb +5 -0
  7. data/app/views/studio/modals/_image_upload.html.erb +16 -5
  8. data/app/views/studio/modals/_saving.html.erb +6 -2
  9. data/app/views/studio/modals/auth/_resend_footer.html.erb +25 -0
  10. data/app/views/studio/modals/blocks/_card_header.html.erb +83 -0
  11. data/app/views/studio/modals/blocks/_cta_redirect.html.erb +73 -0
  12. data/app/views/studio/modals/blocks/_onchain_success.html.erb +52 -0
  13. data/app/views/studio/modals/blocks/_progress_pill.html.erb +23 -0
  14. data/app/views/studio/modals/blocks/_shell.html.erb +35 -0
  15. data/app/views/studio/modals/blocks/_solana_tx_link.html.erb +42 -0
  16. data/app/views/studio/modals/shared/_age_attestation.html.erb +34 -0
  17. data/app/views/studio/modals/shared/_email_field.html.erb +70 -0
  18. data/app/views/studio/modals/templates/_action.html.erb +25 -0
  19. data/app/views/studio/modals/templates/_form.html.erb +25 -0
  20. data/app/views/studio/modals/templates/_status.html.erb +45 -0
  21. data/app/views/studio/modals/templates/_success.html.erb +23 -0
  22. data/app/views/studio/modals/templates/_wizard.html.erb +75 -0
  23. data/app/views/style/_modal_specimen.html.erb +120 -0
  24. data/app/views/style/_modals.html.erb +690 -0
  25. data/app/views/style/_specimen.html.erb +64 -0
  26. data/app/views/style/_tasks.html.erb +112 -0
  27. data/app/views/style/_theme.html.erb +222 -0
  28. data/app/views/style/_tricks.html.erb +323 -0
  29. data/app/views/style/index.html.erb +60 -0
  30. data/app/views/style/modals/_auth.html.erb +252 -0
  31. data/app/views/style/modals/_onchain_tx.html.erb +62 -0
  32. data/app/views/style/modals/_wallet_connect.html.erb +138 -0
  33. data/app/views/style/modals/_wallet_deposit.html.erb +56 -0
  34. data/lib/studio/version.rb +1 -1
  35. data/lib/studio.rb +27 -1
  36. metadata +32 -6
  37. data/app/controllers/design_system_controller.rb +0 -12
  38. data/app/views/design_system/_specimen.html.erb +0 -27
  39. data/app/views/design_system/index.html.erb +0 -232
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 51c0e518d2b2f2f0868ec4b737e3b6f10a2987a01ab46d34ef49d9c3e7418e01
4
- data.tar.gz: 6daa86afc8e098c6245622afa579653f4f24cb89549bb06342bb2603dd209d7e
3
+ metadata.gz: 202706aa6f71348f59cb10a90dd7c726c199ad6399586f68d9ea5177600dd427
4
+ data.tar.gz: 24cb9f251d83853e295a88f8ae4d0ba5bab0e447d967f25afe72d1ecdf25317d
5
5
  SHA512:
6
- metadata.gz: 5eba2d0865c2d8cadd1eab36aeaf2be50fb44fd9dfc8eb77ff05c4cbc54c17c5127c2deb473c988b0e663b8c8a8d1b4d54297130db01932bb2462d0a9f34400f
7
- data.tar.gz: 190ff612d9dbdef59bb7599e018f82c01d3e4d47900bcf4c77ec7cdda0231c71877919da4ae4b0aaf36006f6c72c6db558f39a39ba80838336725e49dd2546c2
6
+ metadata.gz: ceccb972024f66226009cace56334f895e60384ad613a7063eceb90191e2c9fc5582b64422f4234cb4a136443a33558e5cda856e55eef76264e8d4b62eff432c
7
+ data.tar.gz: 435a7cad0e8c0af35b43439841c9fd1e714ebdec7d0e894f9526cde29be6d3d1437ffd6247ff760dd6766b8a52602fb12f0148a6b1002cfe1d830b16b75155f1
data/CHANGELOG.md CHANGED
@@ -2,6 +2,73 @@
2
2
 
3
3
  The format is [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). This project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html) — `MAJOR.MINOR.PATCH`. Consumer Rails apps install the released RubyGems package with `gem "studio-engine", "~> 0.6"`; bumping the gem version and updating consumer lockfiles is a release.
4
4
 
5
+ ## 0.18.0 — 2026-07-27
6
+
7
+ ### Added
8
+
9
+ - **Capability features — `Studio.features` / `Studio.feature?(name)`.** A new
10
+ coarse app-capability switch mirroring the `auth_methods` / `auth_method?`
11
+ pattern. `mattr_accessor :features` defaults to `[]` (every capability OFF);
12
+ an app opts in from `config/initializers/studio.rb`, e.g.
13
+ `config.features = %i[leveling web3]`, and code gates a surface with
14
+ `Studio.feature?(:leveling)`. Distinct from `auth_methods` (which sign-in
15
+ methods): features gate whole product surfaces. `feature?` tolerates String or
16
+ Symbol entries and any Enumerable, so `feature?("web3")` and `feature?(:web3)`
17
+ agree.
18
+
19
+ - **`engine-motion.css` — four EFFECT primitives.** Beyond the seven motion
20
+ primitives, a new visual-effect family (same design rules: plain classes,
21
+ themed CSS-var knobs, namespaced keyframes): `.text-gradient` (gradient-clipped
22
+ text fill), `.studio-glow` / `.studio-glow--pulse` (a soft themed glow halo,
23
+ distinct from the animated rainbow-border `.studio-border-glow`),
24
+ `.surface-glass` (a frosted, translucent glass panel for overlay chrome via
25
+ `backdrop-filter` + `color-mix`), and `.conic-surface` (a slow rotating
26
+ conic-gradient ambient wash). All themed through the role tokens; the animated
27
+ ones honor `prefers-reduced-motion`.
28
+
29
+ - **`engine-motion.css` — the LEVELING family (Turf Monster's level badges).**
30
+ The polished `.level-badge` ladder is lifted verbatim into the engine so any
31
+ consumer with `Studio.feature?(:leveling)` ships it: the `.level-badge` base +
32
+ `.level-badge-1 … .level-badge-10` tiers (outline starter → filled green →
33
+ lifted/glowed/beveled → two-tone → mint → animated mint → holographic Level 10
34
+ with the 8-stop 400% gradient), the `.level-up-pop` pop + glow burst, the
35
+ `.nav-level-pop` nav bounce, and the `.badge-with-sheen` one-shot sheen wrapper
36
+ (ported from TM's `@utility` to a plain class, this layer's convention). The
37
+ tiers theme off `--color-primary-500-rgb` (emitted by `studio_theme_css_tag`)
38
+ so they restyle per app; the fixed mint accent is a `--level-mint` /
39
+ `--level-mint-rgb` knob (`#06d6a0` default). The port uses the modern slash
40
+ form `rgb(var(...) / a)` throughout — fixing TM's `levelGlow`, which shipped
41
+ the legacy `rgba(var(--…-rgb), a)` form that silently drops for a
42
+ space-separated var. The animated tiers honor `prefers-reduced-motion`.
43
+
44
+ ### Changed
45
+
46
+ - **`admin/style` — the living style guide (renamed from `admin/design_system`).**
47
+ The page moves to `/admin/style` (`StyleController#index`, helper
48
+ `admin_style_path`); `/admin/design_system` now **redirects** there and keeps
49
+ its `admin_design_system_path` helper resolving, so a shipped host sidebar link
50
+ keeps working. Four sections reached by a sticky section nav, reordered to lead
51
+ with the color foundation: **Theme (landing) · Modals · Tricks · Tasks**
52
+ (anchors `#theme · #modals · #tricks · #tasks`), rendered as sibling partials
53
+ (`_theme`, `_modals`, `_tricks`, `_tasks`).
54
+ - **Theme** now owns "the colors": it leads with the 7 role tokens/swatches
55
+ (moved out of the old Style section), folds in the `/admin/theme` editor, and
56
+ keeps a live dark/light preview. Save + Regenerate now persist **in place** —
57
+ they submit via `fetch` and `preventDefault` the navigation (the old form
58
+ posted to `theme_settings#update`, which redirected to `/admin/theme` and
59
+ bounced the operator off the page), the live preview stays, and the outcome
60
+ is a toast (the shared `_flash` toast primitive). The standalone
61
+ `/admin/theme` page's own redirect is unchanged.
62
+ - **Tricks** (the old "Style" section) is reframed as a board of copy-paste-for-
63
+ an-agent style tricks: each specimen surfaces its class name prominently with
64
+ a one-click copy plus the copyable usage snippet. It keeps the Buttons /
65
+ Surfaces-text-form / Motion / Effects groups, and its **Leveling** group now
66
+ renders the REAL `.level-badge` tiers (all ten + a chip context + a
67
+ `.level-up-pop` demo), gated by `Studio.feature?(:leveling)` — greyed and
68
+ flagged "disabled-but-present" on hosts (like McRitchie Studio) with leveling
69
+ off, never hidden.
70
+ - **Modals** is unchanged this pass (its real modal port lands next).
71
+
5
72
  ## 0.17.0 — 2026-07-27
6
73
 
7
74
  ### Added