@necrolab/dashboard 0.5.25 → 0.5.27

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@necrolab/dashboard",
3
- "version": "0.5.25",
3
+ "version": "0.5.27",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "build": "rm -rf dist && vite build && npx workbox-cli generateSW workbox-config.cjs",
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div class="proxy-editor-section" :class="{ 'landscape-hidden': isHidden }" v-if="!isHidden">
3
3
  <h5 class="text-white text-xl font-bold flex gap-x-3 mb-3">Proxy Editor</h5>
4
- <div class="flex items-center gap-2 w-full mb-1">
4
+ <div class="flex items-center gap-2 w-full">
5
5
  <div class="flex-1 lg:flex-initial lg:w-64 flex dropdown-container z-dropdown">
6
6
  <div class="relative flex-grow">
7
7
  <Dropdown
@@ -50,14 +50,12 @@
50
50
  </div>
51
51
  <transition name="fade">
52
52
  <div v-if="isProxyEditorVisible" class="relative my-3">
53
- <div class="pb-4">
54
- <div class="proxy-editor-container">
55
- <textarea
56
- :value="proxyContent"
57
- @input="$emit('update:proxyContent', $event.target.value)"
58
- class="proxy-editor"
59
- spellcheck="false"></textarea>
60
- </div>
53
+ <div class="proxy-editor-container">
54
+ <textarea
55
+ :value="proxyContent"
56
+ @input="$emit('update:proxyContent', $event.target.value)"
57
+ class="proxy-editor"
58
+ spellcheck="false"></textarea>
61
59
  </div>
62
60
  </div>
63
61
  </transition>
@@ -55,7 +55,7 @@
55
55
  </button>
56
56
  <h4 v-if="ui.profile?.name" class="hidden text-sm font-medium text-white lg:block">
57
57
  <span class="text-lightgray">Logged in as</span>
58
- <span class="font-black">{{ ui.profile?.name }}</span>
58
+ <span class="ml-1 font-black">{{ ui.profile?.name }}</span>
59
59
  </h4>
60
60
  <h4 v-else class="hidden text-sm font-medium text-white lg:block">
61
61
  <span class="text-lightgray">Loading</span>
@@ -69,7 +69,7 @@
69
69
  <CountryChooser class="ipad-safe-top hidden lg:block" />
70
70
 
71
71
  <button
72
- class="z-30 ml-auto flex p-2 -m-2 lg:hidden"
72
+ class="z-30 -m-2 ml-auto flex p-2 lg:hidden"
73
73
  @click="toggleMenu"
74
74
  aria-label="Toggle navigation menu"
75
75
  :aria-expanded="menuOpen">
@@ -124,7 +124,7 @@
124
124
  </button>
125
125
  <h4 class="mr-4 text-sm font-medium text-white">
126
126
  <span class="text-lightgray">Logged in as</span>
127
- <span class="font-black">{{ ui.profile?.name }}</span>
127
+ <span class="ml-1 font-black">{{ ui.profile?.name }}</span>
128
128
  </h4>
129
129
  <img :src="ui.profile?.profilePicture" alt="" class="size-10 rounded-full" />
130
130
  </div>
@@ -15,9 +15,11 @@ export function useDynamicTableHeight(options = {}) {
15
15
  // Detect PWA mode and small screens
16
16
  const isPWA = window.matchMedia('(display-mode: standalone)').matches;
17
17
  const isMobile = windowWidth.value <= 768;
18
+ const isIPhonePortrait = windowWidth.value <= 480 && windowHeight.value > windowWidth.value;
18
19
 
19
- // Extra buffer for iPhone PWA to prevent overflow
20
- const extraBuffer = isPWA && isMobile ? 60 : 0;
20
+ // Extra buffer for mobile PWA to prevent overflow
21
+ // iPhone portrait gets a smaller reserve to use more vertical space
22
+ const extraBuffer = isPWA && isMobile ? (isIPhonePortrait ? 24 : 40) : 0;
21
23
 
22
24
  const availableHeight = windowHeight.value - topReservedSpace - bottomBuffer - extraBuffer;
23
25
  const minHeight = minRowsToShow * rowHeight;
@@ -44,7 +44,7 @@ export function useNotchHandling(logger) {
44
44
  if (isNotchBusy && !force) return;
45
45
 
46
46
  try {
47
- if (!isIOS() || isIpadOS()) {
47
+ if (!isIOS()) {
48
48
  document.documentElement.style.setProperty("--safe-area-top", "0px");
49
49
  document.documentElement.style.setProperty("--safe-area-right", "0px");
50
50
  document.documentElement.style.setProperty("--safe-area-bottom", "0px");
@@ -52,6 +52,14 @@ export function useNotchHandling(logger) {
52
52
  return;
53
53
  }
54
54
 
55
+ if (isIpadOS()) {
56
+ document.documentElement.style.setProperty("--safe-area-top", "12px");
57
+ document.documentElement.style.setProperty("--safe-area-right", "0px");
58
+ document.documentElement.style.setProperty("--safe-area-bottom", "0px");
59
+ document.documentElement.style.setProperty("--safe-area-left", "0px");
60
+ return;
61
+ }
62
+
55
63
  const isLandscape = isLandscapeMode();
56
64
  const hasNotch = hasDeviceNotch();
57
65