Poster print options: two per line, clear of the blue hover outline
Some checks are pending
build-gate / build (push) Waiting to run
Some checks are pending
build-gate / build (push) Waiting to run
The fieldset is anchored bottom:-26px and grows UPWARD as content wraps, so at one-button-per-line (three lines tall) its top reached into the image -- which is where the blue hover outline lives. Widened the row from 82% to 96% so two labels share a line. Measured on all three poster cards at 1440x900: 2 button lines, height 50px, top 3px BELOW the image bottom, zero overlap with the outline. Includes the tree regeneration so every leaf's SRI matches its bundle (a scoped BUNDLE= build alone leaves leaves stale -- check:sri PASS 45/45).
This commit is contained in:
parent
22ceabd4b5
commit
5d87bd9db1
15 changed files with 108 additions and 96 deletions
|
|
@ -617,9 +617,17 @@ useShadowStyles(
|
|||
// top border grazes the card edge — "slightly overlapping the white edge" as asked. The negative
|
||||
// offset is kept (rather than moving the row into flow) because the tape-header at top:-11px uses
|
||||
// the same overhang idiom, and the 26px row gap noted at :542 was sized for this pairing.
|
||||
// ★ TWO BUTTONS PER LINE, NEVER THREE LINES (Driver, 2026-09-23, second pass on this row):
|
||||
// "nothing should overlap that blue outline... it shouldn't have one option per line, because
|
||||
// that's 3 lines of height — increase the width of the print options slightly so you can fit two
|
||||
// per line." The mechanism that made 3 lines overlap the outline: this fieldset is anchored
|
||||
// bottom:-26px and GROWS UPWARD as content wraps, so every extra line pushes its top further into
|
||||
// the image — and the blue hover outline lives on the image (.img.is-clickable:hover, line ~661).
|
||||
// At width:82% the three labels fell one per line; 96% lets two share a line, so the box stays
|
||||
// two lines tall and its top stays below the artwork. Same overhang idiom, wider row.
|
||||
'.pfs{position:absolute;bottom:-26px;left:50%;transform:translateX(-50%);' +
|
||||
'width:82%;margin:0;padding:0 4px 3px;border:1px solid rgba(0,0,0,.14);' +
|
||||
'border-radius:2px;background:#fff;display:flex;flex-wrap:wrap;gap:2px 4px;' +
|
||||
'width:96%;margin:0;padding:0 3px 3px;border:1px solid rgba(0,0,0,.14);' +
|
||||
'border-radius:2px;background:#fff;display:flex;flex-wrap:wrap;gap:1px 2px;' +
|
||||
'justify-content:center;box-shadow:0 1px 4px rgba(0,0,0,.10)}' +
|
||||
'.is-dark .pfs{background:#132019;border-color:rgba(110,231,183,.24)}' +
|
||||
'.pfs > legend{margin:0 auto;padding:0 5px;font-size:8px;text-transform:uppercase;' +
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -40,7 +40,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <dashboard-plus-grid> custom element. -->
|
||||
<script src="../../dashboard-plus-grid.js" integrity="sha384-yFl0NfQts+GAff7HVWmG1l2tBNvPhoDAj4peCyO7uuavUVCpW1Dd9s1bro6uh7S3" crossorigin="anonymous"></script>
|
||||
<script src="../../dashboard-plus-grid.js" integrity="sha384-3+3nuh+mvj6t92UISFMgEmcWfH/aLnfaSnDVHi5f+ZMwrk04FTbkKCTXnII1/YPw" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <dashboard-plus-grid> custom element. -->
|
||||
<script src="../dashboard-plus-grid.js" integrity="sha384-yFl0NfQts+GAff7HVWmG1l2tBNvPhoDAj4peCyO7uuavUVCpW1Dd9s1bro6uh7S3" crossorigin="anonymous"></script>
|
||||
<script src="../dashboard-plus-grid.js" integrity="sha384-3+3nuh+mvj6t92UISFMgEmcWfH/aLnfaSnDVHi5f+ZMwrk04FTbkKCTXnII1/YPw" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
2
public/doxa-maps/index.html
generated
2
public/doxa-maps/index.html
generated
File diff suppressed because one or more lines are too long
20
public/doxa-maps/manifest.json
generated
20
public/doxa-maps/manifest.json
generated
|
|
@ -193,7 +193,7 @@
|
|||
"bundle": "dashboard-plus-grid",
|
||||
"scriptUrl": "./dashboard-plus-grid/dashboard-plus-grid.js",
|
||||
"output": "doxa-maps/dashboard-plus-grid/dashboard-plus-grid.js",
|
||||
"integrity": "sha384-yFl0NfQts+GAff7HVWmG1l2tBNvPhoDAj4peCyO7uuavUVCpW1Dd9s1bro6uh7S3",
|
||||
"integrity": "sha384-3+3nuh+mvj6t92UISFMgEmcWfH/aLnfaSnDVHi5f+ZMwrk04FTbkKCTXnII1/YPw",
|
||||
"elements": [
|
||||
"dashboard-plus-grid"
|
||||
],
|
||||
|
|
@ -213,7 +213,7 @@
|
|||
"scriptUrl": "./dashboard-plus-grid/dashboard-plus-grid.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./dashboard-plus-grid/dashboard-plus-grid/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./dashboard-plus-grid/dashboard-plus-grid.js\" integrity=\"sha384-yFl0NfQts+GAff7HVWmG1l2tBNvPhoDAj4peCyO7uuavUVCpW1Dd9s1bro6uh7S3\" crossorigin=\"anonymous\"></script>\n<dashboard-plus-grid profile-config='{\"profile\":\"dashboard-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></dashboard-plus-grid>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./dashboard-plus-grid/dashboard-plus-grid.js\" integrity=\"sha384-3+3nuh+mvj6t92UISFMgEmcWfH/aLnfaSnDVHi5f+ZMwrk04FTbkKCTXnII1/YPw\" crossorigin=\"anonymous\"></script>\n<dashboard-plus-grid profile-config='{\"profile\":\"dashboard-plus-grid\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></dashboard-plus-grid>"
|
||||
},
|
||||
"instances": [
|
||||
{
|
||||
|
|
@ -623,7 +623,7 @@
|
|||
"bundle": "my-upg-100-list",
|
||||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||
"output": "doxa-maps/my-upg-100-list/my-upg-100-list.js",
|
||||
"integrity": "sha384-+5WuoIUhRu6FKqEalxJkTqfKvzzA5UvID0woty5FlSSGXth9IKlfWUd8T7341Kw6",
|
||||
"integrity": "sha384-KztI/8n0IEae2z4rU3yxpcUm0ZaYK+eKPFyPwjf/6hTsfZvCEpEeTWoURcoE3TKL",
|
||||
"elements": [
|
||||
"my-upg-100-list-map"
|
||||
],
|
||||
|
|
@ -643,7 +643,7 @@
|
|||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./my-upg-100-list/poster-wall/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-+5WuoIUhRu6FKqEalxJkTqfKvzzA5UvID0woty5FlSSGXth9IKlfWUd8T7341Kw6\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-KztI/8n0IEae2z4rU3yxpcUm0ZaYK+eKPFyPwjf/6hTsfZvCEpEeTWoURcoE3TKL\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"poster-wall\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -657,7 +657,7 @@
|
|||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./my-upg-100-list/upg-100-list/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-+5WuoIUhRu6FKqEalxJkTqfKvzzA5UvID0woty5FlSSGXth9IKlfWUd8T7341Kw6\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-KztI/8n0IEae2z4rU3yxpcUm0ZaYK+eKPFyPwjf/6hTsfZvCEpEeTWoURcoE3TKL\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-list\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -671,7 +671,7 @@
|
|||
"scriptUrl": "./my-upg-100-list/my-upg-100-list.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./my-upg-100-list/upg-100-mfe/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-+5WuoIUhRu6FKqEalxJkTqfKvzzA5UvID0woty5FlSSGXth9IKlfWUd8T7341Kw6\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./my-upg-100-list/my-upg-100-list.js\" integrity=\"sha384-KztI/8n0IEae2z4rU3yxpcUm0ZaYK+eKPFyPwjf/6hTsfZvCEpEeTWoURcoE3TKL\" crossorigin=\"anonymous\"></script>\n<my-upg-100-list-map profile-config='{\"profile\":\"upg-100-mfe\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></my-upg-100-list-map>"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
@ -741,7 +741,7 @@
|
|||
"bundle": "plugin-studio",
|
||||
"scriptUrl": "./plugin-studio/plugin-studio.js",
|
||||
"output": "doxa-maps/plugin-studio/plugin-studio.js",
|
||||
"integrity": "sha384-UGZ2jNTQ+LJhDH8mbUOBsPxIsCys7Dt0n6u6MA2rSm+vJxLGnR018XfygKq7dDdh",
|
||||
"integrity": "sha384-+S3A3z43puiUAZgQa8IxNHH1pIgdF34GqaTRUBxZ8uhm0yoY/AU6spel8kHjkwGz",
|
||||
"elements": [
|
||||
"plugin-studio"
|
||||
],
|
||||
|
|
@ -769,7 +769,7 @@
|
|||
"scriptUrl": "./plugin-studio/plugin-studio.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./plugin-studio/plugin-studio/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./plugin-studio/plugin-studio.js\" integrity=\"sha384-UGZ2jNTQ+LJhDH8mbUOBsPxIsCys7Dt0n6u6MA2rSm+vJxLGnR018XfygKq7dDdh\" crossorigin=\"anonymous\"></script>\n<plugin-studio profile-config='{\"profile\":\"plugin-studio\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></plugin-studio>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./plugin-studio/plugin-studio.js\" integrity=\"sha384-+S3A3z43puiUAZgQa8IxNHH1pIgdF34GqaTRUBxZ8uhm0yoY/AU6spel8kHjkwGz\" crossorigin=\"anonymous\"></script>\n<plugin-studio profile-config='{\"profile\":\"plugin-studio\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></plugin-studio>"
|
||||
},
|
||||
"instances": [
|
||||
{
|
||||
|
|
@ -846,7 +846,7 @@
|
|||
"bundle": "research-dashboard",
|
||||
"scriptUrl": "./research-dashboard/research-dashboard.js",
|
||||
"output": "doxa-maps/research-dashboard/research-dashboard.js",
|
||||
"integrity": "sha384-bMlXnX3T3wamNv7zckjPeNmL15R5hH4QrpdehOaQ4y8Qme36PGftft1tzh2sUf6P",
|
||||
"integrity": "sha384-+DTArUc8tv9Z668IT3aIyOwfpSeqLVcl24xxmUr78tK8WRr3SOwPlvuY5dHdVZvc",
|
||||
"elements": [
|
||||
"research-dashboard-map"
|
||||
],
|
||||
|
|
@ -862,7 +862,7 @@
|
|||
"scriptUrl": "./research-dashboard/research-dashboard.js",
|
||||
"embed": {
|
||||
"iframe": "<iframe src=\"./research-dashboard/research-dashboard/index.html?utm_source=YOUR_SOURCE\" width=\"100%\" height=\"600\" style=\"border:none;border-radius:12px;\" allowfullscreen></iframe>",
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-bMlXnX3T3wamNv7zckjPeNmL15R5hH4QrpdehOaQ4y8Qme36PGftft1tzh2sUf6P\" crossorigin=\"anonymous\"></script>\n<research-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></research-dashboard-map>"
|
||||
"script": "<script>window.MAP_APP_API_URL=\"https://pray.doxa.life\";</script>\n<script src=\"./research-dashboard/research-dashboard.js\" integrity=\"sha384-+DTArUc8tv9Z668IT3aIyOwfpSeqLVcl24xxmUr78tK8WRr3SOwPlvuY5dHdVZvc\" crossorigin=\"anonymous\"></script>\n<research-dashboard-map profile-config='{\"profile\":\"research-dashboard\",\"tk\":\"YOUR_MAPBOX_TOKEN\",\"utmSource\":\"YOUR_SOURCE\",\"assetsBase\":\"YOUR_TREE_URL/assets\"}'></research-dashboard-map>"
|
||||
},
|
||||
"bundle": "research-dashboard"
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <my-upg-100-list-map> custom element. -->
|
||||
<script src="../my-upg-100-list.js" integrity="sha384-+5WuoIUhRu6FKqEalxJkTqfKvzzA5UvID0woty5FlSSGXth9IKlfWUd8T7341Kw6" crossorigin="anonymous"></script>
|
||||
<script src="../my-upg-100-list.js" integrity="sha384-KztI/8n0IEae2z4rU3yxpcUm0ZaYK+eKPFyPwjf/6hTsfZvCEpEeTWoURcoE3TKL" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <my-upg-100-list-map> custom element. -->
|
||||
<script src="../my-upg-100-list.js" integrity="sha384-+5WuoIUhRu6FKqEalxJkTqfKvzzA5UvID0woty5FlSSGXth9IKlfWUd8T7341Kw6" crossorigin="anonymous"></script>
|
||||
<script src="../my-upg-100-list.js" integrity="sha384-KztI/8n0IEae2z4rU3yxpcUm0ZaYK+eKPFyPwjf/6hTsfZvCEpEeTWoURcoE3TKL" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <my-upg-100-list-map> custom element. -->
|
||||
<script src="../my-upg-100-list.js" integrity="sha384-+5WuoIUhRu6FKqEalxJkTqfKvzzA5UvID0woty5FlSSGXth9IKlfWUd8T7341Kw6" crossorigin="anonymous"></script>
|
||||
<script src="../my-upg-100-list.js" integrity="sha384-KztI/8n0IEae2z4rU3yxpcUm0ZaYK+eKPFyPwjf/6hTsfZvCEpEeTWoURcoE3TKL" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
16
public/doxa-maps/plugin-studio/plugin-studio.js
generated
16
public/doxa-maps/plugin-studio/plugin-studio.js
generated
File diff suppressed because one or more lines are too long
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <plugin-studio> custom element. -->
|
||||
<script src="../plugin-studio.js" integrity="sha384-UGZ2jNTQ+LJhDH8mbUOBsPxIsCys7Dt0n6u6MA2rSm+vJxLGnR018XfygKq7dDdh" crossorigin="anonymous"></script>
|
||||
<script src="../plugin-studio.js" integrity="sha384-+S3A3z43puiUAZgQa8IxNHH1pIgdF34GqaTRUBxZ8uhm0yoY/AU6spel8kHjkwGz" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <plugin-studio> custom element. -->
|
||||
<script src="../../plugin-studio.js" integrity="sha384-UGZ2jNTQ+LJhDH8mbUOBsPxIsCys7Dt0n6u6MA2rSm+vJxLGnR018XfygKq7dDdh" crossorigin="anonymous"></script>
|
||||
<script src="../../plugin-studio.js" integrity="sha384-+S3A3z43puiUAZgQa8IxNHH1pIgdF34GqaTRUBxZ8uhm0yoY/AU6spel8kHjkwGz" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
<script>window.MAP_APP_API_URL = "https://pray.doxa.life";</script>
|
||||
<!-- Bundle IIFE — registers the <research-dashboard-map> custom element. -->
|
||||
<script src="../research-dashboard.js" integrity="sha384-bMlXnX3T3wamNv7zckjPeNmL15R5hH4QrpdehOaQ4y8Qme36PGftft1tzh2sUf6P" crossorigin="anonymous"></script>
|
||||
<script src="../research-dashboard.js" integrity="sha384-+DTArUc8tv9Z668IT3aIyOwfpSeqLVcl24xxmUr78tK8WRr3SOwPlvuY5dHdVZvc" crossorigin="anonymous"></script>
|
||||
|
||||
<script>
|
||||
// Mapbox token resolution — the A3 ladder, in precedence order:
|
||||
|
|
|
|||
Loading…
Reference in a new issue