@plastic-js/tsumiki 0.1.81 → 0.1.82

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.
@@ -116,7 +116,7 @@ var listClass = css({
116
116
  minHeight: 0,
117
117
  overflowY: "auto",
118
118
  WebkitOverflowScrolling: "touch",
119
- padding: "0 8px calc(8px + env(safe-area-inset-bottom, 0px))"
119
+ padding: "0 8px max(var(--tsu-container-padding-lg), env(safe-area-inset-bottom, 0px))"
120
120
  });
121
121
  var itemClass = css({
122
122
  width: "100%",
package/docs/api.md CHANGED
@@ -46,6 +46,24 @@ Every Ark-backed component exposes `.origin` — a mapping to the raw `@plastic-
46
46
 
47
47
  The shared `size` prop accepts: `xs | sm | md | lg | xl | xxl` (default `md`).
48
48
 
49
+ ### Bottom safe-area inset — `max()`, never `sum`
50
+
51
+ Any surface that sits flush to the bottom of the screen (a bottom sheet panel, a scrollable option list inside one) clears the iOS home indicator with `max(<constant>, env(safe-area-inset-bottom, 0px))` — it picks whichever is larger, it never **adds** the safe-area inset to the component's own padding:
52
+
53
+ ```css
54
+ /* Dialog sheet panel — src/components/DialogSheet.jsx */
55
+ padding-bottom: max(var(--tsu-container-padding-lg), env(safe-area-inset-bottom, 0px));
56
+
57
+ /* Select option list — src/components/Select.jsx */
58
+ padding: 0 8px max(var(--tsu-container-padding-lg), env(safe-area-inset-bottom, 0px));
59
+ ```
60
+
61
+ `<constant>` is the same token on every flush-bottom surface — `--tsu-container-padding-lg` (24px) — so the Select list and the Dialog sheet share one bottom rhythm. It keeps the regular gap on devices without an inset (`env()` resolves to 0, so the constant wins) and expands to the safe-area height on iOS.
62
+
63
+ **Never write `calc(<constant> + env(safe-area-inset-bottom))`.** CSS padding does not collapse — summing the two stacks them into an oversized gap under the last row on inset devices (e.g. `8px + 34px` instead of `34px`). This is the same class of bug the Dialog footer's zeroed padding avoids (see `sheetFooterClass`).
64
+
65
+ > Applies to flush-bottom surfaces only (`Dialog` in `sheet` mode, the `Select` option list). Centered overlays and non-flush components have no home-indicator clearance. `DatePicker`'s wheel sheet keeps its own inset handling and is intentionally excluded from this rule.
66
+
49
67
  ---
50
68
 
51
69
  ## Semantic tokens
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plastic-js/tsumiki",
3
- "version": "0.1.81",
3
+ "version": "0.1.82",
4
4
  "description": "A UI component library for Plastic JS.",
5
5
  "license": "MIT",
6
6
  "author": "tigre",