Source: boolean.mjs

// SPDX-FileCopyrightText: 2025 Wesley Schwengle <wesleys@opperschaap.net>
//
// SPDX-License-Identifier: MIT

/**
 * Normalize an HTML attribute value to a boolean.
 *
 * This function interprets a variety of string-like inputs as either `true` or `false`:
 * - Empty string ("") becomes true (e.g. <input disabled>)
 * - "false" and "0" become false
 * - All other defined values become true
 *
 * @param {string | null | undefined} value - The attribute value to parse
 * @returns {boolean} The normalized boolean result
 */
export function parseBoolean(value) {
  if (value === null || value === undefined) return false;

  const val = String(value).toLowerCase().trim();

  return val !== 'false' && val !== '0';
}