@helsevestikt/hviktor-icons 0.0.39 → 0.0.41

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 (184) hide show
  1. package/README.md +5 -3
  2. package/WEBCOMPONENTS_GUIDE.md +190 -176
  3. package/dist/index.d.ts +444 -444
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +444 -444
  6. package/dist/index.js.map +1 -1
  7. package/dist/lib/base-icon.webcomponent.js +20 -20
  8. package/dist/lib/webcomponents/icon-angle-ruler-circle-fill.webcomponent.js +2 -1
  9. package/dist/lib/webcomponents/icon-angle-ruler-circle-fill.webcomponent.js.map +1 -1
  10. package/dist/lib/webcomponents/icon-angle-ruler-triangle-fill.webcomponent.js +2 -1
  11. package/dist/lib/webcomponents/icon-angle-ruler-triangle-fill.webcomponent.js.map +1 -1
  12. package/dist/lib/webcomponents/icon-arrow-circlepath-reverse.webcomponent.js +2 -1
  13. package/dist/lib/webcomponents/icon-arrow-circlepath-reverse.webcomponent.js.map +1 -1
  14. package/dist/lib/webcomponents/icon-arrows-all-directions.webcomponent.js +2 -1
  15. package/dist/lib/webcomponents/icon-arrows-all-directions.webcomponent.js.map +1 -1
  16. package/dist/lib/webcomponents/icon-broadcast-minus-circle-fill.webcomponent.js +2 -1
  17. package/dist/lib/webcomponents/icon-broadcast-minus-circle-fill.webcomponent.js.map +1 -1
  18. package/dist/lib/webcomponents/icon-broadcast-minus-circle.webcomponent.js +2 -1
  19. package/dist/lib/webcomponents/icon-broadcast-minus-circle.webcomponent.js.map +1 -1
  20. package/dist/lib/webcomponents/icon-broadcast-plus-circle-fill.webcomponent.js +2 -1
  21. package/dist/lib/webcomponents/icon-broadcast-plus-circle-fill.webcomponent.js.map +1 -1
  22. package/dist/lib/webcomponents/icon-broadcast-plus-circle.webcomponent.js +2 -1
  23. package/dist/lib/webcomponents/icon-broadcast-plus-circle.webcomponent.js.map +1 -1
  24. package/dist/lib/webcomponents/icon-caret-down-circle-fill.webcomponent.js +2 -1
  25. package/dist/lib/webcomponents/icon-caret-down-circle-fill.webcomponent.js.map +1 -1
  26. package/dist/lib/webcomponents/icon-caret-left-circle-fill.webcomponent.js +2 -1
  27. package/dist/lib/webcomponents/icon-caret-left-circle-fill.webcomponent.js.map +1 -1
  28. package/dist/lib/webcomponents/icon-caret-left-right-fill.webcomponent.js +2 -1
  29. package/dist/lib/webcomponents/icon-caret-left-right-fill.webcomponent.js.map +1 -1
  30. package/dist/lib/webcomponents/icon-caret-right-circle-fill.webcomponent.js +2 -1
  31. package/dist/lib/webcomponents/icon-caret-right-circle-fill.webcomponent.js.map +1 -1
  32. package/dist/lib/webcomponents/icon-caret-up-down-filled-down.webcomponent.js +2 -1
  33. package/dist/lib/webcomponents/icon-caret-up-down-filled-down.webcomponent.js.map +1 -1
  34. package/dist/lib/webcomponents/icon-caret-up-down-filled-up.webcomponent.js +2 -1
  35. package/dist/lib/webcomponents/icon-caret-up-down-filled-up.webcomponent.js.map +1 -1
  36. package/dist/lib/webcomponents/icon-chat-exclamationmark-fill.webcomponent.js +2 -1
  37. package/dist/lib/webcomponents/icon-chat-exclamationmark-fill.webcomponent.js.map +1 -1
  38. package/dist/lib/webcomponents/icon-checkmark-circle-fill.webcomponent.js +2 -1
  39. package/dist/lib/webcomponents/icon-checkmark-circle-fill.webcomponent.js.map +1 -1
  40. package/dist/lib/webcomponents/icon-chevron-down-circle-fill.webcomponent.js +2 -1
  41. package/dist/lib/webcomponents/icon-chevron-down-circle-fill.webcomponent.js.map +1 -1
  42. package/dist/lib/webcomponents/icon-chevron-down-double-circle-fill.webcomponent.js +2 -1
  43. package/dist/lib/webcomponents/icon-chevron-down-double-circle-fill.webcomponent.js.map +1 -1
  44. package/dist/lib/webcomponents/icon-chevron-down-double-circle.webcomponent.js +2 -1
  45. package/dist/lib/webcomponents/icon-chevron-down-double-circle.webcomponent.js.map +1 -1
  46. package/dist/lib/webcomponents/icon-chevron-left-circle-fill.webcomponent.js +2 -1
  47. package/dist/lib/webcomponents/icon-chevron-left-circle-fill.webcomponent.js.map +1 -1
  48. package/dist/lib/webcomponents/icon-chevron-left-double-circle-fill.webcomponent.js +2 -1
  49. package/dist/lib/webcomponents/icon-chevron-left-double-circle-fill.webcomponent.js.map +1 -1
  50. package/dist/lib/webcomponents/icon-chevron-left-double-circle.webcomponent.js +2 -1
  51. package/dist/lib/webcomponents/icon-chevron-left-double-circle.webcomponent.js.map +1 -1
  52. package/dist/lib/webcomponents/icon-chevron-left-first-circle-fill.webcomponent.js +2 -1
  53. package/dist/lib/webcomponents/icon-chevron-left-first-circle-fill.webcomponent.js.map +1 -1
  54. package/dist/lib/webcomponents/icon-chevron-left-first-circle.webcomponent.js +2 -1
  55. package/dist/lib/webcomponents/icon-chevron-left-first-circle.webcomponent.js.map +1 -1
  56. package/dist/lib/webcomponents/icon-chevron-right-circle-fill.webcomponent.js +2 -1
  57. package/dist/lib/webcomponents/icon-chevron-right-circle-fill.webcomponent.js.map +1 -1
  58. package/dist/lib/webcomponents/icon-chevron-right-double-circle-fill.webcomponent.js +2 -1
  59. package/dist/lib/webcomponents/icon-chevron-right-double-circle-fill.webcomponent.js.map +1 -1
  60. package/dist/lib/webcomponents/icon-chevron-right-double-circle.webcomponent.js +2 -1
  61. package/dist/lib/webcomponents/icon-chevron-right-double-circle.webcomponent.js.map +1 -1
  62. package/dist/lib/webcomponents/icon-chevron-right-last-circle-fill.webcomponent.js +2 -1
  63. package/dist/lib/webcomponents/icon-chevron-right-last-circle-fill.webcomponent.js.map +1 -1
  64. package/dist/lib/webcomponents/icon-chevron-right-last-circle.webcomponent.js +2 -1
  65. package/dist/lib/webcomponents/icon-chevron-right-last-circle.webcomponent.js.map +1 -1
  66. package/dist/lib/webcomponents/icon-chevron-up-circle-fill.webcomponent.js +2 -1
  67. package/dist/lib/webcomponents/icon-chevron-up-circle-fill.webcomponent.js.map +1 -1
  68. package/dist/lib/webcomponents/icon-chevron-up-double-circle-fill.webcomponent.js +2 -1
  69. package/dist/lib/webcomponents/icon-chevron-up-double-circle-fill.webcomponent.js.map +1 -1
  70. package/dist/lib/webcomponents/icon-chevron-up-double-circle.webcomponent.js +2 -1
  71. package/dist/lib/webcomponents/icon-chevron-up-double-circle.webcomponent.js.map +1 -1
  72. package/dist/lib/webcomponents/icon-clipboard-checkmark-fill.webcomponent.js +2 -1
  73. package/dist/lib/webcomponents/icon-clipboard-checkmark-fill.webcomponent.js.map +1 -1
  74. package/dist/lib/webcomponents/icon-clipboard-x-mark-fill.webcomponent.js +2 -1
  75. package/dist/lib/webcomponents/icon-clipboard-x-mark-fill.webcomponent.js.map +1 -1
  76. package/dist/lib/webcomponents/icon-exclamationmark-triangle-fill.webcomponent.js +2 -1
  77. package/dist/lib/webcomponents/icon-exclamationmark-triangle-fill.webcomponent.js.map +1 -1
  78. package/dist/lib/webcomponents/icon-exclamationmark-triangle.webcomponent.js +2 -1
  79. package/dist/lib/webcomponents/icon-exclamationmark-triangle.webcomponent.js.map +1 -1
  80. package/dist/lib/webcomponents/icon-figure-combination-fill.webcomponent.js +2 -1
  81. package/dist/lib/webcomponents/icon-figure-combination-fill.webcomponent.js.map +1 -1
  82. package/dist/lib/webcomponents/icon-flower-petal-falling-fill.webcomponent.js +2 -1
  83. package/dist/lib/webcomponents/icon-flower-petal-falling-fill.webcomponent.js.map +1 -1
  84. package/dist/lib/webcomponents/icon-gavel-sound-block-fill.webcomponent.js +2 -1
  85. package/dist/lib/webcomponents/icon-gavel-sound-block-fill.webcomponent.js.map +1 -1
  86. package/dist/lib/webcomponents/icon-hand-shake-heart-fill.webcomponent.js +2 -1
  87. package/dist/lib/webcomponents/icon-hand-shake-heart-fill.webcomponent.js.map +1 -1
  88. package/dist/lib/webcomponents/icon-hearing-loop-radio-fill.webcomponent.js +2 -1
  89. package/dist/lib/webcomponents/icon-hearing-loop-radio-fill.webcomponent.js.map +1 -1
  90. package/dist/lib/webcomponents/icon-hiking-trail-sign-fill.webcomponent.js +2 -1
  91. package/dist/lib/webcomponents/icon-hiking-trail-sign-fill.webcomponent.js.map +1 -1
  92. package/dist/lib/webcomponents/icon-hourglass-bottom-filled.webcomponent.js +2 -1
  93. package/dist/lib/webcomponents/icon-hourglass-bottom-filled.webcomponent.js.map +1 -1
  94. package/dist/lib/webcomponents/icon-information-square-fill.webcomponent.js +2 -1
  95. package/dist/lib/webcomponents/icon-information-square-fill.webcomponent.js.map +1 -1
  96. package/dist/lib/webcomponents/icon-magnifying-glass-checkmark-fill.webcomponent.js +2 -1
  97. package/dist/lib/webcomponents/icon-magnifying-glass-checkmark-fill.webcomponent.js.map +1 -1
  98. package/dist/lib/webcomponents/icon-magnifying-glass-checkmark.webcomponent.js +2 -1
  99. package/dist/lib/webcomponents/icon-magnifying-glass-checkmark.webcomponent.js.map +1 -1
  100. package/dist/lib/webcomponents/icon-magnifying-glass-fill.webcomponent.js +2 -1
  101. package/dist/lib/webcomponents/icon-magnifying-glass-fill.webcomponent.js.map +1 -1
  102. package/dist/lib/webcomponents/icon-medical-thermometer-fill.webcomponent.js +2 -1
  103. package/dist/lib/webcomponents/icon-medical-thermometer-fill.webcomponent.js.map +1 -1
  104. package/dist/lib/webcomponents/icon-megaphone-speaking-fill.webcomponent.js +2 -1
  105. package/dist/lib/webcomponents/icon-megaphone-speaking-fill.webcomponent.js.map +1 -1
  106. package/dist/lib/webcomponents/icon-menu-elipsis-horizontal-circle-fill.webcomponent.js +2 -1
  107. package/dist/lib/webcomponents/icon-menu-elipsis-horizontal-circle-fill.webcomponent.js.map +1 -1
  108. package/dist/lib/webcomponents/icon-menu-elipsis-horizontal-circle.webcomponent.js +2 -1
  109. package/dist/lib/webcomponents/icon-menu-elipsis-horizontal-circle.webcomponent.js.map +1 -1
  110. package/dist/lib/webcomponents/icon-menu-elipsis-horizontal-square-fill.webcomponent.js +2 -1
  111. package/dist/lib/webcomponents/icon-menu-elipsis-horizontal-square-fill.webcomponent.js.map +1 -1
  112. package/dist/lib/webcomponents/icon-menu-elipsis-horizontal-square.webcomponent.js +2 -1
  113. package/dist/lib/webcomponents/icon-menu-elipsis-horizontal-square.webcomponent.js.map +1 -1
  114. package/dist/lib/webcomponents/icon-menu-elipsis-horizontal.webcomponent.js +2 -1
  115. package/dist/lib/webcomponents/icon-menu-elipsis-horizontal.webcomponent.js.map +1 -1
  116. package/dist/lib/webcomponents/icon-menu-elipsis-vertical-circle-fill.webcomponent.js +2 -1
  117. package/dist/lib/webcomponents/icon-menu-elipsis-vertical-circle-fill.webcomponent.js.map +1 -1
  118. package/dist/lib/webcomponents/icon-menu-elipsis-vertical-circle.webcomponent.js +2 -1
  119. package/dist/lib/webcomponents/icon-menu-elipsis-vertical-circle.webcomponent.js.map +1 -1
  120. package/dist/lib/webcomponents/icon-menu-elipsis-vertical-square-fill.webcomponent.js +2 -1
  121. package/dist/lib/webcomponents/icon-menu-elipsis-vertical-square-fill.webcomponent.js.map +1 -1
  122. package/dist/lib/webcomponents/icon-menu-elipsis-vertical-square.webcomponent.js +2 -1
  123. package/dist/lib/webcomponents/icon-menu-elipsis-vertical-square.webcomponent.js.map +1 -1
  124. package/dist/lib/webcomponents/icon-menu-elipsis-vertical.webcomponent.js +2 -1
  125. package/dist/lib/webcomponents/icon-menu-elipsis-vertical.webcomponent.js.map +1 -1
  126. package/dist/lib/webcomponents/icon-microphone-slash-fill.webcomponent.js +2 -1
  127. package/dist/lib/webcomponents/icon-microphone-slash-fill.webcomponent.js.map +1 -1
  128. package/dist/lib/webcomponents/icon-monitor-triangle-fill.webcomponent.js +2 -1
  129. package/dist/lib/webcomponents/icon-monitor-triangle-fill.webcomponent.js.map +1 -1
  130. package/dist/lib/webcomponents/icon-padlock-unlocked-fill.webcomponent.js +2 -1
  131. package/dist/lib/webcomponents/icon-padlock-unlocked-fill.webcomponent.js.map +1 -1
  132. package/dist/lib/webcomponents/icon-person-checkmark-fill.webcomponent.js +2 -1
  133. package/dist/lib/webcomponents/icon-person-checkmark-fill.webcomponent.js.map +1 -1
  134. package/dist/lib/webcomponents/icon-person-rectangle-fill.webcomponent.js +2 -1
  135. package/dist/lib/webcomponents/icon-person-rectangle-fill.webcomponent.js.map +1 -1
  136. package/dist/lib/webcomponents/icon-person-tall-short-fill.webcomponent.js +2 -1
  137. package/dist/lib/webcomponents/icon-person-tall-short-fill.webcomponent.js.map +1 -1
  138. package/dist/lib/webcomponents/icon-pill-circle-rectangle-fill.webcomponent.js +2 -1
  139. package/dist/lib/webcomponents/icon-pill-circle-rectangle-fill.webcomponent.js.map +1 -1
  140. package/dist/lib/webcomponents/icon-pill-circle-rectangle.webcomponent.js +2 -1
  141. package/dist/lib/webcomponents/icon-pill-circle-rectangle.webcomponent.js.map +1 -1
  142. package/dist/lib/webcomponents/icon-printer-large-triangle-fill.webcomponent.js +2 -1
  143. package/dist/lib/webcomponents/icon-printer-large-triangle-fill.webcomponent.js.map +1 -1
  144. package/dist/lib/webcomponents/icon-printer-large-triangle.webcomponent.js +2 -1
  145. package/dist/lib/webcomponents/icon-printer-large-triangle.webcomponent.js.map +1 -1
  146. package/dist/lib/webcomponents/icon-printer-small-triangle-fill.webcomponent.js +2 -1
  147. package/dist/lib/webcomponents/icon-printer-small-triangle-fill.webcomponent.js.map +1 -1
  148. package/dist/lib/webcomponents/icon-printer-small-triangle.webcomponent.js +2 -1
  149. package/dist/lib/webcomponents/icon-printer-small-triangle.webcomponent.js.map +1 -1
  150. package/dist/lib/webcomponents/icon-qr-code-scanning-fill.webcomponent.js +2 -1
  151. package/dist/lib/webcomponents/icon-qr-code-scanning-fill.webcomponent.js.map +1 -1
  152. package/dist/lib/webcomponents/icon-questionmark-circle-fill.webcomponent.js +2 -1
  153. package/dist/lib/webcomponents/icon-questionmark-circle-fill.webcomponent.js.map +1 -1
  154. package/dist/lib/webcomponents/icon-questionmark-diamond-fill.webcomponent.js +2 -1
  155. package/dist/lib/webcomponents/icon-questionmark-diamond-fill.webcomponent.js.map +1 -1
  156. package/dist/lib/webcomponents/icon-rectangle-sections-fill.webcomponent.js +2 -1
  157. package/dist/lib/webcomponents/icon-rectangle-sections-fill.webcomponent.js.map +1 -1
  158. package/dist/lib/webcomponents/icon-shield-checkmark-fill.webcomponent.js +2 -1
  159. package/dist/lib/webcomponents/icon-shield-checkmark-fill.webcomponent.js.map +1 -1
  160. package/dist/lib/webcomponents/icon-sign-language-single-hand-fill.webcomponent.js +2 -1
  161. package/dist/lib/webcomponents/icon-sign-language-single-hand-fill.webcomponent.js.map +1 -1
  162. package/dist/lib/webcomponents/icon-sign-language-single-hand.webcomponent.js +2 -1
  163. package/dist/lib/webcomponents/icon-sign-language-single-hand.webcomponent.js.map +1 -1
  164. package/dist/lib/webcomponents/icon-sign-language-two-hands-fill.webcomponent.js +2 -1
  165. package/dist/lib/webcomponents/icon-sign-language-two-hands-fill.webcomponent.js.map +1 -1
  166. package/dist/lib/webcomponents/icon-sign-language-two-hands.webcomponent.js +2 -1
  167. package/dist/lib/webcomponents/icon-sign-language-two-hands.webcomponent.js.map +1 -1
  168. package/dist/lib/webcomponents/icon-speaker-sound-wave1fill.webcomponent.js +2 -1
  169. package/dist/lib/webcomponents/icon-speaker-sound-wave1fill.webcomponent.js.map +1 -1
  170. package/dist/lib/webcomponents/icon-speaker-sound-wave2fill.webcomponent.js +2 -1
  171. package/dist/lib/webcomponents/icon-speaker-sound-wave2fill.webcomponent.js.map +1 -1
  172. package/dist/lib/webcomponents/icon-speaker-sound-wave3fill.webcomponent.js +2 -1
  173. package/dist/lib/webcomponents/icon-speaker-sound-wave3fill.webcomponent.js.map +1 -1
  174. package/dist/lib/webcomponents/icon-split-horizontal-fill.webcomponent.js +2 -1
  175. package/dist/lib/webcomponents/icon-split-horizontal-fill.webcomponent.js.map +1 -1
  176. package/package.json +4 -4
  177. package/dist/all.d.ts +0 -949
  178. package/dist/all.d.ts.map +0 -1
  179. package/dist/all.js +0 -952
  180. package/dist/all.js.map +0 -1
  181. package/dist/index.new.d.ts +0 -2
  182. package/dist/index.new.d.ts.map +0 -1
  183. package/dist/index.new.js +0 -8
  184. package/dist/index.new.js.map +0 -1
package/README.md CHANGED
@@ -41,7 +41,7 @@ import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
41
41
  <hvi-icon-airplane size="lg"></hvi-icon-airplane>
42
42
  <hvi-icon-person size="md"></hvi-icon-person>
43
43
  <hvi-icon-house size="sm"></hvi-icon-house>
44
- `
44
+ `,
45
45
  })
46
46
  export class AppComponent {}
47
47
  ```
@@ -85,6 +85,7 @@ import '@helsevestikt/hviktor-icons';
85
85
  <!-- Then in your Razor components -->
86
86
  <hvi-icon-airplane size="lg"></hvi-icon-airplane>
87
87
  ```
88
+
88
89
  <h1>Dashboard</h1>
89
90
  </div>
90
91
 
@@ -104,7 +105,8 @@ import '@helsevestikt/hviktor-icons';
104
105
  color: #d83b01;
105
106
  }
106
107
  </style>
107
- ```
108
+
109
+ ````
108
110
 
109
111
  #### Vanilla JavaScript / HTML
110
112
 
@@ -123,7 +125,7 @@ import '@helsevestikt/hviktor-icons';
123
125
  </script>
124
126
  </body>
125
127
  </html>
126
- ```
128
+ ````
127
129
 
128
130
  ## Available Icons
129
131
 
@@ -1,176 +1,190 @@
1
- # Converting to Web Components
2
-
3
- This guide explains how to convert the Angular icon components to pure Web Components.
4
-
5
- ## Quick Start
6
-
7
- Run the conversion script:
8
-
9
- ```bash
10
- cd projects/icons
11
- npm run convert
12
- ```
13
-
14
- This will:
15
- 1. Read all existing Angular icon components
16
- 2. Convert them to Web Component classes
17
- 3. Generate TypeScript declarations for IntelliSense
18
- 4. Create the main entry point that registers all components
19
-
20
- ## What Gets Generated
21
-
22
- ### 1. Web Component Classes (`src/lib/webcomponents/`)
23
- Each icon gets converted to a pure Web Component:
24
-
25
- ```typescript
26
- export class HviIconAirplaneWebComponent extends HviIconBase {
27
- protected get path(): string {
28
- return 'M6.38832...'; // SVG path data
29
- }
30
- }
31
-
32
- customElements.define('hvi-icon-airplane', HviIconAirplaneWebComponent);
33
- ```
34
-
35
- ### 2. TypeScript Declarations (`src/lib/icons.d.ts`)
36
- Provides IntelliSense for all frameworks:
37
-
38
- ```typescript
39
- interface HTMLElementTagNameMap {
40
- 'hvi-icon-airplane': HviIconAirplaneWebComponent;
41
- // ... all other icons
42
- }
43
- ```
44
-
45
- ### 3. Main Entry Point (`src/index.ts`)
46
- Imports and registers all components:
47
-
48
- ```typescript
49
- import './lib/webcomponents/icon-Airplane.webcomponent';
50
- // ... all other imports
51
-
52
- export * from './lib/icons.d';
53
- export { HviIconBase } from './lib/base-icon.webcomponent';
54
- ```
55
-
56
- ## Usage in Angular
57
-
58
- ### 1. Install the package
59
- ```bash
60
- npm install @helsevestikt/hviktor-icons
61
- ```
62
-
63
- ### 2. Import in your app
64
- ```typescript
65
- // app.config.ts or main.ts
66
- import '@helsevestikt/hviktor-icons';
67
-
68
- export const appConfig: ApplicationConfig = {
69
- providers: [
70
- // ... your providers
71
- ]
72
- };
73
- ```
74
-
75
- ### 3. Add CUSTOM_ELEMENTS_SCHEMA
76
- ```typescript
77
- // For standalone components in app.component.ts
78
- import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
79
-
80
- @Component({
81
- selector: 'app-root',
82
- standalone: true,
83
- schemas: [CUSTOM_ELEMENTS_SCHEMA],
84
- // ...
85
- })
86
- ```
87
-
88
- ### 4. Use in templates with full IntelliSense
89
- ```html
90
- <hvi-icon-airplane size="lg"></hvi-icon-airplane>
91
- <hvi-icon-search size="md"></hvi-icon-search>
92
- <hvi-icon-close size="sm"></hvi-icon-close>
93
- ```
94
-
95
- ## Usage in Other Frameworks
96
-
97
- ### React
98
- ```jsx
99
- import '@helsevestikt/hviktor-icons';
100
-
101
- function MyComponent() {
102
- return <hvi-icon-airplane size="lg"></hvi-icon-airplane>;
103
- }
104
- ```
105
-
106
- ### Vue
107
- ```vue
108
- <template>
109
- <hvi-icon-airplane size="lg"></hvi-icon-airplane>
110
- </template>
111
-
112
- <script>
113
- import '@helsevestikt/hviktor-icons';
114
- </script>
115
- ```
116
-
117
- ### Blazor
118
- ```html
119
- <!-- In _Host.cshtml, _Layout.cshtml, or index.html -->
120
- <script type="module">
121
- import '@helsevestikt/hviktor-icons';
122
- </script>
123
-
124
- <!-- Or using a CDN -->
125
- <script type="module" src="https://unpkg.com/@helsevestikt/hviktor-icons"></script>
126
-
127
- <!-- Then in your Razor components -->
128
- <hvi-icon-airplane size="lg"></hvi-icon-airplane>
129
- ```
130
-
131
- ### Vanilla JavaScript
132
- ```html
133
- <script type="module">
134
- import '@helsevestikt/hviktor-icons';
135
- </script>
136
-
137
- <hvi-icon-airplane size="lg"></hvi-icon-airplane>
138
- ```
139
-
140
- ## Benefits
141
-
142
- **No framework dependency** - Works everywhere
143
- ✅ **Smaller bundle size** - No Angular runtime needed
144
- ✅ **Full IntelliSense** - TypeScript declarations provide autocomplete
145
- **Type safety** - Catch errors at compile time
146
- **Better performance** - Native Web Components are fast
147
- ✅ **Future-proof** - Standard web platform APIs
148
-
149
- ## Advanced: Custom Icons
150
-
151
- You can extend the base class to create custom icons:
152
-
153
- ```typescript
154
- import { HviIconBase } from '@helsevestikt/hviktor-icons';
155
-
156
- class MyCustomIcon extends HviIconBase {
157
- protected get path(): string {
158
- return 'M12 2L2 7v10l10 5 10-5V7L12 2z';
159
- }
160
- }
161
-
162
- customElements.define('my-custom-icon', MyCustomIcon);
163
- ```
164
-
165
- ## Building for Production
166
-
167
- Build the library:
168
- ```bash
169
- npm run build
170
- ```
171
-
172
- Publish to npm:
173
- ```bash
174
- cd dist/@helsevestikt/hviktor-icons
175
- npm publish
176
- ```
1
+ # Converting to Web Components
2
+
3
+ This guide explains how to convert the Angular icon components to pure Web Components.
4
+
5
+ ## Quick Start
6
+
7
+ Run the conversion script:
8
+
9
+ ```bash
10
+ cd projects/icons
11
+ npm run convert
12
+ ```
13
+
14
+ This will:
15
+
16
+ 1. Read all existing Angular icon components
17
+ 2. Convert them to Web Component classes
18
+ 3. Generate TypeScript declarations for IntelliSense
19
+ 4. Create the main entry point that registers all components
20
+
21
+ ## What Gets Generated
22
+
23
+ ### 1. Web Component Classes (`src/lib/webcomponents/`)
24
+
25
+ Each icon gets converted to a pure Web Component:
26
+
27
+ ```typescript
28
+ export class HviIconAirplaneWebComponent extends HviIconBase {
29
+ protected get path(): string {
30
+ return 'M6.38832...'; // SVG path data
31
+ }
32
+ }
33
+
34
+ customElements.define('hvi-icon-airplane', HviIconAirplaneWebComponent);
35
+ ```
36
+
37
+ ### 2. TypeScript Declarations (`src/lib/icons.d.ts`)
38
+
39
+ Provides IntelliSense for all frameworks:
40
+
41
+ ```typescript
42
+ interface HTMLElementTagNameMap {
43
+ 'hvi-icon-airplane': HviIconAirplaneWebComponent;
44
+ // ... all other icons
45
+ }
46
+ ```
47
+
48
+ ### 3. Main Entry Point (`src/index.ts`)
49
+
50
+ Imports and registers all components:
51
+
52
+ ```typescript
53
+ import './lib/webcomponents/icon-Airplane.webcomponent';
54
+ // ... all other imports
55
+
56
+ export * from './lib/icons.d';
57
+ export { HviIconBase } from './lib/base-icon.webcomponent';
58
+ ```
59
+
60
+ ## Usage in Angular
61
+
62
+ ### 1. Install the package
63
+
64
+ ```bash
65
+ npm install @helsevestikt/hviktor-icons
66
+ ```
67
+
68
+ ### 2. Import in your app
69
+
70
+ ```typescript
71
+ // app.config.ts or main.ts
72
+ import '@helsevestikt/hviktor-icons';
73
+
74
+ export const appConfig: ApplicationConfig = {
75
+ providers: [
76
+ // ... your providers
77
+ ],
78
+ };
79
+ ```
80
+
81
+ ### 3. Add CUSTOM_ELEMENTS_SCHEMA
82
+
83
+ ```typescript
84
+ // For standalone components in app.component.ts
85
+ import { Component, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
86
+
87
+ @Component({
88
+ selector: 'app-root',
89
+ standalone: true,
90
+ schemas: [CUSTOM_ELEMENTS_SCHEMA],
91
+ // ...
92
+ })
93
+ ```
94
+
95
+ ### 4. Use in templates with full IntelliSense
96
+
97
+ ```html
98
+ <hvi-icon-airplane size="lg"></hvi-icon-airplane>
99
+ <hvi-icon-search size="md"></hvi-icon-search>
100
+ <hvi-icon-close size="sm"></hvi-icon-close>
101
+ ```
102
+
103
+ ## Usage in Other Frameworks
104
+
105
+ ### React
106
+
107
+ ```jsx
108
+ import '@helsevestikt/hviktor-icons';
109
+
110
+ function MyComponent() {
111
+ return <hvi-icon-airplane size="lg"></hvi-icon-airplane>;
112
+ }
113
+ ```
114
+
115
+ ### Vue
116
+
117
+ ```vue
118
+ <template>
119
+ <hvi-icon-airplane size="lg"></hvi-icon-airplane>
120
+ </template>
121
+
122
+ <script>
123
+ import '@helsevestikt/hviktor-icons';
124
+ </script>
125
+ ```
126
+
127
+ ### Blazor
128
+
129
+ ```html
130
+ <!-- In _Host.cshtml, _Layout.cshtml, or index.html -->
131
+ <script type="module">
132
+ import '@helsevestikt/hviktor-icons';
133
+ </script>
134
+
135
+ <!-- Or using a CDN -->
136
+ <script type="module" src="https://unpkg.com/@helsevestikt/hviktor-icons"></script>
137
+
138
+ <!-- Then in your Razor components -->
139
+ <hvi-icon-airplane size="lg"></hvi-icon-airplane>
140
+ ```
141
+
142
+ ### Vanilla JavaScript
143
+
144
+ ```html
145
+ <script type="module">
146
+ import '@helsevestikt/hviktor-icons';
147
+ </script>
148
+
149
+ <hvi-icon-airplane size="lg"></hvi-icon-airplane>
150
+ ```
151
+
152
+ ## Benefits
153
+
154
+ **No framework dependency** - Works everywhere
155
+ ✅ **Smaller bundle size** - No Angular runtime needed
156
+ **Full IntelliSense** - TypeScript declarations provide autocomplete
157
+ **Type safety** - Catch errors at compile time
158
+ **Better performance** - Native Web Components are fast
159
+ ✅ **Future-proof** - Standard web platform APIs
160
+
161
+ ## Advanced: Custom Icons
162
+
163
+ You can extend the base class to create custom icons:
164
+
165
+ ```typescript
166
+ import { HviIconBase } from '@helsevestikt/hviktor-icons';
167
+
168
+ class MyCustomIcon extends HviIconBase {
169
+ protected get path(): string {
170
+ return 'M12 2L2 7v10l10 5 10-5V7L12 2z';
171
+ }
172
+ }
173
+
174
+ customElements.define('my-custom-icon', MyCustomIcon);
175
+ ```
176
+
177
+ ## Building for Production
178
+
179
+ Build the library:
180
+
181
+ ```bash
182
+ npm run build
183
+ ```
184
+
185
+ Publish to npm:
186
+
187
+ ```bash
188
+ cd dist/@helsevestikt/hviktor-icons
189
+ npm publish
190
+ ```