@adam-milo/ui 1.0.32 → 1.0.33

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 (60) hide show
  1. package/dist/index.cjs +1 -1
  2. package/dist/index.js +4 -2
  3. package/dist/index10.cjs +1 -1
  4. package/dist/index10.js +1 -1
  5. package/dist/index11.cjs +1 -1
  6. package/dist/index11.js +1 -1
  7. package/dist/index12.cjs +1 -1
  8. package/dist/index12.js +1 -1
  9. package/dist/index13.cjs +1 -1
  10. package/dist/index13.js +1 -1
  11. package/dist/index14.cjs +1 -1
  12. package/dist/index14.js +1 -1
  13. package/dist/index15.cjs +1 -1
  14. package/dist/index15.js +2 -2
  15. package/dist/index16.cjs +1 -1
  16. package/dist/index16.js +1 -1
  17. package/dist/index17.cjs +1 -1
  18. package/dist/index17.js +1 -1
  19. package/dist/index18.cjs +1 -1
  20. package/dist/index18.js +1 -1
  21. package/dist/index19.cjs +1 -1
  22. package/dist/index19.js +1 -1
  23. package/dist/index2.cjs +1 -1
  24. package/dist/index2.js +1 -1
  25. package/dist/index21.cjs +1 -1
  26. package/dist/index21.js +33 -35
  27. package/dist/index22.cjs +1 -1
  28. package/dist/index22.js +53 -12
  29. package/dist/index23.cjs +1 -0
  30. package/dist/index23.js +14 -0
  31. package/dist/index25.cjs +1 -1
  32. package/dist/index25.js +298 -13
  33. package/dist/index26.cjs +1 -0
  34. package/dist/index26.js +16 -0
  35. package/dist/index3.cjs +1 -1
  36. package/dist/index3.js +1 -1
  37. package/dist/index4.cjs +1 -1
  38. package/dist/index4.js +1 -1
  39. package/dist/index5.cjs +1 -1
  40. package/dist/index5.js +1 -1
  41. package/dist/index6.cjs +1 -1
  42. package/dist/index6.js +2 -2
  43. package/dist/index7.cjs +1 -1
  44. package/dist/index7.js +1 -1
  45. package/dist/index8.cjs +1 -1
  46. package/dist/index8.js +1 -1
  47. package/dist/index9.cjs +1 -1
  48. package/dist/index9.js +1 -1
  49. package/dist/src/components/typography/heading/Heading.component.d.ts +91 -0
  50. package/dist/src/components/typography/heading/Heading.component.d.ts.map +1 -0
  51. package/dist/src/index.d.ts +2 -0
  52. package/dist/src/index.d.ts.map +1 -1
  53. package/dist/style.css +1 -1
  54. package/package.json +1 -1
  55. package/dist/index24.cjs +0 -1
  56. package/dist/index24.js +0 -301
  57. /package/dist/{index35.cjs → index36.cjs} +0 -0
  58. /package/dist/{index35.js → index36.js} +0 -0
  59. /package/dist/{index42.cjs → index44.cjs} +0 -0
  60. /package/dist/{index42.js → index44.js} +0 -0
package/dist/index25.js CHANGED
@@ -1,16 +1,301 @@
1
- import { useCallback } from "react";
2
- function useMergedRef(...refs) {
3
- return useCallback((element) => {
4
- refs.forEach((ref) => {
5
- if (!ref) return;
6
- if (typeof ref === "function") {
7
- ref(element);
8
- } else {
9
- ref.current = element;
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { forwardRef, useState, useRef, useId, useMemo, useEffect } from "react";
3
+ import { cn } from "./index23.js";
4
+ /* empty css */
5
+ import { useMergedRef } from "./index26.js";
6
+ import { debounce } from "./index44.js";
7
+ const Input = forwardRef(
8
+ ({
9
+ type = "text",
10
+ label,
11
+ error: externalError,
12
+ helperText,
13
+ fullWidth = false,
14
+ showPasswordToggle = true,
15
+ showLastChar = true,
16
+ lastCharDelay = 500,
17
+ validate,
18
+ onValidationChange,
19
+ className,
20
+ id: providedId,
21
+ onChange,
22
+ onBlur,
23
+ required,
24
+ value: controlledValue,
25
+ "data-cy": dataCy,
26
+ "data-testid": dataTestId,
27
+ ...props
28
+ }, ref) => {
29
+ const [isPasswordVisible, setIsPasswordVisible] = useState(false);
30
+ const [internalError, setInternalError] = useState();
31
+ const [isFocused, setIsFocused] = useState(false);
32
+ const [isHovered, setIsHovered] = useState(false);
33
+ const touchedRef = useRef(false);
34
+ const [displayPassword, setDisplayPassword] = useState("");
35
+ const actualPasswordRef = useRef("");
36
+ const timeoutRef = useRef(null);
37
+ const inputRef = useRef(null);
38
+ const mergedRef = useMergedRef(ref, inputRef);
39
+ const generatedId = useId();
40
+ const id = providedId || generatedId;
41
+ const errorId = `${id}-error`;
42
+ const helperId = `${id}-helper`;
43
+ const finalDataCy = dataCy || "input";
44
+ const finalTestId = dataTestId || "input";
45
+ const isPasswordType = type === "password";
46
+ const showToggle = isPasswordType && showPasswordToggle;
47
+ const shouldEnableLastCharPreview = isPasswordType && showLastChar && !isPasswordVisible;
48
+ const inputType = isPasswordType && (isPasswordVisible || shouldEnableLastCharPreview && actualPasswordRef.current.length > 0) ? "text" : type;
49
+ const displayLabel = label && required && !label.includes("*") ? `${label} *` : label;
50
+ const togglePasswordVisibility = () => {
51
+ setIsPasswordVisible((prev) => !prev);
52
+ setTimeout(() => {
53
+ var _a;
54
+ return (_a = inputRef.current) == null ? void 0 : _a.focus();
55
+ }, 0);
56
+ };
57
+ const debouncedValidate = useMemo(
58
+ () => debounce((value) => {
59
+ if (validate && touchedRef.current) {
60
+ const validationError = validate(value);
61
+ setInternalError(validationError);
62
+ onValidationChange == null ? void 0 : onValidationChange(!validationError);
63
+ }
64
+ }, 300),
65
+ [validate, onValidationChange]
66
+ );
67
+ const debouncedValidateRef = useRef(debouncedValidate);
68
+ useEffect(() => {
69
+ debouncedValidateRef.current = debouncedValidate;
70
+ }, [debouncedValidate]);
71
+ useEffect(() => {
72
+ if (process.env.NODE_ENV === "development") {
73
+ if (isPasswordType && showLastChar && controlledValue !== void 0) {
74
+ console.warn(
75
+ "[Input] Password last character preview (showLastChar) only works in uncontrolled mode. Remove the value prop to use this feature, or set showLastChar={false}."
76
+ );
77
+ }
10
78
  }
11
- });
12
- }, refs);
13
- }
79
+ }, [isPasswordType, showLastChar, controlledValue]);
80
+ useEffect(() => {
81
+ return () => {
82
+ if (timeoutRef.current) {
83
+ clearTimeout(timeoutRef.current);
84
+ }
85
+ debouncedValidateRef.current.cancel();
86
+ };
87
+ }, []);
88
+ const inputValue = shouldEnableLastCharPreview && controlledValue === void 0 ? displayPassword : isPasswordVisible && isPasswordType && controlledValue === void 0 ? actualPasswordRef.current || "" : controlledValue;
89
+ const handleChange = (e) => {
90
+ onChange == null ? void 0 : onChange(e);
91
+ let value = e.target.value;
92
+ if (shouldEnableLastCharPreview) {
93
+ const input = e.target;
94
+ const newValue = input.value;
95
+ actualPasswordRef.current = newValue;
96
+ const masked = newValue ? "•".repeat(newValue.length - 1) + newValue.slice(-1) : "";
97
+ setDisplayPassword(masked);
98
+ input.value = masked;
99
+ value = newValue;
100
+ if (timeoutRef.current) {
101
+ clearTimeout(timeoutRef.current);
102
+ }
103
+ timeoutRef.current = setTimeout(() => {
104
+ setDisplayPassword("•".repeat(newValue.length));
105
+ }, lastCharDelay);
106
+ }
107
+ if (touchedRef.current) {
108
+ debouncedValidate(value);
109
+ }
110
+ };
111
+ const handleFocus = (e) => {
112
+ var _a;
113
+ setIsFocused(true);
114
+ (_a = props.onFocus) == null ? void 0 : _a.call(props, e);
115
+ };
116
+ const handleBlur = (e) => {
117
+ setIsFocused(false);
118
+ touchedRef.current = true;
119
+ if (validate) {
120
+ const valueToValidate = shouldEnableLastCharPreview ? actualPasswordRef.current : e.target.value;
121
+ const validationError = validate(valueToValidate);
122
+ setInternalError(validationError);
123
+ onValidationChange == null ? void 0 : onValidationChange(!validationError);
124
+ }
125
+ onBlur == null ? void 0 : onBlur(e);
126
+ };
127
+ const handleMouseEnter = () => {
128
+ setIsHovered(true);
129
+ };
130
+ const handleMouseLeave = () => {
131
+ setIsHovered(false);
132
+ };
133
+ const displayError = externalError || internalError;
134
+ const inputState = props.disabled ? "disabled" : displayError ? "error" : isFocused ? "focus" : isHovered ? "hover" : "idle";
135
+ return /* @__PURE__ */ jsxs(
136
+ "div",
137
+ {
138
+ className: cn("input-wrapper", fullWidth && "input-wrapper--full-width"),
139
+ "data-cy": `${finalDataCy}-wrapper`,
140
+ "data-testid": `${finalTestId}-wrapper`,
141
+ children: [
142
+ label && /* @__PURE__ */ jsx(
143
+ "label",
144
+ {
145
+ htmlFor: id,
146
+ className: "input__label",
147
+ "data-cy": `${finalDataCy}-label`,
148
+ "data-testid": `${finalTestId}-label`,
149
+ children: displayLabel
150
+ }
151
+ ),
152
+ /* @__PURE__ */ jsxs("div", { className: "input__field-container", children: [
153
+ /* @__PURE__ */ jsx(
154
+ "input",
155
+ {
156
+ ref: mergedRef,
157
+ id,
158
+ type: inputType,
159
+ value: inputValue,
160
+ className: cn(
161
+ "input",
162
+ displayError && "input--error",
163
+ fullWidth && "input--full-width",
164
+ showToggle && "input--with-toggle",
165
+ className
166
+ ),
167
+ "aria-invalid": displayError ? "true" : "false",
168
+ "aria-required": required ? "true" : void 0,
169
+ "aria-describedby": displayError ? errorId : helperText ? helperId : void 0,
170
+ "data-cy": finalDataCy,
171
+ "data-testid": finalTestId,
172
+ "data-state": inputState,
173
+ onChange: handleChange,
174
+ onFocus: handleFocus,
175
+ onBlur: handleBlur,
176
+ onMouseEnter: handleMouseEnter,
177
+ onMouseLeave: handleMouseLeave,
178
+ required,
179
+ ...props
180
+ }
181
+ ),
182
+ showToggle && /* @__PURE__ */ jsx(
183
+ "button",
184
+ {
185
+ type: "button",
186
+ className: "input__toggle",
187
+ onClick: togglePasswordVisibility,
188
+ "aria-label": isPasswordVisible ? "Hide password" : "Show password",
189
+ "data-cy": `${finalDataCy}-toggle`,
190
+ "data-testid": `${finalTestId}-toggle`,
191
+ children: isPasswordVisible ? /* @__PURE__ */ jsxs(
192
+ "svg",
193
+ {
194
+ width: "20",
195
+ height: "20",
196
+ viewBox: "0 0 20 20",
197
+ fill: "none",
198
+ xmlns: "http://www.w3.org/2000/svg",
199
+ "aria-hidden": "true",
200
+ children: [
201
+ /* @__PURE__ */ jsx(
202
+ "path",
203
+ {
204
+ d: "M10 4C5.5 4 2 10 2 10s3.5 6 8 6 8-6 8-6-3.5-6-8-6z",
205
+ stroke: "currentColor",
206
+ strokeWidth: "1.5",
207
+ strokeLinecap: "round",
208
+ strokeLinejoin: "round",
209
+ fill: "none"
210
+ }
211
+ ),
212
+ /* @__PURE__ */ jsx(
213
+ "circle",
214
+ {
215
+ cx: "10",
216
+ cy: "10",
217
+ r: "2.5",
218
+ stroke: "currentColor",
219
+ strokeWidth: "1.5",
220
+ fill: "none"
221
+ }
222
+ )
223
+ ]
224
+ }
225
+ ) : /* @__PURE__ */ jsxs(
226
+ "svg",
227
+ {
228
+ width: "20",
229
+ height: "20",
230
+ viewBox: "0 0 20 20",
231
+ fill: "none",
232
+ xmlns: "http://www.w3.org/2000/svg",
233
+ "aria-hidden": "true",
234
+ children: [
235
+ /* @__PURE__ */ jsx(
236
+ "path",
237
+ {
238
+ d: "M10 4C5.5 4 2 10 2 10s3.5 6 8 6 8-6 8-6-3.5-6-8-6z",
239
+ stroke: "currentColor",
240
+ strokeWidth: "1.5",
241
+ strokeLinecap: "round",
242
+ strokeLinejoin: "round",
243
+ fill: "none"
244
+ }
245
+ ),
246
+ /* @__PURE__ */ jsx(
247
+ "circle",
248
+ {
249
+ cx: "10",
250
+ cy: "10",
251
+ r: "2.5",
252
+ stroke: "currentColor",
253
+ strokeWidth: "1.5",
254
+ fill: "none"
255
+ }
256
+ ),
257
+ /* @__PURE__ */ jsx(
258
+ "path",
259
+ {
260
+ d: "M3 3l14 14",
261
+ stroke: "currentColor",
262
+ strokeWidth: "1.5",
263
+ strokeLinecap: "round"
264
+ }
265
+ )
266
+ ]
267
+ }
268
+ )
269
+ }
270
+ )
271
+ ] }),
272
+ displayError && /* @__PURE__ */ jsx(
273
+ "span",
274
+ {
275
+ id: errorId,
276
+ className: "input__error",
277
+ role: "alert",
278
+ "data-cy": `${finalDataCy}-error`,
279
+ "data-testid": `${finalTestId}-error`,
280
+ children: displayError
281
+ }
282
+ ),
283
+ helperText && !displayError && /* @__PURE__ */ jsx(
284
+ "span",
285
+ {
286
+ id: helperId,
287
+ className: "input__helper",
288
+ "data-cy": `${finalDataCy}-helper`,
289
+ "data-testid": `${finalTestId}-helper`,
290
+ children: helperText
291
+ }
292
+ )
293
+ ]
294
+ }
295
+ );
296
+ }
297
+ );
298
+ Input.displayName = "Input";
14
299
  export {
15
- useMergedRef
300
+ Input
16
301
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react");exports.useMergedRef=function(...r){return e.useCallback(e=>{r.forEach(r=>{r&&("function"==typeof r?r(e):r.current=e)})},r)};
@@ -0,0 +1,16 @@
1
+ import { useCallback } from "react";
2
+ function useMergedRef(...refs) {
3
+ return useCallback((element) => {
4
+ refs.forEach((ref) => {
5
+ if (!ref) return;
6
+ if (typeof ref === "function") {
7
+ ref(element);
8
+ } else {
9
+ ref.current = element;
10
+ }
11
+ });
12
+ }, refs);
13
+ }
14
+ export {
15
+ useMergedRef
16
+ };
package/dist/index3.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),e=require("react"),t=require("email-validator"),i=require("./index24.cjs"),l=e.forwardRef(({validateEmail:l=!0,invalidEmailMessage:r="Not a valid email address",validate:d,"data-cy":s,"data-testid":u,...n},o)=>{const m=e.useCallback(a=>{if(a)return t.validate(a)?void 0:r},[r]),c=e.useCallback(a=>l?d?m(a)||d(a):m(a):null==d?void 0:d(a),[l,d,m]);return a.jsx(i.Input,{ref:o,type:"email",validate:c,"data-cy":s||"email-input","data-testid":u||"email-input",...n})});l.displayName="EmailInput",exports.EmailInput=l;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),e=require("react"),t=require("email-validator"),i=require("./index25.cjs"),l=e.forwardRef(({validateEmail:l=!0,invalidEmailMessage:r="Not a valid email address",validate:d,"data-cy":s,"data-testid":u,...n},o)=>{const m=e.useCallback(a=>{if(a)return t.validate(a)?void 0:r},[r]),c=e.useCallback(a=>l?d?m(a)||d(a):m(a):null==d?void 0:d(a),[l,d,m]);return a.jsx(i.Input,{ref:o,type:"email",validate:c,"data-cy":s||"email-input","data-testid":u||"email-input",...n})});l.displayName="EmailInput",exports.EmailInput=l;
package/dist/index3.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { forwardRef, useCallback } from "react";
3
3
  import { validate } from "email-validator";
4
- import { Input } from "./index24.js";
4
+ import { Input } from "./index25.js";
5
5
  const EmailInput = forwardRef(
6
6
  ({
7
7
  validateEmail = true,
package/dist/index4.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("react"),s=require("./index24.cjs"),r=t.forwardRef(({showToggle:t=!0,"data-cy":r,"data-testid":a,...o},d)=>e.jsx(s.Input,{ref:d,type:"password",showPasswordToggle:t,"data-cy":r||"password-input","data-testid":a||"password-input",...o}));r.displayName="PasswordInput",exports.PasswordInput=r;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("react"),s=require("./index25.cjs"),r=t.forwardRef(({showToggle:t=!0,"data-cy":r,"data-testid":a,...o},d)=>e.jsx(s.Input,{ref:d,type:"password",showPasswordToggle:t,"data-cy":r||"password-input","data-testid":a||"password-input",...o}));r.displayName="PasswordInput",exports.PasswordInput=r;
package/dist/index4.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { forwardRef } from "react";
3
- import { Input } from "./index24.js";
3
+ import { Input } from "./index25.js";
4
4
  const PasswordInput = forwardRef(
5
5
  ({ showToggle = true, "data-cy": dataCy, "data-testid": dataTestId, ...props }, ref) => {
6
6
  return /* @__PURE__ */ jsx(
package/dist/index5.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("react"),a=require("./index24.cjs"),r=t.forwardRef(({min:r,max:i,step:s=1,allowDecimals:u=!1,validate:n,"data-cy":l,"data-testid":c,...d},o)=>{const m=t.useCallback(e=>{if(!e)return;const t=parseFloat(e);return isNaN(t)?"Please enter a valid number":u||Number.isInteger(t)?void 0!==r&&t<r?`Must be at least ${r}`:void 0!==i&&t>i?`Must be at most ${i}`:void 0:"Decimals are not allowed"},[r,i,u]),p=t.useCallback(e=>n?m(e)||n(e):m(e),[m,n]);return e.jsx(a.Input,{ref:o,type:"number",min:r,max:i,validate:p,"data-cy":l||"numeric-input","data-testid":c||"numeric-input",...d,step:u?"any":s})});r.displayName="NumericInput",exports.NumericInput=r;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("react"),a=require("./index25.cjs"),r=t.forwardRef(({min:r,max:i,step:s=1,allowDecimals:u=!1,validate:n,"data-cy":l,"data-testid":c,...d},o)=>{const m=t.useCallback(e=>{if(!e)return;const t=parseFloat(e);return isNaN(t)?"Please enter a valid number":u||Number.isInteger(t)?void 0!==r&&t<r?`Must be at least ${r}`:void 0!==i&&t>i?`Must be at most ${i}`:void 0:"Decimals are not allowed"},[r,i,u]),p=t.useCallback(e=>n?m(e)||n(e):m(e),[m,n]);return e.jsx(a.Input,{ref:o,type:"number",min:r,max:i,validate:p,"data-cy":l||"numeric-input","data-testid":c||"numeric-input",...d,step:u?"any":s})});r.displayName="NumericInput",exports.NumericInput=r;
package/dist/index5.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { forwardRef, useCallback } from "react";
3
- import { Input } from "./index24.js";
3
+ import { Input } from "./index25.js";
4
4
  const NumericInput = forwardRef(
5
5
  ({
6
6
  min,
package/dist/index6.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("react"),a=require("./index24.cjs"),n=require("./index25.cjs"),l=t.forwardRef(({allowHyphen:l=!1,allowUnderscore:r=!1,allowSpace:s=!1,minLength:u,maxLength:i,validate:c,onChange:o,"data-cy":p,"data-testid":d,...h},g)=>{const m=t.useRef(null),f=n.useMergedRef(g,m),v=t.useMemo(()=>{let e="^[a-zA-Z0-9";return l&&(e+="\\-"),r&&(e+="_"),s&&(e+=" "),e+="]*$",new RegExp(e)},[l,r,s]),x=t.useMemo(()=>{let e="[a-zA-Z0-9";return l&&(e+="\\-"),r&&(e+="_"),s&&(e+=" "),e+="]",new RegExp(e)},[l,r,s]),y=t.useCallback(e=>{if(e){if(!v.test(e)){let e="letters and numbers";const t=[];return l&&t.push("hyphens"),r&&t.push("underscores"),s&&t.push("spaces"),t.length>0&&(e+=`, ${t.join(", ")}`),`Only ${e} are allowed`}return void 0!==u&&e.length<u?`Must be at least ${u} characters`:void 0!==i&&e.length>i?`Must be at most ${i} characters`:void 0}},[v,u,i,l,r,s]),b=t.useCallback(e=>c?y(e)||c(e):y(e),[y,c]),[j,w]=t.useState(null);t.useEffect(()=>{null!==j&&m.current&&(m.current.setSelectionRange(j,j),w(null))},[h.value,j]);const R=t.useCallback(e=>{const t=e.target,a=t.value,n=t.selectionStart||0,l=a.split("").filter(e=>x.test(e)).join(""),r=n-a.slice(0,n).split("").filter(e=>!x.test(e)).length;t.value=l;void 0!==h.value?w(r):t.setSelectionRange(r,r),null==o||o(e)},[x,o,h.value]);return e.jsx(a.Input,{ref:f,type:"text",minLength:u,maxLength:i,validate:b,onChange:R,"data-cy":p||"alphanumeric-input","data-testid":d||"alphanumeric-input",...h})});l.displayName="AlphanumericInput",exports.AlphanumericInput=l;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("react"),a=require("./index25.cjs"),n=require("./index26.cjs"),l=t.forwardRef(({allowHyphen:l=!1,allowUnderscore:r=!1,allowSpace:s=!1,minLength:u,maxLength:i,validate:c,onChange:o,"data-cy":p,"data-testid":d,...h},g)=>{const m=t.useRef(null),f=n.useMergedRef(g,m),v=t.useMemo(()=>{let e="^[a-zA-Z0-9";return l&&(e+="\\-"),r&&(e+="_"),s&&(e+=" "),e+="]*$",new RegExp(e)},[l,r,s]),x=t.useMemo(()=>{let e="[a-zA-Z0-9";return l&&(e+="\\-"),r&&(e+="_"),s&&(e+=" "),e+="]",new RegExp(e)},[l,r,s]),y=t.useCallback(e=>{if(e){if(!v.test(e)){let e="letters and numbers";const t=[];return l&&t.push("hyphens"),r&&t.push("underscores"),s&&t.push("spaces"),t.length>0&&(e+=`, ${t.join(", ")}`),`Only ${e} are allowed`}return void 0!==u&&e.length<u?`Must be at least ${u} characters`:void 0!==i&&e.length>i?`Must be at most ${i} characters`:void 0}},[v,u,i,l,r,s]),b=t.useCallback(e=>c?y(e)||c(e):y(e),[y,c]),[j,w]=t.useState(null);t.useEffect(()=>{null!==j&&m.current&&(m.current.setSelectionRange(j,j),w(null))},[h.value,j]);const R=t.useCallback(e=>{const t=e.target,a=t.value,n=t.selectionStart||0,l=a.split("").filter(e=>x.test(e)).join(""),r=n-a.slice(0,n).split("").filter(e=>!x.test(e)).length;t.value=l;void 0!==h.value?w(r):t.setSelectionRange(r,r),null==o||o(e)},[x,o,h.value]);return e.jsx(a.Input,{ref:f,type:"text",minLength:u,maxLength:i,validate:b,onChange:R,"data-cy":p||"alphanumeric-input","data-testid":d||"alphanumeric-input",...h})});l.displayName="AlphanumericInput",exports.AlphanumericInput=l;
package/dist/index6.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { forwardRef, useRef, useMemo, useCallback, useState, useEffect } from "react";
3
- import { Input } from "./index24.js";
4
- import { useMergedRef } from "./index25.js";
3
+ import { Input } from "./index25.js";
4
+ import { useMergedRef } from "./index26.js";
5
5
  const AlphanumericInput = forwardRef(
6
6
  ({
7
7
  allowHyphen = false,
package/dist/index7.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("react"),a=require("./index22.cjs");;/* empty css */const c=r.forwardRef(({label:c,error:t,helperText:d,indeterminate:i=!1,className:s,id:l,required:n,disabled:o,checked:u,"data-cy":b,"data-testid":h,...x},p)=>{const k=r.useId(),m=l||k,y=`${m}-error`,_=`${m}-helper`,$=b||"checkbox",f=h||"checkbox",j=r.useRef(null),N=r.useCallback(e=>{j.current=e,p&&("function"==typeof p?p(e):"current"in p&&(p.current=e))},[p]);r.useEffect(()=>{j.current&&(j.current.indeterminate=i)},[i]);const q=c&&n&&!c.includes("*")?`${c} *`:c;return e.jsxs("div",{className:a.cn("checkbox-wrapper",o&&"checkbox-wrapper--disabled"),"data-cy":`${$}-wrapper`,"data-testid":`${f}-wrapper`,children:[e.jsxs("div",{className:"checkbox__container",children:[e.jsx("input",{ref:N,id:m,type:"checkbox",checked:u,className:a.cn("checkbox__input",t&&"checkbox__input--error",s),"aria-invalid":t?"true":"false","aria-required":n?"true":void 0,"aria-describedby":t?y:d?_:void 0,"data-cy":$,"data-testid":f,"data-indeterminate":i?"true":void 0,disabled:o,required:n,...x}),c&&e.jsx("label",{htmlFor:m,className:"checkbox__label","data-cy":`${$}-label`,"data-testid":`${f}-label`,children:q})]}),t&&e.jsx("span",{id:y,className:"checkbox__error",role:"alert","data-cy":`${$}-error`,"data-testid":`${f}-error`,children:t}),d&&!t&&e.jsx("span",{id:_,className:"checkbox__helper","data-cy":`${$}-helper`,"data-testid":`${f}-helper`,children:d})]})});c.displayName="Checkbox",exports.Checkbox=c;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("react"),a=require("./index23.cjs");;/* empty css */const c=r.forwardRef(({label:c,error:t,helperText:d,indeterminate:i=!1,className:s,id:l,required:n,disabled:o,checked:u,"data-cy":b,"data-testid":h,...x},p)=>{const k=r.useId(),m=l||k,y=`${m}-error`,_=`${m}-helper`,$=b||"checkbox",f=h||"checkbox",j=r.useRef(null),N=r.useCallback(e=>{j.current=e,p&&("function"==typeof p?p(e):"current"in p&&(p.current=e))},[p]);r.useEffect(()=>{j.current&&(j.current.indeterminate=i)},[i]);const q=c&&n&&!c.includes("*")?`${c} *`:c;return e.jsxs("div",{className:a.cn("checkbox-wrapper",o&&"checkbox-wrapper--disabled"),"data-cy":`${$}-wrapper`,"data-testid":`${f}-wrapper`,children:[e.jsxs("div",{className:"checkbox__container",children:[e.jsx("input",{ref:N,id:m,type:"checkbox",checked:u,className:a.cn("checkbox__input",t&&"checkbox__input--error",s),"aria-invalid":t?"true":"false","aria-required":n?"true":void 0,"aria-describedby":t?y:d?_:void 0,"data-cy":$,"data-testid":f,"data-indeterminate":i?"true":void 0,disabled:o,required:n,...x}),c&&e.jsx("label",{htmlFor:m,className:"checkbox__label","data-cy":`${$}-label`,"data-testid":`${f}-label`,children:q})]}),t&&e.jsx("span",{id:y,className:"checkbox__error",role:"alert","data-cy":`${$}-error`,"data-testid":`${f}-error`,children:t}),d&&!t&&e.jsx("span",{id:_,className:"checkbox__helper","data-cy":`${$}-helper`,"data-testid":`${f}-helper`,children:d})]})});c.displayName="Checkbox",exports.Checkbox=c;
package/dist/index7.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import { forwardRef, useId, useRef, useCallback, useEffect } from "react";
3
- import { cn } from "./index22.js";
3
+ import { cn } from "./index23.js";
4
4
  /* empty css */
5
5
  const Checkbox = forwardRef(
6
6
  ({
package/dist/index8.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("react"),a=require("./index22.cjs");;/* empty css */const d=r.forwardRef(({label:d,error:i,helperText:t,className:s,id:l,required:c,disabled:o,checked:n,"data-cy":p,"data-testid":u,...b},h)=>{const x=r.useId(),y=l||x,_=`${y}-error`,m=`${y}-helper`,$=p||"radio",j=u||"radio",N=r.useRef(null),f=r.useCallback(e=>{N.current=e,h&&("function"==typeof h?h(e):"current"in h&&(h.current=e))},[h]),q=d&&c&&!d.includes("*")?`${d} *`:d;return e.jsxs("div",{className:a.cn("radio-wrapper",o&&"radio-wrapper--disabled"),"data-cy":`${$}-wrapper`,"data-testid":`${j}-wrapper`,children:[e.jsxs("div",{className:"radio__container",children:[e.jsx("input",{ref:f,id:y,type:"radio",checked:n,className:a.cn("radio__input",i&&"radio__input--error",s),"aria-describedby":i?_:t?m:void 0,"data-cy":$,"data-testid":j,disabled:o,required:c,...b}),d&&e.jsx("label",{htmlFor:y,className:"radio__label","data-cy":`${$}-label`,"data-testid":`${j}-label`,children:q})]}),i&&e.jsx("span",{id:_,className:"radio__error",role:"alert","data-cy":`${$}-error`,"data-testid":`${j}-error`,children:i}),t&&!i&&e.jsx("span",{id:m,className:"radio__helper","data-cy":`${$}-helper`,"data-testid":`${j}-helper`,children:t})]})});d.displayName="Radio",exports.Radio=d;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),r=require("react"),a=require("./index23.cjs");;/* empty css */const d=r.forwardRef(({label:d,error:i,helperText:t,className:s,id:l,required:c,disabled:o,checked:n,"data-cy":p,"data-testid":u,...b},h)=>{const x=r.useId(),y=l||x,_=`${y}-error`,m=`${y}-helper`,$=p||"radio",j=u||"radio",N=r.useRef(null),f=r.useCallback(e=>{N.current=e,h&&("function"==typeof h?h(e):"current"in h&&(h.current=e))},[h]),q=d&&c&&!d.includes("*")?`${d} *`:d;return e.jsxs("div",{className:a.cn("radio-wrapper",o&&"radio-wrapper--disabled"),"data-cy":`${$}-wrapper`,"data-testid":`${j}-wrapper`,children:[e.jsxs("div",{className:"radio__container",children:[e.jsx("input",{ref:f,id:y,type:"radio",checked:n,className:a.cn("radio__input",i&&"radio__input--error",s),"aria-describedby":i?_:t?m:void 0,"data-cy":$,"data-testid":j,disabled:o,required:c,...b}),d&&e.jsx("label",{htmlFor:y,className:"radio__label","data-cy":`${$}-label`,"data-testid":`${j}-label`,children:q})]}),i&&e.jsx("span",{id:_,className:"radio__error",role:"alert","data-cy":`${$}-error`,"data-testid":`${j}-error`,children:i}),t&&!i&&e.jsx("span",{id:m,className:"radio__helper","data-cy":`${$}-helper`,"data-testid":`${j}-helper`,children:t})]})});d.displayName="Radio",exports.Radio=d;
package/dist/index8.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import { forwardRef, useId, useRef, useCallback } from "react";
3
- import { cn } from "./index22.js";
3
+ import { cn } from "./index23.js";
4
4
  /* empty css */
5
5
  const Radio = forwardRef(
6
6
  ({
package/dist/index9.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("react"),r=require("@radix-ui/react-select"),a=require("./index22.cjs");function l(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const r in e)if("default"!==r){const a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:()=>e[r]})}return t.default=e,Object.freeze(t)};/* empty css */const s=l(r),c=s.Root,d=t.forwardRef(({className:r,children:l,label:c,error:d,helperText:i,fullWidth:o=!1,hasValue:n=!1,id:p,"data-cy":f,"data-testid":g,disabled:h,required:u,...b},m)=>{const x=t.useId(),_=p||x,j=`${_}-error`,y=`${_}-helper`,N=f||"select-trigger",w=g||"select-trigger",S=n;return e.jsxs("div",{className:a.cn("select-wrapper",o&&"select-wrapper--full-width"),"data-cy":`${N}-wrapper`,"data-testid":`${w}-wrapper`,children:[e.jsxs("div",{className:"select-field",children:[e.jsxs("div",{className:"select-field__top",children:[e.jsx("div",{className:a.cn("select-field__border-left",d&&"select-field__border-left--error",S&&"select-field__border-left--floating",h&&"select-field__border-left--disabled")}),c&&S&&e.jsx("div",{className:a.cn("select-field__label-container",d&&"select-field__label-container--error"),children:e.jsx("span",{className:a.cn("select-field__label select-field__label--floating",d&&"select-field__label--error",h&&"select-field__label--disabled"),"data-cy":`${N}-label`,"data-testid":`${w}-label`,children:c})}),e.jsx("div",{className:a.cn("select-field__border-right",d&&"select-field__border-right--error",S&&"select-field__border-right--floating",h&&"select-field__border-right--disabled")})]}),e.jsxs(s.Trigger,{ref:m,id:_,className:a.cn("select-trigger",d&&"select-trigger--error",o&&"select-trigger--full-width",S&&"select-trigger--floating",r),"aria-invalid":d?"true":"false","aria-describedby":d?j:i?y:void 0,"aria-required":u?"true":void 0,"data-cy":N,"data-testid":w,disabled:h,...b,children:[c&&!S&&e.jsx("span",{className:"select-trigger__placeholder-label","data-cy":`${N}-placeholder`,"data-testid":`${w}-placeholder`,children:c}),S&&l,e.jsx(s.Icon,{className:"select-trigger__icon","data-cy":`${N}-icon`,"data-testid":`${w}-icon`,children:e.jsx("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:e.jsx("path",{d:"M7 10L12 15L17 10H7Z",fill:"currentColor"})})})]})]}),d&&e.jsx("span",{id:j,className:"select__error",role:"alert","data-cy":`${N}-error`,"data-testid":`${w}-error`,children:d}),i&&!d&&e.jsx("span",{id:y,className:"select__helper","data-cy":`${N}-helper`,"data-testid":`${w}-helper`,children:i})]})});d.displayName="SelectTrigger";const i=s.Value,o=t.forwardRef(({className:t,children:r,position:l="popper","data-cy":c,"data-testid":d,...i},o)=>{const n=c||"select-content",p=d||"select-content";return e.jsx(s.Portal,{children:e.jsx(s.Content,{ref:o,className:a.cn("select-content",t),position:l,sideOffset:8,"data-cy":n,"data-testid":p,...i,children:e.jsx(s.Viewport,{className:"select-viewport",children:r})})})});o.displayName="SelectContent";const n=t.forwardRef(({className:t,children:r,value:l,"data-cy":c,"data-testid":d,...i},o)=>{const n=c||`select-item-${l}`,p=d||`select-item-${l}`;return e.jsx(s.Item,{ref:o,className:a.cn("select-item",t),value:l,"data-cy":n,"data-testid":p,...i,children:e.jsx(s.ItemText,{children:r})})});n.displayName="SelectItem";const p=s.Group,f=t.forwardRef(({className:t,"data-cy":r,"data-testid":l,...c},d)=>{const i=r||"select-label",o=l||"select-label";return e.jsx(s.Label,{ref:d,className:a.cn("select-group-label",t),"data-cy":i,"data-testid":o,...c})});f.displayName="SelectLabel";const g=t.forwardRef(({className:t,"data-cy":r,"data-testid":l,...c},d)=>{const i=r||"select-separator",o=l||"select-separator";return e.jsx(s.Separator,{ref:d,className:a.cn("select-separator",t),"data-cy":i,"data-testid":o,...c})});g.displayName="SelectSeparator",exports.Select=c,exports.SelectContent=o,exports.SelectGroup=p,exports.SelectItem=n,exports.SelectLabel=f,exports.SelectSeparator=g,exports.SelectTrigger=d,exports.SelectValue=i;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("react"),r=require("@radix-ui/react-select"),a=require("./index23.cjs");function l(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const r in e)if("default"!==r){const a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:()=>e[r]})}return t.default=e,Object.freeze(t)};/* empty css */const s=l(r),c=s.Root,d=t.forwardRef(({className:r,children:l,label:c,error:d,helperText:i,fullWidth:o=!1,hasValue:n=!1,id:p,"data-cy":f,"data-testid":g,disabled:h,required:u,...b},m)=>{const x=t.useId(),_=p||x,j=`${_}-error`,y=`${_}-helper`,N=f||"select-trigger",w=g||"select-trigger",S=n;return e.jsxs("div",{className:a.cn("select-wrapper",o&&"select-wrapper--full-width"),"data-cy":`${N}-wrapper`,"data-testid":`${w}-wrapper`,children:[e.jsxs("div",{className:"select-field",children:[e.jsxs("div",{className:"select-field__top",children:[e.jsx("div",{className:a.cn("select-field__border-left",d&&"select-field__border-left--error",S&&"select-field__border-left--floating",h&&"select-field__border-left--disabled")}),c&&S&&e.jsx("div",{className:a.cn("select-field__label-container",d&&"select-field__label-container--error"),children:e.jsx("span",{className:a.cn("select-field__label select-field__label--floating",d&&"select-field__label--error",h&&"select-field__label--disabled"),"data-cy":`${N}-label`,"data-testid":`${w}-label`,children:c})}),e.jsx("div",{className:a.cn("select-field__border-right",d&&"select-field__border-right--error",S&&"select-field__border-right--floating",h&&"select-field__border-right--disabled")})]}),e.jsxs(s.Trigger,{ref:m,id:_,className:a.cn("select-trigger",d&&"select-trigger--error",o&&"select-trigger--full-width",S&&"select-trigger--floating",r),"aria-invalid":d?"true":"false","aria-describedby":d?j:i?y:void 0,"aria-required":u?"true":void 0,"data-cy":N,"data-testid":w,disabled:h,...b,children:[c&&!S&&e.jsx("span",{className:"select-trigger__placeholder-label","data-cy":`${N}-placeholder`,"data-testid":`${w}-placeholder`,children:c}),S&&l,e.jsx(s.Icon,{className:"select-trigger__icon","data-cy":`${N}-icon`,"data-testid":`${w}-icon`,children:e.jsx("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:e.jsx("path",{d:"M7 10L12 15L17 10H7Z",fill:"currentColor"})})})]})]}),d&&e.jsx("span",{id:j,className:"select__error",role:"alert","data-cy":`${N}-error`,"data-testid":`${w}-error`,children:d}),i&&!d&&e.jsx("span",{id:y,className:"select__helper","data-cy":`${N}-helper`,"data-testid":`${w}-helper`,children:i})]})});d.displayName="SelectTrigger";const i=s.Value,o=t.forwardRef(({className:t,children:r,position:l="popper","data-cy":c,"data-testid":d,...i},o)=>{const n=c||"select-content",p=d||"select-content";return e.jsx(s.Portal,{children:e.jsx(s.Content,{ref:o,className:a.cn("select-content",t),position:l,sideOffset:8,"data-cy":n,"data-testid":p,...i,children:e.jsx(s.Viewport,{className:"select-viewport",children:r})})})});o.displayName="SelectContent";const n=t.forwardRef(({className:t,children:r,value:l,"data-cy":c,"data-testid":d,...i},o)=>{const n=c||`select-item-${l}`,p=d||`select-item-${l}`;return e.jsx(s.Item,{ref:o,className:a.cn("select-item",t),value:l,"data-cy":n,"data-testid":p,...i,children:e.jsx(s.ItemText,{children:r})})});n.displayName="SelectItem";const p=s.Group,f=t.forwardRef(({className:t,"data-cy":r,"data-testid":l,...c},d)=>{const i=r||"select-label",o=l||"select-label";return e.jsx(s.Label,{ref:d,className:a.cn("select-group-label",t),"data-cy":i,"data-testid":o,...c})});f.displayName="SelectLabel";const g=t.forwardRef(({className:t,"data-cy":r,"data-testid":l,...c},d)=>{const i=r||"select-separator",o=l||"select-separator";return e.jsx(s.Separator,{ref:d,className:a.cn("select-separator",t),"data-cy":i,"data-testid":o,...c})});g.displayName="SelectSeparator",exports.Select=c,exports.SelectContent=o,exports.SelectGroup=p,exports.SelectItem=n,exports.SelectLabel=f,exports.SelectSeparator=g,exports.SelectTrigger=d,exports.SelectValue=i;
package/dist/index9.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import { forwardRef, useId } from "react";
3
3
  import * as SelectPrimitive from "@radix-ui/react-select";
4
- import { cn } from "./index22.js";
4
+ import { cn } from "./index23.js";
5
5
  /* empty css */
6
6
  const Select = SelectPrimitive.Root;
7
7
  const SelectTrigger = forwardRef(
@@ -0,0 +1,91 @@
1
+ import { ComponentPropsWithoutRef } from 'react';
2
+
3
+ /**
4
+ * Semantic heading level (1-6 for h1-h6)
5
+ */
6
+ export type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
7
+ /**
8
+ * Visual size variants for headings
9
+ * Decoupled from semantic level to allow styling flexibility
10
+ */
11
+ export type HeadingSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
12
+ /**
13
+ * Heading weight variants
14
+ */
15
+ export type HeadingWeight = 'medium' | 'semibold' | 'bold';
16
+ /**
17
+ * Heading alignment options
18
+ */
19
+ export type HeadingAlign = 'start' | 'center' | 'end';
20
+ /**
21
+ * Heading color variants using design token colors
22
+ */
23
+ export type HeadingColor = 'text' | 'action' | 'clickable' | 'popup' | 'error' | 'secondary' | 'system-text' | 'grey-07';
24
+ /**
25
+ * Props for the Heading component
26
+ */
27
+ export interface HeadingProps extends Omit<ComponentPropsWithoutRef<'h1'>, 'color'> {
28
+ /**
29
+ * Semantic heading level (1-6 for h1-h6)
30
+ * @default 2
31
+ */
32
+ level?: HeadingLevel;
33
+ /**
34
+ * Visual size variant (decoupled from semantic level)
35
+ * @default derived from level
36
+ */
37
+ size?: HeadingSize;
38
+ /**
39
+ * Font weight
40
+ * @default 'bold'
41
+ */
42
+ weight?: HeadingWeight;
43
+ /**
44
+ * Text color using design token colors
45
+ * @default 'text'
46
+ */
47
+ color?: HeadingColor;
48
+ /**
49
+ * Text alignment
50
+ * @default 'start'
51
+ */
52
+ align?: HeadingAlign;
53
+ /**
54
+ * Custom className for additional styling
55
+ */
56
+ className?: string;
57
+ /**
58
+ * Custom data-cy attribute for Cypress testing
59
+ */
60
+ 'data-cy'?: string;
61
+ /**
62
+ * Custom data-testid attribute for unit testing
63
+ */
64
+ 'data-testid'?: string;
65
+ /**
66
+ * Heading content
67
+ */
68
+ children?: React.ReactNode;
69
+ }
70
+ /**
71
+ * Heading component for semantic heading levels (h1-h6) with consistent styling
72
+ *
73
+ * @example
74
+ * ```tsx
75
+ * // Basic usage - renders as h2 with xl size
76
+ * <Heading>Page Title</Heading>
77
+ *
78
+ * // Specify level for semantic HTML
79
+ * <Heading level={1}>Main Heading</Heading>
80
+ *
81
+ * // Decouple visual size from semantic level
82
+ * <Heading level={3} size="xl">H3 styled as H1 size</Heading>
83
+ *
84
+ * // With weight and color
85
+ * <Heading level={2} weight="semibold" color="secondary">
86
+ * Section Title
87
+ * </Heading>
88
+ * ```
89
+ */
90
+ export declare const Heading: import('react').ForwardRefExoticComponent<HeadingProps & import('react').RefAttributes<HTMLHeadingElement>>;
91
+ //# sourceMappingURL=Heading.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Heading.component.d.ts","sourceRoot":"","sources":["../../../../../src/components/typography/heading/Heading.component.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,wBAAwB,EAAE,MAAM,OAAO,CAAC;AAClE,OAAO,eAAe,CAAC;AAEvB;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEjD;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;AAEnE;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,QAAQ,GACR,WAAW,GACX,OAAO,GACP,OAAO,GACP,WAAW,GACX,aAAa,GACb,SAAS,CAAC;AAcd;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACjF;;;OAGG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB;;;OAGG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB;;;OAGG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC;IAEvB;;;OAGG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB;;;OAGG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,OAAO,6GAkDnB,CAAC"}
@@ -36,6 +36,8 @@ export { Divider } from './components/layout/divider/Divider.component';
36
36
  export type { DividerProps } from './components/layout/divider/Divider.component';
37
37
  export { Text } from './components/typography/text/Text.component';
38
38
  export type { TextProps, TextSize, TextWeight, TextAlign, TextColor, } from './components/typography/text/Text.component';
39
+ export { Heading } from './components/typography/heading/Heading.component';
40
+ export type { HeadingProps, HeadingLevel, HeadingSize, HeadingWeight, HeadingAlign, HeadingColor, } from './components/typography/heading/Heading.component';
39
41
  export { Grid } from './components/layout/grid/Grid.component';
40
42
  export type { GridProps } from './components/layout/grid/Grid.component';
41
43
  export { cn, generateId } from './lib';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,YAAY,EAAE,WAAW,EAAE,MAAM,2CAA2C,CAAC;AAE7E,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC7E,YAAY,EACV,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,GACV,MAAM,uCAAuC,CAAC;AAG/C,OAAO,EAAE,UAAU,EAAE,MAAM,qDAAqD,CAAC;AACjF,YAAY,EAAE,eAAe,EAAE,MAAM,qDAAqD,CAAC;AAE3F,OAAO,EAAE,aAAa,EAAE,MAAM,2DAA2D,CAAC;AAC1F,YAAY,EAAE,kBAAkB,EAAE,MAAM,2DAA2D,CAAC;AAEpG,OAAO,EAAE,YAAY,EAAE,MAAM,yDAAyD,CAAC;AACvF,YAAY,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAC;AAEjG,OAAO,EAAE,iBAAiB,EAAE,MAAM,mEAAmE,CAAC;AACtG,YAAY,EAAE,sBAAsB,EAAE,MAAM,mEAAmE,CAAC;AAEhH,OAAO,EAAE,QAAQ,EAAE,MAAM,gDAAgD,CAAC;AAC1E,YAAY,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAEpF,OAAO,EAAE,KAAK,EAAE,MAAM,0CAA0C,CAAC;AACjE,YAAY,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAE3E,OAAO,EACL,MAAM,EACN,aAAa,EACb,aAAa,EACb,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,eAAe,GAChB,MAAM,4CAA4C,CAAC;AACpD,YAAY,EACV,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,4CAA4C,CAAC;AAGpD,OAAO,EACL,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,WAAW,GACZ,MAAM,6CAA6C,CAAC;AAGrD,OAAO,EAAE,KAAK,EAAE,MAAM,6CAA6C,CAAC;AACpE,YAAY,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAC;AAG9E,OAAO,EACL,IAAI,EACJ,UAAU,EACV,SAAS,EACT,eAAe,EACf,WAAW,EACX,UAAU,GACX,MAAM,+CAA+C,CAAC;AACvD,YAAY,EACV,SAAS,EACT,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,GAChB,MAAM,+CAA+C,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,yDAAyD,CAAC;AACpF,YAAY,EACV,cAAc,EACd,eAAe,GAChB,MAAM,yDAAyD,CAAC;AAEjE,OAAO,EAAE,IAAI,EAAE,MAAM,+CAA+C,CAAC;AACrE,YAAY,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAE/E,OAAO,EAAE,SAAS,EAAE,MAAM,0DAA0D,CAAC;AACrF,YAAY,EACV,cAAc,EACd,aAAa,GACd,MAAM,0DAA0D,CAAC;AAGlE,OAAO,EACL,MAAM,EACN,aAAa,EACb,aAAa,EACb,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,aAAa,GACd,MAAM,+CAA+C,CAAC;AAGvD,OAAO,EAAE,KAAK,EAAE,MAAM,2CAA2C,CAAC;AAClE,YAAY,EAAE,UAAU,EAAE,MAAM,2CAA2C,CAAC;AAE5E,OAAO,EAAE,SAAS,EAAE,MAAM,mDAAmD,CAAC;AAC9E,YAAY,EAAE,cAAc,EAAE,MAAM,mDAAmD,CAAC;AAExF,OAAO,EAAE,OAAO,EAAE,MAAM,+CAA+C,CAAC;AACxE,YAAY,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAC;AAGlF,OAAO,EAAE,IAAI,EAAE,MAAM,6CAA6C,CAAC;AACnE,YAAY,EACV,SAAS,EACT,QAAQ,EACR,UAAU,EACV,SAAS,EACT,SAAS,GACV,MAAM,6CAA6C,CAAC;AAErD,OAAO,EAAE,IAAI,EAAE,MAAM,yCAAyC,CAAC;AAC/D,YAAY,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGzE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}