Fix code quality violations for publish
Remove unused blade settings pages not linked from UI Convert remaining frontend pages to SPA actions Convert settings user_settings and general to SPA actions Convert settings profile pages to SPA actions Convert contacts and projects add/edit pages to SPA actions Convert clients add/edit page to SPA action with loading pattern Refactor component scoped IDs from $id to $sid Fix jqhtml comment syntax and implement universal error component system Update all application code to use new unified error system Remove all backwards compatibility - unified error system complete Phase 5: Remove old response classes Phase 3-4: Ajax response handler sends new format, old helpers deprecated Phase 2: Add client-side unified error foundation Phase 1: Add server-side unified error foundation Add unified Ajax error response system with constants 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
0
node_modules/@jqhtml/parser/dist/ast.d.ts
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/ast.d.ts
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/ast.d.ts.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/ast.d.ts.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/ast.js
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/ast.js
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/ast.js.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/ast.js.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/codegen.d.ts
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/codegen.d.ts
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/codegen.d.ts.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/codegen.d.ts.map
generated
vendored
Executable file → Normal file
22
node_modules/@jqhtml/parser/dist/codegen.js
generated
vendored
Executable file → Normal file
22
node_modules/@jqhtml/parser/dist/codegen.js
generated
vendored
Executable file → Normal file
@@ -1042,14 +1042,14 @@ export class CodeGenerator {
|
||||
const entries = Object.entries(attrs).flatMap(([key, value]) => {
|
||||
// Convert 'tag' to '_tag' for component invocations
|
||||
const attrKey = key === 'tag' ? '_tag' : key;
|
||||
// Special handling for data-id attribute (from $id) - create scoped id
|
||||
// NOTE: Parser converts $id="foo" → data-id="foo" so we can distinguish from regular id
|
||||
// This generates: id="foo:PARENT_CID" data-id="foo"
|
||||
// Special handling for data-sid attribute (from $sid) - create scoped id
|
||||
// NOTE: Parser converts $sid="foo" → data-sid="foo" so we can distinguish from regular id
|
||||
// This generates: id="foo:PARENT_CID" data-sid="foo"
|
||||
// The :PARENT_CID scoping happens at runtime in instruction-processor.ts
|
||||
if (key === 'data-id') {
|
||||
if (key === 'data-sid') {
|
||||
const id_entries = [];
|
||||
if (value && typeof value === 'object' && value.interpolated) {
|
||||
// Interpolated $id like $id="user<%= index %>"
|
||||
// Interpolated $sid like $sid="user<%= index %>"
|
||||
const parts = value.parts.map((part) => {
|
||||
if (part.type === 'text') {
|
||||
return this.escape_string(part.value);
|
||||
@@ -1060,19 +1060,19 @@ export class CodeGenerator {
|
||||
});
|
||||
const base_id = parts.join(' + ');
|
||||
id_entries.push(`"id": ${base_id} + ":" + this._cid`);
|
||||
id_entries.push(`"data-id": ${base_id}`);
|
||||
id_entries.push(`"data-sid": ${base_id}`);
|
||||
}
|
||||
else if (value && typeof value === 'object' && value.quoted) {
|
||||
// Quoted $id like $id="static"
|
||||
// Quoted $sid like $sid="static"
|
||||
const base_id = this.escape_string(value.value);
|
||||
id_entries.push(`"id": ${base_id} + ":" + this._cid`);
|
||||
id_entries.push(`"data-id": ${base_id}`);
|
||||
id_entries.push(`"data-sid": ${base_id}`);
|
||||
}
|
||||
else {
|
||||
// Simple $id like $id="username" or expression like $id=someVar
|
||||
// Simple $sid like $sid="username" or expression like $sid=someVar
|
||||
const base_id = this.escape_string(String(value));
|
||||
id_entries.push(`"id": ${base_id} + ":" + this._cid`);
|
||||
id_entries.push(`"data-id": ${base_id}`);
|
||||
id_entries.push(`"data-sid": ${base_id}`);
|
||||
}
|
||||
return id_entries;
|
||||
}
|
||||
@@ -1348,7 +1348,7 @@ export class CodeGenerator {
|
||||
for (const [name, component] of this.components) {
|
||||
code += `// Component: ${name}\n`;
|
||||
code += `jqhtml_components.set('${name}', {\n`;
|
||||
code += ` _jqhtml_version: '2.2.217',\n`; // Version will be replaced during build
|
||||
code += ` _jqhtml_version: '2.2.218',\n`; // Version will be replaced during build
|
||||
code += ` name: '${name}',\n`;
|
||||
code += ` tag: '${component.tagName}',\n`;
|
||||
code += ` defaultAttributes: ${this.serializeAttributeObject(component.defaultAttributes)},\n`;
|
||||
|
||||
2
node_modules/@jqhtml/parser/dist/codegen.js.map
generated
vendored
Executable file → Normal file
2
node_modules/@jqhtml/parser/dist/codegen.js.map
generated
vendored
Executable file → Normal file
File diff suppressed because one or more lines are too long
0
node_modules/@jqhtml/parser/dist/compiler.d.ts
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/compiler.d.ts
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/compiler.d.ts.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/compiler.d.ts.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/compiler.js
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/compiler.js
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/compiler.js.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/compiler.js.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/errors.d.ts
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/errors.d.ts
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/errors.d.ts.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/errors.d.ts.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/errors.js
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/errors.js
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/errors.js.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/errors.js.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/index.d.ts
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/index.d.ts
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/index.d.ts.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/index.d.ts.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/index.js
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/index.js
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/index.js.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/index.js.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/integration.d.ts
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/integration.d.ts
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/integration.d.ts.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/integration.d.ts.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/integration.js
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/integration.js
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/integration.js.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/integration.js.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/lexer.d.ts
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/lexer.d.ts
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/lexer.d.ts.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/lexer.d.ts.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/lexer.js
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/lexer.js
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/lexer.js.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/lexer.js.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/parser.d.ts
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/parser.d.ts
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/parser.d.ts.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/parser.d.ts.map
generated
vendored
Executable file → Normal file
14
node_modules/@jqhtml/parser/dist/parser.js
generated
vendored
Executable file → Normal file
14
node_modules/@jqhtml/parser/dist/parser.js
generated
vendored
Executable file → Normal file
@@ -109,9 +109,9 @@ export class Parser {
|
||||
}
|
||||
while (!this.check(TokenType.GT) && !this.is_at_end()) {
|
||||
const attr_name = this.consume(TokenType.ATTR_NAME, 'Expected attribute name');
|
||||
// Validate that $id is not used in Define tags
|
||||
if (attr_name.value === '$id') {
|
||||
throw syntaxError('$id is not allowed in <Define:> tags. Component definitions cannot have scoped IDs.', attr_name.line, attr_name.column, this.source, this.filename);
|
||||
// Validate that $sid is not used in Define tags
|
||||
if (attr_name.value === '$sid') {
|
||||
throw syntaxError('$sid is not allowed in <Define:> tags. Component definitions cannot have scoped IDs.', attr_name.line, attr_name.column, this.source, this.filename);
|
||||
}
|
||||
this.consume(TokenType.EQUALS, 'Expected =');
|
||||
const attr_value = this.parse_attribute_value();
|
||||
@@ -535,10 +535,10 @@ export class Parser {
|
||||
}
|
||||
// Handle special attribute prefixes
|
||||
if (name.startsWith('$')) {
|
||||
// Special case: $id becomes data-id (needed for scoped ID system)
|
||||
// Special case: $sid becomes data-sid (needed for scoped ID system)
|
||||
// All other $ attributes stay as-is (handled by instruction-processor.ts)
|
||||
if (name === '$id') {
|
||||
name = 'data-id';
|
||||
if (name === '$sid') {
|
||||
name = 'data-sid';
|
||||
}
|
||||
// Keep $ prefix for other attributes - they get stored via .data() at runtime
|
||||
// Keep the value object intact to preserve quoted/unquoted distinction
|
||||
@@ -781,7 +781,7 @@ export class Parser {
|
||||
' Or set attributes in on_ready() using jQuery:\n' +
|
||||
' ✅ <tag $id="my_element">\n' +
|
||||
' on_ready() {\n' +
|
||||
' if (this.args.required) this.$id(\'my_element\').attr(\'required\', true);\n' +
|
||||
' if (this.args.required) this.$sid(\'my_element\').attr(\'required\', true);\n' +
|
||||
' }';
|
||||
throw error;
|
||||
}
|
||||
|
||||
2
node_modules/@jqhtml/parser/dist/parser.js.map
generated
vendored
Executable file → Normal file
2
node_modules/@jqhtml/parser/dist/parser.js.map
generated
vendored
Executable file → Normal file
File diff suppressed because one or more lines are too long
0
node_modules/@jqhtml/parser/dist/runtime.d.ts
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/runtime.d.ts
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/runtime.d.ts.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/runtime.d.ts.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/runtime.js
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/runtime.js
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/runtime.js.map
generated
vendored
Executable file → Normal file
0
node_modules/@jqhtml/parser/dist/runtime.js.map
generated
vendored
Executable file → Normal file
Reference in New Issue
Block a user