estreui 1.2.0 → 1.2.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "estreui",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "description": "EstreUI Core Library - A comprehensive UI framework for web applications",
5
5
  "main": "scripts/estreUi.js",
6
6
  "files": [
@@ -490,15 +490,85 @@ const isv3 = '="3"]';
490
490
  /** isv4(val) = ="val"] */
491
491
  const isv4 = val => '="' + val + '"]';
492
492
 
493
- // CSS variable name constant
494
- const v = {
495
- supportPrefix: "--support-",
496
- s: function(method) { return this.supportPrefix + method; },
497
-
498
- scalableMethod: "--scalable-method",
493
+ /** CSS value alias constant and Kebab Case Characters loopback (2 letters and more) */
494
+ const v = new Proxy({
495
+ a(val) { return "attr(" + v[val] + ")"; },
496
+ get b() { return ; }, // *reserved*
497
+ get c() { return "center"; },
498
+ get d() { return ; }, // *reserved*
499
+ get e() { return ; }, // *reserved*
500
+ get f() { return "-webkit-fill-available"; },
501
+ get g() { return ; }, // *reserved*
502
+ get h() { return "100%"; },
503
+ get i() { return ; }, // *reserved*
504
+ get j() { return ; }, // *reserved*
505
+ get k() { return ; }, // *reserved*
506
+ get l() { return ; }, // *reserved*
507
+ get m() { return ; }, // *reserved*
508
+ get n() { return "no-repeat"; },
509
+ get o() { return ; }, // *reserved*
510
+ get p() { return ; }, // *reserved*
511
+ get q() { return ; }, // *reserved*
512
+ get r() { return ; }, // *reserved*
513
+ get s() { return ; }, // *reserved*
514
+ get t() { return "transparent"; },
515
+ u(val) {
516
+ const hasSQ = val.includes(sq);
517
+ const hasDQ = val.includes(dq);
518
+ const beginsSQ = val.startsWith(sq);
519
+ const beginsDQ = val.startsWith(dq);
520
+ return "url(" + ((hasSQ && hasDQ) || beginsSQ || beginsDQ ? val : hasSQ ? dq + val + dq : sq + val + sq) + ")";
521
+ },
522
+ get v() { return ; }, // *reserved*
523
+ get w() { return ; }, // *reserved*
524
+ get x() { return ; }, // *reserved*
525
+ get y() { return ; }, // *reserved*
526
+ get z() { return t0; },
527
+ }, {
528
+ get: (target, prop) => {
529
+ if (prop in target) return target[prop];
530
+ else return prop.replace(/([a-z0-9])([A-Z])/g, '$1-$2')
531
+ .replace(/([A-Z])([A-Z][a-z])/g, '$1-$2')
532
+ .replace(/^([A-Z])/, '-$1').toLowerCase();
533
+ }
534
+ });
499
535
 
500
- eoo: eoo
501
- };
536
+ /** CSS variable name constant and Dashed Kebab Case Characters loopback (2 letters and more) */
537
+ const b = new Proxy({
538
+ get a() { return ; }, // *reserved*
539
+ get b() { return ; }, // *reserved*
540
+ get c() { return ; }, // *reserved*
541
+ get d() { return ; }, // *reserved*
542
+ get e() { return ; }, // *reserved*
543
+ get f() { return ; }, // *reserved*
544
+ get g() { return ; }, // *reserved*
545
+ get h() { return ; }, // *reserved*
546
+ get i() { return ; }, // *reserved*
547
+ get j() { return ; }, // *reserved*
548
+ get k() { return ; }, // *reserved*
549
+ get l() { return ; }, // *reserved*
550
+ get m() { return "--scalable-method"; },
551
+ get n() { return ; }, // *reserved*
552
+ get o() { return ; }, // *reserved*
553
+ get p() { return "--support-"; },
554
+ get q() { return ; }, // *reserved*
555
+ get r() { return ; }, // *reserved*
556
+ s(val) { return this.p + v[val]; },
557
+ get t() { return ; }, // *reserved*
558
+ get u() { return ; }, // *reserved*
559
+ get v() { return ; }, // *reserved*
560
+ get w() { return ; }, // *reserved*
561
+ get x() { return "--ui-extensive"; },
562
+ get y() { return ; }, // *reserved*
563
+ get z() { return ; }, // *reserved*
564
+ }, {
565
+ get: (target, prop) => {
566
+ if (prop in target) return target[prop];
567
+ else return hp + prop.replace(/([a-z0-9])([A-Z])/g, '$1-$2')
568
+ .replace(/([A-Z])([A-Z][a-z])/g, '$1-$2')
569
+ .replace(/^([A-Z])/, '-$1').toLowerCase();
570
+ }
571
+ });
502
572
 
503
573
  /** CSS support check */
504
574
  const csc = method => doc.$b.css(v.s(method)) == t1;
@@ -488,7 +488,7 @@ const eds = {
488
488
 
489
489
 
490
490
  // Popup browser
491
- function estrePopupBrowser(options = {}) {
491
+ function estrePopupBrowser(options = {}, instanceOrigin) {
492
492
  return new Promise((resolve) => pageManager.bringPage("!popupBrowser", {
493
493
  data: options,
494
494
  onBeforeAttach(handle, iframe) {
@@ -513,7 +513,7 @@ function estrePopupBrowser(options = {}) {
513
513
  onClickForward(handle, iframe, url) {
514
514
  return this?.data?.callbackForward?.(handle, iframe, url);
515
515
  },
516
- }));
516
+ }, instanceOrigin));
517
517
  }
518
518
 
519
519
  const popupBrowser = (src = "about:blank", name = "webview",
@@ -539,7 +539,7 @@ const closePopupBrowserWhenOnTop = async () => {
539
539
 
540
540
 
541
541
  // Toast up slide dialog
542
- function estreToastAlert(options = {}) {
542
+ function estreToastAlert(options = {}, instanceOrigin) {
543
543
  return new Promise((resolve) => pageManager.bringPage("!toastAlert", {
544
544
  data: options,
545
545
  onOk() {
@@ -550,7 +550,7 @@ function estreToastAlert(options = {}) {
550
550
  this?.data?.callbackDissmiss?.();
551
551
  resolve(undefined);
552
552
  },
553
- }));
553
+ }, instanceOrigin));
554
554
  }
555
555
 
556
556
  const toastAlert = (title, message,
@@ -560,7 +560,7 @@ const toastAlert = (title, message,
560
560
  ) => estreToastAlert({ title, message, callbackOk, callbackDissmiss, ok });
561
561
 
562
562
 
563
- function estreToastConfirm(options = {}) {
563
+ function estreToastConfirm(options = {}, instanceOrigin) {
564
564
  return new Promise((resolve) => pageManager.bringPage("!toastConfirm", {
565
565
  data: options,
566
566
  onPositive() {
@@ -579,7 +579,7 @@ function estreToastConfirm(options = {}) {
579
579
  this?.data?.callbackDissmiss?.();
580
580
  resolve(undefined);
581
581
  },
582
- }));
582
+ }, instanceOrigin));
583
583
  }
584
584
 
585
585
  const toastConfirm = (title, message,
@@ -633,7 +633,7 @@ const toastPrompt = (title,
633
633
  ) => estreToastPrompt({ title, message, callbackConfirm, callbackDissmiss, confirm, placeholder, type, value });
634
634
 
635
635
 
636
- function estreToastOption(options = {}) {
636
+ function estreToastOption(options = {}, instanceOrigin) {
637
637
  return new Promise((resolve) => pageManager.bringPage("!toastOption", {
638
638
  data: options,
639
639
  onSelected(key, value) {
@@ -644,7 +644,7 @@ function estreToastOption(options = {}) {
644
644
  this?.data?.callbackDissmiss?.();
645
645
  resolve(undefined);
646
646
  },
647
- }));
647
+ }, instanceOrigin));
648
648
  }
649
649
 
650
650
  const toastOption = (title = "", message = "",
@@ -708,7 +708,7 @@ const selectionToast = (options = ["option A", "option B", "option C"],
708
708
  ) => toastSelection(title, message, minSelection, maxSelection, options, defaultSelected, callbackConfirm, callbackSelect, callbackDissmiss, callbackAnother, confirm, another);
709
709
 
710
710
 
711
- function estreToastDials(options = {}) {
711
+ function estreToastDials(options = {}, instanceOrigin) {
712
712
  const arrays = [c.table, c.initial, c.aligns, c.prefixes, c.suffixes, c.dividers];
713
713
  for (const name of arrays) if (!typeString(options[name])) options[name] = Jcodd.coddify(options[name]);
714
714
  options.stretch = !options.stretch ? "" : t1;
@@ -733,7 +733,7 @@ function estreToastDials(options = {}) {
733
733
  resolve(undefined);
734
734
  },
735
735
  };
736
- return pageManager.bringPage("!toastDials", intent);
736
+ return pageManager.bringPage("!toastDials", intent, instanceOrigin);
737
737
  });
738
738
  return new class {
739
739
  get data() { return intent.data; }
@@ -784,7 +784,7 @@ classicConfirm = confirm;
784
784
  classicPrompt = prompt;
785
785
 
786
786
 
787
- function estreAlert(options = {}) {
787
+ function estreAlert(options = {}, instanceOrigin) {
788
788
  return new Promise((resolve) => pageManager.bringPage("!alert", {
789
789
  data: options,
790
790
  onOk() {
@@ -795,7 +795,7 @@ function estreAlert(options = {}) {
795
795
  this?.data?.callbackDissmiss?.();
796
796
  resolve(undefined);
797
797
  },
798
- }));
798
+ }, instanceOrigin));
799
799
  }
800
800
 
801
801
  alert = (title, message,
@@ -805,7 +805,7 @@ alert = (title, message,
805
805
  ) => tu(title) ? classicAlert() : estreAlert({ title, message, callbackOk, callbackDissmiss, ok });
806
806
 
807
807
 
808
- function estreConfirm(options = {}) {
808
+ function estreConfirm(options = {}, instanceOrigin) {
809
809
  return new Promise((resolve) => pageManager.bringPage("!confirm", {
810
810
  data: options,
811
811
  onPositive() {
@@ -824,7 +824,7 @@ function estreConfirm(options = {}) {
824
824
  this?.data?.callbackDissmiss?.();
825
825
  resolve(undefined);
826
826
  },
827
- }));
827
+ }, instanceOrigin));
828
828
  }
829
829
 
830
830
  confirm = (title, message,
@@ -841,7 +841,7 @@ confirm = (title, message,
841
841
  }
842
842
 
843
843
 
844
- function estrePrompt(options = {}) {
844
+ function estrePrompt(options = {}, instanceOrigin) {
845
845
  return new Promise((resolve) => pageManager.bringPage("!prompt", {
846
846
  data: options,
847
847
  onPromptFocus(input, text, event) {
@@ -867,7 +867,7 @@ function estrePrompt(options = {}) {
867
867
  this?.data?.callbackDissmiss?.();
868
868
  resolve(undefined);
869
869
  },
870
- }));
870
+ }, instanceOrigin));
871
871
  }
872
872
 
873
873
  prompt = (title,
@@ -2839,7 +2839,7 @@ class EstrePageHostHandle extends EstrePageHandle {
2839
2839
  };
2840
2840
  set prevSubPageId(id) {
2841
2841
  if (id == null) return;
2842
- if (this.#prevSubPageIds.has(id)) this.$prevSubPages.delete(id);
2842
+ if (this.#prevSubPageIds.has(id)) this.#prevSubPageIds.delete(id);
2843
2843
  this.#prevSubPageIds.add(id);
2844
2844
  };
2845
2845
 
@@ -15501,7 +15501,7 @@ const estreUi = {
15501
15501
  return !unhandled;
15502
15502
  },
15503
15503
 
15504
- async closeInstantBlinded(id, instanceOrigin, isTermination = !component.isStatic) {
15504
+ async closeInstantBlinded(id, instanceOrigin, isTermination) {
15505
15505
  let component = this.blindSections[id + (instanceOrigin?.let(it => "^" + it) ?? "")];
15506
15506
  if (component == null) {
15507
15507
  if (instanceOrigin != null) return null;
@@ -15520,6 +15520,7 @@ const estreUi = {
15520
15520
  } else return null;
15521
15521
  } else {
15522
15522
  if (!component.$host.hasClass("home")) {
15523
+ isTermination ??= !component.isStatic;
15523
15524
  const closed = await component.close(false, isTermination);
15524
15525
  setTimeout(async _ => {
15525
15526
  const $components = this.$blindSections.filter(naiv(m.id, id));
@@ -31,7 +31,7 @@ SOFTWARE.
31
31
  // Collections of bypass for process codes takes be inline,
32
32
  // and monkey patching like as modern languages.
33
33
  //
34
- // v0.7.0 / release 2026.02.06
34
+ // v0.7.1 / release 2026.03.31
35
35
  //
36
36
  // Author: Estre Soliette
37
37
  // Established: 2025.01.05
@@ -758,7 +758,7 @@ defineGetterAndSetter(Function, "new", function () { return new this(); });
758
758
 
759
759
 
760
760
  // additional global prototype functions
761
- defineGetterAndSetterPlex("it", function () { return classCase(this, { [_BOOLEAN]: it => Boolean(it), [_NUMBER]: it => Number(it), [_STRING]: it => String(it), [_BIG_INT]: it => BigInt(it), [DEFAULT]: it => it }); });
761
+ defineGetterAndSetterPlex("it", function () { return classCase(this, { [_BOOLEAN]: it => it.valueOf(), [_NUMBER]: it => Number(it), [_STRING]: it => String(it), [_BIG_INT]: it => BigInt(it), [DEFAULT]: it => it }); });
762
762
 
763
763
  definePropertyPlex("matchCase", function () { return matchCase(this.it, ...arguments); });
764
764
  definePropertyPlex("equalCase", function () { return equalCase(this.it, ...arguments); });
package/serviceWorker.js CHANGED
@@ -1,4 +1,4 @@
1
- const INSTALLATION_VERSION_NAME = "1.2.0-r20260228";
1
+ const INSTALLATION_VERSION_NAME = "1.2.1-r20260308";
2
2
  // ^^ Use for check new update "Native application(webview) version(or Android/iOS version combo) - PWA release version"
3
3
  // ex) "1.0.1/1.0.0-r20251101k"
4
4
 
@@ -21,7 +21,7 @@ const INSTALLATION_FILE_LIST = [
21
21
 
22
22
 
23
23
  // Common files cache - Be changes some time but, well not changed very often
24
- const CACHE_NAME_COMMON_FILES = "common-files-cache-v1-20260228";
24
+ const CACHE_NAME_COMMON_FILES = "common-files-cache-v1-20260308";
25
25
 
26
26
  const COMMON_FILES_TO_CACHE = [
27
27
  "./",
@@ -170,6 +170,10 @@ body .tp_tiled_btn.padded { padding: 0 12px; }
170
170
  body .tp_tiled_btn.padded > span { padding: 0 4px; }
171
171
  body .tp_tiled_btn.fit_pad_h { padding-left: 0; padding-right: 0; }
172
172
  body .tp_tiled_btn.fit_pad_v { padding-top: 0; padding-bottom: 0; }
173
+ body .tp_tiled_btn:disabled { opacity: 0.5; }
174
+ body .tp_tiled_btn:disabled:active { cursor: not-allowed; }
175
+ body .tp_tiled_btn[data-disabled="1"] { opacity: 0.5; }
176
+ body .tp_tiled_btn[data-disabled="1"]:active { cursor: not-allowed; }
173
177
 
174
178
  /* extra */
175
179
  body img.logo { filter: drop-shadow(0 0 5px rgb(var(--cglr) / 60%)); }