videomail-client 11.4.0 → 11.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/umd/index.js CHANGED
@@ -5,6 +5,159 @@
5
5
  else root["VideomailClient"] = factory();
6
6
  })(globalThis, ()=>(()=>{
7
7
  var __webpack_modules__ = {
8
+ "./node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[12].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[12].use[2]!./node_modules/stylus-loader/dist/cjs.js??ruleSet[1].rules[12].use[3]!./src/styles/main.styl": function(module1, __webpack_exports__, __webpack_require__) {
9
+ "use strict";
10
+ __webpack_require__.d(__webpack_exports__, {
11
+ A: ()=>__WEBPACK_DEFAULT_EXPORT__
12
+ });
13
+ var _node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./node_modules/@rsbuild/core/compiled/css-loader/noSourceMaps.js");
14
+ var _node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/ __webpack_require__.n(_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
15
+ var _node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./node_modules/@rsbuild/core/compiled/css-loader/api.js");
16
+ var _node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/ __webpack_require__.n(_node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1__);
17
+ var ___CSS_LOADER_EXPORT___ = _node_modules_rsbuild_core_compiled_css_loader_api_js__WEBPACK_IMPORTED_MODULE_1___default()(_node_modules_rsbuild_core_compiled_css_loader_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default());
18
+ ___CSS_LOADER_EXPORT___.push([
19
+ module1.id,
20
+ `@keyframes blink {
21
+ 0% {
22
+ opacity: .9;
23
+ }
24
+
25
+ 35% {
26
+ opacity: .9;
27
+ }
28
+
29
+ 50% {
30
+ opacity: .1;
31
+ }
32
+
33
+ 85% {
34
+ opacity: .1;
35
+ }
36
+
37
+ 100% {
38
+ opacity: .9;
39
+ }
40
+ }
41
+
42
+ .videomail .visuals {
43
+ position: relative;
44
+ }
45
+
46
+ .videomail .visuals video.replay {
47
+ width: 100%;
48
+ height: 100%;
49
+ }
50
+
51
+ .videomail .countdown, .videomail .recordTimer, .videomail .recordNote, .videomail .pausedHeader, .videomail .pausedHint {
52
+ height: auto;
53
+ margin: 0;
54
+ }
55
+
56
+ .videomail .countdown, .videomail .recordTimer, .videomail .recordNote, .videomail .paused, .videomail .facingMode, .videomail noscript {
57
+ z-index: 100;
58
+ position: absolute;
59
+ }
60
+
61
+ .videomail .countdown, .videomail .recordTimer, .videomail .recordNote, .videomail .pausedHeader, .videomail .pausedHint, .videomail noscript {
62
+ font-weight: bold;
63
+ }
64
+
65
+ .videomail .countdown, .videomail .paused, .videomail noscript {
66
+ width: 100%;
67
+ top: 50%;
68
+ transform: translateY(-50%);
69
+ }
70
+
71
+ .videomail .pausedHeader, .videomail .pausedHint, .videomail .countdown {
72
+ text-align: center;
73
+ letter-spacing: 4px;
74
+ text-shadow: -2px 0 #fff, 0 2px #fff, 2px 0 #fff, 0 -2px #fff;
75
+ }
76
+
77
+ .videomail .pausedHeader, .videomail .countdown {
78
+ opacity: .9;
79
+ font-size: 460%;
80
+ }
81
+
82
+ .videomail .pausedHint {
83
+ font-size: 150%;
84
+ }
85
+
86
+ .videomail .facingMode {
87
+ color: #f5f5f5e6;
88
+ z-index: 10;
89
+ background: #1e1e1e80;
90
+ border: none;
91
+ outline: none;
92
+ padding: .1em .3em;
93
+ font-family: monospace;
94
+ font-size: 1.2em;
95
+ transition: all .2s;
96
+ bottom: .6em;
97
+ right: .7em;
98
+ }
99
+
100
+ .videomail .facingMode:hover {
101
+ cursor: pointer;
102
+ background: #323232b3;
103
+ }
104
+
105
+ .videomail .recordTimer, .videomail .recordNote {
106
+ color: #00d814;
107
+ opacity: .9;
108
+ background: #0a0a0acc;
109
+ padding: .3em .4em;
110
+ font-family: monospace;
111
+ transition: all 1s;
112
+ right: .7em;
113
+ }
114
+
115
+ .videomail .recordTimer.near, .videomail .recordNote.near {
116
+ color: #eb9369;
117
+ }
118
+
119
+ .videomail .recordTimer.nigh, .videomail .recordNote.nigh {
120
+ color: #ea4b2a;
121
+ }
122
+
123
+ .videomail .recordTimer {
124
+ top: .7em;
125
+ }
126
+
127
+ .videomail .recordNote {
128
+ top: 3.6em;
129
+ }
130
+
131
+ .videomail .recordNote:before {
132
+ content: "REC";
133
+ animation: 1s infinite blink;
134
+ }
135
+
136
+ .videomail .notifier {
137
+ box-sizing: border-box;
138
+ overflow: hidden;
139
+ }
140
+
141
+ .videomail .radioGroup {
142
+ display: block;
143
+ }
144
+
145
+ .videomail .radioGroup label {
146
+ cursor: pointer;
147
+ }
148
+
149
+ .videomail video {
150
+ margin-bottom: 0;
151
+ }
152
+
153
+ .videomail video.userMedia {
154
+ background-color: #3232321a;
155
+ }
156
+ `,
157
+ ""
158
+ ]);
159
+ const __WEBPACK_DEFAULT_EXPORT__ = ___CSS_LOADER_EXPORT___;
160
+ },
8
161
  "./node_modules/animitter/index.js": function(module1, exports1, __webpack_require__) {
9
162
  var EventEmitter = __webpack_require__("./node_modules/events/events.js").EventEmitter, inherits = __webpack_require__("./node_modules/inherits/inherits_browser.js"), raf = __webpack_require__("./node_modules/raf/index.js"), methods;
10
163
  var defaultRAFObject = {
@@ -10277,6 +10430,7 @@
10277
10430
  var cachedModule = __webpack_module_cache__[moduleId];
10278
10431
  if (void 0 !== cachedModule) return cachedModule.exports;
10279
10432
  var module1 = __webpack_module_cache__[moduleId] = {
10433
+ id: moduleId,
10280
10434
  exports: {}
10281
10435
  };
10282
10436
  __webpack_modules__[moduleId].call(module1.exports, module1, module1.exports, __webpack_require__);
@@ -10494,7 +10648,7 @@
10494
10648
  var client = __webpack_require__("./node_modules/superagent/lib/client.js");
10495
10649
  var client_default = /*#__PURE__*/ __webpack_require__.n(client);
10496
10650
  var package_namespaceObject = {
10497
- rE: "11.4.0"
10651
+ rE: "11.4.2"
10498
10652
  };
10499
10653
  var defined = __webpack_require__("./node_modules/defined/index.js");
10500
10654
  var defined_default = /*#__PURE__*/ __webpack_require__.n(defined);
@@ -13630,13 +13784,18 @@
13630
13784
  NAME,
13631
13785
  VERSION
13632
13786
  ]);
13787
+ var VideoType_VideoType = /*#__PURE__*/ function(VideoType) {
13788
+ VideoType["WebM"] = "webm";
13789
+ VideoType["MP4"] = "mp4";
13790
+ return VideoType;
13791
+ }({});
13633
13792
  function canPlayType_canPlayType(video, type) {
13634
13793
  const canPlayType = video.canPlayType(`video/${type}`);
13635
13794
  if ("" === canPlayType) return false;
13636
13795
  return canPlayType;
13637
13796
  }
13638
13797
  const media_canPlayType = canPlayType_canPlayType;
13639
- const FALLBACK_VIDEO_TYPE = VideoType.MP4;
13798
+ const FALLBACK_VIDEO_TYPE = VideoType_VideoType.MP4;
13640
13799
  class Browser {
13641
13800
  options;
13642
13801
  result;
@@ -13683,10 +13842,10 @@
13683
13842
  }
13684
13843
  getVideoType(video) {
13685
13844
  if (!this.videoType) {
13686
- if (media_canPlayType(video, VideoType.MP4)) this.videoType = VideoType.MP4;
13687
- else if (media_canPlayType(video, VideoType.WebM)) this.videoType = VideoType.WebM;
13845
+ if (media_canPlayType(video, VideoType_VideoType.MP4)) this.videoType = VideoType_VideoType.MP4;
13846
+ else if (media_canPlayType(video, VideoType_VideoType.WebM)) this.videoType = VideoType_VideoType.WebM;
13688
13847
  }
13689
- if (this.videoType !== VideoType.WebM && this.videoType !== VideoType.MP4) this.videoType = FALLBACK_VIDEO_TYPE;
13848
+ if (this.videoType !== VideoType_VideoType.WebM && this.videoType !== VideoType_VideoType.MP4) this.videoType = FALLBACK_VIDEO_TYPE;
13690
13849
  if ("" === this.videoType.trim()) this.videoType = FALLBACK_VIDEO_TYPE;
13691
13850
  return this.videoType;
13692
13851
  }
@@ -13802,7 +13961,7 @@
13802
13961
  screen.width,
13803
13962
  screen.height,
13804
13963
  screen.colorDepth
13805
- ].join("×");
13964
+ ].join("\xd7");
13806
13965
  if (screen.orientation) this.orientation = screen.orientation.type;
13807
13966
  this.err = errData?.err;
13808
13967
  const stackTarget = errData?.cause ?? errData?.err;
@@ -14672,7 +14831,7 @@
14672
14831
  }
14673
14832
  };
14674
14833
  const src_options = options_options;
14675
- class CollectLogger_CollectLogger {
14834
+ class CollectLogger {
14676
14835
  browser;
14677
14836
  logger;
14678
14837
  stack = [];
@@ -14711,7 +14870,7 @@
14711
14870
  return this.stack;
14712
14871
  }
14713
14872
  }
14714
- const CollectLogger = CollectLogger_CollectLogger;
14873
+ const util_CollectLogger = CollectLogger;
14715
14874
  var process = __webpack_require__("./node_modules/process/browser.js");
14716
14875
  function isTest() {
14717
14876
  return "test" === process.env.ENVIRON;
@@ -14723,7 +14882,7 @@
14723
14882
  return source;
14724
14883
  }
14725
14884
  });
14726
- const collectLogger = new CollectLogger(newOptions);
14885
+ const collectLogger = new util_CollectLogger(newOptions);
14727
14886
  newOptions.logger = collectLogger;
14728
14887
  if (util_isTest()) newOptions.verbose = false;
14729
14888
  return newOptions;
@@ -14741,161 +14900,15 @@
14741
14900
  var insertStyleElement_default = /*#__PURE__*/ __webpack_require__.n(insertStyleElement);
14742
14901
  var styleTagTransform = __webpack_require__("./node_modules/@rsbuild/core/compiled/style-loader/runtime/styleTagTransform.js");
14743
14902
  var styleTagTransform_default = /*#__PURE__*/ __webpack_require__.n(styleTagTransform);
14744
- var noSourceMaps = __webpack_require__("./node_modules/@rsbuild/core/compiled/css-loader/noSourceMaps.js");
14745
- var noSourceMaps_default = /*#__PURE__*/ __webpack_require__.n(noSourceMaps);
14746
- var api = __webpack_require__("./node_modules/@rsbuild/core/compiled/css-loader/api.js");
14747
- var api_default = /*#__PURE__*/ __webpack_require__.n(api);
14748
- var ___CSS_LOADER_EXPORT___ = api_default()(noSourceMaps_default());
14749
- ___CSS_LOADER_EXPORT___.push([
14750
- module.id,
14751
- `@keyframes blink {
14752
- 0% {
14753
- opacity: .9;
14754
- }
14755
-
14756
- 35% {
14757
- opacity: .9;
14758
- }
14759
-
14760
- 50% {
14761
- opacity: .1;
14762
- }
14763
-
14764
- 85% {
14765
- opacity: .1;
14766
- }
14767
-
14768
- 100% {
14769
- opacity: .9;
14770
- }
14771
- }
14772
-
14773
- .videomail .visuals {
14774
- position: relative;
14775
- }
14776
-
14777
- .videomail .visuals video.replay {
14778
- width: 100%;
14779
- height: 100%;
14780
- }
14781
-
14782
- .videomail .countdown, .videomail .recordTimer, .videomail .recordNote, .videomail .pausedHeader, .videomail .pausedHint {
14783
- height: auto;
14784
- margin: 0;
14785
- }
14786
-
14787
- .videomail .countdown, .videomail .recordTimer, .videomail .recordNote, .videomail .paused, .videomail .facingMode, .videomail noscript {
14788
- z-index: 100;
14789
- position: absolute;
14790
- }
14791
-
14792
- .videomail .countdown, .videomail .recordTimer, .videomail .recordNote, .videomail .pausedHeader, .videomail .pausedHint, .videomail noscript {
14793
- font-weight: bold;
14794
- }
14795
-
14796
- .videomail .countdown, .videomail .paused, .videomail noscript {
14797
- width: 100%;
14798
- top: 50%;
14799
- transform: translateY(-50%);
14800
- }
14801
-
14802
- .videomail .pausedHeader, .videomail .pausedHint, .videomail .countdown {
14803
- text-align: center;
14804
- letter-spacing: 4px;
14805
- text-shadow: -2px 0 #fff, 0 2px #fff, 2px 0 #fff, 0 -2px #fff;
14806
- }
14807
-
14808
- .videomail .pausedHeader, .videomail .countdown {
14809
- opacity: .9;
14810
- font-size: 460%;
14811
- }
14812
-
14813
- .videomail .pausedHint {
14814
- font-size: 150%;
14815
- }
14816
-
14817
- .videomail .facingMode {
14818
- color: #f5f5f5e6;
14819
- z-index: 10;
14820
- background: #1e1e1e80;
14821
- border: none;
14822
- outline: none;
14823
- padding: .1em .3em;
14824
- font-family: monospace;
14825
- font-size: 1.2em;
14826
- transition: all .2s;
14827
- bottom: .6em;
14828
- right: .7em;
14829
- }
14830
-
14831
- .videomail .facingMode:hover {
14832
- cursor: pointer;
14833
- background: #323232b3;
14834
- }
14835
-
14836
- .videomail .recordTimer, .videomail .recordNote {
14837
- color: #00d814;
14838
- opacity: .9;
14839
- background: #0a0a0acc;
14840
- padding: .3em .4em;
14841
- font-family: monospace;
14842
- transition: all 1s;
14843
- right: .7em;
14844
- }
14845
-
14846
- .videomail .recordTimer.near, .videomail .recordNote.near {
14847
- color: #eb9369;
14848
- }
14849
-
14850
- .videomail .recordTimer.nigh, .videomail .recordNote.nigh {
14851
- color: #ea4b2a;
14852
- }
14853
-
14854
- .videomail .recordTimer {
14855
- top: .7em;
14856
- }
14857
-
14858
- .videomail .recordNote {
14859
- top: 3.6em;
14860
- }
14861
-
14862
- .videomail .recordNote:before {
14863
- content: "REC";
14864
- animation: 1s infinite blink;
14865
- }
14866
-
14867
- .videomail .notifier {
14868
- box-sizing: border-box;
14869
- overflow: hidden;
14870
- }
14871
-
14872
- .videomail .radioGroup {
14873
- display: block;
14874
- }
14875
-
14876
- .videomail .radioGroup label {
14877
- cursor: pointer;
14878
- }
14879
-
14880
- .videomail video {
14881
- margin-bottom: 0;
14882
- }
14883
-
14884
- .videomail video.userMedia {
14885
- background-color: #3232321a;
14886
- }
14887
- `,
14888
- ""
14889
- ]);
14890
- const main = ___CSS_LOADER_EXPORT___;
14903
+ var main = __webpack_require__("./node_modules/@rsbuild/core/compiled/css-loader/index.js??ruleSet[1].rules[12].use[1]!builtin:lightningcss-loader??ruleSet[1].rules[12].use[2]!./node_modules/stylus-loader/dist/cjs.js??ruleSet[1].rules[12].use[3]!./src/styles/main.styl");
14891
14904
  var main_options = {};
14892
14905
  main_options.styleTagTransform = styleTagTransform_default();
14893
14906
  main_options.setAttributes = setAttributesWithoutAttributes_default();
14894
14907
  main_options.insert = insertBySelector_default().bind(null, "head");
14895
14908
  main_options.domAPI = styleDomAPI_default();
14896
14909
  main_options.insertStyleElement = insertStyleElement_default();
14897
- injectStylesIntoStyleTag_default()(main, main_options);
14898
- main && main.locals && main.locals;
14910
+ injectStylesIntoStyleTag_default()(main.A, main_options);
14911
+ main.A && main.A.locals && main.A.locals;
14899
14912
  var document_visibility = __webpack_require__("./node_modules/document-visibility/index.js");
14900
14913
  var document_visibility_default = /*#__PURE__*/ __webpack_require__.n(document_visibility);
14901
14914
  function limitHeight(height, options, calledFrom) {
@@ -15446,7 +15459,7 @@
15446
15459
  else {
15447
15460
  this.facingModeElement = document.createElement("button");
15448
15461
  this.facingModeElement.classList.add("facingMode");
15449
- this.facingModeElement.innerHTML = "";
15462
+ this.facingModeElement.innerHTML = "\u293E";
15450
15463
  this.facingModeElement.onclick = (e)=>{
15451
15464
  e?.preventDefault();
15452
15465
  try {
@@ -15793,17 +15806,17 @@
15793
15806
  this.options.logger.debug("Limit reached");
15794
15807
  lead += `${this.options.text.limitReached}.<br/>`;
15795
15808
  }
15796
- lead += `${this.options.text.sending} …`;
15809
+ lead += `${this.options.text.sending} \u{2026}`;
15797
15810
  this.notify(lead, void 0, {
15798
15811
  stillWait: true,
15799
15812
  entertain: this.options.notifier.entertain
15800
15813
  });
15801
15814
  }
15802
15815
  onConnecting() {
15803
- this.notify("Connecting ");
15816
+ this.notify("Connecting \u2026");
15804
15817
  }
15805
15818
  onLoadingUserMedia() {
15806
- this.notify("Loading webcam ");
15819
+ this.notify("Loading webcam \u2026");
15807
15820
  }
15808
15821
  onProgress(frameProgress, sampleProgress) {
15809
15822
  let overallProgress;
@@ -15815,7 +15828,7 @@
15815
15828
  }
15816
15829
  onBeginVideoEncoding() {
15817
15830
  this.visuals.beginWaiting();
15818
- const lead = `${this.options.text.encoding} …`;
15831
+ const lead = `${this.options.text.encoding} \u{2026}`;
15819
15832
  this.notify(lead, void 0, {
15820
15833
  stillWait: true,
15821
15834
  entertain: this.options.notifier.entertain
@@ -15847,7 +15860,7 @@
15847
15860
  this.onBeginVideoEncoding();
15848
15861
  });
15849
15862
  this.on("UNLOADING", ()=>{
15850
- this.notify("Unloading ");
15863
+ this.notify("Unloading \u2026");
15851
15864
  });
15852
15865
  this.on("DISCONNECTED", ()=>{
15853
15866
  this.notify("Disconnected");
@@ -16244,7 +16257,7 @@
16244
16257
  "volumechange"
16245
16258
  ];
16246
16259
  const mediaEvents = MEDIA_EVENTS;
16247
- const EVENT_ASCII = "|—O—|";
16260
+ const EVENT_ASCII = "|\u2014O\u2014|";
16248
16261
  class UserMedia extends util_Despot {
16249
16262
  recorder;
16250
16263
  rawVisualUserMedia;
@@ -16534,7 +16547,7 @@
16534
16547
  }
16535
16548
  const visuals_userMedia = UserMedia;
16536
16549
  var Buffer = __webpack_require__("./node_modules/buffer/index.js")["Buffer"];
16537
- const PIPE_SYMBOL = "°º¤ø,¸¸,ø¤º°`°º¤ø,¸,ø¤°º¤ø,¸¸,ø¤º°`°º¤ø,¸ ";
16550
+ const PIPE_SYMBOL = "\xb0\xba\xa4\xf8,\xb8\xb8,\xf8\xa4\xba\xb0`\xb0\xba\xa4\xf8,\xb8,\xf8\xa4\xb0\xba\xa4\xf8,\xb8\xb8,\xf8\xa4\xba\xb0`\xb0\xba\xa4\xf8,\xb8 ";
16538
16551
  class Recorder extends util_Despot {
16539
16552
  visuals;
16540
16553
  replay;
@@ -17034,7 +17047,7 @@
17034
17047
  }, 0);
17035
17048
  }
17036
17049
  } else {
17037
- this.options.logger.debug(`Reconnecting for the command ${command} …`);
17050
+ this.options.logger.debug(`Reconnecting for the command ${command} \u{2026}`);
17038
17051
  this.initSocket(()=>{
17039
17052
  this.writeCommand(command, args);
17040
17053
  cb?.();
@@ -17670,10 +17683,10 @@
17670
17683
  }
17671
17684
  }
17672
17685
  setMp4Source(src, bustCache) {
17673
- this.setVideoSource(VideoType.MP4, src, bustCache);
17686
+ this.setVideoSource(VideoType_VideoType.MP4, src, bustCache);
17674
17687
  }
17675
17688
  setWebMSource(src, bustCache) {
17676
- this.setVideoSource(VideoType.WebM, src, bustCache);
17689
+ this.setVideoSource(VideoType_VideoType.WebM, src, bustCache);
17677
17690
  }
17678
17691
  getVideoType() {
17679
17692
  if (!this.replayElement) return;
@@ -18309,7 +18322,7 @@
18309
18322
  const name = invalidInput.getAttribute("name");
18310
18323
  valid = false;
18311
18324
  if (name) {
18312
- whyInvalid = `Input "${name}" seems wrong 🤔`;
18325
+ whyInvalid = `Input "${name}" seems wrong \u{1F914}`;
18313
18326
  invalidData = {
18314
18327
  [name]: invalidInput.getAttribute("value")
18315
18328
  };
@@ -18317,7 +18330,7 @@
18317
18330
  } else if (!this.areVisualsHidden() && !visualsValid) {
18318
18331
  if (this.buttonsAreReady() || this.isRecording() || this.isPaused() || this.isCountingDown()) {
18319
18332
  valid = false;
18320
- whyInvalid = "Don't forget to record a video 😉";
18333
+ whyInvalid = "Don't forget to record a video \uD83D\uDE09";
18321
18334
  invalidData = {
18322
18335
  key: void 0
18323
18336
  };
@@ -18561,11 +18574,6 @@
18561
18574
  }
18562
18575
  }
18563
18576
  const src_client = VideomailClient;
18564
- var VideoType_VideoType = /*#__PURE__*/ function(VideoType1) {
18565
- VideoType1["WebM"] = "webm";
18566
- VideoType1["MP4"] = "mp4";
18567
- return VideoType1;
18568
- }({});
18569
18577
  })();
18570
18578
  return __webpack_exports__;
18571
18579
  })());
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "videomail-client",
3
- "version": "11.4.0",
3
+ "version": "11.4.2",
4
4
  "description": "A wicked npm package to record videos directly in the browser, wohooo!",
5
5
  "keywords": [
6
6
  "webcam",
@@ -79,7 +79,7 @@
79
79
  "@rsbuild/plugin-node-polyfill": "1.4.2",
80
80
  "@rsbuild/plugin-stylus": "1.2.0",
81
81
  "@rsdoctor/rspack-plugin": "1.2.3",
82
- "@rslib/core": "0.13.3",
82
+ "@rslib/core": "0.13.2",
83
83
  "@storybook/addon-a11y": "9.1.3",
84
84
  "@storybook/addon-docs": "9.1.3",
85
85
  "@storybook/addon-links": "9.1.3",