@orange-halo/components 1.0.0

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 (138) hide show
  1. package/custom-elements.json +186 -0
  2. package/dist/base.d.ts +30 -0
  3. package/dist/base.d.ts.map +1 -0
  4. package/dist/base.js +78 -0
  5. package/dist/base.js.map +1 -0
  6. package/dist/index.d.ts +83 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +72 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/oh-accordion.d.ts +47 -0
  11. package/dist/oh-accordion.d.ts.map +1 -0
  12. package/dist/oh-accordion.js +387 -0
  13. package/dist/oh-accordion.js.map +1 -0
  14. package/dist/oh-alert.d.ts +48 -0
  15. package/dist/oh-alert.d.ts.map +1 -0
  16. package/dist/oh-alert.js +343 -0
  17. package/dist/oh-alert.js.map +1 -0
  18. package/dist/oh-badge.d.ts +38 -0
  19. package/dist/oh-badge.d.ts.map +1 -0
  20. package/dist/oh-badge.js +176 -0
  21. package/dist/oh-badge.js.map +1 -0
  22. package/dist/oh-breadcrumb.d.ts +39 -0
  23. package/dist/oh-breadcrumb.d.ts.map +1 -0
  24. package/dist/oh-breadcrumb.js +277 -0
  25. package/dist/oh-breadcrumb.js.map +1 -0
  26. package/dist/oh-button.d.ts +62 -0
  27. package/dist/oh-button.d.ts.map +1 -0
  28. package/dist/oh-button.figma.d.ts +2 -0
  29. package/dist/oh-button.figma.d.ts.map +1 -0
  30. package/dist/oh-button.figma.js +20 -0
  31. package/dist/oh-button.figma.js.map +1 -0
  32. package/dist/oh-button.js +490 -0
  33. package/dist/oh-button.js.map +1 -0
  34. package/dist/oh-card.d.ts +44 -0
  35. package/dist/oh-card.d.ts.map +1 -0
  36. package/dist/oh-card.js +340 -0
  37. package/dist/oh-card.js.map +1 -0
  38. package/dist/oh-checkbox-group.d.ts +39 -0
  39. package/dist/oh-checkbox-group.d.ts.map +1 -0
  40. package/dist/oh-checkbox-group.figma.d.ts +2 -0
  41. package/dist/oh-checkbox-group.figma.d.ts.map +1 -0
  42. package/dist/oh-checkbox-group.figma.js +24 -0
  43. package/dist/oh-checkbox-group.figma.js.map +1 -0
  44. package/dist/oh-checkbox-group.js +309 -0
  45. package/dist/oh-checkbox-group.js.map +1 -0
  46. package/dist/oh-checkbox.d.ts +50 -0
  47. package/dist/oh-checkbox.d.ts.map +1 -0
  48. package/dist/oh-checkbox.js +315 -0
  49. package/dist/oh-checkbox.js.map +1 -0
  50. package/dist/oh-cluster.d.ts +38 -0
  51. package/dist/oh-cluster.d.ts.map +1 -0
  52. package/dist/oh-cluster.js +141 -0
  53. package/dist/oh-cluster.js.map +1 -0
  54. package/dist/oh-container.d.ts +38 -0
  55. package/dist/oh-container.d.ts.map +1 -0
  56. package/dist/oh-container.js +116 -0
  57. package/dist/oh-container.js.map +1 -0
  58. package/dist/oh-drawer.d.ts +66 -0
  59. package/dist/oh-drawer.d.ts.map +1 -0
  60. package/dist/oh-drawer.js +284 -0
  61. package/dist/oh-drawer.js.map +1 -0
  62. package/dist/oh-footer.d.ts +40 -0
  63. package/dist/oh-footer.d.ts.map +1 -0
  64. package/dist/oh-footer.js +112 -0
  65. package/dist/oh-footer.js.map +1 -0
  66. package/dist/oh-grid.d.ts +40 -0
  67. package/dist/oh-grid.d.ts.map +1 -0
  68. package/dist/oh-grid.js +168 -0
  69. package/dist/oh-grid.js.map +1 -0
  70. package/dist/oh-hero.d.ts +28 -0
  71. package/dist/oh-hero.d.ts.map +1 -0
  72. package/dist/oh-hero.js +242 -0
  73. package/dist/oh-hero.js.map +1 -0
  74. package/dist/oh-icon.d.ts +44 -0
  75. package/dist/oh-icon.d.ts.map +1 -0
  76. package/dist/oh-icon.js +321 -0
  77. package/dist/oh-icon.js.map +1 -0
  78. package/dist/oh-input.d.ts +56 -0
  79. package/dist/oh-input.d.ts.map +1 -0
  80. package/dist/oh-input.figma.d.ts +2 -0
  81. package/dist/oh-input.figma.d.ts.map +1 -0
  82. package/dist/oh-input.figma.js +36 -0
  83. package/dist/oh-input.figma.js.map +1 -0
  84. package/dist/oh-input.js +320 -0
  85. package/dist/oh-input.js.map +1 -0
  86. package/dist/oh-link.d.ts +45 -0
  87. package/dist/oh-link.d.ts.map +1 -0
  88. package/dist/oh-link.js +392 -0
  89. package/dist/oh-link.js.map +1 -0
  90. package/dist/oh-modal.d.ts +54 -0
  91. package/dist/oh-modal.d.ts.map +1 -0
  92. package/dist/oh-modal.js +450 -0
  93. package/dist/oh-modal.js.map +1 -0
  94. package/dist/oh-navbar.d.ts +49 -0
  95. package/dist/oh-navbar.d.ts.map +1 -0
  96. package/dist/oh-navbar.js +185 -0
  97. package/dist/oh-navbar.js.map +1 -0
  98. package/dist/oh-progress.d.ts +56 -0
  99. package/dist/oh-progress.d.ts.map +1 -0
  100. package/dist/oh-progress.js +299 -0
  101. package/dist/oh-progress.js.map +1 -0
  102. package/dist/oh-radio-group.d.ts +43 -0
  103. package/dist/oh-radio-group.d.ts.map +1 -0
  104. package/dist/oh-radio-group.figma.d.ts +2 -0
  105. package/dist/oh-radio-group.figma.d.ts.map +1 -0
  106. package/dist/oh-radio-group.figma.js +22 -0
  107. package/dist/oh-radio-group.figma.js.map +1 -0
  108. package/dist/oh-radio-group.js +324 -0
  109. package/dist/oh-radio-group.js.map +1 -0
  110. package/dist/oh-radio.d.ts +50 -0
  111. package/dist/oh-radio.d.ts.map +1 -0
  112. package/dist/oh-radio.js +314 -0
  113. package/dist/oh-radio.js.map +1 -0
  114. package/dist/oh-select.d.ts +82 -0
  115. package/dist/oh-select.d.ts.map +1 -0
  116. package/dist/oh-select.js +638 -0
  117. package/dist/oh-select.js.map +1 -0
  118. package/dist/oh-skip-link.d.ts +37 -0
  119. package/dist/oh-skip-link.d.ts.map +1 -0
  120. package/dist/oh-skip-link.js +145 -0
  121. package/dist/oh-skip-link.js.map +1 -0
  122. package/dist/oh-stack.d.ts +36 -0
  123. package/dist/oh-stack.d.ts.map +1 -0
  124. package/dist/oh-stack.js +112 -0
  125. package/dist/oh-stack.js.map +1 -0
  126. package/dist/oh-tabs.d.ts +85 -0
  127. package/dist/oh-tabs.d.ts.map +1 -0
  128. package/dist/oh-tabs.js +417 -0
  129. package/dist/oh-tabs.js.map +1 -0
  130. package/dist/oh-toggle.d.ts +51 -0
  131. package/dist/oh-toggle.d.ts.map +1 -0
  132. package/dist/oh-toggle.js +219 -0
  133. package/dist/oh-toggle.js.map +1 -0
  134. package/dist/styles/typography.d.ts +15 -0
  135. package/dist/styles/typography.d.ts.map +1 -0
  136. package/dist/styles/typography.js +235 -0
  137. package/dist/styles/typography.js.map +1 -0
  138. package/package.json +140 -0
@@ -0,0 +1,28 @@
1
+ /**
2
+ * oh-hero
3
+ *
4
+ * A prominent hero section for page headers.
5
+ *
6
+ * @element oh-hero
7
+ */
8
+ import { LitElement } from "lit";
9
+ import "./oh-progress.js";
10
+ export type HeroVariant = "content" | "journey";
11
+ export type HeroSize = "sm" | "md" | "lg" | "xl";
12
+ export declare class OhHero extends LitElement {
13
+ static styles: import("lit").CSSResult;
14
+ variant: HeroVariant;
15
+ size: HeroSize;
16
+ heading: string;
17
+ subtitle: string;
18
+ journeyName: string;
19
+ currentStep: number;
20
+ totalSteps: number;
21
+ render(): import("lit").TemplateResult<1>;
22
+ }
23
+ declare global {
24
+ interface HTMLElementTagNameMap {
25
+ "oh-hero": OhHero;
26
+ }
27
+ }
28
+ //# sourceMappingURL=oh-hero.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oh-hero.d.ts","sourceRoot":"","sources":["../src/oh-hero.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAa,UAAU,EAAW,MAAM,KAAK,CAAC;AAGrD,OAAO,kBAAkB,CAAC;AAE1B,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;AAChD,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjD,qBACa,MAAO,SAAQ,UAAU;IACpC,OAAgB,MAAM,0BAgJpB;IAGF,OAAO,EAAE,WAAW,CAAa;IAGjC,IAAI,EAAE,QAAQ,CAAQ;IAGtB,OAAO,SAAM;IAGb,QAAQ,SAAM;IAGd,WAAW,SAAM;IAGjB,WAAW,SAAK;IAGhB,UAAU,SAAK;IAEN,MAAM;CA4ChB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,EAAE,MAAM,CAAC;KACnB;CACF"}
@@ -0,0 +1,242 @@
1
+ /**
2
+ * oh-hero
3
+ *
4
+ * A prominent hero section for page headers.
5
+ *
6
+ * @element oh-hero
7
+ */
8
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
9
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
10
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
11
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
12
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
13
+ };
14
+ import { html, css, LitElement, nothing } from "lit";
15
+ import { customElement, property } from "lit/decorators.js";
16
+ import "./oh-progress.js";
17
+ let OhHero = class OhHero extends LitElement {
18
+ constructor() {
19
+ super(...arguments);
20
+ this.variant = "content";
21
+ this.size = "lg";
22
+ this.heading = "";
23
+ this.subtitle = "";
24
+ this.journeyName = "";
25
+ this.currentStep = 1;
26
+ this.totalSteps = 1;
27
+ }
28
+ static { this.styles = css `
29
+ :host {
30
+ display: block;
31
+ background-color: var(--oh-color-brand-primary, #C54300);
32
+ color: var(--oh-color-text-on-brand, #FFFFFF);
33
+ font-family: var(--oh-font-family-sans, system-ui, sans-serif);
34
+ }
35
+
36
+ .hero {
37
+ padding: 48px 0;
38
+ }
39
+
40
+ .hero--journey {
41
+ padding: 32px 0;
42
+ }
43
+
44
+ /* Container styles - matches oh-container */
45
+ .hero__container {
46
+ width: 100%;
47
+ max-width: var(--hero-max-width, 1024px);
48
+ margin-left: auto;
49
+ margin-right: auto;
50
+ padding-left: var(--oh-spacing-4, 16px);
51
+ padding-right: var(--oh-spacing-4, 16px);
52
+ box-sizing: border-box;
53
+ }
54
+
55
+ /* Size variants */
56
+ :host([size="sm"]) {
57
+ --hero-max-width: 640px;
58
+ }
59
+
60
+ :host([size="md"]) {
61
+ --hero-max-width: 768px;
62
+ }
63
+
64
+ :host([size="lg"]) {
65
+ --hero-max-width: 1024px;
66
+ }
67
+
68
+ :host([size="xl"]) {
69
+ --hero-max-width: 1280px;
70
+ }
71
+
72
+ .hero__heading {
73
+ font-size: 42px;
74
+ font-weight: 700;
75
+ line-height: 1.2;
76
+ margin: 0 0 16px 0;
77
+ color: var(--oh-color-text-on-brand, #FFFFFF);
78
+ }
79
+
80
+ .hero__subtitle {
81
+ font-size: 20px;
82
+ font-weight: 400;
83
+ line-height: 1.5;
84
+ margin: 0 0 24px 0;
85
+ color: var(--oh-color-text-on-brand, #FFFFFF);
86
+ opacity: 0.85;
87
+ max-width: 65ch;
88
+ }
89
+
90
+ .hero__actions {
91
+ display: flex;
92
+ flex-wrap: wrap;
93
+ gap: 16px;
94
+ margin-top: 24px;
95
+ }
96
+
97
+ .hero__journey-heading {
98
+ font-size: 32px;
99
+ font-weight: 700;
100
+ line-height: 1.2;
101
+ margin: 0 0 24px 0;
102
+ color: var(--oh-color-text-on-brand, #FFFFFF);
103
+ }
104
+
105
+ .hero__journey-name {
106
+ display: block;
107
+ font-size: 16px;
108
+ font-weight: 500;
109
+ text-transform: uppercase;
110
+ letter-spacing: 0.05em;
111
+ color: var(--oh-color-text-on-brand, #FFFFFF);
112
+ opacity: 0.9;
113
+ margin-bottom: 8px;
114
+ }
115
+
116
+ .hero__page-name {
117
+ display: block;
118
+ }
119
+
120
+ .hero__progress-wrapper {
121
+ margin-top: 16px;
122
+ max-width: 400px;
123
+ }
124
+
125
+ /* Responsive container padding - matches oh-container */
126
+ @media (min-width: 640px) {
127
+ .hero__container {
128
+ padding-left: var(--oh-spacing-6, 24px);
129
+ padding-right: var(--oh-spacing-6, 24px);
130
+ }
131
+ }
132
+
133
+ @media (min-width: 1024px) {
134
+ .hero__container {
135
+ padding-left: var(--oh-spacing-8, 32px);
136
+ padding-right: var(--oh-spacing-8, 32px);
137
+ }
138
+ }
139
+
140
+ @media (max-width: 768px) {
141
+ .hero {
142
+ padding: 32px 0;
143
+ }
144
+ .hero__heading {
145
+ font-size: 32px;
146
+ }
147
+ .hero__subtitle {
148
+ font-size: 18px;
149
+ }
150
+ .hero--journey {
151
+ padding: 24px 0;
152
+ }
153
+ .hero__journey-heading {
154
+ font-size: 26px;
155
+ }
156
+ .hero__progress-wrapper {
157
+ max-width: 100%;
158
+ }
159
+ }
160
+
161
+ @media (max-width: 480px) {
162
+ .hero__heading {
163
+ font-size: 26px;
164
+ }
165
+ .hero__journey-heading {
166
+ font-size: 20px;
167
+ }
168
+ .hero__actions {
169
+ flex-direction: column;
170
+ }
171
+ }
172
+ `; }
173
+ render() {
174
+ if (this.variant === "journey") {
175
+ const progressLabel = `Step ${this.currentStep} of ${this.totalSteps}`;
176
+ return html `
177
+ <div class="hero hero--journey" role="banner">
178
+ <div class="hero__container">
179
+ <h1 class="hero__journey-heading">
180
+ ${this.journeyName
181
+ ? html `<span class="hero__journey-name">${this.journeyName}</span>`
182
+ : nothing}
183
+ <span class="hero__page-name">${this.heading}</span>
184
+ </h1>
185
+ <div class="hero__progress-wrapper">
186
+ <oh-progress
187
+ .value=${this.currentStep}
188
+ .max=${this.totalSteps}
189
+ label=${progressLabel}
190
+ size="md"
191
+ inverse
192
+ show-value
193
+ ></oh-progress>
194
+ </div>
195
+ <slot></slot>
196
+ </div>
197
+ </div>
198
+ `;
199
+ }
200
+ return html `
201
+ <div class="hero" role="banner">
202
+ <div class="hero__container">
203
+ ${this.heading
204
+ ? html `<h1 class="hero__heading">${this.heading}</h1>`
205
+ : nothing}
206
+ ${this.subtitle
207
+ ? html `<p class="hero__subtitle">${this.subtitle}</p>`
208
+ : nothing}
209
+ <div class="hero__actions">
210
+ <slot></slot>
211
+ </div>
212
+ </div>
213
+ </div>
214
+ `;
215
+ }
216
+ };
217
+ __decorate([
218
+ property({ type: String, reflect: true })
219
+ ], OhHero.prototype, "variant", void 0);
220
+ __decorate([
221
+ property({ type: String, reflect: true })
222
+ ], OhHero.prototype, "size", void 0);
223
+ __decorate([
224
+ property({ type: String })
225
+ ], OhHero.prototype, "heading", void 0);
226
+ __decorate([
227
+ property({ type: String })
228
+ ], OhHero.prototype, "subtitle", void 0);
229
+ __decorate([
230
+ property({ type: String, attribute: "journey-name" })
231
+ ], OhHero.prototype, "journeyName", void 0);
232
+ __decorate([
233
+ property({ type: Number, attribute: "current-step" })
234
+ ], OhHero.prototype, "currentStep", void 0);
235
+ __decorate([
236
+ property({ type: Number, attribute: "total-steps" })
237
+ ], OhHero.prototype, "totalSteps", void 0);
238
+ OhHero = __decorate([
239
+ customElement("oh-hero")
240
+ ], OhHero);
241
+ export { OhHero };
242
+ //# sourceMappingURL=oh-hero.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oh-hero.js","sourceRoot":"","sources":["../src/oh-hero.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;;;;;;;AAEH,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,kBAAkB,CAAC;AAMnB,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,UAAU;IAA/B;;QAoJL,YAAO,GAAgB,SAAS,CAAC;QAGjC,SAAI,GAAa,IAAI,CAAC;QAGtB,YAAO,GAAG,EAAE,CAAC;QAGb,aAAQ,GAAG,EAAE,CAAC;QAGd,gBAAW,GAAG,EAAE,CAAC;QAGjB,gBAAW,GAAG,CAAC,CAAC;QAGhB,eAAU,GAAG,CAAC,CAAC;IA8CjB,CAAC;aAnNiB,WAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgJ3B,AAhJqB,CAgJpB;IAuBO,MAAM;QACb,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,MAAM,aAAa,GAAG,QAAQ,IAAI,CAAC,WAAW,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;YACvE,OAAO,IAAI,CAAA;;;;gBAID,IAAI,CAAC,WAAW;gBAChB,CAAC,CAAC,IAAI,CAAA,oCAAoC,IAAI,CAAC,WAAW,SAAS;gBACnE,CAAC,CAAC,OAAO;8CACqB,IAAI,CAAC,OAAO;;;;yBAIjC,IAAI,CAAC,WAAW;uBAClB,IAAI,CAAC,UAAU;wBACd,aAAa;;;;;;;;;OAS9B,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAA;;;YAGH,IAAI,CAAC,OAAO;YACZ,CAAC,CAAC,IAAI,CAAA,6BAA6B,IAAI,CAAC,OAAO,OAAO;YACtD,CAAC,CAAC,OAAO;YACT,IAAI,CAAC,QAAQ;YACb,CAAC,CAAC,IAAI,CAAA,6BAA6B,IAAI,CAAC,QAAQ,MAAM;YACtD,CAAC,CAAC,OAAO;;;;;;KAMhB,CAAC;IACJ,CAAC;;AA/DD;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;uCACT;AAGjC;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;oCACpB;AAGtB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uCACd;AAGb;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wCACb;AAGd;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;2CACrC;AAGjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;2CACtC;AAGhB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;0CACtC;AAtKJ,MAAM;IADlB,aAAa,CAAC,SAAS,CAAC;GACZ,MAAM,CAoNlB"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * oh-icon
3
+ *
4
+ * A flexible icon component for the Orange Halo design system.
5
+ * Can render as a standalone icon or as an interactive link.
6
+ *
7
+ * DESIGN DECISIONS:
8
+ * ─────────────────
9
+ * 1. SIZE
10
+ * - Default size matches line-height (1em)
11
+ * - Size variants: sm (16px), md (20px), lg (24px), xl (32px)
12
+ *
13
+ * 2. LINK MODE
14
+ * - When `href` is provided, renders as an <a> tag
15
+ * - Includes hover/focus states
16
+ * - `label` is required for accessibility
17
+ *
18
+ * 3. ACCESSIBILITY
19
+ * - Decorative by default (aria-hidden="true")
20
+ * - Provide `label` for meaningful icons
21
+ * - When used as link, label becomes aria-label
22
+ *
23
+ * @element oh-icon
24
+ */
25
+ import { nothing } from "lit";
26
+ import { OhElement } from "./base.js";
27
+ export type IconName = "twitter" | "github" | "linkedin" | "instagram" | "youtube" | "facebook" | "email" | "substack" | "arrow-right" | "arrow-left" | "arrow-up" | "arrow-down" | "chevron-right" | "chevron-left" | "chevron-up" | "chevron-down" | "external-link" | "close" | "plus" | "minus" | "check" | "search" | "menu" | "settings" | "heart" | "sparkle" | "info" | "warning" | "error" | "success";
28
+ export type IconSize = "sm" | "md" | "lg" | "xl";
29
+ export declare class OhIcon extends OhElement {
30
+ static styles: import("lit").CSSResult[];
31
+ name: IconName;
32
+ size?: IconSize;
33
+ inverse: boolean;
34
+ label?: string;
35
+ href?: string;
36
+ target?: string;
37
+ render(): typeof nothing | import("lit").TemplateResult<1>;
38
+ }
39
+ declare global {
40
+ interface HTMLElementTagNameMap {
41
+ "oh-icon": OhIcon;
42
+ }
43
+ }
44
+ //# sourceMappingURL=oh-icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oh-icon.d.ts","sourceRoot":"","sources":["../src/oh-icon.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAa,OAAO,EAAE,MAAM,KAAK,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAc,MAAM,WAAW,CAAC;AAElD,MAAM,MAAM,QAAQ,GAEhB,SAAS,GACT,QAAQ,GACR,UAAU,GACV,WAAW,GACX,SAAS,GACT,UAAU,GACV,OAAO,GACP,UAAU,GAEV,aAAa,GACb,YAAY,GACZ,UAAU,GACV,YAAY,GACZ,eAAe,GACf,cAAc,GACd,YAAY,GACZ,cAAc,GACd,eAAe,GAEf,OAAO,GACP,MAAM,GACN,OAAO,GACP,OAAO,GACP,QAAQ,GACR,MAAM,GACN,UAAU,GACV,OAAO,GACP,SAAS,GAET,MAAM,GACN,SAAS,GACT,OAAO,GACP,SAAS,CAAC;AAEd,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAqIjD,qBACa,MAAO,SAAQ,SAAS;IACnC,OAAgB,MAAM,4BA6FpB;IAGF,IAAI,EAAE,QAAQ,CAAU;IAGxB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAGhB,OAAO,UAAS;IAGhB,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,MAAM;CA2CP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,SAAS,EAAE,MAAM,CAAC;KACnB;CACF"}
@@ -0,0 +1,321 @@
1
+ /**
2
+ * oh-icon
3
+ *
4
+ * A flexible icon component for the Orange Halo design system.
5
+ * Can render as a standalone icon or as an interactive link.
6
+ *
7
+ * DESIGN DECISIONS:
8
+ * ─────────────────
9
+ * 1. SIZE
10
+ * - Default size matches line-height (1em)
11
+ * - Size variants: sm (16px), md (20px), lg (24px), xl (32px)
12
+ *
13
+ * 2. LINK MODE
14
+ * - When `href` is provided, renders as an <a> tag
15
+ * - Includes hover/focus states
16
+ * - `label` is required for accessibility
17
+ *
18
+ * 3. ACCESSIBILITY
19
+ * - Decorative by default (aria-hidden="true")
20
+ * - Provide `label` for meaningful icons
21
+ * - When used as link, label becomes aria-label
22
+ *
23
+ * @element oh-icon
24
+ */
25
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
26
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
27
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
28
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
29
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
30
+ };
31
+ import { html, css, nothing } from "lit";
32
+ import { customElement, property } from "lit/decorators.js";
33
+ import { OhElement, baseStyles } from "./base.js";
34
+ // Icon SVG paths
35
+ const icons = {
36
+ // Social Media (24x24)
37
+ twitter: {
38
+ viewBox: "0 0 24 24",
39
+ path: `M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z`,
40
+ },
41
+ github: {
42
+ viewBox: "0 0 24 24",
43
+ path: `M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z`,
44
+ },
45
+ linkedin: {
46
+ viewBox: "0 0 24 24",
47
+ path: `M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z`,
48
+ },
49
+ instagram: {
50
+ viewBox: "0 0 24 24",
51
+ path: `M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 0C8.741 0 8.333.014 7.053.072 2.695.272.273 2.69.073 7.052.014 8.333 0 8.741 0 12c0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98C8.333 23.986 8.741 24 12 24c3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98C15.668.014 15.259 0 12 0zm0 5.838a6.162 6.162 0 100 12.324 6.162 6.162 0 000-12.324zM12 16a4 4 0 110-8 4 4 0 010 8zm6.406-11.845a1.44 1.44 0 100 2.881 1.44 1.44 0 000-2.881z`,
52
+ },
53
+ youtube: {
54
+ viewBox: "0 0 24 24",
55
+ path: `M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z`,
56
+ },
57
+ facebook: {
58
+ viewBox: "0 0 24 24",
59
+ path: `M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z`,
60
+ },
61
+ email: {
62
+ viewBox: "0 0 24 24",
63
+ path: `M1.5 8.67v8.58a3 3 0 003 3h15a3 3 0 003-3V8.67l-8.928 5.493a3 3 0 01-3.144 0L1.5 8.67z M22.5 6.908V6.75a3 3 0 00-3-3h-15a3 3 0 00-3 3v.158l9.714 5.978a1.5 1.5 0 001.572 0L22.5 6.908z`,
64
+ },
65
+ substack: {
66
+ viewBox: "0 0 24 24",
67
+ path: `M22.539 8.242H1.46V5.406h21.08v2.836zM1.46 10.812V24L12 18.11 22.54 24V10.812H1.46zM22.54 0H1.46v2.836h21.08V0z`,
68
+ },
69
+ // Navigation (20x20)
70
+ "arrow-right": {
71
+ viewBox: "0 0 20 20",
72
+ path: `M3 10a.75.75 0 01.75-.75h10.638L10.23 5.29a.75.75 0 111.04-1.08l5.5 5.25a.75.75 0 010 1.08l-5.5 5.25a.75.75 0 11-1.04-1.08l4.158-3.96H3.75A.75.75 0 013 10z`,
73
+ },
74
+ "arrow-left": {
75
+ viewBox: "0 0 20 20",
76
+ path: `M17 10a.75.75 0 00-.75-.75H5.612l4.158-3.96a.75.75 0 10-1.04-1.08l-5.5 5.25a.75.75 0 000 1.08l5.5 5.25a.75.75 0 101.04-1.08L5.612 10.75h10.638A.75.75 0 0017 10z`,
77
+ },
78
+ "arrow-up": {
79
+ viewBox: "0 0 20 20",
80
+ path: `M10 17a.75.75 0 01-.75-.75V5.612l-3.96 4.158a.75.75 0 01-1.08-1.04l5.25-5.5a.75.75 0 011.08 0l5.25 5.5a.75.75 0 11-1.08 1.04l-3.96-4.158v10.638A.75.75 0 0110 17z`,
81
+ },
82
+ "arrow-down": {
83
+ viewBox: "0 0 20 20",
84
+ path: `M10 3a.75.75 0 01.75.75v10.638l3.96-4.158a.75.75 0 111.08 1.04l-5.25 5.5a.75.75 0 01-1.08 0l-5.25-5.5a.75.75 0 111.08-1.04l3.96 4.158V3.75A.75.75 0 0110 3z`,
85
+ },
86
+ "chevron-right": {
87
+ viewBox: "0 0 20 20",
88
+ path: `M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z`,
89
+ },
90
+ "chevron-left": {
91
+ viewBox: "0 0 20 20",
92
+ path: `M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z`,
93
+ },
94
+ "chevron-up": {
95
+ viewBox: "0 0 20 20",
96
+ path: `M14.77 12.79a.75.75 0 01-1.06-.02L10 8.832 6.29 12.77a.75.75 0 01-1.08-1.04l4.25-4.5a.75.75 0 011.08 0l4.25 4.5a.75.75 0 01-.02 1.06z`,
97
+ },
98
+ "chevron-down": {
99
+ viewBox: "0 0 20 20",
100
+ path: `M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z`,
101
+ },
102
+ "external-link": {
103
+ viewBox: "0 0 20 20",
104
+ path: `M4.25 5.5a.75.75 0 00-.75.75v8.5c0 .414.336.75.75.75h8.5a.75.75 0 00.75-.75v-4a.75.75 0 011.5 0v4A2.25 2.25 0 0112.75 17h-8.5A2.25 2.25 0 012 14.75v-8.5A2.25 2.25 0 014.25 4h5a.75.75 0 010 1.5h-5zM6.194 12.753a.75.75 0 001.06.053L16.5 4.44v2.81a.75.75 0 001.5 0v-4.5a.75.75 0 00-.75-.75h-4.5a.75.75 0 000 1.5h2.553l-9.056 8.194a.75.75 0 00-.053 1.06z`,
105
+ },
106
+ // Actions (20x20)
107
+ close: {
108
+ viewBox: "0 0 20 20",
109
+ path: `M5.47 5.47a.75.75 0 011.06 0L10 8.94l3.47-3.47a.75.75 0 111.06 1.06L11.06 10l3.47 3.47a.75.75 0 11-1.06 1.06L10 11.06l-3.47 3.47a.75.75 0 01-1.06-1.06L8.94 10 5.47 6.53a.75.75 0 010-1.06z`,
110
+ },
111
+ plus: {
112
+ viewBox: "0 0 20 20",
113
+ path: `M10 3a.75.75 0 01.75.75v5.5h5.5a.75.75 0 010 1.5h-5.5v5.5a.75.75 0 01-1.5 0v-5.5h-5.5a.75.75 0 010-1.5h5.5v-5.5A.75.75 0 0110 3z`,
114
+ },
115
+ minus: {
116
+ viewBox: "0 0 20 20",
117
+ path: `M4 10a.75.75 0 01.75-.75h10.5a.75.75 0 010 1.5H4.75A.75.75 0 014 10z`,
118
+ },
119
+ check: {
120
+ viewBox: "0 0 20 20",
121
+ path: `M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z`,
122
+ },
123
+ search: {
124
+ viewBox: "0 0 20 20",
125
+ path: `M9 3.5a5.5 5.5 0 100 11 5.5 5.5 0 000-11zM2 9a7 7 0 1112.452 4.391l3.328 3.329a.75.75 0 11-1.06 1.06l-3.329-3.328A7 7 0 012 9z`,
126
+ },
127
+ menu: {
128
+ viewBox: "0 0 20 20",
129
+ path: `M2 4.75A.75.75 0 012.75 4h14.5a.75.75 0 010 1.5H2.75A.75.75 0 012 4.75zm0 5A.75.75 0 012.75 9h14.5a.75.75 0 010 1.5H2.75A.75.75 0 012 9.75zm0 5a.75.75 0 01.75-.75h14.5a.75.75 0 010 1.5H2.75a.75.75 0 01-.75-.75z`,
130
+ },
131
+ settings: {
132
+ viewBox: "0 0 20 20",
133
+ path: `M10 3.75a2 2 0 10-4 0 2 2 0 004 0zM17.25 4.5a.75.75 0 000-1.5h-5.5a.75.75 0 000 1.5h5.5zM5 3.75a.75.75 0 01-.75.75h-1.5a.75.75 0 010-1.5h1.5a.75.75 0 01.75.75zM4.25 17a.75.75 0 000-1.5h-1.5a.75.75 0 000 1.5h1.5zM17.25 17a.75.75 0 000-1.5h-5.5a.75.75 0 000 1.5h5.5zM9 10a.75.75 0 01-.75.75h-5.5a.75.75 0 010-1.5h5.5A.75.75 0 019 10zM17.25 10.75a.75.75 0 000-1.5h-1.5a.75.75 0 000 1.5h1.5zM14 10a2 2 0 10-4 0 2 2 0 004 0zM10 16.25a2 2 0 10-4 0 2 2 0 004 0z`,
134
+ },
135
+ heart: {
136
+ viewBox: "0 0 20 20",
137
+ path: `M9.653 16.915l-.005-.003-.019-.01a20.759 20.759 0 01-1.162-.682 22.045 22.045 0 01-2.582-1.9C4.045 12.733 2 10.352 2 7.5a4.5 4.5 0 018-2.828A4.5 4.5 0 0118 7.5c0 2.852-2.044 5.233-3.885 6.82a22.049 22.049 0 01-3.744 2.582l-.019.01-.005.003h-.002a.739.739 0 01-.69.001l-.002-.001z`,
138
+ },
139
+ sparkle: {
140
+ viewBox: "0 0 20 20",
141
+ path: `M10.868 2.884c-.321-.772-1.415-.772-1.736 0l-1.83 4.401-4.753.381c-.833.067-1.171 1.107-.536 1.651l3.62 3.102-1.106 4.637c-.194.813.691 1.456 1.405 1.02L10 15.591l4.069 2.485c.713.436 1.598-.207 1.404-1.02l-1.106-4.637 3.62-3.102c.635-.544.297-1.584-.536-1.65l-4.752-.382-1.831-4.401z`,
142
+ },
143
+ // Feedback (20x20)
144
+ info: {
145
+ viewBox: "0 0 20 20",
146
+ path: `M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z`,
147
+ },
148
+ warning: {
149
+ viewBox: "0 0 20 20",
150
+ path: `M8.485 2.495c.673-1.167 2.357-1.167 3.03 0l6.28 10.875c.673 1.167-.17 2.625-1.516 2.625H3.72c-1.347 0-2.189-1.458-1.515-2.625L8.485 2.495zM10 5a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 0110 5zm0 9a1 1 0 100-2 1 1 0 000 2z`,
151
+ },
152
+ error: {
153
+ viewBox: "0 0 20 20",
154
+ path: `M10 18a8 8 0 100-16 8 8 0 000 16zM8.28 7.22a.75.75 0 00-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 101.06 1.06L10 11.06l1.72 1.72a.75.75 0 101.06-1.06L11.06 10l1.72-1.72a.75.75 0 00-1.06-1.06L10 8.94 8.28 7.22z`,
155
+ },
156
+ success: {
157
+ viewBox: "0 0 20 20",
158
+ path: `M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z`,
159
+ },
160
+ };
161
+ let OhIcon = class OhIcon extends OhElement {
162
+ constructor() {
163
+ super(...arguments);
164
+ this.name = "info";
165
+ this.inverse = false;
166
+ }
167
+ static { this.styles = [
168
+ baseStyles,
169
+ css `
170
+ :host {
171
+ display: inline-flex;
172
+ align-items: center;
173
+ justify-content: center;
174
+ color: currentColor;
175
+ vertical-align: middle;
176
+ }
177
+
178
+ svg {
179
+ display: block;
180
+ fill: currentColor;
181
+ width: 1em;
182
+ height: 1em;
183
+ }
184
+
185
+ /* Sizes */
186
+ :host([size="sm"]) svg {
187
+ width: 16px;
188
+ height: 16px;
189
+ }
190
+
191
+ :host([size="md"]) svg {
192
+ width: 20px;
193
+ height: 20px;
194
+ }
195
+
196
+ :host([size="lg"]) svg {
197
+ width: 24px;
198
+ height: 24px;
199
+ }
200
+
201
+ :host([size="xl"]) svg {
202
+ width: 32px;
203
+ height: 32px;
204
+ }
205
+
206
+ /* Inverse (for dark/colored backgrounds) */
207
+ :host([inverse]) {
208
+ color: var(--oh-color-text-on-accent);
209
+ }
210
+
211
+ /* Link styles */
212
+ .icon-link {
213
+ display: inline-flex;
214
+ align-items: center;
215
+ justify-content: center;
216
+ color: inherit;
217
+ text-decoration: none;
218
+ border-radius: var(--oh-shape-radius-sm, 6px);
219
+ padding: var(--oh-spacing-2, 8px);
220
+ margin: calc(-1 * var(--oh-spacing-2, 8px));
221
+ transition:
222
+ transform var(--oh-motion-snappy, 150ms) var(--oh-motion-ease-gentle, ease),
223
+ box-shadow var(--oh-motion-snappy, 150ms) var(--oh-motion-ease-gentle, ease);
224
+ }
225
+
226
+ .icon-link:hover {
227
+ transform: translate(-2px, -2px);
228
+ box-shadow: 4px 4px 0 0 var(--oh-color-border-default);
229
+ }
230
+
231
+ .icon-link:active {
232
+ transform: translate(0, 0);
233
+ box-shadow: none;
234
+ }
235
+
236
+ .icon-link:focus {
237
+ outline: none;
238
+ }
239
+
240
+ .icon-link:focus-visible {
241
+ box-shadow: 0 0 0 2px var(--oh-color-border-focus);
242
+ }
243
+
244
+ /* Inverse link styles (for dark/colored backgrounds) */
245
+ :host([inverse]) .icon-link:hover {
246
+ box-shadow: 4px 4px 0 0 var(--oh-color-text-on-accent);
247
+ }
248
+
249
+ :host([inverse]) .icon-link:focus-visible {
250
+ box-shadow: 0 0 0 2px var(--oh-color-text-on-accent);
251
+ }
252
+
253
+ /* Reduced motion */
254
+ @media (prefers-reduced-motion: reduce) {
255
+ .icon-link {
256
+ transition: none;
257
+ }
258
+ }
259
+ `,
260
+ ]; }
261
+ render() {
262
+ const iconData = icons[this.name];
263
+ if (!iconData) {
264
+ console.warn(`[oh-icon] Unknown icon name: ${this.name}`);
265
+ return nothing;
266
+ }
267
+ const svg = html `
268
+ <svg
269
+ viewBox=${iconData.viewBox}
270
+ fill="currentColor"
271
+ aria-hidden=${this.href ? "true" : (this.label ? "false" : "true")}
272
+ role=${!this.href && this.label ? "img" : nothing}
273
+ aria-label=${!this.href && this.label ? this.label : nothing}
274
+ >
275
+ <path fill-rule="evenodd" clip-rule="evenodd" d=${iconData.path} />
276
+ </svg>
277
+ `;
278
+ // If href is provided, wrap in a link
279
+ if (this.href) {
280
+ if (!this.label) {
281
+ console.warn(`[oh-icon] When using href, label is required for accessibility`);
282
+ }
283
+ const rel = this.target === "_blank" ? "noopener noreferrer" : undefined;
284
+ return html `
285
+ <a
286
+ class="icon-link"
287
+ href=${this.href}
288
+ target=${this.target || nothing}
289
+ rel=${rel || nothing}
290
+ aria-label=${this.label || nothing}
291
+ >
292
+ ${svg}
293
+ </a>
294
+ `;
295
+ }
296
+ return svg;
297
+ }
298
+ };
299
+ __decorate([
300
+ property({ type: String })
301
+ ], OhIcon.prototype, "name", void 0);
302
+ __decorate([
303
+ property({ type: String, reflect: true })
304
+ ], OhIcon.prototype, "size", void 0);
305
+ __decorate([
306
+ property({ type: Boolean, reflect: true })
307
+ ], OhIcon.prototype, "inverse", void 0);
308
+ __decorate([
309
+ property({ type: String })
310
+ ], OhIcon.prototype, "label", void 0);
311
+ __decorate([
312
+ property({ type: String })
313
+ ], OhIcon.prototype, "href", void 0);
314
+ __decorate([
315
+ property({ type: String })
316
+ ], OhIcon.prototype, "target", void 0);
317
+ OhIcon = __decorate([
318
+ customElement("oh-icon")
319
+ ], OhIcon);
320
+ export { OhIcon };
321
+ //# sourceMappingURL=oh-icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oh-icon.js","sourceRoot":"","sources":["../src/oh-icon.ts"],"names":[],"mappings":"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"}