@anoki/fse-ui 1.0.548 → 1.0.550

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 (216) hide show
  1. package/dist/index.cjs213.js +1 -1
  2. package/dist/index.cjs217.js +1 -1
  3. package/dist/index.cjs224.js +1 -1
  4. package/dist/index.cjs235.js +1 -1
  5. package/dist/index.cjs25.js +1 -1
  6. package/dist/index.cjs25.js.map +1 -1
  7. package/dist/index.cjs262.js +1 -1
  8. package/dist/index.cjs30.js +1 -1
  9. package/dist/index.cjs301.js +1 -1
  10. package/dist/index.cjs326.js +1 -1
  11. package/dist/index.cjs327.js +1 -1
  12. package/dist/index.cjs332.js +1 -1
  13. package/dist/index.cjs332.js.map +1 -1
  14. package/dist/index.cjs333.js +2 -0
  15. package/dist/index.cjs333.js.map +1 -0
  16. package/dist/index.cjs334.js +2 -0
  17. package/dist/index.cjs334.js.map +1 -0
  18. package/dist/index.cjs335.js +1 -1
  19. package/dist/index.cjs335.js.map +1 -1
  20. package/dist/index.cjs336.js +1 -1
  21. package/dist/index.cjs336.js.map +1 -1
  22. package/dist/index.cjs337.js +1 -1
  23. package/dist/index.cjs337.js.map +1 -1
  24. package/dist/index.cjs338.js +1 -1
  25. package/dist/index.cjs338.js.map +1 -1
  26. package/dist/index.cjs339.js +1 -1
  27. package/dist/index.cjs339.js.map +1 -1
  28. package/dist/index.cjs343.js +1 -1
  29. package/dist/index.cjs344.js +1 -1
  30. package/dist/index.cjs345.js +1 -1
  31. package/dist/index.cjs345.js.map +1 -1
  32. package/dist/index.cjs346.js +1 -1
  33. package/dist/index.cjs346.js.map +1 -1
  34. package/dist/index.cjs347.js +1 -1
  35. package/dist/index.cjs347.js.map +1 -1
  36. package/dist/index.cjs348.js +1 -1
  37. package/dist/index.cjs348.js.map +1 -1
  38. package/dist/index.cjs349.js +1 -1
  39. package/dist/index.cjs349.js.map +1 -1
  40. package/dist/index.cjs350.js +1 -1
  41. package/dist/index.cjs350.js.map +1 -1
  42. package/dist/index.cjs351.js +1 -1
  43. package/dist/index.cjs351.js.map +1 -1
  44. package/dist/index.cjs352.js +2 -0
  45. package/dist/index.cjs352.js.map +1 -0
  46. package/dist/index.cjs353.js +2 -0
  47. package/dist/index.cjs353.js.map +1 -0
  48. package/dist/index.cjs365.js +2 -0
  49. package/dist/index.cjs365.js.map +1 -0
  50. package/dist/index.cjs366.js +2 -0
  51. package/dist/index.cjs366.js.map +1 -0
  52. package/dist/{index.cjs371.js → index.cjs367.js} +1 -1
  53. package/dist/{index.cjs371.js.map → index.cjs367.js.map} +1 -1
  54. package/dist/{index.cjs372.js → index.cjs368.js} +2 -2
  55. package/dist/{index.cjs372.js.map → index.cjs368.js.map} +1 -1
  56. package/dist/index.cjs369.js +1 -1
  57. package/dist/index.cjs369.js.map +1 -1
  58. package/dist/index.cjs370.js +1 -1
  59. package/dist/index.cjs370.js.map +1 -1
  60. package/dist/index.cjs375.js +1 -1
  61. package/dist/index.cjs377.js +1 -1
  62. package/dist/index.cjs378.js +1 -1
  63. package/dist/index.cjs383.js +1 -1
  64. package/dist/index.cjs385.js +1 -1
  65. package/dist/index.cjs387.js +1 -1
  66. package/dist/index.cjs387.js.map +1 -1
  67. package/dist/index.cjs388.js +1 -38
  68. package/dist/index.cjs388.js.map +1 -1
  69. package/dist/index.cjs389.js +1 -1
  70. package/dist/index.cjs389.js.map +1 -1
  71. package/dist/index.cjs390.js +1 -1
  72. package/dist/index.cjs390.js.map +1 -1
  73. package/dist/index.cjs391.js +38 -1
  74. package/dist/index.cjs391.js.map +1 -1
  75. package/dist/index.cjs392.js +1 -1
  76. package/dist/index.cjs392.js.map +1 -1
  77. package/dist/index.cjs393.js +1 -1
  78. package/dist/index.cjs393.js.map +1 -1
  79. package/dist/index.cjs394.js +1 -1
  80. package/dist/index.cjs394.js.map +1 -1
  81. package/dist/index.cjs397.js +2 -0
  82. package/dist/index.cjs397.js.map +1 -0
  83. package/dist/index.cjs398.js +2 -0
  84. package/dist/index.cjs398.js.map +1 -0
  85. package/dist/index.cjs399.js +1 -1
  86. package/dist/index.cjs399.js.map +1 -1
  87. package/dist/index.cjs400.js +1 -1
  88. package/dist/index.cjs400.js.map +1 -1
  89. package/dist/index.cjs410.js +1 -1
  90. package/dist/index.cjs65.js +1 -1
  91. package/dist/index.cjs65.js.map +1 -1
  92. package/dist/index.d.ts +12 -3
  93. package/dist/index.es213.js +7 -7
  94. package/dist/index.es217.js +1 -1
  95. package/dist/index.es224.js +5 -5
  96. package/dist/index.es235.js +13 -13
  97. package/dist/index.es25.js +60 -42
  98. package/dist/index.es25.js.map +1 -1
  99. package/dist/index.es262.js +5 -5
  100. package/dist/index.es30.js +4 -4
  101. package/dist/index.es301.js +4 -4
  102. package/dist/index.es326.js +1 -1
  103. package/dist/index.es327.js +1 -1
  104. package/dist/index.es332.js +7 -15
  105. package/dist/index.es332.js.map +1 -1
  106. package/dist/index.es333.js +30 -0
  107. package/dist/index.es333.js.map +1 -0
  108. package/dist/index.es334.js +71 -0
  109. package/dist/index.es334.js.map +1 -0
  110. package/dist/index.es335.js +29 -6
  111. package/dist/index.es335.js.map +1 -1
  112. package/dist/index.es336.js +32 -26
  113. package/dist/index.es336.js.map +1 -1
  114. package/dist/index.es337.js +617 -63
  115. package/dist/index.es337.js.map +1 -1
  116. package/dist/index.es338.js +10 -29
  117. package/dist/index.es338.js.map +1 -1
  118. package/dist/index.es339.js +15 -33
  119. package/dist/index.es339.js.map +1 -1
  120. package/dist/index.es343.js +1 -1
  121. package/dist/index.es344.js +2 -2
  122. package/dist/index.es345.js +2 -125
  123. package/dist/index.es345.js.map +1 -1
  124. package/dist/index.es346.js +2 -135
  125. package/dist/index.es346.js.map +1 -1
  126. package/dist/index.es347.js +124 -13
  127. package/dist/index.es347.js.map +1 -1
  128. package/dist/index.es348.js +134 -14
  129. package/dist/index.es348.js.map +1 -1
  130. package/dist/index.es349.js +12 -7
  131. package/dist/index.es349.js.map +1 -1
  132. package/dist/index.es350.js +15 -50
  133. package/dist/index.es350.js.map +1 -1
  134. package/dist/index.es351.js +9 -53
  135. package/dist/index.es351.js.map +1 -1
  136. package/dist/index.es352.js +53 -0
  137. package/dist/index.es352.js.map +1 -0
  138. package/dist/index.es353.js +56 -0
  139. package/dist/index.es353.js.map +1 -0
  140. package/dist/index.es365.js +14 -0
  141. package/dist/index.es365.js.map +1 -0
  142. package/dist/index.es366.js +49 -0
  143. package/dist/index.es366.js.map +1 -0
  144. package/dist/{index.es371.js → index.es367.js} +1 -1
  145. package/dist/{index.es371.js.map → index.es367.js.map} +1 -1
  146. package/dist/{index.es372.js → index.es368.js} +6 -6
  147. package/dist/{index.es372.js.map → index.es368.js.map} +1 -1
  148. package/dist/index.es369.js +177 -10
  149. package/dist/index.es369.js.map +1 -1
  150. package/dist/index.es370.js +4 -46
  151. package/dist/index.es370.js.map +1 -1
  152. package/dist/index.es375.js +1 -1
  153. package/dist/index.es377.js +1 -1
  154. package/dist/index.es378.js +3 -3
  155. package/dist/index.es383.js +1 -1
  156. package/dist/index.es385.js +4 -4
  157. package/dist/index.es387.js +512 -54
  158. package/dist/index.es387.js.map +1 -1
  159. package/dist/index.es388.js +126 -68
  160. package/dist/index.es388.js.map +1 -1
  161. package/dist/index.es389.js +128 -8
  162. package/dist/index.es389.js.map +1 -1
  163. package/dist/index.es390.js +64 -13
  164. package/dist/index.es390.js.map +1 -1
  165. package/dist/index.es391.js +68 -61
  166. package/dist/index.es391.js.map +1 -1
  167. package/dist/index.es392.js +7 -521
  168. package/dist/index.es392.js.map +1 -1
  169. package/dist/index.es393.js +13 -126
  170. package/dist/index.es393.js.map +1 -1
  171. package/dist/index.es394.js +60 -127
  172. package/dist/index.es394.js.map +1 -1
  173. package/dist/index.es397.js +26 -0
  174. package/dist/index.es397.js.map +1 -0
  175. package/dist/index.es398.js +16 -0
  176. package/dist/index.es398.js.map +1 -0
  177. package/dist/index.es399.js +25 -20
  178. package/dist/index.es399.js.map +1 -1
  179. package/dist/index.es400.js +4 -12
  180. package/dist/index.es400.js.map +1 -1
  181. package/dist/index.es410.js +7 -7
  182. package/dist/index.es65.js +109 -99
  183. package/dist/index.es65.js.map +1 -1
  184. package/package.json +1 -1
  185. package/dist/index.cjs340.js +0 -2
  186. package/dist/index.cjs340.js.map +0 -1
  187. package/dist/index.cjs341.js +0 -2
  188. package/dist/index.cjs341.js.map +0 -1
  189. package/dist/index.cjs358.js +0 -2
  190. package/dist/index.cjs358.js.map +0 -1
  191. package/dist/index.cjs359.js +0 -2
  192. package/dist/index.cjs359.js.map +0 -1
  193. package/dist/index.cjs373.js +0 -2
  194. package/dist/index.cjs373.js.map +0 -1
  195. package/dist/index.cjs374.js +0 -2
  196. package/dist/index.cjs374.js.map +0 -1
  197. package/dist/index.cjs401.js +0 -2
  198. package/dist/index.cjs401.js.map +0 -1
  199. package/dist/index.cjs402.js +0 -2
  200. package/dist/index.cjs402.js.map +0 -1
  201. package/dist/index.es340.js +0 -625
  202. package/dist/index.es340.js.map +0 -1
  203. package/dist/index.es341.js +0 -14
  204. package/dist/index.es341.js.map +0 -1
  205. package/dist/index.es358.js +0 -5
  206. package/dist/index.es358.js.map +0 -1
  207. package/dist/index.es359.js +0 -5
  208. package/dist/index.es359.js.map +0 -1
  209. package/dist/index.es373.js +0 -181
  210. package/dist/index.es373.js.map +0 -1
  211. package/dist/index.es374.js +0 -7
  212. package/dist/index.es374.js.map +0 -1
  213. package/dist/index.es401.js +0 -31
  214. package/dist/index.es401.js.map +0 -1
  215. package/dist/index.es402.js +0 -8
  216. package/dist/index.es402.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs399.js","sources":["../node_modules/react-remove-scroll-bar/dist/es2015/utils.js"],"sourcesContent":["export var zeroGap = {\n left: 0,\n top: 0,\n right: 0,\n gap: 0,\n};\nvar parse = function (x) { return parseInt(x || '', 10) || 0; };\nvar getOffset = function (gapMode) {\n var cs = window.getComputedStyle(document.body);\n var left = cs[gapMode === 'padding' ? 'paddingLeft' : 'marginLeft'];\n var top = cs[gapMode === 'padding' ? 'paddingTop' : 'marginTop'];\n var right = cs[gapMode === 'padding' ? 'paddingRight' : 'marginRight'];\n return [parse(left), parse(top), parse(right)];\n};\nexport var getGapWidth = function (gapMode) {\n if (gapMode === void 0) { gapMode = 'margin'; }\n if (typeof window === 'undefined') {\n return zeroGap;\n }\n var offsets = getOffset(gapMode);\n var documentWidth = document.documentElement.clientWidth;\n var windowWidth = window.innerWidth;\n return {\n left: offsets[0],\n top: offsets[1],\n right: offsets[2],\n gap: Math.max(0, windowWidth - documentWidth + offsets[2] - offsets[0]),\n };\n};\n"],"names":["zeroGap","parse","x","getOffset","gapMode","cs","left","top","right","getGapWidth","offsets","documentWidth","windowWidth"],"mappings":"gFAAU,IAACA,EAAU,CACjB,KAAM,EACN,IAAK,EACL,MAAO,EACP,IAAK,CACT,EACIC,EAAQ,SAAUC,EAAG,CAAE,OAAO,SAASA,GAAK,GAAI,EAAE,GAAK,CAAI,EAC3DC,EAAY,SAAUC,EAAS,CAC/B,IAAIC,EAAK,OAAO,iBAAiB,SAAS,IAAI,EAC1CC,EAAOD,EAAGD,IAAY,UAAY,cAAgB,YAAY,EAC9DG,EAAMF,EAAGD,IAAY,UAAY,aAAe,WAAW,EAC3DI,EAAQH,EAAGD,IAAY,UAAY,eAAiB,aAAa,EACrE,MAAO,CAACH,EAAMK,CAAI,EAAGL,EAAMM,CAAG,EAAGN,EAAMO,CAAK,CAAC,CACjD,EACWC,EAAc,SAAUL,EAAS,CAExC,GADIA,IAAY,SAAUA,EAAU,UAChC,OAAO,OAAW,IAClB,OAAOJ,EAEX,IAAIU,EAAUP,EAAUC,CAAO,EAC3BO,EAAgB,SAAS,gBAAgB,YACzCC,EAAc,OAAO,WACzB,MAAO,CACH,KAAMF,EAAQ,CAAC,EACf,IAAKA,EAAQ,CAAC,EACd,MAAOA,EAAQ,CAAC,EAChB,IAAK,KAAK,IAAI,EAAGE,EAAcD,EAAgBD,EAAQ,CAAC,EAAIA,EAAQ,CAAC,CAAC,CACzE,CACL","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.cjs399.js","sources":["../node_modules/react-style-singleton/dist/es2015/singleton.js"],"sourcesContent":["import { getNonce } from 'get-nonce';\nfunction makeStyleTag() {\n if (!document)\n return null;\n var tag = document.createElement('style');\n tag.type = 'text/css';\n var nonce = getNonce();\n if (nonce) {\n tag.setAttribute('nonce', nonce);\n }\n return tag;\n}\nfunction injectStyles(tag, css) {\n // @ts-ignore\n if (tag.styleSheet) {\n // @ts-ignore\n tag.styleSheet.cssText = css;\n }\n else {\n tag.appendChild(document.createTextNode(css));\n }\n}\nfunction insertStyleTag(tag) {\n var head = document.head || document.getElementsByTagName('head')[0];\n head.appendChild(tag);\n}\nexport var stylesheetSingleton = function () {\n var counter = 0;\n var stylesheet = null;\n return {\n add: function (style) {\n if (counter == 0) {\n if ((stylesheet = makeStyleTag())) {\n injectStyles(stylesheet, style);\n insertStyleTag(stylesheet);\n }\n }\n counter++;\n },\n remove: function () {\n counter--;\n if (!counter && stylesheet) {\n stylesheet.parentNode && stylesheet.parentNode.removeChild(stylesheet);\n stylesheet = null;\n }\n },\n };\n};\n"],"names":["makeStyleTag","tag","nonce","getNonce","injectStyles","css","insertStyleTag","head","stylesheetSingleton","counter","stylesheet","style"],"mappings":"qHACA,SAASA,GAAe,CACpB,GAAI,CAAC,SACD,OAAO,KACX,IAAIC,EAAM,SAAS,cAAc,OAAO,EACxCA,EAAI,KAAO,WACX,IAAIC,EAAQC,EAAAA,SAAU,EACtB,OAAID,GACAD,EAAI,aAAa,QAASC,CAAK,EAE5BD,CACX,CACA,SAASG,EAAaH,EAAKI,EAAK,CAExBJ,EAAI,WAEJA,EAAI,WAAW,QAAUI,EAGzBJ,EAAI,YAAY,SAAS,eAAeI,CAAG,CAAC,CAEpD,CACA,SAASC,EAAeL,EAAK,CACzB,IAAIM,EAAO,SAAS,MAAQ,SAAS,qBAAqB,MAAM,EAAE,CAAC,EACnEA,EAAK,YAAYN,CAAG,CACxB,CACU,IAACO,EAAsB,UAAY,CACzC,IAAIC,EAAU,EACVC,EAAa,KACjB,MAAO,CACH,IAAK,SAAUC,EAAO,CACdF,GAAW,IACNC,EAAaV,OACdI,EAAaM,EAAYC,CAAK,EAC9BL,EAAeI,CAAU,GAGjCD,GACH,EACD,OAAQ,UAAY,CAChBA,IACI,CAACA,GAAWC,IACZA,EAAW,YAAcA,EAAW,WAAW,YAAYA,CAAU,EACrEA,EAAa,KAEpB,CACJ,CACL","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react"),c=require("./index.cjs401.js");function u(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const o=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,o.get?o:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const i=u(r);var a=function(){var e=c.stylesheetSingleton();return function(t,n){i.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}};exports.styleHookSingleton=a;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var e=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};exports.getNonce=e;
2
2
  //# sourceMappingURL=index.cjs400.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs400.js","sources":["../node_modules/react-style-singleton/dist/es2015/hook.js"],"sourcesContent":["import * as React from 'react';\nimport { stylesheetSingleton } from './singleton';\n/**\n * creates a hook to control style singleton\n * @see {@link styleSingleton} for a safer component version\n * @example\n * ```tsx\n * const useStyle = styleHookSingleton();\n * ///\n * useStyle('body { overflow: hidden}');\n */\nexport var styleHookSingleton = function () {\n var sheet = stylesheetSingleton();\n return function (styles, isDynamic) {\n React.useEffect(function () {\n sheet.add(styles);\n return function () {\n sheet.remove();\n };\n }, [styles && isDynamic]);\n };\n};\n"],"names":["styleHookSingleton","sheet","stylesheetSingleton","styles","isDynamic","React"],"mappings":"kaAWU,IAACA,EAAqB,UAAY,CACxC,IAAIC,EAAQC,EAAAA,oBAAqB,EACjC,OAAO,SAAUC,EAAQC,EAAW,CAChCC,EAAM,UAAU,UAAY,CACxB,OAAAJ,EAAM,IAAIE,CAAM,EACT,UAAY,CACfF,EAAM,OAAQ,CACjB,CACb,EAAW,CAACE,GAAUC,CAAS,CAAC,CAC3B,CACL","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.cjs400.js","sources":["../node_modules/get-nonce/dist/es2015/index.js"],"sourcesContent":["var currentNonce;\nexport var setNonce = function (nonce) {\n currentNonce = nonce;\n};\nexport var getNonce = function () {\n if (currentNonce) {\n return currentNonce;\n }\n if (typeof __webpack_nonce__ !== 'undefined') {\n return __webpack_nonce__;\n }\n return undefined;\n};\n"],"names":["getNonce"],"mappings":"gFAIU,IAACA,EAAW,UAAY,CAI9B,GAAI,OAAO,kBAAsB,IAC7B,OAAO,iBAGf","x_google_ignoreList":[0]}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const le=require("react"),j=require("./index.cjs339.js"),N=require("./index.cjs344.js"),se=require("./index.cjs337.js"),A=require("./index.cjs336.js"),g=require("./index.cjs369.js"),ce=require("./index.cjs371.js"),ie=require("./index.cjs374.js"),ae=require("./index.cjs419.js"),E=require("./index.cjs335.js"),m=require("./index.cjs185.js");function ue(e){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(o,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}return o.default=e,Object.freeze(o)}const s=ue(le);function de(e,o){return s.useReducer((r,n)=>o[r][n]??r,e)}var Y="ScrollArea",[K,fe]=se.createContextScope(Y),[he,v]=K(Y),V=s.forwardRef((e,o)=>{const{__scopeScrollArea:r,type:n="hover",dir:t,scrollHideDelay:l=600,...c}=e,[i,a]=s.useState(null),[f,u]=s.useState(null),[h,d]=s.useState(null),[b,S]=s.useState(null),[T,M]=s.useState(null),[R,_]=s.useState(0),[X,L]=s.useState(0),[D,y]=s.useState(!1),[H,O]=s.useState(!1),p=A.useComposedRefs(o,P=>a(P)),x=ce.useDirection(t);return m.jsxRuntimeExports.jsx(he,{scope:r,type:n,dir:x,scrollHideDelay:l,scrollArea:i,viewport:f,onViewportChange:u,content:h,onContentChange:d,scrollbarX:b,onScrollbarXChange:S,scrollbarXEnabled:D,onScrollbarXEnabledChange:y,scrollbarY:T,onScrollbarYChange:M,scrollbarYEnabled:H,onScrollbarYEnabledChange:O,onCornerWidthChange:_,onCornerHeightChange:L,children:m.jsxRuntimeExports.jsx(j.Primitive.div,{dir:x,...c,ref:p,style:{position:"relative","--radix-scroll-area-corner-width":R+"px","--radix-scroll-area-corner-height":X+"px",...e.style}})})});V.displayName=Y;var Q="ScrollAreaViewport",U=s.forwardRef((e,o)=>{const{__scopeScrollArea:r,children:n,nonce:t,...l}=e,c=v(Q,r),i=s.useRef(null),a=A.useComposedRefs(o,i,c.onViewportChange);return m.jsxRuntimeExports.jsxs(m.jsxRuntimeExports.Fragment,{children:[m.jsxRuntimeExports.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:t}),m.jsxRuntimeExports.jsx(j.Primitive.div,{"data-radix-scroll-area-viewport":"",...l,ref:a,style:{overflowX:c.scrollbarXEnabled?"scroll":"hidden",overflowY:c.scrollbarYEnabled?"scroll":"hidden",...e.style},children:m.jsxRuntimeExports.jsx("div",{ref:c.onContentChange,style:{minWidth:"100%",display:"table"},children:n})})]})});U.displayName=Q;var w="ScrollAreaScrollbar",q=s.forwardRef((e,o)=>{const{forceMount:r,...n}=e,t=v(w,e.__scopeScrollArea),{onScrollbarXEnabledChange:l,onScrollbarYEnabledChange:c}=t,i=e.orientation==="horizontal";return s.useEffect(()=>(i?l(!0):c(!0),()=>{i?l(!1):c(!1)}),[i,l,c]),t.type==="hover"?m.jsxRuntimeExports.jsx(me,{...n,ref:o,forceMount:r}):t.type==="scroll"?m.jsxRuntimeExports.jsx(be,{...n,ref:o,forceMount:r}):t.type==="auto"?m.jsxRuntimeExports.jsx(Z,{...n,ref:o,forceMount:r}):t.type==="always"?m.jsxRuntimeExports.jsx(B,{...n,ref:o}):null});q.displayName=w;var me=s.forwardRef((e,o)=>{const{forceMount:r,...n}=e,t=v(w,e.__scopeScrollArea),[l,c]=s.useState(!1);return s.useEffect(()=>{const i=t.scrollArea;let a=0;if(i){const f=()=>{window.clearTimeout(a),c(!0)},u=()=>{a=window.setTimeout(()=>c(!1),t.scrollHideDelay)};return i.addEventListener("pointerenter",f),i.addEventListener("pointerleave",u),()=>{window.clearTimeout(a),i.removeEventListener("pointerenter",f),i.removeEventListener("pointerleave",u)}}},[t.scrollArea,t.scrollHideDelay]),m.jsxRuntimeExports.jsx(N.Presence,{present:r||l,children:m.jsxRuntimeExports.jsx(Z,{"data-state":l?"visible":"hidden",...n,ref:o})})}),be=s.forwardRef((e,o)=>{const{forceMount:r,...n}=e,t=v(w,e.__scopeScrollArea),l=e.orientation==="horizontal",c=I(()=>a("SCROLL_END"),100),[i,a]=de("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return s.useEffect(()=>{if(i==="idle"){const f=window.setTimeout(()=>a("HIDE"),t.scrollHideDelay);return()=>window.clearTimeout(f)}},[i,t.scrollHideDelay,a]),s.useEffect(()=>{const f=t.viewport,u=l?"scrollLeft":"scrollTop";if(f){let h=f[u];const d=()=>{const b=f[u];h!==b&&(a("SCROLL"),c()),h=b};return f.addEventListener("scroll",d),()=>f.removeEventListener("scroll",d)}},[t.viewport,l,a,c]),m.jsxRuntimeExports.jsx(N.Presence,{present:r||i!=="hidden",children:m.jsxRuntimeExports.jsx(B,{"data-state":i==="hidden"?"hidden":"visible",...n,ref:o,onPointerEnter:E.composeEventHandlers(e.onPointerEnter,()=>a("POINTER_ENTER")),onPointerLeave:E.composeEventHandlers(e.onPointerLeave,()=>a("POINTER_LEAVE"))})})}),Z=s.forwardRef((e,o)=>{const r=v(w,e.__scopeScrollArea),{forceMount:n,...t}=e,[l,c]=s.useState(!1),i=e.orientation==="horizontal",a=I(()=>{if(r.viewport){const f=r.viewport.offsetWidth<r.viewport.scrollWidth,u=r.viewport.offsetHeight<r.viewport.scrollHeight;c(i?f:u)}},10);return C(r.viewport,a),C(r.content,a),m.jsxRuntimeExports.jsx(N.Presence,{present:n||l,children:m.jsxRuntimeExports.jsx(B,{"data-state":l?"visible":"hidden",...t,ref:o})})}),B=s.forwardRef((e,o)=>{const{orientation:r="vertical",...n}=e,t=v(w,e.__scopeScrollArea),l=s.useRef(null),c=s.useRef(0),[i,a]=s.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),f=te(i.viewport,i.content),u={...n,sizes:i,onSizesChange:a,hasThumb:f>0&&f<1,onThumbChange:d=>l.current=d,onThumbPointerUp:()=>c.current=0,onThumbPointerDown:d=>c.current=d};function h(d,b){return Re(d,c.current,i,b)}return r==="horizontal"?m.jsxRuntimeExports.jsx(pe,{...u,ref:o,onThumbPositionChange:()=>{if(t.viewport&&l.current){const d=t.viewport.scrollLeft,b=J(d,i,t.dir);l.current.style.transform=`translate3d(${b}px, 0, 0)`}},onWheelScroll:d=>{t.viewport&&(t.viewport.scrollLeft=d)},onDragScroll:d=>{t.viewport&&(t.viewport.scrollLeft=h(d,t.dir))}}):r==="vertical"?m.jsxRuntimeExports.jsx(Se,{...u,ref:o,onThumbPositionChange:()=>{if(t.viewport&&l.current){const d=t.viewport.scrollTop,b=J(d,i);l.current.style.transform=`translate3d(0, ${b}px, 0)`}},onWheelScroll:d=>{t.viewport&&(t.viewport.scrollTop=d)},onDragScroll:d=>{t.viewport&&(t.viewport.scrollTop=h(d))}}):null}),pe=s.forwardRef((e,o)=>{const{sizes:r,onSizesChange:n,...t}=e,l=v(w,e.__scopeScrollArea),[c,i]=s.useState(),a=s.useRef(null),f=A.useComposedRefs(o,a,l.onScrollbarXChange);return s.useEffect(()=>{a.current&&i(getComputedStyle(a.current))},[a]),m.jsxRuntimeExports.jsx(re,{"data-orientation":"horizontal",...t,ref:f,sizes:r,style:{bottom:0,left:l.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:l.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":k(r)+"px",...e.style},onThumbPointerDown:u=>e.onThumbPointerDown(u.x),onDragScroll:u=>e.onDragScroll(u.x),onWheelScroll:(u,h)=>{if(l.viewport){const d=l.viewport.scrollLeft+u.deltaX;e.onWheelScroll(d),ne(d,h)&&u.preventDefault()}},onResize:()=>{a.current&&l.viewport&&c&&n({content:l.viewport.scrollWidth,viewport:l.viewport.offsetWidth,scrollbar:{size:a.current.clientWidth,paddingStart:z(c.paddingLeft),paddingEnd:z(c.paddingRight)}})}})}),Se=s.forwardRef((e,o)=>{const{sizes:r,onSizesChange:n,...t}=e,l=v(w,e.__scopeScrollArea),[c,i]=s.useState(),a=s.useRef(null),f=A.useComposedRefs(o,a,l.onScrollbarYChange);return s.useEffect(()=>{a.current&&i(getComputedStyle(a.current))},[a]),m.jsxRuntimeExports.jsx(re,{"data-orientation":"vertical",...t,ref:f,sizes:r,style:{top:0,right:l.dir==="ltr"?0:void 0,left:l.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":k(r)+"px",...e.style},onThumbPointerDown:u=>e.onThumbPointerDown(u.y),onDragScroll:u=>e.onDragScroll(u.y),onWheelScroll:(u,h)=>{if(l.viewport){const d=l.viewport.scrollTop+u.deltaY;e.onWheelScroll(d),ne(d,h)&&u.preventDefault()}},onResize:()=>{a.current&&l.viewport&&c&&n({content:l.viewport.scrollHeight,viewport:l.viewport.offsetHeight,scrollbar:{size:a.current.clientHeight,paddingStart:z(c.paddingTop),paddingEnd:z(c.paddingBottom)}})}})}),[ve,ee]=K(w),re=s.forwardRef((e,o)=>{const{__scopeScrollArea:r,sizes:n,hasThumb:t,onThumbChange:l,onThumbPointerUp:c,onThumbPointerDown:i,onThumbPositionChange:a,onDragScroll:f,onWheelScroll:u,onResize:h,...d}=e,b=v(w,r),[S,T]=s.useState(null),M=A.useComposedRefs(o,p=>T(p)),R=s.useRef(null),_=s.useRef(""),X=b.viewport,L=n.content-n.viewport,D=g.useCallbackRef(u),y=g.useCallbackRef(a),H=I(h,10);function O(p){if(R.current){const x=p.clientX-R.current.left,P=p.clientY-R.current.top;f({x,y:P})}}return s.useEffect(()=>{const p=x=>{const P=x.target;(S==null?void 0:S.contains(P))&&D(x,L)};return document.addEventListener("wheel",p,{passive:!1}),()=>document.removeEventListener("wheel",p,{passive:!1})},[X,S,L,D]),s.useEffect(y,[n,y]),C(S,H),C(b.content,H),m.jsxRuntimeExports.jsx(ve,{scope:r,scrollbar:S,hasThumb:t,onThumbChange:g.useCallbackRef(l),onThumbPointerUp:g.useCallbackRef(c),onThumbPositionChange:y,onThumbPointerDown:g.useCallbackRef(i),children:m.jsxRuntimeExports.jsx(j.Primitive.div,{...d,ref:M,style:{position:"absolute",...d.style},onPointerDown:E.composeEventHandlers(e.onPointerDown,p=>{p.button===0&&(p.target.setPointerCapture(p.pointerId),R.current=S.getBoundingClientRect(),_.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",b.viewport&&(b.viewport.style.scrollBehavior="auto"),O(p))}),onPointerMove:E.composeEventHandlers(e.onPointerMove,O),onPointerUp:E.composeEventHandlers(e.onPointerUp,p=>{const x=p.target;x.hasPointerCapture(p.pointerId)&&x.releasePointerCapture(p.pointerId),document.body.style.webkitUserSelect=_.current,b.viewport&&(b.viewport.style.scrollBehavior=""),R.current=null})})})}),W="ScrollAreaThumb",F=s.forwardRef((e,o)=>{const{forceMount:r,...n}=e,t=ee(W,e.__scopeScrollArea);return m.jsxRuntimeExports.jsx(N.Presence,{present:r||t.hasThumb,children:m.jsxRuntimeExports.jsx(xe,{ref:o,...n})})}),xe=s.forwardRef((e,o)=>{const{__scopeScrollArea:r,style:n,...t}=e,l=v(W,r),c=ee(W,r),{onThumbPositionChange:i}=c,a=A.useComposedRefs(o,h=>c.onThumbChange(h)),f=s.useRef(void 0),u=I(()=>{f.current&&(f.current(),f.current=void 0)},100);return s.useEffect(()=>{const h=l.viewport;if(h){const d=()=>{if(u(),!f.current){const b=ge(h,i);f.current=b,i()}};return i(),h.addEventListener("scroll",d),()=>h.removeEventListener("scroll",d)}},[l.viewport,u,i]),m.jsxRuntimeExports.jsx(j.Primitive.div,{"data-state":c.hasThumb?"visible":"hidden",...t,ref:a,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...n},onPointerDownCapture:E.composeEventHandlers(e.onPointerDownCapture,h=>{const b=h.target.getBoundingClientRect(),S=h.clientX-b.left,T=h.clientY-b.top;c.onThumbPointerDown({x:S,y:T})}),onPointerUp:E.composeEventHandlers(e.onPointerUp,c.onThumbPointerUp)})});F.displayName=W;var $="ScrollAreaCorner",G=s.forwardRef((e,o)=>{const r=v($,e.__scopeScrollArea),n=!!(r.scrollbarX&&r.scrollbarY);return r.type!=="scroll"&&n?m.jsxRuntimeExports.jsx(we,{...e,ref:o}):null});G.displayName=$;var we=s.forwardRef((e,o)=>{const{__scopeScrollArea:r,...n}=e,t=v($,r),[l,c]=s.useState(0),[i,a]=s.useState(0),f=!!(l&&i);return C(t.scrollbarX,()=>{var h;const u=((h=t.scrollbarX)==null?void 0:h.offsetHeight)||0;t.onCornerHeightChange(u),a(u)}),C(t.scrollbarY,()=>{var h;const u=((h=t.scrollbarY)==null?void 0:h.offsetWidth)||0;t.onCornerWidthChange(u),c(u)}),f?m.jsxRuntimeExports.jsx(j.Primitive.div,{...n,ref:o,style:{width:l,height:i,position:"absolute",right:t.dir==="ltr"?0:void 0,left:t.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function z(e){return e?parseInt(e,10):0}function te(e,o){const r=e/o;return isNaN(r)?0:r}function k(e){const o=te(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,n=(e.scrollbar.size-r)*o;return Math.max(n,18)}function Re(e,o,r,n="ltr"){const t=k(r),l=t/2,c=o||l,i=t-c,a=r.scrollbar.paddingStart+c,f=r.scrollbar.size-r.scrollbar.paddingEnd-i,u=r.content-r.viewport,h=n==="ltr"?[0,u]:[u*-1,0];return oe([a,f],h)(e)}function J(e,o,r="ltr"){const n=k(o),t=o.scrollbar.paddingStart+o.scrollbar.paddingEnd,l=o.scrollbar.size-t,c=o.content-o.viewport,i=l-n,a=r==="ltr"?[0,c]:[c*-1,0],f=ae.clamp(e,a);return oe([0,c],[0,i])(f)}function oe(e,o){return r=>{if(e[0]===e[1]||o[0]===o[1])return o[0];const n=(o[1]-o[0])/(e[1]-e[0]);return o[0]+n*(r-e[0])}}function ne(e,o){return e>0&&e<o}var ge=(e,o=()=>{})=>{let r={left:e.scrollLeft,top:e.scrollTop},n=0;return function t(){const l={left:e.scrollLeft,top:e.scrollTop},c=r.left!==l.left,i=r.top!==l.top;(c||i)&&o(),r=l,n=window.requestAnimationFrame(t)}(),()=>window.cancelAnimationFrame(n)};function I(e,o){const r=g.useCallbackRef(e),n=s.useRef(0);return s.useEffect(()=>()=>window.clearTimeout(n.current),[]),s.useCallback(()=>{window.clearTimeout(n.current),n.current=window.setTimeout(r,o)},[r,o])}function C(e,o){const r=g.useCallbackRef(o);ie.useLayoutEffect(()=>{let n=0;if(e){const t=new ResizeObserver(()=>{cancelAnimationFrame(n),n=window.requestAnimationFrame(r)});return t.observe(e),()=>{window.cancelAnimationFrame(n),t.unobserve(e)}}},[e,r])}var Ee=V,Pe=U,Ce=q,Ae=F,Te=G;exports.Corner=Te;exports.Root=Ee;exports.ScrollArea=V;exports.ScrollAreaCorner=G;exports.ScrollAreaScrollbar=q;exports.ScrollAreaThumb=F;exports.ScrollAreaViewport=U;exports.Scrollbar=Ce;exports.Thumb=Ae;exports.Viewport=Pe;exports.createScrollAreaScope=fe;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const le=require("react"),j=require("./index.cjs336.js"),N=require("./index.cjs344.js"),se=require("./index.cjs334.js"),A=require("./index.cjs333.js"),g=require("./index.cjs365.js"),ce=require("./index.cjs367.js"),ie=require("./index.cjs370.js"),ae=require("./index.cjs419.js"),E=require("./index.cjs332.js"),m=require("./index.cjs185.js");function ue(e){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(o,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}return o.default=e,Object.freeze(o)}const s=ue(le);function de(e,o){return s.useReducer((r,n)=>o[r][n]??r,e)}var Y="ScrollArea",[K,fe]=se.createContextScope(Y),[he,v]=K(Y),V=s.forwardRef((e,o)=>{const{__scopeScrollArea:r,type:n="hover",dir:t,scrollHideDelay:l=600,...c}=e,[i,a]=s.useState(null),[f,u]=s.useState(null),[h,d]=s.useState(null),[b,S]=s.useState(null),[T,M]=s.useState(null),[R,_]=s.useState(0),[X,L]=s.useState(0),[D,y]=s.useState(!1),[H,O]=s.useState(!1),p=A.useComposedRefs(o,P=>a(P)),x=ce.useDirection(t);return m.jsxRuntimeExports.jsx(he,{scope:r,type:n,dir:x,scrollHideDelay:l,scrollArea:i,viewport:f,onViewportChange:u,content:h,onContentChange:d,scrollbarX:b,onScrollbarXChange:S,scrollbarXEnabled:D,onScrollbarXEnabledChange:y,scrollbarY:T,onScrollbarYChange:M,scrollbarYEnabled:H,onScrollbarYEnabledChange:O,onCornerWidthChange:_,onCornerHeightChange:L,children:m.jsxRuntimeExports.jsx(j.Primitive.div,{dir:x,...c,ref:p,style:{position:"relative","--radix-scroll-area-corner-width":R+"px","--radix-scroll-area-corner-height":X+"px",...e.style}})})});V.displayName=Y;var Q="ScrollAreaViewport",U=s.forwardRef((e,o)=>{const{__scopeScrollArea:r,children:n,nonce:t,...l}=e,c=v(Q,r),i=s.useRef(null),a=A.useComposedRefs(o,i,c.onViewportChange);return m.jsxRuntimeExports.jsxs(m.jsxRuntimeExports.Fragment,{children:[m.jsxRuntimeExports.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:t}),m.jsxRuntimeExports.jsx(j.Primitive.div,{"data-radix-scroll-area-viewport":"",...l,ref:a,style:{overflowX:c.scrollbarXEnabled?"scroll":"hidden",overflowY:c.scrollbarYEnabled?"scroll":"hidden",...e.style},children:m.jsxRuntimeExports.jsx("div",{ref:c.onContentChange,style:{minWidth:"100%",display:"table"},children:n})})]})});U.displayName=Q;var w="ScrollAreaScrollbar",q=s.forwardRef((e,o)=>{const{forceMount:r,...n}=e,t=v(w,e.__scopeScrollArea),{onScrollbarXEnabledChange:l,onScrollbarYEnabledChange:c}=t,i=e.orientation==="horizontal";return s.useEffect(()=>(i?l(!0):c(!0),()=>{i?l(!1):c(!1)}),[i,l,c]),t.type==="hover"?m.jsxRuntimeExports.jsx(me,{...n,ref:o,forceMount:r}):t.type==="scroll"?m.jsxRuntimeExports.jsx(be,{...n,ref:o,forceMount:r}):t.type==="auto"?m.jsxRuntimeExports.jsx(Z,{...n,ref:o,forceMount:r}):t.type==="always"?m.jsxRuntimeExports.jsx(B,{...n,ref:o}):null});q.displayName=w;var me=s.forwardRef((e,o)=>{const{forceMount:r,...n}=e,t=v(w,e.__scopeScrollArea),[l,c]=s.useState(!1);return s.useEffect(()=>{const i=t.scrollArea;let a=0;if(i){const f=()=>{window.clearTimeout(a),c(!0)},u=()=>{a=window.setTimeout(()=>c(!1),t.scrollHideDelay)};return i.addEventListener("pointerenter",f),i.addEventListener("pointerleave",u),()=>{window.clearTimeout(a),i.removeEventListener("pointerenter",f),i.removeEventListener("pointerleave",u)}}},[t.scrollArea,t.scrollHideDelay]),m.jsxRuntimeExports.jsx(N.Presence,{present:r||l,children:m.jsxRuntimeExports.jsx(Z,{"data-state":l?"visible":"hidden",...n,ref:o})})}),be=s.forwardRef((e,o)=>{const{forceMount:r,...n}=e,t=v(w,e.__scopeScrollArea),l=e.orientation==="horizontal",c=I(()=>a("SCROLL_END"),100),[i,a]=de("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return s.useEffect(()=>{if(i==="idle"){const f=window.setTimeout(()=>a("HIDE"),t.scrollHideDelay);return()=>window.clearTimeout(f)}},[i,t.scrollHideDelay,a]),s.useEffect(()=>{const f=t.viewport,u=l?"scrollLeft":"scrollTop";if(f){let h=f[u];const d=()=>{const b=f[u];h!==b&&(a("SCROLL"),c()),h=b};return f.addEventListener("scroll",d),()=>f.removeEventListener("scroll",d)}},[t.viewport,l,a,c]),m.jsxRuntimeExports.jsx(N.Presence,{present:r||i!=="hidden",children:m.jsxRuntimeExports.jsx(B,{"data-state":i==="hidden"?"hidden":"visible",...n,ref:o,onPointerEnter:E.composeEventHandlers(e.onPointerEnter,()=>a("POINTER_ENTER")),onPointerLeave:E.composeEventHandlers(e.onPointerLeave,()=>a("POINTER_LEAVE"))})})}),Z=s.forwardRef((e,o)=>{const r=v(w,e.__scopeScrollArea),{forceMount:n,...t}=e,[l,c]=s.useState(!1),i=e.orientation==="horizontal",a=I(()=>{if(r.viewport){const f=r.viewport.offsetWidth<r.viewport.scrollWidth,u=r.viewport.offsetHeight<r.viewport.scrollHeight;c(i?f:u)}},10);return C(r.viewport,a),C(r.content,a),m.jsxRuntimeExports.jsx(N.Presence,{present:n||l,children:m.jsxRuntimeExports.jsx(B,{"data-state":l?"visible":"hidden",...t,ref:o})})}),B=s.forwardRef((e,o)=>{const{orientation:r="vertical",...n}=e,t=v(w,e.__scopeScrollArea),l=s.useRef(null),c=s.useRef(0),[i,a]=s.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),f=te(i.viewport,i.content),u={...n,sizes:i,onSizesChange:a,hasThumb:f>0&&f<1,onThumbChange:d=>l.current=d,onThumbPointerUp:()=>c.current=0,onThumbPointerDown:d=>c.current=d};function h(d,b){return Re(d,c.current,i,b)}return r==="horizontal"?m.jsxRuntimeExports.jsx(pe,{...u,ref:o,onThumbPositionChange:()=>{if(t.viewport&&l.current){const d=t.viewport.scrollLeft,b=J(d,i,t.dir);l.current.style.transform=`translate3d(${b}px, 0, 0)`}},onWheelScroll:d=>{t.viewport&&(t.viewport.scrollLeft=d)},onDragScroll:d=>{t.viewport&&(t.viewport.scrollLeft=h(d,t.dir))}}):r==="vertical"?m.jsxRuntimeExports.jsx(Se,{...u,ref:o,onThumbPositionChange:()=>{if(t.viewport&&l.current){const d=t.viewport.scrollTop,b=J(d,i);l.current.style.transform=`translate3d(0, ${b}px, 0)`}},onWheelScroll:d=>{t.viewport&&(t.viewport.scrollTop=d)},onDragScroll:d=>{t.viewport&&(t.viewport.scrollTop=h(d))}}):null}),pe=s.forwardRef((e,o)=>{const{sizes:r,onSizesChange:n,...t}=e,l=v(w,e.__scopeScrollArea),[c,i]=s.useState(),a=s.useRef(null),f=A.useComposedRefs(o,a,l.onScrollbarXChange);return s.useEffect(()=>{a.current&&i(getComputedStyle(a.current))},[a]),m.jsxRuntimeExports.jsx(re,{"data-orientation":"horizontal",...t,ref:f,sizes:r,style:{bottom:0,left:l.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:l.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":k(r)+"px",...e.style},onThumbPointerDown:u=>e.onThumbPointerDown(u.x),onDragScroll:u=>e.onDragScroll(u.x),onWheelScroll:(u,h)=>{if(l.viewport){const d=l.viewport.scrollLeft+u.deltaX;e.onWheelScroll(d),ne(d,h)&&u.preventDefault()}},onResize:()=>{a.current&&l.viewport&&c&&n({content:l.viewport.scrollWidth,viewport:l.viewport.offsetWidth,scrollbar:{size:a.current.clientWidth,paddingStart:z(c.paddingLeft),paddingEnd:z(c.paddingRight)}})}})}),Se=s.forwardRef((e,o)=>{const{sizes:r,onSizesChange:n,...t}=e,l=v(w,e.__scopeScrollArea),[c,i]=s.useState(),a=s.useRef(null),f=A.useComposedRefs(o,a,l.onScrollbarYChange);return s.useEffect(()=>{a.current&&i(getComputedStyle(a.current))},[a]),m.jsxRuntimeExports.jsx(re,{"data-orientation":"vertical",...t,ref:f,sizes:r,style:{top:0,right:l.dir==="ltr"?0:void 0,left:l.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":k(r)+"px",...e.style},onThumbPointerDown:u=>e.onThumbPointerDown(u.y),onDragScroll:u=>e.onDragScroll(u.y),onWheelScroll:(u,h)=>{if(l.viewport){const d=l.viewport.scrollTop+u.deltaY;e.onWheelScroll(d),ne(d,h)&&u.preventDefault()}},onResize:()=>{a.current&&l.viewport&&c&&n({content:l.viewport.scrollHeight,viewport:l.viewport.offsetHeight,scrollbar:{size:a.current.clientHeight,paddingStart:z(c.paddingTop),paddingEnd:z(c.paddingBottom)}})}})}),[ve,ee]=K(w),re=s.forwardRef((e,o)=>{const{__scopeScrollArea:r,sizes:n,hasThumb:t,onThumbChange:l,onThumbPointerUp:c,onThumbPointerDown:i,onThumbPositionChange:a,onDragScroll:f,onWheelScroll:u,onResize:h,...d}=e,b=v(w,r),[S,T]=s.useState(null),M=A.useComposedRefs(o,p=>T(p)),R=s.useRef(null),_=s.useRef(""),X=b.viewport,L=n.content-n.viewport,D=g.useCallbackRef(u),y=g.useCallbackRef(a),H=I(h,10);function O(p){if(R.current){const x=p.clientX-R.current.left,P=p.clientY-R.current.top;f({x,y:P})}}return s.useEffect(()=>{const p=x=>{const P=x.target;(S==null?void 0:S.contains(P))&&D(x,L)};return document.addEventListener("wheel",p,{passive:!1}),()=>document.removeEventListener("wheel",p,{passive:!1})},[X,S,L,D]),s.useEffect(y,[n,y]),C(S,H),C(b.content,H),m.jsxRuntimeExports.jsx(ve,{scope:r,scrollbar:S,hasThumb:t,onThumbChange:g.useCallbackRef(l),onThumbPointerUp:g.useCallbackRef(c),onThumbPositionChange:y,onThumbPointerDown:g.useCallbackRef(i),children:m.jsxRuntimeExports.jsx(j.Primitive.div,{...d,ref:M,style:{position:"absolute",...d.style},onPointerDown:E.composeEventHandlers(e.onPointerDown,p=>{p.button===0&&(p.target.setPointerCapture(p.pointerId),R.current=S.getBoundingClientRect(),_.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",b.viewport&&(b.viewport.style.scrollBehavior="auto"),O(p))}),onPointerMove:E.composeEventHandlers(e.onPointerMove,O),onPointerUp:E.composeEventHandlers(e.onPointerUp,p=>{const x=p.target;x.hasPointerCapture(p.pointerId)&&x.releasePointerCapture(p.pointerId),document.body.style.webkitUserSelect=_.current,b.viewport&&(b.viewport.style.scrollBehavior=""),R.current=null})})})}),W="ScrollAreaThumb",F=s.forwardRef((e,o)=>{const{forceMount:r,...n}=e,t=ee(W,e.__scopeScrollArea);return m.jsxRuntimeExports.jsx(N.Presence,{present:r||t.hasThumb,children:m.jsxRuntimeExports.jsx(xe,{ref:o,...n})})}),xe=s.forwardRef((e,o)=>{const{__scopeScrollArea:r,style:n,...t}=e,l=v(W,r),c=ee(W,r),{onThumbPositionChange:i}=c,a=A.useComposedRefs(o,h=>c.onThumbChange(h)),f=s.useRef(void 0),u=I(()=>{f.current&&(f.current(),f.current=void 0)},100);return s.useEffect(()=>{const h=l.viewport;if(h){const d=()=>{if(u(),!f.current){const b=ge(h,i);f.current=b,i()}};return i(),h.addEventListener("scroll",d),()=>h.removeEventListener("scroll",d)}},[l.viewport,u,i]),m.jsxRuntimeExports.jsx(j.Primitive.div,{"data-state":c.hasThumb?"visible":"hidden",...t,ref:a,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...n},onPointerDownCapture:E.composeEventHandlers(e.onPointerDownCapture,h=>{const b=h.target.getBoundingClientRect(),S=h.clientX-b.left,T=h.clientY-b.top;c.onThumbPointerDown({x:S,y:T})}),onPointerUp:E.composeEventHandlers(e.onPointerUp,c.onThumbPointerUp)})});F.displayName=W;var $="ScrollAreaCorner",G=s.forwardRef((e,o)=>{const r=v($,e.__scopeScrollArea),n=!!(r.scrollbarX&&r.scrollbarY);return r.type!=="scroll"&&n?m.jsxRuntimeExports.jsx(we,{...e,ref:o}):null});G.displayName=$;var we=s.forwardRef((e,o)=>{const{__scopeScrollArea:r,...n}=e,t=v($,r),[l,c]=s.useState(0),[i,a]=s.useState(0),f=!!(l&&i);return C(t.scrollbarX,()=>{var h;const u=((h=t.scrollbarX)==null?void 0:h.offsetHeight)||0;t.onCornerHeightChange(u),a(u)}),C(t.scrollbarY,()=>{var h;const u=((h=t.scrollbarY)==null?void 0:h.offsetWidth)||0;t.onCornerWidthChange(u),c(u)}),f?m.jsxRuntimeExports.jsx(j.Primitive.div,{...n,ref:o,style:{width:l,height:i,position:"absolute",right:t.dir==="ltr"?0:void 0,left:t.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function z(e){return e?parseInt(e,10):0}function te(e,o){const r=e/o;return isNaN(r)?0:r}function k(e){const o=te(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,n=(e.scrollbar.size-r)*o;return Math.max(n,18)}function Re(e,o,r,n="ltr"){const t=k(r),l=t/2,c=o||l,i=t-c,a=r.scrollbar.paddingStart+c,f=r.scrollbar.size-r.scrollbar.paddingEnd-i,u=r.content-r.viewport,h=n==="ltr"?[0,u]:[u*-1,0];return oe([a,f],h)(e)}function J(e,o,r="ltr"){const n=k(o),t=o.scrollbar.paddingStart+o.scrollbar.paddingEnd,l=o.scrollbar.size-t,c=o.content-o.viewport,i=l-n,a=r==="ltr"?[0,c]:[c*-1,0],f=ae.clamp(e,a);return oe([0,c],[0,i])(f)}function oe(e,o){return r=>{if(e[0]===e[1]||o[0]===o[1])return o[0];const n=(o[1]-o[0])/(e[1]-e[0]);return o[0]+n*(r-e[0])}}function ne(e,o){return e>0&&e<o}var ge=(e,o=()=>{})=>{let r={left:e.scrollLeft,top:e.scrollTop},n=0;return function t(){const l={left:e.scrollLeft,top:e.scrollTop},c=r.left!==l.left,i=r.top!==l.top;(c||i)&&o(),r=l,n=window.requestAnimationFrame(t)}(),()=>window.cancelAnimationFrame(n)};function I(e,o){const r=g.useCallbackRef(e),n=s.useRef(0);return s.useEffect(()=>()=>window.clearTimeout(n.current),[]),s.useCallback(()=>{window.clearTimeout(n.current),n.current=window.setTimeout(r,o)},[r,o])}function C(e,o){const r=g.useCallbackRef(o);ie.useLayoutEffect(()=>{let n=0;if(e){const t=new ResizeObserver(()=>{cancelAnimationFrame(n),n=window.requestAnimationFrame(r)});return t.observe(e),()=>{window.cancelAnimationFrame(n),t.unobserve(e)}}},[e,r])}var Ee=V,Pe=U,Ce=q,Ae=F,Te=G;exports.Corner=Te;exports.Root=Ee;exports.ScrollArea=V;exports.ScrollAreaCorner=G;exports.ScrollAreaScrollbar=q;exports.ScrollAreaThumb=F;exports.ScrollAreaViewport=U;exports.Scrollbar=Ce;exports.Thumb=Ae;exports.Viewport=Pe;exports.createScrollAreaScope=fe;
2
2
  //# sourceMappingURL=index.cjs410.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./components/ui/Table/Table.css');const t=require("./index.cjs185.js"),G=require("react"),c=require("./index.cjs187.js");;/* empty css */const J=require("./index.cjs59.js"),Q=require("./index.cjs154.js"),W=require("./index.cjs155.js"),X=require("./index.cjs156.js"),Y=require("./index.cjs147.js");function Z(e){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(s,n,i.get?i:{enumerable:!0,get:()=>e[n]})}}return s.default=e,Object.freeze(s)}const b=Z(G),D=b.forwardRef(({className:e,columns:s,data:n,pagination:i,initialCurrentPage:_=1,resultsPerPage:u=10,defaultSortDirection:r="desc",...p},T)=>{const[x,h]=b.useState({key:s[0].key||s[0].label,direction:r}),[v,q]=b.useState(_),E=b.useMemo(()=>[...n].sort((o,m)=>{const l=o[x.key],a=m[x.key],d=s.find(j=>(j.key||j.label)===x.key);if(typeof l=="string"&&typeof a=="string"){if((d==null?void 0:d.type)==="date"){const j=O=>{const[H,I]=O.split(" - "),[F,z,V]=H.split("/").map(Number),[P,U]=I.split(":").map(Number);return new Date(V,z-1,F,P,U)},R=j(l),L=j(a);return x.direction==="asc"?R.getTime()-L.getTime():L.getTime()-R.getTime()}if((d==null?void 0:d.type)==="number"){const j=parseFloat(l),R=parseFloat(a);return x.direction==="asc"?j-R:R-j}return x.direction==="asc"?l.localeCompare(a):a.localeCompare(l)}return y(l)&&y(a)?x.direction==="asc"?l.firstLine.localeCompare(a.firstLine):a.firstLine.localeCompare(l.firstLine):0}),[n,x,s]),A=o=>{h(m=>({key:o,direction:m.key===o&&m.direction==="asc"?"desc":"asc"}))},C=i?(v-1)*u:0,B=i?Math.min(C+u,E.length):E.length,M=E.slice(C,B);return t.jsxRuntimeExports.jsxs("div",{className:"position-relative w-full",children:[t.jsxRuntimeExports.jsxs("table",{ref:T,className:c.clsx("table",e),role:"table",...p,children:[t.jsxRuntimeExports.jsx(g,{className:"table__header",children:t.jsxRuntimeExports.jsx(N,{children:s.map((o,m)=>t.jsxRuntimeExports.jsx(k,{config:o,sortConfig:x,onSort:()=>o.sortable&&A(o.key||o.label)},`${o.label}-${m}`))})}),t.jsxRuntimeExports.jsx(w,{className:"table__body",children:M.map((o,m)=>t.jsxRuntimeExports.jsx(N,{className:"table__row",children:Object.entries(o).map(([l,a],d)=>a?l==="actionData"&&$(a)?t.jsxRuntimeExports.jsx(f,{content:a,type:"action"},`${l}-${d}`):y(a)?t.jsxRuntimeExports.jsx(f,{content:a,type:"double-line"},`${l}-${d}`):typeof a=="string"?t.jsxRuntimeExports.jsx(f,{content:a},`${l}-${d}`):null:null)},m))})]}),i&&t.jsxRuntimeExports.jsx(S,{currentPage:v,totalResults:E.length,resultsPerPage:u,setCurrentPage:q})]})});D.displayName="Table";const g=b.forwardRef(({className:e,children:s,...n},i)=>t.jsxRuntimeExports.jsx("thead",{ref:i,className:c.clsx("[&_tr]:border-b-0",e),...n,children:s}));g.displayName="TableHeader";const w=b.forwardRef(({className:e,children:s,...n},i)=>t.jsxRuntimeExports.jsx("tbody",{ref:i,className:c.clsx("[&_tr:last-child]:border-0",e),...n,children:s}));w.displayName="TableBody";const N=b.forwardRef(({className:e,children:s,...n},i)=>t.jsxRuntimeExports.jsx("tr",{ref:i,className:c.clsx("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",e),...n,children:s}));N.displayName="TableRow";const k=b.forwardRef(({className:e,config:s,sortConfig:n,onSort:i,..._},u)=>{const r=n.key===(s.key||s.label),p=r?n.direction:null,T=()=>p==="asc"?"ascending":"descending",x=h=>{switch(h){case"info":return t.jsxRuntimeExports.jsx(X.Info,{});case"download":return t.jsxRuntimeExports.jsx(Y.Download,{});default:return h}};return t.jsxRuntimeExports.jsx("th",{ref:u,className:c.clsx("table__cell table__cell--header",{"table__cell--sortable":s.sortable,"table__cell--action":s.action},e),onClick:s.sortable?i:s.action,"aria-label":s.ariaLabel,"aria-sort":r?T():void 0,..._,children:t.jsxRuntimeExports.jsxs("div",{className:"table__cell--header--content",children:[t.jsxRuntimeExports.jsx("div",{children:t.jsxRuntimeExports.jsx(J.ActionIconText,{icon:x(s.icon),textLabel:s.label,iconPosition:s.iconPosition,handleIconAction:()=>{s.iconAction},popupInfo:s.popupInfo})}),s.sortable&&t.jsxRuntimeExports.jsxs("span",{className:"sort-indicator",children:[t.jsxRuntimeExports.jsx(Q.TriangleUp,{filled:r&&p==="desc",className:c.clsx("sort-indicator__triangle",{active:r&&p==="desc"})}),t.jsxRuntimeExports.jsx(W.TriangleDown,{filled:r&&p==="asc",className:c.clsx("sort-indicator__triangle",{active:r&&p==="asc"})})]})]})})});k.displayName="TableHead";const K=({data:e})=>t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[t.jsxRuntimeExports.jsx("div",{className:"table__cell--firstLine",children:e.firstLine}),t.jsxRuntimeExports.jsx("div",{className:"table__cell--secondLine",children:e.secondLine})]}),ee=({data:e})=>e.type==="link"&&e.link?t.jsxRuntimeExports.jsx("a",{href:e.link,"aria-label":e.ariaLabel,children:e.label}):t.jsxRuntimeExports.jsx("button",{onClick:e.action,"aria-label":e.ariaLabel,children:e.label}),y=e=>typeof e=="object"&&e!==null&&"firstLine"in e&&"secondLine"in e,$=e=>typeof e=="object"&&e!==null&&"label"in e&&"type"in e,te=({content:e})=>typeof e=="string"?t.jsxRuntimeExports.jsx(t.jsxRuntimeExports.Fragment,{children:e}):y(e)?t.jsxRuntimeExports.jsx(K,{data:e}):$(e)?t.jsxRuntimeExports.jsx(ee,{data:e}):null,f=b.forwardRef(({className:e,content:s,type:n,...i},_)=>t.jsxRuntimeExports.jsx("td",{ref:_,className:c.clsx("table__cell",{"table__cell--double-line":n==="double-line","table__cell--action":n==="action"},e),...i,children:t.jsxRuntimeExports.jsx(te,{content:s})}));f.displayName="TableCell";const S=({currentPage:e=1,totalResults:s,resultsPerPage:n,setCurrentPage:i,className:_})=>{const u=Math.ceil(s/n);return t.jsxRuntimeExports.jsxs("div",{className:c.clsx("pagination",_),children:[t.jsxRuntimeExports.jsxs("div",{className:"pagination__info",children:["Stai visualizzando"," ",t.jsxRuntimeExports.jsx("span",{className:"pagination__info__resultsPerPage",children:n})," ","di ",s," risultati"]}),t.jsxRuntimeExports.jsxs("div",{className:"pagination__nav",children:[t.jsxRuntimeExports.jsx("button",{className:c.clsx("pagination__button",e===1&&"pagination__button--disabled"),onClick:()=>i(e-1),disabled:e===1,"aria-label":"Previous page",children:t.jsxRuntimeExports.jsx("svg",{className:"pagination__button-arrow",viewBox:"0 0 24 24",children:t.jsxRuntimeExports.jsx("path",{d:"M15 18l-6-6 6-6"})})}),Array.from({length:u},(r,p)=>p+1).map(r=>t.jsxRuntimeExports.jsx("button",{className:c.clsx("pagination__button",e===r&&"pagination__button--active"),onClick:()=>i(r),children:r},r)),t.jsxRuntimeExports.jsx("button",{className:c.clsx("pagination__button",e===u&&"pagination__button--disabled"),onClick:()=>i(e+1),disabled:e===u,"aria-label":"Next page",children:t.jsxRuntimeExports.jsx("svg",{className:"pagination__button-arrow",viewBox:"0 0 24 24",children:t.jsxRuntimeExports.jsx("path",{d:"M9 6l6 6-6 6"})})})]})]})};exports.Pagination=S;exports.Table=D;exports.TableBody=w;exports.TableCell=f;exports.TableHead=k;exports.TableHeader=g;exports.TableRow=N;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('./components/ui/Table/Table.css');const t=require("./index.cjs185.js"),q=require("react"),c=require("./index.cjs187.js");;/* empty css */const W=require("./index.cjs59.js"),X=require("./index.cjs154.js"),Y=require("./index.cjs155.js"),Z=require("./index.cjs147.js"),K=require("./index.cjs156.js");function ee(e){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const i=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(s,n,i.get?i:{enumerable:!0,get:()=>e[n]})}}return s.default=e,Object.freeze(s)}const b=ee(q),A=b.forwardRef(({className:e,columns:s,data:n,pagination:i,initialCurrentPage:_=1,resultsPerPage:p=10,defaultSortDirection:r="desc",setSelectedSort:d,initialSortConfig:R,...g},E)=>{const[x,L]=b.useState(R||{key:s[0].key||s[0].label,direction:r}),[C,M]=b.useState(_);q.useEffect(()=>{R&&L(R)},[R]);const y=b.useMemo(()=>[...n].sort((l,m)=>{const o=l[x.key],a=m[x.key],u=s.find(j=>(j.key||j.label)===x.key);if(typeof o=="string"&&typeof a=="string"){if((u==null?void 0:u.type)==="date"){const j=F=>{const[z,V]=F.split(" - "),[P,U,G]=z.split("/").map(Number),[J,Q]=V.split(":").map(Number);return new Date(G,U-1,P,J,Q)},f=j(o),$=j(a);return x.direction==="asc"?f.getTime()-$.getTime():$.getTime()-f.getTime()}if((u==null?void 0:u.type)==="number"){const j=parseFloat(o),f=parseFloat(a);return x.direction==="asc"?j-f:f-j}return x.direction==="asc"?o.localeCompare(a):a.localeCompare(o)}return N(o)&&N(a)?x.direction==="asc"?o.firstLine.localeCompare(a.firstLine):a.firstLine.localeCompare(o.firstLine):0}),[n,x,s]),O=l=>{const m={key:l,direction:x.key===l&&x.direction==="asc"?"desc":"asc"};L(m),d&&d(m)},D=i?(C-1)*p:0,H=i?Math.min(D+p,y.length):y.length,I=y.slice(D,H);return t.jsxRuntimeExports.jsxs("div",{className:"position-relative w-full",children:[t.jsxRuntimeExports.jsxs("table",{ref:E,className:c.clsx("table",e),role:"table",...g,children:[t.jsxRuntimeExports.jsx(w,{className:"table__header",children:t.jsxRuntimeExports.jsx(T,{children:s.map((l,m)=>t.jsxRuntimeExports.jsx(v,{config:l,sortConfig:x,onSort:()=>l.sortable&&O(l.key||l.label)},`${l.label}-${m}`))})}),t.jsxRuntimeExports.jsx(k,{className:"table__body",children:I.map((l,m)=>t.jsxRuntimeExports.jsx(T,{className:"table__row",children:Object.entries(l).map(([o,a],u)=>a?o==="actionData"&&S(a)?t.jsxRuntimeExports.jsx(h,{content:a,type:"action"},`${o}-${u}`):N(a)?t.jsxRuntimeExports.jsx(h,{content:a,type:"double-line"},`${o}-${u}`):typeof a=="string"?t.jsxRuntimeExports.jsx(h,{content:a},`${o}-${u}`):null:null)},m))})]}),i&&t.jsxRuntimeExports.jsx(B,{currentPage:C,totalResults:y.length,resultsPerPage:p,setCurrentPage:M})]})});A.displayName="Table";const w=b.forwardRef(({className:e,children:s,...n},i)=>t.jsxRuntimeExports.jsx("thead",{ref:i,className:c.clsx("[&_tr]:border-b-0",e),...n,children:s}));w.displayName="TableHeader";const k=b.forwardRef(({className:e,children:s,...n},i)=>t.jsxRuntimeExports.jsx("tbody",{ref:i,className:c.clsx("[&_tr:last-child]:border-0",e),...n,children:s}));k.displayName="TableBody";const T=b.forwardRef(({className:e,children:s,...n},i)=>t.jsxRuntimeExports.jsx("tr",{ref:i,className:c.clsx("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",e),...n,children:s}));T.displayName="TableRow";const v=b.forwardRef(({className:e,config:s,sortConfig:n,onSort:i,..._},p)=>{const r=n.key===(s.key||s.label),d=r?n.direction:null,R=()=>d==="asc"?"ascending":"descending",g=E=>{switch(E){case"info":return t.jsxRuntimeExports.jsx(K.Info,{});case"download":return t.jsxRuntimeExports.jsx(Z.Download,{});default:return E}};return t.jsxRuntimeExports.jsx("th",{ref:p,className:c.clsx("table__cell table__cell--header",{"table__cell--sortable":s.sortable,"table__cell--action":s.action},e),onClick:s.sortable?i:s.action,"aria-label":s.ariaLabel,"aria-sort":r?R():void 0,..._,children:t.jsxRuntimeExports.jsxs("div",{className:"table__cell--header--content",children:[t.jsxRuntimeExports.jsx("div",{children:t.jsxRuntimeExports.jsx(W.ActionIconText,{icon:g(s.icon),textLabel:s.label,iconPosition:s.iconPosition,handleIconAction:()=>{s.iconAction},popupInfo:s.popupInfo})}),s.sortable&&t.jsxRuntimeExports.jsxs("span",{className:"sort-indicator",children:[t.jsxRuntimeExports.jsx(X.TriangleUp,{filled:r&&d==="desc",className:c.clsx("sort-indicator__triangle",{active:r&&d==="desc"})}),t.jsxRuntimeExports.jsx(Y.TriangleDown,{filled:r&&d==="asc",className:c.clsx("sort-indicator__triangle",{active:r&&d==="asc"})})]})]})})});v.displayName="TableHead";const te=({data:e})=>t.jsxRuntimeExports.jsxs(t.jsxRuntimeExports.Fragment,{children:[t.jsxRuntimeExports.jsx("div",{className:"table__cell--firstLine",children:e.firstLine}),t.jsxRuntimeExports.jsx("div",{className:"table__cell--secondLine",children:e.secondLine})]}),se=({data:e})=>e.type==="link"&&e.link?t.jsxRuntimeExports.jsx("a",{href:e.link,"aria-label":e.ariaLabel,children:e.label}):t.jsxRuntimeExports.jsx("button",{onClick:e.action,"aria-label":e.ariaLabel,children:e.label}),N=e=>typeof e=="object"&&e!==null&&"firstLine"in e&&"secondLine"in e,S=e=>typeof e=="object"&&e!==null&&"label"in e&&"type"in e,ne=({content:e})=>typeof e=="string"?t.jsxRuntimeExports.jsx(t.jsxRuntimeExports.Fragment,{children:e}):N(e)?t.jsxRuntimeExports.jsx(te,{data:e}):S(e)?t.jsxRuntimeExports.jsx(se,{data:e}):null,h=b.forwardRef(({className:e,content:s,type:n,...i},_)=>t.jsxRuntimeExports.jsx("td",{ref:_,className:c.clsx("table__cell",{"table__cell--double-line":n==="double-line","table__cell--action":n==="action"},e),...i,children:t.jsxRuntimeExports.jsx(ne,{content:s})}));h.displayName="TableCell";const B=({currentPage:e=1,totalResults:s,resultsPerPage:n,setCurrentPage:i,className:_})=>{const p=Math.ceil(s/n);return t.jsxRuntimeExports.jsxs("div",{className:c.clsx("pagination",_),children:[t.jsxRuntimeExports.jsxs("div",{className:"pagination__info",children:["Stai visualizzando"," ",t.jsxRuntimeExports.jsx("span",{className:"pagination__info__resultsPerPage",children:n})," ","di ",s," risultati"]}),t.jsxRuntimeExports.jsxs("div",{className:"pagination__nav",children:[t.jsxRuntimeExports.jsx("button",{className:c.clsx("pagination__button",e===1&&"pagination__button--disabled"),onClick:()=>i(e-1),disabled:e===1,"aria-label":"Previous page",children:t.jsxRuntimeExports.jsx("svg",{className:"pagination__button-arrow",viewBox:"0 0 24 24",children:t.jsxRuntimeExports.jsx("path",{d:"M15 18l-6-6 6-6"})})}),Array.from({length:p},(r,d)=>d+1).map(r=>t.jsxRuntimeExports.jsx("button",{className:c.clsx("pagination__button",e===r&&"pagination__button--active"),onClick:()=>i(r),children:r},r)),t.jsxRuntimeExports.jsx("button",{className:c.clsx("pagination__button",e===p&&"pagination__button--disabled"),onClick:()=>i(e+1),disabled:e===p,"aria-label":"Next page",children:t.jsxRuntimeExports.jsx("svg",{className:"pagination__button-arrow",viewBox:"0 0 24 24",children:t.jsxRuntimeExports.jsx("path",{d:"M9 6l6 6-6 6"})})})]})]})};exports.Pagination=B;exports.Table=A;exports.TableBody=k;exports.TableCell=h;exports.TableHead=v;exports.TableHeader=w;exports.TableRow=T;
2
2
  //# sourceMappingURL=index.cjs65.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs65.js","sources":["../src/components/ui/Table/index.tsx"],"sourcesContent":["import * as React from \"react\";\nimport clsx from \"clsx\";\nimport \"./Table.scss\";\nimport { Download, Info, TriangleDown, TriangleUp } from \"@/icons\";\nimport { ActionIconText } from \"../ActionIconText\";\nimport { CommonIconsType } from \"@/types/icons\";\nimport { InfoPopupProps } from \"../InfoPopup\";\n\n// per le celle che vanno renderizzate su due righe\nexport interface DoubleLineData {\n firstLine: string;\n secondLine: string;\n}\n\n//per le celle che renderizzano un link o un bottone\nexport interface ActionData {\n label: string | React.ReactNode;\n ariaLabel: string;\n type: \"link\" | \"button\";\n link?: string;\n action?: () => void;\n}\n\nexport interface ColumnConfig {\n label: string;\n ariaLabel: string;\n sortable: boolean;\n action?: () => void;\n iconAction?: () => void;\n popupInfo?: InfoPopupProps;\n icon?: React.ReactNode | CommonIconsType;\n iconPosition?: \"left\" | \"right\";\n key?: string;\n type?: \"string\" | \"date\" | \"number\";\n}\n\nexport interface TableRowData {\n [key: string]: string | DoubleLineData | ActionData;\n}\n\nexport interface TableHeaderProps\n extends React.HTMLAttributes<HTMLTableSectionElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport interface TableBodyProps\n extends React.HTMLAttributes<HTMLTableSectionElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport interface TableRowProps\n extends React.HTMLAttributes<HTMLTableRowElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport interface TableHeadProps\n extends React.ThHTMLAttributes<HTMLTableCellElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport interface TableCellBaseProps\n extends Omit<React.TdHTMLAttributes<HTMLTableCellElement>, \"content\"> {\n type?: \"double-line\" | \"action\";\n}\n\nexport interface TableCellProps extends TableCellBaseProps {\n content: string | DoubleLineData | ActionData;\n}\n\nexport interface PaginationProps {\n currentPage: number;\n totalResults: number;\n resultsPerPage: number;\n setCurrentPage: (page: number) => void;\n onPageChange?: (page: number) => void;\n className?: string;\n}\n\nexport interface TableProps\n extends React.TableHTMLAttributes<HTMLTableElement> {\n className?: string;\n columns: ColumnConfig[];\n data: TableRowData[];\n pagination?: boolean;\n initialCurrentPage?: number;\n resultsPerPage?: number;\n defaultSortDirection?: \"asc\" | \"desc\";\n}\n\nconst Table = React.forwardRef<HTMLTableElement, TableProps>(\n (\n {\n className,\n columns,\n data,\n pagination,\n initialCurrentPage = 1,\n resultsPerPage = 10,\n defaultSortDirection = \"desc\",\n ...props\n },\n ref,\n ) => {\n const [sortConfig, setSortConfig] = React.useState<{\n key: string;\n direction: \"asc\" | \"desc\";\n }>({\n key: columns[0].key || columns[0].label,\n direction: defaultSortDirection,\n });\n const [currentPage, setCurrentPage] = React.useState(initialCurrentPage);\n\n const sortedData = React.useMemo(() => {\n return [...data].sort((a, b) => {\n const aValue = a[sortConfig.key];\n const bValue = b[sortConfig.key];\n const column = columns.find(\n (col) => (col.key || col.label) === sortConfig.key,\n );\n\n if (typeof aValue === \"string\" && typeof bValue === \"string\") {\n if (column?.type === \"date\") {\n // Convert Italian date format (DD/MM/YYYY - HH:mm) to Date object\n const parseDate = (dateStr: string) => {\n const [datePart, timePart] = dateStr.split(\" - \");\n const [day, month, year] = datePart.split(\"/\").map(Number);\n const [hours, minutes] = timePart.split(\":\").map(Number);\n return new Date(year, month - 1, day, hours, minutes);\n };\n\n const dateA = parseDate(aValue);\n const dateB = parseDate(bValue);\n return sortConfig.direction === \"asc\"\n ? dateA.getTime() - dateB.getTime()\n : dateB.getTime() - dateA.getTime();\n }\n\n if (column?.type === \"number\") {\n const numA = parseFloat(aValue);\n const numB = parseFloat(bValue);\n return sortConfig.direction === \"asc\" ? numA - numB : numB - numA;\n }\n\n return sortConfig.direction === \"asc\"\n ? aValue.localeCompare(bValue)\n : bValue.localeCompare(aValue);\n }\n\n if (isDoubleLineData(aValue) && isDoubleLineData(bValue)) {\n return sortConfig.direction === \"asc\"\n ? aValue.firstLine.localeCompare(bValue.firstLine)\n : bValue.firstLine.localeCompare(aValue.firstLine);\n }\n\n return 0;\n });\n }, [data, sortConfig, columns]);\n\n const handleSort = (columnKey: string) => {\n setSortConfig((currentSort) => ({\n key: columnKey,\n direction:\n currentSort.key === columnKey && currentSort.direction === \"asc\"\n ? \"desc\"\n : \"asc\",\n }));\n };\n\n const startIndex = pagination ? (currentPage - 1) * resultsPerPage : 0;\n const endIndex = pagination\n ? Math.min(startIndex + resultsPerPage, sortedData.length)\n : sortedData.length;\n const currentPageData = sortedData.slice(startIndex, endIndex);\n\n return (\n <div className=\"position-relative w-full\">\n <table\n ref={ref}\n className={clsx(\"table\", className)}\n role=\"table\"\n {...props}\n >\n <TableHeader className=\"table__header\">\n <TableRow>\n {columns.map((column, index) => (\n <TableHead\n key={`${column.label}-${index}`}\n config={column}\n sortConfig={sortConfig}\n onSort={() =>\n column.sortable && handleSort(column.key || column.label)\n }\n />\n ))}\n </TableRow>\n </TableHeader>\n <TableBody className=\"table__body\">\n {currentPageData.map((row, rowIndex) => (\n <TableRow key={rowIndex} className=\"table__row\">\n {Object.entries(row).map(([key, value], cellIndex) => {\n if (!value) return null;\n\n if (key === \"actionData\" && isActionData(value)) {\n return (\n <TableCell\n key={`${key}-${cellIndex}`}\n content={value}\n type=\"action\"\n />\n );\n }\n if (isDoubleLineData(value)) {\n return (\n <TableCell\n key={`${key}-${cellIndex}`}\n content={value}\n type=\"double-line\"\n />\n );\n }\n if (typeof value === \"string\") {\n return (\n <TableCell key={`${key}-${cellIndex}`} content={value} />\n );\n }\n return null;\n })}\n </TableRow>\n ))}\n </TableBody>\n </table>\n {pagination && (\n <Pagination\n currentPage={currentPage}\n totalResults={sortedData.length}\n resultsPerPage={resultsPerPage}\n setCurrentPage={setCurrentPage}\n />\n )}\n </div>\n );\n },\n);\nTable.displayName = \"Table\";\n\nconst TableHeader = React.forwardRef<HTMLTableSectionElement, TableHeaderProps>(\n ({ className, children, ...props }, ref) => (\n <thead\n ref={ref}\n className={clsx(\"[&_tr]:border-b-0\", className)}\n {...props}\n >\n {children}\n </thead>\n ),\n);\nTableHeader.displayName = \"TableHeader\";\n\nconst TableBody = React.forwardRef<HTMLTableSectionElement, TableBodyProps>(\n ({ className, children, ...props }, ref) => (\n <tbody\n ref={ref}\n className={clsx(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n >\n {children}\n </tbody>\n ),\n);\nTableBody.displayName = \"TableBody\";\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, TableRowProps>(\n ({ className, children, ...props }, ref) => (\n <tr\n ref={ref}\n className={clsx(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className,\n )}\n {...props}\n >\n {children}\n </tr>\n ),\n);\nTableRow.displayName = \"TableRow\";\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n TableHeadProps & {\n config: ColumnConfig;\n sortConfig: { key: string; direction: \"asc\" | \"desc\" };\n onSort?: () => void;\n }\n>(({ className, config, sortConfig, onSort, ...props }, ref) => {\n const isSorted = sortConfig.key === (config.key || config.label);\n const sortDirection = isSorted ? sortConfig.direction : null;\n\n const getAriaSortValue = (): \"ascending\" | \"descending\" => {\n return sortDirection === \"asc\" ? \"ascending\" : \"descending\";\n };\n\n const renderIcon = (icon: React.ReactNode | CommonIconsType) => {\n switch (icon) {\n case \"info\":\n return <Info />;\n case \"download\":\n return <Download />;\n default:\n return icon;\n }\n };\n\n return (\n <th\n ref={ref}\n className={clsx(\n \"table__cell table__cell--header\",\n {\n \"table__cell--sortable\": config.sortable,\n \"table__cell--action\": config.action,\n },\n className,\n )}\n onClick={config.sortable ? onSort : config.action}\n aria-label={config.ariaLabel}\n aria-sort={isSorted ? getAriaSortValue() : undefined}\n {...props}\n >\n <div className=\"table__cell--header--content\">\n <div>\n <ActionIconText\n icon={renderIcon(config.icon)}\n textLabel={config.label}\n iconPosition={config.iconPosition}\n handleIconAction={() => {\n config.iconAction;\n }}\n popupInfo={config.popupInfo}\n />\n </div>\n {config.sortable && (\n <span className=\"sort-indicator\">\n <TriangleUp\n filled={isSorted && sortDirection === \"desc\"}\n className={clsx(\"sort-indicator__triangle\", {\n active: isSorted && sortDirection === \"desc\",\n })}\n />\n <TriangleDown\n filled={isSorted && sortDirection === \"asc\"}\n className={clsx(\"sort-indicator__triangle\", {\n active: isSorted && sortDirection === \"asc\",\n })}\n />\n </span>\n )}\n </div>\n </th>\n );\n});\nTableHead.displayName = \"TableHead\";\n\nconst DoubleLineContent: React.FC<{ data: DoubleLineData }> = ({ data }) => (\n <>\n <div className=\"table__cell--firstLine\">{data.firstLine}</div>\n <div className=\"table__cell--secondLine\">{data.secondLine}</div>\n </>\n);\n\nconst ActionContent: React.FC<{ data: ActionData }> = ({ data }) => {\n if (data.type === \"link\" && data.link) {\n return (\n <a href={data.link} aria-label={data.ariaLabel}>\n {data.label}\n </a>\n );\n }\n return (\n <button onClick={data.action} aria-label={data.ariaLabel}>\n {data.label}\n </button>\n );\n};\n\n// check if we are rendering a double line data\nconst isDoubleLineData = (\n content: TableCellProps[\"content\"],\n): content is DoubleLineData => {\n return (\n typeof content === \"object\" &&\n content !== null &&\n \"firstLine\" in content &&\n \"secondLine\" in content\n );\n};\n\n// check if we are rendering an action data\nconst isActionData = (\n content: TableCellProps[\"content\"],\n): content is ActionData => {\n return (\n typeof content === \"object\" &&\n content !== null &&\n \"label\" in content &&\n \"type\" in content\n );\n};\n\nconst TableCellContent: React.FC<{ content: TableCellProps[\"content\"] }> = ({\n content,\n}) => {\n if (typeof content === \"string\") {\n return <>{content}</>;\n }\n if (isDoubleLineData(content)) {\n return <DoubleLineContent data={content} />;\n }\n if (isActionData(content)) {\n return <ActionContent data={content} />;\n }\n return null;\n};\n\nconst TableCell = React.forwardRef<HTMLTableCellElement, TableCellProps>(\n ({ className, content, type, ...props }, ref) => (\n <td\n ref={ref}\n className={clsx(\n \"table__cell\",\n {\n \"table__cell--double-line\": type === \"double-line\",\n \"table__cell--action\": type === \"action\",\n },\n className,\n )}\n {...props}\n >\n <TableCellContent content={content} />\n </td>\n ),\n);\nTableCell.displayName = \"TableCell\";\n\nconst Pagination: React.FC<PaginationProps> = ({\n currentPage = 1,\n totalResults,\n resultsPerPage,\n setCurrentPage,\n className,\n}) => {\n const totalPages = Math.ceil(totalResults / resultsPerPage);\n\n return (\n <div className={clsx(\"pagination\", className)}>\n <div className=\"pagination__info\">\n Stai visualizzando{\" \"}\n <span className=\"pagination__info__resultsPerPage\">\n {resultsPerPage}\n </span>{\" \"}\n di {totalResults} risultati\n </div>\n <div className=\"pagination__nav\">\n <button\n className={clsx(\n \"pagination__button\",\n currentPage === 1 && \"pagination__button--disabled\",\n )}\n onClick={() => setCurrentPage(currentPage - 1)}\n disabled={currentPage === 1}\n aria-label=\"Previous page\"\n >\n <svg className=\"pagination__button-arrow\" viewBox=\"0 0 24 24\">\n <path d=\"M15 18l-6-6 6-6\" />\n </svg>\n </button>\n {Array.from({ length: totalPages }, (_, i) => i + 1).map((page) => (\n <button\n key={page}\n className={clsx(\n \"pagination__button\",\n currentPage === page && \"pagination__button--active\",\n )}\n onClick={() => setCurrentPage(page)}\n >\n {page}\n </button>\n ))}\n <button\n className={clsx(\n \"pagination__button\",\n currentPage === totalPages && \"pagination__button--disabled\",\n )}\n onClick={() => setCurrentPage(currentPage + 1)}\n disabled={currentPage === totalPages}\n aria-label=\"Next page\"\n >\n <svg className=\"pagination__button-arrow\" viewBox=\"0 0 24 24\">\n <path d=\"M9 6l6 6-6 6\" />\n </svg>\n </button>\n </div>\n </div>\n );\n};\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableHead,\n TableRow,\n TableCell,\n Pagination,\n};\n"],"names":["Table","React","className","columns","data","pagination","initialCurrentPage","resultsPerPage","defaultSortDirection","props","ref","sortConfig","setSortConfig","currentPage","setCurrentPage","sortedData","a","b","aValue","bValue","column","col","parseDate","dateStr","datePart","timePart","day","month","year","hours","minutes","dateA","dateB","numA","numB","isDoubleLineData","handleSort","columnKey","currentSort","startIndex","endIndex","currentPageData","jsxs","clsx","jsx","TableHeader","TableRow","index","TableHead","TableBody","row","rowIndex","key","value","cellIndex","isActionData","TableCell","Pagination","children","config","onSort","isSorted","sortDirection","getAriaSortValue","renderIcon","icon","Info","Download","ActionIconText","TriangleUp","TriangleDown","DoubleLineContent","Fragment","ActionContent","content","TableCellContent","type","totalResults","totalPages","_","i","page"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs65.js","sources":["../src/components/ui/Table/index.tsx"],"sourcesContent":["import * as React from \"react\";\nimport clsx from \"clsx\";\nimport \"./Table.scss\";\nimport { Download, Info, TriangleDown, TriangleUp } from \"@/icons\";\nimport { ActionIconText } from \"../ActionIconText\";\nimport { CommonIconsType } from \"@/types/icons\";\nimport { InfoPopupProps } from \"../InfoPopup\";\nimport { useEffect } from \"react\";\n\n// per le celle che vanno renderizzate su due righe\nexport interface DoubleLineData {\n firstLine: string;\n secondLine: string;\n}\n\n//per le celle che renderizzano un link o un bottone\nexport interface ActionData {\n label: string | React.ReactNode;\n ariaLabel: string;\n type: \"link\" | \"button\";\n link?: string;\n action?: () => void;\n}\n\nexport interface ColumnConfig {\n label: string;\n ariaLabel: string;\n sortable: boolean;\n action?: () => void;\n iconAction?: () => void;\n popupInfo?: InfoPopupProps;\n icon?: React.ReactNode | CommonIconsType;\n iconPosition?: \"left\" | \"right\";\n key?: string;\n type?: \"string\" | \"date\" | \"number\";\n}\n\nexport interface TableRowData {\n [key: string]: string | DoubleLineData | ActionData;\n}\n\nexport interface TableHeaderProps\n extends React.HTMLAttributes<HTMLTableSectionElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport interface TableBodyProps\n extends React.HTMLAttributes<HTMLTableSectionElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport interface TableRowProps\n extends React.HTMLAttributes<HTMLTableRowElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport interface TableHeadProps\n extends React.ThHTMLAttributes<HTMLTableCellElement> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport interface TableCellBaseProps\n extends Omit<React.TdHTMLAttributes<HTMLTableCellElement>, \"content\"> {\n type?: \"double-line\" | \"action\";\n}\n\nexport interface TableCellProps extends TableCellBaseProps {\n content: string | DoubleLineData | ActionData;\n}\n\nexport interface PaginationProps {\n currentPage: number;\n totalResults: number;\n resultsPerPage: number;\n setCurrentPage: (page: number) => void;\n onPageChange?: (page: number) => void;\n className?: string;\n}\n\nexport interface TableProps\n extends React.TableHTMLAttributes<HTMLTableElement> {\n className?: string;\n columns: ColumnConfig[];\n data: TableRowData[];\n pagination?: boolean;\n initialCurrentPage?: number;\n resultsPerPage?: number;\n defaultSortDirection?: \"asc\" | \"desc\";\n setSelectedSort?: (sortConfig: {\n key: string;\n direction: \"asc\" | \"desc\";\n }) => void;\n initialSortConfig?: { key: string; direction: \"asc\" | \"desc\" };\n}\n\nconst Table = React.forwardRef<HTMLTableElement, TableProps>(\n (\n {\n className,\n columns,\n data,\n pagination,\n initialCurrentPage = 1,\n resultsPerPage = 10,\n defaultSortDirection = \"desc\",\n setSelectedSort,\n initialSortConfig,\n ...props\n },\n ref,\n ) => {\n const [sortConfig, setSortConfig] = React.useState<{\n key: string;\n direction: \"asc\" | \"desc\";\n }>(\n initialSortConfig || {\n key: columns[0].key || columns[0].label,\n direction: defaultSortDirection,\n },\n );\n const [currentPage, setCurrentPage] = React.useState(initialCurrentPage);\n\n useEffect(() => {\n if (initialSortConfig) {\n setSortConfig(initialSortConfig);\n }\n }, [initialSortConfig]);\n\n const sortedData = React.useMemo(() => {\n return [...data].sort((a, b) => {\n const aValue = a[sortConfig.key];\n const bValue = b[sortConfig.key];\n const column = columns.find(\n (col) => (col.key || col.label) === sortConfig.key,\n );\n\n if (typeof aValue === \"string\" && typeof bValue === \"string\") {\n if (column?.type === \"date\") {\n // Convert Italian date format (DD/MM/YYYY - HH:mm) to Date object\n const parseDate = (dateStr: string) => {\n const [datePart, timePart] = dateStr.split(\" - \");\n const [day, month, year] = datePart.split(\"/\").map(Number);\n const [hours, minutes] = timePart.split(\":\").map(Number);\n return new Date(year, month - 1, day, hours, minutes);\n };\n\n const dateA = parseDate(aValue);\n const dateB = parseDate(bValue);\n return sortConfig.direction === \"asc\"\n ? dateA.getTime() - dateB.getTime()\n : dateB.getTime() - dateA.getTime();\n }\n\n if (column?.type === \"number\") {\n const numA = parseFloat(aValue);\n const numB = parseFloat(bValue);\n return sortConfig.direction === \"asc\" ? numA - numB : numB - numA;\n }\n\n return sortConfig.direction === \"asc\"\n ? aValue.localeCompare(bValue)\n : bValue.localeCompare(aValue);\n }\n\n if (isDoubleLineData(aValue) && isDoubleLineData(bValue)) {\n return sortConfig.direction === \"asc\"\n ? aValue.firstLine.localeCompare(bValue.firstLine)\n : bValue.firstLine.localeCompare(aValue.firstLine);\n }\n\n return 0;\n });\n }, [data, sortConfig, columns]);\n\n const handleSort = (columnKey: string) => {\n const newSortConfig = {\n key: columnKey,\n direction:\n sortConfig.key === columnKey && sortConfig.direction === \"asc\"\n ? \"desc\"\n : \"asc\",\n } as { key: string; direction: \"asc\" | \"desc\" };\n\n setSortConfig(newSortConfig);\n if (setSelectedSort) {\n setSelectedSort(newSortConfig);\n }\n };\n\n const startIndex = pagination ? (currentPage - 1) * resultsPerPage : 0;\n const endIndex = pagination\n ? Math.min(startIndex + resultsPerPage, sortedData.length)\n : sortedData.length;\n const currentPageData = sortedData.slice(startIndex, endIndex);\n\n return (\n <div className=\"position-relative w-full\">\n <table\n ref={ref}\n className={clsx(\"table\", className)}\n role=\"table\"\n {...props}\n >\n <TableHeader className=\"table__header\">\n <TableRow>\n {columns.map((column, index) => (\n <TableHead\n key={`${column.label}-${index}`}\n config={column}\n sortConfig={sortConfig}\n onSort={() =>\n column.sortable && handleSort(column.key || column.label)\n }\n />\n ))}\n </TableRow>\n </TableHeader>\n <TableBody className=\"table__body\">\n {currentPageData.map((row, rowIndex) => (\n <TableRow key={rowIndex} className=\"table__row\">\n {Object.entries(row).map(([key, value], cellIndex) => {\n if (!value) return null;\n\n if (key === \"actionData\" && isActionData(value)) {\n return (\n <TableCell\n key={`${key}-${cellIndex}`}\n content={value}\n type=\"action\"\n />\n );\n }\n if (isDoubleLineData(value)) {\n return (\n <TableCell\n key={`${key}-${cellIndex}`}\n content={value}\n type=\"double-line\"\n />\n );\n }\n if (typeof value === \"string\") {\n return (\n <TableCell key={`${key}-${cellIndex}`} content={value} />\n );\n }\n return null;\n })}\n </TableRow>\n ))}\n </TableBody>\n </table>\n {pagination && (\n <Pagination\n currentPage={currentPage}\n totalResults={sortedData.length}\n resultsPerPage={resultsPerPage}\n setCurrentPage={setCurrentPage}\n />\n )}\n </div>\n );\n },\n);\nTable.displayName = \"Table\";\n\nconst TableHeader = React.forwardRef<HTMLTableSectionElement, TableHeaderProps>(\n ({ className, children, ...props }, ref) => (\n <thead\n ref={ref}\n className={clsx(\"[&_tr]:border-b-0\", className)}\n {...props}\n >\n {children}\n </thead>\n ),\n);\nTableHeader.displayName = \"TableHeader\";\n\nconst TableBody = React.forwardRef<HTMLTableSectionElement, TableBodyProps>(\n ({ className, children, ...props }, ref) => (\n <tbody\n ref={ref}\n className={clsx(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n >\n {children}\n </tbody>\n ),\n);\nTableBody.displayName = \"TableBody\";\n\nconst TableRow = React.forwardRef<HTMLTableRowElement, TableRowProps>(\n ({ className, children, ...props }, ref) => (\n <tr\n ref={ref}\n className={clsx(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className,\n )}\n {...props}\n >\n {children}\n </tr>\n ),\n);\nTableRow.displayName = \"TableRow\";\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n TableHeadProps & {\n config: ColumnConfig;\n sortConfig: { key: string; direction: \"asc\" | \"desc\" };\n onSort?: () => void;\n }\n>(({ className, config, sortConfig, onSort, ...props }, ref) => {\n const isSorted = sortConfig.key === (config.key || config.label);\n const sortDirection = isSorted ? sortConfig.direction : null;\n\n const getAriaSortValue = (): \"ascending\" | \"descending\" => {\n return sortDirection === \"asc\" ? \"ascending\" : \"descending\";\n };\n\n const renderIcon = (icon: React.ReactNode | CommonIconsType) => {\n switch (icon) {\n case \"info\":\n return <Info />;\n case \"download\":\n return <Download />;\n default:\n return icon;\n }\n };\n\n return (\n <th\n ref={ref}\n className={clsx(\n \"table__cell table__cell--header\",\n {\n \"table__cell--sortable\": config.sortable,\n \"table__cell--action\": config.action,\n },\n className,\n )}\n onClick={config.sortable ? onSort : config.action}\n aria-label={config.ariaLabel}\n aria-sort={isSorted ? getAriaSortValue() : undefined}\n {...props}\n >\n <div className=\"table__cell--header--content\">\n <div>\n <ActionIconText\n icon={renderIcon(config.icon)}\n textLabel={config.label}\n iconPosition={config.iconPosition}\n handleIconAction={() => {\n config.iconAction;\n }}\n popupInfo={config.popupInfo}\n />\n </div>\n {config.sortable && (\n <span className=\"sort-indicator\">\n <TriangleUp\n filled={isSorted && sortDirection === \"desc\"}\n className={clsx(\"sort-indicator__triangle\", {\n active: isSorted && sortDirection === \"desc\",\n })}\n />\n <TriangleDown\n filled={isSorted && sortDirection === \"asc\"}\n className={clsx(\"sort-indicator__triangle\", {\n active: isSorted && sortDirection === \"asc\",\n })}\n />\n </span>\n )}\n </div>\n </th>\n );\n});\nTableHead.displayName = \"TableHead\";\n\nconst DoubleLineContent: React.FC<{ data: DoubleLineData }> = ({ data }) => (\n <>\n <div className=\"table__cell--firstLine\">{data.firstLine}</div>\n <div className=\"table__cell--secondLine\">{data.secondLine}</div>\n </>\n);\n\nconst ActionContent: React.FC<{ data: ActionData }> = ({ data }) => {\n if (data.type === \"link\" && data.link) {\n return (\n <a href={data.link} aria-label={data.ariaLabel}>\n {data.label}\n </a>\n );\n }\n return (\n <button onClick={data.action} aria-label={data.ariaLabel}>\n {data.label}\n </button>\n );\n};\n\n// check if we are rendering a double line data\nconst isDoubleLineData = (\n content: TableCellProps[\"content\"],\n): content is DoubleLineData => {\n return (\n typeof content === \"object\" &&\n content !== null &&\n \"firstLine\" in content &&\n \"secondLine\" in content\n );\n};\n\n// check if we are rendering an action data\nconst isActionData = (\n content: TableCellProps[\"content\"],\n): content is ActionData => {\n return (\n typeof content === \"object\" &&\n content !== null &&\n \"label\" in content &&\n \"type\" in content\n );\n};\n\nconst TableCellContent: React.FC<{ content: TableCellProps[\"content\"] }> = ({\n content,\n}) => {\n if (typeof content === \"string\") {\n return <>{content}</>;\n }\n if (isDoubleLineData(content)) {\n return <DoubleLineContent data={content} />;\n }\n if (isActionData(content)) {\n return <ActionContent data={content} />;\n }\n return null;\n};\n\nconst TableCell = React.forwardRef<HTMLTableCellElement, TableCellProps>(\n ({ className, content, type, ...props }, ref) => (\n <td\n ref={ref}\n className={clsx(\n \"table__cell\",\n {\n \"table__cell--double-line\": type === \"double-line\",\n \"table__cell--action\": type === \"action\",\n },\n className,\n )}\n {...props}\n >\n <TableCellContent content={content} />\n </td>\n ),\n);\nTableCell.displayName = \"TableCell\";\n\nconst Pagination: React.FC<PaginationProps> = ({\n currentPage = 1,\n totalResults,\n resultsPerPage,\n setCurrentPage,\n className,\n}) => {\n const totalPages = Math.ceil(totalResults / resultsPerPage);\n\n return (\n <div className={clsx(\"pagination\", className)}>\n <div className=\"pagination__info\">\n Stai visualizzando{\" \"}\n <span className=\"pagination__info__resultsPerPage\">\n {resultsPerPage}\n </span>{\" \"}\n di {totalResults} risultati\n </div>\n <div className=\"pagination__nav\">\n <button\n className={clsx(\n \"pagination__button\",\n currentPage === 1 && \"pagination__button--disabled\",\n )}\n onClick={() => setCurrentPage(currentPage - 1)}\n disabled={currentPage === 1}\n aria-label=\"Previous page\"\n >\n <svg className=\"pagination__button-arrow\" viewBox=\"0 0 24 24\">\n <path d=\"M15 18l-6-6 6-6\" />\n </svg>\n </button>\n {Array.from({ length: totalPages }, (_, i) => i + 1).map((page) => (\n <button\n key={page}\n className={clsx(\n \"pagination__button\",\n currentPage === page && \"pagination__button--active\",\n )}\n onClick={() => setCurrentPage(page)}\n >\n {page}\n </button>\n ))}\n <button\n className={clsx(\n \"pagination__button\",\n currentPage === totalPages && \"pagination__button--disabled\",\n )}\n onClick={() => setCurrentPage(currentPage + 1)}\n disabled={currentPage === totalPages}\n aria-label=\"Next page\"\n >\n <svg className=\"pagination__button-arrow\" viewBox=\"0 0 24 24\">\n <path d=\"M9 6l6 6-6 6\" />\n </svg>\n </button>\n </div>\n </div>\n );\n};\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableHead,\n TableRow,\n TableCell,\n Pagination,\n};\n"],"names":["Table","React","className","columns","data","pagination","initialCurrentPage","resultsPerPage","defaultSortDirection","setSelectedSort","initialSortConfig","props","ref","sortConfig","setSortConfig","currentPage","setCurrentPage","useEffect","sortedData","a","b","aValue","bValue","column","col","parseDate","dateStr","datePart","timePart","day","month","year","hours","minutes","dateA","dateB","numA","numB","isDoubleLineData","handleSort","columnKey","newSortConfig","startIndex","endIndex","currentPageData","jsxs","clsx","jsx","TableHeader","TableRow","index","TableHead","TableBody","row","rowIndex","key","value","cellIndex","isActionData","TableCell","Pagination","children","config","onSort","isSorted","sortDirection","getAriaSortValue","renderIcon","icon","Info","Download","ActionIconText","TriangleUp","TriangleDown","DoubleLineContent","Fragment","ActionContent","content","TableCellContent","type","totalResults","totalPages","_","i","page"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -192,7 +192,8 @@ declare type BaseArrowLinkProps = {
192
192
  };
193
193
 
194
194
  declare type BaseButtonProps = {
195
- children: React.ReactNode;
195
+ children: React_2.ReactNode;
196
+ icon?: CommonIconsType;
196
197
  variant?: ButtonVariant;
197
198
  bg?: ColorKeys;
198
199
  textColor?: ColorKeys;
@@ -283,7 +284,7 @@ export declare type BreadcrumbProps = {
283
284
 
284
285
  declare type BreakpointSpace = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" | "10" | "11" | "12";
285
286
 
286
- export declare const Button: ({ children, variant, bg, textColor, border, size, className, disabled, loading, onClick, type, form, asLink, href, target, rel, ...props }: ButtonProps) => JSX.Element;
287
+ export declare const Button: ({ children, variant, bg, textColor, border, size, className, disabled, loading, onClick, type, form, asLink, href, target, rel, icon, ...props }: ButtonProps) => JSX.Element;
287
288
 
288
289
  declare type ButtonAsButtonProps = BaseButtonProps & {
289
290
  onClick?: () => void;
@@ -296,7 +297,7 @@ declare type ButtonAsLinkProps = BaseButtonProps & {
296
297
  href: string;
297
298
  onClick?: never;
298
299
  type?: never;
299
- asLink?: "a" | React.ComponentType<any>;
300
+ asLink?: "a" | React_2.ComponentType<any>;
300
301
  };
301
302
 
302
303
  declare type ButtonProps = ButtonAsButtonProps | ButtonAsLinkProps;
@@ -1708,6 +1709,14 @@ export declare interface TableProps extends React_2.TableHTMLAttributes<HTMLTabl
1708
1709
  initialCurrentPage?: number;
1709
1710
  resultsPerPage?: number;
1710
1711
  defaultSortDirection?: "asc" | "desc";
1712
+ setSelectedSort?: (sortConfig: {
1713
+ key: string;
1714
+ direction: "asc" | "desc";
1715
+ }) => void;
1716
+ initialSortConfig?: {
1717
+ key: string;
1718
+ direction: "asc" | "desc";
1719
+ };
1711
1720
  }
1712
1721
 
1713
1722
  export declare const TableRow: React_2.ForwardRefExoticComponent<TableRowProps & React_2.RefAttributes<HTMLTableRowElement>>;
@@ -1,11 +1,11 @@
1
1
  import * as p from "react";
2
- import { composeEventHandlers as m } from "./index.es335.js";
3
- import { composeRefs as E } from "./index.es336.js";
4
- import { createContextScope as S } from "./index.es337.js";
5
- import { useControllableState as P } from "./index.es338.js";
6
- import { Primitive as y } from "./index.es339.js";
7
- import { createMenuScope as D, Root as O, Anchor as T, Portal as j, Content as G, Group as k, Item as L, Label as K, CheckboxItem as U, RadioGroup as B, RadioItem as F, ItemIndicator as H, Separator as W, Arrow as $, SubTrigger as X, SubContent as q } from "./index.es340.js";
8
- import { useId as g } from "./index.es341.js";
2
+ import { composeEventHandlers as m } from "./index.es332.js";
3
+ import { composeRefs as E } from "./index.es333.js";
4
+ import { createContextScope as S } from "./index.es334.js";
5
+ import { useControllableState as P } from "./index.es335.js";
6
+ import { Primitive as y } from "./index.es336.js";
7
+ import { createMenuScope as D, Root as O, Anchor as T, Portal as j, Content as G, Group as k, Item as L, Label as K, CheckboxItem as U, RadioGroup as B, RadioItem as F, ItemIndicator as H, Separator as W, Arrow as $, SubTrigger as X, SubContent as q } from "./index.es337.js";
8
+ import { useId as g } from "./index.es338.js";
9
9
  import { j as a } from "./index.es185.js";
10
10
  var M = "DropdownMenu", [z, bo] = S(
11
11
  M,
@@ -3,7 +3,7 @@ import { Button as m } from "./index.es25.js";
3
3
  import { HeaderTopBanner as y } from "./index.es21.js";
4
4
  import { useState as g, useRef as w, useCallback as C, useEffect as u } from "react";
5
5
  import { clsx as r } from "./index.es187.js";
6
- import { useFocusTrap as N } from "./index.es332.js";
6
+ import { useFocusTrap as N } from "./index.es339.js";
7
7
  import { Container as k } from "./index.es6.js";
8
8
  import './components/navigations/HeaderMobile/HeaderMobile.css';/* empty css */
9
9
  import { Col as L } from "./index.es10.js";
@@ -1,12 +1,12 @@
1
1
  import * as n from "react";
2
- import { useComposedRefs as N } from "./index.es336.js";
3
- import { createContextScope as M } from "./index.es337.js";
4
- import { composeEventHandlers as S } from "./index.es335.js";
5
- import { useControllableState as O } from "./index.es338.js";
2
+ import { useComposedRefs as N } from "./index.es333.js";
3
+ import { createContextScope as M } from "./index.es334.js";
4
+ import { composeEventHandlers as S } from "./index.es332.js";
5
+ import { useControllableState as O } from "./index.es335.js";
6
6
  import { usePrevious as A } from "./index.es342.js";
7
7
  import { useSize as B } from "./index.es343.js";
8
8
  import { Presence as H } from "./index.es344.js";
9
- import { Primitive as j } from "./index.es339.js";
9
+ import { Primitive as j } from "./index.es336.js";
10
10
  import { j as f } from "./index.es185.js";
11
11
  var R = "Checkbox", [K, Y] = M(R), [L, q] = K(R), I = n.forwardRef(
12
12
  (e, l) => {
@@ -1,18 +1,18 @@
1
1
  import * as s from "react";
2
- import { composeEventHandlers as p } from "./index.es335.js";
3
- import { useComposedRefs as C } from "./index.es336.js";
4
- import { createContextScope as B, createContext as H } from "./index.es337.js";
5
- import { useId as x } from "./index.es341.js";
6
- import { useControllableState as V } from "./index.es338.js";
7
- import { DismissableLayer as q } from "./index.es345.js";
8
- import { FocusScope as K } from "./index.es346.js";
9
- import { Portal as U } from "./index.es347.js";
2
+ import { composeEventHandlers as p } from "./index.es332.js";
3
+ import { useComposedRefs as C } from "./index.es333.js";
4
+ import { createContextScope as B, createContext as H } from "./index.es334.js";
5
+ import { useId as x } from "./index.es338.js";
6
+ import { useControllableState as V } from "./index.es335.js";
7
+ import { DismissableLayer as q } from "./index.es347.js";
8
+ import { FocusScope as K } from "./index.es348.js";
9
+ import { Portal as U } from "./index.es349.js";
10
10
  import { Presence as R } from "./index.es344.js";
11
- import { Primitive as m } from "./index.es339.js";
12
- import { useFocusGuards as Y } from "./index.es348.js";
13
- import Z from "./index.es349.js";
14
- import { hideOthers as z } from "./index.es350.js";
15
- import { createSlot as J } from "./index.es351.js";
11
+ import { Primitive as m } from "./index.es336.js";
12
+ import { useFocusGuards as Y } from "./index.es350.js";
13
+ import Z from "./index.es351.js";
14
+ import { hideOthers as z } from "./index.es352.js";
15
+ import { createSlot as J } from "./index.es353.js";
16
16
  import { j as i } from "./index.es185.js";
17
17
  var _ = "Dialog", [N, he] = B(_), [Q, u] = N(_), P = (e) => {
18
18
  const {
@@ -1,32 +1,36 @@
1
- import { j as s } from "./index.es185.js";
2
- import { createColorClasses as d } from "./index.es198.js";
3
- import { clsx as w } from "./index.es187.js";
1
+ import { j as t } from "./index.es185.js";
2
+ import { createColorClasses as I } from "./index.es198.js";
3
+ import { clsx as N } from "./index.es187.js";
4
4
  import './components/ui/Button/Button.css';/* empty css */
5
- import { Spinner as B } from "./index.es152.js";
6
- const R = ({
5
+ import { Spinner as l } from "./index.es152.js";
6
+ import { Download as E } from "./index.es147.js";
7
+ import { Info as T } from "./index.es156.js";
8
+ import { Col as Z } from "./index.es10.js";
9
+ const F = ({
7
10
  children: e,
8
- variant: t,
9
- bg: m = "primary",
10
- textColor: p = "white",
11
- border: i = "white",
11
+ variant: s,
12
+ bg: p = "primary",
13
+ textColor: i = "white",
14
+ border: f = "white",
12
15
  size: c = "3",
13
- className: l,
14
- disabled: r,
16
+ className: j,
17
+ disabled: n,
15
18
  loading: o,
16
19
  onClick: b,
17
- type: f = "button",
18
- form: j = "",
20
+ type: d = "button",
21
+ form: a = "",
19
22
  asLink: x,
20
- href: C,
21
- target: S = void 0,
22
- rel: y = void 0,
23
- ...n
23
+ href: w,
24
+ target: C = void 0,
25
+ rel: S = void 0,
26
+ icon: r = void 0,
27
+ ...u
24
28
  }) => {
25
- const N = t ? "" : d({
26
- bg: m,
27
- text: p,
28
- border: i
29
- }), u = w(
29
+ const h = s ? "" : I({
30
+ bg: p,
31
+ text: i,
32
+ border: f
33
+ }), m = N(
30
34
  "ui-button",
31
35
  {
32
36
  2: "fs-6 py-x12 px-x24",
@@ -34,49 +38,63 @@ const R = ({
34
38
  4: "fs-6 py-x4 px-x8"
35
39
  }[c],
36
40
  // Apply variant class if provided
37
- t && `ui-button-${t}`,
41
+ s && `ui-button-${s}`,
38
42
  // Otherwise use traditional classes
39
- !t && N,
43
+ !s && h,
40
44
  {
41
- "ui-button-disabled": r || o
45
+ "ui-button-disabled": n || o
42
46
  },
43
47
  {
44
48
  "ui-button-loading": o
45
49
  },
46
- l,
50
+ j,
47
51
  "fw-bold"
48
52
  );
49
53
  if (x) {
50
- const a = x;
51
- return /* @__PURE__ */ s.jsx(
52
- a,
54
+ const B = x;
55
+ return /* @__PURE__ */ t.jsx(
56
+ B,
53
57
  {
54
- target: S,
55
- rel: y,
56
- href: C,
57
- className: u,
58
- ...n,
58
+ target: C,
59
+ rel: S,
60
+ href: w,
61
+ className: m,
62
+ ...u,
59
63
  children: e
60
64
  }
61
65
  );
62
66
  }
63
- return /* @__PURE__ */ s.jsxs(
67
+ const y = () => {
68
+ switch (r) {
69
+ case "info":
70
+ return /* @__PURE__ */ t.jsx(T, {});
71
+ case "download":
72
+ return /* @__PURE__ */ t.jsx(E, {});
73
+ default:
74
+ return null;
75
+ }
76
+ };
77
+ return /* @__PURE__ */ t.jsxs(
64
78
  "button",
65
79
  {
66
- type: f,
67
- form: j,
68
- className: u,
80
+ type: d,
81
+ form: a,
82
+ className: m,
69
83
  onClick: b,
70
- disabled: r || o,
71
- ...n,
84
+ disabled: n || o,
85
+ ...u,
72
86
  children: [
87
+ r && /* @__PURE__ */ t.jsxs(Z, { mr: "x8", children: [
88
+ !o && /* @__PURE__ */ t.jsx(y, {}),
89
+ o ? /* @__PURE__ */ t.jsx(l, {}) : null
90
+ ] }),
73
91
  e,
74
- o ? /* @__PURE__ */ s.jsx(B, {}) : null
92
+ o && !r ? /* @__PURE__ */ t.jsx(l, {}) : null
75
93
  ]
76
94
  }
77
95
  );
78
96
  };
79
97
  export {
80
- R as Button
98
+ F as Button
81
99
  };
82
100
  //# sourceMappingURL=index.es25.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es25.js","sources":["../src/components/ui/Button/index.tsx"],"sourcesContent":["// src/components/ui/Button/index.tsx\nimport { ColorKeys, createColorClasses } from \"@/theme/colors\";\nimport clsx from \"clsx\";\nimport \"./Button.scss\";\nimport { Spinner } from \"@/icons\";\n\ntype ButtonSize = \"2\" | \"3\" | \"4\";\ntype ButtonVariant = \"primary\" | \"secondary\";\n\ntype BaseButtonProps = {\n children: React.ReactNode;\n variant?: ButtonVariant;\n bg?: ColorKeys;\n textColor?: ColorKeys;\n border?: ColorKeys;\n size?: ButtonSize;\n className?: string;\n disabled?: boolean;\n loading?: boolean;\n form?: string;\n rel?: string;\n target?: string;\n};\n\ntype ButtonAsButtonProps = BaseButtonProps & {\n onClick?: () => void;\n type?: \"button\" | \"submit\" | \"reset\";\n asLink?: never;\n href?: never;\n};\n\ntype ButtonAsLinkProps = BaseButtonProps & {\n href: string;\n onClick?: never;\n type?: never;\n asLink?: \"a\" | React.ComponentType<any>;\n};\n\ntype ButtonProps = ButtonAsButtonProps | ButtonAsLinkProps;\n\nexport const Button = ({\n children,\n variant,\n bg = \"primary\",\n textColor = \"white\",\n border = \"white\",\n size = \"3\",\n className,\n disabled,\n loading,\n onClick,\n type = \"button\",\n form = \"\",\n asLink,\n href,\n target = undefined,\n rel = undefined,\n ...props\n}: ButtonProps) => {\n // Only apply color classes if no variant is specified\n const colorClasses = !variant\n ? createColorClasses({\n bg,\n text: textColor,\n border,\n })\n : \"\";\n\n const BTN_SIZES = {\n \"2\": \"fs-6 py-x12 px-x24\",\n \"3\": \"fs-7 py-x12 px-x24\",\n \"4\": \"fs-6 py-x4 px-x8\",\n };\n\n const baseClasses = clsx(\n \"ui-button\",\n BTN_SIZES[size],\n // Apply variant class if provided\n variant && `ui-button-${variant}`,\n // Otherwise use traditional classes\n !variant && colorClasses,\n {\n \"ui-button-disabled\": disabled || loading,\n },\n {\n \"ui-button-loading\": loading,\n },\n className,\n \"fw-bold\",\n );\n\n if (asLink) {\n const LinkComponent = asLink;\n return (\n <LinkComponent\n target={target}\n rel={rel}\n href={href}\n className={baseClasses}\n {...props}\n >\n {children}\n </LinkComponent>\n );\n }\n\n return (\n <button\n type={type}\n form={form}\n className={baseClasses}\n onClick={onClick}\n disabled={disabled || loading}\n {...props}\n >\n {children}\n {loading ? <Spinner /> : null}\n </button>\n );\n};\n"],"names":["Button","children","variant","bg","textColor","border","size","className","disabled","loading","onClick","type","form","asLink","href","target","rel","props","colorClasses","createColorClasses","baseClasses","clsx","LinkComponent","jsx","jsxs","Spinner"],"mappings":";;;;;AAwCO,MAAMA,IAAS,CAAC;AAAA,EACrB,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,IAAAC,IAAK;AAAA,EACL,WAAAC,IAAY;AAAA,EACZ,QAAAC,IAAS;AAAA,EACT,MAAAC,IAAO;AAAA,EACP,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,MAAAC,IAAO;AAAA,EACP,QAAAC;AAAA,EACA,MAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,KAAAC,IAAM;AAAA,EACN,GAAGC;AACL,MAAmB;AAEX,QAAAC,IAAgBhB,IAMlB,KALAiB,EAAmB;AAAA,IACjB,IAAAhB;AAAA,IACA,MAAMC;AAAA,IACN,QAAAC;AAAA,EACD,CAAA,GASCe,IAAcC;AAAA,IAClB;AAAA,IAPgB;AAAA,MAChB,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,IACP,EAIYf,CAAI;AAAA;AAAA,IAEdJ,KAAW,aAAaA,CAAO;AAAA;AAAA,IAE/B,CAACA,KAAWgB;AAAA,IACZ;AAAA,MACE,sBAAsBV,KAAYC;AAAA,IACpC;AAAA,IACA;AAAA,MACE,qBAAqBA;AAAA,IACvB;AAAA,IACAF;AAAA,IACA;AAAA,EACF;AAEA,MAAIM,GAAQ;AACV,UAAMS,IAAgBT;AAEpB,WAAAU,gBAAAA,EAAA;AAAA,MAACD;AAAA,MAAA;AAAA,QACC,QAAAP;AAAA,QACA,KAAAC;AAAA,QACA,MAAAF;AAAA,QACA,WAAWM;AAAA,QACV,GAAGH;AAAA,QAEH,UAAAhB;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAKF,SAAAuB,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAAb;AAAA,MACA,MAAAC;AAAA,MACA,WAAWQ;AAAA,MACX,SAAAV;AAAA,MACA,UAAUF,KAAYC;AAAA,MACrB,GAAGQ;AAAA,MAEH,UAAA;AAAA,QAAAhB;AAAA,QACAQ,IAAWc,gBAAAA,EAAA,IAAAE,GAAA,CAAA,CAAQ,IAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EAC3B;AAEJ;"}
1
+ {"version":3,"file":"index.es25.js","sources":["../src/components/ui/Button/index.tsx"],"sourcesContent":["// src/components/ui/Button/index.tsx\nimport { ColorKeys, createColorClasses } from \"@/theme/colors\";\nimport clsx from \"clsx\";\nimport \"./Button.scss\";\nimport { Download, Info, Spinner } from \"@/icons\";\nimport * as React from \"react\";\nimport { CommonIconsType } from \"@/types/icons.ts\";\nimport { Col } from \"@/components\";\n\ntype ButtonSize = \"2\" | \"3\" | \"4\";\ntype ButtonVariant = \"primary\" | \"secondary\";\n\ntype BaseButtonProps = {\n children: React.ReactNode;\n icon?: CommonIconsType;\n variant?: ButtonVariant;\n bg?: ColorKeys;\n textColor?: ColorKeys;\n border?: ColorKeys;\n size?: ButtonSize;\n className?: string;\n disabled?: boolean;\n loading?: boolean;\n form?: string;\n rel?: string;\n target?: string;\n};\n\ntype ButtonAsButtonProps = BaseButtonProps & {\n onClick?: () => void;\n type?: \"button\" | \"submit\" | \"reset\";\n asLink?: never;\n href?: never;\n};\n\ntype ButtonAsLinkProps = BaseButtonProps & {\n href: string;\n onClick?: never;\n type?: never;\n asLink?: \"a\" | React.ComponentType<any>;\n};\n\ntype ButtonProps = ButtonAsButtonProps | ButtonAsLinkProps;\n\nexport const Button = ({\n children,\n variant,\n bg = \"primary\",\n textColor = \"white\",\n border = \"white\",\n size = \"3\",\n className,\n disabled,\n loading,\n onClick,\n type = \"button\",\n form = \"\",\n asLink,\n href,\n target = undefined,\n rel = undefined,\n icon = undefined,\n ...props\n}: ButtonProps) => {\n // Only apply color classes if no variant is specified\n const colorClasses = !variant\n ? createColorClasses({\n bg,\n text: textColor,\n border,\n })\n : \"\";\n\n const BTN_SIZES = {\n \"2\": \"fs-6 py-x12 px-x24\",\n \"3\": \"fs-7 py-x12 px-x24\",\n \"4\": \"fs-6 py-x4 px-x8\",\n };\n\n const baseClasses = clsx(\n \"ui-button\",\n BTN_SIZES[size],\n // Apply variant class if provided\n variant && `ui-button-${variant}`,\n // Otherwise use traditional classes\n !variant && colorClasses,\n {\n \"ui-button-disabled\": disabled || loading,\n },\n {\n \"ui-button-loading\": loading,\n },\n className,\n \"fw-bold\",\n );\n\n if (asLink) {\n const LinkComponent = asLink;\n return (\n <LinkComponent\n target={target}\n rel={rel}\n href={href}\n className={baseClasses}\n {...props}\n >\n {children}\n </LinkComponent>\n );\n }\n\n const ButtonIcon = () => {\n switch (icon) {\n case \"info\":\n return <Info />;\n case \"download\":\n return <Download />;\n default:\n return null;\n }\n };\n\n return (\n <button\n type={type}\n form={form}\n className={baseClasses}\n onClick={onClick}\n disabled={disabled || loading}\n {...props}\n >\n {icon && (\n <Col mr={\"x8\"}>\n {!loading && <ButtonIcon />}\n {loading ? <Spinner /> : null}\n </Col>\n )}\n\n {children}\n\n {loading && !icon ? <Spinner /> : null}\n </button>\n );\n};\n"],"names":["Button","children","variant","bg","textColor","border","size","className","disabled","loading","onClick","type","form","asLink","href","target","rel","icon","props","colorClasses","createColorClasses","baseClasses","clsx","LinkComponent","jsx","ButtonIcon","Info","Download","jsxs","Col","Spinner"],"mappings":";;;;;;;;AA4CO,MAAMA,IAAS,CAAC;AAAA,EACrB,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,IAAAC,IAAK;AAAA,EACL,WAAAC,IAAY;AAAA,EACZ,QAAAC,IAAS;AAAA,EACT,MAAAC,IAAO;AAAA,EACP,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,MAAAC,IAAO;AAAA,EACP,QAAAC;AAAA,EACA,MAAAC;AAAA,EACA,QAAAC,IAAS;AAAA,EACT,KAAAC,IAAM;AAAA,EACN,MAAAC,IAAO;AAAA,EACP,GAAGC;AACL,MAAmB;AAEX,QAAAC,IAAgBjB,IAMlB,KALAkB,EAAmB;AAAA,IACjB,IAAAjB;AAAA,IACA,MAAMC;AAAA,IACN,QAAAC;AAAA,EACD,CAAA,GASCgB,IAAcC;AAAA,IAClB;AAAA,IAPgB;AAAA,MAChB,GAAK;AAAA,MACL,GAAK;AAAA,MACL,GAAK;AAAA,IACP,EAIYhB,CAAI;AAAA;AAAA,IAEdJ,KAAW,aAAaA,CAAO;AAAA;AAAA,IAE/B,CAACA,KAAWiB;AAAA,IACZ;AAAA,MACE,sBAAsBX,KAAYC;AAAA,IACpC;AAAA,IACA;AAAA,MACE,qBAAqBA;AAAA,IACvB;AAAA,IACAF;AAAA,IACA;AAAA,EACF;AAEA,MAAIM,GAAQ;AACV,UAAMU,IAAgBV;AAEpB,WAAAW,gBAAAA,EAAA;AAAA,MAACD;AAAA,MAAA;AAAA,QACC,QAAAR;AAAA,QACA,KAAAC;AAAA,QACA,MAAAF;AAAA,QACA,WAAWO;AAAA,QACV,GAAGH;AAAA,QAEH,UAAAjB;AAAA,MAAA;AAAA,IACH;AAAA,EAAA;AAIJ,QAAMwB,IAAa,MAAM;AACvB,YAAQR,GAAM;AAAA,MACZ,KAAK;AACH,qCAAQS,GAAK,EAAA;AAAA,MACf,KAAK;AACH,qCAAQC,GAAS,EAAA;AAAA,MACnB;AACS,eAAA;AAAA,IAAA;AAAA,EAEb;AAGE,SAAAC,gBAAAA,EAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAAjB;AAAA,MACA,MAAAC;AAAA,MACA,WAAWS;AAAA,MACX,SAAAX;AAAA,MACA,UAAUF,KAAYC;AAAA,MACrB,GAAGS;AAAA,MAEH,UAAA;AAAA,QACCD,KAAAW,gBAAAA,EAAA,KAACC,GAAI,EAAA,IAAI,MACN,UAAA;AAAA,UAAC,CAAApB,2BAAYgB,GAAW,EAAA;AAAA,UACxBhB,IAAWe,gBAAAA,EAAA,IAAAM,GAAA,CAAA,CAAQ,IAAK;AAAA,QAAA,GAC3B;AAAA,QAGD7B;AAAA,QAEAQ,KAAW,CAACQ,IAAOO,gBAAAA,EAAA,IAACM,IAAQ,CAAA,IAAK;AAAA,MAAA;AAAA,IAAA;AAAA,EACpC;AAEJ;"}
@@ -1,11 +1,11 @@
1
1
  import * as s from "react";
2
- import { composeEventHandlers as T } from "./index.es335.js";
3
- import { useComposedRefs as _ } from "./index.es336.js";
4
- import { createContextScope as H } from "./index.es337.js";
5
- import { useControllableState as I } from "./index.es338.js";
2
+ import { composeEventHandlers as T } from "./index.es332.js";
3
+ import { useComposedRefs as _ } from "./index.es333.js";
4
+ import { createContextScope as H } from "./index.es334.js";
5
+ import { useControllableState as I } from "./index.es335.js";
6
6
  import { usePrevious as M } from "./index.es342.js";
7
7
  import { useSize as N } from "./index.es343.js";
8
- import { Primitive as w } from "./index.es339.js";
8
+ import { Primitive as w } from "./index.es336.js";
9
9
  import { j as p } from "./index.es185.js";
10
10
  var S = "Switch", [B, J] = H(S), [q, z] = B(S), C = s.forwardRef(
11
11
  (e, n) => {