@hjmds/react-native 1.1.1 → 1.3.4

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 (95) hide show
  1. package/README.md +12 -0
  2. package/dist/actions.d.ts.map +1 -1
  3. package/dist/actions.js +4 -2
  4. package/dist/actions.js.map +1 -1
  5. package/dist/agreement.d.ts +18 -0
  6. package/dist/agreement.d.ts.map +1 -0
  7. package/dist/agreement.js +51 -0
  8. package/dist/agreement.js.map +1 -0
  9. package/dist/asset.d.ts +27 -0
  10. package/dist/asset.d.ts.map +1 -0
  11. package/dist/asset.js +40 -0
  12. package/dist/asset.js.map +1 -0
  13. package/dist/auth-screen.d.ts +21 -0
  14. package/dist/auth-screen.d.ts.map +1 -0
  15. package/dist/auth-screen.js +37 -0
  16. package/dist/auth-screen.js.map +1 -0
  17. package/dist/bottom-info.d.ts +9 -0
  18. package/dist/bottom-info.d.ts.map +1 -0
  19. package/dist/bottom-info.js +16 -0
  20. package/dist/bottom-info.js.map +1 -0
  21. package/dist/calendar.d.ts +21 -0
  22. package/dist/calendar.d.ts.map +1 -0
  23. package/dist/calendar.js +63 -0
  24. package/dist/calendar.js.map +1 -0
  25. package/dist/carousel.d.ts +21 -0
  26. package/dist/carousel.d.ts.map +1 -0
  27. package/dist/carousel.js +67 -0
  28. package/dist/carousel.js.map +1 -0
  29. package/dist/collapsible.d.ts +12 -0
  30. package/dist/collapsible.d.ts.map +1 -0
  31. package/dist/collapsible.js +18 -0
  32. package/dist/collapsible.js.map +1 -0
  33. package/dist/date-picker.d.ts.map +1 -1
  34. package/dist/date-picker.js +12 -5
  35. package/dist/date-picker.js.map +1 -1
  36. package/dist/date-range.d.ts +23 -0
  37. package/dist/date-range.d.ts.map +1 -0
  38. package/dist/date-range.js +45 -0
  39. package/dist/date-range.js.map +1 -0
  40. package/dist/evidence.d.ts +241 -1
  41. package/dist/evidence.d.ts.map +1 -1
  42. package/dist/evidence.js +17 -1
  43. package/dist/evidence.js.map +1 -1
  44. package/dist/feedback.d.ts +10 -2
  45. package/dist/feedback.d.ts.map +1 -1
  46. package/dist/feedback.js +26 -3
  47. package/dist/feedback.js.map +1 -1
  48. package/dist/floating-action-button.d.ts +33 -0
  49. package/dist/floating-action-button.d.ts.map +1 -0
  50. package/dist/floating-action-button.js +53 -0
  51. package/dist/floating-action-button.js.map +1 -0
  52. package/dist/heading.d.ts +9 -0
  53. package/dist/heading.d.ts.map +1 -0
  54. package/dist/heading.js +24 -0
  55. package/dist/heading.js.map +1 -0
  56. package/dist/index.d.ts +17 -0
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +17 -0
  59. package/dist/index.js.map +1 -1
  60. package/dist/inputs.d.ts +3 -1
  61. package/dist/inputs.d.ts.map +1 -1
  62. package/dist/inputs.js +3 -3
  63. package/dist/inputs.js.map +1 -1
  64. package/dist/keyboard.d.ts +17 -0
  65. package/dist/keyboard.d.ts.map +1 -0
  66. package/dist/keyboard.js +42 -0
  67. package/dist/keyboard.js.map +1 -0
  68. package/dist/mentions.d.ts +28 -0
  69. package/dist/mentions.d.ts.map +1 -0
  70. package/dist/mentions.js +41 -0
  71. package/dist/mentions.js.map +1 -0
  72. package/dist/provider-button.d.ts +12 -0
  73. package/dist/provider-button.d.ts.map +1 -0
  74. package/dist/provider-button.js +35 -0
  75. package/dist/provider-button.js.map +1 -0
  76. package/dist/provider.d.ts.map +1 -1
  77. package/dist/provider.js +13 -4
  78. package/dist/provider.js.map +1 -1
  79. package/dist/tags-input.d.ts +23 -0
  80. package/dist/tags-input.d.ts.map +1 -0
  81. package/dist/tags-input.js +58 -0
  82. package/dist/tags-input.js.map +1 -0
  83. package/dist/toggle-group.d.ts +12 -0
  84. package/dist/toggle-group.d.ts.map +1 -0
  85. package/dist/toggle-group.js +39 -0
  86. package/dist/toggle-group.js.map +1 -0
  87. package/dist/top.d.ts +11 -0
  88. package/dist/top.d.ts.map +1 -0
  89. package/dist/top.js +30 -0
  90. package/dist/top.js.map +1 -0
  91. package/dist/transfer-list.d.ts +23 -0
  92. package/dist/transfer-list.d.ts.map +1 -0
  93. package/dist/transfer-list.js +46 -0
  94. package/dist/transfer-list.js.map +1 -0
  95. package/package.json +117 -3
@@ -0,0 +1,35 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { authProviderButtonRecipe, resolveAuthProviderSurface, validateAuthProviderButtonDescriptor, } from "@hjmds/design-contracts/components/provider-button";
3
+ import { ActivityIndicator, Pressable, View, } from "react-native";
4
+ import { Text } from "./primitives.js";
5
+ import { useHjmNativeTheme } from "./provider.js";
6
+ export function AuthProviderButton({ descriptor, logo, onPress, style }) {
7
+ validateAuthProviderButtonDescriptor(descriptor);
8
+ const theme = useHjmNativeTheme();
9
+ // The theme picks between the provider's own variants and nothing else.
10
+ const surface = resolveAuthProviderSurface(descriptor.provider, theme.environment.theme === "dark" ? "dark" : "light");
11
+ const busy = descriptor.busy === true;
12
+ const disabled = descriptor.disabled === true || busy;
13
+ return (_jsxs(Pressable, { accessibilityRole: "button", accessibilityState: { busy, disabled }, disabled: disabled, onPress: onPress, style: [
14
+ {
15
+ alignItems: "center",
16
+ backgroundColor: surface.background,
17
+ borderColor: surface.border ?? "transparent",
18
+ borderRadius: authProviderButtonRecipe.radius,
19
+ borderWidth: surface.border === null ? 0 : authProviderButtonRecipe.borderWidth,
20
+ flexDirection: "row",
21
+ gap: authProviderButtonRecipe.gap,
22
+ justifyContent: "center",
23
+ minHeight: Math.max(authProviderButtonRecipe.minHeight, authProviderButtonRecipe.minTouchTarget),
24
+ opacity: disabled && !busy ? 0.5 : 1,
25
+ paddingHorizontal: authProviderButtonRecipe.paddingHorizontal,
26
+ },
27
+ style,
28
+ ], children: [_jsx(View, { style: {
29
+ alignItems: "center",
30
+ height: authProviderButtonRecipe.logoSize,
31
+ justifyContent: "center",
32
+ width: authProviderButtonRecipe.logoSize,
33
+ }, children: logo }), _jsx(Text, { style: { color: surface.content, flexShrink: 1 }, variant: "body", children: descriptor.label }), busy ? _jsx(ActivityIndicator, { color: surface.content }) : null] }));
34
+ }
35
+ //# sourceMappingURL=provider-button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-button.js","sourceRoot":"","sources":["../src/provider-button.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,oCAAoC,GAErC,MAAM,oDAAoD,CAAC;AAE5D,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,IAAI,GAGL,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAUlD,MAAM,UAAU,kBAAkB,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAA2B;IAC9F,oCAAoC,CAAC,UAAU,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,iBAAiB,EAAE,CAAC;IAClC,wEAAwE;IACxE,MAAM,OAAO,GAAG,0BAA0B,CACxC,UAAU,CAAC,QAAQ,EACnB,KAAK,CAAC,WAAW,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CACtD,CAAC;IACF,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC;IACtC,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC;IACtD,OAAO,CACL,MAAC,SAAS,IACR,iBAAiB,EAAC,QAAQ,EAC1B,kBAAkB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EACtC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE;YACL;gBACE,UAAU,EAAE,QAAQ;gBACpB,eAAe,EAAE,OAAO,CAAC,UAAU;gBACnC,WAAW,EAAE,OAAO,CAAC,MAAM,IAAI,aAAa;gBAC5C,YAAY,EAAE,wBAAwB,CAAC,MAAM;gBAC7C,WAAW,EAAE,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,WAAW;gBAC/E,aAAa,EAAE,KAAK;gBACpB,GAAG,EAAE,wBAAwB,CAAC,GAAG;gBACjC,cAAc,EAAE,QAAQ;gBACxB,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,wBAAwB,CAAC,SAAS,EAAE,wBAAwB,CAAC,cAAc,CAAC;gBAChG,OAAO,EAAE,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACpC,iBAAiB,EAAE,wBAAwB,CAAC,iBAAiB;aAC9D;YACD,KAAK;SACN,aAED,KAAC,IAAI,IACH,KAAK,EAAE;oBACL,UAAU,EAAE,QAAQ;oBACpB,MAAM,EAAE,wBAAwB,CAAC,QAAQ;oBACzC,cAAc,EAAE,QAAQ;oBACxB,KAAK,EAAE,wBAAwB,CAAC,QAAQ;iBACzC,YAEA,IAAI,GACA,EAEP,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,OAAO,EAAC,MAAM,YACnE,UAAU,CAAC,KAAK,GACZ,EACN,IAAI,CAAC,CAAC,CAAC,KAAC,iBAAiB,IAAC,KAAK,EAAE,OAAO,CAAC,OAAO,GAAI,CAAC,CAAC,CAAC,IAAI,IAClD,CACb,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,qBAAqB,EAE1B,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC3B,MAAM,2DAA2D,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAQf,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,MAAM,cAAc,GAAG,yBAAyB,GACpD,QAAQ,CAAC;IACP,MAAM,EAAE,yBAAyB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC;IACtD;;;;OAIG;IACH,WAAW,EAAE,iBAAiB,CAAC;IAC/B,MAAM,EAAE,QAAQ,CAAC;QACf,OAAO,EAAE,OAAO,OAAO,CAAC;QACxB,MAAM,EAAE,OAAO,MAAM,CAAC;QACtB,UAAU,EAAE,OAAO,UAAU,CAAC;KAC/B,CAAC,CAAC;CACJ,CAAC,CAAC;AAEL,KAAK,iCAAiC,GAAG,QAAQ,CAAC;IAChD,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC,CAAC;AAEH,KAAK,2BAA2B,GAAG,QAAQ,CAAC;IAC1C,wFAAwF;IACxF,KAAK,EAAE,yBAAyB,CAAC;IACjC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,aAAa,CAAC,EAAE,KAAK,CAAC;IACtB,mBAAmB,CAAC,EAAE,KAAK,CAAC;CAC7B,CAAC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC5C,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC,GAAG,CAAC,iCAAiC,GAAG,2BAA2B,CAAC,CAAC;AA2CvE,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,KAAK,EACL,SAAS,EACT,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,KAAK,EAAE,aAAa,GACrB,EAAE,sBAAsB,+BA8CxB;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAMlD"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,qBAAqB,EAE1B,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC3B,MAAM,2DAA2D,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAOL,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AASf,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,MAAM,cAAc,GAAG,yBAAyB,GACpD,QAAQ,CAAC;IACP,MAAM,EAAE,yBAAyB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC;IACtD;;;;OAIG;IACH,WAAW,EAAE,iBAAiB,CAAC;IAC/B,MAAM,EAAE,QAAQ,CAAC;QACf,OAAO,EAAE,OAAO,OAAO,CAAC;QACxB,MAAM,EAAE,OAAO,MAAM,CAAC;QACtB,UAAU,EAAE,OAAO,UAAU,CAAC;KAC/B,CAAC,CAAC;CACJ,CAAC,CAAC;AAEL,KAAK,iCAAiC,GAAG,QAAQ,CAAC;IAChD,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAC,CAAC;AAEH,KAAK,2BAA2B,GAAG,QAAQ,CAAC;IAC1C,wFAAwF;IACxF,KAAK,EAAE,yBAAyB,CAAC;IACjC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,aAAa,CAAC,EAAE,KAAK,CAAC;IACtB,mBAAmB,CAAC,EAAE,KAAK,CAAC;CAC7B,CAAC,CAAC;AAEH,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;IAC5C,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC,GAAG,CAAC,iCAAiC,GAAG,2BAA2B,CAAC,CAAC;AA+CvE,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,KAAK,EACL,SAAS,EACT,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,KAAK,EAAE,aAAa,GACrB,EAAE,sBAAsB,+BAoDxB;AAED,wBAAgB,iBAAiB,IAAI,cAAc,CAMlD"}
package/dist/provider.js CHANGED
@@ -1,9 +1,12 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { resolveDesignSystemProviderValue, validateDesignSystemProviderValue, } from "@hjmds/design-contracts/components/design-system-provider";
3
3
  import { spacing, radius, typography } from "@hjmds/design-contracts/foundations";
4
- import { createContext, useContext, useEffect, useMemo, useState, } from "react";
5
- import { AccessibilityInfo, I18nManager, useColorScheme, useWindowDimensions, } from "react-native";
4
+ import { createContext, useContext, useEffect, useMemo, useState, useSyncExternalStore, } from "react";
5
+ import { AccessibilityInfo, I18nManager, Platform, useColorScheme, useWindowDimensions, } from "react-native";
6
6
  const HjmNativeThemeContext = createContext(null);
7
+ const subscribeHydration = () => () => undefined;
8
+ const clientSnapshot = () => true;
9
+ const serverSnapshot = () => false;
7
10
  function useSystemReducedMotion(observe) {
8
11
  // AccessibilityInfo resolves asynchronously. Treat the unknown first frame
9
12
  // as reduced motion so a surface never starts an animation before the OS
@@ -39,6 +42,12 @@ function toEnvironmentInput(props) {
39
42
  export function HjmNativeProvider({ children, theme, direction, textScale, reducedMotion, minimumVisualTarget, value: suppliedValue, }) {
40
43
  const parent = useContext(HjmNativeThemeContext);
41
44
  const colorScheme = useColorScheme();
45
+ // Match Expo web's light server snapshot to avoid stale styles after hydration;
46
+ // native stays immediate. See README: static-web theme precedence.
47
+ const isClient = useSyncExternalStore(subscribeHydration, clientSnapshot, serverSnapshot);
48
+ const systemTheme = colorScheme === "dark" && (Platform.OS !== "web" || isClient)
49
+ ? "dark"
50
+ : "light";
42
51
  const systemReducedMotion = useSystemReducedMotion(suppliedValue === undefined && reducedMotion === undefined && parent === null);
43
52
  const { fontScale: systemTextScale } = useWindowDimensions();
44
53
  const environment = useMemo(() => toEnvironmentInput({
@@ -50,7 +59,7 @@ export function HjmNativeProvider({ children, theme, direction, textScale, reduc
50
59
  }), [direction, minimumVisualTarget, reducedMotion, textScale, theme]);
51
60
  const contextValue = useMemo(() => {
52
61
  const resolved = suppliedValue ?? resolveDesignSystemProviderValue(environment, {
53
- systemTheme: colorScheme === "dark" ? "dark" : "light",
62
+ systemTheme,
54
63
  systemDirection: I18nManager.isRTL ? "rtl" : "ltr",
55
64
  systemTextScale,
56
65
  systemReducedMotion,
@@ -69,7 +78,7 @@ export function HjmNativeProvider({ children, theme, direction, textScale, reduc
69
78
  },
70
79
  tokens: { spacing, radius, typography },
71
80
  };
72
- }, [colorScheme, environment, parent, suppliedValue, systemReducedMotion, systemTextScale]);
81
+ }, [environment, parent, suppliedValue, systemReducedMotion, systemTextScale, systemTheme]);
73
82
  return _jsx(HjmNativeThemeContext.Provider, { value: contextValue, children: children });
74
83
  }
75
84
  export function useHjmNativeTheme() {
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,gCAAgC,EAChC,iCAAiC,GAKlC,MAAM,2DAA2D,CAAC;AAEnE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EACL,aAAa,EACb,UAAU,EACV,SAAS,EACT,OAAO,EACP,QAAQ,EACR,oBAAoB,GAErB,MAAM,OAAO,CAAC;AACf,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,QAAQ,EACR,cAAc,EACd,mBAAmB,GACpB,MAAM,cAAc,CAAC;AA2CtB,MAAM,qBAAqB,GAAG,aAAa,CAAwB,IAAI,CAAC,CAAC;AAEzE,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;AACjD,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;AAClC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC;AAEnC,SAAS,sBAAsB,CAAC,OAAgB;IAC9C,2EAA2E;IAC3E,yEAAyE;IACzE,0EAA0E;IAC1E,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEzD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAC/B,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,KAAK,iBAAiB,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9D,IAAI,MAAM;gBAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,iBAAiB,CAAC,gBAAgB,CACrD,qBAAqB,EACrB,gBAAgB,CACjB,CAAC;QACF,OAAO,GAAG,EAAE;YACV,MAAM,GAAG,KAAK,CAAC;YACf,YAAY,CAAC,MAAM,EAAE,CAAC;QACxB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,kBAAkB,CACzB,KAAwC;IAExC,OAAO;QACL,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5D,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;QACxE,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC;QACxE,GAAG,CAAC,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,aAAa,EAAE,CAAC;QACpF,GAAG,CAAC,KAAK,CAAC,mBAAmB,KAAK,SAAS;YACzC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,EAAE,CAAC;KACxD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAChC,QAAQ,EACR,KAAK,EACL,SAAS,EACT,SAAS,EACT,aAAa,EACb,mBAAmB,EACnB,KAAK,EAAE,aAAa,GACG;IACvB,MAAM,MAAM,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,gFAAgF;IAChF,mEAAmE;IACnE,MAAM,QAAQ,GAAG,oBAAoB,CAAC,kBAAkB,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;IAC1F,MAAM,WAAW,GAAG,WAAW,KAAK,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,KAAK,IAAI,QAAQ,CAAC;QAC/E,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,OAAO,CAAC;IACZ,MAAM,mBAAmB,GAAG,sBAAsB,CAChD,aAAa,KAAK,SAAS,IAAI,aAAa,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,CAC9E,CAAC;IACF,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAC7D,MAAM,WAAW,GAAG,OAAO,CACzB,GAAG,EAAE,CACH,kBAAkB,CAAC;QACjB,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;QACzC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;QACjD,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;QACjD,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC;QACzD,GAAG,CAAC,mBAAmB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,CAAC;KACtE,CAAC,EACJ,CAAC,SAAS,EAAE,mBAAmB,EAAE,aAAa,EAAE,SAAS,EAAE,KAAK,CAAC,CAClE,CAAC;IAEF,MAAM,YAAY,GAAG,OAAO,CAAiB,GAAG,EAAE;QAChD,MAAM,QAAQ,GAAG,aAAa,IAAI,gCAAgC,CAChE,WAAW,EACX;YACE,WAAW;YACX,eAAe,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;YAClD,eAAe;YACf,mBAAmB;YACnB,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;SAC3D,CACF,CAAC;QACF,iCAAiC,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,eAAe,GAAG,aAAa,KAAK,SAAS,IAAI,SAAS,KAAK,SAAS;YAC5E,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC,IAAI,IAAI,QAAQ,CAAC;QACzC,OAAO;YACL,GAAG,QAAQ;YACX,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK;YAC9B,WAAW,EAAE;gBACX,IAAI,EAAE,eAAe;gBACrB,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,SAAS;aACtC;YACD,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE;SACxC,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC;IAE5F,OAAO,KAAC,qBAAqB,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,YAAG,QAAQ,GAAkC,CAAC;AAC1G,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,qBAAqB,CAAC,CAAC;IAChD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { type TagsInputCommitResult, type TagsInputPolicy, type TagsInputSuggestion } from "@hjmds/design-contracts/components/tags-input";
2
+ import { type StyleProp, type ViewStyle } from "react-native";
3
+ export type TagsInputProps = Readonly<{
4
+ label: string;
5
+ tags?: readonly string[];
6
+ defaultTags?: readonly string[];
7
+ onTagsChange?: (tags: readonly string[]) => void;
8
+ onReject?: (result: TagsInputCommitResult) => void;
9
+ /** The text being typed; a product filtering `suggestions` needs it. */
10
+ onDraftChange?: (draft: string) => void;
11
+ policy?: TagsInputPolicy;
12
+ /** Candidates for the current draft, already filtered by the product. */
13
+ suggestions?: readonly TagsInputSuggestion[];
14
+ suggestionsLabel?: string;
15
+ /** Composes one tag's remove-control name from the tag text. */
16
+ composeRemoveLabel: (tag: string) => string;
17
+ placeholder?: string;
18
+ description?: string;
19
+ disabled?: boolean;
20
+ style?: StyleProp<ViewStyle>;
21
+ }>;
22
+ export declare function TagsInput({ label, tags: controlledTags, defaultTags, onTagsChange, onReject, onDraftChange, policy, suggestions, suggestionsLabel, composeRemoveLabel, placeholder, description, disabled, style, }: TagsInputProps): import("react").JSX.Element;
23
+ //# sourceMappingURL=tags-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags-input.d.ts","sourceRoot":"","sources":["../src/tags-input.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACzB,MAAM,+CAA+C,CAAC;AAIvD,OAAO,EAA8B,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAI1F,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACnD,wEAAwE;IACxE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,yEAAyE;IACzE,WAAW,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;IAC7C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gEAAgE;IAChE,kBAAkB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC,CAAC;AAEH,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,IAAI,EAAE,cAAc,EACpB,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,MAAM,EACN,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACX,WAAW,EACX,QAAgB,EAChB,KAAK,GACN,EAAE,cAAc,+BAgGhB"}
@@ -0,0 +1,58 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { removeTagAt, resolveTagsInputCommit, tagsInputRecipe, } from "@hjmds/design-contracts/components/tags-input";
3
+ import { resolveColorReference } from "@hjmds/design-contracts/color-references";
4
+ import { radius, spacing } from "@hjmds/design-contracts/foundations";
5
+ import { useState } from "react";
6
+ import { Pressable, TextInput, View } from "react-native";
7
+ import { Text } from "./primitives.js";
8
+ import { useHjmNativeTheme } from "./provider.js";
9
+ export function TagsInput({ label, tags: controlledTags, defaultTags, onTagsChange, onReject, onDraftChange, policy, suggestions, suggestionsLabel, composeRemoveLabel, placeholder, description, disabled = false, style, }) {
10
+ const { palette } = useHjmNativeTheme();
11
+ const [internal, setInternal] = useState(defaultTags ?? []);
12
+ const tags = controlledTags ?? internal;
13
+ const [draft, setDraft] = useState("");
14
+ const border = resolveColorReference(tagsInputRecipe.frame.border, palette);
15
+ const surface = resolveColorReference(tagsInputRecipe.tag.background, palette);
16
+ const content = resolveColorReference(tagsInputRecipe.tag.color, palette);
17
+ const setTags = (next) => {
18
+ if (controlledTags === undefined)
19
+ setInternal(next);
20
+ onTagsChange?.(next);
21
+ };
22
+ const changeDraft = (next) => { setDraft(next); onDraftChange?.(next); };
23
+ const commit = (value) => {
24
+ const result = resolveTagsInputCommit(tags, value, policy ?? {});
25
+ if (!result.accepted) {
26
+ onReject?.(result);
27
+ return;
28
+ }
29
+ setTags([...tags, result.value]);
30
+ changeDraft("");
31
+ };
32
+ return (_jsxs(View, { style: [{ gap: tagsInputRecipe.frame.gap }, style], children: [_jsx(Text, { variant: "label", children: label }), _jsxs(View, { style: {
33
+ minHeight: tagsInputRecipe.frame.minHeight,
34
+ flexDirection: "row",
35
+ flexWrap: "wrap",
36
+ alignItems: "center",
37
+ gap: tagsInputRecipe.frame.gap,
38
+ padding: spacing.xs,
39
+ borderWidth: 1,
40
+ borderColor: border,
41
+ borderRadius: radius.md,
42
+ opacity: disabled ? 0.5 : 1,
43
+ }, children: [tags.map((tag, index) => (_jsxs(View, { style: {
44
+ minHeight: tagsInputRecipe.tag.minHeight,
45
+ flexDirection: "row",
46
+ alignItems: "center",
47
+ gap: spacing.xxs,
48
+ paddingHorizontal: spacing.xs,
49
+ borderRadius: 999,
50
+ backgroundColor: surface,
51
+ }, children: [_jsx(Text, { style: { color: content }, children: tag }), _jsx(Pressable, { accessibilityRole: "button", accessibilityLabel: composeRemoveLabel(tag), disabled: disabled,
52
+ // The visible chip is small; the touch target is not.
53
+ hitSlop: tagsInputRecipe.remove.minTouchTarget / 2, onPress: () => setTags(removeTagAt(tags, index)), children: _jsx(Text, { style: { color: content }, children: "\u00D7" }) })] }, `${tag}-${index}`))), _jsx(TextInput, { accessibilityLabel: label, editable: !disabled, placeholder: placeholder, value: draft, onChangeText: changeDraft,
54
+ // There is no keyboard commit vocabulary here: the return key is the
55
+ // only reliable one on a phone, so Comma/Space/Blur stay Web-only.
56
+ onSubmitEditing: () => commit(draft), onBlur: () => commit(draft), style: { flexGrow: 1, minWidth: 80, color: content } })] }), suggestions !== undefined && suggestions.length > 0 && draft.trim().length > 0 ? (_jsx(View, { accessibilityLabel: suggestionsLabel, style: { gap: spacing.xxs }, children: suggestions.map((item) => (_jsx(Pressable, { accessibilityRole: "button", accessibilityState: { disabled: item.disabled === true }, disabled: item.disabled === true || disabled, onPress: () => commit(item.value ?? item.label), style: { minHeight: tagsInputRecipe.tag.minHeight, justifyContent: "center", paddingHorizontal: spacing.xs }, children: _jsx(Text, { style: { color: content }, children: item.label }) }, item.id))) })) : null, description ? _jsx(Text, { tone: "muted", variant: "caption", children: description }) : null] }));
57
+ }
58
+ //# sourceMappingURL=tags-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags-input.js","sourceRoot":"","sources":["../src/tags-input.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,eAAe,GAIhB,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAkC,MAAM,cAAc,CAAC;AAC1F,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAsBlD,MAAM,UAAU,SAAS,CAAC,EACxB,KAAK,EACL,IAAI,EAAE,cAAc,EACpB,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,MAAM,EACN,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACX,WAAW,EACX,QAAQ,GAAG,KAAK,EAChB,KAAK,GACU;IACf,MAAM,EAAE,OAAO,EAAE,GAAG,iBAAiB,EAAE,CAAC;IACxC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAoB,WAAW,IAAI,EAAE,CAAC,CAAC;IAC/E,MAAM,IAAI,GAAG,cAAc,IAAI,QAAQ,CAAC;IACxC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,qBAAqB,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,qBAAqB,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG,qBAAqB,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAE1E,MAAM,OAAO,GAAG,CAAC,IAAuB,EAAE,EAAE;QAC1C,IAAI,cAAc,KAAK,SAAS;YAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QACpD,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC;IACF,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACjF,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE;QAC/B,MAAM,MAAM,GAAG,sBAAsB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC;YAAC,OAAO;QAAC,CAAC;QACrD,OAAO,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACjC,WAAW,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,aACtD,KAAC,IAAI,IAAC,OAAO,EAAC,OAAO,YAAE,KAAK,GAAQ,EACpC,MAAC,IAAI,IACH,KAAK,EAAE;oBACL,SAAS,EAAE,eAAe,CAAC,KAAK,CAAC,SAAS;oBAC1C,aAAa,EAAE,KAAK;oBACpB,QAAQ,EAAE,MAAM;oBAChB,UAAU,EAAE,QAAQ;oBACpB,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC,GAAG;oBAC9B,OAAO,EAAE,OAAO,CAAC,EAAE;oBACnB,WAAW,EAAE,CAAC;oBACd,WAAW,EAAE,MAAM;oBACnB,YAAY,EAAE,MAAM,CAAC,EAAE;oBACvB,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBAC5B,aAEA,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CACxB,MAAC,IAAI,IAEH,KAAK,EAAE;4BACL,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC,SAAS;4BACxC,aAAa,EAAE,KAAK;4BACpB,UAAU,EAAE,QAAQ;4BACpB,GAAG,EAAE,OAAO,CAAC,GAAG;4BAChB,iBAAiB,EAAE,OAAO,CAAC,EAAE;4BAC7B,YAAY,EAAE,GAAG;4BACjB,eAAe,EAAE,OAAO;yBACzB,aAED,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,YAAG,GAAG,GAAQ,EAC7C,KAAC,SAAS,IACR,iBAAiB,EAAC,QAAQ,EAC1B,kBAAkB,EAAE,kBAAkB,CAAC,GAAG,CAAC,EAC3C,QAAQ,EAAE,QAAQ;gCAClB,sDAAsD;gCACtD,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC,cAAc,GAAG,CAAC,EAClD,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,YAEhD,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,uBAAU,GAC/B,KArBP,GAAG,GAAG,IAAI,KAAK,EAAE,CAsBjB,CACR,CAAC,EACF,KAAC,SAAS,IACR,kBAAkB,EAAE,KAAK,EACzB,QAAQ,EAAE,CAAC,QAAQ,EACnB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,WAAW;wBACzB,qEAAqE;wBACrE,mEAAmE;wBACnE,eAAe,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EACpC,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAC3B,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GACpD,IACG,EACN,WAAW,KAAK,SAAS,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAChF,KAAC,IAAI,IAAC,kBAAkB,EAAE,gBAAgB,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,YACpE,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACzB,KAAC,SAAS,IAER,iBAAiB,EAAC,QAAQ,EAC1B,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,EACxD,QAAQ,EAAE,IAAI,CAAC,QAAQ,KAAK,IAAI,IAAI,QAAQ,EAC5C,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,EAC/C,KAAK,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,EAAE,YAE5G,KAAC,IAAI,IAAC,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,YAAG,IAAI,CAAC,KAAK,GAAQ,IAP/C,IAAI,CAAC,EAAE,CAQF,CACb,CAAC,GACG,CACR,CAAC,CAAC,CAAC,IAAI,EACP,WAAW,CAAC,CAAC,CAAC,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,OAAO,EAAC,SAAS,YAAE,WAAW,GAAQ,CAAC,CAAC,CAAC,IAAI,IAC1E,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { type ToggleGroupDescriptor, type ToggleGroupSize } from "@hjmds/design-contracts/components/toggle-group";
2
+ import { type StyleProp, type ViewStyle } from "react-native";
3
+ export type ToggleGroupProps<Id extends string = string> = Readonly<{
4
+ descriptor: ToggleGroupDescriptor<Id>;
5
+ pressedIds?: ReadonlySet<Id>;
6
+ defaultPressedIds?: ReadonlySet<Id>;
7
+ onPressedIdsChange?: (ids: ReadonlySet<Id>) => void;
8
+ size?: ToggleGroupSize;
9
+ style?: StyleProp<ViewStyle>;
10
+ }>;
11
+ export declare function ToggleGroup<Id extends string = string>({ descriptor, pressedIds: controlledPressed, defaultPressedIds, onPressedIdsChange, size, style, }: ToggleGroupProps<Id>): import("react").JSX.Element;
12
+ //# sourceMappingURL=toggle-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle-group.d.ts","sourceRoot":"","sources":["../src/toggle-group.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACrB,MAAM,iDAAiD,CAAC;AAGzD,OAAO,EAAmB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAI/E,MAAM,MAAM,gBAAgB,CAAC,EAAE,SAAS,MAAM,GAAG,MAAM,IAAI,QAAQ,CAAC;IAClE,UAAU,EAAE,qBAAqB,CAAC,EAAE,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IAC7B,iBAAiB,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IACpC,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IACpD,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC,CAAC;AAEH,wBAAgB,WAAW,CAAC,EAAE,SAAS,MAAM,GAAG,MAAM,EAAE,EACtD,UAAU,EACV,UAAU,EAAE,iBAAiB,EAC7B,iBAAiB,EACjB,kBAAkB,EAClB,IAAsC,EACtC,KAAK,GACN,EAAE,gBAAgB,CAAC,EAAE,CAAC,+BAmDtB"}
@@ -0,0 +1,39 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { reconcileToggleGroupSelection, toggleGroupRecipe, toggleGroupSelection, validateToggleGroupDescriptor, } from "@hjmds/design-contracts/components/toggle-group";
3
+ import { resolveColorReference } from "@hjmds/design-contracts/color-references";
4
+ import { useMemo, useState } from "react";
5
+ import { Pressable, View } from "react-native";
6
+ import { Text } from "./primitives.js";
7
+ import { useHjmNativeTheme } from "./provider.js";
8
+ export function ToggleGroup({ descriptor, pressedIds: controlledPressed, defaultPressedIds, onPressedIdsChange, size = toggleGroupRecipe.defaults.size, style, }) {
9
+ validateToggleGroupDescriptor(descriptor);
10
+ const theme = useHjmNativeTheme();
11
+ const [internal, setInternal] = useState(defaultPressedIds ?? new Set());
12
+ const raw = controlledPressed ?? internal;
13
+ const pressed = useMemo(() => reconcileToggleGroupSelection(descriptor, raw), [descriptor, raw]);
14
+ const metrics = toggleGroupRecipe.sizes[size];
15
+ const commit = (next) => {
16
+ if (controlledPressed === undefined)
17
+ setInternal(next);
18
+ onPressedIdsChange?.(next);
19
+ };
20
+ return (_jsx(View, { accessibilityLabel: descriptor.accessibilityLabel, style: [{ flexDirection: "row", flexWrap: "wrap", gap: toggleGroupRecipe.gap }, style], children: descriptor.items.map((item) => {
21
+ const on = pressed.has(item.id);
22
+ const tone = on ? toggleGroupRecipe.pressed : toggleGroupRecipe.idle;
23
+ return (_jsx(Pressable, { accessibilityRole: "button",
24
+ // Native announces a toggle through `selected`, the counterpart of
25
+ // aria-pressed; colour alone would say nothing.
26
+ accessibilityState: { disabled: item.disabled === true, selected: on }, disabled: item.disabled === true, onPress: () => commit(toggleGroupSelection(descriptor, pressed, item.id)), style: {
27
+ alignItems: "center",
28
+ backgroundColor: resolveColorReference(tone.background, theme.palette),
29
+ borderColor: resolveColorReference(tone.border, theme.palette),
30
+ borderRadius: toggleGroupRecipe.radius,
31
+ borderWidth: 1,
32
+ justifyContent: "center",
33
+ minHeight: metrics.minHeight,
34
+ opacity: item.disabled === true ? 0.5 : 1,
35
+ paddingHorizontal: metrics.paddingHorizontal,
36
+ }, children: _jsx(Text, { style: { color: resolveColorReference(tone.color, theme.palette) }, variant: metrics.textVariant, children: item.label }) }, item.id));
37
+ }) }));
38
+ }
39
+ //# sourceMappingURL=toggle-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle-group.js","sourceRoot":"","sources":["../src/toggle-group.tsx"],"names":[],"mappings":"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"}
package/dist/top.d.ts ADDED
@@ -0,0 +1,11 @@
1
+ import { type TopDescriptor } from "@hjmds/design-contracts/components/top";
2
+ import type { ReactNode } from "react";
3
+ import { type StyleProp, type ViewStyle } from "react-native";
4
+ export type TopProps = Readonly<{
5
+ descriptor: TopDescriptor;
6
+ /** Secondary action sharing the title row; stacks below it at large text. */
7
+ trailing?: ReactNode;
8
+ style?: StyleProp<ViewStyle>;
9
+ }>;
10
+ export declare function Top({ descriptor, trailing, style }: TopProps): import("react").JSX.Element;
11
+ //# sourceMappingURL=top.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"top.d.ts","sourceRoot":"","sources":["../src/top.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,wCAAwC,CAAC;AAEhD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAQ,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAIpE,MAAM,MAAM,QAAQ,GAAG,QAAQ,CAAC;IAC9B,UAAU,EAAE,aAAa,CAAC;IAC1B,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC,CAAC;AAEH,wBAAgB,GAAG,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,QAAQ,+BA0D5D"}
package/dist/top.js ADDED
@@ -0,0 +1,30 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { topDefaults, topRecipe, validateTopDescriptor, } from "@hjmds/design-contracts/components/top";
3
+ import { resolveColorReference } from "@hjmds/design-contracts/color-references";
4
+ import { View } from "react-native";
5
+ import { Text } from "./primitives.js";
6
+ import { useHjmNativeTheme } from "./provider.js";
7
+ export function Top({ descriptor, trailing, style }) {
8
+ validateTopDescriptor(descriptor);
9
+ const theme = useHjmNativeTheme();
10
+ const size = descriptor.size ?? topDefaults.size;
11
+ const metrics = topRecipe.sizes[size];
12
+ // Large text stacks the trailing action instead of squeezing the title, the
13
+ // same rule Section already applies to its own header row.
14
+ const stack = theme.environment.textScale >= 1.6;
15
+ return (_jsxs(View, { style: [
16
+ { gap: topRecipe.gap, paddingBottom: metrics.paddingBottom, paddingTop: metrics.paddingTop },
17
+ style,
18
+ ], children: [descriptor.eyebrow ? (_jsx(Text, { style: { color: resolveColorReference(topRecipe.eyebrow.color, theme.palette) }, variant: topRecipe.eyebrow.textVariant, children: descriptor.eyebrow })) : null, _jsxs(View, { style: {
19
+ alignItems: stack ? "stretch" : "center",
20
+ flexDirection: stack ? "column" : "row",
21
+ gap: topRecipe.trailing.gap,
22
+ }, children: [_jsx(Text, { accessibilityRole: "header", style: {
23
+ color: resolveColorReference(topRecipe.title.color, theme.palette),
24
+ flex: stack ? undefined : 1,
25
+ fontSize: metrics.title.fontSize,
26
+ fontWeight: metrics.title.fontWeight,
27
+ lineHeight: metrics.title.lineHeight,
28
+ }, children: descriptor.title }), trailing ? _jsx(View, { children: trailing }) : null] }), descriptor.description ? (_jsx(Text, { style: { color: resolveColorReference(topRecipe.description.color, theme.palette) }, variant: topRecipe.description.textVariant, children: descriptor.description })) : null] }));
29
+ }
30
+ //# sourceMappingURL=top.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"top.js","sourceRoot":"","sources":["../src/top.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,WAAW,EACX,SAAS,EACT,qBAAqB,GAEtB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAEjF,OAAO,EAAE,IAAI,EAAkC,MAAM,cAAc,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AASlD,MAAM,UAAU,GAAG,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAY;IAC3D,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAClC,MAAM,KAAK,GAAG,iBAAiB,EAAE,CAAC;IAClC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC;IACjD,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACtC,4EAA4E;IAC5E,2DAA2D;IAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,SAAS,IAAI,GAAG,CAAC;IACjD,OAAO,CACL,MAAC,IAAI,IACH,KAAK,EAAE;YACL,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE;YAC5F,KAAK;SACN,aAEA,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CACpB,KAAC,IAAI,IACH,KAAK,EAAE,EAAE,KAAK,EAAE,qBAAqB,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAC/E,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,WAAW,YAErC,UAAU,CAAC,OAAO,GACd,CACR,CAAC,CAAC,CAAC,IAAI,EACR,MAAC,IAAI,IACH,KAAK,EAAE;oBACL,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;oBACxC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK;oBACvC,GAAG,EAAE,SAAS,CAAC,QAAQ,CAAC,GAAG;iBAC5B,aAMD,KAAC,IAAI,IACH,iBAAiB,EAAC,QAAQ,EAC1B,KAAK,EAAE;4BACL,KAAK,EAAE,qBAAqB,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;4BAClE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;4BAC3B,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ;4BAChC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU;4BACpC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,UAAU;yBACrC,YAEA,UAAU,CAAC,KAAK,GACZ,EACN,QAAQ,CAAC,CAAC,CAAC,KAAC,IAAI,cAAE,QAAQ,GAAQ,CAAC,CAAC,CAAC,IAAI,IACrC,EACN,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CACxB,KAAC,IAAI,IACH,KAAK,EAAE,EAAE,KAAK,EAAE,qBAAqB,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EACnF,OAAO,EAAE,SAAS,CAAC,WAAW,CAAC,WAAW,YAEzC,UAAU,CAAC,WAAW,GAClB,CACR,CAAC,CAAC,CAAC,IAAI,IACH,CACR,CAAC;AACJ,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { type TransferListMoveDirection } from "@hjmds/design-contracts/components/transfer-list";
2
+ import type { SelectItemDescriptor } from "@hjmds/design-contracts/behaviors";
3
+ import { type StyleProp, type ViewStyle } from "react-native";
4
+ export type TransferListLabels = Readonly<{
5
+ source: string;
6
+ target: string;
7
+ toTarget: string;
8
+ toSource: string;
9
+ selectAll: string;
10
+ empty: string;
11
+ }>;
12
+ export type TransferListProps<Id extends string = string> = Readonly<{
13
+ items: readonly SelectItemDescriptor<Id>[];
14
+ labels: TransferListLabels;
15
+ targetKeys?: ReadonlySet<Id>;
16
+ defaultTargetKeys?: ReadonlySet<Id>;
17
+ onTargetKeysChange?: (keys: ReadonlySet<Id>) => void;
18
+ /** Receives which ids moved, in origin-panel order, so the product announces it. */
19
+ onMove?: (movedIds: readonly Id[], direction: TransferListMoveDirection) => void;
20
+ style?: StyleProp<ViewStyle>;
21
+ }>;
22
+ export declare function TransferList<Id extends string = string>({ items, labels, targetKeys: controlledTargetKeys, defaultTargetKeys, onTargetKeysChange, onMove, style, }: TransferListProps<Id>): import("react").JSX.Element;
23
+ //# sourceMappingURL=transfer-list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer-list.d.ts","sourceRoot":"","sources":["../src/transfer-list.tsx"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,yBAAyB,EAG/B,MAAM,kDAAkD,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAG9E,OAAO,EAA+B,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAM3F,MAAM,MAAM,kBAAkB,GAAG,QAAQ,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC,CAAC;AAEH,MAAM,MAAM,iBAAiB,CAAC,EAAE,SAAS,MAAM,GAAG,MAAM,IAAI,QAAQ,CAAC;IACnE,KAAK,EAAE,SAAS,oBAAoB,CAAC,EAAE,CAAC,EAAE,CAAC;IAC3C,MAAM,EAAE,kBAAkB,CAAC;IAC3B,UAAU,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IAC7B,iBAAiB,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;IACpC,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC;IACrD,oFAAoF;IACpF,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACjF,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B,CAAC,CAAC;AAOH,wBAAgB,YAAY,CAAC,EAAE,SAAS,MAAM,GAAG,MAAM,EAAE,EACvD,KAAK,EACL,MAAM,EACN,UAAU,EAAE,oBAAoB,EAChC,iBAAiB,EACjB,kBAAkB,EAClB,MAAM,EACN,KAAK,GACN,EAAE,iBAAiB,CAAC,EAAE,CAAC,+BAsFvB"}
@@ -0,0 +1,46 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { moveTransferListSelection, reconcileTransferListSelection, resolveTransferListPanels, resolveTransferListSelectAllState, toggleTransferListSelectAll, toggleTransferListSelection, } from "@hjmds/design-contracts/components/transfer-list";
3
+ import { spacing } from "@hjmds/design-contracts/foundations";
4
+ import { useMemo, useState } from "react";
5
+ import { Pressable, ScrollView, View } from "react-native";
6
+ import { Button } from "./actions.js";
7
+ import { Text } from "./primitives.js";
8
+ import { useControllableState } from "./internal/state.js";
9
+ import { useHjmNativeTheme } from "./provider.js";
10
+ const emptySelection = () => ({
11
+ source: new Set(),
12
+ target: new Set(),
13
+ });
14
+ export function TransferList({ items, labels, targetKeys: controlledTargetKeys, defaultTargetKeys, onTargetKeysChange, onMove, style, }) {
15
+ const { colors } = useHjmNativeTheme();
16
+ const [targetKeys, setTargetKeys] = useControllableState({
17
+ ...(controlledTargetKeys === undefined ? {} : { value: controlledTargetKeys }),
18
+ defaultValue: defaultTargetKeys ?? new Set(),
19
+ ...(onTargetKeysChange === undefined ? {} : { onChange: onTargetKeysChange }),
20
+ });
21
+ const [rawSelection, setSelection] = useState((emptySelection));
22
+ const descriptor = useMemo(() => ({ items, targetKeys }), [items, targetKeys]);
23
+ // A row that left the list entirely must not keep a pending check mark.
24
+ const selection = useMemo(() => reconcileTransferListSelection(descriptor, rawSelection), [descriptor, rawSelection]);
25
+ const panels = resolveTransferListPanels(descriptor);
26
+ const move = (direction) => {
27
+ const result = moveTransferListSelection(descriptor, selection, direction);
28
+ setTargetKeys(result.targetKeys);
29
+ setSelection(result.selection);
30
+ if (result.movedIds.length > 0)
31
+ onMove?.(result.movedIds, direction);
32
+ };
33
+ const renderPanel = (panel) => {
34
+ const rows = panels[panel];
35
+ const selectAll = resolveTransferListSelectAllState(descriptor, selection, panel);
36
+ return (_jsxs(View, { style: { flex: 1, gap: spacing.xs }, children: [_jsx(Pressable, { accessibilityRole: "checkbox",
37
+ // `mixed` is the contract's answer, not a third visual state invented
38
+ // here: some rows checked is neither on nor off.
39
+ accessibilityState: { checked: selectAll }, accessibilityLabel: `${panel === "source" ? labels.source : labels.target}, ${labels.selectAll}`, disabled: rows.length === 0, onPress: () => setSelection(toggleTransferListSelectAll(descriptor, selection, panel)), style: { minHeight: 44, justifyContent: "center" }, children: _jsx(Text, { variant: "label", children: labels.selectAll }) }), _jsx(ScrollView, { style: { borderWidth: 1, borderColor: colors.border, borderRadius: 12 }, children: rows.length === 0 ? (_jsx(Text, { tone: "muted", variant: "caption", style: { padding: spacing.sm }, children: labels.empty })) : (rows.map((item) => {
40
+ const checked = selection[panel].has(item.id);
41
+ return (_jsx(Pressable, { accessibilityRole: "checkbox", accessibilityState: { checked, disabled: item.disabled === true }, disabled: item.disabled === true, onPress: () => setSelection(toggleTransferListSelection(descriptor, selection, panel, item.id)), style: { minHeight: 44, justifyContent: "center", paddingHorizontal: spacing.sm }, children: _jsxs(Text, { children: [checked ? "✓ " : "", item.label] }) }, item.id));
42
+ })) })] }));
43
+ };
44
+ return (_jsxs(View, { style: [{ gap: spacing.sm }, style], children: [_jsx(Text, { variant: "label", children: labels.source }), renderPanel("source"), _jsxs(View, { style: { flexDirection: "row", gap: spacing.sm, justifyContent: "center" }, children: [_jsx(Button, { tone: "secondary", disabled: selection.source.size === 0, onPress: () => move("toTarget"), children: labels.toTarget }), _jsx(Button, { tone: "secondary", disabled: selection.target.size === 0, onPress: () => move("toSource"), children: labels.toSource })] }), _jsx(Text, { variant: "label", children: labels.target }), renderPanel("target")] }));
45
+ }
46
+ //# sourceMappingURL=transfer-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer-list.js","sourceRoot":"","sources":["../src/transfer-list.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hjmds/react-native",
3
- "version": "1.1.1",
3
+ "version": "1.3.4",
4
4
  "description": "Expo-independent React Native renderers for HJM design contracts.",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -28,6 +28,30 @@
28
28
  "import": "./dist/provider.js",
29
29
  "default": "./dist/provider.js"
30
30
  },
31
+ "./carousel": {
32
+ "types": "./dist/carousel.d.ts",
33
+ "react-native": "./dist/carousel.js",
34
+ "import": "./dist/carousel.js",
35
+ "default": "./dist/carousel.js"
36
+ },
37
+ "./floating-action-button": {
38
+ "types": "./dist/floating-action-button.d.ts",
39
+ "react-native": "./dist/floating-action-button.js",
40
+ "import": "./dist/floating-action-button.js",
41
+ "default": "./dist/floating-action-button.js"
42
+ },
43
+ "./top-bar": {
44
+ "types": "./dist/navigation.d.ts",
45
+ "react-native": "./dist/navigation.js",
46
+ "import": "./dist/navigation.js",
47
+ "default": "./dist/navigation.js"
48
+ },
49
+ "./bottom-cta": {
50
+ "types": "./dist/actions.d.ts",
51
+ "react-native": "./dist/actions.js",
52
+ "import": "./dist/actions.js",
53
+ "default": "./dist/actions.js"
54
+ },
31
55
  "./composition-style": {
32
56
  "types": "./dist/composition-style.d.ts",
33
57
  "react-native": "./dist/composition-style.js",
@@ -82,6 +106,96 @@
82
106
  "import": "./dist/date-picker.js",
83
107
  "default": "./dist/date-picker.js"
84
108
  },
109
+ "./calendar": {
110
+ "types": "./dist/calendar.d.ts",
111
+ "react-native": "./dist/calendar.js",
112
+ "import": "./dist/calendar.js",
113
+ "default": "./dist/calendar.js"
114
+ },
115
+ "./agreement": {
116
+ "types": "./dist/agreement.d.ts",
117
+ "react-native": "./dist/agreement.js",
118
+ "import": "./dist/agreement.js",
119
+ "default": "./dist/agreement.js"
120
+ },
121
+ "./top": {
122
+ "types": "./dist/top.d.ts",
123
+ "react-native": "./dist/top.js",
124
+ "import": "./dist/top.js",
125
+ "default": "./dist/top.js"
126
+ },
127
+ "./heading": {
128
+ "types": "./dist/heading.d.ts",
129
+ "react-native": "./dist/heading.js",
130
+ "import": "./dist/heading.js",
131
+ "default": "./dist/heading.js"
132
+ },
133
+ "./toggle-group": {
134
+ "types": "./dist/toggle-group.d.ts",
135
+ "react-native": "./dist/toggle-group.js",
136
+ "import": "./dist/toggle-group.js",
137
+ "default": "./dist/toggle-group.js"
138
+ },
139
+ "./bottom-info": {
140
+ "types": "./dist/bottom-info.d.ts",
141
+ "react-native": "./dist/bottom-info.js",
142
+ "import": "./dist/bottom-info.js",
143
+ "default": "./dist/bottom-info.js"
144
+ },
145
+ "./collapsible": {
146
+ "types": "./dist/collapsible.d.ts",
147
+ "react-native": "./dist/collapsible.js",
148
+ "import": "./dist/collapsible.js",
149
+ "default": "./dist/collapsible.js"
150
+ },
151
+ "./asset": {
152
+ "types": "./dist/asset.d.ts",
153
+ "react-native": "./dist/asset.js",
154
+ "import": "./dist/asset.js",
155
+ "default": "./dist/asset.js"
156
+ },
157
+ "./tags-input": {
158
+ "types": "./dist/tags-input.d.ts",
159
+ "react-native": "./dist/tags-input.js",
160
+ "import": "./dist/tags-input.js",
161
+ "default": "./dist/tags-input.js"
162
+ },
163
+ "./date-range": {
164
+ "types": "./dist/date-range.d.ts",
165
+ "react-native": "./dist/date-range.js",
166
+ "import": "./dist/date-range.js",
167
+ "default": "./dist/date-range.js"
168
+ },
169
+ "./mentions": {
170
+ "types": "./dist/mentions.d.ts",
171
+ "react-native": "./dist/mentions.js",
172
+ "import": "./dist/mentions.js",
173
+ "default": "./dist/mentions.js"
174
+ },
175
+ "./transfer-list": {
176
+ "types": "./dist/transfer-list.d.ts",
177
+ "react-native": "./dist/transfer-list.js",
178
+ "import": "./dist/transfer-list.js",
179
+ "default": "./dist/transfer-list.js"
180
+ },
181
+ "./keyboard": {
182
+ "types": "./dist/keyboard.d.ts",
183
+ "react-native": "./dist/keyboard.js",
184
+ "import": "./dist/keyboard.js",
185
+ "default": "./dist/keyboard.js"
186
+ },
187
+ "./provider-button": {
188
+ "types": "./dist/provider-button.d.ts",
189
+ "react-native": "./dist/provider-button.js",
190
+ "import": "./dist/provider-button.js",
191
+ "default": "./dist/provider-button.js"
192
+ },
193
+ "./auth-screen": {
194
+ "types": "./dist/auth-screen.d.ts",
195
+ "react-native": "./dist/auth-screen.js",
196
+ "import": "./dist/auth-screen.js",
197
+ "default": "./dist/auth-screen.js"
198
+ },
85
199
  "./file-picker": {
86
200
  "types": "./dist/file-picker.d.ts",
87
201
  "react-native": "./dist/file-picker.js",
@@ -143,7 +257,7 @@
143
257
  "LICENSE"
144
258
  ],
145
259
  "peerDependencies": {
146
- "@hjmds/design-contracts": ">=1.1.0 <1.2.0",
260
+ "@hjmds/design-contracts": ">=1.3.0 <1.4.0",
147
261
  "react": ">=19",
148
262
  "react-native": ">=0.81"
149
263
  },
@@ -159,7 +273,7 @@
159
273
  "react-test-renderer": "19.2.3",
160
274
  "typescript": "^5.9.3",
161
275
  "vitest": "^4.1.11",
162
- "@hjmds/design-contracts": "1.1.1"
276
+ "@hjmds/design-contracts": "1.3.4"
163
277
  },
164
278
  "engines": {
165
279
  "node": ">=20"