@ezuikit/player-theme 3.1.7-beta.1 → 3.1.7-beta.3

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/constant.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*
2
- * @ezuikit/player-theme v3.1.7-beta.1
3
- * Copyright (c) 2026-09-23 13:45:09 Ezviz-OpenBiz
2
+ * @ezuikit/player-theme v3.1.7-beta.3
3
+ * Copyright (c) 2026-09-24 15:33:23 Ezviz-OpenBiz
4
4
  * Released under the MIT License.
5
5
  */
6
6
  function _extends() {
package/dist/index.cjs CHANGED
@@ -1,6 +1,6 @@
1
1
  /*
2
- * @ezuikit/player-theme v3.1.7-beta.1
3
- * Copyright (c) 2026-09-23 13:45:09 Ezviz-OpenBiz
2
+ * @ezuikit/player-theme v3.1.7-beta.3
3
+ * Copyright (c) 2026-09-24 15:33:23 Ezviz-OpenBiz
4
4
  * Released under the MIT License.
5
5
  */
6
6
  'use strict';
@@ -7535,6 +7535,7 @@ function _set_prototype_of$e(o, p) {
7535
7535
  };
7536
7536
  return _set_prototype_of$e(o, p);
7537
7537
  }
7538
+ /** 判定「贴近边缘」的安全距离(CSS px),弹窗右边缘与播放器右侧的间距小于它就换对齐方式 */ var REC_DROPDOWN_EDGE_GAP = 10;
7538
7539
  /**
7539
7540
  * 回放下拉控件
7540
7541
  *
@@ -7602,12 +7603,53 @@ function _set_prototype_of$e(o, p) {
7602
7603
  offset: [
7603
7604
  0,
7604
7605
  4
7605
- ]
7606
+ ],
7607
+ onOpenChange: function onOpenChange(open) {
7608
+ // 打开时按控件在视口中的位置决定对齐方式。
7609
+ // 此时 picker 已把 $wrapperContent 设为 inline-flex(可测量宽度),
7610
+ // 而它内部的定位计算还在 requestAnimationFrame 里,改 placement 来得及生效。
7611
+ // 移动端 placement 不生效(弹窗固定在窗口底部)
7612
+ if (open && !Utils.isMobile) _this._adjustPlacement();
7613
+ }
7606
7614
  });
7607
7615
  this._picker.innerHTML(this._getPanelHTML());
7608
7616
  this._activeOption(this._recType);
7609
7617
  this._bindPanelEvents();
7610
7618
  };
7619
+ /**
7620
+ * 按控件在播放器实例窗口中的位置调整弹窗对齐方式
7621
+ *
7622
+ * 默认 `bottom` 是相对控件水平居中,弹窗比控件宽,控件靠近右边缘时弹窗会探出边界。
7623
+ * 这种情况改用 `br`(弹窗右边缘与控件右边缘对齐、向左展开),控件本身在边界内,
7624
+ * 因此右侧一定不会溢出。
7625
+ *
7626
+ * 边界取的是**播放器实例窗口**(`rootContainer`)而非浏览器窗口:播放器通常只占页面一部分,
7627
+ * 弹窗一旦超出播放器就会画到播放器外面去,按浏览器窗口判断会漏掉这种情况。
7628
+ * 拿不到 `rootContainer` 时退回按浏览器窗口判断。
7629
+ *
7630
+ * 每次打开都重新判断:resize、全屏切换、控件栏溢出收纳都会改变控件的相对位置,
7631
+ * 一次性设定会在位置变化后失效。
7632
+ */ _proto._adjustPlacement = function _adjustPlacement() {
7633
+ var _this__picker;
7634
+ // 移动端 placement 不生效(弹窗固定在窗口底部铺满)
7635
+ if (Utils.isMobile) return;
7636
+ if (!this.$container || !((_this__picker = this._picker) == null ? void 0 : _this__picker.$wrapperContent)) return;
7637
+ var panelWidth = this._picker.$wrapperContent.getBoundingClientRect().width;
7638
+ // 还没渲染出宽度,无法判断,保持当前对齐方式
7639
+ if (!panelWidth) return;
7640
+ var containerRect = this.$container.getBoundingClientRect();
7641
+ var $root = this.__options.rootContainer;
7642
+ var boundaryRight = ($root == null ? void 0 : $root.getBoundingClientRect) ? $root.getBoundingClientRect().right : window.innerWidth;
7643
+ // 居中对齐时弹窗的右边缘位置
7644
+ var centeredRight = Math.ceil(containerRect.left + (containerRect.width + panelWidth) / 2);
7645
+ var willOverflowRight = centeredRight > boundaryRight - REC_DROPDOWN_EDGE_GAP;
7646
+ if (willOverflowRight) {
7647
+ this._picker.$wrapperContent.classList.add('epicker-br');
7648
+ } else {
7649
+ this._picker.$wrapperContent.classList.remove('epicker-br');
7650
+ }
7651
+ this._picker.setPlacement(willOverflowRight ? 'br' : 'bottom');
7652
+ };
7611
7653
  _proto._getPanelHTML = function _getPanelHTML() {
7612
7654
  var _this_locale, _this_locale1, _this_locale2;
7613
7655
  var cloudRecLabel = ((_this_locale = this.locale) == null ? void 0 : _this_locale.REC_DROPDOWN_CLOUD_REC) || '云存储';
@@ -7743,7 +7785,7 @@ function _set_prototype_of$d(o, p) {
7743
7785
  var _this__options_props_urlInfo, _this__options_props, _this__options;
7744
7786
  return _extends$c({}, item, {
7745
7787
  // 加密图片的地址是有时效的
7746
- coverPic: item.coverPic + "&decodekey=" + ((_this__options = _this._options) == null ? void 0 : (_this__options_props = _this__options.props) == null ? void 0 : (_this__options_props_urlInfo = _this__options_props.urlInfo) == null ? void 0 : _this__options_props_urlInfo.validateCode)
7788
+ coverPic: item.coverPic ? item.coverPic + "&decodekey=" + ((_this__options = _this._options) == null ? void 0 : (_this__options_props = _this__options.props) == null ? void 0 : (_this__options_props_urlInfo = _this__options_props.urlInfo) == null ? void 0 : _this__options_props_urlInfo.validateCode) : ''
7747
7789
  });
7748
7790
  });
7749
7791
  }
@@ -9999,6 +10041,12 @@ function _renderControls(theme, $container, btnList, props) {
9999
10041
  if (Controls[item.iconId]) {
10000
10042
  if (theme.options["" + item.iconId + "Options"] !== null) {
10001
10043
  var _theme_urlInfo2, _theme_urlInfo3, _theme_options1;
10044
+ if (theme.options.sdkType === 'custom' && [
10045
+ "alarmMessage",
10046
+ "broadcast"
10047
+ ].includes(item.iconId)) {
10048
+ continue;
10049
+ }
10002
10050
  // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
10003
10051
  theme.controls["" + item.iconId + "Control"] = new Controls[item.iconId](_extends$1({
10004
10052
  rootContainer: theme.$container,
@@ -12214,7 +12262,7 @@ var THEME_DEFAULT_OPTIONS = {
12214
12262
  zh: zh,
12215
12263
  en: en
12216
12264
  };
12217
- /** 版本号 @since 0.0.1 */ Theme.THEME_VERSION = '3.1.7-beta.1';
12265
+ /** 版本号 @since 0.0.1 */ Theme.THEME_VERSION = '3.1.7-beta.3';
12218
12266
 
12219
12267
  exports.CONTROL_INIT_EVENTS = CONTROL_INIT_EVENTS;
12220
12268
  exports.Control = Control;
package/dist/index.esm.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*
2
- * @ezuikit/player-theme v3.1.7-beta.1
3
- * Copyright (c) 2026-09-23 13:45:09 Ezviz-OpenBiz
2
+ * @ezuikit/player-theme v3.1.7-beta.3
3
+ * Copyright (c) 2026-09-24 15:33:23 Ezviz-OpenBiz
4
4
  * Released under the MIT License.
5
5
  */
6
6
  import EventEmitter from 'eventemitter3';
@@ -7533,6 +7533,7 @@ function _set_prototype_of$e(o, p) {
7533
7533
  };
7534
7534
  return _set_prototype_of$e(o, p);
7535
7535
  }
7536
+ /** 判定「贴近边缘」的安全距离(CSS px),弹窗右边缘与播放器右侧的间距小于它就换对齐方式 */ var REC_DROPDOWN_EDGE_GAP = 10;
7536
7537
  /**
7537
7538
  * 回放下拉控件
7538
7539
  *
@@ -7600,12 +7601,53 @@ function _set_prototype_of$e(o, p) {
7600
7601
  offset: [
7601
7602
  0,
7602
7603
  4
7603
- ]
7604
+ ],
7605
+ onOpenChange: function onOpenChange(open) {
7606
+ // 打开时按控件在视口中的位置决定对齐方式。
7607
+ // 此时 picker 已把 $wrapperContent 设为 inline-flex(可测量宽度),
7608
+ // 而它内部的定位计算还在 requestAnimationFrame 里,改 placement 来得及生效。
7609
+ // 移动端 placement 不生效(弹窗固定在窗口底部)
7610
+ if (open && !Utils.isMobile) _this._adjustPlacement();
7611
+ }
7604
7612
  });
7605
7613
  this._picker.innerHTML(this._getPanelHTML());
7606
7614
  this._activeOption(this._recType);
7607
7615
  this._bindPanelEvents();
7608
7616
  };
7617
+ /**
7618
+ * 按控件在播放器实例窗口中的位置调整弹窗对齐方式
7619
+ *
7620
+ * 默认 `bottom` 是相对控件水平居中,弹窗比控件宽,控件靠近右边缘时弹窗会探出边界。
7621
+ * 这种情况改用 `br`(弹窗右边缘与控件右边缘对齐、向左展开),控件本身在边界内,
7622
+ * 因此右侧一定不会溢出。
7623
+ *
7624
+ * 边界取的是**播放器实例窗口**(`rootContainer`)而非浏览器窗口:播放器通常只占页面一部分,
7625
+ * 弹窗一旦超出播放器就会画到播放器外面去,按浏览器窗口判断会漏掉这种情况。
7626
+ * 拿不到 `rootContainer` 时退回按浏览器窗口判断。
7627
+ *
7628
+ * 每次打开都重新判断:resize、全屏切换、控件栏溢出收纳都会改变控件的相对位置,
7629
+ * 一次性设定会在位置变化后失效。
7630
+ */ _proto._adjustPlacement = function _adjustPlacement() {
7631
+ var _this__picker;
7632
+ // 移动端 placement 不生效(弹窗固定在窗口底部铺满)
7633
+ if (Utils.isMobile) return;
7634
+ if (!this.$container || !((_this__picker = this._picker) == null ? void 0 : _this__picker.$wrapperContent)) return;
7635
+ var panelWidth = this._picker.$wrapperContent.getBoundingClientRect().width;
7636
+ // 还没渲染出宽度,无法判断,保持当前对齐方式
7637
+ if (!panelWidth) return;
7638
+ var containerRect = this.$container.getBoundingClientRect();
7639
+ var $root = this.__options.rootContainer;
7640
+ var boundaryRight = ($root == null ? void 0 : $root.getBoundingClientRect) ? $root.getBoundingClientRect().right : window.innerWidth;
7641
+ // 居中对齐时弹窗的右边缘位置
7642
+ var centeredRight = Math.ceil(containerRect.left + (containerRect.width + panelWidth) / 2);
7643
+ var willOverflowRight = centeredRight > boundaryRight - REC_DROPDOWN_EDGE_GAP;
7644
+ if (willOverflowRight) {
7645
+ this._picker.$wrapperContent.classList.add('epicker-br');
7646
+ } else {
7647
+ this._picker.$wrapperContent.classList.remove('epicker-br');
7648
+ }
7649
+ this._picker.setPlacement(willOverflowRight ? 'br' : 'bottom');
7650
+ };
7609
7651
  _proto._getPanelHTML = function _getPanelHTML() {
7610
7652
  var _this_locale, _this_locale1, _this_locale2;
7611
7653
  var cloudRecLabel = ((_this_locale = this.locale) == null ? void 0 : _this_locale.REC_DROPDOWN_CLOUD_REC) || '云存储';
@@ -7741,7 +7783,7 @@ function _set_prototype_of$d(o, p) {
7741
7783
  var _this__options_props_urlInfo, _this__options_props, _this__options;
7742
7784
  return _extends$c({}, item, {
7743
7785
  // 加密图片的地址是有时效的
7744
- coverPic: item.coverPic + "&decodekey=" + ((_this__options = _this._options) == null ? void 0 : (_this__options_props = _this__options.props) == null ? void 0 : (_this__options_props_urlInfo = _this__options_props.urlInfo) == null ? void 0 : _this__options_props_urlInfo.validateCode)
7786
+ coverPic: item.coverPic ? item.coverPic + "&decodekey=" + ((_this__options = _this._options) == null ? void 0 : (_this__options_props = _this__options.props) == null ? void 0 : (_this__options_props_urlInfo = _this__options_props.urlInfo) == null ? void 0 : _this__options_props_urlInfo.validateCode) : ''
7745
7787
  });
7746
7788
  });
7747
7789
  }
@@ -9997,6 +10039,12 @@ function _renderControls(theme, $container, btnList, props) {
9997
10039
  if (Controls[item.iconId]) {
9998
10040
  if (theme.options["" + item.iconId + "Options"] !== null) {
9999
10041
  var _theme_urlInfo2, _theme_urlInfo3, _theme_options1;
10042
+ if (theme.options.sdkType === 'custom' && [
10043
+ "alarmMessage",
10044
+ "broadcast"
10045
+ ].includes(item.iconId)) {
10046
+ continue;
10047
+ }
10000
10048
  // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
10001
10049
  theme.controls["" + item.iconId + "Control"] = new Controls[item.iconId](_extends$1({
10002
10050
  rootContainer: theme.$container,
@@ -12212,6 +12260,6 @@ var THEME_DEFAULT_OPTIONS = {
12212
12260
  zh: zh,
12213
12261
  en: en
12214
12262
  };
12215
- /** 版本号 @since 0.0.1 */ Theme.THEME_VERSION = '3.1.7-beta.1';
12263
+ /** 版本号 @since 0.0.1 */ Theme.THEME_VERSION = '3.1.7-beta.3';
12216
12264
 
12217
12265
  export { CONTROL_INIT_EVENTS, Control, EVENTS, Fullscreen, Loading, Message, Play, Poster, Rec, Theme, Utils, Volume };
package/dist/index.umd.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*
2
- * @ezuikit/player-theme v3.1.7-beta.1
3
- * Copyright (c) 2026-09-23 13:45:09 Ezviz-OpenBiz
2
+ * @ezuikit/player-theme v3.1.7-beta.3
3
+ * Copyright (c) 2026-09-24 15:33:23 Ezviz-OpenBiz
4
4
  * Released under the MIT License.
5
5
  */
6
6
  (function (global, factory) {
@@ -9036,6 +9036,7 @@
9036
9036
  };
9037
9037
  return _set_prototype_of$h(o, p);
9038
9038
  }
9039
+ /** 判定「贴近边缘」的安全距离(CSS px),弹窗右边缘与播放器右侧的间距小于它就换对齐方式 */ var REC_DROPDOWN_EDGE_GAP = 10;
9039
9040
  /**
9040
9041
  * 回放下拉控件
9041
9042
  *
@@ -9103,12 +9104,53 @@
9103
9104
  offset: [
9104
9105
  0,
9105
9106
  4
9106
- ]
9107
+ ],
9108
+ onOpenChange: function onOpenChange(open) {
9109
+ // 打开时按控件在视口中的位置决定对齐方式。
9110
+ // 此时 picker 已把 $wrapperContent 设为 inline-flex(可测量宽度),
9111
+ // 而它内部的定位计算还在 requestAnimationFrame 里,改 placement 来得及生效。
9112
+ // 移动端 placement 不生效(弹窗固定在窗口底部)
9113
+ if (open && !Utils.isMobile) _this._adjustPlacement();
9114
+ }
9107
9115
  });
9108
9116
  this._picker.innerHTML(this._getPanelHTML());
9109
9117
  this._activeOption(this._recType);
9110
9118
  this._bindPanelEvents();
9111
9119
  };
9120
+ /**
9121
+ * 按控件在播放器实例窗口中的位置调整弹窗对齐方式
9122
+ *
9123
+ * 默认 `bottom` 是相对控件水平居中,弹窗比控件宽,控件靠近右边缘时弹窗会探出边界。
9124
+ * 这种情况改用 `br`(弹窗右边缘与控件右边缘对齐、向左展开),控件本身在边界内,
9125
+ * 因此右侧一定不会溢出。
9126
+ *
9127
+ * 边界取的是**播放器实例窗口**(`rootContainer`)而非浏览器窗口:播放器通常只占页面一部分,
9128
+ * 弹窗一旦超出播放器就会画到播放器外面去,按浏览器窗口判断会漏掉这种情况。
9129
+ * 拿不到 `rootContainer` 时退回按浏览器窗口判断。
9130
+ *
9131
+ * 每次打开都重新判断:resize、全屏切换、控件栏溢出收纳都会改变控件的相对位置,
9132
+ * 一次性设定会在位置变化后失效。
9133
+ */ _proto._adjustPlacement = function _adjustPlacement() {
9134
+ var _this__picker;
9135
+ // 移动端 placement 不生效(弹窗固定在窗口底部铺满)
9136
+ if (Utils.isMobile) return;
9137
+ if (!this.$container || !((_this__picker = this._picker) == null ? void 0 : _this__picker.$wrapperContent)) return;
9138
+ var panelWidth = this._picker.$wrapperContent.getBoundingClientRect().width;
9139
+ // 还没渲染出宽度,无法判断,保持当前对齐方式
9140
+ if (!panelWidth) return;
9141
+ var containerRect = this.$container.getBoundingClientRect();
9142
+ var $root = this.__options.rootContainer;
9143
+ var boundaryRight = ($root == null ? void 0 : $root.getBoundingClientRect) ? $root.getBoundingClientRect().right : window.innerWidth;
9144
+ // 居中对齐时弹窗的右边缘位置
9145
+ var centeredRight = Math.ceil(containerRect.left + (containerRect.width + panelWidth) / 2);
9146
+ var willOverflowRight = centeredRight > boundaryRight - REC_DROPDOWN_EDGE_GAP;
9147
+ if (willOverflowRight) {
9148
+ this._picker.$wrapperContent.classList.add('epicker-br');
9149
+ } else {
9150
+ this._picker.$wrapperContent.classList.remove('epicker-br');
9151
+ }
9152
+ this._picker.setPlacement(willOverflowRight ? 'br' : 'bottom');
9153
+ };
9112
9154
  _proto._getPanelHTML = function _getPanelHTML() {
9113
9155
  var _this_locale, _this_locale1, _this_locale2;
9114
9156
  var cloudRecLabel = ((_this_locale = this.locale) == null ? void 0 : _this_locale.REC_DROPDOWN_CLOUD_REC) || '云存储';
@@ -9265,7 +9307,7 @@
9265
9307
  var _this__options_props_urlInfo, _this__options_props, _this__options;
9266
9308
  return _extends$e({}, item, {
9267
9309
  // 加密图片的地址是有时效的
9268
- coverPic: item.coverPic + "&decodekey=" + ((_this__options = _this._options) == null ? void 0 : (_this__options_props = _this__options.props) == null ? void 0 : (_this__options_props_urlInfo = _this__options_props.urlInfo) == null ? void 0 : _this__options_props_urlInfo.validateCode)
9310
+ coverPic: item.coverPic ? item.coverPic + "&decodekey=" + ((_this__options = _this._options) == null ? void 0 : (_this__options_props = _this__options.props) == null ? void 0 : (_this__options_props_urlInfo = _this__options_props.urlInfo) == null ? void 0 : _this__options_props_urlInfo.validateCode) : ''
9269
9311
  });
9270
9312
  });
9271
9313
  }
@@ -11998,6 +12040,12 @@
11998
12040
  if (Controls[item.iconId]) {
11999
12041
  if (theme.options["" + item.iconId + "Options"] !== null) {
12000
12042
  var _theme_urlInfo2, _theme_urlInfo3, _theme_options1;
12043
+ if (theme.options.sdkType === 'custom' && [
12044
+ "alarmMessage",
12045
+ "broadcast"
12046
+ ].includes(item.iconId)) {
12047
+ continue;
12048
+ }
12001
12049
  // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
12002
12050
  theme.controls["" + item.iconId + "Control"] = new Controls[item.iconId](_extends$1({
12003
12051
  rootContainer: theme.$container,
@@ -14213,7 +14261,7 @@
14213
14261
  zh: zh,
14214
14262
  en: en
14215
14263
  };
14216
- /** 版本号 @since 0.0.1 */ Theme.THEME_VERSION = '3.1.7-beta.1';
14264
+ /** 版本号 @since 0.0.1 */ Theme.THEME_VERSION = '3.1.7-beta.3';
14217
14265
 
14218
14266
  // 不要动这里的代码, 这个出口是为了编译成 umd 规范的文件
14219
14267
 
package/dist/style.css CHANGED
@@ -33,7 +33,7 @@ body.ezplayer-body-mobile-noscroll{background-color:#000!important;height:100vh;
33
33
  .ezplayer-control-broadcast.ezplayer-active .ezplayer-icon-record-circle{color:var(--ezplayer-active-color,#407aff)}
34
34
  .ezplayer-control-aichat.ezplayer-active .ezplayer-icon-aichat{color:var(--ezplayer-active-color,#407aff)}
35
35
  .ezplayer-control-live .ezplayer-live-btn{cursor:pointer;font-size:14px;line-height:20px;padding:2px 6px;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.ezplayer-control-live.ezplayer-active .ezplayer-live-btn{color:var(--ezplayer-active-color,#407aff)}
36
- .ezplayer-control-rec-dropdown .ezplayer-rec-dropdown-btn{cursor:pointer;font-size:14px;line-height:20px;padding:2px 6px;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.ezplayer-control-rec-dropdown.ezplayer-active .ezplayer-rec-dropdown-btn{color:var(--ezplayer-active-color,#407aff)}.ezplayer-rec-dropdown-picker .ezplayer-rec-dropdown-panel{background-color:var(--ezplayer-panel-bg-color,rgba(0,0,0,.7));border-radius:var(--ezplayer-border-radius,8px);color:var(--ezplayer-default-color,#fff);padding:8px 0}.ezplayer-rec-dropdown-picker .ezplayer-rec-dropdown-list{list-style:none;margin:0;padding:0}.ezplayer-rec-dropdown-picker .ezplayer-rec-dropdown-item{cursor:pointer;font-size:14px;line-height:20px;padding:6px 20px;transition:color .2s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.ezplayer-rec-dropdown-picker .ezplayer-rec-dropdown-item.ezplayer-active,.ezplayer-rec-dropdown-picker .ezplayer-rec-dropdown-item:hover{color:var(--ezplayer-active-color,#407aff)}
36
+ .ezplayer-control-rec-dropdown .ezplayer-rec-dropdown-btn{cursor:pointer;font-size:14px;line-height:20px;padding:2px 6px;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.ezplayer-control-rec-dropdown.ezplayer-active .ezplayer-rec-dropdown-btn{color:var(--ezplayer-active-color,#407aff)}.ezplayer-rec-dropdown-picker.epicker-br{left:unset!important;right:0!important}.ezplayer-rec-dropdown-picker .ezplayer-rec-dropdown-panel{background-color:var(--ezplayer-panel-bg-color,rgba(0,0,0,.7));border-radius:var(--ezplayer-border-radius,8px);color:var(--ezplayer-default-color,#fff);padding:8px 0}.ezplayer-rec-dropdown-picker .ezplayer-rec-dropdown-list{list-style:none;margin:0;padding:0}.ezplayer-rec-dropdown-picker .ezplayer-rec-dropdown-item{cursor:pointer;font-size:14px;line-height:20px;padding:6px 20px;transition:color .2s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.ezplayer-rec-dropdown-picker .ezplayer-rec-dropdown-item.ezplayer-active,.ezplayer-rec-dropdown-picker .ezplayer-rec-dropdown-item:hover{color:var(--ezplayer-active-color,#407aff)}
37
37
  .ezplayer-control-rec-list .ezplayer-rec-list-btn{cursor:pointer;font-size:14px;line-height:20px;padding:2px 6px;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.ezplayer-control-rec-list.ezplayer-active .ezplayer-rec-list-btn{color:var(--ezplayer-active-color,#407aff)}.ezplayer-mobile-extend .ezplayer-control-rec-list{display:none}
38
38
  .ezplayer-control-alarm-message .ezplayer-alarm-message-btn{cursor:pointer;font-size:14px;line-height:20px;padding:2px 6px;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap}.ezplayer-mobile-extend .ezplayer-control-alarm-message{align-items:center;background-color:#f4f6fc;border:1px solid #ededed;border-radius:50%;box-sizing:border-box;cursor:pointer;display:inline-flex;font-size:18px;height:30px;justify-content:center;margin-left:8px;width:30px}
39
39
  .ezplayer-record-timer .ezplayer-icon-record-circle{font-size:14px}.ezplayer-record-timer{align-items:center;background-color:#ff4c5c;border-radius:24px;color:#fff;display:inline-flex;flex-direction:row;left:50%;padding:2px 6px;position:absolute;top:60px;transform:translateX(-50%);-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:3}.ezplayer-record-timer-time{font-weight:400;letter-spacing:1px;line-height:20px;margin-left:2px}
package/dist/style.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /*
2
- * @ezuikit/player-theme v3.1.7-beta.1
3
- * Copyright (c) 2026-09-23 13:45:09 Ezviz-OpenBiz
2
+ * @ezuikit/player-theme v3.1.7-beta.3
3
+ * Copyright (c) 2026-09-24 15:33:23 Ezviz-OpenBiz
4
4
  * Released under the MIT License.
5
5
  */
6
6
  require("./style.css");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ezuikit/player-theme",
3
- "version": "3.1.7-beta.1",
3
+ "version": "3.1.7-beta.3",
4
4
  "description": "player theme",
5
5
  "title": "theme",
6
6
  "main": "dist/index.cjs",