se-design 1.0.67-dev → 1.0.68-dev

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 (221) hide show
  1. package/dist/assets/style.css +1 -1
  2. package/dist/components/Banner/index.d.ts +2 -0
  3. package/dist/index10.js.map +1 -1
  4. package/dist/index100.js.map +1 -1
  5. package/dist/index101.js.map +1 -1
  6. package/dist/index102.js.map +1 -1
  7. package/dist/index103.js.map +1 -1
  8. package/dist/index104.js.map +1 -1
  9. package/dist/index105.js.map +1 -1
  10. package/dist/index106.js.map +1 -1
  11. package/dist/index107.js.map +1 -1
  12. package/dist/index108.js.map +1 -1
  13. package/dist/index109.js.map +1 -1
  14. package/dist/index11.js.map +1 -1
  15. package/dist/index110.js.map +1 -1
  16. package/dist/index111.js.map +1 -1
  17. package/dist/index112.js.map +1 -1
  18. package/dist/index113.js.map +1 -1
  19. package/dist/index114.js.map +1 -1
  20. package/dist/index115.js.map +1 -1
  21. package/dist/index116.js.map +1 -1
  22. package/dist/index117.js.map +1 -1
  23. package/dist/index118.js.map +1 -1
  24. package/dist/index119.js.map +1 -1
  25. package/dist/index12.js.map +1 -1
  26. package/dist/index120.js.map +1 -1
  27. package/dist/index121.js.map +1 -1
  28. package/dist/index122.js.map +1 -1
  29. package/dist/index123.js.map +1 -1
  30. package/dist/index124.js.map +1 -1
  31. package/dist/index125.js.map +1 -1
  32. package/dist/index126.js.map +1 -1
  33. package/dist/index127.js.map +1 -1
  34. package/dist/index128.js.map +1 -1
  35. package/dist/index129.js.map +1 -1
  36. package/dist/index13.js.map +1 -1
  37. package/dist/index130.js.map +1 -1
  38. package/dist/index131.js.map +1 -1
  39. package/dist/index132.js.map +1 -1
  40. package/dist/index133.js.map +1 -1
  41. package/dist/index134.js.map +1 -1
  42. package/dist/index135.js.map +1 -1
  43. package/dist/index136.js.map +1 -1
  44. package/dist/index137.js.map +1 -1
  45. package/dist/index138.js.map +1 -1
  46. package/dist/index139.js.map +1 -1
  47. package/dist/index140.js.map +1 -1
  48. package/dist/index141.js.map +1 -1
  49. package/dist/index142.js.map +1 -1
  50. package/dist/index143.js.map +1 -1
  51. package/dist/index144.js.map +1 -1
  52. package/dist/index145.js.map +1 -1
  53. package/dist/index146.js.map +1 -1
  54. package/dist/index147.js.map +1 -1
  55. package/dist/index148.js.map +1 -1
  56. package/dist/index149.js.map +1 -1
  57. package/dist/index15.js.map +1 -1
  58. package/dist/index150.js.map +1 -1
  59. package/dist/index151.js.map +1 -1
  60. package/dist/index152.js.map +1 -1
  61. package/dist/index153.js.map +1 -1
  62. package/dist/index154.js.map +1 -1
  63. package/dist/index155.js.map +1 -1
  64. package/dist/index156.js.map +1 -1
  65. package/dist/index157.js.map +1 -1
  66. package/dist/index158.js.map +1 -1
  67. package/dist/index159.js.map +1 -1
  68. package/dist/index16.js.map +1 -1
  69. package/dist/index160.js.map +1 -1
  70. package/dist/index161.js.map +1 -1
  71. package/dist/index162.js.map +1 -1
  72. package/dist/index163.js.map +1 -1
  73. package/dist/index164.js.map +1 -1
  74. package/dist/index165.js.map +1 -1
  75. package/dist/index166.js.map +1 -1
  76. package/dist/index167.js.map +1 -1
  77. package/dist/index168.js.map +1 -1
  78. package/dist/index169.js.map +1 -1
  79. package/dist/index17.js.map +1 -1
  80. package/dist/index170.js.map +1 -1
  81. package/dist/index171.js.map +1 -1
  82. package/dist/index172.js.map +1 -1
  83. package/dist/index173.js.map +1 -1
  84. package/dist/index174.js.map +1 -1
  85. package/dist/index175.js.map +1 -1
  86. package/dist/index176.js.map +1 -1
  87. package/dist/index177.js.map +1 -1
  88. package/dist/index178.js.map +1 -1
  89. package/dist/index179.js.map +1 -1
  90. package/dist/index18.js.map +1 -1
  91. package/dist/index180.js.map +1 -1
  92. package/dist/index181.js.map +1 -1
  93. package/dist/index182.js.map +1 -1
  94. package/dist/index183.js.map +1 -1
  95. package/dist/index184.js.map +1 -1
  96. package/dist/index185.js.map +1 -1
  97. package/dist/index186.js.map +1 -1
  98. package/dist/index187.js.map +1 -1
  99. package/dist/index188.js.map +1 -1
  100. package/dist/index189.js.map +1 -1
  101. package/dist/index19.js.map +1 -1
  102. package/dist/index192.js.map +1 -1
  103. package/dist/index194.js.map +1 -1
  104. package/dist/index196.js.map +1 -1
  105. package/dist/index20.js.map +1 -1
  106. package/dist/index204.js.map +1 -1
  107. package/dist/index21.js.map +1 -1
  108. package/dist/index215.js.map +1 -1
  109. package/dist/index216.js.map +1 -1
  110. package/dist/index22.js.map +1 -1
  111. package/dist/index227.js.map +1 -1
  112. package/dist/index228.js.map +1 -1
  113. package/dist/index229.js +1 -1
  114. package/dist/index229.js.map +1 -1
  115. package/dist/index23.js.map +1 -1
  116. package/dist/index230.js.map +1 -1
  117. package/dist/index232.js.map +1 -1
  118. package/dist/index233.js.map +1 -1
  119. package/dist/index234.js.map +1 -1
  120. package/dist/index235.js.map +1 -1
  121. package/dist/index236.js.map +1 -1
  122. package/dist/index237.js.map +1 -1
  123. package/dist/index238.js.map +1 -1
  124. package/dist/index24.js.map +1 -1
  125. package/dist/index240.js.map +1 -1
  126. package/dist/index241.js.map +1 -1
  127. package/dist/index242.js.map +1 -1
  128. package/dist/index244.js.map +1 -1
  129. package/dist/index245.js.map +1 -1
  130. package/dist/index246.js.map +1 -1
  131. package/dist/index249.js.map +1 -1
  132. package/dist/index25.js.map +1 -1
  133. package/dist/index26.js.map +1 -1
  134. package/dist/index27.js.map +1 -1
  135. package/dist/index28.js.map +1 -1
  136. package/dist/index29.js +57 -55
  137. package/dist/index29.js.map +1 -1
  138. package/dist/index3.js.map +1 -1
  139. package/dist/index30.js.map +1 -1
  140. package/dist/index31.js +11 -10
  141. package/dist/index31.js.map +1 -1
  142. package/dist/index32.js.map +1 -1
  143. package/dist/index33.js.map +1 -1
  144. package/dist/index34.js.map +1 -1
  145. package/dist/index35.js.map +1 -1
  146. package/dist/index36.js.map +1 -1
  147. package/dist/index37.js.map +1 -1
  148. package/dist/index38.js.map +1 -1
  149. package/dist/index39.js.map +1 -1
  150. package/dist/index4.js.map +1 -1
  151. package/dist/index40.js.map +1 -1
  152. package/dist/index41.js +8 -7
  153. package/dist/index41.js.map +1 -1
  154. package/dist/index42.js +7 -6
  155. package/dist/index42.js.map +1 -1
  156. package/dist/index43.js.map +1 -1
  157. package/dist/index44.js.map +1 -1
  158. package/dist/index45.js.map +1 -1
  159. package/dist/index46.js.map +1 -1
  160. package/dist/index47.js.map +1 -1
  161. package/dist/index48.js.map +1 -1
  162. package/dist/index49.js.map +1 -1
  163. package/dist/index5.js +72 -72
  164. package/dist/index5.js.map +1 -1
  165. package/dist/index50.js +13 -13
  166. package/dist/index50.js.map +1 -1
  167. package/dist/index51.js.map +1 -1
  168. package/dist/index52.js.map +1 -1
  169. package/dist/index53.js.map +1 -1
  170. package/dist/index54.js +17 -16
  171. package/dist/index54.js.map +1 -1
  172. package/dist/index55.js.map +1 -1
  173. package/dist/index56.js.map +1 -1
  174. package/dist/index57.js.map +1 -1
  175. package/dist/index58.js.map +1 -1
  176. package/dist/index59.js.map +1 -1
  177. package/dist/index6.js +7 -6
  178. package/dist/index6.js.map +1 -1
  179. package/dist/index60.js.map +1 -1
  180. package/dist/index61.js.map +1 -1
  181. package/dist/index62.js.map +1 -1
  182. package/dist/index63.js.map +1 -1
  183. package/dist/index64.js +2 -1
  184. package/dist/index64.js.map +1 -1
  185. package/dist/index66.js.map +1 -1
  186. package/dist/index67.js.map +1 -1
  187. package/dist/index68.js.map +1 -1
  188. package/dist/index69.js.map +1 -1
  189. package/dist/index7.js.map +1 -1
  190. package/dist/index70.js.map +1 -1
  191. package/dist/index72.js.map +1 -1
  192. package/dist/index73.js.map +1 -1
  193. package/dist/index74.js.map +1 -1
  194. package/dist/index75.js.map +1 -1
  195. package/dist/index76.js.map +1 -1
  196. package/dist/index77.js.map +1 -1
  197. package/dist/index78.js.map +1 -1
  198. package/dist/index79.js.map +1 -1
  199. package/dist/index8.js.map +1 -1
  200. package/dist/index80.js.map +1 -1
  201. package/dist/index81.js.map +1 -1
  202. package/dist/index82.js.map +1 -1
  203. package/dist/index83.js.map +1 -1
  204. package/dist/index84.js.map +1 -1
  205. package/dist/index85.js.map +1 -1
  206. package/dist/index86.js.map +1 -1
  207. package/dist/index87.js.map +1 -1
  208. package/dist/index88.js.map +1 -1
  209. package/dist/index89.js.map +1 -1
  210. package/dist/index9.js.map +1 -1
  211. package/dist/index90.js.map +1 -1
  212. package/dist/index91.js.map +1 -1
  213. package/dist/index92.js.map +1 -1
  214. package/dist/index93.js.map +1 -1
  215. package/dist/index94.js.map +1 -1
  216. package/dist/index95.js.map +1 -1
  217. package/dist/index96.js.map +1 -1
  218. package/dist/index97.js.map +1 -1
  219. package/dist/index98.js.map +1 -1
  220. package/dist/index99.js.map +1 -1
  221. package/package.json +2 -3
@@ -1 +1 @@
1
- {"version":3,"file":"index184.js","sources":["../src/assets/icons/white-close.svg?url"],"sourcesContent":["export default \"data:image/svg+xml,%3csvg%20width='20'%20height='20'%20viewBox='0%200%2020%2020'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M14.545%205.45508L5.4541%2014.546'%20stroke='white'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M5.4541%205.45508L14.545%2014.546'%20stroke='white'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e\""],"names":["__vite_glob_0_112"],"mappings":"AAAA,MAAAA,IAAe;"}
1
+ {"version":3,"file":"index184.js","sources":["../src/assets/icons/white-close.svg?url"],"sourcesContent":["export default \"data:image/svg+xml,%3csvg%20width='20'%20height='20'%20viewBox='0%200%2020%2020'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M14.545%205.45508L5.4541%2014.546'%20stroke='white'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M5.4541%205.45508L14.545%2014.546'%20stroke='white'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e\""],"names":["__vite_glob_0_112"],"mappings":"AAAA,MAAeA,IAAA;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index185.js","sources":["../src/assets/icons/widget-demo-image.svg?url"],"sourcesContent":["export default \"data:image/svg+xml,%3csvg%20width='387'%20height='134'%20viewBox='0%200%20387%20134'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_1582_4463)'%3e%3cpath%20d='M0%2012C0%205.37258%205.37258%200%2012%200H375C381.627%200%20387%205.37258%20387%2012V134H0V12Z'%20fill='url(%23paint0_linear_1582_4463)'/%3e%3cg%20filter='url(%23filter0_d_1582_4463)'%3e%3crect%20x='63'%20y='35'%20width='385'%20height='173'%20rx='2'%20fill='white'%20shape-rendering='crispEdges'/%3e%3crect%20x='83'%20y='86'%20width='289'%20height='10'%20rx='5'%20fill='%23EDF0F6'/%3e%3crect%20x='83'%20y='113'%20width='243'%20height='10'%20rx='5'%20fill='%23EDF0F6'/%3e%3crect%20x='63'%20y='35'%20width='318'%20height='32'%20rx='2'%20fill='url(%23paint1_linear_1582_4463)'/%3e%3cpath%20d='M92.5753%2049.1293H91.0241C90.9645%2048.7978%2090.8535%2048.5062%2090.6911%2048.2543C90.5286%2048.0024%2090.3298%2047.7886%2090.0945%2047.6129C89.8591%2047.4373%2089.5956%2047.3047%2089.304%2047.2152C89.0156%2047.1257%2088.709%2047.081%2088.3842%2047.081C87.7976%2047.081%2087.2723%2047.2285%2086.8082%2047.5234C86.3475%2047.8184%2085.983%2048.2509%2085.7145%2048.821C85.4493%2049.3911%2085.3168%2050.0871%2085.3168%2050.9091C85.3168%2051.7377%2085.4493%2052.437%2085.7145%2053.0071C85.983%2053.5772%2086.3492%2054.008%2086.8132%2054.2997C87.2772%2054.5914%2087.7992%2054.7372%2088.3793%2054.7372C88.7008%2054.7372%2089.0057%2054.6941%2089.294%2054.608C89.5857%2054.5185%2089.8492%2054.3875%2090.0845%2054.2152C90.3198%2054.0429%2090.5187%2053.8324%2090.6811%2053.5838C90.8468%2053.3319%2090.9612%2053.0436%2091.0241%2052.7188L92.5753%2052.7237C92.4924%2053.2242%2092.3317%2053.6849%2092.093%2054.1058C91.8577%2054.5234%2091.5545%2054.8847%2091.1832%2055.1896C90.8153%2055.4912%2090.3944%2055.7249%2089.9205%2055.8906C89.4465%2056.0563%2088.9295%2056.1392%2088.3693%2056.1392C87.4877%2056.1392%2086.7022%2055.9304%2086.0128%2055.5128C85.3234%2055.0919%2084.7798%2054.4903%2084.3821%2053.7081C83.9877%2052.9259%2083.7905%2051.9929%2083.7905%2050.9091C83.7905%2049.822%2083.9893%2048.889%2084.3871%2048.1101C84.7848%2047.3279%2085.3284%2046.728%2086.0178%2046.3104C86.7071%2045.8894%2087.491%2045.679%2088.3693%2045.679C88.9096%2045.679%2089.4134%2045.7569%2089.8807%2045.9126C90.3513%2046.0651%2090.7739%2046.2905%2091.1484%2046.5888C91.523%2046.8838%2091.8329%2047.245%2092.0781%2047.6726C92.3234%2048.0968%2092.4891%2048.5824%2092.5753%2049.1293ZM95.7807%2051.4659V56H94.2942V45.8182H95.7608V49.6065H95.8553C96.0343%2049.1955%2096.3077%2048.8691%2096.6756%2048.6271C97.0435%2048.3852%2097.5241%2048.2642%2098.1174%2048.2642C98.641%2048.2642%2099.0984%2048.3719%2099.4895%2048.5874C99.8839%2048.8028%20100.189%2049.1243%20100.404%2049.5518C100.623%2049.9761%20100.732%2050.5064%20100.732%2051.1428V56H99.2459V51.3217C99.2459%2050.7616%2099.1017%2050.3274%2098.8134%2050.0192C98.525%2049.7076%2098.124%2049.5518%2097.6103%2049.5518C97.2589%2049.5518%2096.9441%2049.6264%2096.6657%2049.7756C96.3906%2049.9247%2096.1735%2050.1435%2096.0144%2050.4318C95.8586%2050.7169%2095.7807%2051.0616%2095.7807%2051.4659ZM104.938%2056.169C104.454%2056.169%20104.017%2056.0795%20103.626%2055.9006C103.235%2055.7183%20102.925%2055.4548%20102.696%2055.1101C102.471%2054.7654%20102.358%2054.3428%20102.358%2053.8423C102.358%2053.4115%20102.441%2053.0568%20102.607%2052.7784C102.772%2052.5%20102.996%2052.2796%20103.278%2052.1172C103.56%2051.9548%20103.874%2051.8321%20104.222%2051.7493C104.57%2051.6664%20104.925%2051.6035%20105.286%2051.5604C105.744%2051.5073%20106.115%2051.4643%20106.4%2051.4311C106.685%2051.3946%20106.892%2051.3366%20107.021%2051.2571C107.151%2051.1776%20107.215%2051.0483%20107.215%2050.8693V50.8345C107.215%2050.4003%20107.093%2050.0639%20106.847%2049.8253C106.606%2049.5866%20106.244%2049.4673%20105.764%2049.4673C105.263%2049.4673%20104.869%2049.5784%20104.58%2049.8004C104.295%2050.0192%20104.098%2050.2628%20103.989%2050.5312L102.592%2050.2131C102.758%2049.7491%20102.999%2049.3745%20103.318%2049.0895C103.639%2048.8011%20104.009%2048.5923%20104.426%2048.4631C104.844%2048.3305%20105.283%2048.2642%20105.744%2048.2642C106.049%2048.2642%20106.372%2048.3007%20106.713%2048.3736C107.058%2048.4432%20107.379%2048.5724%20107.678%2048.7614C107.979%2048.9503%20108.226%2049.2204%20108.419%2049.5717C108.611%2049.9197%20108.707%2050.3722%20108.707%2050.929V56H107.255V54.956H107.195C107.099%2055.1482%20106.955%2055.3371%20106.763%2055.5227C106.571%2055.7083%20106.324%2055.8625%20106.022%2055.9851C105.721%2056.1077%20105.359%2056.169%20104.938%2056.169ZM105.262%2054.9759C105.673%2054.9759%20106.024%2054.8946%20106.316%2054.7322C106.61%2054.5698%20106.834%2054.3577%20106.987%2054.0959C107.142%2053.8307%20107.22%2053.5473%20107.22%2053.2457V52.2614C107.167%2052.3144%20107.065%2052.3641%20106.912%2052.4105C106.763%2052.4536%20106.592%2052.4917%20106.4%2052.5249C106.208%2052.5547%20106.021%2052.5829%20105.838%2052.6094C105.656%2052.6326%20105.503%2052.6525%20105.381%2052.669C105.093%2052.7055%20104.829%2052.7668%20104.59%2052.853C104.355%2052.9392%20104.166%2053.0634%20104.024%2053.2259C103.884%2053.3849%20103.815%2053.5971%20103.815%2053.8622C103.815%2054.2301%20103.951%2054.5085%20104.222%2054.6974C104.494%2054.883%20104.841%2054.9759%20105.262%2054.9759ZM112.173%2051.4659V56H110.687V48.3636H112.114V49.6065H112.208C112.384%2049.2022%20112.659%2048.8774%20113.033%2048.6321C113.411%2048.3868%20113.887%2048.2642%20114.46%2048.2642C114.981%2048.2642%20115.436%2048.3736%20115.827%2048.5923C116.219%2048.8078%20116.522%2049.1293%20116.737%2049.5568C116.953%2049.9844%20117.06%2050.513%20117.06%2051.1428V56H115.574V51.3217C115.574%2050.7682%20115.43%2050.3357%20115.141%2050.0241C114.853%2049.7093%20114.457%2049.5518%20113.953%2049.5518C113.608%2049.5518%20113.302%2049.6264%20113.033%2049.7756C112.768%2049.9247%20112.558%2050.1435%20112.402%2050.4318C112.25%2050.7169%20112.173%2051.0616%20112.173%2051.4659ZM122.256%2059.0227C121.649%2059.0227%20121.127%2058.9432%20120.69%2058.7841C120.255%2058.625%20119.901%2058.4145%20119.626%2058.1527C119.351%2057.8909%20119.145%2057.6042%20119.009%2057.2926L120.287%2056.7656C120.376%2056.9115%20120.496%2057.0656%20120.645%2057.228C120.797%2057.3937%20121.003%2057.5346%20121.261%2057.6506C121.523%2057.7666%20121.86%2057.8246%20122.271%2057.8246C122.834%2057.8246%20123.3%2057.687%20123.668%2057.4119C124.036%2057.1402%20124.219%2056.706%20124.219%2056.1094V54.608H124.125C124.036%2054.7704%20123.906%2054.951%20123.737%2055.1499C123.571%2055.3487%20123.343%2055.5211%20123.051%2055.6669C122.759%2055.8127%20122.38%2055.8857%20121.913%2055.8857C121.309%2055.8857%20120.766%2055.7448%20120.282%2055.4631C119.801%2055.178%20119.42%2054.7588%20119.138%2054.2053C118.86%2053.6484%20118.721%2052.964%20118.721%2052.152C118.721%2051.34%20118.858%2050.6439%20119.134%2050.0639C119.412%2049.4839%20119.793%2049.0398%20120.277%2048.7315C120.761%2048.42%20121.309%2048.2642%20121.923%2048.2642C122.397%2048.2642%20122.779%2048.3438%20123.071%2048.5028C123.363%2048.6586%20123.59%2048.8409%20123.752%2049.0497C123.918%2049.2585%20124.045%2049.4425%20124.135%2049.6016H124.244V48.3636H125.701V56.169C125.701%2056.8253%20125.549%2057.3639%20125.244%2057.7848C124.939%2058.2057%20124.526%2058.5173%20124.006%2058.7195C123.489%2058.9216%20122.905%2059.0227%20122.256%2059.0227ZM122.241%2054.6527C122.668%2054.6527%20123.03%2054.5533%20123.325%2054.3544C123.623%2054.1522%20123.848%2053.8639%20124.001%2053.4893C124.156%2053.1115%20124.234%2052.6591%20124.234%2052.1321C124.234%2051.6184%20124.158%2051.166%20124.006%2050.7749C123.853%2050.3838%20123.629%2050.0788%20123.335%2049.8601C123.04%2049.638%20122.675%2049.527%20122.241%2049.527C121.793%2049.527%20121.42%2049.643%20121.122%2049.875C120.824%2050.1037%20120.598%2050.4152%20120.446%2050.8097C120.297%2051.2041%20120.222%2051.6449%20120.222%2052.1321C120.222%2052.6326%20120.299%2053.0717%20120.451%2053.4496C120.603%2053.8274%20120.829%2054.1224%20121.127%2054.3345C121.429%2054.5466%20121.8%2054.6527%20122.241%2054.6527ZM130.986%2056.1541C130.233%2056.1541%20129.585%2055.9934%20129.042%2055.6719C128.502%2055.3471%20128.084%2054.8913%20127.789%2054.3047C127.497%2053.7147%20127.352%2053.0237%20127.352%2052.2315C127.352%2051.4493%20127.497%2050.7599%20127.789%2050.1634C128.084%2049.5668%20128.495%2049.1011%20129.022%2048.7663C129.552%2048.4316%20130.172%2048.2642%20130.881%2048.2642C131.312%2048.2642%20131.73%2048.3355%20132.134%2048.478C132.539%2048.6205%20132.902%2048.8442%20133.223%2049.1491C133.545%2049.4541%20133.798%2049.8501%20133.984%2050.3374C134.169%2050.8213%20134.262%2051.4096%20134.262%2052.1023V52.6293H128.192V51.5156H132.805C132.805%2051.1245%20132.726%2050.7782%20132.567%2050.4766C132.408%2050.1716%20132.184%2049.9313%20131.896%2049.7557C131.611%2049.58%20131.276%2049.4922%20130.891%2049.4922C130.474%2049.4922%20130.109%2049.5949%20129.798%2049.8004C129.489%2050.0026%20129.251%2050.2678%20129.082%2050.5959C128.916%2050.9207%20128.833%2051.2737%20128.833%2051.6548V52.5249C128.833%2053.0353%20128.923%2053.4695%20129.102%2053.8274C129.284%2054.1854%20129.537%2054.4588%20129.862%2054.6477C130.187%2054.8333%20130.567%2054.9261%20131.001%2054.9261C131.282%2054.9261%20131.539%2054.8864%20131.771%2054.8068C132.003%2054.724%20132.204%2054.6013%20132.373%2054.4389C132.542%2054.2765%20132.671%2054.076%20132.761%2053.8374L134.168%2054.0909C134.055%2054.5052%20133.853%2054.8681%20133.561%2055.1797C133.273%2055.4879%20132.91%2055.7282%20132.472%2055.9006C132.038%2056.0696%20131.543%2056.1541%20130.986%2056.1541ZM141.634%2050.228L140.286%2050.4666C140.23%2050.2943%20140.141%2050.1302%20140.018%2049.9744C139.899%2049.8187%20139.736%2049.6911%20139.531%2049.5916C139.325%2049.4922%20139.068%2049.4425%20138.76%2049.4425C138.339%2049.4425%20137.988%2049.5369%20137.706%2049.7259C137.424%2049.9115%20137.284%2050.1518%20137.284%2050.4467C137.284%2050.7019%20137.378%2050.9074%20137.567%2051.0632C137.756%2051.219%20138.061%2051.3466%20138.482%2051.446L139.695%2051.7244C140.397%2051.8868%20140.921%2052.1371%20141.266%2052.4751C141.61%2052.8132%20141.783%2053.2524%20141.783%2053.7926C141.783%2054.25%20141.65%2054.6577%20141.385%2055.0156C141.123%2055.3703%20140.757%2055.6487%20140.286%2055.8509C139.819%2056.053%20139.277%2056.1541%20138.661%2056.1541C137.806%2056.1541%20137.108%2055.9718%20136.568%2055.6072C136.027%2055.2393%20135.696%2054.7173%20135.573%2054.0412L137.01%2053.8224C137.1%2054.197%20137.284%2054.4804%20137.562%2054.6726C137.84%2054.8615%20138.203%2054.956%20138.651%2054.956C139.138%2054.956%20139.527%2054.8549%20139.819%2054.6527C140.111%2054.4472%20140.257%2054.197%20140.257%2053.902C140.257%2053.6634%20140.167%2053.4628%20139.988%2053.3004C139.812%2053.138%20139.542%2053.0154%20139.178%2052.9325L137.885%2052.6491C137.173%2052.4867%20136.646%2052.2282%20136.304%2051.8736C135.966%2051.5189%20135.797%2051.0698%20135.797%2050.5263C135.797%2050.0755%20135.923%2049.6811%20136.175%2049.343C136.427%2049.005%20136.775%2048.7415%20137.219%2048.5526C137.663%2048.3603%20138.172%2048.2642%20138.745%2048.2642C139.57%2048.2642%20140.22%2048.4432%20140.694%2048.8011C141.168%2049.1558%20141.481%2049.6314%20141.634%2050.228ZM149.345%2056.169C148.861%2056.169%20148.423%2056.0795%20148.032%2055.9006C147.641%2055.7183%20147.331%2055.4548%20147.102%2055.1101C146.877%2054.7654%20146.764%2054.3428%20146.764%2053.8423C146.764%2053.4115%20146.847%2053.0568%20147.013%2052.7784C147.179%2052.5%20147.402%2052.2796%20147.684%2052.1172C147.966%2051.9548%20148.281%2051.8321%20148.629%2051.7493C148.977%2051.6664%20149.331%2051.6035%20149.693%2051.5604C150.15%2051.5073%20150.521%2051.4643%20150.806%2051.4311C151.091%2051.3946%20151.298%2051.3366%20151.428%2051.2571C151.557%2051.1776%20151.622%2051.0483%20151.622%2050.8693V50.8345C151.622%2050.4003%20151.499%2050.0639%20151.254%2049.8253C151.012%2049.5866%20150.651%2049.4673%20150.17%2049.4673C149.669%2049.4673%20149.275%2049.5784%20148.987%2049.8004C148.702%2050.0192%20148.504%2050.2628%20148.395%2050.5312L146.998%2050.2131C147.164%2049.7491%20147.406%2049.3745%20147.724%2049.0895C148.045%2048.8011%20148.415%2048.5923%20148.833%2048.4631C149.25%2048.3305%20149.689%2048.2642%20150.15%2048.2642C150.455%2048.2642%20150.778%2048.3007%20151.119%2048.3736C151.464%2048.4432%20151.786%2048.5724%20152.084%2048.7614C152.386%2048.9503%20152.633%2049.2204%20152.825%2049.5717C153.017%2049.9197%20153.113%2050.3722%20153.113%2050.929V56H151.661V54.956H151.602C151.506%2055.1482%20151.361%2055.3371%20151.169%2055.5227C150.977%2055.7083%20150.73%2055.8625%20150.428%2055.9851C150.127%2056.1077%20149.766%2056.169%20149.345%2056.169ZM149.668%2054.9759C150.079%2054.9759%20150.43%2054.8946%20150.722%2054.7322C151.017%2054.5698%20151.24%2054.3577%20151.393%2054.0959C151.549%2053.8307%20151.627%2053.5473%20151.627%2053.2457V52.2614C151.574%2052.3144%20151.471%2052.3641%20151.318%2052.4105C151.169%2052.4536%20150.999%2052.4917%20150.806%2052.5249C150.614%2052.5547%20150.427%2052.5829%20150.244%2052.6094C150.062%2052.6326%20149.91%2052.6525%20149.787%2052.669C149.499%2052.7055%20149.235%2052.7668%20148.997%2052.853C148.761%2052.9392%20148.572%2053.0634%20148.43%2053.2259C148.291%2053.3849%20148.221%2053.5971%20148.221%2053.8622C148.221%2054.2301%20148.357%2054.5085%20148.629%2054.6974C148.901%2054.883%20149.247%2054.9759%20149.668%2054.9759ZM155.093%2056V48.3636H156.53V49.5767H156.609C156.749%2049.1657%20156.994%2048.8426%20157.345%2048.6072C157.7%2048.3686%20158.101%2048.2493%20158.548%2048.2493C158.641%2048.2493%20158.75%2048.2526%20158.876%2048.2592C159.006%2048.2659%20159.107%2048.2741%20159.18%2048.2841V49.706C159.12%2049.6894%20159.014%2049.6712%20158.862%2049.6513C158.709%2049.6281%20158.557%2049.6165%20158.404%2049.6165C158.053%2049.6165%20157.74%2049.6911%20157.464%2049.8402C157.193%2049.986%20156.977%2050.1899%20156.818%2050.4517C156.659%2050.7102%20156.58%2051.0052%20156.58%2051.3366V56H155.093ZM163.484%2056.1541C162.731%2056.1541%20162.084%2055.9934%20161.54%2055.6719C161%2055.3471%20160.582%2054.8913%20160.287%2054.3047C159.995%2053.7147%20159.85%2053.0237%20159.85%2052.2315C159.85%2051.4493%20159.995%2050.7599%20160.287%2050.1634C160.582%2049.5668%20160.993%2049.1011%20161.52%2048.7663C162.05%2048.4316%20162.67%2048.2642%20163.379%2048.2642C163.81%2048.2642%20164.228%2048.3355%20164.632%2048.478C165.037%2048.6205%20165.4%2048.8442%20165.721%2049.1491C166.043%2049.4541%20166.296%2049.8501%20166.482%2050.3374C166.667%2050.8213%20166.76%2051.4096%20166.76%2052.1023V52.6293H160.69V51.5156H165.303C165.303%2051.1245%20165.224%2050.7782%20165.065%2050.4766C164.906%2050.1716%20164.682%2049.9313%20164.394%2049.7557C164.109%2049.58%20163.774%2049.4922%20163.389%2049.4922C162.972%2049.4922%20162.607%2049.5949%20162.296%2049.8004C161.987%2050.0026%20161.749%2050.2678%20161.58%2050.5959C161.414%2050.9207%20161.331%2051.2737%20161.331%2051.6548V52.5249C161.331%2053.0353%20161.421%2053.4695%20161.6%2053.8274C161.782%2054.1854%20162.035%2054.4588%20162.36%2054.6477C162.685%2054.8333%20163.065%2054.9261%20163.499%2054.9261C163.78%2054.9261%20164.037%2054.8864%20164.269%2054.8068C164.501%2054.724%20164.702%2054.6013%20164.871%2054.4389C165.04%2054.2765%20165.169%2054.076%20165.259%2053.8374L166.666%2054.0909C166.553%2054.5052%20166.351%2054.8681%20166.059%2055.1797C165.771%2055.4879%20165.408%2055.7282%20164.97%2055.9006C164.536%2056.0696%20164.041%2056.1541%20163.484%2056.1541ZM177.837%2050.228L176.49%2050.4666C176.433%2050.2943%20176.344%2050.1302%20176.221%2049.9744C176.102%2049.8187%20175.939%2049.6911%20175.734%2049.5916C175.528%2049.4922%20175.271%2049.4425%20174.963%2049.4425C174.542%2049.4425%20174.191%2049.5369%20173.909%2049.7259C173.628%2049.9115%20173.487%2050.1518%20173.487%2050.4467C173.487%2050.7019%20173.581%2050.9074%20173.77%2051.0632C173.959%2051.219%20174.264%2051.3466%20174.685%2051.446L175.898%2051.7244C176.601%2051.8868%20177.124%2052.1371%20177.469%2052.4751C177.814%2052.8132%20177.986%2053.2524%20177.986%2053.7926C177.986%2054.25%20177.853%2054.6577%20177.588%2055.0156C177.326%2055.3703%20176.96%2055.6487%20176.49%2055.8509C176.022%2056.053%20175.48%2056.1541%20174.864%2056.1541C174.009%2056.1541%20173.311%2055.9718%20172.771%2055.6072C172.231%2055.2393%20171.899%2054.7173%20171.776%2054.0412L173.213%2053.8224C173.303%2054.197%20173.487%2054.4804%20173.765%2054.6726C174.044%2054.8615%20174.406%2054.956%20174.854%2054.956C175.341%2054.956%20175.731%2054.8549%20176.022%2054.6527C176.314%2054.4472%20176.46%2054.197%20176.46%2053.902C176.46%2053.6634%20176.37%2053.4628%20176.191%2053.3004C176.016%2053.138%20175.745%2053.0154%20175.381%2052.9325L174.088%2052.6491C173.376%2052.4867%20172.849%2052.2282%20172.507%2051.8736C172.169%2051.5189%20172%2051.0698%20172%2050.5263C172%2050.0755%20172.126%2049.6811%20172.378%2049.343C172.63%2049.005%20172.978%2048.7415%20173.422%2048.5526C173.866%2048.3603%20174.375%2048.2642%20174.948%2048.2642C175.774%2048.2642%20176.423%2048.4432%20176.897%2048.8011C177.371%2049.1558%20177.684%2049.6314%20177.837%2050.228ZM181.843%2056.169C181.359%2056.169%20180.921%2056.0795%20180.53%2055.9006C180.139%2055.7183%20179.829%2055.4548%20179.6%2055.1101C179.375%2054.7654%20179.262%2054.3428%20179.262%2053.8423C179.262%2053.4115%20179.345%2053.0568%20179.511%2052.7784C179.677%2052.5%20179.9%2052.2796%20180.182%2052.1172C180.464%2051.9548%20180.779%2051.8321%20181.127%2051.7493C181.475%2051.6664%20181.829%2051.6035%20182.191%2051.5604C182.648%2051.5073%20183.019%2051.4643%20183.304%2051.4311C183.589%2051.3946%20183.797%2051.3366%20183.926%2051.2571C184.055%2051.1776%20184.12%2051.0483%20184.12%2050.8693V50.8345C184.12%2050.4003%20183.997%2050.0639%20183.752%2049.8253C183.51%2049.5866%20183.149%2049.4673%20182.668%2049.4673C182.167%2049.4673%20181.773%2049.5784%20181.485%2049.8004C181.2%2050.0192%20181.002%2050.2628%20180.893%2050.5312L179.496%2050.2131C179.662%2049.7491%20179.904%2049.3745%20180.222%2049.0895C180.543%2048.8011%20180.913%2048.5923%20181.331%2048.4631C181.748%2048.3305%20182.187%2048.2642%20182.648%2048.2642C182.953%2048.2642%20183.276%2048.3007%20183.618%2048.3736C183.962%2048.4432%20184.284%2048.5724%20184.582%2048.7614C184.884%2048.9503%20185.131%2049.2204%20185.323%2049.5717C185.515%2049.9197%20185.611%2050.3722%20185.611%2050.929V56H184.159V54.956H184.1C184.004%2055.1482%20183.859%2055.3371%20183.667%2055.5227C183.475%2055.7083%20183.228%2055.8625%20182.926%2055.9851C182.625%2056.1077%20182.264%2056.169%20181.843%2056.169ZM182.166%2054.9759C182.577%2054.9759%20182.928%2054.8946%20183.22%2054.7322C183.515%2054.5698%20183.739%2054.3577%20183.891%2054.0959C184.047%2053.8307%20184.125%2053.5473%20184.125%2053.2457V52.2614C184.072%2052.3144%20183.969%2052.3641%20183.816%2052.4105C183.667%2052.4536%20183.497%2052.4917%20183.304%2052.5249C183.112%2052.5547%20182.925%2052.5829%20182.743%2052.6094C182.56%2052.6326%20182.408%2052.6525%20182.285%2052.669C181.997%2052.7055%20181.733%2052.7668%20181.495%2052.853C181.259%2052.9392%20181.07%2053.0634%20180.928%2053.2259C180.789%2053.3849%20180.719%2053.5971%20180.719%2053.8622C180.719%2054.2301%20180.855%2054.5085%20181.127%2054.6974C181.399%2054.883%20181.745%2054.9759%20182.166%2054.9759ZM193.85%2048.3636L191.081%2056H189.49L186.716%2048.3636H188.312L190.246%2054.2401H190.325L192.254%2048.3636H193.85ZM198.279%2056.1541C197.526%2056.1541%20196.878%2055.9934%20196.335%2055.6719C195.795%2055.3471%20195.377%2054.8913%20195.082%2054.3047C194.79%2053.7147%20194.645%2053.0237%20194.645%2052.2315C194.645%2051.4493%20194.79%2050.7599%20195.082%2050.1634C195.377%2049.5668%20195.788%2049.1011%20196.315%2048.7663C196.845%2048.4316%20197.465%2048.2642%20198.174%2048.2642C198.605%2048.2642%20199.023%2048.3355%20199.427%2048.478C199.832%2048.6205%20200.194%2048.8442%20200.516%2049.1491C200.837%2049.4541%20201.091%2049.8501%20201.277%2050.3374C201.462%2050.8213%20201.555%2051.4096%20201.555%2052.1023V52.6293H195.485V51.5156H200.098C200.098%2051.1245%20200.019%2050.7782%20199.86%2050.4766C199.701%2050.1716%20199.477%2049.9313%20199.189%2049.7557C198.904%2049.58%20198.569%2049.4922%20198.184%2049.4922C197.767%2049.4922%20197.402%2049.5949%20197.091%2049.8004C196.782%2050.0026%20196.544%2050.2678%20196.375%2050.5959C196.209%2050.9207%20196.126%2051.2737%20196.126%2051.6548V52.5249C196.126%2053.0353%20196.216%2053.4695%20196.395%2053.8274C196.577%2054.1854%20196.83%2054.4588%20197.155%2054.6477C197.48%2054.8333%20197.859%2054.9261%20198.294%2054.9261C198.575%2054.9261%20198.832%2054.8864%20199.064%2054.8068C199.296%2054.724%20199.497%2054.6013%20199.666%2054.4389C199.835%2054.2765%20199.964%2054.076%20200.054%2053.8374L201.461%2054.0909C201.348%2054.5052%20201.146%2054.8681%20200.854%2055.1797C200.566%2055.4879%20200.203%2055.7282%20199.765%2055.9006C199.331%2056.0696%20198.836%2056.1541%20198.279%2056.1541ZM206.063%2056.1491C205.447%2056.1491%20204.896%2055.9917%20204.412%2055.6768C203.932%2055.3587%20203.554%2054.9062%20203.279%2054.3196C203.007%2053.7296%20202.871%2053.022%20202.871%2052.1967C202.871%2051.3714%20203.009%2050.6655%20203.284%2050.0788C203.562%2049.4922%20203.943%2049.0431%20204.427%2048.7315C204.911%2048.42%20205.46%2048.2642%20206.073%2048.2642C206.547%2048.2642%20206.928%2048.3438%20207.216%2048.5028C207.508%2048.6586%20207.733%2048.8409%20207.893%2049.0497C208.055%2049.2585%20208.181%2049.4425%20208.27%2049.6016H208.36V45.8182H209.846V56H208.395V54.8118H208.27C208.181%2054.9742%20208.052%2055.1598%20207.883%2055.3686C207.717%2055.5774%20207.488%2055.7597%20207.197%2055.9155C206.905%2056.0713%20206.527%2056.1491%20206.063%2056.1491ZM206.391%2054.8814C206.819%2054.8814%20207.18%2054.7687%20207.475%2054.5433C207.773%2054.3146%20207.999%2053.9981%20208.151%2053.5938C208.307%2053.1894%20208.385%2052.7187%20208.385%2052.1818C208.385%2051.6515%20208.309%2051.1875%20208.156%2050.7898C208.004%2050.392%20207.78%2050.0821%20207.485%2049.8601C207.19%2049.638%20206.825%2049.527%20206.391%2049.527C205.944%2049.527%20205.571%2049.643%20205.273%2049.875C204.974%2050.107%20204.749%2050.4235%20204.596%2050.8246C204.447%2051.2256%20204.373%2051.678%20204.373%2052.1818C204.373%2052.6922%20204.449%2053.1513%20204.601%2053.5589C204.754%2053.9666%20204.979%2054.2898%20205.278%2054.5284C205.579%2054.7637%20205.95%2054.8814%20206.391%2054.8814Z'%20fill='%23219653'/%3e%3c/g%3e%3c/g%3e%3cdefs%3e%3cfilter%20id='filter0_d_1582_4463'%20x='51'%20y='27'%20width='409'%20height='197'%20filterUnits='userSpaceOnUse'%20color-interpolation-filters='sRGB'%3e%3cfeFlood%20flood-opacity='0'%20result='BackgroundImageFix'/%3e%3cfeColorMatrix%20in='SourceAlpha'%20type='matrix'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20127%200'%20result='hardAlpha'/%3e%3cfeOffset%20dy='4'/%3e%3cfeGaussianBlur%20stdDeviation='6'/%3e%3cfeComposite%20in2='hardAlpha'%20operator='out'/%3e%3cfeColorMatrix%20type='matrix'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200.12%200'/%3e%3cfeBlend%20mode='normal'%20in2='BackgroundImageFix'%20result='effect1_dropShadow_1582_4463'/%3e%3cfeBlend%20mode='normal'%20in='SourceGraphic'%20in2='effect1_dropShadow_1582_4463'%20result='shape'/%3e%3c/filter%3e%3clinearGradient%20id='paint0_linear_1582_4463'%20x1='193.5'%20y1='-4.90314e-06'%20x2='265.934'%20y2='210.234'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23E3F0FF'/%3e%3cstop%20offset='1'%20stop-color='%238BCBFF'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint1_linear_1582_4463'%20x1='63'%20y1='51'%20x2='381'%20y2='51'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23E5F7ED'/%3e%3cstop%20offset='1'%20stop-color='%23E5F7ED'%20stop-opacity='0'/%3e%3c/linearGradient%3e%3cclipPath%20id='clip0_1582_4463'%3e%3cpath%20d='M0%2012C0%205.37258%205.37258%200%2012%200H375C381.627%200%20387%205.37258%20387%2012V134H0V12Z'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e\""],"names":["__vite_glob_0_113"],"mappings":"AAAA,MAAAA,IAAe;"}
1
+ {"version":3,"file":"index185.js","sources":["../src/assets/icons/widget-demo-image.svg?url"],"sourcesContent":["export default \"data:image/svg+xml,%3csvg%20width='387'%20height='134'%20viewBox='0%200%20387%20134'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_1582_4463)'%3e%3cpath%20d='M0%2012C0%205.37258%205.37258%200%2012%200H375C381.627%200%20387%205.37258%20387%2012V134H0V12Z'%20fill='url(%23paint0_linear_1582_4463)'/%3e%3cg%20filter='url(%23filter0_d_1582_4463)'%3e%3crect%20x='63'%20y='35'%20width='385'%20height='173'%20rx='2'%20fill='white'%20shape-rendering='crispEdges'/%3e%3crect%20x='83'%20y='86'%20width='289'%20height='10'%20rx='5'%20fill='%23EDF0F6'/%3e%3crect%20x='83'%20y='113'%20width='243'%20height='10'%20rx='5'%20fill='%23EDF0F6'/%3e%3crect%20x='63'%20y='35'%20width='318'%20height='32'%20rx='2'%20fill='url(%23paint1_linear_1582_4463)'/%3e%3cpath%20d='M92.5753%2049.1293H91.0241C90.9645%2048.7978%2090.8535%2048.5062%2090.6911%2048.2543C90.5286%2048.0024%2090.3298%2047.7886%2090.0945%2047.6129C89.8591%2047.4373%2089.5956%2047.3047%2089.304%2047.2152C89.0156%2047.1257%2088.709%2047.081%2088.3842%2047.081C87.7976%2047.081%2087.2723%2047.2285%2086.8082%2047.5234C86.3475%2047.8184%2085.983%2048.2509%2085.7145%2048.821C85.4493%2049.3911%2085.3168%2050.0871%2085.3168%2050.9091C85.3168%2051.7377%2085.4493%2052.437%2085.7145%2053.0071C85.983%2053.5772%2086.3492%2054.008%2086.8132%2054.2997C87.2772%2054.5914%2087.7992%2054.7372%2088.3793%2054.7372C88.7008%2054.7372%2089.0057%2054.6941%2089.294%2054.608C89.5857%2054.5185%2089.8492%2054.3875%2090.0845%2054.2152C90.3198%2054.0429%2090.5187%2053.8324%2090.6811%2053.5838C90.8468%2053.3319%2090.9612%2053.0436%2091.0241%2052.7188L92.5753%2052.7237C92.4924%2053.2242%2092.3317%2053.6849%2092.093%2054.1058C91.8577%2054.5234%2091.5545%2054.8847%2091.1832%2055.1896C90.8153%2055.4912%2090.3944%2055.7249%2089.9205%2055.8906C89.4465%2056.0563%2088.9295%2056.1392%2088.3693%2056.1392C87.4877%2056.1392%2086.7022%2055.9304%2086.0128%2055.5128C85.3234%2055.0919%2084.7798%2054.4903%2084.3821%2053.7081C83.9877%2052.9259%2083.7905%2051.9929%2083.7905%2050.9091C83.7905%2049.822%2083.9893%2048.889%2084.3871%2048.1101C84.7848%2047.3279%2085.3284%2046.728%2086.0178%2046.3104C86.7071%2045.8894%2087.491%2045.679%2088.3693%2045.679C88.9096%2045.679%2089.4134%2045.7569%2089.8807%2045.9126C90.3513%2046.0651%2090.7739%2046.2905%2091.1484%2046.5888C91.523%2046.8838%2091.8329%2047.245%2092.0781%2047.6726C92.3234%2048.0968%2092.4891%2048.5824%2092.5753%2049.1293ZM95.7807%2051.4659V56H94.2942V45.8182H95.7608V49.6065H95.8553C96.0343%2049.1955%2096.3077%2048.8691%2096.6756%2048.6271C97.0435%2048.3852%2097.5241%2048.2642%2098.1174%2048.2642C98.641%2048.2642%2099.0984%2048.3719%2099.4895%2048.5874C99.8839%2048.8028%20100.189%2049.1243%20100.404%2049.5518C100.623%2049.9761%20100.732%2050.5064%20100.732%2051.1428V56H99.2459V51.3217C99.2459%2050.7616%2099.1017%2050.3274%2098.8134%2050.0192C98.525%2049.7076%2098.124%2049.5518%2097.6103%2049.5518C97.2589%2049.5518%2096.9441%2049.6264%2096.6657%2049.7756C96.3906%2049.9247%2096.1735%2050.1435%2096.0144%2050.4318C95.8586%2050.7169%2095.7807%2051.0616%2095.7807%2051.4659ZM104.938%2056.169C104.454%2056.169%20104.017%2056.0795%20103.626%2055.9006C103.235%2055.7183%20102.925%2055.4548%20102.696%2055.1101C102.471%2054.7654%20102.358%2054.3428%20102.358%2053.8423C102.358%2053.4115%20102.441%2053.0568%20102.607%2052.7784C102.772%2052.5%20102.996%2052.2796%20103.278%2052.1172C103.56%2051.9548%20103.874%2051.8321%20104.222%2051.7493C104.57%2051.6664%20104.925%2051.6035%20105.286%2051.5604C105.744%2051.5073%20106.115%2051.4643%20106.4%2051.4311C106.685%2051.3946%20106.892%2051.3366%20107.021%2051.2571C107.151%2051.1776%20107.215%2051.0483%20107.215%2050.8693V50.8345C107.215%2050.4003%20107.093%2050.0639%20106.847%2049.8253C106.606%2049.5866%20106.244%2049.4673%20105.764%2049.4673C105.263%2049.4673%20104.869%2049.5784%20104.58%2049.8004C104.295%2050.0192%20104.098%2050.2628%20103.989%2050.5312L102.592%2050.2131C102.758%2049.7491%20102.999%2049.3745%20103.318%2049.0895C103.639%2048.8011%20104.009%2048.5923%20104.426%2048.4631C104.844%2048.3305%20105.283%2048.2642%20105.744%2048.2642C106.049%2048.2642%20106.372%2048.3007%20106.713%2048.3736C107.058%2048.4432%20107.379%2048.5724%20107.678%2048.7614C107.979%2048.9503%20108.226%2049.2204%20108.419%2049.5717C108.611%2049.9197%20108.707%2050.3722%20108.707%2050.929V56H107.255V54.956H107.195C107.099%2055.1482%20106.955%2055.3371%20106.763%2055.5227C106.571%2055.7083%20106.324%2055.8625%20106.022%2055.9851C105.721%2056.1077%20105.359%2056.169%20104.938%2056.169ZM105.262%2054.9759C105.673%2054.9759%20106.024%2054.8946%20106.316%2054.7322C106.61%2054.5698%20106.834%2054.3577%20106.987%2054.0959C107.142%2053.8307%20107.22%2053.5473%20107.22%2053.2457V52.2614C107.167%2052.3144%20107.065%2052.3641%20106.912%2052.4105C106.763%2052.4536%20106.592%2052.4917%20106.4%2052.5249C106.208%2052.5547%20106.021%2052.5829%20105.838%2052.6094C105.656%2052.6326%20105.503%2052.6525%20105.381%2052.669C105.093%2052.7055%20104.829%2052.7668%20104.59%2052.853C104.355%2052.9392%20104.166%2053.0634%20104.024%2053.2259C103.884%2053.3849%20103.815%2053.5971%20103.815%2053.8622C103.815%2054.2301%20103.951%2054.5085%20104.222%2054.6974C104.494%2054.883%20104.841%2054.9759%20105.262%2054.9759ZM112.173%2051.4659V56H110.687V48.3636H112.114V49.6065H112.208C112.384%2049.2022%20112.659%2048.8774%20113.033%2048.6321C113.411%2048.3868%20113.887%2048.2642%20114.46%2048.2642C114.981%2048.2642%20115.436%2048.3736%20115.827%2048.5923C116.219%2048.8078%20116.522%2049.1293%20116.737%2049.5568C116.953%2049.9844%20117.06%2050.513%20117.06%2051.1428V56H115.574V51.3217C115.574%2050.7682%20115.43%2050.3357%20115.141%2050.0241C114.853%2049.7093%20114.457%2049.5518%20113.953%2049.5518C113.608%2049.5518%20113.302%2049.6264%20113.033%2049.7756C112.768%2049.9247%20112.558%2050.1435%20112.402%2050.4318C112.25%2050.7169%20112.173%2051.0616%20112.173%2051.4659ZM122.256%2059.0227C121.649%2059.0227%20121.127%2058.9432%20120.69%2058.7841C120.255%2058.625%20119.901%2058.4145%20119.626%2058.1527C119.351%2057.8909%20119.145%2057.6042%20119.009%2057.2926L120.287%2056.7656C120.376%2056.9115%20120.496%2057.0656%20120.645%2057.228C120.797%2057.3937%20121.003%2057.5346%20121.261%2057.6506C121.523%2057.7666%20121.86%2057.8246%20122.271%2057.8246C122.834%2057.8246%20123.3%2057.687%20123.668%2057.4119C124.036%2057.1402%20124.219%2056.706%20124.219%2056.1094V54.608H124.125C124.036%2054.7704%20123.906%2054.951%20123.737%2055.1499C123.571%2055.3487%20123.343%2055.5211%20123.051%2055.6669C122.759%2055.8127%20122.38%2055.8857%20121.913%2055.8857C121.309%2055.8857%20120.766%2055.7448%20120.282%2055.4631C119.801%2055.178%20119.42%2054.7588%20119.138%2054.2053C118.86%2053.6484%20118.721%2052.964%20118.721%2052.152C118.721%2051.34%20118.858%2050.6439%20119.134%2050.0639C119.412%2049.4839%20119.793%2049.0398%20120.277%2048.7315C120.761%2048.42%20121.309%2048.2642%20121.923%2048.2642C122.397%2048.2642%20122.779%2048.3438%20123.071%2048.5028C123.363%2048.6586%20123.59%2048.8409%20123.752%2049.0497C123.918%2049.2585%20124.045%2049.4425%20124.135%2049.6016H124.244V48.3636H125.701V56.169C125.701%2056.8253%20125.549%2057.3639%20125.244%2057.7848C124.939%2058.2057%20124.526%2058.5173%20124.006%2058.7195C123.489%2058.9216%20122.905%2059.0227%20122.256%2059.0227ZM122.241%2054.6527C122.668%2054.6527%20123.03%2054.5533%20123.325%2054.3544C123.623%2054.1522%20123.848%2053.8639%20124.001%2053.4893C124.156%2053.1115%20124.234%2052.6591%20124.234%2052.1321C124.234%2051.6184%20124.158%2051.166%20124.006%2050.7749C123.853%2050.3838%20123.629%2050.0788%20123.335%2049.8601C123.04%2049.638%20122.675%2049.527%20122.241%2049.527C121.793%2049.527%20121.42%2049.643%20121.122%2049.875C120.824%2050.1037%20120.598%2050.4152%20120.446%2050.8097C120.297%2051.2041%20120.222%2051.6449%20120.222%2052.1321C120.222%2052.6326%20120.299%2053.0717%20120.451%2053.4496C120.603%2053.8274%20120.829%2054.1224%20121.127%2054.3345C121.429%2054.5466%20121.8%2054.6527%20122.241%2054.6527ZM130.986%2056.1541C130.233%2056.1541%20129.585%2055.9934%20129.042%2055.6719C128.502%2055.3471%20128.084%2054.8913%20127.789%2054.3047C127.497%2053.7147%20127.352%2053.0237%20127.352%2052.2315C127.352%2051.4493%20127.497%2050.7599%20127.789%2050.1634C128.084%2049.5668%20128.495%2049.1011%20129.022%2048.7663C129.552%2048.4316%20130.172%2048.2642%20130.881%2048.2642C131.312%2048.2642%20131.73%2048.3355%20132.134%2048.478C132.539%2048.6205%20132.902%2048.8442%20133.223%2049.1491C133.545%2049.4541%20133.798%2049.8501%20133.984%2050.3374C134.169%2050.8213%20134.262%2051.4096%20134.262%2052.1023V52.6293H128.192V51.5156H132.805C132.805%2051.1245%20132.726%2050.7782%20132.567%2050.4766C132.408%2050.1716%20132.184%2049.9313%20131.896%2049.7557C131.611%2049.58%20131.276%2049.4922%20130.891%2049.4922C130.474%2049.4922%20130.109%2049.5949%20129.798%2049.8004C129.489%2050.0026%20129.251%2050.2678%20129.082%2050.5959C128.916%2050.9207%20128.833%2051.2737%20128.833%2051.6548V52.5249C128.833%2053.0353%20128.923%2053.4695%20129.102%2053.8274C129.284%2054.1854%20129.537%2054.4588%20129.862%2054.6477C130.187%2054.8333%20130.567%2054.9261%20131.001%2054.9261C131.282%2054.9261%20131.539%2054.8864%20131.771%2054.8068C132.003%2054.724%20132.204%2054.6013%20132.373%2054.4389C132.542%2054.2765%20132.671%2054.076%20132.761%2053.8374L134.168%2054.0909C134.055%2054.5052%20133.853%2054.8681%20133.561%2055.1797C133.273%2055.4879%20132.91%2055.7282%20132.472%2055.9006C132.038%2056.0696%20131.543%2056.1541%20130.986%2056.1541ZM141.634%2050.228L140.286%2050.4666C140.23%2050.2943%20140.141%2050.1302%20140.018%2049.9744C139.899%2049.8187%20139.736%2049.6911%20139.531%2049.5916C139.325%2049.4922%20139.068%2049.4425%20138.76%2049.4425C138.339%2049.4425%20137.988%2049.5369%20137.706%2049.7259C137.424%2049.9115%20137.284%2050.1518%20137.284%2050.4467C137.284%2050.7019%20137.378%2050.9074%20137.567%2051.0632C137.756%2051.219%20138.061%2051.3466%20138.482%2051.446L139.695%2051.7244C140.397%2051.8868%20140.921%2052.1371%20141.266%2052.4751C141.61%2052.8132%20141.783%2053.2524%20141.783%2053.7926C141.783%2054.25%20141.65%2054.6577%20141.385%2055.0156C141.123%2055.3703%20140.757%2055.6487%20140.286%2055.8509C139.819%2056.053%20139.277%2056.1541%20138.661%2056.1541C137.806%2056.1541%20137.108%2055.9718%20136.568%2055.6072C136.027%2055.2393%20135.696%2054.7173%20135.573%2054.0412L137.01%2053.8224C137.1%2054.197%20137.284%2054.4804%20137.562%2054.6726C137.84%2054.8615%20138.203%2054.956%20138.651%2054.956C139.138%2054.956%20139.527%2054.8549%20139.819%2054.6527C140.111%2054.4472%20140.257%2054.197%20140.257%2053.902C140.257%2053.6634%20140.167%2053.4628%20139.988%2053.3004C139.812%2053.138%20139.542%2053.0154%20139.178%2052.9325L137.885%2052.6491C137.173%2052.4867%20136.646%2052.2282%20136.304%2051.8736C135.966%2051.5189%20135.797%2051.0698%20135.797%2050.5263C135.797%2050.0755%20135.923%2049.6811%20136.175%2049.343C136.427%2049.005%20136.775%2048.7415%20137.219%2048.5526C137.663%2048.3603%20138.172%2048.2642%20138.745%2048.2642C139.57%2048.2642%20140.22%2048.4432%20140.694%2048.8011C141.168%2049.1558%20141.481%2049.6314%20141.634%2050.228ZM149.345%2056.169C148.861%2056.169%20148.423%2056.0795%20148.032%2055.9006C147.641%2055.7183%20147.331%2055.4548%20147.102%2055.1101C146.877%2054.7654%20146.764%2054.3428%20146.764%2053.8423C146.764%2053.4115%20146.847%2053.0568%20147.013%2052.7784C147.179%2052.5%20147.402%2052.2796%20147.684%2052.1172C147.966%2051.9548%20148.281%2051.8321%20148.629%2051.7493C148.977%2051.6664%20149.331%2051.6035%20149.693%2051.5604C150.15%2051.5073%20150.521%2051.4643%20150.806%2051.4311C151.091%2051.3946%20151.298%2051.3366%20151.428%2051.2571C151.557%2051.1776%20151.622%2051.0483%20151.622%2050.8693V50.8345C151.622%2050.4003%20151.499%2050.0639%20151.254%2049.8253C151.012%2049.5866%20150.651%2049.4673%20150.17%2049.4673C149.669%2049.4673%20149.275%2049.5784%20148.987%2049.8004C148.702%2050.0192%20148.504%2050.2628%20148.395%2050.5312L146.998%2050.2131C147.164%2049.7491%20147.406%2049.3745%20147.724%2049.0895C148.045%2048.8011%20148.415%2048.5923%20148.833%2048.4631C149.25%2048.3305%20149.689%2048.2642%20150.15%2048.2642C150.455%2048.2642%20150.778%2048.3007%20151.119%2048.3736C151.464%2048.4432%20151.786%2048.5724%20152.084%2048.7614C152.386%2048.9503%20152.633%2049.2204%20152.825%2049.5717C153.017%2049.9197%20153.113%2050.3722%20153.113%2050.929V56H151.661V54.956H151.602C151.506%2055.1482%20151.361%2055.3371%20151.169%2055.5227C150.977%2055.7083%20150.73%2055.8625%20150.428%2055.9851C150.127%2056.1077%20149.766%2056.169%20149.345%2056.169ZM149.668%2054.9759C150.079%2054.9759%20150.43%2054.8946%20150.722%2054.7322C151.017%2054.5698%20151.24%2054.3577%20151.393%2054.0959C151.549%2053.8307%20151.627%2053.5473%20151.627%2053.2457V52.2614C151.574%2052.3144%20151.471%2052.3641%20151.318%2052.4105C151.169%2052.4536%20150.999%2052.4917%20150.806%2052.5249C150.614%2052.5547%20150.427%2052.5829%20150.244%2052.6094C150.062%2052.6326%20149.91%2052.6525%20149.787%2052.669C149.499%2052.7055%20149.235%2052.7668%20148.997%2052.853C148.761%2052.9392%20148.572%2053.0634%20148.43%2053.2259C148.291%2053.3849%20148.221%2053.5971%20148.221%2053.8622C148.221%2054.2301%20148.357%2054.5085%20148.629%2054.6974C148.901%2054.883%20149.247%2054.9759%20149.668%2054.9759ZM155.093%2056V48.3636H156.53V49.5767H156.609C156.749%2049.1657%20156.994%2048.8426%20157.345%2048.6072C157.7%2048.3686%20158.101%2048.2493%20158.548%2048.2493C158.641%2048.2493%20158.75%2048.2526%20158.876%2048.2592C159.006%2048.2659%20159.107%2048.2741%20159.18%2048.2841V49.706C159.12%2049.6894%20159.014%2049.6712%20158.862%2049.6513C158.709%2049.6281%20158.557%2049.6165%20158.404%2049.6165C158.053%2049.6165%20157.74%2049.6911%20157.464%2049.8402C157.193%2049.986%20156.977%2050.1899%20156.818%2050.4517C156.659%2050.7102%20156.58%2051.0052%20156.58%2051.3366V56H155.093ZM163.484%2056.1541C162.731%2056.1541%20162.084%2055.9934%20161.54%2055.6719C161%2055.3471%20160.582%2054.8913%20160.287%2054.3047C159.995%2053.7147%20159.85%2053.0237%20159.85%2052.2315C159.85%2051.4493%20159.995%2050.7599%20160.287%2050.1634C160.582%2049.5668%20160.993%2049.1011%20161.52%2048.7663C162.05%2048.4316%20162.67%2048.2642%20163.379%2048.2642C163.81%2048.2642%20164.228%2048.3355%20164.632%2048.478C165.037%2048.6205%20165.4%2048.8442%20165.721%2049.1491C166.043%2049.4541%20166.296%2049.8501%20166.482%2050.3374C166.667%2050.8213%20166.76%2051.4096%20166.76%2052.1023V52.6293H160.69V51.5156H165.303C165.303%2051.1245%20165.224%2050.7782%20165.065%2050.4766C164.906%2050.1716%20164.682%2049.9313%20164.394%2049.7557C164.109%2049.58%20163.774%2049.4922%20163.389%2049.4922C162.972%2049.4922%20162.607%2049.5949%20162.296%2049.8004C161.987%2050.0026%20161.749%2050.2678%20161.58%2050.5959C161.414%2050.9207%20161.331%2051.2737%20161.331%2051.6548V52.5249C161.331%2053.0353%20161.421%2053.4695%20161.6%2053.8274C161.782%2054.1854%20162.035%2054.4588%20162.36%2054.6477C162.685%2054.8333%20163.065%2054.9261%20163.499%2054.9261C163.78%2054.9261%20164.037%2054.8864%20164.269%2054.8068C164.501%2054.724%20164.702%2054.6013%20164.871%2054.4389C165.04%2054.2765%20165.169%2054.076%20165.259%2053.8374L166.666%2054.0909C166.553%2054.5052%20166.351%2054.8681%20166.059%2055.1797C165.771%2055.4879%20165.408%2055.7282%20164.97%2055.9006C164.536%2056.0696%20164.041%2056.1541%20163.484%2056.1541ZM177.837%2050.228L176.49%2050.4666C176.433%2050.2943%20176.344%2050.1302%20176.221%2049.9744C176.102%2049.8187%20175.939%2049.6911%20175.734%2049.5916C175.528%2049.4922%20175.271%2049.4425%20174.963%2049.4425C174.542%2049.4425%20174.191%2049.5369%20173.909%2049.7259C173.628%2049.9115%20173.487%2050.1518%20173.487%2050.4467C173.487%2050.7019%20173.581%2050.9074%20173.77%2051.0632C173.959%2051.219%20174.264%2051.3466%20174.685%2051.446L175.898%2051.7244C176.601%2051.8868%20177.124%2052.1371%20177.469%2052.4751C177.814%2052.8132%20177.986%2053.2524%20177.986%2053.7926C177.986%2054.25%20177.853%2054.6577%20177.588%2055.0156C177.326%2055.3703%20176.96%2055.6487%20176.49%2055.8509C176.022%2056.053%20175.48%2056.1541%20174.864%2056.1541C174.009%2056.1541%20173.311%2055.9718%20172.771%2055.6072C172.231%2055.2393%20171.899%2054.7173%20171.776%2054.0412L173.213%2053.8224C173.303%2054.197%20173.487%2054.4804%20173.765%2054.6726C174.044%2054.8615%20174.406%2054.956%20174.854%2054.956C175.341%2054.956%20175.731%2054.8549%20176.022%2054.6527C176.314%2054.4472%20176.46%2054.197%20176.46%2053.902C176.46%2053.6634%20176.37%2053.4628%20176.191%2053.3004C176.016%2053.138%20175.745%2053.0154%20175.381%2052.9325L174.088%2052.6491C173.376%2052.4867%20172.849%2052.2282%20172.507%2051.8736C172.169%2051.5189%20172%2051.0698%20172%2050.5263C172%2050.0755%20172.126%2049.6811%20172.378%2049.343C172.63%2049.005%20172.978%2048.7415%20173.422%2048.5526C173.866%2048.3603%20174.375%2048.2642%20174.948%2048.2642C175.774%2048.2642%20176.423%2048.4432%20176.897%2048.8011C177.371%2049.1558%20177.684%2049.6314%20177.837%2050.228ZM181.843%2056.169C181.359%2056.169%20180.921%2056.0795%20180.53%2055.9006C180.139%2055.7183%20179.829%2055.4548%20179.6%2055.1101C179.375%2054.7654%20179.262%2054.3428%20179.262%2053.8423C179.262%2053.4115%20179.345%2053.0568%20179.511%2052.7784C179.677%2052.5%20179.9%2052.2796%20180.182%2052.1172C180.464%2051.9548%20180.779%2051.8321%20181.127%2051.7493C181.475%2051.6664%20181.829%2051.6035%20182.191%2051.5604C182.648%2051.5073%20183.019%2051.4643%20183.304%2051.4311C183.589%2051.3946%20183.797%2051.3366%20183.926%2051.2571C184.055%2051.1776%20184.12%2051.0483%20184.12%2050.8693V50.8345C184.12%2050.4003%20183.997%2050.0639%20183.752%2049.8253C183.51%2049.5866%20183.149%2049.4673%20182.668%2049.4673C182.167%2049.4673%20181.773%2049.5784%20181.485%2049.8004C181.2%2050.0192%20181.002%2050.2628%20180.893%2050.5312L179.496%2050.2131C179.662%2049.7491%20179.904%2049.3745%20180.222%2049.0895C180.543%2048.8011%20180.913%2048.5923%20181.331%2048.4631C181.748%2048.3305%20182.187%2048.2642%20182.648%2048.2642C182.953%2048.2642%20183.276%2048.3007%20183.618%2048.3736C183.962%2048.4432%20184.284%2048.5724%20184.582%2048.7614C184.884%2048.9503%20185.131%2049.2204%20185.323%2049.5717C185.515%2049.9197%20185.611%2050.3722%20185.611%2050.929V56H184.159V54.956H184.1C184.004%2055.1482%20183.859%2055.3371%20183.667%2055.5227C183.475%2055.7083%20183.228%2055.8625%20182.926%2055.9851C182.625%2056.1077%20182.264%2056.169%20181.843%2056.169ZM182.166%2054.9759C182.577%2054.9759%20182.928%2054.8946%20183.22%2054.7322C183.515%2054.5698%20183.739%2054.3577%20183.891%2054.0959C184.047%2053.8307%20184.125%2053.5473%20184.125%2053.2457V52.2614C184.072%2052.3144%20183.969%2052.3641%20183.816%2052.4105C183.667%2052.4536%20183.497%2052.4917%20183.304%2052.5249C183.112%2052.5547%20182.925%2052.5829%20182.743%2052.6094C182.56%2052.6326%20182.408%2052.6525%20182.285%2052.669C181.997%2052.7055%20181.733%2052.7668%20181.495%2052.853C181.259%2052.9392%20181.07%2053.0634%20180.928%2053.2259C180.789%2053.3849%20180.719%2053.5971%20180.719%2053.8622C180.719%2054.2301%20180.855%2054.5085%20181.127%2054.6974C181.399%2054.883%20181.745%2054.9759%20182.166%2054.9759ZM193.85%2048.3636L191.081%2056H189.49L186.716%2048.3636H188.312L190.246%2054.2401H190.325L192.254%2048.3636H193.85ZM198.279%2056.1541C197.526%2056.1541%20196.878%2055.9934%20196.335%2055.6719C195.795%2055.3471%20195.377%2054.8913%20195.082%2054.3047C194.79%2053.7147%20194.645%2053.0237%20194.645%2052.2315C194.645%2051.4493%20194.79%2050.7599%20195.082%2050.1634C195.377%2049.5668%20195.788%2049.1011%20196.315%2048.7663C196.845%2048.4316%20197.465%2048.2642%20198.174%2048.2642C198.605%2048.2642%20199.023%2048.3355%20199.427%2048.478C199.832%2048.6205%20200.194%2048.8442%20200.516%2049.1491C200.837%2049.4541%20201.091%2049.8501%20201.277%2050.3374C201.462%2050.8213%20201.555%2051.4096%20201.555%2052.1023V52.6293H195.485V51.5156H200.098C200.098%2051.1245%20200.019%2050.7782%20199.86%2050.4766C199.701%2050.1716%20199.477%2049.9313%20199.189%2049.7557C198.904%2049.58%20198.569%2049.4922%20198.184%2049.4922C197.767%2049.4922%20197.402%2049.5949%20197.091%2049.8004C196.782%2050.0026%20196.544%2050.2678%20196.375%2050.5959C196.209%2050.9207%20196.126%2051.2737%20196.126%2051.6548V52.5249C196.126%2053.0353%20196.216%2053.4695%20196.395%2053.8274C196.577%2054.1854%20196.83%2054.4588%20197.155%2054.6477C197.48%2054.8333%20197.859%2054.9261%20198.294%2054.9261C198.575%2054.9261%20198.832%2054.8864%20199.064%2054.8068C199.296%2054.724%20199.497%2054.6013%20199.666%2054.4389C199.835%2054.2765%20199.964%2054.076%20200.054%2053.8374L201.461%2054.0909C201.348%2054.5052%20201.146%2054.8681%20200.854%2055.1797C200.566%2055.4879%20200.203%2055.7282%20199.765%2055.9006C199.331%2056.0696%20198.836%2056.1541%20198.279%2056.1541ZM206.063%2056.1491C205.447%2056.1491%20204.896%2055.9917%20204.412%2055.6768C203.932%2055.3587%20203.554%2054.9062%20203.279%2054.3196C203.007%2053.7296%20202.871%2053.022%20202.871%2052.1967C202.871%2051.3714%20203.009%2050.6655%20203.284%2050.0788C203.562%2049.4922%20203.943%2049.0431%20204.427%2048.7315C204.911%2048.42%20205.46%2048.2642%20206.073%2048.2642C206.547%2048.2642%20206.928%2048.3438%20207.216%2048.5028C207.508%2048.6586%20207.733%2048.8409%20207.893%2049.0497C208.055%2049.2585%20208.181%2049.4425%20208.27%2049.6016H208.36V45.8182H209.846V56H208.395V54.8118H208.27C208.181%2054.9742%20208.052%2055.1598%20207.883%2055.3686C207.717%2055.5774%20207.488%2055.7597%20207.197%2055.9155C206.905%2056.0713%20206.527%2056.1491%20206.063%2056.1491ZM206.391%2054.8814C206.819%2054.8814%20207.18%2054.7687%20207.475%2054.5433C207.773%2054.3146%20207.999%2053.9981%20208.151%2053.5938C208.307%2053.1894%20208.385%2052.7187%20208.385%2052.1818C208.385%2051.6515%20208.309%2051.1875%20208.156%2050.7898C208.004%2050.392%20207.78%2050.0821%20207.485%2049.8601C207.19%2049.638%20206.825%2049.527%20206.391%2049.527C205.944%2049.527%20205.571%2049.643%20205.273%2049.875C204.974%2050.107%20204.749%2050.4235%20204.596%2050.8246C204.447%2051.2256%20204.373%2051.678%20204.373%2052.1818C204.373%2052.6922%20204.449%2053.1513%20204.601%2053.5589C204.754%2053.9666%20204.979%2054.2898%20205.278%2054.5284C205.579%2054.7637%20205.95%2054.8814%20206.391%2054.8814Z'%20fill='%23219653'/%3e%3c/g%3e%3c/g%3e%3cdefs%3e%3cfilter%20id='filter0_d_1582_4463'%20x='51'%20y='27'%20width='409'%20height='197'%20filterUnits='userSpaceOnUse'%20color-interpolation-filters='sRGB'%3e%3cfeFlood%20flood-opacity='0'%20result='BackgroundImageFix'/%3e%3cfeColorMatrix%20in='SourceAlpha'%20type='matrix'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20127%200'%20result='hardAlpha'/%3e%3cfeOffset%20dy='4'/%3e%3cfeGaussianBlur%20stdDeviation='6'/%3e%3cfeComposite%20in2='hardAlpha'%20operator='out'/%3e%3cfeColorMatrix%20type='matrix'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200.12%200'/%3e%3cfeBlend%20mode='normal'%20in2='BackgroundImageFix'%20result='effect1_dropShadow_1582_4463'/%3e%3cfeBlend%20mode='normal'%20in='SourceGraphic'%20in2='effect1_dropShadow_1582_4463'%20result='shape'/%3e%3c/filter%3e%3clinearGradient%20id='paint0_linear_1582_4463'%20x1='193.5'%20y1='-4.90314e-06'%20x2='265.934'%20y2='210.234'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23E3F0FF'/%3e%3cstop%20offset='1'%20stop-color='%238BCBFF'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint1_linear_1582_4463'%20x1='63'%20y1='51'%20x2='381'%20y2='51'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23E5F7ED'/%3e%3cstop%20offset='1'%20stop-color='%23E5F7ED'%20stop-opacity='0'/%3e%3c/linearGradient%3e%3cclipPath%20id='clip0_1582_4463'%3e%3cpath%20d='M0%2012C0%205.37258%205.37258%200%2012%200H375C381.627%200%20387%205.37258%20387%2012V134H0V12Z'%20fill='white'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e\""],"names":["__vite_glob_0_113"],"mappings":"AAAA,MAAeA,IAAA;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index186.js","sources":["../node_modules/react-svg/dist/react-svg.esm.js"],"sourcesContent":["import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/objectWithoutPropertiesLoose';\nimport _extends from '@babel/runtime/helpers/extends';\nimport _inheritsLoose from '@babel/runtime/helpers/inheritsLoose';\nimport { SVGInjector } from '@tanem/svg-injector';\nimport * as PropTypes from 'prop-types';\nimport * as React from 'react';\n\n// Hat-tip: https://github.com/mui/material-ui/tree/master/packages/mui-utils/src.\nvar ownerWindow = function ownerWindow(node) {\n var doc = (node == null ? void 0 : node.ownerDocument) || document;\n return doc.defaultView || window;\n};\n\n// Hat-tip: https://github.com/developit/preact-compat/blob/master/src/index.js#L402.\nvar shallowDiffers = function shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) {\n return true;\n }\n }\n for (var _i in b) {\n if (a[_i] !== b[_i]) {\n return true;\n }\n }\n return false;\n};\n\nvar _excluded = [\"afterInjection\", \"beforeInjection\", \"desc\", \"evalScripts\", \"fallback\", \"httpRequestWithCredentials\", \"loading\", \"renumerateIRIElements\", \"src\", \"title\", \"useRequestCache\", \"wrapper\"];\nvar svgNamespace = 'http://www.w3.org/2000/svg';\nvar xlinkNamespace = 'http://www.w3.org/1999/xlink';\nvar ReactSVG = /*#__PURE__*/function (_React$Component) {\n function ReactSVG() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.initialState = {\n hasError: false,\n isLoading: true\n };\n _this.state = _this.initialState;\n _this._isMounted = false;\n _this.reactWrapper = void 0;\n _this.nonReactWrapper = void 0;\n _this.refCallback = function (reactWrapper) {\n _this.reactWrapper = reactWrapper;\n };\n return _this;\n }\n _inheritsLoose(ReactSVG, _React$Component);\n var _proto = ReactSVG.prototype;\n _proto.renderSVG = function renderSVG() {\n var _this2 = this;\n /* istanbul ignore else */\n if (this.reactWrapper instanceof ownerWindow(this.reactWrapper).Node) {\n var _this$props = this.props,\n desc = _this$props.desc,\n evalScripts = _this$props.evalScripts,\n httpRequestWithCredentials = _this$props.httpRequestWithCredentials,\n renumerateIRIElements = _this$props.renumerateIRIElements,\n src = _this$props.src,\n title = _this$props.title,\n useRequestCache = _this$props.useRequestCache;\n /* eslint-disable @typescript-eslint/no-non-null-assertion */\n var onError = this.props.onError;\n var beforeInjection = this.props.beforeInjection;\n var afterInjection = this.props.afterInjection;\n var wrapper = this.props.wrapper;\n var nonReactWrapper;\n var nonReactTarget;\n if (wrapper === 'svg') {\n nonReactWrapper = document.createElementNS(svgNamespace, wrapper);\n nonReactWrapper.setAttribute('xmlns', svgNamespace);\n nonReactWrapper.setAttribute('xmlns:xlink', xlinkNamespace);\n nonReactTarget = document.createElementNS(svgNamespace, wrapper);\n } else {\n nonReactWrapper = document.createElement(wrapper);\n nonReactTarget = document.createElement(wrapper);\n }\n nonReactWrapper.appendChild(nonReactTarget);\n nonReactTarget.dataset.src = src;\n this.nonReactWrapper = this.reactWrapper.appendChild(nonReactWrapper);\n var handleError = function handleError(error) {\n _this2.removeSVG();\n if (!_this2._isMounted) {\n onError(error);\n return;\n }\n _this2.setState(function () {\n return {\n hasError: true,\n isLoading: false\n };\n }, function () {\n onError(error);\n });\n };\n var afterEach = function afterEach(error, svg) {\n if (error) {\n handleError(error);\n return;\n }\n // TODO (Tane): It'd be better to cleanly unsubscribe from SVGInjector\n // callbacks instead of tracking a property like this.\n if (_this2._isMounted) {\n _this2.setState(function () {\n return {\n isLoading: false\n };\n }, function () {\n try {\n afterInjection(svg);\n } catch (afterInjectionError) {\n handleError(afterInjectionError);\n }\n });\n }\n };\n var beforeEach = function beforeEach(svg) {\n svg.setAttribute('role', 'img');\n if (desc) {\n var originalDesc = svg.querySelector(':scope > desc');\n if (originalDesc) {\n svg.removeChild(originalDesc);\n }\n var newDesc = document.createElement('desc');\n newDesc.innerHTML = desc;\n svg.prepend(newDesc);\n }\n if (title) {\n var originalTitle = svg.querySelector(':scope > title');\n if (originalTitle) {\n svg.removeChild(originalTitle);\n }\n var newTitle = document.createElement('title');\n newTitle.innerHTML = title;\n svg.prepend(newTitle);\n }\n try {\n beforeInjection(svg);\n } catch (error) {\n handleError(error);\n }\n };\n SVGInjector(nonReactTarget, {\n afterEach: afterEach,\n beforeEach: beforeEach,\n cacheRequests: useRequestCache,\n evalScripts: evalScripts,\n httpRequestWithCredentials: httpRequestWithCredentials,\n renumerateIRIElements: renumerateIRIElements\n });\n }\n };\n _proto.removeSVG = function removeSVG() {\n var _this$nonReactWrapper;\n if ((_this$nonReactWrapper = this.nonReactWrapper) != null && _this$nonReactWrapper.parentNode) {\n this.nonReactWrapper.parentNode.removeChild(this.nonReactWrapper);\n this.nonReactWrapper = null;\n }\n };\n _proto.componentDidMount = function componentDidMount() {\n this._isMounted = true;\n this.renderSVG();\n };\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this3 = this;\n if (shallowDiffers(_extends({}, prevProps), this.props)) {\n this.setState(function () {\n return _this3.initialState;\n }, function () {\n _this3.removeSVG();\n _this3.renderSVG();\n });\n }\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n this._isMounted = false;\n this.removeSVG();\n };\n _proto.render = function render() {\n /* eslint-disable @typescript-eslint/no-unused-vars */\n var _this$props2 = this.props;\n _this$props2.afterInjection;\n _this$props2.beforeInjection;\n _this$props2.desc;\n _this$props2.evalScripts;\n var Fallback = _this$props2.fallback;\n _this$props2.httpRequestWithCredentials;\n var Loading = _this$props2.loading;\n _this$props2.renumerateIRIElements;\n _this$props2.src;\n _this$props2.title;\n _this$props2.useRequestCache;\n var wrapper = _this$props2.wrapper,\n rest = _objectWithoutPropertiesLoose(_this$props2, _excluded);\n /* eslint-enable @typescript-eslint/no-unused-vars */\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n var Wrapper = wrapper;\n return /*#__PURE__*/React.createElement(Wrapper, _extends({}, rest, {\n ref: this.refCallback\n }, wrapper === 'svg' ? {\n xmlns: svgNamespace,\n xmlnsXlink: xlinkNamespace\n } : {}), this.state.isLoading && Loading && /*#__PURE__*/React.createElement(Loading, null), this.state.hasError && Fallback && /*#__PURE__*/React.createElement(Fallback, null));\n };\n return ReactSVG;\n}(React.Component);\nReactSVG.defaultProps = {\n afterInjection: function afterInjection() {\n return undefined;\n },\n beforeInjection: function beforeInjection() {\n return undefined;\n },\n desc: '',\n evalScripts: 'never',\n fallback: null,\n httpRequestWithCredentials: false,\n loading: null,\n onError: function onError() {\n return undefined;\n },\n renumerateIRIElements: true,\n title: '',\n useRequestCache: true,\n wrapper: 'div'\n};\nReactSVG.propTypes = {\n afterInjection: PropTypes.func,\n beforeInjection: PropTypes.func,\n desc: PropTypes.string,\n evalScripts: PropTypes.oneOf(['always', 'once', 'never']),\n fallback: PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.string]),\n httpRequestWithCredentials: PropTypes.bool,\n loading: PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.string]),\n onError: PropTypes.func,\n renumerateIRIElements: PropTypes.bool,\n src: PropTypes.string.isRequired,\n title: PropTypes.string,\n useRequestCache: PropTypes.bool,\n wrapper: PropTypes.oneOf(['div', 'span', 'svg'])\n} ;\n\nexport { ReactSVG };\n//# sourceMappingURL=react-svg.esm.js.map\n"],"names":["_objectWithoutPropertiesLoose","_extends","_inheritsLoose","SVGInjector","propTypesExports","React","ownerWindow","node","doc","shallowDiffers","a","b","i","_i","_excluded","svgNamespace","xlinkNamespace","ReactSVG","_React$Component","_this","_len","args","_key","reactWrapper","_proto","_this2","_this$props","desc","evalScripts","httpRequestWithCredentials","renumerateIRIElements","src","title","useRequestCache","onError","beforeInjection","afterInjection","wrapper","nonReactWrapper","nonReactTarget","handleError","error","afterEach","svg","afterInjectionError","beforeEach","originalDesc","newDesc","originalTitle","newTitle","_this$nonReactWrapper","prevProps","_this3","_this$props2","Fallback","Loading","rest","Wrapper","PropTypes.func","PropTypes.string","PropTypes.oneOf","PropTypes.oneOfType","PropTypes.object","PropTypes.bool"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index186.js","sources":["../node_modules/react-svg/dist/react-svg.esm.js"],"sourcesContent":["import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/objectWithoutPropertiesLoose';\nimport _extends from '@babel/runtime/helpers/extends';\nimport _inheritsLoose from '@babel/runtime/helpers/inheritsLoose';\nimport { SVGInjector } from '@tanem/svg-injector';\nimport * as PropTypes from 'prop-types';\nimport * as React from 'react';\n\n// Hat-tip: https://github.com/mui/material-ui/tree/master/packages/mui-utils/src.\nvar ownerWindow = function ownerWindow(node) {\n var doc = (node == null ? void 0 : node.ownerDocument) || document;\n return doc.defaultView || window;\n};\n\n// Hat-tip: https://github.com/developit/preact-compat/blob/master/src/index.js#L402.\nvar shallowDiffers = function shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) {\n return true;\n }\n }\n for (var _i in b) {\n if (a[_i] !== b[_i]) {\n return true;\n }\n }\n return false;\n};\n\nvar _excluded = [\"afterInjection\", \"beforeInjection\", \"desc\", \"evalScripts\", \"fallback\", \"httpRequestWithCredentials\", \"loading\", \"renumerateIRIElements\", \"src\", \"title\", \"useRequestCache\", \"wrapper\"];\nvar svgNamespace = 'http://www.w3.org/2000/svg';\nvar xlinkNamespace = 'http://www.w3.org/1999/xlink';\nvar ReactSVG = /*#__PURE__*/function (_React$Component) {\n function ReactSVG() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.initialState = {\n hasError: false,\n isLoading: true\n };\n _this.state = _this.initialState;\n _this._isMounted = false;\n _this.reactWrapper = void 0;\n _this.nonReactWrapper = void 0;\n _this.refCallback = function (reactWrapper) {\n _this.reactWrapper = reactWrapper;\n };\n return _this;\n }\n _inheritsLoose(ReactSVG, _React$Component);\n var _proto = ReactSVG.prototype;\n _proto.renderSVG = function renderSVG() {\n var _this2 = this;\n /* istanbul ignore else */\n if (this.reactWrapper instanceof ownerWindow(this.reactWrapper).Node) {\n var _this$props = this.props,\n desc = _this$props.desc,\n evalScripts = _this$props.evalScripts,\n httpRequestWithCredentials = _this$props.httpRequestWithCredentials,\n renumerateIRIElements = _this$props.renumerateIRIElements,\n src = _this$props.src,\n title = _this$props.title,\n useRequestCache = _this$props.useRequestCache;\n /* eslint-disable @typescript-eslint/no-non-null-assertion */\n var onError = this.props.onError;\n var beforeInjection = this.props.beforeInjection;\n var afterInjection = this.props.afterInjection;\n var wrapper = this.props.wrapper;\n var nonReactWrapper;\n var nonReactTarget;\n if (wrapper === 'svg') {\n nonReactWrapper = document.createElementNS(svgNamespace, wrapper);\n nonReactWrapper.setAttribute('xmlns', svgNamespace);\n nonReactWrapper.setAttribute('xmlns:xlink', xlinkNamespace);\n nonReactTarget = document.createElementNS(svgNamespace, wrapper);\n } else {\n nonReactWrapper = document.createElement(wrapper);\n nonReactTarget = document.createElement(wrapper);\n }\n nonReactWrapper.appendChild(nonReactTarget);\n nonReactTarget.dataset.src = src;\n this.nonReactWrapper = this.reactWrapper.appendChild(nonReactWrapper);\n var handleError = function handleError(error) {\n _this2.removeSVG();\n if (!_this2._isMounted) {\n onError(error);\n return;\n }\n _this2.setState(function () {\n return {\n hasError: true,\n isLoading: false\n };\n }, function () {\n onError(error);\n });\n };\n var afterEach = function afterEach(error, svg) {\n if (error) {\n handleError(error);\n return;\n }\n // TODO (Tane): It'd be better to cleanly unsubscribe from SVGInjector\n // callbacks instead of tracking a property like this.\n if (_this2._isMounted) {\n _this2.setState(function () {\n return {\n isLoading: false\n };\n }, function () {\n try {\n afterInjection(svg);\n } catch (afterInjectionError) {\n handleError(afterInjectionError);\n }\n });\n }\n };\n var beforeEach = function beforeEach(svg) {\n svg.setAttribute('role', 'img');\n if (desc) {\n var originalDesc = svg.querySelector(':scope > desc');\n if (originalDesc) {\n svg.removeChild(originalDesc);\n }\n var newDesc = document.createElement('desc');\n newDesc.innerHTML = desc;\n svg.prepend(newDesc);\n }\n if (title) {\n var originalTitle = svg.querySelector(':scope > title');\n if (originalTitle) {\n svg.removeChild(originalTitle);\n }\n var newTitle = document.createElement('title');\n newTitle.innerHTML = title;\n svg.prepend(newTitle);\n }\n try {\n beforeInjection(svg);\n } catch (error) {\n handleError(error);\n }\n };\n SVGInjector(nonReactTarget, {\n afterEach: afterEach,\n beforeEach: beforeEach,\n cacheRequests: useRequestCache,\n evalScripts: evalScripts,\n httpRequestWithCredentials: httpRequestWithCredentials,\n renumerateIRIElements: renumerateIRIElements\n });\n }\n };\n _proto.removeSVG = function removeSVG() {\n var _this$nonReactWrapper;\n if ((_this$nonReactWrapper = this.nonReactWrapper) != null && _this$nonReactWrapper.parentNode) {\n this.nonReactWrapper.parentNode.removeChild(this.nonReactWrapper);\n this.nonReactWrapper = null;\n }\n };\n _proto.componentDidMount = function componentDidMount() {\n this._isMounted = true;\n this.renderSVG();\n };\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this3 = this;\n if (shallowDiffers(_extends({}, prevProps), this.props)) {\n this.setState(function () {\n return _this3.initialState;\n }, function () {\n _this3.removeSVG();\n _this3.renderSVG();\n });\n }\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n this._isMounted = false;\n this.removeSVG();\n };\n _proto.render = function render() {\n /* eslint-disable @typescript-eslint/no-unused-vars */\n var _this$props2 = this.props;\n _this$props2.afterInjection;\n _this$props2.beforeInjection;\n _this$props2.desc;\n _this$props2.evalScripts;\n var Fallback = _this$props2.fallback;\n _this$props2.httpRequestWithCredentials;\n var Loading = _this$props2.loading;\n _this$props2.renumerateIRIElements;\n _this$props2.src;\n _this$props2.title;\n _this$props2.useRequestCache;\n var wrapper = _this$props2.wrapper,\n rest = _objectWithoutPropertiesLoose(_this$props2, _excluded);\n /* eslint-enable @typescript-eslint/no-unused-vars */\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n var Wrapper = wrapper;\n return /*#__PURE__*/React.createElement(Wrapper, _extends({}, rest, {\n ref: this.refCallback\n }, wrapper === 'svg' ? {\n xmlns: svgNamespace,\n xmlnsXlink: xlinkNamespace\n } : {}), this.state.isLoading && Loading && /*#__PURE__*/React.createElement(Loading, null), this.state.hasError && Fallback && /*#__PURE__*/React.createElement(Fallback, null));\n };\n return ReactSVG;\n}(React.Component);\nReactSVG.defaultProps = {\n afterInjection: function afterInjection() {\n return undefined;\n },\n beforeInjection: function beforeInjection() {\n return undefined;\n },\n desc: '',\n evalScripts: 'never',\n fallback: null,\n httpRequestWithCredentials: false,\n loading: null,\n onError: function onError() {\n return undefined;\n },\n renumerateIRIElements: true,\n title: '',\n useRequestCache: true,\n wrapper: 'div'\n};\nReactSVG.propTypes = {\n afterInjection: PropTypes.func,\n beforeInjection: PropTypes.func,\n desc: PropTypes.string,\n evalScripts: PropTypes.oneOf(['always', 'once', 'never']),\n fallback: PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.string]),\n httpRequestWithCredentials: PropTypes.bool,\n loading: PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.string]),\n onError: PropTypes.func,\n renumerateIRIElements: PropTypes.bool,\n src: PropTypes.string.isRequired,\n title: PropTypes.string,\n useRequestCache: PropTypes.bool,\n wrapper: PropTypes.oneOf(['div', 'span', 'svg'])\n} ;\n\nexport { ReactSVG };\n//# sourceMappingURL=react-svg.esm.js.map\n"],"names":["_objectWithoutPropertiesLoose","_extends","_inheritsLoose","SVGInjector","propTypesExports","React","ownerWindow","node","doc","shallowDiffers","a","b","i","_i","_excluded","svgNamespace","xlinkNamespace","ReactSVG","_React$Component","_this","_len","args","_key","reactWrapper","_proto","_this2","_this$props","desc","evalScripts","httpRequestWithCredentials","renumerateIRIElements","src","title","useRequestCache","onError","beforeInjection","afterInjection","wrapper","nonReactWrapper","nonReactTarget","handleError","error","afterEach","svg","afterInjectionError","beforeEach","originalDesc","newDesc","originalTitle","newTitle","_this$nonReactWrapper","prevProps","_this3","_this$props2","Fallback","Loading","rest","Wrapper","PropTypes.func","PropTypes.string","PropTypes.oneOf","PropTypes.oneOfType","PropTypes.object","PropTypes.bool"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +1 @@
1
- {"version":3,"file":"index187.js","sources":["../src/utils/a11y/elementVisibility.ts"],"sourcesContent":["/**\n * Checks if an element is visible in the DOM.\n * \n * An element is considered visible if:\n * - It exists in the DOM\n * - It's not hidden via CSS (display: none, visibility: hidden)\n * - It has actual dimensions (width > 0 and height > 0)\n * \n * @param element - The element to check, or null\n * @returns true if the element is visible, false otherwise\n * \n * @example\n * const element = document.getElementById('my-element');\n * if (isElementVisible(element)) {\n * // Element is visible\n * }\n */\nexport function isElementVisible(element: HTMLElement | null): boolean {\n if (!element) return false;\n\n // Check computed style for display/visibility\n const style = window.getComputedStyle(element);\n if (style.display === 'none' || style.visibility === 'hidden') {\n return false;\n }\n\n // Check if element has dimensions\n const rect = element.getBoundingClientRect();\n return rect.width > 0 && rect.height > 0;\n}\n"],"names":["isElementVisible","element","style","window","getComputedStyle","display","visibility","rect","getBoundingClientRect","width","height"],"mappings":"AAiBO,SAASA,EAAiBC,GAAsC;AACrE,MAAI,CAACA,EAAS,QAAO;AAGrB,QAAMC,IAAQC,OAAOC,iBAAiBH,CAAO;AAC7C,MAAIC,EAAMG,YAAY,UAAUH,EAAMI,eAAe;AACnD,WAAO;AAIT,QAAMC,IAAON,EAAQO,sBAAAA;AACrB,SAAOD,EAAKE,QAAQ,KAAKF,EAAKG,SAAS;AACzC;"}
1
+ {"version":3,"file":"index187.js","sources":["../src/utils/a11y/elementVisibility.ts"],"sourcesContent":["/**\n * Checks if an element is visible in the DOM.\n * \n * An element is considered visible if:\n * - It exists in the DOM\n * - It's not hidden via CSS (display: none, visibility: hidden)\n * - It has actual dimensions (width > 0 and height > 0)\n * \n * @param element - The element to check, or null\n * @returns true if the element is visible, false otherwise\n * \n * @example\n * const element = document.getElementById('my-element');\n * if (isElementVisible(element)) {\n * // Element is visible\n * }\n */\nexport function isElementVisible(element: HTMLElement | null): boolean {\n if (!element) return false;\n\n // Check computed style for display/visibility\n const style = window.getComputedStyle(element);\n if (style.display === 'none' || style.visibility === 'hidden') {\n return false;\n }\n\n // Check if element has dimensions\n const rect = element.getBoundingClientRect();\n return rect.width > 0 && rect.height > 0;\n}\n"],"names":["isElementVisible","element","style","window","getComputedStyle","display","visibility","rect","getBoundingClientRect","width","height"],"mappings":"AAiBO,SAASA,EAAiBC,GAAsC;AACjE,MAAA,CAACA,EAAgB,QAAA;AAGfC,QAAAA,IAAQC,OAAOC,iBAAiBH,CAAO;AAC7C,MAAIC,EAAMG,YAAY,UAAUH,EAAMI,eAAe;AAC5C,WAAA;AAIHC,QAAAA,IAAON,EAAQO;AACrB,SAAOD,EAAKE,QAAQ,KAAKF,EAAKG,SAAS;AACzC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index188.js","sources":["../src/utils/useStableId.ts"],"sourcesContent":["import { useRef } from 'react';\n\n/**\n * Generates a stable unique ID for component instances (React 16 compatible).\n * Returns the provided id if given, otherwise generates a stable per-mount id.\n * \n * @param id - Optional explicit id\n * @param prefix - Prefix for auto-generated ids (default: 'se-id')\n * @returns Stable id string\n */\nexport function useStableId(id?: string, prefix: string = 'se-id'): string {\n const autoIdRef = useRef<string>('');\n \n if (!autoIdRef.current) {\n autoIdRef.current = `${prefix}-${crypto.randomUUID()}`;\n }\n \n return id || autoIdRef.current;\n}\n\n\n\n\n\n\n\n"],"names":["useRef","useStableId","id","prefix","autoIdRef","current","crypto","randomUUID"],"mappings":"AAUO,SAAA,UAAAA,SAAA;AAAA,SAASC,EAAYC,GAAaC,IAAiB,SAAiB;AACzE,QAAMC,IAAYJ,EAAe,EAAE;AAEnC,SAAKI,EAAUC,YACbD,EAAUC,UAAU,GAAGF,CAAM,IAAIG,OAAOC,YAAY,KAG/CL,KAAME,EAAUC;AACzB;"}
1
+ {"version":3,"file":"index188.js","sources":["../src/utils/useStableId.ts"],"sourcesContent":["import { useRef } from 'react';\n\n/**\n * Generates a stable unique ID for component instances (React 16 compatible).\n * Returns the provided id if given, otherwise generates a stable per-mount id.\n * \n * @param id - Optional explicit id\n * @param prefix - Prefix for auto-generated ids (default: 'se-id')\n * @returns Stable id string\n */\nexport function useStableId(id?: string, prefix: string = 'se-id'): string {\n const autoIdRef = useRef<string>('');\n \n if (!autoIdRef.current) {\n autoIdRef.current = `${prefix}-${crypto.randomUUID()}`;\n }\n \n return id || autoIdRef.current;\n}\n\n\n\n\n\n\n\n"],"names":["useStableId","id","prefix","autoIdRef","useRef","current","crypto","randomUUID"],"mappings":"AAUgBA,SAAAA,UAAAA,SAAAA;AAAAA,SAAAA,EAAYC,GAAaC,IAAiB,SAAiB;AACnEC,QAAAA,IAAYC,EAAe,EAAE;AAE/B,SAACD,EAAUE,YACbF,EAAUE,UAAU,GAAGH,CAAM,IAAII,OAAOC,WAAY,CAAA,KAG/CN,KAAME,EAAUE;AACzB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index189.js","sources":["../src/utils/mergeIds.ts"],"sourcesContent":["/**\n * Merges multiple ID strings into a single space-separated string.\n * Filters out falsy values and deduplicates IDs while preserving order.\n * \n * Useful for ARIA attributes (aria-describedby, aria-labelledby) and class names.\n * \n * @param ids - Array of id strings (or undefined/null)\n * @returns Merged space-separated id string, or undefined if no valid ids\n * \n * @example\n * mergeIds('error-1', undefined, 'helper-1', 'error-1')\n * // Returns: 'error-1 helper-1'\n */\nexport function mergeIds(...ids: (string | undefined | null)[]): string | undefined {\n const uniqueIds = [\n ...new Set(\n ids\n .filter((id): id is string => Boolean(id))\n .flatMap(id => id.trim().split(/\\s+/))\n .filter(Boolean)\n )\n ];\n \n return uniqueIds.length > 0 ? uniqueIds.join(' ') : undefined;\n}\n"],"names":["mergeIds","ids","uniqueIds","Set","filter","id","Boolean","flatMap","trim","split","length","join","undefined"],"mappings":"AAaO,SAASA,KAAYC,GAAwD;AAClF,QAAMC,IAAY,CAChB,GAAG,IAAIC,IACLF,EACGG,OAAO,CAACC,MAAqBC,EAAQD,CAAG,EACxCE,QAAQF,CAAAA,MAAMA,EAAGG,OAAOC,MAAM,KAAK,CAAC,EACpCL,OAAOE,OAAO,CACnB,CAAC;AAGH,SAAOJ,EAAUQ,SAAS,IAAIR,EAAUS,KAAK,GAAG,IAAIC;AACtD;"}
1
+ {"version":3,"file":"index189.js","sources":["../src/utils/mergeIds.ts"],"sourcesContent":["/**\n * Merges multiple ID strings into a single space-separated string.\n * Filters out falsy values and deduplicates IDs while preserving order.\n * \n * Useful for ARIA attributes (aria-describedby, aria-labelledby) and class names.\n * \n * @param ids - Array of id strings (or undefined/null)\n * @returns Merged space-separated id string, or undefined if no valid ids\n * \n * @example\n * mergeIds('error-1', undefined, 'helper-1', 'error-1')\n * // Returns: 'error-1 helper-1'\n */\nexport function mergeIds(...ids: (string | undefined | null)[]): string | undefined {\n const uniqueIds = [\n ...new Set(\n ids\n .filter((id): id is string => Boolean(id))\n .flatMap(id => id.trim().split(/\\s+/))\n .filter(Boolean)\n )\n ];\n \n return uniqueIds.length > 0 ? uniqueIds.join(' ') : undefined;\n}\n"],"names":["mergeIds","ids","uniqueIds","Set","filter","id","Boolean","flatMap","trim","split","length","join","undefined"],"mappings":"AAaO,SAASA,KAAYC,GAAwD;AAC5EC,QAAAA,IAAY,CAChB,GAAG,IAAIC,IACLF,EACGG,OAAO,CAACC,MAAqBC,EAAQD,CAAG,EACxCE,QAAQF,CAAAA,MAAMA,EAAGG,KAAAA,EAAOC,MAAM,KAAK,CAAC,EACpCL,OAAOE,OAAO,CACnB,CAAC;AAGH,SAAOJ,EAAUQ,SAAS,IAAIR,EAAUS,KAAK,GAAG,IAAIC;AACtD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index19.js","sources":["../src/components/Header/index.tsx"],"sourcesContent":["import React, { FC } from 'react';\n\nexport interface HeaderProps {\n leftContainer?: React.ReactNode;\n centerContainer?: React.ReactNode;\n rightContainer?: React.ReactNode;\n type?: string;\n className?: string;\n id?: string;\n}\n\nexport const Header: FC<HeaderProps> = ({\n leftContainer,\n centerContainer,\n rightContainer,\n className,\n id,\n ...props\n}) => {\n return (\n <header\n id={id}\n tabIndex={-1}\n style={{ '--focus-color': 'var(--color-blue-300)' } as React.CSSProperties}\n className={`se-design-header ${className} sticky top-0 h-[48px] w-full z-[1010] bg-[var(--color-blue-600)] flex justify-between items-center focus:outline-none ${\n props?.type === 'fixed' ? 'fixed left-0 right-0 top-0' : ''\n }`}\n >\n {leftContainer && <>{leftContainer}</>}\n {centerContainer && <>{centerContainer}</>}\n {rightContainer && <>{rightContainer}</>}\n </header>\n );\n};\n"],"names":["Header","leftContainer","centerContainer","rightContainer","className","id","props","React","createElement","tabIndex","style","type","Fragment"],"mappings":";AAWO,MAAMA,IAA0BA,CAAC;AAAA,EACtCC,eAAAA;AAAAA,EACAC,iBAAAA;AAAAA,EACAC,gBAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,IAAAA;AAAAA,EACA,GAAGC;AACL,MAEIC,gBAAAA,EAAAC,cAAA,UAAA;AAAA,EACEH,IAAAA;AAAAA,EACAI,UAAU;AAAA,EACVC,OAAO;AAAA,IAAE,iBAAiB;AAAA,EAAA;AAAA,EAC1BN,WAAW,oBAAoBA,CAAS,0HACtCE,GAAOK,SAAS,UAAU,+BAA+B,EAAE;AAAA,GAG5DV,KAAiBM,gBAAAA,EAAAC,cAAAD,EAAAK,UAAA,MAAGX,CAAgB,GACpCC,KAAmBK,gBAAAA,EAAAC,cAAAD,EAAAK,UAAA,MAAGV,CAAkB,GACxCC,KAAkBI,gBAAAA,EAAAC,cAAAD,EAAAK,UAAA,MAAGT,CAAiB,CACjC;"}
1
+ {"version":3,"file":"index19.js","sources":["../src/components/Header/index.tsx"],"sourcesContent":["import React, { FC } from 'react';\n\nexport interface HeaderProps {\n leftContainer?: React.ReactNode;\n centerContainer?: React.ReactNode;\n rightContainer?: React.ReactNode;\n type?: string;\n className?: string;\n id?: string;\n}\n\nexport const Header: FC<HeaderProps> = ({\n leftContainer,\n centerContainer,\n rightContainer,\n className,\n id,\n ...props\n}) => {\n return (\n <header\n id={id}\n tabIndex={-1}\n style={{ '--focus-color': 'var(--color-blue-300)' } as React.CSSProperties}\n className={`se-design-header ${className} sticky top-0 h-[48px] w-full z-[1010] bg-[var(--color-blue-600)] flex justify-between items-center focus:outline-none ${\n props?.type === 'fixed' ? 'fixed left-0 right-0 top-0' : ''\n }`}\n >\n {leftContainer && <>{leftContainer}</>}\n {centerContainer && <>{centerContainer}</>}\n {rightContainer && <>{rightContainer}</>}\n </header>\n );\n};\n"],"names":["Header","leftContainer","centerContainer","rightContainer","className","id","props","React","createElement","tabIndex","style","type","Fragment"],"mappings":";AAWO,MAAMA,IAA0BA,CAAC;AAAA,EACtCC,eAAAA;AAAAA,EACAC,iBAAAA;AAAAA,EACAC,gBAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,IAAAA;AAAAA,EACA,GAAGC;AACL,MAEIC,gBAAAA,EAAAC,cAAA,UAAA;AAAA,EACEH,IAAAA;AAAAA,EACAI,UAAU;AAAA,EACVC,OAAO;AAAA,IAAE,iBAAiB;AAAA,EAAwB;AAAA,EAClDN,WAAW,oBAAoBA,CAAS,0HACtCE,GAAOK,SAAS,UAAU,+BAA+B,EAAE;AAC1D,GAEFV,KAAiBM,gBAAAA,EAAAC,cAAAD,EAAAK,UAAA,MAAGX,CAAgB,GACpCC,KAAmBM,gBAAAA,EAAAA,cAAAD,EAAAK,UAAGV,MAAAA,CAAkB,GACxCC,KAAkBI,gBAAAA,EAAAC,cAAAD,EAAAK,UAAGT,MAAAA,CAAiB,CACjC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index192.js","sources":["../src/utils/a11y/useDismissOnFocusOut.ts"],"sourcesContent":["import * as React from 'react';\n\nexport type UseDismissOnFocusOutOptions = {\n /**\n * Disable all handlers (no-ops). Useful when a component provides alternate\n * focus/keyboard behavior (e.g., disabled-trigger tooltip wrapper).\n */\n disabled?: boolean;\n /**\n * Called when focus enters anywhere within the target.\n */\n onFocusIn?: () => void;\n /**\n * Called when focus leaves the target (i.e., focus moves to an element\n * outside the currentTarget).\n */\n onFocusOut?: () => void;\n /**\n * Called when Escape is pressed while focus is within the target.\n */\n onEscape?: () => void;\n /**\n * Whether Escape should trigger dismissal. Default: true.\n */\n closeOnEscape?: boolean;\n};\n\nexport type UseDismissOnFocusOutReturn<T extends HTMLElement = HTMLElement> = {\n onFocusCapture: (e: React.FocusEvent<T>) => void;\n onBlurCapture: (e: React.FocusEvent<T>) => void;\n onKeyDownCapture: (e: React.KeyboardEvent<T>) => void;\n};\n\n/**\n * Returns capture-phase handlers to \"show on focus within\" and \"dismiss on focus out\",\n * with optional Escape-to-dismiss.\n *\n * Intended for non-interactive surfaces like tooltips where content should remain\n * visible while focus stays within the wrapper.\n */\nexport function useDismissOnFocusOut<T extends HTMLElement = HTMLElement>({\n disabled = false,\n onFocusIn,\n onFocusOut,\n onEscape,\n closeOnEscape = true\n}: UseDismissOnFocusOutOptions): UseDismissOnFocusOutReturn<T> {\n const onFocusCapture = React.useCallback(\n (_e: React.FocusEvent<T>) => {\n if (disabled) return;\n onFocusIn?.();\n },\n [disabled, onFocusIn]\n );\n\n const onBlurCapture = React.useCallback(\n (e: React.FocusEvent<T>) => {\n if (disabled) return;\n\n const nextFocused = e.relatedTarget as Node | null;\n if (nextFocused && e.currentTarget.contains(nextFocused)) return;\n\n onFocusOut?.();\n },\n [disabled, onFocusOut]\n );\n\n const onKeyDownCapture = React.useCallback(\n (e: React.KeyboardEvent<T>) => {\n if (disabled || !closeOnEscape || e.key !== 'Escape') return;\n\n e.preventDefault();\n onEscape?.();\n },\n [disabled, closeOnEscape, onEscape]\n );\n\n return { onFocusCapture, onBlurCapture, onKeyDownCapture };\n}\n\n"],"names":["React","useDismissOnFocusOut","disabled","onFocusIn","onFocusOut","onEscape","closeOnEscape","onFocusCapture","useCallback","_e","onBlurCapture","e","nextFocused","relatedTarget","currentTarget","contains","onKeyDownCapture","key","preventDefault"],"mappings":"AAwCO,YAAAA,OAAA;AAAA,SAASC,EAA0D;AAAA,EACxEC,UAAAA,IAAW;AAAA,EACXC,WAAAA;AAAAA,EACAC,YAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAC,eAAAA,IAAgB;AACW,GAAkC;AAC7D,QAAMC,IAAiBP,EAAMQ,YAC3B,CAACC,MAA4B;AAC3B,IAAIP,KACJC,IAAAA;AAAAA,EACF,GACA,CAACD,GAAUC,CAAS,CACtB,GAEMO,IAAgBV,EAAMQ,YAC1B,CAACG,MAA2B;AAC1B,QAAIT,EAAU;AAEd,UAAMU,IAAcD,EAAEE;AACtB,IAAID,KAAeD,EAAEG,cAAcC,SAASH,CAAW,KAEvDR,IAAAA;AAAAA,EACF,GACA,CAACF,GAAUE,CAAU,CACvB,GAEMY,IAAmBhB,EAAMQ,YAC7B,CAACG,MAA8B;AAC7B,IAAIT,KAAY,CAACI,KAAiBK,EAAEM,QAAQ,aAE5CN,EAAEO,eAAAA,GACFb,IAAAA;AAAAA,EACF,GACA,CAACH,GAAUI,GAAeD,CAAQ,CACpC;AAEA,SAAO;AAAA,IAAEE,gBAAAA;AAAAA,IAAgBG,eAAAA;AAAAA,IAAeM,kBAAAA;AAAAA,EAAAA;AAC1C;"}
1
+ {"version":3,"file":"index192.js","sources":["../src/utils/a11y/useDismissOnFocusOut.ts"],"sourcesContent":["import * as React from 'react';\n\nexport type UseDismissOnFocusOutOptions = {\n /**\n * Disable all handlers (no-ops). Useful when a component provides alternate\n * focus/keyboard behavior (e.g., disabled-trigger tooltip wrapper).\n */\n disabled?: boolean;\n /**\n * Called when focus enters anywhere within the target.\n */\n onFocusIn?: () => void;\n /**\n * Called when focus leaves the target (i.e., focus moves to an element\n * outside the currentTarget).\n */\n onFocusOut?: () => void;\n /**\n * Called when Escape is pressed while focus is within the target.\n */\n onEscape?: () => void;\n /**\n * Whether Escape should trigger dismissal. Default: true.\n */\n closeOnEscape?: boolean;\n};\n\nexport type UseDismissOnFocusOutReturn<T extends HTMLElement = HTMLElement> = {\n onFocusCapture: (e: React.FocusEvent<T>) => void;\n onBlurCapture: (e: React.FocusEvent<T>) => void;\n onKeyDownCapture: (e: React.KeyboardEvent<T>) => void;\n};\n\n/**\n * Returns capture-phase handlers to \"show on focus within\" and \"dismiss on focus out\",\n * with optional Escape-to-dismiss.\n *\n * Intended for non-interactive surfaces like tooltips where content should remain\n * visible while focus stays within the wrapper.\n */\nexport function useDismissOnFocusOut<T extends HTMLElement = HTMLElement>({\n disabled = false,\n onFocusIn,\n onFocusOut,\n onEscape,\n closeOnEscape = true\n}: UseDismissOnFocusOutOptions): UseDismissOnFocusOutReturn<T> {\n const onFocusCapture = React.useCallback(\n (_e: React.FocusEvent<T>) => {\n if (disabled) return;\n onFocusIn?.();\n },\n [disabled, onFocusIn]\n );\n\n const onBlurCapture = React.useCallback(\n (e: React.FocusEvent<T>) => {\n if (disabled) return;\n\n const nextFocused = e.relatedTarget as Node | null;\n if (nextFocused && e.currentTarget.contains(nextFocused)) return;\n\n onFocusOut?.();\n },\n [disabled, onFocusOut]\n );\n\n const onKeyDownCapture = React.useCallback(\n (e: React.KeyboardEvent<T>) => {\n if (disabled || !closeOnEscape || e.key !== 'Escape') return;\n\n e.preventDefault();\n onEscape?.();\n },\n [disabled, closeOnEscape, onEscape]\n );\n\n return { onFocusCapture, onBlurCapture, onKeyDownCapture };\n}\n\n"],"names":["React","useDismissOnFocusOut","disabled","onFocusIn","onFocusOut","onEscape","closeOnEscape","onFocusCapture","useCallback","_e","onBlurCapture","e","nextFocused","relatedTarget","currentTarget","contains","onKeyDownCapture","key","preventDefault"],"mappings":"AAwCO,YAAAA,OAAA;AAAA,SAASC,EAA0D;AAAA,EACxEC,UAAAA,IAAW;AAAA,EACXC,WAAAA;AAAAA,EACAC,YAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAC,eAAAA,IAAgB;AACW,GAAkC;AAC7D,QAAMC,IAAiBP,EAAMQ,YAC3B,CAACC,MAA4B;AAC3B,IAAIP,KACQC;EAAA,GAEd,CAACD,GAAUC,CAAS,CACtB,GAEMO,IAAgBV,EAAMQ,YAC1B,CAACG,MAA2B;AAC1B,QAAIT,EAAU;AAEd,UAAMU,IAAcD,EAAEE;AACtB,IAAID,KAAeD,EAAEG,cAAcC,SAASH,CAAW,KAE1CR;EAAA,GAEf,CAACF,GAAUE,CAAU,CACvB,GAEMY,IAAmBhB,EAAMQ,YAC7B,CAACG,MAA8B;AAC7B,IAAIT,KAAY,CAACI,KAAiBK,EAAEM,QAAQ,aAE5CN,EAAEO,eAAe,GACNb;EAEb,GAAA,CAACH,GAAUI,GAAeD,CAAQ,CACpC;AAEO,SAAA;AAAA,IAAEE,gBAAAA;AAAAA,IAAgBG,eAAAA;AAAAA,IAAeM,kBAAAA;AAAAA,EAAAA;AAC1C;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index194.js","sources":["../src/utils/a11y/useCombobox.ts"],"sourcesContent":["import { useRef, useCallback, useEffect } from 'react';\nimport type { RefObject } from 'react';\nimport { useComboboxNavigation } from './useComboboxNavigation';\nimport { useDismissOnFocusOut } from './useDismissOnFocusOut';\nimport type { UseDismissOnFocusOutReturn } from './useDismissOnFocusOut';\n\nexport interface UseComboboxOptions<T = any> {\n /**\n * Array of items to navigate through\n */\n items: T[];\n \n /**\n * Whether the dropdown is currently open\n */\n isOpen: boolean;\n \n /**\n * Callback to change the open state\n */\n onOpenChange: (open: boolean) => void;\n \n /**\n * Callback when an item is selected (Enter key)\n */\n onSelect: (item: T, index: number) => void;\n \n /**\n * Stable ID for the listbox element\n */\n listboxId: string;\n \n /**\n * Whether to wrap around at the ends of the list.\n * Default: true\n */\n loop?: boolean;\n \n /**\n * Whether keyboard navigation is disabled\n * (e.g., for custom rendered content)\n */\n disabled?: boolean;\n \n /**\n * CSS selector for option elements (default: '[role=\"option\"]')\n */\n optionSelector?: string;\n \n /**\n * Whether the listbox has any items to show\n * Used for aria-expanded logic\n * Default: items.length > 0\n */\n hasItems?: boolean;\n}\n\nexport interface UseComboboxReturn {\n /**\n * Props to spread on the container element (handles dismiss on focus out)\n */\n containerProps: UseDismissOnFocusOutReturn<HTMLElement>;\n \n /**\n * Props to spread on the combobox input element\n */\n inputProps: {\n role: 'combobox';\n 'aria-expanded': boolean;\n 'aria-haspopup': 'listbox';\n 'aria-controls': string | undefined;\n 'aria-autocomplete': 'list';\n 'aria-activedescendant': string | undefined;\n onKeyDown: (e: React.KeyboardEvent) => void;\n };\n \n /**\n * Props to spread on the listbox element\n */\n listboxProps: {\n id: string;\n role: 'listbox';\n ref: RefObject<HTMLDivElement | null>;\n onMouseDownCapture: (e: React.MouseEvent) => void;\n onMouseUpCapture: (e: React.MouseEvent) => void;\n onMouseLeave: (e: React.MouseEvent) => void;\n };\n \n /**\n * Generate props for an option element at the given index\n * @param selected - Whether this option is the currently selected/chosen value (not keyboard highlight)\n */\n getOptionProps: (index: number, selected?: boolean) => {\n id: string;\n role: 'option';\n 'aria-selected': boolean;\n };\n \n /**\n * Currently highlighted index (-1 if none)\n */\n highlightedIndex: number;\n \n /**\n * Set the highlighted index manually\n */\n setHighlightedIndex: (index: number | ((prev: number) => number)) => void;\n \n /**\n * Generate stable ID for an option\n */\n getOptionId: (listboxId: string, index: number) => string;\n}\n\n/**\n * Comprehensive hook for implementing WAI-ARIA combobox pattern.\n * \n * Combines:\n * - Keyboard navigation (Arrow Up/Down, Enter, Escape, Tab)\n * - Focus management and dismissal\n * - ARIA attributes for accessibility\n * - Auto-scroll highlighted item into view\n * \n * This hook provides a complete, batteries-included solution for building\n * accessible combobox components (autocomplete, select, search with suggestions, etc.)\n * \n * @example Basic usage\n * ```tsx\n * const MyCombobox = () => {\n * const [isOpen, setIsOpen] = useState(false);\n * const [items, setItems] = useState(['Apple', 'Banana', 'Cherry']);\n * \n * const {\n * containerProps,\n * inputProps,\n * listboxProps,\n * getOptionProps,\n * highlightedIndex\n * } = useCombobox({\n * items,\n * isOpen,\n * onOpenChange: setIsOpen,\n * onSelect: (item) => console.log('Selected:', item),\n * listboxId: 'my-listbox'\n * });\n * \n * return (\n * <div {...containerProps}>\n * <input {...inputProps} />\n * {isOpen && (\n * <div {...listboxProps}>\n * {items.map((item, i) => (\n * <div key={i} {...getOptionProps(i)}>\n * {item}\n * </div>\n * ))}\n * </div>\n * )}\n * </div>\n * );\n * };\n * ```\n * \n * @example With custom ARIA labels and handlers\n * ```tsx\n * const MySearchBox = () => {\n * const [query, setQuery] = useState('');\n * const [suggestions, setSuggestions] = useState([]);\n * const [isOpen, setIsOpen] = useState(false);\n * \n * const { containerProps, inputProps, listboxProps, getOptionProps } = useCombobox({\n * items: suggestions,\n * isOpen,\n * onOpenChange: setIsOpen,\n * onSelect: (suggestion) => {\n * setQuery(suggestion);\n * setIsOpen(false);\n * },\n * listboxId: 'search-suggestions'\n * });\n * \n * return (\n * <div {...containerProps}>\n * <input\n * {...inputProps}\n * value={query}\n * onChange={(e) => setQuery(e.target.value)}\n * aria-label=\"Search\"\n * />\n * {isOpen && suggestions.length > 0 && (\n * <div {...listboxProps} aria-label=\"Search suggestions\">\n * {suggestions.map((suggestion, i) => (\n * <div\n * key={i}\n * {...getOptionProps(i)}\n * onClick={() => {\n * setQuery(suggestion);\n * setIsOpen(false);\n * }}\n * >\n * {suggestion}\n * </div>\n * ))}\n * </div>\n * )}\n * </div>\n * );\n * };\n * ```\n */\nexport function useCombobox<T = any>({\n items,\n isOpen,\n onOpenChange,\n onSelect,\n listboxId,\n loop = true,\n disabled = false,\n optionSelector = '[role=\"option\"]',\n hasItems\n}: UseComboboxOptions<T>): UseComboboxReturn {\n const listboxRef = useRef<HTMLDivElement | null>(null);\n const pointerDownInListboxRef = useRef(false);\n const tabKeyPressedRef = useRef(false);\n \n // Determine if we should show as expanded\n const shouldShowExpanded = hasItems !== undefined ? hasItems : items.length > 0;\n \n // Close dropdown callback\n const closeDropdown = useCallback(() => {\n onOpenChange(false);\n }, [onOpenChange]);\n\n // Ensure pointer state doesn't get stuck when listbox unmounts\n useEffect(() => {\n if (!isOpen) {\n pointerDownInListboxRef.current = false;\n }\n }, [isOpen]);\n \n // Keyboard navigation with aria-activedescendant\n const navigation = useComboboxNavigation<T>({\n items,\n isOpen,\n onSelect,\n onClose: closeDropdown,\n onOpen: () => onOpenChange(true),\n loop,\n disabled,\n listboxRef,\n optionSelector\n });\n \n // Focus out / Escape dismissal\n const dismissHandlers = useDismissOnFocusOut({\n onFocusOut: closeDropdown,\n onEscape: closeDropdown,\n disabled: !isOpen\n });\n\n const containerProps: UseDismissOnFocusOutReturn<HTMLElement> = {\n ...dismissHandlers,\n onBlurCapture: (e) => {\n // Clicking inside a listbox option can blur the input (relatedTarget is null),\n // which would dismiss before the click handler runs. Prevent that.\n if (pointerDownInListboxRef.current) return;\n \n // Tab key pressed - let Tab handler close dropdown, skip blur detection\n if (tabKeyPressedRef.current) {\n tabKeyPressedRef.current = false;\n return;\n }\n \n dismissHandlers.onBlurCapture(e);\n }\n };\n \n // Build input props\n const inputProps = {\n role: 'combobox' as const,\n 'aria-expanded': isOpen && shouldShowExpanded,\n 'aria-haspopup': 'listbox' as const,\n 'aria-controls': isOpen ? listboxId : undefined,\n 'aria-autocomplete': 'list' as const,\n 'aria-activedescendant': \n navigation.highlightedIndex >= 0 \n ? navigation.getOptionId(listboxId, navigation.highlightedIndex) \n : undefined,\n onKeyDown: (e: React.KeyboardEvent) => {\n // Set flag when Tab is pressed (before blur fires)\n if (e.key === 'Tab') {\n tabKeyPressedRef.current = true;\n }\n navigation.handleKeyDown(e);\n }\n };\n \n // Build listbox props\n const listboxProps = {\n id: listboxId,\n role: 'listbox' as const,\n ref: listboxRef,\n onMouseDownCapture: (_e: React.MouseEvent) => {\n pointerDownInListboxRef.current = true;\n },\n onMouseUpCapture: (_e: React.MouseEvent) => {\n pointerDownInListboxRef.current = false;\n },\n onMouseLeave: (_e: React.MouseEvent) => {\n pointerDownInListboxRef.current = false;\n }\n };\n \n // Option props generator\n const getOptionProps = useCallback(\n (index: number, selected: boolean = false) => ({\n id: navigation.getOptionId(listboxId, index),\n role: 'option' as const,\n 'aria-selected': selected\n }),\n [navigation.getOptionId, listboxId]\n );\n \n return {\n containerProps,\n inputProps,\n listboxProps,\n getOptionProps,\n highlightedIndex: navigation.highlightedIndex,\n setHighlightedIndex: navigation.setHighlightedIndex,\n getOptionId: navigation.getOptionId\n };\n}\n"],"names":["useRef","useCallback","useEffect","useComboboxNavigation","useDismissOnFocusOut","useCombobox","items","isOpen","onOpenChange","onSelect","listboxId","loop","disabled","optionSelector","hasItems","listboxRef","pointerDownInListboxRef","tabKeyPressedRef","shouldShowExpanded","undefined","length","closeDropdown","current","navigation","onClose","onOpen","dismissHandlers","onFocusOut","onEscape","containerProps","onBlurCapture","e","inputProps","role","highlightedIndex","getOptionId","onKeyDown","key","handleKeyDown","listboxProps","id","ref","onMouseDownCapture","_e","onMouseUpCapture","onMouseLeave","getOptionProps","index","selected","setHighlightedIndex"],"mappings":"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"}
1
+ {"version":3,"file":"index194.js","sources":["../src/utils/a11y/useCombobox.ts"],"sourcesContent":["import { useRef, useCallback, useEffect } from 'react';\nimport type { RefObject } from 'react';\nimport { useComboboxNavigation } from './useComboboxNavigation';\nimport { useDismissOnFocusOut } from './useDismissOnFocusOut';\nimport type { UseDismissOnFocusOutReturn } from './useDismissOnFocusOut';\n\nexport interface UseComboboxOptions<T = any> {\n /**\n * Array of items to navigate through\n */\n items: T[];\n \n /**\n * Whether the dropdown is currently open\n */\n isOpen: boolean;\n \n /**\n * Callback to change the open state\n */\n onOpenChange: (open: boolean) => void;\n \n /**\n * Callback when an item is selected (Enter key)\n */\n onSelect: (item: T, index: number) => void;\n \n /**\n * Stable ID for the listbox element\n */\n listboxId: string;\n \n /**\n * Whether to wrap around at the ends of the list.\n * Default: true\n */\n loop?: boolean;\n \n /**\n * Whether keyboard navigation is disabled\n * (e.g., for custom rendered content)\n */\n disabled?: boolean;\n \n /**\n * CSS selector for option elements (default: '[role=\"option\"]')\n */\n optionSelector?: string;\n \n /**\n * Whether the listbox has any items to show\n * Used for aria-expanded logic\n * Default: items.length > 0\n */\n hasItems?: boolean;\n}\n\nexport interface UseComboboxReturn {\n /**\n * Props to spread on the container element (handles dismiss on focus out)\n */\n containerProps: UseDismissOnFocusOutReturn<HTMLElement>;\n \n /**\n * Props to spread on the combobox input element\n */\n inputProps: {\n role: 'combobox';\n 'aria-expanded': boolean;\n 'aria-haspopup': 'listbox';\n 'aria-controls': string | undefined;\n 'aria-autocomplete': 'list';\n 'aria-activedescendant': string | undefined;\n onKeyDown: (e: React.KeyboardEvent) => void;\n };\n \n /**\n * Props to spread on the listbox element\n */\n listboxProps: {\n id: string;\n role: 'listbox';\n ref: RefObject<HTMLDivElement | null>;\n onMouseDownCapture: (e: React.MouseEvent) => void;\n onMouseUpCapture: (e: React.MouseEvent) => void;\n onMouseLeave: (e: React.MouseEvent) => void;\n };\n \n /**\n * Generate props for an option element at the given index\n * @param selected - Whether this option is the currently selected/chosen value (not keyboard highlight)\n */\n getOptionProps: (index: number, selected?: boolean) => {\n id: string;\n role: 'option';\n 'aria-selected': boolean;\n };\n \n /**\n * Currently highlighted index (-1 if none)\n */\n highlightedIndex: number;\n \n /**\n * Set the highlighted index manually\n */\n setHighlightedIndex: (index: number | ((prev: number) => number)) => void;\n \n /**\n * Generate stable ID for an option\n */\n getOptionId: (listboxId: string, index: number) => string;\n}\n\n/**\n * Comprehensive hook for implementing WAI-ARIA combobox pattern.\n * \n * Combines:\n * - Keyboard navigation (Arrow Up/Down, Enter, Escape, Tab)\n * - Focus management and dismissal\n * - ARIA attributes for accessibility\n * - Auto-scroll highlighted item into view\n * \n * This hook provides a complete, batteries-included solution for building\n * accessible combobox components (autocomplete, select, search with suggestions, etc.)\n * \n * @example Basic usage\n * ```tsx\n * const MyCombobox = () => {\n * const [isOpen, setIsOpen] = useState(false);\n * const [items, setItems] = useState(['Apple', 'Banana', 'Cherry']);\n * \n * const {\n * containerProps,\n * inputProps,\n * listboxProps,\n * getOptionProps,\n * highlightedIndex\n * } = useCombobox({\n * items,\n * isOpen,\n * onOpenChange: setIsOpen,\n * onSelect: (item) => console.log('Selected:', item),\n * listboxId: 'my-listbox'\n * });\n * \n * return (\n * <div {...containerProps}>\n * <input {...inputProps} />\n * {isOpen && (\n * <div {...listboxProps}>\n * {items.map((item, i) => (\n * <div key={i} {...getOptionProps(i)}>\n * {item}\n * </div>\n * ))}\n * </div>\n * )}\n * </div>\n * );\n * };\n * ```\n * \n * @example With custom ARIA labels and handlers\n * ```tsx\n * const MySearchBox = () => {\n * const [query, setQuery] = useState('');\n * const [suggestions, setSuggestions] = useState([]);\n * const [isOpen, setIsOpen] = useState(false);\n * \n * const { containerProps, inputProps, listboxProps, getOptionProps } = useCombobox({\n * items: suggestions,\n * isOpen,\n * onOpenChange: setIsOpen,\n * onSelect: (suggestion) => {\n * setQuery(suggestion);\n * setIsOpen(false);\n * },\n * listboxId: 'search-suggestions'\n * });\n * \n * return (\n * <div {...containerProps}>\n * <input\n * {...inputProps}\n * value={query}\n * onChange={(e) => setQuery(e.target.value)}\n * aria-label=\"Search\"\n * />\n * {isOpen && suggestions.length > 0 && (\n * <div {...listboxProps} aria-label=\"Search suggestions\">\n * {suggestions.map((suggestion, i) => (\n * <div\n * key={i}\n * {...getOptionProps(i)}\n * onClick={() => {\n * setQuery(suggestion);\n * setIsOpen(false);\n * }}\n * >\n * {suggestion}\n * </div>\n * ))}\n * </div>\n * )}\n * </div>\n * );\n * };\n * ```\n */\nexport function useCombobox<T = any>({\n items,\n isOpen,\n onOpenChange,\n onSelect,\n listboxId,\n loop = true,\n disabled = false,\n optionSelector = '[role=\"option\"]',\n hasItems\n}: UseComboboxOptions<T>): UseComboboxReturn {\n const listboxRef = useRef<HTMLDivElement | null>(null);\n const pointerDownInListboxRef = useRef(false);\n const tabKeyPressedRef = useRef(false);\n \n // Determine if we should show as expanded\n const shouldShowExpanded = hasItems !== undefined ? hasItems : items.length > 0;\n \n // Close dropdown callback\n const closeDropdown = useCallback(() => {\n onOpenChange(false);\n }, [onOpenChange]);\n\n // Ensure pointer state doesn't get stuck when listbox unmounts\n useEffect(() => {\n if (!isOpen) {\n pointerDownInListboxRef.current = false;\n }\n }, [isOpen]);\n \n // Keyboard navigation with aria-activedescendant\n const navigation = useComboboxNavigation<T>({\n items,\n isOpen,\n onSelect,\n onClose: closeDropdown,\n onOpen: () => onOpenChange(true),\n loop,\n disabled,\n listboxRef,\n optionSelector\n });\n \n // Focus out / Escape dismissal\n const dismissHandlers = useDismissOnFocusOut({\n onFocusOut: closeDropdown,\n onEscape: closeDropdown,\n disabled: !isOpen\n });\n\n const containerProps: UseDismissOnFocusOutReturn<HTMLElement> = {\n ...dismissHandlers,\n onBlurCapture: (e) => {\n // Clicking inside a listbox option can blur the input (relatedTarget is null),\n // which would dismiss before the click handler runs. Prevent that.\n if (pointerDownInListboxRef.current) return;\n \n // Tab key pressed - let Tab handler close dropdown, skip blur detection\n if (tabKeyPressedRef.current) {\n tabKeyPressedRef.current = false;\n return;\n }\n \n dismissHandlers.onBlurCapture(e);\n }\n };\n \n // Build input props\n const inputProps = {\n role: 'combobox' as const,\n 'aria-expanded': isOpen && shouldShowExpanded,\n 'aria-haspopup': 'listbox' as const,\n 'aria-controls': isOpen ? listboxId : undefined,\n 'aria-autocomplete': 'list' as const,\n 'aria-activedescendant': \n navigation.highlightedIndex >= 0 \n ? navigation.getOptionId(listboxId, navigation.highlightedIndex) \n : undefined,\n onKeyDown: (e: React.KeyboardEvent) => {\n // Set flag when Tab is pressed (before blur fires)\n if (e.key === 'Tab') {\n tabKeyPressedRef.current = true;\n }\n navigation.handleKeyDown(e);\n }\n };\n \n // Build listbox props\n const listboxProps = {\n id: listboxId,\n role: 'listbox' as const,\n ref: listboxRef,\n onMouseDownCapture: (_e: React.MouseEvent) => {\n pointerDownInListboxRef.current = true;\n },\n onMouseUpCapture: (_e: React.MouseEvent) => {\n pointerDownInListboxRef.current = false;\n },\n onMouseLeave: (_e: React.MouseEvent) => {\n pointerDownInListboxRef.current = false;\n }\n };\n \n // Option props generator\n const getOptionProps = useCallback(\n (index: number, selected: boolean = false) => ({\n id: navigation.getOptionId(listboxId, index),\n role: 'option' as const,\n 'aria-selected': selected\n }),\n [navigation.getOptionId, listboxId]\n );\n \n return {\n containerProps,\n inputProps,\n listboxProps,\n getOptionProps,\n highlightedIndex: navigation.highlightedIndex,\n setHighlightedIndex: navigation.setHighlightedIndex,\n getOptionId: navigation.getOptionId\n };\n}\n"],"names":["useRef","useCallback","useEffect","useComboboxNavigation","useDismissOnFocusOut","useCombobox","items","isOpen","onOpenChange","onSelect","listboxId","loop","disabled","optionSelector","hasItems","listboxRef","pointerDownInListboxRef","tabKeyPressedRef","shouldShowExpanded","undefined","length","closeDropdown","current","navigation","onClose","onOpen","dismissHandlers","onFocusOut","onEscape","containerProps","onBlurCapture","e","inputProps","role","highlightedIndex","getOptionId","onKeyDown","key","handleKeyDown","listboxProps","id","ref","onMouseDownCapture","_e","onMouseUpCapture","onMouseLeave","getOptionProps","index","selected","setHighlightedIndex"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index196.js","sources":["../src/utils/a11y/useDismissOnEscape.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport type { RefObject } from 'react';\n\nexport interface UseDismissOnEscapeOptions<T extends HTMLElement = HTMLElement> {\n /**\n * Container element ref to check if focus is within.\n * Escape will only trigger if focus is within this container.\n */\n containerRef: RefObject<T | null>;\n /**\n * Callback when Escape key is pressed and focus is within container.\n */\n onDismiss?: () => void;\n /**\n * Whether the Escape handler is active.\n * Default: true\n */\n enabled?: boolean;\n /**\n * Whether to call preventDefault() when handling Escape.\n * Default: true\n */\n preventDefault?: boolean;\n /**\n * Whether to call stopPropagation() when handling Escape.\n * Default: true\n */\n stopPropagation?: boolean;\n}\n\n/**\n * Hook to handle Escape key dismissal when focus is within a container.\n * \n * This is a UX pattern: if user is interacting with an overlay/sidebar\n * (indicated by focus being within it), Escape should close it.\n * \n * @example\n * ```tsx\n * const MySidebar = ({ isOpen, onClose }) => {\n * const containerRef = useRef<HTMLDivElement>(null);\n * \n * useDismissOnEscape({\n * containerRef,\n * onDismiss: onClose,\n * enabled: isOpen\n * });\n * \n * return <div ref={containerRef}>...</div>;\n * };\n * ```\n */\nexport function useDismissOnEscape<T extends HTMLElement = HTMLElement>({\n containerRef,\n onDismiss,\n enabled = true,\n preventDefault = true,\n stopPropagation = true\n}: UseDismissOnEscapeOptions<T>): void {\n useEffect(() => {\n if (!enabled || !onDismiss) return;\n \n const container = containerRef.current;\n if (!container) return;\n\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && container.contains(document.activeElement)) {\n preventDefault && e.preventDefault();\n stopPropagation && e.stopPropagation();\n onDismiss();\n }\n };\n\n document.addEventListener('keydown', handleEscape, { capture: true });\n return () => document.removeEventListener('keydown', handleEscape, { capture: true });\n }, [enabled, onDismiss, containerRef, preventDefault, stopPropagation]);\n}\n"],"names":["useEffect","useDismissOnEscape","containerRef","onDismiss","enabled","preventDefault","stopPropagation","container","current","handleEscape","e","key","contains","document","activeElement","addEventListener","capture","removeEventListener"],"mappings":"AAmDO,SAAA,aAAAA,SAAA;AAAA,SAASC,EAAwD;AAAA,EACtEC,cAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,SAAAA,IAAU;AAAA,EACVC,gBAAAA,IAAiB;AAAA,EACjBC,iBAAAA,IAAkB;AACU,GAAS;AACrCN,EAAAA,EAAU,MAAM;AACd,QAAI,CAACI,KAAW,CAACD,EAAW;AAE5B,UAAMI,IAAYL,EAAaM;AAC/B,QAAI,CAACD,EAAW;AAEhB,UAAME,IAAeA,CAACC,MAAqB;AACzC,MAAIA,EAAEC,QAAQ,YAAYJ,EAAUK,SAASC,SAASC,aAAa,MACjET,KAAkBK,EAAEL,eAAAA,GACpBC,KAAmBI,EAAEJ,gBAAAA,GACrBH,EAAAA;AAAAA,IAEJ;AAEAU,oBAASE,iBAAiB,WAAWN,GAAc;AAAA,MAAEO,SAAS;AAAA,IAAA,CAAM,GAC7D,MAAMH,SAASI,oBAAoB,WAAWR,GAAc;AAAA,MAAEO,SAAS;AAAA,IAAA,CAAM;AAAA,EACtF,GAAG,CAACZ,GAASD,GAAWD,GAAcG,GAAgBC,CAAe,CAAC;AACxE;"}
1
+ {"version":3,"file":"index196.js","sources":["../src/utils/a11y/useDismissOnEscape.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport type { RefObject } from 'react';\n\nexport interface UseDismissOnEscapeOptions<T extends HTMLElement = HTMLElement> {\n /**\n * Container element ref to check if focus is within.\n * Escape will only trigger if focus is within this container.\n */\n containerRef: RefObject<T | null>;\n /**\n * Callback when Escape key is pressed and focus is within container.\n */\n onDismiss?: () => void;\n /**\n * Whether the Escape handler is active.\n * Default: true\n */\n enabled?: boolean;\n /**\n * Whether to call preventDefault() when handling Escape.\n * Default: true\n */\n preventDefault?: boolean;\n /**\n * Whether to call stopPropagation() when handling Escape.\n * Default: true\n */\n stopPropagation?: boolean;\n}\n\n/**\n * Hook to handle Escape key dismissal when focus is within a container.\n * \n * This is a UX pattern: if user is interacting with an overlay/sidebar\n * (indicated by focus being within it), Escape should close it.\n * \n * @example\n * ```tsx\n * const MySidebar = ({ isOpen, onClose }) => {\n * const containerRef = useRef<HTMLDivElement>(null);\n * \n * useDismissOnEscape({\n * containerRef,\n * onDismiss: onClose,\n * enabled: isOpen\n * });\n * \n * return <div ref={containerRef}>...</div>;\n * };\n * ```\n */\nexport function useDismissOnEscape<T extends HTMLElement = HTMLElement>({\n containerRef,\n onDismiss,\n enabled = true,\n preventDefault = true,\n stopPropagation = true\n}: UseDismissOnEscapeOptions<T>): void {\n useEffect(() => {\n if (!enabled || !onDismiss) return;\n \n const container = containerRef.current;\n if (!container) return;\n\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && container.contains(document.activeElement)) {\n preventDefault && e.preventDefault();\n stopPropagation && e.stopPropagation();\n onDismiss();\n }\n };\n\n document.addEventListener('keydown', handleEscape, { capture: true });\n return () => document.removeEventListener('keydown', handleEscape, { capture: true });\n }, [enabled, onDismiss, containerRef, preventDefault, stopPropagation]);\n}\n"],"names":["useEffect","useDismissOnEscape","containerRef","onDismiss","enabled","preventDefault","stopPropagation","container","current","handleEscape","e","key","contains","document","activeElement","addEventListener","capture","removeEventListener"],"mappings":"AAmDO,SAAA,aAAAA,SAAA;AAAA,SAASC,EAAwD;AAAA,EACtEC,cAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,SAAAA,IAAU;AAAA,EACVC,gBAAAA,IAAiB;AAAA,EACjBC,iBAAAA,IAAkB;AACU,GAAS;AACrCN,EAAAA,EAAU,MAAM;AACV,QAAA,CAACI,KAAW,CAACD,EAAW;AAE5B,UAAMI,IAAYL,EAAaM;AAC/B,QAAI,CAACD,EAAW;AAEVE,UAAAA,IAAeA,CAACC,MAAqB;AACzC,MAAIA,EAAEC,QAAQ,YAAYJ,EAAUK,SAASC,SAASC,aAAa,MACjET,KAAkBK,EAAEL,kBACpBC,KAAmBI,EAAEJ,mBACXH;IACZ;AAGOY,oBAAAA,iBAAiB,WAAWN,GAAc;AAAA,MAAEO,SAAS;AAAA,IAAA,CAAM,GAC7D,MAAMH,SAASI,oBAAoB,WAAWR,GAAc;AAAA,MAAEO,SAAS;AAAA,IAAA,CAAM;AAAA,EAAA,GACnF,CAACZ,GAASD,GAAWD,GAAcG,GAAgBC,CAAe,CAAC;AACxE;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index20.js","sources":["../src/components/HamburgerMenu/index.tsx"],"sourcesContent":["import React, { FC } from 'react';\n\nimport { Popover } from 'src/components/Popover';\nimport { Icon } from 'src/components/Icon';\nexport interface HamburgerMenuProps {\n className?: string;\n automationId?: string;\n popoverContentAutomationId?: string;\n menuContent?: (data: any) => React.ReactNode;\n popoverClassName?: string;\n}\n\nconst menuClasses = {\n base: 'se-design-hamburger-menu rounded-[6px] transition-all duration-300 p-[3px] flex items-center',\n active: 'bg-[var(--color-blue-450)]',\n hover: 'hover:bg-[var(--color-blue-450)]'\n};\n\nexport const HamburgerMenu: FC<HamburgerMenuProps> = ({\n className = '',\n automationId = '',\n popoverContentAutomationId = '',\n menuContent,\n popoverClassName = ''\n}) => {\n\n return (\n <Popover\n className={className}\n position='bottom-left'\n automationId={automationId}\n popoverContentAutomationId={popoverContentAutomationId}\n renderPopoverSrcElement={({ displayPopover }) => (\n <div className={`${menuClasses.base} ${displayPopover ? menuClasses.active : ''} ${menuClasses.hover}`}>\n <Icon name='hamburger' stroke={'var(--color-white)'} />\n </div>\n )}\n renderPopoverContents={(data) => (\n <div className={`min-w-[212px] ${popoverClassName}`}>\n {menuContent && <div className='menu-content'>{menuContent(data)}</div>}\n </div>\n )}\n />\n );\n};\n"],"names":["React__default","Popover","Icon","menuClasses","base","active","hover","HamburgerMenu","className","automationId","popoverContentAutomationId","menuContent","popoverClassName","React","createElement","position","renderPopoverSrcElement","displayPopover","name","stroke","renderPopoverContents","data"],"mappings":"AAYA,OAAAA,OAAA;AAAA,SAAA,WAAAC,SAAA;AAAA,SAAA,QAAAC,SAAA;AAAA,MAAMC,IAAc;AAAA,EAClBC,MAAM;AAAA,EACNC,QAAQ;AAAA,EACRC,OAAO;AACT,GAEaC,IAAwCA,CAAC;AAAA,EACpDC,WAAAA,IAAY;AAAA,EACZC,cAAAA,IAAe;AAAA,EACfC,4BAAAA,IAA6B;AAAA,EAC7BC,aAAAA;AAAAA,EACAC,kBAAAA,IAAmB;AACrB,MAGIC,gBAAAA,EAAAC,cAACb,GAAO;AAAA,EACNO,WAAAA;AAAAA,EACAO,UAAS;AAAA,EACTN,cAAAA;AAAAA,EACAC,4BAAAA;AAAAA,EACAM,yBAAyBA,CAAC;AAAA,IAAEC,gBAAAA;AAAAA,EAAAA,MAC1BJ,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAKN,WAAW,GAAGL,EAAYC,IAAI,IAAIa,IAAiBd,EAAYE,SAAS,EAAE,IAAIF,EAAYG,KAAK;AAAA,EAAA,GAClGO,gBAAAA,EAAAC,cAACZ,GAAI;AAAA,IAACgB,MAAK;AAAA,IAAYC,QAAQ;AAAA,EAAA,CAAuB,CACnD;AAAA,EAEPC,uBAAwBC,CAAAA,MACtBR,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAKN,WAAW,iBAAiBI,CAAgB;AAAA,EAAA,GAC9CD,KAAeE,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAKN,WAAU;AAAA,EAAA,GAAgBG,EAAYU,CAAI,CAAO,CACnE;AAAA,CAER;"}
1
+ {"version":3,"file":"index20.js","sources":["../src/components/HamburgerMenu/index.tsx"],"sourcesContent":["import React, { FC } from 'react';\n\nimport { Popover } from 'src/components/Popover';\nimport { Icon } from 'src/components/Icon';\nexport interface HamburgerMenuProps {\n className?: string;\n automationId?: string;\n popoverContentAutomationId?: string;\n menuContent?: (data: any) => React.ReactNode;\n popoverClassName?: string;\n}\n\nconst menuClasses = {\n base: 'se-design-hamburger-menu rounded-[6px] transition-all duration-300 p-[3px] flex items-center',\n active: 'bg-[var(--color-blue-450)]',\n hover: 'hover:bg-[var(--color-blue-450)]'\n};\n\nexport const HamburgerMenu: FC<HamburgerMenuProps> = ({\n className = '',\n automationId = '',\n popoverContentAutomationId = '',\n menuContent,\n popoverClassName = ''\n}) => {\n\n return (\n <Popover\n className={className}\n position='bottom-left'\n automationId={automationId}\n popoverContentAutomationId={popoverContentAutomationId}\n renderPopoverSrcElement={({ displayPopover }) => (\n <div className={`${menuClasses.base} ${displayPopover ? menuClasses.active : ''} ${menuClasses.hover}`}>\n <Icon name='hamburger' stroke={'var(--color-white)'} />\n </div>\n )}\n renderPopoverContents={(data) => (\n <div className={`min-w-[212px] ${popoverClassName}`}>\n {menuContent && <div className='menu-content'>{menuContent(data)}</div>}\n </div>\n )}\n />\n );\n};\n"],"names":["React__default","Popover","Icon","menuClasses","base","active","hover","HamburgerMenu","className","automationId","popoverContentAutomationId","menuContent","popoverClassName","React","createElement","position","renderPopoverSrcElement","displayPopover","name","stroke","renderPopoverContents","data"],"mappings":"AAYA,OAAAA,OAAA;AAAA,SAAA,WAAAC,SAAA;AAAA,SAAA,QAAAC,SAAA;AAAA,MAAMC,IAAc;AAAA,EAClBC,MAAM;AAAA,EACNC,QAAQ;AAAA,EACRC,OAAO;AACT,GAEaC,IAAwCA,CAAC;AAAA,EACpDC,WAAAA,IAAY;AAAA,EACZC,cAAAA,IAAe;AAAA,EACfC,4BAAAA,IAA6B;AAAA,EAC7BC,aAAAA;AAAAA,EACAC,kBAAAA,IAAmB;AACrB,MAGIC,gBAAAA,EAAAC,cAACb,GAAO;AAAA,EACNO,WAAAA;AAAAA,EACAO,UAAS;AAAA,EACTN,cAAAA;AAAAA,EACAC,4BAAAA;AAAAA,EACAM,yBAAyBA,CAAC;AAAA,IAAEC,gBAAAA;AAAAA,EAAAA,MAC1BH,gBAAAA,EAAAA,cAAA,OAAA;AAAA,IAAKN,WAAW,GAAGL,EAAYC,IAAI,IAAIa,IAAiBd,EAAYE,SAAS,EAAE,IAAIF,EAAYG,KAAK;AAAA,EAAA,GAClGQ,gBAAAA,EAAAA,cAACZ,GAAI;AAAA,IAACgB,MAAK;AAAA,IAAYC,QAAQ;AAAA,EAAA,CAAuB,CACnD;AAAA,EAEPC,uBAAwBC,CAAAA,MACtBP,gBAAAA,EAAAA,cAAA,OAAA;AAAA,IAAKN,WAAW,iBAAiBI,CAAgB;AAAA,EAC9CD,GAAAA,KAAeG,gBAAAA,EAAAA,cAAA,OAAA;AAAA,IAAKN,WAAU;AAAA,EAAA,GAAgBG,EAAYU,CAAI,CAAO,CACnE;AAAA,CAER;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index204.js","sources":["../src/utils/debounce.ts"],"sourcesContent":["export function debounce<T extends (...args: any[]) => void>(func: T, wait: number) {\n let timeout: ReturnType<typeof setTimeout> | null;\n const debounced = (...args: Parameters<T>) => {\n if (timeout) clearTimeout(timeout);\n timeout = setTimeout(() => {\n func(...args);\n }, wait);\n };\n debounced.cancel = () => {\n if (timeout) clearTimeout(timeout);\n timeout = null;\n };\n return debounced as T & { cancel: () => void };\n }"],"names":["debounce","func","wait","timeout","debounced","args","setTimeout","cancel"],"mappings":"AAAO,SAASA,EAA6CC,GAASC,GAAc;AAChF,MAAIC;AACJ,QAAMC,IAAYA,IAAIC,MAAwB;AAC5C,IAAIF,kBAAsBA,CAAO,GACjCA,IAAUG,WAAW,MAAM;AACzBL,MAAAA,EAAK,GAAGI,CAAI;AAAA,IACd,GAAGH,CAAI;AAAA,EACT;AACAE,SAAAA,EAAUG,SAAS,MAAM;AACvB,IAAIJ,kBAAsBA,CAAO,GACjCA,IAAU;AAAA,EACZ,GACOC;AACT;"}
1
+ {"version":3,"file":"index204.js","sources":["../src/utils/debounce.ts"],"sourcesContent":["export function debounce<T extends (...args: any[]) => void>(func: T, wait: number) {\n let timeout: ReturnType<typeof setTimeout> | null;\n const debounced = (...args: Parameters<T>) => {\n if (timeout) clearTimeout(timeout);\n timeout = setTimeout(() => {\n func(...args);\n }, wait);\n };\n debounced.cancel = () => {\n if (timeout) clearTimeout(timeout);\n timeout = null;\n };\n return debounced as T & { cancel: () => void };\n }"],"names":["debounce","func","wait","timeout","debounced","args","setTimeout","cancel"],"mappings":"AAAgBA,SAAAA,EAA6CC,GAASC,GAAc;AAC5EC,MAAAA;AACEC,QAAAA,IAAYA,IAAIC,MAAwB;AACxCF,IAAAA,kBAAsBA,CAAO,GACjCA,IAAUG,WAAW,MAAM;AACzBL,MAAAA,EAAK,GAAGI,CAAI;AAAA,OACXH,CAAI;AAAA,EAAA;AAETE,SAAAA,EAAUG,SAAS,MAAM;AACnBJ,IAAAA,kBAAsBA,CAAO,GACvBA,IAAA;AAAA,EAAA,GAELC;AACT;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index21.js","sources":["../src/components/TableLayout/index.tsx"],"sourcesContent":["import React, { FC, ReactNode, useRef } from 'react';\nimport { TableContentLoader } from 'components/TableContentLoader';\n\nexport interface TableLayoutProps {\n className?: string;\n automationId?: string;\n loading: boolean;\n headerData: any[];\n tableData: any[];\n headerColSpan?: number[];\n renderTableContentLoader?: (noOfColumns: number) => ReactNode;\n getTableHeaders: (props: { headerData: any[]; sortData: any; onSortUiUpdate: any; loading: boolean }) => ReactNode;\n getTableBody: (props: { tableData: any[]; onRowClick: any; loading: boolean }) => ReactNode;\n getTableFooter: (props: { tableData: any[]; loading: boolean }) => ReactNode;\n onSortUiUpdate: (newSortData: any) => void;\n onRowClick: (rowData: any) => void;\n tableId: string;\n /**\n * ID of element that describes the table (e.g., sort instructions for screen readers)\n */\n ariaDescribedBy?: string;\n}\n\nexport const TableLayout: FC<TableLayoutProps> = ({\n className = '',\n automationId = '',\n loading,\n headerColSpan = [],\n headerData,\n tableData,\n renderTableContentLoader,\n getTableHeaders,\n getTableBody,\n getTableFooter,\n onSortUiUpdate,\n onRowClick,\n tableId,\n ariaDescribedBy,\n ...props\n}) => {\n const tableRef = useRef<HTMLTableElement>(null);\n\n return (\n <div className={'se-design-table-layout-wrapper' + (className.length > 0 ? ` ${className}` : '') + (loading? ' table-data-loading' : '')} {...props}>\n <table\n className={'se-design-table w-full bg-[var(--color-white)] border-collapse table-fixed'}\n ref={tableRef}\n data-automation-id={automationId}\n id={tableId}\n aria-describedby={ariaDescribedBy}\n >\n <thead>\n <tr>{getTableHeaders({ headerData, sortData: {}, onSortUiUpdate, loading })}</tr>\n </thead>\n <tbody>\n {loading ? (\n <TableContentLoader noOfColumns={headerData?.length} colSpan={headerColSpan} />\n ) : (\n getTableBody({ tableData, onRowClick, loading })\n )}\n </tbody>\n </table>\n <div className=\"se-design-table-footer w-full bg-[var(--color-white)]\">\n {getTableFooter({ tableData, loading })}\n </div>\n </div>\n );\n};\n"],"names":["TableLayout","className","automationId","loading","headerColSpan","headerData","tableData","renderTableContentLoader","getTableHeaders","getTableBody","getTableFooter","onSortUiUpdate","onRowClick","tableId","ariaDescribedBy","props","tableRef","useRef","React","createElement","_extends","length","ref","id","sortData","TableContentLoader","noOfColumns","colSpan"],"mappings":";;;;;;;;;;;AAuBO,MAAMA,IAAoCA,CAAC;AAAA,EAChDC,WAAAA,IAAY;AAAA,EACZC,cAAAA,IAAe;AAAA,EACfC,SAAAA;AAAAA,EACAC,eAAAA,IAAgB,CAAA;AAAA,EAChBC,YAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,0BAAAA;AAAAA,EACAC,iBAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,gBAAAA;AAAAA,EACAC,gBAAAA;AAAAA,EACAC,YAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,iBAAAA;AAAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAMC,IAAWC,EAAyB,IAAI;AAE9C,SACEC,gBAAAA,EAAAC,cAAA,OAAAC,EAAA;AAAA,IAAKnB,WAAW,oCAAoCA,EAAUoB,SAAS,IAAI,IAAIpB,CAAS,KAAK,OAAOE,IAAS,wBAAwB;AAAA,EAAA,GAASY,CAAK,GACjJG,gBAAAA,EAAAC,cAAA,SAAA;AAAA,IACElB,WAAW;AAAA,IACXqB,KAAKN;AAAAA,IACL,sBAAoBd;AAAAA,IACpBqB,IAAIV;AAAAA,IACJ,oBAAkBC;AAAAA,EAAAA,qBAElBK,cAAA,SAAA,MACED,gBAAAA,EAAAC,cAAA,MAAA,MAAKX,EAAgB;AAAA,IAAEH,YAAAA;AAAAA,IAAYmB,UAAU,CAAA;AAAA,IAAIb,gBAAAA;AAAAA,IAAgBR,SAAAA;AAAAA,EAAAA,CAAS,CAAM,CAC3E,GACPe,gBAAAA,EAAAC,cAAA,SAAA,MACGhB,IACCe,gBAAAA,EAAAC,cAACM,GAAkB;AAAA,IAACC,aAAarB,GAAYgB;AAAAA,IAAQM,SAASvB;AAAAA,EAAAA,CAAgB,IAE9EK,EAAa;AAAA,IAAEH,WAAAA;AAAAA,IAAWM,YAAAA;AAAAA,IAAYT,SAAAA;AAAAA,EAAAA,CAAS,CAE5C,CACF,GACPe,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAKlB,WAAU;AAAA,EAAA,GACZS,EAAe;AAAA,IAAEJ,WAAAA;AAAAA,IAAWH,SAAAA;AAAAA,EAAAA,CAAS,CACnC,CACF;AAET;"}
1
+ {"version":3,"file":"index21.js","sources":["../src/components/TableLayout/index.tsx"],"sourcesContent":["import React, { FC, ReactNode, useRef } from 'react';\nimport { TableContentLoader } from 'components/TableContentLoader';\n\nexport interface TableLayoutProps {\n className?: string;\n automationId?: string;\n loading: boolean;\n headerData: any[];\n tableData: any[];\n headerColSpan?: number[];\n renderTableContentLoader?: (noOfColumns: number) => ReactNode;\n getTableHeaders: (props: { headerData: any[]; sortData: any; onSortUiUpdate: any; loading: boolean }) => ReactNode;\n getTableBody: (props: { tableData: any[]; onRowClick: any; loading: boolean }) => ReactNode;\n getTableFooter: (props: { tableData: any[]; loading: boolean }) => ReactNode;\n onSortUiUpdate: (newSortData: any) => void;\n onRowClick: (rowData: any) => void;\n tableId: string;\n /**\n * ID of element that describes the table (e.g., sort instructions for screen readers)\n */\n ariaDescribedBy?: string;\n}\n\nexport const TableLayout: FC<TableLayoutProps> = ({\n className = '',\n automationId = '',\n loading,\n headerColSpan = [],\n headerData,\n tableData,\n renderTableContentLoader,\n getTableHeaders,\n getTableBody,\n getTableFooter,\n onSortUiUpdate,\n onRowClick,\n tableId,\n ariaDescribedBy,\n ...props\n}) => {\n const tableRef = useRef<HTMLTableElement>(null);\n\n return (\n <div className={'se-design-table-layout-wrapper' + (className.length > 0 ? ` ${className}` : '') + (loading? ' table-data-loading' : '')} {...props}>\n <table\n className={'se-design-table w-full bg-[var(--color-white)] border-collapse table-fixed'}\n ref={tableRef}\n data-automation-id={automationId}\n id={tableId}\n aria-describedby={ariaDescribedBy}\n >\n <thead>\n <tr>{getTableHeaders({ headerData, sortData: {}, onSortUiUpdate, loading })}</tr>\n </thead>\n <tbody>\n {loading ? (\n <TableContentLoader noOfColumns={headerData?.length} colSpan={headerColSpan} />\n ) : (\n getTableBody({ tableData, onRowClick, loading })\n )}\n </tbody>\n </table>\n <div className=\"se-design-table-footer w-full bg-[var(--color-white)]\">\n {getTableFooter({ tableData, loading })}\n </div>\n </div>\n );\n};\n"],"names":["TableLayout","className","automationId","loading","headerColSpan","headerData","tableData","renderTableContentLoader","getTableHeaders","getTableBody","getTableFooter","onSortUiUpdate","onRowClick","tableId","ariaDescribedBy","props","tableRef","useRef","React","createElement","_extends","length","ref","id","sortData","TableContentLoader","noOfColumns","colSpan"],"mappings":";;;;;;;;;;;AAuBO,MAAMA,IAAoCA,CAAC;AAAA,EAChDC,WAAAA,IAAY;AAAA,EACZC,cAAAA,IAAe;AAAA,EACfC,SAAAA;AAAAA,EACAC,eAAAA,IAAgB,CAAE;AAAA,EAClBC,YAAAA;AAAAA,EACAC,WAAAA;AAAAA,EACAC,0BAAAA;AAAAA,EACAC,iBAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,gBAAAA;AAAAA,EACAC,gBAAAA;AAAAA,EACAC,YAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,iBAAAA;AAAAA,EACA,GAAGC;AACL,MAAM;AACEC,QAAAA,IAAWC,EAAyB,IAAI;AAG5CC,SAAAA,gBAAAA,EAAAC,cAAA,OAAAC,EAAA;AAAA,IAAKnB,WAAW,oCAAoCA,EAAUoB,SAAS,IAAI,IAAIpB,CAAS,KAAK,OAAOE,IAAS,wBAAwB;AAAA,EAASY,GAAAA,CAAK,GACjJG,gBAAAA,EAAAC,cAAA,SAAA;AAAA,IACElB,WAAW;AAAA,IACXqB,KAAKN;AAAAA,IACL,sBAAoBd;AAAAA,IACpBqB,IAAIV;AAAAA,IACJ,oBAAkBC;AAAAA,EAAAA,qBAElBK,cAAA,SAAA,MACEA,gBAAAA,EAAAA,cAAKX,MAAAA,MAAAA,EAAgB;AAAA,IAAEH,YAAAA;AAAAA,IAAYmB,UAAU,CAAC;AAAA,IAAGb,gBAAAA;AAAAA,IAAgBR,SAAAA;AAAAA,EAAAA,CAAS,CAAM,CAC3E,GACPe,gBAAAA,EAAAC,cACGhB,SAAAA,MAAAA,IACCgB,gBAAAA,EAAAA,cAACM,GAAkB;AAAA,IAACC,aAAarB,GAAYgB;AAAAA,IAAQM,SAASvB;AAAAA,EAAgB,CAAA,IAE9EK,EAAa;AAAA,IAAEH,WAAAA;AAAAA,IAAWM,YAAAA;AAAAA,IAAYT,SAAAA;AAAAA,EAAS,CAAA,CAE5C,CACF,GACPe,gBAAAA,EAAAC,cAAA,OAAA;AAAA,IAAKlB,WAAU;AAAA,KACZS,EAAe;AAAA,IAAEJ,WAAAA;AAAAA,IAAWH,SAAAA;AAAAA,EAAS,CAAA,CACnC,CACF;AAET;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index215.js","sources":["../src/components/NavigationBar/TabButton.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { Button } from '../Button';\n\nexport interface TabButtonProps {\n id: string;\n label: string;\n isSelected: boolean;\n isDisabled?: boolean;\n panelId: string;\n tabIndex: number;\n className?: string;\n automationId?: string;\n onClick: (e: React.MouseEvent<HTMLButtonElement>) => void;\n onFocus: () => void;\n onKeyDown: (e: React.KeyboardEvent<HTMLButtonElement>) => void;\n}\n\n/**\n * Internal TabButton component for NavigationBar.\n * Uses Button (unstyled) internally for consistent activation handling.\n * Supports forwardRef for focus management (roving tabindex).\n */\nexport const TabButton = forwardRef<HTMLButtonElement, TabButtonProps>(\n (\n {\n id,\n label,\n isSelected,\n isDisabled = false,\n panelId,\n tabIndex,\n className = '',\n automationId,\n onClick,\n onFocus,\n onKeyDown\n },\n ref\n ) => {\n return (\n <Button\n ref={ref}\n type=\"unstyled\"\n label={label}\n disabled={isDisabled}\n onClick={onClick}\n className={className}\n automationId={automationId}\n role=\"tab\"\n id={id}\n aria-selected={isSelected}\n aria-controls={panelId}\n tabIndex={tabIndex}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n />\n );\n }\n);\n\nTabButton.displayName = 'TabButton';\n"],"names":["React__default","forwardRef","Button","TabButton","id","label","isSelected","isDisabled","panelId","tabIndex","className","automationId","onClick","onFocus","onKeyDown","ref","React","createElement","type","disabled","role","displayName"],"mappings":"AAsBO,OAAAA,KAAA,cAAAC,SAAA;AAAA,SAAA,UAAAC,SAAA;AAAA,MAAMC,sBACX,CACE;AAAA,EACEC,IAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACAC,YAAAA;AAAAA,EACAC,YAAAA,IAAa;AAAA,EACbC,SAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAC,WAAAA,IAAY;AAAA,EACZC,cAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,WAAAA;AACF,GACAC,MAGEC,gBAAAA,EAAAC,cAACf,GAAM;AAAA,EACLa,KAAAA;AAAAA,EACAG,MAAK;AAAA,EACLb,OAAAA;AAAAA,EACAc,UAAUZ;AAAAA,EACVK,SAAAA;AAAAA,EACAF,WAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAS,MAAK;AAAA,EACLhB,IAAAA;AAAAA,EACA,iBAAeE;AAAAA,EACf,iBAAeE;AAAAA,EACfC,UAAAA;AAAAA,EACAI,SAAAA;AAAAA,EACAC,WAAAA;AAAAA,CACD,CAGP;AAEAX,EAAUkB,cAAc;"}
1
+ {"version":3,"file":"index215.js","sources":["../src/components/NavigationBar/TabButton.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport { Button } from '../Button';\n\nexport interface TabButtonProps {\n id: string;\n label: string;\n isSelected: boolean;\n isDisabled?: boolean;\n panelId: string;\n tabIndex: number;\n className?: string;\n automationId?: string;\n onClick: (e: React.MouseEvent<HTMLButtonElement>) => void;\n onFocus: () => void;\n onKeyDown: (e: React.KeyboardEvent<HTMLButtonElement>) => void;\n}\n\n/**\n * Internal TabButton component for NavigationBar.\n * Uses Button (unstyled) internally for consistent activation handling.\n * Supports forwardRef for focus management (roving tabindex).\n */\nexport const TabButton = forwardRef<HTMLButtonElement, TabButtonProps>(\n (\n {\n id,\n label,\n isSelected,\n isDisabled = false,\n panelId,\n tabIndex,\n className = '',\n automationId,\n onClick,\n onFocus,\n onKeyDown\n },\n ref\n ) => {\n return (\n <Button\n ref={ref}\n type=\"unstyled\"\n label={label}\n disabled={isDisabled}\n onClick={onClick}\n className={className}\n automationId={automationId}\n role=\"tab\"\n id={id}\n aria-selected={isSelected}\n aria-controls={panelId}\n tabIndex={tabIndex}\n onFocus={onFocus}\n onKeyDown={onKeyDown}\n />\n );\n }\n);\n\nTabButton.displayName = 'TabButton';\n"],"names":["TabButton","id","label","isSelected","isDisabled","panelId","tabIndex","className","automationId","onClick","onFocus","onKeyDown","ref","React","createElement","Button","type","disabled","role","displayName"],"mappings":"AAsBaA,OAAAA,KAAAA,cAAAA,SAAAA;AAAAA,SAAAA,UAAAA,SAAAA;AAAAA,MAAAA,sBACX,CACE;AAAA,EACEC,IAAAA;AAAAA,EACAC,OAAAA;AAAAA,EACAC,YAAAA;AAAAA,EACAC,YAAAA,IAAa;AAAA,EACbC,SAAAA;AAAAA,EACAC,UAAAA;AAAAA,EACAC,WAAAA,IAAY;AAAA,EACZC,cAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,SAAAA;AAAAA,EACAC,WAAAA;AACF,GACAC,MAGEC,gBAAAA,EAAAC,cAACC,GAAM;AAAA,EACLH,KAAAA;AAAAA,EACAI,MAAK;AAAA,EACLd,OAAAA;AAAAA,EACAe,UAAUb;AAAAA,EACVK,SAAAA;AAAAA,EACAF,WAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAU,MAAK;AAAA,EACLjB,IAAAA;AAAAA,EACA,iBAAeE;AAAAA,EACf,iBAAeE;AAAAA,EACfC,UAAAA;AAAAA,EACAI,SAAAA;AAAAA,EACAC,WAAAA;AAAAA,CACD,CAGP;AAEAX,EAAUmB,cAAc;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index216.js","sources":["../src/components/NavigationBar/useTabsA11y.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { useRovingFocus } from '../../utils/a11y';\n\nconst getTabId = (itemId: string, idBase: string) => {\n const suffix = idBase ? `-${idBase}` : '';\n return `tab${suffix}-${itemId}`;\n};\n\nconst getPanelId = (itemId: string, idBase: string) => {\n const suffix = idBase ? `-${idBase}` : '';\n return `panel${suffix}-${itemId}`;\n};\n\ninterface UseTabsA11yProps {\n itemIds: string[];\n orientation?: 'horizontal' | 'vertical';\n activeNavigationItem: string;\n idBase?: string;\n}\n\ninterface TabA11yProps {\n ref: (el: HTMLElement | null) => void;\n tabIndex: number;\n id: string;\n 'aria-controls': string;\n 'aria-selected': boolean;\n role: 'tab';\n}\n\n/**\n * Hook for managing Tabs (NavigationBar) focus and ARIA props.\n * Handles roving tabindex pattern and generates tab-specific ARIA attributes.\n * \n * @example\n * const itemIds = useMemo(() => navigationItems.map(item => item.id), [navigationItems]);\n * const { getTabProps, setFocusedTabId, handleKeyDown } = useTabsA11y({\n * itemIds,\n * activeNavigationItem: 'tab-1',\n * orientation: 'horizontal',\n * idBase: 'settings'\n * });\n */\nexport function useTabsA11y({\n itemIds,\n orientation = 'horizontal',\n activeNavigationItem,\n idBase = ''\n}: UseTabsA11yProps) {\n const {\n setFocusedId: setFocusedTabId,\n handleKeyDown,\n getRovingItemProps\n } = useRovingFocus({\n itemIds,\n defaultFocusedId: activeNavigationItem,\n orientation,\n loop: true\n });\n\n /**\n * Get all props needed for a tab button.\n * Combines roving focus props (ref, tabIndex) with tab-specific ARIA attributes.\n */\n const getTabProps = useCallback((itemId: string): TabA11yProps => {\n const { ref, tabIndex } = getRovingItemProps(itemId);\n const isSelected = activeNavigationItem === itemId;\n\n return {\n ref,\n tabIndex,\n id: getTabId(itemId, idBase),\n 'aria-controls': getPanelId(itemId, idBase),\n 'aria-selected': isSelected,\n role: 'tab'\n };\n }, [activeNavigationItem, getRovingItemProps, idBase]);\n\n return {\n getTabProps,\n setFocusedTabId,\n handleKeyDown,\n getPanelId: (itemId: string) => getPanelId(itemId, idBase),\n getTabId: (itemId: string) => getTabId(itemId, idBase)\n };\n}\n\n"],"names":["useCallback","useRovingFocus","getTabId","itemId","idBase","getPanelId","useTabsA11y","itemIds","orientation","activeNavigationItem","setFocusedId","setFocusedTabId","handleKeyDown","getRovingItemProps","defaultFocusedId","loop","getTabProps","ref","tabIndex","isSelected","id","role"],"mappings":"AAGA,SAAA,eAAAA,SAAA;AAAA,SAAA,kBAAAC,SAAA;AAAA,MAAMC,IAAWA,CAACC,GAAgBC,MAEzB,MADQA,IAAS,IAAIA,CAAM,KAAK,EACpB,IAAID,CAAM,IAGzBE,IAAaA,CAACF,GAAgBC,MAE3B,QADQA,IAAS,IAAIA,CAAM,KAAK,EAClB,IAAID,CAAM;AAgC1B,SAASG,EAAY;AAAA,EAC1BC,SAAAA;AAAAA,EACAC,aAAAA,IAAc;AAAA,EACdC,sBAAAA;AAAAA,EACAL,QAAAA,IAAS;AACO,GAAG;AACnB,QAAM;AAAA,IACJM,cAAcC;AAAAA,IACdC,eAAAA;AAAAA,IACAC,oBAAAA;AAAAA,EAAAA,IACEZ,EAAe;AAAA,IACjBM,SAAAA;AAAAA,IACAO,kBAAkBL;AAAAA,IAClBD,aAAAA;AAAAA,IACAO,MAAM;AAAA,EAAA,CACP;AAoBD,SAAO;AAAA,IACLC,aAfkBhB,EAAY,CAACG,MAAiC;AAChE,YAAM;AAAA,QAAEc,KAAAA;AAAAA,QAAKC,UAAAA;AAAAA,MAAAA,IAAaL,EAAmBV,CAAM,GAC7CgB,IAAaV,MAAyBN;AAE5C,aAAO;AAAA,QACLc,KAAAA;AAAAA,QACAC,UAAAA;AAAAA,QACAE,IAAIlB,EAASC,GAAQC,CAAM;AAAA,QAC3B,iBAAiBC,EAAWF,GAAQC,CAAM;AAAA,QAC1C,iBAAiBe;AAAAA,QACjBE,MAAM;AAAA,MAAA;AAAA,IAEV,GAAG,CAACZ,GAAsBI,GAAoBT,CAAM,CAAC;AAAA,IAInDO,iBAAAA;AAAAA,IACAC,eAAAA;AAAAA,IACAP,YAAYA,CAACF,MAAmBE,EAAWF,GAAQC,CAAM;AAAA,IACzDF,UAAUA,CAACC,MAAmBD,EAASC,GAAQC,CAAM;AAAA,EAAA;AAEzD;"}
1
+ {"version":3,"file":"index216.js","sources":["../src/components/NavigationBar/useTabsA11y.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { useRovingFocus } from '../../utils/a11y';\n\nconst getTabId = (itemId: string, idBase: string) => {\n const suffix = idBase ? `-${idBase}` : '';\n return `tab${suffix}-${itemId}`;\n};\n\nconst getPanelId = (itemId: string, idBase: string) => {\n const suffix = idBase ? `-${idBase}` : '';\n return `panel${suffix}-${itemId}`;\n};\n\ninterface UseTabsA11yProps {\n itemIds: string[];\n orientation?: 'horizontal' | 'vertical';\n activeNavigationItem: string;\n idBase?: string;\n}\n\ninterface TabA11yProps {\n ref: (el: HTMLElement | null) => void;\n tabIndex: number;\n id: string;\n 'aria-controls': string;\n 'aria-selected': boolean;\n role: 'tab';\n}\n\n/**\n * Hook for managing Tabs (NavigationBar) focus and ARIA props.\n * Handles roving tabindex pattern and generates tab-specific ARIA attributes.\n * \n * @example\n * const itemIds = useMemo(() => navigationItems.map(item => item.id), [navigationItems]);\n * const { getTabProps, setFocusedTabId, handleKeyDown } = useTabsA11y({\n * itemIds,\n * activeNavigationItem: 'tab-1',\n * orientation: 'horizontal',\n * idBase: 'settings'\n * });\n */\nexport function useTabsA11y({\n itemIds,\n orientation = 'horizontal',\n activeNavigationItem,\n idBase = ''\n}: UseTabsA11yProps) {\n const {\n setFocusedId: setFocusedTabId,\n handleKeyDown,\n getRovingItemProps\n } = useRovingFocus({\n itemIds,\n defaultFocusedId: activeNavigationItem,\n orientation,\n loop: true\n });\n\n /**\n * Get all props needed for a tab button.\n * Combines roving focus props (ref, tabIndex) with tab-specific ARIA attributes.\n */\n const getTabProps = useCallback((itemId: string): TabA11yProps => {\n const { ref, tabIndex } = getRovingItemProps(itemId);\n const isSelected = activeNavigationItem === itemId;\n\n return {\n ref,\n tabIndex,\n id: getTabId(itemId, idBase),\n 'aria-controls': getPanelId(itemId, idBase),\n 'aria-selected': isSelected,\n role: 'tab'\n };\n }, [activeNavigationItem, getRovingItemProps, idBase]);\n\n return {\n getTabProps,\n setFocusedTabId,\n handleKeyDown,\n getPanelId: (itemId: string) => getPanelId(itemId, idBase),\n getTabId: (itemId: string) => getTabId(itemId, idBase)\n };\n}\n\n"],"names":["useCallback","useRovingFocus","getTabId","itemId","idBase","getPanelId","useTabsA11y","itemIds","orientation","activeNavigationItem","setFocusedId","setFocusedTabId","handleKeyDown","getRovingItemProps","defaultFocusedId","loop","getTabProps","ref","tabIndex","isSelected","id","role"],"mappings":"AAGA,SAAA,eAAAA,SAAA;AAAA,SAAA,kBAAAC,SAAA;AAAA,MAAMC,IAAWA,CAACC,GAAgBC,MAEzB,MADQA,IAAS,IAAIA,CAAM,KAAK,EACpB,IAAID,CAAM,IAGzBE,IAAaA,CAACF,GAAgBC,MAE3B,QADQA,IAAS,IAAIA,CAAM,KAAK,EAClB,IAAID,CAAM;AAgC1B,SAASG,EAAY;AAAA,EAC1BC,SAAAA;AAAAA,EACAC,aAAAA,IAAc;AAAA,EACdC,sBAAAA;AAAAA,EACAL,QAAAA,IAAS;AACO,GAAG;AACb,QAAA;AAAA,IACJM,cAAcC;AAAAA,IACdC,eAAAA;AAAAA,IACAC,oBAAAA;AAAAA,MACEZ,EAAe;AAAA,IACjBM,SAAAA;AAAAA,IACAO,kBAAkBL;AAAAA,IAClBD,aAAAA;AAAAA,IACAO,MAAM;AAAA,EAAA,CACP;AAoBM,SAAA;AAAA,IACLC,aAfkBhB,EAAY,CAACG,MAAiC;AAC1D,YAAA;AAAA,QAAEc,KAAAA;AAAAA,QAAKC,UAAAA;AAAAA,MAAAA,IAAaL,EAAmBV,CAAM,GAC7CgB,IAAaV,MAAyBN;AAErC,aAAA;AAAA,QACLc,KAAAA;AAAAA,QACAC,UAAAA;AAAAA,QACAE,IAAIlB,EAASC,GAAQC,CAAM;AAAA,QAC3B,iBAAiBC,EAAWF,GAAQC,CAAM;AAAA,QAC1C,iBAAiBe;AAAAA,QACjBE,MAAM;AAAA,MAAA;AAAA,IAEP,GAAA,CAACZ,GAAsBI,GAAoBT,CAAM,CAAC;AAAA,IAInDO,iBAAAA;AAAAA,IACAC,eAAAA;AAAAA,IACAP,YAAYA,CAACF,MAAmBE,EAAWF,GAAQC,CAAM;AAAA,IACzDF,UAAUA,CAACC,MAAmBD,EAASC,GAAQC,CAAM;AAAA,EAAA;AAEzD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index22.js","sources":["../src/components/Checkbox/index.tsx"],"sourcesContent":["import React, { FC, useState, useEffect } from 'react';\nimport { useStableId } from '../../utils/useStableId';\nimport { getA11yNameAttributes } from '../../utils/a11y';\nimport { mergeIds } from '../../utils/mergeIds';\nimport './style.scss';\n\nexport interface CheckboxProps {\n className?: string;\n automationId?: string;\n defaultChecked?: boolean;\n /**\n * Controlled checked value. When provided, the checkbox is controlled by the parent\n * and its visual state always reflects this prop. Use `onChange` to update the parent state.\n */\n checked?: boolean;\n onChange?: (checked: boolean, e: React.ChangeEvent<HTMLInputElement>) => void;\n disabled?: boolean;\n checkMarkType?: 'tick' | 'minus-checkbox' | '';\n label?: string;\n disabledLabel?: string;\n containerAutomationId?: string;\n /**\n * Explicit accessible name for the checkbox.\n * Used as fallback when ariaLabelledBy is not provided and no internal label exists.\n */\n ariaLabel?: string;\n /**\n * ID(s) of element(s) that label this checkbox (for screen reader association).\n * Typically used when checkbox is part of a larger labelled context.\n */\n ariaLabelledBy?: string;\n /**\n * ID(s) of element(s) that describe this checkbox (provides additional context).\n * Often used for help text or instructions.\n */\n ariaDescribedBy?: string;\n}\n\nexport const Checkbox: FC<CheckboxProps> = ({\n className = '',\n automationId = '',\n defaultChecked = false,\n checked,\n disabled = false,\n onChange,\n checkMarkType = '',\n label = '',\n disabledLabel = '',\n containerAutomationId = '',\n ariaLabel,\n ariaLabelledBy,\n ariaDescribedBy\n}) => {\n const isControlled = checked !== undefined;\n const [isChecked, setIsChecked] = useState(isControlled ? checked : defaultChecked);\n\n useEffect(() => {\n if (isControlled) {\n setIsChecked(checked!);\n } else {\n setIsChecked(defaultChecked);\n }\n }, [checked, defaultChecked]);\n\n const handleClick = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (disabled) return;\n if (!isControlled) {\n setIsChecked((prev) => !prev);\n }\n onChange?.(isControlled ? !checked : !isChecked, e);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLLabelElement | HTMLSpanElement>) => {\n if (disabled) return;\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n const newChecked = isControlled ? !checked : !isChecked;\n if (!isControlled) {\n setIsChecked(newChecked);\n }\n\n // Create a proper synthetic event for the onChange callback\n const inputElement = e.currentTarget.closest('label')?.querySelector('input');\n if (inputElement) {\n const syntheticEvent = {\n target: inputElement,\n currentTarget: inputElement,\n } as React.ChangeEvent<HTMLInputElement>;\n onChange?.(newChecked, syntheticEvent);\n }\n }\n };\n\n const getCheckBoxClassName = () => {\n // Handle disabled states with proper checked status\n if (disabled) {\n if (isChecked && checkMarkType === 'tick') return 'disabled-tick';\n if (isChecked && checkMarkType === 'minus-checkbox') return 'disabled-minus-checkbox';\n if (isChecked && !checkMarkType) return 'disabled-tick'; // Default to tick for checked disabled\n return 'disabled-default'; // Unchecked disabled\n }\n\n // Handle enabled states\n if (checkMarkType === 'minus-checkbox' && isChecked) return 'minus-checkbox';\n return isChecked ? 'checked' : 'unchecked';\n };\n\n const getLabelClassName = () => {\n return disabled ? 'checkbox-label-disabled' : 'checkbox-label';\n };\n\n const getLabelText = () => {\n if (disabled && disabledLabel) {\n return disabledLabel;\n }\n return label;\n };\n \n // Generate stable IDs (persists across renders)\n const inputId = useStableId(undefined, 'checkbox-input');\n const labelId = label ? `${inputId}-label` : undefined;\n\n const a11yNameAttributes = getA11yNameAttributes({\n ariaLabelledBy: mergeIds(labelId, ariaLabelledBy),\n ariaLabel,\n ariaDescribedBy\n });\n\n // Determine aria-checked value: \"mixed\" for indeterminate, \"true\" for checked, \"false\" for unchecked\n const getAriaChecked = () => {\n if (checkMarkType === 'minus-checkbox' && isChecked) {\n return 'mixed'; // Indeterminate/half-checked state\n }\n return isChecked ? 'true' : 'false';\n };\n\n return (\n <div className=\"se-design-checkbox-ctn\">\n <label\n role=\"checkbox\"\n htmlFor={inputId}\n className={`se-design-checkbox ${className} ${getCheckBoxClassName()}`}\n data-automation-id={containerAutomationId || 'checkbox-container'}\n tabIndex={disabled ? -1 : 0}\n aria-checked={getAriaChecked()}\n aria-disabled={disabled ? 'true' : 'false'}\n {...a11yNameAttributes}\n onKeyDown={handleKeyDown}\n >\n <input\n id={inputId}\n type=\"checkbox\"\n checked={isChecked}\n onChange={handleClick}\n disabled={disabled}\n aria-hidden=\"true\"\n />\n <span className=\"checkbox-item\" data-automation-id={automationId}></span>\n {getLabelText()?.length > 0 && (\n <span id={labelId} className={getLabelClassName()} data-automation-id=\"checkbox-label\">\n {getLabelText()}\n </span>\n )}\n </label>\n </div>\n );\n};\n"],"names":["Checkbox","className","automationId","defaultChecked","checked","disabled","onChange","checkMarkType","label","disabledLabel","containerAutomationId","ariaLabel","ariaLabelledBy","ariaDescribedBy","isControlled","undefined","isChecked","setIsChecked","useState","useEffect","handleClick","e","prev","handleKeyDown","key","preventDefault","stopPropagation","newChecked","inputElement","currentTarget","closest","querySelector","target","getCheckBoxClassName","getLabelClassName","getLabelText","inputId","useStableId","labelId","a11yNameAttributes","getA11yNameAttributes","mergeIds","getAriaChecked","React","createElement","_extends","role","htmlFor","tabIndex","onKeyDown","id","type","length"],"mappings":"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"}
1
+ {"version":3,"file":"index22.js","sources":["../src/components/Checkbox/index.tsx"],"sourcesContent":["import React, { FC, useState, useEffect } from 'react';\nimport { useStableId } from '../../utils/useStableId';\nimport { getA11yNameAttributes } from '../../utils/a11y';\nimport { mergeIds } from '../../utils/mergeIds';\nimport './style.scss';\n\nexport interface CheckboxProps {\n className?: string;\n automationId?: string;\n defaultChecked?: boolean;\n /**\n * Controlled checked value. When provided, the checkbox is controlled by the parent\n * and its visual state always reflects this prop. Use `onChange` to update the parent state.\n */\n checked?: boolean;\n onChange?: (checked: boolean, e: React.ChangeEvent<HTMLInputElement>) => void;\n disabled?: boolean;\n checkMarkType?: 'tick' | 'minus-checkbox' | '';\n label?: string;\n disabledLabel?: string;\n containerAutomationId?: string;\n /**\n * Explicit accessible name for the checkbox.\n * Used as fallback when ariaLabelledBy is not provided and no internal label exists.\n */\n ariaLabel?: string;\n /**\n * ID(s) of element(s) that label this checkbox (for screen reader association).\n * Typically used when checkbox is part of a larger labelled context.\n */\n ariaLabelledBy?: string;\n /**\n * ID(s) of element(s) that describe this checkbox (provides additional context).\n * Often used for help text or instructions.\n */\n ariaDescribedBy?: string;\n}\n\nexport const Checkbox: FC<CheckboxProps> = ({\n className = '',\n automationId = '',\n defaultChecked = false,\n checked,\n disabled = false,\n onChange,\n checkMarkType = '',\n label = '',\n disabledLabel = '',\n containerAutomationId = '',\n ariaLabel,\n ariaLabelledBy,\n ariaDescribedBy\n}) => {\n const isControlled = checked !== undefined;\n const [isChecked, setIsChecked] = useState(isControlled ? checked : defaultChecked);\n\n useEffect(() => {\n if (isControlled) {\n setIsChecked(checked!);\n } else {\n setIsChecked(defaultChecked);\n }\n }, [checked, defaultChecked]);\n\n const handleClick = (e: React.ChangeEvent<HTMLInputElement>) => {\n if (disabled) return;\n if (!isControlled) {\n setIsChecked((prev) => !prev);\n }\n onChange?.(isControlled ? !checked : !isChecked, e);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLLabelElement | HTMLSpanElement>) => {\n if (disabled) return;\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n e.stopPropagation();\n const newChecked = isControlled ? !checked : !isChecked;\n if (!isControlled) {\n setIsChecked(newChecked);\n }\n\n // Create a proper synthetic event for the onChange callback\n const inputElement = e.currentTarget.closest('label')?.querySelector('input');\n if (inputElement) {\n const syntheticEvent = {\n target: inputElement,\n currentTarget: inputElement,\n } as React.ChangeEvent<HTMLInputElement>;\n onChange?.(newChecked, syntheticEvent);\n }\n }\n };\n\n const getCheckBoxClassName = () => {\n // Handle disabled states with proper checked status\n if (disabled) {\n if (isChecked && checkMarkType === 'tick') return 'disabled-tick';\n if (isChecked && checkMarkType === 'minus-checkbox') return 'disabled-minus-checkbox';\n if (isChecked && !checkMarkType) return 'disabled-tick'; // Default to tick for checked disabled\n return 'disabled-default'; // Unchecked disabled\n }\n\n // Handle enabled states\n if (checkMarkType === 'minus-checkbox' && isChecked) return 'minus-checkbox';\n return isChecked ? 'checked' : 'unchecked';\n };\n\n const getLabelClassName = () => {\n return disabled ? 'checkbox-label-disabled' : 'checkbox-label';\n };\n\n const getLabelText = () => {\n if (disabled && disabledLabel) {\n return disabledLabel;\n }\n return label;\n };\n \n // Generate stable IDs (persists across renders)\n const inputId = useStableId(undefined, 'checkbox-input');\n const labelId = label ? `${inputId}-label` : undefined;\n\n const a11yNameAttributes = getA11yNameAttributes({\n ariaLabelledBy: mergeIds(labelId, ariaLabelledBy),\n ariaLabel,\n ariaDescribedBy\n });\n\n // Determine aria-checked value: \"mixed\" for indeterminate, \"true\" for checked, \"false\" for unchecked\n const getAriaChecked = () => {\n if (checkMarkType === 'minus-checkbox' && isChecked) {\n return 'mixed'; // Indeterminate/half-checked state\n }\n return isChecked ? 'true' : 'false';\n };\n\n return (\n <div className=\"se-design-checkbox-ctn\">\n <label\n role=\"checkbox\"\n htmlFor={inputId}\n className={`se-design-checkbox ${className} ${getCheckBoxClassName()}`}\n data-automation-id={containerAutomationId || 'checkbox-container'}\n tabIndex={disabled ? -1 : 0}\n aria-checked={getAriaChecked()}\n aria-disabled={disabled ? 'true' : 'false'}\n {...a11yNameAttributes}\n onKeyDown={handleKeyDown}\n >\n <input\n id={inputId}\n type=\"checkbox\"\n checked={isChecked}\n onChange={handleClick}\n disabled={disabled}\n aria-hidden=\"true\"\n />\n <span className=\"checkbox-item\" data-automation-id={automationId}></span>\n {getLabelText()?.length > 0 && (\n <span id={labelId} className={getLabelClassName()} data-automation-id=\"checkbox-label\">\n {getLabelText()}\n </span>\n )}\n </label>\n </div>\n );\n};\n"],"names":["Checkbox","className","automationId","defaultChecked","checked","disabled","onChange","checkMarkType","label","disabledLabel","containerAutomationId","ariaLabel","ariaLabelledBy","ariaDescribedBy","isControlled","undefined","isChecked","setIsChecked","useState","useEffect","handleClick","e","prev","handleKeyDown","key","preventDefault","stopPropagation","newChecked","inputElement","currentTarget","closest","querySelector","target","getCheckBoxClassName","getLabelClassName","getLabelText","inputId","useStableId","labelId","a11yNameAttributes","getA11yNameAttributes","mergeIds","getAriaChecked","React","createElement","_extends","role","htmlFor","tabIndex","onKeyDown","id","type","length"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index227.js","sources":["../src/utils/a11y/useFocusTrap.ts"],"sourcesContent":["import { useLayoutEffect, useRef } from 'react';\nimport { getFocusableElements, getFirstFocusableElement } from './focusableElements';\n\nexport interface UseFocusTrapOptions<T extends HTMLElement = HTMLElement> {\n /**\n * Whether the focus trap is active.\n */\n enabled: boolean;\n /**\n * Container element ref to trap focus within.\n */\n containerRef: React.RefObject<T | null>;\n /**\n * Whether to restore focus to the element that had focus before trap activated.\n * Default: true\n */\n restoreFocus?: boolean;\n /**\n * Initial focus target when trap activates.\n * - 'first': Focus first focusable element (default)\n * - 'container': Focus the container itself\n * - CSS selector: Focus element matching selector\n * - HTMLElement: Focus this specific element\n */\n initialFocus?: 'first' | 'container' | string | HTMLElement;\n}\n\nexport interface UseFocusTrapReturn {\n /**\n * Ref to the element that had focus before trap activated.\n * Useful for manual focus restoration if needed.\n */\n triggerRef: React.MutableRefObject<HTMLElement | null>;\n}\n\n/**\n * Hook to trap focus within a container (for modals, dialogs, drawers).\n * \n * Implements WCAG 2.1 focus trap pattern:\n * - Moves focus into container on activation\n * - Wraps Tab/Shift+Tab navigation within container\n * - Restores focus to trigger element on deactivation\n * - Safety net: catches focus escaping via other means\n * \n * Note: For Escape key handling, use `useDismissOnEscape` hook separately.\n * This keeps focus trap (accessibility) separate from Escape handling (UX).\n * \n * @example\n * ```tsx\n * const MyModal = ({ isOpen, onClose }) => {\n * const containerRef = useRef<HTMLDivElement>(null);\n * \n * // Escape handling (UX)\n * useDismissOnEscape({\n * containerRef,\n * onDismiss: onClose,\n * enabled: isOpen\n * });\n * \n * // Focus trap (accessibility)\n * const { triggerRef } = useFocusTrap({\n * enabled: isOpen,\n * containerRef,\n * restoreFocus: true\n * });\n * \n * return (\n * <div ref={containerRef}>\n * <button>First</button>\n * <button>Second</button>\n * </div>\n * );\n * };\n * ```\n */\n/**\n * Resolve the initial focus target based on the initialFocus option.\n */\nfunction resolveInitialFocusTarget(\n container: HTMLElement,\n initialFocus: 'first' | 'container' | string | HTMLElement\n): HTMLElement | null {\n if (initialFocus === 'first') {\n return getFirstFocusableElement({ container }) || container;\n }\n if (initialFocus === 'container') {\n return container;\n }\n if (typeof initialFocus === 'string') {\n return container.querySelector<HTMLElement>(initialFocus);\n }\n if (initialFocus instanceof HTMLElement) {\n return initialFocus;\n }\n return null;\n}\n\nexport function useFocusTrap<T extends HTMLElement = HTMLElement>({\n enabled,\n containerRef,\n restoreFocus = true,\n initialFocus = 'first'\n}: UseFocusTrapOptions<T>): UseFocusTrapReturn {\n const triggerRef = useRef<HTMLElement | null>(null);\n const lastFocusedInContainer = useRef<HTMLElement | null>(null);\n\n // Focus management: save trigger, move focus into container on activate, restore on deactivate\n useLayoutEffect(() => {\n if (!enabled) {\n // Restore focus to trigger when trap deactivates\n if (restoreFocus && triggerRef.current) {\n requestAnimationFrame(() => {\n triggerRef.current?.focus();\n triggerRef.current = null;\n });\n }\n return;\n }\n\n const container = containerRef.current;\n if (!container) return;\n\n // Save the element that had focus before trap activated\n triggerRef.current = document.activeElement as HTMLElement;\n\n // Focus initial target\n requestAnimationFrame(() => {\n resolveInitialFocusTarget(container, initialFocus)?.focus();\n });\n }, [enabled, containerRef, restoreFocus, initialFocus]);\n\n // Focus trap: Tab wrapping (only when enabled)\n useLayoutEffect(() => {\n if (!enabled) return;\n \n const container = containerRef.current;\n if (!container) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n // Tab wrapping\n if (e.key === 'Tab') {\n const focusables = getFocusableElements({ container });\n\n if (focusables.length === 0) {\n e.preventDefault();\n container.focus();\n return;\n }\n\n const first = focusables[0];\n const last = focusables[focusables.length - 1];\n const activeElement = document.activeElement;\n\n if (e.shiftKey && activeElement === first) {\n e.preventDefault();\n last.focus();\n } else if (!e.shiftKey && activeElement === last) {\n e.preventDefault();\n first.focus();\n }\n }\n };\n\n document.addEventListener('keydown', handleKeyDown, true);\n return () => document.removeEventListener('keydown', handleKeyDown, true);\n }, [enabled, containerRef]);\n\n // Focus trap safety net: catch focus escaping\n useLayoutEffect(() => {\n if (!enabled) return;\n \n const container = containerRef.current;\n if (!container) return;\n\n const handleFocusIn = (e: FocusEvent) => {\n const target = e.target as Node;\n \n if (container.contains(target)) {\n lastFocusedInContainer.current = target as HTMLElement;\n } else {\n // Focus escaped - redirect back\n const fallback = lastFocusedInContainer.current \n || getFirstFocusableElement({ container }) \n || container;\n fallback.focus();\n }\n };\n\n document.addEventListener('focusin', handleFocusIn, true);\n return () => document.removeEventListener('focusin', handleFocusIn, true);\n }, [enabled, containerRef]);\n\n return { triggerRef };\n}\n"],"names":["useRef","useLayoutEffect","getFirstFocusableElement","getFocusableElements","resolveInitialFocusTarget","container","initialFocus","querySelector","HTMLElement","useFocusTrap","enabled","containerRef","restoreFocus","triggerRef","lastFocusedInContainer","current","requestAnimationFrame","focus","document","activeElement","handleKeyDown","e","key","focusables","length","preventDefault","first","last","shiftKey","addEventListener","removeEventListener","handleFocusIn","target","contains"],"mappings":"AA8EA,SAAA,UAAAA,GAAA,mBAAAC,SAAA;AAAA,SAAA,4BAAAC,GAAA,wBAAAC,SAAA;AAAA,SAASC,EACPC,GACAC,GACoB;AACpB,SAAIA,MAAiB,UACZJ,EAAyB;AAAA,IAAEG,WAAAA;AAAAA,EAAAA,CAAW,KAAKA,IAEhDC,MAAiB,cACZD,IAEL,OAAOC,KAAiB,WACnBD,EAAUE,cAA2BD,CAAY,IAEtDA,aAAwBE,cACnBF,IAEF;AACT;AAEO,SAASG,EAAkD;AAAA,EAChEC,SAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,cAAAA,IAAe;AAAA,EACfN,cAAAA,IAAe;AACO,GAAuB;AAC7C,QAAMO,IAAab,EAA2B,IAAI,GAC5Cc,IAAyBd,EAA2B,IAAI;AAG9DC,SAAAA,EAAgB,MAAM;AACpB,QAAI,CAACS,GAAS;AAEZ,MAAIE,KAAgBC,EAAWE,WAC7BC,sBAAsB,MAAM;AAC1BH,QAAAA,EAAWE,SAASE,MAAAA,GACpBJ,EAAWE,UAAU;AAAA,MACvB,CAAC;AAEH;AAAA,IACF;AAEA,UAAMV,IAAYM,EAAaI;AAC/B,IAAKV,MAGLQ,EAAWE,UAAUG,SAASC,eAG9BH,sBAAsB,MAAM;AAC1BZ,MAAAA,EAA0BC,GAAWC,CAAY,GAAGW,MAAAA;AAAAA,IACtD,CAAC;AAAA,EACH,GAAG,CAACP,GAASC,GAAcC,GAAcN,CAAY,CAAC,GAGtDL,EAAgB,MAAM;AACpB,QAAI,CAACS,EAAS;AAEd,UAAML,IAAYM,EAAaI;AAC/B,QAAI,CAACV,EAAW;AAEhB,UAAMe,IAAgBA,CAACC,MAAqB;AAE1C,UAAIA,EAAEC,QAAQ,OAAO;AACnB,cAAMC,IAAapB,EAAqB;AAAA,UAAEE,WAAAA;AAAAA,QAAAA,CAAW;AAErD,YAAIkB,EAAWC,WAAW,GAAG;AAC3BH,UAAAA,EAAEI,eAAAA,GACFpB,EAAUY,MAAAA;AACV;AAAA,QACF;AAEA,cAAMS,IAAQH,EAAW,CAAC,GACpBI,IAAOJ,EAAWA,EAAWC,SAAS,CAAC,GACvCL,IAAgBD,SAASC;AAE/B,QAAIE,EAAEO,YAAYT,MAAkBO,KAClCL,EAAEI,eAAAA,GACFE,EAAKV,MAAAA,KACI,CAACI,EAAEO,YAAYT,MAAkBQ,MAC1CN,EAAEI,eAAAA,GACFC,EAAMT,MAAAA;AAAAA,MAEV;AAAA,IACF;AAEAC,oBAASW,iBAAiB,WAAWT,GAAe,EAAI,GACjD,MAAMF,SAASY,oBAAoB,WAAWV,GAAe,EAAI;AAAA,EAC1E,GAAG,CAACV,GAASC,CAAY,CAAC,GAG1BV,EAAgB,MAAM;AACpB,QAAI,CAACS,EAAS;AAEd,UAAML,IAAYM,EAAaI;AAC/B,QAAI,CAACV,EAAW;AAEhB,UAAM0B,IAAgBA,CAACV,MAAkB;AACvC,YAAMW,IAASX,EAAEW;AAEjB,MAAI3B,EAAU4B,SAASD,CAAM,IAC3BlB,EAAuBC,UAAUiB,KAGhBlB,EAAuBC,WACnCb,EAAyB;AAAA,QAAEG,WAAAA;AAAAA,MAAAA,CAAW,KACtCA,GACIY,MAAAA;AAAAA,IAEb;AAEAC,oBAASW,iBAAiB,WAAWE,GAAe,EAAI,GACjD,MAAMb,SAASY,oBAAoB,WAAWC,GAAe,EAAI;AAAA,EAC1E,GAAG,CAACrB,GAASC,CAAY,CAAC,GAEnB;AAAA,IAAEE,YAAAA;AAAAA,EAAAA;AACX;"}
1
+ {"version":3,"file":"index227.js","sources":["../src/utils/a11y/useFocusTrap.ts"],"sourcesContent":["import { useLayoutEffect, useRef } from 'react';\nimport { getFocusableElements, getFirstFocusableElement } from './focusableElements';\n\nexport interface UseFocusTrapOptions<T extends HTMLElement = HTMLElement> {\n /**\n * Whether the focus trap is active.\n */\n enabled: boolean;\n /**\n * Container element ref to trap focus within.\n */\n containerRef: React.RefObject<T | null>;\n /**\n * Whether to restore focus to the element that had focus before trap activated.\n * Default: true\n */\n restoreFocus?: boolean;\n /**\n * Initial focus target when trap activates.\n * - 'first': Focus first focusable element (default)\n * - 'container': Focus the container itself\n * - CSS selector: Focus element matching selector\n * - HTMLElement: Focus this specific element\n */\n initialFocus?: 'first' | 'container' | string | HTMLElement;\n}\n\nexport interface UseFocusTrapReturn {\n /**\n * Ref to the element that had focus before trap activated.\n * Useful for manual focus restoration if needed.\n */\n triggerRef: React.MutableRefObject<HTMLElement | null>;\n}\n\n/**\n * Hook to trap focus within a container (for modals, dialogs, drawers).\n * \n * Implements WCAG 2.1 focus trap pattern:\n * - Moves focus into container on activation\n * - Wraps Tab/Shift+Tab navigation within container\n * - Restores focus to trigger element on deactivation\n * - Safety net: catches focus escaping via other means\n * \n * Note: For Escape key handling, use `useDismissOnEscape` hook separately.\n * This keeps focus trap (accessibility) separate from Escape handling (UX).\n * \n * @example\n * ```tsx\n * const MyModal = ({ isOpen, onClose }) => {\n * const containerRef = useRef<HTMLDivElement>(null);\n * \n * // Escape handling (UX)\n * useDismissOnEscape({\n * containerRef,\n * onDismiss: onClose,\n * enabled: isOpen\n * });\n * \n * // Focus trap (accessibility)\n * const { triggerRef } = useFocusTrap({\n * enabled: isOpen,\n * containerRef,\n * restoreFocus: true\n * });\n * \n * return (\n * <div ref={containerRef}>\n * <button>First</button>\n * <button>Second</button>\n * </div>\n * );\n * };\n * ```\n */\n/**\n * Resolve the initial focus target based on the initialFocus option.\n */\nfunction resolveInitialFocusTarget(\n container: HTMLElement,\n initialFocus: 'first' | 'container' | string | HTMLElement\n): HTMLElement | null {\n if (initialFocus === 'first') {\n return getFirstFocusableElement({ container }) || container;\n }\n if (initialFocus === 'container') {\n return container;\n }\n if (typeof initialFocus === 'string') {\n return container.querySelector<HTMLElement>(initialFocus);\n }\n if (initialFocus instanceof HTMLElement) {\n return initialFocus;\n }\n return null;\n}\n\nexport function useFocusTrap<T extends HTMLElement = HTMLElement>({\n enabled,\n containerRef,\n restoreFocus = true,\n initialFocus = 'first'\n}: UseFocusTrapOptions<T>): UseFocusTrapReturn {\n const triggerRef = useRef<HTMLElement | null>(null);\n const lastFocusedInContainer = useRef<HTMLElement | null>(null);\n\n // Focus management: save trigger, move focus into container on activate, restore on deactivate\n useLayoutEffect(() => {\n if (!enabled) {\n // Restore focus to trigger when trap deactivates\n if (restoreFocus && triggerRef.current) {\n requestAnimationFrame(() => {\n triggerRef.current?.focus();\n triggerRef.current = null;\n });\n }\n return;\n }\n\n const container = containerRef.current;\n if (!container) return;\n\n // Save the element that had focus before trap activated\n triggerRef.current = document.activeElement as HTMLElement;\n\n // Focus initial target\n requestAnimationFrame(() => {\n resolveInitialFocusTarget(container, initialFocus)?.focus();\n });\n }, [enabled, containerRef, restoreFocus, initialFocus]);\n\n // Focus trap: Tab wrapping (only when enabled)\n useLayoutEffect(() => {\n if (!enabled) return;\n \n const container = containerRef.current;\n if (!container) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n // Tab wrapping\n if (e.key === 'Tab') {\n const focusables = getFocusableElements({ container });\n\n if (focusables.length === 0) {\n e.preventDefault();\n container.focus();\n return;\n }\n\n const first = focusables[0];\n const last = focusables[focusables.length - 1];\n const activeElement = document.activeElement;\n\n if (e.shiftKey && activeElement === first) {\n e.preventDefault();\n last.focus();\n } else if (!e.shiftKey && activeElement === last) {\n e.preventDefault();\n first.focus();\n }\n }\n };\n\n document.addEventListener('keydown', handleKeyDown, true);\n return () => document.removeEventListener('keydown', handleKeyDown, true);\n }, [enabled, containerRef]);\n\n // Focus trap safety net: catch focus escaping\n useLayoutEffect(() => {\n if (!enabled) return;\n \n const container = containerRef.current;\n if (!container) return;\n\n const handleFocusIn = (e: FocusEvent) => {\n const target = e.target as Node;\n \n if (container.contains(target)) {\n lastFocusedInContainer.current = target as HTMLElement;\n } else {\n // Focus escaped - redirect back\n const fallback = lastFocusedInContainer.current \n || getFirstFocusableElement({ container }) \n || container;\n fallback.focus();\n }\n };\n\n document.addEventListener('focusin', handleFocusIn, true);\n return () => document.removeEventListener('focusin', handleFocusIn, true);\n }, [enabled, containerRef]);\n\n return { triggerRef };\n}\n"],"names":["useRef","useLayoutEffect","getFirstFocusableElement","getFocusableElements","resolveInitialFocusTarget","container","initialFocus","querySelector","HTMLElement","useFocusTrap","enabled","containerRef","restoreFocus","triggerRef","lastFocusedInContainer","current","requestAnimationFrame","focus","document","activeElement","handleKeyDown","e","key","focusables","length","preventDefault","first","last","shiftKey","addEventListener","removeEventListener","handleFocusIn","target","contains"],"mappings":"AA8EA,SAAA,UAAAA,GAAA,mBAAAC,SAAA;AAAA,SAAA,4BAAAC,GAAA,wBAAAC,SAAA;AAAA,SAASC,EACPC,GACAC,GACoB;AACpB,SAAIA,MAAiB,UACZJ,EAAyB;AAAA,IAAEG,WAAAA;AAAAA,EAAW,CAAA,KAAKA,IAEhDC,MAAiB,cACZD,IAEL,OAAOC,KAAiB,WACnBD,EAAUE,cAA2BD,CAAY,IAEtDA,aAAwBE,cACnBF,IAEF;AACT;AAEO,SAASG,EAAkD;AAAA,EAChEC,SAAAA;AAAAA,EACAC,cAAAA;AAAAA,EACAC,cAAAA,IAAe;AAAA,EACfN,cAAAA,IAAe;AACO,GAAuB;AACvCO,QAAAA,IAAab,EAA2B,IAAI,GAC5Cc,IAAyBd,EAA2B,IAAI;AAG9DC,SAAAA,EAAgB,MAAM;AACpB,QAAI,CAACS,GAAS;AAERE,MAAAA,KAAgBC,EAAWE,WAC7BC,sBAAsB,MAAM;AAC1BH,QAAAA,EAAWE,SAASE,SACpBJ,EAAWE,UAAU;AAAA,MAAA,CACtB;AAEH;AAAA,IACF;AAEA,UAAMV,IAAYM,EAAaI;AAC/B,IAAKV,MAGLQ,EAAWE,UAAUG,SAASC,eAG9BH,sBAAsB,MAAM;AACAX,MAAAA,EAAAA,GAAWC,CAAY,GAAGW,MAAM;AAAA,IAAA,CAC3D;AAAA,KACA,CAACP,GAASC,GAAcC,GAAcN,CAAY,CAAC,GAGtDL,EAAgB,MAAM;AACpB,QAAI,CAACS,EAAS;AAEd,UAAML,IAAYM,EAAaI;AAC/B,QAAI,CAACV,EAAW;AAEVe,UAAAA,IAAgBA,CAACC,MAAqB;AAEtCA,UAAAA,EAAEC,QAAQ,OAAO;AACnB,cAAMC,IAAapB,EAAqB;AAAA,UAAEE,WAAAA;AAAAA,QAAAA,CAAW;AAEjDkB,YAAAA,EAAWC,WAAW,GAAG;AAC3BH,UAAAA,EAAEI,eAAe,GACjBpB,EAAUY,MAAM;AAChB;AAAA,QACF;AAEMS,cAAAA,IAAQH,EAAW,CAAC,GACpBI,IAAOJ,EAAWA,EAAWC,SAAS,CAAC,GACvCL,IAAgBD,SAASC;AAE3BE,QAAAA,EAAEO,YAAYT,MAAkBO,KAClCL,EAAEI,eAAe,GACjBE,EAAKV,MAAM,KACF,CAACI,EAAEO,YAAYT,MAAkBQ,MAC1CN,EAAEI,eAAe,GACjBC,EAAMT,MAAM;AAAA,MAEhB;AAAA,IAAA;AAGOY,oBAAAA,iBAAiB,WAAWT,GAAe,EAAI,GACjD,MAAMF,SAASY,oBAAoB,WAAWV,GAAe,EAAI;AAAA,EAAA,GACvE,CAACV,GAASC,CAAY,CAAC,GAG1BV,EAAgB,MAAM;AACpB,QAAI,CAACS,EAAS;AAEd,UAAML,IAAYM,EAAaI;AAC/B,QAAI,CAACV,EAAW;AAEV0B,UAAAA,IAAgBA,CAACV,MAAkB;AACvC,YAAMW,IAASX,EAAEW;AAEb3B,MAAAA,EAAU4B,SAASD,CAAM,IAC3BlB,EAAuBC,UAAUiB,KAGhBlB,EAAuBC,WACnCb,EAAyB;AAAA,QAAEG,WAAAA;AAAAA,MAAW,CAAA,KACtCA,GACIY,MAAM;AAAA,IACjB;AAGOY,oBAAAA,iBAAiB,WAAWE,GAAe,EAAI,GACjD,MAAMb,SAASY,oBAAoB,WAAWC,GAAe,EAAI;AAAA,EAAA,GACvE,CAACrB,GAASC,CAAY,CAAC,GAEnB;AAAA,IAAEE,YAAAA;AAAAA,EAAAA;AACX;"}