Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 22 additions & 22 deletions .github/actions/apply-version/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,14 @@ runs:
src-tauri/tauri.appstore.conf.json > src-tauri/tauri.appstore.conf.json.tmp
mv src-tauri/tauri.appstore.conf.json.tmp src-tauri/tauri.appstore.conf.json

jq --arg id "$IOS_IDENTIFIER" --arg n "$IOS_PRODUCT_NAME" \
'.identifier = $id | .productName = $n' \
# bundle.iOS.bundleVersion maps straight to CFBundleVersion (same as
# macOS's bundle.macOS.bundleVersion below) — tauri ios build writes
# Info.plist's CFBundleVersion from this config value directly, so a
# PlistBuddy edit after the fact would just get overwritten. Use
# REVISION alone (not the full dotted version) so it stays a small,
# strictly-increasing integer across pushes, same as macOS's build number.
jq --arg id "$IOS_IDENTIFIER" --arg n "$IOS_PRODUCT_NAME" --arg bv "$REVISION" \
'.identifier = $id | .productName = $n | .bundle.iOS.bundleVersion = $bv' \
src-tauri/tauri.ios.conf.json > src-tauri/tauri.ios.conf.json.tmp
mv src-tauri/tauri.ios.conf.json.tmp src-tauri/tauri.ios.conf.json

Expand Down Expand Up @@ -137,7 +143,6 @@ runs:
if: ${{ runner.os == 'macOS' && inputs.ios == 'true' }}
shell: bash
env:
INPUT_VERSION: ${{ inputs.version }}
INPUT_STAGING: ${{ inputs.staging }}
run: |
set -e
Expand All @@ -148,31 +153,26 @@ runs:
exit 1
fi

SEMVER=$(echo "$INPUT_VERSION" | cut -d. -f1-3)

if [[ "$INPUT_STAGING" == "true" ]]; then
DISPLAY_NAME="Scriptio (Staging)"
else
DISPLAY_NAME="Scriptio"
fi

# PRODUCT_NAME and PRODUCT_BUNDLE_IDENTIFIER (which Info.plist's
# CFBundleExecutable/CFBundleIdentifier resolve from via
# "$(EXECUTABLE_NAME)"/"$(PRODUCT_BUNDLE_IDENTIFIER)") are NOT set here.
# `tauri ios build` overwrites both in project.pbxproj on every build,
# straight from the merged tauri.conf.json + tauri.ios.conf.json
# (synchronize_project_config in tauri-cli) — so those are set via
# tauri.ios.conf.json's identifier/productName fields, patched in the
# step above, not here. Editing pbxproj directly would just get
# clobbered by that same build step.

# Mirror version + display name into the real, committed Info.plist
# (the file xcodebuild actually embeds). CFBundleDisplayName may not
# exist yet on a fresh checkout, so Add first (ignoring failure if it's
# already there) and Set to cover both cases.
# PRODUCT_NAME, PRODUCT_BUNDLE_IDENTIFIER, CFBundleShortVersionString and
# CFBundleVersion are NOT set here. `tauri ios build` overwrites all four
# in project.pbxproj/Info.plist on every build, straight from the merged
# tauri.conf.json + tauri.ios.conf.json (synchronize_project_config in
# tauri-cli: PRODUCT_NAME/PRODUCT_BUNDLE_IDENTIFIER from
# identifier/productName; CFBundleShortVersionString from the top-level
# version; CFBundleVersion from bundle.iOS.bundleVersion) — all patched
# into tauri.ios.conf.json in the step above. Setting them here would just
# get clobbered by that same build step, like PRODUCT_NAME was before.
# CFBundleDisplayName is the one field Tauri doesn't manage, so it's the
# only one still set directly on the real, committed Info.plist here. It
# may not exist yet on a fresh checkout, so Add first (ignoring failure if
# it's already there) and Set to cover both cases.
for plist in src-tauri/gen/apple/*/Info.plist; do
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString ${SEMVER}" "$plist" || true
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion ${INPUT_VERSION}" "$plist" || true
/usr/libexec/PlistBuddy -c "Add :CFBundleDisplayName string ${DISPLAY_NAME}" "$plist" 2>/dev/null || \
/usr/libexec/PlistBuddy -c "Set :CFBundleDisplayName ${DISPLAY_NAME}" "$plist" || true
done
Expand All @@ -189,4 +189,4 @@ runs:
cp "$IOS_ICON_SRC"/*.png src-tauri/gen/apple/Assets.xcassets/AppIcon.appiconset/
echo "Synced iOS app icons from $IOS_ICON_SRC"

echo "Applied iOS settings (display: '$DISPLAY_NAME', short: $SEMVER, build: $INPUT_VERSION, icons: $IOS_ICON_SRC)"
echo "Applied iOS settings (display: '$DISPLAY_NAME', icons: $IOS_ICON_SRC)"
3 changes: 3 additions & 0 deletions components/navbar/ProjectNavbar.module.css
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,10 @@

@media (max-width: 767px) {
.container {
/* Push the bar below the status bar / Dynamic Island. --navbar-height
* already reserves this space, so the content box stays 56px tall. */
padding-block: 0;
padding-top: var(--safe-top);
}
}

Expand Down
10 changes: 10 additions & 0 deletions components/navbar/ScreenplayFormatDropdown.module.css
Original file line number Diff line number Diff line change
Expand Up @@ -122,3 +122,13 @@
background-color: var(--secondary-hover);
font-weight: 600;
}

/* Narrow (phone) navbar: there isn't room for the styling + alignment toolbar
* alongside the element dropdown, so drop them and keep only the element
* dropdown. Inline styling stays available from the right-hand format sidebar. */
@media (max-width: 767px) {
.style_btns,
.separator {
display: none;
}
}
12 changes: 12 additions & 0 deletions components/utils/NavbarIconButton.module.css
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,15 @@
.active {
border-color: var(--tertiary);
}

/* Phone: the navbar is taller than these icon-only buttons are wide, so
* height: 100% turns them into tall pills. Pin a square size so they render as
* round circles instead. */
@media (max-width: 767px) {
.button {
height: 40px;
width: 40px;
padding-inline: 0;
border-radius: 50%;
}
}
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src-tauri/icons-staging/icon.icns
Binary file not shown.
Binary file added src-tauri/icons-staging/ios/AppIcon-20x20@1x.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src-tauri/icons-staging/ios/AppIcon-20x20@2x.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src-tauri/icons-staging/ios/AppIcon-20x20@3x.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src-tauri/icons-staging/ios/AppIcon-29x29@1x.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src-tauri/icons-staging/ios/AppIcon-29x29@2x.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src-tauri/icons-staging/ios/AppIcon-29x29@3x.png
Binary file added src-tauri/icons-staging/ios/AppIcon-40x40@1x.png
Binary file added src-tauri/icons-staging/ios/AppIcon-40x40@2x.png
Binary file added src-tauri/icons-staging/ios/AppIcon-40x40@3x.png
Binary file added src-tauri/icons-staging/ios/AppIcon-512@2x.png
Binary file added src-tauri/icons-staging/ios/AppIcon-60x60@2x.png
Binary file added src-tauri/icons-staging/ios/AppIcon-60x60@3x.png
Binary file added src-tauri/icons-staging/ios/AppIcon-76x76@1x.png
11 changes: 10 additions & 1 deletion styles/globals.css
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@ body {
height: 100%;
width: 100%;
overflow: clip;
/* Stop iOS from auto-inflating text ("text autosizing"): the screenplay
* paragraphs pin line-height to a fixed 16px, so inflating only the
* font-size crams the lines on top of each other in the editor. */
-webkit-text-size-adjust: 100%;
text-size-adjust: 100%;
}

.app-layout {
Expand Down Expand Up @@ -50,7 +55,11 @@ body {
* component modules), so their inline widths no longer reserve space. */
@media (max-width: 767px) {
* {
--navbar-height: 56px;
/* Include the top safe-area inset so the bar clears the status bar /
* Dynamic Island; the navbar pads its content down by the same amount
* (see ProjectNavbar.module.css). Sidebars/backdrop anchor to
* top: var(--navbar-height), so they stay flush with the bar. */
--navbar-height: calc(56px + var(--safe-top));
}
}

Expand Down
Loading