Files
taskpile/frontend/node_modules/dom-accessibility-api/dist/is-inaccessible.mjs
Alvis f1d51b8cc8 Add side panels, task selection, graph animation, and project docs
- Foldable left panel (user profile) and right panel (task details)
- Clicking a task in the list or graph node selects it and shows details
- Both views (task list + graph) always mounted via absolute inset-0 for
  correct canvas dimensions; tabs toggle visibility with opacity
- Graph node selection animation: other nodes repel outward (charge -600),
  then selected node smoothly slides to center (500ms cubic ease-out),
  then charge restores to -120 and graph stabilizes
- Graph re-fits on tab switch and panel resize via ResizeObserver
- Fix UUID string IDs throughout (backend returns UUIDs, not integers)
- Add TaskDetailPanel, UserPanel components
- Add CLAUDE.md project documentation

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 11:23:06 +00:00

63 lines
2.6 KiB
JavaScript

/**
* Partial implementation https://www.w3.org/TR/wai-aria-1.2/#tree_exclusion
* which should only be used for elements with a non-presentational role i.e.
* `role="none"` and `role="presentation"` will not be excluded.
*
* Implements aria-hidden semantics (i.e. parent overrides child)
* Ignores "Child Presentational: True" characteristics
*
* @param element
* @param options
* @returns {boolean} true if excluded, otherwise false
*/
export function isInaccessible(element) {
var _element$ownerDocumen;
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var _options$getComputedS = options.getComputedStyle,
getComputedStyle = _options$getComputedS === void 0 ? (_element$ownerDocumen = element.ownerDocument.defaultView) === null || _element$ownerDocumen === void 0 ? void 0 : _element$ownerDocumen.getComputedStyle : _options$getComputedS,
_options$isSubtreeIna = options.isSubtreeInaccessible,
isSubtreeInaccessibleImpl = _options$isSubtreeIna === void 0 ? isSubtreeInaccessible : _options$isSubtreeIna;
if (typeof getComputedStyle !== "function") {
throw new TypeError("Owner document of the element needs to have an associated window.");
}
// since visibility is inherited we can exit early
if (getComputedStyle(element).visibility === "hidden") {
return true;
}
var currentElement = element;
while (currentElement) {
if (isSubtreeInaccessibleImpl(currentElement, {
getComputedStyle: getComputedStyle
})) {
return true;
}
currentElement = currentElement.parentElement;
}
return false;
}
/**
*
* @param element
* @param options
* @returns {boolean} - `true` if every child of the element is inaccessible
*/
export function isSubtreeInaccessible(element) {
var _element$ownerDocumen2;
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var _options$getComputedS2 = options.getComputedStyle,
getComputedStyle = _options$getComputedS2 === void 0 ? (_element$ownerDocumen2 = element.ownerDocument.defaultView) === null || _element$ownerDocumen2 === void 0 ? void 0 : _element$ownerDocumen2.getComputedStyle : _options$getComputedS2;
if (typeof getComputedStyle !== "function") {
throw new TypeError("Owner document of the element needs to have an associated window.");
}
if (element.hidden === true) {
return true;
}
if (element.getAttribute("aria-hidden") === "true") {
return true;
}
if (getComputedStyle(element).display === "none") {
return true;
}
return false;
}
//# sourceMappingURL=is-inaccessible.mjs.map