Fix code quality violations and enhance ROUTE-EXISTS-01 rule

Implement JQHTML function cache ID system and fix bundle compilation
Implement underscore prefix for system tables
Fix JS syntax linter to support decorators and grant exception to Task system
SPA: Update planning docs and wishlists with remaining features
SPA: Document Navigation API abandonment and future enhancements
Implement SPA browser integration with History API (Phase 1)
Convert contacts view page to SPA action
Convert clients pages to SPA actions and document conversion procedure
SPA: Merge GET parameters and update documentation
Implement SPA route URL generation in JavaScript and PHP
Implement SPA bootstrap controller architecture
Add SPA routing manual page (rsx:man spa)
Add SPA routing documentation to CLAUDE.md
Phase 4 Complete: Client-side SPA routing implementation
Update get_routes() consumers for unified route structure
Complete SPA Phase 3: PHP-side route type detection and is_spa flag
Restore unified routes structure and Manifest_Query class
Refactor route indexing and add SPA infrastructure
Phase 3 Complete: SPA route registration in manifest
Implement SPA Phase 2: Extract router code and test decorators
Rename Jqhtml_Component to Component and complete SPA foundation setup

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
root
2025-11-19 17:48:15 +00:00
parent 77b4d10af8
commit 9ebcc359ae
4360 changed files with 37751 additions and 18578 deletions

View File

@@ -75,7 +75,7 @@ window.rsxapp.module_paths = {"bootstrap5_src":"rsx\/theme\/vendor\/bootstrap5\/
var component_templates = /* @__PURE__ */ new Map();
var warned_components = /* @__PURE__ */ new Set();
var DEFAULT_TEMPLATE = {
name: "Jqhtml_Component",
name: "Component",
// Default name
tag: "div",
render: function(data, args, content) {
@@ -114,7 +114,7 @@ window.rsxapp.module_paths = {"bootstrap5_src":"rsx\/theme\/vendor\/bootstrap5\/
} else {
const component_class2 = nameOrClass;
const name = component_class2.name;
if (!name || name === "Jqhtml_Component") {
if (!name || name === "Component") {
throw new Error("Component class must have a name when registering without explicit name");
}
component_classes.set(name, component_class2);
@@ -211,7 +211,7 @@ window.rsxapp.module_paths = {"bootstrap5_src":"rsx\/theme\/vendor\/bootstrap5\/
while (currentClass && currentClass.name !== "Object") {
let normalizedName = currentClass.name;
if (normalizedName === "_Jqhtml_Component" || normalizedName === "_Base_Jqhtml_Component") {
normalizedName = "Jqhtml_Component";
normalizedName = "Component";
}
const template = component_templates.get(normalizedName);
if (template) {
@@ -222,7 +222,7 @@ window.rsxapp.module_paths = {"bootstrap5_src":"rsx\/theme\/vendor\/bootstrap5\/
return DEFAULT_TEMPLATE;
}
function create_component(name, element, args = {}) {
const ComponentClass = get_component_class(name) || Jqhtml_Component;
const ComponentClass = get_component_class(name) || Component;
return new ComponentClass(element, args);
}
function has_component(name) {
@@ -349,7 +349,7 @@ window.rsxapp.module_paths = {"bootstrap5_src":"rsx\/theme\/vendor\/bootstrap5\/
function process_component_to_html(instruction, html, components, context) {
const [componentName, props, contentFn] = instruction.comp;
const cid = uid();
get_component_class(componentName) || Jqhtml_Component;
get_component_class(componentName) || Component;
const template = get_template(componentName);
const tagName = props._tag || template.tag || "div";
html.push(`<${tagName} data-cid="${cid}"`);
@@ -494,7 +494,7 @@ window.rsxapp.module_paths = {"bootstrap5_src":"rsx\/theme\/vendor\/bootstrap5\/
}
async function initialize_component(element, compData) {
const { name, props, contentFn, context } = compData;
const ComponentClass = get_component_class(name) || Jqhtml_Component;
const ComponentClass = get_component_class(name) || Component;
const invocationAttrs = {};
for (const [key, value] of Object.entries(props)) {
if (!key.startsWith("_")) {
@@ -621,7 +621,7 @@ window.rsxapp.module_paths = {"bootstrap5_src":"rsx\/theme\/vendor\/bootstrap5\/
function updateComponentTree() {
console.log("[JQHTML Tree] Component hierarchy updated");
}
var Jqhtml_Component = class _Jqhtml_Component {
var Component = class _Jqhtml_Component {
constructor(element, args = {}) {
this.data = {};
this._ready_state = 0;
@@ -743,7 +743,7 @@ The framework will automatically re-render if this.data changes during on_load()
this._use_dom_fallback = false;
}
if (this._did_first_render) {
this.$.find(".Jqhtml_Component").each(function() {
this.$.find(".Component").each(function() {
const child = $(this).data("_component");
if (child && !child._stopped) {
child._stop();
@@ -793,12 +793,12 @@ The framework will automatically re-render if this.data changes during on_load()
}
if (!parentTemplate) {
let currentClass = Object.getPrototypeOf(this.constructor);
while (currentClass && currentClass.name !== "Object" && currentClass.name !== "Jqhtml_Component") {
while (currentClass && currentClass.name !== "Object" && currentClass.name !== "Component") {
const className = currentClass.name;
console.log(`[JQHTML] Checking parent: ${className}`);
try {
const classTemplate = get_template(className);
if (classTemplate && classTemplate.name !== "Jqhtml_Component") {
if (classTemplate && classTemplate.name !== "Component") {
console.log(`[JQHTML] Found parent template: ${className}`);
parentTemplate = classTemplate;
parentTemplateName = className;
@@ -1103,7 +1103,7 @@ Fix: Store your data in this.data instead:
* Leaves DOM intact, just stops lifecycle engine and fires cleanup hooks
*/
stop() {
this.$.find(".Jqhtml_Component").each(function() {
this.$.find(".Component").each(function() {
const child = $(this).data("_component");
if (child && !child._stopped) {
child._stop();
@@ -1300,7 +1300,7 @@ Fix: Store your data in this.data instead:
if (ctor.name !== "Object" && ctor.name !== "") {
let normalizedName = ctor.name;
if (normalizedName === "_Jqhtml_Component" || normalizedName === "_Base_Jqhtml_Component") {
normalizedName = "Jqhtml_Component";
normalizedName = "Component";
}
classes.push(normalizedName);
}
@@ -1445,11 +1445,11 @@ Fix: Store your data in this.data instead:
_get_dom_children() {
if (this._use_dom_fallback) {
const directChildren = [];
this.$.find(".Jqhtml_Component").each((_, el) => {
this.$.find(".Component").each((_, el) => {
const $el = $(el);
const comp = $el.data("_component");
if (comp instanceof _Jqhtml_Component) {
const closestParent = $el.parent().closest(".Jqhtml_Component");
const closestParent = $el.parent().closest(".Component");
if (closestParent.length === 0 || closestParent.data("_component") === this) {
directChildren.push(comp);
}
@@ -1481,7 +1481,7 @@ Fix: Store your data in this.data instead:
async function process_slot_inheritance(component, childSlots) {
let currentClass = Object.getPrototypeOf(component.constructor);
console.log(`[JQHTML] Walking prototype chain for ${component.constructor.name}`);
while (currentClass && currentClass !== Jqhtml_Component && currentClass.name !== "Object") {
while (currentClass && currentClass !== Component && currentClass.name !== "Object") {
const className = currentClass.name;
console.log(`[JQHTML] Checking parent class: ${className}`);
if (className === "_Jqhtml_Component" || className === "_Base_Jqhtml_Component") {
@@ -1491,7 +1491,7 @@ Fix: Store your data in this.data instead:
try {
const parentTemplate = get_template(className);
console.log(`[JQHTML] Template found for ${className}:`, parentTemplate ? parentTemplate.name : "null");
if (parentTemplate && parentTemplate.name !== "Jqhtml_Component") {
if (parentTemplate && parentTemplate.name !== "Component") {
console.log(`[JQHTML] Invoking parent template ${className}`);
const [parentInstructions, parentContext] = parentTemplate.render.call(
component,
@@ -1991,7 +1991,7 @@ Fix: Store your data in this.data instead:
const found = get_component_class(componentOrName);
args = { ...args, _component_name: componentName };
if (!found) {
ComponentClass = Jqhtml_Component;
ComponentClass = Component;
} else {
ComponentClass = found;
}
@@ -2032,7 +2032,7 @@ Fix: Store your data in this.data instead:
_jqhtml_jquery_overrides[fnname] = jQuery.fn[fnname];
jQuery.fn[fnname] = function(...args) {
const resolvedArgs = args.map((arg) => {
if (arg && typeof arg === "object" && arg instanceof Jqhtml_Component) {
if (arg && typeof arg === "object" && arg instanceof Component) {
return arg.$;
}
return arg;
@@ -2041,7 +2041,7 @@ Fix: Store your data in this.data instead:
const ret = _jqhtml_jquery_overrides[fnname].apply(this, resolvedArgs);
for (const $e of $elements) {
if ($e.closest("html").length > 0) {
$e.find(".Jqhtml_Component").addBack(".Jqhtml_Component").each(function() {
$e.find(".Component").addBack(".Component").each(function() {
const $comp = jQuery(this);
const component = $comp.data("_component");
if (component && !component._ready_state) {
@@ -2075,7 +2075,7 @@ Fix: Store your data in this.data instead:
const originalText = jQuery.fn.text;
jQuery.fn.empty = function() {
return this.each(function() {
jQuery(this).find(".Jqhtml_Component").each(function() {
jQuery(this).find(".Component").each(function() {
const component = jQuery(this).data("_component");
if (component && !component._stopped) {
component._stop();
@@ -2109,7 +2109,7 @@ Fix: Store your data in this.data instead:
var version = "2.2.185";
var jqhtml = {
// Core
Jqhtml_Component,
Component,
LifecycleManager,
// Registry
register_component,
@@ -2167,7 +2167,7 @@ Fix: Store your data in this.data instead:
installGlobals() {
if (typeof window !== "undefined") {
window.jqhtml = this;
window.Jqhtml_Component = Jqhtml_Component;
window.Component = Component;
window.Jqhtml_LifecycleManager = LifecycleManager;
}
},
@@ -2194,8 +2194,8 @@ Fix: Store your data in this.data instead:
};
if (typeof window !== "undefined" && !window.jqhtml) {
window.jqhtml = jqhtml;
window.Jqhtml_Component = Jqhtml_Component;
window.Component = Jqhtml_Component;
window.Component = Component;
window.Component = Component;
window.Jqhtml_LifecycleManager = LifecycleManager;
if (jqhtml.debug?.enabled) {
console.log("[JQHTML] Auto-registered window.jqhtml global for template compatibility");
@@ -2205,7 +2205,7 @@ Fix: Store your data in this.data instead:
// storage/rsx-tmp/npm-compile/entry_6459e8ed0f60bda4f121420766012d53.js
window._rsx_npm = window._rsx_npm || {};
window._rsx_npm.jqhtml = jqhtml;
window._rsx_npm._Base_Jqhtml_Component = Jqhtml_Component;
window._rsx_npm._Base_Jqhtml_Component = Component;
})();

View File

@@ -69,7 +69,7 @@
var component_templates = /* @__PURE__ */ new Map();
var warned_components = /* @__PURE__ */ new Set();
var DEFAULT_TEMPLATE = {
name: "Jqhtml_Component",
name: "Component",
// Default name
tag: "div",
render: function(data, args, content) {
@@ -108,7 +108,7 @@
} else {
const component_class2 = nameOrClass;
const name = component_class2.name;
if (!name || name === "Jqhtml_Component") {
if (!name || name === "Component") {
throw new Error("Component class must have a name when registering without explicit name");
}
component_classes.set(name, component_class2);
@@ -205,7 +205,7 @@
while (currentClass && currentClass.name !== "Object") {
let normalizedName = currentClass.name;
if (normalizedName === "_Jqhtml_Component" || normalizedName === "_Base_Jqhtml_Component") {
normalizedName = "Jqhtml_Component";
normalizedName = "Component";
}
const template = component_templates.get(normalizedName);
if (template) {
@@ -216,7 +216,7 @@
return DEFAULT_TEMPLATE;
}
function create_component(name, element, args = {}) {
const ComponentClass = get_component_class(name) || Jqhtml_Component;
const ComponentClass = get_component_class(name) || Component;
return new ComponentClass(element, args);
}
function has_component(name) {
@@ -343,7 +343,7 @@
function process_component_to_html(instruction, html, components, context) {
const [componentName, props, contentFn] = instruction.comp;
const cid = uid();
get_component_class(componentName) || Jqhtml_Component;
get_component_class(componentName) || Component;
const template = get_template(componentName);
const tagName = props._tag || template.tag || "div";
html.push(`<${tagName} data-cid="${cid}"`);
@@ -488,7 +488,7 @@
}
async function initialize_component(element, compData) {
const { name, props, contentFn, context } = compData;
const ComponentClass = get_component_class(name) || Jqhtml_Component;
const ComponentClass = get_component_class(name) || Component;
const invocationAttrs = {};
for (const [key, value] of Object.entries(props)) {
if (!key.startsWith("_")) {
@@ -615,7 +615,7 @@
function updateComponentTree() {
console.log("[JQHTML Tree] Component hierarchy updated");
}
var Jqhtml_Component = class _Jqhtml_Component {
var Component = class _Jqhtml_Component {
constructor(element, args = {}) {
this.data = {};
this._ready_state = 0;
@@ -737,7 +737,7 @@ The framework will automatically re-render if this.data changes during on_load()
this._use_dom_fallback = false;
}
if (this._did_first_render) {
this.$.find(".Jqhtml_Component").each(function() {
this.$.find(".Component").each(function() {
const child = $(this).data("_component");
if (child && !child._stopped) {
child._stop();
@@ -787,12 +787,12 @@ The framework will automatically re-render if this.data changes during on_load()
}
if (!parentTemplate) {
let currentClass = Object.getPrototypeOf(this.constructor);
while (currentClass && currentClass.name !== "Object" && currentClass.name !== "Jqhtml_Component") {
while (currentClass && currentClass.name !== "Object" && currentClass.name !== "Component") {
const className = currentClass.name;
console.log(`[JQHTML] Checking parent: ${className}`);
try {
const classTemplate = get_template(className);
if (classTemplate && classTemplate.name !== "Jqhtml_Component") {
if (classTemplate && classTemplate.name !== "Component") {
console.log(`[JQHTML] Found parent template: ${className}`);
parentTemplate = classTemplate;
parentTemplateName = className;
@@ -1097,7 +1097,7 @@ Fix: Store your data in this.data instead:
* Leaves DOM intact, just stops lifecycle engine and fires cleanup hooks
*/
stop() {
this.$.find(".Jqhtml_Component").each(function() {
this.$.find(".Component").each(function() {
const child = $(this).data("_component");
if (child && !child._stopped) {
child._stop();
@@ -1294,7 +1294,7 @@ Fix: Store your data in this.data instead:
if (ctor.name !== "Object" && ctor.name !== "") {
let normalizedName = ctor.name;
if (normalizedName === "_Jqhtml_Component" || normalizedName === "_Base_Jqhtml_Component") {
normalizedName = "Jqhtml_Component";
normalizedName = "Component";
}
classes.push(normalizedName);
}
@@ -1439,11 +1439,11 @@ Fix: Store your data in this.data instead:
_get_dom_children() {
if (this._use_dom_fallback) {
const directChildren = [];
this.$.find(".Jqhtml_Component").each((_, el) => {
this.$.find(".Component").each((_, el) => {
const $el = $(el);
const comp = $el.data("_component");
if (comp instanceof _Jqhtml_Component) {
const closestParent = $el.parent().closest(".Jqhtml_Component");
const closestParent = $el.parent().closest(".Component");
if (closestParent.length === 0 || closestParent.data("_component") === this) {
directChildren.push(comp);
}
@@ -1475,7 +1475,7 @@ Fix: Store your data in this.data instead:
async function process_slot_inheritance(component, childSlots) {
let currentClass = Object.getPrototypeOf(component.constructor);
console.log(`[JQHTML] Walking prototype chain for ${component.constructor.name}`);
while (currentClass && currentClass !== Jqhtml_Component && currentClass.name !== "Object") {
while (currentClass && currentClass !== Component && currentClass.name !== "Object") {
const className = currentClass.name;
console.log(`[JQHTML] Checking parent class: ${className}`);
if (className === "_Jqhtml_Component" || className === "_Base_Jqhtml_Component") {
@@ -1485,7 +1485,7 @@ Fix: Store your data in this.data instead:
try {
const parentTemplate = get_template(className);
console.log(`[JQHTML] Template found for ${className}:`, parentTemplate ? parentTemplate.name : "null");
if (parentTemplate && parentTemplate.name !== "Jqhtml_Component") {
if (parentTemplate && parentTemplate.name !== "Component") {
console.log(`[JQHTML] Invoking parent template ${className}`);
const [parentInstructions, parentContext] = parentTemplate.render.call(
component,
@@ -1985,7 +1985,7 @@ Fix: Store your data in this.data instead:
const found = get_component_class(componentOrName);
args = { ...args, _component_name: componentName };
if (!found) {
ComponentClass = Jqhtml_Component;
ComponentClass = Component;
} else {
ComponentClass = found;
}
@@ -2026,7 +2026,7 @@ Fix: Store your data in this.data instead:
_jqhtml_jquery_overrides[fnname] = jQuery.fn[fnname];
jQuery.fn[fnname] = function(...args) {
const resolvedArgs = args.map((arg) => {
if (arg && typeof arg === "object" && arg instanceof Jqhtml_Component) {
if (arg && typeof arg === "object" && arg instanceof Component) {
return arg.$;
}
return arg;
@@ -2035,7 +2035,7 @@ Fix: Store your data in this.data instead:
const ret = _jqhtml_jquery_overrides[fnname].apply(this, resolvedArgs);
for (const $e of $elements) {
if ($e.closest("html").length > 0) {
$e.find(".Jqhtml_Component").addBack(".Jqhtml_Component").each(function() {
$e.find(".Component").addBack(".Component").each(function() {
const $comp = jQuery(this);
const component = $comp.data("_component");
if (component && !component._ready_state) {
@@ -2069,7 +2069,7 @@ Fix: Store your data in this.data instead:
const originalText = jQuery.fn.text;
jQuery.fn.empty = function() {
return this.each(function() {
jQuery(this).find(".Jqhtml_Component").each(function() {
jQuery(this).find(".Component").each(function() {
const component = jQuery(this).data("_component");
if (component && !component._stopped) {
component._stop();
@@ -2103,7 +2103,7 @@ Fix: Store your data in this.data instead:
var version = "2.2.185";
var jqhtml = {
// Core
Jqhtml_Component,
Component,
LifecycleManager,
// Registry
register_component,
@@ -2161,7 +2161,7 @@ Fix: Store your data in this.data instead:
installGlobals() {
if (typeof window !== "undefined") {
window.jqhtml = this;
window.Jqhtml_Component = Jqhtml_Component;
window.Component = Component;
window.Jqhtml_LifecycleManager = LifecycleManager;
}
},
@@ -2188,8 +2188,8 @@ Fix: Store your data in this.data instead:
};
if (typeof window !== "undefined" && !window.jqhtml) {
window.jqhtml = jqhtml;
window.Jqhtml_Component = Jqhtml_Component;
window.Component = Jqhtml_Component;
window.Component = Component;
window.Component = Component;
window.Jqhtml_LifecycleManager = LifecycleManager;
if (jqhtml.debug?.enabled) {
console.log("[JQHTML] Auto-registered window.jqhtml global for template compatibility");
@@ -2199,5 +2199,5 @@ Fix: Store your data in this.data instead:
// storage/rsx-tmp/npm-compile/entry_6459e8ed0f60bda4f121420766012d53.js
window._rsx_npm = window._rsx_npm || {};
window._rsx_npm.jqhtml = jqhtml;
window._rsx_npm._Base_Jqhtml_Component = Jqhtml_Component;
window._rsx_npm._Base_Jqhtml_Component = Component;
})();

View File

@@ -47147,14 +47147,14 @@ return array (
),
),
),
'app/RSpade/Integrations/Jqhtml/Jqhtml_Component.js' =>
'app/RSpade/Integrations/Jqhtml/Component.js' =>
array (
'file' => 'app/RSpade/Integrations/Jqhtml/Jqhtml_Component.js',
'file' => 'app/RSpade/Integrations/Jqhtml/Component.js',
'hash' => '90eededd7193e64ae76081d99c10b771f75a225c',
'mtime' => 1760218656,
'size' => 477,
'extension' => 'js',
'class' => 'Jqhtml_Component',
'class' => 'Component',
'extends' => '_Base_Jqhtml_Component',
'public_instance_methods' =>
array (
@@ -47737,7 +47737,7 @@ return array (
'format' => 'scss',
'selectors' =>
array (
0 => '.Jqhtml_Component_Init',
0 => '.Component_Init',
),
'relative_path' => 'app/RSpade/Integrations/Jqhtml/Jqhtml_Integration.scss',
'scope' => 'general',
@@ -49901,7 +49901,7 @@ return array (
'size' => 1295,
'extension' => 'js',
'class' => 'Test_Modal_Form',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_create' =>
@@ -51437,7 +51437,7 @@ return array (
'size' => 8706,
'extension' => 'js',
'class' => 'Data_Table',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_render' =>
@@ -58761,7 +58761,7 @@ return array (
'size' => 1539,
'extension' => 'js',
'class' => 'Add_User_Form',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
),
@@ -64137,7 +64137,7 @@ return array (
'size' => 1107,
'extension' => 'js',
'class' => 'Activity_Feed',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_load' =>
@@ -64259,7 +64259,7 @@ return array (
'size' => 104,
'extension' => 'js',
'class' => 'Actor_Reference',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
),
@@ -64281,7 +64281,7 @@ return array (
'size' => 2219,
'extension' => 'js',
'class' => 'Advanced_Search_Panel',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -64363,7 +64363,7 @@ return array (
'size' => 461,
'extension' => 'js',
'class' => 'Alert_Banner',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -64405,7 +64405,7 @@ return array (
'size' => 1296,
'extension' => 'js',
'class' => 'Avatar',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -64472,7 +64472,7 @@ return array (
'size' => 100,
'extension' => 'js',
'class' => 'Blockquote',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -64514,7 +64514,7 @@ return array (
'size' => 113,
'extension' => 'js',
'class' => 'Breadcrumbs',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
),
@@ -64536,7 +64536,7 @@ return array (
'size' => 445,
'extension' => 'js',
'class' => 'Bulk_Action_Bar',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -64603,7 +64603,7 @@ return array (
'size' => 537,
'extension' => 'js',
'class' => 'Bulk_Selection',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -64645,7 +64645,7 @@ return array (
'size' => 436,
'extension' => 'js',
'class' => 'Calendar_Event',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -64687,7 +64687,7 @@ return array (
'size' => 4239,
'extension' => 'js',
'class' => 'Calendar_Grid',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -64784,7 +64784,7 @@ return array (
'size' => 386,
'extension' => 'js',
'class' => 'Card',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
),
@@ -64806,7 +64806,7 @@ return array (
'size' => 103,
'extension' => 'js',
'class' => 'Chart_Component',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
),
@@ -64828,7 +64828,7 @@ return array (
'size' => 951,
'extension' => 'js',
'class' => 'Checkbox',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -64870,7 +64870,7 @@ return array (
'size' => 143,
'extension' => 'js',
'class' => 'Code_Block',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -64912,7 +64912,7 @@ return array (
'size' => 1547,
'extension' => 'js',
'class' => 'Column_Visibility_Toggle',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -65034,7 +65034,7 @@ return array (
'size' => 2458,
'extension' => 'js',
'class' => 'Comment_Thread',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_load' =>
@@ -65211,7 +65211,7 @@ return array (
'size' => 1068,
'extension' => 'js',
'class' => 'Date_Picker',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -65318,7 +65318,7 @@ return array (
'size' => 616,
'extension' => 'js',
'class' => 'Dropdown_Menu',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -65360,7 +65360,7 @@ return array (
'size' => 101,
'extension' => 'js',
'class' => 'Empty_State',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -65402,7 +65402,7 @@ return array (
'size' => 2249,
'extension' => 'js',
'class' => 'Export_Button',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -65549,7 +65549,7 @@ return array (
'size' => 3805,
'extension' => 'js',
'class' => 'File_Upload',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -65701,7 +65701,7 @@ return array (
'size' => 3786,
'extension' => 'js',
'class' => 'Filter_Bar',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -65853,7 +65853,7 @@ return array (
'size' => 1089,
'extension' => 'js',
'class' => 'Form_Field_Group',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -65915,7 +65915,7 @@ return array (
'size' => 688,
'extension' => 'js',
'class' => 'Form_Validation_Message',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -65957,7 +65957,7 @@ return array (
'size' => 644,
'extension' => 'js',
'class' => 'Gantt_Chart',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_load' =>
@@ -66019,7 +66019,7 @@ return array (
'size' => 105,
'extension' => 'js',
'class' => 'Icon_With_Label',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -66061,7 +66061,7 @@ return array (
'size' => 103,
'extension' => 'js',
'class' => 'Icon_With_Text',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
),
@@ -66083,7 +66083,7 @@ return array (
'size' => 229,
'extension' => 'js',
'class' => 'Info_Box',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -66125,7 +66125,7 @@ return array (
'size' => 2760,
'extension' => 'js',
'class' => 'Inline_Edit_Field',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -66332,7 +66332,7 @@ return array (
'size' => 1076,
'extension' => 'js',
'class' => 'Input',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -66374,7 +66374,7 @@ return array (
'size' => 963,
'extension' => 'js',
'class' => 'Input_With_Icon',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -66481,7 +66481,7 @@ return array (
'size' => 3022,
'extension' => 'js',
'class' => 'Input_With_Validation',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -66678,7 +66678,7 @@ return array (
'size' => 1903,
'extension' => 'js',
'class' => 'Kanban_Board',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_load' =>
@@ -66760,7 +66760,7 @@ return array (
'size' => 265,
'extension' => 'js',
'class' => 'List',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -66802,7 +66802,7 @@ return array (
'size' => 422,
'extension' => 'js',
'class' => 'Loading_Skeleton',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -66844,7 +66844,7 @@ return array (
'size' => 95,
'extension' => 'js',
'class' => 'Metric_Card',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
),
@@ -66866,7 +66866,7 @@ return array (
'size' => 103,
'extension' => 'js',
'class' => 'Mobile_Header',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -66908,7 +66908,7 @@ return array (
'size' => 256,
'extension' => 'js',
'class' => 'Modal_Dialog',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -66990,7 +66990,7 @@ return array (
'size' => 3957,
'extension' => 'js',
'class' => 'Multi_Select',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -67242,7 +67242,7 @@ return array (
'size' => 462,
'extension' => 'js',
'class' => 'Notification_Badge',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -67309,7 +67309,7 @@ return array (
'size' => 111,
'extension' => 'js',
'class' => 'Notification_Dropdown',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -67351,7 +67351,7 @@ return array (
'size' => 106,
'extension' => 'js',
'class' => 'Overdue_Indicator',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
),
@@ -67373,7 +67373,7 @@ return array (
'size' => 490,
'extension' => 'js',
'class' => 'Page_Header',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
),
@@ -67395,7 +67395,7 @@ return array (
'size' => 513,
'extension' => 'js',
'class' => 'Popover',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -67437,7 +67437,7 @@ return array (
'size' => 593,
'extension' => 'js',
'class' => 'Progress_Bar',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -67504,7 +67504,7 @@ return array (
'size' => 1199,
'extension' => 'js',
'class' => 'Radio_Button',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -67546,7 +67546,7 @@ return array (
'size' => 1534,
'extension' => 'js',
'class' => 'Rich_Text_Editor',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -67693,7 +67693,7 @@ return array (
'size' => 685,
'extension' => 'js',
'class' => 'Row_Action_Menu',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -67760,7 +67760,7 @@ return array (
'size' => 7193,
'extension' => 'js',
'class' => 'Sample_Datagrid_Component',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_load' =>
@@ -68017,7 +68017,7 @@ return array (
'size' => 294,
'extension' => 'js',
'class' => 'Search_Bar',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -68059,7 +68059,7 @@ return array (
'size' => 3249,
'extension' => 'js',
'class' => 'Searchable_Select',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -68246,7 +68246,7 @@ return array (
'size' => 820,
'extension' => 'js',
'class' => 'Select_Dropdown',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -68288,7 +68288,7 @@ return array (
'size' => 796,
'extension' => 'js',
'class' => 'Sidebar_Nav',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -68330,7 +68330,7 @@ return array (
'size' => 1071,
'extension' => 'js',
'class' => 'Sortable_Column_Header',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -68417,7 +68417,7 @@ return array (
'size' => 313,
'extension' => 'js',
'class' => 'Spinner',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -68459,7 +68459,7 @@ return array (
'size' => 99,
'extension' => 'js',
'class' => 'Stat_Card',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -68501,7 +68501,7 @@ return array (
'size' => 613,
'extension' => 'js',
'class' => 'Status_Badge',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -68543,7 +68543,7 @@ return array (
'size' => 470,
'extension' => 'js',
'class' => 'Tab_Content',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -68585,7 +68585,7 @@ return array (
'size' => 347,
'extension' => 'js',
'class' => 'Table',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -68627,7 +68627,7 @@ return array (
'size' => 1310,
'extension' => 'js',
'class' => 'Table_Pagination',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -68699,7 +68699,7 @@ return array (
'size' => 592,
'extension' => 'js',
'class' => 'Tabs',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -68741,7 +68741,7 @@ return array (
'size' => 218,
'extension' => 'js',
'class' => 'Tag',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -68783,7 +68783,7 @@ return array (
'size' => 106,
'extension' => 'js',
'class' => 'Tag_Group',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -68825,7 +68825,7 @@ return array (
'size' => 1086,
'extension' => 'js',
'class' => 'Textarea',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -68867,7 +68867,7 @@ return array (
'size' => 299,
'extension' => 'js',
'class' => 'Three_Column_Layout',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -68909,7 +68909,7 @@ return array (
'size' => 1158,
'extension' => 'js',
'class' => 'Time_Picker',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -69016,7 +69016,7 @@ return array (
'size' => 97,
'extension' => 'js',
'class' => 'Timeline',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
),
@@ -69038,7 +69038,7 @@ return array (
'size' => 106,
'extension' => 'js',
'class' => 'Timestamp_Display',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
),
@@ -69060,7 +69060,7 @@ return array (
'size' => 423,
'extension' => 'js',
'class' => 'Tooltip',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -69102,7 +69102,7 @@ return array (
'size' => 446,
'extension' => 'js',
'class' => 'Top_Nav',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -69144,7 +69144,7 @@ return array (
'size' => 504,
'extension' => 'js',
'class' => 'Trend_Indicator',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -69186,7 +69186,7 @@ return array (
'size' => 288,
'extension' => 'js',
'class' => 'Two_Column_Layout',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -69228,7 +69228,7 @@ return array (
'size' => 670,
'extension' => 'js',
'class' => 'User_Avatar_Dropdown',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -69784,7 +69784,7 @@ return array (
'size' => 169,
'extension' => 'js',
'class' => 'Button',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
),
@@ -69852,7 +69852,7 @@ return array (
'size' => 163,
'extension' => 'js',
'class' => 'Button_Group',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
),
@@ -69920,7 +69920,7 @@ return array (
'size' => 156,
'extension' => 'js',
'class' => 'Button_Primary',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
),
@@ -69988,7 +69988,7 @@ return array (
'size' => 173,
'extension' => 'js',
'class' => 'Button_Secondary',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
),
@@ -70884,7 +70884,7 @@ return array (
'size' => 1664,
'extension' => 'js',
'class' => 'Form_Actions_Component',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_create' =>
@@ -71056,7 +71056,7 @@ return array (
'size' => 734,
'extension' => 'js',
'class' => 'Form_Group_Component',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_create' =>
@@ -71123,7 +71123,7 @@ return array (
'size' => 1656,
'extension' => 'js',
'class' => 'Form_Row_Component',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_create' =>
@@ -71341,7 +71341,7 @@ return array (
'size' => 85,
'extension' => 'js',
'class' => 'Icon',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
),
@@ -71407,7 +71407,7 @@ return array (
'size' => 539,
'extension' => 'js',
'class' => 'Icon_Button',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -71858,7 +71858,7 @@ return array (
'size' => 204,
'extension' => 'js',
'class' => 'Link',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_ready' =>
@@ -72357,7 +72357,7 @@ return array (
'size' => 100,
'extension' => 'js',
'class' => 'Page',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
),
@@ -72519,7 +72519,7 @@ return array (
'size' => 113,
'extension' => 'js',
'class' => 'Page_Section',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
),
@@ -73692,7 +73692,7 @@ return array (
'size' => 108,
'extension' => 'js',
'class' => 'Text_Display',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
),
@@ -74240,7 +74240,7 @@ return array (
'size' => 16070,
'extension' => 'js',
'class' => 'DataGrid_Abstract',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_create' =>
@@ -74735,7 +74735,7 @@ return array (
'size' => 2895,
'extension' => 'js',
'class' => 'Form_Field_Abstract',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_create' =>
@@ -75227,7 +75227,7 @@ return array (
'size' => 7409,
'extension' => 'js',
'class' => 'Rsx_Form',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_create' =>
@@ -75432,7 +75432,7 @@ return array (
'size' => 1797,
'extension' => 'js',
'class' => 'Rsx_Tab',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_create' =>
@@ -75547,7 +75547,7 @@ return array (
'size' => 4262,
'extension' => 'js',
'class' => 'Rsx_Tabs',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_create' =>
@@ -76252,7 +76252,7 @@ return array (
'size' => 1358,
'extension' => 'js',
'class' => 'Form_Input_Abstract',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'val' =>
@@ -77929,7 +77929,7 @@ return array (
'size' => 11479,
'extension' => 'js',
'class' => 'Rsx_Modal',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_create' =>
@@ -78261,7 +78261,7 @@ return array (
'size' => 585,
'extension' => 'js',
'class' => 'Breadcrumb_Item',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_create' =>
@@ -78328,7 +78328,7 @@ return array (
'size' => 1628,
'extension' => 'js',
'class' => 'Client_Label',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_create' =>
@@ -78440,7 +78440,7 @@ return array (
'size' => 1943,
'extension' => 'js',
'class' => 'Client_Label_Link',
'extends' => 'Jqhtml_Component',
'extends' => 'Component',
'public_instance_methods' =>
array (
'on_create' =>
@@ -80731,7 +80731,7 @@ return array (
'Rsx_Jq_Helpers' => 'app/RSpade/Core/Js/Rsx_Jq_Helpers.js',
'Rsx_Js_Model' => 'app/RSpade/Core/Js/Rsx_Js_Model.js',
'Rsx_View_Transitions' => 'app/RSpade/Core/Js/Rsx_View_Transitions.js',
'Jqhtml_Component' => 'app/RSpade/Integrations/Jqhtml/Jqhtml_Component.js',
'Component' => 'app/RSpade/Integrations/Jqhtml/Component.js',
'Jqhtml_Integration' => 'app/RSpade/Integrations/Jqhtml/Jqhtml_Integration.js',
'Backend_Index' => 'rsx/app/backend/backend_index.js',
'Dev_Attachments' => 'rsx/app/dev/attachments/dev_attachments.js',
@@ -80909,7 +80909,7 @@ return array (
array (
'_Base_Jqhtml_Component' =>
array (
0 => 'Jqhtml_Component',
0 => 'Component',
1 => 'Test_Modal_Form',
2 => 'Clients_DataGrid',
3 => 'Data_Table',
@@ -81029,7 +81029,7 @@ return array (
117 => 'Client_Label',
118 => 'Client_Label_Link',
),
'Jqhtml_Component' =>
'Component' =>
array (
0 => 'Test_Modal_Form',
1 => 'Clients_DataGrid',

View File

@@ -6,7 +6,7 @@
* Instance of a modal dialog. Handles lifecycle, sizing, and user interaction.
* Typically created and managed by the Modal static API class.
*/
class Rsx_Modal extends Jqhtml_Component {
class Rsx_Modal extends Component {
on_create() {
this.data.title = '';
this.data.body_content = null;

View File

@@ -6,7 +6,7 @@
* Purpose: Multi-line text input for longer content like descriptions, comments, notes
* Design: Bootstrap .form-control styling (same as Input)
*/
class Textarea extends Jqhtml_Component {
class Textarea extends Component {
on_ready() {
// Set rows if provided
if (this.args.rows) {

View File

@@ -1,6 +1,6 @@
"use strict";
class Dropdown_Menu extends Jqhtml_Component {
class Dropdown_Menu extends Component {
on_ready() {
// Wrap bare text children in <li><a> structure
const $menu = this.$id('menu');

View File

@@ -1,6 +1,6 @@
"use strict";
class List extends Jqhtml_Component {
class List extends Component {
on_ready() {
// Add list-group-item class to each direct child
this.$.children().each(function () {

View File

@@ -1,7 +1,7 @@
"use strict";
/**
* Jqhtml_Component - Base class for JQHTML components in RSX framework
* Component - Base class for JQHTML components in RSX framework
*
* This class wraps the jqhtml.Component from the npm package and provides
* the standard interface for RSX components following the Upper_Case naming convention.
@@ -10,7 +10,7 @@
*
* @Instantiatable
*/
class Jqhtml_Component extends _Base_Jqhtml_Component {}
class Component extends _Base_Jqhtml_Component {}
// RSX manifest automatically makes classes global - no manual assignment needed
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJKcWh0bWxfQ29tcG9uZW50IiwiX0Jhc2VfSnFodG1sX0NvbXBvbmVudCJdLCJzb3VyY2VzIjpbImFwcC9SU3BhZGUvSW50ZWdyYXRpb25zL0pxaHRtbC9KcWh0bWxfQ29tcG9uZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSnFodG1sX0NvbXBvbmVudCAtIEJhc2UgY2xhc3MgZm9yIEpRSFRNTCBjb21wb25lbnRzIGluIFJTWCBmcmFtZXdvcmtcbiAqXG4gKiBUaGlzIGNsYXNzIHdyYXBzIHRoZSBqcWh0bWwuQ29tcG9uZW50IGZyb20gdGhlIG5wbSBwYWNrYWdlIGFuZCBwcm92aWRlc1xuICogdGhlIHN0YW5kYXJkIGludGVyZmFjZSBmb3IgUlNYIGNvbXBvbmVudHMgZm9sbG93aW5nIHRoZSBVcHBlcl9DYXNlIG5hbWluZyBjb252ZW50aW9uLlxuICpcbiAqIF9CYXNlX0pxaHRtbF9Db21wb25lbnQgaXMgaW1wb3J0ZWQgZnJvbSBucG0gdmlhIEpxaHRtbF9CdW5kbGUuXG4gKlxuICogQEluc3RhbnRpYXRhYmxlXG4gKi9cbmNsYXNzIEpxaHRtbF9Db21wb25lbnQgZXh0ZW5kcyBfQmFzZV9KcWh0bWxfQ29tcG9uZW50IHt9XG5cbi8vIFJTWCBtYW5pZmVzdCBhdXRvbWF0aWNhbGx5IG1ha2VzIGNsYXNzZXMgZ2xvYmFsIC0gbm8gbWFudWFsIGFzc2lnbm1lbnQgbmVlZGVkXG4iXSwibWFwcGluZ3MiOiI7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNQSxnQkFBZ0IsU0FBU0Msc0JBQXNCLENBQUM7O0FBRXREIiwiaWdub3JlTGlzdCI6W119

View File

@@ -1,6 +1,6 @@
"use strict";
class Status_Badge extends Jqhtml_Component {
class Status_Badge extends Component {
on_ready() {
// Apply color based on content or args
const status = this.args.status || this.$.text().trim().toLowerCase();

View File

@@ -1,6 +1,6 @@
"use strict";
class Time_Picker extends Jqhtml_Component {
class Time_Picker extends Component {
on_ready() {
const $input = this.$id('input');
if (this.args.value) {

View File

@@ -1,6 +1,6 @@
"use strict";
class Data_Table extends Jqhtml_Component {
class Data_Table extends Component {
on_render() {
// Hide until data loads to prevent visual glitches
if (Object.keys(this.data).length === 0) {

View File

@@ -1,6 +1,6 @@
"use strict";
class Button extends Jqhtml_Component {
class Button extends Component {
// Base button component - no special behavior needed
// Bootstrap handles all states (hover, active, focus, disabled)
}

View File

@@ -1,6 +1,6 @@
"use strict";
class Top_Nav extends Jqhtml_Component {
class Top_Nav extends Component {
on_ready() {
// Wrap children in nav structure
const $nav = this.$id('nav_items');

View File

@@ -8,7 +8,7 @@
* 2. on_load() - Fetch data from APIs (parallel execution, no DOM modifications)
* 3. on_ready() - Component fully initialized, runs bottom-up through component tree
*/
class Form_Row_Component extends Jqhtml_Component {
class Form_Row_Component extends Component {
/**
* Called after render, quick UI setup (bottom-up)
* Use for: Initial state, event bindings, showing loading indicators

View File

@@ -7,7 +7,7 @@
* Design: Bootstrap .invalid-feedback (default) or .valid-feedback styling
* Visibility: Only shows when sibling input has .is-valid or .is-invalid class
*/
class Form_Validation_Message extends Jqhtml_Component {
class Form_Validation_Message extends Component {
on_ready() {
// Add custom classes if provided (e.g., switching to valid-feedback)
if (this.args.class) {

View File

@@ -1,6 +1,6 @@
"use strict";
class Activity_Feed extends Jqhtml_Component {
class Activity_Feed extends Component {
async on_load() {
if (this.args.data_source) {
const response = await fetch(this.args.data_source);

View File

@@ -1,6 +1,6 @@
"use strict";
class User_Avatar_Dropdown extends Jqhtml_Component {
class User_Avatar_Dropdown extends Component {
on_ready() {
// Ensure proper dropdown item structure
const $menu = this.$id('menu');

View File

@@ -1,6 +1,6 @@
"use strict";
class Calendar_Event extends Jqhtml_Component {
class Calendar_Event extends Component {
on_ready() {
if (this.args.on_click) {
this.$.on('click', () => {

View File

@@ -1,6 +1,6 @@
"use strict";
class Row_Action_Menu extends Jqhtml_Component {
class Row_Action_Menu extends Component {
on_ready() {
// Wrap children in dropdown structure
const $menu = this.$id('menu');

View File

@@ -1,6 +1,6 @@
"use strict";
class Breadcrumb_Item extends Jqhtml_Component {
class Breadcrumb_Item extends Component {
on_create() {
// Read href from HTML attribute if present
const href = this.$.attr('href');

View File

@@ -1,6 +1,6 @@
"use strict";
class Code_Block extends Jqhtml_Component {
class Code_Block extends Component {
on_ready() {
// No special behavior (syntax highlighting could be added later)
}

View File

@@ -1,6 +1,6 @@
"use strict";
class Three_Column_Layout extends Jqhtml_Component {
class Three_Column_Layout extends Component {
on_ready() {
// Wrap each direct child in responsive column classes
this.$.children().each(function () {

View File

@@ -6,7 +6,7 @@
* Purpose: Primary content container using Bootstrap .card class
* Design: Pure Bootstrap - border-0 with shadow for modern Volt aesthetic
*/
class Card extends Jqhtml_Component {
class Card extends Component {
// Card is a pure container component - no lifecycle methods needed
// All styling comes from Bootstrap classes: card, border-0, shadow
}

View File

@@ -1,6 +1,6 @@
"use strict";
class Chart_Component extends Jqhtml_Component {
class Chart_Component extends Component {
// Placeholder component - no functionality yet
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDaGFydF9Db21wb25lbnQiLCJKcWh0bWxfQ29tcG9uZW50Il0sInNvdXJjZXMiOlsicnN4L3RoZW1lL2NvbXBvbmVudHMvX2FyY2hpdmVkL3VuZmluaXNoZWQvQ2hhcnRfQ29tcG9uZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIENoYXJ0X0NvbXBvbmVudCBleHRlbmRzIEpxaHRtbF9Db21wb25lbnQge1xuICAgIC8vIFBsYWNlaG9sZGVyIGNvbXBvbmVudCAtIG5vIGZ1bmN0aW9uYWxpdHkgeWV0XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTUEsZUFBZSxTQUFTQyxnQkFBZ0IsQ0FBQztFQUMzQztBQUFBIiwiaWdub3JlTGlzdCI6W119

View File

@@ -1,6 +1,6 @@
"use strict";
class Blockquote extends Jqhtml_Component {
class Blockquote extends Component {
on_ready() {
// No special behavior
}

View File

@@ -10,7 +10,7 @@
* - Implements vals() method for form data extraction
* - Provides default role_id (Member = 3)
*/
class Add_User_Form extends Jqhtml_Component {
class Add_User_Form extends Component {
/**
* Get or set form values
* @param {Object} [values] - If provided, populates form with these values

View File

@@ -1,6 +1,6 @@
"use strict";
class File_Upload extends Jqhtml_Component {
class File_Upload extends Component {
on_ready() {
const $input = this.$id('file_input');
const $drop_zone = this.$id('drop_zone');

View File

@@ -1,6 +1,6 @@
"use strict";
class Searchable_Select extends Jqhtml_Component {
class Searchable_Select extends Component {
on_ready() {
this.selected_value = this.args.value || null;
this.all_options = this.args.options || [];

View File

@@ -23,7 +23,7 @@
* $columns=columns_definition
* />
*/
class Sample_Datagrid_Component extends Jqhtml_Component {
class Sample_Datagrid_Component extends Component {
async on_load() {
const that = this;
// If API URL provided, fetch data

View File

@@ -1,6 +1,6 @@
"use strict";
class Client_Label_Link extends Jqhtml_Component {
class Client_Label_Link extends Component {
on_create() {
this.data.loading = true;
this.data.client = null;

View File

@@ -27,7 +27,7 @@
* - `sort` - Default sort column (default: first column)
* - `order` - Default sort order (default: 'asc')
*/
class DataGrid_Abstract extends Jqhtml_Component {
class DataGrid_Abstract extends Component {
// Initialize data before first render
on_create() {
let that = this;

View File

@@ -1,6 +1,6 @@
"use strict";
class Page_Section extends Jqhtml_Component {
class Page_Section extends Component {
// Content section with spacing - no special behavior needed
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQYWdlX1NlY3Rpb24iLCJKcWh0bWxfQ29tcG9uZW50Il0sInNvdXJjZXMiOlsicnN4L3RoZW1lL2NvbXBvbmVudHMvX2FyY2hpdmVkL3VuZmluaXNoZWQvcGFnZV9zZWN0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIFBhZ2VfU2VjdGlvbiBleHRlbmRzIEpxaHRtbF9Db21wb25lbnQge1xuICAgIC8vIENvbnRlbnQgc2VjdGlvbiB3aXRoIHNwYWNpbmcgLSBubyBzcGVjaWFsIGJlaGF2aW9yIG5lZWRlZFxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLFlBQVksU0FBU0MsZ0JBQWdCLENBQUM7RUFDeEM7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==

View File

@@ -7,7 +7,7 @@
* Design: Bootstrap .form-select styling with dropdown arrow
* Content: Contains <option> elements
*/
class Select_Dropdown extends Jqhtml_Component {
class Select_Dropdown extends Component {
on_ready() {
// Set value if provided
if (this.args.value) {

View File

@@ -1,6 +1,6 @@
"use strict";
class Comment_Thread extends Jqhtml_Component {
class Comment_Thread extends Component {
async on_load() {
if (this.args.data_source) {
const response = await fetch(this.args.data_source);

View File

@@ -1,6 +1,6 @@
"use strict";
class Tag_Group extends Jqhtml_Component {
class Tag_Group extends Component {
on_ready() {
// No special behavior needed
}

View File

@@ -1,6 +1,6 @@
"use strict";
class Loading_Skeleton extends Jqhtml_Component {
class Loading_Skeleton extends Component {
on_ready() {
// Apply lines from args
if (this.args.lines) {

View File

@@ -1,6 +1,6 @@
"use strict";
class Link extends Jqhtml_Component {
class Link extends Component {
on_ready() {
// Support $href attribute for dynamic URLs
if (this.args.href) {

View File

@@ -8,7 +8,7 @@
* 2. on_load() - Fetch data from APIs (parallel execution, no DOM modifications)
* 3. on_ready() - Component fully initialized, runs bottom-up through component tree
*/
class Form_Actions_Component extends Jqhtml_Component {
class Form_Actions_Component extends Component {
/**
* Called after render, quick UI setup (bottom-up)
* Use for: Initial state, event bindings, showing loading indicators

View File

@@ -1,6 +1,6 @@
"use strict";
class Search_Bar extends Jqhtml_Component {
class Search_Bar extends Component {
on_ready() {
// Bind search event
const $input = this.$id('input');

View File

@@ -1,6 +1,6 @@
"use strict";
class Sidebar_Nav extends Jqhtml_Component {
class Sidebar_Nav extends Component {
on_ready() {
// Auto-wrap children in nav structure if needed
const $nav_items = this.$id('nav_items');

View File

@@ -1,6 +1,6 @@
"use strict";
class Mobile_Header extends Jqhtml_Component {
class Mobile_Header extends Component {
on_ready() {
// No special behavior
}

View File

@@ -1,6 +1,6 @@
"use strict";
class Button_Group extends Jqhtml_Component {
class Button_Group extends Component {
// Container for grouped buttons with connected borders
// Bootstrap btn-group handles all visual grouping
}

View File

@@ -1,6 +1,6 @@
"use strict";
class Tabs extends Jqhtml_Component {
class Tabs extends Component {
on_ready() {
// Wrap children in nav-item structure
this.$.children().each(function () {

View File

@@ -1,6 +1,6 @@
"use strict";
class Avatar extends Jqhtml_Component {
class Avatar extends Component {
on_ready() {
// Set src from args
if (this.args.src) {

View File

@@ -8,7 +8,7 @@
* CRITICAL: All radios in same group must have same "name" attribute
* Wrapper: Typically used within <div class="form-check"> and <fieldset>
*/
class Radio_Button extends Jqhtml_Component {
class Radio_Button extends Component {
on_ready() {
// Set name attribute (CRITICAL for grouping)
if (this.args.name) {

View File

@@ -1,6 +1,6 @@
"use strict";
class Empty_State extends Jqhtml_Component {
class Empty_State extends Component {
on_ready() {
// No special behavior
}

View File

@@ -1,6 +1,6 @@
"use strict";
class Form_Field_Group extends Jqhtml_Component {
class Form_Field_Group extends Component {
on_ready() {
// Optional: Add collapsible functionality
if (this.args.collapsible) {

View File

@@ -1,6 +1,6 @@
"use strict";
class Overdue_Indicator extends Jqhtml_Component {
class Overdue_Indicator extends Component {
// Pure Bootstrap styling - no JavaScript needed
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPdmVyZHVlX0luZGljYXRvciIsIkpxaHRtbF9Db21wb25lbnQiXSwic291cmNlcyI6WyJyc3gvdGhlbWUvY29tcG9uZW50cy9fYXJjaGl2ZWQvdW5maW5pc2hlZC9PdmVyZHVlX0luZGljYXRvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBPdmVyZHVlX0luZGljYXRvciBleHRlbmRzIEpxaHRtbF9Db21wb25lbnQge1xuICAgIC8vIFB1cmUgQm9vdHN0cmFwIHN0eWxpbmcgLSBubyBKYXZhU2NyaXB0IG5lZWRlZFxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLGlCQUFpQixTQUFTQyxnQkFBZ0IsQ0FBQztFQUM3QztBQUFBIiwiaWdub3JlTGlzdCI6W119

View File

@@ -1,6 +1,6 @@
"use strict";
class Popover extends Jqhtml_Component {
class Popover extends Component {
on_ready() {
// Set popover content from args
if (this.args.title) {

View File

@@ -14,7 +14,7 @@
* - Auto-switches to first tab with errors on validation failure
* - Provides API for parent forms to report validation errors
*/
class Rsx_Tabs extends Jqhtml_Component {
class Rsx_Tabs extends Component {
on_create() {
this.tabs = []; // Registered Rsx_Tab components
this.active_tab_id = null;

View File

@@ -14,7 +14,7 @@
* - Provides seed() support for debug/testing data
* - Bridges between form validation state and child widget
*/
class Form_Field_Abstract extends Jqhtml_Component {
class Form_Field_Abstract extends Component {
on_create() {
// Find parent form for error display
this.form = this.closest('.Rsx_Form');

View File

@@ -1,6 +1,6 @@
"use strict";
class Tooltip extends Jqhtml_Component {
class Tooltip extends Component {
on_ready() {
// Set tooltip text from args
if (this.args.text) {

View File

@@ -1,6 +1,6 @@
"use strict";
class Date_Picker extends Jqhtml_Component {
class Date_Picker extends Component {
on_ready() {
const $input = this.$id('input');
if (this.args.value) {

View File

@@ -1,6 +1,6 @@
"use strict";
class Gantt_Chart extends Jqhtml_Component {
class Gantt_Chart extends Component {
async on_load() {
if (this.args.data_source) {
const response = await fetch(this.args.data_source);

View File

@@ -13,7 +13,7 @@
* - Counts validation errors within this tab's fields
* - Provides error count to parent for badge display
*/
class Rsx_Tab extends Jqhtml_Component {
class Rsx_Tab extends Component {
on_create() {
let that = this;

View File

@@ -1,6 +1,6 @@
"use strict";
class Stat_Card extends Jqhtml_Component {
class Stat_Card extends Component {
on_ready() {
// No special behavior
}

View File

@@ -1,6 +1,6 @@
"use strict";
class Info_Box extends Jqhtml_Component {
class Info_Box extends Component {
on_ready() {
// Apply color from args
if (this.args.color) {

View File

@@ -1,6 +1,6 @@
"use strict";
class Advanced_Search_Panel extends Jqhtml_Component {
class Advanced_Search_Panel extends Component {
on_ready() {
// Populate dropdowns if provided
if (this.args.categories) {

View File

@@ -1,6 +1,6 @@
"use strict";
class Rich_Text_Editor extends Jqhtml_Component {
class Rich_Text_Editor extends Component {
on_ready() {
const $editor = this.$id('editor');

View File

@@ -1,6 +1,6 @@
"use strict";
class Icon extends Jqhtml_Component {
class Icon extends Component {
// SVG icon container with size variants
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJY29uIiwiSnFodG1sX0NvbXBvbmVudCJdLCJzb3VyY2VzIjpbInJzeC90aGVtZS9jb21wb25lbnRzL19hcmNoaXZlZC91bmZpbmlzaGVkL2ljb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgSWNvbiBleHRlbmRzIEpxaHRtbF9Db21wb25lbnQge1xuICAgIC8vIFNWRyBpY29uIGNvbnRhaW5lciB3aXRoIHNpemUgdmFyaWFudHNcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxJQUFJLFNBQVNDLGdCQUFnQixDQUFDO0VBQ2hDO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=

View File

@@ -1,6 +1,6 @@
"use strict";
class Input_With_Icon extends Jqhtml_Component {
class Input_With_Icon extends Component {
on_ready() {
const $input = this.$id('input');
if (this.args.value) {

View File

@@ -1,6 +1,6 @@
"use strict";
class Notification_Dropdown extends Jqhtml_Component {
class Notification_Dropdown extends Component {
on_ready() {
// No special behavior
}

View File

@@ -1,6 +1,6 @@
"use strict";
class Button_Primary extends Jqhtml_Component {
class Button_Primary extends Component {
// Primary action button - highest visual hierarchy
// Bootstrap btn-primary provides all styling
}

View File

@@ -1,6 +1,6 @@
"use strict";
class Metric_Card extends Jqhtml_Component {
class Metric_Card extends Component {
// Pure container - children already styled
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNZXRyaWNfQ2FyZCIsIkpxaHRtbF9Db21wb25lbnQiXSwic291cmNlcyI6WyJyc3gvdGhlbWUvY29tcG9uZW50cy9fYXJjaGl2ZWQvdW5maW5pc2hlZC9NZXRyaWNfQ2FyZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBNZXRyaWNfQ2FyZCBleHRlbmRzIEpxaHRtbF9Db21wb25lbnQge1xuICAgIC8vIFB1cmUgY29udGFpbmVyIC0gY2hpbGRyZW4gYWxyZWFkeSBzdHlsZWRcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxXQUFXLFNBQVNDLGdCQUFnQixDQUFDO0VBQ3ZDO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=

View File

@@ -1,6 +1,6 @@
"use strict";
class Client_Label extends Jqhtml_Component {
class Client_Label extends Component {
on_create() {
this.data.loading = true;
this.data.client = null;

View File

@@ -1,6 +1,6 @@
"use strict";
class Modal_Dialog extends Jqhtml_Component {
class Modal_Dialog extends Component {
on_ready() {
// Initialize Bootstrap modal
this.modal = new bootstrap.Modal(this.$[0]);

View File

@@ -1,6 +1,6 @@
"use strict";
class Inline_Edit_Field extends Jqhtml_Component {
class Inline_Edit_Field extends Component {
on_ready() {
this.current_value = this.args.value || '';

View File

@@ -7,7 +7,7 @@
* Design: Bootstrap .form-check-input styling
* Wrapper: Typically used within <div class="form-check"> for proper layout
*/
class Checkbox extends Jqhtml_Component {
class Checkbox extends Component {
on_ready() {
// Set checked state if provided
if (this.args.checked) {

View File

@@ -1,6 +1,6 @@
"use strict";
class Calendar_Grid extends Jqhtml_Component {
class Calendar_Grid extends Component {
on_ready() {
this.current_date = new Date();
this.render_calendar();

View File

@@ -1,6 +1,6 @@
"use strict";
class Page extends Jqhtml_Component {
class Page extends Component {
// Semantic page container - no special behavior needed
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQYWdlIiwiSnFodG1sX0NvbXBvbmVudCJdLCJzb3VyY2VzIjpbInJzeC90aGVtZS9jb21wb25lbnRzL19hcmNoaXZlZC91bmZpbmlzaGVkL3BhZ2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgUGFnZSBleHRlbmRzIEpxaHRtbF9Db21wb25lbnQge1xuICAgIC8vIFNlbWFudGljIHBhZ2UgY29udGFpbmVyIC0gbm8gc3BlY2lhbCBiZWhhdmlvciBuZWVkZWRcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxJQUFJLFNBQVNDLGdCQUFnQixDQUFDO0VBQ2hDO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=

View File

@@ -1,6 +1,6 @@
"use strict";
class Table extends Jqhtml_Component {
class Table extends Component {
on_ready() {
// Apply variant from args
if (this.args.variant) {

View File

@@ -1,6 +1,6 @@
"use strict";
class Trend_Indicator extends Jqhtml_Component {
class Trend_Indicator extends Component {
on_ready() {
const text = this.$.text().trim();
const is_positive = text.startsWith('+');

View File

@@ -1,6 +1,6 @@
"use strict";
class Spinner extends Jqhtml_Component {
class Spinner extends Component {
on_ready() {
// Apply size (sm)
if (this.args.size === 'sm') {

View File

@@ -7,7 +7,7 @@
* Design: Bootstrap .form-control styling
* Types: text, email, password, number, tel, url, date, etc.
*/
class Input extends Jqhtml_Component {
class Input extends Component {
on_ready() {
// Set type attribute if provided
if (this.args.type) {

View File

@@ -1,6 +1,6 @@
"use strict";
class Export_Button extends Jqhtml_Component {
class Export_Button extends Component {
on_ready() {
const that = this;
this.$.find('[data-format]').on('click', e => {

View File

@@ -1,6 +1,6 @@
"use strict";
class Tag extends Jqhtml_Component {
class Tag extends Component {
on_ready() {
// Apply color from args
if (this.args.color) {

View File

@@ -1,6 +1,6 @@
"use strict";
class Kanban_Board extends Jqhtml_Component {
class Kanban_Board extends Component {
async on_load() {
if (this.args.data_source) {
const response = await fetch(this.args.data_source);

View File

@@ -1,6 +1,6 @@
"use strict";
class Progress_Bar extends Jqhtml_Component {
class Progress_Bar extends Component {
on_ready() {
const $bar = this.$id('bar');

View File

@@ -1,6 +1,6 @@
"use strict";
class Actor_Reference extends Jqhtml_Component {
class Actor_Reference extends Component {
// Pure Bootstrap styling - no JavaScript needed
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBY3Rvcl9SZWZlcmVuY2UiLCJKcWh0bWxfQ29tcG9uZW50Il0sInNvdXJjZXMiOlsicnN4L3RoZW1lL2NvbXBvbmVudHMvX2FyY2hpdmVkL3VuZmluaXNoZWQvQWN0b3JfUmVmZXJlbmNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIEFjdG9yX1JlZmVyZW5jZSBleHRlbmRzIEpxaHRtbF9Db21wb25lbnQge1xuICAgIC8vIFB1cmUgQm9vdHN0cmFwIHN0eWxpbmcgLSBubyBKYXZhU2NyaXB0IG5lZWRlZFxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLGVBQWUsU0FBU0MsZ0JBQWdCLENBQUM7RUFDM0M7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==

View File

@@ -1,6 +1,6 @@
"use strict";
class Dropdown_Menu extends Jqhtml_Component {
class Dropdown_Menu extends Component {
on_ready() {
// Wrap bare text children in <li><a> structure
const $menu = this.$id('menu');

View File

@@ -1,6 +1,6 @@
"use strict";
class Sidebar_Nav extends Jqhtml_Component {
class Sidebar_Nav extends Component {
on_ready() {
// Auto-wrap children in nav structure if needed
const $nav_items = this.$id('nav_items');

View File

@@ -1,6 +1,6 @@
"use strict";
class Info_Box extends Jqhtml_Component {
class Info_Box extends Component {
on_ready() {
// Apply color from args
if (this.args.color) {

View File

@@ -15,7 +15,7 @@
* - Have .Widget CSS class
* - Have data-name attribute set by Form_Field
*/
class Form_Input_Abstract extends Jqhtml_Component {
class Form_Input_Abstract extends Component {
/**
* val() - Get or set the current value
* Subclasses MUST implement this method

View File

@@ -1,6 +1,6 @@
"use strict";
class Advanced_Search_Panel extends Jqhtml_Component {
class Advanced_Search_Panel extends Component {
on_ready() {
// Populate dropdowns if provided
if (this.args.categories) {

View File

@@ -1,6 +1,6 @@
"use strict";
class Kanban_Board extends Jqhtml_Component {
class Kanban_Board extends Component {
async on_load() {
if (this.args.data_source) {
const response = await fetch(this.args.data_source);

View File

@@ -1,6 +1,6 @@
"use strict";
class Notification_Dropdown extends Jqhtml_Component {
class Notification_Dropdown extends Component {
on_ready() {
// No special behavior
}

View File

@@ -1,6 +1,6 @@
"use strict";
class Icon extends Jqhtml_Component {
class Icon extends Component {
// SVG icon container with size variants
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJJY29uIiwiSnFodG1sX0NvbXBvbmVudCJdLCJzb3VyY2VzIjpbInJzeC90aGVtZS9jb21wb25lbnRzL19hcmNoaXZlZC91bmZpbmlzaGVkL2ljb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgSWNvbiBleHRlbmRzIEpxaHRtbF9Db21wb25lbnQge1xuICAgIC8vIFNWRyBpY29uIGNvbnRhaW5lciB3aXRoIHNpemUgdmFyaWFudHNcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxJQUFJLFNBQVNDLGdCQUFnQixDQUFDO0VBQ2hDO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=

View File

@@ -1,6 +1,6 @@
"use strict";
class Table_Pagination extends Jqhtml_Component {
class Table_Pagination extends Component {
on_ready() {
// Generate pagination if pages provided via args
if (this.args.current_page && this.args.total_pages) {

View File

@@ -6,7 +6,7 @@
* Instance of a modal dialog. Handles lifecycle, sizing, and user interaction.
* Typically created and managed by the Modal static API class.
*/
class Rsx_Modal extends Jqhtml_Component {
class Rsx_Modal extends Component {
on_create() {
this.data.title = '';
this.data.body_content = null;

View File

@@ -1,6 +1,6 @@
"use strict";
class Metric_Card extends Jqhtml_Component {
class Metric_Card extends Component {
// Pure container - children already styled
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNZXRyaWNfQ2FyZCIsIkpxaHRtbF9Db21wb25lbnQiXSwic291cmNlcyI6WyJyc3gvdGhlbWUvY29tcG9uZW50cy9fYXJjaGl2ZWQvdW5maW5pc2hlZC9NZXRyaWNfQ2FyZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBNZXRyaWNfQ2FyZCBleHRlbmRzIEpxaHRtbF9Db21wb25lbnQge1xuICAgIC8vIFB1cmUgY29udGFpbmVyIC0gY2hpbGRyZW4gYWxyZWFkeSBzdHlsZWRcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxXQUFXLFNBQVNDLGdCQUFnQixDQUFDO0VBQ3ZDO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=

View File

@@ -1,6 +1,6 @@
"use strict";
class Bulk_Action_Bar extends Jqhtml_Component {
class Bulk_Action_Bar extends Component {
on_ready() {
// Clear selection on close
this.$id('close_btn').on('click', () => {

Some files were not shown because too many files have changed in this diff Show More