framework7 9.0.1 → 9.0.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.
@@ -1,13 +1,13 @@
1
1
  /**
2
- * Framework7 9.0.1
2
+ * Framework7 9.0.3
3
3
  * Full featured mobile HTML framework for building iOS & Android apps
4
4
  * https://framework7.io/
5
5
  *
6
- * Copyright 2014-2025 Vladimir Kharlampidi
6
+ * Copyright 2014-2026 Vladimir Kharlampidi
7
7
  *
8
8
  * Released under the MIT License
9
9
  *
10
- * Released on: November 26, 2025
10
+ * Released on: February 13, 2026
11
11
  */
12
12
 
13
13
  /*====================
@@ -4197,9 +4197,6 @@ li.list-group-title:after,
4197
4197
  --f7-button-small-font-weight: 500;
4198
4198
  --f7-segmented-strong-button-text-transform: none;
4199
4199
  --f7-segmented-strong-button-active-font-weight: 600;
4200
- --f7-button-tonal-bg-color: rgba(var(--f7-theme-color-rgb), 0.15);
4201
- --f7-button-tonal-pressed-bg-color: rgba(var(--f7-theme-color-rgb), 0.25);
4202
- --f7-button-tonal-text-color: var(--f7-theme-color);
4203
4200
  --f7-segmented-strong-bg-color: rgba(0, 0, 0, 0.07);
4204
4201
  --f7-segmented-strong-button-pressed-bg-color: rgba(0, 0, 0, 0.07);
4205
4202
  }
@@ -4208,6 +4205,13 @@ li.list-group-title:after,
4208
4205
  --f7-segmented-strong-bg-color: rgba(255, 255, 255, 0.1);
4209
4206
  --f7-segmented-strong-button-pressed-bg-color: rgba(255, 255, 255, 0.04);
4210
4207
  }
4208
+ .ios,
4209
+ .ios .dark,
4210
+ .ios [class*='color-'] {
4211
+ --f7-button-tonal-bg-color: rgba(var(--f7-theme-color-rgb), 0.15);
4212
+ --f7-button-tonal-pressed-bg-color: rgba(var(--f7-theme-color-rgb), 0.25);
4213
+ --f7-button-tonal-text-color: var(--f7-theme-color);
4214
+ }
4211
4215
  .md {
4212
4216
  --f7-button-font-size: 14px;
4213
4217
  /*
@@ -4743,7 +4747,6 @@ button .ripple-wave,
4743
4747
  .ios .toolbar-pane,
4744
4748
  .ios .navbar .left,
4745
4749
  .ios .navbar .right,
4746
- .ios .popover-inner,
4747
4750
  .ios .actions-group:not(.actions-grid .actions-group),
4748
4751
  .ios .searchbar-input-wrap,
4749
4752
  .ios .searchbar-disable-button,
@@ -12568,6 +12571,10 @@ label.item-radio.disabled,
12568
12571
  .md .calendar-header {
12569
12572
  overflow: hidden;
12570
12573
  }
12574
+ .md .toolbar .calendar-month-selector,
12575
+ .md .toolbar .calendar-year-selector {
12576
+ display: flex;
12577
+ }
12571
12578
  /* === Picker === */
12572
12579
  :root {
12573
12580
  --f7-picker-height: 260px;
@@ -13307,11 +13314,9 @@ table.data-table {
13307
13314
  opacity: 0.87 !important;
13308
13315
  }
13309
13316
  .data-table .sortable-cell.sortable-desc:after,
13310
- .data-table .sortable-cell.sortable-desc:after,
13311
- .data-table .table-head-label:after,
13312
- .data-table .sortable-cell.sortable-desc:before,
13317
+ .data-table .sortable-cell.sortable-desc .table-head-label:after,
13313
13318
  .data-table .sortable-cell.sortable-desc:before,
13314
- .data-table .table-head-label:before {
13319
+ .data-table .sortable-cell.sortable-desc .table-head-label:before {
13315
13320
  transform: rotate(180deg) !important;
13316
13321
  }
13317
13322
  .data-table.card .card-header,
@@ -1,13 +1,13 @@
1
1
  /**
2
- * Framework7 9.0.1
2
+ * Framework7 9.0.3
3
3
  * Full featured mobile HTML framework for building iOS & Android apps
4
4
  * https://framework7.io/
5
5
  *
6
- * Copyright 2014-2025 Vladimir Kharlampidi
6
+ * Copyright 2014-2026 Vladimir Kharlampidi
7
7
  *
8
8
  * Released under the MIT License
9
9
  *
10
- * Released on: November 26, 2025
10
+ * Released on: February 13, 2026
11
11
  */
12
12
 
13
13
  import $ from './shared/dom7.js';
@@ -1,13 +1,13 @@
1
1
  /**
2
- * Framework7 9.0.1
2
+ * Framework7 9.0.3
3
3
  * Full featured mobile HTML framework for building iOS & Android apps
4
4
  * https://framework7.io/
5
5
  *
6
- * Copyright 2014-2025 Vladimir Kharlampidi
6
+ * Copyright 2014-2026 Vladimir Kharlampidi
7
7
  *
8
8
  * Released under the MIT License
9
9
  *
10
- * Released on: November 26, 2025
10
+ * Released on: February 13, 2026
11
11
  */
12
12
 
13
13
  (function (global, factory) {
@@ -6599,7 +6599,7 @@
6599
6599
  touchRippleElements: '.ripple, .link, .item-link, .list label.item-content, .list-button, .links-list a, .button, button, .input-clear-button, .dialog-button, .tab-link, .item-radio, .item-checkbox, .actions-button, .searchbar-disable-button, .fab a, .checkbox, .radio, .data-table .sortable-cell:not(.input-cell), .notification-close-button, .stepper-button, .stepper-button-minus, .stepper-button-plus, .list.accordion-list .accordion-item-toggle',
6600
6600
  touchRippleInsetElements: '.ripple-inset, .icon-only, .searchbar-disable-button, .input-clear-button, .notification-close-button, .md .navbar .link.back',
6601
6601
  touchHighlight: true,
6602
- touchHighlightElements: '.toolbar-pane, .navbar .left, .navbar .right, .popover-inner, .actions-group:not(.actions-grid .actions-group), .searchbar-input-wrap, .searchbar-disable-button, .subnavbar, .searchbar-input-wrap .autocomplete-dropdown, .messagebar-area, .notification, .toast, .fab > a'
6602
+ touchHighlightElements: '.toolbar-pane, .navbar .left, .navbar .right, .actions-group:not(.actions-grid .actions-group), .searchbar-input-wrap, .searchbar-disable-button, .subnavbar, .searchbar-input-wrap .autocomplete-dropdown, .messagebar-area, .notification, .toast, .fab > a'
6603
6603
  }
6604
6604
  },
6605
6605
  create() {
@@ -13873,6 +13873,7 @@
13873
13873
  if (!el) return;
13874
13874
  if (e.type === 'pointerdown') {
13875
13875
  data.linkEls = el.querySelectorAll('.tab-link');
13876
+ data.activeIndex = [...data.linkEls].findIndex(link => link.classList.contains('tab-link-active'));
13876
13877
  data.rect = toolbarPaneEl.getBoundingClientRect();
13877
13878
  data.touched = true;
13878
13879
  setHighlightOnTouch(data, e);
@@ -13890,6 +13891,18 @@
13890
13891
  unsetHighlightOnTouch(data);
13891
13892
  stopAnimation(data);
13892
13893
  }
13894
+ if (e.type === 'pointercancel') {
13895
+ if (!data.touched) return;
13896
+ data.touched = false;
13897
+ data.moved = false;
13898
+ data.setTransform = null;
13899
+ stopAnimation(data);
13900
+ if (highlightEl) {
13901
+ highlightEl.classList.remove('tab-link-highlight-pressed');
13902
+ highlightEl.style.transform = `translateX(${data.activeIndex * 100}%)`;
13903
+ highlightEl.style.transitionTimingFunction = '';
13904
+ }
13905
+ }
13893
13906
  };
13894
13907
  el.addEventListener('touchstart', el.f7ToolbarOnPointer, {
13895
13908
  passive: false
@@ -24389,6 +24402,10 @@
24389
24402
  super(params, [app]);
24390
24403
  const calendar = this;
24391
24404
  calendar.params = extend$3({}, app.params.calendar, params);
24405
+ // dateFormat should not be deep-merged, instance value must fully replace app default
24406
+ if (typeof params.dateFormat !== 'undefined') {
24407
+ calendar.params.dateFormat = params.dateFormat;
24408
+ }
24392
24409
  let $containerEl;
24393
24410
  if (calendar.params.containerEl) {
24394
24411
  $containerEl = $(calendar.params.containerEl);
@@ -25816,6 +25833,7 @@
25816
25833
  toolbar: calendar.params.monthPickerToolbar,
25817
25834
  rotateEffect: false,
25818
25835
  toolbarCloseText: calendar.params.monthPickerCloseText,
25836
+ renderToolbar: picker => `<div class="toolbar toolbar-top"><div class="toolbar-inner"><div class="left"></div><div class="right"><a class="link popover-close"><i class="icon icon-close"></i>${picker.params.toolbarCloseText ? `<span>${picker.params.toolbarCloseText}</span>` : ''}</a></div></div></div>`,
25819
25837
  cols: [{
25820
25838
  values,
25821
25839
  displayValues
@@ -25881,6 +25899,7 @@
25881
25899
  toolbar: calendar.params.yearPickerToolbar,
25882
25900
  rotateEffect: false,
25883
25901
  toolbarCloseText: calendar.params.yearPickerCloseText,
25902
+ renderToolbar: picker => `<div class="toolbar toolbar-top"><div class="toolbar-inner"><div class="left"></div><div class="right"><a class="link popover-close"><i class="icon icon-close"></i>${picker.params.toolbarCloseText ? `<span>${picker.params.toolbarCloseText}</span>` : ''}</a></div></div></div>`,
25884
25903
  cols: [{
25885
25904
  values: years
25886
25905
  }]
@@ -25949,6 +25968,7 @@
25949
25968
  toolbar: calendar.params.timePickerToolbar,
25950
25969
  rotateEffect: false,
25951
25970
  toolbarCloseText: calendar.params.timePickerCloseText,
25971
+ renderToolbar: picker => `<div class="toolbar toolbar-top"><div class="toolbar-inner"><div class="left"></div><div class="right"><a class="link popover-close"><i class="icon icon-close"></i>${picker.params.toolbarCloseText ? `<span>${picker.params.toolbarCloseText}</span>` : ''}</a></div></div></div>`,
25952
25972
  cols: [{
25953
25973
  values: hoursArr
25954
25974
  }, {