fix(WP-0017/E5): Layer 3 error fixes — round 3 (24 files)

Int16→Int in score/stars functions; uuid-based readMay→UUID.fromText;
autoRefresh do-notation fix; id→\x->x ambiguity in HubRoutingRules;
MarketplaceDashboard replaced raw SQL with IHP query builder; optional
hub selector in TypeRegistry views via CanSelect (Text, Maybe Id) instance
added to Web.View.Prelude; import consolidations to Web.View.Prelude.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-12 13:11:32 +00:00
parent 3737845e02
commit 2c22766cd6
24 changed files with 81 additions and 110 deletions

View File

@@ -116,13 +116,13 @@ instance View LandingView where
|]
where
chainLink (label :: Text) (color :: Text) = [hsx|
<span class={"inline-block px-2 py-1 rounded text-xs bg-" <> color <> "-100 text-" <> color <> "-800 font-mono"}>
<span class={("inline-block px-2 py-1 rounded text-xs bg-" <> color <> "-100 text-" <> color <> "-800 font-mono") :: Text}>
{label}
</span>
|]
arrow = [hsx|<span class="text-gray-400"></span>|]
capCard title_ body_ color = [hsx|
<div class={"bg-white rounded-lg border border-gray-200 p-5 border-l-4 border-l-" <> color <> "-500"}>
<div class={("bg-white rounded-lg border border-gray-200 p-5 border-l-4 border-l-" <> color <> "-500") :: Text}>
<h3 class="font-semibold text-gray-800 mb-2">{title_ :: Text}</h3>
<p class="text-sm text-gray-600">{body_ :: Text}</p>
</div>

View File

@@ -25,7 +25,7 @@ instance View TutorialView where
</p>
<div class="bg-gray-900 rounded-lg p-4 text-sm font-mono text-green-400">
<div class="text-gray-400 mb-1">-- Every rendered widget wraps its HSX in widgetEnvelope</div>
{"widgetEnvelope widgetId viewContext [hsx|...|]" :: Text}
{widgetExample}
</div>
<p class="text-sm text-gray-500 mt-2">
The envelope injects <code>data-widget-id</code> and <code>data-view-context</code> attributes,
@@ -112,6 +112,8 @@ instance View TutorialView where
</div>
|]
where
widgetExample :: Text
widgetExample = "widgetEnvelope widgetId viewContext [hsx|...|]"
stepBadge n = [hsx|
<span class="inline-flex items-center justify-center w-7 h-7 rounded-full bg-indigo-600 text-white text-sm font-bold mr-2">
{n :: Text}