@faqir-ui/core 1.0.0 → 1.1.1
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/README.md +45 -5
- package/cdn.json +38 -22
- package/dist/faqir-core.js +121 -57
- package/dist/faqir-core.min.js +3 -3
- package/dist/faqir-core.min.js.map +3 -3
- package/dist/faqir-core.mjs +75 -59
- package/dist/faqir.aurora.css +1209 -507
- package/dist/faqir.brutalist.css +1184 -489
- package/dist/faqir.candy.css +14152 -0
- package/dist/faqir.clinical.css +14152 -0
- package/dist/faqir.contrast.css +1198 -526
- package/dist/faqir.default.css +1261 -588
- package/dist/faqir.document-serif.css +1211 -491
- package/dist/faqir.document.css +1193 -490
- package/dist/faqir.editorial-document.css +14116 -0
- package/dist/faqir.editorial.css +14152 -0
- package/dist/faqir.fintech.css +14152 -0
- package/dist/faqir.glass.css +1214 -517
- package/dist/faqir.ink-document.css +14116 -0
- package/dist/faqir.ink.css +14127 -0
- package/dist/faqir.luxe.css +14211 -0
- package/dist/faqir.midnight.css +1229 -507
- package/dist/faqir.neo.css +14153 -0
- package/dist/faqir.neumorph.css +14151 -0
- package/dist/faqir.nordic.css +14151 -0
- package/dist/faqir.organic.css +14152 -0
- package/dist/faqir.paper.css +1200 -508
- package/dist/faqir.slate.css +1296 -564
- package/dist/faqir.soft.css +1180 -494
- package/dist/faqir.sunset.css +14153 -0
- package/dist/faqir.swiss-document.css +14116 -0
- package/dist/faqir.swiss.css +14153 -0
- package/dist/faqir.terminal.css +1187 -491
- package/dist/plugins/faqir-collapse.js +1 -1
- package/dist/plugins/faqir-intersect.js +2 -0
- package/dist/plugins/faqir-mask.js +27 -17
- package/dist/plugins/faqir-rules.js +63 -0
- package/dist/plugins/faqir-validate.js +471 -58
- package/dist/sri.json +36 -20
- package/faqir-core.d.ts +119 -6
- package/package.json +1 -1
package/dist/faqir-core.mjs
CHANGED
|
@@ -126,6 +126,7 @@ var require_faqir_core = __commonJS((exports, module) => {
|
|
|
126
126
|
var iterations = 0;
|
|
127
127
|
while (pendingEffects.size > 0) {
|
|
128
128
|
if (++iterations > 100) {
|
|
129
|
+
console.warn("[Faqir] Effect loop: dropped " + pendingEffects.size + " effect(s) after 100 flushes; effects keep re-triggering each other");
|
|
129
130
|
pendingEffects.clear();
|
|
130
131
|
break;
|
|
131
132
|
}
|
|
@@ -631,6 +632,14 @@ var require_faqir_core = __commonJS((exports, module) => {
|
|
|
631
632
|
function signalOf(ac) {
|
|
632
633
|
return ac ? ac.signal : undefined;
|
|
633
634
|
}
|
|
635
|
+
function locate(id, row) {
|
|
636
|
+
var items = scope[name];
|
|
637
|
+
for (var i = 0;i < items.length; i++) {
|
|
638
|
+
if (row ? items[i] === row : items[i] && items[i][idKey] === id)
|
|
639
|
+
return i;
|
|
640
|
+
}
|
|
641
|
+
return -1;
|
|
642
|
+
}
|
|
634
643
|
scope[name] = [];
|
|
635
644
|
scope[name + "Loading"] = false;
|
|
636
645
|
scope[name + "Error"] = null;
|
|
@@ -673,11 +682,10 @@ var require_faqir_core = __commonJS((exports, module) => {
|
|
|
673
682
|
if (destroyed)
|
|
674
683
|
return Promise.resolve(null);
|
|
675
684
|
scope[name + "Error"] = null;
|
|
676
|
-
var
|
|
685
|
+
var temp = null;
|
|
677
686
|
if (isOptimistic) {
|
|
678
|
-
|
|
679
|
-
scope[name].
|
|
680
|
-
tempIndex = scope[name].length - 1;
|
|
687
|
+
scope[name].push(Object.assign({}, payload, { _pending: true }));
|
|
688
|
+
temp = scope[name][scope[name].length - 1];
|
|
681
689
|
}
|
|
682
690
|
var ac = beginRequest();
|
|
683
691
|
return fetch(endpoint, {
|
|
@@ -693,9 +701,10 @@ var require_faqir_core = __commonJS((exports, module) => {
|
|
|
693
701
|
endRequest(ac);
|
|
694
702
|
if (destroyed)
|
|
695
703
|
return null;
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
704
|
+
var at = temp ? locate(null, temp) : -1;
|
|
705
|
+
if (at >= 0) {
|
|
706
|
+
scope[name][at] = created;
|
|
707
|
+
} else if (!temp || !created || created[idKey] == null || locate(created[idKey]) < 0) {
|
|
699
708
|
scope[name].push(created);
|
|
700
709
|
}
|
|
701
710
|
return created;
|
|
@@ -704,9 +713,9 @@ var require_faqir_core = __commonJS((exports, module) => {
|
|
|
704
713
|
if (destroyed)
|
|
705
714
|
return null;
|
|
706
715
|
scope[name + "Error"] = e.message;
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
716
|
+
var at = temp ? locate(null, temp) : -1;
|
|
717
|
+
if (at >= 0)
|
|
718
|
+
scope[name].splice(at, 1);
|
|
710
719
|
return null;
|
|
711
720
|
});
|
|
712
721
|
},
|
|
@@ -715,20 +724,14 @@ var require_faqir_core = __commonJS((exports, module) => {
|
|
|
715
724
|
return Promise.resolve(null);
|
|
716
725
|
scope[name + "Error"] = null;
|
|
717
726
|
var items = scope[name];
|
|
718
|
-
var idx =
|
|
719
|
-
for (var i = 0;i < items.length; i++) {
|
|
720
|
-
if (items[i][idKey] === id) {
|
|
721
|
-
idx = i;
|
|
722
|
-
break;
|
|
723
|
-
}
|
|
724
|
-
}
|
|
727
|
+
var idx = locate(id);
|
|
725
728
|
var snapshot = null;
|
|
726
729
|
if (isOptimistic && idx >= 0) {
|
|
727
730
|
snapshot = Object.assign({}, items[idx]);
|
|
728
731
|
Object.assign(items[idx], payload);
|
|
729
732
|
}
|
|
730
733
|
var ac = beginRequest();
|
|
731
|
-
return fetch(endpoint + "/" + id, {
|
|
734
|
+
return fetch(endpoint + "/" + encodeURIComponent(id), {
|
|
732
735
|
method: "PATCH",
|
|
733
736
|
headers: { "Content-Type": "application/json" },
|
|
734
737
|
body: JSON.stringify(payload),
|
|
@@ -741,17 +744,18 @@ var require_faqir_core = __commonJS((exports, module) => {
|
|
|
741
744
|
endRequest(ac);
|
|
742
745
|
if (destroyed)
|
|
743
746
|
return null;
|
|
744
|
-
|
|
745
|
-
|
|
747
|
+
var at = locate(id);
|
|
748
|
+
if (at >= 0)
|
|
749
|
+
scope[name][at] = updated;
|
|
746
750
|
return updated;
|
|
747
751
|
}).catch(function(e) {
|
|
748
752
|
endRequest(ac);
|
|
749
753
|
if (destroyed)
|
|
750
754
|
return null;
|
|
751
755
|
scope[name + "Error"] = e.message;
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
756
|
+
var at = snapshot ? locate(id) : -1;
|
|
757
|
+
if (at >= 0)
|
|
758
|
+
scope[name][at] = snapshot;
|
|
755
759
|
return null;
|
|
756
760
|
});
|
|
757
761
|
},
|
|
@@ -760,34 +764,28 @@ var require_faqir_core = __commonJS((exports, module) => {
|
|
|
760
764
|
return Promise.resolve();
|
|
761
765
|
scope[name + "Error"] = null;
|
|
762
766
|
var items = scope[name];
|
|
763
|
-
var idx =
|
|
764
|
-
for (var i = 0;i < items.length; i++) {
|
|
765
|
-
if (items[i][idKey] === id) {
|
|
766
|
-
idx = i;
|
|
767
|
-
break;
|
|
768
|
-
}
|
|
769
|
-
}
|
|
767
|
+
var idx = locate(id);
|
|
770
768
|
var snapshot = null;
|
|
771
769
|
if (isOptimistic && idx >= 0) {
|
|
772
770
|
snapshot = items[idx];
|
|
773
771
|
items.splice(idx, 1);
|
|
774
772
|
}
|
|
775
773
|
var ac = beginRequest();
|
|
776
|
-
return fetch(endpoint + "/" + id, { method: "DELETE", signal: signalOf(ac) }).then(function(res) {
|
|
774
|
+
return fetch(endpoint + "/" + encodeURIComponent(id), { method: "DELETE", signal: signalOf(ac) }).then(function(res) {
|
|
777
775
|
if (!res.ok)
|
|
778
776
|
throw new Error(res.status + " " + res.statusText);
|
|
779
777
|
endRequest(ac);
|
|
780
778
|
if (destroyed)
|
|
781
779
|
return;
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
780
|
+
var at = isOptimistic ? -1 : locate(id);
|
|
781
|
+
if (at >= 0)
|
|
782
|
+
scope[name].splice(at, 1);
|
|
785
783
|
}).catch(function(e) {
|
|
786
784
|
endRequest(ac);
|
|
787
785
|
if (destroyed)
|
|
788
786
|
return;
|
|
789
787
|
scope[name + "Error"] = e.message;
|
|
790
|
-
if (
|
|
788
|
+
if (snapshot && locate(id) < 0) {
|
|
791
789
|
scope[name].splice(idx, 0, snapshot);
|
|
792
790
|
}
|
|
793
791
|
});
|
|
@@ -1258,15 +1256,11 @@ var require_faqir_core = __commonJS((exports, module) => {
|
|
|
1258
1256
|
});
|
|
1259
1257
|
var inputHandler = function() {
|
|
1260
1258
|
var value = el.value;
|
|
1261
|
-
if (modifiers.has("number"))
|
|
1262
|
-
value = parseFloat(value) || 0;
|
|
1263
1259
|
if (modifiers.has("trim"))
|
|
1264
1260
|
value = value.trim();
|
|
1265
|
-
if (
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
writeModel(prop, value, scope, el);
|
|
1269
|
-
}
|
|
1261
|
+
if (modifiers.has("number"))
|
|
1262
|
+
value = parseFloat(value) || 0;
|
|
1263
|
+
writeModel(prop, value, scope, el);
|
|
1270
1264
|
};
|
|
1271
1265
|
if (modifiers.has("debounce")) {
|
|
1272
1266
|
inputHandler = debounce(inputHandler, 300);
|
|
@@ -1501,16 +1495,20 @@ var require_faqir_core = __commonJS((exports, module) => {
|
|
|
1501
1495
|
}) : [];
|
|
1502
1496
|
var oldMap = new Map;
|
|
1503
1497
|
for (var i = 0;i < currentEntries.length; i++) {
|
|
1504
|
-
|
|
1498
|
+
var k = currentEntries[i].key;
|
|
1499
|
+
if (oldMap.has(k))
|
|
1500
|
+
oldMap.get(k).push(currentEntries[i]);
|
|
1501
|
+
else
|
|
1502
|
+
oldMap.set(k, [currentEntries[i]]);
|
|
1505
1503
|
}
|
|
1506
1504
|
var n = items.length;
|
|
1507
1505
|
var newEntries = new Array(n);
|
|
1508
1506
|
var source = new Array(n);
|
|
1509
1507
|
for (var i = 0;i < n; i++) {
|
|
1510
1508
|
var key = keyFor(items[i], i);
|
|
1511
|
-
var
|
|
1509
|
+
var olds = oldMap.get(key);
|
|
1510
|
+
var entry = olds && olds.shift();
|
|
1512
1511
|
if (entry !== undefined) {
|
|
1513
|
-
oldMap.delete(key);
|
|
1514
1512
|
entry.scope[itemName] = items[i];
|
|
1515
1513
|
entry.scope[indexName] = i;
|
|
1516
1514
|
source[i] = entry.__i + 1;
|
|
@@ -1520,10 +1518,12 @@ var require_faqir_core = __commonJS((exports, module) => {
|
|
|
1520
1518
|
}
|
|
1521
1519
|
newEntries[i] = entry;
|
|
1522
1520
|
}
|
|
1523
|
-
oldMap.forEach(function(
|
|
1524
|
-
for (var
|
|
1525
|
-
|
|
1526
|
-
|
|
1521
|
+
oldMap.forEach(function(olds2) {
|
|
1522
|
+
for (var e = 0;e < olds2.length; e++) {
|
|
1523
|
+
for (var j2 = 0;j2 < olds2[e].nodes.length; j2++) {
|
|
1524
|
+
destroyScope(olds2[e].nodes[j2]);
|
|
1525
|
+
olds2[e].nodes[j2].remove();
|
|
1526
|
+
}
|
|
1527
1527
|
}
|
|
1528
1528
|
});
|
|
1529
1529
|
var seq = getSequence(source);
|
|
@@ -3532,13 +3532,17 @@ var require_faqir_core = __commonJS((exports, module) => {
|
|
|
3532
3532
|
}
|
|
3533
3533
|
let cancelExitWait = null;
|
|
3534
3534
|
function open() {
|
|
3535
|
+
if (root.dataset.state === "open" && focusCleanup)
|
|
3536
|
+
return;
|
|
3535
3537
|
cancelExitWait?.();
|
|
3536
3538
|
cancelExitWait = null;
|
|
3537
|
-
|
|
3539
|
+
if (!focusCleanup)
|
|
3540
|
+
previouslyFocused = document.activeElement;
|
|
3538
3541
|
root.dataset.state = "open";
|
|
3539
3542
|
overlay.hidden = false;
|
|
3540
3543
|
panel.hidden = false;
|
|
3541
|
-
|
|
3544
|
+
if (!focusCleanup)
|
|
3545
|
+
focusCleanup = trapFocus(panel);
|
|
3542
3546
|
focusInitial();
|
|
3543
3547
|
}
|
|
3544
3548
|
function close() {
|
|
@@ -8666,7 +8670,7 @@ var require_faqir_core = __commonJS((exports, module) => {
|
|
|
8666
8670
|
}
|
|
8667
8671
|
function dismiss(id) {
|
|
8668
8672
|
const entry = toasts.get(id);
|
|
8669
|
-
if (!entry)
|
|
8673
|
+
if (!entry || entry.cancelExitWait)
|
|
8670
8674
|
return;
|
|
8671
8675
|
const { el, timer, closeBtn, onCloseClick, actionBtn, onActionClick } = entry;
|
|
8672
8676
|
if (timer)
|
|
@@ -9519,6 +9523,9 @@ var require_faqir_core = __commonJS((exports, module) => {
|
|
|
9519
9523
|
},
|
|
9520
9524
|
warnings: function() {
|
|
9521
9525
|
return devHooks ? devHooks.warnings() : [];
|
|
9526
|
+
},
|
|
9527
|
+
report: function(message, el) {
|
|
9528
|
+
return false;
|
|
9522
9529
|
}
|
|
9523
9530
|
};
|
|
9524
9531
|
function initController(name, el) {
|
|
@@ -9547,7 +9554,7 @@ var require_faqir_core = __commonJS((exports, module) => {
|
|
|
9547
9554
|
continue;
|
|
9548
9555
|
if (rootEl.__faqirScope) {
|
|
9549
9556
|
processed.add(rootEl);
|
|
9550
|
-
var seen = rootEl.querySelectorAll("[l-data]");
|
|
9557
|
+
var seen = rootEl.querySelectorAll("[l-data], [data-ui]");
|
|
9551
9558
|
for (var sd = 0;sd < seen.length; sd++)
|
|
9552
9559
|
processed.add(seen[sd]);
|
|
9553
9560
|
continue;
|
|
@@ -9573,7 +9580,7 @@ var require_faqir_core = __commonJS((exports, module) => {
|
|
|
9573
9580
|
}
|
|
9574
9581
|
if (!skipThis) {
|
|
9575
9582
|
initTree(rootEl, null);
|
|
9576
|
-
var descendants = rootEl.querySelectorAll("[l-data]");
|
|
9583
|
+
var descendants = rootEl.querySelectorAll("[l-data], [data-ui]");
|
|
9577
9584
|
for (var d = 0;d < descendants.length; d++)
|
|
9578
9585
|
processed.add(descendants[d]);
|
|
9579
9586
|
processed.add(rootEl);
|
|
@@ -9607,7 +9614,7 @@ var require_faqir_core = __commonJS((exports, module) => {
|
|
|
9607
9614
|
if (uiName && controllerRegistry[uiName]) {
|
|
9608
9615
|
initController(uiName, node);
|
|
9609
9616
|
}
|
|
9610
|
-
if (node.hasAttribute && node.hasAttribute("l-data")) {
|
|
9617
|
+
if (node.__faqirScope) {} else if (node.hasAttribute && node.hasAttribute("l-data")) {
|
|
9611
9618
|
initTree(node, findParentScope(node));
|
|
9612
9619
|
} else if (node.hasAttribute && node.hasAttribute("data-ui") && !findParentScope(node)) {
|
|
9613
9620
|
initTree(node, null);
|
|
@@ -9638,16 +9645,25 @@ var require_faqir_core = __commonJS((exports, module) => {
|
|
|
9638
9645
|
mutationObserver.observe(document.body, { childList: true, subtree: true });
|
|
9639
9646
|
}
|
|
9640
9647
|
var currentScript = typeof document !== "undefined" ? document.currentScript : null;
|
|
9641
|
-
var isManual = currentScript
|
|
9648
|
+
var isManual = currentScript ? currentScript.hasAttribute("data-manual") : typeof document !== "undefined" && !!document.querySelector('script[type="module"][data-manual]');
|
|
9649
|
+
var autoStarted = false;
|
|
9650
|
+
function autoStart() {
|
|
9651
|
+
if (autoStarted)
|
|
9652
|
+
return;
|
|
9653
|
+
autoStarted = true;
|
|
9654
|
+
bootstrap();
|
|
9655
|
+
}
|
|
9642
9656
|
if (!isManual && typeof document !== "undefined") {
|
|
9643
9657
|
if (document.readyState === "loading") {
|
|
9644
|
-
document.addEventListener("DOMContentLoaded",
|
|
9658
|
+
document.addEventListener("DOMContentLoaded", autoStart);
|
|
9645
9659
|
} else {
|
|
9646
|
-
|
|
9660
|
+
if (document.readyState === "interactive")
|
|
9661
|
+
document.addEventListener("DOMContentLoaded", autoStart);
|
|
9662
|
+
setTimeout(autoStart, 0);
|
|
9647
9663
|
}
|
|
9648
9664
|
}
|
|
9649
9665
|
var Faqir = {
|
|
9650
|
-
version: "1.
|
|
9666
|
+
version: "1.1.1",
|
|
9651
9667
|
reactive,
|
|
9652
9668
|
effect,
|
|
9653
9669
|
batch,
|