@faqir-ui/core 1.1.1 → 1.2.0

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.
Files changed (44) hide show
  1. package/README.md +9 -8
  2. package/cdn.json +41 -36
  3. package/dist/faqir-core.js +568 -394
  4. package/dist/faqir-core.min.js +3 -3
  5. package/dist/faqir-core.min.js.map +3 -3
  6. package/dist/faqir-core.mjs +651 -532
  7. package/dist/faqir.aurora.css +6436 -1401
  8. package/dist/faqir.brutalist.css +6436 -1401
  9. package/dist/faqir.candy.css +6436 -1401
  10. package/dist/faqir.clay.css +19164 -0
  11. package/dist/faqir.clinical.css +6436 -1401
  12. package/dist/faqir.contrast.css +6436 -1401
  13. package/dist/faqir.deco.css +19247 -0
  14. package/dist/faqir.default.css +6436 -1401
  15. package/dist/faqir.document-serif.css +6436 -1401
  16. package/dist/faqir.document.css +6437 -1401
  17. package/dist/faqir.editorial-document.css +6436 -1401
  18. package/dist/faqir.editorial.css +6436 -1401
  19. package/dist/faqir.fintech.css +6436 -1401
  20. package/dist/faqir.glass.css +6436 -1401
  21. package/dist/faqir.ink-document.css +6436 -1401
  22. package/dist/faqir.ink.css +6436 -1401
  23. package/dist/faqir.luxe.css +6436 -1401
  24. package/dist/faqir.memphis.css +19163 -0
  25. package/dist/faqir.midnight.css +6436 -1401
  26. package/dist/faqir.monolith.css +19162 -0
  27. package/dist/faqir.neo.css +6436 -1401
  28. package/dist/faqir.neumorph.css +6436 -1401
  29. package/dist/faqir.nordic.css +6436 -1401
  30. package/dist/faqir.organic.css +6436 -1401
  31. package/dist/faqir.paper.css +6436 -1401
  32. package/dist/faqir.slate.css +6436 -1401
  33. package/dist/faqir.soft.css +6436 -1401
  34. package/dist/faqir.sunset.css +6436 -1401
  35. package/dist/faqir.swiss-document.css +6436 -1401
  36. package/dist/faqir.swiss.css +6436 -1401
  37. package/dist/faqir.terminal.css +6436 -1401
  38. package/dist/plugins/faqir-mask.js +1 -2
  39. package/dist/plugins/faqir-rules.js +1 -1
  40. package/dist/plugins/faqir-tweak.js +304 -0
  41. package/dist/plugins/faqir-validate.js +12 -4
  42. package/dist/sri.json +39 -34
  43. package/faqir-core.d.ts +52 -2
  44. package/package.json +1 -1
package/dist/sri.json CHANGED
@@ -1,39 +1,44 @@
1
1
  {
2
- "faqir-core.js": "sha384-ypj/JvdM2DNbSf7TIOUBlbV3kKw3JE0YuKDPkDuroqFt8H/jB2O80j0rUa/s8N9l",
3
- "faqir-core.min.js": "sha384-+0VjcV+UV4XDD6Y5YZ+yJG9qiwlcZRr+LgT6uVspQgw4ynLLzyNKrDc6HDvo6uiM",
4
- "faqir-core.min.js.map": "sha384-3NMITzrdJEWU6VH6d64NSzEhMGdilUMAqm7tG37R9mq1oQcbiifI7azkysTVSK/a",
5
- "faqir-core.mjs": "sha384-bFYiYI3mnO3fluPZh14FGac4ZgBXPEfENyv+/ewSMHNyataamJyDJYENbGaXnV8t",
6
- "faqir.aurora.css": "sha384-TrPBHGXGxwY6sLypt3kbjbhEHz87wsYgqQhzPqi5zghmsiqewgykQx6aS+WP2O0h",
7
- "faqir.brutalist.css": "sha384-N/VfEAEdOZ2PGFX4xsPzlHEmDkXtjzmkXXW1Ta3PCtBV/RZm1rF4EYsfwLEvwqPZ",
8
- "faqir.candy.css": "sha384-/lk9HAr46O2pYwsM8vE8MBVkPLB1t2otA3Edfux98b564DvNkWqpsD4DSVdcmHAX",
9
- "faqir.clinical.css": "sha384-quTFS0lcUB0sz5ysan8vVX75oBDNzY+of7CmKDEoX5fM5OCIbYEttiZ8eLL/vQ4u",
10
- "faqir.contrast.css": "sha384-Kkc5S9mDWhATTvHHfZhNd+rN06hSCvbKLuqa5y+cwtvlF7jSunMH1bLkfrZsVw5f",
11
- "faqir.default.css": "sha384-bbc2p6aV7UYxrmv8M6x0buppf4uT7yh8DZ9d///ykZjXQokcZNtOk6xK1UUl6Mnj",
12
- "faqir.document-serif.css": "sha384-gruBhX1KhlPRKzCVMODRBoOB+IpJM3lgYB+xQgCbu35onXyy+OFvh0MBDThrRFSq",
13
- "faqir.document.css": "sha384-oC4VnHJi2ez8nAPSBwN4GWOz+BraAWcXXcGjNrQmdKujuA3fVmawKwolH1zIEzT0",
14
- "faqir.editorial-document.css": "sha384-sKWLbBQ4IvgSvhLYo0nE95l6pqku+T0VTmkkoTwg/YOx5vM9gBAPA7f6CLE8gLNa",
15
- "faqir.editorial.css": "sha384-N5sYSpAAOB81nDI+eShZ+gTZ5zbTMwaUt9fIPxwiNWBkKdaEJnsvyP3na/2SyNbv",
16
- "faqir.fintech.css": "sha384-xY6baIhCB0boozwIAPzhPg2FFZ8RhqSf/13CWeda9Bd+9D5bvZbNuiFcO67GGLOL",
17
- "faqir.glass.css": "sha384-MW9qUMfNSCgUyQjY/UqCpRxsXxuDEoVFvvpLy2htmV1Vc2mtn/z7uCXscj6Yn5zq",
18
- "faqir.ink-document.css": "sha384-uWhbYEZwSDk3QHPMWe7lzYM0HELolHkW8xyqoowVvXrToqTXnSYVw7zTVET3kTVC",
19
- "faqir.ink.css": "sha384-57zpUenZ+vVG/PViYuf1yxB0VxdV/5hxhZbKy9vi8XawKTMpbbU7AtnvgZ81ZIvs",
20
- "faqir.luxe.css": "sha384-AP+OFzUaZ0RNEOGS95dsf09tD8ltts0VslqgCyaJ3CBHHkesKJ+/MT3SA4gZPxbe",
21
- "faqir.midnight.css": "sha384-xsSMTT7Pf9i0CDFfx5hlzCBkHx5gsfORYS3rZuKnasgMkHumNUsy0fTBFcHBxSo3",
22
- "faqir.neo.css": "sha384-rNHNMTeReWOmjhAayIam2CSmH3cUpHI3VbCOxg1hhk0GE3pAB2GX6tqzXH8OU9kX",
23
- "faqir.neumorph.css": "sha384-7N6RHoYWSlnTHeTwVWrCn4ey1KR62fsAS0p1QVyb0gcljIYhcMWADZrmH/hOjhx+",
24
- "faqir.nordic.css": "sha384-A/O40XHz2mMUs3tKWT7usnwgAxSsdFpb8uXKNMtoIa3OBaR2Ibpqg5mGNov90PaT",
25
- "faqir.organic.css": "sha384-acTW5ka4Zy5SXHHn1My078WAnPkj6/KbLHKuWzToArB8rWlwZGRqlFxfq8VNAaqY",
26
- "faqir.paper.css": "sha384-O26GS1gp6lFBZmollq/g21aUGVoWixAfBEsFxhWzPif1X2ZrjeXyIOEmCn25R1Dz",
27
- "faqir.slate.css": "sha384-lSeSUhJCMUsQxM1oS2AbeqbfdLzquz4zYDYSF1N2bpA4JC0g/7fcJA/lWvkZugyq",
28
- "faqir.soft.css": "sha384-G7xaO/Rr9RdMdBch66kUiS+atQOluVXhwIb039G7WJg6KvAxDBSbA/7v8y9ouhZH",
29
- "faqir.sunset.css": "sha384-7FyjK1RJrkGTvOSFLH15WiRI1i8V3bbfpUuv4Gq3stG1NwC56/JkXOH4uPscY95b",
30
- "faqir.swiss-document.css": "sha384-hQKtiQvaCu9ot5TJnCIlPjZhUJif5cacuE27IvJi1j99iF9HuNOvfGp+epSzJlMT",
31
- "faqir.swiss.css": "sha384-Ki39mfAWeHD1KRjAB07b4MygOk5swzXSp5sUKcTWldXuiNhpNTWo+vOeponF4yfB",
32
- "faqir.terminal.css": "sha384-EE2EAqi6sG4GTe8l+7w0p8gqCjZu8A+dkfNFCx90Ue/loSNUSnLIYDqdAsApyOOR",
2
+ "faqir-core.js": "sha384-oSPiZQb5mIYtZmrsnNSo8k+hPR5Vtj+vRBhyzNozUvPreSMCtlFAbpN1yC6h6Uxh",
3
+ "faqir-core.min.js": "sha384-Y/ObjBaUa4Ex33uNV5X++IK1pNAbYjGKYgPKfqHcjuL4xBb2At005nebcWxtkh/s",
4
+ "faqir-core.min.js.map": "sha384-BIOKuESd9GUiom8bpxYvxVJX7JnTzOmUG9vZpFUWEStCmZItzqvoyYxzLTHimjcT",
5
+ "faqir-core.mjs": "sha384-UDfHzfCPD8MgedS3Lh5vgtD3G7q+f3gtC402jFEb17qOkdZdxmikvriRhWFM2WqD",
6
+ "faqir.aurora.css": "sha384-O7Wv2oLKBqIIa2fFLZtmIeDTfVRIY7xahud1ANigc9GrwuXWC8S5mgq+49dTbcjm",
7
+ "faqir.brutalist.css": "sha384-hKZywJEhj3gZMRrUKzpDzPDe8SbUfT65XTCMr73jwqk36wYcFH61RlmlXtnecdoz",
8
+ "faqir.candy.css": "sha384-dCgK+o1yNlP8V+ZKU4Bd0AkVwOdX3834QdyX1q77cI2HwPECGio9E+JFE6fe2zPO",
9
+ "faqir.clay.css": "sha384-kMWNTs1EyXt8mGO0jCDRQATe3RtoE+ib2nTlA4I9dEfKrm/wRXEB/EOmBflmYeZV",
10
+ "faqir.clinical.css": "sha384-MUphY05uuN+f06x8uE3SSDa1OB09VwoDtz2VtGf7jzaROYMIwavQ6QyJF59QG6cu",
11
+ "faqir.contrast.css": "sha384-tDWLh2dEAEilGupWHgXCWqT7nSWUqjw9jCKhjwZNizBgSUSvv2n8qw2WbY6quIXm",
12
+ "faqir.deco.css": "sha384-iMIsXH+vKkvn371uVOkeLI/8GlBOzbWgp3ZbypZZBPh2Sx72hOwEsxYFKqsfEnDt",
13
+ "faqir.default.css": "sha384-uEZhIJiJ3OqaxWWs9bQYa8WXwVi6h5NCzpGghGrKfL9fHgwz5EM+8V+HNFIcbBn3",
14
+ "faqir.document-serif.css": "sha384-G1fXY22VtWhZU7OFgjoYAHKRHsrRrgsNK/Q9ujFZ6QEXPIUWmxGxmdqWwt77Sp9X",
15
+ "faqir.document.css": "sha384-uFsIc0MPqiYO5M3IEVuA9/d8Fie9bovzNPEurO2WfoWxaRDaPU+OX1DvSTdJlznj",
16
+ "faqir.editorial-document.css": "sha384-6bwR/CcUYm9+EfleRr1575dUDam5j+42n2oFLBOHsriRshRjFqu7RhFeUqh+qz18",
17
+ "faqir.editorial.css": "sha384-MNXkBiePIc8/vz6uRHXBrQXpUnsaAKj9ewRTtKgn3NsJVQteqIdFd+iRDk85UXum",
18
+ "faqir.fintech.css": "sha384-OeZiY4mj/BTS5UOSkUO8N09wJnA647RPTNMn4xAUONSMQaM5hmz39OpSK+CZTS8t",
19
+ "faqir.glass.css": "sha384-XxsAsrZsI7bSoiXY0M69nHODL9RXLsypPiQRNi/a3t7mPgRlrfpVeF1XqazySwIZ",
20
+ "faqir.ink-document.css": "sha384-ckm9FvqPBGKYH0a/YjS5/VEb0wzIDwQZ2nUexPw/tVMJmfdUA7Fv9mYHBAMfcAmm",
21
+ "faqir.ink.css": "sha384-1+0kDzO3g/8DJVJRnfbyYiFTkDkLFub31wDUXQOpyATkYlaRXuAqGUOickpnZDHI",
22
+ "faqir.luxe.css": "sha384-VECuRGQVX5tAPf9f4nlMLVbRt1D8QfSXIjLJymL0+3Xg5ciIt+JFTF54x5CEDtvC",
23
+ "faqir.memphis.css": "sha384-Ys0NhabYE9eJvtwpHXlvDy+zZYijrNSaWKysnf/O6lF9ZgcrGdeQ217UJv6vp8KN",
24
+ "faqir.midnight.css": "sha384-53kut5yzw/uUdx94tPiwQs7AuoXUm3WtFfubo1OqnDlleXUU1XFDNAAVt3B20J0m",
25
+ "faqir.monolith.css": "sha384-W5wiFpYP6jpmGJO+aJqGhZm/0UmISNpDnQIP5Nlz0UJqtNCVGf+b9Ss6AvPXRMRY",
26
+ "faqir.neo.css": "sha384-oFh/li8+nfUeNvFKEdjdU0enGCpy1oPbVQHnNBjBqxecjNdOn27dkGvSxSlvCb97",
27
+ "faqir.neumorph.css": "sha384-T+bc0+8l1Glcxzyg2BGoyFsYv1VGGS6LOklborctelrraugVpVVB2kUH+lrRFLhP",
28
+ "faqir.nordic.css": "sha384-YxRFYTXk8p3P/DkQK/qmIYT1djJLGPGWFLTHM4fpUeb5T+4eS3GpdDC5iNR7E5Y2",
29
+ "faqir.organic.css": "sha384-jInVyUMGkfiUGCUnNVtTcSWkIE9+gKD1Bro/B0BCaoDxz5lpUu7+oMT5DwYEwV6x",
30
+ "faqir.paper.css": "sha384-PX1BVPl7/KuVDuQwCQxr4sF+NewTOVfle9bZ84UXecZAe3hIaJk0z/Mt02Wt80MD",
31
+ "faqir.slate.css": "sha384-H3tEPGyt/rO6IjWLRh1AasgdJtMZoBiMG7Z6xy77TQWIDsOSvHUp6m5kOMGm380E",
32
+ "faqir.soft.css": "sha384-/h4lb3FiDm1xsf4lzq7Bo46QTKPCR80dXmThK57MAHHPSl9vjExdNeKWCJuHc8x+",
33
+ "faqir.sunset.css": "sha384-Q6HwuPDyuUm8zy1Q3oGSntM/5ShrwgYOlfzy9eTaGmpOhQezs/rM8018TDgqlzYD",
34
+ "faqir.swiss-document.css": "sha384-ZnsDSmgRCib00+CLAMtWE5dAvqp+K9jusr84CEMQe4u60EIOQrjetz1Px2f6TloS",
35
+ "faqir.swiss.css": "sha384-e9szmB9PrfXFylpwBcLafOJ9pO+L/T25Cr5B27AHXNEB4o4MZVlhfGLUMyXIh/He",
36
+ "faqir.terminal.css": "sha384-eVzvXojjoNdeCiLLT8SFKR6VHR9tgEJeqWNxEcbshKHrsy4oxqpititV7Rv0pbhp",
33
37
  "plugins/faqir-collapse.js": "sha384-3l5Z+isXlDkidRevDGkuNOiDp6eJ2ML11RkXA0j4ixQBaepuu8pAhyY4YRnR1qB7",
34
38
  "plugins/faqir-intersect.js": "sha384-Q/akZjAcnTnGYPKBP7b8c3iyYbHTIW1IPjBivzOH9dE7Nflr9Cu6adjeDXU2bhk6",
35
- "plugins/faqir-mask.js": "sha384-7yA/VdjGdg/6vwX+zUbughO6ERyV2rEsVyNYBO5ghqJbAhj9912F9qMPTkLc55B6",
39
+ "plugins/faqir-mask.js": "sha384-QvmZoq/+9/ef3U9JkdKlRMFhUMNGjnKct4JC3g7/ypEXEuTeny3JlUvsnrFv75v+",
36
40
  "plugins/faqir-persist.js": "sha384-o0jfddebC8QZ3S26VXUlOme723BNMlb/N7vqpn+fWpSeEFXzpq+3MoeXhVL/0PSv",
37
- "plugins/faqir-rules.js": "sha384-xE90r5W3AlWKu+idcwx6NAkVUcRWMgM9ZJ1VgJLOguj/0GYP0jfflCojiCWt4FVq",
38
- "plugins/faqir-validate.js": "sha384-TIyGNL8dHBnFdV56LAhdklvhQLsClQqGuQ7DT0Zgxva8DIzfONXZSJYTXhQxJcN0"
41
+ "plugins/faqir-rules.js": "sha384-4P6QegEl5xANFU63W5O6J9qHNVZd2YYmSK+Fvj97LtHCOW8Zw9mskXbzw3vfJBmW",
42
+ "plugins/faqir-tweak.js": "sha384-hrasWR6y1Qwn7ktBPOPjuVPqam95j4YlhwGWVnbevkLdH7kklfVIUOjIpmibEcdE",
43
+ "plugins/faqir-validate.js": "sha384-f0J87Wkiuei3MJ6WmNUdje/Uc/LnLXdOGUtoUHfvT73XawsUfKLtniOE/qCjYpXD"
39
44
  }
package/faqir-core.d.ts CHANGED
@@ -76,6 +76,12 @@ export interface Magics {
76
76
  * expression is written on. Every magic that walks the DOM starts here.
77
77
  */
78
78
  readonly $el: Element;
79
+ /**
80
+ * The element the directive is written on — the `<input>` carrying `l-init`,
81
+ * the button carrying `@click`. The root in `l-data` and a root's `l-init`;
82
+ * the `<template>` in `l-for`'s list and `l-key` expressions. [1.1F-06]
83
+ */
84
+ readonly $this: Element;
79
85
  /** The scope's `l-ref` elements, keyed by name. */
80
86
  readonly $refs: Record<string, Element>;
81
87
  /** Every store registered with `Faqir.store()`. */
@@ -739,10 +745,12 @@ export interface DevtoolsComponent {
739
745
  /**
740
746
  * One recorded diagnostic. The production engine records none, so
741
747
  * `warnings()` is always `[]` there — every class exists only in
742
- * `faqir-core.dev.js`. `key` is a duplicate `l-key` in a keyed `l-for`.
748
+ * `faqir-core.dev.js`. `key` is a duplicate `l-key` in a keyed `l-for`;
749
+ * `style` is a `:style` that declares `display` beside `l-show`; `shadow` is
750
+ * an `l-for` loop variable that shadows a name its scope already has.
743
751
  */
744
752
  export interface DevtoolsWarning {
745
- kind: "expression" | "directive" | "reorder" | "key" | "html" | "plugin";
753
+ kind: "expression" | "directive" | "reorder" | "key" | "html" | "style" | "shadow" | "plugin";
746
754
  message: string;
747
755
  /** The offending element, as a short label. */
748
756
  element: string | null;
@@ -787,6 +795,46 @@ export interface Devtools {
787
795
  // The global
788
796
  // ─────────────────────────────────────────────────────────────────────────
789
797
 
798
+ /**
799
+ * The theme studio `plugins/faqir-tweak.js` installs as `Faqir.tweak`. A state
800
+ * is the position of every dial; `apply` writes the tokens it implies onto
801
+ * `<html>`, `css` renders the same overrides as a `:root` block.
802
+ */
803
+ export interface TweakState {
804
+ scheme: "" | "light" | "dark" | "auto";
805
+ density: "" | "compact" | "comfortable" | "spacious";
806
+ hue: number;
807
+ chroma: number;
808
+ radius: number;
809
+ space: number;
810
+ type: number;
811
+ speed: number;
812
+ weight: string;
813
+ tracking: string;
814
+ headingFont: "" | "sans" | "serif" | "mono";
815
+ bodyFont: "" | "sans" | "serif" | "mono";
816
+ easing: "" | "spring" | "bounce" | "linear";
817
+ lift: string;
818
+ ambient: "" | "paused";
819
+ border: "" | "hairline" | "regular" | "heavy";
820
+ depth: "" | "flat" | "deep";
821
+ page: string;
822
+ surface: string;
823
+ }
824
+
825
+ export interface TweakApi {
826
+ /** Apply a (partial) state; omitted dials take their defaults. Returns the full state. */
827
+ apply(state: Partial<TweakState> | null): TweakState;
828
+ /** Remove every override and restore the page's own attributes. */
829
+ reset(): TweakState;
830
+ /** The current overrides as a `:root { … }` block, ready to paste into a theme. */
831
+ css(): string;
832
+ /** Re-apply the state saved in localStorage, if any. */
833
+ restore(): TweakState | null;
834
+ /** The current state, or null before the first apply. */
835
+ readonly state: TweakState | null;
836
+ }
837
+
790
838
  export interface FaqirGlobal {
791
839
  readonly version: string;
792
840
 
@@ -888,6 +936,8 @@ export interface FaqirGlobal {
888
936
  * the engine for exactly this reason. [1.1B-03]
889
937
  */
890
938
  readonly validate?: ValidateApi;
939
+ /** The theme studio `plugins/faqir-tweak.js` installs; absent until that file loads. */
940
+ readonly tweak?: TweakApi;
891
941
  }
892
942
 
893
943
  declare const Faqir: FaqirGlobal;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@faqir-ui/core",
3
- "version": "1.1.1",
3
+ "version": "1.2.0",
4
4
  "description": "Faqir UI runtime engine — the Alpine-style reactive core (faqir-core.js), minified CDN build, and prebuilt per-theme CSS bundles. Zero dependencies.",
5
5
  "type": "module",
6
6
  "main": "./dist/faqir-core.mjs",