@anoki/fse-ui 1.0.332 → 1.0.333

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 (175) hide show
  1. package/dist/index.cjs12.js.map +1 -1
  2. package/dist/index.cjs13.js.map +1 -1
  3. package/dist/index.cjs159.js +1 -1
  4. package/dist/index.cjs163.js +1 -1
  5. package/dist/index.cjs170.js +1 -1
  6. package/dist/index.cjs181.js +1 -1
  7. package/dist/index.cjs208.js +1 -1
  8. package/dist/index.cjs232.js +1 -1
  9. package/dist/index.cjs233.js +1 -1
  10. package/dist/index.cjs235.js +1 -1
  11. package/dist/index.cjs235.js.map +1 -1
  12. package/dist/index.cjs238.js +1 -1
  13. package/dist/index.cjs238.js.map +1 -1
  14. package/dist/index.cjs239.js +1 -1
  15. package/dist/index.cjs239.js.map +1 -1
  16. package/dist/index.cjs240.js +1 -1
  17. package/dist/index.cjs240.js.map +1 -1
  18. package/dist/index.cjs241.js +1 -1
  19. package/dist/index.cjs241.js.map +1 -1
  20. package/dist/index.cjs242.js +1 -1
  21. package/dist/index.cjs242.js.map +1 -1
  22. package/dist/index.cjs243.js +2 -0
  23. package/dist/index.cjs243.js.map +1 -0
  24. package/dist/index.cjs244.js +2 -0
  25. package/dist/index.cjs244.js.map +1 -0
  26. package/dist/index.cjs246.js +1 -1
  27. package/dist/index.cjs247.js +1 -1
  28. package/dist/index.cjs248.js +1 -1
  29. package/dist/index.cjs248.js.map +1 -1
  30. package/dist/index.cjs249.js +1 -1
  31. package/dist/index.cjs249.js.map +1 -1
  32. package/dist/index.cjs250.js +1 -1
  33. package/dist/index.cjs250.js.map +1 -1
  34. package/dist/index.cjs251.js +1 -1
  35. package/dist/index.cjs251.js.map +1 -1
  36. package/dist/index.cjs252.js +1 -1
  37. package/dist/index.cjs252.js.map +1 -1
  38. package/dist/index.cjs253.js +1 -1
  39. package/dist/index.cjs253.js.map +1 -1
  40. package/dist/index.cjs254.js +1 -1
  41. package/dist/index.cjs254.js.map +1 -1
  42. package/dist/index.cjs255.js +2 -0
  43. package/dist/index.cjs255.js.map +1 -0
  44. package/dist/index.cjs256.js +2 -0
  45. package/dist/index.cjs256.js.map +1 -0
  46. package/dist/{index.cjs263.js → index.cjs257.js} +2 -2
  47. package/dist/{index.cjs263.js.map → index.cjs257.js.map} +1 -1
  48. package/dist/index.cjs258.js +1 -1
  49. package/dist/index.cjs258.js.map +1 -1
  50. package/dist/index.cjs259.js +1 -1
  51. package/dist/index.cjs259.js.map +1 -1
  52. package/dist/index.cjs26.js.map +1 -1
  53. package/dist/index.cjs260.js +1 -1
  54. package/dist/index.cjs260.js.map +1 -1
  55. package/dist/index.cjs261.js +1 -1
  56. package/dist/index.cjs261.js.map +1 -1
  57. package/dist/index.cjs262.js +1 -1
  58. package/dist/index.cjs262.js.map +1 -1
  59. package/dist/index.cjs27.js.map +1 -1
  60. package/dist/{index.cjs271.js → index.cjs277.js} +2 -2
  61. package/dist/{index.cjs271.js.map → index.cjs277.js.map} +1 -1
  62. package/dist/index.cjs279.js +1 -1
  63. package/dist/index.cjs28.js.map +1 -1
  64. package/dist/index.cjs293.js +1 -1
  65. package/dist/index.cjs294.js +1 -1
  66. package/dist/index.cjs299.js +1 -1
  67. package/dist/index.cjs299.js.map +1 -1
  68. package/dist/index.cjs300.js +1 -1
  69. package/dist/index.cjs300.js.map +1 -1
  70. package/dist/index.cjs301.js +1 -1
  71. package/dist/index.cjs301.js.map +1 -1
  72. package/dist/index.cjs302.js +1 -1
  73. package/dist/index.cjs302.js.map +1 -1
  74. package/dist/index.cjs31.js.map +1 -1
  75. package/dist/index.cjs53.js.map +1 -1
  76. package/dist/index.cjs55.js.map +1 -1
  77. package/dist/index.cjs73.js.map +1 -1
  78. package/dist/index.cjs74.js.map +1 -1
  79. package/dist/index.d.ts +8 -8
  80. package/dist/index.es12.js.map +1 -1
  81. package/dist/index.es13.js.map +1 -1
  82. package/dist/index.es159.js +7 -7
  83. package/dist/index.es163.js +1 -1
  84. package/dist/index.es170.js +5 -5
  85. package/dist/index.es181.js +13 -13
  86. package/dist/index.es208.js +5 -5
  87. package/dist/index.es232.js +1 -1
  88. package/dist/index.es233.js +1 -1
  89. package/dist/index.es235.js +15 -7
  90. package/dist/index.es235.js.map +1 -1
  91. package/dist/index.es238.js +6 -29
  92. package/dist/index.es238.js.map +1 -1
  93. package/dist/index.es239.js +26 -32
  94. package/dist/index.es239.js.map +1 -1
  95. package/dist/index.es240.js +63 -617
  96. package/dist/index.es240.js.map +1 -1
  97. package/dist/index.es241.js +29 -10
  98. package/dist/index.es241.js.map +1 -1
  99. package/dist/index.es242.js +33 -15
  100. package/dist/index.es242.js.map +1 -1
  101. package/dist/index.es243.js +625 -0
  102. package/dist/index.es243.js.map +1 -0
  103. package/dist/index.es244.js +14 -0
  104. package/dist/index.es244.js.map +1 -0
  105. package/dist/index.es246.js +1 -1
  106. package/dist/index.es247.js +2 -2
  107. package/dist/index.es248.js +2 -125
  108. package/dist/index.es248.js.map +1 -1
  109. package/dist/index.es249.js +2 -135
  110. package/dist/index.es249.js.map +1 -1
  111. package/dist/index.es250.js +10 -13
  112. package/dist/index.es250.js.map +1 -1
  113. package/dist/index.es251.js +40 -13
  114. package/dist/index.es251.js.map +1 -1
  115. package/dist/index.es252.js +46 -9
  116. package/dist/index.es252.js.map +1 -1
  117. package/dist/index.es253.js +8 -50
  118. package/dist/index.es253.js.map +1 -1
  119. package/dist/index.es254.js +120 -37
  120. package/dist/index.es254.js.map +1 -1
  121. package/dist/index.es255.js +18 -0
  122. package/dist/index.es255.js.map +1 -0
  123. package/dist/index.es256.js +138 -0
  124. package/dist/index.es256.js.map +1 -0
  125. package/dist/{index.es263.js → index.es257.js} +6 -6
  126. package/dist/{index.es263.js.map → index.es257.js.map} +1 -1
  127. package/dist/index.es258.js +14 -2
  128. package/dist/index.es258.js.map +1 -1
  129. package/dist/index.es259.js +178 -2
  130. package/dist/index.es259.js.map +1 -1
  131. package/dist/index.es26.js +5 -1
  132. package/dist/index.es26.js.map +1 -1
  133. package/dist/index.es260.js +50 -11
  134. package/dist/index.es260.js.map +1 -1
  135. package/dist/index.es261.js +9 -46
  136. package/dist/index.es261.js.map +1 -1
  137. package/dist/index.es262.js +4 -8
  138. package/dist/index.es262.js.map +1 -1
  139. package/dist/index.es27.js.map +1 -1
  140. package/dist/{index.es271.js → index.es277.js} +2 -2
  141. package/dist/{index.es271.js.map → index.es277.js.map} +1 -1
  142. package/dist/index.es279.js +1 -1
  143. package/dist/index.es28.js.map +1 -1
  144. package/dist/index.es293.js +1 -1
  145. package/dist/index.es294.js +1 -1
  146. package/dist/index.es299.js +11 -21
  147. package/dist/index.es299.js.map +1 -1
  148. package/dist/index.es300.js +26 -11
  149. package/dist/index.es300.js.map +1 -1
  150. package/dist/index.es301.js +4 -27
  151. package/dist/index.es301.js.map +1 -1
  152. package/dist/index.es302.js +22 -4
  153. package/dist/index.es302.js.map +1 -1
  154. package/dist/index.es31.js.map +1 -1
  155. package/dist/index.es53.js.map +1 -1
  156. package/dist/index.es55.js.map +1 -1
  157. package/dist/index.es73.js.map +1 -1
  158. package/dist/index.es74.js.map +1 -1
  159. package/package.json +2 -2
  160. package/dist/index.cjs236.js +0 -2
  161. package/dist/index.cjs236.js.map +0 -1
  162. package/dist/index.cjs237.js +0 -2
  163. package/dist/index.cjs237.js.map +0 -1
  164. package/dist/index.cjs264.js +0 -2
  165. package/dist/index.cjs264.js.map +0 -1
  166. package/dist/index.cjs265.js +0 -2
  167. package/dist/index.cjs265.js.map +0 -1
  168. package/dist/index.es236.js +0 -30
  169. package/dist/index.es236.js.map +0 -1
  170. package/dist/index.es237.js +0 -71
  171. package/dist/index.es237.js.map +0 -1
  172. package/dist/index.es264.js +0 -181
  173. package/dist/index.es264.js.map +0 -1
  174. package/dist/index.es265.js +0 -7
  175. package/dist/index.es265.js.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./index.cjs300.js");var i=function(){var t=r.styleHookSingleton(),n=function(e){var l=e.styles,o=e.dynamic;return t(l,o),null};return n};exports.styleSingleton=i;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./index.cjs299.js");var i=function(){var t=r.styleHookSingleton(),n=function(e){var l=e.styles,o=e.dynamic;return t(l,o),null};return n};exports.styleSingleton=i;
2
2
  //# sourceMappingURL=index.cjs294.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var a={left:0,top:0,right:0,gap:0},r=function(t){return parseInt(t||"",10)||0},o=function(t){var i=window.getComputedStyle(document.body),n=i[t==="padding"?"paddingLeft":"marginLeft"],e=i[t==="padding"?"paddingTop":"marginTop"],d=i[t==="padding"?"paddingRight":"marginRight"];return[r(n),r(e),r(d)]},g=function(t){if(t===void 0&&(t="margin"),typeof window>"u")return a;var i=o(t),n=document.documentElement.clientWidth,e=window.innerWidth;return{left:i[0],top:i[1],right:i[2],gap:Math.max(0,e-n+i[2]-i[0])}};exports.getGapWidth=g;exports.zeroGap=a;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react"),c=require("./index.cjs300.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;
2
2
  //# sourceMappingURL=index.cjs299.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs299.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.cjs299.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,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react"),c=require("./index.cjs301.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"});const o=require("./index.cjs301.js");function r(){if(!document)return null;var t=document.createElement("style");t.type="text/css";var e=o.getNonce();return e&&t.setAttribute("nonce",e),t}function l(t,e){t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e))}function i(t){var e=document.head||document.getElementsByTagName("head")[0];e.appendChild(t)}var u=function(){var t=0,e=null;return{add:function(n){t==0&&(e=r())&&(l(e,n),i(e)),t++},remove:function(){t--,!t&&e&&(e.parentNode&&e.parentNode.removeChild(e),e=null)}}};exports.stylesheetSingleton=u;
2
2
  //# sourceMappingURL=index.cjs300.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs300.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.cjs300.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 o=require("./index.cjs302.js");function r(){if(!document)return null;var t=document.createElement("style");t.type="text/css";var e=o.getNonce();return e&&t.setAttribute("nonce",e),t}function l(t,e){t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e))}function i(t){var e=document.head||document.getElementsByTagName("head")[0];e.appendChild(t)}var u=function(){var t=0,e=null;return{add:function(n){t==0&&(e=r())&&(l(e,n),i(e)),t++},remove:function(){t--,!t&&e&&(e.parentNode&&e.parentNode.removeChild(e),e=null)}}};exports.stylesheetSingleton=u;
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.cjs301.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs301.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
+ {"version":3,"file":"index.cjs301.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"});var e=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};exports.getNonce=e;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var a={left:0,top:0,right:0,gap:0},r=function(t){return parseInt(t||"",10)||0},o=function(t){var i=window.getComputedStyle(document.body),n=i[t==="padding"?"paddingLeft":"marginLeft"],e=i[t==="padding"?"paddingTop":"marginTop"],d=i[t==="padding"?"paddingRight":"marginRight"];return[r(n),r(e),r(d)]},g=function(t){if(t===void 0&&(t="margin"),typeof window>"u")return a;var i=o(t),n=document.documentElement.clientWidth,e=window.innerWidth;return{left:i[0],top:i[1],right:i[2],gap:Math.max(0,e-n+i[2]-i[0])}};exports.getGapWidth=g;exports.zeroGap=a;
2
2
  //# sourceMappingURL=index.cjs302.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs302.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
+ {"version":3,"file":"index.cjs302.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 +1 @@
1
- {"version":3,"file":"index.cjs31.js","sources":["../src/components/ui/CardOpeningHours/index.tsx"],"sourcesContent":["import \"./CardOpeningHours.scss\";\nimport clsx from \"clsx\";\nimport { OpeningHours } from \"@anoki/fse-marche-common\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { DateTime } from \"luxon\";\nimport { Col, Row } from \"@/components\";\n\ntype HeadingLevel = \"h2\" | \"h3\" | \"h4\";\ntype WeekDaysMap = Record<keyof OpeningHours, string>;\ntype TimeSlot = { from: string; to: string };\n\ntype CardOpeningHoursProps = {\n title: string;\n titleTag: HeadingLevel;\n openingHours: OpeningHours;\n weekDaysMap: WeekDaysMap;\n openLabel?: string;\n todayLabel?: string;\n closeLabel?: string;\n open24Label?: string;\n opensSoonLabel?: string;\n opensAtLabel?: string;\n opensTomorrowLabel?: string;\n opensOnLabel?: string;\n atLabel?: string;\n closesAtLabel?: string;\n};\n\nexport const CardOpeningHours = ({\n title = \"Orari di apertura\",\n titleTag: TitleTag = \"h3\",\n openingHours,\n weekDaysMap,\n openLabel = \"Aperto\",\n todayLabel = \"Oggi\",\n closeLabel = \"Chiuso\",\n open24Label = \"24 ore su 24\",\n opensSoonLabel = \"Apre tra poco\",\n opensAtLabel = \"Apre alle\",\n opensTomorrowLabel = \"Apre domani\",\n opensOnLabel = \"Apre\",\n atLabel = \"alle\",\n closesAtLabel = \"Chiude alle\",\n}: CardOpeningHoursProps) => {\n const [activeDay, setActiveDay] = useState<number | null>(null);\n const [dayLabel, setDayLabel] = useState(\"\");\n const [openingHoursText, setOpeningHoursText] = useState(\"\");\n const [openingHoursText2, setOpeningHoursText2] = useState(\"\");\n const [isOpen, setIsOpen] = useState(false);\n const [isOpeningSoon, setIsOpeningSoon] = useState(false);\n const [additionalInfo, setAdditionalInfo] = useState(\"\");\n\n const weekDays = Object.values(weekDaysMap);\n const weekKeys = Object.keys(weekDaysMap) as (keyof OpeningHours)[];\n\n const formatCurrentTime = () => {\n return DateTime.now().toFormat(\"HH:mm\");\n };\n\n const parseTimeToMinutes = (timeStr: string): number => {\n const [hours, minutes] = timeStr.split(\":\").map(Number);\n return hours * 60 + minutes;\n };\n\n const isSlot24Hours = useCallback(\n (slot: TimeSlot) => slot.from === \"00:00\" && slot.to === \"00:00\",\n [],\n );\n\n const is24HoursDay = useCallback(\n (slots: TimeSlot[]) => slots.some(isSlot24Hours),\n [isSlot24Hours],\n );\n\n const isCurrentlyOpen = (slots: TimeSlot[], currentTime: string) => {\n for (const { from, to } of slots) {\n if (currentTime >= from && currentTime <= to) {\n return { open: true, closingTime: to };\n }\n }\n return { open: false, closingTime: \"\" };\n };\n\n const getNextOpeningTime = (slots: TimeSlot[], currentTime: string) => {\n for (const { from } of slots) {\n if (from > currentTime) {\n return from;\n }\n }\n return \"\";\n };\n\n const checkIsOpeningSoon = useCallback(\n (openingTime: string, currentTime: string) => {\n if (!openingTime) return false;\n\n const openMinutes = parseTimeToMinutes(openingTime);\n const currentMinutes = parseTimeToMinutes(currentTime);\n const diffMinutes = openMinutes - currentMinutes;\n\n return diffMinutes > 0 && diffMinutes <= 60;\n },\n [],\n );\n\n const getNextOpenDay = useCallback(\n (currentDayIndex: number) => {\n for (let i = 1; i <= 7; i++) {\n const nextIndex = (currentDayIndex + i) % 7;\n const nextDayKey = weekKeys[nextIndex];\n const nextDaySlots = openingHours[nextDayKey];\n\n if (nextDaySlots && nextDaySlots.length > 0) {\n return {\n dayName: weekDays[nextIndex].toLowerCase(),\n isTomorrow: i === 1,\n };\n }\n }\n return null;\n },\n [weekKeys, openingHours, weekDays],\n );\n\n const generateOpeningHoursText = useMemo(() => {\n return (hours: TimeSlot[]) => {\n if (hours.length === 0) {\n return closeLabel;\n }\n\n if (is24HoursDay(hours)) {\n return `${openLabel} ${open24Label}`;\n }\n\n return hours.map(({ from, to }) => `${from} - ${to}`).join(\" | \");\n };\n }, [closeLabel, is24HoursDay, open24Label, openLabel]);\n\n useEffect(() => {\n const now = DateTime.now();\n const todayIndex = now.weekday - 1;\n setActiveDay(todayIndex);\n setDayLabel(weekDays[todayIndex] || \"\");\n\n const todayKey = weekKeys[todayIndex];\n const todaySlots = openingHours[todayKey];\n\n if (!todaySlots) {\n return;\n }\n\n const currentTime = formatCurrentTime();\n\n if (is24HoursDay(todaySlots)) {\n setOpeningHoursText(openLabel);\n setAdditionalInfo(` | ${open24Label}`);\n setIsOpen(true);\n setIsOpeningSoon(false);\n setOpeningHoursText2(`${openLabel} ${open24Label}`);\n return;\n }\n\n const { open, closingTime } = isCurrentlyOpen(todaySlots, currentTime);\n\n if (open) {\n setOpeningHoursText(openLabel);\n setAdditionalInfo(\n closingTime ? ` | ${closesAtLabel} ${closingTime}` : \"\",\n );\n setIsOpen(true);\n setIsOpeningSoon(false);\n } else {\n const nextOpeningTime = getNextOpeningTime(todaySlots, currentTime);\n setIsOpen(false);\n\n if (nextOpeningTime) {\n if (checkIsOpeningSoon(nextOpeningTime, currentTime)) {\n setOpeningHoursText(opensSoonLabel);\n setAdditionalInfo(` | ${atLabel} ${nextOpeningTime}`);\n setIsOpeningSoon(true);\n } else {\n setOpeningHoursText(closeLabel);\n setAdditionalInfo(` | ${opensAtLabel} ${nextOpeningTime}`);\n setIsOpeningSoon(false);\n }\n } else {\n setOpeningHoursText(closeLabel);\n setIsOpeningSoon(false);\n const nextDay = getNextOpenDay(todayIndex);\n\n if (nextDay) {\n setAdditionalInfo(\n nextDay.isTomorrow\n ? ` | ${opensTomorrowLabel}`\n : ` | ${opensOnLabel} ${nextDay.dayName}`,\n );\n } else {\n setAdditionalInfo(\"\");\n }\n }\n }\n\n setOpeningHoursText2(generateOpeningHoursText(todaySlots));\n }, [\n atLabel,\n checkIsOpeningSoon,\n closeLabel,\n closesAtLabel,\n generateOpeningHoursText,\n getNextOpenDay,\n is24HoursDay,\n open24Label,\n openLabel,\n openingHours,\n opensAtLabel,\n opensOnLabel,\n opensSoonLabel,\n opensTomorrowLabel,\n weekDays,\n weekKeys,\n ]);\n\n return (\n <Col\n fs={\"6\"}\n fw={\"semibold\"}\n className=\"ui-card-opening rounded shadow text-slate-28\"\n >\n <Col as={\"header\"} className=\"ui-card-header\">\n <TitleTag className=\"text-slate-20 fw-semibold fs-4\">{title}</TitleTag>\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n style={{ backgroundColor: \"#F7F2FC\" }}\n py={\"x16\"}\n px={\"x24\"}\n fw={\"bold\"}\n fs={\"6\"}\n className=\"rounded\"\n >\n <p className=\"text-slate-28\">\n {todayLabel}, {dayLabel}\n </p>\n <p>\n <span\n className={\n isOpen\n ? \"text-success\"\n : isOpeningSoon\n ? \"text-warning\"\n : \"text-error\"\n }\n >\n {openingHoursText}\n </span>\n <span className=\"fw-regular text-grey-black\">{additionalInfo}</span>\n </p>\n </Row>\n </Col>\n <Col as={\"main\"} pt={\"x32\"} gap={\"x24\"}>\n <Row justifyContent={\"space-around\"} className=\"ui-weekdays-container\">\n {weekDays.map((day, index) => (\n <Row\n justifyContent={\"center\"}\n alignItems={\"center\"}\n key={index}\n className={clsx(\n activeDay === index ? \"active-day text-primary\" : \"\",\n \"flex-1\",\n )}\n >\n {day.charAt(0).toUpperCase()}\n </Row>\n ))}\n </Row>\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n fw={\"regular\"}\n >\n <p>{dayLabel}</p>\n <p>{openingHoursText2}</p>\n </Row>\n </Col>\n </Col>\n );\n};\n"],"names":["CardOpeningHours","title","TitleTag","openingHours","weekDaysMap","openLabel","todayLabel","closeLabel","open24Label","opensSoonLabel","opensAtLabel","opensTomorrowLabel","opensOnLabel","atLabel","closesAtLabel","activeDay","setActiveDay","useState","dayLabel","setDayLabel","openingHoursText","setOpeningHoursText","openingHoursText2","setOpeningHoursText2","isOpen","setIsOpen","isOpeningSoon","setIsOpeningSoon","additionalInfo","setAdditionalInfo","weekDays","weekKeys","formatCurrentTime","DateTime","parseTimeToMinutes","timeStr","hours","minutes","isSlot24Hours","useCallback","slot","is24HoursDay","slots","isCurrentlyOpen","currentTime","from","to","getNextOpeningTime","checkIsOpeningSoon","openingTime","openMinutes","currentMinutes","diffMinutes","getNextOpenDay","currentDayIndex","i","nextIndex","nextDayKey","nextDaySlots","generateOpeningHoursText","useMemo","useEffect","todayIndex","todayKey","todaySlots","open","closingTime","nextOpeningTime","nextDay","jsxs","Col","jsx","Row","day","index","clsx"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs31.js","sources":["../src/components/ui/CardOpeningHours/index.tsx"],"sourcesContent":["import \"./CardOpeningHours.scss\";\nimport clsx from \"clsx\";\nimport { OpeningHours } from \"@anoki/fse-common\";\nimport { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { DateTime } from \"luxon\";\nimport { Col, Row } from \"@/components\";\n\ntype HeadingLevel = \"h2\" | \"h3\" | \"h4\";\ntype WeekDaysMap = Record<keyof OpeningHours, string>;\ntype TimeSlot = { from: string; to: string };\n\ntype CardOpeningHoursProps = {\n title: string;\n titleTag: HeadingLevel;\n openingHours: OpeningHours;\n weekDaysMap: WeekDaysMap;\n openLabel?: string;\n todayLabel?: string;\n closeLabel?: string;\n open24Label?: string;\n opensSoonLabel?: string;\n opensAtLabel?: string;\n opensTomorrowLabel?: string;\n opensOnLabel?: string;\n atLabel?: string;\n closesAtLabel?: string;\n};\n\nexport const CardOpeningHours = ({\n title = \"Orari di apertura\",\n titleTag: TitleTag = \"h3\",\n openingHours,\n weekDaysMap,\n openLabel = \"Aperto\",\n todayLabel = \"Oggi\",\n closeLabel = \"Chiuso\",\n open24Label = \"24 ore su 24\",\n opensSoonLabel = \"Apre tra poco\",\n opensAtLabel = \"Apre alle\",\n opensTomorrowLabel = \"Apre domani\",\n opensOnLabel = \"Apre\",\n atLabel = \"alle\",\n closesAtLabel = \"Chiude alle\",\n}: CardOpeningHoursProps) => {\n const [activeDay, setActiveDay] = useState<number | null>(null);\n const [dayLabel, setDayLabel] = useState(\"\");\n const [openingHoursText, setOpeningHoursText] = useState(\"\");\n const [openingHoursText2, setOpeningHoursText2] = useState(\"\");\n const [isOpen, setIsOpen] = useState(false);\n const [isOpeningSoon, setIsOpeningSoon] = useState(false);\n const [additionalInfo, setAdditionalInfo] = useState(\"\");\n\n const weekDays = Object.values(weekDaysMap);\n const weekKeys = Object.keys(weekDaysMap) as (keyof OpeningHours)[];\n\n const formatCurrentTime = () => {\n return DateTime.now().toFormat(\"HH:mm\");\n };\n\n const parseTimeToMinutes = (timeStr: string): number => {\n const [hours, minutes] = timeStr.split(\":\").map(Number);\n return hours * 60 + minutes;\n };\n\n const isSlot24Hours = useCallback(\n (slot: TimeSlot) => slot.from === \"00:00\" && slot.to === \"00:00\",\n [],\n );\n\n const is24HoursDay = useCallback(\n (slots: TimeSlot[]) => slots.some(isSlot24Hours),\n [isSlot24Hours],\n );\n\n const isCurrentlyOpen = (slots: TimeSlot[], currentTime: string) => {\n for (const { from, to } of slots) {\n if (currentTime >= from && currentTime <= to) {\n return { open: true, closingTime: to };\n }\n }\n return { open: false, closingTime: \"\" };\n };\n\n const getNextOpeningTime = (slots: TimeSlot[], currentTime: string) => {\n for (const { from } of slots) {\n if (from > currentTime) {\n return from;\n }\n }\n return \"\";\n };\n\n const checkIsOpeningSoon = useCallback(\n (openingTime: string, currentTime: string) => {\n if (!openingTime) return false;\n\n const openMinutes = parseTimeToMinutes(openingTime);\n const currentMinutes = parseTimeToMinutes(currentTime);\n const diffMinutes = openMinutes - currentMinutes;\n\n return diffMinutes > 0 && diffMinutes <= 60;\n },\n [],\n );\n\n const getNextOpenDay = useCallback(\n (currentDayIndex: number) => {\n for (let i = 1; i <= 7; i++) {\n const nextIndex = (currentDayIndex + i) % 7;\n const nextDayKey = weekKeys[nextIndex];\n const nextDaySlots = openingHours[nextDayKey];\n\n if (nextDaySlots && nextDaySlots.length > 0) {\n return {\n dayName: weekDays[nextIndex].toLowerCase(),\n isTomorrow: i === 1,\n };\n }\n }\n return null;\n },\n [weekKeys, openingHours, weekDays],\n );\n\n const generateOpeningHoursText = useMemo(() => {\n return (hours: TimeSlot[]) => {\n if (hours.length === 0) {\n return closeLabel;\n }\n\n if (is24HoursDay(hours)) {\n return `${openLabel} ${open24Label}`;\n }\n\n return hours.map(({ from, to }) => `${from} - ${to}`).join(\" | \");\n };\n }, [closeLabel, is24HoursDay, open24Label, openLabel]);\n\n useEffect(() => {\n const now = DateTime.now();\n const todayIndex = now.weekday - 1;\n setActiveDay(todayIndex);\n setDayLabel(weekDays[todayIndex] || \"\");\n\n const todayKey = weekKeys[todayIndex];\n const todaySlots = openingHours[todayKey];\n\n if (!todaySlots) {\n return;\n }\n\n const currentTime = formatCurrentTime();\n\n if (is24HoursDay(todaySlots)) {\n setOpeningHoursText(openLabel);\n setAdditionalInfo(` | ${open24Label}`);\n setIsOpen(true);\n setIsOpeningSoon(false);\n setOpeningHoursText2(`${openLabel} ${open24Label}`);\n return;\n }\n\n const { open, closingTime } = isCurrentlyOpen(todaySlots, currentTime);\n\n if (open) {\n setOpeningHoursText(openLabel);\n setAdditionalInfo(\n closingTime ? ` | ${closesAtLabel} ${closingTime}` : \"\",\n );\n setIsOpen(true);\n setIsOpeningSoon(false);\n } else {\n const nextOpeningTime = getNextOpeningTime(todaySlots, currentTime);\n setIsOpen(false);\n\n if (nextOpeningTime) {\n if (checkIsOpeningSoon(nextOpeningTime, currentTime)) {\n setOpeningHoursText(opensSoonLabel);\n setAdditionalInfo(` | ${atLabel} ${nextOpeningTime}`);\n setIsOpeningSoon(true);\n } else {\n setOpeningHoursText(closeLabel);\n setAdditionalInfo(` | ${opensAtLabel} ${nextOpeningTime}`);\n setIsOpeningSoon(false);\n }\n } else {\n setOpeningHoursText(closeLabel);\n setIsOpeningSoon(false);\n const nextDay = getNextOpenDay(todayIndex);\n\n if (nextDay) {\n setAdditionalInfo(\n nextDay.isTomorrow\n ? ` | ${opensTomorrowLabel}`\n : ` | ${opensOnLabel} ${nextDay.dayName}`,\n );\n } else {\n setAdditionalInfo(\"\");\n }\n }\n }\n\n setOpeningHoursText2(generateOpeningHoursText(todaySlots));\n }, [\n atLabel,\n checkIsOpeningSoon,\n closeLabel,\n closesAtLabel,\n generateOpeningHoursText,\n getNextOpenDay,\n is24HoursDay,\n open24Label,\n openLabel,\n openingHours,\n opensAtLabel,\n opensOnLabel,\n opensSoonLabel,\n opensTomorrowLabel,\n weekDays,\n weekKeys,\n ]);\n\n return (\n <Col\n fs={\"6\"}\n fw={\"semibold\"}\n className=\"ui-card-opening rounded shadow text-slate-28\"\n >\n <Col as={\"header\"} className=\"ui-card-header\">\n <TitleTag className=\"text-slate-20 fw-semibold fs-4\">{title}</TitleTag>\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n style={{ backgroundColor: \"#F7F2FC\" }}\n py={\"x16\"}\n px={\"x24\"}\n fw={\"bold\"}\n fs={\"6\"}\n className=\"rounded\"\n >\n <p className=\"text-slate-28\">\n {todayLabel}, {dayLabel}\n </p>\n <p>\n <span\n className={\n isOpen\n ? \"text-success\"\n : isOpeningSoon\n ? \"text-warning\"\n : \"text-error\"\n }\n >\n {openingHoursText}\n </span>\n <span className=\"fw-regular text-grey-black\">{additionalInfo}</span>\n </p>\n </Row>\n </Col>\n <Col as={\"main\"} pt={\"x32\"} gap={\"x24\"}>\n <Row justifyContent={\"space-around\"} className=\"ui-weekdays-container\">\n {weekDays.map((day, index) => (\n <Row\n justifyContent={\"center\"}\n alignItems={\"center\"}\n key={index}\n className={clsx(\n activeDay === index ? \"active-day text-primary\" : \"\",\n \"flex-1\",\n )}\n >\n {day.charAt(0).toUpperCase()}\n </Row>\n ))}\n </Row>\n <Row\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n fw={\"regular\"}\n >\n <p>{dayLabel}</p>\n <p>{openingHoursText2}</p>\n </Row>\n </Col>\n </Col>\n );\n};\n"],"names":["CardOpeningHours","title","TitleTag","openingHours","weekDaysMap","openLabel","todayLabel","closeLabel","open24Label","opensSoonLabel","opensAtLabel","opensTomorrowLabel","opensOnLabel","atLabel","closesAtLabel","activeDay","setActiveDay","useState","dayLabel","setDayLabel","openingHoursText","setOpeningHoursText","openingHoursText2","setOpeningHoursText2","isOpen","setIsOpen","isOpeningSoon","setIsOpeningSoon","additionalInfo","setAdditionalInfo","weekDays","weekKeys","formatCurrentTime","DateTime","parseTimeToMinutes","timeStr","hours","minutes","isSlot24Hours","useCallback","slot","is24HoursDay","slots","isCurrentlyOpen","currentTime","from","to","getNextOpeningTime","checkIsOpeningSoon","openingTime","openMinutes","currentMinutes","diffMinutes","getNextOpenDay","currentDayIndex","i","nextIndex","nextDayKey","nextDaySlots","generateOpeningHoursText","useMemo","useEffect","todayIndex","todayKey","todaySlots","open","closingTime","nextOpeningTime","nextDay","jsxs","Col","jsx","Row","day","index","clsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs53.js","sources":["../src/components/ui/filters/FiltersChips/index.tsx"],"sourcesContent":["\"use client\";\nimport \"./FiltersChips.scss\";\nimport { Row } from \"@/components\";\nimport { PropsWithChildren } from \"react\";\nimport clsx from \"clsx\";\n\ntype FiltersChipsProps = PropsWithChildren<{\n chips: string[];\n id: string;\n additionalClassName?: string;\n onChange: (selectedChip: string) => void;\n selectedChip?: string;\n}>;\n\nexport const FiltersChips = ({\n chips,\n id,\n additionalClassName,\n onChange,\n selectedChip,\n}: FiltersChipsProps) => {\n return (\n <div \n className={clsx(\"filters-chips-container\", additionalClassName)}\n role=\"radiogroup\"\n aria-label=\"Filter options\"\n >\n <Row alignItems=\"center\" gap=\"x8\" flexWrap=\"wrap\">\n {chips.map((chip) => (\n <button\n key={`${id}-${chip}`}\n className={clsx(\"filter-chip\", {\n \"filter-chip--selected\": selectedChip === chip\n })}\n role=\"radio\"\n aria-checked={selectedChip === chip}\n onClick={() => onChange(chip)}\n >\n {chip}\n </button>\n ))}\n </Row>\n </div>\n );\n};\n"],"names":["FiltersChips","chips","id","additionalClassName","onChange","selectedChip","jsx","clsx","Row","chip"],"mappings":"oNAcaA,EAAe,CAAC,CAC3B,MAAAC,EACA,GAAAC,EACA,oBAAAC,EACA,SAAAC,EACA,aAAAC,CACF,IAEIC,EAAA,kBAAA,IAAC,MAAA,CACC,UAAWC,EAAAA,KAAK,0BAA2BJ,CAAmB,EAC9D,KAAK,aACL,aAAW,iBAEX,SAAAG,EAAA,kBAAA,IAACE,EAAI,IAAA,CAAA,WAAW,SAAS,IAAI,KAAK,SAAS,OACxC,SAAAP,EAAM,IAAKQ,GACVH,EAAA,kBAAA,IAAC,SAAA,CAEC,UAAWC,OAAK,cAAe,CAC7B,wBAAyBF,IAAiBI,CAAA,CAC3C,EACD,KAAK,QACL,eAAcJ,IAAiBI,EAC/B,QAAS,IAAML,EAASK,CAAI,EAE3B,SAAAA,CAAA,EARI,GAAGP,CAAE,IAAIO,CAAI,EAAA,CAUrB,CACH,CAAA,CAAA,CACF"}
1
+ {"version":3,"file":"index.cjs53.js","sources":["../src/components/ui/filters/FiltersChips/index.tsx"],"sourcesContent":["\"use client\";\nimport \"./FiltersChips.scss\";\nimport { Row } from \"@/components\";\nimport { PropsWithChildren } from \"react\";\nimport clsx from \"clsx\";\n\ntype FiltersChipsProps = PropsWithChildren<{\n chips: string[];\n id: string;\n additionalClassName?: string;\n onChange: (selectedChip: string) => void;\n selectedChip?: string;\n}>;\n\nexport const FiltersChips = ({\n chips,\n id,\n additionalClassName,\n onChange,\n selectedChip,\n}: FiltersChipsProps) => {\n return (\n <div\n className={clsx(\"filters-chips-container\", additionalClassName)}\n role=\"radiogroup\"\n aria-label=\"Filter options\"\n >\n <Row alignItems=\"center\" gap=\"x8\" flexWrap=\"wrap\">\n {chips.map((chip) => (\n <button\n key={`${id}-${chip}`}\n className={clsx(\"filter-chip\", {\n \"filter-chip--selected\": selectedChip === chip,\n })}\n role=\"radio\"\n aria-checked={selectedChip === chip}\n onClick={() => onChange(chip)}\n >\n {chip}\n </button>\n ))}\n </Row>\n </div>\n );\n};\n"],"names":["FiltersChips","chips","id","additionalClassName","onChange","selectedChip","jsx","clsx","Row","chip"],"mappings":"oNAcaA,EAAe,CAAC,CAC3B,MAAAC,EACA,GAAAC,EACA,oBAAAC,EACA,SAAAC,EACA,aAAAC,CACF,IAEIC,EAAA,kBAAA,IAAC,MAAA,CACC,UAAWC,EAAAA,KAAK,0BAA2BJ,CAAmB,EAC9D,KAAK,aACL,aAAW,iBAEX,SAAAG,EAAA,kBAAA,IAACE,EAAI,IAAA,CAAA,WAAW,SAAS,IAAI,KAAK,SAAS,OACxC,SAAAP,EAAM,IAAKQ,GACVH,EAAA,kBAAA,IAAC,SAAA,CAEC,UAAWC,OAAK,cAAe,CAC7B,wBAAyBF,IAAiBI,CAAA,CAC3C,EACD,KAAK,QACL,eAAcJ,IAAiBI,EAC/B,QAAS,IAAML,EAASK,CAAI,EAE3B,SAAAA,CAAA,EARI,GAAGP,CAAE,IAAIO,CAAI,EAAA,CAUrB,CACH,CAAA,CAAA,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs55.js","sources":["../src/components/ui/CardDoctor/index.tsx"],"sourcesContent":["import { DayHours } from \"@anoki/fse-marche-common\";\nimport { Avatar } from \"../Avatar\";\nimport { ColorKeys } from \"@/theme/colors\";\nimport { Divider } from \"../Divider\";\nimport { Button } from \"../Button\";\nimport \"./CardDoctor.scss\";\nimport { Col, Row } from \"@/components\";\n\ntype HeadingLevel = \"h2\" | \"h3\" | \"h4\";\ntype Info = {\n label: string;\n value: string;\n};\n\ntype ScheduleDay = {\n label: string;\n slots: DayHours[];\n};\n\ntype CardDoctorProps = {\n titleTag?: HeadingLevel;\n doctorName: string;\n specialties?: string[];\n contactInfo?: Info[];\n schedule?: {\n label: string;\n days: ScheduleDay[];\n };\n avatar?: {\n initials: string;\n bg?: ColorKeys;\n textColor?: ColorKeys;\n };\n button?: {\n label: string;\n onClick: () => void;\n };\n};\n\nexport const CardDoctor = ({\n titleTag: TitleTag = \"h3\",\n doctorName,\n specialties,\n contactInfo,\n schedule,\n avatar,\n button,\n}: CardDoctorProps) => {\n const showContactInfo = () => {\n return contactInfo && contactInfo?.length > 0;\n };\n\n const showSchedule = () => {\n return schedule && schedule?.days?.length > 0;\n };\n\n const showFooter = () => {\n return button?.label && button?.onClick;\n };\n\n const showDivider = () => {\n return showContactInfo() || showSchedule();\n };\n\n return (\n <article className=\"bg-white shadow br-x4 ui-card-doctor\">\n <Row as={\"header\"} gap={\"x16\"}>\n {avatar && (\n <Avatar\n textColor={avatar?.textColor ?? \"slate-20\"}\n bg={avatar?.bg ?? \"lightblue-a01\"}\n initials={avatar?.initials ?? \"\"}\n className=\"ui-card-doctor-avatar\"\n size=\"3\"\n />\n )}\n\n <div>\n <TitleTag className=\"fs-5 fw-semibold text-slate-20\">\n {doctorName}\n </TitleTag>\n {specialties && specialties?.length > 0 && (\n <p className=\"fs-6 text-slate-20 fw-regular\">\n {specialties?.join(\" | \")}\n </p>\n )}\n </div>\n </Row>\n <div className=\"ui-card-doctor-content\">\n {showContactInfo() && (\n <dl className=\"ui-card-doctor-contact-info\">\n {contactInfo?.map((info) => (\n <div\n key={info.label}\n role=\"group\"\n className=\"ui-card-doctor-contact-detail\"\n >\n <dt className=\"fs-6 fw-bold text-slate-28\">{info.label}</dt>\n <dd className=\"fs-6 fw-regular text-slate-28\">{info.value}</dd>\n </div>\n ))}\n </dl>\n )}\n {showDivider() && (\n <Divider bg=\"border-divider\" className=\"ui-card-doctor-divider\" />\n )}\n\n {showSchedule() && (\n <div>\n <h3 className=\"text-align-left fw-bold text-slate-28 mb-x8 fw-5\">\n {schedule?.label}\n </h3>\n\n <div role=\"table\" className=\"ui-card-doctor-table\">\n {schedule?.days.map((day, dayIndex) => (\n <div key={day.label} role=\"row\" className=\"ui-card-doctor-row\">\n <div\n className=\"fs-6 fw-regular text-slate-28\"\n role=\"rowheader\"\n >\n {day.label}\n </div>\n <Col\n role=\"cell\"\n key={`cell-${dayIndex}`}\n className=\"fs-6 fw-regular text-slate-28\"\n >\n {day?.slots?.length === 0 && (\n <div>\n <span aria-hidden=\"true\">-</span>\n </div>\n )}\n {day.slots.map((slot, slotIndex) => (\n <div key={`slot-${slotIndex}`}>\n <time dateTime={slot.from}>{slot.from}</time>\n <span aria-hidden=\"true\"> - </span>\n <time dateTime={slot.to}>{slot.to}</time>\n </div>\n ))}\n </Col>\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n {showFooter() && (\n <footer>\n <Button className=\"ui-card-doctor-btn\" onClick={button?.onClick}>\n {button?.label}\n </Button>\n </footer>\n )}\n </article>\n );\n};\n"],"names":["CardDoctor","TitleTag","doctorName","specialties","contactInfo","schedule","avatar","button","showContactInfo","showSchedule","_a","showFooter","showDivider","jsxs","Row","jsx","Avatar","info","Divider","day","dayIndex","Col","slot","slotIndex","Button"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs55.js","sources":["../src/components/ui/CardDoctor/index.tsx"],"sourcesContent":["import { DayHours } from \"@anoki/fse-common\";\nimport { Avatar } from \"../Avatar\";\nimport { ColorKeys } from \"@/theme/colors\";\nimport { Divider } from \"../Divider\";\nimport { Button } from \"../Button\";\nimport \"./CardDoctor.scss\";\nimport { Col, Row } from \"@/components\";\n\ntype HeadingLevel = \"h2\" | \"h3\" | \"h4\";\ntype Info = {\n label: string;\n value: string;\n};\n\ntype ScheduleDay = {\n label: string;\n slots: DayHours[];\n};\n\ntype CardDoctorProps = {\n titleTag?: HeadingLevel;\n doctorName: string;\n specialties?: string[];\n contactInfo?: Info[];\n schedule?: {\n label: string;\n days: ScheduleDay[];\n };\n avatar?: {\n initials: string;\n bg?: ColorKeys;\n textColor?: ColorKeys;\n };\n button?: {\n label: string;\n onClick: () => void;\n };\n};\n\nexport const CardDoctor = ({\n titleTag: TitleTag = \"h3\",\n doctorName,\n specialties,\n contactInfo,\n schedule,\n avatar,\n button,\n}: CardDoctorProps) => {\n const showContactInfo = () => {\n return contactInfo && contactInfo?.length > 0;\n };\n\n const showSchedule = () => {\n return schedule && schedule?.days?.length > 0;\n };\n\n const showFooter = () => {\n return button?.label && button?.onClick;\n };\n\n const showDivider = () => {\n return showContactInfo() || showSchedule();\n };\n\n return (\n <article className=\"bg-white shadow br-x4 ui-card-doctor\">\n <Row as={\"header\"} gap={\"x16\"}>\n {avatar && (\n <Avatar\n textColor={avatar?.textColor ?? \"slate-20\"}\n bg={avatar?.bg ?? \"lightblue-a01\"}\n initials={avatar?.initials ?? \"\"}\n className=\"ui-card-doctor-avatar\"\n size=\"3\"\n />\n )}\n\n <div>\n <TitleTag className=\"fs-5 fw-semibold text-slate-20\">\n {doctorName}\n </TitleTag>\n {specialties && specialties?.length > 0 && (\n <p className=\"fs-6 text-slate-20 fw-regular\">\n {specialties?.join(\" | \")}\n </p>\n )}\n </div>\n </Row>\n <div className=\"ui-card-doctor-content\">\n {showContactInfo() && (\n <dl className=\"ui-card-doctor-contact-info\">\n {contactInfo?.map((info) => (\n <div\n key={info.label}\n role=\"group\"\n className=\"ui-card-doctor-contact-detail\"\n >\n <dt className=\"fs-6 fw-bold text-slate-28\">{info.label}</dt>\n <dd className=\"fs-6 fw-regular text-slate-28\">{info.value}</dd>\n </div>\n ))}\n </dl>\n )}\n {showDivider() && (\n <Divider bg=\"border-divider\" className=\"ui-card-doctor-divider\" />\n )}\n\n {showSchedule() && (\n <div>\n <h3 className=\"text-align-left fw-bold text-slate-28 mb-x8 fw-5\">\n {schedule?.label}\n </h3>\n\n <div role=\"table\" className=\"ui-card-doctor-table\">\n {schedule?.days.map((day, dayIndex) => (\n <div key={day.label} role=\"row\" className=\"ui-card-doctor-row\">\n <div\n className=\"fs-6 fw-regular text-slate-28\"\n role=\"rowheader\"\n >\n {day.label}\n </div>\n <Col\n role=\"cell\"\n key={`cell-${dayIndex}`}\n className=\"fs-6 fw-regular text-slate-28\"\n >\n {day?.slots?.length === 0 && (\n <div>\n <span aria-hidden=\"true\">-</span>\n </div>\n )}\n {day.slots.map((slot, slotIndex) => (\n <div key={`slot-${slotIndex}`}>\n <time dateTime={slot.from}>{slot.from}</time>\n <span aria-hidden=\"true\"> - </span>\n <time dateTime={slot.to}>{slot.to}</time>\n </div>\n ))}\n </Col>\n </div>\n ))}\n </div>\n </div>\n )}\n </div>\n {showFooter() && (\n <footer>\n <Button className=\"ui-card-doctor-btn\" onClick={button?.onClick}>\n {button?.label}\n </Button>\n </footer>\n )}\n </article>\n );\n};\n"],"names":["CardDoctor","TitleTag","doctorName","specialties","contactInfo","schedule","avatar","button","showContactInfo","showSchedule","_a","showFooter","showDivider","jsxs","Row","jsx","Avatar","info","Divider","day","dayIndex","Col","slot","slotIndex","Button"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs73.js","sources":["../src/sections/WhatDoYouNeed/index.tsx"],"sourcesContent":["import { Button, Col, Section } from \"@/components\";\nimport { SectionLink } from \"@anoki/fse-marche-common\";\nimport \"./WhatDoYouNeed.scss\";\nimport { ComponentType, PropsWithChildren, ReactNode } from \"react\";\n\ntype WhatDoYouNeedProps = PropsWithChildren<{\n title: ReactNode;\n description?: ReactNode;\n links: EnhancedSectionLink[];\n asLink?: \"a\" | ComponentType<any>;\n}>;\n\ntype EnhancedSectionLink = SectionLink & {\n isNewTab?: boolean;\n};\n\nexport const WhatDoYouNeed = ({\n title,\n description,\n links,\n asLink = \"a\",\n}: WhatDoYouNeedProps) => {\n return (\n <Section className=\"base-col ui-what-do-you-need-section\">\n <Col className=\"ui-what-do-you-need-content\">\n <Section.Title fs=\"2\">{title}</Section.Title>\n {description && (\n <Section.Description>{description}</Section.Description>\n )}\n </Col>\n <ul\n role=\"list\"\n aria-label={`Lista di ${title}`}\n className=\"list-style-none ui-what-do-you-need-links\"\n >\n {links?.map(({ link, title, isNewTab }, index) => (\n <li key={link}>\n <Button\n asLink={asLink}\n href={link}\n size=\"2\"\n variant={index > 0 ? \"secondary\" : \"primary\"}\n // textColor={index > 0 ? \"primary\" : undefined}\n // bg={index > 0 ? \"white\" : undefined}\n // className={index > 0 ? \"br-color-primary\" : undefined}\n target={isNewTab ? \"_blank\" : undefined}\n rel={isNewTab ? \"noopener noreferrer\" : undefined}\n >\n {title}\n </Button>\n </li>\n ))}\n </ul>\n </Section>\n );\n};\n"],"names":["WhatDoYouNeed","title","description","links","asLink","jsxs","Section","Col","jsx","link","isNewTab","index","Button"],"mappings":"kPAgBaA,EAAgB,CAAC,CAC5B,MAAAC,EACA,YAAAC,EACA,MAAAC,EACA,OAAAC,EAAS,GACX,IAEIC,EAAA,kBAAA,KAACC,EAAQ,QAAA,CAAA,UAAU,uCACjB,SAAA,CAACD,EAAAA,kBAAAA,KAAAE,EAAAA,IAAA,CAAI,UAAU,8BACb,SAAA,CAAAC,EAAA,kBAAA,IAACF,EAAQ,QAAA,MAAR,CAAc,GAAG,IAAK,SAAML,EAAA,EAC5BC,GACCM,EAAA,kBAAA,IAACF,EAAQ,QAAA,YAAR,CAAqB,SAAYJ,CAAA,CAAA,CAAA,EAEtC,EACAM,EAAA,kBAAA,IAAC,KAAA,CACC,KAAK,OACL,aAAY,YAAYP,CAAK,GAC7B,UAAU,4CAET,SAAAE,GAAA,YAAAA,EAAO,IAAI,CAAC,CAAE,KAAAM,EAAM,MAAAR,EAAO,SAAAS,CAAS,EAAGC,IACtCH,EAAAA,kBAAAA,IAAC,KACC,CAAA,SAAAA,EAAA,kBAAA,IAACI,EAAA,OAAA,CACC,OAAAR,EACA,KAAMK,EACN,KAAK,IACL,QAASE,EAAQ,EAAI,YAAc,UAInC,OAAQD,EAAW,SAAW,OAC9B,IAAKA,EAAW,sBAAwB,OAEvC,SAAAT,CAAA,CACH,CAAA,EAbOQ,CAcT,EACD,CAAA,CACH,EACF"}
1
+ {"version":3,"file":"index.cjs73.js","sources":["../src/sections/WhatDoYouNeed/index.tsx"],"sourcesContent":["import { Button, Col, Section } from \"@/components\";\nimport { SectionLink } from \"@anoki/fse-common\";\nimport \"./WhatDoYouNeed.scss\";\nimport { ComponentType, PropsWithChildren, ReactNode } from \"react\";\n\ntype WhatDoYouNeedProps = PropsWithChildren<{\n title: ReactNode;\n description?: ReactNode;\n links: EnhancedSectionLink[];\n asLink?: \"a\" | ComponentType<any>;\n}>;\n\ntype EnhancedSectionLink = SectionLink & {\n isNewTab?: boolean;\n};\n\nexport const WhatDoYouNeed = ({\n title,\n description,\n links,\n asLink = \"a\",\n}: WhatDoYouNeedProps) => {\n return (\n <Section className=\"base-col ui-what-do-you-need-section\">\n <Col className=\"ui-what-do-you-need-content\">\n <Section.Title fs=\"2\">{title}</Section.Title>\n {description && (\n <Section.Description>{description}</Section.Description>\n )}\n </Col>\n <ul\n role=\"list\"\n aria-label={`Lista di ${title}`}\n className=\"list-style-none ui-what-do-you-need-links\"\n >\n {links?.map(({ link, title, isNewTab }, index) => (\n <li key={link}>\n <Button\n asLink={asLink}\n href={link}\n size=\"2\"\n variant={index > 0 ? \"secondary\" : \"primary\"}\n // textColor={index > 0 ? \"primary\" : undefined}\n // bg={index > 0 ? \"white\" : undefined}\n // className={index > 0 ? \"br-color-primary\" : undefined}\n target={isNewTab ? \"_blank\" : undefined}\n rel={isNewTab ? \"noopener noreferrer\" : undefined}\n >\n {title}\n </Button>\n </li>\n ))}\n </ul>\n </Section>\n );\n};\n"],"names":["WhatDoYouNeed","title","description","links","asLink","jsxs","Section","Col","jsx","link","isNewTab","index","Button"],"mappings":"kPAgBaA,EAAgB,CAAC,CAC5B,MAAAC,EACA,YAAAC,EACA,MAAAC,EACA,OAAAC,EAAS,GACX,IAEIC,EAAA,kBAAA,KAACC,EAAQ,QAAA,CAAA,UAAU,uCACjB,SAAA,CAACD,EAAAA,kBAAAA,KAAAE,EAAAA,IAAA,CAAI,UAAU,8BACb,SAAA,CAAAC,EAAA,kBAAA,IAACF,EAAQ,QAAA,MAAR,CAAc,GAAG,IAAK,SAAML,EAAA,EAC5BC,GACCM,EAAA,kBAAA,IAACF,EAAQ,QAAA,YAAR,CAAqB,SAAYJ,CAAA,CAAA,CAAA,EAEtC,EACAM,EAAA,kBAAA,IAAC,KAAA,CACC,KAAK,OACL,aAAY,YAAYP,CAAK,GAC7B,UAAU,4CAET,SAAAE,GAAA,YAAAA,EAAO,IAAI,CAAC,CAAE,KAAAM,EAAM,MAAAR,EAAO,SAAAS,CAAS,EAAGC,IACtCH,EAAAA,kBAAAA,IAAC,KACC,CAAA,SAAAA,EAAA,kBAAA,IAACI,EAAA,OAAA,CACC,OAAAR,EACA,KAAMK,EACN,KAAK,IACL,QAASE,EAAQ,EAAI,YAAc,UAInC,OAAQD,EAAW,SAAW,OAC9B,IAAKA,EAAW,sBAAwB,OAEvC,SAAAT,CAAA,CACH,CAAA,EAbOQ,CAcT,EACD,CAAA,CACH,EACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs74.js","sources":["../src/sections/RichText/index.tsx"],"sourcesContent":["import { Col, Section } from \"@/components\";\nimport { SectionLink } from \"@anoki/fse-marche-common\";\nimport { PropsWithChildren, ReactNode, ComponentType } from \"react\";\nimport \"./RichText.scss\";\n\ntype RichTextProps = PropsWithChildren<{\n title: ReactNode;\n description?: ReactNode;\n links?: SectionLink[];\n asLink?: \"a\" | ComponentType<any>;\n}>;\n\nexport const RichText = ({ title, description, children }: RichTextProps) => {\n return (\n <Section className=\"base-col ui-rich-text-section\">\n <Col className=\"ui-rich-text-content\">\n <Section.Title fs=\"2\">{title}</Section.Title>\n {description && (\n <Section.Description>{description}</Section.Description>\n )}\n </Col>\n {children}\n </Section>\n );\n};\n"],"names":["RichText","title","description","children","jsxs","Section","Col","jsx"],"mappings":"oNAYaA,EAAW,CAAC,CAAE,MAAAC,EAAO,YAAAC,EAAa,SAAAC,KAE3CC,EAAA,kBAAA,KAACC,EAAQ,QAAA,CAAA,UAAU,gCACjB,SAAA,CAACD,EAAAA,kBAAAA,KAAAE,EAAAA,IAAA,CAAI,UAAU,uBACb,SAAA,CAAAC,EAAA,kBAAA,IAACF,EAAQ,QAAA,MAAR,CAAc,GAAG,IAAK,SAAMJ,EAAA,EAC5BC,GACCK,EAAA,kBAAA,IAACF,EAAQ,QAAA,YAAR,CAAqB,SAAYH,CAAA,CAAA,CAAA,EAEtC,EACCC,CAAA,EACH"}
1
+ {"version":3,"file":"index.cjs74.js","sources":["../src/sections/RichText/index.tsx"],"sourcesContent":["import { Col, Section } from \"@/components\";\nimport { SectionLink } from \"@anoki/fse-common\";\nimport { PropsWithChildren, ReactNode, ComponentType } from \"react\";\nimport \"./RichText.scss\";\n\ntype RichTextProps = PropsWithChildren<{\n title: ReactNode;\n description?: ReactNode;\n links?: SectionLink[];\n asLink?: \"a\" | ComponentType<any>;\n}>;\n\nexport const RichText = ({ title, description, children }: RichTextProps) => {\n return (\n <Section className=\"base-col ui-rich-text-section\">\n <Col className=\"ui-rich-text-content\">\n <Section.Title fs=\"2\">{title}</Section.Title>\n {description && (\n <Section.Description>{description}</Section.Description>\n )}\n </Col>\n {children}\n </Section>\n );\n};\n"],"names":["RichText","title","description","children","jsxs","Section","Col","jsx"],"mappings":"oNAYaA,EAAW,CAAC,CAAE,MAAAC,EAAO,YAAAC,EAAa,SAAAC,KAE3CC,EAAA,kBAAA,KAACC,EAAQ,QAAA,CAAA,UAAU,gCACjB,SAAA,CAACD,EAAAA,kBAAAA,KAAAE,EAAAA,IAAA,CAAI,UAAU,uBACb,SAAA,CAAAC,EAAA,kBAAA,IAACF,EAAQ,QAAA,MAAR,CAAc,GAAG,IAAK,SAAMJ,EAAA,EAC5BC,GACCK,EAAA,kBAAA,IAACF,EAAQ,QAAA,YAAR,CAAqB,SAAYH,CAAA,CAAA,CAAA,EAEtC,EACCC,CAAA,EACH"}
package/dist/index.d.ts CHANGED
@@ -1,21 +1,21 @@
1
- import { AddressSchema } from '@anoki/fse-marche-common';
1
+ import { AddressSchema } from '@anoki/fse-common';
2
2
  import { ComponentPropsWithoutRef } from 'react';
3
3
  import { ComponentType } from 'react';
4
4
  import { CSSProperties } from 'react';
5
- import { DayHours } from '@anoki/fse-marche-common';
5
+ import { DayHours } from '@anoki/fse-common';
6
6
  import { default as default_2 } from 'react';
7
7
  import { ElementType } from 'react';
8
8
  import { FC } from 'react';
9
- import { GeneralPractitionerResponse } from '@anoki/fse-marche-common/dist/types/general-practitioner-service';
9
+ import { GeneralPractitionerResponse } from '@anoki/fse-common/dist/types/general-practitioner-service';
10
10
  import { JSX } from 'react/jsx-runtime';
11
- import { OfficeResponse } from '@anoki/fse-marche-common/dist/types/general-practitioner-service';
12
- import { OpeningHours } from '@anoki/fse-marche-common';
11
+ import { OfficeResponse } from '@anoki/fse-common/dist/types/general-practitioner-service';
12
+ import { OpeningHours } from '@anoki/fse-common';
13
13
  import { PropsWithChildren } from 'react';
14
14
  import * as React_2 from 'react';
15
15
  import { ReactNode } from 'react';
16
- import { SectionLink } from '@anoki/fse-marche-common';
17
- import { Service } from '@anoki/fse-marche-common';
18
- import { Structure } from '@anoki/fse-marche-common';
16
+ import { SectionLink } from '@anoki/fse-common';
17
+ import { Service } from '@anoki/fse-common';
18
+ import { Structure } from '@anoki/fse-common';
19
19
 
20
20
  export declare interface ActionData {
21
21
  label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.es12.js","sources":["../src/components/ui/SearchStructure/index.tsx"],"sourcesContent":["import \"./SearchStructure.scss\";\nimport clsx from \"clsx\";\nimport { ChangeEvent, useState } from \"react\";\nimport { Button, Col } from \"@/components\";\nimport { Close } from \"@/icons\";\nimport { Structure } from \"@anoki/fse-marche-common\";\nimport { useMediaQuery } from \"@/hooks/useMediaQuery.ts\";\n\nexport type SearchProps = {\n btnText: string;\n helperText: string;\n mobileHelperText?: string;\n value: string;\n items: Structure[];\n setValue: (value: string) => void;\n};\n\nexport const SearchStructure = ({\n btnText,\n helperText,\n mobileHelperText = helperText,\n value,\n items,\n setValue,\n}: SearchProps) => {\n const [valueInput, setValueInput] = useState<string | undefined>(value);\n const [filteredItems, setFilteredItems] = useState<Structure[]>([]);\n const isDesktop = useMediaQuery(\"(min-width: 768px)\");\n\n const handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value;\n setValueInput(inputValue);\n\n if (inputValue.length >= 3) {\n const results = items.filter((item) =>\n [item.address.streetName, item.address.zipCode, item.address.city].some(\n (field) => field?.toLowerCase().includes(inputValue.toLowerCase()),\n ),\n );\n setFilteredItems(results);\n } else {\n setFilteredItems([]);\n }\n };\n\n const handleSelectItem = (item: Structure) => {\n setValueInput(item.address.plainAddress);\n setFilteredItems([]);\n };\n\n const highlightMatch = (text: string, query: string) => {\n if (!query) return text;\n\n const index = text.toLowerCase().indexOf(query.toLowerCase());\n if (index === -1) return text;\n\n const beforeMatch = text.slice(0, index);\n const match = text.slice(index, index + query.length);\n const afterMatch = text.slice(index + query.length);\n\n return (\n <>\n {beforeMatch}\n <span className={\"text-primary fw-bold\"}>{match}</span>\n {afterMatch}\n </>\n );\n };\n\n return (\n <div className={clsx(\"ui-search\", \"br-x4 bg-border-secondary w-full\")}>\n <div className={\"position-relative\"}>\n <input\n id=\"search\"\n type=\"text\"\n className={clsx(\n \"ui-search-input\",\n \"fs-6 md-fs-custom text-slate-20 br-x4 w-full pl-x24\",\n valueInput && valueInput.length >= 3 && \"has-clear-icon\",\n )}\n placeholder={isDesktop ? helperText : mobileHelperText}\n aria-label=\"Barra di ricerca\"\n value={valueInput}\n onChange={handleInputChange}\n maxLength={30}\n />\n {valueInput && valueInput.length >= 3 && (\n <Close\n className={\"ui-clean-button\"}\n onClick={() => {\n setValueInput(\"\");\n setFilteredItems([]);\n }}\n />\n )}\n </div>\n {filteredItems.length > 0 && (\n <div className=\"ui-wrap-list-item-search shadow position-absolute p-x24\">\n <Col\n gap={\"x24\"}\n fw={\"regular\"}\n text={\"secondary\"}\n fs={\"6\"}\n className=\"ui-list-item-search overflow-y-auto \"\n >\n {filteredItems.map((item, index) => (\n <div key={index} onClick={() => handleSelectItem(item)}>\n {highlightMatch(item.address.plainAddress, valueInput || \"\")}\n </div>\n ))}\n </Col>\n </div>\n )}\n <div className={clsx(\"ui-div-btn\")}>\n <Button\n className={clsx(\n \"ui-btn-search\",\n \"bg-primary text-white fs-7 md-fs-6 fw-semibold br-x4\",\n )}\n onClick={() => {\n setFilteredItems([]);\n setValue(valueInput ?? \"\");\n }}\n >\n {btnText}\n </Button>\n </div>\n </div>\n );\n};\n"],"names":["SearchStructure","btnText","helperText","mobileHelperText","value","items","setValue","valueInput","setValueInput","useState","filteredItems","setFilteredItems","isDesktop","useMediaQuery","handleInputChange","e","inputValue","results","item","field","handleSelectItem","highlightMatch","text","query","index","beforeMatch","match","afterMatch","jsxs","Fragment","jsx","clsx","Close","Col","Button"],"mappings":"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"}
1
+ {"version":3,"file":"index.es12.js","sources":["../src/components/ui/SearchStructure/index.tsx"],"sourcesContent":["import \"./SearchStructure.scss\";\nimport clsx from \"clsx\";\nimport { ChangeEvent, useState } from \"react\";\nimport { Button, Col } from \"@/components\";\nimport { Close } from \"@/icons\";\nimport { Structure } from \"@anoki/fse-common\";\nimport { useMediaQuery } from \"@/hooks/useMediaQuery.ts\";\n\nexport type SearchProps = {\n btnText: string;\n helperText: string;\n mobileHelperText?: string;\n value: string;\n items: Structure[];\n setValue: (value: string) => void;\n};\n\nexport const SearchStructure = ({\n btnText,\n helperText,\n mobileHelperText = helperText,\n value,\n items,\n setValue,\n}: SearchProps) => {\n const [valueInput, setValueInput] = useState<string | undefined>(value);\n const [filteredItems, setFilteredItems] = useState<Structure[]>([]);\n const isDesktop = useMediaQuery(\"(min-width: 768px)\");\n\n const handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value;\n setValueInput(inputValue);\n\n if (inputValue.length >= 3) {\n const results = items.filter((item) =>\n [item.address.streetName, item.address.zipCode, item.address.city].some(\n (field) => field?.toLowerCase().includes(inputValue.toLowerCase()),\n ),\n );\n setFilteredItems(results);\n } else {\n setFilteredItems([]);\n }\n };\n\n const handleSelectItem = (item: Structure) => {\n setValueInput(item.address.plainAddress);\n setFilteredItems([]);\n };\n\n const highlightMatch = (text: string, query: string) => {\n if (!query) return text;\n\n const index = text.toLowerCase().indexOf(query.toLowerCase());\n if (index === -1) return text;\n\n const beforeMatch = text.slice(0, index);\n const match = text.slice(index, index + query.length);\n const afterMatch = text.slice(index + query.length);\n\n return (\n <>\n {beforeMatch}\n <span className={\"text-primary fw-bold\"}>{match}</span>\n {afterMatch}\n </>\n );\n };\n\n return (\n <div className={clsx(\"ui-search\", \"br-x4 bg-border-secondary w-full\")}>\n <div className={\"position-relative\"}>\n <input\n id=\"search\"\n type=\"text\"\n className={clsx(\n \"ui-search-input\",\n \"fs-6 md-fs-custom text-slate-20 br-x4 w-full pl-x24\",\n valueInput && valueInput.length >= 3 && \"has-clear-icon\",\n )}\n placeholder={isDesktop ? helperText : mobileHelperText}\n aria-label=\"Barra di ricerca\"\n value={valueInput}\n onChange={handleInputChange}\n maxLength={30}\n />\n {valueInput && valueInput.length >= 3 && (\n <Close\n className={\"ui-clean-button\"}\n onClick={() => {\n setValueInput(\"\");\n setFilteredItems([]);\n }}\n />\n )}\n </div>\n {filteredItems.length > 0 && (\n <div className=\"ui-wrap-list-item-search shadow position-absolute p-x24\">\n <Col\n gap={\"x24\"}\n fw={\"regular\"}\n text={\"secondary\"}\n fs={\"6\"}\n className=\"ui-list-item-search overflow-y-auto \"\n >\n {filteredItems.map((item, index) => (\n <div key={index} onClick={() => handleSelectItem(item)}>\n {highlightMatch(item.address.plainAddress, valueInput || \"\")}\n </div>\n ))}\n </Col>\n </div>\n )}\n <div className={clsx(\"ui-div-btn\")}>\n <Button\n className={clsx(\n \"ui-btn-search\",\n \"bg-primary text-white fs-7 md-fs-6 fw-semibold br-x4\",\n )}\n onClick={() => {\n setFilteredItems([]);\n setValue(valueInput ?? \"\");\n }}\n >\n {btnText}\n </Button>\n </div>\n </div>\n );\n};\n"],"names":["SearchStructure","btnText","helperText","mobileHelperText","value","items","setValue","valueInput","setValueInput","useState","filteredItems","setFilteredItems","isDesktop","useMediaQuery","handleInputChange","e","inputValue","results","item","field","handleSelectItem","highlightMatch","text","query","index","beforeMatch","match","afterMatch","jsxs","Fragment","jsx","clsx","Close","Col","Button"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.es13.js","sources":["../src/components/ui/SearchService/index.tsx"],"sourcesContent":["import \"./SearchService.scss\";\nimport clsx from \"clsx\";\nimport { ChangeEvent, useState } from \"react\";\nimport { Button, Col } from \"@/components\";\nimport { Close } from \"@/icons\";\nimport { Service } from \"@anoki/fse-marche-common\";\n\nexport type SearchServiceProps = {\n btnText: string;\n helperText: string;\n value: string;\n items: Service[];\n setValue: (value: string) => void;\n};\n\nexport const SearchService = ({\n btnText,\n helperText,\n value,\n items,\n setValue,\n}: SearchServiceProps) => {\n const [valueInput, setValueInput] = useState<string | undefined>(value);\n const [filteredItems, setFilteredItems] = useState<Service[]>([]);\n\n const handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value;\n setValueInput(inputValue);\n\n if (inputValue.length >= 3) {\n const results = items.filter((item) =>\n [item.name].some((field) =>\n field?.toLowerCase().includes(inputValue.toLowerCase()),\n ),\n );\n setFilteredItems(results);\n } else {\n setFilteredItems([]);\n }\n };\n\n const handleSelectItem = (item: Service) => {\n setValueInput(item.name);\n setFilteredItems([]);\n };\n\n const highlightMatch = (text: string, query: string) => {\n if (!query) return text;\n\n const index = text.toLowerCase().indexOf(query.toLowerCase());\n if (index === -1) return text;\n\n const beforeMatch = text.slice(0, index);\n const match = text.slice(index, index + query.length);\n const afterMatch = text.slice(index + query.length);\n\n return (\n <>\n {beforeMatch}\n <span className={\"text-primary fw-bold\"}>{match}</span>\n {afterMatch}\n </>\n );\n };\n\n return (\n <div className={clsx(\"ui-search\", \"br-x4 bg-border-secondary w-full\")}>\n <div className={\"position-relative\"}>\n <input\n id=\"search\"\n type=\"search\"\n className={clsx(\n \"ui-search-input\",\n \"fs-6 md-fs-custom text-slate-20 br-x4 w-full pl-x24\",\n )}\n placeholder={helperText}\n aria-label=\"Barra di ricerca\"\n value={valueInput}\n onChange={handleInputChange}\n />\n {valueInput && valueInput.length >= 3 && (\n <Close\n className={\"ui-clean-button\"}\n onClick={() => {\n setValueInput(\"\");\n setFilteredItems([]);\n }}\n />\n )}\n </div>\n {filteredItems.length > 0 && (\n <div className=\"ui-wrap-list-item-search shadow position-absolute p-x24\">\n <Col\n gap={\"x24\"}\n fw={\"regular\"}\n text={\"secondary\"}\n fs={\"6\"}\n className=\"ui-list-item-search overflow-y-auto\"\n >\n {filteredItems.map((item, index) => (\n <div key={index} onClick={() => handleSelectItem(item)}>\n {highlightMatch(item.name, valueInput || \"\")}\n </div>\n ))}\n </Col>\n </div>\n )}\n <div className={clsx(\"ui-div-btn\")}>\n <Button\n className={clsx(\n \"ui-btn-search\",\n \"bg-primary text-white fs-7 md-fs-6 fw-semibold br-x4\",\n )}\n onClick={() => {\n setFilteredItems([]);\n setValue(valueInput ?? \"\");\n }}\n >\n {btnText}\n </Button>\n </div>\n </div>\n );\n};\n"],"names":["SearchService","btnText","helperText","value","items","setValue","valueInput","setValueInput","useState","filteredItems","setFilteredItems","handleInputChange","inputValue","results","item","field","handleSelectItem","highlightMatch","text","query","index","beforeMatch","match","afterMatch","jsxs","Fragment","jsx","clsx","Close","Col","Button"],"mappings":"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"}
1
+ {"version":3,"file":"index.es13.js","sources":["../src/components/ui/SearchService/index.tsx"],"sourcesContent":["import \"./SearchService.scss\";\nimport clsx from \"clsx\";\nimport { ChangeEvent, useState } from \"react\";\nimport { Button, Col } from \"@/components\";\nimport { Close } from \"@/icons\";\nimport { Service } from \"@anoki/fse-common\";\n\nexport type SearchServiceProps = {\n btnText: string;\n helperText: string;\n value: string;\n items: Service[];\n setValue: (value: string) => void;\n};\n\nexport const SearchService = ({\n btnText,\n helperText,\n value,\n items,\n setValue,\n}: SearchServiceProps) => {\n const [valueInput, setValueInput] = useState<string | undefined>(value);\n const [filteredItems, setFilteredItems] = useState<Service[]>([]);\n\n const handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value;\n setValueInput(inputValue);\n\n if (inputValue.length >= 3) {\n const results = items.filter((item) =>\n [item.name].some((field) =>\n field?.toLowerCase().includes(inputValue.toLowerCase()),\n ),\n );\n setFilteredItems(results);\n } else {\n setFilteredItems([]);\n }\n };\n\n const handleSelectItem = (item: Service) => {\n setValueInput(item.name);\n setFilteredItems([]);\n };\n\n const highlightMatch = (text: string, query: string) => {\n if (!query) return text;\n\n const index = text.toLowerCase().indexOf(query.toLowerCase());\n if (index === -1) return text;\n\n const beforeMatch = text.slice(0, index);\n const match = text.slice(index, index + query.length);\n const afterMatch = text.slice(index + query.length);\n\n return (\n <>\n {beforeMatch}\n <span className={\"text-primary fw-bold\"}>{match}</span>\n {afterMatch}\n </>\n );\n };\n\n return (\n <div className={clsx(\"ui-search\", \"br-x4 bg-border-secondary w-full\")}>\n <div className={\"position-relative\"}>\n <input\n id=\"search\"\n type=\"search\"\n className={clsx(\n \"ui-search-input\",\n \"fs-6 md-fs-custom text-slate-20 br-x4 w-full pl-x24\",\n )}\n placeholder={helperText}\n aria-label=\"Barra di ricerca\"\n value={valueInput}\n onChange={handleInputChange}\n />\n {valueInput && valueInput.length >= 3 && (\n <Close\n className={\"ui-clean-button\"}\n onClick={() => {\n setValueInput(\"\");\n setFilteredItems([]);\n }}\n />\n )}\n </div>\n {filteredItems.length > 0 && (\n <div className=\"ui-wrap-list-item-search shadow position-absolute p-x24\">\n <Col\n gap={\"x24\"}\n fw={\"regular\"}\n text={\"secondary\"}\n fs={\"6\"}\n className=\"ui-list-item-search overflow-y-auto\"\n >\n {filteredItems.map((item, index) => (\n <div key={index} onClick={() => handleSelectItem(item)}>\n {highlightMatch(item.name, valueInput || \"\")}\n </div>\n ))}\n </Col>\n </div>\n )}\n <div className={clsx(\"ui-div-btn\")}>\n <Button\n className={clsx(\n \"ui-btn-search\",\n \"bg-primary text-white fs-7 md-fs-6 fw-semibold br-x4\",\n )}\n onClick={() => {\n setFilteredItems([]);\n setValue(valueInput ?? \"\");\n }}\n >\n {btnText}\n </Button>\n </div>\n </div>\n );\n};\n"],"names":["SearchService","btnText","helperText","value","items","setValue","valueInput","setValueInput","useState","filteredItems","setFilteredItems","handleInputChange","inputValue","results","item","field","handleSelectItem","highlightMatch","text","query","index","beforeMatch","match","afterMatch","jsxs","Fragment","jsx","clsx","Close","Col","Button"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import * as p from "react";
2
- import { composeEventHandlers as m } from "./index.es235.js";
3
- import { composeRefs as E } from "./index.es236.js";
4
- import { createContextScope as S } from "./index.es237.js";
5
- import { useControllableState as P } from "./index.es238.js";
6
- import { Primitive as y } from "./index.es239.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.es240.js";
8
- import { useId as g } from "./index.es241.js";
2
+ import { composeEventHandlers as m } from "./index.es238.js";
3
+ import { composeRefs as E } from "./index.es239.js";
4
+ import { createContextScope as S } from "./index.es240.js";
5
+ import { useControllableState as P } from "./index.es241.js";
6
+ import { Primitive as y } from "./index.es242.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.es243.js";
8
+ import { useId as g } from "./index.es244.js";
9
9
  import { j as a } from "./index.es137.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.es139.js";
6
- import { useFocusTrap as N } from "./index.es242.js";
6
+ import { useFocusTrap as N } from "./index.es235.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.es236.js";
3
- import { createContextScope as M } from "./index.es237.js";
4
- import { composeEventHandlers as S } from "./index.es235.js";
5
- import { useControllableState as O } from "./index.es238.js";
2
+ import { useComposedRefs as N } from "./index.es239.js";
3
+ import { createContextScope as M } from "./index.es240.js";
4
+ import { composeEventHandlers as S } from "./index.es238.js";
5
+ import { useControllableState as O } from "./index.es241.js";
6
6
  import { usePrevious as A } from "./index.es245.js";
7
7
  import { useSize as B } from "./index.es246.js";
8
8
  import { Presence as H } from "./index.es247.js";
9
- import { Primitive as j } from "./index.es239.js";
9
+ import { Primitive as j } from "./index.es242.js";
10
10
  import { j as f } from "./index.es137.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.es235.js";
3
- import { useComposedRefs as C } from "./index.es236.js";
4
- import { createContextScope as L, createContext as $ } from "./index.es237.js";
5
- import { useId as x } from "./index.es241.js";
6
- import { useControllableState as B } from "./index.es238.js";
7
- import { DismissableLayer as H } from "./index.es248.js";
8
- import { FocusScope as V } from "./index.es249.js";
9
- import { Portal as q } from "./index.es250.js";
2
+ import { composeEventHandlers as p } from "./index.es238.js";
3
+ import { useComposedRefs as C } from "./index.es239.js";
4
+ import { createContextScope as L, createContext as $ } from "./index.es240.js";
5
+ import { useId as x } from "./index.es244.js";
6
+ import { useControllableState as B } from "./index.es241.js";
7
+ import { DismissableLayer as H } from "./index.es254.js";
8
+ import { FocusScope as V } from "./index.es256.js";
9
+ import { Portal as q } from "./index.es258.js";
10
10
  import { Presence as R } from "./index.es247.js";
11
- import { Primitive as m } from "./index.es239.js";
12
- import { useFocusGuards as K } from "./index.es251.js";
13
- import U from "./index.es252.js";
14
- import { hideOthers as Y } from "./index.es253.js";
15
- import { Slot as Z } from "./index.es254.js";
11
+ import { Primitive as m } from "./index.es242.js";
12
+ import { useFocusGuards as K } from "./index.es255.js";
13
+ import U from "./index.es261.js";
14
+ import { hideOthers as Y } from "./index.es260.js";
15
+ import { Slot as Z } from "./index.es251.js";
16
16
  import { j as i } from "./index.es137.js";
17
17
  var _ = "Dialog", [P, _e] = L(_), [z, u] = P(_), y = (e) => {
18
18
  const {
@@ -1,11 +1,11 @@
1
1
  import * as s from "react";
2
- import { composeEventHandlers as T } from "./index.es235.js";
3
- import { useComposedRefs as _ } from "./index.es236.js";
4
- import { createContextScope as H } from "./index.es237.js";
5
- import { useControllableState as I } from "./index.es238.js";
2
+ import { composeEventHandlers as T } from "./index.es238.js";
3
+ import { useComposedRefs as _ } from "./index.es239.js";
4
+ import { createContextScope as H } from "./index.es240.js";
5
+ import { useControllableState as I } from "./index.es241.js";
6
6
  import { usePrevious as M } from "./index.es245.js";
7
7
  import { useSize as N } from "./index.es246.js";
8
- import { Primitive as w } from "./index.es239.js";
8
+ import { Primitive as w } from "./index.es242.js";
9
9
  import { j as p } from "./index.es137.js";
10
10
  var S = "Switch", [B, J] = H(S), [q, z] = B(S), C = s.forwardRef(
11
11
  (e, n) => {
@@ -1,4 +1,4 @@
1
- import { __exports as e } from "./index.es258.js";
1
+ import { __exports as e } from "./index.es248.js";
2
2
  /**
3
3
  * @license React
4
4
  * react-jsx-runtime.production.js
@@ -1,4 +1,4 @@
1
- import { __exports as _ } from "./index.es259.js";
1
+ import { __exports as _ } from "./index.es249.js";
2
2
  import we from "react";
3
3
  /**
4
4
  * @license React
@@ -1,10 +1,18 @@
1
- function h(f, c, { checkForDefaultPrevented: p = !0 } = {}) {
2
- return function(s) {
3
- if (f == null || f(s), p === !1 || !s.defaultPrevented)
4
- return c == null ? void 0 : c(s);
5
- };
6
- }
1
+ import { useEffect as l } from "react";
2
+ const f = (t, n) => {
3
+ l(() => {
4
+ if (!n || !t.current) return;
5
+ const o = t.current.querySelectorAll(
6
+ 'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'
7
+ ), c = o[0], r = o[o.length - 1], s = (e) => {
8
+ e.key === "Tab" && (e.shiftKey ? document.activeElement === c && (r.focus(), e.preventDefault()) : document.activeElement === r && (c.focus(), e.preventDefault()));
9
+ }, u = document.activeElement;
10
+ return c.focus(), document.addEventListener("keydown", s), () => {
11
+ document.removeEventListener("keydown", s), n && (u == null || u.focus());
12
+ };
13
+ }, [n, t]);
14
+ };
7
15
  export {
8
- h as composeEventHandlers
16
+ f as useFocusTrap
9
17
  };
10
18
  //# sourceMappingURL=index.es235.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es235.js","sources":["../node_modules/@radix-ui/primitive/dist/index.mjs"],"sourcesContent":["// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event"],"mappings":"AACA,SAASA,EAAqBC,GAAsBC,GAAiB,EAAE,0BAAAC,IAA2B,GAAM,IAAG,IAAI;AAC7G,SAAO,SAAqBC,GAAO;AAEjC,QADAH,KAAA,QAAAA,EAAuBG,IACnBD,MAA6B,MAAS,CAACC,EAAM;AAC/C,aAAOF,KAAA,gBAAAA,EAAkBE;AAAA,EAE5B;AACH;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.es235.js","sources":["../src/hooks/useFocusTrap.ts"],"sourcesContent":["import { useEffect } from \"react\";\n\nexport const useFocusTrap = (\n ref: React.RefObject<HTMLElement | null>,\n isActive: boolean,\n) => {\n useEffect(() => {\n if (!isActive || !ref.current) return;\n\n const focusableElements = ref.current.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])',\n );\n const firstFocusableElement = focusableElements[0] as HTMLElement;\n const lastFocusableElement = focusableElements[\n focusableElements.length - 1\n ] as HTMLElement;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key !== \"Tab\") return;\n\n if (e.shiftKey) {\n if (document.activeElement === firstFocusableElement) {\n lastFocusableElement.focus();\n e.preventDefault();\n }\n } else {\n if (document.activeElement === lastFocusableElement) {\n firstFocusableElement.focus();\n e.preventDefault();\n }\n }\n };\n\n const previousActiveElement = document.activeElement as HTMLElement;\n\n firstFocusableElement.focus();\n\n document.addEventListener(\"keydown\", handleKeyDown);\n\n return () => {\n document.removeEventListener(\"keydown\", handleKeyDown);\n\n if (isActive) {\n previousActiveElement?.focus();\n }\n };\n }, [isActive, ref]);\n};\n"],"names":["useFocusTrap","ref","isActive","useEffect","focusableElements","firstFocusableElement","lastFocusableElement","handleKeyDown","previousActiveElement"],"mappings":";AAEa,MAAAA,IAAe,CAC1BC,GACAC,MACG;AACH,EAAAC,EAAU,MAAM;AACd,QAAI,CAACD,KAAY,CAACD,EAAI,QAAS;AAEzB,UAAAG,IAAoBH,EAAI,QAAQ;AAAA,MACpC;AAAA,IACF,GACMI,IAAwBD,EAAkB,CAAC,GAC3CE,IAAuBF,EAC3BA,EAAkB,SAAS,CAC7B,GAEMG,IAAgB,CAAC,MAAqB;AACtC,MAAA,EAAE,QAAQ,UAEV,EAAE,WACA,SAAS,kBAAkBF,MAC7BC,EAAqB,MAAM,GAC3B,EAAE,eAAe,KAGf,SAAS,kBAAkBA,MAC7BD,EAAsB,MAAM,GAC5B,EAAE,eAAe;AAAA,IAGvB,GAEMG,IAAwB,SAAS;AAEvC,WAAAH,EAAsB,MAAM,GAEnB,SAAA,iBAAiB,WAAWE,CAAa,GAE3C,MAAM;AACF,eAAA,oBAAoB,WAAWA,CAAa,GAEjDL,MACFM,KAAA,QAAAA,EAAuB;AAAA,IAE3B;AAAA,EAAA,GACC,CAACN,GAAUD,CAAG,CAAC;AACpB;"}
@@ -1,33 +1,10 @@
1
- import * as l from "react";
2
- import { useCallbackRef as f } from "./index.es260.js";
3
- function R({
4
- prop: t,
5
- defaultProp: r,
6
- onChange: s = () => {
7
- }
8
- }) {
9
- const [e, n] = v({ defaultProp: r, onChange: s }), o = t !== void 0, i = o ? t : e, u = f(s), d = l.useCallback(
10
- (c) => {
11
- if (o) {
12
- const a = typeof c == "function" ? c(t) : c;
13
- a !== t && u(a);
14
- } else
15
- n(c);
16
- },
17
- [o, t, n, u]
18
- );
19
- return [i, d];
20
- }
21
- function v({
22
- defaultProp: t,
23
- onChange: r
24
- }) {
25
- const s = l.useState(t), [e] = s, n = l.useRef(e), o = f(r);
26
- return l.useEffect(() => {
27
- n.current !== e && (o(e), n.current = e);
28
- }, [e, n, o]), s;
1
+ function h(f, c, { checkForDefaultPrevented: p = !0 } = {}) {
2
+ return function(s) {
3
+ if (f == null || f(s), p === !1 || !s.defaultPrevented)
4
+ return c == null ? void 0 : c(s);
5
+ };
29
6
  }
30
7
  export {
31
- R as useControllableState
8
+ h as composeEventHandlers
32
9
  };
33
10
  //# sourceMappingURL=index.es238.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.es238.js","sources":["../node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs"],"sourcesContent":["// packages/react/use-controllable-state/src/useControllableState.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = () => {\n }\n}) {\n const [uncontrolledProp, setUncontrolledProp] = useUncontrolledState({ defaultProp, onChange });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n const handleChange = useCallbackRef(onChange);\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const setter = nextValue;\n const value2 = typeof nextValue === \"function\" ? setter(prop) : nextValue;\n if (value2 !== prop) handleChange(value2);\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, handleChange]\n );\n return [value, setValue];\n}\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const uncontrolledState = React.useState(defaultProp);\n const [value] = uncontrolledState;\n const prevValueRef = React.useRef(value);\n const handleChange = useCallbackRef(onChange);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n handleChange(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef, handleChange]);\n return uncontrolledState;\n}\nexport {\n useControllableState\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["useControllableState","prop","defaultProp","onChange","uncontrolledProp","setUncontrolledProp","useUncontrolledState","isControlled","value","handleChange","useCallbackRef","setValue","React","nextValue","value2","uncontrolledState","prevValueRef"],"mappings":";;AAGA,SAASA,EAAqB;AAAA,EAC5B,MAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC,IAAW,MAAM;AAAA,EACnB;AACA,GAAG;AACD,QAAM,CAACC,GAAkBC,CAAmB,IAAIC,EAAqB,EAAE,aAAAJ,GAAa,UAAAC,GAAU,GACxFI,IAAeN,MAAS,QACxBO,IAAQD,IAAeN,IAAOG,GAC9BK,IAAeC,EAAeP,CAAQ,GACtCQ,IAAWC,EAAM;AAAA,IACrB,CAACC,MAAc;AACb,UAAIN,GAAc;AAEhB,cAAMO,IAAS,OAAOD,KAAc,aADrBA,EACyCZ,CAAI,IAAIY;AAChE,QAAIC,MAAWb,KAAMQ,EAAaK,CAAM;AAAA,MAChD;AACQ,QAAAT,EAAoBQ,CAAS;AAAA,IAEhC;AAAA,IACD,CAACN,GAAcN,GAAMI,GAAqBI,CAAY;AAAA,EACvD;AACD,SAAO,CAACD,GAAOG,CAAQ;AACzB;AACA,SAASL,EAAqB;AAAA,EAC5B,aAAAJ;AAAA,EACA,UAAAC;AACF,GAAG;AACD,QAAMY,IAAoBH,EAAM,SAASV,CAAW,GAC9C,CAACM,CAAK,IAAIO,GACVC,IAAeJ,EAAM,OAAOJ,CAAK,GACjCC,IAAeC,EAAeP,CAAQ;AAC5C,SAAAS,EAAM,UAAU,MAAM;AACpB,IAAII,EAAa,YAAYR,MAC3BC,EAAaD,CAAK,GAClBQ,EAAa,UAAUR;AAAA,EAE1B,GAAE,CAACA,GAAOQ,GAAcP,CAAY,CAAC,GAC/BM;AACT;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index.es238.js","sources":["../node_modules/@radix-ui/primitive/dist/index.mjs"],"sourcesContent":["// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":["composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event"],"mappings":"AACA,SAASA,EAAqBC,GAAsBC,GAAiB,EAAE,0BAAAC,IAA2B,GAAM,IAAG,IAAI;AAC7G,SAAO,SAAqBC,GAAO;AAEjC,QADAH,KAAA,QAAAA,EAAuBG,IACnBD,MAA6B,MAAS,CAACC,EAAM;AAC/C,aAAOF,KAAA,gBAAAA,EAAkBE;AAAA,EAE5B;AACH;","x_google_ignoreList":[0]}