@sofya-ds/react 1.1.13 → 1.1.15

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.
package/dist/index.js CHANGED
@@ -105,110 +105,149 @@ import * as AccordionPrimitive from "@radix-ui/react-accordion";
105
105
  import * as React2 from "react";
106
106
 
107
107
  // src/components/icon-data.ts
108
- var rawIconRegistry = {
109
- "files": { viewBox: "0 0 13.75 16.25", d: "M13.5672 3.30781L10.4422 0.182813C10.3841 0.124791 10.3152 0.0787825 10.2393 0.0474149C10.1634 0.0160474 10.0821 -6.43662e-05 10 1.93249e-07H3.75C3.41848 1.93249e-07 3.10054 0.131696 2.86612 0.366117C2.6317 0.600537 2.5 0.91848 2.5 1.25V2.5H1.25C0.918479 2.5 0.600537 2.6317 0.366116 2.86612C0.131696 3.10054 0 3.41848 0 3.75V15C0 15.3315 0.131696 15.6495 0.366116 15.8839C0.600537 16.1183 0.918479 16.25 1.25 16.25H10C10.3315 16.25 10.6495 16.1183 10.8839 15.8839C11.1183 15.6495 11.25 15.3315 11.25 15V13.75H12.5C12.8315 13.75 13.1495 13.6183 13.3839 13.3839C13.6183 13.1495 13.75 12.8315 13.75 12.5V3.75C13.7501 3.6679 13.734 3.58659 13.7026 3.51072C13.6712 3.43485 13.6252 3.3659 13.5672 3.30781ZM10 15H1.25V3.75H7.24141L10 6.50859V13.1125C10 13.1172 10 13.1211 10 13.125C10 13.1289 10 13.1328 10 13.1375V15ZM12.5 12.5H11.25V6.25C11.2501 6.1679 11.234 6.08659 11.2026 6.01072C11.1712 5.93485 11.1252 5.8659 11.0672 5.80781L7.94219 2.68281C7.8841 2.62479 7.81515 2.57878 7.73928 2.54741C7.66341 2.51605 7.5821 2.49994 7.5 2.5H3.75V1.25H9.74141L12.5 4.00859V12.5ZM8.125 10C8.125 10.1658 8.05915 10.3247 7.94194 10.4419C7.82473 10.5592 7.66576 10.625 7.5 10.625H3.75C3.58424 10.625 3.42527 10.5592 3.30806 10.4419C3.19085 10.3247 3.125 10.1658 3.125 10C3.125 9.83424 3.19085 9.67527 3.30806 9.55806C3.42527 9.44085 3.58424 9.375 3.75 9.375H7.5C7.66576 9.375 7.82473 9.44085 7.94194 9.55806C8.05915 9.67527 8.125 9.83424 8.125 10ZM8.125 12.5C8.125 12.6658 8.05915 12.8247 7.94194 12.9419C7.82473 13.0592 7.66576 13.125 7.5 13.125H3.75C3.58424 13.125 3.42527 13.0592 3.30806 12.9419C3.19085 12.8247 3.125 12.6658 3.125 12.5C3.125 12.3342 3.19085 12.1753 3.30806 12.0581C3.42527 11.9408 3.58424 11.875 3.75 11.875H7.5C7.66576 11.875 7.82473 11.9408 7.94194 12.0581C8.05915 12.1753 8.125 12.3342 8.125 12.5Z" },
110
- "books": { viewBox: "0 0 14.9996 15.6243", d: "M14.9727 13.3236L12.3797 0.995429C12.3462 0.834212 12.2811 0.681209 12.1882 0.545211C12.0954 0.409213 11.9766 0.2929 11.8387 0.202954C11.7007 0.113007 11.5464 0.0512006 11.3845 0.0210839C11.2226 -0.00903273 11.0564 -0.00686564 10.8953 0.0274607L7.23828 0.813398C6.9148 0.884226 6.63238 1.07991 6.45242 1.35789C6.27247 1.63586 6.20955 1.97365 6.27734 2.29777L8.87031 14.6259C8.9281 14.9072 9.08096 15.16 9.30319 15.3418C9.52543 15.5236 9.80349 15.6234 10.0906 15.6243C10.1794 15.6242 10.2679 15.6148 10.3547 15.5962L14.0117 14.8103C14.3356 14.7393 14.6183 14.5432 14.7983 14.2648C14.9783 13.9863 15.0409 13.648 14.9727 13.3236ZM7.5 2.0423C7.5 2.03762 7.5 2.03527 7.5 2.03527L11.1563 1.25402L11.4164 2.49387L7.76016 3.28059L7.5 2.0423ZM8.01719 4.5009L11.675 3.71574L11.9359 4.95793L8.28125 5.74387L8.01719 4.5009ZM8.53594 6.9673L12.1938 6.18137L13.2328 11.122L9.575 11.9079L8.53594 6.9673ZM13.75 13.5884L10.0937 14.3696L9.83359 13.1298L13.4898 12.3431L13.75 13.5814C13.75 13.5861 13.75 13.5884 13.75 13.5884ZM5 0.624336H1.25C0.918479 0.624336 0.600537 0.756032 0.366116 0.990452C0.131696 1.22487 0 1.54282 0 1.87434V14.3743C0 14.7059 0.131696 15.0238 0.366116 15.2582C0.600537 15.4926 0.918479 15.6243 1.25 15.6243H5C5.33152 15.6243 5.64946 15.4926 5.88388 15.2582C6.1183 15.0238 6.25 14.7059 6.25 14.3743V1.87434C6.25 1.54282 6.1183 1.22487 5.88388 0.990452C5.64946 0.756032 5.33152 0.624336 5 0.624336ZM1.25 1.87434H5V3.12434H1.25V1.87434ZM1.25 4.37434H5V11.8743H1.25V4.37434ZM5 14.3743H1.25V13.1243H5V14.3743Z" },
111
- "file-magnifying-glass": { viewBox: "0 0 13.75 16.25", d: "M13.5672 4.55781L9.19219 0.182813C9.1341 0.124791 9.06515 0.0787825 8.98928 0.0474149C8.91341 0.0160474 8.8321 -6.43662e-05 8.75 1.93249e-07H1.25C0.918479 1.93249e-07 0.600537 0.131696 0.366116 0.366117C0.131696 0.600537 0 0.91848 0 1.25V15C0 15.3315 0.131696 15.6495 0.366116 15.8839C0.600537 16.1183 0.918479 16.25 1.25 16.25H12.5C12.8315 16.25 13.1495 16.1183 13.3839 15.8839C13.6183 15.6495 13.75 15.3315 13.75 15V5C13.7501 4.9179 13.734 4.83659 13.7026 4.76072C13.6712 4.68485 13.6252 4.6159 13.5672 4.55781ZM9.375 2.13359L11.6164 4.375H9.375V2.13359ZM12.5 15H1.25V1.25H8.125V5C8.125 5.16576 8.19085 5.32473 8.30806 5.44194C8.42527 5.55915 8.58424 5.625 8.75 5.625H12.5V15ZM8.94219 11.1836C9.31104 10.5975 9.45102 9.896 9.33537 9.2132C9.21973 8.5304 8.85657 7.91414 8.31528 7.48217C7.77399 7.0502 7.09253 6.8328 6.40109 6.87151C5.70964 6.91022 5.0567 7.20232 4.56701 7.69201C4.07732 8.1817 3.78522 8.83464 3.74651 9.52609C3.7078 10.2175 3.9252 10.899 4.35717 11.4403C4.78914 11.9816 5.4054 12.3447 6.0882 12.4604C6.771 12.576 7.47247 12.436 8.05859 12.0672L8.93281 12.9422C8.99088 13.0003 9.05982 13.0463 9.13569 13.0777C9.21156 13.1092 9.29288 13.1253 9.375 13.1253C9.45712 13.1253 9.53844 13.1092 9.61431 13.0777C9.69018 13.0463 9.75912 13.0003 9.81719 12.9422C9.87526 12.8841 9.92132 12.8152 9.95275 12.7393C9.98417 12.6634 10.0003 12.5821 10.0003 12.5C10.0003 12.4179 9.98417 12.3366 9.95275 12.2607C9.92132 12.1848 9.87526 12.1159 9.81719 12.0578L8.94219 11.1836ZM5 9.6875C5 9.37847 5.09164 9.07637 5.26333 8.81942C5.43502 8.56247 5.67905 8.3622 5.96456 8.24394C6.25007 8.12568 6.56423 8.09473 6.86733 8.15502C7.17042 8.21531 7.44883 8.36413 7.66735 8.58265C7.88587 8.80117 8.03469 9.07958 8.09498 9.38267C8.15527 9.68577 8.12432 9.99993 8.00606 10.2854C7.8878 10.571 7.68753 10.815 7.43058 10.9867C7.17363 11.1584 6.87153 11.25 6.5625 11.25C6.1481 11.25 5.75067 11.0854 5.45765 10.7924C5.16462 10.4993 5 10.1019 5 9.6875Z" },
112
- "minus": { viewBox: "0 0 15 1.25", d: "M15 0.625C15 0.79076 14.9342 0.949732 14.8169 1.06694C14.6997 1.18415 14.5408 1.25 14.375 1.25H0.625C0.45924 1.25 0.300269 1.18415 0.183058 1.06694C0.0658481 0.949732 0 0.79076 0 0.625C0 0.45924 0.0658481 0.300269 0.183058 0.183058C0.300269 0.0658481 0.45924 0 0.625 0H14.375C14.5408 0 14.6997 0.0658481 14.8169 0.183058C14.9342 0.300269 15 0.45924 15 0.625Z" },
113
- "plus": { viewBox: "0 0 15 15", d: "M15 7.5C15 7.66576 14.9342 7.82473 14.8169 7.94194C14.6997 8.05915 14.5408 8.125 14.375 8.125H8.125V14.375C8.125 14.5408 8.05915 14.6997 7.94194 14.8169C7.82473 14.9342 7.66576 15 7.5 15C7.33424 15 7.17527 14.9342 7.05806 14.8169C6.94085 14.6997 6.875 14.5408 6.875 14.375V8.125H0.625C0.45924 8.125 0.300269 8.05915 0.183058 7.94194C0.0658481 7.82473 0 7.66576 0 7.5C0 7.33424 0.0658481 7.17527 0.183058 7.05806C0.300269 6.94085 0.45924 6.875 0.625 6.875H6.875V0.625C6.875 0.45924 6.94085 0.300269 7.05806 0.183058C7.17527 0.0658481 7.33424 0 7.5 0C7.66576 0 7.82473 0.0658481 7.94194 0.183058C8.05915 0.300269 8.125 0.45924 8.125 0.625V6.875H14.375C14.5408 6.875 14.6997 6.94085 14.8169 7.05806C14.9342 7.17527 15 7.33424 15 7.5Z" },
114
- "arrows-in-simple": { viewBox: "0 0 13.7507 13.7507", d: "M13.5675 1.06753L9.63394 5.00035H11.8753C12.0411 5.00035 12.2001 5.0662 12.3173 5.18341C12.4345 5.30062 12.5003 5.45959 12.5003 5.62535C12.5003 5.79111 12.4345 5.95008 12.3173 6.06729C12.2001 6.1845 12.0411 6.25035 11.8753 6.25035H8.12535C7.95959 6.25035 7.80062 6.1845 7.68341 6.06729C7.5662 5.95008 7.50035 5.79111 7.50035 5.62535V1.87535C7.50035 1.70959 7.5662 1.55062 7.68341 1.43341C7.80062 1.3162 7.95959 1.25035 8.12535 1.25035C8.29111 1.25035 8.45008 1.3162 8.56729 1.43341C8.6845 1.55062 8.75035 1.70959 8.75035 1.87535V4.11675L12.6832 0.18316C12.8004 0.0658846 12.9595 -3.26935e-09 13.1253 0C13.2912 3.26935e-09 13.4503 0.0658846 13.5675 0.18316C13.6848 0.300435 13.7507 0.459495 13.7507 0.625347C13.7507 0.7912 13.6848 0.95026 13.5675 1.06753ZM5.62535 7.50035H1.87535C1.70959 7.50035 1.55062 7.5662 1.43341 7.68341C1.3162 7.80062 1.25035 7.95959 1.25035 8.12535C1.25035 8.29111 1.3162 8.45008 1.43341 8.56729C1.55062 8.6845 1.70959 8.75035 1.87535 8.75035H4.11675L0.18316 12.6832C0.0658846 12.8004 -3.26935e-09 12.9595 0 13.1253C3.26935e-09 13.2912 0.0658846 13.4503 0.18316 13.5675C0.300435 13.6848 0.459495 13.7507 0.625347 13.7507C0.7912 13.7507 0.95026 13.6848 1.06753 13.5675L5.00035 9.63394V11.8753C5.00035 12.0411 5.0662 12.2001 5.18341 12.3173C5.30062 12.4345 5.45959 12.5003 5.62535 12.5003C5.79111 12.5003 5.95008 12.4345 6.06729 12.3173C6.1845 12.2001 6.25035 12.0411 6.25035 11.8753V8.12535C6.25035 7.95959 6.1845 7.80062 6.06729 7.68341C5.95008 7.5662 5.79111 7.50035 5.62535 7.50035Z" },
115
- "check": { viewBox: "0 0 15.6257 11.2508", d: "M15.4425 1.06754L5.44254 11.0675C5.38449 11.1256 5.31556 11.1717 5.23969 11.2032C5.16381 11.2347 5.08248 11.2508 5.00035 11.2508C4.91821 11.2508 4.83688 11.2347 4.76101 11.2032C4.68514 11.1717 4.61621 11.1256 4.55816 11.0675L0.18316 6.69254C0.0658846 6.57526 0 6.4162 0 6.25035C0 6.0845 0.0658846 5.92544 0.18316 5.80816C0.300435 5.69088 0.459495 5.625 0.625347 5.625C0.7912 5.625 0.95026 5.69088 1.06753 5.80816L5.00035 9.74175L14.5582 0.18316C14.6754 0.0658843 14.8345 -1.2357e-09 15.0003 0C15.1662 1.2357e-09 15.3253 0.0658843 15.4425 0.18316C15.5598 0.300435 15.6257 0.459495 15.6257 0.625347C15.6257 0.7912 15.5598 0.95026 15.4425 1.06754Z" },
116
- "caret-down": { viewBox: "0 0 13.7507 7.50084", d: "M13.5675 1.06754L7.31754 7.31754C7.25949 7.37565 7.19056 7.42175 7.11469 7.4532C7.03881 7.48465 6.95748 7.50084 6.87535 7.50084C6.79321 7.50084 6.71188 7.48465 6.63601 7.4532C6.56014 7.42175 6.49121 7.37565 6.43316 7.31754L0.18316 1.06754C0.0658846 0.95026 0 0.7912 0 0.625347C0 0.459495 0.0658846 0.300435 0.18316 0.18316C0.300435 0.0658843 0.459495 0 0.625347 0C0.7912 0 0.95026 0.0658843 1.06753 0.18316L6.87535 5.99175L12.6832 0.18316C12.7412 0.125091 12.8102 0.0790281 12.886 0.0476015C12.9619 0.0161748 13.0432 0 13.1253 0C13.2075 0 13.2888 0.0161748 13.3647 0.0476015C13.4405 0.0790281 13.5095 0.125091 13.5675 0.18316C13.6256 0.241229 13.6717 0.310167 13.7031 0.386037C13.7345 0.461908 13.7507 0.543226 13.7507 0.625347C13.7507 0.707469 13.7345 0.788787 13.7031 0.864658C13.6717 0.940528 13.6256 1.00947 13.5675 1.06754Z" },
117
- "lightbulb": { viewBox: "0 0 13.7501 17.502", d: "M10.6251 16.877C10.6251 17.0428 10.5593 17.2017 10.442 17.3189C10.3248 17.4361 10.1659 17.502 10.0001 17.502H3.7501C3.58434 17.502 3.42537 17.4361 3.30816 17.3189C3.19095 17.2017 3.1251 17.0428 3.1251 16.877C3.1251 16.7112 3.19095 16.5523 3.30816 16.4351C3.42537 16.3178 3.58434 16.252 3.7501 16.252H10.0001C10.1659 16.252 10.3248 16.3178 10.442 16.4351C10.5593 16.5523 10.6251 16.7112 10.6251 16.877ZM13.7501 6.877C13.7528 7.9189 13.5174 8.94766 13.0619 9.88474C12.6065 10.8218 11.9429 11.6425 11.122 12.284C10.9685 12.4017 10.8439 12.5529 10.7578 12.7261C10.6717 12.8993 10.6263 13.0898 10.6251 13.2832V13.752C10.6251 14.0835 10.4934 14.4015 10.259 14.6359C10.0246 14.8703 9.70662 15.002 9.3751 15.002H4.3751C4.04358 15.002 3.72564 14.8703 3.49122 14.6359C3.2568 14.4015 3.1251 14.0835 3.1251 13.752V13.2832C3.12497 13.0921 3.08103 12.9036 2.99666 12.7322C2.91228 12.5607 2.78972 12.4109 2.63838 12.2942C1.81948 11.6564 1.15639 10.8407 0.699304 9.9088C0.24222 8.9769 0.00312013 7.95323 0.000102226 6.91528C-0.0202103 3.19184 2.98916 0.091058 6.70948 0.00199546C7.62616 -0.0200946 8.53799 0.141412 9.39132 0.477009C10.2446 0.812607 11.0222 1.31551 11.6783 1.95613C12.3343 2.59674 12.8556 3.36213 13.2114 4.20722C13.5672 5.05232 13.7504 5.96005 13.7501 6.877ZM12.5001 6.877C12.5003 6.12673 12.3504 5.384 12.0593 4.69253C11.7682 4.00106 11.3416 3.37482 10.8048 2.85068C10.268 2.32653 9.63175 1.91507 8.93353 1.64052C8.2353 1.36596 7.48921 1.23386 6.73917 1.252C3.69229 1.32387 1.2337 3.86059 1.2501 6.90746C1.25296 7.75636 1.44885 8.59349 1.82296 9.35551C2.19706 10.1175 2.73959 10.7845 3.40948 11.3059C3.7106 11.54 3.95418 11.8399 4.12155 12.1826C4.28892 12.5253 4.37565 12.9018 4.3751 13.2832V13.752H9.3751V13.2832C9.37597 12.9007 9.46419 12.5235 9.63302 12.1803C9.80186 11.837 10.0469 11.5369 10.3493 11.3028C11.0213 10.7776 11.5644 10.1059 11.9371 9.33889C12.3099 8.57186 12.5024 7.7298 12.5001 6.877ZM11.2415 6.14731C11.0794 5.24207 10.6439 4.40822 9.99357 3.75801C9.34323 3.1078 8.50928 2.67246 7.60401 2.51059C7.52306 2.49694 7.44022 2.49938 7.36021 2.51775C7.2802 2.53612 7.2046 2.57007 7.13771 2.61766C7.07082 2.66525 7.01396 2.72555 6.97038 2.79511C6.9268 2.86467 6.89734 2.94214 6.8837 3.02309C6.87005 3.10404 6.87248 3.18688 6.89085 3.26689C6.90922 3.34689 6.94317 3.4225 6.99076 3.48939C7.03835 3.55628 7.09865 3.61313 7.16822 3.65672C7.23778 3.7003 7.31525 3.72976 7.3962 3.7434C8.69073 3.96137 9.78917 5.05981 10.0087 6.35668C10.0334 6.50225 10.1089 6.63436 10.2217 6.72959C10.3345 6.82483 10.4775 6.87705 10.6251 6.877C10.6604 6.87678 10.6957 6.87391 10.7306 6.8684C10.8939 6.84051 11.0395 6.74888 11.1354 6.61365C11.2312 6.47843 11.2694 6.31068 11.2415 6.14731Z" },
118
- "chats": { viewBox: "0 0 16.25 15.625", d: "M15 3.75H12.5V1.25C12.5 0.918479 12.3683 0.600537 12.1339 0.366116C11.8995 0.131696 11.5815 0 11.25 0H1.25C0.918479 0 0.600537 0.131696 0.366116 0.366116C0.131696 0.600537 0 0.918479 0 1.25V11.25C0.000366963 11.3676 0.0338962 11.4827 0.096736 11.5821C0.159576 11.6814 0.249177 11.7611 0.355245 11.8118C0.461314 11.8626 0.579547 11.8824 0.696363 11.869C0.813178 11.8555 0.923836 11.8094 1.01562 11.7359L3.75 9.53125V11.875C3.75 12.2065 3.8817 12.5245 4.11612 12.7589C4.35054 12.9933 4.66848 13.125 5 13.125H12.3117L15.2344 15.4859C15.345 15.5754 15.4828 15.6244 15.625 15.625C15.7908 15.625 15.9497 15.5592 16.0669 15.4419C16.1842 15.3247 16.25 15.1658 16.25 15V5C16.25 4.66848 16.1183 4.35054 15.8839 4.11612C15.6495 3.8817 15.3315 3.75 15 3.75ZM3.32422 8.26406L1.25 9.94141V1.25H11.25V8.125H3.71719C3.57414 8.12502 3.43544 8.1741 3.32422 8.26406ZM15 13.6914L12.9258 12.0141C12.8152 11.9246 12.6774 11.8756 12.5352 11.875H5V9.375H11.25C11.5815 9.375 11.8995 9.2433 12.1339 9.00888C12.3683 8.77446 12.5 8.45652 12.5 8.125V5H15V13.6914Z" },
119
- "file": { viewBox: "0 0 13.75 16.25", d: "M13.5672 4.55781L9.19219 0.182813C9.1341 0.124791 9.06515 0.0787825 8.98928 0.0474149C8.91341 0.0160474 8.8321 -6.43662e-05 8.75 1.93249e-07H1.25C0.918479 1.93249e-07 0.600537 0.131696 0.366116 0.366117C0.131696 0.600537 0 0.91848 0 1.25V15C0 15.3315 0.131696 15.6495 0.366116 15.8839C0.600537 16.1183 0.918479 16.25 1.25 16.25H12.5C12.8315 16.25 13.1495 16.1183 13.3839 15.8839C13.6183 15.6495 13.75 15.3315 13.75 15V5C13.7501 4.9179 13.734 4.83659 13.7026 4.76072C13.6712 4.68485 13.6252 4.6159 13.5672 4.55781ZM9.375 2.13359L11.6164 4.375H9.375V2.13359ZM12.5 15H1.25V1.25H8.125V5C8.125 5.16576 8.19085 5.32473 8.30806 5.44194C8.42527 5.55915 8.58424 5.625 8.75 5.625H12.5V15Z" },
120
- "folders": { viewBox: "0 0 16.875 13.75", d: "M15.625 1.875H10.2086L8.04141 0.25C7.82472 0.0883244 7.56176 0.000670577 7.29141 0H3.75C3.41848 0 3.10054 0.131696 2.86612 0.366116C2.6317 0.600537 2.5 0.918479 2.5 1.25V2.5H1.25C0.918479 2.5 0.600537 2.6317 0.366116 2.86612C0.131696 3.10054 0 3.41848 0 3.75V12.5C0 12.8315 0.131696 13.1495 0.366116 13.3839C0.600537 13.6183 0.918479 13.75 1.25 13.75H13.1945C13.5075 13.7496 13.8075 13.6251 14.0288 13.4038C14.2501 13.1825 14.3746 12.8825 14.375 12.5695V11.25H15.6945C16.0075 11.2496 16.3075 11.1251 16.5288 10.9038C16.7501 10.6825 16.8746 10.3825 16.875 10.0695V3.125C16.875 2.79348 16.7433 2.47554 16.5089 2.24112C16.2745 2.0067 15.9565 1.875 15.625 1.875ZM13.125 12.5H1.25V3.75H4.79141L7.125 5.5C7.23318 5.58114 7.36477 5.625 7.5 5.625H13.125V12.5ZM15.625 10H14.375V5.625C14.375 5.29348 14.2433 4.97554 14.0089 4.74112C13.7745 4.5067 13.4565 4.375 13.125 4.375H7.70859L5.54141 2.75C5.32472 2.58832 5.06176 2.50067 4.79141 2.5H3.75V1.25H7.29141L9.625 3C9.73318 3.08114 9.86477 3.125 10 3.125H15.625V10Z" },
121
- "sparkle": { viewBox: "0 0 18.1282 18.1282", d: "M14.1891 9.45781L10.1594 7.96875L8.67505 3.93594C8.58715 3.69713 8.42811 3.49104 8.2194 3.34546C8.01068 3.19988 7.76233 3.12182 7.50786 3.12182C7.25339 3.12182 7.00505 3.19988 6.79633 3.34546C6.58762 3.49104 6.42858 3.69713 6.34068 3.93594L4.84693 7.96875L0.814114 9.45312C0.575308 9.54103 0.369212 9.70007 0.223634 9.90878C0.0780551 10.1175 0 10.3658 0 10.6203C0 10.8748 0.0780551 11.1231 0.223634 11.3318C0.369212 11.5406 0.575308 11.6996 0.814114 11.7875L4.84693 13.2812L6.3313 17.3141C6.4192 17.5529 6.57824 17.759 6.78696 17.9045C6.99567 18.0501 7.24402 18.1282 7.49849 18.1282C7.75296 18.1282 8.00131 18.0501 8.21002 17.9045C8.41873 17.759 8.57777 17.5529 8.66568 17.3141L10.1594 13.2812L14.1922 11.7969C14.431 11.709 14.6371 11.5499 14.7827 11.3412C14.9283 11.1325 15.0064 10.8842 15.0064 10.6297C15.0064 10.3752 14.9283 10.1269 14.7827 9.91816C14.6371 9.70944 14.431 9.5504 14.1922 9.4625L14.1891 9.45781ZM9.4563 12.2047C9.37146 12.236 9.29442 12.2853 9.23049 12.3492C9.16655 12.4131 9.11725 12.4902 9.08599 12.575L7.50318 16.8633L5.92349 12.5781C5.89227 12.4924 5.84267 12.4145 5.77815 12.35C5.71364 12.2855 5.63578 12.2359 5.55005 12.2047L1.26489 10.625L5.55005 9.04531C5.63578 9.0141 5.71364 8.96449 5.77815 8.89997C5.84267 8.83546 5.89227 8.75761 5.92349 8.67188L7.50318 4.38672L9.08286 8.67188C9.11413 8.75671 9.16343 8.83375 9.22736 8.89769C9.2913 8.96162 9.36834 9.01092 9.45318 9.04219L13.7415 10.625L9.4563 12.2047ZM10.0032 2.5C10.0032 2.33424 10.069 2.17527 10.1862 2.05806C10.3034 1.94085 10.4624 1.875 10.6282 1.875H11.8782V0.625C11.8782 0.45924 11.944 0.300268 12.0612 0.183058C12.1784 0.065848 12.3374 0 12.5032 0C12.6689 0 12.8279 0.065848 12.9451 0.183058C13.0623 0.300268 13.1282 0.45924 13.1282 0.625V1.875H14.3782C14.5439 1.875 14.7029 1.94085 14.8201 2.05806C14.9373 2.17527 15.0032 2.33424 15.0032 2.5C15.0032 2.66576 14.9373 2.82473 14.8201 2.94194C14.7029 3.05915 14.5439 3.125 14.3782 3.125H13.1282V4.375C13.1282 4.54076 13.0623 4.69973 12.9451 4.81694C12.8279 4.93415 12.6689 5 12.5032 5C12.3374 5 12.1784 4.93415 12.0612 4.81694C11.944 4.69973 11.8782 4.54076 11.8782 4.375V3.125H10.6282C10.4624 3.125 10.3034 3.05915 10.1862 2.94194C10.069 2.82473 10.0032 2.66576 10.0032 2.5ZM18.1282 6.25C18.1282 6.41576 18.0623 6.57473 17.9451 6.69194C17.8279 6.80915 17.6689 6.875 17.5032 6.875H16.8782V7.5C16.8782 7.66576 16.8123 7.82473 16.6951 7.94194C16.5779 8.05915 16.4189 8.125 16.2532 8.125C16.0874 8.125 15.9284 8.05915 15.8112 7.94194C15.694 7.82473 15.6282 7.66576 15.6282 7.5V6.875H15.0032C14.8374 6.875 14.6784 6.80915 14.5612 6.69194C14.444 6.57473 14.3782 6.41576 14.3782 6.25C14.3782 6.08424 14.444 5.92527 14.5612 5.80806C14.6784 5.69085 14.8374 5.625 15.0032 5.625H15.6282V5C15.6282 4.83424 15.694 4.67527 15.8112 4.55806C15.9284 4.44085 16.0874 4.375 16.2532 4.375C16.4189 4.375 16.5779 4.44085 16.6951 4.55806C16.8123 4.67527 16.8782 4.83424 16.8782 5V5.625H17.5032C17.6689 5.625 17.8279 5.69085 17.9451 5.80806C18.0623 5.92527 18.1282 6.08424 18.1282 6.25Z" },
122
- "microphone-stage": { viewBox: "0 0 16.8751 16.8751", d: "M11.2501 0C9.75868 0.00144786 8.32878 0.594545 7.2742 1.64912C6.21963 2.7037 5.62653 4.1336 5.62508 5.625C5.62565 5.87111 5.64209 6.11694 5.6743 6.36094L0.243831 13.7672C0.0660853 14.0076 -0.0191805 14.3039 0.00362903 14.602C0.0264385 14.9001 0.155799 15.1801 0.36805 15.3906L1.48446 16.507C1.69501 16.7193 1.97494 16.8486 2.27304 16.8715C2.57114 16.8943 2.8675 16.809 3.10789 16.6312L10.5149 11.1992C10.7586 11.2319 11.0042 11.2489 11.2501 11.25C12.7419 11.25 14.1727 10.6574 15.2276 9.60247C16.2824 8.54758 16.8751 7.11684 16.8751 5.625C16.8751 4.13316 16.2824 2.70242 15.2276 1.64752C14.1727 0.592632 12.7419 0 11.2501 0ZM15.6251 5.625C15.6262 6.56938 15.3202 7.48852 14.7532 8.24375L8.63211 2.12187C9.28234 1.63624 10.0548 1.34104 10.8632 1.26928C11.6716 1.19751 12.484 1.35201 13.2096 1.7155C13.9352 2.079 14.5454 2.63715 14.972 3.32757C15.3986 4.01798 15.6247 4.81344 15.6251 5.625ZM2.36883 15.625L1.25008 14.5062L6.10477 7.89062C6.67363 9.1749 7.70018 10.2014 8.98446 10.7703L2.36883 15.625ZM6.87508 5.625C6.87384 4.68084 7.17987 3.76192 7.74696 3.00703L13.8673 9.12734C13.2171 9.61271 12.4448 9.90772 11.6366 9.97939C10.8284 10.0511 10.0162 9.89659 9.29072 9.53322C8.56528 9.16985 7.95517 8.6119 7.52858 7.92173C7.10199 7.23156 6.87573 6.43636 6.87508 5.625ZM6.69149 10.1828C6.80861 10.3 6.8744 10.4589 6.8744 10.6246C6.8744 10.7903 6.80861 10.9492 6.69149 11.0664L6.06649 11.6914C6.00903 11.7519 5.94004 11.8003 5.8636 11.8336C5.78715 11.867 5.70479 11.8848 5.62138 11.8859C5.53796 11.8869 5.45518 11.8713 5.3779 11.8399C5.30062 11.8084 5.23042 11.7619 5.17143 11.7029C5.11245 11.6439 5.06586 11.5737 5.03443 11.4964C5.003 11.4191 4.98736 11.3363 4.98843 11.2529C4.98949 11.1695 5.00725 11.0871 5.04065 11.0107C5.07405 10.9343 5.12241 10.8653 5.18289 10.8078L5.80789 10.1828C5.8659 10.1245 5.93484 10.0783 6.01076 10.0467C6.08668 10.0151 6.16808 9.9988 6.25031 9.99872C6.33254 9.99865 6.41397 10.0148 6.48995 10.0463C6.56592 10.0777 6.63494 10.1239 6.69305 10.182L6.69149 10.1828Z" },
123
- "battery-low": { viewBox: "0 0 19.375 11.25", d: "M15 0H1.875C1.37772 0 0.900805 0.197544 0.549175 0.549175C0.197544 0.900806 0 1.37772 0 1.875V9.375C0 9.87228 0.197544 10.3492 0.549175 10.7008C0.900805 11.0525 1.37772 11.25 1.875 11.25H15C15.4973 11.25 15.9742 11.0525 16.3258 10.7008C16.6775 10.3492 16.875 9.87228 16.875 9.375V1.875C16.875 1.37772 16.6775 0.900806 16.3258 0.549175C15.9742 0.197544 15.4973 0 15 0ZM15.625 9.375C15.625 9.54076 15.5592 9.69973 15.4419 9.81694C15.3247 9.93415 15.1658 10 15 10H1.875C1.70924 10 1.55027 9.93415 1.43306 9.81694C1.31585 9.69973 1.25 9.54076 1.25 9.375V1.875C1.25 1.70924 1.31585 1.55027 1.43306 1.43306C1.55027 1.31585 1.70924 1.25 1.875 1.25H15C15.1658 1.25 15.3247 1.31585 15.4419 1.43306C15.5592 1.55027 15.625 1.70924 15.625 1.875V9.375ZM4.375 3.125V8.125C4.375 8.29076 4.30915 8.44973 4.19194 8.56694C4.07473 8.68415 3.91576 8.75 3.75 8.75C3.58424 8.75 3.42527 8.68415 3.30806 8.56694C3.19085 8.44973 3.125 8.29076 3.125 8.125V3.125C3.125 2.95924 3.19085 2.80027 3.30806 2.68306C3.42527 2.56585 3.58424 2.5 3.75 2.5C3.91576 2.5 4.07473 2.56585 4.19194 2.68306C4.30915 2.80027 4.375 2.95924 4.375 3.125ZM19.375 3.125V8.125C19.375 8.29076 19.3092 8.44973 19.1919 8.56694C19.0747 8.68415 18.9158 8.75 18.75 8.75C18.5842 8.75 18.4253 8.68415 18.3081 8.56694C18.1908 8.44973 18.125 8.29076 18.125 8.125V3.125C18.125 2.95924 18.1908 2.80027 18.3081 2.68306C18.4253 2.56585 18.5842 2.5 18.75 2.5C18.9158 2.5 19.0747 2.56585 19.1919 2.68306C19.3092 2.80027 19.375 2.95924 19.375 3.125Z" },
124
- "microphone": { viewBox: "0 0 12.5 18.125", d: "M6.25 12.5C7.24424 12.499 8.19747 12.1035 8.90051 11.4005C9.60355 10.6975 9.99897 9.74424 10 8.75V3.75C10 2.75544 9.60491 1.80161 8.90165 1.09835C8.19839 0.395088 7.24456 0 6.25 0C5.25544 0 4.30161 0.395088 3.59835 1.09835C2.89509 1.80161 2.5 2.75544 2.5 3.75V8.75C2.50103 9.74424 2.89645 10.6975 3.59949 11.4005C4.30253 12.1035 5.25576 12.499 6.25 12.5ZM3.75 3.75C3.75 3.08696 4.01339 2.45107 4.48223 1.98223C4.95107 1.51339 5.58696 1.25 6.25 1.25C6.91304 1.25 7.54893 1.51339 8.01777 1.98223C8.48661 2.45107 8.75 3.08696 8.75 3.75V8.75C8.75 9.41304 8.48661 10.0489 8.01777 10.5178C7.54893 10.9866 6.91304 11.25 6.25 11.25C5.58696 11.25 4.95107 10.9866 4.48223 10.5178C4.01339 10.0489 3.75 9.41304 3.75 8.75V3.75ZM6.875 14.9688V17.5C6.875 17.6658 6.80915 17.8247 6.69194 17.9419C6.57473 18.0592 6.41576 18.125 6.25 18.125C6.08424 18.125 5.92527 18.0592 5.80806 17.9419C5.69085 17.8247 5.625 17.6658 5.625 17.5V14.9688C4.08409 14.812 2.65607 14.0893 1.61707 12.9407C0.578064 11.792 0.00190321 10.2989 0 8.75C0 8.58424 0.0658481 8.42527 0.183058 8.30806C0.300269 8.19085 0.45924 8.125 0.625 8.125C0.79076 8.125 0.949731 8.19085 1.06694 8.30806C1.18415 8.42527 1.25 8.58424 1.25 8.75C1.25 10.0761 1.77678 11.3479 2.71447 12.2855C3.65215 13.2232 4.92392 13.75 6.25 13.75C7.57608 13.75 8.84785 13.2232 9.78553 12.2855C10.7232 11.3479 11.25 10.0761 11.25 8.75C11.25 8.58424 11.3158 8.42527 11.4331 8.30806C11.5503 8.19085 11.7092 8.125 11.875 8.125C12.0408 8.125 12.1997 8.19085 12.3169 8.30806C12.4342 8.42527 12.5 8.58424 12.5 8.75C12.4981 10.2989 11.9219 11.792 10.8829 12.9407C9.84393 14.0893 8.41591 14.812 6.875 14.9688Z" },
125
- "microphone-slash": { viewBox: "0 0 13.75 18.1208", d: "M13.5825 15.8255L1.08246 2.07553C0.970401 1.95516 0.81541 1.8838 0.651091 1.87693C0.486772 1.87007 0.326369 1.92825 0.204658 2.03886C0.082947 2.14947 0.00973829 2.30359 0.000903313 2.46781C-0.00793166 2.63204 0.0483195 2.79313 0.157461 2.91616L3.11996 6.17475V8.74584C3.11981 9.3825 3.28176 10.0087 3.59054 10.5655C3.89932 11.1222 4.34476 11.5912 4.88491 11.9282C5.42505 12.2653 6.0421 12.4592 6.67792 12.4918C7.31374 12.5244 7.9474 12.3946 8.51918 12.1146L9.38637 13.0677C8.62312 13.5143 7.75425 13.7484 6.86996 13.7458C5.54432 13.7444 4.27339 13.2171 3.33603 12.2798C2.39866 11.3424 1.87141 10.0715 1.86996 8.74584C1.86996 8.58008 1.80411 8.42111 1.6869 8.3039C1.56969 8.18669 1.41072 8.12084 1.24496 8.12084C1.0792 8.12084 0.92023 8.18669 0.803019 8.3039C0.685809 8.42111 0.619961 8.58008 0.619961 8.74584C0.621864 10.2947 1.19802 11.7878 2.23703 12.9365C3.27603 14.0852 4.70406 14.8078 6.24496 14.9646V17.4958C6.24496 17.6616 6.31081 17.8206 6.42802 17.9378C6.54523 18.055 6.7042 18.1208 6.86996 18.1208C7.03572 18.1208 7.19469 18.055 7.3119 17.9378C7.42911 17.8206 7.49496 17.6616 7.49496 17.4958V14.9638C8.47367 14.8694 9.41555 14.5421 10.2418 14.0091L12.6575 16.6654C12.7123 16.7272 12.779 16.7776 12.8535 16.8135C12.928 16.8495 13.0088 16.8703 13.0914 16.8747C13.174 16.8791 13.2567 16.8672 13.3346 16.8394C13.4125 16.8117 13.4841 16.7688 13.5453 16.7131C13.6066 16.6575 13.6561 16.5903 13.6911 16.5154C13.7262 16.4405 13.746 16.3593 13.7495 16.2767C13.7529 16.1941 13.7399 16.1116 13.7113 16.034C13.6826 15.9564 13.6388 15.8853 13.5825 15.8248V15.8255ZM6.86996 11.2458C6.20692 11.2458 5.57103 10.9825 5.10219 10.5136C4.63335 10.0448 4.36996 9.40889 4.36996 8.74584V7.54975L7.62465 11.1294C7.38053 11.2067 7.126 11.2459 6.86996 11.2458ZM11.3637 10.9404C11.6989 10.2575 11.8722 9.50655 11.87 8.74584C11.87 8.58008 11.9358 8.42111 12.053 8.3039C12.1702 8.18669 12.3292 8.12084 12.495 8.12084C12.6607 8.12084 12.8197 8.18669 12.9369 8.3039C13.0541 8.42111 13.12 8.58008 13.12 8.74584C13.1226 9.69698 12.9057 10.6359 12.4864 11.4896C12.435 11.5948 12.3551 11.6835 12.2558 11.7455C12.1565 11.8075 12.0417 11.8404 11.9246 11.8404C11.8295 11.8405 11.7357 11.8186 11.6504 11.7763C11.5016 11.7035 11.3877 11.5745 11.334 11.4177C11.2802 11.261 11.2909 11.0893 11.3637 10.9404ZM3.43246 2.25131C3.77668 1.4618 4.38218 0.814831 5.1472 0.419151C5.91222 0.023471 6.79013 -0.0968052 7.63339 0.0785367C8.47664 0.253879 9.23384 0.71415 9.77772 1.382C10.3216 2.04984 10.619 2.88455 10.62 3.74584V8.74584C10.6198 8.87631 10.613 9.00669 10.5996 9.13647C10.5836 9.29075 10.5107 9.43353 10.3952 9.53706C10.2796 9.64059 10.1298 9.69746 9.97465 9.69663C9.95279 9.69776 9.93088 9.69776 9.90902 9.69663C9.74421 9.6793 9.59302 9.59722 9.48871 9.46844C9.38439 9.33967 9.3355 9.17473 9.35277 9.00991C9.36137 8.92397 9.36605 8.83491 9.36605 8.74741V3.74584C9.36441 3.17242 9.16568 2.61699 8.80319 2.17267C8.44071 1.72835 7.93649 1.42215 7.37507 1.3054C6.81366 1.18864 6.22917 1.26844 5.7196 1.53141C5.21002 1.79437 4.80633 2.22452 4.57621 2.74975C4.547 2.8299 4.50168 2.90323 4.44306 2.9652C4.38444 3.02718 4.31375 3.0765 4.23535 3.11013C4.15695 3.14375 4.07249 3.16097 3.98718 3.16072C3.90187 3.16048 3.81751 3.14277 3.73931 3.10868C3.6611 3.0746 3.5907 3.02487 3.53244 2.96255C3.47418 2.90024 3.4293 2.82665 3.40055 2.74633C3.3718 2.66601 3.3598 2.58065 3.36529 2.49552C3.37078 2.41039 3.39364 2.32728 3.43246 2.25131Z" },
126
- "play": { viewBox: "0 0 13.7486 16.2504", d: "M13.1562 7.06992L1.9 0.183984C1.71022 0.0677751 1.49287 0.00433455 1.27037 0.000214333C1.04788 -0.00390588 0.828324 0.0514435 0.634375 0.160546C0.442273 0.267954 0.282247 0.424592 0.170753 0.614352C0.0592589 0.804111 0.000320983 1.02014 0 1.24023V15.0105C0.00144747 15.3407 0.133933 15.6567 0.368331 15.8892C0.60273 16.1217 0.919857 16.2516 1.25 16.2504C1.48043 16.2503 1.70639 16.1868 1.90313 16.0668L13.1562 9.18086C13.3371 9.07061 13.4866 8.91569 13.5904 8.73099C13.6941 8.54628 13.7486 8.33801 13.7486 8.12617C13.7486 7.91433 13.6941 7.70606 13.5904 7.52136C13.4866 7.33665 13.3371 7.18173 13.1562 7.07148V7.06992ZM1.25 14.9957V1.25039L12.4867 8.12539L1.25 14.9957Z" },
127
- "x": { viewBox: "0 0 12.5007 12.5007", d: "M12.3175 11.4332C12.3756 11.4912 12.4217 11.5602 12.4531 11.636C12.4845 11.7119 12.5007 11.7932 12.5007 11.8753C12.5007 11.9575 12.4845 12.0388 12.4531 12.1147C12.4217 12.1905 12.3756 12.2595 12.3175 12.3175C12.2595 12.3756 12.1905 12.4217 12.1147 12.4531C12.0388 12.4845 11.9575 12.5007 11.8753 12.5007C11.7932 12.5007 11.7119 12.4845 11.636 12.4531C11.5602 12.4217 11.4912 12.3756 11.4332 12.3175L6.25035 7.13394L1.06753 12.3175C0.95026 12.4348 0.7912 12.5007 0.625347 12.5007C0.459495 12.5007 0.300435 12.4348 0.18316 12.3175C0.0658846 12.2003 3.26935e-09 12.0412 0 11.8753C-3.26935e-09 11.7095 0.0658846 11.5504 0.18316 11.4332L5.36675 6.25035L0.18316 1.06753C0.0658846 0.95026 0 0.7912 0 0.625347C0 0.459495 0.0658846 0.300435 0.18316 0.18316C0.300435 0.0658846 0.459495 0 0.625347 0C0.7912 0 0.95026 0.0658846 1.06753 0.18316L6.25035 5.36675L11.4332 0.18316C11.5504 0.0658846 11.7095 -3.26935e-09 11.8753 0C12.0412 3.26935e-09 12.2003 0.0658846 12.3175 0.18316C12.4348 0.300435 12.5007 0.459495 12.5007 0.625347C12.5007 0.7912 12.4348 0.95026 12.3175 1.06753L7.13394 6.25035L12.3175 11.4332Z" },
128
- "Mail": { viewBox: "0 0 16.25 12.5", d: "M15.625 0H0.625C0.45924 0 0.300268 0.0658481 0.183058 0.183058C0.065848 0.300269 0 0.45924 0 0.625V11.25C0 11.5815 0.131696 11.8995 0.366116 12.1339C0.600537 12.3683 0.918479 12.5 1.25 12.5H15C15.3315 12.5 15.6495 12.3683 15.8839 12.1339C16.1183 11.8995 16.25 11.5815 16.25 11.25V0.625C16.25 0.45924 16.1842 0.300269 16.0669 0.183058C15.9497 0.0658481 15.7908 0 15.625 0ZM8.125 6.65234L2.23203 1.25H14.018L8.125 6.65234ZM5.83672 6.25L1.25 10.4539V2.04609L5.83672 6.25ZM6.76172 7.09766L7.69922 7.96094C7.81453 8.06679 7.96535 8.12552 8.12187 8.12552C8.2784 8.12552 8.42922 8.06679 8.54453 7.96094L9.48203 7.09766L14.0133 11.25H2.23203L6.76172 7.09766ZM10.4133 6.25L15 2.04531V10.4547L10.4133 6.25Z" },
129
- "pause": { viewBox: "0 0 13.75 15", d: "M12.5 0H9.375C9.04348 0 8.72554 0.131696 8.49112 0.366116C8.2567 0.600537 8.125 0.918479 8.125 1.25V13.75C8.125 14.0815 8.2567 14.3995 8.49112 14.6339C8.72554 14.8683 9.04348 15 9.375 15H12.5C12.8315 15 13.1495 14.8683 13.3839 14.6339C13.6183 14.3995 13.75 14.0815 13.75 13.75V1.25C13.75 0.918479 13.6183 0.600537 13.3839 0.366116C13.1495 0.131696 12.8315 0 12.5 0ZM12.5 13.75H9.375V1.25H12.5V13.75ZM4.375 0H1.25C0.918479 0 0.600537 0.131696 0.366116 0.366116C0.131696 0.600537 0 0.918479 0 1.25V13.75C0 14.0815 0.131696 14.3995 0.366116 14.6339C0.600537 14.8683 0.918479 15 1.25 15H4.375C4.70652 15 5.02446 14.8683 5.25888 14.6339C5.4933 14.3995 5.625 14.0815 5.625 13.75V1.25C5.625 0.918479 5.4933 0.600537 5.25888 0.366116C5.02446 0.131696 4.70652 0 4.375 0ZM4.375 13.75H1.25V1.25H4.375V13.75Z" },
130
- "broadcast": { viewBox: "0 0 18.7551 13.5211", d: "M9.38008 3.63557C8.76201 3.63557 8.15782 3.81885 7.64392 4.16223C7.13002 4.50561 6.72948 4.99366 6.49295 5.56468C6.25643 6.1357 6.19454 6.76404 6.31512 7.37023C6.4357 7.97642 6.73333 8.53324 7.17037 8.97028C7.60741 9.40732 8.16423 9.70494 8.77042 9.82552C9.37661 9.9461 10.0049 9.88422 10.576 9.64769C11.147 9.41117 11.635 9.01063 11.9784 8.49672C12.3218 7.98282 12.5051 7.37863 12.5051 6.76057C12.5051 5.93177 12.1758 5.13691 11.5898 4.55086C11.0037 3.96481 10.2089 3.63557 9.38008 3.63557ZM9.38008 8.63557C9.00924 8.63557 8.64673 8.5256 8.33838 8.31957C8.03004 8.11355 7.78972 7.82071 7.6478 7.4781C7.50589 7.13549 7.46876 6.75849 7.5411 6.39477C7.61345 6.03106 7.79203 5.69697 8.05425 5.43474C8.31648 5.17252 8.65057 4.99394 9.01428 4.9216C9.378 4.84925 9.755 4.88638 10.0976 5.02829C10.4402 5.17021 10.7331 5.41053 10.9391 5.71887C11.1451 6.02722 11.2551 6.38973 11.2551 6.76057C11.2551 7.25785 11.0575 7.73476 10.7059 8.08639C10.3543 8.43802 9.87736 8.63557 9.38008 8.63557ZM15.1387 9.19338C14.8702 9.82821 14.4985 10.4142 14.0387 10.9278C13.9273 11.0482 13.7731 11.1201 13.6092 11.1279C13.4454 11.1356 13.285 11.0786 13.1628 10.9692C13.0406 10.8598 12.9663 10.7068 12.9559 10.543C12.9456 10.3793 13 10.2181 13.1074 10.0942C13.9281 9.17787 14.3819 7.99103 14.3819 6.76096C14.3819 5.53089 13.9281 4.34405 13.1074 3.42776C13.0511 3.36686 13.0076 3.29539 12.9792 3.21748C12.9508 3.13958 12.9382 3.05681 12.9421 2.97399C12.946 2.89117 12.9664 2.80996 13.002 2.73508C13.0376 2.66021 13.0878 2.59317 13.1496 2.53787C13.2113 2.48257 13.2835 2.44012 13.3619 2.41298C13.4402 2.38584 13.5232 2.37457 13.6059 2.3798C13.6887 2.38504 13.7695 2.40669 13.8438 2.4435C13.9181 2.4803 13.9844 2.53151 14.0387 2.59416C14.8278 3.47724 15.3502 4.56618 15.5449 5.73438C15.7396 6.90259 15.5987 8.10207 15.1387 9.19338ZM4.7707 4.81447C4.40194 5.68742 4.28884 6.64719 4.44458 7.58194C4.60033 8.51669 5.01851 9.38794 5.65039 10.0942C5.75784 10.2181 5.81225 10.3793 5.80189 10.543C5.79152 10.7068 5.71721 10.8598 5.59499 10.9692C5.47276 11.0786 5.31242 11.1356 5.14857 11.1279C4.98471 11.1201 4.83048 11.0482 4.71914 10.9278C3.69304 9.78241 3.12563 8.29872 3.12563 6.76096C3.12563 5.2232 3.69304 3.73951 4.71914 2.59416C4.82968 2.47036 4.98488 2.39554 5.15058 2.38616C5.31629 2.37679 5.47893 2.43362 5.60273 2.54416C5.72654 2.6547 5.80135 2.8099 5.81073 2.9756C5.82011 3.14131 5.76327 3.30395 5.65273 3.42776C5.28398 3.83798 4.98592 4.30659 4.7707 4.81447ZM18.7551 6.76057C18.7589 9.21505 17.7966 11.5724 16.0762 13.3231C16.0193 13.3839 15.9507 13.4328 15.8747 13.4668C15.7986 13.5008 15.7165 13.5192 15.6332 13.521C15.5499 13.5228 15.4671 13.5079 15.3896 13.4772C15.3121 13.4466 15.2416 13.4007 15.1821 13.3424C15.1226 13.284 15.0754 13.2144 15.0432 13.1375C15.011 13.0607 14.9945 12.9781 14.9947 12.8948C14.9949 12.8115 15.0117 12.729 15.0442 12.6523C15.0767 12.5756 15.1242 12.5062 15.184 12.4481C16.6736 10.9304 17.5082 8.88872 17.5082 6.76213C17.5082 4.63554 16.6736 2.59388 15.184 1.07619C15.0675 0.957882 15.0029 0.798158 15.0042 0.632159C15.0055 0.46616 15.0727 0.307484 15.191 0.191037C15.3093 0.0745904 15.4691 0.00991204 15.635 0.0112307C15.801 0.0125493 15.9597 0.0797568 16.0762 0.198068C17.7966 1.94872 18.7589 4.30609 18.7551 6.76057ZM3.57617 12.4465C3.63373 12.5051 3.67918 12.5744 3.70994 12.6506C3.74069 12.7267 3.75615 12.8082 3.75542 12.8903C3.7547 12.9724 3.73781 13.0536 3.70571 13.1292C3.67361 13.2048 3.62694 13.2733 3.56836 13.3309C3.50978 13.3884 3.44043 13.4339 3.36428 13.4646C3.28814 13.4954 3.20668 13.5109 3.12455 13.5101C3.04243 13.5094 2.96126 13.4925 2.88566 13.4604C2.81007 13.4283 2.74154 13.3817 2.68398 13.3231C0.963815 11.5719 0 9.21529 0 6.76057C0 4.30585 0.963815 1.94926 2.68398 0.198068C2.7409 0.137215 2.80941 0.0883576 2.88548 0.0543677C2.96156 0.0203779 3.04366 0.0019424 3.12696 0.000145384C3.21027 -0.00165163 3.29309 0.013226 3.37056 0.0439035C3.44802 0.0745811 3.51858 0.120439 3.57806 0.178781C3.63755 0.237123 3.68477 0.30677 3.71695 0.383628C3.74913 0.460486 3.76562 0.543002 3.76544 0.626323C3.76526 0.709645 3.74843 0.792091 3.71593 0.868811C3.68342 0.945532 3.63591 1.01498 3.57617 1.07307C2.08653 2.59075 1.25198 4.63242 1.25198 6.75901C1.25198 8.8856 2.08653 10.9273 3.57617 12.4449V12.4465Z" },
131
- "sidebar-simple": { viewBox: "0 0 16.25 13.75", d: "M15 0H1.25C0.918479 0 0.600537 0.131696 0.366116 0.366116C0.131696 0.600537 0 0.918479 0 1.25V12.5C0 12.8315 0.131696 13.1495 0.366116 13.3839C0.600537 13.6183 0.918479 13.75 1.25 13.75H15C15.3315 13.75 15.6495 13.6183 15.8839 13.3839C16.1183 13.1495 16.25 12.8315 16.25 12.5V1.25C16.25 0.918479 16.1183 0.600537 15.8839 0.366116C15.6495 0.131696 15.3315 0 15 0ZM1.25 1.25H4.375V12.5H1.25V1.25ZM15 12.5H5.625V1.25H15V12.5Z" },
132
- "pencil-simple-line": { viewBox: "0 0 15.6256 15.6248", d: "M15.2594 3.85684L11.768 0.366217C11.6519 0.250114 11.5141 0.158014 11.3624 0.0951779C11.2107 0.0323417 11.0482 0 10.884 0C10.7198 0 10.5572 0.0323417 10.4056 0.0951779C10.2539 0.158014 10.1161 0.250114 10 0.366217L0.366412 9.99981C0.249834 10.1155 0.157407 10.2531 0.0945056 10.4048C0.0316038 10.5565 -0.000518312 10.7192 6.32418e-06 10.8834V14.3748C6.32418e-06 14.7063 0.131702 15.0243 0.366123 15.2587C0.600543 15.4931 0.918486 15.6248 1.25001 15.6248H14.375C14.5408 15.6248 14.6997 15.559 14.8169 15.4418C14.9342 15.3245 15 15.1656 15 14.9998C15 14.8341 14.9342 14.6751 14.8169 14.5579C14.6997 14.4407 14.5408 14.3748 14.375 14.3748H6.50938L15.2594 5.62481C15.3755 5.50873 15.4676 5.37092 15.5304 5.21925C15.5933 5.06757 15.6256 4.905 15.6256 4.74083C15.6256 4.57665 15.5933 4.41408 15.5304 4.26241C15.4676 4.11073 15.3755 3.97292 15.2594 3.85684ZM4.74141 14.3748H1.25001V10.8834L8.12501 4.0084L11.6164 7.49981L4.74141 14.3748ZM12.5 6.61622L9.00938 3.12481L10.8844 1.24981L14.375 4.74122L12.5 6.61622Z" },
133
- "search": { viewBox: "0 0 16.2676 16.2676", d: "M16.0845 15.2001L12.1727 11.2891C13.3065 9.92798 13.8719 8.1821 13.7512 6.41472C13.6305 4.64733 12.8331 2.9945 11.5249 1.80006C10.2166 0.605618 8.49824 -0.038471 6.72719 0.00177892C4.95615 0.0420288 3.2688 0.763519 2.01616 2.01616C0.763519 3.2688 0.0420288 4.95615 0.00177892 6.72719C-0.038471 8.49824 0.605618 10.2166 1.80006 11.5249C2.9945 12.8331 4.64733 13.6305 6.41472 13.7512C8.1821 13.8719 9.92798 13.3065 11.2891 12.1727L15.2001 16.0845C15.2581 16.1425 15.3271 16.1886 15.403 16.22C15.4788 16.2514 15.5601 16.2676 15.6423 16.2676C15.7244 16.2676 15.8057 16.2514 15.8816 16.22C15.9574 16.1886 16.0264 16.1425 16.0845 16.0845C16.1425 16.0264 16.1886 15.9574 16.22 15.8816C16.2514 15.8057 16.2676 15.7244 16.2676 15.6423C16.2676 15.5601 16.2514 15.4788 16.22 15.403C16.1886 15.3271 16.1425 15.2581 16.0845 15.2001ZM1.26727 6.89227C1.26727 5.77975 1.59717 4.69221 2.21525 3.76719C2.83333 2.84216 3.71184 2.12119 4.73967 1.69545C5.76751 1.2697 6.89851 1.15831 7.98965 1.37535C9.08079 1.59239 10.0831 2.12812 10.8697 2.91479C11.6564 3.70146 12.1921 4.70374 12.4092 5.79489C12.6262 6.88603 12.5148 8.01703 12.0891 9.04486C11.6633 10.0727 10.9424 10.9512 10.0174 11.5693C9.09232 12.1874 8.00479 12.5173 6.89227 12.5173C5.40093 12.5156 3.97115 11.9225 2.91662 10.8679C1.86209 9.81338 1.26892 8.3836 1.26727 6.89227Z" },
134
- "list-dashes": { viewBox: "0 0 15 11.25", d: "M4.375 0.625C4.375 0.45924 4.44085 0.300269 4.55806 0.183058C4.67527 0.0658481 4.83424 0 5 0H14.375C14.5408 0 14.6997 0.0658481 14.8169 0.183058C14.9342 0.300269 15 0.45924 15 0.625C15 0.79076 14.9342 0.949731 14.8169 1.06694C14.6997 1.18415 14.5408 1.25 14.375 1.25H5C4.83424 1.25 4.67527 1.18415 4.55806 1.06694C4.44085 0.949731 4.375 0.79076 4.375 0.625ZM14.375 5H5C4.83424 5 4.67527 5.06585 4.55806 5.18306C4.44085 5.30027 4.375 5.45924 4.375 5.625C4.375 5.79076 4.44085 5.94973 4.55806 6.06694C4.67527 6.18415 4.83424 6.25 5 6.25H14.375C14.5408 6.25 14.6997 6.18415 14.8169 6.06694C14.9342 5.94973 15 5.79076 15 5.625C15 5.45924 14.9342 5.30027 14.8169 5.18306C14.6997 5.06585 14.5408 5 14.375 5ZM14.375 10H5C4.83424 10 4.67527 10.0658 4.55806 10.1831C4.44085 10.3003 4.375 10.4592 4.375 10.625C4.375 10.7908 4.44085 10.9497 4.55806 11.0669C4.67527 11.1842 4.83424 11.25 5 11.25H14.375C14.5408 11.25 14.6997 11.1842 14.8169 11.0669C14.9342 10.9497 15 10.7908 15 10.625C15 10.4592 14.9342 10.3003 14.8169 10.1831C14.6997 10.0658 14.5408 10 14.375 10ZM1.875 0H0.625C0.45924 0 0.300269 0.0658481 0.183058 0.183058C0.0658481 0.300269 0 0.45924 0 0.625C0 0.79076 0.0658481 0.949731 0.183058 1.06694C0.300269 1.18415 0.45924 1.25 0.625 1.25H1.875C2.04076 1.25 2.19973 1.18415 2.31694 1.06694C2.43415 0.949731 2.5 0.79076 2.5 0.625C2.5 0.45924 2.43415 0.300269 2.31694 0.183058C2.19973 0.0658481 2.04076 0 1.875 0ZM1.875 5H0.625C0.45924 5 0.300269 5.06585 0.183058 5.18306C0.0658481 5.30027 0 5.45924 0 5.625C0 5.79076 0.0658481 5.94973 0.183058 6.06694C0.300269 6.18415 0.45924 6.25 0.625 6.25H1.875C2.04076 6.25 2.19973 6.18415 2.31694 6.06694C2.43415 5.94973 2.5 5.79076 2.5 5.625C2.5 5.45924 2.43415 5.30027 2.31694 5.18306C2.19973 5.06585 2.04076 5 1.875 5ZM1.875 10H0.625C0.45924 10 0.300269 10.0658 0.183058 10.1831C0.0658481 10.3003 0 10.4592 0 10.625C0 10.7908 0.0658481 10.9497 0.183058 11.0669C0.300269 11.1842 0.45924 11.25 0.625 11.25H1.875C2.04076 11.25 2.19973 11.1842 2.31694 11.0669C2.43415 10.9497 2.5 10.7908 2.5 10.625C2.5 10.4592 2.43415 10.3003 2.31694 10.1831C2.19973 10.0658 2.04076 10 1.875 10Z" },
135
- "brain": { viewBox: "0 0 18.7506 15.6183", d: "M18.7506 7.80914C18.7498 6.98128 18.5145 6.17057 18.0721 5.47084C17.6297 4.77111 16.9981 4.21096 16.2506 3.85524V3.74664C16.2499 2.94135 15.9899 2.15767 15.5092 1.51158C15.0285 0.86548 14.3526 0.391288 13.5815 0.159164C12.8104 -0.0729602 11.985 -0.0506851 11.2276 0.222693C10.4701 0.496072 9.82073 1.00603 9.37559 1.67711C8.93044 1.00603 8.28109 0.496072 7.52361 0.222693C6.76614 -0.0506851 5.94078 -0.0729602 5.16966 0.159164C4.39854 0.391288 3.72263 0.86548 3.24194 1.51158C2.76125 2.15767 2.50131 2.94135 2.50059 3.74664V3.85524C1.75241 4.20999 1.12027 4.76978 0.677624 5.46955C0.234977 6.16932 0 6.98034 0 7.80836C0 8.63638 0.234977 9.4474 0.677624 10.1472C1.12027 10.8469 1.75241 11.4067 2.50059 11.7615V11.8716C2.50131 12.6769 2.76125 13.4606 3.24194 14.1067C3.72263 14.7528 4.39854 15.227 5.16966 15.4591C5.94078 15.6912 6.76614 15.669 7.52361 15.3956C8.28109 15.1222 8.93044 14.6123 9.37559 13.9412C9.82073 14.6123 10.4701 15.1222 11.2276 15.3956C11.985 15.669 12.8104 15.6912 13.5815 15.4591C14.3526 15.227 15.0285 14.7528 15.5092 14.1067C15.9899 13.4606 16.2499 12.6769 16.2506 11.8716V11.7615C16.998 11.406 17.6295 10.8462 18.0719 10.1467C18.5144 9.44724 18.7497 8.63679 18.7506 7.80914ZM6.25059 14.3716C5.63414 14.3716 5.03946 14.1437 4.58076 13.7319C4.12207 13.3201 3.8317 12.7533 3.76543 12.1404C3.96754 12.1692 4.17143 12.1838 4.37559 12.1841H5.00059C5.16635 12.1841 5.32532 12.1183 5.44253 12.0011C5.55974 11.8839 5.62559 11.7249 5.62559 11.5591C5.62559 11.3934 5.55974 11.2344 5.44253 11.1172C5.32532 11 5.16635 10.9341 5.00059 10.9341H4.37559C3.63774 10.935 2.92339 10.6748 2.35901 10.1995C1.79462 9.72422 1.41661 9.06457 1.2919 8.33734C1.16718 7.61012 1.30381 6.86221 1.6776 6.22605C2.05138 5.58989 2.63821 5.10651 3.33418 4.86149C3.45595 4.81837 3.56138 4.73858 3.63595 4.6331C3.71052 4.52761 3.75057 4.40161 3.75059 4.27242V3.74664C3.75059 3.0836 4.01398 2.44772 4.48282 1.97888C4.95166 1.51004 5.58755 1.24664 6.25059 1.24664C6.91363 1.24664 7.54951 1.51004 8.01835 1.97888C8.48719 2.44772 8.75059 3.0836 8.75059 3.74664V9.07946C8.06427 8.46218 7.17366 8.12096 6.25059 8.12164C6.08483 8.12164 5.92586 8.18749 5.80864 8.3047C5.69143 8.42191 5.62559 8.58088 5.62559 8.74664C5.62559 8.9124 5.69143 9.07138 5.80864 9.18859C5.92586 9.3058 6.08483 9.37164 6.25059 9.37164C6.91363 9.37164 7.54951 9.63504 8.01835 10.1039C8.48719 10.5727 8.75059 11.2086 8.75059 11.8716C8.75059 12.5347 8.48719 13.1706 8.01835 13.6394C7.54951 14.1083 6.91363 14.3716 6.25059 14.3716ZM14.3756 10.9341H13.7506C13.5848 10.9341 13.4259 11 13.3086 11.1172C13.1914 11.2344 13.1256 11.3934 13.1256 11.5591C13.1256 11.7249 13.1914 11.8839 13.3086 12.0011C13.4259 12.1183 13.5848 12.1841 13.7506 12.1841H14.3756C14.5797 12.1838 14.7836 12.1692 14.9857 12.1404C14.9338 12.6206 14.7439 13.0755 14.4389 13.4501C14.134 13.8246 13.7271 14.1028 13.2674 14.251C12.8077 14.3992 12.3149 14.4111 11.8485 14.2852C11.3822 14.1593 10.9624 13.901 10.6398 13.5416C10.3171 13.1821 10.1055 12.7369 10.0305 12.2597C9.95556 11.7826 10.0204 11.2939 10.2172 10.8529C10.4141 10.4118 10.7345 10.0372 11.1397 9.77429C11.5449 9.51143 12.0176 9.37157 12.5006 9.37164C12.6663 9.37164 12.8253 9.3058 12.9425 9.18859C13.0597 9.07138 13.1256 8.9124 13.1256 8.74664C13.1256 8.58088 13.0597 8.42191 12.9425 8.3047C12.8253 8.18749 12.6663 8.12164 12.5006 8.12164C11.5775 8.12096 10.6869 8.46218 10.0006 9.07946V3.74664C10.0006 3.0836 10.264 2.44772 10.7328 1.97888C11.2017 1.51004 11.8375 1.24664 12.5006 1.24664C13.1636 1.24664 13.7995 1.51004 14.2684 1.97888C14.7372 2.44772 15.0006 3.0836 15.0006 3.74664V4.27242C15.0006 4.40161 15.0407 4.52761 15.1152 4.6331C15.1898 4.73858 15.2952 4.81837 15.417 4.86149C16.113 5.10651 16.6998 5.58989 17.0736 6.22605C17.4474 6.86221 17.584 7.61012 17.4593 8.33734C17.3346 9.06457 16.9566 9.72422 16.3922 10.1995C15.8278 10.6748 15.1134 10.935 14.3756 10.9341ZM15.6256 6.87164C15.6256 7.0374 15.5597 7.19637 15.4425 7.31358C15.3253 7.43079 15.1663 7.49664 15.0006 7.49664H14.6881C13.9422 7.49664 13.2268 7.20033 12.6994 6.67288C12.1719 6.14543 11.8756 5.43006 11.8756 4.68414V4.37164C11.8756 4.20588 11.9414 4.04691 12.0586 3.9297C12.1759 3.81249 12.3348 3.74664 12.5006 3.74664C12.6663 3.74664 12.8253 3.81249 12.9425 3.9297C13.0597 4.04691 13.1256 4.20588 13.1256 4.37164V4.68414C13.1256 5.09854 13.2902 5.49597 13.5832 5.789C13.8763 6.08202 14.2737 6.24664 14.6881 6.24664H15.0006C15.1663 6.24664 15.3253 6.31249 15.4425 6.4297C15.5597 6.54691 15.6256 6.70588 15.6256 6.87164ZM4.06309 7.49664H3.75059C3.58483 7.49664 3.42585 7.43079 3.30864 7.31358C3.19143 7.19637 3.12559 7.0374 3.12559 6.87164C3.12559 6.70588 3.19143 6.54691 3.30864 6.4297C3.42585 6.31249 3.58483 6.24664 3.75059 6.24664H4.06309C4.47749 6.24664 4.87492 6.08202 5.16794 5.789C5.46097 5.49597 5.62559 5.09854 5.62559 4.68414V4.37164C5.62559 4.20588 5.69143 4.04691 5.80864 3.9297C5.92586 3.81249 6.08483 3.74664 6.25059 3.74664C6.41635 3.74664 6.57532 3.81249 6.69253 3.9297C6.80974 4.04691 6.87559 4.20588 6.87559 4.37164V4.68414C6.87559 5.43006 6.57927 6.14543 6.05182 6.67288C5.52438 7.20033 4.80901 7.49664 4.06309 7.49664Z" },
136
- "eye": { viewBox: "0 0 18.75 12.5", d: "M18.6961 5.99688C18.6687 5.93516 18.007 4.46719 16.5359 2.99609C14.5758 1.03594 12.1 0 9.37499 0C6.64999 0 4.17421 1.03594 2.21405 2.99609C0.742961 4.46719 0.0781175 5.9375 0.0538988 5.99688C0.0183622 6.07681 0 6.16331 0 6.25078C0 6.33826 0.0183622 6.42476 0.0538988 6.50469C0.0812425 6.56641 0.742961 8.03359 2.21405 9.50469C4.17421 11.4641 6.64999 12.5 9.37499 12.5C12.1 12.5 14.5758 11.4641 16.5359 9.50469C18.007 8.03359 18.6687 6.56641 18.6961 6.50469C18.7316 6.42476 18.75 6.33826 18.75 6.25078C18.75 6.16331 18.7316 6.07681 18.6961 5.99688ZM9.37499 11.25C6.9703 11.25 4.86952 10.3758 3.13046 8.65234C2.4169 7.94273 1.80983 7.13356 1.32812 6.25C1.8097 5.36636 2.41679 4.55717 3.13046 3.84766C4.86952 2.12422 6.9703 1.25 9.37499 1.25C11.7797 1.25 13.8805 2.12422 15.6195 3.84766C16.3345 4.557 16.9429 5.36619 17.4258 6.25C16.8625 7.30156 14.4086 11.25 9.37499 11.25ZM9.37499 2.5C8.63331 2.5 7.90829 2.71993 7.2916 3.13199C6.67492 3.54404 6.19427 4.12971 5.91044 4.81494C5.62662 5.50016 5.55235 6.25416 5.69705 6.98159C5.84174 7.70902 6.19889 8.3772 6.72334 8.90165C7.24779 9.4261 7.91597 9.78325 8.6434 9.92795C9.37083 10.0726 10.1248 9.99838 10.8101 9.71455C11.4953 9.43072 12.0809 8.95007 12.493 8.33339C12.9051 7.7167 13.125 6.99168 13.125 6.25C13.124 5.25576 12.7285 4.30253 12.0255 3.59949C11.3225 2.89645 10.3692 2.50103 9.37499 2.5ZM9.37499 8.75C8.88054 8.75 8.39719 8.60338 7.98607 8.32867C7.57494 8.05397 7.25451 7.66352 7.06529 7.20671C6.87607 6.74989 6.82657 6.24723 6.92303 5.76227C7.01949 5.27732 7.25759 4.83186 7.60722 4.48223C7.95686 4.1326 8.40231 3.8945 8.88727 3.79804C9.37222 3.70157 9.87488 3.75108 10.3317 3.9403C10.7885 4.12952 11.179 4.44995 11.4537 4.86107C11.7284 5.2722 11.875 5.75555 11.875 6.25C11.875 6.91304 11.6116 7.54893 11.1428 8.01777C10.6739 8.48661 10.038 8.75 9.37499 8.75Z" },
137
- "Frame": { viewBox: "0 0 16.7501 12.5", d: "M1.25 0.625V11.875C1.25 12.0408 1.18415 12.1997 1.06694 12.3169C0.949731 12.4342 0.79076 12.5 0.625 12.5C0.45924 12.5 0.300269 12.4342 0.183058 12.3169C0.0658481 12.1997 0 12.0408 0 11.875V0.625C0 0.45924 0.0658481 0.300269 0.183058 0.183058C0.300269 0.0658481 0.45924 0 0.625 0C0.79076 0 0.949731 0.0658481 1.06694 0.183058C1.18415 0.300269 1.25 0.45924 1.25 0.625ZM8.4375 4.88281L6.875 5.39062V3.75C6.875 3.58424 6.80915 3.42527 6.69194 3.30806C6.57473 3.19085 6.41576 3.125 6.25 3.125C6.08424 3.125 5.92527 3.19085 5.80806 3.30806C5.69085 3.42527 5.625 3.58424 5.625 3.75V5.39062L4.0625 4.88281C3.90482 4.83101 3.73302 4.84397 3.5849 4.91884C3.43677 4.99371 3.32446 5.12435 3.27266 5.28203C3.22086 5.43971 3.23382 5.61151 3.30868 5.75963C3.38355 5.90776 3.5142 6.02007 3.67188 6.07188L5.23438 6.57891L4.27031 7.90703C4.21937 7.97323 4.1822 8.04897 4.16103 8.12977C4.13985 8.21058 4.13508 8.29481 4.14701 8.37748C4.15894 8.46016 4.18733 8.53961 4.23048 8.61113C4.27364 8.68265 4.3307 8.74479 4.39828 8.79389C4.46586 8.84298 4.5426 8.87803 4.62396 8.89696C4.70532 8.91589 4.78965 8.91832 4.87196 8.90411C4.95428 8.88989 5.03291 8.85932 5.10321 8.8142C5.17351 8.76908 5.23405 8.71032 5.28125 8.64141L6.24531 7.31328L7.20937 8.64141C7.25658 8.71032 7.31712 8.76908 7.38742 8.8142C7.45772 8.85932 7.53635 8.88989 7.61866 8.90411C7.70098 8.91832 7.7853 8.91589 7.86666 8.89696C7.94802 8.87803 8.02476 8.84298 8.09235 8.79389C8.15993 8.74479 8.21699 8.68265 8.26014 8.61113C8.3033 8.53961 8.33168 8.46016 8.34361 8.37748C8.35554 8.29481 8.35078 8.21058 8.3296 8.12977C8.30842 8.04897 8.27126 7.97323 8.22031 7.90703L7.25625 6.57891L8.81875 6.07188C8.96947 6.01582 9.09277 5.90382 9.16304 5.75918C9.2333 5.61454 9.24511 5.44839 9.19602 5.29526C9.14692 5.14213 9.04069 5.01382 8.89942 4.93701C8.75815 4.86019 8.59271 4.84078 8.4375 4.88281ZM16.7188 5.28437C16.6675 5.12813 16.5568 4.99837 16.4106 4.9232C16.2643 4.84804 16.0944 4.83353 15.9375 4.88281L14.375 5.39062V3.75C14.375 3.58424 14.3092 3.42527 14.1919 3.30806C14.0747 3.19085 13.9158 3.125 13.75 3.125C13.5842 3.125 13.4253 3.19085 13.3081 3.30806C13.1908 3.42527 13.125 3.58424 13.125 3.75V5.39062L11.5625 4.88359C11.4048 4.83231 11.2332 4.84577 11.0855 4.921C10.9377 4.99624 10.8259 5.12709 10.7746 5.28477C10.7233 5.44244 10.7368 5.61404 10.812 5.7618C10.8873 5.90955 11.0181 6.02137 11.1758 6.07266L12.7383 6.57969L11.7742 7.90781C11.7233 7.97401 11.6861 8.04975 11.6649 8.13055C11.6438 8.21136 11.639 8.29559 11.6509 8.37826C11.6628 8.46094 11.6912 8.54039 11.7344 8.61191C11.7775 8.68343 11.8346 8.74557 11.9022 8.79467C11.9698 8.84376 12.0465 8.87881 12.1279 8.89774C12.2092 8.91667 12.2936 8.9191 12.3759 8.90489C12.4582 8.89067 12.5368 8.8601 12.6071 8.81498C12.6774 8.76986 12.738 8.7111 12.7852 8.64219L13.7492 7.31406L14.7133 8.64219C14.7605 8.7111 14.821 8.76986 14.8913 8.81498C14.9616 8.8601 15.0403 8.89067 15.1226 8.90489C15.2049 8.9191 15.2892 8.91667 15.3706 8.89774C15.4519 8.87881 15.5287 8.84376 15.5963 8.79467C15.6638 8.74557 15.7209 8.68343 15.764 8.61191C15.8072 8.54039 15.8356 8.46094 15.8475 8.37826C15.8594 8.29559 15.8547 8.21136 15.8335 8.13055C15.8123 8.04975 15.7752 7.97401 15.7242 7.90781L14.7602 6.57969L16.3227 6.07266C16.4795 6.02038 16.6093 5.90807 16.6835 5.76033C16.7578 5.61258 16.7704 5.44144 16.7188 5.28437Z" },
138
- "arrow-up": { viewBox: "0 0 12.5008 15.0005", d: "M12.3175 6.69268C12.2595 6.75079 12.1906 6.79689 12.1147 6.82834C12.0388 6.85979 11.9575 6.87598 11.8753 6.87598C11.7932 6.87598 11.7119 6.85979 11.636 6.82834C11.5601 6.79689 11.4912 6.75079 11.4332 6.69268L6.87535 2.13409V14.3755C6.87535 14.5413 6.8095 14.7002 6.69229 14.8174C6.57508 14.9346 6.41611 15.0005 6.25035 15.0005C6.08459 15.0005 5.92562 14.9346 5.80841 14.8174C5.6912 14.7002 5.62535 14.5413 5.62535 14.3755V2.13409L1.06753 6.69268C0.95026 6.80995 0.7912 6.87584 0.625347 6.87584C0.459495 6.87584 0.300435 6.80995 0.18316 6.69268C0.0658846 6.5754 1.2357e-09 6.41634 0 6.25049C-1.2357e-09 6.08464 0.0658846 5.92558 0.18316 5.8083L5.80816 0.183304C5.86621 0.125194 5.93514 0.0790945 6.01101 0.0476418C6.08688 0.0161892 6.16821 0 6.25035 0C6.33248 0 6.41381 0.0161892 6.48969 0.0476418C6.56556 0.0790945 6.63449 0.125194 6.69254 0.183304L12.3175 5.8083C12.3756 5.86635 12.4217 5.93528 12.4532 6.01115C12.4847 6.08703 12.5008 6.16836 12.5008 6.25049C12.5008 6.33263 12.4847 6.41396 12.4532 6.48983C12.4217 6.5657 12.3756 6.63463 12.3175 6.69268Z" },
139
- "question": { viewBox: "0 0 16.25 16.25", d: "M9.0625 12.1875C9.0625 12.3729 9.00752 12.5542 8.90451 12.7083C8.80149 12.8625 8.65507 12.9827 8.48377 13.0536C8.31246 13.1246 8.12396 13.1432 7.94211 13.107C7.76025 13.0708 7.5932 12.9815 7.46209 12.8504C7.33098 12.7193 7.24169 12.5523 7.20552 12.3704C7.16934 12.1885 7.18791 12 7.25887 11.8287C7.32982 11.6574 7.44999 11.511 7.60416 11.408C7.75833 11.305 7.93958 11.25 8.125 11.25C8.37364 11.25 8.6121 11.3488 8.78792 11.5246C8.96373 11.7004 9.0625 11.9389 9.0625 12.1875ZM8.125 3.75C6.40157 3.75 5 5.01172 5 6.5625V6.875C5 7.04076 5.06585 7.19973 5.18306 7.31694C5.30027 7.43415 5.45924 7.5 5.625 7.5C5.79076 7.5 5.94973 7.43415 6.06695 7.31694C6.18416 7.19973 6.25 7.04076 6.25 6.875V6.5625C6.25 5.70312 7.09141 5 8.125 5C9.1586 5 10 5.70312 10 6.5625C10 7.42188 9.1586 8.125 8.125 8.125C7.95924 8.125 7.80027 8.19085 7.68306 8.30806C7.56585 8.42527 7.5 8.58424 7.5 8.75V9.375C7.5 9.54076 7.56585 9.69973 7.68306 9.81694C7.80027 9.93415 7.95924 10 8.125 10C8.29076 10 8.44974 9.93415 8.56695 9.81694C8.68416 9.69973 8.75 9.54076 8.75 9.375V9.31875C10.175 9.05703 11.25 7.92031 11.25 6.5625C11.25 5.01172 9.84844 3.75 8.125 3.75ZM16.25 8.125C16.25 9.73197 15.7735 11.3029 14.8807 12.639C13.9879 13.9752 12.719 15.0166 11.2343 15.6315C9.74966 16.2465 8.11599 16.4074 6.53989 16.0939C4.9638 15.7804 3.51606 15.0065 2.37976 13.8702C1.24346 12.7339 0.469628 11.2862 0.156123 9.71011C-0.157382 8.13401 0.00352043 6.50035 0.618482 5.0157C1.23344 3.53105 2.27485 2.2621 3.611 1.36931C4.94714 0.476523 6.51803 0 8.125 0C10.2792 0.00227486 12.3445 0.85903 13.8677 2.38227C15.391 3.90551 16.2477 5.97081 16.25 8.125ZM15 8.125C15 6.76525 14.5968 5.43604 13.8414 4.30545C13.0859 3.17487 12.0122 2.29368 10.756 1.77333C9.49971 1.25298 8.11738 1.11683 6.78376 1.3821C5.45014 1.64737 4.22513 2.30215 3.26364 3.26364C2.30216 4.22513 1.64738 5.45013 1.3821 6.78375C1.11683 8.11737 1.25298 9.49971 1.77333 10.7559C2.29368 12.0122 3.17487 13.0859 4.30546 13.8414C5.43605 14.5968 6.76526 15 8.125 15C9.94773 14.9979 11.6952 14.2729 12.9841 12.9841C14.2729 11.6952 14.9979 9.94773 15 8.125Z" },
140
- "caret-up": { viewBox: "0 0 13.7508 7.50098", d: "M13.5675 7.31768C13.5095 7.37579 13.4406 7.42189 13.3647 7.45334C13.2888 7.48479 13.2075 7.50098 13.1253 7.50098C13.0432 7.50098 12.9619 7.48479 12.886 7.45334C12.8101 7.42189 12.7412 7.37579 12.6832 7.31768L6.87535 1.50909L1.06753 7.31768C0.95026 7.43495 0.7912 7.50084 0.625347 7.50084C0.459495 7.50084 0.300435 7.43495 0.18316 7.31768C0.0658846 7.2004 3.26935e-09 7.04134 0 6.87549C-3.26935e-09 6.70964 0.0658846 6.55058 0.18316 6.4333L6.43316 0.183304C6.49121 0.125194 6.56014 0.0790947 6.63601 0.047642C6.71188 0.0161893 6.79321 0 6.87535 0C6.95748 0 7.03881 0.0161893 7.11469 0.047642C7.19056 0.0790947 7.25949 0.125194 7.31754 0.183304L13.5675 6.4333C13.6256 6.49135 13.6717 6.56028 13.7032 6.63615C13.7347 6.71203 13.7508 6.79336 13.7508 6.87549C13.7508 6.95763 13.7347 7.03896 13.7032 7.11483C13.6717 7.1907 13.6256 7.25963 13.5675 7.31768Z" },
141
- "stop 1": { viewBox: "0 0 13.75 13.75", d: "M12.5 0H1.25C0.918479 0 0.600537 0.131696 0.366116 0.366116C0.131696 0.600537 0 0.918479 0 1.25V12.5C0 12.8315 0.131696 13.1495 0.366116 13.3839C0.600537 13.6183 0.918479 13.75 1.25 13.75H12.5C12.8315 13.75 13.1495 13.6183 13.3839 13.3839C13.6183 13.1495 13.75 12.8315 13.75 12.5V1.25C13.75 0.918479 13.6183 0.600537 13.3839 0.366116C13.1495 0.131696 12.8315 0 12.5 0ZM12.5 12.5H1.25V1.25H12.5V12.5Z" },
142
- "pause 1": { viewBox: "0 0 13.75 13.75", d: "M13.75 0.625V3.75C13.75 3.91576 13.6842 4.07473 13.5669 4.19194C13.4497 4.30915 13.2908 4.375 13.125 4.375C12.9592 4.375 12.8003 4.30915 12.6831 4.19194C12.5658 4.07473 12.5 3.91576 12.5 3.75V1.25H10C9.83424 1.25 9.67527 1.18415 9.55806 1.06694C9.44085 0.949731 9.375 0.79076 9.375 0.625C9.375 0.45924 9.44085 0.300269 9.55806 0.183058C9.67527 0.0658481 9.83424 0 10 0H13.125C13.2908 0 13.4497 0.0658481 13.5669 0.183058C13.6842 0.300269 13.75 0.45924 13.75 0.625ZM3.75 12.5H1.25V10C1.25 9.83424 1.18415 9.67527 1.06694 9.55806C0.949731 9.44085 0.79076 9.375 0.625 9.375C0.45924 9.375 0.300269 9.44085 0.183058 9.55806C0.0658481 9.67527 0 9.83424 0 10V13.125C0 13.2908 0.0658481 13.4497 0.183058 13.5669C0.300269 13.6842 0.45924 13.75 0.625 13.75H3.75C3.91576 13.75 4.07473 13.6842 4.19194 13.5669C4.30915 13.4497 4.375 13.2908 4.375 13.125C4.375 12.9592 4.30915 12.8003 4.19194 12.6831C4.07473 12.5658 3.91576 12.5 3.75 12.5ZM13.125 9.375C12.9592 9.375 12.8003 9.44085 12.6831 9.55806C12.5658 9.67527 12.5 9.83424 12.5 10V12.5H10C9.83424 12.5 9.67527 12.5658 9.55806 12.6831C9.44085 12.8003 9.375 12.9592 9.375 13.125C9.375 13.2908 9.44085 13.4497 9.55806 13.5669C9.67527 13.6842 9.83424 13.75 10 13.75H13.125C13.2908 13.75 13.4497 13.6842 13.5669 13.5669C13.6842 13.4497 13.75 13.2908 13.75 13.125V10C13.75 9.83424 13.6842 9.67527 13.5669 9.55806C13.4497 9.44085 13.2908 9.375 13.125 9.375ZM3.75 0H0.625C0.45924 0 0.300269 0.0658481 0.183058 0.183058C0.0658481 0.300269 0 0.45924 0 0.625V3.75C0 3.91576 0.0658481 4.07473 0.183058 4.19194C0.300269 4.30915 0.45924 4.375 0.625 4.375C0.79076 4.375 0.949731 4.30915 1.06694 4.19194C1.18415 4.07473 1.25 3.91576 1.25 3.75V1.25H3.75C3.91576 1.25 4.07473 1.18415 4.19194 1.06694C4.30915 0.949731 4.375 0.79076 4.375 0.625C4.375 0.45924 4.30915 0.300269 4.19194 0.183058C4.07473 0.0658481 3.91576 0 3.75 0Z" },
143
- "play 1": { viewBox: "0 0 13.75 13.75", d: "M8.75 4.375V0.625C8.75 0.45924 8.81585 0.300269 8.93306 0.183058C9.05027 0.0658481 9.20924 0 9.375 0C9.54076 0 9.69973 0.0658481 9.81694 0.183058C9.93415 0.300269 10 0.45924 10 0.625V3.75H13.125C13.2908 3.75 13.4497 3.81585 13.5669 3.93306C13.6842 4.05027 13.75 4.20924 13.75 4.375C13.75 4.54076 13.6842 4.69973 13.5669 4.81694C13.4497 4.93415 13.2908 5 13.125 5H9.375C9.20924 5 9.05027 4.93415 8.93306 4.81694C8.81585 4.69973 8.75 4.54076 8.75 4.375ZM4.375 8.75H0.625C0.45924 8.75 0.300269 8.81585 0.183058 8.93306C0.0658481 9.05027 0 9.20924 0 9.375C0 9.54076 0.0658481 9.69973 0.183058 9.81694C0.300269 9.93415 0.45924 10 0.625 10H3.75V13.125C3.75 13.2908 3.81585 13.4497 3.93306 13.5669C4.05027 13.6842 4.20924 13.75 4.375 13.75C4.54076 13.75 4.69973 13.6842 4.81694 13.5669C4.93415 13.4497 5 13.2908 5 13.125V9.375C5 9.20924 4.93415 9.05027 4.81694 8.93306C4.69973 8.81585 4.54076 8.75 4.375 8.75ZM13.125 8.75H9.375C9.20924 8.75 9.05027 8.81585 8.93306 8.93306C8.81585 9.05027 8.75 9.20924 8.75 9.375V13.125C8.75 13.2908 8.81585 13.4497 8.93306 13.5669C9.05027 13.6842 9.20924 13.75 9.375 13.75C9.54076 13.75 9.69973 13.6842 9.81694 13.5669C9.93415 13.4497 10 13.2908 10 13.125V10H13.125C13.2908 10 13.4497 9.93415 13.5669 9.81694C13.6842 9.69973 13.75 9.54076 13.75 9.375C13.75 9.20924 13.6842 9.05027 13.5669 8.93306C13.4497 8.81585 13.2908 8.75 13.125 8.75ZM4.375 0C4.20924 0 4.05027 0.0658481 3.93306 0.183058C3.81585 0.300269 3.75 0.45924 3.75 0.625V3.75H0.625C0.45924 3.75 0.300269 3.81585 0.183058 3.93306C0.0658481 4.05027 0 4.20924 0 4.375C0 4.54076 0.0658481 4.69973 0.183058 4.81694C0.300269 4.93415 0.45924 5 0.625 5H4.375C4.54076 5 4.69973 4.93415 4.81694 4.81694C4.93415 4.69973 5 4.54076 5 4.375V0.625C5 0.45924 4.93415 0.300269 4.81694 0.183058C4.69973 0.0658481 4.54076 0 4.375 0Z" },
144
- "corners-out 1": { viewBox: "0 0 16 16", strokes: [
145
- { d: "M1 5V1H5", strokeWidth: 1.75, strokeLinecap: "round" },
146
- { d: "M11 1H15V5", strokeWidth: 1.75, strokeLinecap: "round" },
147
- { d: "M15 11V15H11", strokeWidth: 1.75, strokeLinecap: "round" },
148
- { d: "M5 15H1V11", strokeWidth: 1.75, strokeLinecap: "round" }
149
- ] },
150
- "corners-in 1": { viewBox: "0 0 16 16", strokes: [
151
- { d: "M1 1H5V5", strokeWidth: 1.75, strokeLinecap: "round" },
152
- { d: "M11 1H15V5", strokeWidth: 1.75, strokeLinecap: "round" },
153
- { d: "M15 11V15H11", strokeWidth: 1.75, strokeLinecap: "round" },
154
- { d: "M1 11H5V15", strokeWidth: 1.75, strokeLinecap: "round" }
155
- ] },
156
- "Volume": { viewBox: "0 0 12 14", strokes: [
157
- { d: "M1 13L1 7", strokeWidth: 2, strokeLinecap: "round" },
158
- { d: "M6 13L6 4", strokeWidth: 2, strokeLinecap: "round" },
159
- { d: "M11 13L11 1", strokeWidth: 2, strokeLinecap: "round" }
160
- ] }
108
+ import {
109
+ IconAdjustmentsHorizontalFilled,
110
+ IconArrowUp,
111
+ IconArchive,
112
+ IconBuildingHospital,
113
+ IconBooks,
114
+ IconBulb,
115
+ IconChartBar,
116
+ IconCheck,
117
+ IconChecklist,
118
+ IconChevronLeft,
119
+ IconChevronDown,
120
+ IconChevronUp,
121
+ IconFile,
122
+ IconFolders,
123
+ IconFolder,
124
+ IconHelpCircle,
125
+ IconLanguage,
126
+ IconMapPin,
127
+ IconMessages,
128
+ IconMicrophone,
129
+ IconPencil,
130
+ IconPlus,
131
+ IconSchool,
132
+ IconSearch,
133
+ IconSparkles,
134
+ IconUser,
135
+ IconUserFilled,
136
+ IconUserCircle,
137
+ IconUserSearch,
138
+ IconUsers,
139
+ IconUsersGroup,
140
+ IconTrash,
141
+ IconTrashFilled,
142
+ IconTrashOff,
143
+ IconTrashX,
144
+ IconChevronRight,
145
+ IconX
146
+ } from "@tabler/icons-react";
147
+ var tablerIconRegistry = {
148
+ IconAdjustmentsHorizontalFilled,
149
+ IconArrowUp,
150
+ IconArchive,
151
+ IconBuildingHospital,
152
+ IconBooks,
153
+ IconBulb,
154
+ IconChartBar,
155
+ IconCheck,
156
+ IconChecklist,
157
+ IconChevronLeft,
158
+ IconChevronDown,
159
+ IconChevronUp,
160
+ IconFile,
161
+ IconFolders,
162
+ IconFolder,
163
+ IconHelpCircle,
164
+ IconLanguage,
165
+ IconMapPin,
166
+ IconMessages,
167
+ IconMicrophone,
168
+ IconPencil,
169
+ IconPlus,
170
+ IconSchool,
171
+ IconSearch,
172
+ IconSparkles,
173
+ IconUser,
174
+ IconUserFilled,
175
+ IconUserCircle,
176
+ IconUserSearch,
177
+ IconUsers,
178
+ IconUsersGroup,
179
+ IconTrash,
180
+ IconTrashFilled,
181
+ IconTrashOff,
182
+ IconTrashX,
183
+ IconChevronRight,
184
+ IconX
161
185
  };
162
- var iconNameMap = {
163
- "files": "files",
164
- "books": "books",
165
- "file-magnifying-glass": "file-magnifying-glass",
166
- "minus": "minus",
167
- "plus": "plus",
168
- "arrows-in-simple": "arrows-in-simple",
169
- "check": "check",
170
- "caret-down": "caret-down",
171
- "lightbulb": "lightbulb",
172
- "chats": "chats",
173
- "file": "file",
174
- "folders": "folders",
175
- "sparkle": "sparkle",
176
- "microphone-stage": "microphone-stage",
177
- "battery-low": "battery-low",
178
- "microphone": "microphone",
179
- "microphone-slash": "microphone-slash",
180
- "play": "play",
181
- "x": "x",
182
- "mail": "Mail",
183
- "pause": "pause",
184
- "broadcast": "broadcast",
185
- "sidebar-simple": "sidebar-simple",
186
- "pencil-simple-line": "pencil-simple-line",
187
- "search": "search",
188
- "list-dashes": "list-dashes",
189
- "brain": "brain",
190
- "eye": "eye",
191
- "frame": "Frame",
192
- "arrow-up": "arrow-up",
193
- "question": "question",
194
- "caret-up": "caret-up",
195
- "stop-1": "stop 1",
196
- "pause-1": "pause 1",
197
- "play-1": "play 1",
198
- "corners-out-1": "corners-out 1",
199
- "corners-in-1": "corners-in 1",
200
- "volume": "Volume"
186
+ var tablerIconNames = Object.keys(tablerIconRegistry).sort(
187
+ (left, right) => left.localeCompare(right)
188
+ );
189
+ function resolveTablerIcon(name) {
190
+ const candidate = tablerIconRegistry[name];
191
+ if (!candidate) {
192
+ throw new Error(
193
+ `Icon could not resolve Tabler icon \`${name}\`. Import it and append it to tablerIconRegistry before using it.`
194
+ );
195
+ }
196
+ return candidate;
197
+ }
198
+ var legacyIconToTablerNameMap = {
199
+ "adjustments-horizontal-filled": "IconAdjustmentsHorizontalFilled",
200
+ "books": "IconBooks",
201
+ "organization": "IconBuildingHospital",
202
+ "locations": "IconMapPin",
203
+ "people": "IconUsers",
204
+ "terminologies": "IconLanguage",
205
+ "guidelines": "IconChecklist",
206
+ "logs": "IconChartBar",
207
+ "profile": "IconUserSearch",
208
+ "experience": "IconSchool",
209
+ "voice": "IconMicrophone",
210
+ "plus": "IconPlus",
211
+ "check": "IconCheck",
212
+ "caret-down": "IconChevronDown",
213
+ "lightbulb": "IconBulb",
214
+ "chats": "IconMessages",
215
+ "file": "IconFile",
216
+ "folders": "IconFolders",
217
+ "sparkle": "IconSparkles",
218
+ "x": "IconX",
219
+ "pencil-simple-line": "IconPencil",
220
+ "search": "IconSearch",
221
+ "arrow-up": "IconArrowUp",
222
+ "question": "IconHelpCircle",
223
+ "user-filled": "IconUserFilled",
224
+ "caret-up": "IconChevronUp",
225
+ "caret-left": "IconChevronLeft",
226
+ "caret-right": "IconChevronRight",
227
+ "users-group": "IconUsersGroup",
228
+ "archive": "IconArchive",
229
+ "folder": "IconFolder",
230
+ "trash": "IconTrash",
231
+ "trash-filled": "IconTrashFilled",
232
+ "trash-off": "IconTrashOff",
233
+ "trash-x": "IconTrashX",
234
+ "delete": "IconTrash",
235
+ "remove": "IconTrashX",
236
+ "lixeira": "IconTrash"
201
237
  };
238
+ var iconNames = Object.keys(legacyIconToTablerNameMap);
202
239
  var iconRegistry = Object.fromEntries(
203
- Object.entries(iconNameMap).map(([canonicalName, rawName]) => [
204
- canonicalName,
205
- rawIconRegistry[rawName]
240
+ Object.entries(legacyIconToTablerNameMap).map(([name, tablerName]) => [
241
+ name,
242
+ resolveTablerIcon(tablerName)
206
243
  ])
207
244
  );
208
- var iconNames = Object.keys(iconNameMap);
245
+ var iconNameMap = Object.fromEntries(
246
+ iconNames.map((name) => [name, name])
247
+ );
209
248
 
210
249
  // src/components/icon.tsx
211
- import { jsx as jsx2, jsxs } from "react/jsx-runtime";
250
+ import { jsx as jsx2 } from "react/jsx-runtime";
212
251
  var iconSizeOptions = ["xs", "sm", "md", "lg", "xl"];
213
252
  var iconColorOptions = [
214
253
  "current",
@@ -246,7 +285,7 @@ var iconColorOptions = [
246
285
  "agent-mint",
247
286
  "agent-green"
248
287
  ];
249
- var iconSizeScale = {
288
+ var iconSizeMap = {
250
289
  xs: 12,
251
290
  sm: 16,
252
291
  md: 20,
@@ -289,7 +328,7 @@ var iconColorScale = {
289
328
  "agent-green": "var(--sofya-agent-green)"
290
329
  };
291
330
  function resolveIconSize(size) {
292
- return typeof size === "number" ? size : iconSizeScale[size];
331
+ return typeof size === "number" ? size : iconSizeMap[size];
293
332
  }
294
333
  function resolveIconColor(color) {
295
334
  if (!color || color === "current") {
@@ -297,55 +336,43 @@ function resolveIconColor(color) {
297
336
  }
298
337
  return iconColorScale[color];
299
338
  }
300
- var Icon = React2.forwardRef(function Icon2({
301
- name,
302
- size = "md",
303
- color = "current",
304
- title,
305
- strokeWidth = 2,
306
- className,
307
- style,
308
- ...props
309
- }, ref) {
310
- const icon = iconRegistry[name];
311
- const titleId = React2.useId();
339
+ var Icon = React2.forwardRef(function Icon2(incomingProps, ref) {
340
+ const {
341
+ decorative,
342
+ size = "md",
343
+ color = "current",
344
+ title,
345
+ strokeWidth = 2,
346
+ className,
347
+ style
348
+ } = incomingProps;
349
+ const IconComponent = iconRegistry[incomingProps.name];
350
+ const {
351
+ decorative: _decorative,
352
+ color: _color,
353
+ name: _name,
354
+ size: _size,
355
+ strokeWidth: _strokeWidth,
356
+ title: _title,
357
+ ...props
358
+ } = incomingProps;
312
359
  const dimension = resolveIconSize(size);
313
360
  const resolvedColor = resolveIconColor(color);
314
361
  const resolvedStyle = resolvedColor ? { ...style, color: resolvedColor } : style;
315
- const fillPath = "d" in icon ? icon.d : void 0;
316
- const strokePaths = "strokes" in icon ? icon.strokes : void 0;
317
- return /* @__PURE__ */ jsxs(
318
- "svg",
362
+ const isDecorative = decorative ?? !title;
363
+ return /* @__PURE__ */ jsx2(
364
+ IconComponent,
319
365
  {
320
366
  ref,
321
- xmlns: "http://www.w3.org/2000/svg",
322
- viewBox: icon.viewBox,
323
367
  className: cn("inline-block shrink-0 align-middle", className),
324
- fill: "none",
325
- role: title ? "img" : void 0,
326
- "aria-hidden": title ? void 0 : true,
327
- "aria-labelledby": title ? titleId : void 0,
368
+ role: isDecorative ? void 0 : "img",
369
+ "aria-hidden": isDecorative ? true : void 0,
328
370
  focusable: "false",
329
371
  ...props,
330
- width: dimension,
331
- height: dimension,
332
- style: resolvedStyle,
333
- children: [
334
- title ? /* @__PURE__ */ jsx2("title", { id: titleId, children: title }) : null,
335
- fillPath ? /* @__PURE__ */ jsx2("path", { d: fillPath, fill: "currentColor" }) : null,
336
- strokePaths?.map((path, index) => /* @__PURE__ */ jsx2(
337
- "path",
338
- {
339
- d: path.d,
340
- fill: "none",
341
- stroke: "currentColor",
342
- strokeWidth: path.strokeWidth ?? strokeWidth,
343
- strokeLinecap: path.strokeLinecap ?? "round",
344
- strokeLinejoin: "round"
345
- },
346
- `${name}-${index}`
347
- ))
348
- ]
372
+ size: dimension,
373
+ title,
374
+ stroke: strokeWidth,
375
+ style: resolvedStyle
349
376
  }
350
377
  );
351
378
  });
@@ -566,7 +593,7 @@ function renderTextContent(children, { as, className, size = "body", style, vari
566
593
  }
567
594
 
568
595
  // src/components/accordion.tsx
569
- import { jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
596
+ import { jsx as jsx4, jsxs } from "react/jsx-runtime";
570
597
  var Accordion = AccordionPrimitive.Root;
571
598
  var AccordionItem = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
572
599
  AccordionPrimitive.Item,
@@ -580,7 +607,7 @@ var AccordionItem = React4.forwardRef(({ className, ...props }, ref) => /* @__PU
580
607
  }
581
608
  ));
582
609
  AccordionItem.displayName = AccordionPrimitive.Item.displayName;
583
- var AccordionTrigger = React4.forwardRef(({ className, children, indicator, ...props }, ref) => /* @__PURE__ */ jsx4(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs2(
610
+ var AccordionTrigger = React4.forwardRef(({ className, children, indicator, ...props }, ref) => /* @__PURE__ */ jsx4(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
584
611
  AccordionPrimitive.Trigger,
585
612
  {
586
613
  ref,
@@ -633,7 +660,7 @@ AccordionContent.displayName = AccordionPrimitive.Content.displayName;
633
660
  // src/components/alert.tsx
634
661
  import * as React5 from "react";
635
662
  import { cva as cva2 } from "class-variance-authority";
636
- import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
663
+ import { jsx as jsx5, jsxs as jsxs2 } from "react/jsx-runtime";
637
664
  var alertToneOptions = [
638
665
  "default",
639
666
  "info",
@@ -683,7 +710,7 @@ var Alert = React5.forwardRef(function Alert2({
683
710
  const resolvedRole = role ?? (resolvedTone === "warning" || resolvedTone === "destructive" ? "alert" : "status");
684
711
  const toneIconName = resolvedTone !== "default" ? toneIconMap[resolvedTone] : void 0;
685
712
  const resolvedIcon = icon ?? (showToneIcon && toneIconName ? /* @__PURE__ */ jsx5(Icon, { name: toneIconName, size: 16, "aria-hidden": "true" }) : null);
686
- return /* @__PURE__ */ jsxs3(
713
+ return /* @__PURE__ */ jsxs2(
687
714
  "div",
688
715
  {
689
716
  ref,
@@ -814,10 +841,10 @@ function Badge({ className, variant, alert, pillTone, ...props }) {
814
841
  }
815
842
 
816
843
  // src/components/button.tsx
817
- import * as React6 from "react";
844
+ import * as React8 from "react";
845
+ import { IconLoader2 } from "@tabler/icons-react";
818
846
  import { Slot } from "@radix-ui/react-slot";
819
847
  import { cva as cva4 } from "class-variance-authority";
820
- import { motion, useReducedMotion } from "motion/react";
821
848
 
822
849
  // src/components/button-language-flags.ts
823
850
  function createFlagDataUri(svg) {
@@ -941,8 +968,271 @@ var dropdownLanguageFlagSrc = {
941
968
  `)
942
969
  };
943
970
 
971
+ // src/components/button-ripple.tsx
972
+ import * as React6 from "react";
973
+ import { motion, useReducedMotion } from "motion/react";
974
+ import { jsx as jsx7 } from "react/jsx-runtime";
975
+ var MAX_ACTIVE_RIPPLES = 3;
976
+ var buttonRippleVariantClasses = {
977
+ default: "bg-[hsl(var(--sofya-primary-foreground)/0.82)] mix-blend-screen",
978
+ gradient: "bg-[hsl(var(--sofya-primary-foreground)/0.8)] mix-blend-screen",
979
+ dropdown: "bg-[hsl(var(--sofya-primary)/0.36)]",
980
+ icon: "bg-[hsl(var(--sofya-primary)/0.34)]",
981
+ language: "bg-[hsl(var(--sofya-background)/0.76)] mix-blend-screen",
982
+ secondary: "bg-[hsl(var(--sofya-primary)/0.30)]",
983
+ outline: "bg-[hsl(var(--sofya-primary)/0.32)]",
984
+ ghost: "bg-[hsl(var(--sofya-primary)/0.28)]",
985
+ destructive: "bg-[hsl(var(--sofya-destructive-foreground)/0.78)] mix-blend-screen"
986
+ };
987
+ var buttonRippleBaseSize = {
988
+ default: 20,
989
+ sm: 18,
990
+ lg: 22,
991
+ icon: 18
992
+ };
993
+ function useButtonRippleState({
994
+ disabled,
995
+ onClick,
996
+ onPointerDown,
997
+ size,
998
+ variant
999
+ }) {
1000
+ const prefersReducedMotion = Boolean(useReducedMotion());
1001
+ const [ripples, setRipples] = React6.useState([]);
1002
+ const rippleIdRef = React6.useRef(0);
1003
+ const lastRippleAtRef = React6.useRef(0);
1004
+ const handleRippleComplete = React6.useCallback((rippleId) => {
1005
+ setRipples(
1006
+ (currentRipples) => currentRipples.filter((currentRipple) => currentRipple.id !== rippleId)
1007
+ );
1008
+ }, []);
1009
+ const createRipple = React6.useCallback(
1010
+ (currentTarget, clientX, clientY) => {
1011
+ const now = performance.now();
1012
+ if (now - lastRippleAtRef.current < 48) {
1013
+ return;
1014
+ }
1015
+ lastRippleAtRef.current = now;
1016
+ const rect = currentTarget.getBoundingClientRect();
1017
+ const hasPointerPosition = clientX !== void 0 && clientY !== void 0;
1018
+ const x = hasPointerPosition ? clientX - rect.left : rect.width / 2;
1019
+ const y = hasPointerPosition ? clientY - rect.top : rect.height / 2;
1020
+ const radius = Math.max(
1021
+ Math.hypot(x, y),
1022
+ Math.hypot(rect.width - x, y),
1023
+ Math.hypot(x, rect.height - y),
1024
+ Math.hypot(rect.width - x, rect.height - y)
1025
+ );
1026
+ const baseSize = buttonRippleBaseSize[size];
1027
+ const finalDiameter = Math.max(
1028
+ radius * 2 + 24,
1029
+ Math.max(rect.width, rect.height) + 18
1030
+ );
1031
+ setRipples((currentRipples) => {
1032
+ const nextRipple = {
1033
+ id: rippleIdRef.current++,
1034
+ scale: finalDiameter / baseSize,
1035
+ size: baseSize,
1036
+ x: x - baseSize / 2,
1037
+ y: y - baseSize / 2
1038
+ };
1039
+ const nextRipples = [...currentRipples, nextRipple];
1040
+ if (nextRipples.length > MAX_ACTIVE_RIPPLES) {
1041
+ return nextRipples.slice(nextRipples.length - MAX_ACTIVE_RIPPLES);
1042
+ }
1043
+ return nextRipples;
1044
+ });
1045
+ },
1046
+ [size]
1047
+ );
1048
+ const handlePointerDown = React6.useCallback(
1049
+ (event) => {
1050
+ onPointerDown?.(event);
1051
+ if (event.defaultPrevented || disabled) {
1052
+ return;
1053
+ }
1054
+ if (prefersReducedMotion) {
1055
+ return;
1056
+ }
1057
+ if (event.button === 0) {
1058
+ createRipple(
1059
+ event.currentTarget,
1060
+ event.clientX,
1061
+ event.clientY
1062
+ );
1063
+ }
1064
+ },
1065
+ [createRipple, disabled, onPointerDown, prefersReducedMotion]
1066
+ );
1067
+ const handleClick = React6.useCallback(
1068
+ (event) => {
1069
+ if (!disabled && !prefersReducedMotion && event.detail === 0) {
1070
+ createRipple(event.currentTarget);
1071
+ }
1072
+ onClick?.(event);
1073
+ },
1074
+ [createRipple, disabled, onClick, prefersReducedMotion]
1075
+ );
1076
+ return {
1077
+ handleClick,
1078
+ handlePointerDown,
1079
+ handleRippleComplete,
1080
+ prefersReducedMotion,
1081
+ rippleClassName: buttonRippleVariantClasses[variant],
1082
+ ripples
1083
+ };
1084
+ }
1085
+ function ButtonRippleLayer({
1086
+ onAnimationComplete,
1087
+ prefersReducedMotion,
1088
+ rippleClassName,
1089
+ ripples
1090
+ }) {
1091
+ if (ripples.length === 0) {
1092
+ return null;
1093
+ }
1094
+ return /* @__PURE__ */ jsx7(
1095
+ "span",
1096
+ {
1097
+ "aria-hidden": "true",
1098
+ className: "pointer-events-none absolute inset-0 z-[1] overflow-hidden rounded-[inherit]",
1099
+ children: ripples.map((ripple) => /* @__PURE__ */ jsx7(
1100
+ motion.span,
1101
+ {
1102
+ className: cn(
1103
+ "absolute rounded-full will-change-transform transform-gpu",
1104
+ rippleClassName
1105
+ ),
1106
+ initial: prefersReducedMotion ? { opacity: 0.32, scale: 0.72 } : { opacity: 0.56, scale: 0 },
1107
+ animate: prefersReducedMotion ? { opacity: 0, scale: 1.02 } : { opacity: [0.56, 0.26, 0], scale: ripple.scale },
1108
+ transition: prefersReducedMotion ? { duration: 0.2, ease: "linear" } : {
1109
+ duration: 0.62,
1110
+ times: [0, 0.35, 1],
1111
+ ease: [0.16, 1, 0.3, 1]
1112
+ },
1113
+ style: {
1114
+ height: ripple.size,
1115
+ left: ripple.x,
1116
+ top: ripple.y,
1117
+ transformOrigin: "center center",
1118
+ width: ripple.size
1119
+ },
1120
+ onAnimationComplete: () => {
1121
+ onAnimationComplete(ripple.id);
1122
+ }
1123
+ },
1124
+ ripple.id
1125
+ ))
1126
+ }
1127
+ );
1128
+ }
1129
+
1130
+ // src/components/button-loading-state.ts
1131
+ import * as React7 from "react";
1132
+ var BUTTON_SEQUENCE_MS = 250;
1133
+ function useButtonLoadingState({
1134
+ buttonRef,
1135
+ children,
1136
+ leftIcon,
1137
+ loading,
1138
+ rightIcon
1139
+ }) {
1140
+ const expandedWidthRef = React7.useRef(void 0);
1141
+ const previousLoadingRef = React7.useRef(loading);
1142
+ const timeoutsRef = React7.useRef([]);
1143
+ const frameRef = React7.useRef(null);
1144
+ const [animatedWidth, setAnimatedWidth] = React7.useState(void 0);
1145
+ const [loadingPhase, setLoadingPhase] = React7.useState(
1146
+ loading ? "loading" : "idle"
1147
+ );
1148
+ const clearAnimationTimers = React7.useCallback(() => {
1149
+ for (const timeoutId of timeoutsRef.current) {
1150
+ window.clearTimeout(timeoutId);
1151
+ }
1152
+ timeoutsRef.current = [];
1153
+ if (frameRef.current !== null) {
1154
+ window.cancelAnimationFrame(frameRef.current);
1155
+ frameRef.current = null;
1156
+ }
1157
+ }, []);
1158
+ React7.useLayoutEffect(() => {
1159
+ const element = buttonRef.current;
1160
+ if (element && loadingPhase === "idle" && !loading) {
1161
+ expandedWidthRef.current = element.offsetWidth;
1162
+ }
1163
+ if (element && loadingPhase === "loading" && animatedWidth === void 0) {
1164
+ setAnimatedWidth(element.offsetHeight);
1165
+ }
1166
+ }, [animatedWidth, buttonRef, loading, loadingPhase, children, leftIcon, rightIcon]);
1167
+ React7.useEffect(() => {
1168
+ return () => {
1169
+ clearAnimationTimers();
1170
+ };
1171
+ }, [clearAnimationTimers]);
1172
+ React7.useEffect(() => {
1173
+ const element = buttonRef.current;
1174
+ if (!element) {
1175
+ return;
1176
+ }
1177
+ const previousLoading = previousLoadingRef.current;
1178
+ previousLoadingRef.current = loading;
1179
+ if (previousLoading === loading) {
1180
+ return;
1181
+ }
1182
+ clearAnimationTimers();
1183
+ if (loading) {
1184
+ const currentWidth2 = element.offsetWidth;
1185
+ const collapsedWidth = element.offsetHeight;
1186
+ expandedWidthRef.current = currentWidth2;
1187
+ setAnimatedWidth(currentWidth2);
1188
+ setLoadingPhase("hiding-content");
1189
+ timeoutsRef.current.push(
1190
+ window.setTimeout(() => {
1191
+ setLoadingPhase("collapsing");
1192
+ setAnimatedWidth(collapsedWidth);
1193
+ }, BUTTON_SEQUENCE_MS)
1194
+ );
1195
+ timeoutsRef.current.push(
1196
+ window.setTimeout(() => {
1197
+ setLoadingPhase("loading");
1198
+ }, BUTTON_SEQUENCE_MS * 2)
1199
+ );
1200
+ return;
1201
+ }
1202
+ const currentWidth = element.offsetWidth;
1203
+ const expandedWidth = expandedWidthRef.current ?? Math.max(element.scrollWidth, currentWidth);
1204
+ setAnimatedWidth(currentWidth);
1205
+ setLoadingPhase("hiding-spinner");
1206
+ timeoutsRef.current.push(
1207
+ window.setTimeout(() => {
1208
+ setLoadingPhase("expanding");
1209
+ frameRef.current = window.requestAnimationFrame(() => {
1210
+ frameRef.current = window.requestAnimationFrame(() => {
1211
+ setAnimatedWidth(expandedWidth);
1212
+ });
1213
+ });
1214
+ }, BUTTON_SEQUENCE_MS)
1215
+ );
1216
+ timeoutsRef.current.push(
1217
+ window.setTimeout(() => {
1218
+ setLoadingPhase("revealing-content");
1219
+ }, BUTTON_SEQUENCE_MS * 2)
1220
+ );
1221
+ timeoutsRef.current.push(
1222
+ window.setTimeout(() => {
1223
+ setLoadingPhase("idle");
1224
+ setAnimatedWidth(void 0);
1225
+ }, BUTTON_SEQUENCE_MS * 3)
1226
+ );
1227
+ }, [buttonRef, clearAnimationTimers, loading]);
1228
+ return {
1229
+ animatedWidth,
1230
+ loadingPhase
1231
+ };
1232
+ }
1233
+
944
1234
  // src/components/button.tsx
945
- import { Fragment, jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
1235
+ import { Fragment, jsx as jsx8, jsxs as jsxs3 } from "react/jsx-runtime";
946
1236
  var buttonVariantOptions = [
947
1237
  "default",
948
1238
  "gradient",
@@ -955,17 +1245,6 @@ var buttonVariantOptions = [
955
1245
  "destructive"
956
1246
  ];
957
1247
  var buttonSizeOptions = ["default", "sm", "lg", "icon"];
958
- var buttonRippleVariantClasses = {
959
- default: "bg-[hsl(var(--sofya-primary-foreground)/0.82)] mix-blend-screen",
960
- gradient: "bg-[hsl(var(--sofya-primary-foreground)/0.8)] mix-blend-screen",
961
- dropdown: "bg-[hsl(var(--sofya-primary)/0.36)]",
962
- icon: "bg-[hsl(var(--sofya-primary)/0.34)]",
963
- language: "bg-[hsl(var(--sofya-background)/0.76)] mix-blend-screen",
964
- secondary: "bg-[hsl(var(--sofya-primary)/0.30)]",
965
- outline: "bg-[hsl(var(--sofya-primary)/0.32)]",
966
- ghost: "bg-[hsl(var(--sofya-primary)/0.28)]",
967
- destructive: "bg-[hsl(var(--sofya-destructive-foreground)/0.78)] mix-blend-screen"
968
- };
969
1248
  var buttonVariants = cva4(
970
1249
  "relative isolate inline-flex items-center justify-center gap-2 overflow-hidden whitespace-nowrap rounded-full font-medium tracking-[0.025em] transform-gpu transition-[width,transform,filter,background-color,border-color,color,box-shadow] duration-sofya ease-sofya motion-safe:active:scale-[0.985] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50",
971
1250
  {
@@ -994,7 +1273,6 @@ var buttonVariants = cva4(
994
1273
  }
995
1274
  }
996
1275
  );
997
- var BUTTON_SEQUENCE_MS = 250;
998
1276
  var loadingSpinnerSizeClasses = {
999
1277
  default: "h-4 w-4",
1000
1278
  sm: "h-3.5 w-3.5",
@@ -1007,52 +1285,21 @@ var languageButtonSizeClasses = {
1007
1285
  lg: "h-12 w-12 rounded-full p-0",
1008
1286
  icon: "h-11 w-11 rounded-full p-0"
1009
1287
  };
1010
- var buttonRippleBaseSize = {
1011
- default: 20,
1012
- sm: 18,
1013
- lg: 22,
1014
- icon: 18
1015
- };
1016
1288
  function ButtonSpinner({
1017
1289
  size
1018
1290
  }) {
1019
- return /* @__PURE__ */ jsxs4(
1020
- "svg",
1291
+ return /* @__PURE__ */ jsx8(
1292
+ IconLoader2,
1021
1293
  {
1022
1294
  "aria-hidden": "true",
1023
1295
  className: cn(
1024
1296
  "animate-spin text-current",
1025
1297
  loadingSpinnerSizeClasses[size]
1026
- ),
1027
- viewBox: "0 0 24 24",
1028
- fill: "none",
1029
- xmlns: "http://www.w3.org/2000/svg",
1030
- children: [
1031
- /* @__PURE__ */ jsx7(
1032
- "circle",
1033
- {
1034
- cx: "12",
1035
- cy: "12",
1036
- r: "9",
1037
- className: "opacity-20",
1038
- stroke: "currentColor",
1039
- strokeWidth: "3"
1040
- }
1041
- ),
1042
- /* @__PURE__ */ jsx7(
1043
- "path",
1044
- {
1045
- d: "M21 12A9 9 0 0 0 12 3",
1046
- stroke: "currentColor",
1047
- strokeWidth: "3",
1048
- strokeLinecap: "round"
1049
- }
1050
- )
1051
- ]
1298
+ )
1052
1299
  }
1053
1300
  );
1054
1301
  }
1055
- var Button = React6.forwardRef(
1302
+ var Button = React8.forwardRef(
1056
1303
  ({
1057
1304
  active = false,
1058
1305
  disabled,
@@ -1071,20 +1318,9 @@ var Button = React6.forwardRef(
1071
1318
  style,
1072
1319
  ...props
1073
1320
  }, ref) => {
1074
- const buttonRef = React6.useRef(null);
1075
- const expandedWidthRef = React6.useRef(void 0);
1076
- const previousLoadingRef = React6.useRef(loading);
1077
- const timeoutsRef = React6.useRef([]);
1078
- const frameRef = React6.useRef(null);
1079
- const [animatedWidth, setAnimatedWidth] = React6.useState(void 0);
1080
- const [loadingPhase, setLoadingPhase] = React6.useState(
1081
- loading ? "loading" : "idle"
1082
- );
1083
- const [ripples, setRipples] = React6.useState([]);
1084
- const rippleIdRef = React6.useRef(0);
1321
+ const buttonRef = React8.useRef(null);
1085
1322
  const Component = asChild ? Slot : "button";
1086
- const prefersReducedMotion = useReducedMotion();
1087
- const hasChildren = React6.Children.count(children) > 0;
1323
+ const hasChildren = React8.Children.count(children) > 0;
1088
1324
  const isIconOnly = !hasChildren && Boolean(leftIcon || rightIcon);
1089
1325
  const isIconOnlyAction = variant === "icon" && isIconOnly;
1090
1326
  const resolvedSize = size ?? (isIconOnly ? "icon" : "default");
@@ -1095,6 +1331,13 @@ var Button = React6.forwardRef(
1095
1331
  const resolvedLanguageLabel = resolvedLanguageLocale ? buttonLanguageLabels[resolvedLanguageLocale] : void 0;
1096
1332
  const iconSlotClassName = "inline-flex shrink-0 items-center justify-center [&_svg]:h-[1em] [&_svg]:w-[1em] [&_svg]:shrink-0";
1097
1333
  const iconOnlyNode = leftIcon ?? rightIcon;
1334
+ const { animatedWidth, loadingPhase } = useButtonLoadingState({
1335
+ buttonRef,
1336
+ children,
1337
+ leftIcon,
1338
+ loading,
1339
+ rightIcon
1340
+ });
1098
1341
  const isDisabled = disabled || loadingPhase !== "idle";
1099
1342
  const resolvedWidthStyle = animatedWidth === void 0 ? style?.width : `${animatedWidth}px`;
1100
1343
  const isCompactPhase = loadingPhase === "collapsing" || loadingPhase === "loading" || loadingPhase === "hiding-spinner";
@@ -1117,153 +1360,26 @@ var Button = React6.forwardRef(
1117
1360
  backgroundSize: "cover"
1118
1361
  } : void 0
1119
1362
  };
1120
- const resolvedRippleClassName = buttonRippleVariantClasses[resolvedVariant];
1121
- const handleRippleComplete = React6.useCallback((rippleId) => {
1122
- setRipples(
1123
- (currentRipples) => currentRipples.filter((currentRipple) => currentRipple.id !== rippleId)
1124
- );
1125
- }, []);
1126
- const createRipple = React6.useCallback(
1127
- (currentTarget, clientX, clientY) => {
1128
- const rect = currentTarget.getBoundingClientRect();
1129
- const hasPointerPosition = clientX !== void 0 && clientY !== void 0;
1130
- const x = hasPointerPosition ? clientX - rect.left : rect.width / 2;
1131
- const y = hasPointerPosition ? clientY - rect.top : rect.height / 2;
1132
- const radius = Math.max(
1133
- Math.hypot(x, y),
1134
- Math.hypot(rect.width - x, y),
1135
- Math.hypot(x, rect.height - y),
1136
- Math.hypot(rect.width - x, rect.height - y)
1137
- );
1138
- const baseSize = buttonRippleBaseSize[resolvedSize];
1139
- const finalDiameter = Math.max(
1140
- radius * 2 + 24,
1141
- Math.max(rect.width, rect.height) + 18
1142
- );
1143
- setRipples((currentRipples) => [
1144
- ...currentRipples,
1145
- {
1146
- id: rippleIdRef.current++,
1147
- scale: finalDiameter / baseSize,
1148
- size: baseSize,
1149
- x: x - baseSize / 2,
1150
- y: y - baseSize / 2
1151
- }
1152
- ]);
1153
- },
1154
- [resolvedSize]
1155
- );
1156
- const handlePointerDown = React6.useCallback(
1157
- (event) => {
1158
- onPointerDown?.(event);
1159
- if (event.defaultPrevented || isDisabled) {
1160
- return;
1161
- }
1162
- if (event.button === 0) {
1163
- createRipple(
1164
- event.currentTarget,
1165
- event.clientX,
1166
- event.clientY
1167
- );
1168
- }
1169
- },
1170
- [createRipple, isDisabled, onPointerDown]
1171
- );
1172
- const handleClick = React6.useCallback(
1173
- (event) => {
1174
- if (!isDisabled && event.detail === 0) {
1175
- createRipple(event.currentTarget);
1176
- }
1177
- onClick?.(event);
1178
- },
1179
- [createRipple, isDisabled, onClick]
1180
- );
1181
- const clearAnimationTimers = React6.useCallback(() => {
1182
- for (const timeoutId of timeoutsRef.current) {
1183
- window.clearTimeout(timeoutId);
1184
- }
1185
- timeoutsRef.current = [];
1186
- if (frameRef.current !== null) {
1187
- window.cancelAnimationFrame(frameRef.current);
1188
- frameRef.current = null;
1189
- }
1190
- }, []);
1191
- React6.useImperativeHandle(
1363
+ const {
1364
+ handleClick,
1365
+ handlePointerDown,
1366
+ handleRippleComplete,
1367
+ prefersReducedMotion,
1368
+ rippleClassName,
1369
+ ripples
1370
+ } = useButtonRippleState({
1371
+ disabled: isDisabled,
1372
+ onClick,
1373
+ onPointerDown,
1374
+ size: resolvedSize,
1375
+ variant: resolvedVariant
1376
+ });
1377
+ React8.useImperativeHandle(
1192
1378
  ref,
1193
1379
  () => buttonRef.current
1194
1380
  );
1195
- React6.useLayoutEffect(() => {
1196
- const element = buttonRef.current;
1197
- if (element && loadingPhase === "idle" && !loading) {
1198
- expandedWidthRef.current = element.offsetWidth;
1199
- }
1200
- if (element && loadingPhase === "loading" && animatedWidth === void 0) {
1201
- setAnimatedWidth(element.offsetHeight);
1202
- }
1203
- }, [animatedWidth, loading, loadingPhase, children, leftIcon, rightIcon]);
1204
- React6.useEffect(() => {
1205
- return () => {
1206
- clearAnimationTimers();
1207
- };
1208
- }, [clearAnimationTimers]);
1209
- React6.useEffect(() => {
1210
- const element = buttonRef.current;
1211
- if (!element) {
1212
- return;
1213
- }
1214
- const previousLoading = previousLoadingRef.current;
1215
- previousLoadingRef.current = loading;
1216
- if (previousLoading === loading) {
1217
- return;
1218
- }
1219
- clearAnimationTimers();
1220
- if (loading) {
1221
- const currentWidth2 = element.offsetWidth;
1222
- const collapsedWidth = element.offsetHeight;
1223
- expandedWidthRef.current = currentWidth2;
1224
- setAnimatedWidth(currentWidth2);
1225
- setLoadingPhase("hiding-content");
1226
- timeoutsRef.current.push(
1227
- window.setTimeout(() => {
1228
- setLoadingPhase("collapsing");
1229
- setAnimatedWidth(collapsedWidth);
1230
- }, BUTTON_SEQUENCE_MS)
1231
- );
1232
- timeoutsRef.current.push(
1233
- window.setTimeout(() => {
1234
- setLoadingPhase("loading");
1235
- }, BUTTON_SEQUENCE_MS * 2)
1236
- );
1237
- return;
1238
- }
1239
- const currentWidth = element.offsetWidth;
1240
- const expandedWidth = expandedWidthRef.current ?? Math.max(element.scrollWidth, currentWidth);
1241
- setAnimatedWidth(currentWidth);
1242
- setLoadingPhase("hiding-spinner");
1243
- timeoutsRef.current.push(
1244
- window.setTimeout(() => {
1245
- setLoadingPhase("expanding");
1246
- frameRef.current = window.requestAnimationFrame(() => {
1247
- frameRef.current = window.requestAnimationFrame(() => {
1248
- setAnimatedWidth(expandedWidth);
1249
- });
1250
- });
1251
- }, BUTTON_SEQUENCE_MS)
1252
- );
1253
- timeoutsRef.current.push(
1254
- window.setTimeout(() => {
1255
- setLoadingPhase("revealing-content");
1256
- }, BUTTON_SEQUENCE_MS * 2)
1257
- );
1258
- timeoutsRef.current.push(
1259
- window.setTimeout(() => {
1260
- setLoadingPhase("idle");
1261
- setAnimatedWidth(void 0);
1262
- }, BUTTON_SEQUENCE_MS * 3)
1263
- );
1264
- }, [children, clearAnimationTimers, leftIcon, loading, rightIcon]);
1265
- const buttonContent = isLanguageButton ? null : isIconOnly ? /* @__PURE__ */ jsx7("span", { className: iconSlotClassName, children: iconOnlyNode }) : /* @__PURE__ */ jsxs4(Fragment, { children: [
1266
- leftIcon ? /* @__PURE__ */ jsx7("span", { className: iconSlotClassName, children: leftIcon }) : null,
1381
+ const buttonContent = isLanguageButton ? null : isIconOnly ? /* @__PURE__ */ jsx8("span", { className: iconSlotClassName, children: iconOnlyNode }) : /* @__PURE__ */ jsxs3(Fragment, { children: [
1382
+ leftIcon ? /* @__PURE__ */ jsx8("span", { className: iconSlotClassName, children: leftIcon }) : null,
1267
1383
  hasChildren ? renderTextContent(children, {
1268
1384
  as: "span",
1269
1385
  className: "inline-flex items-center text-current",
@@ -1273,9 +1389,9 @@ var Button = React6.forwardRef(
1273
1389
  letterSpacing: "inherit"
1274
1390
  }
1275
1391
  }) : null,
1276
- rightIcon ? /* @__PURE__ */ jsx7("span", { className: iconSlotClassName, children: rightIcon }) : null
1392
+ rightIcon ? /* @__PURE__ */ jsx8("span", { className: iconSlotClassName, children: rightIcon }) : null
1277
1393
  ] });
1278
- return /* @__PURE__ */ jsxs4(
1394
+ return /* @__PURE__ */ jsxs3(
1279
1395
  Component,
1280
1396
  {
1281
1397
  className: cn(
@@ -1296,41 +1412,16 @@ var Button = React6.forwardRef(
1296
1412
  style: { ...resolvedButtonStyle, width: resolvedWidthStyle },
1297
1413
  ...props,
1298
1414
  children: [
1299
- /* @__PURE__ */ jsx7(
1300
- "span",
1415
+ /* @__PURE__ */ jsx8(
1416
+ ButtonRippleLayer,
1301
1417
  {
1302
- "aria-hidden": "true",
1303
- className: "pointer-events-none absolute inset-0 z-[1] overflow-hidden rounded-[inherit]",
1304
- children: ripples.map((ripple) => /* @__PURE__ */ jsx7(
1305
- motion.span,
1306
- {
1307
- className: cn(
1308
- "absolute rounded-full will-change-transform transform-gpu",
1309
- resolvedRippleClassName
1310
- ),
1311
- initial: prefersReducedMotion ? { opacity: 0.32, scale: 0.72 } : { opacity: 0.56, scale: 0 },
1312
- animate: prefersReducedMotion ? { opacity: 0, scale: 1.02 } : { opacity: [0.56, 0.26, 0], scale: ripple.scale },
1313
- transition: prefersReducedMotion ? { duration: 0.2, ease: "linear" } : {
1314
- duration: 0.62,
1315
- times: [0, 0.35, 1],
1316
- ease: [0.16, 1, 0.3, 1]
1317
- },
1318
- style: {
1319
- height: ripple.size,
1320
- left: ripple.x,
1321
- top: ripple.y,
1322
- transformOrigin: "center center",
1323
- width: ripple.size
1324
- },
1325
- onAnimationComplete: () => {
1326
- handleRippleComplete(ripple.id);
1327
- }
1328
- },
1329
- ripple.id
1330
- ))
1418
+ onAnimationComplete: handleRippleComplete,
1419
+ prefersReducedMotion,
1420
+ rippleClassName,
1421
+ ripples
1331
1422
  }
1332
1423
  ),
1333
- /* @__PURE__ */ jsx7(
1424
+ /* @__PURE__ */ jsx8(
1334
1425
  "span",
1335
1426
  {
1336
1427
  className: cn(
@@ -1340,7 +1431,7 @@ var Button = React6.forwardRef(
1340
1431
  children: buttonContent
1341
1432
  }
1342
1433
  ),
1343
- /* @__PURE__ */ jsx7(
1434
+ /* @__PURE__ */ jsx8(
1344
1435
  "span",
1345
1436
  {
1346
1437
  "aria-hidden": "true",
@@ -1348,7 +1439,7 @@ var Button = React6.forwardRef(
1348
1439
  "pointer-events-none absolute inset-0 z-[2] flex items-center justify-center transition-opacity duration-sofya ease-sofya",
1349
1440
  showSpinner ? "opacity-100" : "opacity-0"
1350
1441
  ),
1351
- children: /* @__PURE__ */ jsx7(ButtonSpinner, { size: resolvedSize })
1442
+ children: /* @__PURE__ */ jsx8(ButtonSpinner, { size: resolvedSize })
1352
1443
  }
1353
1444
  )
1354
1445
  ]
@@ -1359,9 +1450,9 @@ var Button = React6.forwardRef(
1359
1450
  Button.displayName = "Button";
1360
1451
 
1361
1452
  // src/components/surface.tsx
1362
- import * as React7 from "react";
1453
+ import * as React9 from "react";
1363
1454
  import { Slot as Slot2 } from "@radix-ui/react-slot";
1364
- import { jsx as jsx8 } from "react/jsx-runtime";
1455
+ import { jsx as jsx9 } from "react/jsx-runtime";
1365
1456
  var surfaceStyles = {
1366
1457
  card: {
1367
1458
  backgroundColor: "hsl(var(--sofya-surface-card-background))",
@@ -1393,7 +1484,7 @@ var surfaceStyles = {
1393
1484
  };
1394
1485
  function SurfaceComponent({ as, asChild = false, variant = "card", className, style, ...props }, ref) {
1395
1486
  const Component = asChild ? Slot2 : as ?? "div";
1396
- return /* @__PURE__ */ jsx8(
1487
+ return /* @__PURE__ */ jsx9(
1397
1488
  Component,
1398
1489
  {
1399
1490
  ref,
@@ -1404,16 +1495,16 @@ function SurfaceComponent({ as, asChild = false, variant = "card", className, st
1404
1495
  }
1405
1496
  );
1406
1497
  }
1407
- var SurfaceBase = React7.forwardRef(SurfaceComponent);
1498
+ var SurfaceBase = React9.forwardRef(SurfaceComponent);
1408
1499
  SurfaceBase.displayName = "Surface";
1409
1500
  var Surface = SurfaceBase;
1410
1501
 
1411
1502
  // src/components/card.tsx
1412
- import { jsx as jsx9 } from "react/jsx-runtime";
1503
+ import { jsx as jsx10 } from "react/jsx-runtime";
1413
1504
  var cardVariants = ["card", "panel", "focus"];
1414
1505
  function Card({ className, variant = "card", ...props }) {
1415
1506
  const hasHoverShadow = variant === "card" || variant === "panel";
1416
- return /* @__PURE__ */ jsx9(
1507
+ return /* @__PURE__ */ jsx10(
1417
1508
  Surface,
1418
1509
  {
1419
1510
  variant,
@@ -1427,10 +1518,10 @@ function Card({ className, variant = "card", ...props }) {
1427
1518
  );
1428
1519
  }
1429
1520
  function CardHeader({ className, ...props }) {
1430
- return /* @__PURE__ */ jsx9("div", { className: cn("flex flex-col gap-2 p-6", className), ...props });
1521
+ return /* @__PURE__ */ jsx10("div", { className: cn("flex flex-col gap-2 p-6", className), ...props });
1431
1522
  }
1432
1523
  function CardTitle({ children, className, ...props }) {
1433
- return /* @__PURE__ */ jsx9(
1524
+ return /* @__PURE__ */ jsx10(
1434
1525
  "h3",
1435
1526
  {
1436
1527
  className: cn("text-card-foreground", className),
@@ -1448,27 +1539,49 @@ function CardDescription({
1448
1539
  className,
1449
1540
  ...props
1450
1541
  }) {
1451
- return /* @__PURE__ */ jsx9("p", { className: cn("text-muted-foreground", className), ...props, children: renderTextContent(children, {
1542
+ return /* @__PURE__ */ jsx10("p", { className: cn("text-muted-foreground", className), ...props, children: renderTextContent(children, {
1452
1543
  as: "span",
1453
1544
  className: "block text-muted-foreground",
1454
1545
  size: "body"
1455
1546
  }) });
1456
1547
  }
1457
1548
  function CardContent({ children, className, ...props }) {
1458
- return /* @__PURE__ */ jsx9("div", { className: cn("p-6 pt-0", className), ...props, children: renderTextContent(children, {
1549
+ return /* @__PURE__ */ jsx10("div", { className: cn("p-6 pt-0", className), ...props, children: renderTextContent(children, {
1459
1550
  as: "span"
1460
1551
  }) });
1461
1552
  }
1462
1553
  function CardFooter({ children, className, ...props }) {
1463
- return /* @__PURE__ */ jsx9("div", { className: cn("flex items-center gap-4 p-6 pt-0", className), ...props, children: renderTextContent(children, {
1554
+ return /* @__PURE__ */ jsx10("div", { className: cn("flex items-center gap-4 p-6 pt-0", className), ...props, children: renderTextContent(children, {
1464
1555
  as: "span"
1465
1556
  }) });
1466
1557
  }
1467
1558
 
1468
1559
  // src/components/checkbox.tsx
1469
- import * as React8 from "react";
1470
- import { jsx as jsx10, jsxs as jsxs5 } from "react/jsx-runtime";
1471
- var Checkbox = React8.forwardRef(
1560
+ import * as React10 from "react";
1561
+ import { IconCheck as IconCheck2 } from "@tabler/icons-react";
1562
+
1563
+ // src/lib/selection-control-classes.ts
1564
+ var selectionControlContainerBaseClasses = "flex w-fit gap-4";
1565
+ var selectionControlContentBaseClasses = "grid gap-2";
1566
+ var selectionControlLabelTextBaseClasses = "text-[color:var(--sofya-text-default)] [&_a]:text-primary [&_a]:underline [&_a]:underline-offset-[3px]";
1567
+ var selectionControlDescriptionTextBaseClasses = "text-muted-foreground";
1568
+ var selectionControlControlBaseClasses = "border border-[color:var(--sofya-border-strong)] bg-card transition-[background-color,border-color,box-shadow,color] duration-sofya ease-sofya disabled:cursor-not-allowed disabled:opacity-50";
1569
+ function selectionControlContainerClasses({
1570
+ alignClassName,
1571
+ className,
1572
+ disabled
1573
+ }) {
1574
+ return cn(
1575
+ selectionControlContainerBaseClasses,
1576
+ alignClassName,
1577
+ disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer",
1578
+ className
1579
+ );
1580
+ }
1581
+
1582
+ // src/components/checkbox.tsx
1583
+ import { jsx as jsx11, jsxs as jsxs4 } from "react/jsx-runtime";
1584
+ var Checkbox = React10.forwardRef(
1472
1585
  function Checkbox2({
1473
1586
  checked,
1474
1587
  className,
@@ -1481,23 +1594,21 @@ var Checkbox = React8.forwardRef(
1481
1594
  labelClassName,
1482
1595
  ...props
1483
1596
  }, ref) {
1484
- const generatedId = React8.useId();
1597
+ const generatedId = React10.useId();
1485
1598
  const resolvedId = id ?? generatedId;
1486
1599
  const descriptionId = description ? `${resolvedId}-description` : void 0;
1487
1600
  const alignClassName = description ? "items-start" : "items-center";
1488
- const indicatorOffsetClassName = "";
1489
- return /* @__PURE__ */ jsxs5(
1601
+ return /* @__PURE__ */ jsxs4(
1490
1602
  "label",
1491
1603
  {
1492
1604
  htmlFor: resolvedId,
1493
- className: cn(
1494
- "flex w-fit gap-4",
1605
+ className: selectionControlContainerClasses({
1495
1606
  alignClassName,
1496
- disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer",
1497
- className
1498
- ),
1607
+ className,
1608
+ disabled
1609
+ }),
1499
1610
  children: [
1500
- /* @__PURE__ */ jsx10(
1611
+ /* @__PURE__ */ jsx11(
1501
1612
  "input",
1502
1613
  {
1503
1614
  ref,
@@ -1511,41 +1622,24 @@ var Checkbox = React8.forwardRef(
1511
1622
  ...props
1512
1623
  }
1513
1624
  ),
1514
- /* @__PURE__ */ jsx10(
1625
+ /* @__PURE__ */ jsx11(
1515
1626
  "span",
1516
1627
  {
1517
1628
  "aria-hidden": "true",
1518
1629
  className: cn(
1519
- "inline-flex h-5 w-5 shrink-0 items-center justify-center rounded-[8px] border border-[color:var(--sofya-border-strong)] bg-card text-transparent transition-[background-color,border-color,box-shadow,color] duration-sofya ease-sofya peer-checked:border-primary peer-checked:bg-primary peer-checked:text-primary-foreground peer-focus-visible:ring-2 peer-focus-visible:ring-[color:var(--sofya-focus-ring-soft)] peer-focus-visible:ring-offset-0",
1520
- indicatorOffsetClassName
1630
+ "inline-flex h-5 w-5 shrink-0 items-center justify-center rounded-[8px] text-transparent",
1631
+ selectionControlControlBaseClasses,
1632
+ "peer-checked:border-primary peer-checked:bg-primary peer-checked:text-primary-foreground peer-focus-visible:ring-2 peer-focus-visible:ring-[color:var(--sofya-focus-ring-soft)] peer-focus-visible:ring-offset-0"
1521
1633
  ),
1522
- children: /* @__PURE__ */ jsx10(
1523
- "svg",
1524
- {
1525
- viewBox: "0 0 16 16",
1526
- fill: "none",
1527
- xmlns: "http://www.w3.org/2000/svg",
1528
- className: "h-4 w-4 shrink-0",
1529
- children: /* @__PURE__ */ jsx10(
1530
- "path",
1531
- {
1532
- d: "M2.75 8.25L6.4 11.9L13.35 4.95",
1533
- stroke: "currentColor",
1534
- strokeWidth: "2.4",
1535
- strokeLinecap: "round",
1536
- strokeLinejoin: "round"
1537
- }
1538
- )
1539
- }
1540
- )
1634
+ children: /* @__PURE__ */ jsx11(IconCheck2, { "aria-hidden": "true", className: "h-4 w-4 shrink-0", stroke: 2.4 })
1541
1635
  }
1542
1636
  ),
1543
- label || description ? /* @__PURE__ */ jsxs5("span", { className: "grid gap-2", children: [
1544
- label ? /* @__PURE__ */ jsx10(
1637
+ label || description ? /* @__PURE__ */ jsxs4("span", { className: selectionControlContentBaseClasses, children: [
1638
+ label ? /* @__PURE__ */ jsx11(
1545
1639
  "span",
1546
1640
  {
1547
1641
  className: cn(
1548
- "text-[color:var(--sofya-text-default)] [&_a]:text-primary [&_a]:underline [&_a]:underline-offset-[3px]",
1642
+ selectionControlLabelTextBaseClasses,
1549
1643
  labelClassName
1550
1644
  ),
1551
1645
  children: renderTextContent(label, {
@@ -1555,11 +1649,14 @@ var Checkbox = React8.forwardRef(
1555
1649
  })
1556
1650
  }
1557
1651
  ) : null,
1558
- description ? /* @__PURE__ */ jsx10(
1652
+ description ? /* @__PURE__ */ jsx11(
1559
1653
  "span",
1560
1654
  {
1561
1655
  id: descriptionId,
1562
- className: cn("text-muted-foreground", descriptionClassName),
1656
+ className: cn(
1657
+ selectionControlDescriptionTextBaseClasses,
1658
+ descriptionClassName
1659
+ ),
1563
1660
  children: renderTextContent(description, {
1564
1661
  as: "span",
1565
1662
  className: "text-muted-foreground",
@@ -1576,22 +1673,46 @@ var Checkbox = React8.forwardRef(
1576
1673
  Checkbox.displayName = "Checkbox";
1577
1674
 
1578
1675
  // src/components/dropdown.tsx
1579
- import * as React9 from "react";
1676
+ import * as React12 from "react";
1580
1677
  import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
1581
- import { Fragment as Fragment2, jsx as jsx11, jsxs as jsxs6 } from "react/jsx-runtime";
1582
- var dropdownVariantOptions = [
1583
- "card",
1584
- "panel",
1585
- "language",
1586
- "selected"
1587
- ];
1588
- var dropdownLanguageItems = [
1589
- { value: "en-US", label: "English", languageLocale: "en-US" },
1590
- { value: "pt-BR", label: "Portuguese", languageLocale: "pt-BR" },
1591
- { value: "es-ES", label: "Spanish", languageLocale: "es-ES" }
1592
- ];
1593
- var dropdownTriggerClasses = {
1594
- card: "h-12 rounded-[20px] px-6 py-2 text-primary",
1678
+
1679
+ // src/lib/use-controllable-state.ts
1680
+ import * as React11 from "react";
1681
+ function useControllableState({
1682
+ defaultValue,
1683
+ onChange,
1684
+ value
1685
+ }) {
1686
+ const isControlled = value !== void 0;
1687
+ const [uncontrolledValue, setUncontrolledValue] = React11.useState(defaultValue);
1688
+ const currentValue = isControlled ? value : uncontrolledValue;
1689
+ const setValue = React11.useCallback(
1690
+ (nextValue) => {
1691
+ if (!isControlled) {
1692
+ setUncontrolledValue(nextValue);
1693
+ }
1694
+ onChange?.(nextValue);
1695
+ },
1696
+ [isControlled, onChange]
1697
+ );
1698
+ return [currentValue, setValue, setUncontrolledValue];
1699
+ }
1700
+
1701
+ // src/components/dropdown.tsx
1702
+ import { Fragment as Fragment2, jsx as jsx12, jsxs as jsxs5 } from "react/jsx-runtime";
1703
+ var dropdownVariantOptions = [
1704
+ "card",
1705
+ "panel",
1706
+ "language",
1707
+ "selected"
1708
+ ];
1709
+ var dropdownLanguageItems = [
1710
+ { value: "en-US", label: "English", languageLocale: "en-US" },
1711
+ { value: "pt-BR", label: "Portuguese", languageLocale: "pt-BR" },
1712
+ { value: "es-ES", label: "Spanish", languageLocale: "es-ES" }
1713
+ ];
1714
+ var dropdownTriggerClasses = {
1715
+ card: "h-12 rounded-[20px] px-6 py-2 text-primary",
1595
1716
  panel: "h-12 rounded-[10px] px-6 py-2 text-foreground",
1596
1717
  language: "",
1597
1718
  selected: "h-10 w-full rounded-[10px] border-[color:var(--sofya-border-strong)] px-4 py-2 [font-family:var(--sofya-text-body-font-family)] text-[length:var(--sofya-text-body-font-size)] [font-weight:var(--sofya-text-body-font-weight)] leading-[var(--sofya-text-body-line-height)] tracking-[var(--sofya-text-body-letter-spacing)]"
@@ -1622,7 +1743,7 @@ function resolveItemLanguageLocale(item) {
1622
1743
  }
1623
1744
  function DefaultDropdownTriggerIcon({ variant }) {
1624
1745
  if (variant === "selected") {
1625
- return /* @__PURE__ */ jsx11(
1746
+ return /* @__PURE__ */ jsx12(
1626
1747
  Icon,
1627
1748
  {
1628
1749
  name: "caret-down",
@@ -1630,16 +1751,16 @@ function DefaultDropdownTriggerIcon({ variant }) {
1630
1751
  }
1631
1752
  );
1632
1753
  }
1633
- return /* @__PURE__ */ jsx11("span", { className: "flex h-8 w-8 items-center justify-center rounded-[6px]", children: /* @__PURE__ */ jsx11(Icon, { name: "caret-down", className: "!h-4 !w-4" }) });
1754
+ return /* @__PURE__ */ jsx12("span", { className: "flex h-8 w-8 items-center justify-center rounded-[6px]", children: /* @__PURE__ */ jsx12(Icon, { name: "caret-down", className: "!h-4 !w-4" }) });
1634
1755
  }
1635
1756
  function DefaultDropdownItemIndicator() {
1636
- return /* @__PURE__ */ jsx11(Icon, { name: "check", size: 16 });
1757
+ return /* @__PURE__ */ jsx12(Icon, { name: "check", size: 16 });
1637
1758
  }
1638
1759
  function DefaultDropdownInlineCheck() {
1639
- return /* @__PURE__ */ jsx11(Icon, { name: "check", size: 14 });
1760
+ return /* @__PURE__ */ jsx12(Icon, { name: "check", size: 14 });
1640
1761
  }
1641
1762
  function LanguageFlagIcon({ locale }) {
1642
- return /* @__PURE__ */ jsx11(
1763
+ return /* @__PURE__ */ jsx12(
1643
1764
  "img",
1644
1765
  {
1645
1766
  alt: "",
@@ -1671,40 +1792,41 @@ function Dropdown({
1671
1792
  const isLanguageVariant = variant === "language";
1672
1793
  const isSelectedVariant = variant === "selected";
1673
1794
  const usesDefaultListStyle = !isLanguageVariant;
1674
- const resolvedItems = React9.useMemo(
1795
+ const resolvedItems = React12.useMemo(
1675
1796
  () => isLanguageVariant ? items && items.length > 0 ? items : dropdownLanguageItems : items ?? [],
1676
1797
  [isLanguageVariant, items]
1677
1798
  );
1678
1799
  const defaultUncontrolledValue = defaultValue ?? (isLanguageVariant ? resolvedItems[0]?.value : void 0);
1679
- const [internalValue, setInternalValue] = React9.useState(
1680
- defaultUncontrolledValue
1681
- );
1682
- const selectedValue = value ?? internalValue;
1800
+ const [selectedValue, setSelectedValue, setUncontrolledSelectedValue] = useControllableState({
1801
+ defaultValue: defaultUncontrolledValue,
1802
+ onChange: onValueChange,
1803
+ value
1804
+ });
1683
1805
  const radioValue = selectedValue ?? "";
1684
1806
  const selectedItem = resolvedItems.find(
1685
1807
  (item) => item.value === selectedValue
1686
1808
  );
1687
1809
  const hasSelectedItem = selectedItem !== void 0;
1688
1810
  const selectedLanguageLocale = resolveItemLanguageLocale(selectedItem);
1689
- React9.useEffect(() => {
1811
+ React12.useEffect(() => {
1690
1812
  if (value !== void 0) {
1691
1813
  return;
1692
1814
  }
1693
- const currentValueIsAvailable = internalValue !== void 0 && resolvedItems.some((item) => item.value === internalValue);
1815
+ const currentValueIsAvailable = selectedValue !== void 0 && resolvedItems.some((item) => item.value === selectedValue);
1694
1816
  if (!currentValueIsAvailable && defaultUncontrolledValue !== void 0) {
1695
- setInternalValue(defaultUncontrolledValue);
1817
+ setUncontrolledSelectedValue(defaultUncontrolledValue);
1696
1818
  }
1697
- }, [defaultUncontrolledValue, internalValue, resolvedItems, value]);
1698
- const resolvedTriggerIcon = isLanguageVariant ? void 0 : triggerIcon === void 0 ? /* @__PURE__ */ jsx11(DefaultDropdownTriggerIcon, { variant }) : triggerIcon;
1819
+ }, [
1820
+ defaultUncontrolledValue,
1821
+ resolvedItems,
1822
+ selectedValue,
1823
+ setUncontrolledSelectedValue,
1824
+ value
1825
+ ]);
1826
+ const resolvedTriggerIcon = isLanguageVariant ? void 0 : triggerIcon === void 0 ? /* @__PURE__ */ jsx12(DefaultDropdownTriggerIcon, { variant }) : triggerIcon;
1699
1827
  const triggerLabel = selectedItem?.triggerLabel ?? selectedItem?.label ?? placeholder;
1700
1828
  const selectedTriggerToneClassName = isSelectedVariant ? hasSelectedItem ? "text-foreground" : "text-[color:var(--sofya-text-soft)]" : void 0;
1701
- function handleValueChange(nextValue) {
1702
- if (value === void 0) {
1703
- setInternalValue(nextValue);
1704
- }
1705
- onValueChange?.(nextValue);
1706
- }
1707
- return /* @__PURE__ */ jsxs6(
1829
+ return /* @__PURE__ */ jsxs5(
1708
1830
  DropdownMenuPrimitive.Root,
1709
1831
  {
1710
1832
  defaultOpen,
@@ -1712,7 +1834,7 @@ function Dropdown({
1712
1834
  onOpenChange,
1713
1835
  open,
1714
1836
  children: [
1715
- /* @__PURE__ */ jsx11(DropdownMenuPrimitive.Trigger, { asChild: true, disabled, children: /* @__PURE__ */ jsx11(
1837
+ /* @__PURE__ */ jsx12(DropdownMenuPrimitive.Trigger, { asChild: true, disabled, children: /* @__PURE__ */ jsx12(
1716
1838
  Button,
1717
1839
  {
1718
1840
  type: "button",
@@ -1725,14 +1847,14 @@ function Dropdown({
1725
1847
  triggerClassName
1726
1848
  ),
1727
1849
  rightIcon: resolvedTriggerIcon,
1728
- children: isLanguageVariant ? null : /* @__PURE__ */ jsx11("span", { className: "min-w-0 truncate", children: renderTextContent(triggerLabel, {
1850
+ children: isLanguageVariant ? null : /* @__PURE__ */ jsx12("span", { className: "min-w-0 truncate", children: renderTextContent(triggerLabel, {
1729
1851
  as: "span",
1730
1852
  className: "block min-w-0 truncate text-inherit",
1731
1853
  size: "body"
1732
1854
  }) })
1733
1855
  }
1734
1856
  ) }),
1735
- /* @__PURE__ */ jsx11(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx11(
1857
+ /* @__PURE__ */ jsx12(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx12(
1736
1858
  DropdownMenuPrimitive.Content,
1737
1859
  {
1738
1860
  align,
@@ -1742,18 +1864,18 @@ function Dropdown({
1742
1864
  dropdownContentClasses[variant],
1743
1865
  contentClassName
1744
1866
  ),
1745
- children: /* @__PURE__ */ jsx11(
1867
+ children: /* @__PURE__ */ jsx12(
1746
1868
  DropdownMenuPrimitive.RadioGroup,
1747
1869
  {
1748
1870
  value: radioValue,
1749
- onValueChange: handleValueChange,
1871
+ onValueChange: setSelectedValue,
1750
1872
  className: "grid gap-2",
1751
1873
  children: resolvedItems.map((item) => {
1752
1874
  const isSelected = item.value === selectedValue;
1753
1875
  const itemLanguageLocale = resolveItemLanguageLocale(item);
1754
- const indicator = item.indicator ?? /* @__PURE__ */ jsx11(DefaultDropdownItemIndicator, {});
1755
- const itemIcon = item.icon ?? (variant === "language" && itemLanguageLocale ? /* @__PURE__ */ jsx11(LanguageFlagIcon, { locale: itemLanguageLocale }) : null);
1756
- return /* @__PURE__ */ jsx11(
1876
+ const indicator = item.indicator ?? /* @__PURE__ */ jsx12(DefaultDropdownItemIndicator, {});
1877
+ const itemIcon = item.icon ?? (variant === "language" && itemLanguageLocale ? /* @__PURE__ */ jsx12(LanguageFlagIcon, { locale: itemLanguageLocale }) : null);
1878
+ return /* @__PURE__ */ jsx12(
1757
1879
  DropdownMenuPrimitive.RadioItem,
1758
1880
  {
1759
1881
  value: item.value,
@@ -1764,7 +1886,7 @@ function Dropdown({
1764
1886
  dropdownItemClasses[variant],
1765
1887
  itemClassName
1766
1888
  ),
1767
- children: usesDefaultListStyle ? /* @__PURE__ */ jsxs6(
1889
+ children: usesDefaultListStyle ? /* @__PURE__ */ jsxs5(
1768
1890
  "span",
1769
1891
  {
1770
1892
  "data-dropdown-item-body": true,
@@ -1773,32 +1895,32 @@ function Dropdown({
1773
1895
  isSelected ? "bg-[color:var(--sofya-surface-selected)]" : "bg-transparent"
1774
1896
  ),
1775
1897
  children: [
1776
- itemIcon ? /* @__PURE__ */ jsx11("span", { className: "flex shrink-0 items-center justify-center", children: itemIcon }) : null,
1777
- /* @__PURE__ */ jsx11("span", { className: "truncate", children: renderTextContent(item.label, {
1898
+ itemIcon ? /* @__PURE__ */ jsx12("span", { className: "flex shrink-0 items-center justify-center", children: itemIcon }) : null,
1899
+ /* @__PURE__ */ jsx12("span", { className: "truncate", children: renderTextContent(item.label, {
1778
1900
  as: "span",
1779
1901
  className: "block truncate text-inherit",
1780
1902
  size: "body"
1781
1903
  }) }),
1782
- isSelected ? /* @__PURE__ */ jsx11(
1904
+ isSelected ? /* @__PURE__ */ jsx12(
1783
1905
  "span",
1784
1906
  {
1785
1907
  "aria-hidden": "true",
1786
1908
  className: "flex h-[14px] w-[14px] shrink-0 items-center justify-center",
1787
- children: /* @__PURE__ */ jsx11(DefaultDropdownInlineCheck, {})
1909
+ children: /* @__PURE__ */ jsx12(DefaultDropdownInlineCheck, {})
1788
1910
  }
1789
1911
  ) : null
1790
1912
  ]
1791
1913
  }
1792
- ) : /* @__PURE__ */ jsxs6(Fragment2, { children: [
1793
- /* @__PURE__ */ jsxs6("span", { className: "flex min-w-0 flex-1 items-center gap-2", children: [
1794
- itemIcon ? /* @__PURE__ */ jsx11("span", { className: "flex shrink-0 items-center justify-center", children: itemIcon }) : null,
1795
- /* @__PURE__ */ jsx11("span", { className: "truncate", children: renderTextContent(item.label, {
1914
+ ) : /* @__PURE__ */ jsxs5(Fragment2, { children: [
1915
+ /* @__PURE__ */ jsxs5("span", { className: "flex min-w-0 flex-1 items-center gap-2", children: [
1916
+ itemIcon ? /* @__PURE__ */ jsx12("span", { className: "flex shrink-0 items-center justify-center", children: itemIcon }) : null,
1917
+ /* @__PURE__ */ jsx12("span", { className: "truncate", children: renderTextContent(item.label, {
1796
1918
  as: "span",
1797
1919
  className: "block truncate text-inherit",
1798
1920
  size: "body"
1799
1921
  }) })
1800
1922
  ] }),
1801
- /* @__PURE__ */ jsx11(
1923
+ /* @__PURE__ */ jsx12(
1802
1924
  "span",
1803
1925
  {
1804
1926
  "aria-hidden": "true",
@@ -1825,14 +1947,14 @@ function Dropdown({
1825
1947
  }
1826
1948
 
1827
1949
  // src/components/dialog.tsx
1828
- import * as React10 from "react";
1950
+ import * as React13 from "react";
1829
1951
  import * as DialogPrimitive from "@radix-ui/react-dialog";
1830
- import { jsx as jsx12, jsxs as jsxs7 } from "react/jsx-runtime";
1952
+ import { jsx as jsx13, jsxs as jsxs6 } from "react/jsx-runtime";
1831
1953
  var Dialog = DialogPrimitive.Root;
1832
1954
  var DialogTrigger = DialogPrimitive.Trigger;
1833
1955
  var DialogPortal = DialogPrimitive.Portal;
1834
1956
  var DialogClose = DialogPrimitive.Close;
1835
- var DialogOverlay = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
1957
+ var DialogOverlay = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
1836
1958
  DialogPrimitive.Overlay,
1837
1959
  {
1838
1960
  ref,
@@ -1844,7 +1966,7 @@ var DialogOverlay = React10.forwardRef(({ className, ...props }, ref) => /* @__P
1844
1966
  }
1845
1967
  ));
1846
1968
  DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
1847
- var DialogContent = React10.forwardRef(
1969
+ var DialogContent = React13.forwardRef(
1848
1970
  ({
1849
1971
  className,
1850
1972
  children,
@@ -1857,9 +1979,9 @@ var DialogContent = React10.forwardRef(
1857
1979
  const dialogCardStyle = {
1858
1980
  "--sofya-surface-shadow-override": "var(--sofya-shadow-lg)"
1859
1981
  };
1860
- return /* @__PURE__ */ jsxs7(DialogPortal, { children: [
1861
- /* @__PURE__ */ jsx12(DialogOverlay, { className: overlayClassName }),
1862
- /* @__PURE__ */ jsx12("div", { className: "sofya-dialog-positioner fixed inset-0 z-50 flex items-center justify-center p-4", children: /* @__PURE__ */ jsx12(
1982
+ return /* @__PURE__ */ jsxs6(DialogPortal, { children: [
1983
+ /* @__PURE__ */ jsx13(DialogOverlay, { className: overlayClassName }),
1984
+ /* @__PURE__ */ jsx13("div", { className: "sofya-dialog-positioner fixed inset-0 z-50 flex items-center justify-center p-4", children: /* @__PURE__ */ jsx13(
1863
1985
  DialogPrimitive.Content,
1864
1986
  {
1865
1987
  ref,
@@ -1868,7 +1990,7 @@ var DialogContent = React10.forwardRef(
1868
1990
  className
1869
1991
  ),
1870
1992
  ...props,
1871
- children: /* @__PURE__ */ jsxs7(
1993
+ children: /* @__PURE__ */ jsxs6(
1872
1994
  Card,
1873
1995
  {
1874
1996
  variant: cardVariant,
@@ -1879,14 +2001,14 @@ var DialogContent = React10.forwardRef(
1879
2001
  style: dialogCardStyle,
1880
2002
  children: [
1881
2003
  children,
1882
- showCloseButton ? /* @__PURE__ */ jsx12(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ jsx12(
2004
+ showCloseButton ? /* @__PURE__ */ jsx13(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ jsx13(
1883
2005
  Button,
1884
2006
  {
1885
2007
  type: "button",
1886
2008
  variant: "ghost",
1887
2009
  size: "icon",
1888
2010
  "aria-label": "Close",
1889
- leftIcon: /* @__PURE__ */ jsx12(Icon, { name: "x", size: 18 }),
2011
+ leftIcon: /* @__PURE__ */ jsx13(Icon, { name: "x", size: 18 }),
1890
2012
  className: "absolute right-4 top-4 z-10 text-muted-foreground hover:text-foreground"
1891
2013
  }
1892
2014
  ) }) : null
@@ -1900,10 +2022,10 @@ var DialogContent = React10.forwardRef(
1900
2022
  );
1901
2023
  DialogContent.displayName = DialogPrimitive.Content.displayName;
1902
2024
  function DialogHeader({ className, ...props }) {
1903
- return /* @__PURE__ */ jsx12("div", { className: cn("grid gap-2 px-6 pt-6 pr-16 text-left", className), ...props });
2025
+ return /* @__PURE__ */ jsx13("div", { className: cn("grid gap-2 px-6 pt-6 pr-16 text-left", className), ...props });
1904
2026
  }
1905
2027
  function DialogFooter({ className, ...props }) {
1906
- return /* @__PURE__ */ jsx12(
2028
+ return /* @__PURE__ */ jsx13(
1907
2029
  "div",
1908
2030
  {
1909
2031
  className: cn(
@@ -1914,11 +2036,11 @@ function DialogFooter({ className, ...props }) {
1914
2036
  }
1915
2037
  );
1916
2038
  }
1917
- var DialogCancel = React10.forwardRef(
1918
- ({ type = "button", variant = "outline", ...props }, ref) => /* @__PURE__ */ jsx12(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ jsx12(Button, { ref, type, variant, ...props }) })
2039
+ var DialogCancel = React13.forwardRef(
2040
+ ({ type = "button", variant = "outline", ...props }, ref) => /* @__PURE__ */ jsx13(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ jsx13(Button, { ref, type, variant, ...props }) })
1919
2041
  );
1920
2042
  DialogCancel.displayName = "DialogCancel";
1921
- var DialogTitle = React10.forwardRef(({ children, className, ...props }, ref) => /* @__PURE__ */ jsx12(
2043
+ var DialogTitle = React13.forwardRef(({ children, className, ...props }, ref) => /* @__PURE__ */ jsx13(
1922
2044
  DialogPrimitive.Title,
1923
2045
  {
1924
2046
  ref,
@@ -1932,7 +2054,7 @@ var DialogTitle = React10.forwardRef(({ children, className, ...props }, ref) =>
1932
2054
  }
1933
2055
  ));
1934
2056
  DialogTitle.displayName = DialogPrimitive.Title.displayName;
1935
- var DialogDescription = React10.forwardRef(({ children, className, ...props }, ref) => /* @__PURE__ */ jsx12(
2057
+ var DialogDescription = React13.forwardRef(({ children, className, ...props }, ref) => /* @__PURE__ */ jsx13(
1936
2058
  DialogPrimitive.Description,
1937
2059
  {
1938
2060
  ref,
@@ -1948,9 +2070,9 @@ var DialogDescription = React10.forwardRef(({ children, className, ...props }, r
1948
2070
  DialogDescription.displayName = DialogPrimitive.Description.displayName;
1949
2071
 
1950
2072
  // src/components/empty.tsx
1951
- import * as React11 from "react";
2073
+ import * as React14 from "react";
1952
2074
  import { cva as cva5 } from "class-variance-authority";
1953
- import { Fragment as Fragment3, jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
2075
+ import { Fragment as Fragment3, jsx as jsx14, jsxs as jsxs7 } from "react/jsx-runtime";
1954
2076
  var emptyMediaVariantOptions = ["default", "icon"];
1955
2077
  var emptyMediaVariants = cva5(
1956
2078
  "inline-flex shrink-0 items-center justify-center transition-[background-color,border-color,color,box-shadow] duration-sofya ease-sofya",
@@ -1966,11 +2088,11 @@ var emptyMediaVariants = cva5(
1966
2088
  }
1967
2089
  }
1968
2090
  );
1969
- var EmptyMedia = React11.forwardRef(function EmptyMedia2({ className, variant, ...props }, ref) {
1970
- return /* @__PURE__ */ jsx13("div", { ref, className: cn(emptyMediaVariants({ variant }), className), ...props });
2091
+ var EmptyMedia = React14.forwardRef(function EmptyMedia2({ className, variant, ...props }, ref) {
2092
+ return /* @__PURE__ */ jsx14("div", { ref, className: cn(emptyMediaVariants({ variant }), className), ...props });
1971
2093
  });
1972
2094
  function EmptyHeader({ className, ...props }) {
1973
- return /* @__PURE__ */ jsx13(
2095
+ return /* @__PURE__ */ jsx14(
1974
2096
  "div",
1975
2097
  {
1976
2098
  className: cn("flex max-w-[34rem] flex-col items-center gap-4 text-center", className),
@@ -1979,7 +2101,7 @@ function EmptyHeader({ className, ...props }) {
1979
2101
  );
1980
2102
  }
1981
2103
  function EmptyTitle({ children, className, ...props }) {
1982
- return /* @__PURE__ */ jsx13(
2104
+ return /* @__PURE__ */ jsx14(
1983
2105
  "h2",
1984
2106
  {
1985
2107
  className: cn("text-foreground", className),
@@ -1997,7 +2119,7 @@ function EmptyDescription({
1997
2119
  className,
1998
2120
  ...props
1999
2121
  }) {
2000
- return /* @__PURE__ */ jsx13(
2122
+ return /* @__PURE__ */ jsx14(
2001
2123
  "p",
2002
2124
  {
2003
2125
  className: cn("max-w-full text-muted-foreground whitespace-nowrap", className),
@@ -2011,7 +2133,7 @@ function EmptyDescription({
2011
2133
  );
2012
2134
  }
2013
2135
  function EmptyContent({ children, className, ...props }) {
2014
- return /* @__PURE__ */ jsx13(
2136
+ return /* @__PURE__ */ jsx14(
2015
2137
  "div",
2016
2138
  {
2017
2139
  className: cn("flex flex-wrap items-center justify-center gap-4 text-center", className),
@@ -2022,9 +2144,9 @@ function EmptyContent({ children, className, ...props }) {
2022
2144
  }
2023
2145
  );
2024
2146
  }
2025
- var Empty = React11.forwardRef(function Empty2({ children, className, content, description, media, title, ...props }, ref) {
2026
- const hasCustomChildren = React11.Children.count(children) > 0;
2027
- return /* @__PURE__ */ jsx13(
2147
+ var Empty = React14.forwardRef(function Empty2({ children, className, content, description, media, title, ...props }, ref) {
2148
+ const hasCustomChildren = React14.Children.count(children) > 0;
2149
+ return /* @__PURE__ */ jsx14(
2028
2150
  "div",
2029
2151
  {
2030
2152
  ref,
@@ -2033,13 +2155,13 @@ var Empty = React11.forwardRef(function Empty2({ children, className, content, d
2033
2155
  className
2034
2156
  ),
2035
2157
  ...props,
2036
- children: hasCustomChildren ? children : /* @__PURE__ */ jsxs8(Fragment3, { children: [
2037
- /* @__PURE__ */ jsxs8(EmptyHeader, { children: [
2038
- media ?? /* @__PURE__ */ jsx13(EmptyMedia, { variant: "icon", "aria-hidden": "true", children: /* @__PURE__ */ jsx13(Icon, { name: "folders", size: 28 }) }),
2039
- /* @__PURE__ */ jsx13(EmptyTitle, { children: title ?? "Nada por aqui" }),
2040
- /* @__PURE__ */ jsx13(EmptyDescription, { children: description ?? "Quando houver conte\xFAdo dispon\xEDvel, ele aparecer\xE1 aqui." })
2158
+ children: hasCustomChildren ? children : /* @__PURE__ */ jsxs7(Fragment3, { children: [
2159
+ /* @__PURE__ */ jsxs7(EmptyHeader, { children: [
2160
+ media ?? /* @__PURE__ */ jsx14(EmptyMedia, { variant: "icon", "aria-hidden": "true", children: /* @__PURE__ */ jsx14(Icon, { name: "folders", size: 28 }) }),
2161
+ /* @__PURE__ */ jsx14(EmptyTitle, { children: title ?? "Nada por aqui" }),
2162
+ /* @__PURE__ */ jsx14(EmptyDescription, { children: description ?? "Quando houver conte\xFAdo dispon\xEDvel, ele aparecer\xE1 aqui." })
2041
2163
  ] }),
2042
- content !== void 0 && content !== null ? /* @__PURE__ */ jsx13(EmptyContent, { children: content }) : null
2164
+ content !== void 0 && content !== null ? /* @__PURE__ */ jsx14(EmptyContent, { children: content }) : null
2043
2165
  ] })
2044
2166
  }
2045
2167
  );
@@ -2052,108 +2174,78 @@ EmptyDescription.displayName = "EmptyDescription";
2052
2174
  EmptyContent.displayName = "EmptyContent";
2053
2175
 
2054
2176
  // src/components/input.tsx
2055
- import * as React13 from "react";
2177
+ import * as React17 from "react";
2056
2178
  import { REGEXP_ONLY_DIGITS as REGEXP_ONLY_DIGITS2 } from "input-otp";
2057
- import { AnimatePresence, motion as motion2, useReducedMotion as useReducedMotion2 } from "motion/react";
2058
2179
 
2059
- // src/components/input-otp.tsx
2060
- import * as React12 from "react";
2061
- import {
2062
- OTPInput,
2063
- OTPInputContext,
2064
- REGEXP_ONLY_DIGITS
2065
- } from "input-otp";
2066
- import { jsx as jsx14, jsxs as jsxs9 } from "react/jsx-runtime";
2067
- var InputOTP = React12.forwardRef(({ className, containerClassName, ...props }, ref) => {
2068
- return /* @__PURE__ */ jsx14(
2069
- OTPInput,
2070
- {
2071
- ref,
2072
- containerClassName: cn(
2073
- "flex items-center gap-4 has-[:disabled]:opacity-50",
2074
- containerClassName
2075
- ),
2076
- className: cn("disabled:cursor-not-allowed", className),
2077
- ...props
2078
- }
2079
- );
2080
- });
2081
- InputOTP.displayName = "InputOTP";
2082
- var InputOTPGroup = React12.forwardRef(({ className, ...props }, ref) => {
2083
- return /* @__PURE__ */ jsx14(
2084
- "div",
2180
+ // src/lib/field-shell.tsx
2181
+ import { jsx as jsx15, jsxs as jsxs8 } from "react/jsx-runtime";
2182
+ function FieldLabel({
2183
+ children,
2184
+ className,
2185
+ htmlFor,
2186
+ textClassName = "block text-[color:var(--sofya-text-default)]",
2187
+ textSize = "body",
2188
+ textStyle = {
2189
+ fontWeight: 500
2190
+ }
2191
+ }) {
2192
+ if (!children) {
2193
+ return null;
2194
+ }
2195
+ const Component = htmlFor ? "label" : "div";
2196
+ return /* @__PURE__ */ jsx15(
2197
+ Component,
2085
2198
  {
2086
- ref,
2087
- className: cn(
2088
- "flex overflow-hidden rounded-[12px] border border-[color:var(--sofya-border-hover)] bg-card",
2089
- className
2090
- ),
2091
- ...props
2199
+ className: cn("text-[color:var(--sofya-text-default)]", className),
2200
+ htmlFor,
2201
+ children: renderTextContent(children, {
2202
+ as: "span",
2203
+ className: textClassName,
2204
+ size: textSize,
2205
+ style: textStyle
2206
+ })
2092
2207
  }
2093
2208
  );
2094
- });
2095
- InputOTPGroup.displayName = "InputOTPGroup";
2096
- var InputOTPSlot = React12.forwardRef(
2097
- ({ className, index, ...props }, ref) => {
2098
- const otpContext = React12.useContext(OTPInputContext);
2099
- const slot = otpContext.slots[index];
2100
- if (!slot) {
2101
- return /* @__PURE__ */ jsx14(
2102
- "div",
2103
- {
2104
- ref,
2105
- className: cn(
2106
- "relative flex h-[92px] w-[96px] items-center justify-center border-r border-[color:var(--sofya-border-strong)] bg-card last:border-r-0",
2107
- className
2108
- ),
2109
- ...props
2110
- }
2111
- );
2112
- }
2113
- return /* @__PURE__ */ jsxs9(
2114
- "div",
2209
+ }
2210
+ function FieldShell({
2211
+ containerClassName,
2212
+ control,
2213
+ label,
2214
+ labelClassName,
2215
+ labelHtmlFor,
2216
+ labelTextClassName,
2217
+ labelTextSize,
2218
+ labelTextStyle
2219
+ }) {
2220
+ if (!label && !containerClassName) {
2221
+ return control;
2222
+ }
2223
+ return /* @__PURE__ */ jsxs8("div", { className: cn("grid w-full gap-2", containerClassName), children: [
2224
+ label ? /* @__PURE__ */ jsx15(
2225
+ FieldLabel,
2115
2226
  {
2116
- ref,
2117
- className: cn(
2118
- "relative flex h-[92px] w-[96px] items-center justify-center border-r border-[color:var(--sofya-border-strong)] bg-card text-[40px] font-medium leading-none tracking-[-0.04em] text-[color:var(--sofya-text-default)] transition-[background-color,box-shadow,border-color,color] duration-sofya ease-sofya last:border-r-0",
2119
- slot.isActive && "z-10 border-transparent bg-[color:var(--sofya-surface-hover)] text-primary shadow-[var(--sofya-shadow-otp-focus)] ring-2 ring-inset ring-[color:var(--sofya-focus-ring-strong)]",
2120
- className
2121
- ),
2122
- ...props,
2123
- children: [
2124
- slot.char ?? null,
2125
- slot.hasFakeCaret ? /* @__PURE__ */ jsx14("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx14("div", { className: "h-10 w-[2px] animate-pulse rounded-full bg-primary shadow-[var(--sofya-shadow-caret-glow)]" }) }) : null
2126
- ]
2227
+ className: labelClassName,
2228
+ htmlFor: labelHtmlFor,
2229
+ textClassName: labelTextClassName,
2230
+ textSize: labelTextSize,
2231
+ textStyle: labelTextStyle,
2232
+ children: label
2127
2233
  }
2128
- );
2129
- }
2130
- );
2131
- InputOTPSlot.displayName = "InputOTPSlot";
2132
- var InputOTPSeparator = React12.forwardRef(({ className, ...props }, ref) => {
2133
- return /* @__PURE__ */ jsx14(
2134
- "div",
2135
- {
2136
- ref,
2137
- role: "separator",
2138
- className: cn(
2139
- "flex items-center justify-center px-2 text-[28px] leading-none text-[color:var(--sofya-text-soft)]",
2140
- className
2141
- ),
2142
- ...props,
2143
- children: /* @__PURE__ */ jsx14("span", { "aria-hidden": "true", children: "." })
2144
- }
2145
- );
2146
- });
2147
- InputOTPSeparator.displayName = "InputOTPSeparator";
2234
+ ) : null,
2235
+ control
2236
+ ] });
2237
+ }
2148
2238
 
2149
- // src/components/input.tsx
2150
- import { jsx as jsx15, jsxs as jsxs10 } from "react/jsx-runtime";
2151
- var inputVariantOptions = [
2152
- "default",
2153
- "search",
2154
- "otp",
2155
- "upload"
2156
- ];
2239
+ // src/components/input-upload.tsx
2240
+ import * as React15 from "react";
2241
+ import {
2242
+ IconFileText,
2243
+ IconPhoto,
2244
+ IconUpload,
2245
+ IconVideo
2246
+ } from "@tabler/icons-react";
2247
+ import { AnimatePresence, motion as motion2, useReducedMotion as useReducedMotion2 } from "motion/react";
2248
+ import { jsx as jsx16, jsxs as jsxs9 } from "react/jsx-runtime";
2157
2249
  var uploadKindOptions = ["document", "image", "video"];
2158
2250
  var uploadAcceptByKind = {
2159
2251
  document: ".pdf,.doc,.docx,.txt,.rtf,.odt,.jpg,.jpeg,.png,.webp,.gif",
@@ -2200,7 +2292,7 @@ function mergeUploadFiles(currentFiles, nextFiles, multiple) {
2200
2292
  return Array.from(filesBySignature.values());
2201
2293
  }
2202
2294
  var uploadListItemTransition = {
2203
- duration: 0.2,
2295
+ duration: 0.18,
2204
2296
  ease: [0.22, 1, 0.36, 1]
2205
2297
  };
2206
2298
  function formatUploadFileSize(bytes) {
@@ -2246,96 +2338,12 @@ function resolveUploadFileVisualKind(file, fallbackKind) {
2246
2338
  }
2247
2339
  return "document";
2248
2340
  }
2249
- function InputShell({
2250
- containerClassName,
2251
- control,
2252
- label,
2253
- labelClassName,
2254
- resolvedId
2255
- }) {
2256
- if (!label && !containerClassName) {
2257
- return control;
2258
- }
2259
- return /* @__PURE__ */ jsxs10("div", { className: cn("grid w-full gap-2", containerClassName), children: [
2260
- label ? /* @__PURE__ */ jsx15(
2261
- "label",
2262
- {
2263
- className: cn(
2264
- "text-[color:var(--sofya-text-default)]",
2265
- labelClassName
2266
- ),
2267
- htmlFor: resolvedId,
2268
- children: renderTextContent(label, {
2269
- as: "span",
2270
- className: "block text-[color:var(--sofya-text-default)]",
2271
- size: "body",
2272
- style: {
2273
- fontWeight: 500
2274
- }
2275
- })
2276
- }
2277
- ) : null,
2278
- control
2279
- ] });
2280
- }
2281
- function UploadInputShell({
2282
- containerClassName,
2283
- control,
2284
- label,
2285
- labelClassName,
2286
- optionalLabel
2287
- }) {
2288
- if (!label && !optionalLabel && !containerClassName) {
2289
- return control;
2290
- }
2291
- return /* @__PURE__ */ jsxs10("div", { className: cn("grid w-full gap-2", containerClassName), children: [
2292
- label || optionalLabel ? /* @__PURE__ */ jsxs10(
2293
- "div",
2294
- {
2295
- className: cn(
2296
- "text-[color:var(--sofya-text-default)]",
2297
- labelClassName
2298
- ),
2299
- children: [
2300
- renderTextContent(label, {
2301
- as: "span",
2302
- className: "text-[color:var(--sofya-text-default)]",
2303
- size: "body",
2304
- style: {
2305
- fontWeight: 700
2306
- }
2307
- }),
2308
- optionalLabel ? /* @__PURE__ */ jsx15("span", { className: "ml-2 text-[color:var(--sofya-text-subtle)]", children: renderTextContent(optionalLabel, {
2309
- as: "span",
2310
- className: "text-[color:var(--sofya-text-subtle)]",
2311
- size: "tiny"
2312
- }) }) : null
2313
- ]
2314
- }
2315
- ) : null,
2316
- control
2317
- ] });
2318
- }
2319
2341
  function UploadGlyph({ className }) {
2320
- return /* @__PURE__ */ jsx15(
2321
- "svg",
2342
+ return /* @__PURE__ */ jsx16(
2343
+ IconUpload,
2322
2344
  {
2323
2345
  "aria-hidden": "true",
2324
- className: cn("inline-block shrink-0 align-middle", className),
2325
- fill: "none",
2326
- focusable: "false",
2327
- viewBox: "0 0 20 20",
2328
- xmlns: "http://www.w3.org/2000/svg",
2329
- children: /* @__PURE__ */ jsx15(
2330
- "path",
2331
- {
2332
- d: "M10 12.5V3.75M6.66667 7.08333L10 3.75L13.3333 7.08333M5 11.6667V14.1667C5 14.6269 5.3731 15 5.83333 15H14.1667C14.6269 15 15 14.6269 15 14.1667V11.6667",
2333
- stroke: "currentColor",
2334
- strokeLinecap: "round",
2335
- strokeLinejoin: "round",
2336
- strokeWidth: "2"
2337
- }
2338
- )
2346
+ className: cn("inline-block shrink-0 align-middle", className)
2339
2347
  }
2340
2348
  );
2341
2349
  }
@@ -2344,120 +2352,32 @@ function UploadFileTypeGlyph({
2344
2352
  kind
2345
2353
  }) {
2346
2354
  if (kind === "image") {
2347
- return /* @__PURE__ */ jsxs10(
2348
- "svg",
2355
+ return /* @__PURE__ */ jsx16(
2356
+ IconPhoto,
2349
2357
  {
2350
2358
  "aria-hidden": "true",
2351
- className: cn("inline-block shrink-0 align-middle", className),
2352
- fill: "none",
2353
- focusable: "false",
2354
- viewBox: "0 0 18 18",
2355
- xmlns: "http://www.w3.org/2000/svg",
2356
- children: [
2357
- /* @__PURE__ */ jsx15(
2358
- "rect",
2359
- {
2360
- x: "2.5",
2361
- y: "3",
2362
- width: "13",
2363
- height: "12",
2364
- rx: "2.5",
2365
- stroke: "currentColor",
2366
- strokeWidth: "1.5"
2367
- }
2368
- ),
2369
- /* @__PURE__ */ jsx15("circle", { cx: "6.75", cy: "7.25", r: "1.25", fill: "currentColor" }),
2370
- /* @__PURE__ */ jsx15(
2371
- "path",
2372
- {
2373
- d: "M4.5 12L7.25 9.25C7.64052 8.85948 8.27368 8.85948 8.66421 9.25L9.5 10.0858C9.89052 10.4763 10.5237 10.4763 10.9142 10.0858L11.25 9.75C11.6405 9.35948 12.2737 9.35948 12.6642 9.75L13.5 10.5858",
2374
- stroke: "currentColor",
2375
- strokeLinecap: "round",
2376
- strokeLinejoin: "round",
2377
- strokeWidth: "1.5"
2378
- }
2379
- )
2380
- ]
2359
+ className: cn("inline-block shrink-0 align-middle", className)
2381
2360
  }
2382
2361
  );
2383
2362
  }
2384
2363
  if (kind === "video") {
2385
- return /* @__PURE__ */ jsxs10(
2386
- "svg",
2364
+ return /* @__PURE__ */ jsx16(
2365
+ IconVideo,
2387
2366
  {
2388
2367
  "aria-hidden": "true",
2389
- className: cn("inline-block shrink-0 align-middle", className),
2390
- fill: "none",
2391
- focusable: "false",
2392
- viewBox: "0 0 18 18",
2393
- xmlns: "http://www.w3.org/2000/svg",
2394
- children: [
2395
- /* @__PURE__ */ jsx15(
2396
- "rect",
2397
- {
2398
- x: "2.5",
2399
- y: "4",
2400
- width: "13",
2401
- height: "10",
2402
- rx: "2.5",
2403
- stroke: "currentColor",
2404
- strokeWidth: "1.5"
2405
- }
2406
- ),
2407
- /* @__PURE__ */ jsx15(
2408
- "path",
2409
- {
2410
- d: "M8 7.35C8 7.03889 8.33624 6.84443 8.60583 7.00018L11.1583 8.47518C11.4279 8.63094 11.4279 9.02088 11.1583 9.17664L8.60583 10.6516C8.33624 10.8074 8 10.6129 8 10.3018V7.35Z",
2411
- fill: "currentColor"
2412
- }
2413
- )
2414
- ]
2368
+ className: cn("inline-block shrink-0 align-middle", className)
2415
2369
  }
2416
2370
  );
2417
2371
  }
2418
- return /* @__PURE__ */ jsxs10(
2419
- "svg",
2372
+ return /* @__PURE__ */ jsx16(
2373
+ IconFileText,
2420
2374
  {
2421
2375
  "aria-hidden": "true",
2422
- className: cn("inline-block shrink-0 align-middle", className),
2423
- fill: "none",
2424
- focusable: "false",
2425
- viewBox: "0 0 18 18",
2426
- xmlns: "http://www.w3.org/2000/svg",
2427
- children: [
2428
- /* @__PURE__ */ jsx15(
2429
- "path",
2430
- {
2431
- d: "M7.5 2.25H5C3.89543 2.25 3 3.14543 3 4.25V13.75C3 14.8546 3.89543 15.75 5 15.75H13C14.1046 15.75 15 14.8546 15 13.75V8.25L11.25 4.5H9.75C8.50736 4.5 7.5 3.49264 7.5 2.25Z",
2432
- stroke: "currentColor",
2433
- strokeLinejoin: "round",
2434
- strokeWidth: "1.5"
2435
- }
2436
- ),
2437
- /* @__PURE__ */ jsx15(
2438
- "path",
2439
- {
2440
- d: "M7.5 2.25V4.25C7.5 5.35457 8.39543 6.25 9.5 6.25H11.5",
2441
- stroke: "currentColor",
2442
- strokeLinecap: "round",
2443
- strokeLinejoin: "round",
2444
- strokeWidth: "1.5"
2445
- }
2446
- ),
2447
- /* @__PURE__ */ jsx15(
2448
- "path",
2449
- {
2450
- d: "M6 10H12M6 12.5H10",
2451
- stroke: "currentColor",
2452
- strokeLinecap: "round",
2453
- strokeWidth: "1.5"
2454
- }
2455
- )
2456
- ]
2376
+ className: cn("inline-block shrink-0 align-middle", className)
2457
2377
  }
2458
2378
  );
2459
2379
  }
2460
- var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2380
+ var UploadInputControl = React15.forwardRef(function UploadInputControl2({
2461
2381
  accept,
2462
2382
  "aria-label": ariaLabel,
2463
2383
  className,
@@ -2471,17 +2391,17 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2471
2391
  resolvedId,
2472
2392
  ...uploadProps
2473
2393
  }, ref) {
2474
- const inputRef = React13.useRef(null);
2475
- const [isDragActive, setIsDragActive] = React13.useState(false);
2476
- const [selectedFiles, setSelectedFiles] = React13.useState([]);
2394
+ const inputRef = React15.useRef(null);
2395
+ const [isDragActive, setIsDragActive] = React15.useState(false);
2396
+ const [selectedFiles, setSelectedFiles] = React15.useState([]);
2477
2397
  const resolvedMultiple = multiple ?? true;
2478
2398
  const prefersReducedMotion = useReducedMotion2();
2479
- React13.useImperativeHandle(ref, () => inputRef.current);
2399
+ React15.useImperativeHandle(ref, () => inputRef.current);
2480
2400
  const resolvedAccept = accept ?? uploadAcceptByKind[uploadKind];
2481
2401
  const resolvedAriaLabel = ariaLabel ?? uploadAriaLabelByKind[uploadKind];
2482
2402
  const resolvedTitle = uploadTitle ?? "Arraste arquivos aqui ou clique para selecionar";
2483
2403
  const resolvedDescription = uploadDescription ?? uploadDescriptionByKind[uploadKind];
2484
- const syncSelectedFiles = React13.useCallback(
2404
+ const syncSelectedFiles = React15.useCallback(
2485
2405
  (files) => {
2486
2406
  const normalizedFiles = resolvedMultiple ? files : files.slice(0, 1);
2487
2407
  setSelectedFiles(normalizedFiles);
@@ -2489,7 +2409,7 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2489
2409
  },
2490
2410
  [onFilesChange, resolvedMultiple]
2491
2411
  );
2492
- const applyFilesToInput = React13.useCallback((files) => {
2412
+ const applyFilesToInput = React15.useCallback((files) => {
2493
2413
  const inputElement = inputRef.current;
2494
2414
  if (!inputElement || typeof DataTransfer === "undefined") {
2495
2415
  return false;
@@ -2508,7 +2428,7 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2508
2428
  return false;
2509
2429
  }
2510
2430
  }, []);
2511
- const handleInputChange = React13.useCallback(
2431
+ const handleInputChange = React15.useCallback(
2512
2432
  (event) => {
2513
2433
  const nextFiles = mergeUploadFiles(
2514
2434
  selectedFiles,
@@ -2527,12 +2447,12 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2527
2447
  syncSelectedFiles
2528
2448
  ]
2529
2449
  );
2530
- const openPicker = React13.useCallback(() => {
2450
+ const openPicker = React15.useCallback(() => {
2531
2451
  if (!disabled) {
2532
2452
  inputRef.current?.click();
2533
2453
  }
2534
2454
  }, [disabled]);
2535
- const handleKeyDown = React13.useCallback(
2455
+ const handleKeyDown = React15.useCallback(
2536
2456
  (event) => {
2537
2457
  if (disabled) {
2538
2458
  return;
@@ -2544,7 +2464,7 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2544
2464
  },
2545
2465
  [disabled, openPicker]
2546
2466
  );
2547
- const handleDragEnter = React13.useCallback(
2467
+ const handleDragEnter = React15.useCallback(
2548
2468
  (event) => {
2549
2469
  event.preventDefault();
2550
2470
  if (!disabled) {
@@ -2553,7 +2473,7 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2553
2473
  },
2554
2474
  [disabled]
2555
2475
  );
2556
- const handleDragLeave = React13.useCallback(
2476
+ const handleDragLeave = React15.useCallback(
2557
2477
  (event) => {
2558
2478
  if (disabled) {
2559
2479
  return;
@@ -2566,7 +2486,7 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2566
2486
  },
2567
2487
  [disabled]
2568
2488
  );
2569
- const handleDragOver = React13.useCallback(
2489
+ const handleDragOver = React15.useCallback(
2570
2490
  (event) => {
2571
2491
  event.preventDefault();
2572
2492
  if (disabled) {
@@ -2577,7 +2497,7 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2577
2497
  },
2578
2498
  [disabled]
2579
2499
  );
2580
- const handleDrop = React13.useCallback(
2500
+ const handleDrop = React15.useCallback(
2581
2501
  (event) => {
2582
2502
  event.preventDefault();
2583
2503
  if (disabled) {
@@ -2610,7 +2530,7 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2610
2530
  syncSelectedFiles
2611
2531
  ]
2612
2532
  );
2613
- const handleRemoveFile = React13.useCallback(
2533
+ const handleRemoveFile = React15.useCallback(
2614
2534
  (fileIndex) => {
2615
2535
  if (disabled) {
2616
2536
  return;
@@ -2621,8 +2541,8 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2621
2541
  },
2622
2542
  [applyFilesToInput, disabled, selectedFiles, syncSelectedFiles]
2623
2543
  );
2624
- return /* @__PURE__ */ jsxs10("div", { className: "grid w-full gap-4", children: [
2625
- /* @__PURE__ */ jsx15(
2544
+ return /* @__PURE__ */ jsxs9("div", { className: "grid w-full gap-4", children: [
2545
+ /* @__PURE__ */ jsx16(
2626
2546
  "input",
2627
2547
  {
2628
2548
  ...uploadProps,
@@ -2637,7 +2557,7 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2637
2557
  onChange: handleInputChange
2638
2558
  }
2639
2559
  ),
2640
- /* @__PURE__ */ jsxs10(
2560
+ /* @__PURE__ */ jsxs9(
2641
2561
  "label",
2642
2562
  {
2643
2563
  "aria-disabled": disabled || void 0,
@@ -2657,8 +2577,8 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2657
2577
  onDrop: handleDrop,
2658
2578
  onKeyDown: handleKeyDown,
2659
2579
  children: [
2660
- /* @__PURE__ */ jsx15("span", { className: "flex size-10 items-center justify-center rounded-[6px] p-2 text-[color:var(--sofya-text-default)]", children: /* @__PURE__ */ jsx15(UploadGlyph, { className: "size-[18px]" }) }),
2661
- /* @__PURE__ */ jsx15("span", { className: "text-[color:var(--sofya-text-default)]", children: renderTextContent(resolvedTitle, {
2580
+ /* @__PURE__ */ jsx16("span", { className: "flex size-10 items-center justify-center rounded-[6px] p-2 text-[color:var(--sofya-text-default)]", children: /* @__PURE__ */ jsx16(UploadGlyph, { className: "size-[18px]" }) }),
2581
+ /* @__PURE__ */ jsx16("span", { className: "text-[color:var(--sofya-text-default)]", children: renderTextContent(resolvedTitle, {
2662
2582
  as: "span",
2663
2583
  className: "block text-[color:var(--sofya-text-default)]",
2664
2584
  size: "body",
@@ -2666,7 +2586,7 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2666
2586
  fontWeight: 500
2667
2587
  }
2668
2588
  }) }),
2669
- resolvedDescription ? /* @__PURE__ */ jsx15("span", { className: "text-[color:var(--sofya-text-subtle)]", children: renderTextContent(resolvedDescription, {
2589
+ resolvedDescription ? /* @__PURE__ */ jsx16("span", { className: "text-[color:var(--sofya-text-subtle)]", children: renderTextContent(resolvedDescription, {
2670
2590
  as: "span",
2671
2591
  className: "block text-[color:var(--sofya-text-subtle)]",
2672
2592
  size: "tiny"
@@ -2674,28 +2594,27 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2674
2594
  ]
2675
2595
  }
2676
2596
  ),
2677
- /* @__PURE__ */ jsx15(motion2.div, { layout: true, role: "list", className: "grid gap-4 overflow-hidden", children: /* @__PURE__ */ jsx15(AnimatePresence, { initial: false, children: selectedFiles.map((file, index) => {
2597
+ /* @__PURE__ */ jsx16("div", { role: "list", className: "grid gap-4 overflow-hidden", children: /* @__PURE__ */ jsx16(AnimatePresence, { initial: false, children: selectedFiles.map((file, index) => {
2678
2598
  const fileKey = resolveUploadFileSignature(file);
2679
- return /* @__PURE__ */ jsx15(
2599
+ return /* @__PURE__ */ jsx16(
2680
2600
  motion2.div,
2681
2601
  {
2682
- layout: true,
2683
2602
  role: "listitem",
2684
2603
  className: "overflow-hidden",
2685
- initial: prefersReducedMotion ? { opacity: 0 } : { opacity: 0, y: 10, scale: 0.98, height: 0 },
2686
- animate: prefersReducedMotion ? { opacity: 1 } : { opacity: 1, y: 0, scale: 1, height: "auto" },
2687
- exit: prefersReducedMotion ? { opacity: 0 } : { opacity: 0, scale: 0.98, height: 0 },
2604
+ initial: prefersReducedMotion ? { opacity: 0 } : { opacity: 0, y: 8 },
2605
+ animate: prefersReducedMotion ? { opacity: 1 } : { opacity: 1, y: 0 },
2606
+ exit: prefersReducedMotion ? { opacity: 0 } : { opacity: 0, y: -6 },
2688
2607
  transition: uploadListItemTransition,
2689
- children: /* @__PURE__ */ jsxs10(Card, { variant: "panel", className: "flex items-center gap-4 p-4", children: [
2690
- /* @__PURE__ */ jsx15("span", { className: "flex size-11 shrink-0 items-center justify-center rounded-full bg-[color:var(--sofya-surface-hover)] text-primary", children: /* @__PURE__ */ jsx15(
2608
+ children: /* @__PURE__ */ jsxs9(Card, { variant: "panel", className: "flex items-center gap-4 p-4", children: [
2609
+ /* @__PURE__ */ jsx16("span", { className: "flex size-11 shrink-0 items-center justify-center rounded-full bg-[color:var(--sofya-surface-hover)] text-primary", children: /* @__PURE__ */ jsx16(
2691
2610
  UploadFileTypeGlyph,
2692
2611
  {
2693
2612
  className: "size-[18px]",
2694
2613
  kind: resolveUploadFileVisualKind(file, uploadKind)
2695
2614
  }
2696
2615
  ) }),
2697
- /* @__PURE__ */ jsxs10("div", { className: "min-w-0 flex-1", children: [
2698
- /* @__PURE__ */ jsx15("p", { className: "truncate text-[color:var(--sofya-text-default)]", children: renderTextContent(file.name, {
2616
+ /* @__PURE__ */ jsxs9("div", { className: "min-w-0 flex-1", children: [
2617
+ /* @__PURE__ */ jsx16("p", { className: "truncate text-[color:var(--sofya-text-default)]", children: renderTextContent(file.name, {
2699
2618
  as: "span",
2700
2619
  className: "block truncate text-[color:var(--sofya-text-default)]",
2701
2620
  size: "body",
@@ -2703,7 +2622,7 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2703
2622
  fontWeight: 500
2704
2623
  }
2705
2624
  }) }),
2706
- /* @__PURE__ */ jsx15("p", { className: "mt-2 text-[color:var(--sofya-text-subtle)]", children: renderTextContent(
2625
+ /* @__PURE__ */ jsx16("p", { className: "mt-2 text-[color:var(--sofya-text-subtle)]", children: renderTextContent(
2707
2626
  `${resolveUploadFileBadge(
2708
2627
  file
2709
2628
  )} \xB7 ${formatUploadFileSize(file.size)}`,
@@ -2714,7 +2633,7 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2714
2633
  }
2715
2634
  ) })
2716
2635
  ] }),
2717
- /* @__PURE__ */ jsx15(
2636
+ /* @__PURE__ */ jsx16(
2718
2637
  "button",
2719
2638
  {
2720
2639
  "aria-label": `Remover ${file.name}`,
@@ -2726,7 +2645,7 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2726
2645
  event.stopPropagation();
2727
2646
  handleRemoveFile(index);
2728
2647
  },
2729
- children: /* @__PURE__ */ jsx15(
2648
+ children: /* @__PURE__ */ jsx16(
2730
2649
  Icon,
2731
2650
  {
2732
2651
  "aria-hidden": "true",
@@ -2741,12 +2660,111 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2741
2660
  },
2742
2661
  fileKey
2743
2662
  );
2744
- }) }) })
2745
- ] });
2663
+ }) }) })
2664
+ ] });
2665
+ });
2666
+ UploadInputControl.displayName = "UploadInputControl";
2667
+
2668
+ // src/components/input-otp.tsx
2669
+ import * as React16 from "react";
2670
+ import {
2671
+ OTPInput,
2672
+ OTPInputContext,
2673
+ REGEXP_ONLY_DIGITS
2674
+ } from "input-otp";
2675
+ import { jsx as jsx17, jsxs as jsxs10 } from "react/jsx-runtime";
2676
+ var InputOTP = React16.forwardRef(({ className, containerClassName, ...props }, ref) => {
2677
+ return /* @__PURE__ */ jsx17(
2678
+ OTPInput,
2679
+ {
2680
+ ref,
2681
+ containerClassName: cn(
2682
+ "flex items-center gap-4 has-[:disabled]:opacity-50",
2683
+ containerClassName
2684
+ ),
2685
+ className: cn("disabled:cursor-not-allowed", className),
2686
+ ...props
2687
+ }
2688
+ );
2689
+ });
2690
+ InputOTP.displayName = "InputOTP";
2691
+ var InputOTPGroup = React16.forwardRef(({ className, ...props }, ref) => {
2692
+ return /* @__PURE__ */ jsx17(
2693
+ "div",
2694
+ {
2695
+ ref,
2696
+ className: cn(
2697
+ "flex overflow-hidden rounded-[12px] border border-[color:var(--sofya-border-hover)] bg-card",
2698
+ className
2699
+ ),
2700
+ ...props
2701
+ }
2702
+ );
2703
+ });
2704
+ InputOTPGroup.displayName = "InputOTPGroup";
2705
+ var InputOTPSlot = React16.forwardRef(
2706
+ ({ className, index, ...props }, ref) => {
2707
+ const otpContext = React16.useContext(OTPInputContext);
2708
+ const slot = otpContext.slots[index];
2709
+ if (!slot) {
2710
+ return /* @__PURE__ */ jsx17(
2711
+ "div",
2712
+ {
2713
+ ref,
2714
+ className: cn(
2715
+ "relative flex h-[92px] w-[96px] items-center justify-center border-r border-[color:var(--sofya-border-strong)] bg-card last:border-r-0",
2716
+ className
2717
+ ),
2718
+ ...props
2719
+ }
2720
+ );
2721
+ }
2722
+ return /* @__PURE__ */ jsxs10(
2723
+ "div",
2724
+ {
2725
+ ref,
2726
+ className: cn(
2727
+ "relative flex h-[92px] w-[96px] items-center justify-center border-r border-[color:var(--sofya-border-strong)] bg-card text-[40px] font-medium leading-none tracking-[-0.04em] text-[color:var(--sofya-text-default)] transition-[background-color,box-shadow,border-color,color] duration-sofya ease-sofya last:border-r-0",
2728
+ slot.isActive && "z-10 border-transparent bg-[color:var(--sofya-surface-hover)] text-primary shadow-[var(--sofya-shadow-otp-focus)] ring-2 ring-inset ring-[color:var(--sofya-focus-ring-strong)]",
2729
+ className
2730
+ ),
2731
+ ...props,
2732
+ children: [
2733
+ slot.char ?? null,
2734
+ slot.hasFakeCaret ? /* @__PURE__ */ jsx17("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsx17("div", { className: "h-10 w-[2px] animate-pulse rounded-full bg-primary shadow-[var(--sofya-shadow-caret-glow)]" }) }) : null
2735
+ ]
2736
+ }
2737
+ );
2738
+ }
2739
+ );
2740
+ InputOTPSlot.displayName = "InputOTPSlot";
2741
+ var InputOTPSeparator = React16.forwardRef(({ className, ...props }, ref) => {
2742
+ return /* @__PURE__ */ jsx17(
2743
+ "div",
2744
+ {
2745
+ ref,
2746
+ role: "separator",
2747
+ className: cn(
2748
+ "flex items-center justify-center px-2 text-[28px] leading-none text-[color:var(--sofya-text-soft)]",
2749
+ className
2750
+ ),
2751
+ ...props,
2752
+ children: /* @__PURE__ */ jsx17("span", { "aria-hidden": "true", children: "." })
2753
+ }
2754
+ );
2746
2755
  });
2747
- UploadInputControl.displayName = "UploadInputControl";
2748
- var Input = React13.forwardRef((props, ref) => {
2749
- const generatedId = React13.useId();
2756
+ InputOTPSeparator.displayName = "InputOTPSeparator";
2757
+
2758
+ // src/components/input.tsx
2759
+ import { Fragment as Fragment4, jsx as jsx18, jsxs as jsxs11 } from "react/jsx-runtime";
2760
+ var inputVariantOptions = [
2761
+ "default",
2762
+ "search",
2763
+ "otp",
2764
+ "upload"
2765
+ ];
2766
+ var Input = React17.forwardRef((props, ref) => {
2767
+ const generatedId = React17.useId();
2750
2768
  const resolvedId = props.id ?? generatedId;
2751
2769
  const variant = props.variant ?? "default";
2752
2770
  if (variant === "otp") {
@@ -2774,7 +2792,7 @@ var Input = React13.forwardRef((props, ref) => {
2774
2792
  );
2775
2793
  const hasTrailingGroup = resolvedSplitIndex < resolvedLength;
2776
2794
  const otpAriaLabel = otpProps["aria-label"] ?? "Verification code";
2777
- const otpControl = /* @__PURE__ */ jsxs10(
2795
+ const otpControl = /* @__PURE__ */ jsxs11(
2778
2796
  InputOTP,
2779
2797
  {
2780
2798
  ref,
@@ -2787,7 +2805,7 @@ var Input = React13.forwardRef((props, ref) => {
2787
2805
  containerClassName: className2,
2788
2806
  ...otpProps,
2789
2807
  children: [
2790
- /* @__PURE__ */ jsx15(InputOTPGroup, { className: otpGroupClassName, children: Array.from({ length: resolvedSplitIndex }, (_, index) => /* @__PURE__ */ jsx15(
2808
+ /* @__PURE__ */ jsx18(InputOTPGroup, { className: otpGroupClassName, children: Array.from({ length: resolvedSplitIndex }, (_, index) => /* @__PURE__ */ jsx18(
2791
2809
  InputOTPSlot,
2792
2810
  {
2793
2811
  className: otpSlotClassName,
@@ -2795,10 +2813,10 @@ var Input = React13.forwardRef((props, ref) => {
2795
2813
  },
2796
2814
  `otp-leading-${index}`
2797
2815
  )) }),
2798
- hasTrailingGroup ? otpSeparator ?? /* @__PURE__ */ jsx15(InputOTPSeparator, { className: otpSeparatorClassName }) : null,
2799
- hasTrailingGroup ? /* @__PURE__ */ jsx15(InputOTPGroup, { className: otpGroupClassName, children: Array.from(
2816
+ hasTrailingGroup ? otpSeparator ?? /* @__PURE__ */ jsx18(InputOTPSeparator, { className: otpSeparatorClassName }) : null,
2817
+ hasTrailingGroup ? /* @__PURE__ */ jsx18(InputOTPGroup, { className: otpGroupClassName, children: Array.from(
2800
2818
  { length: resolvedLength - resolvedSplitIndex },
2801
- (_, index) => /* @__PURE__ */ jsx15(
2819
+ (_, index) => /* @__PURE__ */ jsx18(
2802
2820
  InputOTPSlot,
2803
2821
  {
2804
2822
  className: otpSlotClassName,
@@ -2810,12 +2828,12 @@ var Input = React13.forwardRef((props, ref) => {
2810
2828
  ]
2811
2829
  }
2812
2830
  );
2813
- return /* @__PURE__ */ jsx15(
2814
- InputShell,
2831
+ return /* @__PURE__ */ jsx18(
2832
+ FieldShell,
2815
2833
  {
2816
2834
  containerClassName: containerClassName2,
2817
2835
  control: otpControl,
2818
- resolvedId
2836
+ labelHtmlFor: resolvedId
2819
2837
  }
2820
2838
  );
2821
2839
  }
@@ -2829,7 +2847,7 @@ var Input = React13.forwardRef((props, ref) => {
2829
2847
  variant: _variant2,
2830
2848
  ...uploadProps
2831
2849
  } = props;
2832
- const uploadControl = /* @__PURE__ */ jsx15(
2850
+ const uploadControl = /* @__PURE__ */ jsx18(
2833
2851
  UploadInputControl,
2834
2852
  {
2835
2853
  ...uploadProps,
@@ -2837,14 +2855,28 @@ var Input = React13.forwardRef((props, ref) => {
2837
2855
  resolvedId
2838
2856
  }
2839
2857
  );
2840
- return /* @__PURE__ */ jsx15(
2841
- UploadInputShell,
2858
+ const uploadLabel = label2 || uploadOptionalLabel ? /* @__PURE__ */ jsxs11(Fragment4, { children: [
2859
+ renderTextContent(label2, {
2860
+ as: "span",
2861
+ className: "text-[color:var(--sofya-text-default)]",
2862
+ size: "body",
2863
+ style: {
2864
+ fontWeight: 700
2865
+ }
2866
+ }),
2867
+ uploadOptionalLabel ? /* @__PURE__ */ jsx18("span", { className: "ml-2 text-[color:var(--sofya-text-subtle)]", children: renderTextContent(uploadOptionalLabel, {
2868
+ as: "span",
2869
+ className: "text-[color:var(--sofya-text-subtle)]",
2870
+ size: "tiny"
2871
+ }) }) : null
2872
+ ] }) : void 0;
2873
+ return /* @__PURE__ */ jsx18(
2874
+ FieldShell,
2842
2875
  {
2843
2876
  containerClassName: containerClassName2,
2844
2877
  control: uploadControl,
2845
- label: label2,
2846
- labelClassName: labelClassName2,
2847
- optionalLabel: uploadOptionalLabel
2878
+ label: uploadLabel,
2879
+ labelClassName: labelClassName2
2848
2880
  }
2849
2881
  );
2850
2882
  }
@@ -2861,8 +2893,8 @@ var Input = React13.forwardRef((props, ref) => {
2861
2893
  const isSearch = variant === "search";
2862
2894
  const resolvedType = type ?? (isSearch ? "search" : void 0);
2863
2895
  const ariaLabel = nativeProps["aria-label"] ?? (typeof label === "string" ? label : isSearch ? "Search" : void 0);
2864
- const nativeControl = isSearch ? /* @__PURE__ */ jsxs10("div", { className: "flex h-[88px] w-full items-center gap-6 rounded-full border border-[color:var(--sofya-border-strong)] bg-card px-8 shadow-none transition-[border-color,box-shadow,background-color] duration-sofya ease-sofya hover:border-[color:var(--sofya-border-hover)] hover:ring-2 hover:ring-[color:var(--sofya-focus-ring-soft)] focus-within:border-transparent focus-within:ring-2 focus-within:ring-[color:var(--sofya-focus-ring-soft)] has-[:active]:border-transparent has-[:active]:ring-2 has-[:active]:ring-[color:var(--sofya-focus-ring-soft)]", children: [
2865
- /* @__PURE__ */ jsx15(
2896
+ const nativeControl = isSearch ? /* @__PURE__ */ jsxs11("div", { className: "flex h-[88px] w-full items-center gap-6 rounded-full border border-[color:var(--sofya-border-strong)] bg-card px-8 shadow-none transition-[border-color,box-shadow,background-color] duration-sofya ease-sofya hover:border-[color:var(--sofya-border-hover)] hover:ring-2 hover:ring-[color:var(--sofya-focus-ring-soft)] focus-within:border-transparent focus-within:ring-2 focus-within:ring-[color:var(--sofya-focus-ring-soft)] has-[:active]:border-transparent has-[:active]:ring-2 has-[:active]:ring-[color:var(--sofya-focus-ring-soft)]", children: [
2897
+ /* @__PURE__ */ jsx18(
2866
2898
  Icon,
2867
2899
  {
2868
2900
  "aria-hidden": "true",
@@ -2871,7 +2903,7 @@ var Input = React13.forwardRef((props, ref) => {
2871
2903
  size: 32
2872
2904
  }
2873
2905
  ),
2874
- /* @__PURE__ */ jsx15(
2906
+ /* @__PURE__ */ jsx18(
2875
2907
  "input",
2876
2908
  {
2877
2909
  id: resolvedId,
@@ -2887,7 +2919,7 @@ var Input = React13.forwardRef((props, ref) => {
2887
2919
  placeholder: nativeProps.placeholder ?? "Search"
2888
2920
  }
2889
2921
  )
2890
- ] }) : /* @__PURE__ */ jsx15(
2922
+ ] }) : /* @__PURE__ */ jsx18(
2891
2923
  "input",
2892
2924
  {
2893
2925
  id: resolvedId,
@@ -2901,25 +2933,25 @@ var Input = React13.forwardRef((props, ref) => {
2901
2933
  "aria-label": ariaLabel
2902
2934
  }
2903
2935
  );
2904
- return /* @__PURE__ */ jsx15(
2905
- InputShell,
2936
+ return /* @__PURE__ */ jsx18(
2937
+ FieldShell,
2906
2938
  {
2907
2939
  containerClassName,
2908
2940
  control: nativeControl,
2909
2941
  label: isSearch ? void 0 : label,
2910
2942
  labelClassName: isSearch ? void 0 : labelClassName,
2911
- resolvedId
2943
+ labelHtmlFor: isSearch ? void 0 : resolvedId
2912
2944
  }
2913
2945
  );
2914
2946
  });
2915
2947
  Input.displayName = "Input";
2916
2948
 
2917
2949
  // src/components/label.tsx
2918
- import * as React14 from "react";
2919
- import { jsx as jsx16 } from "react/jsx-runtime";
2920
- var Label = React14.forwardRef(
2950
+ import * as React18 from "react";
2951
+ import { jsx as jsx19 } from "react/jsx-runtime";
2952
+ var Label = React18.forwardRef(
2921
2953
  ({ children, className, ...props }, ref) => {
2922
- return /* @__PURE__ */ jsx16(
2954
+ return /* @__PURE__ */ jsx19(
2923
2955
  "label",
2924
2956
  {
2925
2957
  ref,
@@ -2943,10 +2975,10 @@ var Label = React14.forwardRef(
2943
2975
  Label.displayName = "Label";
2944
2976
 
2945
2977
  // src/components/link.tsx
2946
- import * as React15 from "react";
2978
+ import * as React19 from "react";
2947
2979
  import { Slot as Slot3 } from "@radix-ui/react-slot";
2948
2980
  import { cva as cva6 } from "class-variance-authority";
2949
- import { jsx as jsx17 } from "react/jsx-runtime";
2981
+ import { jsx as jsx20 } from "react/jsx-runtime";
2950
2982
  var linkVariants = cva6(
2951
2983
  "inline bg-[linear-gradient(currentColor,currentColor)] bg-[position:0_100%] bg-no-repeat pb-0 text-primary no-underline transition-[color,background-size,box-shadow] duration-sofya ease-sofya hover:text-[color:var(--sofya-link-hover)] focus-visible:rounded-[4px] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--sofya-focus-ring-soft)] focus-visible:ring-offset-0",
2952
2984
  {
@@ -2961,9 +2993,9 @@ var linkVariants = cva6(
2961
2993
  }
2962
2994
  }
2963
2995
  );
2964
- var Link = React15.forwardRef(function Link2({ asChild = false, children, className, variant = "default", ...props }, ref) {
2996
+ var Link = React19.forwardRef(function Link2({ asChild = false, children, className, variant = "default", ...props }, ref) {
2965
2997
  const Component = asChild ? Slot3 : "a";
2966
- return /* @__PURE__ */ jsx17(
2998
+ return /* @__PURE__ */ jsx20(
2967
2999
  Component,
2968
3000
  {
2969
3001
  ref,
@@ -2981,7 +3013,7 @@ var Link = React15.forwardRef(function Link2({ asChild = false, children, classN
2981
3013
  Link.displayName = "Link";
2982
3014
 
2983
3015
  // src/components/logo.tsx
2984
- import * as React16 from "react";
3016
+ import * as React20 from "react";
2985
3017
 
2986
3018
  // src/components/logo-data.ts
2987
3019
  var logoAssets = {
@@ -3078,7 +3110,7 @@ var logoAssets = {
3078
3110
  };
3079
3111
 
3080
3112
  // src/components/logo.tsx
3081
- import { jsx as jsx18, jsxs as jsxs11 } from "react/jsx-runtime";
3113
+ import { jsx as jsx21, jsxs as jsxs12 } from "react/jsx-runtime";
3082
3114
  var logoVariants = ["mono", "default", "text", "full"];
3083
3115
  var logoSizeOptions = ["sm", "md", "lg", "xl", "2xl"];
3084
3116
  var logoSizeScale = {
@@ -3114,7 +3146,7 @@ function resolveLogoDimensions(variant, size, width, height) {
3114
3146
  height: resolvedHeight
3115
3147
  };
3116
3148
  }
3117
- var Logo = React16.forwardRef(function Logo2({
3149
+ var Logo = React20.forwardRef(function Logo2({
3118
3150
  variant = "full",
3119
3151
  size = "lg",
3120
3152
  width,
@@ -3125,10 +3157,10 @@ var Logo = React16.forwardRef(function Logo2({
3125
3157
  ...props
3126
3158
  }, ref) {
3127
3159
  const asset = logoAssets[variant];
3128
- const titleId = React16.useId();
3160
+ const titleId = React20.useId();
3129
3161
  const dimensions = resolveLogoDimensions(variant, size, width, height);
3130
3162
  const monoFill = variant === "mono" ? monoColor ?? "currentColor" : void 0;
3131
- return /* @__PURE__ */ jsxs11(
3163
+ return /* @__PURE__ */ jsxs12(
3132
3164
  "svg",
3133
3165
  {
3134
3166
  ref,
@@ -3143,8 +3175,8 @@ var Logo = React16.forwardRef(function Logo2({
3143
3175
  focusable: "false",
3144
3176
  ...props,
3145
3177
  children: [
3146
- title ? /* @__PURE__ */ jsx18("title", { id: titleId, children: title }) : null,
3147
- asset.paths.map((path, index) => /* @__PURE__ */ jsx18(
3178
+ title ? /* @__PURE__ */ jsx21("title", { id: titleId, children: title }) : null,
3179
+ asset.paths.map((path, index) => /* @__PURE__ */ jsx21(
3148
3180
  "path",
3149
3181
  {
3150
3182
  d: path.d,
@@ -3161,10 +3193,12 @@ var Logo = React16.forwardRef(function Logo2({
3161
3193
  Logo.displayName = "Logo";
3162
3194
 
3163
3195
  // src/components/pagination.tsx
3196
+ import { IconChevronLeft as IconChevronLeft2, IconChevronRight as IconChevronRight2 } from "@tabler/icons-react";
3164
3197
  import { Slot as Slot4 } from "@radix-ui/react-slot";
3165
3198
  import { cva as cva7 } from "class-variance-authority";
3166
- import { jsx as jsx19, jsxs as jsxs12 } from "react/jsx-runtime";
3167
- var inheritTypographyStyle = {
3199
+
3200
+ // src/lib/inherited-typography.ts
3201
+ var inheritedTypographyStyle = {
3168
3202
  color: "inherit",
3169
3203
  fontFamily: "inherit",
3170
3204
  fontSize: "inherit",
@@ -3172,6 +3206,9 @@ var inheritTypographyStyle = {
3172
3206
  letterSpacing: "inherit",
3173
3207
  lineHeight: "inherit"
3174
3208
  };
3209
+
3210
+ // src/components/pagination.tsx
3211
+ import { jsx as jsx22, jsxs as jsxs13 } from "react/jsx-runtime";
3175
3212
  var paginationLinkVariants = cva7(
3176
3213
  "inline-flex h-10 min-w-10 items-center justify-center rounded-full border border-transparent px-4 [font-family:var(--sofya-text-body-font-family)] text-[length:var(--sofya-text-body-font-size)] font-medium leading-[var(--sofya-text-body-line-height)] tracking-[var(--sofya-text-body-letter-spacing)] text-[color:var(--sofya-text-soft)] no-underline transition-[transform,background-color,border-color,color,box-shadow] duration-sofya ease-sofya motion-safe:active:scale-[0.985] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--sofya-focus-ring-soft)] focus-visible:ring-offset-0",
3177
3214
  {
@@ -3192,7 +3229,7 @@ var paginationLinkVariants = cva7(
3192
3229
  }
3193
3230
  );
3194
3231
  function Pagination({ className, ...props }) {
3195
- return /* @__PURE__ */ jsx19(
3232
+ return /* @__PURE__ */ jsx22(
3196
3233
  "nav",
3197
3234
  {
3198
3235
  "aria-label": "Pagination",
@@ -3205,7 +3242,7 @@ function PaginationContent({
3205
3242
  className,
3206
3243
  ...props
3207
3244
  }) {
3208
- return /* @__PURE__ */ jsx19(
3245
+ return /* @__PURE__ */ jsx22(
3209
3246
  "ul",
3210
3247
  {
3211
3248
  className: cn(
@@ -3217,7 +3254,7 @@ function PaginationContent({
3217
3254
  );
3218
3255
  }
3219
3256
  function PaginationItem({ className, ...props }) {
3220
- return /* @__PURE__ */ jsx19("li", { className: cn("list-none", className), ...props });
3257
+ return /* @__PURE__ */ jsx22("li", { className: cn("list-none", className), ...props });
3221
3258
  }
3222
3259
  function PaginationLink({
3223
3260
  asChild = false,
@@ -3227,7 +3264,7 @@ function PaginationLink({
3227
3264
  ...props
3228
3265
  }) {
3229
3266
  const Component = asChild ? Slot4 : "a";
3230
- return /* @__PURE__ */ jsx19(
3267
+ return /* @__PURE__ */ jsx22(
3231
3268
  Component,
3232
3269
  {
3233
3270
  "aria-current": isActive ? "page" : void 0,
@@ -3237,67 +3274,29 @@ function PaginationLink({
3237
3274
  );
3238
3275
  }
3239
3276
  function PaginationChevronLeft() {
3240
- return /* @__PURE__ */ jsx19(
3241
- "svg",
3242
- {
3243
- "aria-hidden": "true",
3244
- className: "h-4 w-4",
3245
- viewBox: "0 0 16 16",
3246
- fill: "none",
3247
- xmlns: "http://www.w3.org/2000/svg",
3248
- children: /* @__PURE__ */ jsx19(
3249
- "path",
3250
- {
3251
- d: "M9.5 3.5L5 8L9.5 12.5",
3252
- stroke: "currentColor",
3253
- strokeWidth: "1.75",
3254
- strokeLinecap: "round",
3255
- strokeLinejoin: "round"
3256
- }
3257
- )
3258
- }
3259
- );
3277
+ return /* @__PURE__ */ jsx22(IconChevronLeft2, { "aria-hidden": "true", className: "h-4 w-4", stroke: 1.75 });
3260
3278
  }
3261
3279
  function PaginationChevronRight() {
3262
- return /* @__PURE__ */ jsx19(
3263
- "svg",
3264
- {
3265
- "aria-hidden": "true",
3266
- className: "h-4 w-4",
3267
- viewBox: "0 0 16 16",
3268
- fill: "none",
3269
- xmlns: "http://www.w3.org/2000/svg",
3270
- children: /* @__PURE__ */ jsx19(
3271
- "path",
3272
- {
3273
- d: "M6.5 3.5L11 8L6.5 12.5",
3274
- stroke: "currentColor",
3275
- strokeWidth: "1.75",
3276
- strokeLinecap: "round",
3277
- strokeLinejoin: "round"
3278
- }
3279
- )
3280
- }
3281
- );
3280
+ return /* @__PURE__ */ jsx22(IconChevronRight2, { "aria-hidden": "true", className: "h-4 w-4", stroke: 1.75 });
3282
3281
  }
3283
3282
  function PaginationPrevious({
3284
3283
  className,
3285
3284
  text = "Previous",
3286
3285
  ...props
3287
3286
  }) {
3288
- return /* @__PURE__ */ jsxs12(
3287
+ return /* @__PURE__ */ jsxs13(
3289
3288
  PaginationLink,
3290
3289
  {
3291
3290
  "aria-label": "Go to previous page",
3292
3291
  className: cn("gap-2 px-4", className),
3293
3292
  ...props,
3294
3293
  children: [
3295
- /* @__PURE__ */ jsx19(PaginationChevronLeft, {}),
3296
- /* @__PURE__ */ jsx19("span", { className: "hidden sm:block", children: renderTextContent(text, {
3294
+ /* @__PURE__ */ jsx22(PaginationChevronLeft, {}),
3295
+ /* @__PURE__ */ jsx22("span", { className: "hidden sm:block", children: renderTextContent(text, {
3297
3296
  as: "span",
3298
3297
  className: "block text-inherit",
3299
3298
  size: "body",
3300
- style: inheritTypographyStyle
3299
+ style: inheritedTypographyStyle
3301
3300
  }) })
3302
3301
  ]
3303
3302
  }
@@ -3308,20 +3307,20 @@ function PaginationNext({
3308
3307
  text = "Next",
3309
3308
  ...props
3310
3309
  }) {
3311
- return /* @__PURE__ */ jsxs12(
3310
+ return /* @__PURE__ */ jsxs13(
3312
3311
  PaginationLink,
3313
3312
  {
3314
3313
  "aria-label": "Go to next page",
3315
3314
  className: cn("gap-2 px-4", className),
3316
3315
  ...props,
3317
3316
  children: [
3318
- /* @__PURE__ */ jsx19("span", { className: "hidden sm:block", children: renderTextContent(text, {
3317
+ /* @__PURE__ */ jsx22("span", { className: "hidden sm:block", children: renderTextContent(text, {
3319
3318
  as: "span",
3320
3319
  className: "block text-inherit",
3321
3320
  size: "body",
3322
- style: inheritTypographyStyle
3321
+ style: inheritedTypographyStyle
3323
3322
  }) }),
3324
- /* @__PURE__ */ jsx19(PaginationChevronRight, {})
3323
+ /* @__PURE__ */ jsx22(PaginationChevronRight, {})
3325
3324
  ]
3326
3325
  }
3327
3326
  );
@@ -3330,7 +3329,7 @@ function PaginationEllipsis({
3330
3329
  className,
3331
3330
  ...props
3332
3331
  }) {
3333
- return /* @__PURE__ */ jsxs12(
3332
+ return /* @__PURE__ */ jsxs13(
3334
3333
  "span",
3335
3334
  {
3336
3335
  "aria-hidden": "true",
@@ -3340,35 +3339,35 @@ function PaginationEllipsis({
3340
3339
  ),
3341
3340
  ...props,
3342
3341
  children: [
3343
- /* @__PURE__ */ jsx19("span", { children: renderTextContent("...", {
3342
+ /* @__PURE__ */ jsx22("span", { children: renderTextContent("...", {
3344
3343
  as: "span",
3345
3344
  className: "block text-inherit",
3346
3345
  size: "h5",
3347
- style: inheritTypographyStyle
3346
+ style: inheritedTypographyStyle
3348
3347
  }) }),
3349
- /* @__PURE__ */ jsx19("span", { className: "sr-only", children: "More pages" })
3348
+ /* @__PURE__ */ jsx22("span", { className: "sr-only", children: "More pages" })
3350
3349
  ]
3351
3350
  }
3352
3351
  );
3353
3352
  }
3354
3353
 
3355
3354
  // src/components/popover.tsx
3356
- import * as React17 from "react";
3355
+ import * as React21 from "react";
3357
3356
  import * as PopoverPrimitive from "@radix-ui/react-popover";
3358
- import { jsx as jsx20 } from "react/jsx-runtime";
3357
+ import { jsx as jsx23 } from "react/jsx-runtime";
3359
3358
  var Popover = PopoverPrimitive.Root;
3360
3359
  var PopoverTrigger = PopoverPrimitive.Trigger;
3361
3360
  var PopoverAnchor = PopoverPrimitive.Anchor;
3362
3361
  var PopoverPortal = PopoverPrimitive.Portal;
3363
3362
  var PopoverClose = PopoverPrimitive.Close;
3364
- var PopoverContent = React17.forwardRef(function PopoverContent2({
3363
+ var PopoverContent = React21.forwardRef(function PopoverContent2({
3365
3364
  align = "center",
3366
3365
  className,
3367
3366
  collisionPadding = 8,
3368
3367
  sideOffset = 8,
3369
3368
  ...props
3370
3369
  }, ref) {
3371
- return /* @__PURE__ */ jsx20(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx20(
3370
+ return /* @__PURE__ */ jsx23(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx23(
3372
3371
  PopoverPrimitive.Content,
3373
3372
  {
3374
3373
  ref,
@@ -3385,8 +3384,8 @@ var PopoverContent = React17.forwardRef(function PopoverContent2({
3385
3384
  ) });
3386
3385
  });
3387
3386
  PopoverContent.displayName = PopoverPrimitive.Content.displayName;
3388
- var PopoverTitle = React17.forwardRef(function PopoverTitle2({ children, className, ...props }, ref) {
3389
- return /* @__PURE__ */ jsx20(
3387
+ var PopoverTitle = React21.forwardRef(function PopoverTitle2({ children, className, ...props }, ref) {
3388
+ return /* @__PURE__ */ jsx23(
3390
3389
  "h4",
3391
3390
  {
3392
3391
  ref,
@@ -3402,8 +3401,8 @@ var PopoverTitle = React17.forwardRef(function PopoverTitle2({ children, classNa
3402
3401
  );
3403
3402
  });
3404
3403
  PopoverTitle.displayName = "PopoverTitle";
3405
- var PopoverDescription = React17.forwardRef(function PopoverDescription2({ children, className, ...props }, ref) {
3406
- return /* @__PURE__ */ jsx20(
3404
+ var PopoverDescription = React21.forwardRef(function PopoverDescription2({ children, className, ...props }, ref) {
3405
+ return /* @__PURE__ */ jsx23(
3407
3406
  "p",
3408
3407
  {
3409
3408
  ref,
@@ -3421,9 +3420,9 @@ var PopoverDescription = React17.forwardRef(function PopoverDescription2({ child
3421
3420
  PopoverDescription.displayName = "PopoverDescription";
3422
3421
 
3423
3422
  // src/components/progress.tsx
3424
- import * as React18 from "react";
3423
+ import * as React22 from "react";
3425
3424
  import * as ProgressPrimitive from "@radix-ui/react-progress";
3426
- import { jsx as jsx21 } from "react/jsx-runtime";
3425
+ import { jsx as jsx24 } from "react/jsx-runtime";
3427
3426
  var progressSizeOptions = ["sm", "default", "lg"];
3428
3427
  function clampProgressValue(value, max) {
3429
3428
  if (Number.isNaN(value)) {
@@ -3431,7 +3430,7 @@ function clampProgressValue(value, max) {
3431
3430
  }
3432
3431
  return Math.min(Math.max(value, 0), max);
3433
3432
  }
3434
- var Progress = React18.forwardRef(function Progress2({
3433
+ var Progress = React22.forwardRef(function Progress2({
3435
3434
  className,
3436
3435
  indicatorClassName,
3437
3436
  max = 100,
@@ -3442,7 +3441,7 @@ var Progress = React18.forwardRef(function Progress2({
3442
3441
  const safeMax = max > 0 ? max : 100;
3443
3442
  const resolvedValue = typeof value === "number" ? clampProgressValue(value, safeMax) : null;
3444
3443
  const progressScale = resolvedValue === null ? void 0 : Number((resolvedValue / safeMax).toFixed(4));
3445
- return /* @__PURE__ */ jsx21(
3444
+ return /* @__PURE__ */ jsx24(
3446
3445
  ProgressPrimitive.Root,
3447
3446
  {
3448
3447
  ref,
@@ -3455,7 +3454,7 @@ var Progress = React18.forwardRef(function Progress2({
3455
3454
  className
3456
3455
  ),
3457
3456
  ...props,
3458
- children: /* @__PURE__ */ jsx21(
3457
+ children: /* @__PURE__ */ jsx24(
3459
3458
  ProgressPrimitive.Indicator,
3460
3459
  {
3461
3460
  "data-slot": "progress-indicator",
@@ -3472,12 +3471,12 @@ var Progress = React18.forwardRef(function Progress2({
3472
3471
  Progress.displayName = ProgressPrimitive.Root.displayName;
3473
3472
 
3474
3473
  // src/components/radio-group.tsx
3475
- import * as React19 from "react";
3474
+ import * as React23 from "react";
3476
3475
  import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
3477
- import { jsx as jsx22, jsxs as jsxs13 } from "react/jsx-runtime";
3476
+ import { jsx as jsx25, jsxs as jsxs14 } from "react/jsx-runtime";
3478
3477
  var radioGroupOrientationOptions = ["horizontal", "vertical"];
3479
- var RadioGroup2 = React19.forwardRef(function RadioGroup3({ className, ...props }, ref) {
3480
- return /* @__PURE__ */ jsx22(
3478
+ var RadioGroup2 = React23.forwardRef(function RadioGroup3({ className, ...props }, ref) {
3479
+ return /* @__PURE__ */ jsx25(
3481
3480
  RadioGroupPrimitive.Root,
3482
3481
  {
3483
3482
  ref,
@@ -3491,7 +3490,7 @@ var RadioGroup2 = React19.forwardRef(function RadioGroup3({ className, ...props
3491
3490
  );
3492
3491
  });
3493
3492
  RadioGroup2.displayName = RadioGroupPrimitive.Root.displayName;
3494
- var RadioGroupItem = React19.forwardRef(function RadioGroupItem2({
3493
+ var RadioGroupItem = React23.forwardRef(function RadioGroupItem2({
3495
3494
  className,
3496
3495
  controlClassName,
3497
3496
  description,
@@ -3503,22 +3502,21 @@ var RadioGroupItem = React19.forwardRef(function RadioGroupItem2({
3503
3502
  labelClassName,
3504
3503
  ...props
3505
3504
  }, ref) {
3506
- const generatedId = React19.useId();
3505
+ const generatedId = React23.useId();
3507
3506
  const resolvedId = id ?? generatedId;
3508
3507
  const labelId = label ? `${resolvedId}-label` : void 0;
3509
3508
  const descriptionId = description ? `${resolvedId}-description` : void 0;
3510
3509
  const alignClassName = description ? "items-start" : "items-center";
3511
- return /* @__PURE__ */ jsxs13(
3510
+ return /* @__PURE__ */ jsxs14(
3512
3511
  "label",
3513
3512
  {
3514
- className: cn(
3515
- "flex w-fit gap-4",
3513
+ className: selectionControlContainerClasses({
3516
3514
  alignClassName,
3517
- disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer",
3518
- className
3519
- ),
3515
+ className,
3516
+ disabled
3517
+ }),
3520
3518
  children: [
3521
- /* @__PURE__ */ jsx22(
3519
+ /* @__PURE__ */ jsx25(
3522
3520
  RadioGroupPrimitive.Item,
3523
3521
  {
3524
3522
  ref,
@@ -3528,11 +3526,13 @@ var RadioGroupItem = React19.forwardRef(function RadioGroupItem2({
3528
3526
  "aria-describedby": descriptionId,
3529
3527
  "data-slot": "radio-group-item",
3530
3528
  className: cn(
3531
- "peer mt-0 inline-flex h-5 w-5 shrink-0 items-center justify-center rounded-full border border-[color:var(--sofya-border-strong)] bg-card text-primary-foreground outline-none transition-[background-color,border-color,box-shadow] duration-sofya ease-sofya focus-visible:ring-2 focus-visible:ring-[color:var(--sofya-focus-ring-soft)] focus-visible:ring-offset-0 data-[state=checked]:border-primary data-[state=checked]:bg-primary aria-invalid:border-destructive aria-invalid:focus-visible:ring-destructive/20 disabled:cursor-not-allowed disabled:opacity-50",
3529
+ "peer mt-0 inline-flex h-5 w-5 shrink-0 items-center justify-center rounded-full text-primary-foreground outline-none",
3530
+ selectionControlControlBaseClasses,
3531
+ "focus-visible:ring-2 focus-visible:ring-[color:var(--sofya-focus-ring-soft)] focus-visible:ring-offset-0 data-[state=checked]:border-primary data-[state=checked]:bg-primary aria-invalid:border-destructive aria-invalid:focus-visible:ring-destructive/20",
3532
3532
  controlClassName
3533
3533
  ),
3534
3534
  ...props,
3535
- children: /* @__PURE__ */ jsx22(RadioGroupPrimitive.Indicator, { asChild: true, children: /* @__PURE__ */ jsx22(
3535
+ children: /* @__PURE__ */ jsx25(RadioGroupPrimitive.Indicator, { asChild: true, children: /* @__PURE__ */ jsx25(
3536
3536
  "span",
3537
3537
  {
3538
3538
  "data-slot": "radio-group-indicator",
@@ -3544,13 +3544,13 @@ var RadioGroupItem = React19.forwardRef(function RadioGroupItem2({
3544
3544
  ) })
3545
3545
  }
3546
3546
  ),
3547
- label || description ? /* @__PURE__ */ jsxs13("span", { className: "grid gap-2", children: [
3548
- label ? /* @__PURE__ */ jsx22(
3547
+ label || description ? /* @__PURE__ */ jsxs14("span", { className: selectionControlContentBaseClasses, children: [
3548
+ label ? /* @__PURE__ */ jsx25(
3549
3549
  "span",
3550
3550
  {
3551
3551
  id: labelId,
3552
3552
  className: cn(
3553
- "text-[color:var(--sofya-text-default)]",
3553
+ selectionControlLabelTextBaseClasses,
3554
3554
  labelClassName
3555
3555
  ),
3556
3556
  children: renderTextContent(label, {
@@ -3560,11 +3560,14 @@ var RadioGroupItem = React19.forwardRef(function RadioGroupItem2({
3560
3560
  })
3561
3561
  }
3562
3562
  ) : null,
3563
- description ? /* @__PURE__ */ jsx22(
3563
+ description ? /* @__PURE__ */ jsx25(
3564
3564
  "span",
3565
3565
  {
3566
3566
  id: descriptionId,
3567
- className: cn("text-muted-foreground", descriptionClassName),
3567
+ className: cn(
3568
+ selectionControlDescriptionTextBaseClasses,
3569
+ descriptionClassName
3570
+ ),
3568
3571
  children: renderTextContent(description, {
3569
3572
  as: "span",
3570
3573
  className: "text-muted-foreground",
@@ -3580,12 +3583,12 @@ var RadioGroupItem = React19.forwardRef(function RadioGroupItem2({
3580
3583
  RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
3581
3584
 
3582
3585
  // src/components/scroll-area.tsx
3583
- import * as React20 from "react";
3586
+ import * as React24 from "react";
3584
3587
  import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
3585
- import { jsx as jsx23 } from "react/jsx-runtime";
3588
+ import { jsx as jsx26 } from "react/jsx-runtime";
3586
3589
  var scrollAreaOrientationOptions = ["horizontal", "vertical"];
3587
- var ScrollArea = React20.forwardRef(function ScrollArea2({ className, ...props }, ref) {
3588
- return /* @__PURE__ */ jsx23(
3590
+ var ScrollArea = React24.forwardRef(function ScrollArea2({ className, ...props }, ref) {
3591
+ return /* @__PURE__ */ jsx26(
3589
3592
  ScrollAreaPrimitive.Root,
3590
3593
  {
3591
3594
  ref,
@@ -3596,8 +3599,8 @@ var ScrollArea = React20.forwardRef(function ScrollArea2({ className, ...props }
3596
3599
  );
3597
3600
  });
3598
3601
  ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
3599
- var ScrollAreaViewport = React20.forwardRef(function ScrollAreaViewport2({ className, ...props }, ref) {
3600
- return /* @__PURE__ */ jsx23(
3602
+ var ScrollAreaViewport = React24.forwardRef(function ScrollAreaViewport2({ className, ...props }, ref) {
3603
+ return /* @__PURE__ */ jsx26(
3601
3604
  ScrollAreaPrimitive.Viewport,
3602
3605
  {
3603
3606
  ref,
@@ -3611,8 +3614,8 @@ var ScrollAreaViewport = React20.forwardRef(function ScrollAreaViewport2({ class
3611
3614
  );
3612
3615
  });
3613
3616
  ScrollAreaViewport.displayName = ScrollAreaPrimitive.Viewport.displayName;
3614
- var ScrollAreaScrollbar = React20.forwardRef(function ScrollAreaScrollbar2({ className, orientation = "vertical", thumbClassName, ...props }, ref) {
3615
- return /* @__PURE__ */ jsx23(
3617
+ var ScrollAreaScrollbar = React24.forwardRef(function ScrollAreaScrollbar2({ className, orientation = "vertical", thumbClassName, ...props }, ref) {
3618
+ return /* @__PURE__ */ jsx26(
3616
3619
  ScrollAreaPrimitive.Scrollbar,
3617
3620
  {
3618
3621
  ref,
@@ -3623,7 +3626,7 @@ var ScrollAreaScrollbar = React20.forwardRef(function ScrollAreaScrollbar2({ cla
3623
3626
  className
3624
3627
  ),
3625
3628
  ...props,
3626
- children: /* @__PURE__ */ jsx23(
3629
+ children: /* @__PURE__ */ jsx26(
3627
3630
  ScrollAreaPrimitive.Thumb,
3628
3631
  {
3629
3632
  "data-slot": "scroll-area-thumb",
@@ -3637,8 +3640,8 @@ var ScrollAreaScrollbar = React20.forwardRef(function ScrollAreaScrollbar2({ cla
3637
3640
  );
3638
3641
  });
3639
3642
  ScrollAreaScrollbar.displayName = ScrollAreaPrimitive.Scrollbar.displayName;
3640
- var ScrollAreaCorner = React20.forwardRef(function ScrollAreaCorner2({ className, ...props }, ref) {
3641
- return /* @__PURE__ */ jsx23(
3643
+ var ScrollAreaCorner = React24.forwardRef(function ScrollAreaCorner2({ className, ...props }, ref) {
3644
+ return /* @__PURE__ */ jsx26(
3642
3645
  ScrollAreaPrimitive.Corner,
3643
3646
  {
3644
3647
  ref,
@@ -3651,22 +3654,19 @@ var ScrollAreaCorner = React20.forwardRef(function ScrollAreaCorner2({ className
3651
3654
  ScrollAreaCorner.displayName = ScrollAreaPrimitive.Corner.displayName;
3652
3655
 
3653
3656
  // src/components/select.tsx
3654
- import * as React21 from "react";
3657
+ import * as React25 from "react";
3655
3658
  import * as SelectPrimitive from "@radix-ui/react-select";
3656
- import { jsx as jsx24, jsxs as jsxs14 } from "react/jsx-runtime";
3657
- var inheritTypographyStyle2 = {
3658
- color: "inherit",
3659
- fontFamily: "inherit",
3660
- fontSize: "inherit",
3661
- fontWeight: "inherit",
3662
- letterSpacing: "inherit",
3663
- lineHeight: "inherit"
3664
- };
3659
+
3660
+ // src/lib/form-control-classes.ts
3661
+ var formControlBaseClasses = "flex w-full items-center justify-between gap-4 rounded-[10px] border border-[color:var(--sofya-border-strong)] bg-card px-4 text-left [font-family:var(--sofya-text-body-font-family)] text-[length:var(--sofya-text-body-font-size)] [font-weight:var(--sofya-text-body-font-weight)] leading-[var(--sofya-text-body-line-height)] tracking-[var(--sofya-text-body-letter-spacing)] text-[color:var(--sofya-text-default)] shadow-none transition-[border-color,box-shadow,background-color,color] duration-sofya ease-sofya hover:border-[color:var(--sofya-border-hover)] focus:outline-none focus:ring-2 focus:ring-[color:var(--sofya-focus-ring-soft)] focus:ring-offset-0 active:border-transparent active:ring-2 active:ring-[color:var(--sofya-focus-ring-soft)] disabled:cursor-not-allowed disabled:bg-muted disabled:opacity-50 aria-invalid:border-destructive aria-invalid:focus:ring-destructive/20 data-[placeholder]:text-[color:var(--sofya-text-placeholder)]";
3662
+
3663
+ // src/components/select.tsx
3664
+ import { jsx as jsx27, jsxs as jsxs15 } from "react/jsx-runtime";
3665
3665
  var selectSizeOptions = ["default", "sm"];
3666
3666
  var Select = SelectPrimitive.Root;
3667
3667
  var SelectGroup = SelectPrimitive.Group;
3668
- var SelectValue = React21.forwardRef(function SelectValue2({ className, ...props }, ref) {
3669
- return /* @__PURE__ */ jsx24(
3668
+ var SelectValue = React25.forwardRef(function SelectValue2({ className, ...props }, ref) {
3669
+ return /* @__PURE__ */ jsx27(
3670
3670
  Text,
3671
3671
  {
3672
3672
  ref,
@@ -3674,34 +3674,28 @@ var SelectValue = React21.forwardRef(function SelectValue2({ className, ...props
3674
3674
  "data-slot": "select-value",
3675
3675
  className: cn("block truncate text-inherit", className),
3676
3676
  size: "body",
3677
- style: {
3678
- fontFamily: "inherit",
3679
- fontSize: "inherit",
3680
- fontWeight: "inherit",
3681
- lineHeight: "inherit",
3682
- letterSpacing: "inherit",
3683
- color: "inherit"
3684
- },
3685
- children: /* @__PURE__ */ jsx24(SelectPrimitive.Value, { className: "block truncate", ...props })
3677
+ style: inheritedTypographyStyle,
3678
+ children: /* @__PURE__ */ jsx27(SelectPrimitive.Value, { className: "block truncate", ...props })
3686
3679
  }
3687
3680
  );
3688
3681
  });
3689
3682
  SelectValue.displayName = SelectPrimitive.Value.displayName;
3690
- var SelectTrigger = React21.forwardRef(function SelectTrigger2({ className, children, size = "default", ...props }, ref) {
3691
- return /* @__PURE__ */ jsxs14(
3683
+ var SelectTrigger = React25.forwardRef(function SelectTrigger2({ className, children, size = "default", ...props }, ref) {
3684
+ return /* @__PURE__ */ jsxs15(
3692
3685
  SelectPrimitive.Trigger,
3693
3686
  {
3694
3687
  ref,
3695
3688
  "data-slot": "select-trigger",
3696
3689
  "data-size": size,
3697
3690
  className: cn(
3698
- "flex w-full items-center justify-between gap-4 rounded-[10px] border border-[color:var(--sofya-border-strong)] bg-card px-4 text-left [font-family:var(--sofya-text-body-font-family)] text-[length:var(--sofya-text-body-font-size)] [font-weight:var(--sofya-text-body-font-weight)] leading-[var(--sofya-text-body-line-height)] tracking-[var(--sofya-text-body-letter-spacing)] text-[color:var(--sofya-text-default)] shadow-none transition-[border-color,box-shadow,background-color,color] duration-sofya ease-sofya hover:border-[color:var(--sofya-border-hover)] focus:outline-none focus:ring-2 focus:ring-[color:var(--sofya-focus-ring-soft)] focus:ring-offset-0 active:border-transparent active:ring-2 active:ring-[color:var(--sofya-focus-ring-soft)] disabled:cursor-not-allowed disabled:bg-muted disabled:opacity-50 aria-invalid:border-destructive aria-invalid:focus:ring-destructive/20 data-[placeholder]:text-[color:var(--sofya-text-placeholder)] data-[size=default]:h-10 data-[size=default]:py-2 data-[size=sm]:h-9 data-[size=sm]:px-2 data-[size=sm]:text-[14px] data-[size=sm]:leading-5 [&>span]:line-clamp-1 [&>span]:flex-1",
3691
+ formControlBaseClasses,
3692
+ "data-[size=default]:h-10 data-[size=default]:py-2 data-[size=sm]:h-9 data-[size=sm]:px-2 data-[size=sm]:text-[14px] data-[size=sm]:leading-5 [&>span]:line-clamp-1 [&>span]:flex-1",
3699
3693
  className
3700
3694
  ),
3701
3695
  ...props,
3702
3696
  children: [
3703
3697
  children,
3704
- /* @__PURE__ */ jsx24(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx24(
3698
+ /* @__PURE__ */ jsx27(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx27(
3705
3699
  Icon,
3706
3700
  {
3707
3701
  name: "caret-down",
@@ -3714,8 +3708,8 @@ var SelectTrigger = React21.forwardRef(function SelectTrigger2({ className, chil
3714
3708
  );
3715
3709
  });
3716
3710
  SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
3717
- var SelectScrollUpButton = React21.forwardRef(function SelectScrollUpButton2({ className, ...props }, ref) {
3718
- return /* @__PURE__ */ jsx24(
3711
+ var SelectScrollUpButton = React25.forwardRef(function SelectScrollUpButton2({ className, ...props }, ref) {
3712
+ return /* @__PURE__ */ jsx27(
3719
3713
  SelectPrimitive.ScrollUpButton,
3720
3714
  {
3721
3715
  ref,
@@ -3725,13 +3719,13 @@ var SelectScrollUpButton = React21.forwardRef(function SelectScrollUpButton2({ c
3725
3719
  className
3726
3720
  ),
3727
3721
  ...props,
3728
- children: /* @__PURE__ */ jsx24(Icon, { name: "caret-up", size: 12 })
3722
+ children: /* @__PURE__ */ jsx27(Icon, { name: "caret-up", size: 12 })
3729
3723
  }
3730
3724
  );
3731
3725
  });
3732
3726
  SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
3733
- var SelectScrollDownButton = React21.forwardRef(function SelectScrollDownButton2({ className, ...props }, ref) {
3734
- return /* @__PURE__ */ jsx24(
3727
+ var SelectScrollDownButton = React25.forwardRef(function SelectScrollDownButton2({ className, ...props }, ref) {
3728
+ return /* @__PURE__ */ jsx27(
3735
3729
  SelectPrimitive.ScrollDownButton,
3736
3730
  {
3737
3731
  ref,
@@ -3741,13 +3735,13 @@ var SelectScrollDownButton = React21.forwardRef(function SelectScrollDownButton2
3741
3735
  className
3742
3736
  ),
3743
3737
  ...props,
3744
- children: /* @__PURE__ */ jsx24(Icon, { name: "caret-down", size: 12 })
3738
+ children: /* @__PURE__ */ jsx27(Icon, { name: "caret-down", size: 12 })
3745
3739
  }
3746
3740
  );
3747
3741
  });
3748
3742
  SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
3749
- var SelectContent = React21.forwardRef(function SelectContent2({ className, children, position = "popper", ...props }, ref) {
3750
- return /* @__PURE__ */ jsx24(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs14(
3743
+ var SelectContent = React25.forwardRef(function SelectContent2({ className, children, position = "popper", ...props }, ref) {
3744
+ return /* @__PURE__ */ jsx27(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs15(
3751
3745
  SelectPrimitive.Content,
3752
3746
  {
3753
3747
  ref,
@@ -3760,8 +3754,8 @@ var SelectContent = React21.forwardRef(function SelectContent2({ className, chil
3760
3754
  ),
3761
3755
  ...props,
3762
3756
  children: [
3763
- /* @__PURE__ */ jsx24(SelectScrollUpButton, {}),
3764
- /* @__PURE__ */ jsx24(
3757
+ /* @__PURE__ */ jsx27(SelectScrollUpButton, {}),
3758
+ /* @__PURE__ */ jsx27(
3765
3759
  SelectPrimitive.Viewport,
3766
3760
  {
3767
3761
  "data-slot": "select-viewport",
@@ -3769,14 +3763,14 @@ var SelectContent = React21.forwardRef(function SelectContent2({ className, chil
3769
3763
  children
3770
3764
  }
3771
3765
  ),
3772
- /* @__PURE__ */ jsx24(SelectScrollDownButton, {})
3766
+ /* @__PURE__ */ jsx27(SelectScrollDownButton, {})
3773
3767
  ]
3774
3768
  }
3775
3769
  ) });
3776
3770
  });
3777
3771
  SelectContent.displayName = SelectPrimitive.Content.displayName;
3778
- var SelectLabel = React21.forwardRef(function SelectLabel2({ className, ...props }, ref) {
3779
- return /* @__PURE__ */ jsx24(
3772
+ var SelectLabel = React25.forwardRef(function SelectLabel2({ className, ...props }, ref) {
3773
+ return /* @__PURE__ */ jsx27(
3780
3774
  SelectPrimitive.Label,
3781
3775
  {
3782
3776
  ref,
@@ -3798,8 +3792,8 @@ var SelectLabel = React21.forwardRef(function SelectLabel2({ className, ...props
3798
3792
  );
3799
3793
  });
3800
3794
  SelectLabel.displayName = SelectPrimitive.Label.displayName;
3801
- var SelectItem = React21.forwardRef(function SelectItem2({ className, children, ...props }, ref) {
3802
- return /* @__PURE__ */ jsxs14(
3795
+ var SelectItem = React25.forwardRef(function SelectItem2({ className, children, ...props }, ref) {
3796
+ return /* @__PURE__ */ jsxs15(
3803
3797
  SelectPrimitive.Item,
3804
3798
  {
3805
3799
  ref,
@@ -3810,20 +3804,20 @@ var SelectItem = React21.forwardRef(function SelectItem2({ className, children,
3810
3804
  ),
3811
3805
  ...props,
3812
3806
  children: [
3813
- /* @__PURE__ */ jsx24(SelectPrimitive.ItemText, { className: "truncate", children: renderTextContent(children, {
3807
+ /* @__PURE__ */ jsx27(SelectPrimitive.ItemText, { className: "truncate", children: renderTextContent(children, {
3814
3808
  as: "span",
3815
3809
  className: "block truncate text-[color:var(--sofya-text-default)]",
3816
3810
  size: "body",
3817
- style: inheritTypographyStyle2
3811
+ style: inheritedTypographyStyle
3818
3812
  }) }),
3819
- /* @__PURE__ */ jsx24(SelectPrimitive.ItemIndicator, { asChild: true, children: /* @__PURE__ */ jsx24("span", { className: "absolute right-4 inline-flex h-4 w-4 items-center justify-center text-primary", children: /* @__PURE__ */ jsx24(Icon, { name: "check", size: 14 }) }) })
3813
+ /* @__PURE__ */ jsx27(SelectPrimitive.ItemIndicator, { asChild: true, children: /* @__PURE__ */ jsx27("span", { className: "absolute right-4 inline-flex h-4 w-4 items-center justify-center text-primary", children: /* @__PURE__ */ jsx27(Icon, { name: "check", size: 14 }) }) })
3820
3814
  ]
3821
3815
  }
3822
3816
  );
3823
3817
  });
3824
3818
  SelectItem.displayName = SelectPrimitive.Item.displayName;
3825
- var SelectSeparator = React21.forwardRef(function SelectSeparator2({ className, ...props }, ref) {
3826
- return /* @__PURE__ */ jsx24(
3819
+ var SelectSeparator = React25.forwardRef(function SelectSeparator2({ className, ...props }, ref) {
3820
+ return /* @__PURE__ */ jsx27(
3827
3821
  SelectPrimitive.Separator,
3828
3822
  {
3829
3823
  ref,
@@ -3836,11 +3830,11 @@ var SelectSeparator = React21.forwardRef(function SelectSeparator2({ className,
3836
3830
  SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
3837
3831
 
3838
3832
  // src/components/separator.tsx
3839
- import * as React22 from "react";
3833
+ import * as React26 from "react";
3840
3834
  import * as SeparatorPrimitive from "@radix-ui/react-separator";
3841
- import { jsx as jsx25 } from "react/jsx-runtime";
3842
- var Separator2 = React22.forwardRef(function Separator3({ className, decorative = true, orientation = "horizontal", ...props }, ref) {
3843
- return /* @__PURE__ */ jsx25(
3835
+ import { jsx as jsx28 } from "react/jsx-runtime";
3836
+ var Separator2 = React26.forwardRef(function Separator3({ className, decorative = true, orientation = "horizontal", ...props }, ref) {
3837
+ return /* @__PURE__ */ jsx28(
3844
3838
  SeparatorPrimitive.Root,
3845
3839
  {
3846
3840
  ref,
@@ -3859,8 +3853,8 @@ var Separator2 = React22.forwardRef(function Separator3({ className, decorative
3859
3853
  Separator2.displayName = SeparatorPrimitive.Root.displayName;
3860
3854
 
3861
3855
  // src/components/slider.tsx
3862
- import * as React23 from "react";
3863
- import { jsx as jsx26, jsxs as jsxs15 } from "react/jsx-runtime";
3856
+ import * as React27 from "react";
3857
+ import { jsx as jsx29, jsxs as jsxs16 } from "react/jsx-runtime";
3864
3858
  function clampSliderValue(value, min, max) {
3865
3859
  if (Number.isNaN(value)) {
3866
3860
  return min;
@@ -3885,7 +3879,7 @@ function resolveSliderMeasurement(value, fallback) {
3885
3879
  function isTextValue(value) {
3886
3880
  return typeof value === "string" || typeof value === "number";
3887
3881
  }
3888
- var Slider = React23.forwardRef(function Slider2({
3882
+ var Slider = React27.forwardRef(function Slider2({
3889
3883
  className,
3890
3884
  defaultValue,
3891
3885
  formatValue,
@@ -3908,23 +3902,28 @@ var Slider = React23.forwardRef(function Slider2({
3908
3902
  valueClassName,
3909
3903
  ...props
3910
3904
  }, ref) {
3911
- const resolvedId = React23.useId();
3905
+ const resolvedId = React27.useId();
3912
3906
  const inputId = id ?? resolvedId;
3913
3907
  const safeMin = min;
3914
3908
  const safeMax = resolveSliderMax(safeMin, max);
3915
- const isControlled = value !== void 0;
3916
- const [internalValue, setInternalValue] = React23.useState(
3917
- () => clampSliderValue(defaultValue ?? safeMin, safeMin, safeMax)
3918
- );
3919
- React23.useEffect(() => {
3920
- if (isControlled) {
3909
+ const [controllableValue, setControllableValue, setUncontrolledValue] = useControllableState({
3910
+ defaultValue: clampSliderValue(defaultValue ?? safeMin, safeMin, safeMax),
3911
+ onChange: onValueChange,
3912
+ value
3913
+ });
3914
+ React27.useEffect(() => {
3915
+ if (value !== void 0) {
3921
3916
  return;
3922
3917
  }
3923
- setInternalValue(
3924
- (currentValue2) => clampSliderValue(currentValue2, safeMin, safeMax)
3918
+ setUncontrolledValue(
3919
+ (currentValue2) => clampSliderValue(currentValue2 ?? safeMin, safeMin, safeMax)
3925
3920
  );
3926
- }, [isControlled, safeMax, safeMin]);
3927
- const currentValue = isControlled ? clampSliderValue(value ?? safeMin, safeMin, safeMax) : internalValue;
3921
+ }, [safeMax, safeMin, setUncontrolledValue, value]);
3922
+ const currentValue = clampSliderValue(
3923
+ controllableValue ?? safeMin,
3924
+ safeMin,
3925
+ safeMax
3926
+ );
3928
3927
  const valueRatio = safeMax === safeMin ? 0 : (currentValue - safeMin) / (safeMax - safeMin);
3929
3928
  const valuePercentage = valueRatio * 100;
3930
3929
  const formattedValue = formatValue?.(currentValue) ?? currentValue.toString();
@@ -3956,38 +3955,29 @@ var Slider = React23.forwardRef(function Slider2({
3956
3955
  safeMin,
3957
3956
  safeMax
3958
3957
  );
3959
- if (!isControlled) {
3960
- setInternalValue(nextValue);
3961
- }
3958
+ setControllableValue(nextValue);
3962
3959
  onChange?.(event);
3963
- onValueChange?.(nextValue);
3964
3960
  };
3965
- return /* @__PURE__ */ jsxs15(
3961
+ return /* @__PURE__ */ jsxs16(
3966
3962
  "div",
3967
3963
  {
3968
3964
  "data-slot": "slider",
3969
3965
  className: cn("grid w-full gap-2", className),
3970
3966
  children: [
3971
- label || showValue ? /* @__PURE__ */ jsxs15("div", { className: "flex items-center justify-between gap-4", children: [
3972
- label ? /* @__PURE__ */ jsx26(
3973
- "label",
3967
+ label || showValue ? /* @__PURE__ */ jsxs16("div", { className: "flex items-center justify-between gap-4", children: [
3968
+ label ? /* @__PURE__ */ jsx29(
3969
+ FieldLabel,
3974
3970
  {
3975
3971
  htmlFor: inputId,
3976
3972
  className: cn(
3977
- "min-w-0 text-[color:var(--sofya-text-default)]",
3973
+ "min-w-0",
3978
3974
  labelClassName
3979
3975
  ),
3980
- children: renderTextContent(label, {
3981
- as: "span",
3982
- className: "block text-[color:var(--sofya-text-default)]",
3983
- size: "body",
3984
- style: {
3985
- fontWeight: 500
3986
- }
3987
- })
3976
+ textClassName: "block min-w-0 text-[color:var(--sofya-text-default)]",
3977
+ children: label
3988
3978
  }
3989
- ) : /* @__PURE__ */ jsx26("span", {}),
3990
- showValue ? /* @__PURE__ */ jsx26(
3979
+ ) : /* @__PURE__ */ jsx29("span", {}),
3980
+ showValue ? /* @__PURE__ */ jsx29(
3991
3981
  "div",
3992
3982
  {
3993
3983
  className: cn(
@@ -4005,7 +3995,7 @@ var Slider = React23.forwardRef(function Slider2({
4005
3995
  }
4006
3996
  ) : null
4007
3997
  ] }) : null,
4008
- /* @__PURE__ */ jsxs15(
3998
+ /* @__PURE__ */ jsxs16(
4009
3999
  "div",
4010
4000
  {
4011
4001
  "data-slot": "slider-control",
@@ -4015,7 +4005,7 @@ var Slider = React23.forwardRef(function Slider2({
4015
4005
  ),
4016
4006
  style: controlStyle,
4017
4007
  children: [
4018
- /* @__PURE__ */ jsx26(
4008
+ /* @__PURE__ */ jsx29(
4019
4009
  "input",
4020
4010
  {
4021
4011
  ...props,
@@ -4032,7 +4022,7 @@ var Slider = React23.forwardRef(function Slider2({
4032
4022
  style: inputBoundsStyle
4033
4023
  }
4034
4024
  ),
4035
- /* @__PURE__ */ jsx26(
4025
+ /* @__PURE__ */ jsx29(
4036
4026
  "div",
4037
4027
  {
4038
4028
  "data-slot": "slider-track",
@@ -4043,7 +4033,7 @@ var Slider = React23.forwardRef(function Slider2({
4043
4033
  style: trackBoundsStyle
4044
4034
  }
4045
4035
  ),
4046
- /* @__PURE__ */ jsx26(
4036
+ /* @__PURE__ */ jsx29(
4047
4037
  "div",
4048
4038
  {
4049
4039
  "data-slot": "slider-range",
@@ -4054,7 +4044,7 @@ var Slider = React23.forwardRef(function Slider2({
4054
4044
  style: rangeStyle
4055
4045
  }
4056
4046
  ),
4057
- /* @__PURE__ */ jsx26(
4047
+ /* @__PURE__ */ jsx29(
4058
4048
  "div",
4059
4049
  {
4060
4050
  "data-slot": "slider-thumb",
@@ -4075,10 +4065,10 @@ var Slider = React23.forwardRef(function Slider2({
4075
4065
  Slider.displayName = "Slider";
4076
4066
 
4077
4067
  // src/components/skeleton.tsx
4078
- import * as React24 from "react";
4079
- import { jsx as jsx27 } from "react/jsx-runtime";
4080
- var Skeleton = React24.forwardRef(function Skeleton2({ className, ...props }, ref) {
4081
- return /* @__PURE__ */ jsx27(
4068
+ import * as React28 from "react";
4069
+ import { jsx as jsx30 } from "react/jsx-runtime";
4070
+ var Skeleton = React28.forwardRef(function Skeleton2({ className, ...props }, ref) {
4071
+ return /* @__PURE__ */ jsx30(
4082
4072
  "div",
4083
4073
  {
4084
4074
  ref,
@@ -4093,18 +4083,18 @@ var Skeleton = React24.forwardRef(function Skeleton2({ className, ...props }, re
4093
4083
  Skeleton.displayName = "Skeleton";
4094
4084
 
4095
4085
  // src/components/sonner.tsx
4096
- import * as React25 from "react";
4086
+ import * as React29 from "react";
4097
4087
  import {
4098
4088
  Toaster as SonnerToaster,
4099
4089
  toast
4100
4090
  } from "sonner";
4101
- import { jsx as jsx28 } from "react/jsx-runtime";
4091
+ import { jsx as jsx31 } from "react/jsx-runtime";
4102
4092
  var notificationVariantOptions = ["default", "success", "error", "warning"];
4103
4093
  function ToastStatusIcon({
4104
4094
  iconName,
4105
4095
  className
4106
4096
  }) {
4107
- return /* @__PURE__ */ jsx28(
4097
+ return /* @__PURE__ */ jsx31(
4108
4098
  "span",
4109
4099
  {
4110
4100
  "aria-hidden": "true",
@@ -4112,7 +4102,7 @@ function ToastStatusIcon({
4112
4102
  "inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-full border shadow-sofya-sm",
4113
4103
  className
4114
4104
  ),
4115
- children: /* @__PURE__ */ jsx28(Icon, { name: iconName, size: 16 })
4105
+ children: /* @__PURE__ */ jsx31(Icon, { name: iconName, size: 16 })
4116
4106
  }
4117
4107
  );
4118
4108
  }
@@ -4133,35 +4123,35 @@ var defaultToastClassNames = {
4133
4123
  loading: "border-border bg-card text-foreground"
4134
4124
  };
4135
4125
  var defaultToastIcons = {
4136
- success: /* @__PURE__ */ jsx28(
4126
+ success: /* @__PURE__ */ jsx31(
4137
4127
  ToastStatusIcon,
4138
4128
  {
4139
4129
  iconName: "check",
4140
4130
  className: "border-success/15 bg-success/12 text-success"
4141
4131
  }
4142
4132
  ),
4143
- error: /* @__PURE__ */ jsx28(
4133
+ error: /* @__PURE__ */ jsx31(
4144
4134
  ToastStatusIcon,
4145
4135
  {
4146
4136
  iconName: "x",
4147
4137
  className: "border-destructive/15 bg-destructive/12 text-destructive"
4148
4138
  }
4149
4139
  ),
4150
- warning: /* @__PURE__ */ jsx28(
4140
+ warning: /* @__PURE__ */ jsx31(
4151
4141
  ToastStatusIcon,
4152
4142
  {
4153
4143
  iconName: "question",
4154
4144
  className: "border-warning/20 bg-warning/15 text-foreground"
4155
4145
  }
4156
4146
  ),
4157
- info: /* @__PURE__ */ jsx28(
4147
+ info: /* @__PURE__ */ jsx31(
4158
4148
  ToastStatusIcon,
4159
4149
  {
4160
4150
  iconName: "question",
4161
4151
  className: "border-primary/15 bg-primary/10 text-primary"
4162
4152
  }
4163
4153
  ),
4164
- close: /* @__PURE__ */ jsx28(Icon, { name: "x", size: 12 })
4154
+ close: /* @__PURE__ */ jsx31(Icon, { name: "x", size: 12 })
4165
4155
  };
4166
4156
  function mergeToastClassNames(overrides) {
4167
4157
  return {
@@ -4169,7 +4159,7 @@ function mergeToastClassNames(overrides) {
4169
4159
  ...overrides
4170
4160
  };
4171
4161
  }
4172
- var Toaster = React25.forwardRef(
4162
+ var Toaster = React29.forwardRef(
4173
4163
  function Toaster2({
4174
4164
  className,
4175
4165
  closeButton = true,
@@ -4181,7 +4171,7 @@ var Toaster = React25.forwardRef(
4181
4171
  visibleToasts = 5,
4182
4172
  ...props
4183
4173
  }, ref) {
4184
- return /* @__PURE__ */ jsx28(
4174
+ return /* @__PURE__ */ jsx31(
4185
4175
  SonnerToaster,
4186
4176
  {
4187
4177
  ref,
@@ -4211,10 +4201,11 @@ var Toaster = React25.forwardRef(
4211
4201
  Toaster.displayName = "Toaster";
4212
4202
 
4213
4203
  // src/components/spinner.tsx
4214
- import * as React26 from "react";
4215
- import { jsx as jsx29, jsxs as jsxs16 } from "react/jsx-runtime";
4204
+ import * as React30 from "react";
4205
+ import { IconLoader2 as IconLoader22 } from "@tabler/icons-react";
4206
+ import { jsx as jsx32 } from "react/jsx-runtime";
4216
4207
  var spinnerSizeOptions = ["sm", "default", "lg"];
4217
- var Spinner = React26.forwardRef(function Spinner2({
4208
+ var Spinner = React30.forwardRef(function Spinner2({
4218
4209
  "aria-label": ariaLabelProp,
4219
4210
  "aria-labelledby": ariaLabelledby,
4220
4211
  className,
@@ -4223,15 +4214,12 @@ var Spinner = React26.forwardRef(function Spinner2({
4223
4214
  ...props
4224
4215
  }, ref) {
4225
4216
  const ariaLabel = ariaLabelProp ?? (ariaLabelledby ? void 0 : "Loading");
4226
- return /* @__PURE__ */ jsxs16(
4227
- "svg",
4217
+ return /* @__PURE__ */ jsx32(
4218
+ IconLoader22,
4228
4219
  {
4229
4220
  ref,
4230
4221
  "data-size": size,
4231
4222
  "data-slot": "spinner",
4232
- viewBox: "0 0 24 24",
4233
- fill: "none",
4234
- xmlns: "http://www.w3.org/2000/svg",
4235
4223
  role,
4236
4224
  "aria-label": ariaLabel,
4237
4225
  "aria-labelledby": ariaLabelledby,
@@ -4239,30 +4227,18 @@ var Spinner = React26.forwardRef(function Spinner2({
4239
4227
  "shrink-0 animate-spin text-primary data-[size=sm]:h-3.5 data-[size=sm]:w-3.5 data-[size=default]:h-4 data-[size=default]:w-4 data-[size=lg]:h-6 data-[size=lg]:w-6",
4240
4228
  className
4241
4229
  ),
4242
- ...props,
4243
- children: [
4244
- /* @__PURE__ */ jsx29("circle", { cx: "12", cy: "12", r: "9", className: "opacity-20", stroke: "currentColor", strokeWidth: "3" }),
4245
- /* @__PURE__ */ jsx29(
4246
- "path",
4247
- {
4248
- d: "M21 12A9 9 0 0 0 12 3",
4249
- stroke: "currentColor",
4250
- strokeWidth: "3",
4251
- strokeLinecap: "round"
4252
- }
4253
- )
4254
- ]
4230
+ ...props
4255
4231
  }
4256
4232
  );
4257
4233
  });
4258
4234
  Spinner.displayName = "Spinner";
4259
4235
 
4260
4236
  // src/components/switch.tsx
4261
- import * as React27 from "react";
4237
+ import * as React31 from "react";
4262
4238
  import * as SwitchPrimitives from "@radix-ui/react-switch";
4263
- import { jsx as jsx30 } from "react/jsx-runtime";
4264
- var Switch = React27.forwardRef(({ className, ...props }, ref) => {
4265
- return /* @__PURE__ */ jsx30(
4239
+ import { jsx as jsx33 } from "react/jsx-runtime";
4240
+ var Switch = React31.forwardRef(({ className, ...props }, ref) => {
4241
+ return /* @__PURE__ */ jsx33(
4266
4242
  SwitchPrimitives.Root,
4267
4243
  {
4268
4244
  className: cn(
@@ -4271,7 +4247,7 @@ var Switch = React27.forwardRef(({ className, ...props }, ref) => {
4271
4247
  ),
4272
4248
  ...props,
4273
4249
  ref,
4274
- children: /* @__PURE__ */ jsx30(
4250
+ children: /* @__PURE__ */ jsx33(
4275
4251
  SwitchPrimitives.Thumb,
4276
4252
  {
4277
4253
  className: "pointer-events-none block h-5 w-5 rounded-full bg-background shadow-sm ring-0 transition-transform duration-sofya ease-sofya data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0"
@@ -4284,8 +4260,8 @@ Switch.displayName = SwitchPrimitives.Root.displayName;
4284
4260
 
4285
4261
  // src/components/table.tsx
4286
4262
  import { cva as cva8 } from "class-variance-authority";
4287
- import * as React28 from "react";
4288
- import { jsx as jsx31 } from "react/jsx-runtime";
4263
+ import * as React32 from "react";
4264
+ import { jsx as jsx34 } from "react/jsx-runtime";
4289
4265
  var tableCellVariantOptions = ["default", "primary", "muted"];
4290
4266
  var tableStatusToneOptions = [
4291
4267
  "active",
@@ -4335,21 +4311,13 @@ var tableActionButtonVariants = cva8(
4335
4311
  }
4336
4312
  }
4337
4313
  );
4338
- var inheritedTextStyle = {
4339
- fontFamily: "inherit",
4340
- fontSize: "inherit",
4341
- fontWeight: "inherit",
4342
- lineHeight: "inherit",
4343
- letterSpacing: "inherit",
4344
- color: "inherit"
4345
- };
4346
- var Table = React28.forwardRef(function Table2({ className, ...props }, ref) {
4347
- return /* @__PURE__ */ jsx31(
4314
+ var Table = React32.forwardRef(function Table2({ className, ...props }, ref) {
4315
+ return /* @__PURE__ */ jsx34(
4348
4316
  "div",
4349
4317
  {
4350
4318
  "data-slot": "table-container",
4351
4319
  className: "relative w-full overflow-x-auto",
4352
- children: /* @__PURE__ */ jsx31(
4320
+ children: /* @__PURE__ */ jsx34(
4353
4321
  "table",
4354
4322
  {
4355
4323
  "data-slot": "table",
@@ -4364,8 +4332,8 @@ var Table = React28.forwardRef(function Table2({ className, ...props }, ref) {
4364
4332
  }
4365
4333
  );
4366
4334
  });
4367
- var TableHeader = React28.forwardRef(function TableHeader2({ className, ...props }, ref) {
4368
- return /* @__PURE__ */ jsx31(
4335
+ var TableHeader = React32.forwardRef(function TableHeader2({ className, ...props }, ref) {
4336
+ return /* @__PURE__ */ jsx34(
4369
4337
  "thead",
4370
4338
  {
4371
4339
  "data-slot": "table-header",
@@ -4378,8 +4346,8 @@ var TableHeader = React28.forwardRef(function TableHeader2({ className, ...props
4378
4346
  }
4379
4347
  );
4380
4348
  });
4381
- var TableBody = React28.forwardRef(function TableBody2({ className, ...props }, ref) {
4382
- return /* @__PURE__ */ jsx31(
4349
+ var TableBody = React32.forwardRef(function TableBody2({ className, ...props }, ref) {
4350
+ return /* @__PURE__ */ jsx34(
4383
4351
  "tbody",
4384
4352
  {
4385
4353
  "data-slot": "table-body",
@@ -4389,8 +4357,8 @@ var TableBody = React28.forwardRef(function TableBody2({ className, ...props },
4389
4357
  }
4390
4358
  );
4391
4359
  });
4392
- var TableFooter = React28.forwardRef(function TableFooter2({ className, ...props }, ref) {
4393
- return /* @__PURE__ */ jsx31(
4360
+ var TableFooter = React32.forwardRef(function TableFooter2({ className, ...props }, ref) {
4361
+ return /* @__PURE__ */ jsx34(
4394
4362
  "tfoot",
4395
4363
  {
4396
4364
  "data-slot": "table-footer",
@@ -4403,8 +4371,8 @@ var TableFooter = React28.forwardRef(function TableFooter2({ className, ...props
4403
4371
  }
4404
4372
  );
4405
4373
  });
4406
- var TableRow = React28.forwardRef(function TableRow2({ className, ...props }, ref) {
4407
- return /* @__PURE__ */ jsx31(
4374
+ var TableRow = React32.forwardRef(function TableRow2({ className, ...props }, ref) {
4375
+ return /* @__PURE__ */ jsx34(
4408
4376
  "tr",
4409
4377
  {
4410
4378
  "data-slot": "table-row",
@@ -4417,8 +4385,8 @@ var TableRow = React28.forwardRef(function TableRow2({ className, ...props }, re
4417
4385
  }
4418
4386
  );
4419
4387
  });
4420
- var TableHead = React28.forwardRef(function TableHead2({ className, children, ...props }, ref) {
4421
- return /* @__PURE__ */ jsx31(
4388
+ var TableHead = React32.forwardRef(function TableHead2({ className, children, ...props }, ref) {
4389
+ return /* @__PURE__ */ jsx34(
4422
4390
  "th",
4423
4391
  {
4424
4392
  "data-slot": "table-head",
@@ -4432,14 +4400,14 @@ var TableHead = React28.forwardRef(function TableHead2({ className, children, ..
4432
4400
  as: "span",
4433
4401
  className: "inline-flex items-center gap-2 text-inherit",
4434
4402
  size: "tiny",
4435
- style: inheritedTextStyle
4403
+ style: inheritedTypographyStyle
4436
4404
  })
4437
4405
  }
4438
4406
  );
4439
4407
  });
4440
- var TableCell = React28.forwardRef(
4408
+ var TableCell = React32.forwardRef(
4441
4409
  function TableCell2({ className, variant, children, ...props }, ref) {
4442
- return /* @__PURE__ */ jsx31(
4410
+ return /* @__PURE__ */ jsx34(
4443
4411
  "td",
4444
4412
  {
4445
4413
  "data-slot": "table-cell",
@@ -4450,14 +4418,14 @@ var TableCell = React28.forwardRef(
4450
4418
  as: "span",
4451
4419
  className: "block text-inherit [&_svg]:h-[1em] [&_svg]:w-[1em] [&_svg]:shrink-0",
4452
4420
  size: "body",
4453
- style: inheritedTextStyle
4421
+ style: inheritedTypographyStyle
4454
4422
  })
4455
4423
  }
4456
4424
  );
4457
4425
  }
4458
4426
  );
4459
- var TableCaption = React28.forwardRef(function TableCaption2({ className, children, ...props }, ref) {
4460
- return /* @__PURE__ */ jsx31(
4427
+ var TableCaption = React32.forwardRef(function TableCaption2({ className, children, ...props }, ref) {
4428
+ return /* @__PURE__ */ jsx34(
4461
4429
  "caption",
4462
4430
  {
4463
4431
  "data-slot": "table-caption",
@@ -4471,7 +4439,7 @@ var TableCaption = React28.forwardRef(function TableCaption2({ className, childr
4471
4439
  as: "span",
4472
4440
  className: "block text-inherit",
4473
4441
  size: "body",
4474
- style: inheritedTextStyle
4442
+ style: inheritedTypographyStyle
4475
4443
  })
4476
4444
  }
4477
4445
  );
@@ -4482,7 +4450,7 @@ function TableStatusBadge({
4482
4450
  children,
4483
4451
  ...props
4484
4452
  }) {
4485
- return /* @__PURE__ */ jsx31(
4453
+ return /* @__PURE__ */ jsx34(
4486
4454
  Badge,
4487
4455
  {
4488
4456
  variant: "pill",
@@ -4492,13 +4460,13 @@ function TableStatusBadge({
4492
4460
  as: "span",
4493
4461
  className: "inline-flex items-center gap-2 text-inherit [&_svg]:h-[1em] [&_svg]:w-[1em] [&_svg]:shrink-0",
4494
4462
  size: "tiny",
4495
- style: inheritedTextStyle
4463
+ style: inheritedTypographyStyle
4496
4464
  })
4497
4465
  }
4498
4466
  );
4499
4467
  }
4500
- var TableActionButton = React28.forwardRef(function TableActionButton2({ className, tone, type = "button", children, ...props }, ref) {
4501
- return /* @__PURE__ */ jsx31(
4468
+ var TableActionButton = React32.forwardRef(function TableActionButton2({ className, tone, type = "button", children, ...props }, ref) {
4469
+ return /* @__PURE__ */ jsx34(
4502
4470
  Button,
4503
4471
  {
4504
4472
  ref,
@@ -4511,13 +4479,13 @@ var TableActionButton = React28.forwardRef(function TableActionButton2({ classNa
4511
4479
  as: "span",
4512
4480
  className: "inline-flex items-center justify-center text-inherit [&_svg]:h-[1em] [&_svg]:w-[1em] [&_svg]:shrink-0",
4513
4481
  size: "body",
4514
- style: inheritedTextStyle
4482
+ style: inheritedTypographyStyle
4515
4483
  })
4516
4484
  }
4517
4485
  );
4518
4486
  });
4519
- var TableActions = React28.forwardRef(function TableActions2({ className, ...props }, ref) {
4520
- return /* @__PURE__ */ jsx31(
4487
+ var TableActions = React32.forwardRef(function TableActions2({ className, ...props }, ref) {
4488
+ return /* @__PURE__ */ jsx34(
4521
4489
  "div",
4522
4490
  {
4523
4491
  ref,
@@ -4538,10 +4506,10 @@ TableActionButton.displayName = "TableActionButton";
4538
4506
  TableActions.displayName = "TableActions";
4539
4507
 
4540
4508
  // src/components/tabs.tsx
4541
- import * as React29 from "react";
4509
+ import * as React33 from "react";
4542
4510
  import * as TabsPrimitive from "@radix-ui/react-tabs";
4543
4511
  import { motion as motion3 } from "motion/react";
4544
- import { jsx as jsx32, jsxs as jsxs17 } from "react/jsx-runtime";
4512
+ import { jsx as jsx35, jsxs as jsxs17 } from "react/jsx-runtime";
4545
4513
  function resolveDefaultValue(items, defaultValue) {
4546
4514
  if (defaultValue) {
4547
4515
  return defaultValue;
@@ -4560,33 +4528,26 @@ function Tabs({
4560
4528
  ...props
4561
4529
  }) {
4562
4530
  const resolvedDefaultValue = resolveDefaultValue(items, defaultValue);
4563
- const isControlled = value !== void 0;
4564
- const [selectedValue, setSelectedValue] = React29.useState(resolvedDefaultValue);
4565
- const indicatorLayoutId = React29.useId();
4566
- const currentValue = isControlled ? value : selectedValue;
4567
- React29.useEffect(() => {
4568
- if (!isControlled) {
4569
- setSelectedValue(resolvedDefaultValue);
4531
+ const [currentValue, setCurrentValue, setUncontrolledCurrentValue] = useControllableState({
4532
+ defaultValue: resolvedDefaultValue,
4533
+ onChange: onValueChange,
4534
+ value
4535
+ });
4536
+ const indicatorLayoutId = React33.useId();
4537
+ React33.useEffect(() => {
4538
+ if (value === void 0) {
4539
+ setUncontrolledCurrentValue(resolvedDefaultValue);
4570
4540
  }
4571
- }, [isControlled, resolvedDefaultValue]);
4572
- const handleValueChange = React29.useCallback(
4573
- (nextValue) => {
4574
- if (!isControlled) {
4575
- setSelectedValue(nextValue);
4576
- }
4577
- onValueChange?.(nextValue);
4578
- },
4579
- [isControlled, onValueChange]
4580
- );
4541
+ }, [resolvedDefaultValue, setUncontrolledCurrentValue, value]);
4581
4542
  return /* @__PURE__ */ jsxs17(
4582
4543
  TabsPrimitive.Root,
4583
4544
  {
4584
4545
  className: cn("w-full", className),
4585
- onValueChange: handleValueChange,
4546
+ onValueChange: setCurrentValue,
4586
4547
  value: currentValue,
4587
4548
  ...props,
4588
4549
  children: [
4589
- /* @__PURE__ */ jsx32(
4550
+ /* @__PURE__ */ jsx35(
4590
4551
  TabsPrimitive.List,
4591
4552
  {
4592
4553
  "aria-label": "Subtelas navegaveis",
@@ -4609,7 +4570,7 @@ function Tabs({
4609
4570
  item.triggerClassName
4610
4571
  ),
4611
4572
  children: [
4612
- isActive ? /* @__PURE__ */ jsx32(
4573
+ isActive ? /* @__PURE__ */ jsx35(
4613
4574
  motion3.span,
4614
4575
  {
4615
4576
  "aria-hidden": "true",
@@ -4620,14 +4581,14 @@ function Tabs({
4620
4581
  }
4621
4582
  ) : null,
4622
4583
  /* @__PURE__ */ jsxs17("span", { className: "relative z-10 inline-flex items-center gap-2", children: [
4623
- item.loading ? /* @__PURE__ */ jsx32(
4584
+ item.loading ? /* @__PURE__ */ jsx35(
4624
4585
  "span",
4625
4586
  {
4626
4587
  "aria-hidden": "true",
4627
4588
  className: "h-4 w-4 animate-spin rounded-full border-2 border-current border-r-transparent"
4628
4589
  }
4629
4590
  ) : null,
4630
- /* @__PURE__ */ jsx32("span", { children: renderTextContent(item.label, {
4591
+ /* @__PURE__ */ jsx35("span", { children: renderTextContent(item.label, {
4631
4592
  as: "span",
4632
4593
  className: "block text-inherit",
4633
4594
  size: "h5"
@@ -4641,7 +4602,7 @@ function Tabs({
4641
4602
  }
4642
4603
  ),
4643
4604
  items.map(
4644
- (item) => item.content !== void 0 ? /* @__PURE__ */ jsx32(
4605
+ (item) => item.content !== void 0 ? /* @__PURE__ */ jsx35(
4645
4606
  TabsPrimitive.Content,
4646
4607
  {
4647
4608
  value: item.value,
@@ -4664,9 +4625,9 @@ function Tabs({
4664
4625
  Tabs.displayName = "Tabs";
4665
4626
 
4666
4627
  // src/components/textarea.tsx
4667
- import * as React30 from "react";
4668
- import { jsx as jsx33, jsxs as jsxs18 } from "react/jsx-runtime";
4669
- var Textarea = React30.forwardRef(
4628
+ import * as React34 from "react";
4629
+ import { jsx as jsx36 } from "react/jsx-runtime";
4630
+ var Textarea = React34.forwardRef(
4670
4631
  ({
4671
4632
  className,
4672
4633
  containerClassName,
@@ -4676,10 +4637,10 @@ var Textarea = React30.forwardRef(
4676
4637
  rows = 5,
4677
4638
  ...props
4678
4639
  }, ref) => {
4679
- const generatedId = React30.useId();
4640
+ const generatedId = React34.useId();
4680
4641
  const resolvedId = id ?? generatedId;
4681
4642
  const ariaLabel = props["aria-label"] ?? (typeof label === "string" ? label : void 0);
4682
- const control = /* @__PURE__ */ jsx33(
4643
+ const control = /* @__PURE__ */ jsx36(
4683
4644
  "textarea",
4684
4645
  {
4685
4646
  className: cn(
@@ -4693,43 +4654,29 @@ var Textarea = React30.forwardRef(
4693
4654
  "aria-label": ariaLabel
4694
4655
  }
4695
4656
  );
4696
- if (!label && !containerClassName) {
4697
- return control;
4698
- }
4699
- return /* @__PURE__ */ jsxs18("div", { className: cn("grid w-full gap-2", containerClassName), children: [
4700
- label ? /* @__PURE__ */ jsx33(
4701
- "label",
4702
- {
4703
- className: cn(
4704
- "text-[color:var(--sofya-text-default)]",
4705
- labelClassName
4706
- ),
4707
- htmlFor: resolvedId,
4708
- children: renderTextContent(label, {
4709
- as: "span",
4710
- className: "block text-[color:var(--sofya-text-default)]",
4711
- size: "body",
4712
- style: {
4713
- fontWeight: 500
4714
- }
4715
- })
4716
- }
4717
- ) : null,
4718
- control
4719
- ] });
4657
+ return /* @__PURE__ */ jsx36(
4658
+ FieldShell,
4659
+ {
4660
+ control,
4661
+ containerClassName,
4662
+ label,
4663
+ labelClassName,
4664
+ labelHtmlFor: resolvedId
4665
+ }
4666
+ );
4720
4667
  }
4721
4668
  );
4722
4669
  Textarea.displayName = "Textarea";
4723
4670
 
4724
4671
  // src/components/tooltip.tsx
4725
- import * as React31 from "react";
4672
+ import * as React35 from "react";
4726
4673
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
4727
- import { jsx as jsx34 } from "react/jsx-runtime";
4674
+ import { jsx as jsx37 } from "react/jsx-runtime";
4728
4675
  var TooltipProvider = TooltipPrimitive.Provider;
4729
4676
  var Tooltip = TooltipPrimitive.Root;
4730
4677
  var TooltipTrigger = TooltipPrimitive.Trigger;
4731
- var TooltipContent = React31.forwardRef(function TooltipContent2({ className, sideOffset = 8, ...props }, ref) {
4732
- return /* @__PURE__ */ jsx34(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx34(
4678
+ var TooltipContent = React35.forwardRef(function TooltipContent2({ className, sideOffset = 8, ...props }, ref) {
4679
+ return /* @__PURE__ */ jsx37(TooltipPrimitive.Portal, { children: /* @__PURE__ */ jsx37(
4733
4680
  TooltipPrimitive.Content,
4734
4681
  {
4735
4682
  ref,
@@ -4753,13 +4700,13 @@ var TooltipContent = React31.forwardRef(function TooltipContent2({ className, si
4753
4700
  TooltipContent.displayName = TooltipPrimitive.Content.displayName;
4754
4701
 
4755
4702
  // src/theme/provider.tsx
4756
- import * as React32 from "react";
4703
+ import * as React36 from "react";
4757
4704
  import {
4758
4705
  createWhitelabelTheme,
4759
4706
  defaultTheme,
4760
4707
  themeToCssVariables
4761
4708
  } from "@sofya-ds/tokens";
4762
- import { jsx as jsx35 } from "react/jsx-runtime";
4709
+ import { jsx as jsx38 } from "react/jsx-runtime";
4763
4710
  var SOFYA_FONT_LINKS = [
4764
4711
  {
4765
4712
  id: "preconnect-googleapis",
@@ -4779,7 +4726,7 @@ var SOFYA_FONT_LINKS = [
4779
4726
  }
4780
4727
  ];
4781
4728
  function useSofyaFontLinks() {
4782
- React32.useEffect(() => {
4729
+ React36.useEffect(() => {
4783
4730
  if (typeof document === "undefined") {
4784
4731
  return;
4785
4732
  }
@@ -4812,7 +4759,7 @@ function SofyaProvider({
4812
4759
  useSofyaFontLinks();
4813
4760
  const theme = createWhitelabelTheme(overrides ?? {}, preset);
4814
4761
  const cssVariables = themeToCssVariables(theme);
4815
- return /* @__PURE__ */ jsx35(
4762
+ return /* @__PURE__ */ jsx38(
4816
4763
  "div",
4817
4764
  {
4818
4765
  "data-sofya-theme": theme.name,
@@ -4973,6 +4920,7 @@ export {
4973
4920
  hexToHslChannels,
4974
4921
  iconColorOptions,
4975
4922
  iconNames,
4923
+ iconSizeMap,
4976
4924
  iconSizeOptions,
4977
4925
  inputVariantOptions,
4978
4926
  isTextContent,