@hjmds/react-native 1.9.0 → 1.11.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.
Files changed (151) hide show
  1. package/README.md +41 -32
  2. package/THIRD_PARTY_NOTICES.md +78 -0
  3. package/dist/actions.d.ts +29 -46
  4. package/dist/actions.d.ts.map +1 -1
  5. package/dist/actions.js +16 -58
  6. package/dist/actions.js.map +1 -1
  7. package/dist/activity-heatmap.d.ts +9 -0
  8. package/dist/activity-heatmap.d.ts.map +1 -0
  9. package/dist/activity-heatmap.js +10 -0
  10. package/dist/activity-heatmap.js.map +1 -0
  11. package/dist/auth-screen.d.ts +5 -4
  12. package/dist/auth-screen.d.ts.map +1 -1
  13. package/dist/auth-screen.js +14 -4
  14. package/dist/auth-screen.js.map +1 -1
  15. package/dist/avatar-blobatar-motion.d.ts +5 -0
  16. package/dist/avatar-blobatar-motion.d.ts.map +1 -0
  17. package/dist/avatar-blobatar-motion.js +33 -0
  18. package/dist/avatar-blobatar-motion.js.map +1 -0
  19. package/dist/avatar-blobatar.d.ts +6 -0
  20. package/dist/avatar-blobatar.d.ts.map +1 -0
  21. package/dist/avatar-blobatar.js +10 -0
  22. package/dist/avatar-blobatar.js.map +1 -0
  23. package/dist/carousel-motion.d.ts +4 -1
  24. package/dist/carousel-motion.d.ts.map +1 -1
  25. package/dist/carousel-motion.js +16 -7
  26. package/dist/carousel-motion.js.map +1 -1
  27. package/dist/code-block.d.ts +8 -0
  28. package/dist/code-block.d.ts.map +1 -0
  29. package/dist/code-block.js +17 -0
  30. package/dist/code-block.js.map +1 -0
  31. package/dist/content-transition.d.ts +5 -2
  32. package/dist/content-transition.d.ts.map +1 -1
  33. package/dist/content-transition.js +14 -8
  34. package/dist/content-transition.js.map +1 -1
  35. package/dist/data-display.d.ts +9 -46
  36. package/dist/data-display.d.ts.map +1 -1
  37. package/dist/data-display.js +50 -108
  38. package/dist/data-display.js.map +1 -1
  39. package/dist/duration-field.d.ts +9 -0
  40. package/dist/duration-field.d.ts.map +1 -0
  41. package/dist/duration-field.js +15 -0
  42. package/dist/duration-field.js.map +1 -0
  43. package/dist/effect-surface.d.ts +11 -0
  44. package/dist/effect-surface.d.ts.map +1 -0
  45. package/dist/effect-surface.js +61 -0
  46. package/dist/effect-surface.js.map +1 -0
  47. package/dist/evidence.d.ts +1 -1
  48. package/dist/evidence.js +1 -1
  49. package/dist/evidence.js.map +1 -1
  50. package/dist/feedback.d.ts +1 -5
  51. package/dist/feedback.d.ts.map +1 -1
  52. package/dist/feedback.js +63 -22
  53. package/dist/feedback.js.map +1 -1
  54. package/dist/floating-action-button.d.ts +2 -2
  55. package/dist/floating-action-button.d.ts.map +1 -1
  56. package/dist/floating-action-button.js +7 -7
  57. package/dist/floating-action-button.js.map +1 -1
  58. package/dist/folder-preview.d.ts +11 -0
  59. package/dist/folder-preview.d.ts.map +1 -0
  60. package/dist/folder-preview.js +10 -0
  61. package/dist/folder-preview.js.map +1 -0
  62. package/dist/forms.d.ts +2 -20
  63. package/dist/forms.d.ts.map +1 -1
  64. package/dist/forms.js +14 -27
  65. package/dist/forms.js.map +1 -1
  66. package/dist/gravity-letters.d.ts +8 -0
  67. package/dist/gravity-letters.d.ts.map +1 -0
  68. package/dist/gravity-letters.js +34 -0
  69. package/dist/gravity-letters.js.map +1 -0
  70. package/dist/grid-reveal.d.ts +9 -0
  71. package/dist/grid-reveal.d.ts.map +1 -0
  72. package/dist/grid-reveal.js +24 -0
  73. package/dist/grid-reveal.js.map +1 -0
  74. package/dist/icon-lucide.d.ts +19 -0
  75. package/dist/icon-lucide.d.ts.map +1 -0
  76. package/dist/icon-lucide.js +11 -0
  77. package/dist/icon-lucide.js.map +1 -0
  78. package/dist/index.d.ts +6 -6
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.js.map +1 -1
  81. package/dist/inline-confirm.d.ts +13 -0
  82. package/dist/inline-confirm.d.ts.map +1 -0
  83. package/dist/inline-confirm.js +40 -0
  84. package/dist/inline-confirm.js.map +1 -0
  85. package/dist/inputs.d.ts +7 -53
  86. package/dist/inputs.d.ts.map +1 -1
  87. package/dist/inputs.js +77 -81
  88. package/dist/inputs.js.map +1 -1
  89. package/dist/internal/field-frame.d.ts +16 -0
  90. package/dist/internal/field-frame.d.ts.map +1 -0
  91. package/dist/internal/field-frame.js +19 -0
  92. package/dist/internal/field-frame.js.map +1 -0
  93. package/dist/internal/recipe-button.d.ts +28 -0
  94. package/dist/internal/recipe-button.d.ts.map +1 -0
  95. package/dist/internal/recipe-button.js +64 -0
  96. package/dist/internal/recipe-button.js.map +1 -0
  97. package/dist/navigation-bar.d.ts +10 -0
  98. package/dist/navigation-bar.d.ts.map +1 -0
  99. package/dist/navigation-bar.js +14 -0
  100. package/dist/navigation-bar.js.map +1 -0
  101. package/dist/navigation.d.ts +11 -48
  102. package/dist/navigation.d.ts.map +1 -1
  103. package/dist/navigation.js +189 -132
  104. package/dist/navigation.js.map +1 -1
  105. package/dist/notification-bell.d.ts +11 -0
  106. package/dist/notification-bell.d.ts.map +1 -0
  107. package/dist/notification-bell.js +30 -0
  108. package/dist/notification-bell.js.map +1 -0
  109. package/dist/overlays.d.ts.map +1 -1
  110. package/dist/overlays.js +10 -4
  111. package/dist/overlays.js.map +1 -1
  112. package/dist/primitives.d.ts +9 -45
  113. package/dist/primitives.d.ts.map +1 -1
  114. package/dist/primitives.js +11 -24
  115. package/dist/primitives.js.map +1 -1
  116. package/dist/reaction-picker.d.ts +10 -0
  117. package/dist/reaction-picker.d.ts.map +1 -0
  118. package/dist/reaction-picker.js +11 -0
  119. package/dist/reaction-picker.js.map +1 -0
  120. package/dist/scroll-progress.d.ts +9 -0
  121. package/dist/scroll-progress.d.ts.map +1 -0
  122. package/dist/scroll-progress.js +6 -0
  123. package/dist/scroll-progress.js.map +1 -0
  124. package/dist/sheet-gesture.d.ts.map +1 -1
  125. package/dist/sheet-gesture.js +17 -3
  126. package/dist/sheet-gesture.js.map +1 -1
  127. package/dist/statistic-motion.d.ts +11 -0
  128. package/dist/statistic-motion.d.ts.map +1 -0
  129. package/dist/statistic-motion.js +13 -0
  130. package/dist/statistic-motion.js.map +1 -0
  131. package/dist/step-player.d.ts +24 -0
  132. package/dist/step-player.d.ts.map +1 -0
  133. package/dist/step-player.js +16 -0
  134. package/dist/step-player.js.map +1 -0
  135. package/dist/task-list.d.ts +16 -0
  136. package/dist/task-list.d.ts.map +1 -0
  137. package/dist/task-list.js +19 -0
  138. package/dist/task-list.js.map +1 -0
  139. package/dist/thinking-orb.d.ts +1 -1
  140. package/dist/thinking-orb.d.ts.map +1 -1
  141. package/dist/thinking-orb.js +4 -4
  142. package/dist/thinking-orb.js.map +1 -1
  143. package/dist/toast-liquid.d.ts.map +1 -1
  144. package/dist/toast-liquid.js +14 -10
  145. package/dist/toast-liquid.js.map +1 -1
  146. package/dist/voice-note.d.ts +24 -0
  147. package/dist/voice-note.d.ts.map +1 -0
  148. package/dist/voice-note.js +13 -0
  149. package/dist/voice-note.js.map +1 -0
  150. package/docs/liquid-toast.md +48 -2
  151. package/package.json +136 -7
package/README.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # @hjmds/react-native
2
2
 
3
+ Login screens use `AuthScreenLayout` from `@hjmds/react-native/auth-screen`. Set `mainCard` and supply
4
+ provider buttons with name-only labels in `main`. During authentication, pass a localized
5
+ `pendingLabel`: the actions become hidden and excluded from touch/accessibility navigation,
6
+ their layout preserves the card dimensions, and one loader appears at its centre. Remove the prop
7
+ on cancellation or failure to restore them. Keep the same `main` content mounted and avoid setting
8
+ each button's `busy` at the same time. See the [login layout contract](../design-contracts/docs/auth-screen.md).
9
+
3
10
  Expo-independent React Native renderers for `@hjmds/design-contracts`. The default entries use only
4
11
  React and React Native runtime APIs. The optional `toast-liquid` entry has additional native peers;
5
12
  its supported host combinations and installation are documented below.
@@ -75,22 +82,15 @@ The package exports include:
75
82
  ## Composition style boundary
76
83
 
77
84
  The normative [consumer policy](../design-contracts/docs/consumer-policy.md#31-react-native-legacy-style-compatibility-boundary)
78
- has an export in this source checkout for the next package release. Check the installed package's
79
- exports before importing `@hjmds/design-contracts/consumer-policy.md`; older `0.9.0` consumers use
80
- the versioned app-standard policy snapshot as that policy explains. Source checkout updates do
81
- not update an already installed npm package. New apps must not add uses of the
82
- legacy unrestricted `style`, `labelStyle`, `inputStyle`, `containerStyle`, or slot `*Style` props.
83
- Those props remain callable in the 0.9 compatibility train only so existing consumers do not break;
84
- they are not an authorization to override recipe-owned visuals.
85
-
86
- Stable Core components are moving first to `layoutStyle`, typed as `HjmCompositionStyle`.
87
- The following example requires an installed version that exports these APIs; use a composition
88
- wrapper when the installed version does not provide them. Deprecation preserves old callers,
89
- and the runtime does not filter their raw style overrides. New-screen enforcement belongs to
90
- the product's checks under the consumer policy. It accepts
91
- screen-placement properties such as logical margins, width, flex, and `alignSelf`, while excluding
92
- color, typography, padding, gap, border, radius, height, opacity, transform, and interaction-state
93
- keys. Margin values must still come from HJM spacing tokens or a reviewed product adapter.
85
+ defines the supported composition boundary. Version 1.11 removes deprecated public raw-style
86
+ props and compatibility aliases listed in the [migration guide](../design-contracts/docs/migration-native-legacy-removal.md).
87
+ Source changes do not update already installed npm packages. Upgrade each consumer's dependency
88
+ and lockfile together, and verify its supported surfaces.
89
+
90
+ Use `layoutStyle`, typed as `HjmCompositionStyle`, for screen placement. It accepts logical margins,
91
+ width, flex, and `alignSelf`, while excluding recipe-owned color, typography, padding, gap, border,
92
+ radius, height, opacity, transform, and interaction state. Use a composition wrapper where no
93
+ placement prop exists. Margin values come from spacing tokens or a reviewed product adapter.
94
94
 
95
95
  ```tsx
96
96
  import { spacing } from "@hjmds/design-contracts/foundations";
@@ -109,12 +109,8 @@ const actionPlacement = {
109
109
  ```
110
110
 
111
111
  If a product needs a new color, type treatment, radius, density, or control size, add a semantic
112
- theme/recipe axis with renderer evidence instead of using a raw style prop. Existing raw-style use
113
- must carry a migration ADR and removal train. Published 1.x compatibility props remain available;
114
- removal requires a future major, at least one fixed-train deprecation window, and verified consumer
115
- migration under the policy's four exit conditions. The old pre-1.0 deadline was contradicted by the
116
- 1.3.5 API observed in the September 2026 consumer audit. Runtime filtering is intentionally deferred
117
- until that migration completes.
112
+ theme/recipe axis with renderer evidence. Deprecated 1.x compatibility props are removed in 1.11;
113
+ private recipe composition and supported platform host styles are separate APIs.
118
114
 
119
115
  `Image` consumes the same intrinsic descriptor as Web. `width` and `height`
120
116
  reserve the frame before loading, omitted `decorative` defaults to `true`, and
@@ -146,9 +142,9 @@ import { Image as ExpoImage } from "expo-image";
146
142
  ```
147
143
 
148
144
  Use `sourceAdapter` when the built-in React Native host needs headers, cache
149
- metadata, or another `ImageSourcePropType`. The older `source` API remains as a
150
- deprecated compatibility path for migration, but it cannot guarantee intrinsic
151
- space reservation without the canonical dimensions.
145
+ metadata, or another `ImageSourcePropType`. The old `source` prop is removed in the next major;
146
+ provide canonical dimensions and use `sourceAdapter` for transport. See
147
+ [the migration guide](../design-contracts/docs/migration-native-legacy-removal.md).
152
148
 
153
149
  `Badge.variant` is the shared `filled | outline` recipe axis on Web and Native. `ListRow` keeps
154
150
  `titleMetadata` inside the row's accessible name only through caller-supplied `metadataLabel`, and
@@ -254,12 +250,10 @@ first enabled item; controlled invalid or disabled selections fail before render
254
250
 
255
251
  For cross-renderer code, use the canonical collection/state vocabulary:
256
252
 
257
- - `Tabs`, `RadioGroup`, and `SegmentedControl` take `items`; Native's former `options` prop remains
258
- as a deprecated compatibility alias.
259
- - Native `TabItem` uses `id`, matching Web. The former `TabOption.value` shape remains available only
260
- through the deprecated `options` path.
253
+ - `Tabs`, `RadioGroup`, and `SegmentedControl` take `items`; Native's former `options` prop is removed in 1.11.
254
+ - Native `TabItem` uses `id`, matching Web. The former `TabOption.value` and `options` path are removed.
261
255
  - `Switch` takes `checked`, `defaultChecked`, and `onCheckedChange`, matching Web. Native's former
262
- `value`, `defaultValue`, and `onValueChange` names remain deprecated aliases.
256
+ `value`, `defaultValue`, and `onValueChange` aliases are removed in the next major.
263
257
 
264
258
  Canonical and deprecated channels cannot be mixed in one component instance. The public types reject
265
259
  ambiguous combinations, and runtime validation protects untyped JavaScript consumers.
@@ -319,14 +313,14 @@ copy for `Form.fallbackErrorMessage`, `SearchField.clearLabel` /
319
313
  `Dialog.closeLabel` / `Sheet.closeLabel`. Optional
320
314
  region names remain injectable through `Select.optionsAccessibilityLabel`,
321
315
  `Combobox.resultsAccessibilityLabel`, `AccordionItem.contentAccessibilityLabel`,
322
- `TabOption.panelAccessibilityLabel`, and `ToastRegion.accessibilityLabel`.
316
+ `TabItem.panelAccessibilityLabel`, and `ToastRegion.accessibilityLabel`.
323
317
  When those optional names are absent, the renderer relies on the Native role,
324
318
  state, or the caller's existing control label instead of inventing translated
325
319
  suffixes. `RadioGroup.requiredLabel` and `readOnlyLabel` are optional localized
326
320
  qualifiers; a language-neutral asterisk and disabled interaction state remain
327
321
  when they are omitted.
328
322
 
329
- `ToastRegion` can wrap a screen and exposes `useToastRegion().show()` / `dismiss()`. The shared
323
+ `ToastRegion` can wrap a screen and exposes `useToastRegion().publish()` / `dismiss()`. The shared
330
324
  bounded FIFO store owns `maxVisible`, `maxQueued`, duplicate and overflow policies, exactly-once
331
325
  action/dismiss behavior, app-background and interaction timer pauses, and interrupted teardown.
332
326
  It announces normal priority politely and high priority assertively, and keeps actionable toasts
@@ -409,3 +403,18 @@ For the optional native menu, apply the host patches documented in [patch instal
409
403
  ## Optional interaction adapters
410
404
 
411
405
  Stable `sortable`, `swipe-actions`, `content-transition`, `carousel-motion` and `celebration` entries plus experimental native `screen-transition` are available through explicit subpath imports. See [installation, localized labels and behavior contracts](../../docs/interaction-adapters.md), including pinned peers and native verification limits. These adapters are not root exports.
406
+
407
+
408
+ ### Menu without a visible heading
409
+
410
+ Pass `title=""` to omit the visible heading and its line box. The menu retains
411
+ `triggerLabel` as its accessible name. This fixes the blank space left by an empty
412
+ Text heading observed in BurnTok's owner menu; consumers should not compensate
413
+ with negative margins.
414
+
415
+ ### Reference-inspired navigation
416
+
417
+ `@hjmds/react-native/navigation-bar` exports [NavigationBar](../design-contracts/docs/navigation-bar.md)
418
+ with an opaque semantic surface and adaptive slots, without a required blur dependency.
419
+ Existing [BottomNavigation](../design-contracts/docs/bottom-navigation.md) accepts the
420
+ `capsule` presentation with an adjacent action and large-text label fallback.
@@ -56,3 +56,81 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
56
56
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
57
57
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
58
58
  SOFTWARE.
59
+
60
+
61
+ ## Blobatar optional runtime — 2.7.0
62
+
63
+ The optional avatar adapters import the pinned Blobatar packages; their generator is not copied or reimplemented. This notice is reproduced from the installed 2.7.0 LICENSE to accompany consumer bundles.
64
+
65
+ Source: https://github.com/Alain00/blobatar
66
+
67
+ MIT License
68
+
69
+ Copyright (c) 2026 Alain
70
+
71
+ Permission is hereby granted, free of charge, to any person obtaining a copy
72
+ of this software and associated documentation files (the "Software"), to deal
73
+ in the Software without restriction, including without limitation the rights
74
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
75
+ copies of the Software, and to permit persons to whom the Software is
76
+ furnished to do so, subject to the following conditions:
77
+
78
+ The above copyright notice and this permission notice shall be included in all
79
+ copies or substantial portions of the Software.
80
+
81
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
82
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
83
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
84
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
85
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
86
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR OTHER DEALINGS IN THE SOFTWARE.
87
+
88
+ ## Lucide optional glyph adapters — 1.49.0
89
+
90
+ Only selected glyphs are imported by the host. The full installed upstream license, including Feather-derived icons, is preserved here for consumer bundle attribution.
91
+
92
+ Source: https://github.com/lucide-icons/lucide
93
+
94
+ ISC License
95
+
96
+ Copyright (c) 2026 Lucide Icons and Contributors
97
+
98
+ Permission to use, copy, modify, and/or distribute this software for any
99
+ purpose with or without fee is hereby granted, provided that the above
100
+ copyright notice and this permission notice appear in all copies.
101
+
102
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
103
+ WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
104
+ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
105
+ ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
106
+ WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
107
+ ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
108
+ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
109
+
110
+ ---
111
+
112
+ The following Lucide icons are derived from the Feather project:
113
+
114
+ airplay, alert-circle, alert-octagon, alert-triangle, aperture, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, calendar, cast, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, circle, clipboard, clock, code, columns, command, compass, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, crosshair, database, divide-circle, divide-square, dollar-sign, download, external-link, feather, frown, hash, headphones, help-circle, info, italic, key, layout, life-buoy, link-2, link, loader, lock, log-in, log-out, maximize, meh, minimize, minimize-2, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, move, music, navigation-2, navigation, octagon, pause-circle, percent, plus-circle, plus-square, plus, power, radio, rss, search, server, share, shopping-bag, sidebar, smartphone, smile, square, table-2, tablet, target, terminal, trash-2, trash, triangle, tv, type, upload, x-circle, x-octagon, x-square, x, zoom-in, zoom-out
115
+
116
+ The MIT License (MIT) (for the icons listed above)
117
+
118
+ Copyright (c) 2013-present Cole Bemis
119
+
120
+ Permission is hereby granted, free of charge, to any person obtaining a copy
121
+ of this software and associated documentation files (the "Software"), to deal
122
+ in the Software without restriction, including without limitation the rights
123
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
124
+ copies of the Software, and to permit persons to whom the Software is
125
+ furnished to do so, subject to the following conditions:
126
+
127
+ The above copyright notice and this permission notice shall be included in all
128
+ copies or substantial portions of the Software.
129
+
130
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
131
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
132
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
133
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
134
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
135
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
136
+ SOFTWARE.
package/dist/actions.d.ts CHANGED
@@ -1,17 +1,15 @@
1
- import { type ButtonAlign as ContractButtonAlign, type ButtonShape as ContractButtonShape, type ButtonSize as ContractButtonSize, type ButtonTone as ContractButtonTone } from "@hjmds/design-contracts/recipes/base";
2
- import { type IconButtonShape, type IconButtonSize, type IconButtonTone as ContractIconButtonTone } from "@hjmds/design-contracts/recipes";
3
1
  import { type LinkDescriptor, type LinkDestination } from "@hjmds/design-contracts/components/link";
2
+ import { type IconButtonTone as ContractIconButtonTone, type IconButtonShape, type IconButtonSize } from "@hjmds/design-contracts/recipes";
3
+ import { type ButtonAlign as ContractButtonAlign, type ButtonShape as ContractButtonShape, type ButtonSize as ContractButtonSize, type ButtonTone as ContractButtonTone } from "@hjmds/design-contracts/recipes/base";
4
4
  import { type ReactNode } from "react";
5
- import { View, type PressableProps, type StyleProp, type TextStyle, type ViewStyle } from "react-native";
5
+ import { View, type PressableProps, type StyleProp, type ViewStyle } from "react-native";
6
6
  import type { HjmCompositionStyleProp } from "./composition-style.js";
7
7
  export type ButtonTone = ContractButtonTone;
8
8
  export type ButtonSize = ContractButtonSize;
9
9
  export type ButtonShape = ContractButtonShape;
10
10
  export type ButtonAlign = ContractButtonAlign;
11
- export type { IconButtonShape, IconButtonSize, } from "@hjmds/design-contracts/recipes";
11
+ export type { IconButtonShape, IconButtonSize } from "@hjmds/design-contracts/recipes";
12
12
  export type ButtonProps = Omit<PressableProps, "accessibilityRole" | "accessibilityState" | "children" | "disabled" | "hitSlop" | "style"> & Readonly<{
13
- /** @deprecated Prefer renderer-neutral `children`. */
14
- label?: string;
15
13
  children?: ReactNode;
16
14
  tone?: ButtonTone;
17
15
  size?: ButtonSize;
@@ -35,26 +33,12 @@ export type ButtonProps = Omit<PressableProps, "accessibilityRole" | "accessibil
35
33
  accessibilityState?: PressableProps["accessibilityState"];
36
34
  /** Canonical layout-only placement. Controlled visual and state keys are excluded. */
37
35
  layoutStyle?: HjmCompositionStyleProp;
38
- /**
39
- * @deprecated Legacy compatibility only. New apps must use `layoutStyle` and must not
40
- * override color, typography, radius, control height, or interaction state.
41
- * @see https://github.com/jim1286/hjm-design-system/blob/main/packages/design-contracts/docs/consumer-policy.md#31-react-native-legacy-style-compatibility-boundary
42
- */
43
- style?: StyleProp<ViewStyle>;
44
- /**
45
- * @deprecated Label typography and color belong to the Button recipe. Request a semantic
46
- * recipe axis instead of styling the label in product code.
47
- * @see https://github.com/jim1286/hjm-design-system/blob/main/packages/design-contracts/docs/consumer-policy.md#31-react-native-legacy-style-compatibility-boundary
48
- */
49
- labelStyle?: StyleProp<TextStyle>;
50
36
  renderLoadingIndicator?: (props: Readonly<{
51
37
  color: string;
52
38
  size: "small";
53
39
  }>) => ReactNode;
54
40
  }>;
55
41
  export declare const Button: import("react").ForwardRefExoticComponent<Omit<PressableProps, "style" | "children" | "hitSlop" | "accessibilityRole" | "accessibilityState" | "disabled"> & Readonly<{
56
- /** @deprecated Prefer renderer-neutral `children`. */
57
- label?: string;
58
42
  children?: ReactNode;
59
43
  tone?: ButtonTone;
60
44
  size?: ButtonSize;
@@ -78,44 +62,20 @@ export declare const Button: import("react").ForwardRefExoticComponent<Omit<Pres
78
62
  accessibilityState?: PressableProps["accessibilityState"];
79
63
  /** Canonical layout-only placement. Controlled visual and state keys are excluded. */
80
64
  layoutStyle?: HjmCompositionStyleProp;
81
- /**
82
- * @deprecated Legacy compatibility only. New apps must use `layoutStyle` and must not
83
- * override color, typography, radius, control height, or interaction state.
84
- * @see https://github.com/jim1286/hjm-design-system/blob/main/packages/design-contracts/docs/consumer-policy.md#31-react-native-legacy-style-compatibility-boundary
85
- */
86
- style?: StyleProp<ViewStyle>;
87
- /**
88
- * @deprecated Label typography and color belong to the Button recipe. Request a semantic
89
- * recipe axis instead of styling the label in product code.
90
- * @see https://github.com/jim1286/hjm-design-system/blob/main/packages/design-contracts/docs/consumer-policy.md#31-react-native-legacy-style-compatibility-boundary
91
- */
92
- labelStyle?: StyleProp<TextStyle>;
93
65
  renderLoadingIndicator?: (props: Readonly<{
94
66
  color: string;
95
67
  size: "small";
96
68
  }>) => ReactNode;
97
69
  }> & import("react").RefAttributes<View>>;
98
70
  export type IconButtonTone = ContractIconButtonTone;
99
- /** @deprecated `link` was never an IconButton recipe tone; use `ghost`. */
100
- export type LegacyNativeIconButtonTone = "link";
101
71
  type IconButtonNameProps = Readonly<{
102
72
  label: string;
103
- accessibilityLabel?: never;
104
- }> | Readonly<{
105
- label?: never;
106
- /** @deprecated Prefer the renderer-neutral `label`. */
107
- accessibilityLabel: string;
108
73
  }>;
109
74
  type IconButtonContentProps = Readonly<{
110
75
  children: ReactNode;
111
- icon?: never;
112
- }> | Readonly<{
113
- children?: never;
114
- /** @deprecated Prefer the renderer-neutral `children`. */
115
- icon: ReactNode;
116
76
  }>;
117
77
  export type IconButtonProps = Omit<PressableProps, "accessibilityLabel" | "accessibilityRole" | "accessibilityState" | "children" | "disabled" | "hitSlop" | "style"> & IconButtonNameProps & IconButtonContentProps & Readonly<{
118
- tone?: IconButtonTone | LegacyNativeIconButtonTone;
78
+ tone?: IconButtonTone;
119
79
  size?: IconButtonSize;
120
80
  shape?: IconButtonShape;
121
81
  /** Toggle state. Paints the selected treatment and reports it to assistive tech. */
@@ -134,7 +94,30 @@ export type IconButtonProps = Omit<PressableProps, "accessibilityLabel" | "acces
134
94
  /** Canonical layout-only placement. Controlled visual keys are excluded. */
135
95
  layoutStyle?: HjmCompositionStyleProp;
136
96
  }>;
137
- export declare const IconButton: import("react").ForwardRefExoticComponent<IconButtonProps & import("react").RefAttributes<View>>;
97
+ export declare const IconButton: import("react").ForwardRefExoticComponent<Omit<PressableProps, "style" | "children" | "hitSlop" | "accessibilityLabel" | "accessibilityRole" | "accessibilityState" | "disabled"> & Readonly<{
98
+ label: string;
99
+ }> & Readonly<{
100
+ children: ReactNode;
101
+ }> & Readonly<{
102
+ tone?: IconButtonTone;
103
+ size?: IconButtonSize;
104
+ shape?: IconButtonShape;
105
+ /** Toggle state. Paints the selected treatment and reports it to assistive tech. */
106
+ selected?: boolean;
107
+ disabled?: boolean;
108
+ loading?: boolean;
109
+ /** Keep the busy control discoverable by default; opt in only for legacy disabled semantics. */
110
+ disableWhileLoading?: boolean;
111
+ hitSlop?: PressableProps["hitSlop"];
112
+ accessibilityState?: PressableProps["accessibilityState"];
113
+ style?: StyleProp<ViewStyle>;
114
+ renderLoadingIndicator?: (props: Readonly<{
115
+ color: string;
116
+ size: "small";
117
+ }>) => ReactNode;
118
+ /** Canonical layout-only placement. Controlled visual keys are excluded. */
119
+ layoutStyle?: HjmCompositionStyleProp;
120
+ }> & import("react").RefAttributes<View>>;
138
121
  export type LinkProps = Omit<PressableProps, "accessibilityLabel" | "accessibilityRole" | "children" | "disabled" | "style"> & Readonly<{
139
122
  descriptor: LinkDescriptor;
140
123
  /** Product router boundary for both internal and external destinations. */
@@ -1 +1 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../src/actions.tsx"],"names":[],"mappings":"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"}
package/dist/actions.js CHANGED
@@ -1,76 +1,34 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { control, glyph, radius, spacing } from "@hjmds/design-contracts/foundations";
3
- import { isLargeTextScale } from "@hjmds/design-contracts/components/design-system-provider";
4
- import { buttonRecipe, resolveButtonLabelLines, } from "@hjmds/design-contracts/recipes/base";
5
- import { bottomCtaRecipe, iconButtonRecipe, resolveIconButtonPresentation, } from "@hjmds/design-contracts/recipes";
6
2
  import { visibleControlHeight } from "@hjmds/design-contracts/components/design-system-provider";
7
3
  import { resolveLinkDescriptor, } from "@hjmds/design-contracts/components/link";
4
+ import { glyph, radius, spacing } from "@hjmds/design-contracts/foundations";
5
+ import { bottomCtaRecipe, iconButtonRecipe, resolveIconButtonPresentation, } from "@hjmds/design-contracts/recipes";
6
+ import {} from "@hjmds/design-contracts/recipes/base";
8
7
  import { forwardRef } from "react";
9
8
  import { ActivityIndicator, Pressable, View, } from "react-native";
9
+ import { RecipeButton } from "./internal/recipe-button.js";
10
+ import { minimumTargetStyle } from "./internal/styles.js";
10
11
  import { Text } from "./primitives.js";
11
12
  import { useHjmNativeTheme } from "./provider.js";
12
- import { minimumTargetStyle } from "./internal/styles.js";
13
- export const Button = forwardRef(function Button({ label, children, tone = buttonRecipe.defaults.tone, size = buttonRecipe.defaults.size, shape = buttonRecipe.defaults.shape, align = buttonRecipe.defaults.align, selected, disabled = false, loading = false, disableWhileLoading = false, growWithContent = false, loadingLabel, leading, trailing, fullWidth = false, hitSlop, layoutStyle, style, labelStyle, renderLoadingIndicator, accessibilityLabel, accessibilityState, onPress, onLongPress, ...props }, ref) {
14
- const { colors, environment } = useHjmNativeTheme();
15
- const labelLines = resolveButtonLabelLines(isLargeTextScale(environment.textScale));
16
- const inactive = disabled || loading;
17
- const unavailable = disabled || (loading && disableWhileLoading);
18
- const content = loading && loadingLabel !== undefined
19
- ? loadingLabel
20
- : children ?? label;
21
- if (content === undefined || content === null || content === false) {
22
- throw new TypeError("Button requires children (or the deprecated label prop)");
13
+ // Public callers compose placement through layoutStyle; visual overrides stay inside HJM recipes.
14
+ export const Button = forwardRef(function Button(props, ref) {
15
+ // Untyped JS callers must not reach the private recipe override through a spread.
16
+ if ("style" in props || "labelStyle" in props) {
17
+ throw new TypeError("Button style/labelStyle were removed; use layoutStyle and semantic props");
23
18
  }
24
- const toneContract = buttonRecipe.tones[tone];
25
- const sizeContract = buttonRecipe.sizes[size];
26
- const selectedContract = selected === true ? buttonRecipe.states.selected : null;
27
- const resolveColor = (key) => key === null ? "transparent" : colors[key];
28
- const contentColor = resolveColor(selectedContract?.content ?? toneContract.content);
29
- const visibleHeight = visibleControlHeight(sizeContract.height, environment.minimumVisualTarget);
30
- return (_jsxs(Pressable, { ...props, ref: ref, accessibilityLabel: accessibilityLabel ?? (typeof content === "string" ? content : undefined), accessibilityRole: "button", accessibilityState: {
31
- ...accessibilityState,
32
- ...(selected === undefined ? {} : { selected }),
33
- disabled: unavailable,
34
- busy: loading,
35
- }, disabled: unavailable, hitSlop: hitSlop ?? (sizeContract.hitSlop > 0 ? sizeContract.hitSlop : undefined), onPress: loading ? () => undefined : onPress, onLongPress: loading ? () => undefined : onLongPress, style: ({ pressed }) => [
36
- {
37
- alignItems: "center",
38
- backgroundColor: resolveColor(selectedContract?.background ?? toneContract.background),
39
- borderColor: resolveColor(selectedContract?.border ?? toneContract.border),
40
- borderRadius: radius[buttonRecipe.shapes[shape]],
41
- borderWidth: (selectedContract ?? toneContract).border ? 1 : 0,
42
- direction: environment.direction,
43
- flexDirection: "row",
44
- gap: spacing.xs,
45
- ...(growWithContent ? {} : { height: visibleHeight }),
46
- justifyContent: buttonRecipe.aligns[align],
47
- minHeight: visibleHeight,
48
- minWidth: control.minTouchTarget,
49
- opacity: inactive
50
- ? buttonRecipe.opacity.disabled
51
- : pressed
52
- ? buttonRecipe.opacity.pressed
53
- : 1,
54
- paddingHorizontal: toneContract.paddingHorizontal ?? sizeContract.paddingHorizontal,
55
- ...(fullWidth ? { alignSelf: "stretch" } : {}),
56
- },
57
- style,
58
- layoutStyle,
59
- ], children: [loading
60
- ? renderLoadingIndicator?.({ color: contentColor, size: "small" }) ?? (_jsx(ActivityIndicator, { color: contentColor, size: "small" }))
61
- : leading, typeof content === "string" || typeof content === "number" ? (_jsx(Text, { align: align === "leading" ? "auto" : "center", emphasis: "medium", ...(labelLines === null ? {} : { numberOfLines: labelLines }), style: [{ color: contentColor }, labelStyle], variant: sizeContract.textVariant, children: content })) : content, trailing] }));
19
+ return _jsx(RecipeButton, { ...props, ref: ref });
62
20
  });
63
- export const IconButton = forwardRef(function IconButton({ label, accessibilityLabel, children, icon, tone = iconButtonRecipe.defaults.tone, size = iconButtonRecipe.defaults.size, shape = iconButtonRecipe.defaults.shape, selected, disabled = false, loading = false, disableWhileLoading = false, hitSlop, layoutStyle, style, renderLoadingIndicator, onPress, onLongPress, accessibilityState, ...props }, ref) {
21
+ export const IconButton = forwardRef(function IconButton({ label, children, tone = iconButtonRecipe.defaults.tone, size = iconButtonRecipe.defaults.size, shape = iconButtonRecipe.defaults.shape, selected, disabled = false, loading = false, disableWhileLoading = false, hitSlop, layoutStyle, style, renderLoadingIndicator, onPress, onLongPress, accessibilityState, ...props }, ref) {
64
22
  const theme = useHjmNativeTheme();
65
- const resolvedLabel = label ?? accessibilityLabel;
66
- const resolvedIcon = children ?? icon;
23
+ const resolvedLabel = label;
24
+ const resolvedIcon = children;
67
25
  if (resolvedLabel === undefined || resolvedLabel.trim().length === 0) {
68
26
  throw new TypeError("IconButton label must not be empty");
69
27
  }
70
28
  if (resolvedIcon === undefined || resolvedIcon === null || resolvedIcon === false) {
71
- throw new TypeError("IconButton requires children (or the deprecated icon prop)");
29
+ throw new TypeError("IconButton requires children");
72
30
  }
73
- const resolvedTone = tone === "link" ? "ghost" : tone;
31
+ const resolvedTone = tone;
74
32
  const presentation = resolveIconButtonPresentation(resolvedTone, theme.palette, selected === true);
75
33
  const sizeContract = iconButtonRecipe.sizes[size];
76
34
  // Web reads the same size through `--hjm-control-button-*`, which the axis
@@ -1 +1 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../src/actions.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2DAA2D,CAAC;AACjG,OAAO,EACL,qBAAqB,GAGtB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,6BAA6B,GAI9B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAKN,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAC;AACnD,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,IAAI,GAKL,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAG3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AA0ClD,kGAAkG;AAClG,MAAM,CAAC,MAAM,MAAM,GAAG,UAAU,CAA0B,SAAS,MAAM,CAAC,KAAK,EAAE,GAAG;IAClF,kFAAkF;IAClF,IAAI,OAAO,IAAI,KAAK,IAAI,YAAY,IAAI,KAAK,EAAE,CAAC;QAC9C,MAAM,IAAI,SAAS,CAAC,0EAA0E,CAAC,CAAC;IAClG,CAAC;IACD,OAAO,KAAC,YAAY,OAAK,KAAK,EAAE,GAAG,EAAE,GAAG,GAAI,CAAC;AAC/C,CAAC,CAAC,CAAC;AAoCH,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAA8B,SAAS,UAAU,CAAC,EACpF,KAAK,EACL,QAAQ,EACR,IAAI,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EACrC,IAAI,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EACrC,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,KAAK,EACvC,QAAQ,EACR,QAAQ,GAAG,KAAK,EAChB,OAAO,GAAG,KAAK,EACf,mBAAmB,GAAG,KAAK,EAC3B,OAAO,EACP,WAAW,EACX,KAAK,EACL,sBAAsB,EACtB,OAAO,EACP,WAAW,EACX,kBAAkB,EAClB,GAAG,KAAK,EACQ,EAAE,GAAG;IACrB,MAAM,KAAK,GAAG,iBAAiB,EAAE,CAAC;IAClC,MAAM,aAAa,GAAG,KAAK,CAAC;IAC5B,MAAM,YAAY,GAAG,QAAQ,CAAC;IAC9B,IAAI,aAAa,KAAK,SAAS,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrE,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;QAClF,MAAM,IAAI,SAAS,CAAC,8BAA8B,CAAC,CAAC;IACtD,CAAC;IACD,MAAM,YAAY,GAAmB,IAAI,CAAC;IAC1C,MAAM,YAAY,GAAG,6BAA6B,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC;IACnG,MAAM,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClD,2EAA2E;IAC3E,wEAAwE;IACxE,yEAAyE;IACzE,8CAA8C;IAC9C,MAAM,eAAe,GAAG,oBAAoB,CAC1C,YAAY,CAAC,QAAQ,EACrB,KAAK,CAAC,WAAW,CAAC,mBAAmB,CACtC,CAAC;IACF,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,QAAQ,IAAI,CAAC,OAAO,IAAI,mBAAmB,CAAC,CAAC;IACjE,OAAO,CACL,KAAC,SAAS,OACJ,KAAK,EACT,GAAG,EAAE,GAAG,EACR,kBAAkB,EAAE,aAAa,EACjC,iBAAiB,EAAC,QAAQ,EAC1B,kBAAkB,EAAE;YAClB,GAAG,kBAAkB;YACrB,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;YAC/C,QAAQ,EAAE,WAAW;YACrB,IAAI,EAAE,OAAO;SACd,EACD,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,EACjF,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAC5C,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EACpD,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YACtB;gBACE,UAAU,EAAE,QAAQ;gBACpB,eAAe,EAAE,YAAY,CAAC,UAAU,IAAI,aAAa;gBACzD,WAAW,EAAE,YAAY,CAAC,MAAM,IAAI,aAAa;gBACjD,YAAY,EAAE,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACpD,WAAW,EAAE,CAAC;gBACd,MAAM,EAAE,eAAe;gBACvB,cAAc,EAAE,QAAQ;gBACxB,SAAS,EAAE,eAAe;gBAC1B,QAAQ,EAAE,eAAe;gBACzB,OAAO,EAAE,QAAQ;oBACf,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,eAAe;oBACzC,CAAC,CAAC,OAAO;wBACP,CAAC,CAAC,CAAC;wBACL,CAAC,CAAC,OAAO;4BACP,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,cAAc;4BACxC,CAAC,CAAC,CAAC;gBACP,KAAK,EAAE,eAAe;aACvB;YACD,KAAK;YACL,WAAW;SACZ,YAEA,OAAO,CAAC,CAAC,CAAC,CACT,sBAAsB,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,IAAI,CAC1E,KAAC,iBAAiB,IAAC,KAAK,EAAE,YAAY,CAAC,OAAO,EAAE,IAAI,EAAC,OAAO,GAAG,CAChE,CACF,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IACH,UAAU,EAAE,KAAK,EACjB,KAAK,EAAE;gBACL,UAAU,EAAE,QAAQ;gBACpB,MAAM,EAAE,SAAS;gBACjB,cAAc,EAAE,QAAQ;gBACxB,KAAK,EAAE,SAAS;aACjB,YAEA,YAAY,GACR,CACR,GACS,CACb,CAAC;AACJ,CAAC,CAAC,CAAC;AAgBH,MAAM,UAAU,IAAI,CAAC,EACnB,UAAU,EACV,UAAU,EACV,OAAO,EACP,QAAQ,EACR,iBAAiB,EACjB,KAAK,EACL,GAAG,KAAK,EACE;IACV,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,iBAAiB,EAAE,CAAC;IACpD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACnD,OAAO,CACL,MAAC,SAAS,OACJ,KAAK,EACT,iBAAiB,EAAE,iBAAiB,EACpC,kBAAkB,EAAE,QAAQ,CAAC,0BAA0B,EACvD,iBAAiB,EAAC,MAAM,EACxB,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EACpD,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YACtB,kBAAkB;YAClB;gBACE,UAAU,EAAE,QAAQ;gBACpB,SAAS,EAAE,YAAY;gBACvB,SAAS,EAAE,WAAW,CAAC,SAAS;gBAChC,aAAa,EAAE,KAAK;gBACpB,GAAG,EAAE,OAAO,CAAC,EAAE;gBACf,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC5B;YACD,KAAK;SACN,aAEA,OAAO,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,UAAU,EAAE,KAAK,YAAG,OAAO,GAAQ,CAAC,CAAC,CAAC,IAAI,EAC3D,KAAC,IAAI,IACH,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,EACtE,OAAO,EAAC,WAAW,YAElB,QAAQ,CAAC,KAAK,GACV,EACN,QAAQ,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,UAAU,EAAE,KAAK,YAAG,QAAQ,GAAQ,CAAC,CAAC,CAAC,IAAI,IACnD,CACb,CAAC;AACJ,CAAC;AAyBD,SAAS,eAAe,CAAC,EACvB,MAAM,EACN,YAAY,GACoD;IAChE,OAAO,CACL,KAAC,MAAM,OACD,CAAC,MAAM,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,EAAE,CAAC,KAClG,CAAC,MAAM,CAAC,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC,KAC/F,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,KACpE,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,KACjE,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC,EACpF,SAAS,QACT,OAAO,EAAE,MAAM,CAAC,OAAO,KACnB,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,EAC5D,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,YAAY,YAEhC,MAAM,CAAC,KAAK,GACN,CACV,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAkC;IAC3D,OAAO,OAAO,KAAK,KAAK,QAAQ;WAC3B,KAAK,KAAK,IAAI;WACd,OAAO,IAAI,KAAK;WAChB,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;WAC/B,SAAS,IAAI,KAAK;WAClB,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU,CAAC;AAC3C,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,SAAS,CAAC,EACxB,aAAa,EACb,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,cAAc,GAAG,CAAC,EAClB,KAAK,EACL,MAAM,GACS;IACf,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,UAAU,CAAC,+CAA+C,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,iBAAiB,EAAE,CAAC;IACpD,MAAM,YAAY,GAAG,WAAW,CAAC,SAAS,IAAI,GAAG,CAAC;IAClD,MAAM,iBAAiB,GAAG,eAAe,KAAK,SAAS,IAAI,eAAe,KAAK,IAAI;QACjF,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,iBAAiB,CAAC,eAAe,CAAC;YAClC,CAAC,CAAC,KAAC,eAAe,IAAC,MAAM,EAAE,eAAe,EAAE,YAAY,EAAC,WAAW,GAAG;YACvE,CAAC,CAAC,eAAe,CAAC;IACtB,OAAO,CACL,MAAC,IAAI,IACH,kBAAkB,EAAE,kBAAkB,EACtC,iBAAiB,EAAC,SAAS,EAC3B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE;YACL;gBACE,eAAe,EAAE,MAAM,CAAC,EAAE;gBAC1B,WAAW,EAAE,MAAM,CAAC,MAAM;gBAC1B,cAAc,EAAE,eAAe,CAAC,WAAW;gBAC3C,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,SAAS;gBAC3C,GAAG,EAAE,eAAe,CAAC,GAAG;gBACxB,SAAS,EAAE,eAAe,CAAC,SAAS,GAAG,cAAc;gBACrD,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,eAAe,CAAC,aAAa,CAAC;gBACtE,iBAAiB,EAAE,eAAe,CAAC,iBAAiB;gBACpD,UAAU,EAAE,eAAe,CAAC,UAAU;gBACtC,WAAW,EAAE,eAAe,CAAC,MAAM,CAAC,KAAK;gBACzC,YAAY,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE;gBAClE,aAAa,EAAE,eAAe,CAAC,MAAM,CAAC,OAAO;gBAC7C,YAAY,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM;aAC5C;YACD,KAAK;SACN,aAEA,WAAW,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAC,SAAS,YAAE,WAAW,GAAQ,CAAC,CAAC,CAAC,IAAI,EAC/E,MAAC,IAAI,IACH,KAAK,EAAE;oBACL,SAAS,EAAE,WAAW,CAAC,SAAS;oBAChC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK;oBACtD,GAAG,EAAE,eAAe,CAAC,GAAG;iBACzB,aAEA,iBAAiB,KAAK,IAAI,CAAC,CAAC,CAAC,CAC5B,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,YAChD,iBAAiB,GACb,CACR,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,YACjD,KAAC,eAAe,IAAC,MAAM,EAAE,aAAa,EAAE,YAAY,EAAC,SAAS,GAAG,GAC5D,IACF,IACF,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { type ActivityHeatmapDescriptor } from '@hjmds/design-contracts/activity-heatmap';
2
+ export type ActivityHeatmapProps = Readonly<{
3
+ descriptor: ActivityHeatmapDescriptor;
4
+ label: string;
5
+ formatDay: (date: string, value: number | null) => string;
6
+ view?: 'grid' | 'list';
7
+ }>;
8
+ export declare function ActivityHeatmap({ descriptor, label, formatDay, view }: ActivityHeatmapProps): import("react").JSX.Element;
9
+ //# sourceMappingURL=activity-heatmap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-heatmap.d.ts","sourceRoot":"","sources":["../src/activity-heatmap.tsx"],"names":[],"mappings":"AACA,OAAM,EAAwB,KAAK,yBAAyB,EAAC,MAAI,0CAA0C,CAAC;AAC5G,MAAM,MAAM,oBAAoB,GAAC,QAAQ,CAAC;IAAC,UAAU,EAAC,yBAAyB,CAAC;IAAA,KAAK,EAAC,MAAM,CAAC;IAAA,SAAS,EAAC,CAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,GAAC,IAAI,KAAG,MAAM,CAAC;IAAA,IAAI,CAAC,EAAC,MAAM,GAAC,MAAM,CAAA;CAAC,CAAC,CAAC;AAErK,wBAAgB,eAAe,CAAC,EAAC,UAAU,EAAC,KAAK,EAAC,SAAS,EAAC,IAAW,EAAC,EAAC,oBAAoB,+BAAggC"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { ScrollView, View } from 'react-native';
3
+ import { Text } from './primitives.js';
4
+ import { useHjmNativeTheme } from './provider.js';
5
+ import { spacing, radius } from '@hjmds/design-contracts/foundations';
6
+ import { resolveActivityHeatmap } from '@hjmds/design-contracts/activity-heatmap';
7
+ // Match the compact Web data-cell radius rather than the full control corner.
8
+ export function ActivityHeatmap({ descriptor, label, formatDay, view = 'grid' }) { const { days, columns } = resolveActivityHeatmap(descriptor); const { colors } = useHjmNativeTheme(); if (view === 'list')
9
+ return _jsx(View, { accessibilityLabel: label, children: days.map(day => _jsx(Text, { children: formatDay(day.date, day.value) }, day.date)) }); return _jsx(ScrollView, { horizontal: true, accessibilityLabel: label, children: _jsx(View, { style: { flexDirection: 'row', gap: spacing.xxs }, children: Array.from({ length: columns }, (_, column) => _jsx(View, { style: { gap: spacing.xxs }, children: Array.from({ length: 7 }, (_, row) => { const day = days.find(day => day.column === column && day.row === row); return _jsx(View, { accessible: Boolean(day), accessibilityLabel: day ? formatDay(day.date, day.value) : undefined, style: { width: spacing.md, height: spacing.md, borderRadius: radius.sm / 4, overflow: 'hidden', backgroundColor: day ? colors.surfaceAlt : 'transparent', borderWidth: day?.value === null ? 1 : 0, borderStyle: 'dashed', borderColor: colors.border }, children: day && day.level > 0 ? _jsx(View, { pointerEvents: "none", style: { flex: 1, backgroundColor: colors.contentBrand, opacity: day.level / 4 } }) : null }, row); }) }, column)) }) }); }
10
+ //# sourceMappingURL=activity-heatmap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity-heatmap.js","sourceRoot":"","sources":["../src/activity-heatmap.tsx"],"names":[],"mappings":";AAAA,OAAM,EAAC,UAAU,EAAC,IAAI,EAAC,MAAI,cAAc,CAAC;AAAA,OAAM,EAAC,IAAI,EAAC,MAAI,iBAAiB,CAAC;AAAA,OAAM,EAAC,iBAAiB,EAAC,MAAI,eAAe,CAAC;AAAA,OAAM,EAAC,OAAO,EAAC,MAAM,EAAC,MAAI,qCAAqC,CAAC;AACzL,OAAM,EAAC,sBAAsB,EAAgC,MAAI,0CAA0C,CAAC;AAE5G,8EAA8E;AAC9E,MAAM,UAAU,eAAe,CAAC,EAAC,UAAU,EAAC,KAAK,EAAC,SAAS,EAAC,IAAI,GAAC,MAAM,EAAsB,IAAE,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,GAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,CAAA,MAAK,EAAC,MAAM,EAAC,GAAC,iBAAiB,EAAE,CAAC,CAAA,IAAG,IAAI,KAAG,MAAM;IAAC,OAAO,KAAC,IAAI,IAAC,kBAAkB,EAAE,KAAK,YAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA,EAAE,CAAA,KAAC,IAAI,cAAiB,SAAS,CAAC,GAAG,CAAC,IAAI,EAAC,GAAG,CAAC,KAAK,CAAC,IAAxC,GAAG,CAAC,IAAI,CAAwC,CAAC,GAAQ,CAAC,CAAA,OAAO,KAAC,UAAU,IAAC,UAAU,QAAC,kBAAkB,EAAE,KAAK,YAAE,KAAC,IAAI,IAAC,KAAK,EAAE,EAAC,aAAa,EAAC,KAAK,EAAC,GAAG,EAAC,OAAO,CAAC,GAAG,EAAC,YAAG,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAC,OAAO,EAAC,EAAC,CAAC,CAAC,EAAC,MAAM,EAAC,EAAE,CAAA,KAAC,IAAI,IAAc,KAAK,EAAE,EAAC,GAAG,EAAC,OAAO,CAAC,GAAG,EAAC,YAAG,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,EAAC,CAAC,CAAC,EAAC,GAAG,EAAC,EAAE,GAAC,MAAM,GAAG,GAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA,EAAE,CAAA,GAAG,CAAC,MAAM,KAAG,MAAM,IAAE,GAAG,CAAC,GAAG,KAAG,GAAG,CAAC,CAAC,CAAA,OAAO,KAAC,IAAI,IAAW,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,kBAAkB,EAAE,GAAG,CAAA,CAAC,CAAA,SAAS,CAAC,GAAG,CAAC,IAAI,EAAC,GAAG,CAAC,KAAK,CAAC,CAAA,CAAC,CAAA,SAAS,EAAE,KAAK,EAAE,EAAC,KAAK,EAAC,OAAO,CAAC,EAAE,EAAC,MAAM,EAAC,OAAO,CAAC,EAAE,EAAC,YAAY,EAAC,MAAM,CAAC,EAAE,GAAC,CAAC,EAAC,QAAQ,EAAC,QAAQ,EAAC,eAAe,EAAC,GAAG,CAAA,CAAC,CAAA,MAAM,CAAC,UAAU,CAAA,CAAC,CAAA,aAAa,EAAC,WAAW,EAAC,GAAG,EAAE,KAAK,KAAG,IAAI,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,EAAC,WAAW,EAAC,QAAQ,EAAC,WAAW,EAAC,MAAM,CAAC,MAAM,EAAC,YAAG,GAAG,IAAE,GAAG,CAAC,KAAK,GAAC,CAAC,CAAA,CAAC,CAAA,KAAC,IAAI,IAAC,aAAa,EAAC,MAAM,EAAC,KAAK,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,eAAe,EAAC,MAAM,CAAC,YAAY,EAAC,OAAO,EAAC,GAAG,CAAC,KAAK,GAAC,CAAC,EAAC,GAAG,CAAA,CAAC,CAAA,IAAI,IAAzb,GAAG,CAA8b,CAAC,CAAA,CAAC,CAAC,IAAtlB,MAAM,CAAwlB,CAAC,GAAQ,GAAa,CAAC,CAAA,CAAC"}
@@ -1,18 +1,19 @@
1
1
  import { authScreenRecipe, type AuthScreenDescriptor } from "@hjmds/design-contracts/components/auth-screen";
2
2
  import type { ReactNode } from "react";
3
- import { type StyleProp, type ViewStyle } from "react-native";
4
3
  import type { HjmCompositionStyleProp } from "./composition-style.js";
5
4
  export type AuthScreenLayoutProps = AuthScreenDescriptor & Readonly<{
6
5
  /** Product mark, title and description. The product owns every string here. */
7
6
  hero: ReactNode;
8
7
  /** The primary action block — provider buttons, or a product's own sign-in bundle. */
9
8
  main: ReactNode;
9
+ /** Product-localized progress label; presence replaces actions with one centred loader. */
10
+ pendingLabel?: string;
11
+ /** Let the layout own the action card; omit when the product already supplies a surface. */
12
+ mainCard?: boolean;
10
13
  /** Consent notice and policy links. Omit with `hasFooter: false`. */
11
14
  footer?: ReactNode;
12
15
  testID?: string;
13
16
  layoutStyle?: HjmCompositionStyleProp;
14
- /** @deprecated Use layoutStyle for outer placement. */
15
- style?: StyleProp<ViewStyle>;
16
17
  }>;
17
18
  /**
18
19
  * Two regions: hero + main stay one vertically centred block, the footer sits at
@@ -22,6 +23,6 @@ export type AuthScreenLayoutProps = AuthScreenDescriptor & Readonly<{
22
23
  * Review forms must accept submit taps while focused; iOS owns the scroll inset
23
24
  * so a product does not have to wrap this in another keyboard-avoiding view.
24
25
  */
25
- export declare function AuthScreenLayout({ hero, main, footer, density, hasFooter, style, layoutStyle, testID, }: AuthScreenLayoutProps): import("react").JSX.Element;
26
+ export declare function AuthScreenLayout({ hero, main, footer, density, hasFooter, pendingLabel, mainCard, layoutStyle, testID, }: AuthScreenLayoutProps): import("react").JSX.Element;
26
27
  export { authScreenRecipe };
27
28
  //# sourceMappingURL=auth-screen.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-screen.d.ts","sourceRoot":"","sources":["../src/auth-screen.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAEhB,KAAK,oBAAoB,EAC1B,MAAM,gDAAgD,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAA8B,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEtE,MAAM,MAAM,qBAAqB,GAAG,oBAAoB,GACtD,QAAQ,CAAC;IACP,+EAA+E;IAC/E,IAAI,EAAE,SAAS,CAAC;IAChB,sFAAsF;IACtF,IAAI,EAAE,SAAS,CAAC;IAChB,qEAAqE;IACrE,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,uDAAuD;IACvD,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC,CAAC;AAEL;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,OAAO,EACP,SAAS,EACT,KAAK,EACL,WAAW,EACX,MAAM,GACP,EAAE,qBAAqB,+BAkDvB;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"auth-screen.d.ts","sourceRoot":"","sources":["../src/auth-screen.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAEhB,KAAK,oBAAoB,EAC1B,MAAM,gDAAgD,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASvC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAGtE,MAAM,MAAM,qBAAqB,GAAG,oBAAoB,GACtD,QAAQ,CAAC;IACP,+EAA+E;IAC/E,IAAI,EAAE,SAAS,CAAC;IAChB,sFAAsF;IACtF,IAAI,EAAE,SAAS,CAAC;IAChB,2FAA2F;IAC3F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qEAAqE;IACrE,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC,CAAC,CAAC;AAQL;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,OAAO,EACP,SAAS,EACT,YAAY,EACZ,QAAgB,EAEhB,WAAW,EACX,MAAM,GACP,EAAE,qBAAqB,+BA+DvB;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}