studio-engine 0.19.0 → 0.21.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +119 -0
- data/app/assets/tailwind/studio_engine/engine-motion.css +58 -0
- data/app/views/studio/_age_verify_assets.html.erb +120 -0
- data/app/views/studio/modals/blocks/_age_verify.html.erb +106 -0
- data/app/views/studio/modals/blocks/_digit_reel.html.erb +41 -0
- data/app/views/studio/modals/blocks/_entry_confirmed.html.erb +86 -0
- data/app/views/studio/modals/blocks/_free_entry_earned.html.erb +46 -0
- data/app/views/studio/modals/blocks/_seeds_bar.html.erb +125 -0
- data/app/views/studio/modals/blocks/_wallet_brand_sprite.html.erb +40 -0
- data/app/views/style/_modals.html.erb +178 -6
- data/app/views/style/modals/_age_verify.html.erb +17 -0
- data/app/views/style/modals/_entry_tokens.html.erb +123 -0
- data/app/views/style/modals/_wallet_connect.html.erb +33 -6
- data/lib/studio/version.rb +1 -1
- metadata +15 -3
|
@@ -9,15 +9,19 @@
|
|
|
9
9
|
wallet list; pick() runs a brief connecting state then closes (no real
|
|
10
10
|
connect). Opened via open('wallet-connect', {...}) or swap()ed to from auth.
|
|
11
11
|
|
|
12
|
+
Brand icons ship inline from the engine (studio/modals/blocks/_wallet_brand_sprite,
|
|
13
|
+
rendered once below): brandIcon(name) resolves a known wallet to its <symbol>
|
|
14
|
+
id, and an unknown wallet falls back to a letter tile. No per-app PNG files.
|
|
15
|
+
|
|
12
16
|
Single root: the outer <div> is the host's required root.
|
|
13
17
|
%>
|
|
14
18
|
<div x-data="{
|
|
15
19
|
get props() { var c = Alpine.store('dsModals').current(); return (c && c.props) || {}; },
|
|
16
20
|
wallets: [],
|
|
17
21
|
installs: [
|
|
18
|
-
{ name: 'Phantom', url: 'https://phantom.app/download'
|
|
19
|
-
{ name: 'Solflare', url: 'https://solflare.com/download'
|
|
20
|
-
{ name: 'Backpack', url: 'https://backpack.app/downloads'
|
|
22
|
+
{ name: 'Phantom', url: 'https://phantom.app/download' },
|
|
23
|
+
{ name: 'Solflare', url: 'https://solflare.com/download' },
|
|
24
|
+
{ name: 'Backpack', url: 'https://backpack.app/downloads' }
|
|
21
25
|
],
|
|
22
26
|
connecting: false,
|
|
23
27
|
picking: '',
|
|
@@ -38,6 +42,10 @@
|
|
|
38
42
|
refresh() {
|
|
39
43
|
this.wallets = (window.walletProvider && window.walletProvider.available && window.walletProvider.available()) || [];
|
|
40
44
|
},
|
|
45
|
+
brandIcon(name) {
|
|
46
|
+
var n = ('' + name).toLowerCase();
|
|
47
|
+
return ['phantom', 'solflare', 'backpack'].indexOf(n) >= 0 ? n : null;
|
|
48
|
+
},
|
|
41
49
|
get isMobile() { return !!(window.walletProvider && window.walletProvider.isMobile && window.walletProvider.isMobile()); },
|
|
42
50
|
hasWallet(name) {
|
|
43
51
|
var n = ('' + name).toLowerCase();
|
|
@@ -71,6 +79,9 @@
|
|
|
71
79
|
}"
|
|
72
80
|
class="relative">
|
|
73
81
|
|
|
82
|
+
<%# Engine-owned brand-icon sprite — one copy; the <use> refs below paint it. %>
|
|
83
|
+
<%= render "studio/modals/blocks/wallet_brand_sprite" %>
|
|
84
|
+
|
|
74
85
|
<div class="relative mb-4">
|
|
75
86
|
<h3 class="text-heading font-bold text-lg text-center pt-1">Connect Wallet</h3>
|
|
76
87
|
<button @click="$store.dsModals.close()"
|
|
@@ -89,7 +100,14 @@
|
|
|
89
100
|
<template x-for="w in wallets" :key="w.name">
|
|
90
101
|
<button type="button" @click="pick(w.name)" :disabled="connecting"
|
|
91
102
|
class="w-full flex items-center gap-3 p-3 rounded-xl bg-surface-alt border border-strong hover:bg-surface transition text-left disabled:opacity-60 disabled:cursor-wait">
|
|
92
|
-
<
|
|
103
|
+
<template x-if="brandIcon(w.name)">
|
|
104
|
+
<span class="w-9 h-9 rounded-lg overflow-hidden flex items-center justify-center shrink-0">
|
|
105
|
+
<svg class="w-9 h-9" aria-hidden="true"><use :href="'#se-wallet-' + brandIcon(w.name)"></use></svg>
|
|
106
|
+
</span>
|
|
107
|
+
</template>
|
|
108
|
+
<template x-if="!brandIcon(w.name)">
|
|
109
|
+
<span class="w-9 h-9 rounded-lg bg-inset flex items-center justify-center text-sm font-bold text-heading shrink-0" x-text="w.name.slice(0,1)"></span>
|
|
110
|
+
</template>
|
|
93
111
|
<span class="font-semibold text-heading" x-text="w.name"></span>
|
|
94
112
|
<span class="ml-auto flex items-center gap-2">
|
|
95
113
|
<span x-show="picking === w.name" class="inline-flex items-center gap-1.5 text-xs text-secondary"><span class="spinner" aria-hidden="true"></span>Connecting…</span>
|
|
@@ -105,7 +123,14 @@
|
|
|
105
123
|
<template x-for="i in missingInstalls" :key="i.name">
|
|
106
124
|
<a :href="i.url" target="_blank" rel="noopener noreferrer"
|
|
107
125
|
class="w-full flex items-center gap-3 p-3 rounded-xl bg-surface-alt border border-strong hover:bg-surface transition no-underline">
|
|
108
|
-
<
|
|
126
|
+
<template x-if="brandIcon(i.name)">
|
|
127
|
+
<span class="w-9 h-9 rounded-lg overflow-hidden flex items-center justify-center shrink-0">
|
|
128
|
+
<svg class="w-9 h-9" aria-hidden="true"><use :href="'#se-wallet-' + brandIcon(i.name)"></use></svg>
|
|
129
|
+
</span>
|
|
130
|
+
</template>
|
|
131
|
+
<template x-if="!brandIcon(i.name)">
|
|
132
|
+
<span class="w-9 h-9 rounded-lg bg-inset flex items-center justify-center text-sm font-bold text-muted shrink-0" x-text="i.name.slice(0,1)"></span>
|
|
133
|
+
</template>
|
|
109
134
|
<span class="font-semibold text-heading" x-text="i.name"></span>
|
|
110
135
|
<span class="ml-auto flex items-center gap-2">
|
|
111
136
|
<span class="text-xs text-muted uppercase tracking-wide">Install</span>
|
|
@@ -119,7 +144,9 @@
|
|
|
119
144
|
<%# Mobile (no extension) — deep-link into the Phantom app. %>
|
|
120
145
|
<button x-show="isMobile" type="button" @click="deepLink()"
|
|
121
146
|
class="w-full flex items-center gap-3 p-3 rounded-xl bg-surface-alt border border-strong hover:bg-surface transition text-left">
|
|
122
|
-
<span class="w-9 h-9 rounded-lg
|
|
147
|
+
<span class="w-9 h-9 rounded-lg overflow-hidden flex items-center justify-center shrink-0">
|
|
148
|
+
<svg class="w-9 h-9" aria-hidden="true"><use href="#se-wallet-phantom"></use></svg>
|
|
149
|
+
</span>
|
|
123
150
|
<span class="font-semibold text-heading">Open in Phantom app</span>
|
|
124
151
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="ml-auto w-4 h-4 text-muted">
|
|
125
152
|
<path stroke-linecap="round" stroke-linejoin="round" d="m8.25 4.5 7.5 7.5-7.5 7.5" />
|
data/lib/studio/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: studio-engine
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.21.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Alex McRitchie
|
|
8
|
+
autorequire:
|
|
8
9
|
bindir: bin
|
|
9
10
|
cert_chain: []
|
|
10
|
-
date:
|
|
11
|
+
date: 2026-07-28 00:00:00.000000000 Z
|
|
11
12
|
dependencies:
|
|
12
13
|
- !ruby/object:Gem::Dependency
|
|
13
14
|
name: rails
|
|
@@ -242,6 +243,7 @@ files:
|
|
|
242
243
|
- app/views/schema/index.html.erb
|
|
243
244
|
- app/views/sessions/_sso_continue.html.erb
|
|
244
245
|
- app/views/sessions/new.html.erb
|
|
246
|
+
- app/views/studio/_age_verify_assets.html.erb
|
|
245
247
|
- app/views/studio/_confirm_interstitial.html.erb
|
|
246
248
|
- app/views/studio/_cropper_assets.html.erb
|
|
247
249
|
- app/views/studio/admin_models/_arenas_table.html.erb
|
|
@@ -262,16 +264,22 @@ files:
|
|
|
262
264
|
- app/views/studio/modals/_image_upload.html.erb
|
|
263
265
|
- app/views/studio/modals/_saving.html.erb
|
|
264
266
|
- app/views/studio/modals/auth/_resend_footer.html.erb
|
|
267
|
+
- app/views/studio/modals/blocks/_age_verify.html.erb
|
|
265
268
|
- app/views/studio/modals/blocks/_card_header.html.erb
|
|
266
269
|
- app/views/studio/modals/blocks/_cta_redirect.html.erb
|
|
270
|
+
- app/views/studio/modals/blocks/_digit_reel.html.erb
|
|
271
|
+
- app/views/studio/modals/blocks/_entry_confirmed.html.erb
|
|
267
272
|
- app/views/studio/modals/blocks/_error_card.html.erb
|
|
273
|
+
- app/views/studio/modals/blocks/_free_entry_earned.html.erb
|
|
268
274
|
- app/views/studio/modals/blocks/_onchain_success.html.erb
|
|
269
275
|
- app/views/studio/modals/blocks/_processing_card.html.erb
|
|
270
276
|
- app/views/studio/modals/blocks/_progress_countdown.html.erb
|
|
271
277
|
- app/views/studio/modals/blocks/_progress_pill.html.erb
|
|
278
|
+
- app/views/studio/modals/blocks/_seeds_bar.html.erb
|
|
272
279
|
- app/views/studio/modals/blocks/_shell.html.erb
|
|
273
280
|
- app/views/studio/modals/blocks/_solana_tx_link.html.erb
|
|
274
281
|
- app/views/studio/modals/blocks/_success_card.html.erb
|
|
282
|
+
- app/views/studio/modals/blocks/_wallet_brand_sprite.html.erb
|
|
275
283
|
- app/views/studio/modals/shared/_age_attestation.html.erb
|
|
276
284
|
- app/views/studio/modals/shared/_email_field.html.erb
|
|
277
285
|
- app/views/studio/modals/templates/_action.html.erb
|
|
@@ -287,7 +295,9 @@ files:
|
|
|
287
295
|
- app/views/style/_theme.html.erb
|
|
288
296
|
- app/views/style/_tricks.html.erb
|
|
289
297
|
- app/views/style/index.html.erb
|
|
298
|
+
- app/views/style/modals/_age_verify.html.erb
|
|
290
299
|
- app/views/style/modals/_auth.html.erb
|
|
300
|
+
- app/views/style/modals/_entry_tokens.html.erb
|
|
291
301
|
- app/views/style/modals/_onchain_tx.html.erb
|
|
292
302
|
- app/views/style/modals/_wallet_connect.html.erb
|
|
293
303
|
- app/views/style/modals/_wallet_deposit.html.erb
|
|
@@ -326,6 +336,7 @@ metadata:
|
|
|
326
336
|
source_code_uri: https://github.com/amcritchie/studio-engine/tree/main
|
|
327
337
|
bug_tracker_uri: https://github.com/amcritchie/studio-engine/issues
|
|
328
338
|
changelog_uri: https://github.com/amcritchie/studio-engine/blob/main/CHANGELOG.md
|
|
339
|
+
post_install_message:
|
|
329
340
|
rdoc_options: []
|
|
330
341
|
require_paths:
|
|
331
342
|
- lib
|
|
@@ -340,7 +351,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
340
351
|
- !ruby/object:Gem::Version
|
|
341
352
|
version: '0'
|
|
342
353
|
requirements: []
|
|
343
|
-
rubygems_version:
|
|
354
|
+
rubygems_version: 3.5.22
|
|
355
|
+
signing_key:
|
|
344
356
|
specification_version: 4
|
|
345
357
|
summary: Shared Rails engine providing auth, SSO, error logging, theming, and S3-backed
|
|
346
358
|
image caching
|