@adam-milo/ui 1.0.22 → 1.0.24

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 (154) hide show
  1. package/dist/index.cjs +1 -1
  2. package/dist/index.js +18 -9
  3. package/dist/index10.cjs +1 -1
  4. package/dist/index10.js +53 -59
  5. package/dist/index11.cjs +1 -1
  6. package/dist/index11.js +50 -104
  7. package/dist/index12.cjs +1 -1
  8. package/dist/index12.js +108 -76
  9. package/dist/index13.cjs +1 -1
  10. package/dist/index13.js +77 -26
  11. package/dist/index14.cjs +1 -1
  12. package/dist/index14.js +22 -462
  13. package/dist/index15.cjs +1 -1
  14. package/dist/index15.js +466 -109
  15. package/dist/index16.cjs +1 -1
  16. package/dist/index16.js +111 -30
  17. package/dist/index17.cjs +1 -1
  18. package/dist/index17.js +42 -12
  19. package/dist/index18.cjs +1 -0
  20. package/dist/index18.js +14 -0
  21. package/dist/index2.cjs +1 -1
  22. package/dist/index2.js +1 -1
  23. package/dist/index20.cjs +1 -1
  24. package/dist/index20.js +20 -299
  25. package/dist/index21.cjs +1 -1
  26. package/dist/index21.js +298 -13
  27. package/dist/index22.cjs +1 -0
  28. package/dist/index22.js +16 -0
  29. package/dist/index25.cjs +1 -0
  30. package/dist/index25.js +1193 -0
  31. package/dist/index3.cjs +1 -1
  32. package/dist/index3.js +2 -2
  33. package/dist/index33.cjs +1 -1
  34. package/dist/index33.js +7 -19
  35. package/dist/index36.cjs +1 -0
  36. package/dist/index36.js +21 -0
  37. package/dist/index38.cjs +1 -0
  38. package/dist/index38.js +6 -0
  39. package/dist/index39.cjs +1 -0
  40. package/dist/index39.js +11 -0
  41. package/dist/index4.cjs +1 -1
  42. package/dist/index4.js +1 -1
  43. package/dist/index40.cjs +1 -0
  44. package/dist/index40.js +70 -0
  45. package/dist/index41.cjs +1 -0
  46. package/dist/index41.js +39 -0
  47. package/dist/index42.cjs +1 -0
  48. package/dist/index42.js +64 -0
  49. package/dist/index43.cjs +1 -0
  50. package/dist/index43.js +10 -0
  51. package/dist/index44.cjs +1 -0
  52. package/dist/index44.js +212 -0
  53. package/dist/index45.cjs +1 -0
  54. package/dist/index45.js +29 -0
  55. package/dist/index46.cjs +1 -0
  56. package/dist/index46.js +208 -0
  57. package/dist/index47.cjs +1 -0
  58. package/dist/index47.js +14 -0
  59. package/dist/index48.cjs +1 -0
  60. package/dist/index48.js +293 -0
  61. package/dist/index49.cjs +1 -0
  62. package/dist/index49.js +18 -0
  63. package/dist/index5.cjs +1 -1
  64. package/dist/index5.js +1 -1
  65. package/dist/index50.cjs +1 -0
  66. package/dist/index50.js +43 -0
  67. package/dist/index51.cjs +1 -0
  68. package/dist/index51.js +89 -0
  69. package/dist/index52.cjs +1 -0
  70. package/dist/index52.js +14 -0
  71. package/dist/index53.cjs +1 -0
  72. package/dist/index53.js +71 -0
  73. package/dist/index54.cjs +1 -0
  74. package/dist/index54.js +6 -0
  75. package/dist/index55.cjs +1 -0
  76. package/dist/index55.js +14 -0
  77. package/dist/index56.cjs +1 -0
  78. package/dist/index56.js +34 -0
  79. package/dist/index57.cjs +1 -0
  80. package/dist/index57.js +122 -0
  81. package/dist/index58.cjs +1 -0
  82. package/dist/index58.js +11 -0
  83. package/dist/index59.cjs +1 -0
  84. package/dist/index59.js +17 -0
  85. package/dist/index6.cjs +1 -1
  86. package/dist/index6.js +2 -2
  87. package/dist/index60.cjs +1 -0
  88. package/dist/index60.js +297 -0
  89. package/dist/index61.cjs +1 -0
  90. package/dist/index61.js +25 -0
  91. package/dist/index62.cjs +1 -0
  92. package/dist/index62.js +39 -0
  93. package/dist/index63.cjs +1 -0
  94. package/dist/index63.js +625 -0
  95. package/dist/index64.cjs +1 -0
  96. package/dist/index64.js +39 -0
  97. package/dist/index65.cjs +1 -0
  98. package/dist/index65.js +38 -0
  99. package/dist/index66.cjs +1 -0
  100. package/dist/index66.js +7 -0
  101. package/dist/index67.cjs +1 -0
  102. package/dist/index67.js +10 -0
  103. package/dist/index68.cjs +1 -0
  104. package/dist/index68.js +5 -0
  105. package/dist/index69.cjs +1 -0
  106. package/dist/index69.js +35 -0
  107. package/dist/index7.cjs +1 -1
  108. package/dist/index7.js +1 -1
  109. package/dist/index70.cjs +1 -0
  110. package/dist/index70.js +180 -0
  111. package/dist/index71.cjs +1 -0
  112. package/dist/index71.js +21 -0
  113. package/dist/index72.cjs +1 -0
  114. package/dist/index72.js +721 -0
  115. package/dist/index73.cjs +1 -0
  116. package/dist/index73.js +154 -0
  117. package/dist/index74.cjs +1 -0
  118. package/dist/index74.js +173 -0
  119. package/dist/index75.cjs +1 -0
  120. package/dist/index75.js +88 -0
  121. package/dist/index76.cjs +1 -0
  122. package/dist/index76.js +47 -0
  123. package/dist/index77.cjs +1 -0
  124. package/dist/index77.js +13 -0
  125. package/dist/index78.cjs +1 -0
  126. package/dist/index78.js +19 -0
  127. package/dist/index79.cjs +1 -0
  128. package/dist/index79.js +102 -0
  129. package/dist/index8.cjs +1 -1
  130. package/dist/index8.js +1 -1
  131. package/dist/index80.cjs +1 -0
  132. package/dist/index80.js +11 -0
  133. package/dist/index81.cjs +1 -0
  134. package/dist/index81.js +29 -0
  135. package/dist/index82.cjs +1 -0
  136. package/dist/index82.js +16 -0
  137. package/dist/index83.cjs +1 -0
  138. package/dist/index83.js +48 -0
  139. package/dist/index84.cjs +1 -0
  140. package/dist/index84.js +9 -0
  141. package/dist/index85.cjs +1 -0
  142. package/dist/index85.js +37 -0
  143. package/dist/index9.cjs +1 -1
  144. package/dist/index9.js +224 -35
  145. package/dist/src/components/forms/select/Select.component.d.ts +100 -0
  146. package/dist/src/components/forms/select/Select.component.d.ts.map +1 -0
  147. package/dist/src/index.d.ts +2 -0
  148. package/dist/src/index.d.ts.map +1 -1
  149. package/dist/style.css +1 -1
  150. package/package.json +2 -1
  151. package/dist/index19.cjs +0 -1
  152. package/dist/index19.js +0 -22
  153. package/dist/index30.cjs +0 -1
  154. package/dist/index30.js +0 -9
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react");exports.useCallbackRef=function(a,r){var t=e.useState(function(){return{value:a,callback:r,facade:{get current(){return t.value},set current(e){var a=t.value;a!==e&&(t.value=e,t.callback(e,a))}}}})[0];return t.callback=r,t.facade};
@@ -0,0 +1,29 @@
1
+ import { useState } from "react";
2
+ function useCallbackRef(initialValue, callback) {
3
+ var ref = useState(function() {
4
+ return {
5
+ // value
6
+ value: initialValue,
7
+ // last callback
8
+ callback,
9
+ // "memoized" public interface
10
+ facade: {
11
+ get current() {
12
+ return ref.value;
13
+ },
14
+ set current(value) {
15
+ var last = ref.value;
16
+ if (last !== value) {
17
+ ref.value = value;
18
+ ref.callback(value, last);
19
+ }
20
+ }
21
+ }
22
+ };
23
+ })[0];
24
+ ref.callback = callback;
25
+ return ref.facade;
26
+ }
27
+ export {
28
+ useCallbackRef
29
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react"),t=require("./index83.cjs");function n(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e)for(const n in e)if("default"!==n){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}return t.default=e,Object.freeze(t)}const r=n(e);exports.styleHookSingleton=function(){var e=t.stylesheetSingleton();return function(t,n){r.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}};
@@ -0,0 +1,16 @@
1
+ import * as React from "react";
2
+ import { stylesheetSingleton } from "./index83.js";
3
+ var styleHookSingleton = function() {
4
+ var sheet = stylesheetSingleton();
5
+ return function(styles, isDynamic) {
6
+ React.useEffect(function() {
7
+ sheet.add(styles);
8
+ return function() {
9
+ sheet.remove();
10
+ };
11
+ }, [styles && isDynamic]);
12
+ };
13
+ };
14
+ export {
15
+ styleHookSingleton
16
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index84.cjs");exports.stylesheetSingleton=function(){var t=0,n=null;return{add:function(o){var r,u;0==t&&(n=function(){if(!document)return null;var t=document.createElement("style");t.type="text/css";var n=e.getNonce();return n&&t.setAttribute("nonce",n),t}())&&(u=o,(r=n).styleSheet?r.styleSheet.cssText=u:r.appendChild(document.createTextNode(u)),function(e){(document.head||document.getElementsByTagName("head")[0]).appendChild(e)}(n)),t++},remove:function(){! --t&&n&&(n.parentNode&&n.parentNode.removeChild(n),n=null)}}};
@@ -0,0 +1,48 @@
1
+ import { getNonce } from "./index84.js";
2
+ function makeStyleTag() {
3
+ if (!document)
4
+ return null;
5
+ var tag = document.createElement("style");
6
+ tag.type = "text/css";
7
+ var nonce = getNonce();
8
+ if (nonce) {
9
+ tag.setAttribute("nonce", nonce);
10
+ }
11
+ return tag;
12
+ }
13
+ function injectStyles(tag, css) {
14
+ if (tag.styleSheet) {
15
+ tag.styleSheet.cssText = css;
16
+ } else {
17
+ tag.appendChild(document.createTextNode(css));
18
+ }
19
+ }
20
+ function insertStyleTag(tag) {
21
+ var head = document.head || document.getElementsByTagName("head")[0];
22
+ head.appendChild(tag);
23
+ }
24
+ var stylesheetSingleton = function() {
25
+ var counter = 0;
26
+ var stylesheet = null;
27
+ return {
28
+ add: function(style) {
29
+ if (counter == 0) {
30
+ if (stylesheet = makeStyleTag()) {
31
+ injectStyles(stylesheet, style);
32
+ insertStyleTag(stylesheet);
33
+ }
34
+ }
35
+ counter++;
36
+ },
37
+ remove: function() {
38
+ counter--;
39
+ if (!counter && stylesheet) {
40
+ stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);
41
+ stylesheet = null;
42
+ }
43
+ }
44
+ };
45
+ };
46
+ export {
47
+ stylesheetSingleton
48
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});exports.getNonce=function(){if("undefined"!=typeof __webpack_nonce__)return __webpack_nonce__};
@@ -0,0 +1,9 @@
1
+ var getNonce = function() {
2
+ if (typeof __webpack_nonce__ !== "undefined") {
3
+ return __webpack_nonce__;
4
+ }
5
+ return void 0;
6
+ };
7
+ export {
8
+ getNonce
9
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var t={left:0,top:0,right:0,gap:0},n=function(t){return parseInt(t||"",10)||0};exports.getGapWidth=function(e){if(void 0===e&&(e="margin"),"undefined"==typeof window)return t;var i=function(t){var e=window.getComputedStyle(document.body),i=e["padding"===t?"paddingLeft":"marginLeft"],d=e["padding"===t?"paddingTop":"marginTop"],r=e["padding"===t?"paddingRight":"marginRight"];return[n(i),n(d),n(r)]}(e),d=document.documentElement.clientWidth,r=window.innerWidth;return{left:i[0],top:i[1],right:i[2],gap:Math.max(0,r-d+i[2]-i[0])}},exports.zeroGap=t;
@@ -0,0 +1,37 @@
1
+ var zeroGap = {
2
+ left: 0,
3
+ top: 0,
4
+ right: 0,
5
+ gap: 0
6
+ };
7
+ var parse = function(x) {
8
+ return parseInt(x || "", 10) || 0;
9
+ };
10
+ var getOffset = function(gapMode) {
11
+ var cs = window.getComputedStyle(document.body);
12
+ var left = cs[gapMode === "padding" ? "paddingLeft" : "marginLeft"];
13
+ var top = cs[gapMode === "padding" ? "paddingTop" : "marginTop"];
14
+ var right = cs[gapMode === "padding" ? "paddingRight" : "marginRight"];
15
+ return [parse(left), parse(top), parse(right)];
16
+ };
17
+ var getGapWidth = function(gapMode) {
18
+ if (gapMode === void 0) {
19
+ gapMode = "margin";
20
+ }
21
+ if (typeof window === "undefined") {
22
+ return zeroGap;
23
+ }
24
+ var offsets = getOffset(gapMode);
25
+ var documentWidth = document.documentElement.clientWidth;
26
+ var windowWidth = window.innerWidth;
27
+ return {
28
+ left: offsets[0],
29
+ top: offsets[1],
30
+ right: offsets[2],
31
+ gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0])
32
+ };
33
+ };
34
+ export {
35
+ getGapWidth,
36
+ zeroGap
37
+ };
package/dist/index9.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),e=require("react"),a=require("@radix-ui/react-tabs"),s=require("./index17.cjs");function r(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t)for(const a in t)if("default"!==a){const s=Object.getOwnPropertyDescriptor(t,a);Object.defineProperty(e,a,s.get?s:{enumerable:!0,get:()=>t[a]})}return e.default=t,Object.freeze(e)};/* empty css */const i=r(a),n=i.Root,c=e.forwardRef(({className:e,"data-cy":a,"data-testid":r,...n},c)=>{const o=a||"tabs-list",d=r||"tabs-list";return t.jsx(i.List,{ref:c,className:s.cn("tabs-list",e),"data-cy":o,"data-testid":d,...n})});c.displayName=i.List.displayName;const o=e.forwardRef(({className:e,value:a,"data-cy":r,"data-testid":n,...c},o)=>{const d=r||(a?`tabs-trigger-${a}`:"tabs-trigger"),l=n||(a?`tabs-trigger-${a}`:"tabs-trigger");return t.jsx(i.Trigger,{ref:o,className:s.cn("tabs-trigger",e),value:a,"data-cy":d,"data-testid":l,...c})});o.displayName=i.Trigger.displayName;const d=e.forwardRef(({className:e,value:a,"data-cy":r,"data-testid":n,...c},o)=>{const d=r||(a?`tabs-content-${a}`:"tabs-content"),l=n||(a?`tabs-content-${a}`:"tabs-content");return t.jsx(i.Content,{ref:o,className:s.cn("tabs-content",e),value:a,"data-cy":d,"data-testid":l,...c})});d.displayName=i.Content.displayName,exports.Tabs=n,exports.TabsContent=d,exports.TabsList=c,exports.TabsTrigger=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("react"),r=require("./index25.cjs"),a=require("./index18.cjs");;/* empty css */const l=r.Root,s=t.forwardRef(({className:l,children:s,label:c,error:d,helperText:i,fullWidth:o=!1,hasValue:n=!1,id:p,"data-cy":f,"data-testid":h,disabled:x,required:_,...g},m)=>{const b=t.useId(),u=p||b,N=`${u}-error`,j=`${u}-helper`,y=f||"select-trigger",w=h||"select-trigger",S=n;return e.jsxs("div",{className:a.cn("select-wrapper",o&&"select-wrapper--full-width"),"data-cy":`${y}-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",x&&"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",x&&"select-field__label--disabled"),"data-cy":`${y}-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",x&&"select-field__border-right--disabled")})]}),e.jsxs(r.Trigger,{ref:m,id:u,className:a.cn("select-trigger",d&&"select-trigger--error",o&&"select-trigger--full-width",S&&"select-trigger--floating",l),"aria-invalid":d?"true":"false","aria-describedby":d?N:i?j:void 0,"aria-required":_?"true":void 0,"data-cy":y,"data-testid":w,disabled:x,...g,children:[c&&!S&&e.jsx("span",{className:"select-trigger__placeholder-label","data-cy":`${y}-placeholder`,"data-testid":`${w}-placeholder`,children:c}),S&&s,e.jsx(r.Icon,{className:"select-trigger__icon","data-cy":`${y}-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:N,className:"select__error",role:"alert","data-cy":`${y}-error`,"data-testid":`${w}-error`,children:d}),i&&!d&&e.jsx("span",{id:j,className:"select__helper","data-cy":`${y}-helper`,"data-testid":`${w}-helper`,children:i})]})});s.displayName="SelectTrigger";const c=r.Value,d=t.forwardRef(({className:t,children:l,position:s="popper","data-cy":c,"data-testid":d,...i},o)=>{const n=c||"select-content",p=d||"select-content";return e.jsx(r.Portal,{children:e.jsx(r.Content,{ref:o,className:a.cn("select-content",t),position:s,sideOffset:8,"data-cy":n,"data-testid":p,...i,children:e.jsx(r.Viewport,{className:"select-viewport",children:l})})})});d.displayName="SelectContent";const i=t.forwardRef(({className:t,children:l,value:s,"data-cy":c,"data-testid":d,...i},o)=>{const n=c||`select-item-${s}`,p=d||`select-item-${s}`;return e.jsx(r.Item,{ref:o,className:a.cn("select-item",t),value:s,"data-cy":n,"data-testid":p,...i,children:e.jsx(r.ItemText,{children:l})})});i.displayName="SelectItem";const o=r.Group,n=t.forwardRef(({className:t,"data-cy":l,"data-testid":s,...c},d)=>{const i=l||"select-label",o=s||"select-label";return e.jsx(r.Label,{ref:d,className:a.cn("select-group-label",t),"data-cy":i,"data-testid":o,...c})});n.displayName="SelectLabel";const p=t.forwardRef(({className:t,"data-cy":l,"data-testid":s,...c},d)=>{const i=l||"select-separator",o=s||"select-separator";return e.jsx(r.Separator,{ref:d,className:a.cn("select-separator",t),"data-cy":i,"data-testid":o,...c})});p.displayName="SelectSeparator",exports.Select=l,exports.SelectContent=d,exports.SelectGroup=o,exports.SelectItem=i,exports.SelectLabel=n,exports.SelectSeparator=p,exports.SelectTrigger=s,exports.SelectValue=c;
package/dist/index9.js CHANGED
@@ -1,54 +1,224 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { forwardRef } from "react";
3
- import * as TabsPrimitive from "@radix-ui/react-tabs";
4
- import { cn } from "./index17.js";
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { forwardRef, useId } from "react";
3
+ import { Root as Root2, Value, Group, Trigger, Icon, Portal, Content as Content2, Viewport, Item, ItemText, Label, Separator } from "./index25.js";
4
+ import { cn } from "./index18.js";
5
5
  /* empty css */
6
- const Tabs = TabsPrimitive.Root;
7
- const TabsList = forwardRef(
8
- ({ className, "data-cy": dataCy, "data-testid": dataTestId, ...props }, ref) => {
9
- const finalDataCy = dataCy || "tabs-list";
10
- const finalTestId = dataTestId || "tabs-list";
11
- return /* @__PURE__ */ jsx(
12
- TabsPrimitive.List,
6
+ const Select = Root2;
7
+ const SelectTrigger = forwardRef(
8
+ ({
9
+ className,
10
+ children,
11
+ label,
12
+ error,
13
+ helperText,
14
+ fullWidth = false,
15
+ hasValue = false,
16
+ id: providedId,
17
+ "data-cy": dataCy,
18
+ "data-testid": dataTestId,
19
+ disabled,
20
+ required,
21
+ ...props
22
+ }, ref) => {
23
+ const generatedId = useId();
24
+ const id = providedId || generatedId;
25
+ const errorId = `${id}-error`;
26
+ const helperId = `${id}-helper`;
27
+ const finalDataCy = dataCy || "select-trigger";
28
+ const finalTestId = dataTestId || "select-trigger";
29
+ const isFloating = hasValue;
30
+ return /* @__PURE__ */ jsxs(
31
+ "div",
32
+ {
33
+ className: cn("select-wrapper", fullWidth && "select-wrapper--full-width"),
34
+ "data-cy": `${finalDataCy}-wrapper`,
35
+ "data-testid": `${finalTestId}-wrapper`,
36
+ children: [
37
+ /* @__PURE__ */ jsxs("div", { className: "select-field", children: [
38
+ /* @__PURE__ */ jsxs("div", { className: "select-field__top", children: [
39
+ /* @__PURE__ */ jsx(
40
+ "div",
41
+ {
42
+ className: cn(
43
+ "select-field__border-left",
44
+ error && "select-field__border-left--error",
45
+ isFloating && "select-field__border-left--floating",
46
+ disabled && "select-field__border-left--disabled"
47
+ )
48
+ }
49
+ ),
50
+ label && isFloating && /* @__PURE__ */ jsx(
51
+ "div",
52
+ {
53
+ className: cn(
54
+ "select-field__label-container",
55
+ error && "select-field__label-container--error"
56
+ ),
57
+ children: /* @__PURE__ */ jsx(
58
+ "span",
59
+ {
60
+ className: cn(
61
+ "select-field__label select-field__label--floating",
62
+ error && "select-field__label--error",
63
+ disabled && "select-field__label--disabled"
64
+ ),
65
+ "data-cy": `${finalDataCy}-label`,
66
+ "data-testid": `${finalTestId}-label`,
67
+ children: label
68
+ }
69
+ )
70
+ }
71
+ ),
72
+ /* @__PURE__ */ jsx(
73
+ "div",
74
+ {
75
+ className: cn(
76
+ "select-field__border-right",
77
+ error && "select-field__border-right--error",
78
+ isFloating && "select-field__border-right--floating",
79
+ disabled && "select-field__border-right--disabled"
80
+ )
81
+ }
82
+ )
83
+ ] }),
84
+ /* @__PURE__ */ jsxs(
85
+ Trigger,
86
+ {
87
+ ref,
88
+ id,
89
+ className: cn(
90
+ "select-trigger",
91
+ error && "select-trigger--error",
92
+ fullWidth && "select-trigger--full-width",
93
+ isFloating && "select-trigger--floating",
94
+ className
95
+ ),
96
+ "aria-invalid": error ? "true" : "false",
97
+ "aria-describedby": error ? errorId : helperText ? helperId : void 0,
98
+ "aria-required": required ? "true" : void 0,
99
+ "data-cy": finalDataCy,
100
+ "data-testid": finalTestId,
101
+ disabled,
102
+ ...props,
103
+ children: [
104
+ label && !isFloating && /* @__PURE__ */ jsx(
105
+ "span",
106
+ {
107
+ className: "select-trigger__placeholder-label",
108
+ "data-cy": `${finalDataCy}-placeholder`,
109
+ "data-testid": `${finalTestId}-placeholder`,
110
+ children: label
111
+ }
112
+ ),
113
+ isFloating && children,
114
+ /* @__PURE__ */ jsx(
115
+ Icon,
116
+ {
117
+ className: "select-trigger__icon",
118
+ "data-cy": `${finalDataCy}-icon`,
119
+ "data-testid": `${finalTestId}-icon`,
120
+ children: /* @__PURE__ */ jsx(
121
+ "svg",
122
+ {
123
+ width: "24",
124
+ height: "24",
125
+ viewBox: "0 0 24 24",
126
+ fill: "none",
127
+ xmlns: "http://www.w3.org/2000/svg",
128
+ "aria-hidden": "true",
129
+ children: /* @__PURE__ */ jsx("path", { d: "M7 10L12 15L17 10H7Z", fill: "currentColor" })
130
+ }
131
+ )
132
+ }
133
+ )
134
+ ]
135
+ }
136
+ )
137
+ ] }),
138
+ error && /* @__PURE__ */ jsx(
139
+ "span",
140
+ {
141
+ id: errorId,
142
+ className: "select__error",
143
+ role: "alert",
144
+ "data-cy": `${finalDataCy}-error`,
145
+ "data-testid": `${finalTestId}-error`,
146
+ children: error
147
+ }
148
+ ),
149
+ helperText && !error && /* @__PURE__ */ jsx(
150
+ "span",
151
+ {
152
+ id: helperId,
153
+ className: "select__helper",
154
+ "data-cy": `${finalDataCy}-helper`,
155
+ "data-testid": `${finalTestId}-helper`,
156
+ children: helperText
157
+ }
158
+ )
159
+ ]
160
+ }
161
+ );
162
+ }
163
+ );
164
+ SelectTrigger.displayName = "SelectTrigger";
165
+ const SelectValue = Value;
166
+ const SelectContent = forwardRef(
167
+ ({
168
+ className,
169
+ children,
170
+ position = "popper",
171
+ "data-cy": dataCy,
172
+ "data-testid": dataTestId,
173
+ ...props
174
+ }, ref) => {
175
+ const finalDataCy = dataCy || "select-content";
176
+ const finalTestId = dataTestId || "select-content";
177
+ return /* @__PURE__ */ jsx(Portal, { children: /* @__PURE__ */ jsx(
178
+ Content2,
13
179
  {
14
180
  ref,
15
- className: cn("tabs-list", className),
181
+ className: cn("select-content", className),
182
+ position,
183
+ sideOffset: 8,
16
184
  "data-cy": finalDataCy,
17
185
  "data-testid": finalTestId,
18
- ...props
186
+ ...props,
187
+ children: /* @__PURE__ */ jsx(Viewport, { className: "select-viewport", children })
19
188
  }
20
- );
189
+ ) });
21
190
  }
22
191
  );
23
- TabsList.displayName = TabsPrimitive.List.displayName;
24
- const TabsTrigger = forwardRef(
25
- ({ className, value, "data-cy": dataCy, "data-testid": dataTestId, ...props }, ref) => {
26
- const finalDataCy = dataCy || (value ? `tabs-trigger-${value}` : "tabs-trigger");
27
- const finalTestId = dataTestId || (value ? `tabs-trigger-${value}` : "tabs-trigger");
192
+ SelectContent.displayName = "SelectContent";
193
+ const SelectItem = forwardRef(
194
+ ({ className, children, value, "data-cy": dataCy, "data-testid": dataTestId, ...props }, ref) => {
195
+ const finalDataCy = dataCy || `select-item-${value}`;
196
+ const finalTestId = dataTestId || `select-item-${value}`;
28
197
  return /* @__PURE__ */ jsx(
29
- TabsPrimitive.Trigger,
198
+ Item,
30
199
  {
31
200
  ref,
32
- className: cn("tabs-trigger", className),
201
+ className: cn("select-item", className),
33
202
  value,
34
203
  "data-cy": finalDataCy,
35
204
  "data-testid": finalTestId,
36
- ...props
205
+ ...props,
206
+ children: /* @__PURE__ */ jsx(ItemText, { children })
37
207
  }
38
208
  );
39
209
  }
40
210
  );
41
- TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
42
- const TabsContent = forwardRef(
43
- ({ className, value, "data-cy": dataCy, "data-testid": dataTestId, ...props }, ref) => {
44
- const finalDataCy = dataCy || (value ? `tabs-content-${value}` : "tabs-content");
45
- const finalTestId = dataTestId || (value ? `tabs-content-${value}` : "tabs-content");
211
+ SelectItem.displayName = "SelectItem";
212
+ const SelectGroup = Group;
213
+ const SelectLabel = forwardRef(
214
+ ({ className, "data-cy": dataCy, "data-testid": dataTestId, ...props }, ref) => {
215
+ const finalDataCy = dataCy || "select-label";
216
+ const finalTestId = dataTestId || "select-label";
46
217
  return /* @__PURE__ */ jsx(
47
- TabsPrimitive.Content,
218
+ Label,
48
219
  {
49
220
  ref,
50
- className: cn("tabs-content", className),
51
- value,
221
+ className: cn("select-group-label", className),
52
222
  "data-cy": finalDataCy,
53
223
  "data-testid": finalTestId,
54
224
  ...props
@@ -56,10 +226,29 @@ const TabsContent = forwardRef(
56
226
  );
57
227
  }
58
228
  );
59
- TabsContent.displayName = TabsPrimitive.Content.displayName;
229
+ SelectLabel.displayName = "SelectLabel";
230
+ const SelectSeparator = forwardRef(({ className, "data-cy": dataCy, "data-testid": dataTestId, ...props }, ref) => {
231
+ const finalDataCy = dataCy || "select-separator";
232
+ const finalTestId = dataTestId || "select-separator";
233
+ return /* @__PURE__ */ jsx(
234
+ Separator,
235
+ {
236
+ ref,
237
+ className: cn("select-separator", className),
238
+ "data-cy": finalDataCy,
239
+ "data-testid": finalTestId,
240
+ ...props
241
+ }
242
+ );
243
+ });
244
+ SelectSeparator.displayName = "SelectSeparator";
60
245
  export {
61
- Tabs,
62
- TabsContent,
63
- TabsList,
64
- TabsTrigger
246
+ Select,
247
+ SelectContent,
248
+ SelectGroup,
249
+ SelectItem,
250
+ SelectLabel,
251
+ SelectSeparator,
252
+ SelectTrigger,
253
+ SelectValue
65
254
  };
@@ -0,0 +1,100 @@
1
+ import { ComponentPropsWithoutRef } from 'react';
2
+
3
+ import * as SelectPrimitive from '@radix-ui/react-select';
4
+ export declare const Select: import('react').FC<SelectPrimitive.SelectProps>;
5
+ export interface SelectTriggerProps extends ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger> {
6
+ /**
7
+ * The label text for the select field
8
+ */
9
+ label?: string;
10
+ /**
11
+ * Error message to display
12
+ */
13
+ error?: string;
14
+ /**
15
+ * Helper text to display below the select
16
+ */
17
+ helperText?: string;
18
+ /**
19
+ * Whether the select should take full width
20
+ * @default false
21
+ */
22
+ fullWidth?: boolean;
23
+ /**
24
+ * Whether the select has a value selected (used for floating label)
25
+ */
26
+ hasValue?: boolean;
27
+ /**
28
+ * Whether the select is required for form validation
29
+ * Note: Sets aria-required for accessibility. For actual form validation,
30
+ * use HTML form validation or a form library.
31
+ * @default false
32
+ */
33
+ required?: boolean;
34
+ /**
35
+ * Custom data-cy attribute for Cypress testing
36
+ * @default "select-trigger"
37
+ */
38
+ 'data-cy'?: string;
39
+ /**
40
+ * Custom data-testid attribute for unit testing
41
+ * @default "select-trigger"
42
+ */
43
+ 'data-testid'?: string;
44
+ }
45
+ export declare const SelectTrigger: import('react').ForwardRefExoticComponent<SelectTriggerProps & import('react').RefAttributes<HTMLButtonElement>>;
46
+ export declare const SelectValue: import('react').ForwardRefExoticComponent<SelectPrimitive.SelectValueProps & import('react').RefAttributes<HTMLSpanElement>>;
47
+ export interface SelectContentProps extends ComponentPropsWithoutRef<typeof SelectPrimitive.Content> {
48
+ /**
49
+ * Custom data-cy attribute for Cypress testing
50
+ * @default "select-content"
51
+ */
52
+ 'data-cy'?: string;
53
+ /**
54
+ * Custom data-testid attribute for unit testing
55
+ * @default "select-content"
56
+ */
57
+ 'data-testid'?: string;
58
+ }
59
+ export declare const SelectContent: import('react').ForwardRefExoticComponent<SelectContentProps & import('react').RefAttributes<HTMLDivElement>>;
60
+ export interface SelectItemProps extends ComponentPropsWithoutRef<typeof SelectPrimitive.Item> {
61
+ /**
62
+ * Custom data-cy attribute for Cypress testing
63
+ * Auto-generates as "select-item-{value}" if not provided
64
+ */
65
+ 'data-cy'?: string;
66
+ /**
67
+ * Custom data-testid attribute for unit testing
68
+ * Auto-generates as "select-item-{value}" if not provided
69
+ */
70
+ 'data-testid'?: string;
71
+ }
72
+ export declare const SelectItem: import('react').ForwardRefExoticComponent<SelectItemProps & import('react').RefAttributes<HTMLDivElement>>;
73
+ export declare const SelectGroup: import('react').ForwardRefExoticComponent<SelectPrimitive.SelectGroupProps & import('react').RefAttributes<HTMLDivElement>>;
74
+ export interface SelectLabelProps extends ComponentPropsWithoutRef<typeof SelectPrimitive.Label> {
75
+ /**
76
+ * Custom data-cy attribute for Cypress testing
77
+ * @default "select-label"
78
+ */
79
+ 'data-cy'?: string;
80
+ /**
81
+ * Custom data-testid attribute for unit testing
82
+ * @default "select-label"
83
+ */
84
+ 'data-testid'?: string;
85
+ }
86
+ export declare const SelectLabel: import('react').ForwardRefExoticComponent<SelectLabelProps & import('react').RefAttributes<HTMLDivElement>>;
87
+ export interface SelectSeparatorProps extends ComponentPropsWithoutRef<typeof SelectPrimitive.Separator> {
88
+ /**
89
+ * Custom data-cy attribute for Cypress testing
90
+ * @default "select-separator"
91
+ */
92
+ 'data-cy'?: string;
93
+ /**
94
+ * Custom data-testid attribute for unit testing
95
+ * @default "select-separator"
96
+ */
97
+ 'data-testid'?: string;
98
+ }
99
+ export declare const SelectSeparator: import('react').ForwardRefExoticComponent<SelectSeparatorProps & import('react').RefAttributes<HTMLDivElement>>;
100
+ //# sourceMappingURL=Select.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.component.d.ts","sourceRoot":"","sources":["../../../../../src/components/forms/select/Select.component.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,wBAAwB,EAAqB,MAAM,OAAO,CAAC;AAChF,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAE1D,OAAO,cAAc,CAAC;AAMtB,eAAO,MAAM,MAAM,iDAAuB,CAAC;AAM3C,MAAM,WAAW,kBAAmB,SAAQ,wBAAwB,CAClE,OAAO,eAAe,CAAC,OAAO,CAC/B;IACC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,aAAa,kHA4JzB,CAAC;AAOF,eAAO,MAAM,WAAW,8HAAwB,CAAC;AAMjD,MAAM,WAAW,kBAAmB,SAAQ,wBAAwB,CAClE,OAAO,eAAe,CAAC,OAAO,CAC/B;IACC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,aAAa,+GAoCzB,CAAC;AAOF,MAAM,WAAW,eAAgB,SAAQ,wBAAwB,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC;IAC5F;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,UAAU,4GAkBtB,CAAC;AAOF,eAAO,MAAM,WAAW,6HAAwB,CAAC;AAMjD,MAAM,WAAW,gBAAiB,SAAQ,wBAAwB,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC;IAC9F;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,WAAW,6GAevB,CAAC;AAOF,MAAM,WAAW,oBAAqB,SAAQ,wBAAwB,CACpE,OAAO,eAAe,CAAC,SAAS,CACjC;IACC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,eAAe,iHAgB1B,CAAC"}
@@ -14,6 +14,8 @@ export { Checkbox } from './components/forms/checkbox/Checkbox.component';
14
14
  export type { CheckboxProps } from './components/forms/checkbox/Checkbox.component';
15
15
  export { Radio } from './components/forms/radio/Radio.component';
16
16
  export type { RadioProps } from './components/forms/radio/Radio.component';
17
+ export { Select, SelectTrigger, SelectContent, SelectItem, SelectValue, SelectGroup, SelectLabel, SelectSeparator, } from './components/forms/select/Select.component';
18
+ export type { SelectTriggerProps, SelectContentProps, SelectItemProps, SelectLabelProps, SelectSeparatorProps, } from './components/forms/select/Select.component';
17
19
  export { Tabs, TabsList, TabsTrigger, TabsContent, } from './components/navigation/tabs/Tabs.component';
18
20
  export { Alert } from './components/feedback/alert/Alert.component';
19
21
  export type { AlertProps } from './components/feedback/alert/Alert.component';
@@ -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;AAG3E,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;AAG5E,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC"}
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;AAG5E,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC"}