@zag-js/solid
Version:
The solid.js wrapper for zag
87 lines (85 loc) • 2.75 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/normalize-props.ts
var normalize_props_exports = {};
__export(normalize_props_exports, {
normalizeProps: () => normalizeProps
});
module.exports = __toCommonJS(normalize_props_exports);
var import_types = require("@zag-js/types");
var import_utils = require("@zag-js/utils");
var eventMap = {
onFocus: "onFocusIn",
onBlur: "onFocusOut",
onDoubleClick: "onDblClick",
onChange: "onInput",
defaultChecked: "checked",
defaultValue: "value",
htmlFor: "for",
className: "class"
};
var format = (v) => v.startsWith("--") ? v : hyphenateStyleName(v);
function toSolidProp(prop) {
return prop in eventMap ? eventMap[prop] : prop;
}
var normalizeProps = (0, import_types.createNormalizer)((props) => {
const normalized = {};
for (const key in props) {
const value = props[key];
if (key === "readOnly" && value === false) {
continue;
}
if (key === "style" && (0, import_utils.isObject)(value)) {
normalized["style"] = cssify(value);
continue;
}
if (key === "children") {
if ((0, import_utils.isString)(value)) {
normalized["textContent"] = value;
}
continue;
}
normalized[toSolidProp(key)] = value;
}
return normalized;
});
function cssify(style) {
let css = {};
for (const property in style) {
const value = style[property];
if (!(0, import_utils.isString)(value) && !(0, import_utils.isNumber)(value)) continue;
css[format(property)] = value;
}
return css;
}
var uppercasePattern = /[A-Z]/g;
var msPattern = /^ms-/;
function toHyphenLower(match) {
return "-" + match.toLowerCase();
}
var cache = {};
function hyphenateStyleName(name) {
if (cache.hasOwnProperty(name)) return cache[name];
const hName = name.replace(uppercasePattern, toHyphenLower);
return cache[name] = msPattern.test(hName) ? "-" + hName : hName;
}
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
normalizeProps
});