react-native-tinyui 3.0.0 → 3.2.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 (69) hide show
  1. package/README.md +136 -6
  2. package/ios/Core/Tinyui.mm +3 -0
  3. package/ios/Core/TinyuiComponentClasses.mm +11 -0
  4. package/ios/SwipeActions/TinyuiSwipeActionsView.h +12 -0
  5. package/ios/SwipeActions/TinyuiSwipeActionsView.mm +289 -0
  6. package/ios/TipKit/TinyuiTipPopoverProvider.swift +29 -2
  7. package/ios/TipKit/TinyuiTipPopoverView.mm +10 -0
  8. package/ios/TipKit/TinyuiTipView.mm +9 -0
  9. package/ios/TipKit/TinyuiTipViewProvider.swift +8 -2
  10. package/ios/TipKit/TinyuiTipsRuntime.swift +12 -0
  11. package/lib/module/SwipeActions/SwipeActionsNativeComponent.ts +19 -0
  12. package/lib/module/SwipeActions/actions.js +21 -0
  13. package/lib/module/SwipeActions/actions.js.map +1 -0
  14. package/lib/module/SwipeActions/index.js +43 -0
  15. package/lib/module/SwipeActions/index.js.map +1 -0
  16. package/lib/module/SwipeActions/types.js +4 -0
  17. package/lib/module/SwipeActions/types.js.map +1 -0
  18. package/lib/module/TipKit/Group.js +52 -0
  19. package/lib/module/TipKit/Group.js.map +1 -0
  20. package/lib/module/TipKit/Popover.js +15 -1
  21. package/lib/module/TipKit/Popover.js.map +1 -1
  22. package/lib/module/TipKit/TipPopoverNativeComponent.ts +7 -0
  23. package/lib/module/TipKit/TipViewNativeComponent.ts +6 -0
  24. package/lib/module/TipKit/View.js +13 -1
  25. package/lib/module/TipKit/View.js.map +1 -1
  26. package/lib/module/TipKit/index.js +2 -0
  27. package/lib/module/TipKit/index.js.map +1 -1
  28. package/lib/module/index.js +1 -0
  29. package/lib/module/index.js.map +1 -1
  30. package/lib/module/utils/getNativeTinyui.js.map +1 -1
  31. package/lib/typescript/src/SwipeActions/SwipeActionsNativeComponent.d.ts +15 -0
  32. package/lib/typescript/src/SwipeActions/SwipeActionsNativeComponent.d.ts.map +1 -0
  33. package/lib/typescript/src/SwipeActions/actions.d.ts +9 -0
  34. package/lib/typescript/src/SwipeActions/actions.d.ts.map +1 -0
  35. package/lib/typescript/src/SwipeActions/index.d.ts +4 -0
  36. package/lib/typescript/src/SwipeActions/index.d.ts.map +1 -0
  37. package/lib/typescript/src/SwipeActions/types.d.ts +37 -0
  38. package/lib/typescript/src/SwipeActions/types.d.ts.map +1 -0
  39. package/lib/typescript/src/TipKit/Group.d.ts +13 -0
  40. package/lib/typescript/src/TipKit/Group.d.ts.map +1 -0
  41. package/lib/typescript/src/TipKit/Popover.d.ts.map +1 -1
  42. package/lib/typescript/src/TipKit/TipPopoverNativeComponent.d.ts +5 -0
  43. package/lib/typescript/src/TipKit/TipPopoverNativeComponent.d.ts.map +1 -1
  44. package/lib/typescript/src/TipKit/TipViewNativeComponent.d.ts +4 -0
  45. package/lib/typescript/src/TipKit/TipViewNativeComponent.d.ts.map +1 -1
  46. package/lib/typescript/src/TipKit/View.d.ts.map +1 -1
  47. package/lib/typescript/src/TipKit/index.d.ts +3 -1
  48. package/lib/typescript/src/TipKit/index.d.ts.map +1 -1
  49. package/lib/typescript/src/TipKit/types.d.ts +18 -0
  50. package/lib/typescript/src/TipKit/types.d.ts.map +1 -1
  51. package/lib/typescript/src/index.d.ts +3 -1
  52. package/lib/typescript/src/index.d.ts.map +1 -1
  53. package/lib/typescript/src/utils/getNativeTinyui.d.ts +1 -1
  54. package/lib/typescript/src/utils/getNativeTinyui.d.ts.map +1 -1
  55. package/package.json +10 -2
  56. package/react-native-tinyui.podspec +6 -1
  57. package/src/SwipeActions/SwipeActionsNativeComponent.ts +19 -0
  58. package/src/SwipeActions/actions.ts +26 -0
  59. package/src/SwipeActions/index.tsx +54 -0
  60. package/src/SwipeActions/types.ts +37 -0
  61. package/src/TipKit/Group.tsx +76 -0
  62. package/src/TipKit/Popover.tsx +16 -2
  63. package/src/TipKit/TipPopoverNativeComponent.ts +7 -0
  64. package/src/TipKit/TipViewNativeComponent.ts +6 -0
  65. package/src/TipKit/View.tsx +14 -2
  66. package/src/TipKit/index.ts +4 -0
  67. package/src/TipKit/types.ts +24 -0
  68. package/src/index.tsx +9 -0
  69. package/src/utils/getNativeTinyui.ts +1 -0
@@ -5,6 +5,7 @@ import UIKit
5
5
  @objc public protocol TinyuiTipViewDelegate: AnyObject {
6
6
  func onTipAction(tipId: String, id: String, title: String)
7
7
  func onTipError(tipId: String, code: String, message: String)
8
+ func onTipInvalidated(tipId: String, reason: String)
8
9
  // Fabric consumes this size directly; it is not a JavaScript event.
9
10
  func onTipSizeChange(tipId: String, width: CGFloat, height: CGFloat)
10
11
  }
@@ -69,9 +70,14 @@ import UIKit
69
70
  return
70
71
  }
71
72
  observation = Task { @MainActor [weak self] in
72
- for await shouldDisplay in tip.shouldDisplayUpdates {
73
+ var reportedInvalidation = false
74
+ for await status in tip.statusUpdates {
73
75
  guard !Task.isCancelled, let self else { break }
74
- if shouldDisplay { self.showTip() } else { self.removeTip() }
76
+ if case .available = status { self.showTip() } else { self.removeTip() }
77
+ if case .invalidated(let reason) = status, !reportedInvalidation {
78
+ reportedInvalidation = true
79
+ self.delegate?.onTipInvalidated(tipId: tip.id, reason: TinyuiTipsRuntime.invalidationReason(reason))
80
+ }
75
81
  }
76
82
  }
77
83
  }
@@ -80,6 +80,18 @@ import Foundation
80
80
  ])
81
81
  }
82
82
 
83
+ static func invalidationReason(_ reason: Tips.InvalidationReason) -> String {
84
+ if #available(iOS 18.0, *), reason == .displayDurationExceeded {
85
+ return "displayDurationExceeded"
86
+ }
87
+ switch reason {
88
+ case .actionPerformed: return "actionPerformed"
89
+ case .tipClosed: return "tipClosed"
90
+ case .displayCountExceeded: return "displayCountExceeded"
91
+ default: return "unknown"
92
+ }
93
+ }
94
+
83
95
  func remember(_ tip: TinyuiTip) throws {
84
96
  if let previous = knownTips[tip.id],
85
97
  previous.maximumDisplayCount != tip.maximumDisplayCount || previous.ignoresFrequency != tip.ignoresFrequency {
@@ -0,0 +1,19 @@
1
+ import {
2
+ codegenNativeComponent,
3
+ type CodegenTypes,
4
+ type ViewProps,
5
+ } from 'react-native';
6
+ import type { DirectEventHandler } from 'react-native/Libraries/Types/CodegenTypes';
7
+
8
+ export interface NativeSwipeActionsProps extends ViewProps {
9
+ actionsConfig: CodegenTypes.UnsafeMixed;
10
+ edge?: CodegenTypes.WithDefault<'leading' | 'trailing', 'trailing'>;
11
+ allowsFullSwipe?: CodegenTypes.WithDefault<boolean, true>;
12
+ disabled?: boolean;
13
+ onActionPress?: DirectEventHandler<Readonly<{ id: string; title: string }>>;
14
+ }
15
+
16
+ export default codegenNativeComponent<NativeSwipeActionsProps>(
17
+ 'TinyuiSwipeActionsView',
18
+ { excludedPlatforms: ['android'] }
19
+ );
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ import { processColor } from 'react-native';
4
+ export function serializeSwipeActions(actions) {
5
+ const ids = new Set();
6
+ return actions.map((action, index) => {
7
+ const id = action.id ?? `item.${index}`;
8
+ if (ids.has(id)) {
9
+ throw new Error(`SwipeActions action id "${id}" must be unique.`);
10
+ }
11
+ ids.add(id);
12
+ return {
13
+ id,
14
+ title: action.title,
15
+ systemImage: action.systemImage,
16
+ tintColor: action.tintColor === undefined ? undefined : processColor(action.tintColor),
17
+ destructive: action.destructive ?? false
18
+ };
19
+ });
20
+ }
21
+ //# sourceMappingURL=actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["processColor","serializeSwipeActions","actions","ids","Set","map","action","index","id","has","Error","add","title","systemImage","tintColor","undefined","destructive"],"sourceRoot":"../../../src","sources":["SwipeActions/actions.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,cAAc;AAI3C,OAAO,SAASC,qBAAqBA,CAACC,OAA+B,EAAE;EACrE,MAAMC,GAAG,GAAG,IAAIC,GAAG,CAAS,CAAC;EAE7B,OAAOF,OAAO,CAACG,GAAG,CAAC,CAACC,MAAM,EAAEC,KAAK,KAAK;IACpC,MAAMC,EAAE,GAAGF,MAAM,CAACE,EAAE,IAAI,QAAQD,KAAK,EAAE;IACvC,IAAIJ,GAAG,CAACM,GAAG,CAACD,EAAE,CAAC,EAAE;MACf,MAAM,IAAIE,KAAK,CAAC,2BAA2BF,EAAE,mBAAmB,CAAC;IACnE;IACAL,GAAG,CAACQ,GAAG,CAACH,EAAE,CAAC;IAEX,OAAO;MACLA,EAAE;MACFI,KAAK,EAAEN,MAAM,CAACM,KAAK;MACnBC,WAAW,EAAEP,MAAM,CAACO,WAAW;MAC/BC,SAAS,EACPR,MAAM,CAACQ,SAAS,KAAKC,SAAS,GAC1BA,SAAS,GACTf,YAAY,CAACM,MAAM,CAACQ,SAAS,CAAC;MACpCE,WAAW,EAAEV,MAAM,CAACU,WAAW,IAAI;IACrC,CAAC;EACH,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ import { forwardRef } from 'react';
4
+ import { StyleSheet, View } from 'react-native';
5
+ import { assertComponentEnabled } from "../utils/index.js";
6
+ import { serializeSwipeActions } from "./actions.js";
7
+ import NativeSwipeActionsView from './SwipeActionsNativeComponent';
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ export const SwipeActions = /*#__PURE__*/forwardRef(function SwipeActionsRoot({
10
+ actions,
11
+ children,
12
+ contentContainerStyle,
13
+ edge = 'trailing',
14
+ allowsFullSwipe = true,
15
+ disabled = false,
16
+ style,
17
+ ...viewProps
18
+ }, ref) {
19
+ assertComponentEnabled('SwipeActions');
20
+ return /*#__PURE__*/_jsx(NativeSwipeActionsView, {
21
+ ...viewProps,
22
+ ref: ref,
23
+ actionsConfig: serializeSwipeActions(actions),
24
+ edge: edge,
25
+ allowsFullSwipe: allowsFullSwipe,
26
+ disabled: disabled,
27
+ style: [styles.container, style],
28
+ children: /*#__PURE__*/_jsx(View, {
29
+ collapsable: false,
30
+ style: [styles.content, contentContainerStyle],
31
+ children: children
32
+ })
33
+ });
34
+ });
35
+ const styles = StyleSheet.create({
36
+ container: {
37
+ overflow: 'hidden'
38
+ },
39
+ content: {
40
+ flexGrow: 1
41
+ }
42
+ });
43
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["forwardRef","StyleSheet","View","assertComponentEnabled","serializeSwipeActions","NativeSwipeActionsView","jsx","_jsx","SwipeActions","SwipeActionsRoot","actions","children","contentContainerStyle","edge","allowsFullSwipe","disabled","style","viewProps","ref","actionsConfig","styles","container","collapsable","content","create","overflow","flexGrow"],"sourceRoot":"../../../src","sources":["SwipeActions/index.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAA2B,OAAO;AACrD,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAE/C,SAASC,sBAAsB,QAAQ,mBAAU;AACjD,SAASC,qBAAqB,QAAQ,cAAW;AACjD,OAAOC,sBAAsB,MAAM,+BAA+B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAGnE,OAAO,MAAMC,YAAY,gBAAGR,UAAU,CAGpC,SAASS,gBAAgBA,CACzB;EACEC,OAAO;EACPC,QAAQ;EACRC,qBAAqB;EACrBC,IAAI,GAAG,UAAU;EACjBC,eAAe,GAAG,IAAI;EACtBC,QAAQ,GAAG,KAAK;EAChBC,KAAK;EACL,GAAGC;AACL,CAAC,EACDC,GAAG,EACH;EACAf,sBAAsB,CAAC,cAAc,CAAC;EAEtC,oBACEI,IAAA,CAACF,sBAAsB;IAAA,GACjBY,SAAS;IACbC,GAAG,EAAEA,GAAI;IACTC,aAAa,EAAEf,qBAAqB,CAACM,OAAO,CAAE;IAC9CG,IAAI,EAAEA,IAAK;IACXC,eAAe,EAAEA,eAAgB;IACjCC,QAAQ,EAAEA,QAAS;IACnBC,KAAK,EAAE,CAACI,MAAM,CAACC,SAAS,EAAEL,KAAK,CAAE;IAAAL,QAAA,eAEjCJ,IAAA,CAACL,IAAI;MAACoB,WAAW,EAAE,KAAM;MAACN,KAAK,EAAE,CAACI,MAAM,CAACG,OAAO,EAAEX,qBAAqB,CAAE;MAAAD,QAAA,EACtEA;IAAQ,CACL;EAAC,CACe,CAAC;AAE7B,CAAC,CAAC;AAEF,MAAMS,MAAM,GAAGnB,UAAU,CAACuB,MAAM,CAAC;EAC/BH,SAAS,EAAE;IAAEI,QAAQ,EAAE;EAAS,CAAC;EACjCF,OAAO,EAAE;IAAEG,QAAQ,EAAE;EAAE;AACzB,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["SwipeActions/types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ import { createContext, useCallback, useContext, useMemo, useState } from 'react';
4
+ import { assertComponentEnabled } from "../utils/index.js";
5
+ import { validateTipId } from "./validation.js";
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ const GroupContext = /*#__PURE__*/createContext(null);
8
+
9
+ /** Orders tips by ID while native TipKit owns eligibility and persisted history. */
10
+ export function Group({
11
+ tipIds,
12
+ priority = 'ordered',
13
+ enabled = true,
14
+ invalidateOnOutsideDismiss = false,
15
+ children
16
+ }) {
17
+ assertComponentEnabled('TipKit');
18
+ if (priority !== 'ordered') {
19
+ throw new Error('[TinyUI] TipKit.Group only supports ordered priority.');
20
+ }
21
+ const ids = new Set();
22
+ for (const tipId of tipIds) {
23
+ validateTipId(tipId);
24
+ if (ids.has(tipId)) {
25
+ throw new Error('[TinyUI] TipKit.Group tipIds must be unique.');
26
+ }
27
+ ids.add(tipId);
28
+ }
29
+ const [completed, setCompleted] = useState(() => new Set());
30
+ const complete = useCallback(tipId => {
31
+ setCompleted(previous => previous.has(tipId) ? previous : new Set([...previous, tipId]));
32
+ }, []);
33
+ const value = useMemo(() => ({
34
+ tipIds: new Set(tipIds),
35
+ currentTipId: tipIds.find(id => !completed.has(id)),
36
+ enabled,
37
+ invalidateOnOutsideDismiss,
38
+ complete
39
+ }), [tipIds, completed, enabled, invalidateOnOutsideDismiss, complete]);
40
+ return /*#__PURE__*/_jsx(GroupContext.Provider, {
41
+ value: value,
42
+ children: children
43
+ });
44
+ }
45
+ export function useTipGroup(tipId) {
46
+ const group = useContext(GroupContext);
47
+ if (group && !group.tipIds.has(tipId)) {
48
+ throw new Error(`[TinyUI] TipKit tipId "${tipId}" is missing from its Group's tipIds.`);
49
+ }
50
+ return group;
51
+ }
52
+ //# sourceMappingURL=Group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createContext","useCallback","useContext","useMemo","useState","assertComponentEnabled","validateTipId","jsx","_jsx","GroupContext","Group","tipIds","priority","enabled","invalidateOnOutsideDismiss","children","Error","ids","Set","tipId","has","add","completed","setCompleted","complete","previous","value","currentTipId","find","id","Provider","useTipGroup","group"],"sourceRoot":"../../../src","sources":["TipKit/Group.tsx"],"mappings":";;AAAA,SACEA,aAAa,EACbC,WAAW,EACXC,UAAU,EACVC,OAAO,EACPC,QAAQ,QACH,OAAO;AAEd,SAASC,sBAAsB,QAAQ,mBAAU;AAEjD,SAASC,aAAa,QAAQ,iBAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAU7C,MAAMC,YAAY,gBAAGT,aAAa,CAA2B,IAAI,CAAC;;AAElE;AACA,OAAO,SAASU,KAAKA,CAAC;EACpBC,MAAM;EACNC,QAAQ,GAAG,SAAS;EACpBC,OAAO,GAAG,IAAI;EACdC,0BAA0B,GAAG,KAAK;EAClCC;AACa,CAAC,EAAE;EAChBV,sBAAsB,CAAC,QAAQ,CAAC;EAChC,IAAIO,QAAQ,KAAK,SAAS,EAAE;IAC1B,MAAM,IAAII,KAAK,CAAC,uDAAuD,CAAC;EAC1E;EACA,MAAMC,GAAG,GAAG,IAAIC,GAAG,CAAS,CAAC;EAC7B,KAAK,MAAMC,KAAK,IAAIR,MAAM,EAAE;IAC1BL,aAAa,CAACa,KAAK,CAAC;IACpB,IAAIF,GAAG,CAACG,GAAG,CAACD,KAAK,CAAC,EAAE;MAClB,MAAM,IAAIH,KAAK,CAAC,8CAA8C,CAAC;IACjE;IACAC,GAAG,CAACI,GAAG,CAACF,KAAK,CAAC;EAChB;EAEA,MAAM,CAACG,SAAS,EAAEC,YAAY,CAAC,GAAGnB,QAAQ,CACxC,MAAM,IAAIc,GAAG,CAAC,CAChB,CAAC;EACD,MAAMM,QAAQ,GAAGvB,WAAW,CAAEkB,KAAa,IAAK;IAC9CI,YAAY,CAAEE,QAAQ,IACpBA,QAAQ,CAACL,GAAG,CAACD,KAAK,CAAC,GAAGM,QAAQ,GAAG,IAAIP,GAAG,CAAC,CAAC,GAAGO,QAAQ,EAAEN,KAAK,CAAC,CAC/D,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EACN,MAAMO,KAAK,GAAGvB,OAAO,CACnB,OAAO;IACLQ,MAAM,EAAE,IAAIO,GAAG,CAACP,MAAM,CAAC;IACvBgB,YAAY,EAAEhB,MAAM,CAACiB,IAAI,CAAEC,EAAE,IAAK,CAACP,SAAS,CAACF,GAAG,CAACS,EAAE,CAAC,CAAC;IACrDhB,OAAO;IACPC,0BAA0B;IAC1BU;EACF,CAAC,CAAC,EACF,CAACb,MAAM,EAAEW,SAAS,EAAET,OAAO,EAAEC,0BAA0B,EAAEU,QAAQ,CACnE,CAAC;EAED,oBACEhB,IAAA,CAACC,YAAY,CAACqB,QAAQ;IAACJ,KAAK,EAAEA,KAAM;IAAAX,QAAA,EAAEA;EAAQ,CAAwB,CAAC;AAE3E;AAEA,OAAO,SAASgB,WAAWA,CAACZ,KAAa,EAAE;EACzC,MAAMa,KAAK,GAAG9B,UAAU,CAACO,YAAY,CAAC;EACtC,IAAIuB,KAAK,IAAI,CAACA,KAAK,CAACrB,MAAM,CAACS,GAAG,CAACD,KAAK,CAAC,EAAE;IACrC,MAAM,IAAIH,KAAK,CACb,0BAA0BG,KAAK,uCACjC,CAAC;EACH;EACA,OAAOa,KAAK;AACd","ignoreList":[]}
@@ -5,10 +5,12 @@ import { View } from 'react-native';
5
5
  import { assertComponentEnabled } from "../utils/index.js";
6
6
  import NativeTipPopoverView from './TipPopoverNativeComponent';
7
7
  import { validateTip } from "./validation.js";
8
+ import { useTipGroup } from "./Group.js";
8
9
  import { jsx as _jsx } from "react/jsx-runtime";
9
10
  export const Popover = /*#__PURE__*/forwardRef(function TipPopoverRoot(props, ref) {
10
11
  assertComponentEnabled('TipKit');
11
12
  validateTip(props);
13
+ const group = useTipGroup(props.tipId);
12
14
  const {
13
15
  children,
14
16
  tipId,
@@ -21,6 +23,8 @@ export const Popover = /*#__PURE__*/forwardRef(function TipPopoverRoot(props, re
21
23
  ignoresDisplayFrequency = false,
22
24
  arrowEdge = 'auto',
23
25
  onActionPress,
26
+ onInvalidated,
27
+ invalidateOnOutsideDismiss = group?.invalidateOnOutsideDismiss ?? false,
24
28
  onError,
25
29
  ...viewProps
26
30
  } = props;
@@ -33,7 +37,8 @@ export const Popover = /*#__PURE__*/forwardRef(function TipPopoverRoot(props, re
33
37
  message: message,
34
38
  systemImage: systemImage,
35
39
  actions: actions,
36
- enabled: enabled,
40
+ enabled: enabled && (!group || group.enabled && group.currentTipId === tipId),
41
+ invalidateOnOutsideDismiss: invalidateOnOutsideDismiss,
37
42
  maxDisplayCount: maxDisplayCount ?? 0,
38
43
  ignoresDisplayFrequency: ignoresDisplayFrequency,
39
44
  arrowEdge: arrowEdge,
@@ -47,6 +52,15 @@ export const Popover = /*#__PURE__*/forwardRef(function TipPopoverRoot(props, re
47
52
  });
48
53
  }
49
54
  },
55
+ onTipInvalidated: ({
56
+ nativeEvent
57
+ }) => {
58
+ if (nativeEvent.tipId !== tipId) return;
59
+ group?.complete(tipId);
60
+ onInvalidated?.({
61
+ reason: nativeEvent.reason
62
+ });
63
+ },
50
64
  onTipError: ({
51
65
  nativeEvent
52
66
  }) => {
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","View","assertComponentEnabled","NativeTipPopoverView","validateTip","jsx","_jsx","Popover","TipPopoverRoot","props","ref","children","tipId","title","message","systemImage","actions","enabled","maxDisplayCount","ignoresDisplayFrequency","arrowEdge","onActionPress","onError","viewProps","collapsable","onTipAction","nativeEvent","id","onTipError","error","code","console","warn","displayName"],"sourceRoot":"../../../src","sources":["TipKit/Popover.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAA2B,OAAO;AACrD,SAASC,IAAI,QAAQ,cAAc;AAEnC,SAASC,sBAAsB,QAAQ,mBAAU;AACjD,OAAOC,oBAAoB,MAAM,6BAA6B;AAE9D,SAASC,WAAW,QAAQ,iBAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE3C,OAAO,MAAMC,OAAO,gBAAGP,UAAU,CAC/B,SAASQ,cAAcA,CAACC,KAAK,EAAEC,GAAG,EAAE;EAClCR,sBAAsB,CAAC,QAAQ,CAAC;EAChCE,WAAW,CAACK,KAAK,CAAC;EAClB,MAAM;IACJE,QAAQ;IACRC,KAAK;IACLC,KAAK;IACLC,OAAO;IACPC,WAAW;IACXC,OAAO;IACPC,OAAO,GAAG,IAAI;IACdC,eAAe;IACfC,uBAAuB,GAAG,KAAK;IAC/BC,SAAS,GAAG,MAAM;IAClBC,aAAa;IACbC,OAAO;IACP,GAAGC;EACL,CAAC,GAAGd,KAAK;EAET,oBACEH,IAAA,CAACH,oBAAoB;IAAA,GACfoB,SAAS;IACbb,GAAG,EAAEA,GAAI;IACTc,WAAW,EAAE,KAAM;IACnBZ,KAAK,EAAEA,KAAM;IACbC,KAAK,EAAEA,KAAM;IACbC,OAAO,EAAEA,OAAQ;IACjBC,WAAW,EAAEA,WAAY;IACzBC,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAQ;IACjBC,eAAe,EAAEA,eAAe,IAAI,CAAE;IACtCC,uBAAuB,EAAEA,uBAAwB;IACjDC,SAAS,EAAEA,SAAU;IACrBK,WAAW,EAAEA,CAAC;MAAEC;IAAY,CAAC,KAAK;MAChC,IAAIA,WAAW,CAACd,KAAK,KAAKA,KAAK,EAAE;QAC/BS,aAAa,GAAG;UAAEM,EAAE,EAAED,WAAW,CAACC,EAAE;UAAEd,KAAK,EAAEa,WAAW,CAACb;QAAM,CAAC,CAAC;MACnE;IACF,CAAE;IACFe,UAAU,EAAEA,CAAC;MAAEF;IAAY,CAAC,KAAK;MAC/B,IAAIA,WAAW,CAACd,KAAK,KAAKA,KAAK,EAAE;MACjC,MAAMiB,KAAK,GAAG;QACZC,IAAI,EAAEJ,WAAW,CAACI,IAAI;QACtBhB,OAAO,EAAEY,WAAW,CAACZ;MACvB,CAAC;MACD,IAAIQ,OAAO,EAAEA,OAAO,CAACO,KAAK,CAAC,CAAC,KAE1BE,OAAO,CAACC,IAAI,CACV,2BAA2BH,KAAK,CAACC,IAAI,KAAKD,KAAK,CAACf,OAAO,EACzD,CAAC;IACL,CAAE;IAAAH,QAAA,eAEFL,IAAA,CAACL,IAAI;MAACuB,WAAW,EAAE,KAAM;MAAAb,QAAA,EAAEA;IAAQ,CAAO;EAAC,CACvB,CAAC;AAE3B,CACF,CAAC;AAEDJ,OAAO,CAAC0B,WAAW,GAAG,gBAAgB","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","View","assertComponentEnabled","NativeTipPopoverView","validateTip","useTipGroup","jsx","_jsx","Popover","TipPopoverRoot","props","ref","group","tipId","children","title","message","systemImage","actions","enabled","maxDisplayCount","ignoresDisplayFrequency","arrowEdge","onActionPress","onInvalidated","invalidateOnOutsideDismiss","onError","viewProps","collapsable","currentTipId","onTipAction","nativeEvent","id","onTipInvalidated","complete","reason","onTipError","error","code","console","warn","displayName"],"sourceRoot":"../../../src","sources":["TipKit/Popover.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAA2B,OAAO;AACrD,SAASC,IAAI,QAAQ,cAAc;AAEnC,SAASC,sBAAsB,QAAQ,mBAAU;AACjD,OAAOC,oBAAoB,MAAM,6BAA6B;AAE9D,SAASC,WAAW,QAAQ,iBAAc;AAC1C,SAASC,WAAW,QAAQ,YAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEtC,OAAO,MAAMC,OAAO,gBAAGR,UAAU,CAC/B,SAASS,cAAcA,CAACC,KAAK,EAAEC,GAAG,EAAE;EAClCT,sBAAsB,CAAC,QAAQ,CAAC;EAChCE,WAAW,CAACM,KAAK,CAAC;EAClB,MAAME,KAAK,GAAGP,WAAW,CAACK,KAAK,CAACG,KAAK,CAAC;EACtC,MAAM;IACJC,QAAQ;IACRD,KAAK;IACLE,KAAK;IACLC,OAAO;IACPC,WAAW;IACXC,OAAO;IACPC,OAAO,GAAG,IAAI;IACdC,eAAe;IACfC,uBAAuB,GAAG,KAAK;IAC/BC,SAAS,GAAG,MAAM;IAClBC,aAAa;IACbC,aAAa;IACbC,0BAA0B,GAAGb,KAAK,EAAEa,0BAA0B,IAAI,KAAK;IACvEC,OAAO;IACP,GAAGC;EACL,CAAC,GAAGjB,KAAK;EAET,oBACEH,IAAA,CAACJ,oBAAoB;IAAA,GACfwB,SAAS;IACbhB,GAAG,EAAEA,GAAI;IACTiB,WAAW,EAAE,KAAM;IACnBf,KAAK,EAAEA,KAAM;IACbE,KAAK,EAAEA,KAAM;IACbC,OAAO,EAAEA,OAAQ;IACjBC,WAAW,EAAEA,WAAY;IACzBC,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EACLA,OAAO,KAAK,CAACP,KAAK,IAAKA,KAAK,CAACO,OAAO,IAAIP,KAAK,CAACiB,YAAY,KAAKhB,KAAM,CACtE;IACDY,0BAA0B,EAAEA,0BAA2B;IACvDL,eAAe,EAAEA,eAAe,IAAI,CAAE;IACtCC,uBAAuB,EAAEA,uBAAwB;IACjDC,SAAS,EAAEA,SAAU;IACrBQ,WAAW,EAAEA,CAAC;MAAEC;IAAY,CAAC,KAAK;MAChC,IAAIA,WAAW,CAAClB,KAAK,KAAKA,KAAK,EAAE;QAC/BU,aAAa,GAAG;UAAES,EAAE,EAAED,WAAW,CAACC,EAAE;UAAEjB,KAAK,EAAEgB,WAAW,CAAChB;QAAM,CAAC,CAAC;MACnE;IACF,CAAE;IACFkB,gBAAgB,EAAEA,CAAC;MAAEF;IAAY,CAAC,KAAK;MACrC,IAAIA,WAAW,CAAClB,KAAK,KAAKA,KAAK,EAAE;MACjCD,KAAK,EAAEsB,QAAQ,CAACrB,KAAK,CAAC;MACtBW,aAAa,GAAG;QACdW,MAAM,EAAEJ,WAAW,CAACI;MACtB,CAAC,CAAC;IACJ,CAAE;IACFC,UAAU,EAAEA,CAAC;MAAEL;IAAY,CAAC,KAAK;MAC/B,IAAIA,WAAW,CAAClB,KAAK,KAAKA,KAAK,EAAE;MACjC,MAAMwB,KAAK,GAAG;QACZC,IAAI,EAAEP,WAAW,CAACO,IAAI;QACtBtB,OAAO,EAAEe,WAAW,CAACf;MACvB,CAAC;MACD,IAAIU,OAAO,EAAEA,OAAO,CAACW,KAAK,CAAC,CAAC,KAE1BE,OAAO,CAACC,IAAI,CACV,2BAA2BH,KAAK,CAACC,IAAI,KAAKD,KAAK,CAACrB,OAAO,EACzD,CAAC;IACL,CAAE;IAAAF,QAAA,eAEFP,IAAA,CAACN,IAAI;MAAC2B,WAAW,EAAE,KAAM;MAAAd,QAAA,EAAEA;IAAQ,CAAO;EAAC,CACvB,CAAC;AAE3B,CACF,CAAC;AAEDN,OAAO,CAACiC,WAAW,GAAG,gBAAgB","ignoreList":[]}
@@ -12,6 +12,7 @@ export interface NativeTipPopoverProps extends ViewProps {
12
12
  systemImage?: string;
13
13
  actions?: ReadonlyArray<Readonly<{ id: string; title: string }>>;
14
14
  enabled?: boolean;
15
+ invalidateOnOutsideDismiss?: boolean;
15
16
  maxDisplayCount?: CodegenTypes.Int32;
16
17
  ignoresDisplayFrequency?: boolean;
17
18
  arrowEdge?: string;
@@ -21,6 +22,12 @@ export interface NativeTipPopoverProps extends ViewProps {
21
22
  onTipError?: DirectEventHandler<
22
23
  Readonly<{ tipId: string; code: string; message: string }>
23
24
  >;
25
+ onTipInvalidated?: DirectEventHandler<
26
+ Readonly<{
27
+ tipId: string;
28
+ reason: string;
29
+ }>
30
+ >;
24
31
  }
25
32
 
26
33
  export default codegenNativeComponent<NativeTipPopoverProps>(
@@ -21,6 +21,12 @@ export interface NativeTipViewProps extends ViewProps {
21
21
  onTipError?: DirectEventHandler<
22
22
  Readonly<{ tipId: string; code: string; message: string }>
23
23
  >;
24
+ onTipInvalidated?: DirectEventHandler<
25
+ Readonly<{
26
+ tipId: string;
27
+ reason: string;
28
+ }>
29
+ >;
24
30
  }
25
31
 
26
32
  export default codegenNativeComponent<NativeTipViewProps>('TinyuiTipView', {
@@ -4,10 +4,12 @@ import { forwardRef } from 'react';
4
4
  import { assertComponentEnabled } from "../utils/index.js";
5
5
  import NativeTipView from './TipViewNativeComponent';
6
6
  import { validateTip } from "./validation.js";
7
+ import { useTipGroup } from "./Group.js";
7
8
  import { jsx as _jsx } from "react/jsx-runtime";
8
9
  export const View = /*#__PURE__*/forwardRef(function TipViewRoot(props, ref) {
9
10
  assertComponentEnabled('TipKit');
10
11
  validateTip(props, 'TipKit.View');
12
+ const group = useTipGroup(props.tipId);
11
13
  const {
12
14
  tipId,
13
15
  title,
@@ -19,6 +21,7 @@ export const View = /*#__PURE__*/forwardRef(function TipViewRoot(props, ref) {
19
21
  ignoresDisplayFrequency = false,
20
22
  arrowEdge = 'none',
21
23
  onActionPress,
24
+ onInvalidated,
22
25
  onError,
23
26
  ...viewProps
24
27
  } = props;
@@ -32,7 +35,7 @@ export const View = /*#__PURE__*/forwardRef(function TipViewRoot(props, ref) {
32
35
  message: message,
33
36
  systemImage: systemImage,
34
37
  actions: actions,
35
- enabled: enabled,
38
+ enabled: enabled && (!group || group.enabled && group.currentTipId === tipId),
36
39
  maxDisplayCount: maxDisplayCount ?? 0,
37
40
  ignoresDisplayFrequency: ignoresDisplayFrequency,
38
41
  arrowEdge: arrowEdge,
@@ -46,6 +49,15 @@ export const View = /*#__PURE__*/forwardRef(function TipViewRoot(props, ref) {
46
49
  });
47
50
  }
48
51
  },
52
+ onTipInvalidated: ({
53
+ nativeEvent
54
+ }) => {
55
+ if (nativeEvent.tipId !== tipId) return;
56
+ group?.complete(tipId);
57
+ onInvalidated?.({
58
+ reason: nativeEvent.reason
59
+ });
60
+ },
49
61
  onTipError: ({
50
62
  nativeEvent
51
63
  }) => {
@@ -1 +1 @@
1
- {"version":3,"names":["forwardRef","assertComponentEnabled","NativeTipView","validateTip","jsx","_jsx","View","TipViewRoot","props","ref","tipId","title","message","systemImage","actions","enabled","maxDisplayCount","ignoresDisplayFrequency","arrowEdge","onActionPress","onError","viewProps","children","undefined","collapsable","onTipAction","nativeEvent","id","onTipError","error","code","console","warn","displayName"],"sourceRoot":"../../../src","sources":["TipKit/View.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAA2B,OAAO;AAGrD,SAASC,sBAAsB,QAAQ,mBAAU;AACjD,OAAOC,aAAa,MAAM,0BAA0B;AAEpD,SAASC,WAAW,QAAQ,iBAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE3C,OAAO,MAAMC,IAAI,gBAAGN,UAAU,CAG5B,SAASO,WAAWA,CAACC,KAAK,EAAEC,GAAG,EAAE;EACjCR,sBAAsB,CAAC,QAAQ,CAAC;EAChCE,WAAW,CAACK,KAAK,EAAE,aAAa,CAAC;EACjC,MAAM;IACJE,KAAK;IACLC,KAAK;IACLC,OAAO;IACPC,WAAW;IACXC,OAAO;IACPC,OAAO,GAAG,IAAI;IACdC,eAAe;IACfC,uBAAuB,GAAG,KAAK;IAC/BC,SAAS,GAAG,MAAM;IAClBC,aAAa;IACbC,OAAO;IACP,GAAGC;EACL,CAAC,GAAGb,KAAK;EAET,oBACEH,IAAA,CAACH,aAAa;IAAA,GACRmB,SAAS;IACbC,QAAQ,EAAEC,SAAU;IACpBd,GAAG,EAAEA,GAAI;IACTe,WAAW,EAAE,KAAM;IACnBd,KAAK,EAAEA,KAAM;IACbC,KAAK,EAAEA,KAAM;IACbC,OAAO,EAAEA,OAAQ;IACjBC,WAAW,EAAEA,WAAY;IACzBC,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAQ;IACjBC,eAAe,EAAEA,eAAe,IAAI,CAAE;IACtCC,uBAAuB,EAAEA,uBAAwB;IACjDC,SAAS,EAAEA,SAAU;IACrBO,WAAW,EAAEA,CAAC;MAAEC;IAAY,CAAC,KAAK;MAChC,IAAIA,WAAW,CAAChB,KAAK,KAAKA,KAAK,EAAE;QAC/BS,aAAa,GAAG;UAAEQ,EAAE,EAAED,WAAW,CAACC,EAAE;UAAEhB,KAAK,EAAEe,WAAW,CAACf;QAAM,CAAC,CAAC;MACnE;IACF,CAAE;IACFiB,UAAU,EAAEA,CAAC;MAAEF;IAAY,CAAC,KAAK;MAC/B,IAAIA,WAAW,CAAChB,KAAK,KAAKA,KAAK,EAAE;MACjC,MAAMmB,KAAK,GAAG;QACZC,IAAI,EAAEJ,WAAW,CAACI,IAAI;QACtBlB,OAAO,EAAEc,WAAW,CAACd;MACvB,CAAC;MACD,IAAIQ,OAAO,EAAEA,OAAO,CAACS,KAAK,CAAC,CAAC,KAE1BE,OAAO,CAACC,IAAI,CAAC,wBAAwBH,KAAK,CAACC,IAAI,KAAKD,KAAK,CAACjB,OAAO,EAAE,CAAC;IACxE;EAAE,CACH,CAAC;AAEN,CAAC,CAAC;AAEFN,IAAI,CAAC2B,WAAW,GAAG,aAAa","ignoreList":[]}
1
+ {"version":3,"names":["forwardRef","assertComponentEnabled","NativeTipView","validateTip","useTipGroup","jsx","_jsx","View","TipViewRoot","props","ref","group","tipId","title","message","systemImage","actions","enabled","maxDisplayCount","ignoresDisplayFrequency","arrowEdge","onActionPress","onInvalidated","onError","viewProps","children","undefined","collapsable","currentTipId","onTipAction","nativeEvent","id","onTipInvalidated","complete","reason","onTipError","error","code","console","warn","displayName"],"sourceRoot":"../../../src","sources":["TipKit/View.tsx"],"mappings":";;AAAA,SAASA,UAAU,QAA2B,OAAO;AAGrD,SAASC,sBAAsB,QAAQ,mBAAU;AACjD,OAAOC,aAAa,MAAM,0BAA0B;AAEpD,SAASC,WAAW,QAAQ,iBAAc;AAC1C,SAASC,WAAW,QAAQ,YAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAEtC,OAAO,MAAMC,IAAI,gBAAGP,UAAU,CAG5B,SAASQ,WAAWA,CAACC,KAAK,EAAEC,GAAG,EAAE;EACjCT,sBAAsB,CAAC,QAAQ,CAAC;EAChCE,WAAW,CAACM,KAAK,EAAE,aAAa,CAAC;EACjC,MAAME,KAAK,GAAGP,WAAW,CAACK,KAAK,CAACG,KAAK,CAAC;EACtC,MAAM;IACJA,KAAK;IACLC,KAAK;IACLC,OAAO;IACPC,WAAW;IACXC,OAAO;IACPC,OAAO,GAAG,IAAI;IACdC,eAAe;IACfC,uBAAuB,GAAG,KAAK;IAC/BC,SAAS,GAAG,MAAM;IAClBC,aAAa;IACbC,aAAa;IACbC,OAAO;IACP,GAAGC;EACL,CAAC,GAAGf,KAAK;EAET,oBACEH,IAAA,CAACJ,aAAa;IAAA,GACRsB,SAAS;IACbC,QAAQ,EAAEC,SAAU;IACpBhB,GAAG,EAAEA,GAAI;IACTiB,WAAW,EAAE,KAAM;IACnBf,KAAK,EAAEA,KAAM;IACbC,KAAK,EAAEA,KAAM;IACbC,OAAO,EAAEA,OAAQ;IACjBC,WAAW,EAAEA,WAAY;IACzBC,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EACLA,OAAO,KAAK,CAACN,KAAK,IAAKA,KAAK,CAACM,OAAO,IAAIN,KAAK,CAACiB,YAAY,KAAKhB,KAAM,CACtE;IACDM,eAAe,EAAEA,eAAe,IAAI,CAAE;IACtCC,uBAAuB,EAAEA,uBAAwB;IACjDC,SAAS,EAAEA,SAAU;IACrBS,WAAW,EAAEA,CAAC;MAAEC;IAAY,CAAC,KAAK;MAChC,IAAIA,WAAW,CAAClB,KAAK,KAAKA,KAAK,EAAE;QAC/BS,aAAa,GAAG;UAAEU,EAAE,EAAED,WAAW,CAACC,EAAE;UAAElB,KAAK,EAAEiB,WAAW,CAACjB;QAAM,CAAC,CAAC;MACnE;IACF,CAAE;IACFmB,gBAAgB,EAAEA,CAAC;MAAEF;IAAY,CAAC,KAAK;MACrC,IAAIA,WAAW,CAAClB,KAAK,KAAKA,KAAK,EAAE;MACjCD,KAAK,EAAEsB,QAAQ,CAACrB,KAAK,CAAC;MACtBU,aAAa,GAAG;QACdY,MAAM,EAAEJ,WAAW,CAACI;MACtB,CAAC,CAAC;IACJ,CAAE;IACFC,UAAU,EAAEA,CAAC;MAAEL;IAAY,CAAC,KAAK;MAC/B,IAAIA,WAAW,CAAClB,KAAK,KAAKA,KAAK,EAAE;MACjC,MAAMwB,KAAK,GAAG;QACZC,IAAI,EAAEP,WAAW,CAACO,IAAI;QACtBvB,OAAO,EAAEgB,WAAW,CAAChB;MACvB,CAAC;MACD,IAAIS,OAAO,EAAEA,OAAO,CAACa,KAAK,CAAC,CAAC,KAE1BE,OAAO,CAACC,IAAI,CAAC,wBAAwBH,KAAK,CAACC,IAAI,KAAKD,KAAK,CAACtB,OAAO,EAAE,CAAC;IACxE;EAAE,CACH,CAAC;AAEN,CAAC,CAAC;AAEFP,IAAI,CAACiC,WAAW,GAAG,aAAa","ignoreList":[]}
@@ -4,7 +4,9 @@ import { assertComponentEnabled, getNativeTinyui } from "../utils/index.js";
4
4
  import { validateTipId } from "./validation.js";
5
5
  import { Popover } from "./Popover.js";
6
6
  import { View } from "./View.js";
7
+ import { Group } from "./Group.js";
7
8
  export const TipKit = {
9
+ Group,
8
10
  Popover,
9
11
  View,
10
12
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["assertComponentEnabled","getNativeTinyui","validateTipId","Popover","View","TipKit","resetDatastore","resetTipsDatastore","configure","displayFrequency","includes","Error","configureTips","invalidate","tipId","reason","invalidateTip"],"sourceRoot":"../../../src","sources":["TipKit/index.ts"],"mappings":";;AAAA,SAASA,sBAAsB,EAAEC,eAAe,QAAQ,mBAAU;AAElE,SAASC,aAAa,QAAQ,iBAAc;AAC5C,SAASC,OAAO,QAAQ,cAAW;AACnC,SAASC,IAAI,QAAQ,WAAQ;AAE7B,OAAO,MAAMC,MAAM,GAAG;EACpBF,OAAO;EACPC,IAAI;EACJ;AACF;AACA;AACA;AACA;EACE,MAAME,cAAcA,CAAA,EAAkB;IACpCN,sBAAsB,CAAC,QAAQ,CAAC;IAChC,MAAMC,eAAe,CAAC,CAAC,CAACM,kBAAkB,CAAC,CAAC;EAC9C,CAAC;EAED;EACA,MAAMC,SAASA,CAAC;IACdC,gBAAgB,GAAG;EACA,CAAC,GAAG,CAAC,CAAC,EAAiB;IAC1CT,sBAAsB,CAAC,QAAQ,CAAC;IAChC,IACE,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAACU,QAAQ,CAC7DD,gBACF,CAAC,EACD;MACA,MAAM,IAAIE,KAAK,CACb,iEACF,CAAC;IACH;IACA,MAAMV,eAAe,CAAC,CAAC,CAACW,aAAa,CAACH,gBAAgB,CAAC;EACzD,CAAC;EAED;EACA,MAAMI,UAAUA,CACdC,KAAa,EACbC,MAA6B,GAAG,iBAAiB,EAClC;IACff,sBAAsB,CAAC,QAAQ,CAAC;IAChCE,aAAa,CAACY,KAAK,CAAC;IACpB,IAAIC,MAAM,KAAK,iBAAiB,IAAIA,MAAM,KAAK,WAAW,EAAE;MAC1D,MAAM,IAAIJ,KAAK,CAAC,wDAAwD,CAAC;IAC3E;IACA,MAAMV,eAAe,CAAC,CAAC,CAACe,aAAa,CAACF,KAAK,EAAEC,MAAM,CAAC;EACtD;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["assertComponentEnabled","getNativeTinyui","validateTipId","Popover","View","Group","TipKit","resetDatastore","resetTipsDatastore","configure","displayFrequency","includes","Error","configureTips","invalidate","tipId","reason","invalidateTip"],"sourceRoot":"../../../src","sources":["TipKit/index.ts"],"mappings":";;AAAA,SAASA,sBAAsB,EAAEC,eAAe,QAAQ,mBAAU;AAElE,SAASC,aAAa,QAAQ,iBAAc;AAC5C,SAASC,OAAO,QAAQ,cAAW;AACnC,SAASC,IAAI,QAAQ,WAAQ;AAC7B,SAASC,KAAK,QAAQ,YAAS;AAE/B,OAAO,MAAMC,MAAM,GAAG;EACpBD,KAAK;EACLF,OAAO;EACPC,IAAI;EACJ;AACF;AACA;AACA;AACA;EACE,MAAMG,cAAcA,CAAA,EAAkB;IACpCP,sBAAsB,CAAC,QAAQ,CAAC;IAChC,MAAMC,eAAe,CAAC,CAAC,CAACO,kBAAkB,CAAC,CAAC;EAC9C,CAAC;EAED;EACA,MAAMC,SAASA,CAAC;IACdC,gBAAgB,GAAG;EACA,CAAC,GAAG,CAAC,CAAC,EAAiB;IAC1CV,sBAAsB,CAAC,QAAQ,CAAC;IAChC,IACE,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAACW,QAAQ,CAC7DD,gBACF,CAAC,EACD;MACA,MAAM,IAAIE,KAAK,CACb,iEACF,CAAC;IACH;IACA,MAAMX,eAAe,CAAC,CAAC,CAACY,aAAa,CAACH,gBAAgB,CAAC;EACzD,CAAC;EAED;EACA,MAAMI,UAAUA,CACdC,KAAa,EACbC,MAA6B,GAAG,iBAAiB,EAClC;IACfhB,sBAAsB,CAAC,QAAQ,CAAC;IAChCE,aAAa,CAACa,KAAK,CAAC;IACpB,IAAIC,MAAM,KAAK,iBAAiB,IAAIA,MAAM,KAAK,WAAW,EAAE;MAC1D,MAAM,IAAIJ,KAAK,CAAC,wDAAwD,CAAC;IAC3E;IACA,MAAMX,eAAe,CAAC,CAAC,CAACgB,aAAa,CAACF,KAAK,EAAEC,MAAM,CAAC;EACtD;AACF,CAAC","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  export { Menu } from "./Menu/index.js";
4
+ export { SwipeActions } from "./SwipeActions/index.js";
4
5
  export { TipKit } from "./TipKit/index.js";
5
6
  export { Stepper } from "./Stepper/index.js";
6
7
  export { ConcentricView } from "./ConcentricView/index.js";
@@ -1 +1 @@
1
- {"version":3,"names":["Menu","TipKit","Stepper","ConcentricView","SFSymbol","Popover","PopoverClose","getNativeTinyui","assertComponentEnabled","LiquidGlassText"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,iBAAQ;AAC7B,SAASC,MAAM,QAAQ,mBAAU;AAuBjC,SAASC,OAAO,QAAQ,oBAAW;AAGnC,SAASC,cAAc,QAAQ,2BAAkB;AAGjD,SAASC,QAAQ,QAAQ,qBAAY;AAWrC,SAASC,OAAO,EAAEC,YAAY,QAAQ,oBAAW;AAUjD,SAASC,eAAe,EAAEC,sBAAsB,QAAQ,kBAAS;AAGjE,SAASC,eAAe,QAAQ,4BAAmB","ignoreList":[]}
1
+ {"version":3,"names":["Menu","SwipeActions","TipKit","Stepper","ConcentricView","SFSymbol","Popover","PopoverClose","getNativeTinyui","assertComponentEnabled","LiquidGlassText"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,IAAI,QAAQ,iBAAQ;AAC7B,SAASC,YAAY,QAAQ,yBAAgB;AAO7C,SAASC,MAAM,QAAQ,mBAAU;AAyBjC,SAASC,OAAO,QAAQ,oBAAW;AAGnC,SAASC,cAAc,QAAQ,2BAAkB;AAGjD,SAASC,QAAQ,QAAQ,qBAAY;AAWrC,SAASC,OAAO,EAAEC,YAAY,QAAQ,oBAAW;AAUjD,SAASC,eAAe,EAAEC,sBAAsB,QAAQ,kBAAS;AAGjE,SAASC,eAAe,QAAQ,4BAAmB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["NativeTinyui","nativeTinyui","enabledComponents","getNativeTinyui","Error","assertComponentEnabled","component","tinyui","Set","getEnabledComponents","has"],"sourceRoot":"../../../src","sources":["utils/getNativeTinyui.ts"],"mappings":";;AAAA,OAAOA,YAAY,MAAqB,oBAAiB;AAWzD,IAAIC,YAAqC;AACzC,IAAIC,iBAAkD;;AAEtD;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAAA,EAAS;EACtCF,YAAY,KAAKD,YAAY;EAC7B,IAAIC,YAAY,IAAI,IAAI,EAAE;IACxB,MAAM,IAAIG,KAAK,CACb,sDAAsD,GACpD,8DACJ,CAAC;EACH;EACA,OAAOH,YAAY;AACrB;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASI,sBAAsBA,CAACC,SAA0B,EAAQ;EACvE,MAAMC,MAAM,GAAGJ,eAAe,CAAC,CAAC;EAChCD,iBAAiB,KAAK,IAAIM,GAAG,CAACD,MAAM,CAACE,oBAAoB,CAAC,CAAC,CAAC;EAE5D,IAAI,CAACP,iBAAiB,CAACQ,GAAG,CAACJ,SAAS,CAAC,EAAE;IACrC,MAAM,IAAIF,KAAK,CACb,gBAAgBE,SAAS,+BAA+B,GACtD,QAAQA,SAAS,kDAAkD,GACnE,sCACJ,CAAC;EACH;AACF","ignoreList":[]}
1
+ {"version":3,"names":["NativeTinyui","nativeTinyui","enabledComponents","getNativeTinyui","Error","assertComponentEnabled","component","tinyui","Set","getEnabledComponents","has"],"sourceRoot":"../../../src","sources":["utils/getNativeTinyui.ts"],"mappings":";;AAAA,OAAOA,YAAY,MAAqB,oBAAiB;AAYzD,IAAIC,YAAqC;AACzC,IAAIC,iBAAkD;;AAEtD;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAeA,CAAA,EAAS;EACtCF,YAAY,KAAKD,YAAY;EAC7B,IAAIC,YAAY,IAAI,IAAI,EAAE;IACxB,MAAM,IAAIG,KAAK,CACb,sDAAsD,GACpD,8DACJ,CAAC;EACH;EACA,OAAOH,YAAY;AACrB;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASI,sBAAsBA,CAACC,SAA0B,EAAQ;EACvE,MAAMC,MAAM,GAAGJ,eAAe,CAAC,CAAC;EAChCD,iBAAiB,KAAK,IAAIM,GAAG,CAACD,MAAM,CAACE,oBAAoB,CAAC,CAAC,CAAC;EAE5D,IAAI,CAACP,iBAAiB,CAACQ,GAAG,CAACJ,SAAS,CAAC,EAAE;IACrC,MAAM,IAAIF,KAAK,CACb,gBAAgBE,SAAS,+BAA+B,GACtD,QAAQA,SAAS,kDAAkD,GACnE,sCACJ,CAAC;EACH;AACF","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import { type CodegenTypes, type ViewProps } from 'react-native';
2
+ import type { DirectEventHandler } from 'react-native/Libraries/Types/CodegenTypes';
3
+ export interface NativeSwipeActionsProps extends ViewProps {
4
+ actionsConfig: CodegenTypes.UnsafeMixed;
5
+ edge?: CodegenTypes.WithDefault<'leading' | 'trailing', 'trailing'>;
6
+ allowsFullSwipe?: CodegenTypes.WithDefault<boolean, true>;
7
+ disabled?: boolean;
8
+ onActionPress?: DirectEventHandler<Readonly<{
9
+ id: string;
10
+ title: string;
11
+ }>>;
12
+ }
13
+ declare const _default: import("react-native/types_generated/Libraries/Utilities/codegenNativeComponent").NativeComponentType<NativeSwipeActionsProps>;
14
+ export default _default;
15
+ //# sourceMappingURL=SwipeActionsNativeComponent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SwipeActionsNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/SwipeActions/SwipeActionsNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAEpF,MAAM,WAAW,uBAAwB,SAAQ,SAAS;IACxD,aAAa,EAAE,YAAY,CAAC,WAAW,CAAC;IACxC,IAAI,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,SAAS,GAAG,UAAU,EAAE,UAAU,CAAC,CAAC;IACpE,eAAe,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,kBAAkB,CAAC,QAAQ,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;CAC7E;;AAED,wBAGE"}
@@ -0,0 +1,9 @@
1
+ import type { SwipeAction } from './types.js';
2
+ export declare function serializeSwipeActions(actions: readonly SwipeAction[]): {
3
+ id: string;
4
+ title: string;
5
+ systemImage: string | undefined;
6
+ tintColor: import("react-native").ProcessedColorValue | null | undefined;
7
+ destructive: boolean;
8
+ }[];
9
+ //# sourceMappingURL=actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../../src/SwipeActions/actions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAS,CAAC;AAE3C,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE;;;;;;IAqBpE"}
@@ -0,0 +1,4 @@
1
+ import type { SwipeActionsProps } from './types.js';
2
+ export declare const SwipeActions: import("react").ForwardRefExoticComponent<SwipeActionsProps & import("react").RefAttributes<import("react-native/types_generated/src/private/webapis/dom/nodes/ReactNativeElement").default>>;
3
+ export type { SwipeAction, SwipeActionPressEvent, SwipeActionsEdge, SwipeActionsProps, } from './types.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/SwipeActions/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAS,CAAC;AAEjD,eAAO,MAAM,YAAY,+LAiCvB,CAAC;AAOH,YAAY,EACV,WAAW,EACX,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,YAAS,CAAC"}
@@ -0,0 +1,37 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { ColorValue, StyleProp, ViewProps, ViewStyle } from 'react-native';
3
+ export type SwipeActionsEdge = 'leading' | 'trailing';
4
+ export interface SwipeAction {
5
+ /** Stable identifier. Defaults to `item.<index>` when omitted. */
6
+ id?: string;
7
+ /** Button title and accessible action name. */
8
+ title: string;
9
+ /** SF Symbol name. */
10
+ systemImage?: string;
11
+ /** Native action background color, including semantic and dynamic colors. */
12
+ tintColor?: ColorValue;
13
+ /** Uses the system destructive appearance. Does not remove the React row. */
14
+ destructive?: boolean;
15
+ }
16
+ export type SwipeActionPressEvent = Readonly<{
17
+ nativeEvent: Readonly<{
18
+ id: string;
19
+ title: string;
20
+ }>;
21
+ }>;
22
+ export interface SwipeActionsProps extends Omit<ViewProps, 'children'> {
23
+ /** The React Native row content. */
24
+ children: ReactNode;
25
+ /** Styles the moving row, including its background, corners and padding. */
26
+ contentContainerStyle?: StyleProp<ViewStyle>;
27
+ /** Actions ordered from the selected edge inward. */
28
+ actions: readonly SwipeAction[];
29
+ /** Logical edge; respects layout direction. Defaults to `trailing`. */
30
+ edge?: SwipeActionsEdge;
31
+ /** A full swipe performs the first action. Defaults to `true`. */
32
+ allowsFullSwipe?: boolean;
33
+ /** Disables swipe actions without disabling the row's children. */
34
+ disabled?: boolean;
35
+ onActionPress?: (event: SwipeActionPressEvent) => void;
36
+ }
37
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/SwipeActions/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEhF,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,UAAU,CAAC;AAEtD,MAAM,WAAW,WAAW;IAC1B,kEAAkE;IAClE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,MAAM,qBAAqB,GAAG,QAAQ,CAAC;IAC3C,WAAW,EAAE,QAAQ,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtD,CAAC,CAAC;AAEH,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;IACpE,oCAAoC;IACpC,QAAQ,EAAE,SAAS,CAAC;IACpB,4EAA4E;IAC5E,qBAAqB,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7C,qDAAqD;IACrD,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IAChC,uEAAuE;IACvE,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,kEAAkE;IAClE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,mEAAmE;IACnE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACxD"}
@@ -0,0 +1,13 @@
1
+ import type { TipGroupProps } from './types.js';
2
+ interface GroupContextValue {
3
+ tipIds: ReadonlySet<string>;
4
+ currentTipId: string | undefined;
5
+ enabled: boolean;
6
+ invalidateOnOutsideDismiss: boolean;
7
+ complete: (tipId: string) => void;
8
+ }
9
+ /** Orders tips by ID while native TipKit owns eligibility and persisted history. */
10
+ export declare function Group({ tipIds, priority, enabled, invalidateOnOutsideDismiss, children, }: TipGroupProps): import("react").JSX.Element;
11
+ export declare function useTipGroup(tipId: string): GroupContextValue | null;
12
+ export {};
13
+ //# sourceMappingURL=Group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Group.d.ts","sourceRoot":"","sources":["../../../../src/TipKit/Group.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAS,CAAC;AAG7C,UAAU,iBAAiB;IACzB,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,0BAA0B,EAAE,OAAO,CAAC;IACpC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC;AAID,oFAAoF;AACpF,wBAAgB,KAAK,CAAC,EACpB,MAAM,EACN,QAAoB,EACpB,OAAc,EACd,0BAAkC,EAClC,QAAQ,GACT,EAAE,aAAa,+BAoCf;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,4BAQxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.d.ts","sourceRoot":"","sources":["../../../../src/TipKit/Popover.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAS,CAAC;AAG/C,eAAO,MAAM,OAAO,6LAwDnB,CAAC"}
1
+ {"version":3,"file":"Popover.d.ts","sourceRoot":"","sources":["../../../../src/TipKit/Popover.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAwB,MAAM,YAAS,CAAC;AAIrE,eAAO,MAAM,OAAO,6LAqEnB,CAAC"}
@@ -10,6 +10,7 @@ export interface NativeTipPopoverProps extends ViewProps {
10
10
  title: string;
11
11
  }>>;
12
12
  enabled?: boolean;
13
+ invalidateOnOutsideDismiss?: boolean;
13
14
  maxDisplayCount?: CodegenTypes.Int32;
14
15
  ignoresDisplayFrequency?: boolean;
15
16
  arrowEdge?: string;
@@ -23,6 +24,10 @@ export interface NativeTipPopoverProps extends ViewProps {
23
24
  code: string;
24
25
  message: string;
25
26
  }>>;
27
+ onTipInvalidated?: DirectEventHandler<Readonly<{
28
+ tipId: string;
29
+ reason: string;
30
+ }>>;
26
31
  }
27
32
  declare const _default: import("react-native/types_generated/Libraries/Utilities/codegenNativeComponent").NativeComponentType<NativeTipPopoverProps>;
28
33
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"TipPopoverNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/TipKit/TipPopoverNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAEpF,MAAM,WAAW,qBAAsB,SAAQ,SAAS;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC;IACrC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,kBAAkB,CAC9B,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CACvD,CAAC;IACF,UAAU,CAAC,EAAE,kBAAkB,CAC7B,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAC3D,CAAC;CACH;;AAED,wBAKE"}
1
+ {"version":3,"file":"TipPopoverNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/TipKit/TipPopoverNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAEpF,MAAM,WAAW,qBAAsB,SAAQ,SAAS;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,eAAe,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC;IACrC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,kBAAkB,CAC9B,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CACvD,CAAC;IACF,UAAU,CAAC,EAAE,kBAAkB,CAC7B,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAC3D,CAAC;IACF,gBAAgB,CAAC,EAAE,kBAAkB,CACnC,QAAQ,CAAC;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CACH,CAAC;CACH;;AAED,wBAKE"}
@@ -23,6 +23,10 @@ export interface NativeTipViewProps extends ViewProps {
23
23
  code: string;
24
24
  message: string;
25
25
  }>>;
26
+ onTipInvalidated?: DirectEventHandler<Readonly<{
27
+ tipId: string;
28
+ reason: string;
29
+ }>>;
26
30
  }
27
31
  declare const _default: import("react-native/types_generated/Libraries/Utilities/codegenNativeComponent").NativeComponentType<NativeTipViewProps>;
28
32
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"TipViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/TipKit/TipViewNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAEpF,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC;IACrC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,kBAAkB,CAC9B,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CACvD,CAAC;IACF,UAAU,CAAC,EAAE,kBAAkB,CAC7B,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAC3D,CAAC;CACH;;AAED,wBAEG"}
1
+ {"version":3,"file":"TipViewNativeComponent.d.ts","sourceRoot":"","sources":["../../../../src/TipKit/TipViewNativeComponent.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAEpF,MAAM,WAAW,kBAAmB,SAAQ,SAAS;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC;IACrC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,kBAAkB,CAC9B,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CACvD,CAAC;IACF,UAAU,CAAC,EAAE,kBAAkB,CAC7B,QAAQ,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAC3D,CAAC;IACF,gBAAgB,CAAC,EAAE,kBAAkB,CACnC,QAAQ,CAAC;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC,CACH,CAAC;CACH;;AAED,wBAEG"}
@@ -1 +1 @@
1
- {"version":3,"file":"View.d.ts","sourceRoot":"","sources":["../../../../src/TipKit/View.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAS,CAAC;AAG5C,eAAO,MAAM,IAAI,0LAqDf,CAAC"}
1
+ {"version":3,"file":"View.d.ts","sourceRoot":"","sources":["../../../../src/TipKit/View.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAwB,MAAM,YAAS,CAAC;AAIlE,eAAO,MAAM,IAAI,0LAgEf,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import type { TipInvalidationReason, TipKitConfiguration } from './types.js';
2
+ import { Group } from './Group.js';
2
3
  export declare const TipKit: {
4
+ Group: typeof Group;
3
5
  Popover: import("react").ForwardRefExoticComponent<import("./types.js").TipPopoverProps & import("react").RefAttributes<import("react-native/types_generated/src/private/webapis/dom/nodes/ReactNativeElement").default>>;
4
6
  View: import("react").ForwardRefExoticComponent<import("./types.js").TipViewProps & import("react").RefAttributes<import("react-native/types_generated/src/private/webapis/dom/nodes/ReactNativeElement").default>>;
5
7
  /**
@@ -13,5 +15,5 @@ export declare const TipKit: {
13
15
  /** Persistently invalidate a tip, including when its view is not mounted. */
14
16
  invalidate(tipId: string, reason?: TipInvalidationReason): Promise<void>;
15
17
  };
16
- export type { TipAction, TipDisplayFrequency, TipError, TipInvalidationReason, TipKitConfiguration, TipPopoverProps, TipViewProps, } from './types.js';
18
+ export type { TipAction, TipDisplayFrequency, TipError, TipInvalidationReason, TipInvalidationEvent, TipGroupProps, TipKitConfiguration, TipPopoverProps, TipViewProps, } from './types.js';
17
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/TipKit/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,YAAS,CAAC;AAK1E,eAAO,MAAM,MAAM;;;IAGjB;;;;OAIG;sBACqB,OAAO,CAAC,IAAI,CAAC;IAKrC,sFAAsF;sCAGnF,mBAAmB,GAAQ,OAAO,CAAC,IAAI,CAAC;IAc3C,6EAA6E;sBAEpE,MAAM,WACL,qBAAqB,GAC5B,OAAO,CAAC,IAAI,CAAC;CAQjB,CAAC;AAEF,YAAY,EACV,SAAS,EACT,mBAAmB,EACnB,QAAQ,EACR,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,YAAY,GACb,MAAM,YAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/TipKit/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,YAAS,CAAC;AAI1E,OAAO,EAAE,KAAK,EAAE,MAAM,YAAS,CAAC;AAEhC,eAAO,MAAM,MAAM;;;;IAIjB;;;;OAIG;sBACqB,OAAO,CAAC,IAAI,CAAC;IAKrC,sFAAsF;sCAGnF,mBAAmB,GAAQ,OAAO,CAAC,IAAI,CAAC;IAc3C,6EAA6E;sBAEpE,MAAM,WACL,qBAAqB,GAC5B,OAAO,CAAC,IAAI,CAAC;CAQjB,CAAC;AAEF,YAAY,EACV,SAAS,EACT,mBAAmB,EACnB,QAAQ,EACR,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,YAAY,GACb,MAAM,YAAS,CAAC"}