@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,186 @@
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "readme": "",
4
+ "modules": [
5
+ {
6
+ "kind": "javascript-module",
7
+ "path": "dist/oh-button.js",
8
+ "declarations": [
9
+ {
10
+ "kind": "class",
11
+ "description": "An accessible button component with multiple variants and sizes.",
12
+ "name": "OhButton",
13
+ "tagName": "oh-button",
14
+ "customElement": true,
15
+ "members": [
16
+ {
17
+ "kind": "field",
18
+ "name": "variant",
19
+ "type": {
20
+ "text": "'primary' | 'secondary' | 'ghost' | 'danger'"
21
+ },
22
+ "default": "'primary'",
23
+ "description": "The button variant determines its visual style",
24
+ "attribute": "variant",
25
+ "reflects": true
26
+ },
27
+ {
28
+ "kind": "field",
29
+ "name": "size",
30
+ "type": {
31
+ "text": "'sm' | 'md' | 'lg'"
32
+ },
33
+ "default": "'md'",
34
+ "description": "The button size",
35
+ "attribute": "size",
36
+ "reflects": true
37
+ },
38
+ {
39
+ "kind": "field",
40
+ "name": "disabled",
41
+ "type": {
42
+ "text": "boolean"
43
+ },
44
+ "default": "false",
45
+ "description": "Whether the button is disabled",
46
+ "attribute": "disabled",
47
+ "reflects": true
48
+ },
49
+ {
50
+ "kind": "field",
51
+ "name": "loading",
52
+ "type": {
53
+ "text": "boolean"
54
+ },
55
+ "default": "false",
56
+ "description": "Whether to show loading state",
57
+ "attribute": "loading",
58
+ "reflects": true
59
+ },
60
+ {
61
+ "kind": "field",
62
+ "name": "type",
63
+ "type": {
64
+ "text": "'button' | 'submit' | 'reset'"
65
+ },
66
+ "default": "'button'",
67
+ "description": "The button type (for form submission)",
68
+ "attribute": "type"
69
+ }
70
+ ],
71
+ "events": [
72
+ {
73
+ "description": "Emitted when the button is clicked",
74
+ "name": "oh-click"
75
+ }
76
+ ],
77
+ "attributes": [
78
+ {
79
+ "name": "variant",
80
+ "type": {
81
+ "text": "'primary' | 'secondary' | 'ghost' | 'danger'"
82
+ },
83
+ "default": "'primary'",
84
+ "description": "The button variant determines its visual style",
85
+ "fieldName": "variant"
86
+ },
87
+ {
88
+ "name": "size",
89
+ "type": {
90
+ "text": "'sm' | 'md' | 'lg'"
91
+ },
92
+ "default": "'md'",
93
+ "description": "The button size",
94
+ "fieldName": "size"
95
+ },
96
+ {
97
+ "name": "disabled",
98
+ "type": {
99
+ "text": "boolean"
100
+ },
101
+ "default": "false",
102
+ "description": "Whether the button is disabled",
103
+ "fieldName": "disabled"
104
+ },
105
+ {
106
+ "name": "loading",
107
+ "type": {
108
+ "text": "boolean"
109
+ },
110
+ "default": "false",
111
+ "description": "Whether to show loading state",
112
+ "fieldName": "loading"
113
+ },
114
+ {
115
+ "name": "type",
116
+ "type": {
117
+ "text": "'button' | 'submit' | 'reset'"
118
+ },
119
+ "default": "'button'",
120
+ "description": "The button type (for form submission)",
121
+ "fieldName": "type"
122
+ }
123
+ ],
124
+ "slots": [
125
+ {
126
+ "description": "Button content (text, icons, etc.)",
127
+ "name": ""
128
+ },
129
+ {
130
+ "description": "Content before the main slot (e.g., icon)",
131
+ "name": "prefix"
132
+ },
133
+ {
134
+ "description": "Content after the main slot (e.g., icon)",
135
+ "name": "suffix"
136
+ }
137
+ ],
138
+ "cssParts": [
139
+ {
140
+ "description": "The native button element",
141
+ "name": "button"
142
+ },
143
+ {
144
+ "description": "The content wrapper",
145
+ "name": "content"
146
+ }
147
+ ],
148
+ "cssProperties": [
149
+ {
150
+ "description": "Button background color",
151
+ "name": "--oh-button-background"
152
+ },
153
+ {
154
+ "description": "Button text color",
155
+ "name": "--oh-button-color"
156
+ },
157
+ {
158
+ "description": "Button border radius",
159
+ "name": "--oh-button-border-radius"
160
+ }
161
+ ]
162
+ }
163
+ ],
164
+ "exports": [
165
+ {
166
+ "kind": "js",
167
+ "name": "OhButton",
168
+ "declaration": {
169
+ "name": "OhButton",
170
+ "module": "dist/oh-button.js"
171
+ }
172
+ },
173
+ {
174
+ "kind": "custom-element-definition",
175
+ "name": "oh-button",
176
+ "declaration": {
177
+ "name": "OhButton",
178
+ "module": "dist/oh-button.js"
179
+ }
180
+ }
181
+ ]
182
+ }
183
+ ]
184
+ }
185
+
186
+
package/dist/base.d.ts ADDED
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Base Component
3
+ *
4
+ * Shared base class for all Orange Halo components.
5
+ * Provides common functionality and styling integration.
6
+ */
7
+ import { LitElement, CSSResult } from "lit";
8
+ /**
9
+ * Base styles applied to all components
10
+ * Includes focus ring, reduced motion, and box-sizing
11
+ */
12
+ export declare const baseStyles: CSSResult;
13
+ /**
14
+ * OhElement - Base class for Orange Halo components
15
+ */
16
+ export declare class OhElement extends LitElement {
17
+ /**
18
+ * Include base styles in all components
19
+ */
20
+ static styles: CSSResult[];
21
+ /**
22
+ * Dispatch a custom event with proper options for Shadow DOM
23
+ */
24
+ protected emit<T = unknown>(eventName: string, detail?: T, options?: Omit<CustomEventInit<T>, "detail">): boolean;
25
+ /**
26
+ * Helper to conditionally apply classes
27
+ */
28
+ protected classMap(classes: Record<string, boolean>): string;
29
+ }
30
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAO,SAAS,EAAE,MAAM,KAAK,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,SAkCxB,CAAC;AAEF;;GAEG;AACH,qBAAa,SAAU,SAAQ,UAAU;IACvC;;OAEG;IACH,MAAM,CAAC,MAAM,cAAgB;IAE7B;;OAEG;IACH,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,EACxB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,CAAC,EACV,OAAO,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,GAC3C,OAAO;IAWV;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;CAM7D"}
package/dist/base.js ADDED
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Base Component
3
+ *
4
+ * Shared base class for all Orange Halo components.
5
+ * Provides common functionality and styling integration.
6
+ */
7
+ import { LitElement, css } from "lit";
8
+ /**
9
+ * Base styles applied to all components
10
+ * Includes focus ring, reduced motion, and box-sizing
11
+ */
12
+ export const baseStyles = css `
13
+ :host {
14
+ box-sizing: border-box;
15
+ }
16
+
17
+ :host *,
18
+ :host *::before,
19
+ :host *::after {
20
+ box-sizing: inherit;
21
+ }
22
+
23
+ /* Focus ring for keyboard navigation */
24
+ :host(:focus-visible) {
25
+ outline: var(--oh-focus-ring-width, 2px) solid
26
+ var(--oh-focus-ring-color, #c54300);
27
+ outline-offset: var(--oh-focus-ring-offset, 2px);
28
+ }
29
+
30
+ /* Hide focus ring for mouse users */
31
+ :host(:focus:not(:focus-visible)) {
32
+ outline: none;
33
+ }
34
+
35
+ /* Reduced motion support */
36
+ @media (prefers-reduced-motion: reduce) {
37
+ :host *,
38
+ :host *::before,
39
+ :host *::after {
40
+ animation-duration: 0.01ms !important;
41
+ animation-iteration-count: 1 !important;
42
+ transition-duration: 0.01ms !important;
43
+ scroll-behavior: auto !important;
44
+ }
45
+ }
46
+ `;
47
+ /**
48
+ * OhElement - Base class for Orange Halo components
49
+ */
50
+ export class OhElement extends LitElement {
51
+ /**
52
+ * Include base styles in all components
53
+ */
54
+ static { this.styles = [baseStyles]; }
55
+ /**
56
+ * Dispatch a custom event with proper options for Shadow DOM
57
+ */
58
+ emit(eventName, detail, options) {
59
+ const event = new CustomEvent(eventName, {
60
+ bubbles: true,
61
+ composed: true, // Crosses shadow DOM boundary
62
+ cancelable: true,
63
+ ...options,
64
+ detail,
65
+ });
66
+ return this.dispatchEvent(event);
67
+ }
68
+ /**
69
+ * Helper to conditionally apply classes
70
+ */
71
+ classMap(classes) {
72
+ return Object.entries(classes)
73
+ .filter(([, value]) => value)
74
+ .map(([key]) => key)
75
+ .join(" ");
76
+ }
77
+ }
78
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../src/base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,GAAG,EAAa,MAAM,KAAK,CAAC;AAEjD;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAc,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCvC,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,SAAU,SAAQ,UAAU;IACvC;;OAEG;aACI,WAAM,GAAG,CAAC,UAAU,CAAC,CAAC;IAE7B;;OAEG;IACO,IAAI,CACZ,SAAiB,EACjB,MAAU,EACV,OAA4C;QAE5C,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,SAAS,EAAE;YACvC,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI,EAAE,8BAA8B;YAC9C,UAAU,EAAE,IAAI;YAChB,GAAG,OAAO;YACV,MAAM;SACP,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACO,QAAQ,CAAC,OAAgC;QACjD,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;aAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC;aAC5B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC;aACnB,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * @orange-halo/components
3
+ *
4
+ * Web Components for the Orange Halo Design System.
5
+ * All components use the "oh" prefix (e.g., <oh-button>).
6
+ *
7
+ * Personality: Playful, personal, retro-leaning warmth.
8
+ */
9
+ import "./oh-accordion.js";
10
+ import "./oh-alert.js";
11
+ import "./oh-badge.js";
12
+ import "./oh-breadcrumb.js";
13
+ import "./oh-button.js";
14
+ import "./oh-card.js";
15
+ import "./oh-checkbox.js";
16
+ import "./oh-checkbox-group.js";
17
+ import "./oh-cluster.js";
18
+ import "./oh-container.js";
19
+ import "./oh-drawer.js";
20
+ import "./oh-footer.js";
21
+ import "./oh-grid.js";
22
+ import "./oh-hero.js";
23
+ import "./oh-icon.js";
24
+ import "./oh-input.js";
25
+ import "./oh-link.js";
26
+ import "./oh-modal.js";
27
+ import "./oh-navbar.js";
28
+ import "./oh-progress.js";
29
+ import "./oh-radio-group.js";
30
+ import "./oh-select.js";
31
+ import "./oh-skip-link.js";
32
+ import "./oh-stack.js";
33
+ import "./oh-tabs.js";
34
+ import "./oh-toggle.js";
35
+ export { OhElement, baseStyles } from "./base.js";
36
+ export { OhAccordion } from "./oh-accordion.js";
37
+ export type { AccordionItem, AccordionVariant, HeadingLevel } from "./oh-accordion.js";
38
+ export { OhAlert } from "./oh-alert.js";
39
+ export type { AlertVariant } from "./oh-alert.js";
40
+ export { OhBadge } from "./oh-badge.js";
41
+ export type { BadgeVariant, BadgeType } from "./oh-badge.js";
42
+ export { OhBreadcrumb } from "./oh-breadcrumb.js";
43
+ export type { BreadcrumbItem } from "./oh-breadcrumb.js";
44
+ export { OhButton } from "./oh-button.js";
45
+ export type { ButtonVariant, ButtonSize } from "./oh-button.js";
46
+ export { OhCard } from "./oh-card.js";
47
+ export type { CardVariant, CardPadding } from "./oh-card.js";
48
+ export { OhCheckbox } from "./oh-checkbox.js";
49
+ export { OhCheckboxGroup } from "./oh-checkbox-group.js";
50
+ export type { CheckboxOption } from "./oh-checkbox-group.js";
51
+ export { OhCluster } from "./oh-cluster.js";
52
+ export type { ClusterGap, ClusterJustify, ClusterAlign } from "./oh-cluster.js";
53
+ export { OhContainer } from "./oh-container.js";
54
+ export type { ContainerSize } from "./oh-container.js";
55
+ export { OhDrawer } from "./oh-drawer.js";
56
+ export { OhFooter } from "./oh-footer.js";
57
+ export { OhGrid } from "./oh-grid.js";
58
+ export type { GridColumns, GridGap } from "./oh-grid.js";
59
+ export { OhHero } from "./oh-hero.js";
60
+ export type { HeroVariant, HeroSize } from "./oh-hero.js";
61
+ export { OhIcon } from "./oh-icon.js";
62
+ export type { IconName, IconSize } from "./oh-icon.js";
63
+ export { OhInput } from "./oh-input.js";
64
+ export type { InputType } from "./oh-input.js";
65
+ export { OhLink } from "./oh-link.js";
66
+ export type { LinkVariant } from "./oh-link.js";
67
+ export { OhModal } from "./oh-modal.js";
68
+ export type { ModalSize } from "./oh-modal.js";
69
+ export { OhNavbar } from "./oh-navbar.js";
70
+ export { OhProgress } from "./oh-progress.js";
71
+ export type { ProgressVariant, ProgressSize } from "./oh-progress.js";
72
+ export { OhRadioGroup } from "./oh-radio-group.js";
73
+ export type { RadioOption } from "./oh-radio-group.js";
74
+ export { OhSelect } from "./oh-select.js";
75
+ export type { SelectOption } from "./oh-select.js";
76
+ export { OhSkipLink } from "./oh-skip-link.js";
77
+ export { OhStack } from "./oh-stack.js";
78
+ export type { StackGap, StackAlign } from "./oh-stack.js";
79
+ export { OhTabs } from "./oh-tabs.js";
80
+ export type { TabItem } from "./oh-tabs.js";
81
+ export { OhToggle } from "./oh-toggle.js";
82
+ export { typographyStyles, typographyCSS } from "./styles/typography.js";
83
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,72 @@
1
+ /**
2
+ * @orange-halo/components
3
+ *
4
+ * Web Components for the Orange Halo Design System.
5
+ * All components use the "oh" prefix (e.g., <oh-button>).
6
+ *
7
+ * Personality: Playful, personal, retro-leaning warmth.
8
+ */
9
+ // =============================================================================
10
+ // SIDE-EFFECT IMPORTS - Ensure all custom elements are registered
11
+ // =============================================================================
12
+ import "./oh-accordion.js";
13
+ import "./oh-alert.js";
14
+ import "./oh-badge.js";
15
+ import "./oh-breadcrumb.js";
16
+ import "./oh-button.js";
17
+ import "./oh-card.js";
18
+ import "./oh-checkbox.js";
19
+ import "./oh-checkbox-group.js";
20
+ import "./oh-cluster.js";
21
+ import "./oh-container.js";
22
+ import "./oh-drawer.js";
23
+ import "./oh-footer.js";
24
+ import "./oh-grid.js";
25
+ import "./oh-hero.js";
26
+ import "./oh-icon.js";
27
+ import "./oh-input.js";
28
+ import "./oh-link.js";
29
+ import "./oh-modal.js";
30
+ import "./oh-navbar.js";
31
+ import "./oh-progress.js";
32
+ import "./oh-radio-group.js";
33
+ import "./oh-select.js";
34
+ import "./oh-skip-link.js";
35
+ import "./oh-stack.js";
36
+ import "./oh-tabs.js";
37
+ import "./oh-toggle.js";
38
+ // =============================================================================
39
+ // EXPORTS - For TypeScript users who want to extend or type components
40
+ // =============================================================================
41
+ // Base
42
+ export { OhElement, baseStyles } from "./base.js";
43
+ // Components (alphabetical order)
44
+ export { OhAccordion } from "./oh-accordion.js";
45
+ export { OhAlert } from "./oh-alert.js";
46
+ export { OhBadge } from "./oh-badge.js";
47
+ export { OhBreadcrumb } from "./oh-breadcrumb.js";
48
+ export { OhButton } from "./oh-button.js";
49
+ export { OhCard } from "./oh-card.js";
50
+ export { OhCheckbox } from "./oh-checkbox.js";
51
+ export { OhCheckboxGroup } from "./oh-checkbox-group.js";
52
+ export { OhCluster } from "./oh-cluster.js";
53
+ export { OhContainer } from "./oh-container.js";
54
+ export { OhDrawer } from "./oh-drawer.js";
55
+ export { OhFooter } from "./oh-footer.js";
56
+ export { OhGrid } from "./oh-grid.js";
57
+ export { OhHero } from "./oh-hero.js";
58
+ export { OhIcon } from "./oh-icon.js";
59
+ export { OhInput } from "./oh-input.js";
60
+ export { OhLink } from "./oh-link.js";
61
+ export { OhModal } from "./oh-modal.js";
62
+ export { OhNavbar } from "./oh-navbar.js";
63
+ export { OhProgress } from "./oh-progress.js";
64
+ export { OhRadioGroup } from "./oh-radio-group.js";
65
+ export { OhSelect } from "./oh-select.js";
66
+ export { OhSkipLink } from "./oh-skip-link.js";
67
+ export { OhStack } from "./oh-stack.js";
68
+ export { OhTabs } from "./oh-tabs.js";
69
+ export { OhToggle } from "./oh-toggle.js";
70
+ // Styles
71
+ export { typographyStyles, typographyCSS } from "./styles/typography.js";
72
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,gFAAgF;AAChF,kEAAkE;AAClE,gFAAgF;AAChF,OAAO,mBAAmB,CAAC;AAC3B,OAAO,eAAe,CAAC;AACvB,OAAO,eAAe,CAAC;AACvB,OAAO,oBAAoB,CAAC;AAC5B,OAAO,gBAAgB,CAAC;AACxB,OAAO,cAAc,CAAC;AACtB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,wBAAwB,CAAC;AAChC,OAAO,iBAAiB,CAAC;AACzB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,gBAAgB,CAAC;AACxB,OAAO,gBAAgB,CAAC;AACxB,OAAO,cAAc,CAAC;AACtB,OAAO,cAAc,CAAC;AACtB,OAAO,cAAc,CAAC;AACtB,OAAO,eAAe,CAAC;AACvB,OAAO,cAAc,CAAC;AACtB,OAAO,eAAe,CAAC;AACvB,OAAO,gBAAgB,CAAC;AACxB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,gBAAgB,CAAC;AACxB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,eAAe,CAAC;AACvB,OAAO,cAAc,CAAC;AACtB,OAAO,gBAAgB,CAAC;AAExB,gFAAgF;AAChF,uEAAuE;AACvE,gFAAgF;AAEhF,OAAO;AACP,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAElD,kCAAkC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,SAAS;AACT,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * oh-accordion
3
+ *
4
+ * Accessible accordion with two variants: subtle (inline) and standout (boxed).
5
+ *
6
+ * DESIGN DECISIONS:
7
+ * ─────────────────
8
+ * 1. TWO VARIANTS
9
+ * - Subtle: Minimal, blends with content, follows link styling rules
10
+ * - Standout: Chunky border, shadow, lifts on hover
11
+ *
12
+ * 2. CONSISTENT ICON
13
+ * - Chevron that rotates 90° when expanded
14
+ * - Same icon for both variants
15
+ *
16
+ * 3. ACCESSIBLE
17
+ * - Button trigger with aria-expanded
18
+ * - Content region with aria-hidden
19
+ * - Keyboard support (Enter/Space)
20
+ * - Focus state with underline
21
+ *
22
+ * @element oh-accordion
23
+ */
24
+ import { nothing } from "lit";
25
+ import { OhElement } from "./base.js";
26
+ export interface AccordionItem {
27
+ heading: string;
28
+ content: string;
29
+ }
30
+ export type AccordionVariant = "subtle" | "standout";
31
+ export type HeadingLevel = 2 | 3 | 4 | 5 | 6;
32
+ export declare class OhAccordion extends OhElement {
33
+ static styles: import("lit").CSSResult[];
34
+ items: AccordionItem[];
35
+ variant: AccordionVariant;
36
+ headingLevel: HeadingLevel;
37
+ private _expandedItems;
38
+ private _toggleItem;
39
+ private _isExpanded;
40
+ render(): typeof nothing | import("lit").TemplateResult<1>;
41
+ }
42
+ declare global {
43
+ interface HTMLElementTagNameMap {
44
+ "oh-accordion": OhAccordion;
45
+ }
46
+ }
47
+ //# sourceMappingURL=oh-accordion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oh-accordion.d.ts","sourceRoot":"","sources":["../src/oh-accordion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAa,OAAO,EAAE,MAAM,KAAK,CAAC;AAGzC,OAAO,EAAE,SAAS,EAAc,MAAM,WAAW,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,UAAU,CAAC;AACrD,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE7C,qBACa,WAAY,SAAQ,SAAS;IACxC,OAAgB,MAAM,4BAoQpB;IAGF,KAAK,EAAE,aAAa,EAAE,CAAM;IAG5B,OAAO,EAAE,gBAAgB,CAAY;IAIrC,YAAY,EAAE,YAAY,CAAK;IAG/B,OAAO,CAAC,cAAc,CAA0B;IAEhD,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,WAAW;IAInB,MAAM;CA2DP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,WAAW,CAAC;KAC7B;CACF"}