new build esm

This commit is contained in:
2026-04-04 14:07:21 +02:00
parent 00d114630d
commit bd63afa23b
8 changed files with 1697 additions and 263 deletions

1643
dist/sigpro-ui.esm.js vendored Normal file

File diff suppressed because it is too large Load Diff

7
dist/sigpro-ui.esm.min.js vendored Normal file

File diff suppressed because one or more lines are too long

231
dist/sigpro-ui.js vendored
View File

@@ -473,57 +473,7 @@
install(SigProCore); install(SigProCore);
} }
// src/components/index.js
var exports_components = {};
__export(exports_components, {
default: () => components_default,
Tooltip: () => Tooltip,
Toast: () => Toast,
Timeline: () => Timeline,
Tabs: () => Tabs,
Table: () => Table,
Swap: () => Swap,
Stat: () => Stat,
Stack: () => Stack,
Select: () => Select,
Rating: () => Rating,
Range: () => Range,
Radio: () => Radio,
Navbar: () => Navbar,
Modal: () => Modal,
Menu: () => Menu,
List: () => List,
Label: () => Label,
Input: () => Input,
Indicator: () => Indicator,
Fileinput: () => Fileinput,
Fieldset: () => Fieldset,
Fab: () => Fab,
Dropdown: () => Dropdown,
Drawer: () => Drawer,
Datepicker: () => Datepicker,
Colorpicker: () => Colorpicker,
Checkbox: () => Checkbox,
Button: () => Button,
Badge: () => Badge,
Autocomplete: () => Autocomplete,
Alert: () => Alert,
Accordion: () => Accordion
});
// src/components/Accordion.js
var exports_Accordion = {};
__export(exports_Accordion, {
Accordion: () => Accordion
});
// src/core/utils.js // src/core/utils.js
var exports_utils = {};
__export(exports_utils, {
val: () => val,
ui: () => ui,
getIcon: () => getIcon
});
var val = (t) => typeof t === "function" ? t() : t; var val = (t) => typeof t === "function" ? t() : t;
var ui = (baseClass, additionalClassOrFn) => typeof additionalClassOrFn === "function" ? () => `${baseClass} ${additionalClassOrFn() || ""}`.trim() : `${baseClass} ${additionalClassOrFn || ""}`.trim(); var ui = (baseClass, additionalClassOrFn) => typeof additionalClassOrFn === "function" ? () => `${baseClass} ${additionalClassOrFn() || ""}`.trim() : `${baseClass} ${additionalClassOrFn || ""}`.trim();
var getIcon = (icon) => { var getIcon = (icon) => {
@@ -566,10 +516,6 @@
}; };
// src/components/Alert.js // src/components/Alert.js
var exports_Alert = {};
__export(exports_Alert, {
Alert: () => Alert
});
var Alert = (props, children) => { var Alert = (props, children) => {
const { class: className, actions, type = "info", soft = true, ...rest } = props; const { class: className, actions, type = "info", soft = true, ...rest } = props;
const iconMap = { const iconMap = {
@@ -597,12 +543,6 @@
].filter(Boolean)); ].filter(Boolean));
}; };
// src/components/Autocomplete.js
var exports_Autocomplete = {};
__export(exports_Autocomplete, {
Autocomplete: () => Autocomplete
});
// src/core/i18n.js // src/core/i18n.js
var i18n = { var i18n = {
es: { es: {
@@ -626,10 +566,6 @@
var tt = (t) => () => i18n[currentLocale()][t] || t; var tt = (t) => () => i18n[currentLocale()][t] || t;
// src/components/Input.js // src/components/Input.js
var exports_Input = {};
__export(exports_Input, {
Input: () => Input
});
var Input = (props) => { var Input = (props) => {
const { const {
class: className, class: className,
@@ -788,10 +724,6 @@
}; };
// src/components/Badge.js // src/components/Badge.js
var exports_Badge = {};
__export(exports_Badge, {
Badge: () => Badge
});
var Badge = (props, children) => { var Badge = (props, children) => {
const { class: className, ...rest } = props; const { class: className, ...rest } = props;
return $html2("span", { return $html2("span", {
@@ -801,10 +733,6 @@
}; };
// src/components/Button.js // src/components/Button.js
var exports_Button = {};
__export(exports_Button, {
Button: () => Button
});
var Button = (props, children) => { var Button = (props, children) => {
const { class: className, loading, icon, ...rest } = props; const { class: className, loading, icon, ...rest } = props;
const iconEl = getIcon(icon); const iconEl = getIcon(icon);
@@ -820,10 +748,6 @@
}; };
// src/components/Checkbox.js // src/components/Checkbox.js
var exports_Checkbox = {};
__export(exports_Checkbox, {
Checkbox: () => Checkbox
});
var Checkbox = (props) => { var Checkbox = (props) => {
const { class: className, value, tooltip, toggle, label, ...rest } = props; const { class: className, value, tooltip, toggle, label, ...rest } = props;
const checkEl = $html2("input", { const checkEl = $html2("input", {
@@ -840,10 +764,6 @@
}; };
// src/components/Colorpicker.js // src/components/Colorpicker.js
var exports_Colorpicker = {};
__export(exports_Colorpicker, {
Colorpicker: () => Colorpicker
});
var Colorpicker = (props) => { var Colorpicker = (props) => {
const { class: className, value, label, ...rest } = props; const { class: className, value, label, ...rest } = props;
const isOpen = $(false); const isOpen = $(false);
@@ -901,10 +821,6 @@
}; };
// src/components/Datepicker.js // src/components/Datepicker.js
var exports_Datepicker = {};
__export(exports_Datepicker, {
Datepicker: () => Datepicker
});
var Datepicker = (props) => { var Datepicker = (props) => {
const { class: className, value, range, label, placeholder, hour = false, ...rest } = props; const { class: className, value, range, label, placeholder, hour = false, ...rest } = props;
const isOpen = $(false); const isOpen = $(false);
@@ -1111,10 +1027,6 @@
}; };
// src/components/Drawer.js // src/components/Drawer.js
var exports_Drawer = {};
__export(exports_Drawer, {
Drawer: () => Drawer
});
var Drawer = (props, children) => { var Drawer = (props, children) => {
const { class: className, id, open, side, content, ...rest } = props; const { class: className, id, open, side, content, ...rest } = props;
const drawerId = id || `drawer-${Math.random().toString(36).slice(2, 9)}`; const drawerId = id || `drawer-${Math.random().toString(36).slice(2, 9)}`;
@@ -1152,10 +1064,6 @@
}; };
// src/components/Dropdown.js // src/components/Dropdown.js
var exports_Dropdown = {};
__export(exports_Dropdown, {
Dropdown: () => Dropdown
});
var currentOpen = null; var currentOpen = null;
if (typeof window !== "undefined" && !window.__dropdownHandlerRegistered) { if (typeof window !== "undefined" && !window.__dropdownHandlerRegistered) {
window.addEventListener("click", (e) => { window.addEventListener("click", (e) => {
@@ -1218,10 +1126,6 @@
}; };
// src/components/Fab.js // src/components/Fab.js
var exports_Fab = {};
__export(exports_Fab, {
Fab: () => Fab
});
var Fab = (props) => { var Fab = (props) => {
const { class: className, icon, label, actions = [], position = "bottom-6 right-6", ...rest } = props; const { class: className, icon, label, actions = [], position = "bottom-6 right-6", ...rest } = props;
return $html2("div", { return $html2("div", {
@@ -1251,10 +1155,6 @@
}; };
// src/components/Fieldset.js // src/components/Fieldset.js
var exports_Fieldset = {};
__export(exports_Fieldset, {
Fieldset: () => Fieldset
});
var Fieldset = (props, children) => { var Fieldset = (props, children) => {
const { class: className, legend, ...rest } = props; const { class: className, legend, ...rest } = props;
return $html2("fieldset", { return $html2("fieldset", {
@@ -1270,10 +1170,6 @@
}; };
// src/components/Fileinput.js // src/components/Fileinput.js
var exports_Fileinput = {};
__export(exports_Fileinput, {
Fileinput: () => Fileinput
});
var Fileinput = (props) => { var Fileinput = (props) => {
const { class: className, tooltip, max = 2, accept = "*", onSelect, ...rest } = props; const { class: className, tooltip, max = 2, accept = "*", onSelect, ...rest } = props;
const selectedFiles = $([]); const selectedFiles = $([]);
@@ -1356,10 +1252,6 @@
}; };
// src/components/Indicator.js // src/components/Indicator.js
var exports_Indicator = {};
__export(exports_Indicator, {
Indicator: () => Indicator
});
var Indicator = (props, children) => { var Indicator = (props, children) => {
const { value, class: className, ...rest } = props; const { value, class: className, ...rest } = props;
return $html2("div", { return $html2("div", {
@@ -1374,10 +1266,6 @@
}; };
// src/components/Label.js // src/components/Label.js
var exports_Label = {};
__export(exports_Label, {
Label: () => Label
});
var Label = (props) => { var Label = (props) => {
const { children, value, floating = false, error, required, class: className, ...rest } = props; const { children, value, floating = false, error, required, class: className, ...rest } = props;
if (floating) { if (floating) {
@@ -1395,10 +1283,6 @@
}; };
// src/components/List.js // src/components/List.js
var exports_List = {};
__export(exports_List, {
List: () => List
});
var List = (props) => { var List = (props) => {
const { class: className, items, header, render, keyFn = (item, index) => item.id ?? index, ...rest } = props; const { class: className, items, header, render, keyFn = (item, index) => item.id ?? index, ...rest } = props;
const listItems = $for(items, (item, index) => $html2("li", { class: "list-row" }, [render(item, index)]), keyFn); const listItems = $for(items, (item, index) => $html2("li", { class: "list-row" }, [render(item, index)]), keyFn);
@@ -1409,10 +1293,6 @@
}; };
// src/components/Menu.js // src/components/Menu.js
var exports_Menu = {};
__export(exports_Menu, {
Menu: () => Menu
});
var Menu = (props) => { var Menu = (props) => {
const { class: className, items, ...rest } = props; const { class: className, items, ...rest } = props;
const renderItems = (items2) => $for(() => items2 || [], (it) => $html2("li", {}, [ const renderItems = (items2) => $for(() => items2 || [], (it) => $html2("li", {}, [
@@ -1428,10 +1308,6 @@
}; };
// src/components/Modal.js // src/components/Modal.js
var exports_Modal = {};
__export(exports_Modal, {
Modal: () => Modal
});
var Modal = (props, children) => { var Modal = (props, children) => {
const { class: className, title, buttons, open, ...rest } = props; const { class: className, title, buttons, open, ...rest } = props;
let dialogElement = null; let dialogElement = null;
@@ -1482,20 +1358,12 @@
}; };
// src/components/Navbar.js // src/components/Navbar.js
var exports_Navbar = {};
__export(exports_Navbar, {
Navbar: () => Navbar
});
var Navbar = (props, children) => { var Navbar = (props, children) => {
const { class: className, ...rest } = props; const { class: className, ...rest } = props;
return $html2("div", { ...rest, class: ui("navbar bg-base-100 shadow-sm px-4", className) }, children); return $html2("div", { ...rest, class: ui("navbar bg-base-100 shadow-sm px-4", className) }, children);
}; };
// src/components/Radio.js // src/components/Radio.js
var exports_Radio = {};
__export(exports_Radio, {
Radio: () => Radio
});
var Radio = (props) => { var Radio = (props) => {
const { class: className, label, tooltip, value, inputValue, name, ...rest } = props; const { class: className, label, tooltip, value, inputValue, name, ...rest } = props;
const radioEl = $html2("input", { const radioEl = $html2("input", {
@@ -1519,10 +1387,6 @@
}; };
// src/components/Range.js // src/components/Range.js
var exports_Range = {};
__export(exports_Range, {
Range: () => Range
});
var Range = (props) => { var Range = (props) => {
const { class: className, label, tooltip, value, ...rest } = props; const { class: className, label, tooltip, value, ...rest } = props;
const rangeEl = $html2("input", { const rangeEl = $html2("input", {
@@ -1542,10 +1406,6 @@
}; };
// src/components/Rating.js // src/components/Rating.js
var exports_Rating = {};
__export(exports_Rating, {
Rating: () => Rating
});
var Rating = (props) => { var Rating = (props) => {
const { class: className, value, count = 5, mask = "mask-star", readonly = false, onchange, ...rest } = props; const { class: className, value, count = 5, mask = "mask-star", readonly = false, onchange, ...rest } = props;
const ratingGroup = `rating-${Math.random().toString(36).slice(2, 7)}`; const ratingGroup = `rating-${Math.random().toString(36).slice(2, 7)}`;
@@ -1573,10 +1433,6 @@
}; };
// src/components/Select.js // src/components/Select.js
var exports_Select = {};
__export(exports_Select, {
Select: () => Select
});
var Select = (props) => { var Select = (props) => {
const { class: className, label, items, value, ...rest } = props; const { class: className, label, items, value, ...rest } = props;
const selectEl = $html2("select", { const selectEl = $html2("select", {
@@ -1596,20 +1452,12 @@
}; };
// src/components/Stack.js // src/components/Stack.js
var exports_Stack = {};
__export(exports_Stack, {
Stack: () => Stack
});
var Stack = (props, children) => { var Stack = (props, children) => {
const { class: className, ...rest } = props; const { class: className, ...rest } = props;
return $html2("div", { ...rest, class: ui("stack", className) }, children); return $html2("div", { ...rest, class: ui("stack", className) }, children);
}; };
// src/components/Stat.js // src/components/Stat.js
var exports_Stat = {};
__export(exports_Stat, {
Stat: () => Stat
});
var Stat = (props) => { var Stat = (props) => {
const { class: className, icon, label, value, desc, ...rest } = props; const { class: className, icon, label, value, desc, ...rest } = props;
return $html2("div", { ...rest, class: ui("stat", className) }, [ return $html2("div", { ...rest, class: ui("stat", className) }, [
@@ -1621,10 +1469,6 @@
}; };
// src/components/Swap.js // src/components/Swap.js
var exports_Swap = {};
__export(exports_Swap, {
Swap: () => Swap
});
var Swap = (props) => { var Swap = (props) => {
const { class: className, value, on, off, ...rest } = props; const { class: className, value, on, off, ...rest } = props;
return $html2("label", { ...rest, class: ui("swap", className) }, [ return $html2("label", { ...rest, class: ui("swap", className) }, [
@@ -1643,10 +1487,6 @@
}; };
// src/components/Table.js // src/components/Table.js
var exports_Table = {};
__export(exports_Table, {
Table: () => Table
});
var Table = (props) => { var Table = (props) => {
const { class: className, items = [], columns = [], keyFn, zebra = false, pinRows = false, empty = tt("nodata")(), ...rest } = props; const { class: className, items = [], columns = [], keyFn, zebra = false, pinRows = false, empty = tt("nodata")(), ...rest } = props;
const tableClass = () => { const tableClass = () => {
@@ -1688,10 +1528,6 @@
}; };
// src/components/Tabs.js // src/components/Tabs.js
var exports_Tabs = {};
__export(exports_Tabs, {
Tabs: () => Tabs
});
var Tabs = (props) => { var Tabs = (props) => {
const { items, class: className, ...rest } = props; const { items, class: className, ...rest } = props;
const itemsSignal = typeof items === "function" ? items : () => items || []; const itemsSignal = typeof items === "function" ? items : () => items || [];
@@ -1748,10 +1584,6 @@
}; };
// src/components/Timeline.js // src/components/Timeline.js
var exports_Timeline = {};
__export(exports_Timeline, {
Timeline: () => Timeline
});
var Timeline = (props) => { var Timeline = (props) => {
const { class: className, items = [], vertical = true, compact = false, ...rest } = props; const { class: className, items = [], vertical = true, compact = false, ...rest } = props;
const iconMap = { const iconMap = {
@@ -1786,10 +1618,6 @@
}; };
// src/components/Toast.js // src/components/Toast.js
var exports_Toast = {};
__export(exports_Toast, {
Toast: () => Toast
});
var Toast = (message, type = "alert-success", duration = 3500) => { var Toast = (message, type = "alert-success", duration = 3500) => {
let container = document.getElementById("sigpro-toast-container"); let container = document.getElementById("sigpro-toast-container");
if (!container) { if (!container) {
@@ -1840,68 +1668,9 @@
}; };
// src/components/Tooltip.js // src/components/Tooltip.js
var exports_Tooltip = {};
__export(exports_Tooltip, {
Tooltip: () => Tooltip
});
var Tooltip = (props, children) => $html2("div", { var Tooltip = (props, children) => $html2("div", {
...props, ...props,
class: () => ui("tooltip", props.ui, props.class), class: () => ui("tooltip", props.ui, props.class),
"data-tip": props.tip "data-tip": props.tip
}, children); }, children);
// src/components/index.js
var Components = {
...exports_Accordion,
...exports_Alert,
...exports_Autocomplete,
...exports_Badge,
...exports_Button,
...exports_Checkbox,
...exports_Colorpicker,
...exports_Datepicker,
...exports_Drawer,
...exports_Dropdown,
...exports_Fab,
...exports_Fieldset,
...exports_Fileinput,
...exports_Indicator,
...exports_Input,
...exports_Label,
...exports_List,
...exports_Menu,
...exports_Modal,
...exports_Navbar,
...exports_Radio,
...exports_Range,
...exports_Rating,
...exports_Select,
...exports_Stack,
...exports_Stat,
...exports_Swap,
...exports_Table,
...exports_Tabs,
...exports_Timeline,
...exports_Toast,
...exports_Tooltip
};
var components_default = {
...Components,
install: (target = window) => {
Object.entries(Components).forEach(([name, component]) => {
target[name] = component;
});
console.log("\uD83D\uDE80 SigproUI");
}
};
// index.js
if (typeof window !== "undefined") {
Object.entries(exports_components).forEach(([name, component]) => {
window[name] = component;
});
window.Utils = exports_utils;
window.tt = tt;
window.SigProUI = { ...exports_components, Utils: exports_utils, tt };
console.log("\uD83C\uDFA8 SigProUI ready");
}
})(); })();

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,25 +1,10 @@
// index.js // index.js
import './src/sigpro.js'; import './src/sigpro.js'; // El Core
// import './src/css/sigpro.css'; // No importes CSS en JS
import * as Components from './src/components/index.js'; import * as Components from './src/components/index.js';
// import * as Icons from './src/core/icons.js'; // ELIMINAR
import * as Utils from './src/core/utils.js'; import * as Utils from './src/core/utils.js';
import { tt } from './src/core/i18n.js'; import { tt } from './src/core/i18n.js';
// Exportamos todo para que el Tree Shaking funcione
export * from './src/components/index.js'; export * from './src/components/index.js';
// export * from './src/core/icons.js'; // ELIMINAR
export * from './src/core/utils.js'; export * from './src/core/utils.js';
export { tt }; export { tt };
if (typeof window !== 'undefined') {
Object.entries(Components).forEach(([name, component]) => {
window[name] = component;
});
// window.Icons = Icons; // ELIMINAR
window.Utils = Utils;
window.tt = tt;
window.SigProUI = { ...Components, Utils, tt };
console.log("🎨 SigProUI ready");
}

View File

@@ -12,7 +12,7 @@
}, },
"exports": { "exports": {
".": { ".": {
"import": "./index.js", "import": "./dist/sigpro-ui.esm.js",
"script": "./dist/sigpro-ui.js", "script": "./dist/sigpro-ui.js",
"types": "./index.d.ts" "types": "./index.d.ts"
}, },
@@ -39,13 +39,20 @@
], ],
"jsdelivr": "./dist/sigpro-ui.min.js", "jsdelivr": "./dist/sigpro-ui.min.js",
"license": "MIT", "license": "MIT",
"sideEffects": [
"./css/*",
"**/*.css"
],
"scripts": { "scripts": {
"build:cssmin": "./node_modules/.bin/tailwindcss -i ./src/css/sigpro.css -o ./css/sigpro.min.css --content './src/**/*.js' --minify", "clean": "rm -rf ./dist ./css/*.css ./docs/*.js ./docs/*.css",
"build:css": "./node_modules/.bin/tailwindcss -i ./src/css/sigpro.css -o ./css/sigpro.css --content './src/**/*.js'", "build:cssmin": "tailwindcss -i ./src/css/sigpro.css -o ./css/sigpro.min.css --content './src/**/*.js' --minify",
"build:cssdocs": "./node_modules/.bin/tailwindcss -i ./src/css/sigpro.css -o ./docs/sigpro.css --content './src/**/*.js' --minify", "build:css": "tailwindcss -i ./src/css/sigpro.css -o ./css/sigpro.css --content './src/**/*.js'",
"build:js": "bun build ./index.js --bundle --outfile=./dist/sigpro-ui.js --format=iife --global-name=SigProUI && bun build ./index.js --bundle --outfile=./dist/sigpro-ui.min.js --format=iife --global-name=SigProUI --minify", "build:cssdocs": "tailwindcss -i ./src/css/sigpro.css -o ./docs/sigpro.css --content './src/**/*.js' --minify",
"build:js": "bun run build:js:iife && bun run build:js:esm",
"build:js:iife": "bun build ./index.js --bundle --outfile=./dist/sigpro-ui.js --format=iife --global-name=SigProUI && bun build ./index.js --bundle --outfile=./dist/sigpro-ui.min.js --format=iife --global-name=SigProUI --minify",
"build:js:esm": "bun build ./index.js --bundle --outfile=./dist/sigpro-ui.esm.js --format=esm && bun build ./index.js --bundle --outfile=./dist/sigpro-ui.esm.min.js --format=esm --minify",
"build:jsdocs": "bun build ./index.js --bundle --outfile=./docs/sigpro-ui.min.js --format=iife --global-name=SigProUI --minify", "build:jsdocs": "bun build ./index.js --bundle --outfile=./docs/sigpro-ui.min.js --format=iife --global-name=SigProUI --minify",
"build": "bun run build:css && bun run build:js && bun run build:jsdocs && bun run build:cssdocs && bun run build:cssmin", "build": "bun run clean && bun run build:css && bun run build:js && bun run build:jsdocs && bun run build:cssdocs && bun run build:cssmin",
"prepublishOnly": "bun run build", "prepublishOnly": "bun run build",
"docs": "bun x serve docs" "docs": "bun x serve docs"
}, },

23
src/bundle.js Normal file
View File

@@ -0,0 +1,23 @@
// src/bundle.js
import './sigpro.js'; // Ahora sí, están en la misma carpeta
import * as Components from './components/index.js';
import * as Utils from './core/utils.js';
import { tt } from './core/i18n.js';
if (typeof window !== 'undefined') {
// Registramos funciones globales: Div(), Input(), tt()...
Object.entries(Components).forEach(([name, component]) => {
window[name] = component;
});
window.Utils = Utils;
window.tt = tt;
window.SigProUI = { ...Components, Utils, tt };
console.log("🎨 SigProUI (Global Mode) ready");
}
// Re-exportamos por compatibilidad
export * from './components/index.js';
export * from './core/utils.js';
export { tt };