@ornikar/kitt-universal 32.5.1 → 32.5.3-canary.00f8f98ae6299285821fb6a87eab9440995c7566.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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,30 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [32.5.3-canary.00f8f98ae6299285821fb6a87eab9440995c7566.0](https://github.com/ornikar/kitt/compare/@ornikar/kitt-universal@32.5.2...@ornikar/kitt-universal@32.5.3-canary.00f8f98ae6299285821fb6a87eab9440995c7566.0) (2025-12-18)
7
+
8
+
9
+ ### Features
10
+
11
+ * create Portal component ([ce6b733](https://github.com/ornikar/kitt/commit/ce6b733813db62105f43fc259cc714c68763d10a))
12
+ * create web util to check if document.body exists ([d36e670](https://github.com/ornikar/kitt/commit/d36e67015f2002999de2abb53861ad7fd36bb3d5))
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * apply new Portal component to createPortal consumers ([00f8f98](https://github.com/ornikar/kitt/commit/00f8f98ae6299285821fb6a87eab9440995c7566))
18
+
19
+
20
+
21
+ ## [32.5.2](https://github.com/ornikar/kitt/compare/@ornikar/kitt-universal@32.5.1...@ornikar/kitt-universal@32.5.2) (2025-12-18)
22
+
23
+
24
+ ### Bug Fixes
25
+
26
+ * **kitt-universal/DocumentPicker:** add try catch around `getDocumentAsync` to stop Sentry issues [OSE-22127] ([#2815](https://github.com/ornikar/kitt/issues/2815)) ([0d8881c](https://github.com/ornikar/kitt/commit/0d8881c0e1ea41dd9a271bb7ee2b621c28423468))
27
+
28
+
29
+
6
30
  ## [32.5.1](https://github.com/ornikar/kitt/compare/@ornikar/kitt-universal@32.5.0...@ornikar/kitt-universal@32.5.1) (2025-12-17)
7
31
 
8
32
  **Note:** Version bump only for package @ornikar/kitt-universal
@@ -1 +1 @@
1
- {"version":3,"file":"Picker.web.d.ts","sourceRoot":"","sources":["../../../src/Picker/Picker.web.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,OAAO,CAAC;AAKrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAU9C,wBAAgB,MAAM,CAAC,CAAC,EAAE,EACxB,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,cAA+B,EAC/B,WAAW,EACX,wBAAgC,EAChC,gBAAwB,EACxB,MAAM,EACN,QAAQ,EACR,iBAAiB,EACjB,QAAQ,EACR,OAAO,GACR,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CA6J5B;yBA7Ke,MAAM"}
1
+ {"version":3,"file":"Picker.web.d.ts","sourceRoot":"","sources":["../../../src/Picker/Picker.web.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,OAAO,CAAC;AAKrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAU9C,wBAAgB,MAAM,CAAC,CAAC,EAAE,EACxB,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,cAA+B,EAC/B,WAAW,EACX,wBAAgC,EAChC,gBAAwB,EACxB,MAAM,EACN,QAAQ,EACR,iBAAiB,EACjB,QAAQ,EACR,OAAO,GACR,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS,CA4J5B;yBA5Ke,MAAM"}
@@ -0,0 +1,8 @@
1
+ import type { PropsWithChildren } from 'react';
2
+ export interface PortalProps extends PropsWithChildren {
3
+ }
4
+ /**
5
+ * @description Should only be used on web. Renders nothing on native platforms.
6
+ */
7
+ export declare function Portal({ children }: PortalProps): null;
8
+ //# sourceMappingURL=Portal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Portal.d.ts","sourceRoot":"","sources":["../../../src/Portal/Portal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAE/C,MAAM,WAAW,WAAY,SAAQ,iBAAiB;CAAG;AAEzD;;GAEG;AACH,wBAAgB,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,GAAG,IAAI,CAEtD"}
@@ -0,0 +1,4 @@
1
+ import type { ReactPortal } from 'react';
2
+ import type { PortalProps } from './Portal';
3
+ export declare function Portal({ children }: PortalProps): ReactPortal | null;
4
+ //# sourceMappingURL=Portal.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Portal.web.d.ts","sourceRoot":"","sources":["../../../src/Portal/Portal.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,wBAAgB,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,WAAW,GAAG,WAAW,GAAG,IAAI,CAMpE"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Returns document.body if it exists, or null otherwise.
3
+ * This is useful when document.body might not be available, such as when document.write() is called
4
+ * which destroys the DOM and causes React portals to fail with "Target container is not a DOM element" error.
5
+ */
6
+ export declare function getDocumentBodyIfExists(): HTMLBodyElement | null;
7
+ //# sourceMappingURL=getDocumentBodyIfExists.web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDocumentBodyIfExists.web.d.ts","sourceRoot":"","sources":["../../../../src/Portal/utils/getDocumentBodyIfExists.web.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,eAAe,GAAG,IAAI,CAIhE"}
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.web.d.ts","sourceRoot":"","sources":["../../../src/Tooltip/Tooltip.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGlD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAKxC,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIlD,UAAU,uBAAwB,SAAQ,OAAO,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;IACvF,cAAc,EAAE,cAAc,CAAC;IAC/B,IAAI,EAAE;QACJ,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;QAC1B,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;KAC1B,CAAC;CACH;AAGD,KAAK,eAAe,GAAG,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG;IACxD,QAAQ,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,IAAI,CAAC;CACrD,CAAC;AAEF,wBAAgB,OAAO,CAAC,EACtB,QAAQ,EACR,SAAS,EACT,cAAc,EACd,QAAgB,EAChB,OAAO,EACP,eAAe,EACf,SAAS,EACT,QAAQ,EACR,eAIC,EACD,QAAQ,EACR,MAAM,GACP,EAAE,eAAe,GAAG,SAAS,CA2I7B;yBA3Je,OAAO"}
1
+ {"version":3,"file":"Tooltip.web.d.ts","sourceRoot":"","sources":["../../../src/Tooltip/Tooltip.web.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAMxC,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIlD,UAAU,uBAAwB,SAAQ,OAAO,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;IACvF,cAAc,EAAE,cAAc,CAAC;IAC/B,IAAI,EAAE;QACJ,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;QAC1B,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC;KAC1B,CAAC;CACH;AAGD,KAAK,eAAe,GAAG,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG;IACxD,QAAQ,EAAE,CAAC,MAAM,EAAE,uBAAuB,KAAK,IAAI,CAAC;CACrD,CAAC;AAEF,wBAAgB,OAAO,CAAC,EACtB,QAAQ,EACR,SAAS,EACT,cAAc,EACd,QAAgB,EAChB,OAAO,EACP,eAAe,EACf,SAAS,EACT,QAAQ,EACR,eAIC,EACD,QAAQ,EACR,MAAM,GACP,EAAE,eAAe,GAAG,SAAS,CA0I7B;yBA1Je,OAAO"}
@@ -7,9 +7,10 @@ interface ChildElementProps extends ComponentProps<any> {
7
7
  export interface DocumentPickerProps {
8
8
  children: ReactElement<ChildElementProps>;
9
9
  disabled?: boolean;
10
- onDocumentUpload: (document: File) => void;
11
10
  documentPickerOptions?: Except<DocumentPickerOptions, 'multiple'>;
11
+ onDocumentUpload: (document: File) => void;
12
+ onGetDocumentAsyncError?: () => void;
12
13
  }
13
- export declare function DocumentPicker({ onDocumentUpload, children, disabled, documentPickerOptions, }: DocumentPickerProps): ReactNode;
14
+ export declare function DocumentPicker({ children, disabled, documentPickerOptions, onDocumentUpload, onGetDocumentAsyncError, }: DocumentPickerProps): ReactNode;
14
15
  export {};
15
16
  //# sourceMappingURL=DocumentPicker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentPicker.d.ts","sourceRoot":"","sources":["../../../../src/forms/DocumentPicker/DocumentPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAErE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,UAAU,iBAAkB,SAAQ,cAAc,CAAC,GAAG,CAAC;IACrD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,EAAE,CAAC,QAAQ,EAAE,IAAI,KAAK,IAAI,CAAC;IAC3C,qBAAqB,CAAC,EAAE,MAAM,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC;CACnE;AAED,wBAAgB,cAAc,CAAC,EAC7B,gBAAgB,EAChB,QAAQ,EACR,QAAQ,EACR,qBAAqB,GACtB,EAAE,mBAAmB,GAAG,SAAS,CAqBjC"}
1
+ {"version":3,"file":"DocumentPicker.d.ts","sourceRoot":"","sources":["../../../../src/forms/DocumentPicker/DocumentPicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAwB,MAAM,sBAAsB,CAAC;AAExF,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAErE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,UAAU,iBAAkB,SAAQ,cAAc,CAAC,GAAG,CAAC;IACrD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAAC;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB,CAAC,EAAE,MAAM,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAC;IAClE,gBAAgB,EAAE,CAAC,QAAQ,EAAE,IAAI,KAAK,IAAI,CAAC;IAC3C,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;CACtC;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,QAAQ,EACR,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,GACxB,EAAE,mBAAmB,GAAG,SAAS,CA4BjC"}
@@ -6796,24 +6796,35 @@ const DatePicker = /*#__PURE__*/forwardRef((_ref, ref) => {
6796
6796
  });
6797
6797
 
6798
6798
  function DocumentPicker({
6799
- onDocumentUpload,
6800
6799
  children,
6801
6800
  disabled,
6802
- documentPickerOptions
6801
+ documentPickerOptions,
6802
+ onDocumentUpload,
6803
+ onGetDocumentAsyncError
6803
6804
  }) {
6804
6805
  const childElement = Children.only(children);
6805
6806
  return /*#__PURE__*/cloneElement(childElement, {
6806
6807
  // ensure that the press event is not prevented by Button component
6807
6808
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
6808
6809
  onPress: async () => {
6809
- var _childElement$props$o, _childElement$props, _result$assets$;
6810
+ var _childElement$props$o, _childElement$props, _result$assets;
6810
6811
  if (disabled) return;
6811
6812
  (_childElement$props$o = (_childElement$props = childElement.props).onPress) === null || _childElement$props$o === void 0 || _childElement$props$o.call(_childElement$props);
6812
- const result = await getDocumentAsync(_objectSpread(_objectSpread({}, documentPickerOptions), {}, {
6813
- multiple: false
6814
- }));
6815
- if (!result.canceled && (_result$assets$ = result.assets[0]) !== null && _result$assets$ !== void 0 && _result$assets$.file) {
6816
- onDocumentUpload(result.assets[0].file);
6813
+ let result;
6814
+ try {
6815
+ result = await getDocumentAsync(_objectSpread(_objectSpread({}, documentPickerOptions), {}, {
6816
+ multiple: false
6817
+ }));
6818
+ } catch (error) {
6819
+ onGetDocumentAsyncError === null || onGetDocumentAsyncError === void 0 || onGetDocumentAsyncError();
6820
+ result = {
6821
+ canceled: true,
6822
+ assets: null
6823
+ };
6824
+ }
6825
+ const file = (_result$assets = result.assets) === null || _result$assets === void 0 || (_result$assets = _result$assets.at(0)) === null || _result$assets === void 0 ? void 0 : _result$assets.file;
6826
+ if (!result.canceled && file) {
6827
+ onDocumentUpload(file);
6817
6828
  }
6818
6829
  },
6819
6830
  disabled