@dropi/ui-components 1.0.8 → 1.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -8,8 +8,27 @@
8
8
 
9
9
  ```bash
10
10
  npm install @dropi/ui-components
11
- # or
12
- yarn add @dropi/ui-components
11
+ ```
12
+
13
+ ### Automatic Setup (Interactive)
14
+
15
+ The installation script will try to ask if you are setting up a **Standalone** application (React, Vue, Vanilla) or a **Micro Frontend**.
16
+
17
+ - **Standalone**: Installs necessary Angular runtime dependencies (`@angular/core`, `zone.js`, etc.) automatically.
18
+ - **Micro Frontend**: Skips dependencies, assuming the Host application provides them.
19
+
20
+ ### Manual Setup
21
+
22
+ If the installation runs in a non-interactive environment (CI/CD), you can configure it manually later:
23
+
24
+ ```bash
25
+ npx dropi-setup
26
+ ```
27
+
28
+ Or force the mode via environment variables:
29
+
30
+ ```bash
31
+ DROPI_INSTALL_MODE=standalone npm install @dropi/ui-components
13
32
  ```
14
33
 
15
34
  ---
@@ -29,13 +48,39 @@ yarn add @dropi/ui-components
29
48
  ]
30
49
  ```
31
50
 
32
- **React / Vue / Native:**
51
+ **React / Vue / Vanilla JS:**
33
52
 
34
53
  ```javascript
35
- import "@dropi/ui-components/dist/dropi-tokens.css";
54
+ import "@dropi/ui-components/dropi-tokens.css";
55
+ ```
56
+
57
+ ### 2. Usage (React / Vue / Vanilla JS)
58
+
59
+ In your main entry file (`main.tsx`, `main.js`), initialize the library:
60
+
61
+ ```typescript
62
+ import { defineCustomElements } from "@dropi/ui-components";
63
+
64
+ // Initialize Angular environment and register Web Components
65
+ defineCustomElements();
66
+ ```
67
+
68
+ Then use the components in your JSX/HTML:
69
+
70
+ ```tsx
71
+ // React Example
72
+ const App = () => (
73
+ <div>
74
+ <dropi-wc-button
75
+ type="primary"
76
+ text="Login"
77
+ onClick={() => console.log("clicked")}
78
+ ></dropi-wc-button>
79
+ </div>
80
+ );
36
81
  ```
37
82
 
38
- ### 2. Usage (Angular)
83
+ ### 3. Usage (Angular)
39
84
 
40
85
  **Component (`login.component.ts`):**
41
86
 
package/dist/README.md CHANGED
@@ -8,8 +8,27 @@
8
8
 
9
9
  ```bash
10
10
  npm install @dropi/ui-components
11
- # or
12
- yarn add @dropi/ui-components
11
+ ```
12
+
13
+ ### Automatic Setup (Interactive)
14
+
15
+ The installation script will try to ask if you are setting up a **Standalone** application (React, Vue, Vanilla) or a **Micro Frontend**.
16
+
17
+ - **Standalone**: Installs necessary Angular runtime dependencies (`@angular/core`, `zone.js`, etc.) automatically.
18
+ - **Micro Frontend**: Skips dependencies, assuming the Host application provides them.
19
+
20
+ ### Manual Setup
21
+
22
+ If the installation runs in a non-interactive environment (CI/CD), you can configure it manually later:
23
+
24
+ ```bash
25
+ npx dropi-setup
26
+ ```
27
+
28
+ Or force the mode via environment variables:
29
+
30
+ ```bash
31
+ DROPI_INSTALL_MODE=standalone npm install @dropi/ui-components
13
32
  ```
14
33
 
15
34
  ---
@@ -29,13 +48,39 @@ yarn add @dropi/ui-components
29
48
  ]
30
49
  ```
31
50
 
32
- **React / Vue / Native:**
51
+ **React / Vue / Vanilla JS:**
33
52
 
34
53
  ```javascript
35
- import "@dropi/ui-components/dist/dropi-tokens.css";
54
+ import "@dropi/ui-components/dropi-tokens.css";
55
+ ```
56
+
57
+ ### 2. Usage (React / Vue / Vanilla JS)
58
+
59
+ In your main entry file (`main.tsx`, `main.js`), initialize the library:
60
+
61
+ ```typescript
62
+ import { defineCustomElements } from "@dropi/ui-components";
63
+
64
+ // Initialize Angular environment and register Web Components
65
+ defineCustomElements();
66
+ ```
67
+
68
+ Then use the components in your JSX/HTML:
69
+
70
+ ```tsx
71
+ // React Example
72
+ const App = () => (
73
+ <div>
74
+ <dropi-wc-button
75
+ type="primary"
76
+ text="Login"
77
+ onClick={() => console.log("clicked")}
78
+ ></dropi-wc-button>
79
+ </div>
80
+ );
36
81
  ```
37
82
 
38
- ### 2. Usage (Angular)
83
+ ### 3. Usage (Angular)
39
84
 
40
85
  **Component (`login.component.ts`):**
41
86
 
@@ -1,3 +1,4 @@
1
+ import "@angular/compiler";
1
2
  /**
2
3
  * Public API Surface de @dropi/ui-components
3
4
  */
@@ -9,4 +10,4 @@ export { DropiElementsModule } from "./lib/elements.module";
9
10
  export { registerDropiElements, defineCustomElements, isComponentRegistered, } from "./lib/elements-registry";
10
11
  // Información de versión
11
12
  export const DROPI_ELEMENTS_VERSION = "1.0.0";
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCw0REFBNEQ7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBRTFGLGtDQUFrQztBQUNsQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU1RCxpQ0FBaUM7QUFDakMsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixvQkFBb0IsRUFDcEIscUJBQXFCLEdBQ3RCLE1BQU0seUJBQXlCLENBQUM7QUFFakMseUJBQXlCO0FBQ3pCLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUHVibGljIEFQSSBTdXJmYWNlIGRlIEBkcm9waS91aS1jb21wb25lbnRzXG4gKi9cblxuLy8gRXhwb3J0YXIgY29tcG9uZW50ZXMgaW5kaXZpZHVhbGVzIGRlc2RlIGNvbXBvbmVudHMtc291cmNlXG5leHBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzLXNvdXJjZS9kcm9waS1idXR0b24vZHJvcGktYnV0dG9uLmNvbXBvbmVudFwiO1xuXG4vLyBFeHBvcnRhciBlbCBtw7NkdWxvIGRlIGVsZW1lbnRvc1xuZXhwb3J0IHsgRHJvcGlFbGVtZW50c01vZHVsZSB9IGZyb20gXCIuL2xpYi9lbGVtZW50cy5tb2R1bGVcIjtcblxuLy8gRXhwb3J0YXIgZnVuY2lvbmVzIGRlIHJlZ2lzdHJvXG5leHBvcnQge1xuICByZWdpc3RlckRyb3BpRWxlbWVudHMsXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRzLFxuICBpc0NvbXBvbmVudFJlZ2lzdGVyZWQsXG59IGZyb20gXCIuL2xpYi9lbGVtZW50cy1yZWdpc3RyeVwiO1xuXG4vLyBJbmZvcm1hY2nDs24gZGUgdmVyc2nDs25cbmV4cG9ydCBjb25zdCBEUk9QSV9FTEVNRU5UU19WRVJTSU9OID0gXCIxLjAuMFwiO1xuIl19
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxtQkFBbUIsQ0FBQztBQUMzQjs7R0FFRztBQUVILDREQUE0RDtBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seURBQXlELENBQUM7QUFFMUYsa0NBQWtDO0FBQ2xDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTVELGlDQUFpQztBQUNqQyxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLG9CQUFvQixFQUNwQixxQkFBcUIsR0FDdEIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyx5QkFBeUI7QUFDekIsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsT0FBTyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwiQGFuZ3VsYXIvY29tcGlsZXJcIjtcbi8qKlxuICogUHVibGljIEFQSSBTdXJmYWNlIGRlIEBkcm9waS91aS1jb21wb25lbnRzXG4gKi9cblxuLy8gRXhwb3J0YXIgY29tcG9uZW50ZXMgaW5kaXZpZHVhbGVzIGRlc2RlIGNvbXBvbmVudHMtc291cmNlXG5leHBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzLXNvdXJjZS9kcm9waS1idXR0b24vZHJvcGktYnV0dG9uLmNvbXBvbmVudFwiO1xuXG4vLyBFeHBvcnRhciBlbCBtw7NkdWxvIGRlIGVsZW1lbnRvc1xuZXhwb3J0IHsgRHJvcGlFbGVtZW50c01vZHVsZSB9IGZyb20gXCIuL2xpYi9lbGVtZW50cy5tb2R1bGVcIjtcblxuLy8gRXhwb3J0YXIgZnVuY2lvbmVzIGRlIHJlZ2lzdHJvXG5leHBvcnQge1xuICByZWdpc3RlckRyb3BpRWxlbWVudHMsXG4gIGRlZmluZUN1c3RvbUVsZW1lbnRzLFxuICBpc0NvbXBvbmVudFJlZ2lzdGVyZWQsXG59IGZyb20gXCIuL2xpYi9lbGVtZW50cy1yZWdpc3RyeVwiO1xuXG4vLyBJbmZvcm1hY2nDs24gZGUgdmVyc2nDs25cbmV4cG9ydCBjb25zdCBEUk9QSV9FTEVNRU5UU19WRVJTSU9OID0gXCIxLjAuMFwiO1xuIl19
@@ -4,6 +4,7 @@
4
4
  * Este archivo contiene la función que registra todos los componentes Angular
5
5
  * como Custom Elements del navegador usando Angular Elements.
6
6
  */
7
+ import "@angular/compiler";
7
8
  import { createCustomElement } from "@angular/elements";
8
9
  /**
9
10
  * Registra todos los componentes Dropi como custom elements
@@ -80,4 +81,4 @@ export function defineCustomElements(config) {
80
81
  export function isComponentRegistered(selector) {
81
82
  return customElements.get(selector) !== undefined;
82
83
  }
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudHMtcmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2VsZW1lbnRzLXJlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBR0gsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFXeEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FzQkc7QUFDSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMERBQTBELENBQUM7QUFFM0Y7O0dBRUc7QUFDSCxNQUFNLGNBQWMsR0FBMEI7SUFDNUM7UUFDRSxRQUFRLEVBQUUsaUJBQWlCO1FBQzNCLFNBQVMsRUFBRSxlQUFlO1FBQzFCLFdBQVcsRUFBRSxrQkFBa0I7S0FDaEM7Q0FDRixDQUFDO0FBRUYsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxRQUFrQixFQUNsQixVQUFpQztJQUVqQyxnREFBZ0Q7SUFDaEQsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFO1FBQzFELElBQUksQ0FBQztZQUNILGtEQUFrRDtZQUNsRCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUNsQyxNQUFNLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUM3RCxjQUFjLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDekMsT0FBTyxDQUFDLEdBQUcsQ0FDVCxnQ0FBZ0MsUUFBUSxPQUFPLFdBQVcsRUFBRSxDQUM3RCxDQUFDO1lBQ0osQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLFFBQVEsb0JBQW9CLENBQUMsQ0FBQztZQUNuRSxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLHdCQUF3QixRQUFRLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM3RCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUFDLE1BRXBDO0lBQ0MsTUFBTSxTQUFTLEdBQ2IsTUFBTSxJQUFJLE1BQU0sQ0FBQyxTQUFTO1FBQ3hCLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFFO1FBQ2pDLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUN4QixPQUFPLGlCQUFpQixDQUFDLFNBQVMsQ0FBQztTQUNoQyxJQUFJLENBQUMsQ0FBQyxNQUFzQixFQUFFLEVBQUU7UUFDL0IscUJBQXFCLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUN2RCxPQUFPLENBQUMsR0FBRyxDQUFDLCtDQUErQyxDQUFDLENBQUM7SUFDL0QsQ0FBQyxDQUFDO1NBQ0QsS0FBSyxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUUsQ0FDbEIsT0FBTyxDQUFDLEtBQUssQ0FBQyx3Q0FBd0MsRUFBRSxHQUFHLENBQUMsQ0FDN0QsQ0FBQztBQUNOLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxRQUFnQjtJQUNwRCxPQUFPLGNBQWMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssU0FBUyxDQUFDO0FBQ3BELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlZ2lzdHJvIGRlIGVsZW1lbnRvcyBwZXJzb25hbGl6YWRvcyAoV2ViIENvbXBvbmVudHMpXG4gKlxuICogRXN0ZSBhcmNoaXZvIGNvbnRpZW5lIGxhIGZ1bmNpw7NuIHF1ZSByZWdpc3RyYSB0b2RvcyBsb3MgY29tcG9uZW50ZXMgQW5ndWxhclxuICogY29tbyBDdXN0b20gRWxlbWVudHMgZGVsIG5hdmVnYWRvciB1c2FuZG8gQW5ndWxhciBFbGVtZW50cy5cbiAqL1xuXG5pbXBvcnQgeyBJbmplY3RvciwgVHlwZSwgQXBwbGljYXRpb25SZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgY3JlYXRlQ3VzdG9tRWxlbWVudCB9IGZyb20gXCJAYW5ndWxhci9lbGVtZW50c1wiO1xuXG4vKipcbiAqIEludGVyZmFjZSBwYXJhIGRlZmluaWNpw7NuIGRlIGNvbXBvbmVudGVzXG4gKi9cbmludGVyZmFjZSBDb21wb25lbnREZWZpbml0aW9uIHtcbiAgc2VsZWN0b3I6IHN0cmluZztcbiAgY29tcG9uZW50OiBUeXBlPGFueT47XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVnaXN0cmEgdG9kb3MgbG9zIGNvbXBvbmVudGVzIERyb3BpIGNvbW8gY3VzdG9tIGVsZW1lbnRzXG4gKlxuICogQHBhcmFtIGluamVjdG9yIC0gRWwgaW5qZWN0b3IgZGUgQW5ndWxhciBuZWNlc2FyaW8gcGFyYSBjcmVhdGVDdXN0b21FbGVtZW50XG4gKiBAcGFyYW0gY29tcG9uZW50cyAtIEFycmF5IGRlIGNvbXBvbmVudGVzIGEgcmVnaXN0cmFyXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IHBsYXRmb3JtQnJvd3NlckR5bmFtaWMgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyLWR5bmFtaWMnO1xuICogaW1wb3J0IHsgcmVnaXN0ZXJEcm9waUVsZW1lbnRzIH0gZnJvbSAnQG9yb3BpL3VpLWVsZW1lbnRzJztcbiAqIGltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BhcHAvdWknO1xuICpcbiAqIGNvbnN0IGNvbXBvbmVudHMgPSBbXG4gKiAgIHsgc2VsZWN0b3I6ICdkcm9waS1idXR0b24nLCBjb21wb25lbnQ6IEJ1dHRvbkNvbXBvbmVudCB9XG4gKiBdO1xuICpcbiAqIHBsYXRmb3JtQnJvd3NlckR5bmFtaWMoKS5ib290c3RyYXBNb2R1bGUoQXBwTW9kdWxlKVxuICogICAudGhlbigocmVmKSA9PiB7XG4gKiAgICAgY29uc3QgaW5qZWN0b3IgPSByZWYuaW5qZWN0b3I7XG4gKiAgICAgcmVnaXN0ZXJEcm9waUVsZW1lbnRzKGluamVjdG9yLCBjb21wb25lbnRzKTtcbiAqICAgfSk7XG4gKiBgYGBcbiAqL1xuaW1wb3J0IHsgY3JlYXRlQXBwbGljYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudHMtc291cmNlL2Ryb3BpLWJ1dHRvbi9kcm9waS1idXR0b24uY29tcG9uZW50XCI7XG5cbi8qKlxuICogTGlzdGEgaW50ZXJuYSBkZSB0b2RvcyBsb3MgY29tcG9uZW50ZXMgZGlzcG9uaWJsZXMgcGFyYSByZWdpc3RybyBhdXRvbcOhdGljb1xuICovXG5jb25zdCBBTExfQ09NUE9ORU5UUzogQ29tcG9uZW50RGVmaW5pdGlvbltdID0gW1xuICB7XG4gICAgc2VsZWN0b3I6IFwiZHJvcGktd2MtYnV0dG9uXCIsXG4gICAgY29tcG9uZW50OiBCdXR0b25Db21wb25lbnQsXG4gICAgZGVzY3JpcHRpb246IFwiQnV0dG9uIENvbXBvbmVudFwiLFxuICB9LFxuXTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyRHJvcGlFbGVtZW50cyhcbiAgaW5qZWN0b3I6IEluamVjdG9yLFxuICBjb21wb25lbnRzOiBDb21wb25lbnREZWZpbml0aW9uW10sXG4pOiB2b2lkIHtcbiAgLy8gUmVnaXN0cmFyIGNhZGEgY29tcG9uZW50ZSBjb21vIGN1c3RvbSBlbGVtZW50XG4gIGNvbXBvbmVudHMuZm9yRWFjaCgoeyBzZWxlY3RvciwgY29tcG9uZW50LCBkZXNjcmlwdGlvbiB9KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCBjdXN0b20gZWxlbWVudCB5YSBlc3TDoSBkZWZpbmlkb1xuICAgICAgaWYgKCFjdXN0b21FbGVtZW50cy5nZXQoc2VsZWN0b3IpKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBjcmVhdGVDdXN0b21FbGVtZW50KGNvbXBvbmVudCwgeyBpbmplY3RvciB9KTtcbiAgICAgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKHNlbGVjdG9yLCBlbGVtZW50KTtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYOKchSBXZWIgQ29tcG9uZW50IHJlZ2lzdHJhZG86IDwke3NlbGVjdG9yfT4gLSAke2Rlc2NyaXB0aW9ufWAsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLndhcm4oYOKaoO+4jyBDdXN0b20gZWxlbWVudCA8JHtzZWxlY3Rvcn0+IHlhIGVzdMOhIGRlZmluaWRvYCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYOKdjCBFcnJvciByZWdpc3RyYW5kbyA8JHtzZWxlY3Rvcn0+OmAsIGVycm9yKTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIEluaWNpYWxpemEgZWwgZW50b3JubyBkZSBBbmd1bGFyIHkgcmVnaXN0cmEgdG9kb3MgbG9zIFdlYiBDb21wb25lbnRzIGF1dG9tw6F0aWNhbWVudGUuXG4gKiBJZGVhbCBwYXJhIHVzbyBlbiBmcmFtZXdvcmtzIGNvbW8gUmVhY3QsIFZ1ZSwgbyBWYW5pbGxhIEpTLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lQ3VzdG9tRWxlbWVudHMoY29uZmlnPzoge1xuICBwcm92aWRlcnM/OiBhbnlbXTtcbn0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgYXBwQ29uZmlnID1cbiAgICBjb25maWcgJiYgY29uZmlnLnByb3ZpZGVyc1xuICAgICAgPyB7IHByb3ZpZGVyczogY29uZmlnLnByb3ZpZGVycyB9XG4gICAgICA6IHsgcHJvdmlkZXJzOiBbXSB9O1xuICByZXR1cm4gY3JlYXRlQXBwbGljYXRpb24oYXBwQ29uZmlnKVxuICAgIC50aGVuKChhcHBSZWY6IEFwcGxpY2F0aW9uUmVmKSA9PiB7XG4gICAgICByZWdpc3RlckRyb3BpRWxlbWVudHMoYXBwUmVmLmluamVjdG9yLCBBTExfQ09NUE9ORU5UUyk7XG4gICAgICBjb25zb2xlLmxvZyhcIvCfmoAgRHJvcGkgVUkgRWxlbWVudHMgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5XCIpO1xuICAgIH0pXG4gICAgLmNhdGNoKChlcnI6IGFueSkgPT5cbiAgICAgIGNvbnNvbGUuZXJyb3IoXCLinYwgRXJyb3IgaW5pdGlhbGl6aW5nIERyb3BpIFVJIEVsZW1lbnRzXCIsIGVyciksXG4gICAgKTtcbn1cblxuLyoqXG4gKiBGdW5jacOzbiBhdXhpbGlhciBwYXJhIHZlcmlmaWNhciBzaSB1biBjb21wb25lbnRlIGVzdMOhIHJlZ2lzdHJhZG9cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ29tcG9uZW50UmVnaXN0ZXJlZChzZWxlY3Rvcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBjdXN0b21FbGVtZW50cy5nZXQoc2VsZWN0b3IpICE9PSB1bmRlZmluZWQ7XG59XG4iXX0=
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudHMtcmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2VsZW1lbnRzLXJlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7OztHQUtHO0FBRUgsT0FBTyxtQkFBbUIsQ0FBQztBQUUzQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVd4RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUNILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUUzRjs7R0FFRztBQUNILE1BQU0sY0FBYyxHQUEwQjtJQUM1QztRQUNFLFFBQVEsRUFBRSxpQkFBaUI7UUFDM0IsU0FBUyxFQUFFLGVBQWU7UUFDMUIsV0FBVyxFQUFFLGtCQUFrQjtLQUNoQztDQUNGLENBQUM7QUFFRixNQUFNLFVBQVUscUJBQXFCLENBQ25DLFFBQWtCLEVBQ2xCLFVBQWlDO0lBRWpDLGdEQUFnRDtJQUNoRCxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUU7UUFDMUQsSUFBSSxDQUFDO1lBQ0gsa0RBQWtEO1lBQ2xELElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xDLE1BQU0sT0FBTyxHQUFHLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQzdELGNBQWMsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUN6QyxPQUFPLENBQUMsR0FBRyxDQUNULGdDQUFnQyxRQUFRLE9BQU8sV0FBVyxFQUFFLENBQzdELENBQUM7WUFDSixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsUUFBUSxvQkFBb0IsQ0FBQyxDQUFDO1lBQ25FLENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLFFBQVEsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzdELENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsTUFFcEM7SUFDQyxNQUFNLFNBQVMsR0FDYixNQUFNLElBQUksTUFBTSxDQUFDLFNBQVM7UUFDeEIsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTLEVBQUU7UUFDakMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ3hCLE9BQU8saUJBQWlCLENBQUMsU0FBUyxDQUFDO1NBQ2hDLElBQUksQ0FBQyxDQUFDLE1BQXNCLEVBQUUsRUFBRTtRQUMvQixxQkFBcUIsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sQ0FBQyxHQUFHLENBQUMsK0NBQStDLENBQUMsQ0FBQztJQUMvRCxDQUFDLENBQUM7U0FDRCxLQUFLLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUNsQixPQUFPLENBQUMsS0FBSyxDQUFDLHdDQUF3QyxFQUFFLEdBQUcsQ0FBQyxDQUM3RCxDQUFDO0FBQ04sQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFDLFFBQWdCO0lBQ3BELE9BQU8sY0FBYyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxTQUFTLENBQUM7QUFDcEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmVnaXN0cm8gZGUgZWxlbWVudG9zIHBlcnNvbmFsaXphZG9zIChXZWIgQ29tcG9uZW50cylcbiAqXG4gKiBFc3RlIGFyY2hpdm8gY29udGllbmUgbGEgZnVuY2nDs24gcXVlIHJlZ2lzdHJhIHRvZG9zIGxvcyBjb21wb25lbnRlcyBBbmd1bGFyXG4gKiBjb21vIEN1c3RvbSBFbGVtZW50cyBkZWwgbmF2ZWdhZG9yIHVzYW5kbyBBbmd1bGFyIEVsZW1lbnRzLlxuICovXG5cbmltcG9ydCBcIkBhbmd1bGFyL2NvbXBpbGVyXCI7XG5pbXBvcnQgeyBJbmplY3RvciwgVHlwZSwgQXBwbGljYXRpb25SZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgY3JlYXRlQ3VzdG9tRWxlbWVudCB9IGZyb20gXCJAYW5ndWxhci9lbGVtZW50c1wiO1xuXG4vKipcbiAqIEludGVyZmFjZSBwYXJhIGRlZmluaWNpw7NuIGRlIGNvbXBvbmVudGVzXG4gKi9cbmludGVyZmFjZSBDb21wb25lbnREZWZpbml0aW9uIHtcbiAgc2VsZWN0b3I6IHN0cmluZztcbiAgY29tcG9uZW50OiBUeXBlPGFueT47XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVnaXN0cmEgdG9kb3MgbG9zIGNvbXBvbmVudGVzIERyb3BpIGNvbW8gY3VzdG9tIGVsZW1lbnRzXG4gKlxuICogQHBhcmFtIGluamVjdG9yIC0gRWwgaW5qZWN0b3IgZGUgQW5ndWxhciBuZWNlc2FyaW8gcGFyYSBjcmVhdGVDdXN0b21FbGVtZW50XG4gKiBAcGFyYW0gY29tcG9uZW50cyAtIEFycmF5IGRlIGNvbXBvbmVudGVzIGEgcmVnaXN0cmFyXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGltcG9ydCB7IHBsYXRmb3JtQnJvd3NlckR5bmFtaWMgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyLWR5bmFtaWMnO1xuICogaW1wb3J0IHsgcmVnaXN0ZXJEcm9waUVsZW1lbnRzIH0gZnJvbSAnQG9yb3BpL3VpLWVsZW1lbnRzJztcbiAqIGltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BhcHAvdWknO1xuICpcbiAqIGNvbnN0IGNvbXBvbmVudHMgPSBbXG4gKiAgIHsgc2VsZWN0b3I6ICdkcm9waS1idXR0b24nLCBjb21wb25lbnQ6IEJ1dHRvbkNvbXBvbmVudCB9XG4gKiBdO1xuICpcbiAqIHBsYXRmb3JtQnJvd3NlckR5bmFtaWMoKS5ib290c3RyYXBNb2R1bGUoQXBwTW9kdWxlKVxuICogICAudGhlbigocmVmKSA9PiB7XG4gKiAgICAgY29uc3QgaW5qZWN0b3IgPSByZWYuaW5qZWN0b3I7XG4gKiAgICAgcmVnaXN0ZXJEcm9waUVsZW1lbnRzKGluamVjdG9yLCBjb21wb25lbnRzKTtcbiAqICAgfSk7XG4gKiBgYGBcbiAqL1xuaW1wb3J0IHsgY3JlYXRlQXBwbGljYXRpb24gfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudHMtc291cmNlL2Ryb3BpLWJ1dHRvbi9kcm9waS1idXR0b24uY29tcG9uZW50XCI7XG5cbi8qKlxuICogTGlzdGEgaW50ZXJuYSBkZSB0b2RvcyBsb3MgY29tcG9uZW50ZXMgZGlzcG9uaWJsZXMgcGFyYSByZWdpc3RybyBhdXRvbcOhdGljb1xuICovXG5jb25zdCBBTExfQ09NUE9ORU5UUzogQ29tcG9uZW50RGVmaW5pdGlvbltdID0gW1xuICB7XG4gICAgc2VsZWN0b3I6IFwiZHJvcGktd2MtYnV0dG9uXCIsXG4gICAgY29tcG9uZW50OiBCdXR0b25Db21wb25lbnQsXG4gICAgZGVzY3JpcHRpb246IFwiQnV0dG9uIENvbXBvbmVudFwiLFxuICB9LFxuXTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyRHJvcGlFbGVtZW50cyhcbiAgaW5qZWN0b3I6IEluamVjdG9yLFxuICBjb21wb25lbnRzOiBDb21wb25lbnREZWZpbml0aW9uW10sXG4pOiB2b2lkIHtcbiAgLy8gUmVnaXN0cmFyIGNhZGEgY29tcG9uZW50ZSBjb21vIGN1c3RvbSBlbGVtZW50XG4gIGNvbXBvbmVudHMuZm9yRWFjaCgoeyBzZWxlY3RvciwgY29tcG9uZW50LCBkZXNjcmlwdGlvbiB9KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFZlcmlmaWNhciBzaSBlbCBjdXN0b20gZWxlbWVudCB5YSBlc3TDoSBkZWZpbmlkb1xuICAgICAgaWYgKCFjdXN0b21FbGVtZW50cy5nZXQoc2VsZWN0b3IpKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBjcmVhdGVDdXN0b21FbGVtZW50KGNvbXBvbmVudCwgeyBpbmplY3RvciB9KTtcbiAgICAgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKHNlbGVjdG9yLCBlbGVtZW50KTtcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgYOKchSBXZWIgQ29tcG9uZW50IHJlZ2lzdHJhZG86IDwke3NlbGVjdG9yfT4gLSAke2Rlc2NyaXB0aW9ufWAsXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLndhcm4oYOKaoO+4jyBDdXN0b20gZWxlbWVudCA8JHtzZWxlY3Rvcn0+IHlhIGVzdMOhIGRlZmluaWRvYCk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYOKdjCBFcnJvciByZWdpc3RyYW5kbyA8JHtzZWxlY3Rvcn0+OmAsIGVycm9yKTtcbiAgICB9XG4gIH0pO1xufVxuXG4vKipcbiAqIEluaWNpYWxpemEgZWwgZW50b3JubyBkZSBBbmd1bGFyIHkgcmVnaXN0cmEgdG9kb3MgbG9zIFdlYiBDb21wb25lbnRzIGF1dG9tw6F0aWNhbWVudGUuXG4gKiBJZGVhbCBwYXJhIHVzbyBlbiBmcmFtZXdvcmtzIGNvbW8gUmVhY3QsIFZ1ZSwgbyBWYW5pbGxhIEpTLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lQ3VzdG9tRWxlbWVudHMoY29uZmlnPzoge1xuICBwcm92aWRlcnM/OiBhbnlbXTtcbn0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgYXBwQ29uZmlnID1cbiAgICBjb25maWcgJiYgY29uZmlnLnByb3ZpZGVyc1xuICAgICAgPyB7IHByb3ZpZGVyczogY29uZmlnLnByb3ZpZGVycyB9XG4gICAgICA6IHsgcHJvdmlkZXJzOiBbXSB9O1xuICByZXR1cm4gY3JlYXRlQXBwbGljYXRpb24oYXBwQ29uZmlnKVxuICAgIC50aGVuKChhcHBSZWY6IEFwcGxpY2F0aW9uUmVmKSA9PiB7XG4gICAgICByZWdpc3RlckRyb3BpRWxlbWVudHMoYXBwUmVmLmluamVjdG9yLCBBTExfQ09NUE9ORU5UUyk7XG4gICAgICBjb25zb2xlLmxvZyhcIvCfmoAgRHJvcGkgVUkgRWxlbWVudHMgaW5pdGlhbGl6ZWQgc3VjY2Vzc2Z1bGx5XCIpO1xuICAgIH0pXG4gICAgLmNhdGNoKChlcnI6IGFueSkgPT5cbiAgICAgIGNvbnNvbGUuZXJyb3IoXCLinYwgRXJyb3IgaW5pdGlhbGl6aW5nIERyb3BpIFVJIEVsZW1lbnRzXCIsIGVyciksXG4gICAgKTtcbn1cblxuLyoqXG4gKiBGdW5jacOzbiBhdXhpbGlhciBwYXJhIHZlcmlmaWNhciBzaSB1biBjb21wb25lbnRlIGVzdMOhIHJlZ2lzdHJhZG9cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ29tcG9uZW50UmVnaXN0ZXJlZChzZWxlY3Rvcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBjdXN0b21FbGVtZW50cy5nZXQoc2VsZWN0b3IpICE9PSB1bmRlZmluZWQ7XG59XG4iXX0=
@@ -1,3 +1,4 @@
1
+ import '@angular/compiler';
1
2
  import * as i0 from '@angular/core';
2
3
  import { Component, Input, EventEmitter, Output, NgModule } from '@angular/core';
3
4
  import * as i1 from '@angular/common';
@@ -216,10 +217,6 @@ function isComponentRegistered(selector) {
216
217
  return customElements.get(selector) !== undefined;
217
218
  }
218
219
 
219
- /**
220
- * Public API Surface de @dropi/ui-components
221
- */
222
- // Exportar componentes individuales desde components-source
223
220
  // Información de versión
224
221
  const DROPI_ELEMENTS_VERSION = "1.0.0";
225
222
 
@@ -1 +1 @@
1
- {"version":3,"file":"dropi-ui-components.mjs","sources":["../../src/components-source/icon/icon.component.ts","../../src/components-source/icon/icon.component.html","../../src/components-source/dropi-button/dropi-button.component.ts","../../src/components-source/dropi-button/dropi-button.component.html","../../src/lib/elements.module.ts","../../src/lib/elements-registry.ts","../../src/index.ts","../../src/dropi-ui-components.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n ElementRef,\n Renderer2,\n OnInit,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\n\n@Component({\n selector: 'app-icon',\n standalone: true,\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n imports: [CommonModule],\n})\nexport class IconComponent implements OnInit, OnChanges {\n // Nombre del ícono, debe coincidir con el \"id\" en el sprite SVG\n @Input() name: string = '';\n // Atributos opcionales para controlar el tamaño y color\n @Input() width: string = '24px';\n @Input() height: string = '24px';\n @Input() color: string = 'currentColor';\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n ) {}\n\n ngOnInit() {\n this.setColors();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['color'] && !changes['color'].firstChange) this.setColors();\n }\n\n setColors() {\n if (!this.color) {\n // Si no hay color, no hacer nada\n return;\n }\n\n if (this.color.startsWith('#')) {\n // Si es un color directo (ej: \"#ff0000\"), lo usa normal\n this.renderer.setStyle(this.el.nativeElement, 'fill', this.color);\n } else {\n // Si el color es un token, usa la variable CSS\n this.renderer.setStyle(this.el.nativeElement, 'fill', `var(--${this.color})`);\n }\n }\n}\n","<svg [attr.width]=\"width\" [attr.height]=\"height\" [ngClass]=\"{ spin: name === 'Spinner' }\">\n <use [attr.xlink:href]=\"'assets/icons/symbol/svg/sprite.css.svg#' + name\"></use>\n</svg>\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { IconComponent } from \"../icon/icon.component\";\n\nexport type ButtonType =\n | \"legacy\"\n | \"default\"\n | \"success\"\n | \"info\"\n | \"error\"\n | \"warning\"\n | \"dropdown\";\nexport type ButtonSeverity = \"primary\" | \"secondary\" | \"tertiary\";\nexport type ButtonSize = \"large\" | \"normal\" | \"small\";\nexport type ButtonState = \"default\" | \"disabled\" | \"loading\";\n\n// @figma-node 2-381\n@Component({\n selector: \"dropi-wc-button\",\n standalone: true,\n imports: [CommonModule, IconComponent],\n templateUrl: \"./dropi-button.component.html\",\n styleUrls: [\"./dropi-button.component.scss\"],\n host: { \"data-figma-node\": \"2-381\" },\n})\nexport class ButtonComponent {\n @Input() type: ButtonType = \"default\";\n @Input() severity: ButtonSeverity = \"primary\";\n @Input() size: ButtonSize = \"normal\";\n @Input() state: ButtonState = \"default\";\n @Input() preIcon: string = \"\";\n @Input() postIcon: string = \"\";\n @Input() text: string = \"\";\n @Output() onClick = new EventEmitter<Event>();\n\n colorload = \"var(--Primary-Primary-500)\";\n\n colorMap: { [key: string]: string } = {\n default: \"Primary-Primary-\",\n success: \"Success-Success-\",\n error: \"Error-Error-\",\n info: \"Info-Info-\",\n legacy: \"Secondary-Secondary-\",\n warning: \"Warning-Warning-\",\n };\n\n get iconSize(): string {\n switch (this.size) {\n case \"large\":\n return \"24px\";\n case \"small\":\n return \"16px\";\n default:\n return \"18px\"; // Tamaño por defecto (normal)\n }\n }\n\n get color() {\n let intensity = this.state === \"disabled\" ? \"300\" : \"500\";\n return this.colorMap[this.type] + intensity;\n }\n\n get fontColor(): string {\n switch (this.severity) {\n case \"tertiary\":\n return this.type === \"default\" || this.type === \"legacy\"\n ? \"Gray-Gray-500\"\n : this.color;\n case \"secondary\":\n return this.color;\n default:\n return \"Neutral-White\";\n }\n }\n\n get svgColor(): string {\n return `var(--${this.fontColor})`;\n }\n handleClick(event: Event) {\n if (this.state !== \"disabled\" && this.state !== \"loading\") {\n this.onClick.emit(event);\n }\n }\n}\n","<button\n class=\"btn\"\n [ngClass]=\"[!text ? 'without-text' : '', severity, type, size, state]\"\n [disabled]=\"state === 'disabled' || state === 'loading'\"\n (click)=\"handleClick($event)\"\n>\n <app-icon\n *ngIf=\"preIcon !== ''\"\n [name]=\"preIcon\"\n [width]=\"iconSize\"\n [height]=\"iconSize\"\n [color]=\"fontColor\"\n ></app-icon>\n <span *ngIf=\"text !== ''\" class=\"text\">{{ text }}</span>\n <app-icon\n *ngIf=\"postIcon !== '' || type === 'dropdown'\"\n [name]=\"type == 'dropdown' ? 'Dropdown-down' : postIcon\"\n [width]=\"iconSize\"\n [height]=\"iconSize\"\n [color]=\"fontColor\"\n ></app-icon>\n <svg\n *ngIf=\"state === 'loading'\"\n class=\"spin\"\n [attr.width]=\"iconSize\"\n [attr.height]=\"iconSize\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M22.8 12C23.4627 12 24.0062 11.4614 23.9401 10.802C23.8232 9.6371 23.5362 8.49339 23.0866 7.4078C22.4835 5.95189 21.5996 4.62902 20.4853 3.51472C19.371 2.40042 18.0481 1.5165 16.5922 0.913445C15.5066 0.463778 14.3629 0.17683 13.198 0.0599502C12.5386 -0.00621439 12 0.537258 12 1.2C12 1.86274 12.5393 2.39227 13.1969 2.4749C14.0463 2.58164 14.8795 2.80176 15.6738 3.13076C16.8385 3.6132 17.8968 4.32033 18.7882 5.21177C19.6797 6.10322 20.3868 7.16151 20.8692 8.32624C21.1982 9.12051 21.4184 9.95367 21.5251 10.8031C21.6077 11.4607 22.1373 12 22.8 12Z\"\n [attr.fill]=\"svgColor\"\n />\n </svg>\n <ng-content></ng-content>\n</button>\n","/**\n * Módulo principal de Dropi UI Elements\n *\n * Este módulo proporciona funciones auxiliares para convertir\n * componentes Angular en Web Components\n */\n\nimport { NgModule } from '@angular/core';\n\n/**\n * Módulo auxiliar de Angular Elements\n *\n * Este es un módulo vacío que sirve como punto de entrada\n * La conversión a Web Components se hace mediante la función\n * registerDropiElements\n */\n@NgModule({\n imports: [],\n declarations: [],\n exports: [],\n})\nexport class DropiElementsModule {}\n","/**\n * Registro de elementos personalizados (Web Components)\n *\n * Este archivo contiene la función que registra todos los componentes Angular\n * como Custom Elements del navegador usando Angular Elements.\n */\n\nimport { Injector, Type, ApplicationRef } from \"@angular/core\";\nimport { createCustomElement } from \"@angular/elements\";\n\n/**\n * Interface para definición de componentes\n */\ninterface ComponentDefinition {\n selector: string;\n component: Type<any>;\n description: string;\n}\n\n/**\n * Registra todos los componentes Dropi como custom elements\n *\n * @param injector - El injector de Angular necesario para createCustomElement\n * @param components - Array de componentes a registrar\n *\n * @example\n * ```typescript\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n * import { registerDropiElements } from '@oropi/ui-elements';\n * import { ButtonComponent } from '@app/ui';\n *\n * const components = [\n * { selector: 'dropi-button', component: ButtonComponent }\n * ];\n *\n * platformBrowserDynamic().bootstrapModule(AppModule)\n * .then((ref) => {\n * const injector = ref.injector;\n * registerDropiElements(injector, components);\n * });\n * ```\n */\nimport { createApplication } from \"@angular/platform-browser\";\nimport { ButtonComponent } from \"../components-source/dropi-button/dropi-button.component\";\n\n/**\n * Lista interna de todos los componentes disponibles para registro automático\n */\nconst ALL_COMPONENTS: ComponentDefinition[] = [\n {\n selector: \"dropi-wc-button\",\n component: ButtonComponent,\n description: \"Button Component\",\n },\n];\n\nexport function registerDropiElements(\n injector: Injector,\n components: ComponentDefinition[],\n): void {\n // Registrar cada componente como custom element\n components.forEach(({ selector, component, description }) => {\n try {\n // Verificar si el custom element ya está definido\n if (!customElements.get(selector)) {\n const element = createCustomElement(component, { injector });\n customElements.define(selector, element);\n console.log(\n `✅ Web Component registrado: <${selector}> - ${description}`,\n );\n } else {\n console.warn(`⚠️ Custom element <${selector}> ya está definido`);\n }\n } catch (error) {\n console.error(`❌ Error registrando <${selector}>:`, error);\n }\n });\n}\n\n/**\n * Inicializa el entorno de Angular y registra todos los Web Components automáticamente.\n * Ideal para uso en frameworks como React, Vue, o Vanilla JS.\n */\nexport function defineCustomElements(config?: {\n providers?: any[];\n}): Promise<void> {\n const appConfig =\n config && config.providers\n ? { providers: config.providers }\n : { providers: [] };\n return createApplication(appConfig)\n .then((appRef: ApplicationRef) => {\n registerDropiElements(appRef.injector, ALL_COMPONENTS);\n console.log(\"🚀 Dropi UI Elements initialized successfully\");\n })\n .catch((err: any) =>\n console.error(\"❌ Error initializing Dropi UI Elements\", err),\n );\n}\n\n/**\n * Función auxiliar para verificar si un componente está registrado\n */\nexport function isComponentRegistered(selector: string): boolean {\n return customElements.get(selector) !== undefined;\n}\n","/**\n * Public API Surface de @dropi/ui-components\n */\n\n// Exportar componentes individuales desde components-source\nexport { ButtonComponent } from \"./components-source/dropi-button/dropi-button.component\";\n\n// Exportar el módulo de elementos\nexport { DropiElementsModule } from \"./lib/elements.module\";\n\n// Exportar funciones de registro\nexport {\n registerDropiElements,\n defineCustomElements,\n isComponentRegistered,\n} from \"./lib/elements-registry\";\n\n// Información de versión\nexport const DROPI_ELEMENTS_VERSION = \"1.0.0\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dropi-ui-components.mjs","sources":["../../src/components-source/icon/icon.component.ts","../../src/components-source/icon/icon.component.html","../../src/components-source/dropi-button/dropi-button.component.ts","../../src/components-source/dropi-button/dropi-button.component.html","../../src/lib/elements.module.ts","../../src/lib/elements-registry.ts","../../src/index.ts","../../src/dropi-ui-components.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n Component,\n Input,\n ElementRef,\n Renderer2,\n OnInit,\n OnChanges,\n SimpleChanges,\n} from '@angular/core';\n\n@Component({\n selector: 'app-icon',\n standalone: true,\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n imports: [CommonModule],\n})\nexport class IconComponent implements OnInit, OnChanges {\n // Nombre del ícono, debe coincidir con el \"id\" en el sprite SVG\n @Input() name: string = '';\n // Atributos opcionales para controlar el tamaño y color\n @Input() width: string = '24px';\n @Input() height: string = '24px';\n @Input() color: string = 'currentColor';\n constructor(\n private el: ElementRef,\n private renderer: Renderer2,\n ) {}\n\n ngOnInit() {\n this.setColors();\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['color'] && !changes['color'].firstChange) this.setColors();\n }\n\n setColors() {\n if (!this.color) {\n // Si no hay color, no hacer nada\n return;\n }\n\n if (this.color.startsWith('#')) {\n // Si es un color directo (ej: \"#ff0000\"), lo usa normal\n this.renderer.setStyle(this.el.nativeElement, 'fill', this.color);\n } else {\n // Si el color es un token, usa la variable CSS\n this.renderer.setStyle(this.el.nativeElement, 'fill', `var(--${this.color})`);\n }\n }\n}\n","<svg [attr.width]=\"width\" [attr.height]=\"height\" [ngClass]=\"{ spin: name === 'Spinner' }\">\n <use [attr.xlink:href]=\"'assets/icons/symbol/svg/sprite.css.svg#' + name\"></use>\n</svg>\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\nimport { IconComponent } from \"../icon/icon.component\";\n\nexport type ButtonType =\n | \"legacy\"\n | \"default\"\n | \"success\"\n | \"info\"\n | \"error\"\n | \"warning\"\n | \"dropdown\";\nexport type ButtonSeverity = \"primary\" | \"secondary\" | \"tertiary\";\nexport type ButtonSize = \"large\" | \"normal\" | \"small\";\nexport type ButtonState = \"default\" | \"disabled\" | \"loading\";\n\n// @figma-node 2-381\n@Component({\n selector: \"dropi-wc-button\",\n standalone: true,\n imports: [CommonModule, IconComponent],\n templateUrl: \"./dropi-button.component.html\",\n styleUrls: [\"./dropi-button.component.scss\"],\n host: { \"data-figma-node\": \"2-381\" },\n})\nexport class ButtonComponent {\n @Input() type: ButtonType = \"default\";\n @Input() severity: ButtonSeverity = \"primary\";\n @Input() size: ButtonSize = \"normal\";\n @Input() state: ButtonState = \"default\";\n @Input() preIcon: string = \"\";\n @Input() postIcon: string = \"\";\n @Input() text: string = \"\";\n @Output() onClick = new EventEmitter<Event>();\n\n colorload = \"var(--Primary-Primary-500)\";\n\n colorMap: { [key: string]: string } = {\n default: \"Primary-Primary-\",\n success: \"Success-Success-\",\n error: \"Error-Error-\",\n info: \"Info-Info-\",\n legacy: \"Secondary-Secondary-\",\n warning: \"Warning-Warning-\",\n };\n\n get iconSize(): string {\n switch (this.size) {\n case \"large\":\n return \"24px\";\n case \"small\":\n return \"16px\";\n default:\n return \"18px\"; // Tamaño por defecto (normal)\n }\n }\n\n get color() {\n let intensity = this.state === \"disabled\" ? \"300\" : \"500\";\n return this.colorMap[this.type] + intensity;\n }\n\n get fontColor(): string {\n switch (this.severity) {\n case \"tertiary\":\n return this.type === \"default\" || this.type === \"legacy\"\n ? \"Gray-Gray-500\"\n : this.color;\n case \"secondary\":\n return this.color;\n default:\n return \"Neutral-White\";\n }\n }\n\n get svgColor(): string {\n return `var(--${this.fontColor})`;\n }\n handleClick(event: Event) {\n if (this.state !== \"disabled\" && this.state !== \"loading\") {\n this.onClick.emit(event);\n }\n }\n}\n","<button\n class=\"btn\"\n [ngClass]=\"[!text ? 'without-text' : '', severity, type, size, state]\"\n [disabled]=\"state === 'disabled' || state === 'loading'\"\n (click)=\"handleClick($event)\"\n>\n <app-icon\n *ngIf=\"preIcon !== ''\"\n [name]=\"preIcon\"\n [width]=\"iconSize\"\n [height]=\"iconSize\"\n [color]=\"fontColor\"\n ></app-icon>\n <span *ngIf=\"text !== ''\" class=\"text\">{{ text }}</span>\n <app-icon\n *ngIf=\"postIcon !== '' || type === 'dropdown'\"\n [name]=\"type == 'dropdown' ? 'Dropdown-down' : postIcon\"\n [width]=\"iconSize\"\n [height]=\"iconSize\"\n [color]=\"fontColor\"\n ></app-icon>\n <svg\n *ngIf=\"state === 'loading'\"\n class=\"spin\"\n [attr.width]=\"iconSize\"\n [attr.height]=\"iconSize\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M22.8 12C23.4627 12 24.0062 11.4614 23.9401 10.802C23.8232 9.6371 23.5362 8.49339 23.0866 7.4078C22.4835 5.95189 21.5996 4.62902 20.4853 3.51472C19.371 2.40042 18.0481 1.5165 16.5922 0.913445C15.5066 0.463778 14.3629 0.17683 13.198 0.0599502C12.5386 -0.00621439 12 0.537258 12 1.2C12 1.86274 12.5393 2.39227 13.1969 2.4749C14.0463 2.58164 14.8795 2.80176 15.6738 3.13076C16.8385 3.6132 17.8968 4.32033 18.7882 5.21177C19.6797 6.10322 20.3868 7.16151 20.8692 8.32624C21.1982 9.12051 21.4184 9.95367 21.5251 10.8031C21.6077 11.4607 22.1373 12 22.8 12Z\"\n [attr.fill]=\"svgColor\"\n />\n </svg>\n <ng-content></ng-content>\n</button>\n","/**\n * Módulo principal de Dropi UI Elements\n *\n * Este módulo proporciona funciones auxiliares para convertir\n * componentes Angular en Web Components\n */\n\nimport { NgModule } from '@angular/core';\n\n/**\n * Módulo auxiliar de Angular Elements\n *\n * Este es un módulo vacío que sirve como punto de entrada\n * La conversión a Web Components se hace mediante la función\n * registerDropiElements\n */\n@NgModule({\n imports: [],\n declarations: [],\n exports: [],\n})\nexport class DropiElementsModule {}\n","/**\n * Registro de elementos personalizados (Web Components)\n *\n * Este archivo contiene la función que registra todos los componentes Angular\n * como Custom Elements del navegador usando Angular Elements.\n */\n\nimport \"@angular/compiler\";\nimport { Injector, Type, ApplicationRef } from \"@angular/core\";\nimport { createCustomElement } from \"@angular/elements\";\n\n/**\n * Interface para definición de componentes\n */\ninterface ComponentDefinition {\n selector: string;\n component: Type<any>;\n description: string;\n}\n\n/**\n * Registra todos los componentes Dropi como custom elements\n *\n * @param injector - El injector de Angular necesario para createCustomElement\n * @param components - Array de componentes a registrar\n *\n * @example\n * ```typescript\n * import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n * import { registerDropiElements } from '@oropi/ui-elements';\n * import { ButtonComponent } from '@app/ui';\n *\n * const components = [\n * { selector: 'dropi-button', component: ButtonComponent }\n * ];\n *\n * platformBrowserDynamic().bootstrapModule(AppModule)\n * .then((ref) => {\n * const injector = ref.injector;\n * registerDropiElements(injector, components);\n * });\n * ```\n */\nimport { createApplication } from \"@angular/platform-browser\";\nimport { ButtonComponent } from \"../components-source/dropi-button/dropi-button.component\";\n\n/**\n * Lista interna de todos los componentes disponibles para registro automático\n */\nconst ALL_COMPONENTS: ComponentDefinition[] = [\n {\n selector: \"dropi-wc-button\",\n component: ButtonComponent,\n description: \"Button Component\",\n },\n];\n\nexport function registerDropiElements(\n injector: Injector,\n components: ComponentDefinition[],\n): void {\n // Registrar cada componente como custom element\n components.forEach(({ selector, component, description }) => {\n try {\n // Verificar si el custom element ya está definido\n if (!customElements.get(selector)) {\n const element = createCustomElement(component, { injector });\n customElements.define(selector, element);\n console.log(\n `✅ Web Component registrado: <${selector}> - ${description}`,\n );\n } else {\n console.warn(`⚠️ Custom element <${selector}> ya está definido`);\n }\n } catch (error) {\n console.error(`❌ Error registrando <${selector}>:`, error);\n }\n });\n}\n\n/**\n * Inicializa el entorno de Angular y registra todos los Web Components automáticamente.\n * Ideal para uso en frameworks como React, Vue, o Vanilla JS.\n */\nexport function defineCustomElements(config?: {\n providers?: any[];\n}): Promise<void> {\n const appConfig =\n config && config.providers\n ? { providers: config.providers }\n : { providers: [] };\n return createApplication(appConfig)\n .then((appRef: ApplicationRef) => {\n registerDropiElements(appRef.injector, ALL_COMPONENTS);\n console.log(\"🚀 Dropi UI Elements initialized successfully\");\n })\n .catch((err: any) =>\n console.error(\"❌ Error initializing Dropi UI Elements\", err),\n );\n}\n\n/**\n * Función auxiliar para verificar si un componente está registrado\n */\nexport function isComponentRegistered(selector: string): boolean {\n return customElements.get(selector) !== undefined;\n}\n","import \"@angular/compiler\";\n/**\n * Public API Surface de @dropi/ui-components\n */\n\n// Exportar componentes individuales desde components-source\nexport { ButtonComponent } from \"./components-source/dropi-button/dropi-button.component\";\n\n// Exportar el módulo de elementos\nexport { DropiElementsModule } from \"./lib/elements.module\";\n\n// Exportar funciones de registro\nexport {\n registerDropiElements,\n defineCustomElements,\n isComponentRegistered,\n} from \"./lib/elements-registry\";\n\n// Información de versión\nexport const DROPI_ELEMENTS_VERSION = \"1.0.0\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import "@angular/compiler";
1
2
  /**
2
3
  * Public API Surface de @dropi/ui-components
3
4
  */
@@ -4,6 +4,7 @@
4
4
  * Este archivo contiene la función que registra todos los componentes Angular
5
5
  * como Custom Elements del navegador usando Angular Elements.
6
6
  */
7
+ import "@angular/compiler";
7
8
  import { Injector, Type } from "@angular/core";
8
9
  /**
9
10
  * Interface para definición de componentes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dropi/ui-components",
3
- "version": "1.0.8",
3
+ "version": "1.0.10",
4
4
  "description": "Dropi UI Components - Framework-agnostic Web Components library built with Angular Elements",
5
5
  "keywords": [
6
6
  "web-components",
package/src/index.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import "@angular/compiler";
1
2
  /**
2
3
  * Public API Surface de @dropi/ui-components
3
4
  */
@@ -5,6 +5,7 @@
5
5
  * como Custom Elements del navegador usando Angular Elements.
6
6
  */
7
7
 
8
+ import "@angular/compiler";
8
9
  import { Injector, Type, ApplicationRef } from "@angular/core";
9
10
  import { createCustomElement } from "@angular/elements";
10
11