@pega/cosmos-react-core 9.13.0 → 9.15.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 (100) hide show
  1. package/lib/components/AppShell/AppHeader.styles.js +1 -1
  2. package/lib/components/AppShell/AppHeader.styles.js.map +1 -1
  3. package/lib/components/AppShell/AppNavigationPanel.d.ts.map +1 -1
  4. package/lib/components/AppShell/AppNavigationPanel.js +3 -3
  5. package/lib/components/AppShell/AppNavigationPanel.js.map +1 -1
  6. package/lib/components/AppShell/AppShell.d.ts.map +1 -1
  7. package/lib/components/AppShell/AppShell.js +7 -17
  8. package/lib/components/AppShell/AppShell.js.map +1 -1
  9. package/lib/components/AppShell/AppShell.styles.d.ts +4 -6
  10. package/lib/components/AppShell/AppShell.styles.d.ts.map +1 -1
  11. package/lib/components/AppShell/AppShell.styles.js +42 -81
  12. package/lib/components/AppShell/AppShell.styles.js.map +1 -1
  13. package/lib/components/AppShell/AppTopNav.styles.d.ts.map +1 -1
  14. package/lib/components/AppShell/AppTopNav.styles.js +2 -2
  15. package/lib/components/AppShell/AppTopNav.styles.js.map +1 -1
  16. package/lib/components/AppShell/Drawer.d.ts +1 -2
  17. package/lib/components/AppShell/Drawer.d.ts.map +1 -1
  18. package/lib/components/AppShell/Drawer.js +4 -4
  19. package/lib/components/AppShell/Drawer.js.map +1 -1
  20. package/lib/components/AppShell/Drawer.styles.d.ts +1 -13
  21. package/lib/components/AppShell/Drawer.styles.d.ts.map +1 -1
  22. package/lib/components/AppShell/Drawer.styles.js +15 -31
  23. package/lib/components/AppShell/Drawer.styles.js.map +1 -1
  24. package/lib/components/Backdrop/Backdrop.js +1 -1
  25. package/lib/components/Backdrop/Backdrop.js.map +1 -1
  26. package/lib/components/ClassificationMarking/ClassificationMarking.styles.d.ts.map +1 -1
  27. package/lib/components/ClassificationMarking/ClassificationMarking.styles.js +5 -32
  28. package/lib/components/ClassificationMarking/ClassificationMarking.styles.js.map +1 -1
  29. package/lib/components/Configuration/Configuration.d.ts.map +1 -1
  30. package/lib/components/Configuration/Configuration.js +3 -1
  31. package/lib/components/Configuration/Configuration.js.map +1 -1
  32. package/lib/components/EmptyState/EmptyState.d.ts +6 -1
  33. package/lib/components/EmptyState/EmptyState.d.ts.map +1 -1
  34. package/lib/components/EmptyState/EmptyState.js +18 -11
  35. package/lib/components/EmptyState/EmptyState.js.map +1 -1
  36. package/lib/components/FieldGroup/FieldGroupList.js +1 -1
  37. package/lib/components/FieldGroup/FieldGroupList.js.map +1 -1
  38. package/lib/components/FieldValueList/FieldValueList.d.ts +3 -1
  39. package/lib/components/FieldValueList/FieldValueList.d.ts.map +1 -1
  40. package/lib/components/FieldValueList/FieldValueList.js +15 -6
  41. package/lib/components/FieldValueList/FieldValueList.js.map +1 -1
  42. package/lib/components/Fullscreen/Fullscreen.js +2 -2
  43. package/lib/components/Fullscreen/Fullscreen.js.map +1 -1
  44. package/lib/components/PageTemplates/CategorySubPage.styles.js +1 -1
  45. package/lib/components/PageTemplates/CategorySubPage.styles.js.map +1 -1
  46. package/lib/components/PageTemplates/DashboardPage.js +1 -1
  47. package/lib/components/PageTemplates/DashboardPage.js.map +1 -1
  48. package/lib/components/Preview/PreviewPanel.js +1 -1
  49. package/lib/components/Preview/PreviewPanel.js.map +1 -1
  50. package/lib/components/Progress/Progress.d.ts.map +1 -1
  51. package/lib/components/Progress/Progress.js +39 -7
  52. package/lib/components/Progress/Progress.js.map +1 -1
  53. package/lib/components/Progress/Progress.types.d.ts +10 -4
  54. package/lib/components/Progress/Progress.types.d.ts.map +1 -1
  55. package/lib/components/Progress/Progress.types.js.map +1 -1
  56. package/lib/components/RadioCheckGroup/RadioCheckGroup.d.ts +1 -1
  57. package/lib/components/RadioCheckGroup/RadioCheckGroup.d.ts.map +1 -1
  58. package/lib/components/RadioCheckGroup/RadioCheckGroup.js +44 -23
  59. package/lib/components/RadioCheckGroup/RadioCheckGroup.js.map +1 -1
  60. package/lib/components/Scanner/Scanner.d.ts +21 -0
  61. package/lib/components/Scanner/Scanner.d.ts.map +1 -0
  62. package/lib/components/Scanner/Scanner.js +177 -0
  63. package/lib/components/Scanner/Scanner.js.map +1 -0
  64. package/lib/components/Scanner/Scanner.styles.d.ts +4 -0
  65. package/lib/components/Scanner/Scanner.styles.d.ts.map +1 -0
  66. package/lib/components/Scanner/Scanner.styles.js +17 -0
  67. package/lib/components/Scanner/Scanner.styles.js.map +1 -0
  68. package/lib/components/Scanner/Scanner.test-ids.d.ts +2 -0
  69. package/lib/components/Scanner/Scanner.test-ids.d.ts.map +1 -0
  70. package/lib/components/Scanner/Scanner.test-ids.js +3 -0
  71. package/lib/components/Scanner/Scanner.test-ids.js.map +1 -0
  72. package/lib/components/Scanner/index.d.ts +3 -0
  73. package/lib/components/Scanner/index.d.ts.map +1 -0
  74. package/lib/components/Scanner/index.js +2 -0
  75. package/lib/components/Scanner/index.js.map +1 -0
  76. package/lib/hooks/index.d.ts +1 -0
  77. package/lib/hooks/index.d.ts.map +1 -1
  78. package/lib/hooks/index.js +1 -0
  79. package/lib/hooks/index.js.map +1 -1
  80. package/lib/hooks/useComputedLengthPx.d.ts +10 -0
  81. package/lib/hooks/useComputedLengthPx.d.ts.map +1 -0
  82. package/lib/hooks/useComputedLengthPx.js +46 -0
  83. package/lib/hooks/useComputedLengthPx.js.map +1 -0
  84. package/lib/hooks/useI18n.d.ts +12 -0
  85. package/lib/hooks/useI18n.d.ts.map +1 -1
  86. package/lib/i18n/default.d.ts +12 -0
  87. package/lib/i18n/default.d.ts.map +1 -1
  88. package/lib/i18n/default.js +13 -0
  89. package/lib/i18n/default.js.map +1 -1
  90. package/lib/i18n/i18n.d.ts +12 -0
  91. package/lib/i18n/i18n.d.ts.map +1 -1
  92. package/lib/index.d.ts +2 -0
  93. package/lib/index.d.ts.map +1 -1
  94. package/lib/index.js +2 -0
  95. package/lib/index.js.map +1 -1
  96. package/lib/theme/theme.d.ts +6 -0
  97. package/lib/theme/theme.d.ts.map +1 -1
  98. package/lib/theme/themeDefinition.json +4 -0
  99. package/lib/theme/themeOverrides.schema.json +3 -0
  100. package/package.json +2 -1
@@ -0,0 +1,177 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useCallback, useEffect, useRef, useState } from 'react';
3
+ import { Html5Qrcode } from 'html5-qrcode';
4
+ import Modal from '../Modal';
5
+ import Flex from '../Flex';
6
+ import Text from '../Text';
7
+ import Input from '../Input';
8
+ import { registerIcon } from '../Icon';
9
+ import * as qrIcon from '../Icon/icons/qr.icon';
10
+ import { useI18n, useModalContext, useModalManager, useUID } from '../../hooks';
11
+ import { StyledVideo, StyledHiddenCanvas, StyledHiddenDiv } from './Scanner.styles';
12
+ registerIcon(qrIcon);
13
+ const CameraScanModal = ({ onScan, onError }) => {
14
+ const t = useI18n();
15
+ const { dismiss } = useModalContext();
16
+ const scannerId = useUID();
17
+ const videoRef = useRef(null);
18
+ const canvasRef = useRef(null);
19
+ const streamRef = useRef(null);
20
+ const html5QrcodeRef = useRef(null);
21
+ const [cameraReady, setCameraReady] = useState(false);
22
+ useEffect(() => {
23
+ let cancelled = false;
24
+ const start = async () => {
25
+ try {
26
+ let stream;
27
+ try {
28
+ stream = await navigator.mediaDevices.getUserMedia({
29
+ video: { facingMode: 'environment' }
30
+ });
31
+ }
32
+ catch {
33
+ stream = await navigator.mediaDevices.getUserMedia({ video: true });
34
+ }
35
+ if (cancelled) {
36
+ stream.getTracks().forEach(track => track.stop());
37
+ return;
38
+ }
39
+ streamRef.current = stream;
40
+ if (videoRef.current) {
41
+ videoRef.current.srcObject = stream;
42
+ await videoRef.current.play();
43
+ if (!cancelled)
44
+ setCameraReady(true);
45
+ }
46
+ }
47
+ catch {
48
+ if (cancelled)
49
+ return;
50
+ onError();
51
+ dismiss();
52
+ }
53
+ };
54
+ start();
55
+ return () => {
56
+ cancelled = true;
57
+ if (videoRef.current) {
58
+ videoRef.current.pause();
59
+ videoRef.current.srcObject = null;
60
+ }
61
+ if (streamRef.current) {
62
+ streamRef.current.getTracks().forEach(track => track.stop());
63
+ streamRef.current = null;
64
+ }
65
+ html5QrcodeRef.current = null;
66
+ };
67
+ }, [dismiss, onError]);
68
+ useEffect(() => {
69
+ if (!cameraReady)
70
+ return;
71
+ let active = true;
72
+ let timeoutId;
73
+ const scanFrame = async () => {
74
+ if (!active || !videoRef.current || !canvasRef.current)
75
+ return;
76
+ const video = videoRef.current;
77
+ const canvas = canvasRef.current;
78
+ if (video.videoWidth === 0 || video.videoHeight === 0) {
79
+ timeoutId = setTimeout(scanFrame, 200);
80
+ return;
81
+ }
82
+ canvas.width = video.videoWidth;
83
+ canvas.height = video.videoHeight;
84
+ const ctx = canvas.getContext('2d');
85
+ if (!ctx) {
86
+ timeoutId = setTimeout(scanFrame, 200);
87
+ return;
88
+ }
89
+ ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
90
+ try {
91
+ const blob = await new Promise(resolve => {
92
+ canvas.toBlob(resolve, 'image/png');
93
+ });
94
+ if (blob && active) {
95
+ const file = new File([blob], 'scan.png', { type: 'image/png' });
96
+ if (!html5QrcodeRef.current) {
97
+ html5QrcodeRef.current = new Html5Qrcode(scannerId, { verbose: false });
98
+ }
99
+ try {
100
+ const result = await html5QrcodeRef.current.scanFileV2(file, false);
101
+ if (result?.decodedText && active) {
102
+ active = false;
103
+ onScan(result.decodedText);
104
+ dismiss();
105
+ return;
106
+ }
107
+ }
108
+ catch {
109
+ // No barcode found in this frame; keep scanning.
110
+ }
111
+ }
112
+ }
113
+ catch {
114
+ // Capture failed; keep scanning.
115
+ }
116
+ if (active)
117
+ timeoutId = setTimeout(scanFrame, 200);
118
+ };
119
+ scanFrame();
120
+ return () => {
121
+ active = false;
122
+ if (timeoutId)
123
+ clearTimeout(timeoutId);
124
+ };
125
+ }, [cameraReady, dismiss, onScan, scannerId]);
126
+ return (_jsxs(Modal, { heading: t('scan'), progress: cameraReady ? undefined : { message: t('starting_camera') }, onRequestDismiss: () => {
127
+ dismiss();
128
+ return true;
129
+ }, children: [_jsxs(Flex, { container: { direction: 'column', alignItems: 'center', gap: 1 }, children: [_jsx(StyledVideo, { ref: videoRef, autoPlay: true, playsInline: true, muted: true }), cameraReady && _jsx(Text, { variant: 'secondary', children: t('point_camera_at_barcode') })] }), _jsx(StyledHiddenCanvas, { ref: canvasRef }), _jsx(StyledHiddenDiv, { id: scannerId })] }));
130
+ };
131
+ export default function Scanner({ value, onChange, onScan, onBlur, disabled, readOnly, info, status, nativeScan, ...inputProps }) {
132
+ const t = useI18n();
133
+ const { create } = useModalManager();
134
+ const [scanning, setScanning] = useState(false);
135
+ const [scanError, setScanError] = useState();
136
+ const isWebCameraAvailable = typeof navigator !== 'undefined' &&
137
+ 'mediaDevices' in navigator &&
138
+ typeof navigator.mediaDevices.getUserMedia === 'function';
139
+ const canScan = !!nativeScan || isWebCameraAvailable;
140
+ const commitScan = useCallback((scanned) => {
141
+ onScan?.(scanned);
142
+ }, [onScan]);
143
+ const handleScanClick = useCallback(() => {
144
+ setScanError(undefined);
145
+ if (nativeScan) {
146
+ setScanning(true);
147
+ Promise.resolve()
148
+ .then(() => nativeScan())
149
+ .then(scanned => commitScan(scanned))
150
+ .catch(() => setScanError(t('barcode_scan_failed')))
151
+ .finally(() => setScanning(false));
152
+ return;
153
+ }
154
+ create(CameraScanModal, {
155
+ onScan: commitScan,
156
+ onError: () => setScanError(t('camera_access_denied'))
157
+ });
158
+ }, [commitScan, create, nativeScan, t]);
159
+ const inputActions = canScan
160
+ ? [
161
+ {
162
+ id: 'scan',
163
+ icon: 'qr',
164
+ text: scanning ? t('scanning') : t('scan_barcode_or_qr_code'),
165
+ onClick: handleScanClick,
166
+ disabled: !!disabled || !!readOnly || scanning
167
+ }
168
+ ]
169
+ : undefined;
170
+ const resolvedInfo = scanError ?? info;
171
+ const resolvedStatus = scanError ? 'error' : status;
172
+ return (_jsx(Input, { ...inputProps, type: 'text', value: value, disabled: disabled, readOnly: readOnly, info: resolvedInfo, status: resolvedStatus, actions: inputActions, onChange: (e) => {
173
+ setScanError(undefined);
174
+ onChange?.(e.currentTarget.value, e);
175
+ }, onBlur: onBlur }));
176
+ }
177
+ //# sourceMappingURL=Scanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scanner.js","sourceRoot":"","sources":["../../../src/components/Scanner/Scanner.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,MAAM,UAAU,CAAC;AAC7B,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,KAAK,MAAM,UAAU,CAAC;AAE7B,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,MAAM,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEhF,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEpF,YAAY,CAAC,MAAM,CAAC,CAAC;AAyBrB,MAAM,eAAe,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAwB,EAAE,EAAE;IACpE,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,EAAE,CAAC;IACtC,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC;IAE3B,MAAM,QAAQ,GAAG,MAAM,CAA0B,IAAI,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IACzD,MAAM,SAAS,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,MAAM,CAAqB,IAAI,CAAC,CAAC;IAExD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEtD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE;YACvB,IAAI,CAAC;gBACH,IAAI,MAAmB,CAAC;gBACxB,IAAI,CAAC;oBACH,MAAM,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC;wBACjD,KAAK,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE;qBACrC,CAAC,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACtE,CAAC;gBAED,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;oBAClD,OAAO;gBACT,CAAC;gBAED,SAAS,CAAC,OAAO,GAAG,MAAM,CAAC;gBAE3B,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACrB,QAAQ,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC;oBACpC,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBAC9B,IAAI,CAAC,SAAS;wBAAE,cAAc,CAAC,IAAI,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,SAAS;oBAAE,OAAO;gBACtB,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC;QAEF,KAAK,EAAE,CAAC;QAER,OAAO,GAAG,EAAE;YACV,SAAS,GAAG,IAAI,CAAC;YACjB,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACrB,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;gBACzB,QAAQ,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;YACpC,CAAC;YACD,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;gBACtB,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC7D,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;YAC3B,CAAC;YACD,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;QAChC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAEvB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,SAAoD,CAAC;QAEzD,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;YAC3B,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO;gBAAE,OAAO;YAE/D,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC;YAC/B,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC;YAEjC,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,IAAI,KAAK,CAAC,WAAW,KAAK,CAAC,EAAE,CAAC;gBACtD,SAAS,GAAG,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBACvC,OAAO;YACT,CAAC;YAED,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC;YAChC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC;YAElC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,SAAS,GAAG,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;gBACvC,OAAO;YACT,CAAC;YAED,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAExD,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,IAAI,OAAO,CAAc,OAAO,CAAC,EAAE;oBACpD,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBACtC,CAAC,CAAC,CAAC;gBAEH,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;oBACnB,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;oBACjE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;wBAC5B,cAAc,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,SAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC1E,CAAC;oBAED,IAAI,CAAC;wBACH,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;wBACpE,IAAI,MAAM,EAAE,WAAW,IAAI,MAAM,EAAE,CAAC;4BAClC,MAAM,GAAG,KAAK,CAAC;4BACf,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;4BAC3B,OAAO,EAAE,CAAC;4BACV,OAAO;wBACT,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,iDAAiD;oBACnD,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,iCAAiC;YACnC,CAAC;YAED,IAAI,MAAM;gBAAE,SAAS,GAAG,UAAU,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;QACrD,CAAC,CAAC;QAEF,SAAS,EAAE,CAAC;QAEZ,OAAO,GAAG,EAAE;YACV,MAAM,GAAG,KAAK,CAAC;YACf,IAAI,SAAS;gBAAE,YAAY,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAE9C,OAAO,CACL,MAAC,KAAK,IACJ,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAClB,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,iBAAiB,CAAC,EAAE,EACrE,gBAAgB,EAAE,GAAG,EAAE;YACrB,OAAO,EAAE,CAAC;YACV,OAAO,IAAI,CAAC;QACd,CAAC,aAED,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,aACpE,KAAC,WAAW,IAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,QAAC,WAAW,QAAC,KAAK,SAAG,EACxD,WAAW,IAAI,KAAC,IAAI,IAAC,OAAO,EAAC,WAAW,YAAE,CAAC,CAAC,yBAAyB,CAAC,GAAQ,IAC1E,EACP,KAAC,kBAAkB,IAAC,GAAG,EAAE,SAAS,GAAI,EACtC,KAAC,eAAe,IAAC,EAAE,EAAE,SAAS,GAAI,IAC5B,CACT,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAC9B,KAAK,EACL,QAAQ,EACR,MAAM,EACN,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,UAAU,EACV,GAAG,UAAU,EACA;IACb,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;IAErC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,EAAsB,CAAC;IAEjE,MAAM,oBAAoB,GACxB,OAAO,SAAS,KAAK,WAAW;QAChC,cAAc,IAAI,SAAS;QAC3B,OAAO,SAAS,CAAC,YAAY,CAAC,YAAY,KAAK,UAAU,CAAC;IAC5D,MAAM,OAAO,GAAG,CAAC,CAAC,UAAU,IAAI,oBAAoB,CAAC;IAErD,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,OAAe,EAAE,EAAE;QAClB,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;QACvC,YAAY,CAAC,SAAS,CAAC,CAAC;QAExB,IAAI,UAAU,EAAE,CAAC;YACf,WAAW,CAAC,IAAI,CAAC,CAAC;YAClB,OAAO,CAAC,OAAO,EAAE;iBACd,IAAI,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC;iBACxB,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;iBACpC,KAAK,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC;iBACnD,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QAED,MAAM,CAAC,eAAe,EAAE;YACtB,MAAM,EAAE,UAAU;YAClB,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC;SACvD,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IAExC,MAAM,YAAY,GAAG,OAAO;QAC1B,CAAC,CAAC;YACE;gBACE,EAAE,EAAE,MAAM;gBACV,IAAI,EAAE,IAAI;gBACV,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC;gBAC7D,OAAO,EAAE,eAAe;gBACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,IAAI,QAAQ;aAC/C;SACF;QACH,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,YAAY,GAAG,SAAS,IAAI,IAAI,CAAC;IACvC,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAEpD,OAAO,CACL,KAAC,KAAK,OACA,UAAU,EACd,IAAI,EAAC,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,CAAC,CAAgC,EAAE,EAAE;YAC7C,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,QAAQ,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACvC,CAAC,EACD,MAAM,EAAE,MAAM,GACd,CACH,CAAC;AACJ,CAAC","sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\nimport type { ChangeEvent, FocusEvent } from 'react';\nimport { Html5Qrcode } from 'html5-qrcode';\n\nimport Modal from '../Modal';\nimport Flex from '../Flex';\nimport Text from '../Text';\nimport Input from '../Input';\nimport type { InputProps } from '../Input';\nimport { registerIcon } from '../Icon';\nimport * as qrIcon from '../Icon/icons/qr.icon';\nimport type { OmitStrict } from '../../types';\nimport { useI18n, useModalContext, useModalManager, useUID } from '../../hooks';\n\nimport { StyledVideo, StyledHiddenCanvas, StyledHiddenDiv } from './Scanner.styles';\n\nregisterIcon(qrIcon);\n\nexport interface ScannerProps\n extends OmitStrict<InputProps, 'type' | 'actions' | 'onChange' | 'value' | 'defaultValue'> {\n /** Current value of the input. */\n value?: string;\n /** Called when the user types into the input. Not fired for scans — see `onScan`. */\n onChange?: (value: string, event: ChangeEvent<HTMLInputElement>) => void;\n /** Called when a barcode or QR code is successfully scanned. */\n onScan?: (value: string) => void;\n /** Called on the input's blur event. */\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Optional native scan handler. When provided, it is invoked in place of the\n * web-camera fallback — allowing host apps to wire in a platform-native\n * barcode scanner. Should resolve with the scanned value.\n */\n nativeScan?: () => Promise<string>;\n}\n\ninterface CameraScanModalProps {\n onScan: (value: string) => void;\n onError: () => void;\n}\n\nconst CameraScanModal = ({ onScan, onError }: CameraScanModalProps) => {\n const t = useI18n();\n const { dismiss } = useModalContext();\n const scannerId = useUID();\n\n const videoRef = useRef<HTMLVideoElement | null>(null);\n const canvasRef = useRef<HTMLCanvasElement | null>(null);\n const streamRef = useRef<MediaStream | null>(null);\n const html5QrcodeRef = useRef<Html5Qrcode | null>(null);\n\n const [cameraReady, setCameraReady] = useState(false);\n\n useEffect(() => {\n let cancelled = false;\n\n const start = async () => {\n try {\n let stream: MediaStream;\n try {\n stream = await navigator.mediaDevices.getUserMedia({\n video: { facingMode: 'environment' }\n });\n } catch {\n stream = await navigator.mediaDevices.getUserMedia({ video: true });\n }\n\n if (cancelled) {\n stream.getTracks().forEach(track => track.stop());\n return;\n }\n\n streamRef.current = stream;\n\n if (videoRef.current) {\n videoRef.current.srcObject = stream;\n await videoRef.current.play();\n if (!cancelled) setCameraReady(true);\n }\n } catch {\n if (cancelled) return;\n onError();\n dismiss();\n }\n };\n\n start();\n\n return () => {\n cancelled = true;\n if (videoRef.current) {\n videoRef.current.pause();\n videoRef.current.srcObject = null;\n }\n if (streamRef.current) {\n streamRef.current.getTracks().forEach(track => track.stop());\n streamRef.current = null;\n }\n html5QrcodeRef.current = null;\n };\n }, [dismiss, onError]);\n\n useEffect(() => {\n if (!cameraReady) return;\n\n let active = true;\n let timeoutId: ReturnType<typeof setTimeout> | undefined;\n\n const scanFrame = async () => {\n if (!active || !videoRef.current || !canvasRef.current) return;\n\n const video = videoRef.current;\n const canvas = canvasRef.current;\n\n if (video.videoWidth === 0 || video.videoHeight === 0) {\n timeoutId = setTimeout(scanFrame, 200);\n return;\n }\n\n canvas.width = video.videoWidth;\n canvas.height = video.videoHeight;\n\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n timeoutId = setTimeout(scanFrame, 200);\n return;\n }\n\n ctx.drawImage(video, 0, 0, canvas.width, canvas.height);\n\n try {\n const blob = await new Promise<Blob | null>(resolve => {\n canvas.toBlob(resolve, 'image/png');\n });\n\n if (blob && active) {\n const file = new File([blob], 'scan.png', { type: 'image/png' });\n if (!html5QrcodeRef.current) {\n html5QrcodeRef.current = new Html5Qrcode(scannerId, { verbose: false });\n }\n\n try {\n const result = await html5QrcodeRef.current.scanFileV2(file, false);\n if (result?.decodedText && active) {\n active = false;\n onScan(result.decodedText);\n dismiss();\n return;\n }\n } catch {\n // No barcode found in this frame; keep scanning.\n }\n }\n } catch {\n // Capture failed; keep scanning.\n }\n\n if (active) timeoutId = setTimeout(scanFrame, 200);\n };\n\n scanFrame();\n\n return () => {\n active = false;\n if (timeoutId) clearTimeout(timeoutId);\n };\n }, [cameraReady, dismiss, onScan, scannerId]);\n\n return (\n <Modal\n heading={t('scan')}\n progress={cameraReady ? undefined : { message: t('starting_camera') }}\n onRequestDismiss={() => {\n dismiss();\n return true;\n }}\n >\n <Flex container={{ direction: 'column', alignItems: 'center', gap: 1 }}>\n <StyledVideo ref={videoRef} autoPlay playsInline muted />\n {cameraReady && <Text variant='secondary'>{t('point_camera_at_barcode')}</Text>}\n </Flex>\n <StyledHiddenCanvas ref={canvasRef} />\n <StyledHiddenDiv id={scannerId} />\n </Modal>\n );\n};\n\nexport default function Scanner({\n value,\n onChange,\n onScan,\n onBlur,\n disabled,\n readOnly,\n info,\n status,\n nativeScan,\n ...inputProps\n}: ScannerProps) {\n const t = useI18n();\n const { create } = useModalManager();\n\n const [scanning, setScanning] = useState(false);\n const [scanError, setScanError] = useState<string | undefined>();\n\n const isWebCameraAvailable =\n typeof navigator !== 'undefined' &&\n 'mediaDevices' in navigator &&\n typeof navigator.mediaDevices.getUserMedia === 'function';\n const canScan = !!nativeScan || isWebCameraAvailable;\n\n const commitScan = useCallback(\n (scanned: string) => {\n onScan?.(scanned);\n },\n [onScan]\n );\n\n const handleScanClick = useCallback(() => {\n setScanError(undefined);\n\n if (nativeScan) {\n setScanning(true);\n Promise.resolve()\n .then(() => nativeScan())\n .then(scanned => commitScan(scanned))\n .catch(() => setScanError(t('barcode_scan_failed')))\n .finally(() => setScanning(false));\n return;\n }\n\n create(CameraScanModal, {\n onScan: commitScan,\n onError: () => setScanError(t('camera_access_denied'))\n });\n }, [commitScan, create, nativeScan, t]);\n\n const inputActions = canScan\n ? [\n {\n id: 'scan',\n icon: 'qr',\n text: scanning ? t('scanning') : t('scan_barcode_or_qr_code'),\n onClick: handleScanClick,\n disabled: !!disabled || !!readOnly || scanning\n }\n ]\n : undefined;\n\n const resolvedInfo = scanError ?? info;\n const resolvedStatus = scanError ? 'error' : status;\n\n return (\n <Input\n {...inputProps}\n type='text'\n value={value}\n disabled={disabled}\n readOnly={readOnly}\n info={resolvedInfo}\n status={resolvedStatus}\n actions={inputActions}\n onChange={(e: ChangeEvent<HTMLInputElement>) => {\n setScanError(undefined);\n onChange?.(e.currentTarget.value, e);\n }}\n onBlur={onBlur}\n />\n );\n}\n"]}
@@ -0,0 +1,4 @@
1
+ export declare const StyledVideo: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").VideoHTMLAttributes<HTMLVideoElement>, HTMLVideoElement>, never>> & string;
2
+ export declare const StyledHiddenCanvas: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").CanvasHTMLAttributes<HTMLCanvasElement>, HTMLCanvasElement>, never>> & string;
3
+ export declare const StyledHiddenDiv: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
4
+ //# sourceMappingURL=Scanner.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scanner.styles.d.ts","sourceRoot":"","sources":["../../../src/components/Scanner/Scanner.styles.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW,sOAMvB,CAAC;AAIF,eAAO,MAAM,kBAAkB,yOAE9B,CAAC;AAIF,eAAO,MAAM,eAAe,6NAE3B,CAAC"}
@@ -0,0 +1,17 @@
1
+ import styled, { css } from 'styled-components';
2
+ import { defaultThemeProp } from '../../theme';
3
+ export const StyledVideo = styled.video(({ theme }) => css `
4
+ width: 100%;
5
+ display: block;
6
+ border-radius: ${theme.base['border-radius']};
7
+ `);
8
+ StyledVideo.defaultProps = defaultThemeProp;
9
+ export const StyledHiddenCanvas = styled.canvas `
10
+ display: none;
11
+ `;
12
+ StyledHiddenCanvas.defaultProps = defaultThemeProp;
13
+ export const StyledHiddenDiv = styled.div `
14
+ display: none;
15
+ `;
16
+ StyledHiddenDiv.defaultProps = defaultThemeProp;
17
+ //# sourceMappingURL=Scanner.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scanner.styles.js","sourceRoot":"","sources":["../../../src/components/Scanner/Scanner.styles.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CACrC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,GAAG,CAAA;;;qBAGC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;GAC7C,CACF,CAAC;AAEF,WAAW,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAE5C,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAA;;CAE9C,CAAC;AAEF,kBAAkB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEnD,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAA;;CAExC,CAAC;AAEF,eAAe,CAAC,YAAY,GAAG,gBAAgB,CAAC","sourcesContent":["import styled, { css } from 'styled-components';\n\nimport { defaultThemeProp } from '../../theme';\n\nexport const StyledVideo = styled.video(\n ({ theme }) => css`\n width: 100%;\n display: block;\n border-radius: ${theme.base['border-radius']};\n `\n);\n\nStyledVideo.defaultProps = defaultThemeProp;\n\nexport const StyledHiddenCanvas = styled.canvas`\n display: none;\n`;\n\nStyledHiddenCanvas.defaultProps = defaultThemeProp;\n\nexport const StyledHiddenDiv = styled.div`\n display: none;\n`;\n\nStyledHiddenDiv.defaultProps = defaultThemeProp;\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const getScannerTestIds: (testIdProp?: import("../..").TestIdProp["testId"]) => import("../..").TestIdsRecord<readonly []>;
2
+ //# sourceMappingURL=Scanner.test-ids.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scanner.test-ids.d.ts","sourceRoot":"","sources":["../../../src/components/Scanner/Scanner.test-ids.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,mGAAwC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { createTestIds } from '../../utils';
2
+ export const getScannerTestIds = createTestIds('scanner', []);
3
+ //# sourceMappingURL=Scanner.test-ids.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Scanner.test-ids.js","sourceRoot":"","sources":["../../../src/components/Scanner/Scanner.test-ids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAAC,SAAS,EAAE,EAAW,CAAC,CAAC","sourcesContent":["import { createTestIds } from '../../utils';\n\nexport const getScannerTestIds = createTestIds('scanner', [] as const);\n"]}
@@ -0,0 +1,3 @@
1
+ export { default } from './Scanner';
2
+ export type { ScannerProps } from './Scanner';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Scanner/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { default } from './Scanner';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Scanner/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC","sourcesContent":["export { default } from './Scanner';\nexport type { ScannerProps } from './Scanner';\n"]}
@@ -7,6 +7,7 @@ export { default as useArrows } from './useArrows';
7
7
  export { default as useAutoResize } from './useAutoResize';
8
8
  export { default as useBreakpoint } from './useBreakpoint';
9
9
  export { default as useChToPxConversionFactor } from './useChToPxConversionFactor';
10
+ export { default as useComputedLengthPx } from './useComputedLengthPx';
10
11
  export { default as useConfiguration } from './useConfiguration';
11
12
  export { default as useConsolidatedRef } from './useConsolidatedRef';
12
13
  export { default as useContentTabIndex } from './useContentTabIndex';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export { default as useArrows } from './useArrows';
6
6
  export { default as useAutoResize } from './useAutoResize';
7
7
  export { default as useBreakpoint } from './useBreakpoint';
8
8
  export { default as useChToPxConversionFactor } from './useChToPxConversionFactor';
9
+ export { default as useComputedLengthPx } from './useComputedLengthPx';
9
10
  export { default as useConfiguration } from './useConfiguration';
10
11
  export { default as useConsolidatedRef } from './useConsolidatedRef';
11
12
  export { default as useContentTabIndex } from './useContentTabIndex';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"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","sourcesContent":["export { default as useAbortController } from './useAbortController';\nexport { default as useActiveDescendant, useLazyDescendant } from './useActiveDescendant';\nexport type { UseActiveDescendantConfig } from './useActiveDescendant';\nexport { default as useAfterInitialEffect } from './useAfterInitialEffect';\nexport { default as useAnimatedText } from './useAnimatedText';\nexport { default as useArrows } from './useArrows';\nexport { default as useAutoResize } from './useAutoResize';\nexport { default as useBreakpoint } from './useBreakpoint';\nexport { default as useChToPxConversionFactor } from './useChToPxConversionFactor';\nexport { default as useConfiguration } from './useConfiguration';\nexport { default as useConsolidatedRef } from './useConsolidatedRef';\nexport { default as useContentTabIndex } from './useContentTabIndex';\nexport { default as useDirection } from './useDirection';\nexport { default as useDraggable } from './useDraggable';\nexport { default as useElement } from './useElement';\nexport { default as useEscape } from './useEscape';\nexport { default as useEvent } from './useEvent';\nexport { default as useHighlight } from './useHighlight';\nexport { default as useFocusTrap } from './useFocusTrap';\nexport { default as useFocusWithin } from './useFocusWithin';\nexport { default as useI18n } from './useI18n';\nexport { default as useInputFormatter } from './useInputFormatter';\nexport { default as useItemIntersection } from './useItemIntersection';\nexport { default as useLiveLog } from './useLiveLog';\nexport { default as useLongPress } from './useLongPress';\nexport { default as useModalContext } from './useModalContext';\nexport { default as useModalManager } from './useModalManager';\nexport { default as usePreviewContext } from './usePreviewContext';\nexport { default as usePreviewManager } from './usePreviewManager';\nexport { default as useOS } from './useOS';\nexport { default as useOuterEvent } from './useOuterEvent';\nexport { default as usePopoverMap } from './usePopoverMap';\nexport { default as usePrevious } from './usePrevious';\nexport { default as useRefMap } from './useRefMap';\nexport { default as useSimpleStore, createSimpleStore } from './useSimpleStore';\nexport type { SimpleStore } from './useSimpleStore';\nexport { default as useSimpleStoreInstance } from './useSimpleStoreInstance';\nexport { default as useSpeechRecognition } from './useSpeechRecognition';\nexport { default as useScrollStick } from './useScrollStick';\nexport { default as useScrollToggle } from './useScrollToggle';\nexport { default as useShortcut } from './useShortcut';\nexport { default as useShortcutManager } from './useShortcutManager';\nexport { default as useTestIds } from './useTestIds';\nexport { default as useTheme } from './useTheme';\nexport { default as useToaster } from './useToaster';\nexport { default as useTransitionState } from './useTransitionState';\nexport { default as useTriggerableEffect } from './useTriggerableEffect';\nexport { default as useElementFocus } from './useElementFocus';\nexport { default as useTriggerableLayoutEffect } from './useTriggerableLayoutEffect';\nexport { default as useUID } from './useUID';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"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","sourcesContent":["export { default as useAbortController } from './useAbortController';\nexport { default as useActiveDescendant, useLazyDescendant } from './useActiveDescendant';\nexport type { UseActiveDescendantConfig } from './useActiveDescendant';\nexport { default as useAfterInitialEffect } from './useAfterInitialEffect';\nexport { default as useAnimatedText } from './useAnimatedText';\nexport { default as useArrows } from './useArrows';\nexport { default as useAutoResize } from './useAutoResize';\nexport { default as useBreakpoint } from './useBreakpoint';\nexport { default as useChToPxConversionFactor } from './useChToPxConversionFactor';\nexport { default as useComputedLengthPx } from './useComputedLengthPx';\nexport { default as useConfiguration } from './useConfiguration';\nexport { default as useConsolidatedRef } from './useConsolidatedRef';\nexport { default as useContentTabIndex } from './useContentTabIndex';\nexport { default as useDirection } from './useDirection';\nexport { default as useDraggable } from './useDraggable';\nexport { default as useElement } from './useElement';\nexport { default as useEscape } from './useEscape';\nexport { default as useEvent } from './useEvent';\nexport { default as useHighlight } from './useHighlight';\nexport { default as useFocusTrap } from './useFocusTrap';\nexport { default as useFocusWithin } from './useFocusWithin';\nexport { default as useI18n } from './useI18n';\nexport { default as useInputFormatter } from './useInputFormatter';\nexport { default as useItemIntersection } from './useItemIntersection';\nexport { default as useLiveLog } from './useLiveLog';\nexport { default as useLongPress } from './useLongPress';\nexport { default as useModalContext } from './useModalContext';\nexport { default as useModalManager } from './useModalManager';\nexport { default as usePreviewContext } from './usePreviewContext';\nexport { default as usePreviewManager } from './usePreviewManager';\nexport { default as useOS } from './useOS';\nexport { default as useOuterEvent } from './useOuterEvent';\nexport { default as usePopoverMap } from './usePopoverMap';\nexport { default as usePrevious } from './usePrevious';\nexport { default as useRefMap } from './useRefMap';\nexport { default as useSimpleStore, createSimpleStore } from './useSimpleStore';\nexport type { SimpleStore } from './useSimpleStore';\nexport { default as useSimpleStoreInstance } from './useSimpleStoreInstance';\nexport { default as useSpeechRecognition } from './useSpeechRecognition';\nexport { default as useScrollStick } from './useScrollStick';\nexport { default as useScrollToggle } from './useScrollToggle';\nexport { default as useShortcut } from './useShortcut';\nexport { default as useShortcutManager } from './useShortcutManager';\nexport { default as useTestIds } from './useTestIds';\nexport { default as useTheme } from './useTheme';\nexport { default as useToaster } from './useToaster';\nexport { default as useTransitionState } from './useTransitionState';\nexport { default as useTriggerableEffect } from './useTriggerableEffect';\nexport { default as useElementFocus } from './useElementFocus';\nexport { default as useTriggerableLayoutEffect } from './useTriggerableLayoutEffect';\nexport { default as useUID } from './useUID';\n"]}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Resolves a CSS custom property length to pixels in the context of `element`,
3
+ * and re-reads when the property value changes.
4
+ * @param element - Element whose document and CSS variable context are used for measurement.
5
+ * @param customProperty - CSS custom property name to resolve to pixels.
6
+ * @returns Resolved pixel length for the provided CSS custom property.
7
+ */
8
+ declare const useComputedLengthPx: (element: HTMLElement | null, customProperty: `--${string}`) => number;
9
+ export default useComputedLengthPx;
10
+ //# sourceMappingURL=useComputedLengthPx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useComputedLengthPx.d.ts","sourceRoot":"","sources":["../../src/hooks/useComputedLengthPx.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,QAAA,MAAM,mBAAmB,GACvB,SAAS,WAAW,GAAG,IAAI,EAC3B,gBAAgB,KAAK,MAAM,EAAE,KAC5B,MAkDF,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,46 @@
1
+ import { hideVisually } from 'polished';
2
+ import { useLayoutEffect, useState } from 'react';
3
+ /**
4
+ * Resolves a CSS custom property length to pixels in the context of `element`,
5
+ * and re-reads when the property value changes.
6
+ * @param element - Element whose document and CSS variable context are used for measurement.
7
+ * @param customProperty - CSS custom property name to resolve to pixels.
8
+ * @returns Resolved pixel length for the provided CSS custom property.
9
+ */
10
+ const useComputedLengthPx = (element, customProperty) => {
11
+ const [lengthPx, setLengthPx] = useState(0);
12
+ useLayoutEffect(() => {
13
+ if (!element) {
14
+ setLengthPx(0);
15
+ return;
16
+ }
17
+ const { ownerDocument } = element;
18
+ const win = ownerDocument.defaultView ?? window;
19
+ const ghost = ownerDocument.createElement('div');
20
+ Object.assign(ghost.style, hideVisually(), {
21
+ pointerEvents: 'none',
22
+ insetBlockStart: `var(${customProperty})`,
23
+ transition: `${customProperty} 1ms allow-discrete`
24
+ });
25
+ element.after(ghost);
26
+ const syncLengthPx = () => {
27
+ const pxValue = Number.parseFloat(win.getComputedStyle(ghost).insetBlockStart);
28
+ const nextPx = Number.isFinite(pxValue) ? pxValue : 0;
29
+ setLengthPx(nextPx);
30
+ };
31
+ syncLengthPx();
32
+ const ac = new AbortController();
33
+ ghost.addEventListener('transitionend', event => {
34
+ if (event.target !== ghost || event.propertyName !== customProperty)
35
+ return;
36
+ syncLengthPx();
37
+ }, { signal: ac.signal });
38
+ return () => {
39
+ ac.abort();
40
+ ghost.remove();
41
+ };
42
+ }, [customProperty, element]);
43
+ return lengthPx;
44
+ };
45
+ export default useComputedLengthPx;
46
+ //# sourceMappingURL=useComputedLengthPx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useComputedLengthPx.js","sourceRoot":"","sources":["../../src/hooks/useComputedLengthPx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,mBAAmB,GAAG,CAC1B,OAA2B,EAC3B,cAA6B,EACrB,EAAE;IACV,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE5C,eAAe,CAAC,GAAG,EAAE;QACnB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,WAAW,CAAC,CAAC,CAAC,CAAC;YACf,OAAO;QACT,CAAC;QAED,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;QAClC,MAAM,GAAG,GAAG,aAAa,CAAC,WAAW,IAAI,MAAM,CAAC;QAEhD,MAAM,KAAK,GAAG,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAEjD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE;YACzC,aAAa,EAAE,MAAM;YACrB,eAAe,EAAE,OAAO,cAAc,GAAG;YACzC,UAAU,EAAE,GAAG,cAAc,qBAAqB;SACnD,CAAC,CAAC;QAEH,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAErB,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAEtD,WAAW,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC,CAAC;QAEF,YAAY,EAAE,CAAC;QAEf,MAAM,EAAE,GAAG,IAAI,eAAe,EAAE,CAAC;QAEjC,KAAK,CAAC,gBAAgB,CACpB,eAAe,EACf,KAAK,CAAC,EAAE;YACN,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,IAAI,KAAK,CAAC,YAAY,KAAK,cAAc;gBAAE,OAAO;YAE5E,YAAY,EAAE,CAAC;QACjB,CAAC,EACD,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,CACtB,CAAC;QAEF,OAAO,GAAG,EAAE;YACV,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;IAE9B,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,eAAe,mBAAmB,CAAC","sourcesContent":["import { hideVisually } from 'polished';\nimport { useLayoutEffect, useState } from 'react';\n\n/**\n * Resolves a CSS custom property length to pixels in the context of `element`,\n * and re-reads when the property value changes.\n * @param element - Element whose document and CSS variable context are used for measurement.\n * @param customProperty - CSS custom property name to resolve to pixels.\n * @returns Resolved pixel length for the provided CSS custom property.\n */\nconst useComputedLengthPx = (\n element: HTMLElement | null,\n customProperty: `--${string}`\n): number => {\n const [lengthPx, setLengthPx] = useState(0);\n\n useLayoutEffect(() => {\n if (!element) {\n setLengthPx(0);\n return;\n }\n\n const { ownerDocument } = element;\n const win = ownerDocument.defaultView ?? window;\n\n const ghost = ownerDocument.createElement('div');\n\n Object.assign(ghost.style, hideVisually(), {\n pointerEvents: 'none',\n insetBlockStart: `var(${customProperty})`,\n transition: `${customProperty} 1ms allow-discrete`\n });\n\n element.after(ghost);\n\n const syncLengthPx = () => {\n const pxValue = Number.parseFloat(win.getComputedStyle(ghost).insetBlockStart);\n const nextPx = Number.isFinite(pxValue) ? pxValue : 0;\n\n setLengthPx(nextPx);\n };\n\n syncLengthPx();\n\n const ac = new AbortController();\n\n ghost.addEventListener(\n 'transitionend',\n event => {\n if (event.target !== ghost || event.propertyName !== customProperty) return;\n\n syncLengthPx();\n },\n { signal: ac.signal }\n );\n\n return () => {\n ac.abort();\n ghost.remove();\n };\n }, [customProperty, element]);\n\n return lengthPx;\n};\n\nexport default useComputedLengthPx;\n"]}
@@ -84,6 +84,13 @@ declare const useI18n: () => import("../i18n/translate").TranslationFunction<Rea
84
84
  unfollow: string;
85
85
  add: string;
86
86
  cancel: string;
87
+ scanning: string;
88
+ scan: string;
89
+ scan_barcode_or_qr_code: string;
90
+ point_camera_at_barcode: string;
91
+ starting_camera: string;
92
+ barcode_scan_failed: string;
93
+ camera_access_denied: string;
87
94
  try_again: string;
88
95
  update: string;
89
96
  submit: string;
@@ -1556,6 +1563,7 @@ declare const useI18n: () => import("../i18n/translate").TranslationFunction<Rea
1556
1563
  dynamicInput_format_DateTime: string;
1557
1564
  dynamicInput_format_Date: string;
1558
1565
  dynamicInput_format_Time: string;
1566
+ format: string;
1559
1567
  zoom_level: string;
1560
1568
  close_configuration_panel: string;
1561
1569
  clear_object_summary: string;
@@ -1700,6 +1708,10 @@ declare const useI18n: () => import("../i18n/translate").TranslationFunction<Rea
1700
1708
  advanced_settings_toggle_btn: string;
1701
1709
  color_swatch_btn_label: string;
1702
1710
  theme_preview_title: string;
1711
+ theme_css_warning: string;
1712
+ theme_css_label: string;
1713
+ theme_css_modal_heading: string;
1714
+ theme_css_modal_heading_with_name: string;
1703
1715
  default_font_info: string;
1704
1716
  custom_font_family: string;
1705
1717
  custom_font_family_error: string;
@@ -1 +1 @@
1
- {"version":3,"file":"useI18n.d.ts","sourceRoot":"","sources":["../../src/hooks/useI18n.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAGZ,CAAC;AAEF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"useI18n.d.ts","sourceRoot":"","sources":["../../src/hooks/useI18n.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAGZ,CAAC;AAEF,eAAe,OAAO,CAAC"}
@@ -80,6 +80,13 @@ declare const _default: {
80
80
  unfollow: string;
81
81
  add: string;
82
82
  cancel: string;
83
+ scanning: string;
84
+ scan: string;
85
+ scan_barcode_or_qr_code: string;
86
+ point_camera_at_barcode: string;
87
+ starting_camera: string;
88
+ barcode_scan_failed: string;
89
+ camera_access_denied: string;
83
90
  try_again: string;
84
91
  update: string;
85
92
  submit: string;
@@ -1552,6 +1559,7 @@ declare const _default: {
1552
1559
  dynamicInput_format_DateTime: string;
1553
1560
  dynamicInput_format_Date: string;
1554
1561
  dynamicInput_format_Time: string;
1562
+ format: string;
1555
1563
  zoom_level: string;
1556
1564
  close_configuration_panel: string;
1557
1565
  clear_object_summary: string;
@@ -1697,6 +1705,10 @@ declare const _default: {
1697
1705
  advanced_settings_toggle_btn: string;
1698
1706
  color_swatch_btn_label: string;
1699
1707
  theme_preview_title: string;
1708
+ theme_css_warning: string;
1709
+ theme_css_label: string;
1710
+ theme_css_modal_heading: string;
1711
+ theme_css_modal_heading_with_name: string;
1700
1712
  default_font_info: string;
1701
1713
  custom_font_family: string;
1702
1714
  custom_font_family_error: string;
@@ -1 +1 @@
1
- {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../src/i18n/default.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmvDE,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAyOxB,6CAA6C;;;;;;;;;;;;;;IAgB7C,6CAA6C;;;;;;;;IAS7C,yCAAyC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAwGzC,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2C/B,wCAAwC;;IAGxC,oCAAoC;;;;;;;;IASpC,oCAAoC;;;;;;IAOpC,uCAAuC;;;;;;;;;;;IAavC,6CAA6C;;;;;;;IAQ7C,uCAAuC;;;;;;;;IAUvC,yCAAyC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA1rE3C,wBA0uEE"}
1
+ {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../src/i18n/default.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8vDE,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8OxB,6CAA6C;;;;;;;;;;;;;;IAgB7C,6CAA6C;;;;;;;;IAS7C,yCAAyC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAwGzC,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA2C/B,wCAAwC;;IAGxC,oCAAoC;;;;;;;;IASpC,oCAAoC;;;;;;IAOpC,uCAAuC;;;;;;;;;;;IAavC,6CAA6C;;;;;;;IAQ7C,uCAAuC;;;;;;;;IAUvC,yCAAyC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA1sE3C,wBA0vEE"}
@@ -85,6 +85,13 @@ export default {
85
85
  unfollow: 'Unfollow',
86
86
  add: 'Add',
87
87
  cancel: 'Cancel',
88
+ scanning: 'Scanning...',
89
+ scan: 'Scan',
90
+ scan_barcode_or_qr_code: 'Scan barcode or QR code',
91
+ point_camera_at_barcode: 'Point your camera at a barcode or QR code',
92
+ starting_camera: 'Starting camera...',
93
+ barcode_scan_failed: 'Barcode scanning failed or was cancelled',
94
+ camera_access_denied: 'Camera access was denied or unavailable. Please allow access and try again.',
88
95
  try_again: 'Try again',
89
96
  update: 'Update',
90
97
  submit: 'Submit',
@@ -1649,6 +1656,8 @@ export default {
1649
1656
  dynamicInput_format_DateTime: 'DateTime',
1650
1657
  dynamicInput_format_Date: 'Date',
1651
1658
  dynamicInput_format_Time: 'Time',
1659
+ /* build: CodeEditor */
1660
+ format: 'Format',
1652
1661
  /* build:Workbench */
1653
1662
  zoom_level: 'Zoom level',
1654
1663
  close_configuration_panel: 'Close configuration panel',
@@ -1822,6 +1831,10 @@ export default {
1822
1831
  advanced_settings_toggle_btn: '{0} advanced settings',
1823
1832
  color_swatch_btn_label: 'Set {0} to {1}',
1824
1833
  theme_preview_title: 'Theme Preview',
1834
+ theme_css_warning: 'Theme CSS provides additional customization capabilities. Review after each upgrade. Use at your own risk.',
1835
+ theme_css_label: 'CSS',
1836
+ theme_css_modal_heading: 'Theme CSS',
1837
+ theme_css_modal_heading_with_name: 'Theme CSS: {0}',
1825
1838
  default_font_info: 'Selection will override app header and heading fonts',
1826
1839
  custom_font_family: '{0} font family name',
1827
1840
  custom_font_family_error: "Font family can't be empty",