xv-webcomponents 0.1.16 → 0.1.18

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.
Files changed (104) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +129 -129
  3. package/dist/cjs/{index-4d938647.js → index-782b9733.js} +55 -3
  4. package/dist/cjs/index-782b9733.js.map +1 -0
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/utils-c7652b74.js.map +1 -1
  7. package/dist/cjs/xv-accordion-v2_14.cjs.entry.js +602 -0
  8. package/dist/cjs/xv-accordion-v2_14.cjs.entry.js.map +1 -0
  9. package/dist/cjs/xv-breadcrumbs-v2.cjs.entry.js +22 -0
  10. package/dist/cjs/xv-breadcrumbs-v2.cjs.entry.js.map +1 -0
  11. package/dist/cjs/xv-webcomponents.cjs.js +2 -2
  12. package/dist/collection/collection-manifest.json +4 -0
  13. package/dist/collection/components/xv-accordion/xv-accordion.js +2 -2
  14. package/dist/collection/components/xv-accordion/xv-accordion.js.map +1 -1
  15. package/dist/collection/components/xv-accordion-item/xv-accordion-item.js +3 -3
  16. package/dist/collection/components/xv-accordion-item/xv-accordion-item.js.map +1 -1
  17. package/dist/collection/components/xv-breadcrumbs/xv-breadcrumbs.js +2 -2
  18. package/dist/collection/components/xv-breadcrumbs/xv-breadcrumbs.js.map +1 -1
  19. package/dist/collection/components/xv-button/xv-button-v2.css +4 -1
  20. package/dist/collection/components/xv-button/xv-button.js +24 -2
  21. package/dist/collection/components/xv-button/xv-button.js.map +1 -1
  22. package/dist/collection/components/xv-card/xv-card.css +1 -1
  23. package/dist/collection/components/xv-card/xv-card.js +1 -1
  24. package/dist/collection/components/xv-card/xv-card.js.map +1 -1
  25. package/dist/collection/components/xv-checkbox/xv-checkbox.css +108 -0
  26. package/dist/collection/components/xv-checkbox/xv-checkbox.js +364 -10
  27. package/dist/collection/components/xv-checkbox/xv-checkbox.js.map +1 -1
  28. package/dist/collection/components/xv-link/xv-link.js +2 -2
  29. package/dist/collection/components/xv-link/xv-link.js.map +1 -1
  30. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator.css +1 -0
  31. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator.js +2 -2
  32. package/dist/collection/components/xv-progress-indicator/xv-progress-indicator.js.map +1 -1
  33. package/dist/collection/components/xv-progress-indicator-item/xv-progress-indicator-item.css +1 -1
  34. package/dist/collection/components/xv-progress-indicator-item/xv-progress-indicator-item.js +2 -2
  35. package/dist/collection/components/xv-progress-indicator-item/xv-progress-indicator-item.js.map +1 -1
  36. package/dist/collection/components/xv-table/defs.js +14 -0
  37. package/dist/collection/components/xv-table/defs.js.map +1 -0
  38. package/dist/collection/components/xv-table/xv-table-col/xv-table-col.css +8 -0
  39. package/dist/collection/components/xv-table/xv-table-col/xv-table-col.js +19 -0
  40. package/dist/collection/components/xv-table/xv-table-col/xv-table-col.js.map +1 -0
  41. package/dist/collection/components/xv-table/xv-table-header-row/xv-table-header-row.css +21 -0
  42. package/dist/collection/components/xv-table/xv-table-header-row/xv-table-header-row.js +122 -0
  43. package/dist/collection/components/xv-table/xv-table-header-row/xv-table-header-row.js.map +1 -0
  44. package/dist/collection/components/xv-table/xv-table-row/xv-table-row.css +53 -0
  45. package/dist/collection/components/xv-table/xv-table-row/xv-table-row.js +299 -0
  46. package/dist/collection/components/xv-table/xv-table-row/xv-table-row.js.map +1 -0
  47. package/dist/collection/components/xv-table/xv-table.css +154 -0
  48. package/dist/collection/components/xv-table/xv-table.js +245 -0
  49. package/dist/collection/components/xv-table/xv-table.js.map +1 -0
  50. package/dist/collection/components/xv-tag/xv-tag.js +2 -2
  51. package/dist/collection/components/xv-tag/xv-tag.js.map +1 -1
  52. package/dist/collection/components/xv-tooltip/xv-tooltip.css +1 -0
  53. package/dist/collection/components/xv-tooltip/xv-tooltip.js +3 -3
  54. package/dist/collection/components/xv-tooltip/xv-tooltip.js.map +1 -1
  55. package/dist/collection/index.js.map +1 -1
  56. package/dist/collection/types/enum.js +9 -0
  57. package/dist/collection/types/enum.js.map +1 -0
  58. package/dist/collection/utils/utils.js +7 -0
  59. package/dist/collection/utils/utils.js.map +1 -1
  60. package/dist/esm/{index-60f5a964.js → index-83ab73b7.js} +55 -3
  61. package/dist/esm/index-83ab73b7.js.map +1 -0
  62. package/dist/esm/loader.js +3 -3
  63. package/dist/esm/utils-9bb6333b.js.map +1 -1
  64. package/dist/esm/xv-accordion-v2_14.entry.js +585 -0
  65. package/dist/esm/xv-accordion-v2_14.entry.js.map +1 -0
  66. package/dist/esm/xv-breadcrumbs-v2.entry.js +18 -0
  67. package/dist/esm/xv-breadcrumbs-v2.entry.js.map +1 -0
  68. package/dist/esm/xv-webcomponents.js +3 -3
  69. package/dist/types/components/xv-button/xv-button.d.ts +2 -0
  70. package/dist/types/components/xv-checkbox/xv-checkbox.d.ts +66 -2
  71. package/dist/types/components/xv-table/defs.d.ts +16 -0
  72. package/dist/types/components/xv-table/xv-table-col/xv-table-col.d.ts +3 -0
  73. package/dist/types/components/xv-table/xv-table-header-row/xv-table-header-row.d.ts +25 -0
  74. package/dist/types/components/xv-table/xv-table-row/xv-table-row.d.ts +59 -0
  75. package/dist/types/components/xv-table/xv-table.d.ts +40 -0
  76. package/dist/types/components.d.ts +440 -90
  77. package/dist/types/types/enum.d.ts +7 -0
  78. package/dist/types/utils/utils.d.ts +7 -0
  79. package/dist/xv-webcomponents/p-5f18d718.entry.js +2 -0
  80. package/dist/xv-webcomponents/p-5f18d718.entry.js.map +1 -0
  81. package/dist/xv-webcomponents/p-840929c5.js +3 -0
  82. package/dist/xv-webcomponents/p-840929c5.js.map +1 -0
  83. package/dist/xv-webcomponents/p-a0b74d3c.js.map +1 -1
  84. package/dist/xv-webcomponents/p-bfe83d1e.entry.js +2 -0
  85. package/dist/xv-webcomponents/p-bfe83d1e.entry.js.map +1 -0
  86. package/dist/xv-webcomponents/xv-webcomponents.esm.js +1 -1
  87. package/dist/xv-webcomponents/xv-webcomponents.esm.js.map +1 -1
  88. package/package.json +51 -51
  89. package/dist/cjs/index-4d938647.js.map +0 -1
  90. package/dist/cjs/xv-accordion_10.cjs.entry.js +0 -263
  91. package/dist/cjs/xv-accordion_10.cjs.entry.js.map +0 -1
  92. package/dist/cjs/xv-breadcrumbs.cjs.entry.js +0 -22
  93. package/dist/cjs/xv-breadcrumbs.cjs.entry.js.map +0 -1
  94. package/dist/esm/index-60f5a964.js.map +0 -1
  95. package/dist/esm/xv-accordion_10.entry.js +0 -250
  96. package/dist/esm/xv-accordion_10.entry.js.map +0 -1
  97. package/dist/esm/xv-breadcrumbs.entry.js +0 -18
  98. package/dist/esm/xv-breadcrumbs.entry.js.map +0 -1
  99. package/dist/xv-webcomponents/p-41bd284c.entry.js +0 -2
  100. package/dist/xv-webcomponents/p-41bd284c.entry.js.map +0 -1
  101. package/dist/xv-webcomponents/p-543fe755.js +0 -3
  102. package/dist/xv-webcomponents/p-543fe755.js.map +0 -1
  103. package/dist/xv-webcomponents/p-948b7ef5.entry.js +0 -2
  104. package/dist/xv-webcomponents/p-948b7ef5.entry.js.map +0 -1
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2025 crossvertise
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2025 crossvertise
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,129 +1,129 @@
1
- # @xv/webcomponents
2
-
3
- **Reusable Web Components for XV Applications**
4
- This repository contains Web Components built with Stencil.js to provide a modular and reusable UI across multiple applications.
5
-
6
- ---
7
-
8
- ## Features
9
-
10
- **Reusable Web Components** – Designed for multiple XV applications
11
- **Stencil.js Powered** – Built using modern Web Component standards
12
- **Shadow DOM Support** – Encapsulated styles and functionality
13
- **Brand-Specific Theming** – Automatically detects and applies brand styles
14
- **Framework Agnostic** – Works with Angular, React, Vue, and plain HTML
15
-
16
- ---
17
-
18
- ## Folder Structure
19
-
20
- ```
21
- xv-webcomponents/
22
- │── src/
23
- │ ├── components/ # Web Component source files
24
- │ │ ├── button/
25
- │ │ │ ├── xv-button.tsx
26
- │ │ │ ├── xv-button.css
27
- │ │ │ ├── xv-button.e2e.ts
28
- │ │ │ ├── xv-button.spec.ts
29
- │ │ ├── checkbox/
30
- │ │ │ ├── xv-checkbox.tsx
31
- │ │ │ ├── xv-checkbox.css
32
- │ │ │ ├── xv-checkbox.e2e.ts
33
- │ │ │ ├── xv-checkbox.spec.ts
34
- │ ├── utils/ # Utility functions for components
35
- │── dist/ # Compiled distribution files
36
- │── loader/ # Loader scripts for consuming Web Components
37
- │── package.json
38
- │── README.md
39
- │── stencil.config.ts # Stencil.js configuration
40
- ```
41
-
42
- ---
43
-
44
- ## Installation
45
-
46
- To install the package from npm:
47
- ```bash
48
- npm install xv-webcomponents
49
- ```
50
-
51
- ---
52
-
53
- ## Usage
54
-
55
- ### **Using in an HTML Page**
56
- Simply include the Web Component in your HTML:
57
- ```html
58
- <script type="module" src="https://cdn.yourcompany.com/xv-webcomponents/xv-webcomponents.esm.js"></script>
59
- <xv-button-v2 label="Click Me" variant="accent"></xv-button-v2>
60
- ```
61
-
62
- ### **Using in an Angular Project**
63
- First, import `CUSTOM_ELEMENTS_SCHEMA` in your module:
64
- ```typescript
65
- import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
66
- import { BrowserModule } from '@angular/platform-browser';
67
-
68
- @NgModule({
69
- declarations: [],
70
- imports: [BrowserModule],
71
- schemas: [CUSTOM_ELEMENTS_SCHEMA]
72
- })
73
- export class AppModule {}
74
- ```
75
- Now, use the Web Component in your Angular templates:
76
- ```html
77
- <xv-button-v2 label="Click Me" variant="primary"></xv-button-v2>
78
- ```
79
-
80
- ### **Using in a C# Razor Page (MVC)**
81
- ```html
82
- <xv-button-v2 label="Submit" variant="secondary"></xv-button-v2>
83
- ```
84
-
85
- ### **Using in Sitefinity CMS**
86
- Embed the Web Component inside a content block:
87
- ```html
88
- <xv-button-v2 label="Learn More" variant="ghost"></xv-button-v2>
89
- ```
90
-
91
- ---
92
-
93
- ## 🛠 Development & Building
94
-
95
- ### **1️⃣ Build the Components**
96
- To build all components:
97
- ```bash
98
- npm run build
99
- ```
100
- This generates compiled components inside the `dist/` folder.
101
-
102
- ### **2️⃣ Run Local Development Server**
103
- To test components locally:
104
- ```bash
105
- npm start
106
- ```
107
- This starts a development server and watches for changes.
108
-
109
- ### **3️⃣ Publish to npm**
110
- To publish a new version of the package:
111
- ```bash
112
- npm version patch
113
- npm publish --access public
114
- ```
115
-
116
- ---
117
-
118
- ## Contributing
119
-
120
- ### **Adding a New Component**
121
- 1. Generate a new component:
122
- ```bash
123
- npm run generate component xv-new-component
124
- ```
125
- 2. Implement logic and styles inside `src/components/xv-new-component/`.
126
- 3. Test the component using Jest (`.spec.ts`) and e2e tests.
127
- 4. Run `npm run build` to generate the compiled version.
128
- 5. Commit changes and submit a pull request.
129
-
1
+ # @xv/webcomponents
2
+
3
+ **Reusable Web Components for XV Applications**
4
+ This repository contains Web Components built with Stencil.js to provide a modular and reusable UI across multiple applications.
5
+
6
+ ---
7
+
8
+ ## Features
9
+
10
+ **Reusable Web Components** – Designed for multiple XV applications
11
+ **Stencil.js Powered** – Built using modern Web Component standards
12
+ **Shadow DOM Support** – Encapsulated styles and functionality
13
+ **Brand-Specific Theming** – Automatically detects and applies brand styles
14
+ **Framework Agnostic** – Works with Angular, React, Vue, and plain HTML
15
+
16
+ ---
17
+
18
+ ## Folder Structure
19
+
20
+ ```
21
+ xv-webcomponents/
22
+ │── src/
23
+ │ ├── components/ # Web Component source files
24
+ │ │ ├── button/
25
+ │ │ │ ├── xv-button.tsx
26
+ │ │ │ ├── xv-button.css
27
+ │ │ │ ├── xv-button.e2e.ts
28
+ │ │ │ ├── xv-button.spec.ts
29
+ │ │ ├── checkbox/
30
+ │ │ │ ├── xv-checkbox.tsx
31
+ │ │ │ ├── xv-checkbox.css
32
+ │ │ │ ├── xv-checkbox.e2e.ts
33
+ │ │ │ ├── xv-checkbox.spec.ts
34
+ │ ├── utils/ # Utility functions for components
35
+ │── dist/ # Compiled distribution files
36
+ │── loader/ # Loader scripts for consuming Web Components
37
+ │── package.json
38
+ │── README.md
39
+ │── stencil.config.ts # Stencil.js configuration
40
+ ```
41
+
42
+ ---
43
+
44
+ ## Installation
45
+
46
+ To install the package from npm:
47
+ ```bash
48
+ npm install xv-webcomponents
49
+ ```
50
+
51
+ ---
52
+
53
+ ## Usage
54
+
55
+ ### **Using in an HTML Page**
56
+ Simply include the Web Component in your HTML:
57
+ ```html
58
+ <script type="module" src="https://cdn.yourcompany.com/xv-webcomponents/xv-webcomponents.esm.js"></script>
59
+ <xv-button-v2 label="Click Me" variant="accent"></xv-button-v2>
60
+ ```
61
+
62
+ ### **Using in an Angular Project**
63
+ First, import `CUSTOM_ELEMENTS_SCHEMA` in your module:
64
+ ```typescript
65
+ import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
66
+ import { BrowserModule } from '@angular/platform-browser';
67
+
68
+ @NgModule({
69
+ declarations: [],
70
+ imports: [BrowserModule],
71
+ schemas: [CUSTOM_ELEMENTS_SCHEMA]
72
+ })
73
+ export class AppModule {}
74
+ ```
75
+ Now, use the Web Component in your Angular templates:
76
+ ```html
77
+ <xv-button-v2 label="Click Me" variant="primary"></xv-button-v2>
78
+ ```
79
+
80
+ ### **Using in a C# Razor Page (MVC)**
81
+ ```html
82
+ <xv-button-v2 label="Submit" variant="secondary"></xv-button-v2>
83
+ ```
84
+
85
+ ### **Using in Sitefinity CMS**
86
+ Embed the Web Component inside a content block:
87
+ ```html
88
+ <xv-button-v2 label="Learn More" variant="ghost"></xv-button-v2>
89
+ ```
90
+
91
+ ---
92
+
93
+ ## 🛠 Development & Building
94
+
95
+ ### **1️⃣ Build the Components**
96
+ To build all components:
97
+ ```bash
98
+ npm run build
99
+ ```
100
+ This generates compiled components inside the `dist/` folder.
101
+
102
+ ### **2️⃣ Run Local Development Server**
103
+ To test components locally:
104
+ ```bash
105
+ npm start
106
+ ```
107
+ This starts a development server and watches for changes.
108
+
109
+ ### **3️⃣ Publish to npm**
110
+ To publish a new version of the package:
111
+ ```bash
112
+ npm version patch
113
+ npm publish --access public
114
+ ```
115
+
116
+ ---
117
+
118
+ ## Contributing
119
+
120
+ ### **Adding a New Component**
121
+ 1. Generate a new component:
122
+ ```bash
123
+ npm run generate component xv-new-component
124
+ ```
125
+ 2. Implement logic and styles inside `src/components/xv-new-component/`.
126
+ 3. Test the component using Jest (`.spec.ts`) and e2e tests.
127
+ 4. Run `npm run build` to generate the compiled version.
128
+ 5. Commit changes and submit a pull request.
129
+
@@ -21,7 +21,7 @@ function _interopNamespace(e) {
21
21
  }
22
22
 
23
23
  const NAMESPACE = 'xv-webcomponents';
24
- const BUILD = /* xv-webcomponents */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, constructableCSS: true, cssAnnotations: true, devTools: false, element: false, event: true, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: true, hostListenerTarget: true, hostListenerTargetBody: true, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: false, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, hydratedSelectorName: "hydrated", initializeNextTick: false, invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: true, lifecycle: true, lifecycleDOMEvents: false, member: true, method: true, mode: false, modernPropertyDecls: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: true, propNumber: true, propString: true, reflect: false, scoped: false, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: true, slot: true, slotChildNodesFix: false, slotRelocation: false, state: true, style: true, svg: true, taskQueue: true, transformTagName: false, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: false, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: false, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: false, watchCallback: true };
24
+ const BUILD = /* xv-webcomponents */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, constructableCSS: true, cssAnnotations: true, devTools: false, element: false, event: true, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: true, hasRenderFn: true, hostListener: true, hostListenerTarget: true, hostListenerTargetBody: true, hostListenerTargetDocument: false, hostListenerTargetParent: false, hostListenerTargetWindow: false, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, hydratedSelectorName: "hydrated", initializeNextTick: false, invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: true, lifecycle: true, lifecycleDOMEvents: false, member: true, method: true, mode: false, modernPropertyDecls: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: true, propNumber: true, propString: true, reflect: true, scoped: false, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: true, slot: true, slotChildNodesFix: false, slotRelocation: false, state: true, style: true, svg: true, taskQueue: true, transformTagName: false, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: false, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: false, watchCallback: true };
25
25
 
26
26
  /*
27
27
  Stencil Client Platform v4.27.1 | MIT Licensed | https://stenciljs.com
@@ -106,6 +106,12 @@ var styles = /* @__PURE__ */ new Map();
106
106
  var HYDRATED_STYLE_ID = "sty-id";
107
107
  var HYDRATED_CSS = "{visibility:hidden}.hydrated{visibility:inherit}";
108
108
  var SLOT_FB_CSS = "slot-fb{display:contents}slot-fb[hidden]{display:none}";
109
+ var FORM_ASSOCIATED_CUSTOM_ELEMENT_CALLBACKS = [
110
+ "formAssociatedCallback",
111
+ "formResetCallback",
112
+ "formDisabledCallback",
113
+ "formStateRestoreCallback"
114
+ ];
109
115
  var win = typeof window !== "undefined" ? window : {};
110
116
  var plt = {
111
117
  $flags$: 0,
@@ -481,7 +487,11 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
481
487
  }
482
488
  }
483
489
  }
484
- } else if (memberName === "key") ; else if ((!isProp ) && memberName[0] === "o" && memberName[1] === "n") {
490
+ } else if (memberName === "key") ; else if (memberName === "ref") {
491
+ if (newValue) {
492
+ newValue(elm);
493
+ }
494
+ } else if ((!isProp ) && memberName[0] === "o" && memberName[1] === "n") {
485
495
  if (memberName[2] === "-") {
486
496
  memberName = memberName.slice(3);
487
497
  } else if (isMemberInElement(win, ln)) {
@@ -653,6 +663,7 @@ var removeVnodes = (vnodes, startIdx, endIdx) => {
653
663
  const vnode = vnodes[index];
654
664
  if (vnode) {
655
665
  const elm = vnode.$elm$;
666
+ nullifyVNodeRefs(vnode);
656
667
  if (elm) {
657
668
  elm.remove();
658
669
  }
@@ -788,6 +799,12 @@ var patch = (oldVNode, newVNode2, isInitialRender = false) => {
788
799
  elm.data = text;
789
800
  }
790
801
  };
802
+ var nullifyVNodeRefs = (vNode) => {
803
+ {
804
+ vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);
805
+ vNode.$children$ && vNode.$children$.map(nullifyVNodeRefs);
806
+ }
807
+ };
791
808
  var insertBefore = (parent, newNode, reference) => {
792
809
  {
793
810
  return parent == null ? void 0 : parent.insertBefore(newNode, reference);
@@ -799,6 +816,12 @@ var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
799
816
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
800
817
  const rootVnode = isHost(renderFnResults) ? renderFnResults : h(null, null, renderFnResults);
801
818
  hostTagName = hostElm.tagName;
819
+ if (cmpMeta.$attrsToReflect$) {
820
+ rootVnode.$attrs$ = rootVnode.$attrs$ || {};
821
+ cmpMeta.$attrsToReflect$.map(
822
+ ([propName, attribute]) => rootVnode.$attrs$[attribute] = hostElm[propName]
823
+ );
824
+ }
802
825
  if (isInitialLoad && rootVnode.$attrs$) {
803
826
  for (const key of Object.keys(rootVnode.$attrs$)) {
804
827
  if (hostElm.hasAttribute(key) && !["key", "ref", "style", "class"].includes(key)) {
@@ -1024,6 +1047,25 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
1024
1047
  var proxyComponent = (Cstr, cmpMeta, flags) => {
1025
1048
  var _a, _b;
1026
1049
  const prototype = Cstr.prototype;
1050
+ if (cmpMeta.$flags$ & 64 /* formAssociated */ && flags & 1 /* isElementConstructor */) {
1051
+ FORM_ASSOCIATED_CUSTOM_ELEMENT_CALLBACKS.forEach((cbName) => {
1052
+ Object.defineProperty(prototype, cbName, {
1053
+ value(...args) {
1054
+ const hostRef = getHostRef(this);
1055
+ const instance = hostRef.$lazyInstance$ ;
1056
+ if (!instance) {
1057
+ hostRef.$onReadyPromise$.then((asyncInstance) => {
1058
+ const cb = asyncInstance[cbName];
1059
+ typeof cb === "function" && cb.call(asyncInstance, ...args);
1060
+ });
1061
+ } else {
1062
+ const cb = instance[cbName] ;
1063
+ typeof cb === "function" && cb.call(instance, ...args);
1064
+ }
1065
+ }
1066
+ });
1067
+ });
1068
+ }
1027
1069
  if (cmpMeta.$members$ || (cmpMeta.$watchers$ || Cstr.watchers)) {
1028
1070
  if (Cstr.watchers && !cmpMeta.$watchers$) {
1029
1071
  cmpMeta.$watchers$ = Cstr.watchers;
@@ -1144,8 +1186,12 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
1144
1186
  /* @__PURE__ */ new Set([
1145
1187
  ...Object.keys((_b = cmpMeta.$watchers$) != null ? _b : {}),
1146
1188
  ...members.filter(([_, m]) => m[0] & 15 /* HasAttribute */).map(([propName, m]) => {
1189
+ var _a2;
1147
1190
  const attrName = m[1] || propName;
1148
1191
  attrNameToPropName.set(attrName, propName);
1192
+ if (m[0] & 512 /* ReflectAttr */) {
1193
+ (_a2 = cmpMeta.$attrsToReflect$) == null ? void 0 : _a2.push([propName, attrName]);
1194
+ }
1149
1195
  return attrName;
1150
1196
  })
1151
1197
  ])
@@ -1335,6 +1381,9 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
1335
1381
  {
1336
1382
  cmpMeta.$listeners$ = compactMeta[3];
1337
1383
  }
1384
+ {
1385
+ cmpMeta.$attrsToReflect$ = [];
1386
+ }
1338
1387
  {
1339
1388
  cmpMeta.$watchers$ = (_a2 = compactMeta[4]) != null ? _a2 : {};
1340
1389
  }
@@ -1396,6 +1445,9 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
1396
1445
  return getHostRef(this).$onReadyPromise$;
1397
1446
  }
1398
1447
  };
1448
+ if (cmpMeta.$flags$ & 64 /* formAssociated */) {
1449
+ HostElement.formAssociated = true;
1450
+ }
1399
1451
  cmpMeta.$lazyBundleId$ = lazyBundle[0];
1400
1452
  if (!exclude.includes(tagName) && !customElements2.get(tagName)) {
1401
1453
  cmpTags.push(tagName);
@@ -1480,4 +1532,4 @@ exports.promiseResolve = promiseResolve;
1480
1532
  exports.registerInstance = registerInstance;
1481
1533
  exports.setNonce = setNonce;
1482
1534
 
1483
- //# sourceMappingURL=index-4d938647.js.map
1535
+ //# sourceMappingURL=index-782b9733.js.map