@zag-js/tabs
Advanced tools
Comparing version 0.0.0-dev-20220504084708 to 0.0.0-dev-20220508172505
@@ -175,2 +175,47 @@ var __defProp = Object.defineProperty; | ||
} | ||
var getValueText = (item) => { | ||
var _a, _b; | ||
return (_b = (_a = item.dataset.valuetext) != null ? _a : item.textContent) != null ? _b : ""; | ||
}; | ||
var match = (valueText, query2) => valueText.toLowerCase().startsWith(query2.toLowerCase()); | ||
var wrap = (v, idx) => { | ||
return v.map((_, index) => v[(Math.max(idx, 0) + index) % v.length]); | ||
}; | ||
function findByText(v, text, currentId) { | ||
const index = currentId ? indexOfId(v, currentId) : -1; | ||
let items = currentId ? wrap(v, index) : v; | ||
const isSingleKey = text.length === 1; | ||
if (isSingleKey) { | ||
items = items.filter((item) => item.id !== currentId); | ||
} | ||
return items.find((item) => match(getValueText(item), text)); | ||
} | ||
function findByTypeahead(_items, options) { | ||
const { state: state2, activeId, key, timeout = 350 } = options; | ||
const search = state2.keysSoFar + key; | ||
const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]); | ||
const query2 = isRepeated ? search[0] : search; | ||
let items = _items.slice(); | ||
const next = findByText(items, query2, activeId); | ||
function cleanup() { | ||
clearTimeout(state2.timer); | ||
state2.timer = -1; | ||
} | ||
function update(value) { | ||
state2.keysSoFar = value; | ||
cleanup(); | ||
if (value !== "") { | ||
state2.timer = +setTimeout(() => { | ||
update(""); | ||
cleanup(); | ||
}, timeout); | ||
} | ||
} | ||
update(search); | ||
return next; | ||
} | ||
findByTypeahead.defaultOptions = { | ||
keysSoFar: "", | ||
timer: -1 | ||
}; | ||
@@ -177,0 +222,0 @@ // ../../types/dist/index.mjs |
{ | ||
"name": "@zag-js/tabs", | ||
"version": "0.0.0-dev-20220504084708", | ||
"version": "0.0.0-dev-20220508172505", | ||
"description": "Core logic for the tabs widget implemented as a state machine", | ||
@@ -32,6 +32,6 @@ "keywords": [ | ||
"dependencies": { | ||
"@zag-js/core": "0.0.0-dev-20220504084708", | ||
"@zag-js/dom-utils": "0.1.0", | ||
"@zag-js/core": "0.0.0-dev-20220508172505", | ||
"@zag-js/dom-utils": "0.0.0-dev-20220508172505", | ||
"@zag-js/types": "0.1.0", | ||
"@zag-js/utils": "0.1.0" | ||
"@zag-js/utils": "0.0.0-dev-20220508172505" | ||
}, | ||
@@ -38,0 +38,0 @@ "scripts": { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
225315
1439
+ Added@zag-js/core@0.0.0-dev-20220508172505(transitive)
+ Added@zag-js/dom-utils@0.0.0-dev-20220508172505(transitive)
+ Added@zag-js/utils@0.0.0-dev-20220508172505(transitive)
- Removed@zag-js/core@0.0.0-dev-20220504084708(transitive)
- Removed@zag-js/dom-utils@0.1.0(transitive)
- Removed@zag-js/utils@0.1.0(transitive)