@iit/precision-ui 0.3.0 → 0.4.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 (94) hide show
  1. package/dist/components/core/typography/Heading.d.ts +1 -0
  2. package/dist/components/core/typography/Heading.d.ts.map +1 -1
  3. package/dist/components/ui/form.d.ts +24 -0
  4. package/dist/components/ui/form.d.ts.map +1 -0
  5. package/dist/components/ui/textarea/Textarea.d.ts +10 -0
  6. package/dist/components/ui/textarea/Textarea.d.ts.map +1 -0
  7. package/dist/components/ui/textarea/TextareaWithLabel.d.ts +11 -0
  8. package/dist/components/ui/textarea/TextareaWithLabel.d.ts.map +1 -0
  9. package/dist/components/ui/textarea/index.d.ts +5 -0
  10. package/dist/components/ui/textarea/index.d.ts.map +1 -0
  11. package/dist/index.d.ts +5 -0
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.es.js +55 -41
  14. package/dist/index.es.js.map +1 -1
  15. package/dist/index.es10.js +1 -1
  16. package/dist/index.es11.js +1 -1
  17. package/dist/index.es12.js +1 -1
  18. package/dist/index.es13.js +27 -24
  19. package/dist/index.es13.js.map +1 -1
  20. package/dist/index.es14.js +28 -73
  21. package/dist/index.es14.js.map +1 -1
  22. package/dist/index.es15.js +15 -23
  23. package/dist/index.es15.js.map +1 -1
  24. package/dist/index.es16.js +24 -31
  25. package/dist/index.es16.js.map +1 -1
  26. package/dist/index.es17.js +71 -28
  27. package/dist/index.es17.js.map +1 -1
  28. package/dist/index.es18.js +33 -26
  29. package/dist/index.es18.js.map +1 -1
  30. package/dist/index.es19.js +25 -176
  31. package/dist/index.es19.js.map +1 -1
  32. package/dist/index.es2.js +1 -1
  33. package/dist/index.es20.js +29 -51
  34. package/dist/index.es20.js.map +1 -1
  35. package/dist/index.es21.js +25 -54
  36. package/dist/index.es21.js.map +1 -1
  37. package/dist/index.es22.js +178 -54
  38. package/dist/index.es22.js.map +1 -1
  39. package/dist/index.es23.js +50 -17
  40. package/dist/index.es23.js.map +1 -1
  41. package/dist/index.es24.js +56 -18
  42. package/dist/index.es24.js.map +1 -1
  43. package/dist/index.es25.js +59 -6
  44. package/dist/index.es25.js.map +1 -1
  45. package/dist/index.es26.js +19 -21
  46. package/dist/index.es26.js.map +1 -1
  47. package/dist/index.es27.js +18 -26
  48. package/dist/index.es27.js.map +1 -1
  49. package/dist/index.es28.js +87 -19
  50. package/dist/index.es28.js.map +1 -1
  51. package/dist/index.es29.js +6 -20
  52. package/dist/index.es29.js.map +1 -1
  53. package/dist/index.es3.js +2 -2
  54. package/dist/index.es30.js +22 -11
  55. package/dist/index.es30.js.map +1 -1
  56. package/dist/index.es31.js +19 -84
  57. package/dist/index.es31.js.map +1 -1
  58. package/dist/index.es32.js +20 -19
  59. package/dist/index.es32.js.map +1 -1
  60. package/dist/index.es33.js +11 -46
  61. package/dist/index.es33.js.map +1 -1
  62. package/dist/index.es34.js +81 -41
  63. package/dist/index.es34.js.map +1 -1
  64. package/dist/index.es35.js +15 -33
  65. package/dist/index.es35.js.map +1 -1
  66. package/dist/index.es36.js +38 -48
  67. package/dist/index.es36.js.map +1 -1
  68. package/dist/index.es37.js +37 -84
  69. package/dist/index.es37.js.map +1 -1
  70. package/dist/index.es38.js +35 -96
  71. package/dist/index.es38.js.map +1 -1
  72. package/dist/index.es39.js +50 -21
  73. package/dist/index.es39.js.map +1 -1
  74. package/dist/index.es4.js +1 -1
  75. package/dist/index.es40.js +83 -36
  76. package/dist/index.es40.js.map +1 -1
  77. package/dist/index.es41.js +87 -211
  78. package/dist/index.es41.js.map +1 -1
  79. package/dist/index.es42.js +27 -16
  80. package/dist/index.es42.js.map +1 -1
  81. package/dist/index.es43.js +45 -4
  82. package/dist/index.es43.js.map +1 -1
  83. package/dist/index.es44.js +19 -0
  84. package/dist/index.es44.js.map +1 -0
  85. package/dist/index.es45.js +225 -0
  86. package/dist/index.es45.js.map +1 -0
  87. package/dist/index.es46.js +7 -0
  88. package/dist/index.es46.js.map +1 -0
  89. package/dist/index.es5.js +1 -1
  90. package/dist/index.es6.js +1 -1
  91. package/dist/index.es7.js +1 -1
  92. package/dist/index.es8.js +1 -1
  93. package/dist/styles.css +3 -0
  94. package/package.json +18 -4
@@ -5,6 +5,7 @@ interface HeadingProps {
5
5
  as?: ElementType;
6
6
  className?: string;
7
7
  children: ReactNode;
8
+ id?: string;
8
9
  }
9
10
  declare const Heading: React.ForwardRefExoticComponent<HeadingProps & React.RefAttributes<HTMLHeadingElement>>;
10
11
  export default Heading;
@@ -1 +1 @@
1
- {"version":3,"file":"Heading.d.ts","sourceRoot":"","sources":["../../../../src/components/core/typography/Heading.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAc,MAAM,OAAO,CAAC;AAIlE,UAAU,YAAY;IACpB,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,EAAE,CAAC,EAAE,WAAW,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,QAAA,MAAM,OAAO,yFAeZ,CAAC;AAIF,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"Heading.d.ts","sourceRoot":"","sources":["../../../../src/components/core/typography/Heading.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAc,MAAM,OAAO,CAAC;AAIlE,UAAU,YAAY;IACpB,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,EAAE,CAAC,EAAE,WAAW,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,QAAA,MAAM,OAAO,yFAgBZ,CAAC;AAIF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { ControllerProps, FieldPath, FieldValues } from 'react-hook-form';
2
+ import * as LabelPrimitive from '@radix-ui/react-label';
3
+ import * as React from 'react';
4
+ declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues extends FieldValues | undefined = undefined>(props: import('react-hook-form').FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
5
+ declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ ...props }: ControllerProps<TFieldValues, TName>) => import("react/jsx-dev-runtime").JSX.Element;
6
+ declare const useFormField: () => {
7
+ invalid: boolean;
8
+ isDirty: boolean;
9
+ isTouched: boolean;
10
+ isValidating: boolean;
11
+ error?: import('react-hook-form').FieldError | undefined;
12
+ id: string;
13
+ name: string;
14
+ formItemId: string;
15
+ formDescriptionId: string;
16
+ formMessageId: string;
17
+ };
18
+ declare const FormItem: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
19
+ declare const FormLabel: React.ForwardRefExoticComponent<Omit<LabelPrimitive.LabelProps & React.RefAttributes<HTMLLabelElement>, "ref"> & React.RefAttributes<HTMLLabelElement>>;
20
+ declare const FormControl: React.ForwardRefExoticComponent<Omit<import('@radix-ui/react-slot').SlotProps & React.RefAttributes<HTMLElement>, "ref"> & React.RefAttributes<HTMLElement>>;
21
+ declare const FormDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
22
+ declare const FormMessage: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLParagraphElement> & React.RefAttributes<HTMLParagraphElement>>;
23
+ export { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, FormField, };
24
+ //# sourceMappingURL=form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../../src/components/ui/form.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAA;AACvD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAEL,eAAe,EACf,SAAS,EACT,WAAW,EAGZ,MAAM,iBAAiB,CAAA;AAMxB,QAAA,MAAM,IAAI,yOAAe,CAAA;AAazB,QAAA,MAAM,SAAS,kIAKZ,gBAAgB,YAAY,EAAE,KAAK,CAAC,gDAMtC,CAAA;AAED,QAAA,MAAM,YAAY;;;;;;;;;;;CAqBjB,CAAA;AAUD,QAAA,MAAM,QAAQ,6GAWZ,CAAA;AAGF,QAAA,MAAM,SAAS,yJAcb,CAAA;AAGF,QAAA,MAAM,WAAW,8JAmBf,CAAA;AAGF,QAAA,MAAM,eAAe,yHAcnB,CAAA;AAGF,QAAA,MAAM,WAAW,yHAqBf,CAAA;AAGF,OAAO,EACL,YAAY,EACZ,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,WAAW,EACX,eAAe,EACf,WAAW,EACX,SAAS,GACV,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import * as React from 'react';
3
+ declare const textareaVariants: (props?: ({
4
+ variant?: "default" | "blue" | null | undefined;
5
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
+ export interface TextareaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement>, VariantProps<typeof textareaVariants> {
7
+ }
8
+ declare const Textarea: React.ForwardRefExoticComponent<TextareaProps & React.RefAttributes<HTMLTextAreaElement>>;
9
+ export { Textarea };
10
+ //# sourceMappingURL=Textarea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Textarea.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/textarea/Textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,YAAY,EAAO,MAAM,0BAA0B,CAAA;AAI5D,QAAA,MAAM,gBAAgB;;8EAcrB,CAAA;AAED,MAAM,WAAW,aACf,SAAQ,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EACvD,YAAY,CAAC,OAAO,gBAAgB,CAAC;CAExC;AAED,QAAA,MAAM,QAAQ,2FAUb,CAAA;AAGD,OAAO,EAAE,QAAQ,EAAE,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { InputVariant } from '../input/types';
2
+
3
+ interface TextareaWithLabelProps {
4
+ variant?: InputVariant;
5
+ label?: string;
6
+ id?: string;
7
+ className?: string;
8
+ }
9
+ export declare function TextareaWithLabel({ id, variant, label, className, }: TextareaWithLabelProps): import("react/jsx-dev-runtime").JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=TextareaWithLabel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextareaWithLabel.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/textarea/TextareaWithLabel.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAK7C,UAAU,sBAAsB;IAC9B,OAAO,CAAC,EAAE,YAAY,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,iBAAiB,CAAC,EAChC,EAAE,EACF,OAAmB,EACnB,KAAK,EACL,SAAS,GACV,EAAE,sBAAsB,+CA8BxB"}
@@ -0,0 +1,5 @@
1
+ import { Textarea } from './Textarea';
2
+ import { TextareaWithLabel } from './TextareaWithLabel';
3
+
4
+ export { Textarea, TextareaWithLabel };
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/ui/textarea/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAA"}
package/dist/index.d.ts CHANGED
@@ -8,6 +8,8 @@ import { default as AppLink } from './components/ui/Link';
8
8
  import { registerAdapter } from './Adapters';
9
9
  import { Input } from './components/ui/input/Input';
10
10
  import { InputWithLabel } from './components/ui/input/InputWithLabel';
11
+ import { Textarea, TextareaWithLabel } from './components/ui/textarea';
12
+ import { Label } from './components/ui/label';
11
13
  import { default as Informer } from './components/Informer';
12
14
  import { default as SafeHtmlRenderer } from './components/SafeHtml';
13
15
  import { Checkbox, CheckboxWithLabel } from './components/ui/checkbox';
@@ -30,6 +32,8 @@ export { ButtonUnique, type ButtonUniqueProps };
30
32
  export { AppLink };
31
33
  export { registerAdapter };
32
34
  export { Input, InputWithLabel };
35
+ export { Textarea, TextareaWithLabel };
36
+ export { Label };
33
37
  export { Informer };
34
38
  export { SafeHtmlRenderer };
35
39
  export { Checkbox, CheckboxWithLabel };
@@ -40,4 +44,5 @@ export { Partners };
40
44
  export { Section };
41
45
  export { CardsGridSection };
42
46
  export { Heading, Text };
47
+ export { useFormField, Form, FormItem, FormLabel, FormControl, FormDescription, FormMessage, } from './components/ui/form';
43
48
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,UAAU,EAAE,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAA;AAC/E,OAAO,aAAa,EAAE,EACpB,KAAK,kBAAkB,EACxB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,eAAe,EAAE,EACtB,KAAK,oBAAoB,EAC1B,MAAM,wCAAwC,CAAA;AAC/C,OAAO,UAAU,EAAE,EACjB,KAAK,eAAe,EACrB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,YAAY,EAAE,EACnB,KAAK,iBAAiB,EACvB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,OAAO,MAAM,sBAAsB,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAG5C,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAE3E,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,CAAA;AACnC,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,CAAA;AACjD,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,CAAA;AAE/C,OAAO,EAAE,OAAO,EAAE,CAAA;AAElB,OAAO,EAAE,eAAe,EAAE,CAAA;AAG1B,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AACrE,OAAO,QAAQ,MAAM,uBAAuB,CAAA;AAC5C,OAAO,gBAAgB,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AAEzC,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,CAAA;AAChC,OAAO,EAAE,QAAQ,EAAE,CAAA;AACnB,OAAO,EAAE,gBAAgB,EAAE,CAAA;AAC3B,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAA;AACtC,OAAO,EAAE,GAAG,EAAE,CAAA;AAId,OAAO,GAAG,MAAM,gBAAgB,CAAA;AAChC,OAAO,IAAI,MAAM,iBAAiB,CAAA;AAClC,OAAO,QAAQ,MAAM,qBAAqB,CAAA;AAC1C,OAAO,OAAO,MAAM,oBAAoB,CAAA;AACxC,OAAO,gBAAgB,MAAM,6BAA6B,CAAA;AAE1D,OAAO,EAAE,GAAG,EAAE,CAAA;AACd,OAAO,EAAE,IAAI,EAAE,CAAA;AACf,OAAO,EAAE,QAAQ,EAAE,CAAA;AACnB,OAAO,EAAE,OAAO,EAAE,CAAA;AAClB,OAAO,EAAE,gBAAgB,EAAE,CAAA;AAE3B,OAAO,OAAO,MAAM,sCAAsC,CAAA;AAC1D,OAAO,IAAI,MAAM,mCAAmC,CAAA;AAEpD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.es.js CHANGED
@@ -1,51 +1,65 @@
1
- import { Button as e } from "./index.es2.js";
1
+ import { Button as o } from "./index.es2.js";
2
2
  import { default as a } from "./index.es3.js";
3
- import { default as p } from "./index.es4.js";
4
- import { default as m } from "./index.es5.js";
5
- import { default as l } from "./index.es6.js";
6
- import { default as n } from "./index.es7.js";
3
+ import { default as m } from "./index.es4.js";
4
+ import { default as x } from "./index.es5.js";
5
+ import { default as u } from "./index.es6.js";
6
+ import { default as d } from "./index.es7.js";
7
7
  import { default as i } from "./index.es8.js";
8
- import { registerAdapter as A } from "./index.es9.js";
9
- import { Alert as T, AlertDescription as b, AlertTitle as h } from "./index.es10.js";
10
- import { Input as I } from "./index.es11.js";
11
- import { InputWithLabel as g } from "./index.es12.js";
12
- import { default as H } from "./index.es13.js";
13
- import { default as y } from "./index.es14.js";
14
- import { Checkbox as W } from "./index.es15.js";
15
- import { CheckboxWithLabel as D } from "./index.es16.js";
16
- import { Tag as R } from "./index.es17.js";
17
- import { default as j } from "./index.es18.js";
18
- import { default as w } from "./index.es19.js";
19
- import { default as E } from "./index.es20.js";
20
- import { default as J } from "./index.es21.js";
21
- import { default as M } from "./index.es22.js";
8
+ import { registerAdapter as F } from "./index.es9.js";
9
+ import { Alert as T, AlertDescription as A, AlertTitle as B } from "./index.es10.js";
10
+ import { Input as h } from "./index.es11.js";
11
+ import { InputWithLabel as I } from "./index.es12.js";
12
+ import { Textarea as S } from "./index.es13.js";
13
+ import { TextareaWithLabel as H } from "./index.es14.js";
14
+ import { Label as y } from "./index.es15.js";
15
+ import { default as P } from "./index.es16.js";
16
+ import { default as G } from "./index.es17.js";
17
+ import { Checkbox as R } from "./index.es18.js";
18
+ import { CheckboxWithLabel as j } from "./index.es19.js";
19
+ import { Tag as w } from "./index.es20.js";
20
+ import { default as E } from "./index.es21.js";
21
+ import { default as K } from "./index.es22.js";
22
22
  import { default as O } from "./index.es23.js";
23
23
  import { default as V } from "./index.es24.js";
24
+ import { default as Y } from "./index.es25.js";
25
+ import { default as _ } from "./index.es26.js";
26
+ import { default as rr } from "./index.es27.js";
27
+ import { Form as or, FormControl as tr, FormDescription as ar, FormItem as fr, FormLabel as mr, FormMessage as pr, useFormField as xr } from "./index.es28.js";
24
28
  export {
25
29
  T as Alert,
26
- b as AlertDescription,
27
- h as AlertTitle,
30
+ A as AlertDescription,
31
+ B as AlertTitle,
28
32
  i as AppLink,
29
- e as Button,
33
+ o as Button,
30
34
  a as ButtonIcon,
31
- p as ButtonPrimary,
32
- m as ButtonSecondary,
33
- l as ButtonText,
34
- n as ButtonUnique,
35
- j as CTA,
36
- M as CardsGridSection,
37
- W as Checkbox,
38
- D as CheckboxWithLabel,
39
- O as Heading,
40
- w as Hero,
41
- H as Informer,
42
- I as Input,
43
- g as InputWithLabel,
44
- E as Partners,
45
- y as SafeHtmlRenderer,
46
- J as Section,
47
- R as Tag,
48
- V as Text,
49
- A as registerAdapter
35
+ m as ButtonPrimary,
36
+ x as ButtonSecondary,
37
+ u as ButtonText,
38
+ d as ButtonUnique,
39
+ E as CTA,
40
+ Y as CardsGridSection,
41
+ R as Checkbox,
42
+ j as CheckboxWithLabel,
43
+ or as Form,
44
+ tr as FormControl,
45
+ ar as FormDescription,
46
+ fr as FormItem,
47
+ mr as FormLabel,
48
+ pr as FormMessage,
49
+ _ as Heading,
50
+ K as Hero,
51
+ P as Informer,
52
+ h as Input,
53
+ I as InputWithLabel,
54
+ y as Label,
55
+ O as Partners,
56
+ G as SafeHtmlRenderer,
57
+ V as Section,
58
+ w as Tag,
59
+ rr as Text,
60
+ S as Textarea,
61
+ H as TextareaWithLabel,
62
+ F as registerAdapter,
63
+ xr as useFormField
50
64
  };
51
65
  //# sourceMappingURL=index.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,6 @@
1
1
  import e from "react";
2
2
  import { cva as d } from "class-variance-authority";
3
- import { cn as l } from "./index.es25.js";
3
+ import { cn as l } from "./index.es29.js";
4
4
  const i = d(
5
5
  "relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground",
6
6
  {
@@ -1,6 +1,6 @@
1
1
  import * as t from "react";
2
2
  import { cva as n } from "class-variance-authority";
3
- import { cn as l } from "./index.es25.js";
3
+ import { cn as l } from "./index.es29.js";
4
4
  const d = n(
5
5
  "flex h-11 w-full rounded-lg border border-transparent border-b bg-background px-3 pt-[14px] pb-[11px] typo_variant_small-body ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 duration-200 transition-colors",
6
6
  {
@@ -1,5 +1,5 @@
1
1
  import { Input as l } from "./index.es11.js";
2
- import { Label as m } from "./index.es27.js";
2
+ import { Label as m } from "./index.es15.js";
3
3
  import e, { useId as p } from "react";
4
4
  function h({
5
5
  variant: t = "default",
@@ -1,28 +1,31 @@
1
- import { Popover as n, PopoverTrigger as a, PopoverContent as l } from "./index.es28.js";
2
- import { TooltipProvider as m, Tooltip as i, TooltipTrigger as c, TooltipContent as s } from "./index.es29.js";
3
- import { Button as r } from "./index.es2.js";
4
- import { Info as o } from "lucide-react";
5
- import e from "react";
6
- const p = ({ content: t }) => /* @__PURE__ */ e.createElement(m, { delayDuration: 0 }, /* @__PURE__ */ e.createElement("div", { className: "hidden xl:block" }, /* @__PURE__ */ e.createElement(i, null, /* @__PURE__ */ e.createElement(c, { asChild: !0 }, /* @__PURE__ */ e.createElement(
7
- r,
1
+ import * as e from "react";
2
+ import { cva as i } from "class-variance-authority";
3
+ import { cn as n } from "./index.es29.js";
4
+ const s = i(
5
+ "flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible0:ring-2 focus-visible0:ring-ring focus-visible0:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
8
6
  {
9
- variant: "ghost",
10
- size: "icon",
11
- className: "rounded-full group/informer h-8 w-8"
12
- },
13
- /* @__PURE__ */ e.createElement(o, { className: "w-5 h-5 text-navy-opacity-40 group-hover/informer:text-navy transition-colors" }),
14
- /* @__PURE__ */ e.createElement("span", { className: "sr-only" }, "Warning")
15
- )), /* @__PURE__ */ e.createElement(s, null, /* @__PURE__ */ e.createElement("div", null, t)))), /* @__PURE__ */ e.createElement("div", { className: "block xl:hidden" }, /* @__PURE__ */ e.createElement(n, null, /* @__PURE__ */ e.createElement(a, { asChild: !0 }, /* @__PURE__ */ e.createElement(
16
- r,
17
- {
18
- variant: "ghost",
19
- size: "icon",
20
- className: "rounded-full group/informer h-8 w-8"
21
- },
22
- /* @__PURE__ */ e.createElement(o, { className: "w-5 h-5 text-navy-opacity-40 group-hover/informer:text-navy transition-colors" }),
23
- /* @__PURE__ */ e.createElement("span", { className: "sr-only" }, "Warning")
24
- )), /* @__PURE__ */ e.createElement(l, { className: "px-3 py-1.5" }, /* @__PURE__ */ e.createElement("div", null, t))))), g = p;
7
+ variants: {
8
+ variant: {
9
+ default: "bg-navy-opacity-4 text-navy focus:border-navy hover:bg-navy-opacity-8 border-b-navy-opacity-32",
10
+ blue: "bg-whitish-opacity-8 text-white focus:border-white hover:bg-whitish-opacity-16 border-b-whitish-opacity-32"
11
+ }
12
+ },
13
+ defaultVariants: {
14
+ variant: "default"
15
+ }
16
+ }
17
+ ), c = e.forwardRef(
18
+ ({ className: t, variant: a, ...r }, o) => /* @__PURE__ */ e.createElement(
19
+ "textarea",
20
+ {
21
+ className: n(s({ variant: a, className: t })),
22
+ ref: o,
23
+ ...r
24
+ }
25
+ )
26
+ );
27
+ c.displayName = "Textarea";
25
28
  export {
26
- g as default
29
+ c as Textarea
27
30
  };
28
31
  //# sourceMappingURL=index.es13.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es13.js","sources":["../src/components/Informer.tsx"],"sourcesContent":["import {\r\n Popover,\r\n PopoverContent,\r\n PopoverTrigger,\r\n} from '@/components/ui/popover'\r\nimport {\r\n Tooltip,\r\n TooltipContent,\r\n TooltipProvider,\r\n TooltipTrigger,\r\n} from '@/components/ui/tooltip'\r\n\r\nimport { Button } from '@/components/ui/button'\r\nimport { Info } from 'lucide-react'\r\nimport React from 'react'\r\n\r\ninterface InformerProps {\r\n content: string\r\n}\r\n\r\nconst Informer = ({ content }: InformerProps) => {\r\n return (\r\n <TooltipProvider delayDuration={0}>\r\n <div className=\"hidden xl:block\">\r\n <Tooltip>\r\n <TooltipTrigger asChild>\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"rounded-full group/informer h-8 w-8\"\r\n >\r\n <Info className=\"w-5 h-5 text-navy-opacity-40 group-hover/informer:text-navy transition-colors\" />\r\n <span className=\"sr-only\">Warning</span>\r\n </Button>\r\n </TooltipTrigger>\r\n <TooltipContent>\r\n <div>{content}</div>\r\n </TooltipContent>\r\n </Tooltip>\r\n </div>\r\n <div className=\"block xl:hidden\">\r\n <Popover>\r\n <PopoverTrigger asChild>\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"rounded-full group/informer h-8 w-8\"\r\n >\r\n <Info className=\"w-5 h-5 text-navy-opacity-40 group-hover/informer:text-navy transition-colors\" />\r\n <span className=\"sr-only\">Warning</span>\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"px-3 py-1.5\">\r\n <div>{content}</div>\r\n </PopoverContent>\r\n </Popover>\r\n </div>\r\n </TooltipProvider>\r\n )\r\n}\r\n\r\nexport default Informer\r\n"],"names":["Informer","content","React","TooltipProvider","Tooltip","TooltipTrigger","Button","Info","TooltipContent","Popover","PopoverTrigger","PopoverContent","Informer$1"],"mappings":";;;;;AAoBA,MAAMA,IAAW,CAAC,EAAE,SAAAC,QAEfC,gBAAAA,EAAA,cAAAC,GAAA,EAAgB,eAAe,EAAA,GAC7BD,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,qBACZA,gBAAAA,EAAA,cAAAE,GAAA,MACEF,gBAAAA,EAAA,cAAAG,GAAA,EAAe,SAAO,GACrB,GAAAH,gBAAAA,EAAA;AAAA,EAACI;AAAA,EAAA;AAAA,IACC,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,WAAU;AAAA,EAAA;AAAA,EAEVJ,gBAAAA,EAAA,cAACK,GAAK,EAAA,WAAU,gFAAgF,CAAA;AAAA,EAC/FL,gBAAAA,EAAA,cAAA,QAAA,EAAK,WAAU,UAAA,GAAU,SAAO;AAErC,CAAA,GACCA,gBAAAA,EAAA,cAAAM,GAAA,sCACE,OAAK,MAAAP,CAAQ,CAChB,CACF,CACF,GACCC,gBAAAA,EAAA,cAAA,OAAA,EAAI,WAAU,kBACb,GAAAA,gBAAAA,EAAA,cAACO,SACEP,gBAAAA,EAAA,cAAAQ,GAAA,EAAe,SAAO,GACrB,GAAAR,gBAAAA,EAAA;AAAA,EAACI;AAAA,EAAA;AAAA,IACC,SAAQ;AAAA,IACR,MAAK;AAAA,IACL,WAAU;AAAA,EAAA;AAAA,EAEVJ,gBAAAA,EAAA,cAACK,GAAK,EAAA,WAAU,gFAAgF,CAAA;AAAA,EAC/FL,gBAAAA,EAAA,cAAA,QAAA,EAAK,WAAU,UAAA,GAAU,SAAO;AAAA,CAErC,GACCA,gBAAAA,EAAA,cAAAS,GAAA,EAAe,WAAU,cAAA,GACvBT,gBAAAA,EAAA,cAAA,OAAA,MAAKD,CAAQ,CAChB,CACF,CACF,CACF,GAIJW,IAAeZ;"}
1
+ {"version":3,"file":"index.es13.js","sources":["../src/components/ui/textarea/Textarea.tsx"],"sourcesContent":["import * as React from 'react'\r\n\r\nimport { VariantProps, cva } from 'class-variance-authority'\r\n\r\nimport { cn } from '@/lib/utils/cn'\r\n\r\nconst textareaVariants = cva(\r\n 'flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible0:ring-2 focus-visible0:ring-ring focus-visible0:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\r\n {\r\n variants: {\r\n variant: {\r\n default:\r\n 'bg-navy-opacity-4 text-navy focus:border-navy hover:bg-navy-opacity-8 border-b-navy-opacity-32',\r\n blue: 'bg-whitish-opacity-8 text-white focus:border-white hover:bg-whitish-opacity-16 border-b-whitish-opacity-32',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n }\r\n)\r\n\r\nexport interface TextareaProps\r\n extends React.TextareaHTMLAttributes<HTMLTextAreaElement>,\r\n VariantProps<typeof textareaVariants> {\r\n // className?: string\r\n}\r\n\r\nconst Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(\r\n ({ className, variant, ...props }, ref) => {\r\n return (\r\n <textarea\r\n className={cn(textareaVariants({ variant, className }))}\r\n ref={ref}\r\n {...props}\r\n />\r\n )\r\n }\r\n)\r\nTextarea.displayName = 'Textarea'\r\n\r\nexport { Textarea }\r\n"],"names":["textareaVariants","cva","Textarea","React","className","variant","props","ref","cn"],"mappings":";;;AAMA,MAAMA,IAAmBC;AAAA,EACvB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF,GAQMC,IAAWC,EAAM;AAAA,EACrB,CAAC,EAAE,WAAAC,GAAW,SAAAC,GAAS,GAAGC,EAAA,GAASC,MAE/B,gBAAAJ,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWK,EAAGR,EAAiB,EAAE,SAAAK,GAAS,WAAAD,EAAW,CAAA,CAAC;AAAA,MACtD,KAAAG;AAAA,MACC,GAAGD;AAAA,IAAA;AAAA,EAAA;AAIZ;AACAJ,EAAS,cAAc;"}
@@ -1,76 +1,31 @@
1
- import u from "react";
2
- const h = (t) => {
3
- const a = /* @__PURE__ */ new Set(["br", "img", "input", "hr", "meta", "link"]), i = /<\/?([a-z]+)(\s[^>]*)?>/gi, r = [];
4
- let l;
5
- for (; (l = i.exec(t)) !== null; ) {
6
- const s = l[0], e = l[1].toLowerCase();
7
- if (s === "</br>")
8
- return !1;
9
- if (s.startsWith("</")) {
10
- if (a.has(e) || r.length === 0 || r.pop() !== e)
11
- return !1;
12
- } else
13
- !a.has(e) && !s.endsWith("/>") && r.push(e);
14
- }
15
- return r.length === 0;
16
- }, m = (t) => {
17
- const a = /<[a-z]+\s+([^>]+)>/gi, i = t.matchAll(a);
18
- for (const [s, e] of i) {
19
- const o = e.match(/\w+\s*=\s*(['"])(.*?)\1|\w+(?!=)/g) || [];
20
- for (const n of o)
21
- if (n.includes("=")) {
22
- const [g, ...f] = n.split("="), c = f.join("=");
23
- if (!(c.startsWith('"') && c.endsWith('"') || c.startsWith("'") && c.endsWith("'")))
24
- return !1;
25
- const d = c[0];
26
- if (c.slice(1, -1).includes(d))
27
- return !1;
28
- }
29
- }
30
- const r = /<[^>]*?['"][^'"]*>/g, l = t.match(r) || [];
31
- for (const s of l) {
32
- let e = !1, o = "";
33
- for (let n = 0; n < s.length; n++)
34
- (s[n] === "'" || s[n] === '"') && (e ? s[n] === o && (e = !1) : (e = !0, o = s[n]));
35
- if (e)
36
- return !1;
37
- }
38
- return !0;
39
- }, v = (t) => {
40
- const a = [...t.matchAll(/<([a-z]+)(\s[^>]*)\/>/gi)];
41
- for (const [i, r, l] of a) {
42
- const s = /(\w+)=["']([^"']*)["']/g, e = [...l.matchAll(s)];
43
- for (const [g, f, c] of e)
44
- if (!f || !c)
45
- return !1;
46
- const o = /(\w+)=["'][^"']*$/g;
47
- if ([...l.matchAll(o)].length > 0)
48
- return !1;
49
- }
50
- return !0;
51
- }, p = (t) => {
52
- const a = /style=["']([^"']*)["']/gi, i = [...t.matchAll(a)];
53
- for (const [r, l] of i) {
54
- const s = l.split(";");
55
- for (const e of s)
56
- if (e.trim()) {
57
- const [o, n] = e.split(":");
58
- if (!o || !n)
59
- return !1;
60
- }
61
- }
62
- return !0;
63
- }, T = (t) => h(t) && m(t) && v(t) && p(t), y = ({
64
- html: t,
65
- className: a
66
- }) => T(t) ? /* @__PURE__ */ u.createElement(
67
- "div",
68
- {
69
- className: ["content", a].filter(Boolean).join(" "),
70
- dangerouslySetInnerHTML: { __html: t }
71
- }
72
- ) : (console.error("Invalid HTML content:", t), /* @__PURE__ */ u.createElement("div", { style: { color: "red" } }, "Invalid HTML content")), R = y;
1
+ import { Label as i } from "./index.es15.js";
2
+ import { Textarea as n } from "./index.es13.js";
3
+ import { useId as m } from "react";
4
+ function p({
5
+ id: r,
6
+ variant: e = "default",
7
+ label: t,
8
+ className: c
9
+ }) {
10
+ const s = m(), a = r || s, o = e === "default" ? "group-focus-within:text-navy-opacity-40" : "group-focus-within:text-whitish-opacity-60";
11
+ return /* @__PURE__ */ React.createElement("div", { className: `grid w-full items-center gap-1 group ${c}` }, t && /* @__PURE__ */ React.createElement(
12
+ i,
13
+ {
14
+ variant: e,
15
+ htmlFor: a,
16
+ className: o
17
+ },
18
+ t
19
+ ), /* @__PURE__ */ React.createElement(
20
+ n,
21
+ {
22
+ id: a,
23
+ variant: e,
24
+ className: `focus:outline-none '${o}'`
25
+ }
26
+ ));
27
+ }
73
28
  export {
74
- R as default
29
+ p as TextareaWithLabel
75
30
  };
76
31
  //# sourceMappingURL=index.es14.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es14.js","sources":["../src/components/SafeHtml.tsx"],"sourcesContent":["import React from 'react'\r\n\r\n// Check if tags are correctly opened and closed\r\nconst validateTags = (htmlString: string) => {\r\n // List of known self-closing tags\r\n const selfClosingTags = new Set(['br', 'img', 'input', 'hr', 'meta', 'link'])\r\n\r\n const tagPattern = /<\\/?([a-z]+)(\\s[^>]*)?>/gi\r\n const tagStack: string[] = []\r\n let match\r\n\r\n while ((match = tagPattern.exec(htmlString)) !== null) {\r\n const fullTag = match[0]\r\n const tagName = match[1].toLowerCase()\r\n\r\n // Check for incorrect </br> usage\r\n if (fullTag === '</br>') {\r\n return false // </br> is invalid HTML\r\n }\r\n\r\n if (fullTag.startsWith('</')) {\r\n // Closing tag\r\n if (selfClosingTags.has(tagName)) {\r\n return false // Self-closing tags shouldn't have closing tags\r\n }\r\n if (tagStack.length === 0) return false\r\n const lastTag = tagStack.pop()\r\n if (lastTag !== tagName) return false\r\n } else {\r\n // Opening tag\r\n if (!selfClosingTags.has(tagName) && !fullTag.endsWith('/>')) {\r\n tagStack.push(tagName)\r\n }\r\n }\r\n }\r\n\r\n return tagStack.length === 0\r\n}\r\n\r\nconst validateAttributes = (htmlString: string) => {\r\n const attributeRegex = /<[a-z]+\\s+([^>]+)>/gi\r\n const matches = htmlString.matchAll(attributeRegex)\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n for (const [fullMatch, attributes] of matches) {\r\n // Split attributes by space, but keep quoted values together\r\n const attrs = attributes.match(/\\w+\\s*=\\s*(['\"])(.*?)\\1|\\w+(?!=)/g) || []\r\n\r\n for (const attr of attrs) {\r\n // Check if attribute has quotes\r\n if (attr.includes('=')) {\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n const [name, ...rest] = attr.split('=')\r\n const value = rest.join('=') // Rejoin in case value contains =\r\n\r\n // Check for proper quote matching\r\n if (\r\n !(\r\n (value.startsWith('\"') && value.endsWith('\"')) ||\r\n (value.startsWith(\"'\") && value.endsWith(\"'\"))\r\n )\r\n ) {\r\n return false\r\n }\r\n\r\n // Extract the quote character used\r\n const quoteChar = value[0]\r\n // Check if there are any unescaped quotes of the same type inside the value\r\n const valueContent = value.slice(1, -1)\r\n if (valueContent.includes(quoteChar)) {\r\n return false\r\n }\r\n }\r\n }\r\n }\r\n\r\n // Additional check for unclosed quotes before >\r\n const unclosedQuoteCheck = /<[^>]*?['\"][^'\"]*>/g\r\n const potentiallyUnclosedTags = htmlString.match(unclosedQuoteCheck) || []\r\n for (const tag of potentiallyUnclosedTags) {\r\n let inQuote = false\r\n let quoteChar = ''\r\n for (let i = 0; i < tag.length; i++) {\r\n if (tag[i] === \"'\" || tag[i] === '\"') {\r\n if (!inQuote) {\r\n inQuote = true\r\n quoteChar = tag[i]\r\n } else if (tag[i] === quoteChar) {\r\n inQuote = false\r\n }\r\n }\r\n }\r\n if (inQuote) {\r\n return false\r\n }\r\n }\r\n\r\n return true\r\n}\r\n\r\n// Check if self-closing tags are valid\r\nconst validateSelfClosingTags = (htmlString: string) => {\r\n const selfClosingTags = [...htmlString.matchAll(/<([a-z]+)(\\s[^>]*)\\/>/gi)]\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n for (const [_, tag, attributes] of selfClosingTags) {\r\n const attrRegex = /(\\w+)=[\"']([^\"']*)[\"']/g\r\n const attrs = [...attributes.matchAll(attrRegex)]\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n for (const [_, attrName, attrValue] of attrs) {\r\n if (!attrName || !attrValue) {\r\n return false // Invalid attribute format\r\n }\r\n }\r\n\r\n // Check for unclosed attributes\r\n const unclosedAttrRegex = /(\\w+)=[\"'][^\"']*$/g\r\n const unclosedAttrs = [...attributes.matchAll(unclosedAttrRegex)]\r\n\r\n if (unclosedAttrs.length > 0) {\r\n return false // Unclosed attribute in self-closing tag\r\n }\r\n }\r\n\r\n return true // Self-closing tags are valid\r\n}\r\n\r\n// Check for inline styles and ensure they follow a valid format\r\nconst validateInlineStyles = (htmlString: string) => {\r\n const styleRegex = /style=[\"']([^\"']*)[\"']/gi\r\n const styles = [...htmlString.matchAll(styleRegex)]\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n for (const [_, styleContent] of styles) {\r\n // A basic check for properly formatted style declarations (e.g., \"property: value;\")\r\n const styleRules = styleContent.split(';')\r\n for (const rule of styleRules) {\r\n if (rule.trim()) {\r\n const [property, value] = rule.split(':')\r\n if (!property || !value) {\r\n return false // Invalid style declaration\r\n }\r\n }\r\n }\r\n }\r\n\r\n return true // Inline styles are valid\r\n}\r\n\r\n// Main function that calls the smaller subfunctions\r\nconst validateHtmlBasic = (htmlString: string) => {\r\n return (\r\n validateTags(htmlString) &&\r\n validateAttributes(htmlString) &&\r\n validateSelfClosingTags(htmlString) &&\r\n validateInlineStyles(htmlString)\r\n )\r\n}\r\n\r\n////\r\n\r\nconst SafeHtmlRenderer = ({\r\n html,\r\n className,\r\n}: {\r\n html: string\r\n className?: string\r\n}) => {\r\n const isValid = validateHtmlBasic(html)\r\n // console.log(\"isValidHTML\", isValid);\r\n // TODO: add send error to TG\r\n\r\n if (!isValid) {\r\n console.error('Invalid HTML content:', html)\r\n return <div style={{ color: 'red' }}>Invalid HTML content</div>\r\n }\r\n\r\n return (\r\n <div\r\n className={['content', className].filter(Boolean).join(' ')}\r\n dangerouslySetInnerHTML={{ __html: html }}\r\n />\r\n )\r\n}\r\n\r\nexport default SafeHtmlRenderer\r\n"],"names":["validateTags","htmlString","selfClosingTags","tagPattern","tagStack","match","fullTag","tagName","validateAttributes","attributeRegex","matches","fullMatch","attributes","attrs","attr","name","rest","value","quoteChar","unclosedQuoteCheck","potentiallyUnclosedTags","tag","inQuote","i","validateSelfClosingTags","_","attrRegex","attrName","attrValue","unclosedAttrRegex","validateInlineStyles","styleRegex","styles","styleContent","styleRules","rule","property","validateHtmlBasic","SafeHtmlRenderer","html","className","React","SafeHtmlRenderer$1"],"mappings":"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"}
1
+ {"version":3,"file":"index.es14.js","sources":["../src/components/ui/textarea/TextareaWithLabel.tsx"],"sourcesContent":["import { InputVariant } from '../input/types'\r\nimport { Label } from '../label'\r\nimport { Textarea } from './Textarea'\r\nimport { useId } from 'react'\r\n\r\ninterface TextareaWithLabelProps {\r\n variant?: InputVariant\r\n label?: string\r\n id?: string\r\n className?: string\r\n}\r\n\r\nexport function TextareaWithLabel({\r\n id,\r\n variant = 'default',\r\n label,\r\n className,\r\n}: TextareaWithLabelProps) {\r\n const generatedId = useId()\r\n const textareaId = id || generatedId\r\n\r\n const textareaClasses =\r\n variant === 'default'\r\n ? 'group-focus-within:text-navy-opacity-40'\r\n : 'group-focus-within:text-whitish-opacity-60'\r\n\r\n return (\r\n <div className={`grid w-full items-center gap-1 group ${className}`}>\r\n {label && (\r\n <Label\r\n variant={variant}\r\n htmlFor={textareaId}\r\n className={textareaClasses}\r\n >\r\n {label}\r\n </Label>\r\n )}\r\n\r\n <Textarea\r\n id={textareaId}\r\n variant={variant}\r\n className={`focus:outline-none '${textareaClasses}'`}\r\n />\r\n\r\n {/* {desc && <p className=\"text-sm text-muted-foreground\">{desc}</p>} */}\r\n </div>\r\n )\r\n}\r\n"],"names":["TextareaWithLabel","id","variant","label","className","generatedId","useId","textareaId","textareaClasses","Label","Textarea"],"mappings":";;;AAYO,SAASA,EAAkB;AAAA,EAChC,IAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,OAAAC;AAAA,EACA,WAAAC;AACF,GAA2B;AACzB,QAAMC,IAAcC,KACdC,IAAaN,KAAMI,GAEnBG,IACJN,MAAY,YACR,4CACA;AAEN,6CACG,OAAI,EAAA,WAAW,wCAAwCE,CAAS,MAC9DD,KACC,sBAAA;AAAA,IAACM;AAAA,IAAA;AAAA,MACC,SAAAP;AAAA,MACA,SAASK;AAAA,MACT,WAAWC;AAAA,IAAA;AAAA,IAEVL;AAAA,EAIL,GAAA,sBAAA;AAAA,IAACO;AAAA,IAAA;AAAA,MACC,IAAIH;AAAA,MACJ,SAAAL;AAAA,MACA,WAAW,uBAAuBM,CAAe;AAAA,IAAA;AAAA,EAAA,CAIrD;AAEJ;"}
@@ -1,38 +1,30 @@
1
- import * as t from "@radix-ui/react-checkbox";
2
- import * as e from "react";
3
- import { Check16X16 as c } from "@iit/precision-ui-icons";
4
- import { cva as n } from "class-variance-authority";
5
- import { cn as a } from "./index.es25.js";
6
- const d = n(
7
- "peer h-[18px] w-[18px] shrink-0 rounded-sm border ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 duration-200",
1
+ import * as a from "react";
2
+ import * as t from "@radix-ui/react-label";
3
+ import { cva as l } from "class-variance-authority";
4
+ import { cn as n } from "./index.es29.js";
5
+ const s = l(
6
+ "typo_variant_h6 leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 duration-200",
8
7
  {
9
8
  variants: {
10
9
  variant: {
11
- default: "border-navy hover:bg-navy-opacity-8 hover:data-[state=checked]:bg-navy-opacity-80 data-[state=checked]:bg-navy data-[state=checked]:text-whitish",
12
- white: "border-whitish hover:bg-whitish-opacity-16 text-whitish hover:data-[state=checked]:bg-whitish-opacity-80 data-[state=checked]:bg-whitish data-[state=checked]:text-navy"
10
+ default: "text-navy",
11
+ blue: "text-whitish"
13
12
  }
14
13
  },
15
14
  defaultVariants: {
16
15
  variant: "default"
17
16
  }
18
17
  }
19
- ), h = e.forwardRef(({ className: i, variant: o, ...r }, s) => /* @__PURE__ */ e.createElement(
18
+ ), d = a.forwardRef(({ className: e, variant: r, ...o }, i) => /* @__PURE__ */ a.createElement(
20
19
  t.Root,
21
20
  {
22
- ref: s,
23
- className: a(d({ variant: o }), i),
24
- ...r
25
- },
26
- /* @__PURE__ */ e.createElement(
27
- t.Indicator,
28
- {
29
- className: a("flex items-center justify-center text-current")
30
- },
31
- /* @__PURE__ */ e.createElement(c, { className: "h-[18px] w-[18px] relative bottom-[1px]" })
32
- )
21
+ ref: i,
22
+ className: n(s({ variant: r }), e),
23
+ ...o
24
+ }
33
25
  ));
34
- h.displayName = t.Root.displayName;
26
+ d.displayName = t.Root.displayName;
35
27
  export {
36
- h as Checkbox
28
+ d as Label
37
29
  };
38
30
  //# sourceMappingURL=index.es15.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es15.js","sources":["../src/components/ui/checkbox/checkbox.tsx"],"sourcesContent":["import * as CheckboxPrimitive from '@radix-ui/react-checkbox'\r\nimport * as React from 'react'\r\n\r\nimport { Check16X16 } from '@iit/precision-ui-icons'\r\n\r\nimport { cva, type VariantProps } from 'class-variance-authority'\r\nimport { cn } from '@/lib/utils/cn'\r\n\r\nconst checkboxVariants = cva(\r\n 'peer h-[18px] w-[18px] shrink-0 rounded-sm border ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 duration-200',\r\n {\r\n variants: {\r\n variant: {\r\n default:\r\n 'border-navy hover:bg-navy-opacity-8 hover:data-[state=checked]:bg-navy-opacity-80 data-[state=checked]:bg-navy data-[state=checked]:text-whitish',\r\n white:\r\n 'border-whitish hover:bg-whitish-opacity-16 text-whitish hover:data-[state=checked]:bg-whitish-opacity-80 data-[state=checked]:bg-whitish data-[state=checked]:text-navy',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n }\r\n)\r\n\r\ninterface CheckboxProps\r\n extends React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>,\r\n VariantProps<typeof checkboxVariants> {\r\n className?: string\r\n}\r\n\r\nconst Checkbox = React.forwardRef<\r\n React.ElementRef<typeof CheckboxPrimitive.Root>,\r\n CheckboxProps\r\n>(({ className, variant, ...props }, ref) => (\r\n <CheckboxPrimitive.Root\r\n ref={ref}\r\n className={cn(checkboxVariants({ variant }), className)}\r\n {...props}\r\n >\r\n <CheckboxPrimitive.Indicator\r\n className={cn('flex items-center justify-center text-current')}\r\n >\r\n <Check16X16 className=\"h-[18px] w-[18px] relative bottom-[1px]\" />\r\n </CheckboxPrimitive.Indicator>\r\n </CheckboxPrimitive.Root>\r\n))\r\nCheckbox.displayName = CheckboxPrimitive.Root.displayName\r\n\r\nexport { Checkbox }\r\n"],"names":["checkboxVariants","cva","Checkbox","React","className","variant","props","ref","CheckboxPrimitive","cn","Check16X16"],"mappings":";;;;;AAQA,MAAMA,IAAmBC;AAAA,EACvB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,OACE;AAAA,MACJ;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF,GAQMC,IAAWC,EAAM,WAGrB,CAAC,EAAE,WAAAC,GAAW,SAAAC,GAAS,GAAGC,EAAM,GAAGC,MACnC,gBAAAJ,EAAA;AAAA,EAACK,EAAkB;AAAA,EAAlB;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAGT,EAAiB,EAAE,SAAAK,EAAS,CAAA,GAAGD,CAAS;AAAA,IACrD,GAAGE;AAAA,EAAA;AAAA,EAEJ,gBAAAH,EAAA;AAAA,IAACK,EAAkB;AAAA,IAAlB;AAAA,MACC,WAAWC,EAAG,+CAA+C;AAAA,IAAA;AAAA,IAE7D,gBAAAN,EAAA,cAACO,GAAW,EAAA,WAAU,0CAA0C,CAAA;AAAA,EAClE;AACF,CACD;AACDR,EAAS,cAAcM,EAAkB,KAAK;"}
1
+ {"version":3,"file":"index.es15.js","sources":["../src/components/ui/label.tsx"],"sourcesContent":["import * as React from 'react'\r\nimport * as LabelPrimitive from '@radix-ui/react-label'\r\nimport { cva, type VariantProps } from 'class-variance-authority'\r\n\r\nimport { cn } from '@/lib/utils/cn'\r\n\r\nconst labelVariants = cva(\r\n 'typo_variant_h6 leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 duration-200',\r\n {\r\n variants: {\r\n variant: {\r\n default: 'text-navy',\r\n blue: 'text-whitish',\r\n },\r\n },\r\n defaultVariants: {\r\n variant: 'default',\r\n },\r\n }\r\n)\r\n\r\nconst Label = React.forwardRef<\r\n React.ElementRef<typeof LabelPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\r\n VariantProps<typeof labelVariants>\r\n>(({ className, variant, ...props }, ref) => (\r\n <LabelPrimitive.Root\r\n ref={ref}\r\n className={cn(labelVariants({ variant }), className)}\r\n {...props}\r\n />\r\n))\r\nLabel.displayName = LabelPrimitive.Root.displayName\r\n\r\nexport { Label }\r\n"],"names":["labelVariants","cva","Label","React","className","variant","props","ref","LabelPrimitive","cn"],"mappings":";;;;AAMA,MAAMA,IAAgBC;AAAA,EACpB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SAAS;AAAA,QACT,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,IACX;AAAA,EACF;AACF,GAEMC,IAAQC,EAAM,WAIlB,CAAC,EAAE,WAAAC,GAAW,SAAAC,GAAS,GAAGC,EAAM,GAAGC,MACnC,gBAAAJ,EAAA;AAAA,EAACK,EAAe;AAAA,EAAf;AAAA,IACC,KAAAD;AAAA,IACA,WAAWE,EAAGT,EAAc,EAAE,SAAAK,EAAS,CAAA,GAAGD,CAAS;AAAA,IAClD,GAAGE;AAAA,EAAA;AACN,CACD;AACDJ,EAAM,cAAcM,EAAe,KAAK;"}