@mhmo91/schmancy 0.4.51 → 0.4.52
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/autocomplete-CkycjWy4.js +267 -0
- package/dist/autocomplete-CkycjWy4.js.map +1 -0
- package/dist/autocomplete-CrhgxhFI.cjs +73 -0
- package/dist/autocomplete-CrhgxhFI.cjs.map +1 -0
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/{avatar-DUhxMuv0.js → avatar-2RMudsVg.js} +4 -4
- package/dist/{avatar-DUhxMuv0.js.map → avatar-2RMudsVg.js.map} +1 -1
- package/dist/{avatar-QK4twwTM.cjs → avatar-nwqyt3uc.cjs} +2 -2
- package/dist/{avatar-QK4twwTM.cjs.map → avatar-nwqyt3uc.cjs.map} +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +13 -11
- package/dist/index.js.map +1 -1
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/search-6Hr7K1gh.js +53 -0
- package/dist/search-6Hr7K1gh.js.map +1 -0
- package/dist/search-DWW8IoOp.cjs +2 -0
- package/dist/search-DWW8IoOp.cjs.map +1 -0
- package/dist/{tabs-compatibility-DsOH4PSw.js → tabs-compatibility-BEXurIiZ.js} +6 -6
- package/dist/{tabs-compatibility-DsOH4PSw.js.map → tabs-compatibility-BEXurIiZ.js.map} +1 -1
- package/dist/tabs.js +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{typewriter-CnloNIdN.js → typewriter-DMKxup-I.js} +6 -6
- package/dist/{typewriter-CnloNIdN.js.map → typewriter-DMKxup-I.js.map} +1 -1
- package/dist/{typewriter-DwLZUKKQ.cjs → typewriter-Fq4uV6Gm.cjs} +2 -2
- package/dist/{typewriter-DwLZUKKQ.cjs.map → typewriter-Fq4uV6Gm.cjs.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +3 -1
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
- package/types/src/index.d.ts +0 -1
- package/types/src/utils/index.d.ts +1 -0
- package/dist/autocomplete-CHObbMzK.js +0 -315
- package/dist/autocomplete-CHObbMzK.js.map +0 -1
- package/dist/autocomplete-PHnzqAII.cjs +0 -73
- package/dist/autocomplete-PHnzqAII.cjs.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import "./animated-text-D26Fv13t.js";
|
|
2
2
|
import { F as d, H as g, b as u, S as D, a as w, r as T } from "./area.component-BCcq9Nb7.js";
|
|
3
3
|
import { l as I, h as M, c as R, f as A, j as v, a as N, b as H, d as B, e as E, k as F, g as O, i as $, n as j, s as k } from "./utils-03Coa8AW.js";
|
|
4
|
-
import "./autocomplete-
|
|
5
|
-
import { $ as P, H as Y, a as z, r as G, S as V, g as W, d as K, h as _, e as q, f as Q, i as J, b as U, c as X, k as Z, m as aa, n as ea, o as ra, l as ta, p as oa, q as sa, W as ca, s as na, j as ma, t as Sa } from "./avatar-
|
|
4
|
+
import "./autocomplete-CkycjWy4.js";
|
|
5
|
+
import { $ as P, H as Y, a as z, r as G, S as V, g as W, d as K, h as _, e as q, f as Q, i as J, b as U, c as X, k as Z, m as aa, n as ea, o as ra, l as ta, p as oa, q as sa, W as ca, s as na, j as ma, t as Sa } from "./avatar-2RMudsVg.js";
|
|
6
6
|
import { S as ya } from "./boat-C_BvtlNQ.js";
|
|
7
7
|
import "./spinner-CbA-FXRK.js";
|
|
8
|
-
import { S as
|
|
8
|
+
import { S as ha, a as la } from "./icon-button-BGvSPuE-.js";
|
|
9
9
|
import "./media-BO-aZBTp.js";
|
|
10
10
|
import { S as xa } from "./checkbox-BSYgpRsc.js";
|
|
11
11
|
import "./chips-Dn8RpKCE.js";
|
|
@@ -27,7 +27,7 @@ import { S as Ua, a as Xa } from "./input-Cpo-ws8k.js";
|
|
|
27
27
|
import { S as ae, c as ee, a as re, b as te } from "./flex-DV2W2Zgu.js";
|
|
28
28
|
import { L as se, a as ce, S as ne } from "./list-BTyoQ42F.js";
|
|
29
29
|
import "./menu-DWCDQvGY.js";
|
|
30
|
-
import { $ as Se, N as ie, S as ye, a as
|
|
30
|
+
import { $ as Se, N as ie, S as ye, a as pe } from "./notification-service-L_h9_d4v.js";
|
|
31
31
|
import "./option-vRGeXw_u.js";
|
|
32
32
|
import "./progress-DM_jha7D.js";
|
|
33
33
|
import { a as le, R as fe } from "./radio-button-YDzqdRA-.js";
|
|
@@ -39,10 +39,10 @@ import { S as De, b as we, a as Te, s as be } from "./sheet-Cw2qLdzN.js";
|
|
|
39
39
|
import { S as Me, a as Re } from "./slider-C7Z1bPq7.js";
|
|
40
40
|
import { S as ve, a as Ne, b as He, s as Be } from "./schmancy-steps-container-CoARMXfB.js";
|
|
41
41
|
import { B as Fe, I as Oe, L as $e, M as je, S as ke, a as Le, b as Pe, d as Ye, c as ze } from "./context-object-CDDP4bTk.js";
|
|
42
|
-
import { p as Ve, a as We, v as Ke, G as _e, c as qe, E as Qe, z as Je, C as Ue, B as Xe, x as Ze, w as ar, y as er, D as rr, F as tr, u as or, A as sr, b as cr, r as nr, d as mr, q as Sr, f as ir, g as yr, i as
|
|
42
|
+
import { p as Ve, a as We, v as Ke, G as _e, c as qe, E as Qe, z as Je, C as Ue, B as Xe, x as Ze, w as ar, y as er, D as rr, F as tr, u as or, A as sr, b as cr, r as nr, d as mr, q as Sr, f as ir, g as yr, i as pr, j as hr, k as lr, l as fr, o as xr, h as Cr, n as dr, m as gr, e as ur, s as Dr, t as wr } from "./selector-hook-CIpuCUbr.js";
|
|
43
43
|
import { a as br, S as Ir } from "./surface-By8o7nWa.js";
|
|
44
44
|
import { a as Rr, S as Ar } from "./table-CvMo5lOi.js";
|
|
45
|
-
import "./tabs-compatibility-
|
|
45
|
+
import "./tabs-compatibility-BEXurIiZ.js";
|
|
46
46
|
import "./textarea-DM3lgEUp.js";
|
|
47
47
|
import { S as Nr, a as Hr, T as Br, f as Er, t as Fr } from "./theme.component-ColRTbY5.js";
|
|
48
48
|
import { S as $r } from "./theme.interface-C5Kj6WjD.js";
|
|
@@ -50,9 +50,10 @@ import "./theme-button-C4JWRMiC.js";
|
|
|
50
50
|
import { S as kr, t as Lr } from "./tooltip-nwQwCEgl.js";
|
|
51
51
|
import { S as Yr } from "./tree-BDmB7KmQ.js";
|
|
52
52
|
import { SchmancyEvents as Gr } from "./types.js";
|
|
53
|
-
import { T as Wr } from "./typewriter-
|
|
53
|
+
import { T as Wr } from "./typewriter-DMKxup-I.js";
|
|
54
54
|
import { S as _r } from "./typography-DYCOngD7.js";
|
|
55
55
|
import { i as Qr } from "./intersection-CJxzz8c-.js";
|
|
56
|
+
import { s as Ur } from "./search-6Hr7K1gh.js";
|
|
56
57
|
export {
|
|
57
58
|
ka as $dialog,
|
|
58
59
|
P as $drawer,
|
|
@@ -77,7 +78,7 @@ export {
|
|
|
77
78
|
G as SchmancyAvatar,
|
|
78
79
|
V as SchmancyBadgeV2,
|
|
79
80
|
ya as SchmancyBoat,
|
|
80
|
-
|
|
81
|
+
ha as SchmancyButton,
|
|
81
82
|
xa as SchmancyCheckbox,
|
|
82
83
|
da as SchmancyCircularProgress,
|
|
83
84
|
ua as SchmancyCode,
|
|
@@ -115,7 +116,7 @@ export {
|
|
|
115
116
|
ta as SchmancyNavigationDrawerContent,
|
|
116
117
|
oa as SchmancyNavigationDrawerSidebar,
|
|
117
118
|
ye as SchmancyNotification,
|
|
118
|
-
|
|
119
|
+
pe as SchmancyNotificationContainer,
|
|
119
120
|
ba as SchmancyPaymentCardForm,
|
|
120
121
|
te as SchmancyScroll,
|
|
121
122
|
ge as SchmancySelect,
|
|
@@ -185,8 +186,8 @@ export {
|
|
|
185
186
|
yr as getFieldValue,
|
|
186
187
|
O as getTagName,
|
|
187
188
|
Qr as intersection$,
|
|
188
|
-
|
|
189
|
-
|
|
189
|
+
pr as isArray,
|
|
190
|
+
hr as isDate,
|
|
190
191
|
lr as isIterable,
|
|
191
192
|
fr as isMap,
|
|
192
193
|
xr as isNil,
|
|
@@ -205,6 +206,7 @@ export {
|
|
|
205
206
|
Dr as select,
|
|
206
207
|
wr as selectItem,
|
|
207
208
|
be as sheet,
|
|
209
|
+
Ur as similarity,
|
|
208
210
|
Be as stepsContext,
|
|
209
211
|
Fr as tailwindStyles,
|
|
210
212
|
Sa as teleport,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/nav-drawer.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./avatar-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./avatar-nwqyt3uc.cjs");exports.$drawer=e.$drawer,Object.defineProperty(exports,"SchmancyDrawerAppbar",{enumerable:!0,get:()=>e.SchmancyDrawerAppbar}),exports.SchmancyDrawerNavbarMode=e.SchmancyDrawerNavbarMode,exports.SchmancyDrawerNavbarState=e.SchmancyDrawerNavbarState,Object.defineProperty(exports,"SchmancyNavigationDrawer",{enumerable:!0,get:()=>e.SchmancyNavigationDrawer}),Object.defineProperty(exports,"SchmancyNavigationDrawerContent",{enumerable:!0,get:()=>e.SchmancyNavigationDrawerContent}),Object.defineProperty(exports,"SchmancyNavigationDrawerSidebar",{enumerable:!0,get:()=>e.SchmancyNavigationDrawerSidebar}),exports.schmancyNavDrawer=e.schmancyNavDrawer;
|
|
2
2
|
//# sourceMappingURL=nav-drawer.cjs.map
|
package/dist/nav-drawer.js
CHANGED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
function w(s, u) {
|
|
2
|
+
if (!s || !u) return 0;
|
|
3
|
+
if (s === u) return 1;
|
|
4
|
+
const r = s.toLowerCase().trim(), o = u.toLowerCase().trim();
|
|
5
|
+
if (r === o) return 1;
|
|
6
|
+
if (o.startsWith(r))
|
|
7
|
+
return 0.95 + 0.05 * (r.length / o.length);
|
|
8
|
+
const c = o.split(/[\s\-_]+/);
|
|
9
|
+
for (const n of c) if (n.startsWith(r))
|
|
10
|
+
return 0.85 * (1 - c.indexOf(n) / c.length * 0.1);
|
|
11
|
+
if (o.includes(r))
|
|
12
|
+
return 0.7 * (1 - o.indexOf(r) / o.length * 0.2);
|
|
13
|
+
if (function(n, l) {
|
|
14
|
+
let e = 0, t = 0;
|
|
15
|
+
for (; e < n.length && t < l.length; ) n[e] === l[t] && e++, t++;
|
|
16
|
+
return e === n.length;
|
|
17
|
+
}(r, o)) return 0.5;
|
|
18
|
+
const x = function(n, l) {
|
|
19
|
+
if (n.length < 2 || l.length < 2) return 0;
|
|
20
|
+
const e = m(n), t = m(l);
|
|
21
|
+
let f = 0;
|
|
22
|
+
const h = new Array(t.length).fill(!1);
|
|
23
|
+
for (const g of e) for (let i = 0; i < t.length; i++) if (!h[i] && t[i] === g) {
|
|
24
|
+
f++, h[i] = !0;
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
return 2 * f / (e.length + t.length);
|
|
28
|
+
}(r, o), a = Math.max(r.length, o.length), d = function(n, l) {
|
|
29
|
+
if (n.length === 0) return l.length;
|
|
30
|
+
if (l.length === 0) return n.length;
|
|
31
|
+
const e = [];
|
|
32
|
+
for (let t = 0; t <= l.length; t++) e[t] = [t];
|
|
33
|
+
for (let t = 0; t <= n.length; t++) e[0][t] = t;
|
|
34
|
+
for (let t = 1; t <= l.length; t++) for (let f = 1; f <= n.length; f++) {
|
|
35
|
+
const h = n[f - 1] === l[t - 1] ? 0 : 1;
|
|
36
|
+
e[t][f] = Math.min(e[t - 1][f] + 1, e[t][f - 1] + 1, e[t - 1][f - 1] + h);
|
|
37
|
+
}
|
|
38
|
+
return e[l.length][n.length];
|
|
39
|
+
}(r, o), p = a ? 1 - d / a : 0, b = function(n, l) {
|
|
40
|
+
const e = (h) => h.split("").reduce((g, i) => (g[i] = (g[i] || 0) + 1, g), {}), t = e(n), f = e(l);
|
|
41
|
+
return Object.keys(t).every((h) => (f[h] || 0) >= t[h]);
|
|
42
|
+
}(r, o) ? 0.3 : 0;
|
|
43
|
+
return Math.max(0.4 * x, 0.4 * p, b);
|
|
44
|
+
}
|
|
45
|
+
function m(s) {
|
|
46
|
+
const u = [];
|
|
47
|
+
for (let r = 0; r < s.length - 1; r++) u.push(s.substring(r, r + 2));
|
|
48
|
+
return u;
|
|
49
|
+
}
|
|
50
|
+
export {
|
|
51
|
+
w as s
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=search-6Hr7K1gh.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-6Hr7K1gh.js","sources":["../src/utils/search.ts"],"sourcesContent":["/**\n * Calculate similarity score between two strings.\n * Returns a value between 0 (no match) and 1 (exact match).\n * Optimized for autocomplete with prioritization of start matches and whole words.\n *\n * @param query The search query string\n * @param target The target string to compare against\n * @returns A similarity score from 0 to 1\n */\nexport function similarity(query: string, target: string): number {\n\t// Handle edge cases\n\tif (!query || !target) return 0\n\tif (query === target) return 1\n\n\t// Normalize strings for comparison\n\tconst normalizedQuery = query.toLowerCase().trim()\n\tconst normalizedTarget = target.toLowerCase().trim()\n\n\t// 1. Exact match (case-insensitive)\n\tif (normalizedQuery === normalizedTarget) return 1\n\n\t// 2. Target starts with query (highest priority for autocomplete)\n\tif (normalizedTarget.startsWith(normalizedQuery)) {\n\t\t// Give higher score to shorter targets (more precise matches)\n\t\tconst lengthRatio = normalizedQuery.length / normalizedTarget.length\n\t\treturn 0.95 + (lengthRatio * 0.05) // Score between 0.95 and 1.0\n\t}\n\n\t// 3. Word boundary match (query matches start of any word in target)\n\tconst words = normalizedTarget.split(/[\\s\\-_]+/)\n\tfor (const word of words) {\n\t\tif (word.startsWith(normalizedQuery)) {\n\t\t\t// Score based on which word matched (earlier words score higher)\n\t\t\tconst wordIndex = words.indexOf(word)\n\t\t\tconst wordPositionScore = 1 - (wordIndex / words.length) * 0.1\n\t\t\treturn 0.85 * wordPositionScore // Score between 0.765 and 0.85\n\t\t}\n\t}\n\n\t// 4. Direct substring match (query appears anywhere in target)\n\tif (normalizedTarget.includes(normalizedQuery)) {\n\t\t// Score based on position (earlier position scores higher)\n\t\tconst position = normalizedTarget.indexOf(normalizedQuery)\n\t\tconst positionScore = 1 - (position / normalizedTarget.length) * 0.2\n\t\treturn 0.7 * positionScore // Score between 0.56 and 0.7\n\t}\n\n\t// 5. Subsequence check (all query chars appear in order)\n\tif (isSubsequence(normalizedQuery, normalizedTarget)) {\n\t\treturn 0.5\n\t}\n\n\t// 6. Fuzzy matching for typos\n\t// 6a. Dice coefficient (good for similar words)\n\tconst diceScore = diceCoefficient(normalizedQuery, normalizedTarget)\n\t\n\t// 6b. Levenshtein distance (good for typos)\n\tconst maxLength = Math.max(normalizedQuery.length, normalizedTarget.length)\n\tconst levenshteinDistance = calculateLevenshtein(normalizedQuery, normalizedTarget)\n\tconst levenshteinScore = maxLength ? 1 - levenshteinDistance / maxLength : 0\n\n\t// 6c. Character frequency match (anagram-like)\n\tconst anagramScore = hasAllCharacters(normalizedQuery, normalizedTarget) ? 0.3 : 0\n\n\t// Combine fuzzy scores with weights\n\tconst fuzzyScore = Math.max(\n\t\tdiceScore * 0.4,\n\t\tlevenshteinScore * 0.4,\n\t\tanagramScore\n\t)\n\n\treturn fuzzyScore\n}\n\n// Keep the rest of the helper functions as they are...\n/**\n * Check if string 'sub' is a subsequence of string 'str'.\n * All characters in 'sub' must appear in order in 'str'.\n */\nfunction isSubsequence(sub: string, str: string): boolean {\n\tlet i = 0,\n\t\tj = 0\n\twhile (i < sub.length && j < str.length) {\n\t\tif (sub[i] === str[j]) i++\n\t\tj++\n\t}\n\treturn i === sub.length\n}\n\n/**\n * Check if all characters in 'query' are present in 'target'.\n * For example, \"aovc\" matches \"avocados\" (anagram subset matching).\n */\nfunction hasAllCharacters(query: string, target: string): boolean {\n\tconst countChars = (s: string): Record<string, number> => {\n\t\treturn s.split('').reduce(\n\t\t\t(acc, char) => {\n\t\t\t\tacc[char] = (acc[char] || 0) + 1\n\t\t\t\treturn acc\n\t\t\t},\n\t\t\t{} as Record<string, number>,\n\t\t)\n\t}\n\n\tconst queryCount = countChars(query)\n\tconst targetCount = countChars(target)\n\n\treturn Object.keys(queryCount).every(char => (targetCount[char] || 0) >= queryCount[char])\n}\n\n/**\n * Generate bigrams for a string.\n * A bigram is a sequence of two adjacent characters.\n */\nfunction getBigrams(s: string): string[] {\n\tconst bigrams = []\n\tfor (let i = 0; i < s.length - 1; i++) {\n\t\tbigrams.push(s.substring(i, i + 2))\n\t}\n\treturn bigrams\n}\n\n/**\n * Compute Dice's coefficient for two strings based on bigrams.\n * Returns a value between 0 (no similarity) and 1 (perfect match).\n */\nfunction diceCoefficient(s1: string, s2: string): number {\n\tif (s1.length < 2 || s2.length < 2) return 0\n\n\tconst bigrams1 = getBigrams(s1)\n\tconst bigrams2 = getBigrams(s2)\n\n\tlet intersection = 0\n\tconst used = new Array(bigrams2.length).fill(false)\n\n\tfor (const bigram of bigrams1) {\n\t\tfor (let i = 0; i < bigrams2.length; i++) {\n\t\t\tif (!used[i] && bigrams2[i] === bigram) {\n\t\t\t\tintersection++\n\t\t\t\tused[i] = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\treturn (2 * intersection) / (bigrams1.length + bigrams2.length)\n}\n\n/**\n * Calculate Levenshtein distance between two strings.\n */\nfunction calculateLevenshtein(a: string, b: string): number {\n\tif (a.length === 0) return b.length\n\tif (b.length === 0) return a.length\n\n\tconst matrix: number[][] = []\n\n\t// Initialize the matrix\n\tfor (let i = 0; i <= b.length; i++) {\n\t\tmatrix[i] = [i]\n\t}\n\tfor (let j = 0; j <= a.length; j++) {\n\t\tmatrix[0][j] = j\n\t}\n\n\t// Calculate distances\n\tfor (let i = 1; i <= b.length; i++) {\n\t\tfor (let j = 1; j <= a.length; j++) {\n\t\t\tconst cost = a[j - 1] === b[i - 1] ? 0 : 1\n\t\t\tmatrix[i][j] = Math.min(\n\t\t\t\tmatrix[i - 1][j] + 1, // deletion\n\t\t\t\tmatrix[i][j - 1] + 1, // insertion\n\t\t\t\tmatrix[i - 1][j - 1] + cost, // substitution\n\t\t\t)\n\t\t}\n\t}\n\n\treturn matrix[b.length][a.length]\n}\n"],"names":["similarity","query","target","normalizedQuery","toLowerCase","trim","normalizedTarget","startsWith","length","words","split","word","indexOf","includes","sub","str","i","j","diceScore","s1","s2","bigrams1","getBigrams","bigrams2","intersection","used","Array","fill","bigram","maxLength","Math","max","levenshteinDistance","a","b","matrix","cost","min","levenshteinScore","anagramScore","countChars","s","reduce","acc","char","queryCount","targetCount","Object","keys","every","bigrams","push","substring"],"mappings":"AASO,SAASA,EAAWC,GAAeC,GAAAA;AAEzC,OAAKD,KAAAA,CAAUC,EAAQ,QAAO;AAC9B,MAAID,MAAUC,EAAQ,QAAO;AAG7B,QAAMC,IAAkBF,EAAMG,YAAAA,EAAcC,KAAAA,GACtCC,IAAmBJ,EAAOE,YAAAA,EAAcC;AAG9C,MAAIF,MAAoBG,EAAkB,QAAO;AAGjD,MAAIA,EAAiBC,WAAWJ;AAG/B,WAAO,OAAsB,QADTA,EAAgBK,SAASF,EAAiBE;AAK/D,QAAMC,IAAQH,EAAiBI,MAAM,UAAA;AACrC,aAAWC,KAAQF,EAClB,KAAIE,EAAKJ,WAAWJ,CAAAA;AAInB,WAAO,QADmB,IADRM,EAAMG,QAAQD,KACWF,EAAMD,SAAU;AAM7D,MAAIF,EAAiBO,SAASV,CAAAA;AAI7B,WAAO,OADe,IADLG,EAAiBM,QAAQT,KACJG,EAAiBE,SAAU;AAKlE,MA+BD,SAAuBM,GAAaC,GAAAA;AACnC,QAAIC,IAAI,GACPC,IAAI;AACL,WAAOD,IAAIF,EAAIN,UAAUS,IAAIF,EAAIP,SAC5BM,CAAAA,EAAIE,CAAAA,MAAOD,EAAIE,CAAAA,KAAID,KACvBC;AAED,WAAOD,MAAMF,EAAIN;AAAAA,EAClB,EAvCmBL,GAAiBG,CAAAA,EAClC,QAAO;AAKR,QAAMY,IAwEP,SAAyBC,GAAYC;AACpC,QAAID,EAAGX,SAAS,KAAKY,EAAGZ,SAAS,EAAG,QAAO;AAE3C,UAAMa,IAAWC,EAAWH,CAAAA,GACtBI,IAAWD,EAAWF,CAAAA;AAE5B,QAAII,IAAe;AACnB,UAAMC,IAAO,IAAIC,MAAMH,EAASf,MAAAA,EAAQmB,KAAAA;AAExC,eAAWC,KAAUP,EACpB,UAASL,IAAI,GAAGA,IAAIO,EAASf,QAAQQ,IACpC,KAAA,CAAKS,EAAKT,MAAMO,EAASP,CAAAA,MAAOY,GAAQ;AACvCJ,WACAC,EAAKT,CAAAA,IAAAA;AACL;AAAA,IACD;AAIF,WAAQ,IAAIQ,KAAiBH,EAASb,SAASe,EAASf;AAAAA,EACzD,EA5FmCL,GAAiBG,IAG7CuB,IAAYC,KAAKC,IAAI5B,EAAgBK,QAAQF,EAAiBE,MAAAA,GAC9DwB,IA6FP,SAA8BC,GAAWC;AACxC,QAAID,EAAEzB,WAAW,EAAG,QAAO0B,EAAE1B;AAC7B,QAAI0B,EAAE1B,WAAW,EAAG,QAAOyB,EAAEzB;AAE7B,UAAM2B,IAAqB,CAAA;AAG3B,aAASnB,IAAI,GAAGA,KAAKkB,EAAE1B,QAAQQ,IAC9BmB,CAAAA,EAAOnB,KAAK,CAACA,CAAAA;AAEd,aAASC,IAAI,GAAGA,KAAKgB,EAAEzB,QAAQS,IAC9BkB,CAAAA,EAAO,GAAGlB,CAAAA,IAAKA;AAIhB,aAASD,IAAI,GAAGA,KAAKkB,EAAE1B,QAAQQ,IAC9B,UAASC,IAAI,GAAGA,KAAKgB,EAAEzB,QAAQS,KAAK;AACnC,YAAMmB,IAAOH,EAAEhB,IAAI,OAAOiB,EAAElB,IAAI,KAAK,IAAI;AACzCmB,MAAAA,EAAOnB,CAAAA,EAAGC,CAAAA,IAAKa,KAAKO,IACnBF,EAAOnB,IAAI,CAAA,EAAGC,CAAAA,IAAK,GACnBkB,EAAOnB,CAAAA,EAAGC,IAAI,CAAA,IAAK,GACnBkB,EAAOnB,IAAI,CAAA,EAAGC,IAAI,CAAA,IAAKmB,CAAAA;AAAAA,IAEzB;AAGD,WAAOD,EAAOD,EAAE1B,MAAAA,EAAQyB,EAAEzB,MAAAA;AAAAA,EAC3B,EAxHkDL,GAAiBG,CAAAA,GAC5DgC,IAAmBT,IAAY,IAAIG,IAAsBH,IAAY,GAGrEU,IA+BP,SAA0BtC,GAAeC;AACxC,UAAMsC,IAAcC,CAAAA,MACZA,EAAE/B,MAAM,IAAIgC,OAClB,CAACC,GAAKC,OACLD,EAAIC,MAASD,EAAIC,CAAAA,KAAS,KAAK,GACxBD,IAER,CAAA,CAAA,GAIIE,IAAaL,EAAWvC,CAAAA,GACxB6C,IAAcN,EAAWtC,CAAAA;AAE/B,WAAO6C,OAAOC,KAAKH,CAAAA,EAAYI,MAAML,CAAAA,OAASE,EAAYF,MAAS,MAAMC,EAAWD;EACrF,EA9CuCzC,GAAiBG,CAAAA,IAAoB,MAAM;AASjF,SANmBwB,KAAKC,IACX,MAAZb,GACmB,MAAnBoB,GACAC,CAAAA;AAIF;AA0CA,SAASjB,EAAWmB;AACnB,QAAMS,IAAU;AAChB,WAASlC,IAAI,GAAGA,IAAIyB,EAAEjC,SAAS,GAAGQ,IACjCkC,CAAAA,EAAQC,KAAKV,EAAEW,UAAUpC,GAAGA,IAAI,CAAA,CAAA;AAEjC,SAAOkC;AACR;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";function m(s){const u=[];for(let r=0;r<s.length-1;r++)u.push(s.substring(r,r+2));return u}exports.similarity=function(s,u){if(!s||!u)return 0;if(s===u)return 1;const r=s.toLowerCase().trim(),o=u.toLowerCase().trim();if(r===o)return 1;if(o.startsWith(r))return .95+.05*(r.length/o.length);const c=o.split(/[\s\-_]+/);for(const n of c)if(n.startsWith(r))return .85*(1-c.indexOf(n)/c.length*.1);if(o.includes(r))return .7*(1-o.indexOf(r)/o.length*.2);if(function(n,l){let e=0,t=0;for(;e<n.length&&t<l.length;)n[e]===l[t]&&e++,t++;return e===n.length}(r,o))return .5;const d=function(n,l){if(n.length<2||l.length<2)return 0;const e=m(n),t=m(l);let f=0;const i=new Array(t.length).fill(!1);for(const g of e)for(let h=0;h<t.length;h++)if(!i[h]&&t[h]===g){f++,i[h]=!0;break}return 2*f/(e.length+t.length)}(r,o),a=Math.max(r.length,o.length),x=function(n,l){if(n.length===0)return l.length;if(l.length===0)return n.length;const e=[];for(let t=0;t<=l.length;t++)e[t]=[t];for(let t=0;t<=n.length;t++)e[0][t]=t;for(let t=1;t<=l.length;t++)for(let f=1;f<=n.length;f++){const i=n[f-1]===l[t-1]?0:1;e[t][f]=Math.min(e[t-1][f]+1,e[t][f-1]+1,e[t-1][f-1]+i)}return e[l.length][n.length]}(r,o),y=a?1-x/a:0,b=function(n,l){const e=i=>i.split("").reduce((g,h)=>(g[h]=(g[h]||0)+1,g),{}),t=e(n),f=e(l);return Object.keys(t).every(i=>(f[i]||0)>=t[i])}(r,o)?.3:0;return Math.max(.4*d,.4*y,b)};
|
|
2
|
+
//# sourceMappingURL=search-DWW8IoOp.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-DWW8IoOp.cjs","sources":["../src/utils/search.ts"],"sourcesContent":["/**\n * Calculate similarity score between two strings.\n * Returns a value between 0 (no match) and 1 (exact match).\n * Optimized for autocomplete with prioritization of start matches and whole words.\n *\n * @param query The search query string\n * @param target The target string to compare against\n * @returns A similarity score from 0 to 1\n */\nexport function similarity(query: string, target: string): number {\n\t// Handle edge cases\n\tif (!query || !target) return 0\n\tif (query === target) return 1\n\n\t// Normalize strings for comparison\n\tconst normalizedQuery = query.toLowerCase().trim()\n\tconst normalizedTarget = target.toLowerCase().trim()\n\n\t// 1. Exact match (case-insensitive)\n\tif (normalizedQuery === normalizedTarget) return 1\n\n\t// 2. Target starts with query (highest priority for autocomplete)\n\tif (normalizedTarget.startsWith(normalizedQuery)) {\n\t\t// Give higher score to shorter targets (more precise matches)\n\t\tconst lengthRatio = normalizedQuery.length / normalizedTarget.length\n\t\treturn 0.95 + (lengthRatio * 0.05) // Score between 0.95 and 1.0\n\t}\n\n\t// 3. Word boundary match (query matches start of any word in target)\n\tconst words = normalizedTarget.split(/[\\s\\-_]+/)\n\tfor (const word of words) {\n\t\tif (word.startsWith(normalizedQuery)) {\n\t\t\t// Score based on which word matched (earlier words score higher)\n\t\t\tconst wordIndex = words.indexOf(word)\n\t\t\tconst wordPositionScore = 1 - (wordIndex / words.length) * 0.1\n\t\t\treturn 0.85 * wordPositionScore // Score between 0.765 and 0.85\n\t\t}\n\t}\n\n\t// 4. Direct substring match (query appears anywhere in target)\n\tif (normalizedTarget.includes(normalizedQuery)) {\n\t\t// Score based on position (earlier position scores higher)\n\t\tconst position = normalizedTarget.indexOf(normalizedQuery)\n\t\tconst positionScore = 1 - (position / normalizedTarget.length) * 0.2\n\t\treturn 0.7 * positionScore // Score between 0.56 and 0.7\n\t}\n\n\t// 5. Subsequence check (all query chars appear in order)\n\tif (isSubsequence(normalizedQuery, normalizedTarget)) {\n\t\treturn 0.5\n\t}\n\n\t// 6. Fuzzy matching for typos\n\t// 6a. Dice coefficient (good for similar words)\n\tconst diceScore = diceCoefficient(normalizedQuery, normalizedTarget)\n\t\n\t// 6b. Levenshtein distance (good for typos)\n\tconst maxLength = Math.max(normalizedQuery.length, normalizedTarget.length)\n\tconst levenshteinDistance = calculateLevenshtein(normalizedQuery, normalizedTarget)\n\tconst levenshteinScore = maxLength ? 1 - levenshteinDistance / maxLength : 0\n\n\t// 6c. Character frequency match (anagram-like)\n\tconst anagramScore = hasAllCharacters(normalizedQuery, normalizedTarget) ? 0.3 : 0\n\n\t// Combine fuzzy scores with weights\n\tconst fuzzyScore = Math.max(\n\t\tdiceScore * 0.4,\n\t\tlevenshteinScore * 0.4,\n\t\tanagramScore\n\t)\n\n\treturn fuzzyScore\n}\n\n// Keep the rest of the helper functions as they are...\n/**\n * Check if string 'sub' is a subsequence of string 'str'.\n * All characters in 'sub' must appear in order in 'str'.\n */\nfunction isSubsequence(sub: string, str: string): boolean {\n\tlet i = 0,\n\t\tj = 0\n\twhile (i < sub.length && j < str.length) {\n\t\tif (sub[i] === str[j]) i++\n\t\tj++\n\t}\n\treturn i === sub.length\n}\n\n/**\n * Check if all characters in 'query' are present in 'target'.\n * For example, \"aovc\" matches \"avocados\" (anagram subset matching).\n */\nfunction hasAllCharacters(query: string, target: string): boolean {\n\tconst countChars = (s: string): Record<string, number> => {\n\t\treturn s.split('').reduce(\n\t\t\t(acc, char) => {\n\t\t\t\tacc[char] = (acc[char] || 0) + 1\n\t\t\t\treturn acc\n\t\t\t},\n\t\t\t{} as Record<string, number>,\n\t\t)\n\t}\n\n\tconst queryCount = countChars(query)\n\tconst targetCount = countChars(target)\n\n\treturn Object.keys(queryCount).every(char => (targetCount[char] || 0) >= queryCount[char])\n}\n\n/**\n * Generate bigrams for a string.\n * A bigram is a sequence of two adjacent characters.\n */\nfunction getBigrams(s: string): string[] {\n\tconst bigrams = []\n\tfor (let i = 0; i < s.length - 1; i++) {\n\t\tbigrams.push(s.substring(i, i + 2))\n\t}\n\treturn bigrams\n}\n\n/**\n * Compute Dice's coefficient for two strings based on bigrams.\n * Returns a value between 0 (no similarity) and 1 (perfect match).\n */\nfunction diceCoefficient(s1: string, s2: string): number {\n\tif (s1.length < 2 || s2.length < 2) return 0\n\n\tconst bigrams1 = getBigrams(s1)\n\tconst bigrams2 = getBigrams(s2)\n\n\tlet intersection = 0\n\tconst used = new Array(bigrams2.length).fill(false)\n\n\tfor (const bigram of bigrams1) {\n\t\tfor (let i = 0; i < bigrams2.length; i++) {\n\t\t\tif (!used[i] && bigrams2[i] === bigram) {\n\t\t\t\tintersection++\n\t\t\t\tused[i] = true\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t}\n\n\treturn (2 * intersection) / (bigrams1.length + bigrams2.length)\n}\n\n/**\n * Calculate Levenshtein distance between two strings.\n */\nfunction calculateLevenshtein(a: string, b: string): number {\n\tif (a.length === 0) return b.length\n\tif (b.length === 0) return a.length\n\n\tconst matrix: number[][] = []\n\n\t// Initialize the matrix\n\tfor (let i = 0; i <= b.length; i++) {\n\t\tmatrix[i] = [i]\n\t}\n\tfor (let j = 0; j <= a.length; j++) {\n\t\tmatrix[0][j] = j\n\t}\n\n\t// Calculate distances\n\tfor (let i = 1; i <= b.length; i++) {\n\t\tfor (let j = 1; j <= a.length; j++) {\n\t\t\tconst cost = a[j - 1] === b[i - 1] ? 0 : 1\n\t\t\tmatrix[i][j] = Math.min(\n\t\t\t\tmatrix[i - 1][j] + 1, // deletion\n\t\t\t\tmatrix[i][j - 1] + 1, // insertion\n\t\t\t\tmatrix[i - 1][j - 1] + cost, // substitution\n\t\t\t)\n\t\t}\n\t}\n\n\treturn matrix[b.length][a.length]\n}\n"],"names":["getBigrams","s","bigrams","i","length","push","substring","query","target","normalizedQuery","toLowerCase","trim","normalizedTarget","startsWith","words","split","word","indexOf","includes","sub","str","j","diceScore","s1","s2","bigrams1","bigrams2","intersection","used","Array","fill","bigram","maxLength","Math","max","levenshteinDistance","a","b","matrix","cost","min","levenshteinScore","anagramScore","countChars","reduce","acc","char","queryCount","targetCount","Object","keys","every"],"mappings":"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"}
|
|
@@ -8,9 +8,9 @@ import { css as f, html as b } from "lit";
|
|
|
8
8
|
import { n as O, e as j } from "./provide-tcktw8xB.js";
|
|
9
9
|
import { repeat as H } from "lit/directives/repeat.js";
|
|
10
10
|
const g = O("tabs");
|
|
11
|
-
var
|
|
12
|
-
for (var l, o = s > 1 ? void 0 : s ?
|
|
13
|
-
return s && o &&
|
|
11
|
+
var B = Object.defineProperty, P = Object.getOwnPropertyDescriptor, p = (t, e, a, s) => {
|
|
12
|
+
for (var l, o = s > 1 ? void 0 : s ? P(e, a) : e, n = t.length - 1; n >= 0; n--) (l = t[n]) && (o = (s ? l(e, a, o) : l(o)) || o);
|
|
13
|
+
return s && o && B(e, a, o), o;
|
|
14
14
|
};
|
|
15
15
|
let c = class extends u(f`
|
|
16
16
|
:host {
|
|
@@ -22,9 +22,9 @@ let c = class extends u(f`
|
|
|
22
22
|
}
|
|
23
23
|
};
|
|
24
24
|
p([h({ type: String, reflect: !0 })], c.prototype, "label", 2), p([h({ type: String, reflect: !0 })], c.prototype, "value", 2), p([h({ type: Boolean, reflect: !0 })], c.prototype, "active", 2), p([E({ context: g, subscribe: !0 }), v()], c.prototype, "mode", 2), c = p([y("schmancy-tab")], c);
|
|
25
|
-
var
|
|
25
|
+
var S = Object.defineProperty, M = Object.getOwnPropertyDescriptor, i = (t, e, a, s) => {
|
|
26
26
|
for (var l, o = s > 1 ? void 0 : s ? M(e, a) : e, n = t.length - 1; n >= 0; n--) (l = t[n]) && (o = (s ? l(e, a, o) : l(o)) || o);
|
|
27
|
-
return s && o &&
|
|
27
|
+
return s && o && S(e, a, o), o;
|
|
28
28
|
};
|
|
29
29
|
let r = class extends u(f`
|
|
30
30
|
:host {
|
|
@@ -101,4 +101,4 @@ let r = class extends u(f`
|
|
|
101
101
|
i([j({ context: g }), h({ type: String })], r.prototype, "mode", 2), i([h({ type: Boolean })], r.prototype, "rounded", 2), i([h({ type: String, reflect: !0 })], r.prototype, "activeTab", 2), i([$({ flatten: !0 })], r.prototype, "tabsElements", 2), i([m("#tabsNavigation")], r.prototype, "navElement", 2), i([m("#tabsContent")], r.prototype, "tabsContent", 2), i([v()], r.prototype, "tabs", 2), r = i([y("schmancy-tab-group")], r);
|
|
102
102
|
customElements.define("schmancy-tabs-group", class extends r {
|
|
103
103
|
});
|
|
104
|
-
//# sourceMappingURL=tabs-compatibility-
|
|
104
|
+
//# sourceMappingURL=tabs-compatibility-BEXurIiZ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs-compatibility-DsOH4PSw.js","sources":["../src/tabs/context.ts","../src/tabs/tab.ts","../src/tabs/tabs-group.ts","../src/tabs/tabs-compatibility.ts"],"sourcesContent":["import { createContext } from '@lit/context'\n\nexport type TSchmancyTabsMode = 'scroll' | 'tabs'\n\nexport const SchmancyTabsModeContext = createContext<TSchmancyTabsMode>('tabs')\n","import { consume } from '@lit/context'\nimport { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { SchmancyTabsModeContext } from './context'\n\n@customElement('schmancy-tab')\nexport default class SchmancyTab extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\t@property({ type: String, reflect: true }) label\n\t@property({ type: String, reflect: true }) value\n\t@property({ type: Boolean, reflect: true }) active!: boolean\n\n\t@consume({ context: SchmancyTabsModeContext, subscribe: true })\n\t@state()\n\tmode\n\tprotected render(): unknown {\n\t\treturn html` <slot .hidden=${this.mode === 'tabs' ? !this.active : false}></slot> `\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-tab': SchmancyTab\n\t}\n}\n","import { provide } from '@lit/context'\nimport { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { repeat } from 'lit/directives/repeat.js'\nimport { filter, fromEvent, interval, map, take, throttleTime } from 'rxjs'\nimport { SchmancyTabsModeContext, TSchmancyTabsMode } from './context'\nimport SchmancyTab from './tab'\n\n/**\n * @slot - The content of the tab group\n * @fires tab-changed - The event fired when the tab is changed\n */\n@customElement('schmancy-tab-group')\nexport default class SchmancyTabGroup extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\t@provide({ context: SchmancyTabsModeContext })\n\t@property({ type: String })\n\tmode: TSchmancyTabsMode = 'tabs'\n\n\t@property({ type: Boolean }) rounded = true\n\n\t@property({ type: String, reflect: true }) activeTab: string\n\t@queryAssignedElements({\n\t\tflatten: true,\n\t})\n\tprivate tabsElements!: Array<SchmancyTab>\n\n\t@query('#tabsNavigation') navElement!: HTMLElement\n\t@query('#tabsContent') tabsContent!: HTMLElement\n\n\t@state()\n\tprivate tabs: Array<SchmancyTab> = []\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tfromEvent(window, 'scroll')\n\t\t\t.pipe(\n\t\t\t\tthrottleTime(1000),\n\t\t\t\tfilter(() => this.mode === 'scroll'),\n\t\t\t\tmap(() => {\n\t\t\t\t\tlet closestDiv = null\n\t\t\t\t\tlet closestDistance = Infinity\n\t\t\t\t\tthis.tabsElements.forEach(div => {\n\t\t\t\t\t\tconst distance =\n\t\t\t\t\t\t\tdiv.getBoundingClientRect().top - this.navElement.clientHeight + document.body.offsetHeight / 3\n\n\t\t\t\t\t\tif (distance < closestDistance && distance > 0) {\n\t\t\t\t\t\t\tclosestDistance = distance\n\t\t\t\t\t\t\tclosestDiv = div\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\treturn closestDiv\n\t\t\t\t}),\n\t\t\t\tfilter((el: SchmancyTab | null) => el !== null),\n\t\t\t)\n\t\t\t.subscribe({\n\t\t\t\tnext: (el: SchmancyTab) => {\n\t\t\t\t\tthis.activeTab = el.value\n\t\t\t\t},\n\t\t\t})\n\t}\n\n\tfirstUpdated() {\n\t\tinterval(0)\n\t\t\t.pipe(\n\t\t\t\tfilter(() => !!this.navElement.clientHeight),\n\t\t\t\ttake(1),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.tabsElements.forEach(tab => {\n\t\t\t\t\tif (this.mode === 'scroll') tab.style.paddingTop = this.navElement.clientHeight + 'px'\n\t\t\t\t})\n\t\t\t})\n\t}\n\n\thydrateTabs() {\n\t\tthis.tabs = this.tabsElements\n\t\tif (!this.activeTab && this.tabsElements[0]) {\n\t\t\tthis.activeTab = this.tabsElements[0].value\n\t\t\tthis.tabsElements[0].active = true\n\t\t} else {\n\t\t\tthis.tabsElements.forEach(tab => {\n\t\t\t\tif (tab.value === this.activeTab) tab.active = true\n\t\t\t\telse tab.active = false\n\t\t\t})\n\t\t}\n\t\tconst lastTab = this.tabs?.[-1]\n\t\tif (lastTab) {\n\t\t\tlastTab.style.paddingBottom = lastTab.offsetHeight + 'px'\n\t\t}\n\t}\n\n\ttabChanged(selectedTab: { label: string; value: string }) {\n\t\tlet activeTabElement: SchmancyTab | undefined\n\t\tthis.tabsElements.forEach(tab => {\n\t\t\tif (tab.value === selectedTab.value) {\n\t\t\t\ttab.active = true\n\t\t\t\tactiveTabElement = tab\n\t\t\t\t// scroll to the tab\n\t\t\t\tif (this.mode === 'scroll') {\n\t\t\t\t\t// Scroll the desired element into view\n\t\t\t\t\tactiveTabElement.scrollIntoView({\n\t\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\t\tblock: 'start',\n\t\t\t\t\t\tinline: 'start',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttab.active = false\n\t\t\t}\n\t\t})\n\t\tthis.mode === 'tabs' && (this.activeTab = selectedTab.value)\n\t\tthis.dispatchEvent(new CustomEvent('tab-changed', { detail: this.activeTab }))\n\t}\n\n\tprotected render(): unknown {\n\t\tconst tabs = {\n\t\t\t'bg-surface-default color-surface-on': true,\n\t\t\t'flex z-50': true,\n\t\t\t'sticky top-0 shadow-md': this.mode === 'scroll',\n\t\t\t'rounded-full': this.rounded,\n\t\t}\n\n\t\tconst activeTab = {\n\t\t\t'text-primary-default': true,\n\t\t}\n\n\t\tconst inactiveTab = {\n\t\t\t'border-transparent': true,\n\t\t\t'hover:text-gray-700': true,\n\t\t\t'hover:border-gray-300': true,\n\t\t\t'text-gray-500': true,\n\t\t}\n\n\t\treturn html`\n\t\t\t<section id=\"tabsNavigation\" class=\"${this.classMap(tabs)}\" aria-label=\"Tabs\">\n\t\t\t\t${repeat(\n\t\t\t\t\tthis.tabs,\n\t\t\t\t\ttab => tab.value,\n\t\t\t\t\ttab => html`\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis.tabChanged({\n\t\t\t\t\t\t\t\t\tlabel: tab.label,\n\t\t\t\t\t\t\t\t\tvalue: tab.value,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\taria-current=\"page\"\n\t\t\t\t\t\t\tclass=\"h-auto relative\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass=\"px-4 py-3 ${this.activeTab === tab.value\n\t\t\t\t\t\t\t\t\t? this.classMap(activeTab)\n\t\t\t\t\t\t\t\t\t: this.classMap(inactiveTab)}\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<schmancy-typography class=\"h-full align-middle flex \" type=\"title\" token=\"md\" weight=\"medium\">\n\t\t\t\t\t\t\t\t\t${tab.label}\n\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t.hidden=${this.activeTab !== tab.value}\n\t\t\t\t\t\t\t\t\tclass=\"border-primary-default absolute bottom-0 inset-x-6 border-solid border-2 rounded-t-full\"\n\t\t\t\t\t\t\t\t></div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t`,\n\t\t\t\t)}\n\t\t\t</section>\n\t\t\t<schmancy-divider class=\"px-6\"></schmancy-divider>\n\t\t\t<section id=\"tabsContent\">\n\t\t\t\t<slot @slotchange=${() => this.hydrateTabs()}></slot>\n\t\t\t</section>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-tab-group': SchmancyTabGroup\n\t}\n}\n","/**\n * Compatibility layer for schmancy-tabs-group (which is the more correct plural form)\n * that aliases to schmancy-tab-group for backward compatibility\n */\nimport SchmancyTabGroup from './tabs-group';\n\n// Create a simple class extends the original tab group\nclass SchmancyTabsGroup extends SchmancyTabGroup {}\n\n// Register the alias element\ncustomElements.define('schmancy-tabs-group', SchmancyTabsGroup);\n\nexport default SchmancyTabsGroup;\n\n// Add the type definition to ensure TypeScript recognizes the element\ndeclare global {\n interface HTMLElementTagNameMap {\n 'schmancy-tabs-group': SchmancyTabsGroup;\n }\n}"],"names":["SchmancyTabsModeContext","createContext","SchmancyTab","TailwindElement","css","render","html","this","mode","active","__decorateClass","property","type","String","reflect","prototype","Boolean","consume","context","subscribe","state","customElement","SchmancyTabGroup","constructor","super","arguments","rounded","tabs","connectedCallback","fromEvent","window","pipe","throttleTime","filter","map","closestDiv","closestDistance","Infinity","tabsElements","forEach","div","distance","getBoundingClientRect","top","navElement","clientHeight","document","body","offsetHeight","el","next","activeTab","value","firstUpdated","interval","take","tab","style","paddingTop","hydrateTabs","lastTab","paddingBottom","selectedTab","activeTabElement","scrollIntoView","behavior","block","inline","dispatchEvent","CustomEvent","detail","inactiveTab","classMap","repeat","tabChanged","label","provide","queryAssignedElements","flatten","query","customElements","define"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tabs-compatibility-BEXurIiZ.js","sources":["../src/tabs/context.ts","../src/tabs/tab.ts","../src/tabs/tabs-group.ts","../src/tabs/tabs-compatibility.ts"],"sourcesContent":["import { createContext } from '@lit/context'\n\nexport type TSchmancyTabsMode = 'scroll' | 'tabs'\n\nexport const SchmancyTabsModeContext = createContext<TSchmancyTabsMode>('tabs')\n","import { consume } from '@lit/context'\nimport { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { SchmancyTabsModeContext } from './context'\n\n@customElement('schmancy-tab')\nexport default class SchmancyTab extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\t@property({ type: String, reflect: true }) label\n\t@property({ type: String, reflect: true }) value\n\t@property({ type: Boolean, reflect: true }) active!: boolean\n\n\t@consume({ context: SchmancyTabsModeContext, subscribe: true })\n\t@state()\n\tmode\n\tprotected render(): unknown {\n\t\treturn html` <slot .hidden=${this.mode === 'tabs' ? !this.active : false}></slot> `\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-tab': SchmancyTab\n\t}\n}\n","import { provide } from '@lit/context'\nimport { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query, queryAssignedElements, state } from 'lit/decorators.js'\nimport { repeat } from 'lit/directives/repeat.js'\nimport { filter, fromEvent, interval, map, take, throttleTime } from 'rxjs'\nimport { SchmancyTabsModeContext, TSchmancyTabsMode } from './context'\nimport SchmancyTab from './tab'\n\n/**\n * @slot - The content of the tab group\n * @fires tab-changed - The event fired when the tab is changed\n */\n@customElement('schmancy-tab-group')\nexport default class SchmancyTabGroup extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t}\n`) {\n\t@provide({ context: SchmancyTabsModeContext })\n\t@property({ type: String })\n\tmode: TSchmancyTabsMode = 'tabs'\n\n\t@property({ type: Boolean }) rounded = true\n\n\t@property({ type: String, reflect: true }) activeTab: string\n\t@queryAssignedElements({\n\t\tflatten: true,\n\t})\n\tprivate tabsElements!: Array<SchmancyTab>\n\n\t@query('#tabsNavigation') navElement!: HTMLElement\n\t@query('#tabsContent') tabsContent!: HTMLElement\n\n\t@state()\n\tprivate tabs: Array<SchmancyTab> = []\n\n\tconnectedCallback(): void {\n\t\tsuper.connectedCallback()\n\t\tfromEvent(window, 'scroll')\n\t\t\t.pipe(\n\t\t\t\tthrottleTime(1000),\n\t\t\t\tfilter(() => this.mode === 'scroll'),\n\t\t\t\tmap(() => {\n\t\t\t\t\tlet closestDiv = null\n\t\t\t\t\tlet closestDistance = Infinity\n\t\t\t\t\tthis.tabsElements.forEach(div => {\n\t\t\t\t\t\tconst distance =\n\t\t\t\t\t\t\tdiv.getBoundingClientRect().top - this.navElement.clientHeight + document.body.offsetHeight / 3\n\n\t\t\t\t\t\tif (distance < closestDistance && distance > 0) {\n\t\t\t\t\t\t\tclosestDistance = distance\n\t\t\t\t\t\t\tclosestDiv = div\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t\treturn closestDiv\n\t\t\t\t}),\n\t\t\t\tfilter((el: SchmancyTab | null) => el !== null),\n\t\t\t)\n\t\t\t.subscribe({\n\t\t\t\tnext: (el: SchmancyTab) => {\n\t\t\t\t\tthis.activeTab = el.value\n\t\t\t\t},\n\t\t\t})\n\t}\n\n\tfirstUpdated() {\n\t\tinterval(0)\n\t\t\t.pipe(\n\t\t\t\tfilter(() => !!this.navElement.clientHeight),\n\t\t\t\ttake(1),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tthis.tabsElements.forEach(tab => {\n\t\t\t\t\tif (this.mode === 'scroll') tab.style.paddingTop = this.navElement.clientHeight + 'px'\n\t\t\t\t})\n\t\t\t})\n\t}\n\n\thydrateTabs() {\n\t\tthis.tabs = this.tabsElements\n\t\tif (!this.activeTab && this.tabsElements[0]) {\n\t\t\tthis.activeTab = this.tabsElements[0].value\n\t\t\tthis.tabsElements[0].active = true\n\t\t} else {\n\t\t\tthis.tabsElements.forEach(tab => {\n\t\t\t\tif (tab.value === this.activeTab) tab.active = true\n\t\t\t\telse tab.active = false\n\t\t\t})\n\t\t}\n\t\tconst lastTab = this.tabs?.[-1]\n\t\tif (lastTab) {\n\t\t\tlastTab.style.paddingBottom = lastTab.offsetHeight + 'px'\n\t\t}\n\t}\n\n\ttabChanged(selectedTab: { label: string; value: string }) {\n\t\tlet activeTabElement: SchmancyTab | undefined\n\t\tthis.tabsElements.forEach(tab => {\n\t\t\tif (tab.value === selectedTab.value) {\n\t\t\t\ttab.active = true\n\t\t\t\tactiveTabElement = tab\n\t\t\t\t// scroll to the tab\n\t\t\t\tif (this.mode === 'scroll') {\n\t\t\t\t\t// Scroll the desired element into view\n\t\t\t\t\tactiveTabElement.scrollIntoView({\n\t\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\t\tblock: 'start',\n\t\t\t\t\t\tinline: 'start',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttab.active = false\n\t\t\t}\n\t\t})\n\t\tthis.mode === 'tabs' && (this.activeTab = selectedTab.value)\n\t\tthis.dispatchEvent(new CustomEvent('tab-changed', { detail: this.activeTab }))\n\t}\n\n\tprotected render(): unknown {\n\t\tconst tabs = {\n\t\t\t'bg-surface-default color-surface-on': true,\n\t\t\t'flex z-50': true,\n\t\t\t'sticky top-0 shadow-md': this.mode === 'scroll',\n\t\t\t'rounded-full': this.rounded,\n\t\t}\n\n\t\tconst activeTab = {\n\t\t\t'text-primary-default': true,\n\t\t}\n\n\t\tconst inactiveTab = {\n\t\t\t'border-transparent': true,\n\t\t\t'hover:text-gray-700': true,\n\t\t\t'hover:border-gray-300': true,\n\t\t\t'text-gray-500': true,\n\t\t}\n\n\t\treturn html`\n\t\t\t<section id=\"tabsNavigation\" class=\"${this.classMap(tabs)}\" aria-label=\"Tabs\">\n\t\t\t\t${repeat(\n\t\t\t\t\tthis.tabs,\n\t\t\t\t\ttab => tab.value,\n\t\t\t\t\ttab => html`\n\t\t\t\t\t\t<schmancy-button\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis.tabChanged({\n\t\t\t\t\t\t\t\t\tlabel: tab.label,\n\t\t\t\t\t\t\t\t\tvalue: tab.value,\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\taria-current=\"page\"\n\t\t\t\t\t\t\tclass=\"h-auto relative\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclass=\"px-4 py-3 ${this.activeTab === tab.value\n\t\t\t\t\t\t\t\t\t? this.classMap(activeTab)\n\t\t\t\t\t\t\t\t\t: this.classMap(inactiveTab)}\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<schmancy-typography class=\"h-full align-middle flex \" type=\"title\" token=\"md\" weight=\"medium\">\n\t\t\t\t\t\t\t\t\t${tab.label}\n\t\t\t\t\t\t\t\t</schmancy-typography>\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t.hidden=${this.activeTab !== tab.value}\n\t\t\t\t\t\t\t\t\tclass=\"border-primary-default absolute bottom-0 inset-x-6 border-solid border-2 rounded-t-full\"\n\t\t\t\t\t\t\t\t></div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</schmancy-button>\n\t\t\t\t\t`,\n\t\t\t\t)}\n\t\t\t</section>\n\t\t\t<schmancy-divider class=\"px-6\"></schmancy-divider>\n\t\t\t<section id=\"tabsContent\">\n\t\t\t\t<slot @slotchange=${() => this.hydrateTabs()}></slot>\n\t\t\t</section>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-tab-group': SchmancyTabGroup\n\t}\n}\n","/**\n * Compatibility layer for schmancy-tabs-group (which is the more correct plural form)\n * that aliases to schmancy-tab-group for backward compatibility\n */\nimport SchmancyTabGroup from './tabs-group';\n\n// Create a simple class extends the original tab group\nclass SchmancyTabsGroup extends SchmancyTabGroup {}\n\n// Register the alias element\ncustomElements.define('schmancy-tabs-group', SchmancyTabsGroup);\n\nexport default SchmancyTabsGroup;\n\n// Add the type definition to ensure TypeScript recognizes the element\ndeclare global {\n interface HTMLElementTagNameMap {\n 'schmancy-tabs-group': SchmancyTabsGroup;\n }\n}"],"names":["SchmancyTabsModeContext","createContext","SchmancyTab","TailwindElement","css","render","html","this","mode","active","__decorateClass","property","type","String","reflect","prototype","Boolean","consume","context","subscribe","state","customElement","SchmancyTabGroup","constructor","super","arguments","rounded","tabs","connectedCallback","fromEvent","window","pipe","throttleTime","filter","map","closestDiv","closestDistance","Infinity","tabsElements","forEach","div","distance","getBoundingClientRect","top","navElement","clientHeight","document","body","offsetHeight","el","next","activeTab","value","firstUpdated","interval","take","tab","style","paddingTop","hydrateTabs","lastTab","paddingBottom","selectedTab","activeTabElement","scrollIntoView","behavior","block","inline","dispatchEvent","CustomEvent","detail","inactiveTab","classMap","repeat","tabChanged","label","provide","queryAssignedElements","flatten","query","customElements","define"],"mappings":"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"}
|
package/dist/tabs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import "./tabs-compatibility-
|
|
1
|
+
import "./tabs-compatibility-BEXurIiZ.js";
|
|
2
2
|
//# sourceMappingURL=tabs.js.map
|
package/dist/teleport.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./avatar-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./avatar-nwqyt3uc.cjs");exports.HereMorty=e.HereMorty,Object.defineProperty(exports,"SchmancyTeleportation",{enumerable:!0,get:()=>e.SchmancyTeleportation}),exports.WhereAreYouRicky=e.WhereAreYouRicky,exports.teleport=e.teleport;
|
|
2
2
|
//# sourceMappingURL=teleport.cjs.map
|
package/dist/teleport.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { c as
|
|
1
|
+
import { c as W } from "./consume-5D1qfVWM.js";
|
|
2
2
|
import "rxjs";
|
|
3
3
|
import "lit/directives/class-map.js";
|
|
4
4
|
import "lit/directives/style-map.js";
|
|
5
|
-
import { $ as
|
|
5
|
+
import { $ as X } from "./litElement.mixin-BH9PTyUD.js";
|
|
6
6
|
import "./tailwind.mixin-CaIkmP6j.js";
|
|
7
|
-
import { property as f, query as
|
|
7
|
+
import { property as f, query as J, queryAssignedNodes as G, queryAssignedElements as Y, customElement as Z } from "lit/decorators.js";
|
|
8
8
|
import { h as tt, d as et } from "./delay-D415_oVH.js";
|
|
9
9
|
import { i as st } from "./intersection-CJxzz8c-.js";
|
|
10
10
|
import { css as it, html as rt } from "lit";
|
|
@@ -356,7 +356,7 @@ var dt = Object.defineProperty, pt = Object.getOwnPropertyDescriptor, p = (s, t,
|
|
|
356
356
|
for (var r, n = i > 1 ? void 0 : i ? pt(t, e) : t, o = s.length - 1; o >= 0; o--) (r = s[o]) && (n = (i ? r(t, e, n) : r(n)) || n);
|
|
357
357
|
return i && n && dt(t, e, n), n;
|
|
358
358
|
};
|
|
359
|
-
let d = class extends
|
|
359
|
+
let d = class extends X(it`
|
|
360
360
|
:host {
|
|
361
361
|
display: inherit;
|
|
362
362
|
}
|
|
@@ -430,8 +430,8 @@ let d = class extends J(it`
|
|
|
430
430
|
</div> `;
|
|
431
431
|
}
|
|
432
432
|
};
|
|
433
|
-
p([f({ type: Number })], d.prototype, "speed", 2), p([
|
|
433
|
+
p([f({ type: Number })], d.prototype, "speed", 2), p([W({ context: et, subscribe: !0 }), f({ type: Number })], d.prototype, "delay", 2), p([f({ type: Boolean })], d.prototype, "autoStart", 2), p([f({ type: String })], d.prototype, "cursorChar", 2), p([f({ type: Number })], d.prototype, "deleteSpeed", 2), p([f({ type: Boolean })], d.prototype, "once", 2), p([J("#typewriter")], d.prototype, "typewriterContainer", 2), p([G({ flatten: !0 })], d.prototype, "_getSlottedNodes", 2), p([Y({ flatten: !0 })], d.prototype, "_getSlottedElements", 2), d = p([Z("schmancy-typewriter")], d);
|
|
434
434
|
export {
|
|
435
435
|
d as T
|
|
436
436
|
};
|
|
437
|
-
//# sourceMappingURL=typewriter-
|
|
437
|
+
//# sourceMappingURL=typewriter-DMKxup-I.js.map
|