@butternutbox/pawprint-native 2.1.0 → 2.3.0

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.
@@ -7,12 +7,12 @@
7
7
  CJS Build start
8
8
  ESM Build start
9
9
  DTS Build start
10
- CJS dist/index.cjs 576.63 KB
11
- CJS dist/index.cjs.map 1.13 MB
12
- CJS ⚡️ Build success in 7532ms
13
- ESM dist/index.js 544.91 KB
14
- ESM dist/index.js.map 1.12 MB
15
- ESM ⚡️ Build success in 7532ms
16
- DTS ⚡️ Build success in 20401ms
17
- DTS dist/index.d.cts 113.87 KB
18
- DTS dist/index.d.ts 113.87 KB
10
+ ESM dist/index.js 549.18 KB
11
+ ESM dist/index.js.map 1.13 MB
12
+ ESM ⚡️ Build success in 4938ms
13
+ CJS dist/index.cjs 581.12 KB
14
+ CJS dist/index.cjs.map 1.14 MB
15
+ CJS ⚡️ Build success in 4947ms
16
+ DTS ⚡️ Build success in 13475ms
17
+ DTS dist/index.d.cts 114.40 KB
18
+ DTS dist/index.d.ts 114.40 KB
package/CHANGELOG.md CHANGED
@@ -1,5 +1,49 @@
1
1
  # @butternutbox/pawprint-native
2
2
 
3
+ ## 2.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - d9b0195: Announce `IconButton` as a button to screen readers. It set a label but no
8
+ role, so VoiceOver read a drawer's close button as just "Close" with no hint
9
+ that it can be pressed.
10
+
11
+ Add `focusDate` to `DatePicker`. Setting it moves screen-reader focus to that
12
+ date's cell, after a short delay so VoiceOver doesn't ignore it. Consumers use
13
+ it to return focus to a picked date when a confirmation sheet closes, instead
14
+ of leaving VoiceOver on whatever iOS picks next.
15
+
16
+ ### Patch Changes
17
+
18
+ - 2ecf870: Fix the drawer jumping when the keyboard opens, and stop scrolling from closing the keyboard.
19
+ - `Drawer.Body` now shrinks in step with the keyboard spacer instead of jumping to its final height a frame before the spacer arrives, so tall drawers no longer drop and snap back up as the keyboard opens.
20
+ - `Drawer.Body` scrolls the focused input into view once the keyboard has settled, so it no longer sits behind the footer.
21
+ - `Drawer.Body` defaults `keyboardShouldPersistTaps` to `"handled"`, so a drag that starts outside the focused input no longer dismisses the keyboard.
22
+ - `SelectField`'s dropdown now follows its field while the page scrolls. Consumers no longer need `keyboardDismissMode="on-drag"` and can drop it.
23
+
24
+ ## 2.2.0
25
+
26
+ ### Minor Changes
27
+
28
+ - 55577eb: Make `DatePicker` days reachable with VoiceOver. The dates grid was a single
29
+ accessible element, so iOS only announced the month name and none of the day
30
+ buttons could be focused or selected. The grid is no longer grouped, and the
31
+ month label is now a header so screen-reader users can still jump between
32
+ months.
33
+
34
+ Add `getDateAccessibilityLabel(date, state, monthLabel)` so consumers can
35
+ announce delivery states such as the next box or future boxes. It defaults to
36
+ the existing "{day} {monthLabel}" label.
37
+
38
+ ### Patch Changes
39
+
40
+ - 7d7caa7: Make `Drawer` usable with VoiceOver. The panel was a single accessible
41
+ element, so iOS hid everything inside it, including the close button and any
42
+ footer actions, and a drawer couldn't be closed or acted on. The panel is no
43
+ longer grouped, so its contents are reachable, and it stays modal to keep
44
+ focus inside. The VoiceOver escape gesture (two-finger scrub) now closes the
45
+ drawer, as Android back already does.
46
+
3
47
  ## 2.1.0
4
48
 
5
49
  ### Minor Changes
@@ -702,21 +702,25 @@ on every render of the host component.
702
702
 
703
703
  #### Consumer requirements to document
704
704
 
705
- Both of these live on the _consumer's_ scroll container, not the component, so
706
- they must be stated in the component's documentation or they will be missed:
705
+ This lives on the _consumer's_ scroll container, not the component, so it must
706
+ be stated in the component's documentation or it will be missed:
707
707
 
708
- | Prop | Why |
709
- | ------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
710
- | `keyboardShouldPersistTaps="handled"` | Without it the first tap near a focused input is swallowed to dismiss the keyboard, and never reaches the row |
711
- | `keyboardDismissMode="on-drag"` | Dismisses the keyboard on scroll, which blurs the field and closes the overlay rather than leaving it stranded at a stale position |
708
+ | Prop | Why |
709
+ | ------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
710
+ | `keyboardShouldPersistTaps="handled"` | Without it the first tap near a focused input is swallowed to dismiss the keyboard, and never reaches the row |
712
711
 
713
712
  `keyboardShouldPersistTaps` must be set on the **outermost** scroll container.
714
713
  React Native's responder capture follows the React tree root-downwards, so an
715
714
  outer `ScrollView` left at the default `"never"` captures the touch before any
716
715
  inner one is consulted — and a `Modal` does not isolate its contents, because the
717
- React tree is unchanged by it.
716
+ React tree is unchanged by it. `Drawer.Body` defaults to `"handled"`.
718
717
 
719
- In DirectSalesApp, `WizardScrollView` and `app/(auth)/log-in.tsx` set these.
718
+ Do **not** require `keyboardDismissMode="on-drag"` to keep an overlay attached.
719
+ Closing the keyboard on every scroll is jarring in a form. An overlay positioned
720
+ from its anchor re-measures while it is open and follows the anchor instead, as
721
+ `SelectField` does.
722
+
723
+ In DirectSalesApp, `WizardScrollView` and `app/(auth)/log-in.tsx` set this.
720
724
 
721
725
  ---
722
726