@neo-ui-kit/react 0.0.0-stage → 1.0.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 (270) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +203 -2
  3. package/dist/artwork/icons.json.d.ts +2 -0
  4. package/dist/artwork/illustrations.json.d.ts +2 -0
  5. package/dist/chunks/chunk-347P6ZE4.js +104 -0
  6. package/dist/chunks/chunk-BJSFN52W.js +417 -0
  7. package/dist/chunks/chunk-FCOU3ODR.js +63 -0
  8. package/dist/chunks/chunk-JZ4GDTH5.js +87 -0
  9. package/dist/chunks/chunk-UGDRXR7P.js +3362 -0
  10. package/dist/chunks/chunk-VK6GHRLV.js +335 -0
  11. package/dist/chunks/chunk-YKCUOZ7V.js +777 -0
  12. package/dist/components/artwork/DatabaseArt/DatabaseArt.d.ts +6 -0
  13. package/dist/components/artwork/DatabaseArt/styles.css +58 -0
  14. package/dist/components/artwork/Landscape/Landscape.d.ts +7 -0
  15. package/dist/components/artwork/Landscape/styles.css +79 -0
  16. package/dist/components/artwork/NeonWaves/NeonWaves.d.ts +15 -0
  17. package/dist/components/artwork/NeonWaves/styles.css +48 -0
  18. package/dist/components/artwork/Planet/Planet.d.ts +4 -0
  19. package/dist/components/artwork/Planet/styles.css +52 -0
  20. package/dist/components/artwork/QuantumField/QuantumField.d.ts +42 -0
  21. package/dist/components/artwork/QuantumField/QuantumFieldExperience.d.ts +22 -0
  22. package/dist/components/artwork/QuantumField/UPSTREAM-LICENSE.txt +21 -0
  23. package/dist/components/artwork/QuantumField/audio.d.ts +15 -0
  24. package/dist/components/artwork/QuantumField/renderer.d.ts +24 -0
  25. package/dist/components/artwork/QuantumField/styles.css +77 -0
  26. package/dist/components/artwork/ServerArt/ServerArt.d.ts +8 -0
  27. package/dist/components/artwork/ServerArt/styles.css +43 -0
  28. package/dist/components/artwork/Spectrum/Spectrum.d.ts +7 -0
  29. package/dist/components/artwork/Spectrum/styles.css +35 -0
  30. package/dist/components/artwork/layers.d.ts +15 -0
  31. package/dist/components/artwork/useArtwork.d.ts +8 -0
  32. package/dist/components/controls/Autocomplete/Autocomplete.d.ts +2 -0
  33. package/dist/components/controls/Autocomplete/styles.css +1 -0
  34. package/dist/components/controls/Button/Button.d.ts +2 -0
  35. package/dist/components/controls/Button/styles.css +1 -0
  36. package/dist/components/controls/Checkbox/Checkbox.d.ts +2 -0
  37. package/dist/components/controls/Checkbox/styles.css +70 -0
  38. package/dist/components/controls/Chip/Chip.d.ts +21 -0
  39. package/dist/components/controls/Chip/styles.css +74 -0
  40. package/dist/components/controls/ChipField.d.ts +25 -0
  41. package/dist/components/controls/ColorPicker/ColorPicker.d.ts +16 -0
  42. package/dist/components/controls/ColorPicker/color.d.ts +9 -0
  43. package/dist/components/controls/ColorPicker/styles.css +103 -0
  44. package/dist/components/controls/DatePicker/DatePicker.d.ts +19 -0
  45. package/dist/components/controls/DatePicker/styles.css +69 -0
  46. package/dist/components/controls/FilePicker/FilePicker.d.ts +2 -0
  47. package/dist/components/controls/FilePicker/styles.css +149 -0
  48. package/dist/components/controls/IconButton/IconButton.d.ts +2 -0
  49. package/dist/components/controls/IconButton/styles.css +4 -0
  50. package/dist/components/controls/InputBase/InputBase.d.ts +21 -0
  51. package/dist/components/controls/InputBase/styles.css +379 -0
  52. package/dist/components/controls/Link/Link.d.ts +11 -0
  53. package/dist/components/controls/Link/styles.css +50 -0
  54. package/dist/components/controls/NumberField/NumberField.d.ts +2 -0
  55. package/dist/components/controls/NumberField/styles.css +1 -0
  56. package/dist/components/controls/PeoplePicker/PeoplePicker.d.ts +37 -0
  57. package/dist/components/controls/PeoplePicker/styles.css +7 -0
  58. package/dist/components/controls/SegmentedControl/SegmentedControl.d.ts +2 -0
  59. package/dist/components/controls/SegmentedControl/styles.css +9 -0
  60. package/dist/components/controls/Select/Select.d.ts +8 -0
  61. package/dist/components/controls/Select/styles.css +142 -0
  62. package/dist/components/controls/Slider/Slider.d.ts +3 -0
  63. package/dist/components/controls/Slider/styles.css +138 -0
  64. package/dist/components/controls/SplitButton/SplitButton.d.ts +2 -0
  65. package/dist/components/controls/SplitButton/styles.css +169 -0
  66. package/dist/components/controls/Switch/Switch.d.ts +2 -0
  67. package/dist/components/controls/Switch/styles.css +54 -0
  68. package/dist/components/controls/Tab/Tab.d.ts +2 -0
  69. package/dist/components/controls/Tab/styles.css +111 -0
  70. package/dist/components/controls/Tabs/Tabs.d.ts +2 -0
  71. package/dist/components/controls/Tabs/styles.css +239 -0
  72. package/dist/components/controls/TagInput/TagInput.d.ts +24 -0
  73. package/dist/components/controls/TagInput/styles.css +24 -0
  74. package/dist/components/controls/TextArea/TextArea.d.ts +2 -0
  75. package/dist/components/controls/TextArea/styles.css +15 -0
  76. package/dist/components/controls/TextField/TextField.d.ts +2 -0
  77. package/dist/components/controls/ThemePicker/ThemePicker.d.ts +24 -0
  78. package/dist/components/controls/ThemePicker/styles.css +128 -0
  79. package/dist/components/controls/ToggleButton/ToggleButton.d.ts +2 -0
  80. package/dist/components/controls/ToggleButton/styles.css +49 -0
  81. package/dist/components/controls/internal.d.ts +62 -0
  82. package/dist/components/controls/shared.css +694 -0
  83. package/dist/components/controls/shared.d.ts +204 -0
  84. package/dist/components/editor/PianoRoll/PianoRoll.d.ts +65 -0
  85. package/dist/components/editor/PianoRoll/styles.css +186 -0
  86. package/dist/components/editor/shared.css +1 -0
  87. package/dist/components/effects/AnimatedBorder/AnimatedBorder.d.ts +9 -0
  88. package/dist/components/effects/AnimatedBorder/styles.css +7 -0
  89. package/dist/components/effects/Beacon/Beacon.d.ts +9 -0
  90. package/dist/components/effects/Beacon/styles.css +38 -0
  91. package/dist/components/effects/Equalizer/Equalizer.d.ts +14 -0
  92. package/dist/components/effects/Equalizer/styles.css +38 -0
  93. package/dist/components/effects/GlowText/GlowText.d.ts +9 -0
  94. package/dist/components/effects/GlowText/styles.css +56 -0
  95. package/dist/components/effects/ImageShine/ImageShine.d.ts +13 -0
  96. package/dist/components/effects/ImageShine/styles.css +66 -0
  97. package/dist/components/effects/Marquee/Marquee.d.ts +9 -0
  98. package/dist/components/effects/Marquee/styles.css +46 -0
  99. package/dist/components/effects/MelodixText/MelodixText.d.ts +15 -0
  100. package/dist/components/effects/MelodixText/styles.css +28 -0
  101. package/dist/components/effects/Reveal/Reveal.d.ts +13 -0
  102. package/dist/components/effects/Reveal/styles.css +25 -0
  103. package/dist/components/effects/Shimmer/Shimmer.d.ts +10 -0
  104. package/dist/components/effects/Shimmer/styles.css +48 -0
  105. package/dist/components/effects/Sparkles/Sparkles.d.ts +9 -0
  106. package/dist/components/effects/Sparkles/styles.css +28 -0
  107. package/dist/components/effects/Spotlight/Spotlight.d.ts +11 -0
  108. package/dist/components/effects/Spotlight/styles.css +45 -0
  109. package/dist/components/effects/Tilt/Tilt.d.ts +11 -0
  110. package/dist/components/effects/Tilt/styles.css +67 -0
  111. package/dist/components/feedback/Badge/Badge.d.ts +3 -0
  112. package/dist/components/feedback/Badge/styles.css +91 -0
  113. package/dist/components/feedback/CollapsibleSection/CollapsibleSection.d.ts +2 -0
  114. package/dist/components/feedback/CollapsibleSection/styles.css +76 -0
  115. package/dist/components/feedback/DataTable/DataTable.d.ts +16 -0
  116. package/dist/components/feedback/DataTable/styles.css +522 -0
  117. package/dist/components/feedback/Dialog/Dialog.d.ts +2 -0
  118. package/dist/components/feedback/Dialog/styles.css +82 -0
  119. package/dist/components/feedback/EmptyState/EmptyState.d.ts +2 -0
  120. package/dist/components/feedback/EmptyState/styles.css +80 -0
  121. package/dist/components/feedback/KeyValueList/KeyValueList.d.ts +2 -0
  122. package/dist/components/feedback/KeyValueList/styles.css +51 -0
  123. package/dist/components/feedback/Menu/Menu.d.ts +2 -0
  124. package/dist/components/feedback/Menu/styles.css +123 -0
  125. package/dist/components/feedback/MenuItem/MenuItem.d.ts +2 -0
  126. package/dist/components/feedback/MenuItem/styles.css +71 -0
  127. package/dist/components/feedback/MessageBar/MessageBar.d.ts +2 -0
  128. package/dist/components/feedback/MessageBar/styles.css +116 -0
  129. package/dist/components/feedback/Popover/Popover.d.ts +2 -0
  130. package/dist/components/feedback/Popover/styles.css +44 -0
  131. package/dist/components/feedback/ProgressBar/ProgressBar.d.ts +2 -0
  132. package/dist/components/feedback/ProgressBar/styles.css +76 -0
  133. package/dist/components/feedback/SignalBars/SignalBars.d.ts +11 -0
  134. package/dist/components/feedback/SignalBars/styles.css +31 -0
  135. package/dist/components/feedback/StatusIndicator/StatusIndicator.d.ts +2 -0
  136. package/dist/components/feedback/StatusIndicator/styles.css +88 -0
  137. package/dist/components/feedback/Steps/Steps.d.ts +2 -0
  138. package/dist/components/feedback/Steps/styles.css +152 -0
  139. package/dist/components/feedback/Toast/Toast.d.ts +2 -0
  140. package/dist/components/feedback/Toast/styles.css +89 -0
  141. package/dist/components/feedback/Tooltip/Tooltip.d.ts +15 -0
  142. package/dist/components/feedback/Tooltip/styles.css +38 -0
  143. package/dist/components/feedback/shared.css +22 -0
  144. package/dist/components/feedback/shared.d.ts +231 -0
  145. package/dist/components/forms/Form/Form.d.ts +35 -0
  146. package/dist/components/forms/Form/styles.css +1 -0
  147. package/dist/components/forms/FormFields/FormFields.d.ts +20 -0
  148. package/dist/components/forms/FormFields/styles.css +72 -0
  149. package/dist/components/foundation/Loader/Loader.d.ts +30 -0
  150. package/dist/components/foundation/LoaderGenerator/LoaderGenerator.d.ts +38 -0
  151. package/dist/components/foundation/LoaderGenerator/styles.css +104 -0
  152. package/dist/components/foundation/ThemeEditor/ThemeEditor.d.ts +15 -0
  153. package/dist/components/foundation/ThemeEditor/styles.css +97 -0
  154. package/dist/components/foundation/ThemeEditor/themeConfig.d.ts +47 -0
  155. package/dist/components/foundation/ThemeProvider/ThemeProvider.d.ts +32 -0
  156. package/dist/components/foundation/ThemeProvider/styles.css +59 -0
  157. package/dist/components/foundation/Typography/Typography.d.ts +17 -0
  158. package/dist/components/foundation/Typography/styles.css +115 -0
  159. package/dist/components/layout/Avatar/Avatar.d.ts +2 -0
  160. package/dist/components/layout/Avatar/HostSeal.d.ts +5 -0
  161. package/dist/components/layout/Avatar/styles.css +166 -0
  162. package/dist/components/layout/BrandMark/BrandMark.d.ts +2 -0
  163. package/dist/components/layout/BrandMark/styles.css +39 -0
  164. package/dist/components/layout/ButtonGroup/ButtonGroup.d.ts +12 -0
  165. package/dist/components/layout/ButtonGroup/styles.css +36 -0
  166. package/dist/components/layout/Card/Card.d.ts +14 -0
  167. package/dist/components/layout/Card/styles.css +37 -0
  168. package/dist/components/layout/DialogActions/DialogActions.d.ts +12 -0
  169. package/dist/components/layout/DialogActions/styles.css +31 -0
  170. package/dist/components/layout/DialogBody/DialogBody.d.ts +12 -0
  171. package/dist/components/layout/DialogBody/styles.css +28 -0
  172. package/dist/components/layout/Divider/Divider.d.ts +2 -0
  173. package/dist/components/layout/Divider/styles.css +58 -0
  174. package/dist/components/layout/FloatingPanel/FloatingPanel.d.ts +15 -0
  175. package/dist/components/layout/FloatingPanel/styles.css +47 -0
  176. package/dist/components/layout/FloatingPanel/useFloatingPanel.d.ts +54 -0
  177. package/dist/components/layout/Grid/Grid.d.ts +24 -0
  178. package/dist/components/layout/Grid/styles.css +90 -0
  179. package/dist/components/layout/Header/Header.d.ts +2 -0
  180. package/dist/components/layout/Header/styles.css +42 -0
  181. package/dist/components/layout/Icon/Icon.d.ts +4 -0
  182. package/dist/components/layout/Icon/styles.css +62 -0
  183. package/dist/components/layout/Illustration/Illustration.d.ts +2 -0
  184. package/dist/components/layout/Illustration/styles.css +104 -0
  185. package/dist/components/layout/ScrollArea/ScrollArea.d.ts +2 -0
  186. package/dist/components/layout/ScrollArea/styles.css +61 -0
  187. package/dist/components/layout/Stack/Stack.d.ts +21 -0
  188. package/dist/components/layout/Stack/styles.css +53 -0
  189. package/dist/components/layout/StatTile/StatTile.d.ts +20 -0
  190. package/dist/components/layout/StatTile/styles.css +90 -0
  191. package/dist/components/layout/TabPanel/TabPanel.d.ts +2 -0
  192. package/dist/components/layout/TabPanel/styles.css +16 -0
  193. package/dist/components/layout/Text/Text.d.ts +2 -0
  194. package/dist/components/layout/Text/styles.css +29 -0
  195. package/dist/components/layout/Toolbar/Toolbar.d.ts +12 -0
  196. package/dist/components/layout/Toolbar/styles.css +7 -0
  197. package/dist/components/layout/shared.css +79 -0
  198. package/dist/components/layout/shared.d.ts +64 -0
  199. package/dist/components/media/AudioPlayer/AudioPlayer.d.ts +2 -0
  200. package/dist/components/media/AudioPlayer/styles.css +86 -0
  201. package/dist/components/media/KaraokeLyrics/KaraokeLyrics.d.ts +25 -0
  202. package/dist/components/media/KaraokeLyrics/styles.css +56 -0
  203. package/dist/components/media/LevelMeter/LevelMeter.d.ts +7 -0
  204. package/dist/components/media/LevelMeter/styles.css +30 -0
  205. package/dist/components/media/MediaCard/MediaCard.d.ts +24 -0
  206. package/dist/components/media/MediaCard/styles.css +108 -0
  207. package/dist/components/media/MelodyRoll/MelodyRoll.d.ts +48 -0
  208. package/dist/components/media/MelodyRoll/styles.css +196 -0
  209. package/dist/components/media/PianoKeyboard/PianoKeyboard.d.ts +24 -0
  210. package/dist/components/media/PianoKeyboard/styles.css +83 -0
  211. package/dist/components/media/RotaryKnob/RotaryKnob.d.ts +3 -0
  212. package/dist/components/media/RotaryKnob/styles.css +319 -0
  213. package/dist/components/media/Sparkline/Sparkline.d.ts +2 -0
  214. package/dist/components/media/Sparkline/styles.css +70 -0
  215. package/dist/components/media/WaveDecoration/WaveDecoration.d.ts +2 -0
  216. package/dist/components/media/WaveDecoration/styles.css +2 -0
  217. package/dist/components/media/Waveform/Waveform.d.ts +9 -0
  218. package/dist/components/media/Waveform/styles.css +375 -0
  219. package/dist/components/media/Waveform/useWaveformPeaks.d.ts +11 -0
  220. package/dist/components/media/shared.css +7 -0
  221. package/dist/components/media/shared.d.ts +80 -0
  222. package/dist/components/navigation/Router/Router.d.ts +32 -0
  223. package/dist/components/navigation/Router/styles.css +1 -0
  224. package/dist/components.css +102 -0
  225. package/dist/core/artwork.d.ts +17 -0
  226. package/dist/core/base.d.ts +65 -0
  227. package/dist/core/environment.d.ts +5 -0
  228. package/dist/core/i18n.d.ts +34 -0
  229. package/dist/core/messages.d.ts +1 -0
  230. package/dist/core/motion/hooks.d.ts +17 -0
  231. package/dist/core/motion-engine.d.ts +13 -0
  232. package/dist/core/noise.d.ts +20 -0
  233. package/dist/core/providers/context.d.ts +4 -0
  234. package/dist/core/responsive.d.ts +13 -0
  235. package/dist/core.d.ts +8 -0
  236. package/dist/core.js +56 -0
  237. package/dist/editor.d.ts +2 -0
  238. package/dist/editor.js +8 -0
  239. package/dist/fonts/melodix/Melodix-100.woff2 +0 -0
  240. package/dist/fonts/melodix/Melodix-200.woff2 +0 -0
  241. package/dist/fonts/melodix/Melodix-300.woff2 +0 -0
  242. package/dist/fonts/melodix/Melodix-400.woff2 +0 -0
  243. package/dist/fonts/melodix/Melodix-500.woff2 +0 -0
  244. package/dist/fonts/melodix/Melodix-600.woff2 +0 -0
  245. package/dist/fonts/melodix/Melodix-700.woff2 +0 -0
  246. package/dist/fonts/melodix/Melodix-800.woff2 +0 -0
  247. package/dist/fonts/melodix/Melodix-900.woff2 +0 -0
  248. package/dist/fonts/melodix/MelodixText-100.woff2 +0 -0
  249. package/dist/fonts/melodix/MelodixText-200.woff2 +0 -0
  250. package/dist/fonts/melodix/MelodixText-300.woff2 +0 -0
  251. package/dist/fonts/melodix/MelodixText-400.woff2 +0 -0
  252. package/dist/fonts/melodix/MelodixText-500.woff2 +0 -0
  253. package/dist/fonts/melodix/MelodixText-600.woff2 +0 -0
  254. package/dist/fonts/melodix/MelodixText-700.woff2 +0 -0
  255. package/dist/fonts/melodix/MelodixText-800.woff2 +0 -0
  256. package/dist/fonts/melodix/MelodixText-900.woff2 +0 -0
  257. package/dist/fonts/melodix/OFL-PlayfairDisplay.txt +93 -0
  258. package/dist/fonts/melodix.css +123 -0
  259. package/dist/forms.d.ts +4 -0
  260. package/dist/forms.js +17 -0
  261. package/dist/index.d.ts +163 -0
  262. package/dist/index.js +9683 -0
  263. package/dist/router.d.ts +2 -0
  264. package/dist/router.js +11 -0
  265. package/dist/styles.css +2 -0
  266. package/dist/theme/base.css +221 -0
  267. package/dist/theme/tokens.css +196 -0
  268. package/dist/theme/typography.d.ts +24 -0
  269. package/dist/tokens.css +1 -0
  270. package/package.json +83 -4
@@ -0,0 +1,417 @@
1
+ import {
2
+ motionEnabled
3
+ } from "./chunk-FCOU3ODR.js";
4
+
5
+ // src/core/base.tsx
6
+ import { createElement, useCallback, useRef, useState } from "react";
7
+ function classes(...values) {
8
+ return values.filter(Boolean).join(" ");
9
+ }
10
+ function normalizeSize(size) {
11
+ if (!size) return void 0;
12
+ return { small: "sm", medium: "md", large: "lg" }[size] ?? size;
13
+ }
14
+ function mark(name, p, material, extra2) {
15
+ const passed = {};
16
+ for (const key in p)
17
+ if (key === "role" || key.startsWith("aria-") || key.startsWith("data-"))
18
+ passed[key] = p[key];
19
+ return {
20
+ ...passed,
21
+ id: p.id,
22
+ className: classes(
23
+ "ad",
24
+ "ad-" + name.replace(/[A-Z]/g, (v, i) => (i ? "-" : "") + v.toLowerCase()),
25
+ extra2,
26
+ p.className
27
+ ),
28
+ style: p.style,
29
+ "data-ad-component": name,
30
+ "data-ad-material": p.material ?? material,
31
+ "data-ad-size": normalizeSize(p.size),
32
+ "data-ad-tone": p.tone
33
+ };
34
+ }
35
+ function part(name, tag) {
36
+ const Part = (p) => createElement(tag, mark(name, p), p.children);
37
+ Part.displayName = name;
38
+ return Part;
39
+ }
40
+ function useControllable(value, initial, onChange) {
41
+ const [internal, setInternal] = useState(initial);
42
+ const current2 = value === void 0 ? internal : value;
43
+ const latest = useRef({ current: current2, value, onChange });
44
+ latest.current = { current: current2, value, onChange };
45
+ const update = useCallback((next) => {
46
+ const old = latest.current;
47
+ const resolved = typeof next === "function" ? next(old.current) : next;
48
+ if (old.value === void 0) setInternal(resolved);
49
+ if (!Object.is(resolved, old.current)) old.onChange?.(resolved);
50
+ if (old.value === void 0) latest.current.current = resolved;
51
+ }, []);
52
+ return [current2, update];
53
+ }
54
+ function assignRef(ref, value) {
55
+ if (typeof ref === "function") ref(value);
56
+ else if (ref) ref.current = value;
57
+ }
58
+ var clamp = (v, min = 0, max = 100) => Math.max(min, Math.min(max, Number.isFinite(v) ? v : min));
59
+ var cssRem = (value) => `${value / (parseFloat(getComputedStyle(document.documentElement).fontSize) || 16)}rem`;
60
+ var timeText = (value) => `${Math.floor(Math.max(0, value) / 60)}:${String(Math.floor(Math.max(0, value)) % 60).padStart(2, "0")}`;
61
+ async function copyText(text) {
62
+ try {
63
+ await navigator.clipboard.writeText(text);
64
+ return true;
65
+ } catch {
66
+ const field = document.createElement("textarea");
67
+ field.value = text;
68
+ field.style.cssText = "position:fixed;left:0;top:0;width:1px;height:1px;padding:0;border:0;opacity:0;pointer-events:none";
69
+ const focus = document.activeElement;
70
+ document.body.append(field);
71
+ field.select();
72
+ try {
73
+ return document.execCommand("copy");
74
+ } catch {
75
+ return false;
76
+ } finally {
77
+ field.remove();
78
+ focus?.focus();
79
+ }
80
+ }
81
+ }
82
+ function downloadFile(name, content, type = "application/json") {
83
+ const url = URL.createObjectURL(new Blob([content], { type }));
84
+ const link = document.createElement("a");
85
+ link.download = name;
86
+ link.href = url;
87
+ link.click();
88
+ window.setTimeout(() => URL.revokeObjectURL(url), 1500);
89
+ }
90
+ function ripple(host, clientX, clientY) {
91
+ if (!motionEnabled()) return;
92
+ const rect = host.getBoundingClientRect();
93
+ const ring = document.createElement("span");
94
+ ring.className = "ad-ripple";
95
+ ring.style.left = `${clientX - rect.left}px`;
96
+ ring.style.top = `${clientY - rect.top}px`;
97
+ ring.addEventListener("animationend", () => ring.remove());
98
+ ring.addEventListener("animationcancel", () => ring.remove());
99
+ host.append(ring);
100
+ }
101
+
102
+ // src/core/messages.ts
103
+ var rows = [
104
+ // fields and pickers
105
+ ["\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C", "Clear", "\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u0438"],
106
+ ["\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u044B", "Show options", "\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u0438 \u0432\u0430\u0440\u0456\u0430\u043D\u0442\u0438"],
107
+ ["\u041F\u043E\u0434\u0441\u043A\u0430\u0437\u043A\u0438", "Suggestions", "\u041F\u0456\u0434\u043A\u0430\u0437\u043A\u0438"],
108
+ ["\u0423\u0431\u0440\u0430\u0442\u044C", "Remove", "\u041F\u0440\u0438\u0431\u0440\u0430\u0442\u0438"],
109
+ ["\u041D\u0430\u0441\u044B\u0449\u0435\u043D\u043D\u043E\u0441\u0442\u044C \u0438 \u044F\u0440\u043A\u043E\u0441\u0442\u044C", "Saturation and brightness", "\u041D\u0430\u0441\u0438\u0447\u0435\u043D\u0456\u0441\u0442\u044C \u0456 \u044F\u0441\u043A\u0440\u0430\u0432\u0456\u0441\u0442\u044C"],
110
+ ["\u041E\u0442\u0442\u0435\u043D\u043E\u043A", "Hue", "\u0412\u0456\u0434\u0442\u0456\u043D\u043E\u043A"],
111
+ ["\u041A\u043E\u0434 \u0446\u0432\u0435\u0442\u0430", "Colour code", "\u041A\u043E\u0434 \u043A\u043E\u043B\u044C\u043E\u0440\u0443"],
112
+ ["\u0412\u044B\u0431\u043E\u0440 \u0446\u0432\u0435\u0442\u0430", "Pick a colour", "\u0412\u0438\u0431\u0456\u0440 \u043A\u043E\u043B\u044C\u043E\u0440\u0443"],
113
+ ["\u0434\u0434.\u043C\u043C.\u0433\u0433\u0433\u0433", "dd.mm.yyyy", "\u0434\u0434.\u043C\u043C.\u0440\u0440\u0440\u0440"],
114
+ ["\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C", "Open calendar", "\u0412\u0456\u0434\u043A\u0440\u0438\u0442\u0438 \u043A\u0430\u043B\u0435\u043D\u0434\u0430\u0440"],
115
+ ["\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440\u044C", "Calendar", "\u041A\u0430\u043B\u0435\u043D\u0434\u0430\u0440"],
116
+ ["\u041F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0438\u0439 \u043C\u0435\u0441\u044F\u0446", "Previous month", "\u041F\u043E\u043F\u0435\u0440\u0435\u0434\u043D\u0456\u0439 \u043C\u0456\u0441\u044F\u0446\u044C"],
117
+ ["\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0439 \u043C\u0435\u0441\u044F\u0446", "Next month", "\u041D\u0430\u0441\u0442\u0443\u043F\u043D\u0438\u0439 \u043C\u0456\u0441\u044F\u0446\u044C"],
118
+ ["\u0421\u0435\u0433\u043E\u0434\u043D\u044F", "Today", "\u0421\u044C\u043E\u0433\u043E\u0434\u043D\u0456"],
119
+ ["\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0444\u0430\u0439\u043B", "Choose file", "\u0412\u0438\u0431\u0440\u0430\u0442\u0438 \u0444\u0430\u0439\u043B"],
120
+ ["\u0438\u043B\u0438 \u043F\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u0435\u0433\u043E \u0441\u044E\u0434\u0430", "or drop it here", "\u0430\u0431\u043E \u043F\u0435\u0440\u0435\u0442\u044F\u0433\u043D\u0456\u0442\u044C \u0439\u043E\u0433\u043E \u0441\u044E\u0434\u0438"],
121
+ ["\u0424\u0430\u0439\u043B \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D", "No file chosen", "\u0424\u0430\u0439\u043B \u043D\u0435 \u0432\u0438\u0431\u0440\u0430\u043D\u043E"],
122
+ ["\u0423\u043C\u0435\u043D\u044C\u0448\u0438\u0442\u044C", "Decrease", "\u0417\u043C\u0435\u043D\u0448\u0438\u0442\u0438"],
123
+ ["\u0423\u0432\u0435\u043B\u0438\u0447\u0438\u0442\u044C", "Increase", "\u0417\u0431\u0456\u043B\u044C\u0448\u0438\u0442\u0438"],
124
+ ["\u041D\u0430\u0447\u043D\u0438\u0442\u0435 \u0432\u0432\u043E\u0434\u0438\u0442\u044C \u0438\u043C\u044F", "Start typing a name", "\u041F\u043E\u0447\u043D\u0456\u0442\u044C \u0432\u0432\u043E\u0434\u0438\u0442\u0438 \u0456\u043C\u2019\u044F"],
125
+ ["\u041B\u044E\u0434\u0438", "People", "\u041B\u044E\u0434\u0438"],
126
+ ["\u0418\u0449\u0435\u043C\u2026", "Searching\u2026", "\u0428\u0443\u043A\u0430\u0454\u043C\u043E\u2026"],
127
+ ["\u041D\u0438\u043A\u043E\u0433\u043E \u043D\u0435 \u043D\u0430\u0448\u043B\u0438", "No one found", "\u041D\u0456\u043A\u043E\u0433\u043E \u043D\u0435 \u0437\u043D\u0430\u0439\u0434\u0435\u043D\u043E"],
128
+ ["\u0421\u043F\u0438\u0441\u043E\u043A", "List", "\u0421\u043F\u0438\u0441\u043E\u043A"],
129
+ ["\u041F\u043B\u0438\u0442\u043A\u0430", "Grid", "\u041F\u043B\u0438\u0442\u043A\u0430"],
130
+ ["\u041F\u0435\u0440\u0432\u044B\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442", "First option", "\u041F\u0435\u0440\u0448\u0438\u0439 \u0432\u0430\u0440\u0456\u0430\u043D\u0442"],
131
+ ["\u0412\u0442\u043E\u0440\u043E\u0439 \u0432\u0430\u0440\u0438\u0430\u043D\u0442", "Second option", "\u0414\u0440\u0443\u0433\u0438\u0439 \u0432\u0430\u0440\u0456\u0430\u043D\u0442"],
132
+ ["\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", "Choose a value", "\u0412\u0438\u0431\u0435\u0440\u0456\u0442\u044C \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"],
133
+ ["\u0412\u0430\u0440\u0438\u0430\u043D\u0442\u044B", "Options", "\u0412\u0430\u0440\u0456\u0430\u043D\u0442\u0438"],
134
+ ["\u041F\u043E\u0438\u0441\u043A", "Search", "\u041F\u043E\u0448\u0443\u043A"],
135
+ ["\u041D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E", "Nothing found", "\u041D\u0456\u0447\u043E\u0433\u043E \u043D\u0435 \u0437\u043D\u0430\u0439\u0434\u0435\u043D\u043E"],
136
+ ["\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435", "Value", "\u0417\u043D\u0430\u0447\u0435\u043D\u043D\u044F"],
137
+ ["\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C", "Save", "\u0417\u0431\u0435\u0440\u0435\u0433\u0442\u0438"],
138
+ ["\u0414\u0440\u0443\u0433\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044F", "More actions", "\u0406\u043D\u0448\u0456 \u0434\u0456\u0457"],
139
+ ["\u042D\u043A\u0441\u043F\u043E\u0440\u0442\u0438\u0440\u043E\u0432\u0430\u0442\u044C JSON", "Export JSON", "\u0415\u043A\u0441\u043F\u043E\u0440\u0442\u0443\u0432\u0430\u0442\u0438 JSON"],
140
+ ["\u0412\u043D\u0435\u0448\u043D\u0438\u0439 \u0432\u0438\u0434", "Appearance", "\u0417\u043E\u0432\u043D\u0456\u0448\u043D\u0456\u0439 \u0432\u0438\u0433\u043B\u044F\u0434"],
141
+ ["\u0410\u0443\u0434\u0438\u043E", "Audio", "\u0410\u0443\u0434\u0456\u043E"],
142
+ ["\u0414\u043E\u043F\u043E\u043B\u043D\u0438\u0442\u0435\u043B\u044C\u043D\u043E", "Advanced", "\u0414\u043E\u0434\u0430\u0442\u043A\u043E\u0432\u043E"],
143
+ ["\u0420\u0430\u0437\u0434\u0435\u043B\u044B", "Sections", "\u0420\u043E\u0437\u0434\u0456\u043B\u0438"],
144
+ ["\u0414\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u0442\u0435\u0433 \u0438 \u043D\u0430\u0436\u043C\u0438\u0442\u0435 Enter", "Add a tag and press Enter", "\u0414\u043E\u0434\u0430\u0439\u0442\u0435 \u0442\u0435\u0433 \u0456 \u043D\u0430\u0442\u0438\u0441\u043D\u0456\u0442\u044C Enter"],
145
+ ["\u0422\u0435\u043C\u0430", "Theme", "\u0422\u0435\u043C\u0430"],
146
+ // media
147
+ ["\u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u043C\u0435\u043B\u043E\u0434\u0438\u0438", "Melody editor", "\u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u043C\u0435\u043B\u043E\u0434\u0456\u0457"],
148
+ ["\u041D\u043E\u0442\u0430 {pitch}", "Note {pitch}", "\u041D\u043E\u0442\u0430 {pitch}"],
149
+ ["\u0418\u0433\u0440\u0430\u0435\u0442", "Playing", "\u0413\u0440\u0430\u0454"],
150
+ ["\u041F\u0430\u0443\u0437\u0430", "Pause", "\u041F\u0430\u0443\u0437\u0430"],
151
+ ["\u0412\u043E\u0441\u043F\u0440\u043E\u0438\u0437\u0432\u0435\u0441\u0442\u0438", "Play", "\u0412\u0456\u0434\u0442\u0432\u043E\u0440\u0438\u0442\u0438"],
152
+ ["\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0437\u0432\u0443\u043A", "Unmute", "\u0423\u0432\u0456\u043C\u043A\u043D\u0443\u0442\u0438 \u0437\u0432\u0443\u043A"],
153
+ ["\u0412\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0437\u0432\u0443\u043A", "Mute", "\u0412\u0438\u043C\u043A\u043D\u0443\u0442\u0438 \u0437\u0432\u0443\u043A"],
154
+ ["\u0413\u0440\u043E\u043C\u043A\u043E\u0441\u0442\u044C", "Volume", "\u0413\u0443\u0447\u043D\u0456\u0441\u0442\u044C"],
155
+ ["\u0423\u0440\u043E\u0432\u0435\u043D\u044C \u0441\u0438\u0433\u043D\u0430\u043B\u0430", "Signal level", "\u0420\u0456\u0432\u0435\u043D\u044C \u0441\u0438\u0433\u043D\u0430\u043B\u0443"],
156
+ ["\u041C\u0435\u043B\u043E\u0434\u0438\u044F", "Melody", "\u041C\u0435\u043B\u043E\u0434\u0456\u044F"],
157
+ ["\u041A\u043B\u0430\u0432\u0438\u0430\u0442\u0443\u0440\u0430 {from}\u2013{to}", "Keyboard {from}\u2013{to}", "\u041A\u043B\u0430\u0432\u0456\u0430\u0442\u0443\u0440\u0430 {from}\u2013{to}"],
158
+ ["{label}: {value} \xB7 \u0432\u0435\u0434\u0438\u0442\u0435 \u043F\u043E \u043A\u0440\u0443\u0433\u0443 \u0438\u043B\u0438 \u0442\u044F\u043D\u0438\u0442\u0435 \u0437\u0430 \u0446\u0435\u043D\u0442\u0440", "{label}: {value} \xB7 drag around or pull from the centre", "{label}: {value} \xB7 \u0432\u0435\u0434\u0456\u0442\u044C \u043F\u043E \u043A\u043E\u043B\u0443 \u0430\u0431\u043E \u0442\u044F\u0433\u043D\u0456\u0442\u044C \u0437\u0430 \u0446\u0435\u043D\u0442\u0440"],
159
+ ["\u041D\u0430\u0436\u043C\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0432\u0432\u0435\u0441\u0442\u0438 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", "Click to type a value", "\u041D\u0430\u0442\u0438\u0441\u043D\u0456\u0442\u044C, \u0449\u043E\u0431 \u0432\u0432\u0435\u0441\u0442\u0438 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"],
160
+ ["{label}, \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435", "{label}, value", "{label}, \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F"],
161
+ ["\u041F\u043E\u0437\u0438\u0446\u0438\u044F \u0432\u043E\u0441\u043F\u0440\u043E\u0438\u0437\u0432\u0435\u0434\u0435\u043D\u0438\u044F", "Playback position", "\u041F\u043E\u0437\u0438\u0446\u0456\u044F \u0432\u0456\u0434\u0442\u0432\u043E\u0440\u0435\u043D\u043D\u044F"],
162
+ // feedback
163
+ ["\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430", "Loading", "\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F"],
164
+ ["\u0422\u0435\u0445\u043D\u0438\u0447\u0435\u0441\u043A\u0438\u0439 JSON", "Technical JSON", "\u0422\u0435\u0445\u043D\u0456\u0447\u043D\u0438\u0439 JSON"],
165
+ ["\u0421\u043E\u0434\u0435\u0440\u0436\u0438\u043C\u043E\u0435 \u0440\u0430\u0441\u043A\u0440\u044B\u0432\u0430\u044E\u0449\u0435\u0433\u043E\u0441\u044F \u0440\u0430\u0437\u0434\u0435\u043B\u0430.", "Content of the collapsible section.", "\u0412\u043C\u0456\u0441\u0442 \u0440\u043E\u0437\u0433\u043E\u0440\u0442\u0443\u0432\u0430\u043D\u043E\u0433\u043E \u0440\u043E\u0437\u0434\u0456\u043B\u0443."],
166
+ ["{count} \u0437\u043D\u0430\u0447.", "{count} values", "{count} \u0437\u043D\u0430\u0447."],
167
+ ["\u0421\u043E\u0434\u0435\u0440\u0436\u0438\u0442\u2026", "Contains\u2026", "\u041C\u0456\u0441\u0442\u0438\u0442\u044C\u2026"],
168
+ ["\u041E\u0442", "From", "\u0412\u0456\u0434"],
169
+ ["\u0414\u043E", "To", "\u0414\u043E"],
170
+ ["\u041D\u0430\u0439\u0442\u0438 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435\u2026", "Find a value\u2026", "\u0417\u043D\u0430\u0439\u0442\u0438 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F\u2026"],
171
+ ["\u0412\u0441\u0435", "All", "\u0423\u0441\u0456"],
172
+ ["\u0424\u0438\u043B\u044C\u0442\u0440: {title}", "Filter: {title}", "\u0424\u0456\u043B\u044C\u0442\u0440: {title}"],
173
+ ["\u0414\u0430\u0442\u0430", "Date", "\u0414\u0430\u0442\u0430"],
174
+ ["\u0421\u043E\u0431\u044B\u0442\u0438\u0435", "Event", "\u041F\u043E\u0434\u0456\u044F"],
175
+ ["\u0421\u0442\u0430\u0442\u0443\u0441", "Status", "\u0421\u0442\u0430\u0442\u0443\u0441"],
176
+ ["\u041D\u0435\u0442 \u0434\u0430\u043D\u043D\u044B\u0445", "No data", "\u041D\u0435\u043C\u0430\u0454 \u0434\u0430\u043D\u0438\u0445"],
177
+ ["\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0441\u0442\u0440\u043E\u043A\u0443", "Select row", "\u0412\u0438\u0431\u0440\u0430\u0442\u0438 \u0440\u044F\u0434\u043E\u043A"],
178
+ ["\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438 \u0441\u0442\u0440\u043E\u043A\u0438 {number}", "Row {number} details", "\u041F\u043E\u0434\u0440\u043E\u0431\u0438\u0446\u0456 \u0440\u044F\u0434\u043A\u0430 {number}"],
179
+ ["\u041D\u043E\u043C\u0435\u0440 \u0441\u0442\u0440\u043E\u043A\u0438", "Row number", "\u041D\u043E\u043C\u0435\u0440 \u0440\u044F\u0434\u043A\u0430"],
180
+ ["\u041F\u043E\u0434\u0440\u043E\u0431\u043D\u043E\u0441\u0442\u0438", "Details", "\u041F\u043E\u0434\u0440\u043E\u0431\u0438\u0446\u0456"],
181
+ ["\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u044F", "Actions", "\u0414\u0456\u0457"],
182
+ ["\u041A\u043E\u043C\u043F\u0430\u043A\u0442\u043D\u044B\u0435 \u0441\u0442\u0440\u043E\u043A\u0438", "Compact rows", "\u041A\u043E\u043C\u043F\u0430\u043A\u0442\u043D\u0456 \u0440\u044F\u0434\u043A\u0438"],
183
+ ["\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0432\u043B\u0435\u0432\u043E: {title}", "Move left: {title}", "\u041F\u0435\u0440\u0435\u043C\u0456\u0441\u0442\u0438\u0442\u0438 \u043B\u0456\u0432\u043E\u0440\u0443\u0447: {title}"],
184
+ ["\u041F\u0435\u0440\u0435\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0432\u043F\u0440\u0430\u0432\u043E: {title}", "Move right: {title}", "\u041F\u0435\u0440\u0435\u043C\u0456\u0441\u0442\u0438\u0442\u0438 \u043F\u0440\u0430\u0432\u043E\u0440\u0443\u0447: {title}"],
185
+ ["\u0417\u0430\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u0441\u043B\u0435\u0432\u0430: {title}", "Pin left: {title}", "\u0417\u0430\u043A\u0440\u0456\u043F\u0438\u0442\u0438 \u043B\u0456\u0432\u043E\u0440\u0443\u0447: {title}"],
186
+ ["\u0417\u0430\u043A\u0440\u0435\u043F\u0438\u0442\u044C \u0441\u043F\u0440\u0430\u0432\u0430: {title}", "Pin right: {title}", "\u0417\u0430\u043A\u0440\u0456\u043F\u0438\u0442\u0438 \u043F\u0440\u0430\u0432\u043E\u0440\u0443\u0447: {title}"],
187
+ ["{from}\u2013{to}", "{from}\u2013{to}", "{from}\u2013{to}"],
188
+ ["\u0413\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u043E", "Group by", "\u0413\u0440\u0443\u043F\u0443\u0432\u0430\u0442\u0438 \u0437\u0430"],
189
+ ["\u0411\u0435\u0437 \u0433\u0440\u0443\u043F\u043F\u0438\u0440\u043E\u0432\u043A\u0438", "No grouping", "\u0411\u0435\u0437 \u0433\u0440\u0443\u043F\u0443\u0432\u0430\u043D\u043D\u044F"],
190
+ ["\u041F\u043E\u0438\u0441\u043A\u2026", "Search\u2026", "\u041F\u043E\u0448\u0443\u043A\u2026"],
191
+ ["\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0442\u0430\u0431\u043B\u0438\u0446\u0435", "Search the table", "\u041F\u043E\u0448\u0443\u043A \u0443 \u0442\u0430\u0431\u043B\u0438\u0446\u0456"],
192
+ ["\u0423\u0431\u0440\u0430\u0442\u044C \u0444\u0438\u043B\u044C\u0442\u0440", "Remove filter", "\u041F\u0440\u0438\u0431\u0440\u0430\u0442\u0438 \u0444\u0456\u043B\u044C\u0442\u0440"],
193
+ ["\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u0444\u0438\u043B\u044C\u0442\u0440\u044B", "Reset filters", "\u0421\u043A\u0438\u043D\u0443\u0442\u0438 \u0444\u0456\u043B\u044C\u0442\u0440\u0438"],
194
+ ["\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u0432\u0438\u0434", "Reset view", "\u0421\u043A\u0438\u043D\u0443\u0442\u0438 \u0432\u0438\u0433\u043B\u044F\u0434"],
195
+ ["\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0448\u0438\u0440\u0438\u043D\u0443: {title}", "Resize: {title}", "\u0417\u043C\u0456\u043D\u0438\u0442\u0438 \u0448\u0438\u0440\u0438\u043D\u0443: {title}"],
196
+ ["\u0421\u0442\u0440\u043E\u043A \u043D\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0435", "Rows per page", "\u0420\u044F\u0434\u043A\u0456\u0432 \u043D\u0430 \u0441\u0442\u043E\u0440\u0456\u043D\u0446\u0456"],
197
+ ["{from}\u2013{to} \u0438\u0437 {count}", "{from}\u2013{to} of {count}", "{from}\u2013{to} \u0437 {count}"],
198
+ ["\u0410\u0432\u0442\u043E", "Auto", "\u0410\u0432\u0442\u043E"],
199
+ ["\u0421\u043D\u044F\u0442\u044C \u0432\u044B\u0434\u0435\u043B\u0435\u043D\u0438\u0435", "Clear selection", "\u0417\u043D\u044F\u0442\u0438 \u0432\u0438\u0431\u0456\u0440"],
200
+ ["\u0423\u0431\u0440\u0430\u0442\u044C {value}", "Remove {value}", "\u041F\u0440\u0438\u0431\u0440\u0430\u0442\u0438 {value}"],
201
+ ["\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0432\u0441\u0435", "Select all", "\u0412\u0438\u0431\u0440\u0430\u0442\u0438 \u0432\u0441\u0435"],
202
+ ["\u0412\u044B\u0431\u0440\u0430\u043D\u043E: {count}", "Selected: {count}", "\u0412\u0438\u0431\u0440\u0430\u043D\u043E: {count}"],
203
+ ["{count} \u043D\u0430\u0439\u0434\u0435\u043D\u043E", "{count} found", "{count} \u0437\u043D\u0430\u0439\u0434\u0435\u043D\u043E"],
204
+ ["{count} \u0432\u0441\u0435\u0433\u043E", "{count} total", "{count} \u0443\u0441\u044C\u043E\u0433\u043E"],
205
+ ["\u041F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430", "Previous page", "\u041F\u043E\u043F\u0435\u0440\u0435\u0434\u043D\u044F \u0441\u0442\u043E\u0440\u0456\u043D\u043A\u0430"],
206
+ ["\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0430\u044F \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0430", "Next page", "\u041D\u0430\u0441\u0442\u0443\u043F\u043D\u0430 \u0441\u0442\u043E\u0440\u0456\u043D\u043A\u0430"],
207
+ ["\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u0435", "Confirmation", "\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043D\u043D\u044F"],
208
+ ["\u0417\u0430\u043A\u0440\u044B\u0442\u044C", "Close", "\u0417\u0430\u043A\u0440\u0438\u0442\u0438"],
209
+ ["\u041E\u0442\u043C\u0435\u043D\u0430", "Cancel", "\u0421\u043A\u0430\u0441\u0443\u0432\u0430\u0442\u0438"],
210
+ ["\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0432\u044B\u043F\u043E\u043B\u043D\u0438\u0442\u044C \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435", "The action failed", "\u041D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u0432\u0438\u043A\u043E\u043D\u0430\u0442\u0438 \u0434\u0456\u044E"],
211
+ ["\u0413\u043E\u0442\u043E\u0432\u043E", "Done", "\u0413\u043E\u0442\u043E\u0432\u043E"],
212
+ ["\u041F\u043E\u043A\u0430 \u043D\u0435\u0442 \u0437\u0430\u043F\u0438\u0441\u0435\u0439", "Nothing here yet", "\u041F\u043E\u043A\u0438 \u043D\u0435\u043C\u0430\u0454 \u0437\u0430\u043F\u0438\u0441\u0456\u0432"],
213
+ ["\u0414\u043E\u0431\u0430\u0432\u044C\u0442\u0435 \u0437\u0430\u043F\u0438\u0441\u044C, \u0447\u0442\u043E\u0431\u044B \u043D\u0430\u0447\u0430\u0442\u044C.", "Add an item to get started.", "\u0414\u043E\u0434\u0430\u0439\u0442\u0435 \u0437\u0430\u043F\u0438\u0441, \u0449\u043E\u0431 \u043F\u043E\u0447\u0430\u0442\u0438."],
214
+ ["\u0411\u0430\u0437\u0430 \u0434\u0430\u043D\u043D\u044B\u0445", "Database", "\u0411\u0430\u0437\u0430 \u0434\u0430\u043D\u0438\u0445"],
215
+ ["\u0418\u0441\u043F\u0440\u0430\u0432\u043D\u043E", "Healthy", "\u0421\u043F\u0440\u0430\u0432\u043D\u043E"],
216
+ ["\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435", "Action", "\u0414\u0456\u044F"],
217
+ ["\u0414\u043B\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0438\u0438 \u043D\u0443\u0436\u043D\u043E \u0431\u043E\u043B\u044C\u0448\u0435 \u0441\u0432\u043E\u0431\u043E\u0434\u043D\u043E\u0433\u043E \u043C\u0435\u0441\u0442\u0430.", "The operation needs more free space.", "\u0414\u043B\u044F \u043E\u043F\u0435\u0440\u0430\u0446\u0456\u0457 \u043F\u043E\u0442\u0440\u0456\u0431\u043D\u043E \u0431\u0456\u043B\u044C\u0448\u0435 \u0432\u0456\u043B\u044C\u043D\u043E\u0433\u043E \u043C\u0456\u0441\u0446\u044F."],
218
+ ["\u041F\u0440\u043E\u0433\u0440\u0435\u0441\u0441", "Progress", "\u041F\u0440\u043E\u0433\u0440\u0435\u0441"],
219
+ ["\u0421\u0438\u0433\u043D\u0430\u043B: {level} \u0438\u0437 {bars}", "Signal: {level} of {bars}", "\u0421\u0438\u0433\u043D\u0430\u043B: {level} \u0437 {bars}"],
220
+ ["\u041E\u0448\u0438\u0431\u043A\u0430", "Error", "\u041F\u043E\u043C\u0438\u043B\u043A\u0430"],
221
+ ["\u0412\u043D\u0438\u043C\u0430\u043D\u0438\u0435", "Warning", "\u0423\u0432\u0430\u0433\u0430"],
222
+ ["\u041E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430", "Processing", "\u041E\u0431\u0440\u043E\u0431\u043A\u0430"],
223
+ ["\u0412 \u043E\u0447\u0435\u0440\u0435\u0434\u0438", "Queued", "\u0423 \u0447\u0435\u0440\u0437\u0456"],
224
+ ["\u041D\u0435 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0435\u043D\u043E", "Offline", "\u041D\u0435 \u043F\u0456\u0434\u2019\u0454\u0434\u043D\u0430\u043D\u043E"],
225
+ ["\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F", "Information", "\u0406\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0456\u044F"],
226
+ ["\u041F\u043E\u0434\u0433\u043E\u0442\u043E\u0432\u043A\u0430", "Preparing", "\u041F\u0456\u0434\u0433\u043E\u0442\u043E\u0432\u043A\u0430"],
227
+ ["\u0410\u043D\u0430\u043B\u0438\u0437", "Analysis", "\u0410\u043D\u0430\u043B\u0456\u0437"],
228
+ ["\u041C\u043E\u0434\u0435\u043B\u044C", "Model", "\u041C\u043E\u0434\u0435\u043B\u044C"],
229
+ ["\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430", "Checking", "\u041F\u0435\u0440\u0435\u0432\u0456\u0440\u043A\u0430"],
230
+ ["\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u044B", "Settings saved", "\u041D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F \u0437\u0431\u0435\u0440\u0435\u0436\u0435\u043D\u043E"],
231
+ ["\u041F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044C", "User", "\u041A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447"],
232
+ ["\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043B\u0430", "Section title", "\u041D\u0430\u0437\u0432\u0430 \u0440\u043E\u0437\u0434\u0456\u043B\u0443"],
233
+ // theme editor
234
+ ["\u041E\u0441\u043D\u043E\u0432\u043D\u044B\u0435 \u0446\u0432\u0435\u0442\u0430", "Main colours", "\u041E\u0441\u043D\u043E\u0432\u043D\u0456 \u043A\u043E\u043B\u044C\u043E\u0440\u0438"],
235
+ ["\u0428\u043A\u0430\u043B\u0430 primary", "Primary scale", "\u0428\u043A\u0430\u043B\u0430 primary"],
236
+ ["\u0428\u043A\u0430\u043B\u0430 secondary", "Secondary scale", "\u0428\u043A\u0430\u043B\u0430 secondary"],
237
+ ["\u041D\u0435\u0439\u0442\u0440\u0430\u043B\u044C\u043D\u044B\u0435", "Neutrals", "\u041D\u0435\u0439\u0442\u0440\u0430\u043B\u044C\u043D\u0456"],
238
+ ["\u0422\u0435\u043A\u0441\u0442 \u0438 \u0441\u0442\u0430\u0442\u0443\u0441\u044B", "Text and statuses", "\u0422\u0435\u043A\u0441\u0442 \u0456 \u0441\u0442\u0430\u0442\u0443\u0441\u0438"],
239
+ ["\u0422\u0435\u043A\u0441\u0442", "Text", "\u0422\u0435\u043A\u0441\u0442"],
240
+ ["\u041F\u0440\u0438\u0433\u043B\u0443\u0448\u0451\u043D\u043D\u044B\u0439", "Muted", "\u041F\u0440\u0438\u0433\u043B\u0443\u0448\u0435\u043D\u0438\u0439"],
241
+ ["\u0410\u043A\u0446\u0435\u043D\u0442", "Accent", "\u0410\u043A\u0446\u0435\u043D\u0442"],
242
+ ["\u0423\u0441\u043F\u0435\u0445", "Success", "\u0423\u0441\u043F\u0456\u0445"],
243
+ ["\u0418\u043D\u0444\u043E", "Info", "\u0406\u043D\u0444\u043E"],
244
+ ["\u0424\u043E\u043A\u0443\u0441", "Focus", "\u0424\u043E\u043A\u0443\u0441"],
245
+ ["\u0424\u043E\u0440\u043C\u0430 \u0438 \u0440\u0430\u0437\u043C\u0435\u0440\u044B", "Shape and sizes", "\u0424\u043E\u0440\u043C\u0430 \u0456 \u0440\u043E\u0437\u043C\u0456\u0440\u0438"],
246
+ ["\u0421\u043A\u0440\u0443\u0433\u043B\u0435\u043D\u0438\u0435", "Radius", "\u0417\u0430\u043E\u043A\u0440\u0443\u0433\u043B\u0435\u043D\u043D\u044F"],
247
+ ["\u0421\u043A\u0440\u0443\u0433\u043B\u0435\u043D\u0438\u0435 \u043C\u0430\u043B\u043E\u0435", "Small radius", "\u041C\u0430\u043B\u0435 \u0437\u0430\u043E\u043A\u0440\u0443\u0433\u043B\u0435\u043D\u043D\u044F"],
248
+ ["\u0421\u043A\u0440\u0443\u0433\u043B\u0435\u043D\u0438\u0435 \u0431\u043E\u043B\u044C\u0448\u043E\u0435", "Large radius", "\u0412\u0435\u043B\u0438\u043A\u0435 \u0437\u0430\u043E\u043A\u0440\u0443\u0433\u043B\u0435\u043D\u043D\u044F"],
249
+ ["\u0412\u044B\u0441\u043E\u0442\u0430 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043E\u0432", "Control height", "\u0412\u0438\u0441\u043E\u0442\u0430 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u0456\u0432"],
250
+ ["\u0428\u0430\u0433 \u043E\u0442\u0441\u0442\u0443\u043F\u043E\u0432", "Spacing step", "\u041A\u0440\u043E\u043A \u0432\u0456\u0434\u0441\u0442\u0443\u043F\u0456\u0432"],
251
+ ["\u0415\u0434\u0438\u043D\u0438\u0446\u0430 \u0433\u0435\u043E\u043C\u0435\u0442\u0440\u0438\u0438", "Geometry unit", "\u041E\u0434\u0438\u043D\u0438\u0446\u044F \u0433\u0435\u043E\u043C\u0435\u0442\u0440\u0456\u0457"],
252
+ ["\u0428\u0440\u0438\u0444\u0442\u044B", "Fonts", "\u0428\u0440\u0438\u0444\u0442\u0438"],
253
+ ["\u041E\u0441\u043D\u043E\u0432\u043D\u043E\u0439", "Main", "\u041E\u0441\u043D\u043E\u0432\u043D\u0438\u0439"],
254
+ ["\u041C\u043E\u043D\u043E\u0448\u0438\u0440\u0438\u043D\u043D\u044B\u0439", "Monospace", "\u041C\u043E\u043D\u043E\u0448\u0438\u0440\u0438\u043D\u043D\u0438\u0439"],
255
+ ["\u041A\u0435\u0433\u043B\u044C", "Font size", "\u041A\u0435\u0433\u043B\u044C"],
256
+ ["\u041D\u0430\u0447\u0435\u0440\u0442\u0430\u043D\u0438\u0435 \u0438 \u0438\u043D\u0442\u0435\u0440\u043B\u0438\u043D\u044C\u044F\u0436", "Weight and line height", "\u041D\u0430\u043A\u0440\u0435\u0441\u043B\u0435\u043D\u043D\u044F \u0442\u0430 \u0456\u043D\u0442\u0435\u0440\u043B\u0456\u043D\u044C\u044F\u0436"],
257
+ ["\u041E\u0431\u044B\u0447\u043D\u044B\u0439", "Regular", "\u0417\u0432\u0438\u0447\u0430\u0439\u043D\u0438\u0439"],
258
+ ["\u0421\u0440\u0435\u0434\u043D\u0438\u0439", "Medium", "\u0421\u0435\u0440\u0435\u0434\u043D\u0456\u0439"],
259
+ ["\u041F\u043E\u043B\u0443\u0436\u0438\u0440\u043D\u044B\u0439", "Semibold", "\u041D\u0430\u043F\u0456\u0432\u0436\u0438\u0440\u043D\u0438\u0439"],
260
+ ["\u0416\u0438\u0440\u043D\u044B\u0439", "Bold", "\u0416\u0438\u0440\u043D\u0438\u0439"],
261
+ ["\u0418\u043D\u0442\u0435\u0440\u043B\u0438\u043D\u044C\u044F\u0436: \u0434\u0438\u0441\u043F\u043B\u0435\u0439", "Line height: display", "\u0406\u043D\u0442\u0435\u0440\u043B\u0456\u043D\u044C\u044F\u0436: \u0434\u0438\u0441\u043F\u043B\u0435\u0439"],
262
+ ["\u0418\u043D\u0442\u0435\u0440\u043B\u0438\u043D\u044C\u044F\u0436: \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0438", "Line height: headings", "\u0406\u043D\u0442\u0435\u0440\u043B\u0456\u043D\u044C\u044F\u0436: \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0438"],
263
+ ["\u0418\u043D\u0442\u0435\u0440\u043B\u0438\u043D\u044C\u044F\u0436: \u0442\u0435\u043A\u0441\u0442", "Line height: text", "\u0406\u043D\u0442\u0435\u0440\u043B\u0456\u043D\u044C\u044F\u0436: \u0442\u0435\u043A\u0441\u0442"],
264
+ ["\u0422\u0440\u0435\u043A\u0438\u043D\u0433 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u043E\u0432", "Heading tracking", "\u0422\u0440\u0435\u043A\u0456\u043D\u0433 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0456\u0432"],
265
+ ["\u0422\u0440\u0435\u043A\u0438\u043D\u0433 \u043D\u0430\u0434\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u043E\u0432", "Eyebrow tracking", "\u0422\u0440\u0435\u043A\u0456\u043D\u0433 \u043D\u0430\u0434\u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043A\u0456\u0432"],
266
+ ["\u0410\u043D\u0438\u043C\u0430\u0446\u0438\u044F", "Motion", "\u0410\u043D\u0456\u043C\u0430\u0446\u0456\u044F"],
267
+ ["\u0411\u044B\u0441\u0442\u0440\u043E", "Fast", "\u0428\u0432\u0438\u0434\u043A\u043E"],
268
+ ["\u041E\u0431\u044B\u0447\u043D\u043E", "Normal", "\u0417\u0432\u0438\u0447\u0430\u0439\u043D\u043E"],
269
+ ["\u041C\u0435\u0434\u043B\u0435\u043D\u043D\u043E", "Slow", "\u041F\u043E\u0432\u0456\u043B\u044C\u043D\u043E"],
270
+ ["\u041A\u0440\u0438\u0432\u0430\u044F", "Curve", "\u041A\u0440\u0438\u0432\u0430"],
271
+ ["\u041F\u0440\u0443\u0436\u0438\u043D\u0430", "Spring", "\u041F\u0440\u0443\u0436\u0438\u043D\u0430"],
272
+ ["\u042D\u0442\u043E \u043D\u0435 JSON: \u043F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0444\u0430\u0439\u043B \u0438\u043B\u0438 \u0432\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u043D\u044B\u0439 \u0442\u0435\u043A\u0441\u0442.", "This is not JSON: check the file or the pasted text.", "\u0426\u0435 \u043D\u0435 JSON: \u043F\u0435\u0440\u0435\u0432\u0456\u0440\u0442\u0435 \u0444\u0430\u0439\u043B \u0430\u0431\u043E \u0432\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u0439 \u0442\u0435\u043A\u0441\u0442."],
273
+ ["\u0412 \u0444\u0430\u0439\u043B\u0435 \u043D\u0435\u0442 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043A \u0442\u0435\u043C\u044B.", "The file holds no theme settings.", "\u0423 \u0444\u0430\u0439\u043B\u0456 \u043D\u0435\u043C\u0430\u0454 \u043D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u044C \u0442\u0435\u043C\u0438."],
274
+ ["\u042D\u0442\u043E \u0444\u0430\u0439\u043B \u043D\u0435 \u0442\u0435\u043C\u044B NEO UI.", "This is not a NEO UI theme file.", "\u0426\u0435 \u043D\u0435 \u0444\u0430\u0439\u043B \u0442\u0435\u043C\u0438 NEO UI."],
275
+ ["\u0412\u0435\u0440\u0441\u0438\u044F \u0442\u0435\u043C\u044B {version} \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F.", "Theme version {version} is not supported.", "\u0412\u0435\u0440\u0441\u0456\u044F \u0442\u0435\u043C\u0438 {version} \u043D\u0435 \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u0454\u0442\u044C\u0441\u044F."],
276
+ ["\u0442\u043E\u043A\u0435\u043D", "token", "\u0442\u043E\u043A\u0435\u043D"],
277
+ ["\u0442\u043E\u043A\u0435\u043D\u0430", "tokens", "\u0442\u043E\u043A\u0435\u043D\u0438"],
278
+ ["\u0442\u043E\u043A\u0435\u043D\u043E\u0432", "tokens", "\u0442\u043E\u043A\u0435\u043D\u0456\u0432"],
279
+ ["\u0422\u0435\u043C\u0430 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043D\u0430.", "Theme loaded.", "\u0422\u0435\u043C\u0443 \u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043E."],
280
+ ["\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u0442\u0435\u043C\u0443.", "Could not read the theme.", "\u041D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u0438 \u0442\u0435\u043C\u0443."],
281
+ ["\u041F\u0440\u043E\u0441\u0442\u043E\u0439", "Simple", "\u041F\u0440\u043E\u0441\u0442\u0438\u0439"],
282
+ ["\u041F\u0440\u043E\u0434\u0432\u0438\u043D\u0443\u0442\u044B\u0439", "Advanced", "\u0420\u043E\u0437\u0448\u0438\u0440\u0435\u043D\u0438\u0439"],
283
+ ["\u042D\u043A\u0441\u043F\u043E\u0440\u0442", "Export", "\u0415\u043A\u0441\u043F\u043E\u0440\u0442"],
284
+ ["\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C JSON \u0442\u0435\u043C\u044B", "Copy theme JSON", "\u0421\u043A\u043E\u043F\u0456\u044E\u0432\u0430\u0442\u0438 JSON \u0442\u0435\u043C\u0438"],
285
+ ["JSON \u0442\u0435\u043C\u044B \u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D.", "Theme JSON copied.", "JSON \u0442\u0435\u043C\u0438 \u0441\u043A\u043E\u043F\u0456\u0439\u043E\u0432\u0430\u043D\u043E."],
286
+ ["\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C.", "Could not copy.", "\u041D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u0441\u043A\u043E\u043F\u0456\u044E\u0432\u0430\u0442\u0438."],
287
+ ["\u0418\u043C\u043F\u043E\u0440\u0442", "Import", "\u0406\u043C\u043F\u043E\u0440\u0442"],
288
+ ["\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C JSON \u0442\u0435\u043C\u044B", "Paste theme JSON", "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 JSON \u0442\u0435\u043C\u0438"],
289
+ ["\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u0442\u0435\u043C\u0443", "Reset theme", "\u0421\u043A\u0438\u043D\u0443\u0442\u0438 \u0442\u0435\u043C\u0443"],
290
+ ["\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u0442\u0435\u043C\u0443", "Paste a theme", "\u0412\u0441\u0442\u0430\u0432\u0438\u0442\u0438 \u0442\u0435\u043C\u0443"],
291
+ ["JSON \u0442\u0435\u043C\u044B", "Theme JSON", "JSON \u0442\u0435\u043C\u0438"],
292
+ ["\u041F\u0440\u0438\u043C\u0435\u043D\u0438\u0442\u044C", "Apply", "\u0417\u0430\u0441\u0442\u043E\u0441\u0443\u0432\u0430\u0442\u0438"],
293
+ ["\u0413\u043E\u0442\u043E\u0432\u0430\u044F \u0442\u0435\u043C\u0430", "Ready-made theme", "\u0413\u043E\u0442\u043E\u0432\u0430 \u0442\u0435\u043C\u0430"],
294
+ ["\u041E\u0441\u043D\u043E\u0432\u043D\u043E\u0439 \u0446\u0432\u0435\u0442", "Main colour", "\u041E\u0441\u043D\u043E\u0432\u043D\u0438\u0439 \u043A\u043E\u043B\u0456\u0440"],
295
+ ["\u041F\u043E\u043C\u0435\u043D\u044F\u0442\u044C \u0446\u0432\u0435\u0442\u0430 \u043C\u0435\u0441\u0442\u0430\u043C\u0438", "Swap colours", "\u041F\u043E\u043C\u0456\u043D\u044F\u0442\u0438 \u043A\u043E\u043B\u044C\u043E\u0440\u0438 \u043C\u0456\u0441\u0446\u044F\u043C\u0438"],
296
+ ["\u0412\u0442\u043E\u0440\u043E\u0439 \u0446\u0432\u0435\u0442", "Second colour", "\u0414\u0440\u0443\u0433\u0438\u0439 \u043A\u043E\u043B\u0456\u0440"],
297
+ ["\u0420\u0430\u0441\u0441\u0447\u0438\u0442\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u0438\u0437 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0433\u043E", "Calculated from the main one", "\u0420\u043E\u0437\u0440\u0430\u0445\u043E\u0432\u0443\u0454\u0442\u044C\u0441\u044F \u0437 \u043E\u0441\u043D\u043E\u0432\u043D\u043E\u0433\u043E"],
298
+ ["\u0412\u0442\u043E\u0440\u043E\u0439 \u0446\u0432\u0435\u0442 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044B\u0432\u0430\u0442\u044C \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438", "Calculate the second colour", "\u0420\u043E\u0437\u0440\u0430\u0445\u043E\u0432\u0443\u0432\u0430\u0442\u0438 \u0434\u0440\u0443\u0433\u0438\u0439 \u043A\u043E\u043B\u0456\u0440 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u043D\u043E"],
299
+ ["\u041F\u0430\u043B\u0438\u0442\u0440\u0430, \u043F\u043E\u0441\u0442\u0440\u043E\u0435\u043D\u043D\u0430\u044F \u0438\u0437 \u044D\u0442\u0438\u0445 \u0446\u0432\u0435\u0442\u043E\u0432:", "The palette built from these colours:", "\u041F\u0430\u043B\u0456\u0442\u0440\u0430, \u043F\u043E\u0431\u0443\u0434\u043E\u0432\u0430\u043D\u0430 \u0437 \u0446\u0438\u0445 \u043A\u043E\u043B\u044C\u043E\u0440\u0456\u0432:"],
300
+ ["\u041D\u0430\u0439\u0442\u0438 \u0442\u043E\u043A\u0435\u043D\u2026", "Find a token\u2026", "\u0417\u043D\u0430\u0439\u0442\u0438 \u0442\u043E\u043A\u0435\u043D\u2026"],
301
+ ["\u041D\u0430\u0439\u0442\u0438 \u0442\u043E\u043A\u0435\u043D", "Find a token", "\u0417\u043D\u0430\u0439\u0442\u0438 \u0442\u043E\u043A\u0435\u043D"],
302
+ ["\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u043E: {count}", "Changed: {count}", "\u0417\u043C\u0456\u043D\u0435\u043D\u043E: {count}"],
303
+ ["\u0412\u0441\u0451 \u0438\u0437 \u0442\u0435\u043C\u044B", "All from the theme", "\u0423\u0441\u0435 \u0437 \u0442\u0435\u043C\u0438"],
304
+ ["\u0438\u0437\u043C\u0435\u043D\u0435\u043D\u043E: {own} \u0438\u0437 {total}", "changed: {own} of {total}", "\u0437\u043C\u0456\u043D\u0435\u043D\u043E: {own} \u0437 {total}"],
305
+ ["\u0412\u0435\u0440\u043D\u0443\u0442\u044C {name}", "Reset {name}", "\u041F\u043E\u0432\u0435\u0440\u043D\u0443\u0442\u0438 {name}"],
306
+ ["\u041F\u0440\u0438\u043C\u0435\u0440 \u0442\u0435\u043C\u044B", "Theme sample", "\u041F\u0440\u0438\u043A\u043B\u0430\u0434 \u0442\u0435\u043C\u0438"],
307
+ ["\u041F\u0440\u0438\u043C\u0435\u0440", "Sample", "\u041F\u0440\u0438\u043A\u043B\u0430\u0434"],
308
+ ["\u0422\u0430\u043A \u0432\u044B\u0433\u043B\u044F\u0434\u0438\u0442 \u0442\u0435\u043C\u0430", "This is how the theme looks", "\u0422\u0430\u043A \u0432\u0438\u0433\u043B\u044F\u0434\u0430\u0454 \u0442\u0435\u043C\u0430"],
309
+ ["\u0418\u0433\u0440\u0430\u0442\u044C", "Play", "\u0413\u0440\u0430\u0442\u0438"],
310
+ ["\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438", "Settings", "\u041D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F"],
311
+ // loader generator
312
+ ["\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u043A\u0430\u0440\u0442\u0438\u043D\u043A\u0443", "Upload a picture", "\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0442\u0435 \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F"],
313
+ ["PNG, SVG \u0438\u043B\u0438 WebP \u0441 \u043F\u0440\u043E\u0437\u0440\u0430\u0447\u043D\u043E\u0441\u0442\u044C\u044E \u2014 \u043B\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u043E", "PNG, SVG or WebP with transparency work best", "PNG, SVG \u0430\u0431\u043E WebP \u0437 \u043F\u0440\u043E\u0437\u043E\u0440\u0456\u0441\u0442\u044E \u2014 \u043D\u0430\u0439\u043A\u0440\u0430\u0449\u0435"],
314
+ ["\u041F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044E\u0442\u0441\u044F PNG, JPEG, SVG \u0438 WebP", "PNG, JPEG, SVG and WebP are supported", "\u041F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u044E\u0442\u044C\u0441\u044F PNG, JPEG, SVG \u0456 WebP"],
315
+ ["\u0423\u0431\u0440\u0430\u0442\u044C \u0444\u043E\u043D", "Remove background", "\u041F\u0440\u0438\u0431\u0440\u0430\u0442\u0438 \u0444\u043E\u043D"],
316
+ ["\u0423\u0431\u0438\u0440\u0430\u0435\u043C \u0444\u043E\u043D\u2026", "Removing background\u2026", "\u041F\u0440\u0438\u0431\u0438\u0440\u0430\u0454\u043C\u043E \u0444\u043E\u043D\u2026"],
317
+ ["\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u044C \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435.", "The image could not be read.", "\u041D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u0442\u0438 \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F."],
318
+ ["\u041E\u0431\u0440\u0430\u0431\u043E\u0442\u043A\u0430 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0439 \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0430 \u0432 \u044D\u0442\u043E\u043C \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435.", "Image processing is unavailable in this browser.", "\u041E\u0431\u0440\u043E\u0431\u043A\u0430 \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u044C \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u0430 \u0432 \u0446\u044C\u043E\u043C\u0443 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0456."],
319
+ ["\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435.", "The image could not be processed.", "\u041D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u043E\u0431\u0440\u043E\u0431\u0438\u0442\u0438 \u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u043D\u044F."],
320
+ ["\u0410\u043D\u0438\u043C\u0430\u0446\u0438\u044F", "Motion", "\u0410\u043D\u0456\u043C\u0430\u0446\u0456\u044F"],
321
+ ["\u0420\u0430\u0437\u043C\u0435\u0440", "Size", "\u0420\u043E\u0437\u043C\u0456\u0440"],
322
+ ["\u0421\u043A\u043E\u0440\u043E\u0441\u0442\u044C", "Speed", "\u0428\u0432\u0438\u0434\u043A\u0456\u0441\u0442\u044C"],
323
+ ["\u0426\u0432\u0435\u0442", "Colour", "\u041A\u043E\u043B\u0456\u0440"],
324
+ ["\u0426\u0432\u0435\u0442 \u044D\u0444\u0444\u0435\u043A\u0442\u043E\u0432", "Effect colour", "\u041A\u043E\u043B\u0456\u0440 \u0435\u0444\u0435\u043A\u0442\u0456\u0432"],
325
+ ["\u041A\u043E\u0434 \u043B\u043E\u0430\u0434\u0435\u0440\u0430", "Loader code", "\u041A\u043E\u0434 \u043B\u043E\u0430\u0434\u0435\u0440\u0430"],
326
+ ["\u0421\u043A\u0430\u0447\u0430\u0442\u044C HTML", "Download HTML", "\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0438\u0442\u0438 HTML"],
327
+ ["\u0412\u0440\u0430\u0449\u0435\u043D\u0438\u0435", "Spin", "\u041E\u0431\u0435\u0440\u0442\u0430\u043D\u043D\u044F"],
328
+ ["\u041F\u0443\u043B\u044C\u0441", "Pulse", "\u041F\u0443\u043B\u044C\u0441"],
329
+ ["\u0414\u044B\u0445\u0430\u043D\u0438\u0435", "Breathe", "\u0414\u0438\u0445\u0430\u043D\u043D\u044F"],
330
+ ["\u041E\u0442\u0441\u043A\u043E\u043A", "Bounce", "\u0412\u0456\u0434\u0441\u043A\u043E\u043A"],
331
+ ["\u041F\u0435\u0440\u0435\u0432\u043E\u0440\u043E\u0442", "Flip", "\u041F\u0435\u0440\u0435\u0432\u043E\u0440\u043E\u0442"],
332
+ ["\u041E\u0440\u0431\u0438\u0442\u0430", "Orbit", "\u041E\u0440\u0431\u0456\u0442\u0430"],
333
+ ["\u0412\u043E\u043B\u043D\u0430", "Wave", "\u0425\u0432\u0438\u043B\u044F"],
334
+ ["\u0421\u0432\u0435\u0447\u0435\u043D\u0438\u0435", "Glow", "\u0421\u0432\u0456\u0442\u0456\u043D\u043D\u044F"],
335
+ ["\u0417\u0430\u043B\u0438\u0432\u043A\u0430", "Fill", "\u0417\u0430\u043F\u043E\u0432\u043D\u0435\u043D\u043D\u044F"],
336
+ ["\u0411\u043B\u0438\u043A", "Shine", "\u0412\u0456\u0434\u0431\u043B\u0438\u0441\u043A"],
337
+ ["\u041F\u043E\u043A\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u0435", "Wobble", "\u041F\u043E\u0433\u043E\u0439\u0434\u0443\u0432\u0430\u043D\u043D\u044F"],
338
+ ["\u0420\u0430\u0434\u0430\u0440", "Radar", "\u0420\u0430\u0434\u0430\u0440"],
339
+ ["\u041F\u0435\u0440\u0435\u043B\u0438\u0432", "Colour flow", "\u041F\u0435\u0440\u0435\u043B\u0438\u0432"],
340
+ ["\u0421\u043A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u043D\u043E", "Copied", "\u0421\u043A\u043E\u043F\u0456\u0439\u043E\u0432\u0430\u043D\u043E"],
341
+ ["\u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C", "Copy", "\u041A\u043E\u043F\u0456\u044E\u0432\u0430\u0442\u0438"]
342
+ ];
343
+ var messages = { en: {}, uk: {} };
344
+ for (const [ru, en, uk] of rows) {
345
+ messages.en[ru] = en;
346
+ messages.uk[ru] = uk;
347
+ }
348
+
349
+ // src/core/i18n.tsx
350
+ import { createContext, useCallback as useCallback2, useContext, useMemo } from "react";
351
+ import { jsx } from "react/jsx-runtime";
352
+ var current = "ru";
353
+ var extra = /* @__PURE__ */ Object.create(null);
354
+ var fill = (text, vars) => vars ? text.replace(/\{(\w+)\}/g, (all, name) => Object.hasOwn(vars, name) ? String(vars[name]) : all) : text;
355
+ function tr(text, vars) {
356
+ return translate(current, text, vars);
357
+ }
358
+ function translate(locale, text, vars, messages2) {
359
+ const dictionaries = [messages2, extra[locale], Object.hasOwn(messages, locale) ? messages[locale] : void 0];
360
+ const known = dictionaries.find((dictionary) => dictionary && Object.hasOwn(dictionary, text))?.[text];
361
+ return fill(known ?? text, vars);
362
+ }
363
+ function setLocale(locale) {
364
+ current = locale;
365
+ }
366
+ function getLocale() {
367
+ return current;
368
+ }
369
+ function addMessages(locale, messages2) {
370
+ extra[locale] = { ...extra[locale], ...messages2 };
371
+ }
372
+ function plural(n, one, few, many, locale = current) {
373
+ const mod10 = n % 10, mod100 = n % 100;
374
+ if (locale === "en") return n === 1 ? one : many;
375
+ if (mod10 === 1 && mod100 !== 11) return one;
376
+ if (mod10 >= 2 && mod10 <= 4 && (mod100 < 12 || mod100 > 14)) return few;
377
+ return many;
378
+ }
379
+ var LocaleContext = createContext(null);
380
+ function LocaleProvider({ locale, messages: messages2, children }) {
381
+ const value = useMemo(() => ({ locale, messages: messages2 }), [locale, messages2]);
382
+ return /* @__PURE__ */ jsx(LocaleContext.Provider, { value, children });
383
+ }
384
+ function useLocale() {
385
+ return useContext(LocaleContext)?.locale ?? current;
386
+ }
387
+ function useTr() {
388
+ const context = useContext(LocaleContext);
389
+ const locale = context?.locale ?? current;
390
+ const messages2 = context?.messages;
391
+ return useCallback2((text, vars) => translate(locale, text, vars, messages2), [locale, messages2]);
392
+ }
393
+
394
+ export {
395
+ classes,
396
+ normalizeSize,
397
+ mark,
398
+ part,
399
+ useControllable,
400
+ assignRef,
401
+ clamp,
402
+ cssRem,
403
+ timeText,
404
+ copyText,
405
+ downloadFile,
406
+ ripple,
407
+ messages,
408
+ tr,
409
+ translate,
410
+ setLocale,
411
+ getLocale,
412
+ addMessages,
413
+ plural,
414
+ LocaleProvider,
415
+ useLocale,
416
+ useTr
417
+ };
@@ -0,0 +1,63 @@
1
+ // src/core/environment.ts
2
+ var inert = { observe() {
3
+ }, unobserve() {
4
+ }, disconnect() {
5
+ } };
6
+ var createResizeObserver = (callback) => typeof ResizeObserver === "undefined" ? inert : new ResizeObserver(callback);
7
+ var canObserveIntersection = () => typeof IntersectionObserver !== "undefined";
8
+ var reducedMotionQuery = () => typeof matchMedia === "function" ? matchMedia("(prefers-reduced-motion: reduce)") : {
9
+ matches: false,
10
+ addEventListener() {
11
+ },
12
+ removeEventListener() {
13
+ }
14
+ };
15
+ var canPaint = () => typeof CanvasRenderingContext2D !== "undefined";
16
+
17
+ // src/core/providers/context.ts
18
+ import { useSyncExternalStore } from "react";
19
+ var subscribers = /* @__PURE__ */ new Set();
20
+ var media;
21
+ var observer;
22
+ var notify = () => subscribers.forEach((subscriber) => subscriber());
23
+ var subscribe = (subscriber) => {
24
+ subscribers.add(subscriber);
25
+ if (subscribers.size === 1) {
26
+ media = reducedMotionQuery();
27
+ media.addEventListener("change", notify);
28
+ if (typeof document !== "undefined" && typeof MutationObserver !== "undefined") {
29
+ observer = new MutationObserver(notify);
30
+ observer.observe(document.documentElement, { attributes: true, attributeFilter: ["data-ad-motion"] });
31
+ }
32
+ }
33
+ return () => {
34
+ subscribers.delete(subscriber);
35
+ if (subscribers.size === 0) {
36
+ media?.removeEventListener("change", notify);
37
+ observer?.disconnect();
38
+ media = void 0;
39
+ observer = void 0;
40
+ }
41
+ };
42
+ };
43
+ var reducedMotion = () => media?.matches ?? reducedMotionQuery().matches;
44
+ function useReducedMotion() {
45
+ return useSyncExternalStore(subscribe, reducedMotion, () => false);
46
+ }
47
+ function motionEnabled() {
48
+ const setting = typeof document === "undefined" ? void 0 : document.documentElement.dataset.adMotion;
49
+ return setting === "on" || setting !== "off" && !reducedMotion();
50
+ }
51
+ function useMotion() {
52
+ return useSyncExternalStore(subscribe, motionEnabled, () => true);
53
+ }
54
+
55
+ export {
56
+ createResizeObserver,
57
+ canObserveIntersection,
58
+ reducedMotionQuery,
59
+ canPaint,
60
+ useReducedMotion,
61
+ motionEnabled,
62
+ useMotion
63
+ };
@@ -0,0 +1,87 @@
1
+ import {
2
+ classes,
3
+ mark
4
+ } from "./chunk-BJSFN52W.js";
5
+
6
+ // src/components/foundation/ThemeProvider/ThemeProvider.tsx
7
+ import { createContext, useContext, useMemo } from "react";
8
+ import { jsx } from "react/jsx-runtime";
9
+ var themes = {
10
+ ruby: ["#ff244c", "#ff7c97"],
11
+ light: ["#e0a43a", "#f3d38f"],
12
+ green: ["#10c99a", "#7cf3d0"],
13
+ violet: ["#9b5cff", "#d3a8ff"]
14
+ };
15
+ var ThemeColorSchemeContext = createContext("dark");
16
+ var ThemePaletteContext = createContext({
17
+ theme: "ruby",
18
+ primary: themes.ruby[0],
19
+ secondary: themes.ruby[1]
20
+ });
21
+ var useThemePalette = () => useContext(ThemePaletteContext);
22
+ var emptyTokens = {};
23
+ function hue(hex) {
24
+ const [r, g, b] = [1, 3, 5].map(
25
+ (i) => parseInt(hex.slice(i, i + 2), 16) / 255
26
+ );
27
+ const max = Math.max(r, g, b);
28
+ const delta = max - Math.min(r, g, b);
29
+ if (!delta) return 0;
30
+ let h = (r - g) / delta + 4;
31
+ if (max === r) h = (g - b) / delta % 6;
32
+ else if (max === g) h = (b - r) / delta + 2;
33
+ return (h * 60 + 360) % 360;
34
+ }
35
+ var ThemeProvider = ({
36
+ theme,
37
+ colorScheme,
38
+ primary,
39
+ secondary,
40
+ accent,
41
+ tokens = emptyTokens,
42
+ style,
43
+ children,
44
+ id,
45
+ className,
46
+ ...attributes
47
+ }) => {
48
+ const inheritedScheme = useContext(ThemeColorSchemeContext);
49
+ const inheritedPalette = useThemePalette();
50
+ const scheme = colorScheme ?? inheritedScheme;
51
+ const selected = theme ?? inheritedPalette.theme;
52
+ const main = primary ?? accent ?? (theme ? themes[theme][0] : inheritedPalette.primary);
53
+ const light = secondary ?? (theme ? themes[theme][1] : inheritedPalette.secondary);
54
+ const vars = useMemo(() => {
55
+ const next = { ...style };
56
+ if (theme !== void 0 || primary !== void 0 || accent !== void 0) next["--ad-primary"] = main;
57
+ if (theme !== void 0 || secondary !== void 0) next["--ad-secondary"] = light;
58
+ for (const [key, value] of Object.entries(tokens))
59
+ next[key.startsWith("--") ? key : `--ad-${key}`] = value;
60
+ const effectivePrimary2 = next["--ad-primary"];
61
+ if (typeof effectivePrimary2 === "string" && /^#[0-9a-f]{6}$/i.test(effectivePrimary2) && next["--ad-hue-shift"] === void 0)
62
+ next["--ad-hue-shift"] = `${Math.round(hue(effectivePrimary2) - hue(themes.ruby[0]))}deg`;
63
+ return next;
64
+ }, [style, main, light, primary, secondary, accent, theme, tokens]);
65
+ const effectivePrimary = String(vars["--ad-primary"] ?? main);
66
+ const effectiveSecondary = String(vars["--ad-secondary"] ?? light);
67
+ const palette = useMemo(() => ({ theme: selected, primary: effectivePrimary, secondary: effectiveSecondary }), [selected, effectivePrimary, effectiveSecondary]);
68
+ return /* @__PURE__ */ jsx(ThemeColorSchemeContext.Provider, { value: scheme, children: /* @__PURE__ */ jsx(ThemePaletteContext.Provider, { value: palette, children: /* @__PURE__ */ jsx(
69
+ "div",
70
+ {
71
+ ...mark("ThemeProvider", attributes),
72
+ id,
73
+ className: classes("ad-theme", className),
74
+ style: vars,
75
+ "data-ad-component": "ThemeProvider",
76
+ "data-ad-theme": selected,
77
+ "data-ad-color-scheme": scheme,
78
+ children
79
+ }
80
+ ) }) });
81
+ };
82
+
83
+ export {
84
+ themes,
85
+ useThemePalette,
86
+ ThemeProvider
87
+ };