aboutsummaryrefslogtreecommitdiffstats
path: root/vanilla/node_modules/@acemir/cssom/lib/CSSCounterStyleRule.js
diff options
context:
space:
mode:
authorAdam Mathes <adam@adammathes.com>2026-02-13 21:34:48 -0800
committerAdam Mathes <adam@adammathes.com>2026-02-13 21:34:48 -0800
commit76cb9c2a39d477a64824a985ade40507e3bbade1 (patch)
tree41e997aa9c6f538d3a136af61dae9424db2005a9 /vanilla/node_modules/@acemir/cssom/lib/CSSCounterStyleRule.js
parent819a39a21ac992b1393244a4c283bbb125208c69 (diff)
downloadneko-76cb9c2a39d477a64824a985ade40507e3bbade1.tar.gz
neko-76cb9c2a39d477a64824a985ade40507e3bbade1.tar.bz2
neko-76cb9c2a39d477a64824a985ade40507e3bbade1.zip
feat(vanilla): add testing infrastructure and tests (NK-wjnczv)
Diffstat (limited to 'vanilla/node_modules/@acemir/cssom/lib/CSSCounterStyleRule.js')
-rw-r--r--vanilla/node_modules/@acemir/cssom/lib/CSSCounterStyleRule.js57
1 files changed, 57 insertions, 0 deletions
diff --git a/vanilla/node_modules/@acemir/cssom/lib/CSSCounterStyleRule.js b/vanilla/node_modules/@acemir/cssom/lib/CSSCounterStyleRule.js
new file mode 100644
index 0000000..44c4330
--- /dev/null
+++ b/vanilla/node_modules/@acemir/cssom/lib/CSSCounterStyleRule.js
@@ -0,0 +1,57 @@
+//.CommonJS
+var CSSOM = {
+ CSSRule: require("./CSSRule").CSSRule
+};
+///CommonJS
+
+
+/**
+ * @constructor
+ * @see https://drafts.csswg.org/css-counter-styles/#the-csscounterstylerule-interface
+ */
+CSSOM.CSSCounterStyleRule = function CSSCounterStyleRule() {
+ CSSOM.CSSRule.call(this);
+ this.name = "";
+ this.__props = "";
+};
+
+CSSOM.CSSCounterStyleRule.prototype = Object.create(CSSOM.CSSRule.prototype);
+CSSOM.CSSCounterStyleRule.prototype.constructor = CSSOM.CSSCounterStyleRule;
+
+Object.setPrototypeOf(CSSOM.CSSCounterStyleRule, CSSOM.CSSRule);
+
+Object.defineProperty(CSSOM.CSSCounterStyleRule.prototype, "type", {
+ value: 11,
+ writable: false
+});
+
+Object.defineProperty(CSSOM.CSSCounterStyleRule.prototype, "cssText", {
+ get: function() {
+ // FIXME : Implement real cssText generation based on properties
+ return "@counter-style " + this.name + " { " + this.__props + " }";
+ }
+});
+
+/**
+ * NON-STANDARD
+ * Rule text parser.
+ * @param {string} cssText
+ */
+Object.defineProperty(CSSOM.CSSCounterStyleRule.prototype, "parse", {
+ value: function(cssText) {
+ // Extract the name from "@counter-style <name> { ... }"
+ var match = cssText.match(/@counter-style\s+([^\s{]+)\s*\{([^]*)\}/);
+ if (match) {
+ this.name = match[1];
+ // Get the text inside the brackets and clean it up
+ var propsText = match[2];
+ this.__props = propsText.trim().replace(/\n/g, " ").replace(/(['"])(?:\\.|[^\\])*?\1|(\s{2,})/g, function (match, quote) {
+ return quote ? match : ' ';
+ });
+ }
+ }
+});
+
+//.CommonJS
+exports.CSSCounterStyleRule = CSSOM.CSSCounterStyleRule;
+///CommonJS