@remotion/studio 4.0.522 → 4.0.523

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 (220) hide show
  1. package/dist/api/install-package.js +4 -2
  2. package/dist/components/AssetAudioVolume.d.ts +5 -0
  3. package/dist/components/AssetAudioVolume.js +33 -0
  4. package/dist/components/Canvas.js +5 -6
  5. package/dist/components/CaptionInspector.js +74 -20
  6. package/dist/components/CheckboardToggle.js +8 -6
  7. package/dist/components/Checkbox.d.ts +1 -0
  8. package/dist/components/Checkbox.js +2 -2
  9. package/dist/components/CompositionContextButton.js +4 -1
  10. package/dist/components/CompositionSelectorItem.js +2 -2
  11. package/dist/components/ConfigureLicenseModal.js +1 -1
  12. package/dist/components/CurrentAsset.js +40 -6
  13. package/dist/components/EditorContexts.js +3 -1
  14. package/dist/components/ElementInstallConfirmation.js +287 -135
  15. package/dist/components/FixComputedValueModal.js +38 -8
  16. package/dist/components/FullscreenToggle.js +9 -8
  17. package/dist/components/GlobalKeybindings.js +50 -49
  18. package/dist/components/HighlightedElementSource.d.ts +5 -0
  19. package/dist/components/HighlightedElementSource.js +78 -0
  20. package/dist/components/InspectorPanel/MultiSequenceField.d.ts +12 -0
  21. package/dist/components/InspectorPanel/MultiSequenceField.js +131 -0
  22. package/dist/components/InspectorPanel/MultiSequenceInspector.d.ts +8 -0
  23. package/dist/components/InspectorPanel/MultiSequenceInspector.js +102 -0
  24. package/dist/components/InspectorPanel/MultiSequenceNumberField.d.ts +9 -0
  25. package/dist/components/InspectorPanel/MultiSequenceNumberField.js +88 -0
  26. package/dist/components/InspectorPanel.js +4 -0
  27. package/dist/components/InspectorSequenceSection.js +64 -1
  28. package/dist/components/InstallPackage.js +4 -5
  29. package/dist/components/KeyboardShortcutsSettings.js +212 -33
  30. package/dist/components/MenuToolbar.js +7 -5
  31. package/dist/components/ModalContainer.d.ts +1 -0
  32. package/dist/components/ModalContainer.js +2 -2
  33. package/dist/components/Modals.js +3 -1
  34. package/dist/components/ModelManager.d.ts +16 -0
  35. package/dist/components/ModelManager.js +200 -0
  36. package/dist/components/ModelsSettings.d.ts +2 -0
  37. package/dist/components/ModelsSettings.js +133 -0
  38. package/dist/components/NewComposition/DismissableModal.d.ts +1 -0
  39. package/dist/components/NewComposition/DismissableModal.js +2 -2
  40. package/dist/components/NewComposition/InputDragger.d.ts +2 -2
  41. package/dist/components/NewComposition/InputDragger.js +6 -6
  42. package/dist/components/NewComposition/NewFolder.js +11 -8
  43. package/dist/components/NewComposition/RenameFolder.js +17 -10
  44. package/dist/components/OptionalPackageModal.d.ts +11 -0
  45. package/dist/components/OptionalPackageModal.js +155 -0
  46. package/dist/components/PlayPause.js +4 -8
  47. package/dist/components/PlaybackKeyboardShortcutsManager.js +3 -6
  48. package/dist/components/PreviewToolbarOverflowButton.js +11 -2
  49. package/dist/components/QuickSwitcher/ExplorerQuickSwitcherTrigger.js +5 -2
  50. package/dist/components/RadioButton.d.ts +1 -0
  51. package/dist/components/RadioButton.js +2 -2
  52. package/dist/components/RenderButton.js +5 -1
  53. package/dist/components/RenderModal/NumberSetting.d.ts +6 -1
  54. package/dist/components/RenderModal/NumberSetting.js +2 -2
  55. package/dist/components/RenderModal/RenderModalBasic.js +1 -1
  56. package/dist/components/RenderModal/RenderModalOutputName.d.ts +3 -1
  57. package/dist/components/RenderModal/RenderModalOutputName.js +4 -4
  58. package/dist/components/RenderModal/SeparateAudioOption.js +1 -1
  59. package/dist/components/RenderModal/WebRenderModalBasic.js +1 -1
  60. package/dist/components/RenderQueue/CaptionQueueItem.d.ts +6 -0
  61. package/dist/components/RenderQueue/CaptionQueueItem.js +129 -0
  62. package/dist/components/RenderQueue/CaptionQueueProcessor.d.ts +1 -0
  63. package/dist/components/RenderQueue/CaptionQueueProcessor.js +110 -0
  64. package/dist/components/RenderQueue/CaptionQueueProcessorLoader.d.ts +2 -0
  65. package/dist/components/RenderQueue/CaptionQueueProcessorLoader.js +54 -0
  66. package/dist/components/RenderQueue/RenderQueueItem.js +3 -3
  67. package/dist/components/RenderQueue/VideoMattingQueueItem.d.ts +6 -0
  68. package/dist/components/RenderQueue/VideoMattingQueueItem.js +129 -0
  69. package/dist/components/RenderQueue/VideoMattingQueueProcessor.d.ts +1 -0
  70. package/dist/components/RenderQueue/VideoMattingQueueProcessor.js +105 -0
  71. package/dist/components/RenderQueue/VideoMattingQueueProcessorLoader.d.ts +2 -0
  72. package/dist/components/RenderQueue/VideoMattingQueueProcessorLoader.js +54 -0
  73. package/dist/components/RenderQueue/caption-job-types.d.ts +47 -0
  74. package/dist/components/RenderQueue/caption-job-types.js +7 -0
  75. package/dist/components/RenderQueue/context.d.ts +16 -0
  76. package/dist/components/RenderQueue/context.js +224 -11
  77. package/dist/components/RenderQueue/index.js +34 -10
  78. package/dist/components/RenderQueue/item-style.d.ts +1 -0
  79. package/dist/components/RenderQueue/item-style.js +2 -1
  80. package/dist/components/RenderQueue/load-model-for-job.d.ts +11 -0
  81. package/dist/components/RenderQueue/load-model-for-job.js +14 -0
  82. package/dist/components/RenderQueue/video-matting-job-types.d.ts +38 -0
  83. package/dist/components/RenderQueue/video-matting-job-types.js +5 -0
  84. package/dist/components/RendersTab.js +4 -4
  85. package/dist/components/SegmentedControl.d.ts +2 -2
  86. package/dist/components/SegmentedControl.js +38 -13
  87. package/dist/components/SelectedOutlinePolygon.js +8 -2
  88. package/dist/components/SettingsButton.d.ts +4 -0
  89. package/dist/components/SettingsButton.js +49 -0
  90. package/dist/components/SettingsModal.d.ts +1 -1
  91. package/dist/components/SettingsModal.js +3 -1
  92. package/dist/components/ShowOutlinesProvider.js +12 -0
  93. package/dist/components/SidebarCollapserControls.js +10 -11
  94. package/dist/components/SizeSelector.js +10 -2
  95. package/dist/components/SkillsSettings.js +2 -3
  96. package/dist/components/SnappingToggle.js +5 -2
  97. package/dist/components/Tabs/vertical.d.ts +1 -0
  98. package/dist/components/Tabs/vertical.js +2 -2
  99. package/dist/components/TimeValue.js +2 -3
  100. package/dist/components/Timeline/SequencePropsObserver.js +4 -0
  101. package/dist/components/Timeline/Timeline.js +2 -42
  102. package/dist/components/Timeline/TimelineClipboardKeybindings.js +2 -4
  103. package/dist/components/Timeline/TimelineDeleteKeybindings.js +3 -18
  104. package/dist/components/Timeline/TimelineDragHandler.js +2 -2
  105. package/dist/components/Timeline/TimelineExpandedKeyframeRow.js +1 -0
  106. package/dist/components/Timeline/TimelineRowChrome.js +11 -3
  107. package/dist/components/Timeline/TimelineSchemaField.js +8 -4
  108. package/dist/components/Timeline/TimelineSelection.d.ts +2 -0
  109. package/dist/components/Timeline/TimelineSelection.js +55 -2
  110. package/dist/components/Timeline/TimelineSequence.js +75 -17
  111. package/dist/components/Timeline/TimelineSequenceItem.d.ts +0 -1
  112. package/dist/components/Timeline/TimelineSequenceItem.js +208 -111
  113. package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.d.ts +23 -3
  114. package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.js +73 -25
  115. package/dist/components/Timeline/TimelineTimeIndicators.js +1 -0
  116. package/dist/components/Timeline/use-asset-timeline-context-menu.d.ts +2 -0
  117. package/dist/components/Timeline/use-asset-timeline-context-menu.js +52 -0
  118. package/dist/components/TimelineInOutToggle.js +20 -17
  119. package/dist/components/Transcription/LazyModels.d.ts +1 -0
  120. package/dist/components/Transcription/LazyModels.js +5 -0
  121. package/dist/components/Transcription/Models.d.ts +6 -0
  122. package/dist/components/Transcription/Models.js +18 -0
  123. package/dist/components/Transcription/TranscriptionModal.d.ts +3 -0
  124. package/dist/components/Transcription/TranscriptionModal.js +428 -0
  125. package/dist/components/Transcription/TranscriptionModalWithOptionalWhisper.d.ts +5 -0
  126. package/dist/components/Transcription/TranscriptionModalWithOptionalWhisper.js +48 -0
  127. package/dist/components/Transcription/caption-output-name.d.ts +2 -0
  128. package/dist/components/Transcription/caption-output-name.js +10 -0
  129. package/dist/components/Transcription/resample-media-to-16-khz.d.ts +6 -0
  130. package/dist/components/Transcription/resample-media-to-16-khz.js +82 -0
  131. package/dist/components/Transcription/whisper-languages.d.ts +2 -0
  132. package/dist/components/Transcription/whisper-languages.js +104 -0
  133. package/dist/components/Transcription/whisper-webgpu-capability.d.ts +2 -0
  134. package/dist/components/Transcription/whisper-webgpu-capability.js +7 -0
  135. package/dist/components/UndoRedoButtons.js +13 -38
  136. package/dist/components/UpdatesSettings.js +8 -12
  137. package/dist/components/VideoMatting/LazyModels.d.ts +1 -0
  138. package/dist/components/VideoMatting/LazyModels.js +5 -0
  139. package/dist/components/VideoMatting/Models.d.ts +6 -0
  140. package/dist/components/VideoMatting/Models.js +18 -0
  141. package/dist/components/VideoMatting/VideoMattingModal.d.ts +3 -0
  142. package/dist/components/VideoMatting/VideoMattingModal.js +207 -0
  143. package/dist/components/VideoMatting/VideoMattingModalWithOptionalPackage.d.ts +5 -0
  144. package/dist/components/VideoMatting/VideoMattingModalWithOptionalPackage.js +46 -0
  145. package/dist/components/VideoMatting/video-matting-capability.d.ts +2 -0
  146. package/dist/components/VideoMatting/video-matting-capability.js +7 -0
  147. package/dist/components/WebMcp.js +439 -22
  148. package/dist/components/import-assets.d.ts +3 -2
  149. package/dist/components/import-assets.js +5 -9
  150. package/dist/components/keyboard-shortcuts.d.ts +17 -1
  151. package/dist/components/keyboard-shortcuts.js +177 -89
  152. package/dist/components/public-output-name.d.ts +5 -0
  153. package/dist/components/public-output-name.js +60 -0
  154. package/dist/components/use-model-cache-status.d.ts +7 -0
  155. package/dist/components/use-model-cache-status.js +35 -0
  156. package/dist/esm/CaptionQueueProcessor-k0yrm3dj.mjs +211 -0
  157. package/dist/esm/HighlightedElementSource-jfc66k4p.mjs +1236 -0
  158. package/dist/esm/LazyModels-2trdm224.mjs +11 -0
  159. package/dist/esm/LazyModels-fjb5ckaq.mjs +11 -0
  160. package/dist/esm/TranscriptionModal-916jqhry.mjs +1011 -0
  161. package/dist/esm/VideoMattingModal-2tm79s9b.mjs +374 -0
  162. package/dist/esm/VideoMattingQueueProcessor-t1hgm2rm.mjs +109 -0
  163. package/dist/esm/index-1x7bsdh6.mjs +261 -0
  164. package/dist/esm/index-3hgr6gjx.mjs +41 -0
  165. package/dist/esm/index-5qddp5h7.mjs +36 -0
  166. package/dist/esm/index-5zrb1ft4.mjs +39 -0
  167. package/dist/esm/index-6cvm9a65.mjs +45923 -0
  168. package/dist/esm/index-7tt71e8n.mjs +36 -0
  169. package/dist/esm/index-9x6e1dq0.mjs +428 -0
  170. package/dist/esm/index-cw0pnpg5.mjs +50 -0
  171. package/dist/esm/index-czwvnn9g.mjs +35 -0
  172. package/dist/esm/index-hy4xcgty.mjs +1366 -0
  173. package/dist/esm/{chunk-je0h1bgt.js → index-jg13hf2g.mjs} +3 -1
  174. package/dist/esm/{chunk-6jf1natv.js → index-rcv7qkt5.mjs} +18 -1
  175. package/dist/esm/index-sgtmgc4h.mjs +423 -0
  176. package/dist/esm/index-te66vvrp.mjs +142 -0
  177. package/dist/esm/index-v4tr1bft.mjs +20 -0
  178. package/dist/esm/index-x7t2y7ws.mjs +54194 -0
  179. package/dist/esm/index-xhe2m2qr.mjs +1146 -0
  180. package/dist/esm/index.mjs +45 -933
  181. package/dist/esm/internals.mjs +13 -114393
  182. package/dist/esm/previewEntry.mjs +387 -115050
  183. package/dist/esm/renderEntry.mjs +3 -3
  184. package/dist/esm/{chunk-m0jqdbkr.js → resolve-composition-component-location-14148845.mjs} +1 -1
  185. package/dist/helpers/drag-aware-double-click.d.ts +2 -1
  186. package/dist/helpers/drag-aware-double-click.js +12 -1
  187. package/dist/helpers/get-asset-metadata.d.ts +1 -0
  188. package/dist/helpers/get-asset-metadata.js +4 -0
  189. package/dist/helpers/hoverable.js +8 -0
  190. package/dist/helpers/inject-css.js +2 -0
  191. package/dist/helpers/optional-package-dependencies.d.ts +3 -0
  192. package/dist/helpers/optional-package-dependencies.js +24 -0
  193. package/dist/helpers/pointer-session.d.ts +6 -0
  194. package/dist/helpers/pointer-session.js +36 -14
  195. package/dist/helpers/prism-tomorrow.d.ts +1 -0
  196. package/dist/helpers/prism-tomorrow.js +151 -0
  197. package/dist/helpers/sequence-node-path-mutations.js +11 -0
  198. package/dist/helpers/slugify-name.d.ts +1 -0
  199. package/dist/helpers/slugify-name.js +14 -0
  200. package/dist/helpers/studio-runtime-config.d.ts +1 -0
  201. package/dist/helpers/studio-runtime-config.js +6 -1
  202. package/dist/helpers/use-keybinding.d.ts +9 -3
  203. package/dist/helpers/use-keybinding.js +8 -9
  204. package/dist/helpers/use-keyboard-shortcut-label.d.ts +2 -0
  205. package/dist/helpers/use-keyboard-shortcut-label.js +15 -0
  206. package/dist/helpers/use-menu-structure.js +58 -13
  207. package/dist/icons/input-props.d.ts +1 -1
  208. package/dist/icons/input-props.js +2 -2
  209. package/dist/icons/models.d.ts +4 -0
  210. package/dist/icons/models.js +7 -0
  211. package/dist/icons/separation.d.ts +4 -0
  212. package/dist/icons/separation.js +7 -0
  213. package/dist/icons/transcription.d.ts +4 -0
  214. package/dist/icons/transcription.js +7 -0
  215. package/dist/icons/upload.js +1 -1
  216. package/dist/state/modals.d.ts +14 -2
  217. package/package.json +34 -20
  218. package/dist/components/UpdateCheck.d.ts +0 -1
  219. package/dist/components/UpdateCheck.js +0 -79
  220. package/dist/esm/chunk-3netyjd9.js +0 -99793
@@ -0,0 +1,1236 @@
1
+ import {
2
+ __commonJS,
3
+ __esm,
4
+ __toCommonJS,
5
+ __toESM
6
+ } from "./index-rcv7qkt5.mjs";
7
+
8
+ // ../../node_modules/.bun/prismjs@1.30.0/node_modules/prismjs/prism.js
9
+ var require_prism = __commonJS((exports, module) => {
10
+ var _self = typeof window !== "undefined" ? window : typeof WorkerGlobalScope !== "undefined" && self instanceof WorkerGlobalScope ? self : {};
11
+ var Prism2 = function(_self2) {
12
+ var lang = /(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i;
13
+ var uniqueId = 0;
14
+ var plainTextGrammar = {};
15
+ var _ = {
16
+ manual: _self2.Prism && _self2.Prism.manual,
17
+ disableWorkerMessageHandler: _self2.Prism && _self2.Prism.disableWorkerMessageHandler,
18
+ util: {
19
+ encode: function encode(tokens) {
20
+ if (tokens instanceof Token) {
21
+ return new Token(tokens.type, encode(tokens.content), tokens.alias);
22
+ } else if (Array.isArray(tokens)) {
23
+ return tokens.map(encode);
24
+ } else {
25
+ return tokens.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/\u00a0/g, " ");
26
+ }
27
+ },
28
+ type: function(o) {
29
+ return Object.prototype.toString.call(o).slice(8, -1);
30
+ },
31
+ objId: function(obj) {
32
+ if (!obj["__id"]) {
33
+ Object.defineProperty(obj, "__id", { value: ++uniqueId });
34
+ }
35
+ return obj["__id"];
36
+ },
37
+ clone: function deepClone(o, visited) {
38
+ visited = visited || {};
39
+ var clone;
40
+ var id;
41
+ switch (_.util.type(o)) {
42
+ case "Object":
43
+ id = _.util.objId(o);
44
+ if (visited[id]) {
45
+ return visited[id];
46
+ }
47
+ clone = {};
48
+ visited[id] = clone;
49
+ for (var key in o) {
50
+ if (o.hasOwnProperty(key)) {
51
+ clone[key] = deepClone(o[key], visited);
52
+ }
53
+ }
54
+ return clone;
55
+ case "Array":
56
+ id = _.util.objId(o);
57
+ if (visited[id]) {
58
+ return visited[id];
59
+ }
60
+ clone = [];
61
+ visited[id] = clone;
62
+ o.forEach(function(v, i) {
63
+ clone[i] = deepClone(v, visited);
64
+ });
65
+ return clone;
66
+ default:
67
+ return o;
68
+ }
69
+ },
70
+ getLanguage: function(element) {
71
+ while (element) {
72
+ var m = lang.exec(element.className);
73
+ if (m) {
74
+ return m[1].toLowerCase();
75
+ }
76
+ element = element.parentElement;
77
+ }
78
+ return "none";
79
+ },
80
+ setLanguage: function(element, language) {
81
+ element.className = element.className.replace(RegExp(lang, "gi"), "");
82
+ element.classList.add("language-" + language);
83
+ },
84
+ currentScript: function() {
85
+ if (typeof document === "undefined") {
86
+ return null;
87
+ }
88
+ if (document.currentScript && document.currentScript.tagName === "SCRIPT" && 1 < 2) {
89
+ return document.currentScript;
90
+ }
91
+ try {
92
+ throw new Error;
93
+ } catch (err) {
94
+ var src = (/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(err.stack) || [])[1];
95
+ if (src) {
96
+ var scripts = document.getElementsByTagName("script");
97
+ for (var i in scripts) {
98
+ if (scripts[i].src == src) {
99
+ return scripts[i];
100
+ }
101
+ }
102
+ }
103
+ return null;
104
+ }
105
+ },
106
+ isActive: function(element, className, defaultActivation) {
107
+ var no = "no-" + className;
108
+ while (element) {
109
+ var classList = element.classList;
110
+ if (classList.contains(className)) {
111
+ return true;
112
+ }
113
+ if (classList.contains(no)) {
114
+ return false;
115
+ }
116
+ element = element.parentElement;
117
+ }
118
+ return !!defaultActivation;
119
+ }
120
+ },
121
+ languages: {
122
+ plain: plainTextGrammar,
123
+ plaintext: plainTextGrammar,
124
+ text: plainTextGrammar,
125
+ txt: plainTextGrammar,
126
+ extend: function(id, redef) {
127
+ var lang2 = _.util.clone(_.languages[id]);
128
+ for (var key in redef) {
129
+ lang2[key] = redef[key];
130
+ }
131
+ return lang2;
132
+ },
133
+ insertBefore: function(inside, before, insert, root) {
134
+ root = root || _.languages;
135
+ var grammar = root[inside];
136
+ var ret = {};
137
+ for (var token in grammar) {
138
+ if (grammar.hasOwnProperty(token)) {
139
+ if (token == before) {
140
+ for (var newToken in insert) {
141
+ if (insert.hasOwnProperty(newToken)) {
142
+ ret[newToken] = insert[newToken];
143
+ }
144
+ }
145
+ }
146
+ if (!insert.hasOwnProperty(token)) {
147
+ ret[token] = grammar[token];
148
+ }
149
+ }
150
+ }
151
+ var old = root[inside];
152
+ root[inside] = ret;
153
+ _.languages.DFS(_.languages, function(key, value) {
154
+ if (value === old && key != inside) {
155
+ this[key] = ret;
156
+ }
157
+ });
158
+ return ret;
159
+ },
160
+ DFS: function DFS(o, callback, type, visited) {
161
+ visited = visited || {};
162
+ var objId = _.util.objId;
163
+ for (var i in o) {
164
+ if (o.hasOwnProperty(i)) {
165
+ callback.call(o, i, o[i], type || i);
166
+ var property = o[i];
167
+ var propertyType = _.util.type(property);
168
+ if (propertyType === "Object" && !visited[objId(property)]) {
169
+ visited[objId(property)] = true;
170
+ DFS(property, callback, null, visited);
171
+ } else if (propertyType === "Array" && !visited[objId(property)]) {
172
+ visited[objId(property)] = true;
173
+ DFS(property, callback, i, visited);
174
+ }
175
+ }
176
+ }
177
+ }
178
+ },
179
+ plugins: {},
180
+ highlightAll: function(async, callback) {
181
+ _.highlightAllUnder(document, async, callback);
182
+ },
183
+ highlightAllUnder: function(container, async, callback) {
184
+ var env = {
185
+ callback,
186
+ container,
187
+ selector: 'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'
188
+ };
189
+ _.hooks.run("before-highlightall", env);
190
+ env.elements = Array.prototype.slice.apply(env.container.querySelectorAll(env.selector));
191
+ _.hooks.run("before-all-elements-highlight", env);
192
+ for (var i = 0, element;element = env.elements[i++]; ) {
193
+ _.highlightElement(element, async === true, env.callback);
194
+ }
195
+ },
196
+ highlightElement: function(element, async, callback) {
197
+ var language = _.util.getLanguage(element);
198
+ var grammar = _.languages[language];
199
+ _.util.setLanguage(element, language);
200
+ var parent = element.parentElement;
201
+ if (parent && parent.nodeName.toLowerCase() === "pre") {
202
+ _.util.setLanguage(parent, language);
203
+ }
204
+ var code = element.textContent;
205
+ var env = {
206
+ element,
207
+ language,
208
+ grammar,
209
+ code
210
+ };
211
+ function insertHighlightedCode(highlightedCode) {
212
+ env.highlightedCode = highlightedCode;
213
+ _.hooks.run("before-insert", env);
214
+ env.element.innerHTML = env.highlightedCode;
215
+ _.hooks.run("after-highlight", env);
216
+ _.hooks.run("complete", env);
217
+ callback && callback.call(env.element);
218
+ }
219
+ _.hooks.run("before-sanity-check", env);
220
+ parent = env.element.parentElement;
221
+ if (parent && parent.nodeName.toLowerCase() === "pre" && !parent.hasAttribute("tabindex")) {
222
+ parent.setAttribute("tabindex", "0");
223
+ }
224
+ if (!env.code) {
225
+ _.hooks.run("complete", env);
226
+ callback && callback.call(env.element);
227
+ return;
228
+ }
229
+ _.hooks.run("before-highlight", env);
230
+ if (!env.grammar) {
231
+ insertHighlightedCode(_.util.encode(env.code));
232
+ return;
233
+ }
234
+ if (async && _self2.Worker) {
235
+ var worker = new Worker(_.filename);
236
+ worker.onmessage = function(evt) {
237
+ insertHighlightedCode(evt.data);
238
+ };
239
+ worker.postMessage(JSON.stringify({
240
+ language: env.language,
241
+ code: env.code,
242
+ immediateClose: true
243
+ }));
244
+ } else {
245
+ insertHighlightedCode(_.highlight(env.code, env.grammar, env.language));
246
+ }
247
+ },
248
+ highlight: function(text, grammar, language) {
249
+ var env = {
250
+ code: text,
251
+ grammar,
252
+ language
253
+ };
254
+ _.hooks.run("before-tokenize", env);
255
+ if (!env.grammar) {
256
+ throw new Error('The language "' + env.language + '" has no grammar.');
257
+ }
258
+ env.tokens = _.tokenize(env.code, env.grammar);
259
+ _.hooks.run("after-tokenize", env);
260
+ return Token.stringify(_.util.encode(env.tokens), env.language);
261
+ },
262
+ tokenize: function(text, grammar) {
263
+ var rest = grammar.rest;
264
+ if (rest) {
265
+ for (var token in rest) {
266
+ grammar[token] = rest[token];
267
+ }
268
+ delete grammar.rest;
269
+ }
270
+ var tokenList = new LinkedList;
271
+ addAfter(tokenList, tokenList.head, text);
272
+ matchGrammar(text, tokenList, grammar, tokenList.head, 0);
273
+ return toArray(tokenList);
274
+ },
275
+ hooks: {
276
+ all: {},
277
+ add: function(name, callback) {
278
+ var hooks = _.hooks.all;
279
+ hooks[name] = hooks[name] || [];
280
+ hooks[name].push(callback);
281
+ },
282
+ run: function(name, env) {
283
+ var callbacks = _.hooks.all[name];
284
+ if (!callbacks || !callbacks.length) {
285
+ return;
286
+ }
287
+ for (var i = 0, callback;callback = callbacks[i++]; ) {
288
+ callback(env);
289
+ }
290
+ }
291
+ },
292
+ Token
293
+ };
294
+ _self2.Prism = _;
295
+ function Token(type, content, alias, matchedStr) {
296
+ this.type = type;
297
+ this.content = content;
298
+ this.alias = alias;
299
+ this.length = (matchedStr || "").length | 0;
300
+ }
301
+ Token.stringify = function stringify(o, language) {
302
+ if (typeof o == "string") {
303
+ return o;
304
+ }
305
+ if (Array.isArray(o)) {
306
+ var s = "";
307
+ o.forEach(function(e) {
308
+ s += stringify(e, language);
309
+ });
310
+ return s;
311
+ }
312
+ var env = {
313
+ type: o.type,
314
+ content: stringify(o.content, language),
315
+ tag: "span",
316
+ classes: ["token", o.type],
317
+ attributes: {},
318
+ language
319
+ };
320
+ var aliases = o.alias;
321
+ if (aliases) {
322
+ if (Array.isArray(aliases)) {
323
+ Array.prototype.push.apply(env.classes, aliases);
324
+ } else {
325
+ env.classes.push(aliases);
326
+ }
327
+ }
328
+ _.hooks.run("wrap", env);
329
+ var attributes = "";
330
+ for (var name in env.attributes) {
331
+ attributes += " " + name + '="' + (env.attributes[name] || "").replace(/"/g, "&quot;") + '"';
332
+ }
333
+ return "<" + env.tag + ' class="' + env.classes.join(" ") + '"' + attributes + ">" + env.content + "</" + env.tag + ">";
334
+ };
335
+ function matchPattern(pattern, pos, text, lookbehind) {
336
+ pattern.lastIndex = pos;
337
+ var match = pattern.exec(text);
338
+ if (match && lookbehind && match[1]) {
339
+ var lookbehindLength = match[1].length;
340
+ match.index += lookbehindLength;
341
+ match[0] = match[0].slice(lookbehindLength);
342
+ }
343
+ return match;
344
+ }
345
+ function matchGrammar(text, tokenList, grammar, startNode, startPos, rematch) {
346
+ for (var token in grammar) {
347
+ if (!grammar.hasOwnProperty(token) || !grammar[token]) {
348
+ continue;
349
+ }
350
+ var patterns = grammar[token];
351
+ patterns = Array.isArray(patterns) ? patterns : [patterns];
352
+ for (var j = 0;j < patterns.length; ++j) {
353
+ if (rematch && rematch.cause == token + "," + j) {
354
+ return;
355
+ }
356
+ var patternObj = patterns[j];
357
+ var inside = patternObj.inside;
358
+ var lookbehind = !!patternObj.lookbehind;
359
+ var greedy = !!patternObj.greedy;
360
+ var alias = patternObj.alias;
361
+ if (greedy && !patternObj.pattern.global) {
362
+ var flags = patternObj.pattern.toString().match(/[imsuy]*$/)[0];
363
+ patternObj.pattern = RegExp(patternObj.pattern.source, flags + "g");
364
+ }
365
+ var pattern = patternObj.pattern || patternObj;
366
+ for (var currentNode = startNode.next, pos = startPos;currentNode !== tokenList.tail; pos += currentNode.value.length, currentNode = currentNode.next) {
367
+ if (rematch && pos >= rematch.reach) {
368
+ break;
369
+ }
370
+ var str = currentNode.value;
371
+ if (tokenList.length > text.length) {
372
+ return;
373
+ }
374
+ if (str instanceof Token) {
375
+ continue;
376
+ }
377
+ var removeCount = 1;
378
+ var match;
379
+ if (greedy) {
380
+ match = matchPattern(pattern, pos, text, lookbehind);
381
+ if (!match || match.index >= text.length) {
382
+ break;
383
+ }
384
+ var from = match.index;
385
+ var to = match.index + match[0].length;
386
+ var p = pos;
387
+ p += currentNode.value.length;
388
+ while (from >= p) {
389
+ currentNode = currentNode.next;
390
+ p += currentNode.value.length;
391
+ }
392
+ p -= currentNode.value.length;
393
+ pos = p;
394
+ if (currentNode.value instanceof Token) {
395
+ continue;
396
+ }
397
+ for (var k = currentNode;k !== tokenList.tail && (p < to || typeof k.value === "string"); k = k.next) {
398
+ removeCount++;
399
+ p += k.value.length;
400
+ }
401
+ removeCount--;
402
+ str = text.slice(pos, p);
403
+ match.index -= pos;
404
+ } else {
405
+ match = matchPattern(pattern, 0, str, lookbehind);
406
+ if (!match) {
407
+ continue;
408
+ }
409
+ }
410
+ var from = match.index;
411
+ var matchStr = match[0];
412
+ var before = str.slice(0, from);
413
+ var after = str.slice(from + matchStr.length);
414
+ var reach = pos + str.length;
415
+ if (rematch && reach > rematch.reach) {
416
+ rematch.reach = reach;
417
+ }
418
+ var removeFrom = currentNode.prev;
419
+ if (before) {
420
+ removeFrom = addAfter(tokenList, removeFrom, before);
421
+ pos += before.length;
422
+ }
423
+ removeRange(tokenList, removeFrom, removeCount);
424
+ var wrapped = new Token(token, inside ? _.tokenize(matchStr, inside) : matchStr, alias, matchStr);
425
+ currentNode = addAfter(tokenList, removeFrom, wrapped);
426
+ if (after) {
427
+ addAfter(tokenList, currentNode, after);
428
+ }
429
+ if (removeCount > 1) {
430
+ var nestedRematch = {
431
+ cause: token + "," + j,
432
+ reach
433
+ };
434
+ matchGrammar(text, tokenList, grammar, currentNode.prev, pos, nestedRematch);
435
+ if (rematch && nestedRematch.reach > rematch.reach) {
436
+ rematch.reach = nestedRematch.reach;
437
+ }
438
+ }
439
+ }
440
+ }
441
+ }
442
+ }
443
+ function LinkedList() {
444
+ var head = { value: null, prev: null, next: null };
445
+ var tail = { value: null, prev: head, next: null };
446
+ head.next = tail;
447
+ this.head = head;
448
+ this.tail = tail;
449
+ this.length = 0;
450
+ }
451
+ function addAfter(list, node, value) {
452
+ var next = node.next;
453
+ var newNode = { value, prev: node, next };
454
+ node.next = newNode;
455
+ next.prev = newNode;
456
+ list.length++;
457
+ return newNode;
458
+ }
459
+ function removeRange(list, node, count) {
460
+ var next = node.next;
461
+ for (var i = 0;i < count && next !== list.tail; i++) {
462
+ next = next.next;
463
+ }
464
+ node.next = next;
465
+ next.prev = node;
466
+ list.length -= i;
467
+ }
468
+ function toArray(list) {
469
+ var array = [];
470
+ var node = list.head.next;
471
+ while (node !== list.tail) {
472
+ array.push(node.value);
473
+ node = node.next;
474
+ }
475
+ return array;
476
+ }
477
+ if (!_self2.document) {
478
+ if (!_self2.addEventListener) {
479
+ return _;
480
+ }
481
+ if (!_.disableWorkerMessageHandler) {
482
+ _self2.addEventListener("message", function(evt) {
483
+ var message = JSON.parse(evt.data);
484
+ var lang2 = message.language;
485
+ var code = message.code;
486
+ var immediateClose = message.immediateClose;
487
+ _self2.postMessage(_.highlight(code, _.languages[lang2], lang2));
488
+ if (immediateClose) {
489
+ _self2.close();
490
+ }
491
+ }, false);
492
+ }
493
+ return _;
494
+ }
495
+ var script = _.util.currentScript();
496
+ if (script) {
497
+ _.filename = script.src;
498
+ if (script.hasAttribute("data-manual")) {
499
+ _.manual = true;
500
+ }
501
+ }
502
+ function highlightAutomaticallyCallback() {
503
+ if (!_.manual) {
504
+ _.highlightAll();
505
+ }
506
+ }
507
+ if (!_.manual) {
508
+ var readyState = document.readyState;
509
+ if (readyState === "loading" || readyState === "interactive" && script && script.defer) {
510
+ document.addEventListener("DOMContentLoaded", highlightAutomaticallyCallback);
511
+ } else {
512
+ if (window.requestAnimationFrame) {
513
+ window.requestAnimationFrame(highlightAutomaticallyCallback);
514
+ } else {
515
+ window.setTimeout(highlightAutomaticallyCallback, 16);
516
+ }
517
+ }
518
+ }
519
+ return _;
520
+ }(_self);
521
+ if (typeof module !== "undefined" && module.exports) {
522
+ module.exports = Prism2;
523
+ }
524
+ if (typeof global !== "undefined") {
525
+ global.Prism = Prism2;
526
+ }
527
+ Prism2.languages.markup = {
528
+ comment: {
529
+ pattern: /<!--(?:(?!<!--)[\s\S])*?-->/,
530
+ greedy: true
531
+ },
532
+ prolog: {
533
+ pattern: /<\?[\s\S]+?\?>/,
534
+ greedy: true
535
+ },
536
+ doctype: {
537
+ pattern: /<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,
538
+ greedy: true,
539
+ inside: {
540
+ "internal-subset": {
541
+ pattern: /(^[^\[]*\[)[\s\S]+(?=\]>$)/,
542
+ lookbehind: true,
543
+ greedy: true,
544
+ inside: null
545
+ },
546
+ string: {
547
+ pattern: /"[^"]*"|'[^']*'/,
548
+ greedy: true
549
+ },
550
+ punctuation: /^<!|>$|[[\]]/,
551
+ "doctype-tag": /^DOCTYPE/i,
552
+ name: /[^\s<>'"]+/
553
+ }
554
+ },
555
+ cdata: {
556
+ pattern: /<!\[CDATA\[[\s\S]*?\]\]>/i,
557
+ greedy: true
558
+ },
559
+ tag: {
560
+ pattern: /<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,
561
+ greedy: true,
562
+ inside: {
563
+ tag: {
564
+ pattern: /^<\/?[^\s>\/]+/,
565
+ inside: {
566
+ punctuation: /^<\/?/,
567
+ namespace: /^[^\s>\/:]+:/
568
+ }
569
+ },
570
+ "special-attr": [],
571
+ "attr-value": {
572
+ pattern: /=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,
573
+ inside: {
574
+ punctuation: [
575
+ {
576
+ pattern: /^=/,
577
+ alias: "attr-equals"
578
+ },
579
+ {
580
+ pattern: /^(\s*)["']|["']$/,
581
+ lookbehind: true
582
+ }
583
+ ]
584
+ }
585
+ },
586
+ punctuation: /\/?>/,
587
+ "attr-name": {
588
+ pattern: /[^\s>\/]+/,
589
+ inside: {
590
+ namespace: /^[^\s>\/:]+:/
591
+ }
592
+ }
593
+ }
594
+ },
595
+ entity: [
596
+ {
597
+ pattern: /&[\da-z]{1,8};/i,
598
+ alias: "named-entity"
599
+ },
600
+ /&#x?[\da-f]{1,8};/i
601
+ ]
602
+ };
603
+ Prism2.languages.markup["tag"].inside["attr-value"].inside["entity"] = Prism2.languages.markup["entity"];
604
+ Prism2.languages.markup["doctype"].inside["internal-subset"].inside = Prism2.languages.markup;
605
+ Prism2.hooks.add("wrap", function(env) {
606
+ if (env.type === "entity") {
607
+ env.attributes["title"] = env.content.replace(/&amp;/, "&");
608
+ }
609
+ });
610
+ Object.defineProperty(Prism2.languages.markup.tag, "addInlined", {
611
+ value: function addInlined(tagName, lang) {
612
+ var includedCdataInside = {};
613
+ includedCdataInside["language-" + lang] = {
614
+ pattern: /(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,
615
+ lookbehind: true,
616
+ inside: Prism2.languages[lang]
617
+ };
618
+ includedCdataInside["cdata"] = /^<!\[CDATA\[|\]\]>$/i;
619
+ var inside = {
620
+ "included-cdata": {
621
+ pattern: /<!\[CDATA\[[\s\S]*?\]\]>/i,
622
+ inside: includedCdataInside
623
+ }
624
+ };
625
+ inside["language-" + lang] = {
626
+ pattern: /[\s\S]+/,
627
+ inside: Prism2.languages[lang]
628
+ };
629
+ var def = {};
630
+ def[tagName] = {
631
+ pattern: RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g, function() {
632
+ return tagName;
633
+ }), "i"),
634
+ lookbehind: true,
635
+ greedy: true,
636
+ inside
637
+ };
638
+ Prism2.languages.insertBefore("markup", "cdata", def);
639
+ }
640
+ });
641
+ Object.defineProperty(Prism2.languages.markup.tag, "addAttribute", {
642
+ value: function(attrName, lang) {
643
+ Prism2.languages.markup.tag.inside["special-attr"].push({
644
+ pattern: RegExp(/(^|["'\s])/.source + "(?:" + attrName + ")" + /\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source, "i"),
645
+ lookbehind: true,
646
+ inside: {
647
+ "attr-name": /^[^\s=]+/,
648
+ "attr-value": {
649
+ pattern: /=[\s\S]+/,
650
+ inside: {
651
+ value: {
652
+ pattern: /(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,
653
+ lookbehind: true,
654
+ alias: [lang, "language-" + lang],
655
+ inside: Prism2.languages[lang]
656
+ },
657
+ punctuation: [
658
+ {
659
+ pattern: /^=/,
660
+ alias: "attr-equals"
661
+ },
662
+ /"|'/
663
+ ]
664
+ }
665
+ }
666
+ }
667
+ });
668
+ }
669
+ });
670
+ Prism2.languages.html = Prism2.languages.markup;
671
+ Prism2.languages.mathml = Prism2.languages.markup;
672
+ Prism2.languages.svg = Prism2.languages.markup;
673
+ Prism2.languages.xml = Prism2.languages.extend("markup", {});
674
+ Prism2.languages.ssml = Prism2.languages.xml;
675
+ Prism2.languages.atom = Prism2.languages.xml;
676
+ Prism2.languages.rss = Prism2.languages.xml;
677
+ (function(Prism3) {
678
+ var string = /(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;
679
+ Prism3.languages.css = {
680
+ comment: /\/\*[\s\S]*?\*\//,
681
+ atrule: {
682
+ pattern: RegExp("@[\\w-](?:" + /[^;{\s"']|\s+(?!\s)/.source + "|" + string.source + ")*?" + /(?:;|(?=\s*\{))/.source),
683
+ inside: {
684
+ rule: /^@[\w-]+/,
685
+ "selector-function-argument": {
686
+ pattern: /(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,
687
+ lookbehind: true,
688
+ alias: "selector"
689
+ },
690
+ keyword: {
691
+ pattern: /(^|[^\w-])(?:and|not|only|or)(?![\w-])/,
692
+ lookbehind: true
693
+ }
694
+ }
695
+ },
696
+ url: {
697
+ pattern: RegExp("\\burl\\((?:" + string.source + "|" + /(?:[^\\\r\n()"']|\\[\s\S])*/.source + ")\\)", "i"),
698
+ greedy: true,
699
+ inside: {
700
+ function: /^url/i,
701
+ punctuation: /^\(|\)$/,
702
+ string: {
703
+ pattern: RegExp("^" + string.source + "$"),
704
+ alias: "url"
705
+ }
706
+ }
707
+ },
708
+ selector: {
709
+ pattern: RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|` + string.source + ")*(?=\\s*\\{)"),
710
+ lookbehind: true
711
+ },
712
+ string: {
713
+ pattern: string,
714
+ greedy: true
715
+ },
716
+ property: {
717
+ pattern: /(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,
718
+ lookbehind: true
719
+ },
720
+ important: /!important\b/i,
721
+ function: {
722
+ pattern: /(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,
723
+ lookbehind: true
724
+ },
725
+ punctuation: /[(){};:,]/
726
+ };
727
+ Prism3.languages.css["atrule"].inside.rest = Prism3.languages.css;
728
+ var markup = Prism3.languages.markup;
729
+ if (markup) {
730
+ markup.tag.addInlined("style", "css");
731
+ markup.tag.addAttribute("style", "css");
732
+ }
733
+ })(Prism2);
734
+ Prism2.languages.clike = {
735
+ comment: [
736
+ {
737
+ pattern: /(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,
738
+ lookbehind: true,
739
+ greedy: true
740
+ },
741
+ {
742
+ pattern: /(^|[^\\:])\/\/.*/,
743
+ lookbehind: true,
744
+ greedy: true
745
+ }
746
+ ],
747
+ string: {
748
+ pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
749
+ greedy: true
750
+ },
751
+ "class-name": {
752
+ pattern: /(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,
753
+ lookbehind: true,
754
+ inside: {
755
+ punctuation: /[.\\]/
756
+ }
757
+ },
758
+ keyword: /\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,
759
+ boolean: /\b(?:false|true)\b/,
760
+ function: /\b\w+(?=\()/,
761
+ number: /\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,
762
+ operator: /[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,
763
+ punctuation: /[{}[\];(),.:]/
764
+ };
765
+ Prism2.languages.javascript = Prism2.languages.extend("clike", {
766
+ "class-name": [
767
+ Prism2.languages.clike["class-name"],
768
+ {
769
+ pattern: /(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,
770
+ lookbehind: true
771
+ }
772
+ ],
773
+ keyword: [
774
+ {
775
+ pattern: /((?:^|\})\s*)catch\b/,
776
+ lookbehind: true
777
+ },
778
+ {
779
+ pattern: /(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,
780
+ lookbehind: true
781
+ }
782
+ ],
783
+ function: /#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,
784
+ number: {
785
+ pattern: RegExp(/(^|[^\w$])/.source + "(?:" + (/NaN|Infinity/.source + "|" + /0[bB][01]+(?:_[01]+)*n?/.source + "|" + /0[oO][0-7]+(?:_[0-7]+)*n?/.source + "|" + /0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source + "|" + /\d+(?:_\d+)*n/.source + "|" + /(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source) + ")" + /(?![\w$])/.source),
786
+ lookbehind: true
787
+ },
788
+ operator: /--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/
789
+ });
790
+ Prism2.languages.javascript["class-name"][0].pattern = /(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/;
791
+ Prism2.languages.insertBefore("javascript", "keyword", {
792
+ regex: {
793
+ pattern: RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source + /\//.source + "(?:" + /(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source + "|" + /(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source + ")" + /(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),
794
+ lookbehind: true,
795
+ greedy: true,
796
+ inside: {
797
+ "regex-source": {
798
+ pattern: /^(\/)[\s\S]+(?=\/[a-z]*$)/,
799
+ lookbehind: true,
800
+ alias: "language-regex",
801
+ inside: Prism2.languages.regex
802
+ },
803
+ "regex-delimiter": /^\/|\/$/,
804
+ "regex-flags": /^[a-z]+$/
805
+ }
806
+ },
807
+ "function-variable": {
808
+ pattern: /#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,
809
+ alias: "function"
810
+ },
811
+ parameter: [
812
+ {
813
+ pattern: /(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,
814
+ lookbehind: true,
815
+ inside: Prism2.languages.javascript
816
+ },
817
+ {
818
+ pattern: /(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,
819
+ lookbehind: true,
820
+ inside: Prism2.languages.javascript
821
+ },
822
+ {
823
+ pattern: /(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,
824
+ lookbehind: true,
825
+ inside: Prism2.languages.javascript
826
+ },
827
+ {
828
+ pattern: /((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,
829
+ lookbehind: true,
830
+ inside: Prism2.languages.javascript
831
+ }
832
+ ],
833
+ constant: /\b[A-Z](?:[A-Z_]|\dx?)*\b/
834
+ });
835
+ Prism2.languages.insertBefore("javascript", "string", {
836
+ hashbang: {
837
+ pattern: /^#!.*/,
838
+ greedy: true,
839
+ alias: "comment"
840
+ },
841
+ "template-string": {
842
+ pattern: /`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,
843
+ greedy: true,
844
+ inside: {
845
+ "template-punctuation": {
846
+ pattern: /^`|`$/,
847
+ alias: "string"
848
+ },
849
+ interpolation: {
850
+ pattern: /((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,
851
+ lookbehind: true,
852
+ inside: {
853
+ "interpolation-punctuation": {
854
+ pattern: /^\$\{|\}$/,
855
+ alias: "punctuation"
856
+ },
857
+ rest: Prism2.languages.javascript
858
+ }
859
+ },
860
+ string: /[\s\S]+/
861
+ }
862
+ },
863
+ "string-property": {
864
+ pattern: /((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,
865
+ lookbehind: true,
866
+ greedy: true,
867
+ alias: "property"
868
+ }
869
+ });
870
+ Prism2.languages.insertBefore("javascript", "operator", {
871
+ "literal-property": {
872
+ pattern: /((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,
873
+ lookbehind: true,
874
+ alias: "property"
875
+ }
876
+ });
877
+ if (Prism2.languages.markup) {
878
+ Prism2.languages.markup.tag.addInlined("script", "javascript");
879
+ Prism2.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source, "javascript");
880
+ }
881
+ Prism2.languages.js = Prism2.languages.javascript;
882
+ (function() {
883
+ if (typeof Prism2 === "undefined" || typeof document === "undefined") {
884
+ return;
885
+ }
886
+ if (!Element.prototype.matches) {
887
+ Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
888
+ }
889
+ var LOADING_MESSAGE = "Loading…";
890
+ var FAILURE_MESSAGE = function(status, message) {
891
+ return "✖ Error " + status + " while fetching file: " + message;
892
+ };
893
+ var FAILURE_EMPTY_MESSAGE = "✖ Error: File does not exist or is empty";
894
+ var EXTENSIONS = {
895
+ js: "javascript",
896
+ py: "python",
897
+ rb: "ruby",
898
+ ps1: "powershell",
899
+ psm1: "powershell",
900
+ sh: "bash",
901
+ bat: "batch",
902
+ h: "c",
903
+ tex: "latex"
904
+ };
905
+ var STATUS_ATTR = "data-src-status";
906
+ var STATUS_LOADING = "loading";
907
+ var STATUS_LOADED = "loaded";
908
+ var STATUS_FAILED = "failed";
909
+ var SELECTOR = "pre[data-src]:not([" + STATUS_ATTR + '="' + STATUS_LOADED + '"])' + ":not([" + STATUS_ATTR + '="' + STATUS_LOADING + '"])';
910
+ function loadFile(src, success, error) {
911
+ var xhr = new XMLHttpRequest;
912
+ xhr.open("GET", src, true);
913
+ xhr.onreadystatechange = function() {
914
+ if (xhr.readyState == 4) {
915
+ if (xhr.status < 400 && xhr.responseText) {
916
+ success(xhr.responseText);
917
+ } else {
918
+ if (xhr.status >= 400) {
919
+ error(FAILURE_MESSAGE(xhr.status, xhr.statusText));
920
+ } else {
921
+ error(FAILURE_EMPTY_MESSAGE);
922
+ }
923
+ }
924
+ }
925
+ };
926
+ xhr.send(null);
927
+ }
928
+ function parseRange(range) {
929
+ var m = /^\s*(\d+)\s*(?:(,)\s*(?:(\d+)\s*)?)?$/.exec(range || "");
930
+ if (m) {
931
+ var start = Number(m[1]);
932
+ var comma = m[2];
933
+ var end = m[3];
934
+ if (!comma) {
935
+ return [start, start];
936
+ }
937
+ if (!end) {
938
+ return [start, undefined];
939
+ }
940
+ return [start, Number(end)];
941
+ }
942
+ return;
943
+ }
944
+ Prism2.hooks.add("before-highlightall", function(env) {
945
+ env.selector += ", " + SELECTOR;
946
+ });
947
+ Prism2.hooks.add("before-sanity-check", function(env) {
948
+ var pre = env.element;
949
+ if (pre.matches(SELECTOR)) {
950
+ env.code = "";
951
+ pre.setAttribute(STATUS_ATTR, STATUS_LOADING);
952
+ var code = pre.appendChild(document.createElement("CODE"));
953
+ code.textContent = LOADING_MESSAGE;
954
+ var src = pre.getAttribute("data-src");
955
+ var language = env.language;
956
+ if (language === "none") {
957
+ var extension = (/\.(\w+)$/.exec(src) || [, "none"])[1];
958
+ language = EXTENSIONS[extension] || extension;
959
+ }
960
+ Prism2.util.setLanguage(code, language);
961
+ Prism2.util.setLanguage(pre, language);
962
+ var autoloader = Prism2.plugins.autoloader;
963
+ if (autoloader) {
964
+ autoloader.loadLanguages(language);
965
+ }
966
+ loadFile(src, function(text) {
967
+ pre.setAttribute(STATUS_ATTR, STATUS_LOADED);
968
+ var range = parseRange(pre.getAttribute("data-range"));
969
+ if (range) {
970
+ var lines = text.split(/\r\n?|\n/g);
971
+ var start = range[0];
972
+ var end = range[1] == null ? lines.length : range[1];
973
+ if (start < 0) {
974
+ start += lines.length;
975
+ }
976
+ start = Math.max(0, Math.min(start - 1, lines.length));
977
+ if (end < 0) {
978
+ end += lines.length;
979
+ }
980
+ end = Math.max(0, Math.min(end, lines.length));
981
+ text = lines.slice(start, end).join(`
982
+ `);
983
+ if (!pre.hasAttribute("data-start")) {
984
+ pre.setAttribute("data-start", String(start + 1));
985
+ }
986
+ }
987
+ code.textContent = text;
988
+ Prism2.highlightElement(code);
989
+ }, function(error) {
990
+ pre.setAttribute(STATUS_ATTR, STATUS_FAILED);
991
+ code.textContent = error;
992
+ });
993
+ }
994
+ });
995
+ Prism2.plugins.fileHighlight = {
996
+ highlight: function highlight(container) {
997
+ var elements = (container || document).querySelectorAll(SELECTOR);
998
+ for (var i = 0, element;element = elements[i++]; ) {
999
+ Prism2.highlightElement(element);
1000
+ }
1001
+ }
1002
+ };
1003
+ var logged = false;
1004
+ Prism2.fileHighlight = function() {
1005
+ if (!logged) {
1006
+ console.warn("Prism.fileHighlight is deprecated. Use `Prism.plugins.fileHighlight.highlight` instead.");
1007
+ logged = true;
1008
+ }
1009
+ Prism2.plugins.fileHighlight.highlight.apply(this, arguments);
1010
+ };
1011
+ })();
1012
+ });
1013
+
1014
+ // ../../node_modules/.bun/prismjs@1.30.0/node_modules/prismjs/components/prism-jsx.js
1015
+ var exports_prism_jsx = {};
1016
+ var init_prism_jsx = __esm(() => {
1017
+ (function(Prism2) {
1018
+ var javascript = Prism2.util.clone(Prism2.languages.javascript);
1019
+ var space = /(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source;
1020
+ var braces = /(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source;
1021
+ var spread = /(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;
1022
+ function re(source, flags) {
1023
+ source = source.replace(/<S>/g, function() {
1024
+ return space;
1025
+ }).replace(/<BRACES>/g, function() {
1026
+ return braces;
1027
+ }).replace(/<SPREAD>/g, function() {
1028
+ return spread;
1029
+ });
1030
+ return RegExp(source, flags);
1031
+ }
1032
+ spread = re(spread).source;
1033
+ Prism2.languages.jsx = Prism2.languages.extend("markup", javascript);
1034
+ Prism2.languages.jsx.tag.pattern = re(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source);
1035
+ Prism2.languages.jsx.tag.inside["tag"].pattern = /^<\/?[^\s>\/]*/;
1036
+ Prism2.languages.jsx.tag.inside["attr-value"].pattern = /=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/;
1037
+ Prism2.languages.jsx.tag.inside["tag"].inside["class-name"] = /^[A-Z]\w*(?:\.[A-Z]\w*)*$/;
1038
+ Prism2.languages.jsx.tag.inside["comment"] = javascript["comment"];
1039
+ Prism2.languages.insertBefore("inside", "attr-name", {
1040
+ spread: {
1041
+ pattern: re(/<SPREAD>/.source),
1042
+ inside: Prism2.languages.jsx
1043
+ }
1044
+ }, Prism2.languages.jsx.tag);
1045
+ Prism2.languages.insertBefore("inside", "special-attr", {
1046
+ script: {
1047
+ pattern: re(/=<BRACES>/.source),
1048
+ alias: "language-javascript",
1049
+ inside: {
1050
+ "script-punctuation": {
1051
+ pattern: /^=(?=\{)/,
1052
+ alias: "punctuation"
1053
+ },
1054
+ rest: Prism2.languages.jsx
1055
+ }
1056
+ }
1057
+ }, Prism2.languages.jsx.tag);
1058
+ var stringifyToken = function(token) {
1059
+ if (!token) {
1060
+ return "";
1061
+ }
1062
+ if (typeof token === "string") {
1063
+ return token;
1064
+ }
1065
+ if (typeof token.content === "string") {
1066
+ return token.content;
1067
+ }
1068
+ return token.content.map(stringifyToken).join("");
1069
+ };
1070
+ var walkTokens = function(tokens) {
1071
+ var openedTags = [];
1072
+ for (var i = 0;i < tokens.length; i++) {
1073
+ var token = tokens[i];
1074
+ var notTagNorBrace = false;
1075
+ if (typeof token !== "string") {
1076
+ if (token.type === "tag" && token.content[0] && token.content[0].type === "tag") {
1077
+ if (token.content[0].content[0].content === "</") {
1078
+ if (openedTags.length > 0 && openedTags[openedTags.length - 1].tagName === stringifyToken(token.content[0].content[1])) {
1079
+ openedTags.pop();
1080
+ }
1081
+ } else {
1082
+ if (token.content[token.content.length - 1].content === "/>") {} else {
1083
+ openedTags.push({
1084
+ tagName: stringifyToken(token.content[0].content[1]),
1085
+ openedBraces: 0
1086
+ });
1087
+ }
1088
+ }
1089
+ } else if (openedTags.length > 0 && token.type === "punctuation" && token.content === "{") {
1090
+ openedTags[openedTags.length - 1].openedBraces++;
1091
+ } else if (openedTags.length > 0 && openedTags[openedTags.length - 1].openedBraces > 0 && token.type === "punctuation" && token.content === "}") {
1092
+ openedTags[openedTags.length - 1].openedBraces--;
1093
+ } else {
1094
+ notTagNorBrace = true;
1095
+ }
1096
+ }
1097
+ if (notTagNorBrace || typeof token === "string") {
1098
+ if (openedTags.length > 0 && openedTags[openedTags.length - 1].openedBraces === 0) {
1099
+ var plainText = stringifyToken(token);
1100
+ if (i < tokens.length - 1 && (typeof tokens[i + 1] === "string" || tokens[i + 1].type === "plain-text")) {
1101
+ plainText += stringifyToken(tokens[i + 1]);
1102
+ tokens.splice(i + 1, 1);
1103
+ }
1104
+ if (i > 0 && (typeof tokens[i - 1] === "string" || tokens[i - 1].type === "plain-text")) {
1105
+ plainText = stringifyToken(tokens[i - 1]) + plainText;
1106
+ tokens.splice(i - 1, 1);
1107
+ i--;
1108
+ }
1109
+ tokens[i] = new Prism2.Token("plain-text", plainText, null, plainText);
1110
+ }
1111
+ }
1112
+ if (token.content && typeof token.content !== "string") {
1113
+ walkTokens(token.content);
1114
+ }
1115
+ }
1116
+ };
1117
+ Prism2.hooks.add("after-tokenize", function(env) {
1118
+ if (env.language !== "jsx" && env.language !== "tsx") {
1119
+ return;
1120
+ }
1121
+ walkTokens(env.tokens);
1122
+ });
1123
+ })(Prism);
1124
+ });
1125
+
1126
+ // ../../node_modules/.bun/prismjs@1.30.0/node_modules/prismjs/components/prism-typescript.js
1127
+ var exports_prism_typescript = {};
1128
+ var init_prism_typescript = __esm(() => {
1129
+ (function(Prism2) {
1130
+ Prism2.languages.typescript = Prism2.languages.extend("javascript", {
1131
+ "class-name": {
1132
+ pattern: /(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,
1133
+ lookbehind: true,
1134
+ greedy: true,
1135
+ inside: null
1136
+ },
1137
+ builtin: /\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/
1138
+ });
1139
+ Prism2.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/, /\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/, /\btype\b(?=\s*(?:[\{*]|$))/);
1140
+ delete Prism2.languages.typescript["parameter"];
1141
+ delete Prism2.languages.typescript["literal-property"];
1142
+ var typeInside = Prism2.languages.extend("typescript", {});
1143
+ delete typeInside["class-name"];
1144
+ Prism2.languages.typescript["class-name"].inside = typeInside;
1145
+ Prism2.languages.insertBefore("typescript", "function", {
1146
+ decorator: {
1147
+ pattern: /@[$\w\xA0-\uFFFF]+/,
1148
+ inside: {
1149
+ at: {
1150
+ pattern: /^@/,
1151
+ alias: "operator"
1152
+ },
1153
+ function: /^[\s\S]+/
1154
+ }
1155
+ },
1156
+ "generic-function": {
1157
+ pattern: /#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,
1158
+ greedy: true,
1159
+ inside: {
1160
+ function: /^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,
1161
+ generic: {
1162
+ pattern: /<[\s\S]+/,
1163
+ alias: "class-name",
1164
+ inside: typeInside
1165
+ }
1166
+ }
1167
+ }
1168
+ });
1169
+ Prism2.languages.ts = Prism2.languages.typescript;
1170
+ })(Prism);
1171
+ });
1172
+
1173
+ // ../../node_modules/.bun/prismjs@1.30.0/node_modules/prismjs/components/prism-tsx.js
1174
+ var exports_prism_tsx = {};
1175
+ var init_prism_tsx = __esm(() => {
1176
+ (function(Prism2) {
1177
+ var typescript = Prism2.util.clone(Prism2.languages.typescript);
1178
+ Prism2.languages.tsx = Prism2.languages.extend("jsx", typescript);
1179
+ delete Prism2.languages.tsx["parameter"];
1180
+ delete Prism2.languages.tsx["literal-property"];
1181
+ var tag = Prism2.languages.tsx.tag;
1182
+ tag.pattern = RegExp(/(^|[^\w$]|(?=<\/))/.source + "(?:" + tag.pattern.source + ")", tag.pattern.flags);
1183
+ tag.lookbehind = true;
1184
+ })(Prism);
1185
+ });
1186
+
1187
+ // src/components/HighlightedElementSource.tsx
1188
+ var import_prismjs = __toESM(require_prism(), 1);
1189
+ import React, { useMemo } from "react";
1190
+ import { jsx } from "react/jsx-runtime";
1191
+ import_prismjs.default.manual = true;
1192
+ init_prism_jsx();
1193
+ init_prism_typescript();
1194
+ init_prism_tsx();
1195
+ var tokenStyle = {
1196
+ fontFamily: "inherit",
1197
+ fontSize: "inherit",
1198
+ lineHeight: "inherit"
1199
+ };
1200
+ var renderTokens = (tokens) => {
1201
+ if (typeof tokens === "string") {
1202
+ return tokens;
1203
+ }
1204
+ if (Array.isArray(tokens)) {
1205
+ let offset = 0;
1206
+ return tokens.map((token) => {
1207
+ const key = offset;
1208
+ offset += token.length;
1209
+ return /* @__PURE__ */ jsx(React.Fragment, {
1210
+ children: renderTokens(token)
1211
+ }, key);
1212
+ });
1213
+ }
1214
+ return /* @__PURE__ */ jsx("span", {
1215
+ className: [
1216
+ "token",
1217
+ tokens.type,
1218
+ ...typeof tokens.alias === "string" ? [tokens.alias] : tokens.alias ?? []
1219
+ ].join(" "),
1220
+ style: tokenStyle,
1221
+ children: renderTokens(tokens.content)
1222
+ });
1223
+ };
1224
+ var HighlightedElementSource = ({
1225
+ source
1226
+ }) => {
1227
+ const tokens = useMemo(() => import_prismjs.default.tokenize(source, import_prismjs.default.languages.tsx), [source]);
1228
+ return /* @__PURE__ */ jsx("span", {
1229
+ style: { ...tokenStyle, color: "inherit" },
1230
+ children: renderTokens(tokens)
1231
+ });
1232
+ };
1233
+ var HighlightedElementSource_default = HighlightedElementSource;
1234
+ export {
1235
+ HighlightedElementSource_default as default
1236
+ };