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
2 changes: 1 addition & 1 deletion src/content/docs/community/documentation.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ workflow must start from a new temporary directory and execute the same first
run documented for the community:

```bash
pam init community-app --template mobile
pam init community-app --template native
cd community-app
pam dev
```
Expand Down
11 changes: 7 additions & 4 deletions src/content/docs/native/build-hygiene.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,13 @@ publish a PAM release.
## Shared caches are different

PAM does not automatically erase the user's global Android SDK, installed NDKs,
emulator images, Xcode installation, or shared Composer download cache. They are
reusable toolchains rather than project build output; deleting them after every
build would cause multi-gigabyte downloads and make development slower.
emulator images, Xcode installation, shared Composer download cache, or the
PAM Native Gradle dependency cache. They are reusable toolchains rather than
project build output; deleting them after every build would cause large
downloads and make development slower. PAM Native shares Gradle downloads at
`$XDG_CACHE_HOME/pam-native/gradle` or `$HOME/.cache/pam-native/gradle` by
default. Set `PAM_NATIVE_GRADLE_HOME` or `GRADLE_USER_HOME` to choose another
cache.

Cleanup is fail-closed and scoped to recognized project paths. It refuses
ambiguous or symlinked artifact roots and never recursively targets a home
Expand All @@ -53,4 +57,3 @@ contract. Package-specific build scripts must either use PAM's generated host
and cleanup lifecycle or add their own unconditional, allowlisted cleanup step
after uploading the declared artifacts. Plugins must not preserve private
intermediates as an implicit API or delete another package's outputs.

7 changes: 7 additions & 0 deletions src/content/docs/native/ios-renderer.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,13 @@ The bridge detaches recognizers when event properties change or the node is remo

`PamInputField` owns editable text, cursor, selection, and native keyboard behavior. Detailed callbacks are opt-in:

The iOS field maps keyboard and input modes, secure text, content hints, return
key traits, readonly state, maximum length, and controlled selection to UIKit.
It preserves the current text through submit and blur, applies authored values
after editing ends, and honors autofocus and software-keyboard suppression when
the view mounts. Paste and committed composition text obey the same length
limit as ordinary typing.

| Event | Native source |
| --- | --- |
| `onInputEndEditing` | End editing or return/submit |
Expand Down
14 changes: 6 additions & 8 deletions src/content/docs/native/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ production example.
```bash
pam init my-app --template native
cd my-app
pam composer require pushinbr/pam-native
pam doctor --fix
```

Expand All @@ -60,12 +59,11 @@ generated-host intermediates even when the command fails. Read the mandatory
## The first run is a release contract

Every PAM and PAM Native release is blocked until CI creates a disposable
project with `pam init --template mobile` and successfully completes `pam dev`
project with `pam init community-app --template native` and successfully completes `pam dev`
on a clean Android emulator. The same release gate covers the official Native
UI starter and the server, HTTP, and Laravel templates. It verifies automatic
Composer/Gradle/SDK/NDK/runtime setup, installation, process liveness, Logcat,
and a captured frame. This is the exact public workflow, not a preassembled
fixture.
and rendered starter content in a captured frame.

If PAM can safely repair a missing tool or license, it does so. If the host
cannot satisfy a requirement, `pam doctor --fix` reports the exact prerequisite
Expand Down Expand Up @@ -96,11 +94,11 @@ final class ProductCard
?>

<template language="2">
<Card class="product-card">
<View class="product-card">
<Image :source="$product.cover" decorative="true" />
<Heading>{{ $product.name }}</Heading>
<Button on:press="toggleFavorite">Favorite</Button>
</Card>
<Text>{{ $product.name }}</Text>
<Button label="Favorite" on:press="toggleFavorite" />
</View>
</template>

<style scoped>
Expand Down
Loading