@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.cjs CHANGED
@@ -158,6 +158,7 @@ __export(index_exports, {
158
158
  hexToHslChannels: () => import_tokens2.hexToHslChannels,
159
159
  iconColorOptions: () => iconColorOptions,
160
160
  iconNames: () => iconNames,
161
+ iconSizeMap: () => iconSizeMap,
161
162
  iconSizeOptions: () => iconSizeOptions,
162
163
  inputVariantOptions: () => inputVariantOptions,
163
164
  isTextContent: () => isTextContent,
@@ -301,107 +302,108 @@ var AccordionPrimitive = __toESM(require("@radix-ui/react-accordion"), 1);
301
302
  var React2 = __toESM(require("react"), 1);
302
303
 
303
304
  // src/components/icon-data.ts
304
- var rawIconRegistry = {
305
- "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" },
306
- "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" },
307
- "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" },
308
- "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" },
309
- "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" },
310
- "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" },
311
- "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" },
312
- "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" },
313
- "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" },
314
- "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" },
315
- "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" },
316
- "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" },
317
- "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" },
318
- "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" },
319
- "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" },
320
- "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" },
321
- "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" },
322
- "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" },
323
- "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" },
324
- "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" },
325
- "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" },
326
- "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" },
327
- "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" },
328
- "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" },
329
- "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" },
330
- "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" },
331
- "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" },
332
- "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" },
333
- "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" },
334
- "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" },
335
- "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" },
336
- "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" },
337
- "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" },
338
- "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" },
339
- "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" },
340
- "corners-out 1": { viewBox: "0 0 16 16", strokes: [
341
- { d: "M1 5V1H5", strokeWidth: 1.75, strokeLinecap: "round" },
342
- { d: "M11 1H15V5", strokeWidth: 1.75, strokeLinecap: "round" },
343
- { d: "M15 11V15H11", strokeWidth: 1.75, strokeLinecap: "round" },
344
- { d: "M5 15H1V11", strokeWidth: 1.75, strokeLinecap: "round" }
345
- ] },
346
- "corners-in 1": { viewBox: "0 0 16 16", strokes: [
347
- { d: "M1 1H5V5", strokeWidth: 1.75, strokeLinecap: "round" },
348
- { d: "M11 1H15V5", strokeWidth: 1.75, strokeLinecap: "round" },
349
- { d: "M15 11V15H11", strokeWidth: 1.75, strokeLinecap: "round" },
350
- { d: "M1 11H5V15", strokeWidth: 1.75, strokeLinecap: "round" }
351
- ] },
352
- "Volume": { viewBox: "0 0 12 14", strokes: [
353
- { d: "M1 13L1 7", strokeWidth: 2, strokeLinecap: "round" },
354
- { d: "M6 13L6 4", strokeWidth: 2, strokeLinecap: "round" },
355
- { d: "M11 13L11 1", strokeWidth: 2, strokeLinecap: "round" }
356
- ] }
305
+ var import_icons_react = require("@tabler/icons-react");
306
+ var tablerIconRegistry = {
307
+ IconAdjustmentsHorizontalFilled: import_icons_react.IconAdjustmentsHorizontalFilled,
308
+ IconArrowUp: import_icons_react.IconArrowUp,
309
+ IconArchive: import_icons_react.IconArchive,
310
+ IconBuildingHospital: import_icons_react.IconBuildingHospital,
311
+ IconBooks: import_icons_react.IconBooks,
312
+ IconBulb: import_icons_react.IconBulb,
313
+ IconChartBar: import_icons_react.IconChartBar,
314
+ IconCheck: import_icons_react.IconCheck,
315
+ IconChecklist: import_icons_react.IconChecklist,
316
+ IconChevronLeft: import_icons_react.IconChevronLeft,
317
+ IconChevronDown: import_icons_react.IconChevronDown,
318
+ IconChevronUp: import_icons_react.IconChevronUp,
319
+ IconFile: import_icons_react.IconFile,
320
+ IconFolders: import_icons_react.IconFolders,
321
+ IconFolder: import_icons_react.IconFolder,
322
+ IconHelpCircle: import_icons_react.IconHelpCircle,
323
+ IconLanguage: import_icons_react.IconLanguage,
324
+ IconMapPin: import_icons_react.IconMapPin,
325
+ IconMessages: import_icons_react.IconMessages,
326
+ IconMicrophone: import_icons_react.IconMicrophone,
327
+ IconPencil: import_icons_react.IconPencil,
328
+ IconPlus: import_icons_react.IconPlus,
329
+ IconSchool: import_icons_react.IconSchool,
330
+ IconSearch: import_icons_react.IconSearch,
331
+ IconSparkles: import_icons_react.IconSparkles,
332
+ IconUser: import_icons_react.IconUser,
333
+ IconUserFilled: import_icons_react.IconUserFilled,
334
+ IconUserCircle: import_icons_react.IconUserCircle,
335
+ IconUserSearch: import_icons_react.IconUserSearch,
336
+ IconUsers: import_icons_react.IconUsers,
337
+ IconUsersGroup: import_icons_react.IconUsersGroup,
338
+ IconTrash: import_icons_react.IconTrash,
339
+ IconTrashFilled: import_icons_react.IconTrashFilled,
340
+ IconTrashOff: import_icons_react.IconTrashOff,
341
+ IconTrashX: import_icons_react.IconTrashX,
342
+ IconChevronRight: import_icons_react.IconChevronRight,
343
+ IconX: import_icons_react.IconX
357
344
  };
358
- var iconNameMap = {
359
- "files": "files",
360
- "books": "books",
361
- "file-magnifying-glass": "file-magnifying-glass",
362
- "minus": "minus",
363
- "plus": "plus",
364
- "arrows-in-simple": "arrows-in-simple",
365
- "check": "check",
366
- "caret-down": "caret-down",
367
- "lightbulb": "lightbulb",
368
- "chats": "chats",
369
- "file": "file",
370
- "folders": "folders",
371
- "sparkle": "sparkle",
372
- "microphone-stage": "microphone-stage",
373
- "battery-low": "battery-low",
374
- "microphone": "microphone",
375
- "microphone-slash": "microphone-slash",
376
- "play": "play",
377
- "x": "x",
378
- "mail": "Mail",
379
- "pause": "pause",
380
- "broadcast": "broadcast",
381
- "sidebar-simple": "sidebar-simple",
382
- "pencil-simple-line": "pencil-simple-line",
383
- "search": "search",
384
- "list-dashes": "list-dashes",
385
- "brain": "brain",
386
- "eye": "eye",
387
- "frame": "Frame",
388
- "arrow-up": "arrow-up",
389
- "question": "question",
390
- "caret-up": "caret-up",
391
- "stop-1": "stop 1",
392
- "pause-1": "pause 1",
393
- "play-1": "play 1",
394
- "corners-out-1": "corners-out 1",
395
- "corners-in-1": "corners-in 1",
396
- "volume": "Volume"
345
+ var tablerIconNames = Object.keys(tablerIconRegistry).sort(
346
+ (left, right) => left.localeCompare(right)
347
+ );
348
+ function resolveTablerIcon(name) {
349
+ const candidate = tablerIconRegistry[name];
350
+ if (!candidate) {
351
+ throw new Error(
352
+ `Icon could not resolve Tabler icon \`${name}\`. Import it and append it to tablerIconRegistry before using it.`
353
+ );
354
+ }
355
+ return candidate;
356
+ }
357
+ var legacyIconToTablerNameMap = {
358
+ "adjustments-horizontal-filled": "IconAdjustmentsHorizontalFilled",
359
+ "books": "IconBooks",
360
+ "organization": "IconBuildingHospital",
361
+ "locations": "IconMapPin",
362
+ "people": "IconUsers",
363
+ "terminologies": "IconLanguage",
364
+ "guidelines": "IconChecklist",
365
+ "logs": "IconChartBar",
366
+ "profile": "IconUserSearch",
367
+ "experience": "IconSchool",
368
+ "voice": "IconMicrophone",
369
+ "plus": "IconPlus",
370
+ "check": "IconCheck",
371
+ "caret-down": "IconChevronDown",
372
+ "lightbulb": "IconBulb",
373
+ "chats": "IconMessages",
374
+ "file": "IconFile",
375
+ "folders": "IconFolders",
376
+ "sparkle": "IconSparkles",
377
+ "x": "IconX",
378
+ "pencil-simple-line": "IconPencil",
379
+ "search": "IconSearch",
380
+ "arrow-up": "IconArrowUp",
381
+ "question": "IconHelpCircle",
382
+ "user-filled": "IconUserFilled",
383
+ "caret-up": "IconChevronUp",
384
+ "caret-left": "IconChevronLeft",
385
+ "caret-right": "IconChevronRight",
386
+ "users-group": "IconUsersGroup",
387
+ "archive": "IconArchive",
388
+ "folder": "IconFolder",
389
+ "trash": "IconTrash",
390
+ "trash-filled": "IconTrashFilled",
391
+ "trash-off": "IconTrashOff",
392
+ "trash-x": "IconTrashX",
393
+ "delete": "IconTrash",
394
+ "remove": "IconTrashX",
395
+ "lixeira": "IconTrash"
397
396
  };
397
+ var iconNames = Object.keys(legacyIconToTablerNameMap);
398
398
  var iconRegistry = Object.fromEntries(
399
- Object.entries(iconNameMap).map(([canonicalName, rawName]) => [
400
- canonicalName,
401
- rawIconRegistry[rawName]
399
+ Object.entries(legacyIconToTablerNameMap).map(([name, tablerName]) => [
400
+ name,
401
+ resolveTablerIcon(tablerName)
402
402
  ])
403
403
  );
404
- var iconNames = Object.keys(iconNameMap);
404
+ var iconNameMap = Object.fromEntries(
405
+ iconNames.map((name) => [name, name])
406
+ );
405
407
 
406
408
  // src/components/icon.tsx
407
409
  var import_jsx_runtime2 = require("react/jsx-runtime");
@@ -442,7 +444,7 @@ var iconColorOptions = [
442
444
  "agent-mint",
443
445
  "agent-green"
444
446
  ];
445
- var iconSizeScale = {
447
+ var iconSizeMap = {
446
448
  xs: 12,
447
449
  sm: 16,
448
450
  md: 20,
@@ -485,7 +487,7 @@ var iconColorScale = {
485
487
  "agent-green": "var(--sofya-agent-green)"
486
488
  };
487
489
  function resolveIconSize(size) {
488
- return typeof size === "number" ? size : iconSizeScale[size];
490
+ return typeof size === "number" ? size : iconSizeMap[size];
489
491
  }
490
492
  function resolveIconColor(color) {
491
493
  if (!color || color === "current") {
@@ -493,55 +495,43 @@ function resolveIconColor(color) {
493
495
  }
494
496
  return iconColorScale[color];
495
497
  }
496
- var Icon = React2.forwardRef(function Icon2({
497
- name,
498
- size = "md",
499
- color = "current",
500
- title,
501
- strokeWidth = 2,
502
- className,
503
- style,
504
- ...props
505
- }, ref) {
506
- const icon = iconRegistry[name];
507
- const titleId = React2.useId();
498
+ var Icon = React2.forwardRef(function Icon2(incomingProps, ref) {
499
+ const {
500
+ decorative,
501
+ size = "md",
502
+ color = "current",
503
+ title,
504
+ strokeWidth = 2,
505
+ className,
506
+ style
507
+ } = incomingProps;
508
+ const IconComponent = iconRegistry[incomingProps.name];
509
+ const {
510
+ decorative: _decorative,
511
+ color: _color,
512
+ name: _name,
513
+ size: _size,
514
+ strokeWidth: _strokeWidth,
515
+ title: _title,
516
+ ...props
517
+ } = incomingProps;
508
518
  const dimension = resolveIconSize(size);
509
519
  const resolvedColor = resolveIconColor(color);
510
520
  const resolvedStyle = resolvedColor ? { ...style, color: resolvedColor } : style;
511
- const fillPath = "d" in icon ? icon.d : void 0;
512
- const strokePaths = "strokes" in icon ? icon.strokes : void 0;
513
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
514
- "svg",
521
+ const isDecorative = decorative ?? !title;
522
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
523
+ IconComponent,
515
524
  {
516
525
  ref,
517
- xmlns: "http://www.w3.org/2000/svg",
518
- viewBox: icon.viewBox,
519
526
  className: cn("inline-block shrink-0 align-middle", className),
520
- fill: "none",
521
- role: title ? "img" : void 0,
522
- "aria-hidden": title ? void 0 : true,
523
- "aria-labelledby": title ? titleId : void 0,
527
+ role: isDecorative ? void 0 : "img",
528
+ "aria-hidden": isDecorative ? true : void 0,
524
529
  focusable: "false",
525
530
  ...props,
526
- width: dimension,
527
- height: dimension,
528
- style: resolvedStyle,
529
- children: [
530
- title ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("title", { id: titleId, children: title }) : null,
531
- fillPath ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: fillPath, fill: "currentColor" }) : null,
532
- strokePaths?.map((path, index) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
533
- "path",
534
- {
535
- d: path.d,
536
- fill: "none",
537
- stroke: "currentColor",
538
- strokeWidth: path.strokeWidth ?? strokeWidth,
539
- strokeLinecap: path.strokeLinecap ?? "round",
540
- strokeLinejoin: "round"
541
- },
542
- `${name}-${index}`
543
- ))
544
- ]
531
+ size: dimension,
532
+ title,
533
+ stroke: strokeWidth,
534
+ style: resolvedStyle
545
535
  }
546
536
  );
547
537
  });
@@ -1010,10 +1000,10 @@ function Badge({ className, variant, alert, pillTone, ...props }) {
1010
1000
  }
1011
1001
 
1012
1002
  // src/components/button.tsx
1013
- var React6 = __toESM(require("react"), 1);
1003
+ var React8 = __toESM(require("react"), 1);
1004
+ var import_icons_react2 = require("@tabler/icons-react");
1014
1005
  var import_react_slot = require("@radix-ui/react-slot");
1015
1006
  var import_class_variance_authority4 = require("class-variance-authority");
1016
- var import_react = require("motion/react");
1017
1007
 
1018
1008
  // src/components/button-language-flags.ts
1019
1009
  function createFlagDataUri(svg) {
@@ -1137,8 +1127,271 @@ var dropdownLanguageFlagSrc = {
1137
1127
  `)
1138
1128
  };
1139
1129
 
1140
- // src/components/button.tsx
1130
+ // src/components/button-ripple.tsx
1131
+ var React6 = __toESM(require("react"), 1);
1132
+ var import_react = require("motion/react");
1141
1133
  var import_jsx_runtime7 = require("react/jsx-runtime");
1134
+ var MAX_ACTIVE_RIPPLES = 3;
1135
+ var buttonRippleVariantClasses = {
1136
+ default: "bg-[hsl(var(--sofya-primary-foreground)/0.82)] mix-blend-screen",
1137
+ gradient: "bg-[hsl(var(--sofya-primary-foreground)/0.8)] mix-blend-screen",
1138
+ dropdown: "bg-[hsl(var(--sofya-primary)/0.36)]",
1139
+ icon: "bg-[hsl(var(--sofya-primary)/0.34)]",
1140
+ language: "bg-[hsl(var(--sofya-background)/0.76)] mix-blend-screen",
1141
+ secondary: "bg-[hsl(var(--sofya-primary)/0.30)]",
1142
+ outline: "bg-[hsl(var(--sofya-primary)/0.32)]",
1143
+ ghost: "bg-[hsl(var(--sofya-primary)/0.28)]",
1144
+ destructive: "bg-[hsl(var(--sofya-destructive-foreground)/0.78)] mix-blend-screen"
1145
+ };
1146
+ var buttonRippleBaseSize = {
1147
+ default: 20,
1148
+ sm: 18,
1149
+ lg: 22,
1150
+ icon: 18
1151
+ };
1152
+ function useButtonRippleState({
1153
+ disabled,
1154
+ onClick,
1155
+ onPointerDown,
1156
+ size,
1157
+ variant
1158
+ }) {
1159
+ const prefersReducedMotion = Boolean((0, import_react.useReducedMotion)());
1160
+ const [ripples, setRipples] = React6.useState([]);
1161
+ const rippleIdRef = React6.useRef(0);
1162
+ const lastRippleAtRef = React6.useRef(0);
1163
+ const handleRippleComplete = React6.useCallback((rippleId) => {
1164
+ setRipples(
1165
+ (currentRipples) => currentRipples.filter((currentRipple) => currentRipple.id !== rippleId)
1166
+ );
1167
+ }, []);
1168
+ const createRipple = React6.useCallback(
1169
+ (currentTarget, clientX, clientY) => {
1170
+ const now = performance.now();
1171
+ if (now - lastRippleAtRef.current < 48) {
1172
+ return;
1173
+ }
1174
+ lastRippleAtRef.current = now;
1175
+ const rect = currentTarget.getBoundingClientRect();
1176
+ const hasPointerPosition = clientX !== void 0 && clientY !== void 0;
1177
+ const x = hasPointerPosition ? clientX - rect.left : rect.width / 2;
1178
+ const y = hasPointerPosition ? clientY - rect.top : rect.height / 2;
1179
+ const radius = Math.max(
1180
+ Math.hypot(x, y),
1181
+ Math.hypot(rect.width - x, y),
1182
+ Math.hypot(x, rect.height - y),
1183
+ Math.hypot(rect.width - x, rect.height - y)
1184
+ );
1185
+ const baseSize = buttonRippleBaseSize[size];
1186
+ const finalDiameter = Math.max(
1187
+ radius * 2 + 24,
1188
+ Math.max(rect.width, rect.height) + 18
1189
+ );
1190
+ setRipples((currentRipples) => {
1191
+ const nextRipple = {
1192
+ id: rippleIdRef.current++,
1193
+ scale: finalDiameter / baseSize,
1194
+ size: baseSize,
1195
+ x: x - baseSize / 2,
1196
+ y: y - baseSize / 2
1197
+ };
1198
+ const nextRipples = [...currentRipples, nextRipple];
1199
+ if (nextRipples.length > MAX_ACTIVE_RIPPLES) {
1200
+ return nextRipples.slice(nextRipples.length - MAX_ACTIVE_RIPPLES);
1201
+ }
1202
+ return nextRipples;
1203
+ });
1204
+ },
1205
+ [size]
1206
+ );
1207
+ const handlePointerDown = React6.useCallback(
1208
+ (event) => {
1209
+ onPointerDown?.(event);
1210
+ if (event.defaultPrevented || disabled) {
1211
+ return;
1212
+ }
1213
+ if (prefersReducedMotion) {
1214
+ return;
1215
+ }
1216
+ if (event.button === 0) {
1217
+ createRipple(
1218
+ event.currentTarget,
1219
+ event.clientX,
1220
+ event.clientY
1221
+ );
1222
+ }
1223
+ },
1224
+ [createRipple, disabled, onPointerDown, prefersReducedMotion]
1225
+ );
1226
+ const handleClick = React6.useCallback(
1227
+ (event) => {
1228
+ if (!disabled && !prefersReducedMotion && event.detail === 0) {
1229
+ createRipple(event.currentTarget);
1230
+ }
1231
+ onClick?.(event);
1232
+ },
1233
+ [createRipple, disabled, onClick, prefersReducedMotion]
1234
+ );
1235
+ return {
1236
+ handleClick,
1237
+ handlePointerDown,
1238
+ handleRippleComplete,
1239
+ prefersReducedMotion,
1240
+ rippleClassName: buttonRippleVariantClasses[variant],
1241
+ ripples
1242
+ };
1243
+ }
1244
+ function ButtonRippleLayer({
1245
+ onAnimationComplete,
1246
+ prefersReducedMotion,
1247
+ rippleClassName,
1248
+ ripples
1249
+ }) {
1250
+ if (ripples.length === 0) {
1251
+ return null;
1252
+ }
1253
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1254
+ "span",
1255
+ {
1256
+ "aria-hidden": "true",
1257
+ className: "pointer-events-none absolute inset-0 z-[1] overflow-hidden rounded-[inherit]",
1258
+ children: ripples.map((ripple) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1259
+ import_react.motion.span,
1260
+ {
1261
+ className: cn(
1262
+ "absolute rounded-full will-change-transform transform-gpu",
1263
+ rippleClassName
1264
+ ),
1265
+ initial: prefersReducedMotion ? { opacity: 0.32, scale: 0.72 } : { opacity: 0.56, scale: 0 },
1266
+ animate: prefersReducedMotion ? { opacity: 0, scale: 1.02 } : { opacity: [0.56, 0.26, 0], scale: ripple.scale },
1267
+ transition: prefersReducedMotion ? { duration: 0.2, ease: "linear" } : {
1268
+ duration: 0.62,
1269
+ times: [0, 0.35, 1],
1270
+ ease: [0.16, 1, 0.3, 1]
1271
+ },
1272
+ style: {
1273
+ height: ripple.size,
1274
+ left: ripple.x,
1275
+ top: ripple.y,
1276
+ transformOrigin: "center center",
1277
+ width: ripple.size
1278
+ },
1279
+ onAnimationComplete: () => {
1280
+ onAnimationComplete(ripple.id);
1281
+ }
1282
+ },
1283
+ ripple.id
1284
+ ))
1285
+ }
1286
+ );
1287
+ }
1288
+
1289
+ // src/components/button-loading-state.ts
1290
+ var React7 = __toESM(require("react"), 1);
1291
+ var BUTTON_SEQUENCE_MS = 250;
1292
+ function useButtonLoadingState({
1293
+ buttonRef,
1294
+ children,
1295
+ leftIcon,
1296
+ loading,
1297
+ rightIcon
1298
+ }) {
1299
+ const expandedWidthRef = React7.useRef(void 0);
1300
+ const previousLoadingRef = React7.useRef(loading);
1301
+ const timeoutsRef = React7.useRef([]);
1302
+ const frameRef = React7.useRef(null);
1303
+ const [animatedWidth, setAnimatedWidth] = React7.useState(void 0);
1304
+ const [loadingPhase, setLoadingPhase] = React7.useState(
1305
+ loading ? "loading" : "idle"
1306
+ );
1307
+ const clearAnimationTimers = React7.useCallback(() => {
1308
+ for (const timeoutId of timeoutsRef.current) {
1309
+ window.clearTimeout(timeoutId);
1310
+ }
1311
+ timeoutsRef.current = [];
1312
+ if (frameRef.current !== null) {
1313
+ window.cancelAnimationFrame(frameRef.current);
1314
+ frameRef.current = null;
1315
+ }
1316
+ }, []);
1317
+ React7.useLayoutEffect(() => {
1318
+ const element = buttonRef.current;
1319
+ if (element && loadingPhase === "idle" && !loading) {
1320
+ expandedWidthRef.current = element.offsetWidth;
1321
+ }
1322
+ if (element && loadingPhase === "loading" && animatedWidth === void 0) {
1323
+ setAnimatedWidth(element.offsetHeight);
1324
+ }
1325
+ }, [animatedWidth, buttonRef, loading, loadingPhase, children, leftIcon, rightIcon]);
1326
+ React7.useEffect(() => {
1327
+ return () => {
1328
+ clearAnimationTimers();
1329
+ };
1330
+ }, [clearAnimationTimers]);
1331
+ React7.useEffect(() => {
1332
+ const element = buttonRef.current;
1333
+ if (!element) {
1334
+ return;
1335
+ }
1336
+ const previousLoading = previousLoadingRef.current;
1337
+ previousLoadingRef.current = loading;
1338
+ if (previousLoading === loading) {
1339
+ return;
1340
+ }
1341
+ clearAnimationTimers();
1342
+ if (loading) {
1343
+ const currentWidth2 = element.offsetWidth;
1344
+ const collapsedWidth = element.offsetHeight;
1345
+ expandedWidthRef.current = currentWidth2;
1346
+ setAnimatedWidth(currentWidth2);
1347
+ setLoadingPhase("hiding-content");
1348
+ timeoutsRef.current.push(
1349
+ window.setTimeout(() => {
1350
+ setLoadingPhase("collapsing");
1351
+ setAnimatedWidth(collapsedWidth);
1352
+ }, BUTTON_SEQUENCE_MS)
1353
+ );
1354
+ timeoutsRef.current.push(
1355
+ window.setTimeout(() => {
1356
+ setLoadingPhase("loading");
1357
+ }, BUTTON_SEQUENCE_MS * 2)
1358
+ );
1359
+ return;
1360
+ }
1361
+ const currentWidth = element.offsetWidth;
1362
+ const expandedWidth = expandedWidthRef.current ?? Math.max(element.scrollWidth, currentWidth);
1363
+ setAnimatedWidth(currentWidth);
1364
+ setLoadingPhase("hiding-spinner");
1365
+ timeoutsRef.current.push(
1366
+ window.setTimeout(() => {
1367
+ setLoadingPhase("expanding");
1368
+ frameRef.current = window.requestAnimationFrame(() => {
1369
+ frameRef.current = window.requestAnimationFrame(() => {
1370
+ setAnimatedWidth(expandedWidth);
1371
+ });
1372
+ });
1373
+ }, BUTTON_SEQUENCE_MS)
1374
+ );
1375
+ timeoutsRef.current.push(
1376
+ window.setTimeout(() => {
1377
+ setLoadingPhase("revealing-content");
1378
+ }, BUTTON_SEQUENCE_MS * 2)
1379
+ );
1380
+ timeoutsRef.current.push(
1381
+ window.setTimeout(() => {
1382
+ setLoadingPhase("idle");
1383
+ setAnimatedWidth(void 0);
1384
+ }, BUTTON_SEQUENCE_MS * 3)
1385
+ );
1386
+ }, [buttonRef, clearAnimationTimers, loading]);
1387
+ return {
1388
+ animatedWidth,
1389
+ loadingPhase
1390
+ };
1391
+ }
1392
+
1393
+ // src/components/button.tsx
1394
+ var import_jsx_runtime8 = require("react/jsx-runtime");
1142
1395
  var buttonVariantOptions = [
1143
1396
  "default",
1144
1397
  "gradient",
@@ -1151,17 +1404,6 @@ var buttonVariantOptions = [
1151
1404
  "destructive"
1152
1405
  ];
1153
1406
  var buttonSizeOptions = ["default", "sm", "lg", "icon"];
1154
- var buttonRippleVariantClasses = {
1155
- default: "bg-[hsl(var(--sofya-primary-foreground)/0.82)] mix-blend-screen",
1156
- gradient: "bg-[hsl(var(--sofya-primary-foreground)/0.8)] mix-blend-screen",
1157
- dropdown: "bg-[hsl(var(--sofya-primary)/0.36)]",
1158
- icon: "bg-[hsl(var(--sofya-primary)/0.34)]",
1159
- language: "bg-[hsl(var(--sofya-background)/0.76)] mix-blend-screen",
1160
- secondary: "bg-[hsl(var(--sofya-primary)/0.30)]",
1161
- outline: "bg-[hsl(var(--sofya-primary)/0.32)]",
1162
- ghost: "bg-[hsl(var(--sofya-primary)/0.28)]",
1163
- destructive: "bg-[hsl(var(--sofya-destructive-foreground)/0.78)] mix-blend-screen"
1164
- };
1165
1407
  var buttonVariants = (0, import_class_variance_authority4.cva)(
1166
1408
  "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",
1167
1409
  {
@@ -1190,7 +1432,6 @@ var buttonVariants = (0, import_class_variance_authority4.cva)(
1190
1432
  }
1191
1433
  }
1192
1434
  );
1193
- var BUTTON_SEQUENCE_MS = 250;
1194
1435
  var loadingSpinnerSizeClasses = {
1195
1436
  default: "h-4 w-4",
1196
1437
  sm: "h-3.5 w-3.5",
@@ -1203,52 +1444,21 @@ var languageButtonSizeClasses = {
1203
1444
  lg: "h-12 w-12 rounded-full p-0",
1204
1445
  icon: "h-11 w-11 rounded-full p-0"
1205
1446
  };
1206
- var buttonRippleBaseSize = {
1207
- default: 20,
1208
- sm: 18,
1209
- lg: 22,
1210
- icon: 18
1211
- };
1212
1447
  function ButtonSpinner({
1213
1448
  size
1214
1449
  }) {
1215
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
1216
- "svg",
1450
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1451
+ import_icons_react2.IconLoader2,
1217
1452
  {
1218
1453
  "aria-hidden": "true",
1219
1454
  className: cn(
1220
1455
  "animate-spin text-current",
1221
1456
  loadingSpinnerSizeClasses[size]
1222
- ),
1223
- viewBox: "0 0 24 24",
1224
- fill: "none",
1225
- xmlns: "http://www.w3.org/2000/svg",
1226
- children: [
1227
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1228
- "circle",
1229
- {
1230
- cx: "12",
1231
- cy: "12",
1232
- r: "9",
1233
- className: "opacity-20",
1234
- stroke: "currentColor",
1235
- strokeWidth: "3"
1236
- }
1237
- ),
1238
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1239
- "path",
1240
- {
1241
- d: "M21 12A9 9 0 0 0 12 3",
1242
- stroke: "currentColor",
1243
- strokeWidth: "3",
1244
- strokeLinecap: "round"
1245
- }
1246
- )
1247
- ]
1457
+ )
1248
1458
  }
1249
1459
  );
1250
1460
  }
1251
- var Button = React6.forwardRef(
1461
+ var Button = React8.forwardRef(
1252
1462
  ({
1253
1463
  active = false,
1254
1464
  disabled,
@@ -1267,20 +1477,9 @@ var Button = React6.forwardRef(
1267
1477
  style,
1268
1478
  ...props
1269
1479
  }, ref) => {
1270
- const buttonRef = React6.useRef(null);
1271
- const expandedWidthRef = React6.useRef(void 0);
1272
- const previousLoadingRef = React6.useRef(loading);
1273
- const timeoutsRef = React6.useRef([]);
1274
- const frameRef = React6.useRef(null);
1275
- const [animatedWidth, setAnimatedWidth] = React6.useState(void 0);
1276
- const [loadingPhase, setLoadingPhase] = React6.useState(
1277
- loading ? "loading" : "idle"
1278
- );
1279
- const [ripples, setRipples] = React6.useState([]);
1280
- const rippleIdRef = React6.useRef(0);
1480
+ const buttonRef = React8.useRef(null);
1281
1481
  const Component = asChild ? import_react_slot.Slot : "button";
1282
- const prefersReducedMotion = (0, import_react.useReducedMotion)();
1283
- const hasChildren = React6.Children.count(children) > 0;
1482
+ const hasChildren = React8.Children.count(children) > 0;
1284
1483
  const isIconOnly = !hasChildren && Boolean(leftIcon || rightIcon);
1285
1484
  const isIconOnlyAction = variant === "icon" && isIconOnly;
1286
1485
  const resolvedSize = size ?? (isIconOnly ? "icon" : "default");
@@ -1291,6 +1490,13 @@ var Button = React6.forwardRef(
1291
1490
  const resolvedLanguageLabel = resolvedLanguageLocale ? buttonLanguageLabels[resolvedLanguageLocale] : void 0;
1292
1491
  const iconSlotClassName = "inline-flex shrink-0 items-center justify-center [&_svg]:h-[1em] [&_svg]:w-[1em] [&_svg]:shrink-0";
1293
1492
  const iconOnlyNode = leftIcon ?? rightIcon;
1493
+ const { animatedWidth, loadingPhase } = useButtonLoadingState({
1494
+ buttonRef,
1495
+ children,
1496
+ leftIcon,
1497
+ loading,
1498
+ rightIcon
1499
+ });
1294
1500
  const isDisabled = disabled || loadingPhase !== "idle";
1295
1501
  const resolvedWidthStyle = animatedWidth === void 0 ? style?.width : `${animatedWidth}px`;
1296
1502
  const isCompactPhase = loadingPhase === "collapsing" || loadingPhase === "loading" || loadingPhase === "hiding-spinner";
@@ -1313,153 +1519,26 @@ var Button = React6.forwardRef(
1313
1519
  backgroundSize: "cover"
1314
1520
  } : void 0
1315
1521
  };
1316
- const resolvedRippleClassName = buttonRippleVariantClasses[resolvedVariant];
1317
- const handleRippleComplete = React6.useCallback((rippleId) => {
1318
- setRipples(
1319
- (currentRipples) => currentRipples.filter((currentRipple) => currentRipple.id !== rippleId)
1320
- );
1321
- }, []);
1322
- const createRipple = React6.useCallback(
1323
- (currentTarget, clientX, clientY) => {
1324
- const rect = currentTarget.getBoundingClientRect();
1325
- const hasPointerPosition = clientX !== void 0 && clientY !== void 0;
1326
- const x = hasPointerPosition ? clientX - rect.left : rect.width / 2;
1327
- const y = hasPointerPosition ? clientY - rect.top : rect.height / 2;
1328
- const radius = Math.max(
1329
- Math.hypot(x, y),
1330
- Math.hypot(rect.width - x, y),
1331
- Math.hypot(x, rect.height - y),
1332
- Math.hypot(rect.width - x, rect.height - y)
1333
- );
1334
- const baseSize = buttonRippleBaseSize[resolvedSize];
1335
- const finalDiameter = Math.max(
1336
- radius * 2 + 24,
1337
- Math.max(rect.width, rect.height) + 18
1338
- );
1339
- setRipples((currentRipples) => [
1340
- ...currentRipples,
1341
- {
1342
- id: rippleIdRef.current++,
1343
- scale: finalDiameter / baseSize,
1344
- size: baseSize,
1345
- x: x - baseSize / 2,
1346
- y: y - baseSize / 2
1347
- }
1348
- ]);
1349
- },
1350
- [resolvedSize]
1351
- );
1352
- const handlePointerDown = React6.useCallback(
1353
- (event) => {
1354
- onPointerDown?.(event);
1355
- if (event.defaultPrevented || isDisabled) {
1356
- return;
1357
- }
1358
- if (event.button === 0) {
1359
- createRipple(
1360
- event.currentTarget,
1361
- event.clientX,
1362
- event.clientY
1363
- );
1364
- }
1365
- },
1366
- [createRipple, isDisabled, onPointerDown]
1367
- );
1368
- const handleClick = React6.useCallback(
1369
- (event) => {
1370
- if (!isDisabled && event.detail === 0) {
1371
- createRipple(event.currentTarget);
1372
- }
1373
- onClick?.(event);
1374
- },
1375
- [createRipple, isDisabled, onClick]
1376
- );
1377
- const clearAnimationTimers = React6.useCallback(() => {
1378
- for (const timeoutId of timeoutsRef.current) {
1379
- window.clearTimeout(timeoutId);
1380
- }
1381
- timeoutsRef.current = [];
1382
- if (frameRef.current !== null) {
1383
- window.cancelAnimationFrame(frameRef.current);
1384
- frameRef.current = null;
1385
- }
1386
- }, []);
1387
- React6.useImperativeHandle(
1522
+ const {
1523
+ handleClick,
1524
+ handlePointerDown,
1525
+ handleRippleComplete,
1526
+ prefersReducedMotion,
1527
+ rippleClassName,
1528
+ ripples
1529
+ } = useButtonRippleState({
1530
+ disabled: isDisabled,
1531
+ onClick,
1532
+ onPointerDown,
1533
+ size: resolvedSize,
1534
+ variant: resolvedVariant
1535
+ });
1536
+ React8.useImperativeHandle(
1388
1537
  ref,
1389
1538
  () => buttonRef.current
1390
1539
  );
1391
- React6.useLayoutEffect(() => {
1392
- const element = buttonRef.current;
1393
- if (element && loadingPhase === "idle" && !loading) {
1394
- expandedWidthRef.current = element.offsetWidth;
1395
- }
1396
- if (element && loadingPhase === "loading" && animatedWidth === void 0) {
1397
- setAnimatedWidth(element.offsetHeight);
1398
- }
1399
- }, [animatedWidth, loading, loadingPhase, children, leftIcon, rightIcon]);
1400
- React6.useEffect(() => {
1401
- return () => {
1402
- clearAnimationTimers();
1403
- };
1404
- }, [clearAnimationTimers]);
1405
- React6.useEffect(() => {
1406
- const element = buttonRef.current;
1407
- if (!element) {
1408
- return;
1409
- }
1410
- const previousLoading = previousLoadingRef.current;
1411
- previousLoadingRef.current = loading;
1412
- if (previousLoading === loading) {
1413
- return;
1414
- }
1415
- clearAnimationTimers();
1416
- if (loading) {
1417
- const currentWidth2 = element.offsetWidth;
1418
- const collapsedWidth = element.offsetHeight;
1419
- expandedWidthRef.current = currentWidth2;
1420
- setAnimatedWidth(currentWidth2);
1421
- setLoadingPhase("hiding-content");
1422
- timeoutsRef.current.push(
1423
- window.setTimeout(() => {
1424
- setLoadingPhase("collapsing");
1425
- setAnimatedWidth(collapsedWidth);
1426
- }, BUTTON_SEQUENCE_MS)
1427
- );
1428
- timeoutsRef.current.push(
1429
- window.setTimeout(() => {
1430
- setLoadingPhase("loading");
1431
- }, BUTTON_SEQUENCE_MS * 2)
1432
- );
1433
- return;
1434
- }
1435
- const currentWidth = element.offsetWidth;
1436
- const expandedWidth = expandedWidthRef.current ?? Math.max(element.scrollWidth, currentWidth);
1437
- setAnimatedWidth(currentWidth);
1438
- setLoadingPhase("hiding-spinner");
1439
- timeoutsRef.current.push(
1440
- window.setTimeout(() => {
1441
- setLoadingPhase("expanding");
1442
- frameRef.current = window.requestAnimationFrame(() => {
1443
- frameRef.current = window.requestAnimationFrame(() => {
1444
- setAnimatedWidth(expandedWidth);
1445
- });
1446
- });
1447
- }, BUTTON_SEQUENCE_MS)
1448
- );
1449
- timeoutsRef.current.push(
1450
- window.setTimeout(() => {
1451
- setLoadingPhase("revealing-content");
1452
- }, BUTTON_SEQUENCE_MS * 2)
1453
- );
1454
- timeoutsRef.current.push(
1455
- window.setTimeout(() => {
1456
- setLoadingPhase("idle");
1457
- setAnimatedWidth(void 0);
1458
- }, BUTTON_SEQUENCE_MS * 3)
1459
- );
1460
- }, [children, clearAnimationTimers, leftIcon, loading, rightIcon]);
1461
- const buttonContent = isLanguageButton ? null : isIconOnly ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: iconSlotClassName, children: iconOnlyNode }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(import_jsx_runtime7.Fragment, { children: [
1462
- leftIcon ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: iconSlotClassName, children: leftIcon }) : null,
1540
+ const buttonContent = isLanguageButton ? null : isIconOnly ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: iconSlotClassName, children: iconOnlyNode }) : /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(import_jsx_runtime8.Fragment, { children: [
1541
+ leftIcon ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: iconSlotClassName, children: leftIcon }) : null,
1463
1542
  hasChildren ? renderTextContent(children, {
1464
1543
  as: "span",
1465
1544
  className: "inline-flex items-center text-current",
@@ -1469,9 +1548,9 @@ var Button = React6.forwardRef(
1469
1548
  letterSpacing: "inherit"
1470
1549
  }
1471
1550
  }) : null,
1472
- rightIcon ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: iconSlotClassName, children: rightIcon }) : null
1551
+ rightIcon ? /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { className: iconSlotClassName, children: rightIcon }) : null
1473
1552
  ] });
1474
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
1553
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
1475
1554
  Component,
1476
1555
  {
1477
1556
  className: cn(
@@ -1492,41 +1571,16 @@ var Button = React6.forwardRef(
1492
1571
  style: { ...resolvedButtonStyle, width: resolvedWidthStyle },
1493
1572
  ...props,
1494
1573
  children: [
1495
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1496
- "span",
1574
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1575
+ ButtonRippleLayer,
1497
1576
  {
1498
- "aria-hidden": "true",
1499
- className: "pointer-events-none absolute inset-0 z-[1] overflow-hidden rounded-[inherit]",
1500
- children: ripples.map((ripple) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1501
- import_react.motion.span,
1502
- {
1503
- className: cn(
1504
- "absolute rounded-full will-change-transform transform-gpu",
1505
- resolvedRippleClassName
1506
- ),
1507
- initial: prefersReducedMotion ? { opacity: 0.32, scale: 0.72 } : { opacity: 0.56, scale: 0 },
1508
- animate: prefersReducedMotion ? { opacity: 0, scale: 1.02 } : { opacity: [0.56, 0.26, 0], scale: ripple.scale },
1509
- transition: prefersReducedMotion ? { duration: 0.2, ease: "linear" } : {
1510
- duration: 0.62,
1511
- times: [0, 0.35, 1],
1512
- ease: [0.16, 1, 0.3, 1]
1513
- },
1514
- style: {
1515
- height: ripple.size,
1516
- left: ripple.x,
1517
- top: ripple.y,
1518
- transformOrigin: "center center",
1519
- width: ripple.size
1520
- },
1521
- onAnimationComplete: () => {
1522
- handleRippleComplete(ripple.id);
1523
- }
1524
- },
1525
- ripple.id
1526
- ))
1577
+ onAnimationComplete: handleRippleComplete,
1578
+ prefersReducedMotion,
1579
+ rippleClassName,
1580
+ ripples
1527
1581
  }
1528
1582
  ),
1529
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1583
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1530
1584
  "span",
1531
1585
  {
1532
1586
  className: cn(
@@ -1536,7 +1590,7 @@ var Button = React6.forwardRef(
1536
1590
  children: buttonContent
1537
1591
  }
1538
1592
  ),
1539
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1593
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1540
1594
  "span",
1541
1595
  {
1542
1596
  "aria-hidden": "true",
@@ -1544,7 +1598,7 @@ var Button = React6.forwardRef(
1544
1598
  "pointer-events-none absolute inset-0 z-[2] flex items-center justify-center transition-opacity duration-sofya ease-sofya",
1545
1599
  showSpinner ? "opacity-100" : "opacity-0"
1546
1600
  ),
1547
- children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(ButtonSpinner, { size: resolvedSize })
1601
+ children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ButtonSpinner, { size: resolvedSize })
1548
1602
  }
1549
1603
  )
1550
1604
  ]
@@ -1555,9 +1609,9 @@ var Button = React6.forwardRef(
1555
1609
  Button.displayName = "Button";
1556
1610
 
1557
1611
  // src/components/surface.tsx
1558
- var React7 = __toESM(require("react"), 1);
1612
+ var React9 = __toESM(require("react"), 1);
1559
1613
  var import_react_slot2 = require("@radix-ui/react-slot");
1560
- var import_jsx_runtime8 = require("react/jsx-runtime");
1614
+ var import_jsx_runtime9 = require("react/jsx-runtime");
1561
1615
  var surfaceStyles = {
1562
1616
  card: {
1563
1617
  backgroundColor: "hsl(var(--sofya-surface-card-background))",
@@ -1589,7 +1643,7 @@ var surfaceStyles = {
1589
1643
  };
1590
1644
  function SurfaceComponent({ as, asChild = false, variant = "card", className, style, ...props }, ref) {
1591
1645
  const Component = asChild ? import_react_slot2.Slot : as ?? "div";
1592
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1646
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1593
1647
  Component,
1594
1648
  {
1595
1649
  ref,
@@ -1600,16 +1654,16 @@ function SurfaceComponent({ as, asChild = false, variant = "card", className, st
1600
1654
  }
1601
1655
  );
1602
1656
  }
1603
- var SurfaceBase = React7.forwardRef(SurfaceComponent);
1657
+ var SurfaceBase = React9.forwardRef(SurfaceComponent);
1604
1658
  SurfaceBase.displayName = "Surface";
1605
1659
  var Surface = SurfaceBase;
1606
1660
 
1607
1661
  // src/components/card.tsx
1608
- var import_jsx_runtime9 = require("react/jsx-runtime");
1662
+ var import_jsx_runtime10 = require("react/jsx-runtime");
1609
1663
  var cardVariants = ["card", "panel", "focus"];
1610
1664
  function Card({ className, variant = "card", ...props }) {
1611
1665
  const hasHoverShadow = variant === "card" || variant === "panel";
1612
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1666
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1613
1667
  Surface,
1614
1668
  {
1615
1669
  variant,
@@ -1623,10 +1677,10 @@ function Card({ className, variant = "card", ...props }) {
1623
1677
  );
1624
1678
  }
1625
1679
  function CardHeader({ className, ...props }) {
1626
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: cn("flex flex-col gap-2 p-6", className), ...props });
1680
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: cn("flex flex-col gap-2 p-6", className), ...props });
1627
1681
  }
1628
1682
  function CardTitle({ children, className, ...props }) {
1629
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
1683
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1630
1684
  "h3",
1631
1685
  {
1632
1686
  className: cn("text-card-foreground", className),
@@ -1644,27 +1698,49 @@ function CardDescription({
1644
1698
  className,
1645
1699
  ...props
1646
1700
  }) {
1647
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("p", { className: cn("text-muted-foreground", className), ...props, children: renderTextContent(children, {
1701
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("p", { className: cn("text-muted-foreground", className), ...props, children: renderTextContent(children, {
1648
1702
  as: "span",
1649
1703
  className: "block text-muted-foreground",
1650
1704
  size: "body"
1651
1705
  }) });
1652
1706
  }
1653
1707
  function CardContent({ children, className, ...props }) {
1654
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: cn("p-6 pt-0", className), ...props, children: renderTextContent(children, {
1708
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: cn("p-6 pt-0", className), ...props, children: renderTextContent(children, {
1655
1709
  as: "span"
1656
1710
  }) });
1657
1711
  }
1658
1712
  function CardFooter({ children, className, ...props }) {
1659
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: cn("flex items-center gap-4 p-6 pt-0", className), ...props, children: renderTextContent(children, {
1713
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: cn("flex items-center gap-4 p-6 pt-0", className), ...props, children: renderTextContent(children, {
1660
1714
  as: "span"
1661
1715
  }) });
1662
1716
  }
1663
1717
 
1664
1718
  // src/components/checkbox.tsx
1665
- var React8 = __toESM(require("react"), 1);
1666
- var import_jsx_runtime10 = require("react/jsx-runtime");
1667
- var Checkbox = React8.forwardRef(
1719
+ var React10 = __toESM(require("react"), 1);
1720
+ var import_icons_react3 = require("@tabler/icons-react");
1721
+
1722
+ // src/lib/selection-control-classes.ts
1723
+ var selectionControlContainerBaseClasses = "flex w-fit gap-4";
1724
+ var selectionControlContentBaseClasses = "grid gap-2";
1725
+ var selectionControlLabelTextBaseClasses = "text-[color:var(--sofya-text-default)] [&_a]:text-primary [&_a]:underline [&_a]:underline-offset-[3px]";
1726
+ var selectionControlDescriptionTextBaseClasses = "text-muted-foreground";
1727
+ 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";
1728
+ function selectionControlContainerClasses({
1729
+ alignClassName,
1730
+ className,
1731
+ disabled
1732
+ }) {
1733
+ return cn(
1734
+ selectionControlContainerBaseClasses,
1735
+ alignClassName,
1736
+ disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer",
1737
+ className
1738
+ );
1739
+ }
1740
+
1741
+ // src/components/checkbox.tsx
1742
+ var import_jsx_runtime11 = require("react/jsx-runtime");
1743
+ var Checkbox = React10.forwardRef(
1668
1744
  function Checkbox2({
1669
1745
  checked,
1670
1746
  className,
@@ -1677,23 +1753,21 @@ var Checkbox = React8.forwardRef(
1677
1753
  labelClassName,
1678
1754
  ...props
1679
1755
  }, ref) {
1680
- const generatedId = React8.useId();
1756
+ const generatedId = React10.useId();
1681
1757
  const resolvedId = id ?? generatedId;
1682
1758
  const descriptionId = description ? `${resolvedId}-description` : void 0;
1683
1759
  const alignClassName = description ? "items-start" : "items-center";
1684
- const indicatorOffsetClassName = "";
1685
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
1760
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
1686
1761
  "label",
1687
1762
  {
1688
1763
  htmlFor: resolvedId,
1689
- className: cn(
1690
- "flex w-fit gap-4",
1764
+ className: selectionControlContainerClasses({
1691
1765
  alignClassName,
1692
- disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer",
1693
- className
1694
- ),
1766
+ className,
1767
+ disabled
1768
+ }),
1695
1769
  children: [
1696
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1770
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1697
1771
  "input",
1698
1772
  {
1699
1773
  ref,
@@ -1707,41 +1781,24 @@ var Checkbox = React8.forwardRef(
1707
1781
  ...props
1708
1782
  }
1709
1783
  ),
1710
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1784
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1711
1785
  "span",
1712
1786
  {
1713
1787
  "aria-hidden": "true",
1714
1788
  className: cn(
1715
- "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",
1716
- indicatorOffsetClassName
1789
+ "inline-flex h-5 w-5 shrink-0 items-center justify-center rounded-[8px] text-transparent",
1790
+ selectionControlControlBaseClasses,
1791
+ "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"
1717
1792
  ),
1718
- children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1719
- "svg",
1720
- {
1721
- viewBox: "0 0 16 16",
1722
- fill: "none",
1723
- xmlns: "http://www.w3.org/2000/svg",
1724
- className: "h-4 w-4 shrink-0",
1725
- children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1726
- "path",
1727
- {
1728
- d: "M2.75 8.25L6.4 11.9L13.35 4.95",
1729
- stroke: "currentColor",
1730
- strokeWidth: "2.4",
1731
- strokeLinecap: "round",
1732
- strokeLinejoin: "round"
1733
- }
1734
- )
1735
- }
1736
- )
1793
+ children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_icons_react3.IconCheck, { "aria-hidden": "true", className: "h-4 w-4 shrink-0", stroke: 2.4 })
1737
1794
  }
1738
1795
  ),
1739
- label || description ? /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("span", { className: "grid gap-2", children: [
1740
- label ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1796
+ label || description ? /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("span", { className: selectionControlContentBaseClasses, children: [
1797
+ label ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1741
1798
  "span",
1742
1799
  {
1743
1800
  className: cn(
1744
- "text-[color:var(--sofya-text-default)] [&_a]:text-primary [&_a]:underline [&_a]:underline-offset-[3px]",
1801
+ selectionControlLabelTextBaseClasses,
1745
1802
  labelClassName
1746
1803
  ),
1747
1804
  children: renderTextContent(label, {
@@ -1751,11 +1808,14 @@ var Checkbox = React8.forwardRef(
1751
1808
  })
1752
1809
  }
1753
1810
  ) : null,
1754
- description ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1811
+ description ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1755
1812
  "span",
1756
1813
  {
1757
1814
  id: descriptionId,
1758
- className: cn("text-muted-foreground", descriptionClassName),
1815
+ className: cn(
1816
+ selectionControlDescriptionTextBaseClasses,
1817
+ descriptionClassName
1818
+ ),
1759
1819
  children: renderTextContent(description, {
1760
1820
  as: "span",
1761
1821
  className: "text-muted-foreground",
@@ -1772,17 +1832,41 @@ var Checkbox = React8.forwardRef(
1772
1832
  Checkbox.displayName = "Checkbox";
1773
1833
 
1774
1834
  // src/components/dropdown.tsx
1775
- var React9 = __toESM(require("react"), 1);
1835
+ var React12 = __toESM(require("react"), 1);
1776
1836
  var DropdownMenuPrimitive = __toESM(require("@radix-ui/react-dropdown-menu"), 1);
1777
- var import_jsx_runtime11 = require("react/jsx-runtime");
1778
- var dropdownVariantOptions = [
1779
- "card",
1780
- "panel",
1781
- "language",
1782
- "selected"
1783
- ];
1784
- var dropdownLanguageItems = [
1785
- { value: "en-US", label: "English", languageLocale: "en-US" },
1837
+
1838
+ // src/lib/use-controllable-state.ts
1839
+ var React11 = __toESM(require("react"), 1);
1840
+ function useControllableState({
1841
+ defaultValue,
1842
+ onChange,
1843
+ value
1844
+ }) {
1845
+ const isControlled = value !== void 0;
1846
+ const [uncontrolledValue, setUncontrolledValue] = React11.useState(defaultValue);
1847
+ const currentValue = isControlled ? value : uncontrolledValue;
1848
+ const setValue = React11.useCallback(
1849
+ (nextValue) => {
1850
+ if (!isControlled) {
1851
+ setUncontrolledValue(nextValue);
1852
+ }
1853
+ onChange?.(nextValue);
1854
+ },
1855
+ [isControlled, onChange]
1856
+ );
1857
+ return [currentValue, setValue, setUncontrolledValue];
1858
+ }
1859
+
1860
+ // src/components/dropdown.tsx
1861
+ var import_jsx_runtime12 = require("react/jsx-runtime");
1862
+ var dropdownVariantOptions = [
1863
+ "card",
1864
+ "panel",
1865
+ "language",
1866
+ "selected"
1867
+ ];
1868
+ var dropdownLanguageItems = [
1869
+ { value: "en-US", label: "English", languageLocale: "en-US" },
1786
1870
  { value: "pt-BR", label: "Portuguese", languageLocale: "pt-BR" },
1787
1871
  { value: "es-ES", label: "Spanish", languageLocale: "es-ES" }
1788
1872
  ];
@@ -1818,7 +1902,7 @@ function resolveItemLanguageLocale(item) {
1818
1902
  }
1819
1903
  function DefaultDropdownTriggerIcon({ variant }) {
1820
1904
  if (variant === "selected") {
1821
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1905
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1822
1906
  Icon,
1823
1907
  {
1824
1908
  name: "caret-down",
@@ -1826,16 +1910,16 @@ function DefaultDropdownTriggerIcon({ variant }) {
1826
1910
  }
1827
1911
  );
1828
1912
  }
1829
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "flex h-8 w-8 items-center justify-center rounded-[6px]", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Icon, { name: "caret-down", className: "!h-4 !w-4" }) });
1913
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "flex h-8 w-8 items-center justify-center rounded-[6px]", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Icon, { name: "caret-down", className: "!h-4 !w-4" }) });
1830
1914
  }
1831
1915
  function DefaultDropdownItemIndicator() {
1832
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Icon, { name: "check", size: 16 });
1916
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Icon, { name: "check", size: 16 });
1833
1917
  }
1834
1918
  function DefaultDropdownInlineCheck() {
1835
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Icon, { name: "check", size: 14 });
1919
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Icon, { name: "check", size: 14 });
1836
1920
  }
1837
1921
  function LanguageFlagIcon({ locale }) {
1838
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1922
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1839
1923
  "img",
1840
1924
  {
1841
1925
  alt: "",
@@ -1867,40 +1951,41 @@ function Dropdown({
1867
1951
  const isLanguageVariant = variant === "language";
1868
1952
  const isSelectedVariant = variant === "selected";
1869
1953
  const usesDefaultListStyle = !isLanguageVariant;
1870
- const resolvedItems = React9.useMemo(
1954
+ const resolvedItems = React12.useMemo(
1871
1955
  () => isLanguageVariant ? items && items.length > 0 ? items : dropdownLanguageItems : items ?? [],
1872
1956
  [isLanguageVariant, items]
1873
1957
  );
1874
1958
  const defaultUncontrolledValue = defaultValue ?? (isLanguageVariant ? resolvedItems[0]?.value : void 0);
1875
- const [internalValue, setInternalValue] = React9.useState(
1876
- defaultUncontrolledValue
1877
- );
1878
- const selectedValue = value ?? internalValue;
1959
+ const [selectedValue, setSelectedValue, setUncontrolledSelectedValue] = useControllableState({
1960
+ defaultValue: defaultUncontrolledValue,
1961
+ onChange: onValueChange,
1962
+ value
1963
+ });
1879
1964
  const radioValue = selectedValue ?? "";
1880
1965
  const selectedItem = resolvedItems.find(
1881
1966
  (item) => item.value === selectedValue
1882
1967
  );
1883
1968
  const hasSelectedItem = selectedItem !== void 0;
1884
1969
  const selectedLanguageLocale = resolveItemLanguageLocale(selectedItem);
1885
- React9.useEffect(() => {
1970
+ React12.useEffect(() => {
1886
1971
  if (value !== void 0) {
1887
1972
  return;
1888
1973
  }
1889
- const currentValueIsAvailable = internalValue !== void 0 && resolvedItems.some((item) => item.value === internalValue);
1974
+ const currentValueIsAvailable = selectedValue !== void 0 && resolvedItems.some((item) => item.value === selectedValue);
1890
1975
  if (!currentValueIsAvailable && defaultUncontrolledValue !== void 0) {
1891
- setInternalValue(defaultUncontrolledValue);
1976
+ setUncontrolledSelectedValue(defaultUncontrolledValue);
1892
1977
  }
1893
- }, [defaultUncontrolledValue, internalValue, resolvedItems, value]);
1894
- const resolvedTriggerIcon = isLanguageVariant ? void 0 : triggerIcon === void 0 ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DefaultDropdownTriggerIcon, { variant }) : triggerIcon;
1978
+ }, [
1979
+ defaultUncontrolledValue,
1980
+ resolvedItems,
1981
+ selectedValue,
1982
+ setUncontrolledSelectedValue,
1983
+ value
1984
+ ]);
1985
+ const resolvedTriggerIcon = isLanguageVariant ? void 0 : triggerIcon === void 0 ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DefaultDropdownTriggerIcon, { variant }) : triggerIcon;
1895
1986
  const triggerLabel = selectedItem?.triggerLabel ?? selectedItem?.label ?? placeholder;
1896
1987
  const selectedTriggerToneClassName = isSelectedVariant ? hasSelectedItem ? "text-foreground" : "text-[color:var(--sofya-text-soft)]" : void 0;
1897
- function handleValueChange(nextValue) {
1898
- if (value === void 0) {
1899
- setInternalValue(nextValue);
1900
- }
1901
- onValueChange?.(nextValue);
1902
- }
1903
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
1988
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
1904
1989
  DropdownMenuPrimitive.Root,
1905
1990
  {
1906
1991
  defaultOpen,
@@ -1908,7 +1993,7 @@ function Dropdown({
1908
1993
  onOpenChange,
1909
1994
  open,
1910
1995
  children: [
1911
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DropdownMenuPrimitive.Trigger, { asChild: true, disabled, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1996
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DropdownMenuPrimitive.Trigger, { asChild: true, disabled, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1912
1997
  Button,
1913
1998
  {
1914
1999
  type: "button",
@@ -1921,14 +2006,14 @@ function Dropdown({
1921
2006
  triggerClassName
1922
2007
  ),
1923
2008
  rightIcon: resolvedTriggerIcon,
1924
- children: isLanguageVariant ? null : /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "min-w-0 truncate", children: renderTextContent(triggerLabel, {
2009
+ children: isLanguageVariant ? null : /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "min-w-0 truncate", children: renderTextContent(triggerLabel, {
1925
2010
  as: "span",
1926
2011
  className: "block min-w-0 truncate text-inherit",
1927
2012
  size: "body"
1928
2013
  }) })
1929
2014
  }
1930
2015
  ) }),
1931
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
2016
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1932
2017
  DropdownMenuPrimitive.Content,
1933
2018
  {
1934
2019
  align,
@@ -1938,18 +2023,18 @@ function Dropdown({
1938
2023
  dropdownContentClasses[variant],
1939
2024
  contentClassName
1940
2025
  ),
1941
- children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
2026
+ children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1942
2027
  DropdownMenuPrimitive.RadioGroup,
1943
2028
  {
1944
2029
  value: radioValue,
1945
- onValueChange: handleValueChange,
2030
+ onValueChange: setSelectedValue,
1946
2031
  className: "grid gap-2",
1947
2032
  children: resolvedItems.map((item) => {
1948
2033
  const isSelected = item.value === selectedValue;
1949
2034
  const itemLanguageLocale = resolveItemLanguageLocale(item);
1950
- const indicator = item.indicator ?? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DefaultDropdownItemIndicator, {});
1951
- const itemIcon = item.icon ?? (variant === "language" && itemLanguageLocale ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(LanguageFlagIcon, { locale: itemLanguageLocale }) : null);
1952
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
2035
+ const indicator = item.indicator ?? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DefaultDropdownItemIndicator, {});
2036
+ const itemIcon = item.icon ?? (variant === "language" && itemLanguageLocale ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(LanguageFlagIcon, { locale: itemLanguageLocale }) : null);
2037
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1953
2038
  DropdownMenuPrimitive.RadioItem,
1954
2039
  {
1955
2040
  value: item.value,
@@ -1960,7 +2045,7 @@ function Dropdown({
1960
2045
  dropdownItemClasses[variant],
1961
2046
  itemClassName
1962
2047
  ),
1963
- children: usesDefaultListStyle ? /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
2048
+ children: usesDefaultListStyle ? /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
1964
2049
  "span",
1965
2050
  {
1966
2051
  "data-dropdown-item-body": true,
@@ -1969,32 +2054,32 @@ function Dropdown({
1969
2054
  isSelected ? "bg-[color:var(--sofya-surface-selected)]" : "bg-transparent"
1970
2055
  ),
1971
2056
  children: [
1972
- itemIcon ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "flex shrink-0 items-center justify-center", children: itemIcon }) : null,
1973
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "truncate", children: renderTextContent(item.label, {
2057
+ itemIcon ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "flex shrink-0 items-center justify-center", children: itemIcon }) : null,
2058
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "truncate", children: renderTextContent(item.label, {
1974
2059
  as: "span",
1975
2060
  className: "block truncate text-inherit",
1976
2061
  size: "body"
1977
2062
  }) }),
1978
- isSelected ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
2063
+ isSelected ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1979
2064
  "span",
1980
2065
  {
1981
2066
  "aria-hidden": "true",
1982
2067
  className: "flex h-[14px] w-[14px] shrink-0 items-center justify-center",
1983
- children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(DefaultDropdownInlineCheck, {})
2068
+ children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DefaultDropdownInlineCheck, {})
1984
2069
  }
1985
2070
  ) : null
1986
2071
  ]
1987
2072
  }
1988
- ) : /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
1989
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("span", { className: "flex min-w-0 flex-1 items-center gap-2", children: [
1990
- itemIcon ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "flex shrink-0 items-center justify-center", children: itemIcon }) : null,
1991
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "truncate", children: renderTextContent(item.label, {
2073
+ ) : /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
2074
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("span", { className: "flex min-w-0 flex-1 items-center gap-2", children: [
2075
+ itemIcon ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "flex shrink-0 items-center justify-center", children: itemIcon }) : null,
2076
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "truncate", children: renderTextContent(item.label, {
1992
2077
  as: "span",
1993
2078
  className: "block truncate text-inherit",
1994
2079
  size: "body"
1995
2080
  }) })
1996
2081
  ] }),
1997
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
2082
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1998
2083
  "span",
1999
2084
  {
2000
2085
  "aria-hidden": "true",
@@ -2021,14 +2106,14 @@ function Dropdown({
2021
2106
  }
2022
2107
 
2023
2108
  // src/components/dialog.tsx
2024
- var React10 = __toESM(require("react"), 1);
2109
+ var React13 = __toESM(require("react"), 1);
2025
2110
  var DialogPrimitive = __toESM(require("@radix-ui/react-dialog"), 1);
2026
- var import_jsx_runtime12 = require("react/jsx-runtime");
2111
+ var import_jsx_runtime13 = require("react/jsx-runtime");
2027
2112
  var Dialog = DialogPrimitive.Root;
2028
2113
  var DialogTrigger = DialogPrimitive.Trigger;
2029
2114
  var DialogPortal = DialogPrimitive.Portal;
2030
2115
  var DialogClose = DialogPrimitive.Close;
2031
- var DialogOverlay = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2116
+ var DialogOverlay = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
2032
2117
  DialogPrimitive.Overlay,
2033
2118
  {
2034
2119
  ref,
@@ -2040,7 +2125,7 @@ var DialogOverlay = React10.forwardRef(({ className, ...props }, ref) => /* @__P
2040
2125
  }
2041
2126
  ));
2042
2127
  DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
2043
- var DialogContent = React10.forwardRef(
2128
+ var DialogContent = React13.forwardRef(
2044
2129
  ({
2045
2130
  className,
2046
2131
  children,
@@ -2053,9 +2138,9 @@ var DialogContent = React10.forwardRef(
2053
2138
  const dialogCardStyle = {
2054
2139
  "--sofya-surface-shadow-override": "var(--sofya-shadow-lg)"
2055
2140
  };
2056
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(DialogPortal, { children: [
2057
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DialogOverlay, { className: overlayClassName }),
2058
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "sofya-dialog-positioner fixed inset-0 z-50 flex items-center justify-center p-4", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2141
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(DialogPortal, { children: [
2142
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(DialogOverlay, { className: overlayClassName }),
2143
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "sofya-dialog-positioner fixed inset-0 z-50 flex items-center justify-center p-4", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
2059
2144
  DialogPrimitive.Content,
2060
2145
  {
2061
2146
  ref,
@@ -2064,7 +2149,7 @@ var DialogContent = React10.forwardRef(
2064
2149
  className
2065
2150
  ),
2066
2151
  ...props,
2067
- children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
2152
+ children: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
2068
2153
  Card,
2069
2154
  {
2070
2155
  variant: cardVariant,
@@ -2075,14 +2160,14 @@ var DialogContent = React10.forwardRef(
2075
2160
  style: dialogCardStyle,
2076
2161
  children: [
2077
2162
  children,
2078
- showCloseButton ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2163
+ showCloseButton ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
2079
2164
  Button,
2080
2165
  {
2081
2166
  type: "button",
2082
2167
  variant: "ghost",
2083
2168
  size: "icon",
2084
2169
  "aria-label": "Close",
2085
- leftIcon: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Icon, { name: "x", size: 18 }),
2170
+ leftIcon: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Icon, { name: "x", size: 18 }),
2086
2171
  className: "absolute right-4 top-4 z-10 text-muted-foreground hover:text-foreground"
2087
2172
  }
2088
2173
  ) }) : null
@@ -2096,10 +2181,10 @@ var DialogContent = React10.forwardRef(
2096
2181
  );
2097
2182
  DialogContent.displayName = DialogPrimitive.Content.displayName;
2098
2183
  function DialogHeader({ className, ...props }) {
2099
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: cn("grid gap-2 px-6 pt-6 pr-16 text-left", className), ...props });
2184
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: cn("grid gap-2 px-6 pt-6 pr-16 text-left", className), ...props });
2100
2185
  }
2101
2186
  function DialogFooter({ className, ...props }) {
2102
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2187
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
2103
2188
  "div",
2104
2189
  {
2105
2190
  className: cn(
@@ -2110,11 +2195,11 @@ function DialogFooter({ className, ...props }) {
2110
2195
  }
2111
2196
  );
2112
2197
  }
2113
- var DialogCancel = React10.forwardRef(
2114
- ({ type = "button", variant = "outline", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Button, { ref, type, variant, ...props }) })
2198
+ var DialogCancel = React13.forwardRef(
2199
+ ({ type = "button", variant = "outline", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(DialogPrimitive.Close, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Button, { ref, type, variant, ...props }) })
2115
2200
  );
2116
2201
  DialogCancel.displayName = "DialogCancel";
2117
- var DialogTitle = React10.forwardRef(({ children, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2202
+ var DialogTitle = React13.forwardRef(({ children, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
2118
2203
  DialogPrimitive.Title,
2119
2204
  {
2120
2205
  ref,
@@ -2128,7 +2213,7 @@ var DialogTitle = React10.forwardRef(({ children, className, ...props }, ref) =>
2128
2213
  }
2129
2214
  ));
2130
2215
  DialogTitle.displayName = DialogPrimitive.Title.displayName;
2131
- var DialogDescription = React10.forwardRef(({ children, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2216
+ var DialogDescription = React13.forwardRef(({ children, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
2132
2217
  DialogPrimitive.Description,
2133
2218
  {
2134
2219
  ref,
@@ -2144,9 +2229,9 @@ var DialogDescription = React10.forwardRef(({ children, className, ...props }, r
2144
2229
  DialogDescription.displayName = DialogPrimitive.Description.displayName;
2145
2230
 
2146
2231
  // src/components/empty.tsx
2147
- var React11 = __toESM(require("react"), 1);
2232
+ var React14 = __toESM(require("react"), 1);
2148
2233
  var import_class_variance_authority5 = require("class-variance-authority");
2149
- var import_jsx_runtime13 = require("react/jsx-runtime");
2234
+ var import_jsx_runtime14 = require("react/jsx-runtime");
2150
2235
  var emptyMediaVariantOptions = ["default", "icon"];
2151
2236
  var emptyMediaVariants = (0, import_class_variance_authority5.cva)(
2152
2237
  "inline-flex shrink-0 items-center justify-center transition-[background-color,border-color,color,box-shadow] duration-sofya ease-sofya",
@@ -2162,11 +2247,11 @@ var emptyMediaVariants = (0, import_class_variance_authority5.cva)(
2162
2247
  }
2163
2248
  }
2164
2249
  );
2165
- var EmptyMedia = React11.forwardRef(function EmptyMedia2({ className, variant, ...props }, ref) {
2166
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { ref, className: cn(emptyMediaVariants({ variant }), className), ...props });
2250
+ var EmptyMedia = React14.forwardRef(function EmptyMedia2({ className, variant, ...props }, ref) {
2251
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { ref, className: cn(emptyMediaVariants({ variant }), className), ...props });
2167
2252
  });
2168
2253
  function EmptyHeader({ className, ...props }) {
2169
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
2254
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2170
2255
  "div",
2171
2256
  {
2172
2257
  className: cn("flex max-w-[34rem] flex-col items-center gap-4 text-center", className),
@@ -2175,7 +2260,7 @@ function EmptyHeader({ className, ...props }) {
2175
2260
  );
2176
2261
  }
2177
2262
  function EmptyTitle({ children, className, ...props }) {
2178
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
2263
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2179
2264
  "h2",
2180
2265
  {
2181
2266
  className: cn("text-foreground", className),
@@ -2193,7 +2278,7 @@ function EmptyDescription({
2193
2278
  className,
2194
2279
  ...props
2195
2280
  }) {
2196
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
2281
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2197
2282
  "p",
2198
2283
  {
2199
2284
  className: cn("max-w-full text-muted-foreground whitespace-nowrap", className),
@@ -2207,7 +2292,7 @@ function EmptyDescription({
2207
2292
  );
2208
2293
  }
2209
2294
  function EmptyContent({ children, className, ...props }) {
2210
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
2295
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2211
2296
  "div",
2212
2297
  {
2213
2298
  className: cn("flex flex-wrap items-center justify-center gap-4 text-center", className),
@@ -2218,9 +2303,9 @@ function EmptyContent({ children, className, ...props }) {
2218
2303
  }
2219
2304
  );
2220
2305
  }
2221
- var Empty = React11.forwardRef(function Empty2({ children, className, content, description, media, title, ...props }, ref) {
2222
- const hasCustomChildren = React11.Children.count(children) > 0;
2223
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
2306
+ var Empty = React14.forwardRef(function Empty2({ children, className, content, description, media, title, ...props }, ref) {
2307
+ const hasCustomChildren = React14.Children.count(children) > 0;
2308
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2224
2309
  "div",
2225
2310
  {
2226
2311
  ref,
@@ -2229,13 +2314,13 @@ var Empty = React11.forwardRef(function Empty2({ children, className, content, d
2229
2314
  className
2230
2315
  ),
2231
2316
  ...props,
2232
- children: hasCustomChildren ? children : /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
2233
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(EmptyHeader, { children: [
2234
- media ?? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(EmptyMedia, { variant: "icon", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Icon, { name: "folders", size: 28 }) }),
2235
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(EmptyTitle, { children: title ?? "Nada por aqui" }),
2236
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(EmptyDescription, { children: description ?? "Quando houver conte\xFAdo dispon\xEDvel, ele aparecer\xE1 aqui." })
2317
+ children: hasCustomChildren ? children : /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(import_jsx_runtime14.Fragment, { children: [
2318
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(EmptyHeader, { children: [
2319
+ media ?? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(EmptyMedia, { variant: "icon", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Icon, { name: "folders", size: 28 }) }),
2320
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(EmptyTitle, { children: title ?? "Nada por aqui" }),
2321
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(EmptyDescription, { children: description ?? "Quando houver conte\xFAdo dispon\xEDvel, ele aparecer\xE1 aqui." })
2237
2322
  ] }),
2238
- content !== void 0 && content !== null ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(EmptyContent, { children: content }) : null
2323
+ content !== void 0 && content !== null ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(EmptyContent, { children: content }) : null
2239
2324
  ] })
2240
2325
  }
2241
2326
  );
@@ -2248,104 +2333,73 @@ EmptyDescription.displayName = "EmptyDescription";
2248
2333
  EmptyContent.displayName = "EmptyContent";
2249
2334
 
2250
2335
  // src/components/input.tsx
2251
- var React13 = __toESM(require("react"), 1);
2336
+ var React17 = __toESM(require("react"), 1);
2252
2337
  var import_input_otp2 = require("input-otp");
2253
- var import_react2 = require("motion/react");
2254
2338
 
2255
- // src/components/input-otp.tsx
2256
- var React12 = __toESM(require("react"), 1);
2257
- var import_input_otp = require("input-otp");
2258
- var import_jsx_runtime14 = require("react/jsx-runtime");
2259
- var InputOTP = React12.forwardRef(({ className, containerClassName, ...props }, ref) => {
2260
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2261
- import_input_otp.OTPInput,
2262
- {
2263
- ref,
2264
- containerClassName: cn(
2265
- "flex items-center gap-4 has-[:disabled]:opacity-50",
2266
- containerClassName
2267
- ),
2268
- className: cn("disabled:cursor-not-allowed", className),
2269
- ...props
2270
- }
2271
- );
2272
- });
2273
- InputOTP.displayName = "InputOTP";
2274
- var InputOTPGroup = React12.forwardRef(({ className, ...props }, ref) => {
2275
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2276
- "div",
2339
+ // src/lib/field-shell.tsx
2340
+ var import_jsx_runtime15 = require("react/jsx-runtime");
2341
+ function FieldLabel({
2342
+ children,
2343
+ className,
2344
+ htmlFor,
2345
+ textClassName = "block text-[color:var(--sofya-text-default)]",
2346
+ textSize = "body",
2347
+ textStyle = {
2348
+ fontWeight: 500
2349
+ }
2350
+ }) {
2351
+ if (!children) {
2352
+ return null;
2353
+ }
2354
+ const Component = htmlFor ? "label" : "div";
2355
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2356
+ Component,
2277
2357
  {
2278
- ref,
2279
- className: cn(
2280
- "flex overflow-hidden rounded-[12px] border border-[color:var(--sofya-border-hover)] bg-card",
2281
- className
2282
- ),
2283
- ...props
2358
+ className: cn("text-[color:var(--sofya-text-default)]", className),
2359
+ htmlFor,
2360
+ children: renderTextContent(children, {
2361
+ as: "span",
2362
+ className: textClassName,
2363
+ size: textSize,
2364
+ style: textStyle
2365
+ })
2284
2366
  }
2285
2367
  );
2286
- });
2287
- InputOTPGroup.displayName = "InputOTPGroup";
2288
- var InputOTPSlot = React12.forwardRef(
2289
- ({ className, index, ...props }, ref) => {
2290
- const otpContext = React12.useContext(import_input_otp.OTPInputContext);
2291
- const slot = otpContext.slots[index];
2292
- if (!slot) {
2293
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2294
- "div",
2295
- {
2296
- ref,
2297
- className: cn(
2298
- "relative flex h-[92px] w-[96px] items-center justify-center border-r border-[color:var(--sofya-border-strong)] bg-card last:border-r-0",
2299
- className
2300
- ),
2301
- ...props
2302
- }
2303
- );
2304
- }
2305
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
2306
- "div",
2368
+ }
2369
+ function FieldShell({
2370
+ containerClassName,
2371
+ control,
2372
+ label,
2373
+ labelClassName,
2374
+ labelHtmlFor,
2375
+ labelTextClassName,
2376
+ labelTextSize,
2377
+ labelTextStyle
2378
+ }) {
2379
+ if (!label && !containerClassName) {
2380
+ return control;
2381
+ }
2382
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: cn("grid w-full gap-2", containerClassName), children: [
2383
+ label ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2384
+ FieldLabel,
2307
2385
  {
2308
- ref,
2309
- className: cn(
2310
- "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",
2311
- 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)]",
2312
- className
2313
- ),
2314
- ...props,
2315
- children: [
2316
- slot.char ?? null,
2317
- slot.hasFakeCaret ? /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "h-10 w-[2px] animate-pulse rounded-full bg-primary shadow-[var(--sofya-shadow-caret-glow)]" }) }) : null
2318
- ]
2386
+ className: labelClassName,
2387
+ htmlFor: labelHtmlFor,
2388
+ textClassName: labelTextClassName,
2389
+ textSize: labelTextSize,
2390
+ textStyle: labelTextStyle,
2391
+ children: label
2319
2392
  }
2320
- );
2321
- }
2322
- );
2323
- InputOTPSlot.displayName = "InputOTPSlot";
2324
- var InputOTPSeparator = React12.forwardRef(({ className, ...props }, ref) => {
2325
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
2326
- "div",
2327
- {
2328
- ref,
2329
- role: "separator",
2330
- className: cn(
2331
- "flex items-center justify-center px-2 text-[28px] leading-none text-[color:var(--sofya-text-soft)]",
2332
- className
2333
- ),
2334
- ...props,
2335
- children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { "aria-hidden": "true", children: "." })
2336
- }
2337
- );
2338
- });
2339
- InputOTPSeparator.displayName = "InputOTPSeparator";
2393
+ ) : null,
2394
+ control
2395
+ ] });
2396
+ }
2340
2397
 
2341
- // src/components/input.tsx
2342
- var import_jsx_runtime15 = require("react/jsx-runtime");
2343
- var inputVariantOptions = [
2344
- "default",
2345
- "search",
2346
- "otp",
2347
- "upload"
2348
- ];
2398
+ // src/components/input-upload.tsx
2399
+ var React15 = __toESM(require("react"), 1);
2400
+ var import_icons_react4 = require("@tabler/icons-react");
2401
+ var import_react2 = require("motion/react");
2402
+ var import_jsx_runtime16 = require("react/jsx-runtime");
2349
2403
  var uploadKindOptions = ["document", "image", "video"];
2350
2404
  var uploadAcceptByKind = {
2351
2405
  document: ".pdf,.doc,.docx,.txt,.rtf,.odt,.jpg,.jpeg,.png,.webp,.gif",
@@ -2392,7 +2446,7 @@ function mergeUploadFiles(currentFiles, nextFiles, multiple) {
2392
2446
  return Array.from(filesBySignature.values());
2393
2447
  }
2394
2448
  var uploadListItemTransition = {
2395
- duration: 0.2,
2449
+ duration: 0.18,
2396
2450
  ease: [0.22, 1, 0.36, 1]
2397
2451
  };
2398
2452
  function formatUploadFileSize(bytes) {
@@ -2438,96 +2492,12 @@ function resolveUploadFileVisualKind(file, fallbackKind) {
2438
2492
  }
2439
2493
  return "document";
2440
2494
  }
2441
- function InputShell({
2442
- containerClassName,
2443
- control,
2444
- label,
2445
- labelClassName,
2446
- resolvedId
2447
- }) {
2448
- if (!label && !containerClassName) {
2449
- return control;
2450
- }
2451
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: cn("grid w-full gap-2", containerClassName), children: [
2452
- label ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2453
- "label",
2454
- {
2455
- className: cn(
2456
- "text-[color:var(--sofya-text-default)]",
2457
- labelClassName
2458
- ),
2459
- htmlFor: resolvedId,
2460
- children: renderTextContent(label, {
2461
- as: "span",
2462
- className: "block text-[color:var(--sofya-text-default)]",
2463
- size: "body",
2464
- style: {
2465
- fontWeight: 500
2466
- }
2467
- })
2468
- }
2469
- ) : null,
2470
- control
2471
- ] });
2472
- }
2473
- function UploadInputShell({
2474
- containerClassName,
2475
- control,
2476
- label,
2477
- labelClassName,
2478
- optionalLabel
2479
- }) {
2480
- if (!label && !optionalLabel && !containerClassName) {
2481
- return control;
2482
- }
2483
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: cn("grid w-full gap-2", containerClassName), children: [
2484
- label || optionalLabel ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
2485
- "div",
2486
- {
2487
- className: cn(
2488
- "text-[color:var(--sofya-text-default)]",
2489
- labelClassName
2490
- ),
2491
- children: [
2492
- renderTextContent(label, {
2493
- as: "span",
2494
- className: "text-[color:var(--sofya-text-default)]",
2495
- size: "body",
2496
- style: {
2497
- fontWeight: 700
2498
- }
2499
- }),
2500
- optionalLabel ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "ml-2 text-[color:var(--sofya-text-subtle)]", children: renderTextContent(optionalLabel, {
2501
- as: "span",
2502
- className: "text-[color:var(--sofya-text-subtle)]",
2503
- size: "tiny"
2504
- }) }) : null
2505
- ]
2506
- }
2507
- ) : null,
2508
- control
2509
- ] });
2510
- }
2511
2495
  function UploadGlyph({ className }) {
2512
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2513
- "svg",
2496
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2497
+ import_icons_react4.IconUpload,
2514
2498
  {
2515
2499
  "aria-hidden": "true",
2516
- className: cn("inline-block shrink-0 align-middle", className),
2517
- fill: "none",
2518
- focusable: "false",
2519
- viewBox: "0 0 20 20",
2520
- xmlns: "http://www.w3.org/2000/svg",
2521
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2522
- "path",
2523
- {
2524
- 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",
2525
- stroke: "currentColor",
2526
- strokeLinecap: "round",
2527
- strokeLinejoin: "round",
2528
- strokeWidth: "2"
2529
- }
2530
- )
2500
+ className: cn("inline-block shrink-0 align-middle", className)
2531
2501
  }
2532
2502
  );
2533
2503
  }
@@ -2536,120 +2506,32 @@ function UploadFileTypeGlyph({
2536
2506
  kind
2537
2507
  }) {
2538
2508
  if (kind === "image") {
2539
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
2540
- "svg",
2509
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2510
+ import_icons_react4.IconPhoto,
2541
2511
  {
2542
2512
  "aria-hidden": "true",
2543
- className: cn("inline-block shrink-0 align-middle", className),
2544
- fill: "none",
2545
- focusable: "false",
2546
- viewBox: "0 0 18 18",
2547
- xmlns: "http://www.w3.org/2000/svg",
2548
- children: [
2549
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2550
- "rect",
2551
- {
2552
- x: "2.5",
2553
- y: "3",
2554
- width: "13",
2555
- height: "12",
2556
- rx: "2.5",
2557
- stroke: "currentColor",
2558
- strokeWidth: "1.5"
2559
- }
2560
- ),
2561
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("circle", { cx: "6.75", cy: "7.25", r: "1.25", fill: "currentColor" }),
2562
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2563
- "path",
2564
- {
2565
- 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",
2566
- stroke: "currentColor",
2567
- strokeLinecap: "round",
2568
- strokeLinejoin: "round",
2569
- strokeWidth: "1.5"
2570
- }
2571
- )
2572
- ]
2513
+ className: cn("inline-block shrink-0 align-middle", className)
2573
2514
  }
2574
2515
  );
2575
2516
  }
2576
2517
  if (kind === "video") {
2577
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
2578
- "svg",
2518
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2519
+ import_icons_react4.IconVideo,
2579
2520
  {
2580
2521
  "aria-hidden": "true",
2581
- className: cn("inline-block shrink-0 align-middle", className),
2582
- fill: "none",
2583
- focusable: "false",
2584
- viewBox: "0 0 18 18",
2585
- xmlns: "http://www.w3.org/2000/svg",
2586
- children: [
2587
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2588
- "rect",
2589
- {
2590
- x: "2.5",
2591
- y: "4",
2592
- width: "13",
2593
- height: "10",
2594
- rx: "2.5",
2595
- stroke: "currentColor",
2596
- strokeWidth: "1.5"
2597
- }
2598
- ),
2599
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2600
- "path",
2601
- {
2602
- 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",
2603
- fill: "currentColor"
2604
- }
2605
- )
2606
- ]
2522
+ className: cn("inline-block shrink-0 align-middle", className)
2607
2523
  }
2608
2524
  );
2609
2525
  }
2610
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
2611
- "svg",
2526
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2527
+ import_icons_react4.IconFileText,
2612
2528
  {
2613
2529
  "aria-hidden": "true",
2614
- className: cn("inline-block shrink-0 align-middle", className),
2615
- fill: "none",
2616
- focusable: "false",
2617
- viewBox: "0 0 18 18",
2618
- xmlns: "http://www.w3.org/2000/svg",
2619
- children: [
2620
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2621
- "path",
2622
- {
2623
- 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",
2624
- stroke: "currentColor",
2625
- strokeLinejoin: "round",
2626
- strokeWidth: "1.5"
2627
- }
2628
- ),
2629
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2630
- "path",
2631
- {
2632
- d: "M7.5 2.25V4.25C7.5 5.35457 8.39543 6.25 9.5 6.25H11.5",
2633
- stroke: "currentColor",
2634
- strokeLinecap: "round",
2635
- strokeLinejoin: "round",
2636
- strokeWidth: "1.5"
2637
- }
2638
- ),
2639
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2640
- "path",
2641
- {
2642
- d: "M6 10H12M6 12.5H10",
2643
- stroke: "currentColor",
2644
- strokeLinecap: "round",
2645
- strokeWidth: "1.5"
2646
- }
2647
- )
2648
- ]
2530
+ className: cn("inline-block shrink-0 align-middle", className)
2649
2531
  }
2650
2532
  );
2651
2533
  }
2652
- var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2534
+ var UploadInputControl = React15.forwardRef(function UploadInputControl2({
2653
2535
  accept,
2654
2536
  "aria-label": ariaLabel,
2655
2537
  className,
@@ -2663,17 +2545,17 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2663
2545
  resolvedId,
2664
2546
  ...uploadProps
2665
2547
  }, ref) {
2666
- const inputRef = React13.useRef(null);
2667
- const [isDragActive, setIsDragActive] = React13.useState(false);
2668
- const [selectedFiles, setSelectedFiles] = React13.useState([]);
2548
+ const inputRef = React15.useRef(null);
2549
+ const [isDragActive, setIsDragActive] = React15.useState(false);
2550
+ const [selectedFiles, setSelectedFiles] = React15.useState([]);
2669
2551
  const resolvedMultiple = multiple ?? true;
2670
2552
  const prefersReducedMotion = (0, import_react2.useReducedMotion)();
2671
- React13.useImperativeHandle(ref, () => inputRef.current);
2553
+ React15.useImperativeHandle(ref, () => inputRef.current);
2672
2554
  const resolvedAccept = accept ?? uploadAcceptByKind[uploadKind];
2673
2555
  const resolvedAriaLabel = ariaLabel ?? uploadAriaLabelByKind[uploadKind];
2674
2556
  const resolvedTitle = uploadTitle ?? "Arraste arquivos aqui ou clique para selecionar";
2675
2557
  const resolvedDescription = uploadDescription ?? uploadDescriptionByKind[uploadKind];
2676
- const syncSelectedFiles = React13.useCallback(
2558
+ const syncSelectedFiles = React15.useCallback(
2677
2559
  (files) => {
2678
2560
  const normalizedFiles = resolvedMultiple ? files : files.slice(0, 1);
2679
2561
  setSelectedFiles(normalizedFiles);
@@ -2681,7 +2563,7 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2681
2563
  },
2682
2564
  [onFilesChange, resolvedMultiple]
2683
2565
  );
2684
- const applyFilesToInput = React13.useCallback((files) => {
2566
+ const applyFilesToInput = React15.useCallback((files) => {
2685
2567
  const inputElement = inputRef.current;
2686
2568
  if (!inputElement || typeof DataTransfer === "undefined") {
2687
2569
  return false;
@@ -2700,7 +2582,7 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2700
2582
  return false;
2701
2583
  }
2702
2584
  }, []);
2703
- const handleInputChange = React13.useCallback(
2585
+ const handleInputChange = React15.useCallback(
2704
2586
  (event) => {
2705
2587
  const nextFiles = mergeUploadFiles(
2706
2588
  selectedFiles,
@@ -2719,12 +2601,12 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2719
2601
  syncSelectedFiles
2720
2602
  ]
2721
2603
  );
2722
- const openPicker = React13.useCallback(() => {
2604
+ const openPicker = React15.useCallback(() => {
2723
2605
  if (!disabled) {
2724
2606
  inputRef.current?.click();
2725
2607
  }
2726
2608
  }, [disabled]);
2727
- const handleKeyDown = React13.useCallback(
2609
+ const handleKeyDown = React15.useCallback(
2728
2610
  (event) => {
2729
2611
  if (disabled) {
2730
2612
  return;
@@ -2736,7 +2618,7 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2736
2618
  },
2737
2619
  [disabled, openPicker]
2738
2620
  );
2739
- const handleDragEnter = React13.useCallback(
2621
+ const handleDragEnter = React15.useCallback(
2740
2622
  (event) => {
2741
2623
  event.preventDefault();
2742
2624
  if (!disabled) {
@@ -2745,7 +2627,7 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2745
2627
  },
2746
2628
  [disabled]
2747
2629
  );
2748
- const handleDragLeave = React13.useCallback(
2630
+ const handleDragLeave = React15.useCallback(
2749
2631
  (event) => {
2750
2632
  if (disabled) {
2751
2633
  return;
@@ -2758,7 +2640,7 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2758
2640
  },
2759
2641
  [disabled]
2760
2642
  );
2761
- const handleDragOver = React13.useCallback(
2643
+ const handleDragOver = React15.useCallback(
2762
2644
  (event) => {
2763
2645
  event.preventDefault();
2764
2646
  if (disabled) {
@@ -2769,7 +2651,7 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2769
2651
  },
2770
2652
  [disabled]
2771
2653
  );
2772
- const handleDrop = React13.useCallback(
2654
+ const handleDrop = React15.useCallback(
2773
2655
  (event) => {
2774
2656
  event.preventDefault();
2775
2657
  if (disabled) {
@@ -2802,7 +2684,7 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2802
2684
  syncSelectedFiles
2803
2685
  ]
2804
2686
  );
2805
- const handleRemoveFile = React13.useCallback(
2687
+ const handleRemoveFile = React15.useCallback(
2806
2688
  (fileIndex) => {
2807
2689
  if (disabled) {
2808
2690
  return;
@@ -2813,8 +2695,8 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2813
2695
  },
2814
2696
  [applyFilesToInput, disabled, selectedFiles, syncSelectedFiles]
2815
2697
  );
2816
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "grid w-full gap-4", children: [
2817
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2698
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "grid w-full gap-4", children: [
2699
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2818
2700
  "input",
2819
2701
  {
2820
2702
  ...uploadProps,
@@ -2829,7 +2711,7 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2829
2711
  onChange: handleInputChange
2830
2712
  }
2831
2713
  ),
2832
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
2714
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
2833
2715
  "label",
2834
2716
  {
2835
2717
  "aria-disabled": disabled || void 0,
@@ -2849,8 +2731,8 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2849
2731
  onDrop: handleDrop,
2850
2732
  onKeyDown: handleKeyDown,
2851
2733
  children: [
2852
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "flex size-10 items-center justify-center rounded-[6px] p-2 text-[color:var(--sofya-text-default)]", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(UploadGlyph, { className: "size-[18px]" }) }),
2853
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "text-[color:var(--sofya-text-default)]", children: renderTextContent(resolvedTitle, {
2734
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "flex size-10 items-center justify-center rounded-[6px] p-2 text-[color:var(--sofya-text-default)]", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(UploadGlyph, { className: "size-[18px]" }) }),
2735
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "text-[color:var(--sofya-text-default)]", children: renderTextContent(resolvedTitle, {
2854
2736
  as: "span",
2855
2737
  className: "block text-[color:var(--sofya-text-default)]",
2856
2738
  size: "body",
@@ -2858,7 +2740,7 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2858
2740
  fontWeight: 500
2859
2741
  }
2860
2742
  }) }),
2861
- resolvedDescription ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "text-[color:var(--sofya-text-subtle)]", children: renderTextContent(resolvedDescription, {
2743
+ resolvedDescription ? /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "text-[color:var(--sofya-text-subtle)]", children: renderTextContent(resolvedDescription, {
2862
2744
  as: "span",
2863
2745
  className: "block text-[color:var(--sofya-text-subtle)]",
2864
2746
  size: "tiny"
@@ -2866,28 +2748,27 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2866
2748
  ]
2867
2749
  }
2868
2750
  ),
2869
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react2.motion.div, { layout: true, role: "list", className: "grid gap-4 overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_react2.AnimatePresence, { initial: false, children: selectedFiles.map((file, index) => {
2751
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { role: "list", className: "grid gap-4 overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_react2.AnimatePresence, { initial: false, children: selectedFiles.map((file, index) => {
2870
2752
  const fileKey = resolveUploadFileSignature(file);
2871
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2753
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2872
2754
  import_react2.motion.div,
2873
2755
  {
2874
- layout: true,
2875
2756
  role: "listitem",
2876
2757
  className: "overflow-hidden",
2877
- initial: prefersReducedMotion ? { opacity: 0 } : { opacity: 0, y: 10, scale: 0.98, height: 0 },
2878
- animate: prefersReducedMotion ? { opacity: 1 } : { opacity: 1, y: 0, scale: 1, height: "auto" },
2879
- exit: prefersReducedMotion ? { opacity: 0 } : { opacity: 0, scale: 0.98, height: 0 },
2758
+ initial: prefersReducedMotion ? { opacity: 0 } : { opacity: 0, y: 8 },
2759
+ animate: prefersReducedMotion ? { opacity: 1 } : { opacity: 1, y: 0 },
2760
+ exit: prefersReducedMotion ? { opacity: 0 } : { opacity: 0, y: -6 },
2880
2761
  transition: uploadListItemTransition,
2881
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(Card, { variant: "panel", className: "flex items-center gap-4 p-4", children: [
2882
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "flex size-11 shrink-0 items-center justify-center rounded-full bg-[color:var(--sofya-surface-hover)] text-primary", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2762
+ children: /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(Card, { variant: "panel", className: "flex items-center gap-4 p-4", children: [
2763
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "flex size-11 shrink-0 items-center justify-center rounded-full bg-[color:var(--sofya-surface-hover)] text-primary", children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2883
2764
  UploadFileTypeGlyph,
2884
2765
  {
2885
2766
  className: "size-[18px]",
2886
2767
  kind: resolveUploadFileVisualKind(file, uploadKind)
2887
2768
  }
2888
2769
  ) }),
2889
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "min-w-0 flex-1", children: [
2890
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { className: "truncate text-[color:var(--sofya-text-default)]", children: renderTextContent(file.name, {
2770
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "min-w-0 flex-1", children: [
2771
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "truncate text-[color:var(--sofya-text-default)]", children: renderTextContent(file.name, {
2891
2772
  as: "span",
2892
2773
  className: "block truncate text-[color:var(--sofya-text-default)]",
2893
2774
  size: "body",
@@ -2895,7 +2776,7 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2895
2776
  fontWeight: 500
2896
2777
  }
2897
2778
  }) }),
2898
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { className: "mt-2 text-[color:var(--sofya-text-subtle)]", children: renderTextContent(
2779
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "mt-2 text-[color:var(--sofya-text-subtle)]", children: renderTextContent(
2899
2780
  `${resolveUploadFileBadge(
2900
2781
  file
2901
2782
  )} \xB7 ${formatUploadFileSize(file.size)}`,
@@ -2906,7 +2787,7 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2906
2787
  }
2907
2788
  ) })
2908
2789
  ] }),
2909
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2790
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2910
2791
  "button",
2911
2792
  {
2912
2793
  "aria-label": `Remover ${file.name}`,
@@ -2918,7 +2799,7 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2918
2799
  event.stopPropagation();
2919
2800
  handleRemoveFile(index);
2920
2801
  },
2921
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2802
+ children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2922
2803
  Icon,
2923
2804
  {
2924
2805
  "aria-hidden": "true",
@@ -2936,9 +2817,104 @@ var UploadInputControl = React13.forwardRef(function UploadInputControl2({
2936
2817
  }) }) })
2937
2818
  ] });
2938
2819
  });
2939
- UploadInputControl.displayName = "UploadInputControl";
2940
- var Input = React13.forwardRef((props, ref) => {
2941
- const generatedId = React13.useId();
2820
+ UploadInputControl.displayName = "UploadInputControl";
2821
+
2822
+ // src/components/input-otp.tsx
2823
+ var React16 = __toESM(require("react"), 1);
2824
+ var import_input_otp = require("input-otp");
2825
+ var import_jsx_runtime17 = require("react/jsx-runtime");
2826
+ var InputOTP = React16.forwardRef(({ className, containerClassName, ...props }, ref) => {
2827
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
2828
+ import_input_otp.OTPInput,
2829
+ {
2830
+ ref,
2831
+ containerClassName: cn(
2832
+ "flex items-center gap-4 has-[:disabled]:opacity-50",
2833
+ containerClassName
2834
+ ),
2835
+ className: cn("disabled:cursor-not-allowed", className),
2836
+ ...props
2837
+ }
2838
+ );
2839
+ });
2840
+ InputOTP.displayName = "InputOTP";
2841
+ var InputOTPGroup = React16.forwardRef(({ className, ...props }, ref) => {
2842
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
2843
+ "div",
2844
+ {
2845
+ ref,
2846
+ className: cn(
2847
+ "flex overflow-hidden rounded-[12px] border border-[color:var(--sofya-border-hover)] bg-card",
2848
+ className
2849
+ ),
2850
+ ...props
2851
+ }
2852
+ );
2853
+ });
2854
+ InputOTPGroup.displayName = "InputOTPGroup";
2855
+ var InputOTPSlot = React16.forwardRef(
2856
+ ({ className, index, ...props }, ref) => {
2857
+ const otpContext = React16.useContext(import_input_otp.OTPInputContext);
2858
+ const slot = otpContext.slots[index];
2859
+ if (!slot) {
2860
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
2861
+ "div",
2862
+ {
2863
+ ref,
2864
+ className: cn(
2865
+ "relative flex h-[92px] w-[96px] items-center justify-center border-r border-[color:var(--sofya-border-strong)] bg-card last:border-r-0",
2866
+ className
2867
+ ),
2868
+ ...props
2869
+ }
2870
+ );
2871
+ }
2872
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
2873
+ "div",
2874
+ {
2875
+ ref,
2876
+ className: cn(
2877
+ "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",
2878
+ 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)]",
2879
+ className
2880
+ ),
2881
+ ...props,
2882
+ children: [
2883
+ slot.char ?? null,
2884
+ slot.hasFakeCaret ? /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "pointer-events-none absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "h-10 w-[2px] animate-pulse rounded-full bg-primary shadow-[var(--sofya-shadow-caret-glow)]" }) }) : null
2885
+ ]
2886
+ }
2887
+ );
2888
+ }
2889
+ );
2890
+ InputOTPSlot.displayName = "InputOTPSlot";
2891
+ var InputOTPSeparator = React16.forwardRef(({ className, ...props }, ref) => {
2892
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
2893
+ "div",
2894
+ {
2895
+ ref,
2896
+ role: "separator",
2897
+ className: cn(
2898
+ "flex items-center justify-center px-2 text-[28px] leading-none text-[color:var(--sofya-text-soft)]",
2899
+ className
2900
+ ),
2901
+ ...props,
2902
+ children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { "aria-hidden": "true", children: "." })
2903
+ }
2904
+ );
2905
+ });
2906
+ InputOTPSeparator.displayName = "InputOTPSeparator";
2907
+
2908
+ // src/components/input.tsx
2909
+ var import_jsx_runtime18 = require("react/jsx-runtime");
2910
+ var inputVariantOptions = [
2911
+ "default",
2912
+ "search",
2913
+ "otp",
2914
+ "upload"
2915
+ ];
2916
+ var Input = React17.forwardRef((props, ref) => {
2917
+ const generatedId = React17.useId();
2942
2918
  const resolvedId = props.id ?? generatedId;
2943
2919
  const variant = props.variant ?? "default";
2944
2920
  if (variant === "otp") {
@@ -2966,7 +2942,7 @@ var Input = React13.forwardRef((props, ref) => {
2966
2942
  );
2967
2943
  const hasTrailingGroup = resolvedSplitIndex < resolvedLength;
2968
2944
  const otpAriaLabel = otpProps["aria-label"] ?? "Verification code";
2969
- const otpControl = /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
2945
+ const otpControl = /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
2970
2946
  InputOTP,
2971
2947
  {
2972
2948
  ref,
@@ -2979,7 +2955,7 @@ var Input = React13.forwardRef((props, ref) => {
2979
2955
  containerClassName: className2,
2980
2956
  ...otpProps,
2981
2957
  children: [
2982
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(InputOTPGroup, { className: otpGroupClassName, children: Array.from({ length: resolvedSplitIndex }, (_, index) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2958
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(InputOTPGroup, { className: otpGroupClassName, children: Array.from({ length: resolvedSplitIndex }, (_, index) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
2983
2959
  InputOTPSlot,
2984
2960
  {
2985
2961
  className: otpSlotClassName,
@@ -2987,10 +2963,10 @@ var Input = React13.forwardRef((props, ref) => {
2987
2963
  },
2988
2964
  `otp-leading-${index}`
2989
2965
  )) }),
2990
- hasTrailingGroup ? otpSeparator ?? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(InputOTPSeparator, { className: otpSeparatorClassName }) : null,
2991
- hasTrailingGroup ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(InputOTPGroup, { className: otpGroupClassName, children: Array.from(
2966
+ hasTrailingGroup ? otpSeparator ?? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(InputOTPSeparator, { className: otpSeparatorClassName }) : null,
2967
+ hasTrailingGroup ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(InputOTPGroup, { className: otpGroupClassName, children: Array.from(
2992
2968
  { length: resolvedLength - resolvedSplitIndex },
2993
- (_, index) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
2969
+ (_, index) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
2994
2970
  InputOTPSlot,
2995
2971
  {
2996
2972
  className: otpSlotClassName,
@@ -3002,12 +2978,12 @@ var Input = React13.forwardRef((props, ref) => {
3002
2978
  ]
3003
2979
  }
3004
2980
  );
3005
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
3006
- InputShell,
2981
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
2982
+ FieldShell,
3007
2983
  {
3008
2984
  containerClassName: containerClassName2,
3009
2985
  control: otpControl,
3010
- resolvedId
2986
+ labelHtmlFor: resolvedId
3011
2987
  }
3012
2988
  );
3013
2989
  }
@@ -3021,7 +2997,7 @@ var Input = React13.forwardRef((props, ref) => {
3021
2997
  variant: _variant2,
3022
2998
  ...uploadProps
3023
2999
  } = props;
3024
- const uploadControl = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
3000
+ const uploadControl = /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
3025
3001
  UploadInputControl,
3026
3002
  {
3027
3003
  ...uploadProps,
@@ -3029,14 +3005,28 @@ var Input = React13.forwardRef((props, ref) => {
3029
3005
  resolvedId
3030
3006
  }
3031
3007
  );
3032
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
3033
- UploadInputShell,
3008
+ const uploadLabel = label2 || uploadOptionalLabel ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_jsx_runtime18.Fragment, { children: [
3009
+ renderTextContent(label2, {
3010
+ as: "span",
3011
+ className: "text-[color:var(--sofya-text-default)]",
3012
+ size: "body",
3013
+ style: {
3014
+ fontWeight: 700
3015
+ }
3016
+ }),
3017
+ uploadOptionalLabel ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("span", { className: "ml-2 text-[color:var(--sofya-text-subtle)]", children: renderTextContent(uploadOptionalLabel, {
3018
+ as: "span",
3019
+ className: "text-[color:var(--sofya-text-subtle)]",
3020
+ size: "tiny"
3021
+ }) }) : null
3022
+ ] }) : void 0;
3023
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
3024
+ FieldShell,
3034
3025
  {
3035
3026
  containerClassName: containerClassName2,
3036
3027
  control: uploadControl,
3037
- label: label2,
3038
- labelClassName: labelClassName2,
3039
- optionalLabel: uploadOptionalLabel
3028
+ label: uploadLabel,
3029
+ labelClassName: labelClassName2
3040
3030
  }
3041
3031
  );
3042
3032
  }
@@ -3053,8 +3043,8 @@ var Input = React13.forwardRef((props, ref) => {
3053
3043
  const isSearch = variant === "search";
3054
3044
  const resolvedType = type ?? (isSearch ? "search" : void 0);
3055
3045
  const ariaLabel = nativeProps["aria-label"] ?? (typeof label === "string" ? label : isSearch ? "Search" : void 0);
3056
- const nativeControl = isSearch ? /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("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: [
3057
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
3046
+ const nativeControl = isSearch ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)("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: [
3047
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
3058
3048
  Icon,
3059
3049
  {
3060
3050
  "aria-hidden": "true",
@@ -3063,7 +3053,7 @@ var Input = React13.forwardRef((props, ref) => {
3063
3053
  size: 32
3064
3054
  }
3065
3055
  ),
3066
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
3056
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
3067
3057
  "input",
3068
3058
  {
3069
3059
  id: resolvedId,
@@ -3079,7 +3069,7 @@ var Input = React13.forwardRef((props, ref) => {
3079
3069
  placeholder: nativeProps.placeholder ?? "Search"
3080
3070
  }
3081
3071
  )
3082
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
3072
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
3083
3073
  "input",
3084
3074
  {
3085
3075
  id: resolvedId,
@@ -3093,25 +3083,25 @@ var Input = React13.forwardRef((props, ref) => {
3093
3083
  "aria-label": ariaLabel
3094
3084
  }
3095
3085
  );
3096
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
3097
- InputShell,
3086
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
3087
+ FieldShell,
3098
3088
  {
3099
3089
  containerClassName,
3100
3090
  control: nativeControl,
3101
3091
  label: isSearch ? void 0 : label,
3102
3092
  labelClassName: isSearch ? void 0 : labelClassName,
3103
- resolvedId
3093
+ labelHtmlFor: isSearch ? void 0 : resolvedId
3104
3094
  }
3105
3095
  );
3106
3096
  });
3107
3097
  Input.displayName = "Input";
3108
3098
 
3109
3099
  // src/components/label.tsx
3110
- var React14 = __toESM(require("react"), 1);
3111
- var import_jsx_runtime16 = require("react/jsx-runtime");
3112
- var Label = React14.forwardRef(
3100
+ var React18 = __toESM(require("react"), 1);
3101
+ var import_jsx_runtime19 = require("react/jsx-runtime");
3102
+ var Label = React18.forwardRef(
3113
3103
  ({ children, className, ...props }, ref) => {
3114
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
3104
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
3115
3105
  "label",
3116
3106
  {
3117
3107
  ref,
@@ -3135,10 +3125,10 @@ var Label = React14.forwardRef(
3135
3125
  Label.displayName = "Label";
3136
3126
 
3137
3127
  // src/components/link.tsx
3138
- var React15 = __toESM(require("react"), 1);
3128
+ var React19 = __toESM(require("react"), 1);
3139
3129
  var import_react_slot3 = require("@radix-ui/react-slot");
3140
3130
  var import_class_variance_authority6 = require("class-variance-authority");
3141
- var import_jsx_runtime17 = require("react/jsx-runtime");
3131
+ var import_jsx_runtime20 = require("react/jsx-runtime");
3142
3132
  var linkVariants = (0, import_class_variance_authority6.cva)(
3143
3133
  "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",
3144
3134
  {
@@ -3153,9 +3143,9 @@ var linkVariants = (0, import_class_variance_authority6.cva)(
3153
3143
  }
3154
3144
  }
3155
3145
  );
3156
- var Link = React15.forwardRef(function Link2({ asChild = false, children, className, variant = "default", ...props }, ref) {
3146
+ var Link = React19.forwardRef(function Link2({ asChild = false, children, className, variant = "default", ...props }, ref) {
3157
3147
  const Component = asChild ? import_react_slot3.Slot : "a";
3158
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
3148
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
3159
3149
  Component,
3160
3150
  {
3161
3151
  ref,
@@ -3173,7 +3163,7 @@ var Link = React15.forwardRef(function Link2({ asChild = false, children, classN
3173
3163
  Link.displayName = "Link";
3174
3164
 
3175
3165
  // src/components/logo.tsx
3176
- var React16 = __toESM(require("react"), 1);
3166
+ var React20 = __toESM(require("react"), 1);
3177
3167
 
3178
3168
  // src/components/logo-data.ts
3179
3169
  var logoAssets = {
@@ -3270,7 +3260,7 @@ var logoAssets = {
3270
3260
  };
3271
3261
 
3272
3262
  // src/components/logo.tsx
3273
- var import_jsx_runtime18 = require("react/jsx-runtime");
3263
+ var import_jsx_runtime21 = require("react/jsx-runtime");
3274
3264
  var logoVariants = ["mono", "default", "text", "full"];
3275
3265
  var logoSizeOptions = ["sm", "md", "lg", "xl", "2xl"];
3276
3266
  var logoSizeScale = {
@@ -3306,7 +3296,7 @@ function resolveLogoDimensions(variant, size, width, height) {
3306
3296
  height: resolvedHeight
3307
3297
  };
3308
3298
  }
3309
- var Logo = React16.forwardRef(function Logo2({
3299
+ var Logo = React20.forwardRef(function Logo2({
3310
3300
  variant = "full",
3311
3301
  size = "lg",
3312
3302
  width,
@@ -3317,10 +3307,10 @@ var Logo = React16.forwardRef(function Logo2({
3317
3307
  ...props
3318
3308
  }, ref) {
3319
3309
  const asset = logoAssets[variant];
3320
- const titleId = React16.useId();
3310
+ const titleId = React20.useId();
3321
3311
  const dimensions = resolveLogoDimensions(variant, size, width, height);
3322
3312
  const monoFill = variant === "mono" ? monoColor ?? "currentColor" : void 0;
3323
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
3313
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
3324
3314
  "svg",
3325
3315
  {
3326
3316
  ref,
@@ -3335,8 +3325,8 @@ var Logo = React16.forwardRef(function Logo2({
3335
3325
  focusable: "false",
3336
3326
  ...props,
3337
3327
  children: [
3338
- title ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("title", { id: titleId, children: title }) : null,
3339
- asset.paths.map((path, index) => /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
3328
+ title ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("title", { id: titleId, children: title }) : null,
3329
+ asset.paths.map((path, index) => /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3340
3330
  "path",
3341
3331
  {
3342
3332
  d: path.d,
@@ -3353,10 +3343,12 @@ var Logo = React16.forwardRef(function Logo2({
3353
3343
  Logo.displayName = "Logo";
3354
3344
 
3355
3345
  // src/components/pagination.tsx
3346
+ var import_icons_react5 = require("@tabler/icons-react");
3356
3347
  var import_react_slot4 = require("@radix-ui/react-slot");
3357
3348
  var import_class_variance_authority7 = require("class-variance-authority");
3358
- var import_jsx_runtime19 = require("react/jsx-runtime");
3359
- var inheritTypographyStyle = {
3349
+
3350
+ // src/lib/inherited-typography.ts
3351
+ var inheritedTypographyStyle = {
3360
3352
  color: "inherit",
3361
3353
  fontFamily: "inherit",
3362
3354
  fontSize: "inherit",
@@ -3364,6 +3356,9 @@ var inheritTypographyStyle = {
3364
3356
  letterSpacing: "inherit",
3365
3357
  lineHeight: "inherit"
3366
3358
  };
3359
+
3360
+ // src/components/pagination.tsx
3361
+ var import_jsx_runtime22 = require("react/jsx-runtime");
3367
3362
  var paginationLinkVariants = (0, import_class_variance_authority7.cva)(
3368
3363
  "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",
3369
3364
  {
@@ -3384,7 +3379,7 @@ var paginationLinkVariants = (0, import_class_variance_authority7.cva)(
3384
3379
  }
3385
3380
  );
3386
3381
  function Pagination({ className, ...props }) {
3387
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
3382
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3388
3383
  "nav",
3389
3384
  {
3390
3385
  "aria-label": "Pagination",
@@ -3397,7 +3392,7 @@ function PaginationContent({
3397
3392
  className,
3398
3393
  ...props
3399
3394
  }) {
3400
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
3395
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3401
3396
  "ul",
3402
3397
  {
3403
3398
  className: cn(
@@ -3409,7 +3404,7 @@ function PaginationContent({
3409
3404
  );
3410
3405
  }
3411
3406
  function PaginationItem({ className, ...props }) {
3412
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("li", { className: cn("list-none", className), ...props });
3407
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("li", { className: cn("list-none", className), ...props });
3413
3408
  }
3414
3409
  function PaginationLink({
3415
3410
  asChild = false,
@@ -3419,7 +3414,7 @@ function PaginationLink({
3419
3414
  ...props
3420
3415
  }) {
3421
3416
  const Component = asChild ? import_react_slot4.Slot : "a";
3422
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
3417
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3423
3418
  Component,
3424
3419
  {
3425
3420
  "aria-current": isActive ? "page" : void 0,
@@ -3429,67 +3424,29 @@ function PaginationLink({
3429
3424
  );
3430
3425
  }
3431
3426
  function PaginationChevronLeft() {
3432
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
3433
- "svg",
3434
- {
3435
- "aria-hidden": "true",
3436
- className: "h-4 w-4",
3437
- viewBox: "0 0 16 16",
3438
- fill: "none",
3439
- xmlns: "http://www.w3.org/2000/svg",
3440
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
3441
- "path",
3442
- {
3443
- d: "M9.5 3.5L5 8L9.5 12.5",
3444
- stroke: "currentColor",
3445
- strokeWidth: "1.75",
3446
- strokeLinecap: "round",
3447
- strokeLinejoin: "round"
3448
- }
3449
- )
3450
- }
3451
- );
3427
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_icons_react5.IconChevronLeft, { "aria-hidden": "true", className: "h-4 w-4", stroke: 1.75 });
3452
3428
  }
3453
3429
  function PaginationChevronRight() {
3454
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
3455
- "svg",
3456
- {
3457
- "aria-hidden": "true",
3458
- className: "h-4 w-4",
3459
- viewBox: "0 0 16 16",
3460
- fill: "none",
3461
- xmlns: "http://www.w3.org/2000/svg",
3462
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
3463
- "path",
3464
- {
3465
- d: "M6.5 3.5L11 8L6.5 12.5",
3466
- stroke: "currentColor",
3467
- strokeWidth: "1.75",
3468
- strokeLinecap: "round",
3469
- strokeLinejoin: "round"
3470
- }
3471
- )
3472
- }
3473
- );
3430
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(import_icons_react5.IconChevronRight, { "aria-hidden": "true", className: "h-4 w-4", stroke: 1.75 });
3474
3431
  }
3475
3432
  function PaginationPrevious({
3476
3433
  className,
3477
3434
  text = "Previous",
3478
3435
  ...props
3479
3436
  }) {
3480
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
3437
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
3481
3438
  PaginationLink,
3482
3439
  {
3483
3440
  "aria-label": "Go to previous page",
3484
3441
  className: cn("gap-2 px-4", className),
3485
3442
  ...props,
3486
3443
  children: [
3487
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(PaginationChevronLeft, {}),
3488
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "hidden sm:block", children: renderTextContent(text, {
3444
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(PaginationChevronLeft, {}),
3445
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "hidden sm:block", children: renderTextContent(text, {
3489
3446
  as: "span",
3490
3447
  className: "block text-inherit",
3491
3448
  size: "body",
3492
- style: inheritTypographyStyle
3449
+ style: inheritedTypographyStyle
3493
3450
  }) })
3494
3451
  ]
3495
3452
  }
@@ -3500,20 +3457,20 @@ function PaginationNext({
3500
3457
  text = "Next",
3501
3458
  ...props
3502
3459
  }) {
3503
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
3460
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
3504
3461
  PaginationLink,
3505
3462
  {
3506
3463
  "aria-label": "Go to next page",
3507
3464
  className: cn("gap-2 px-4", className),
3508
3465
  ...props,
3509
3466
  children: [
3510
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "hidden sm:block", children: renderTextContent(text, {
3467
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "hidden sm:block", children: renderTextContent(text, {
3511
3468
  as: "span",
3512
3469
  className: "block text-inherit",
3513
3470
  size: "body",
3514
- style: inheritTypographyStyle
3471
+ style: inheritedTypographyStyle
3515
3472
  }) }),
3516
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(PaginationChevronRight, {})
3473
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(PaginationChevronRight, {})
3517
3474
  ]
3518
3475
  }
3519
3476
  );
@@ -3522,7 +3479,7 @@ function PaginationEllipsis({
3522
3479
  className,
3523
3480
  ...props
3524
3481
  }) {
3525
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
3482
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
3526
3483
  "span",
3527
3484
  {
3528
3485
  "aria-hidden": "true",
@@ -3532,35 +3489,35 @@ function PaginationEllipsis({
3532
3489
  ),
3533
3490
  ...props,
3534
3491
  children: [
3535
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { children: renderTextContent("...", {
3492
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { children: renderTextContent("...", {
3536
3493
  as: "span",
3537
3494
  className: "block text-inherit",
3538
3495
  size: "h5",
3539
- style: inheritTypographyStyle
3496
+ style: inheritedTypographyStyle
3540
3497
  }) }),
3541
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "sr-only", children: "More pages" })
3498
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "sr-only", children: "More pages" })
3542
3499
  ]
3543
3500
  }
3544
3501
  );
3545
3502
  }
3546
3503
 
3547
3504
  // src/components/popover.tsx
3548
- var React17 = __toESM(require("react"), 1);
3505
+ var React21 = __toESM(require("react"), 1);
3549
3506
  var PopoverPrimitive = __toESM(require("@radix-ui/react-popover"), 1);
3550
- var import_jsx_runtime20 = require("react/jsx-runtime");
3507
+ var import_jsx_runtime23 = require("react/jsx-runtime");
3551
3508
  var Popover = PopoverPrimitive.Root;
3552
3509
  var PopoverTrigger = PopoverPrimitive.Trigger;
3553
3510
  var PopoverAnchor = PopoverPrimitive.Anchor;
3554
3511
  var PopoverPortal = PopoverPrimitive.Portal;
3555
3512
  var PopoverClose = PopoverPrimitive.Close;
3556
- var PopoverContent = React17.forwardRef(function PopoverContent2({
3513
+ var PopoverContent = React21.forwardRef(function PopoverContent2({
3557
3514
  align = "center",
3558
3515
  className,
3559
3516
  collisionPadding = 8,
3560
3517
  sideOffset = 8,
3561
3518
  ...props
3562
3519
  }, ref) {
3563
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(PopoverPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
3520
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(PopoverPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
3564
3521
  PopoverPrimitive.Content,
3565
3522
  {
3566
3523
  ref,
@@ -3577,8 +3534,8 @@ var PopoverContent = React17.forwardRef(function PopoverContent2({
3577
3534
  ) });
3578
3535
  });
3579
3536
  PopoverContent.displayName = PopoverPrimitive.Content.displayName;
3580
- var PopoverTitle = React17.forwardRef(function PopoverTitle2({ children, className, ...props }, ref) {
3581
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
3537
+ var PopoverTitle = React21.forwardRef(function PopoverTitle2({ children, className, ...props }, ref) {
3538
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
3582
3539
  "h4",
3583
3540
  {
3584
3541
  ref,
@@ -3594,8 +3551,8 @@ var PopoverTitle = React17.forwardRef(function PopoverTitle2({ children, classNa
3594
3551
  );
3595
3552
  });
3596
3553
  PopoverTitle.displayName = "PopoverTitle";
3597
- var PopoverDescription = React17.forwardRef(function PopoverDescription2({ children, className, ...props }, ref) {
3598
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
3554
+ var PopoverDescription = React21.forwardRef(function PopoverDescription2({ children, className, ...props }, ref) {
3555
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
3599
3556
  "p",
3600
3557
  {
3601
3558
  ref,
@@ -3613,9 +3570,9 @@ var PopoverDescription = React17.forwardRef(function PopoverDescription2({ child
3613
3570
  PopoverDescription.displayName = "PopoverDescription";
3614
3571
 
3615
3572
  // src/components/progress.tsx
3616
- var React18 = __toESM(require("react"), 1);
3573
+ var React22 = __toESM(require("react"), 1);
3617
3574
  var ProgressPrimitive = __toESM(require("@radix-ui/react-progress"), 1);
3618
- var import_jsx_runtime21 = require("react/jsx-runtime");
3575
+ var import_jsx_runtime24 = require("react/jsx-runtime");
3619
3576
  var progressSizeOptions = ["sm", "default", "lg"];
3620
3577
  function clampProgressValue(value, max) {
3621
3578
  if (Number.isNaN(value)) {
@@ -3623,7 +3580,7 @@ function clampProgressValue(value, max) {
3623
3580
  }
3624
3581
  return Math.min(Math.max(value, 0), max);
3625
3582
  }
3626
- var Progress = React18.forwardRef(function Progress2({
3583
+ var Progress = React22.forwardRef(function Progress2({
3627
3584
  className,
3628
3585
  indicatorClassName,
3629
3586
  max = 100,
@@ -3634,7 +3591,7 @@ var Progress = React18.forwardRef(function Progress2({
3634
3591
  const safeMax = max > 0 ? max : 100;
3635
3592
  const resolvedValue = typeof value === "number" ? clampProgressValue(value, safeMax) : null;
3636
3593
  const progressScale = resolvedValue === null ? void 0 : Number((resolvedValue / safeMax).toFixed(4));
3637
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3594
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3638
3595
  ProgressPrimitive.Root,
3639
3596
  {
3640
3597
  ref,
@@ -3647,7 +3604,7 @@ var Progress = React18.forwardRef(function Progress2({
3647
3604
  className
3648
3605
  ),
3649
3606
  ...props,
3650
- children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3607
+ children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3651
3608
  ProgressPrimitive.Indicator,
3652
3609
  {
3653
3610
  "data-slot": "progress-indicator",
@@ -3664,12 +3621,12 @@ var Progress = React18.forwardRef(function Progress2({
3664
3621
  Progress.displayName = ProgressPrimitive.Root.displayName;
3665
3622
 
3666
3623
  // src/components/radio-group.tsx
3667
- var React19 = __toESM(require("react"), 1);
3624
+ var React23 = __toESM(require("react"), 1);
3668
3625
  var RadioGroupPrimitive = __toESM(require("@radix-ui/react-radio-group"), 1);
3669
- var import_jsx_runtime22 = require("react/jsx-runtime");
3626
+ var import_jsx_runtime25 = require("react/jsx-runtime");
3670
3627
  var radioGroupOrientationOptions = ["horizontal", "vertical"];
3671
- var RadioGroup2 = React19.forwardRef(function RadioGroup3({ className, ...props }, ref) {
3672
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3628
+ var RadioGroup2 = React23.forwardRef(function RadioGroup3({ className, ...props }, ref) {
3629
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3673
3630
  RadioGroupPrimitive.Root,
3674
3631
  {
3675
3632
  ref,
@@ -3683,7 +3640,7 @@ var RadioGroup2 = React19.forwardRef(function RadioGroup3({ className, ...props
3683
3640
  );
3684
3641
  });
3685
3642
  RadioGroup2.displayName = RadioGroupPrimitive.Root.displayName;
3686
- var RadioGroupItem = React19.forwardRef(function RadioGroupItem2({
3643
+ var RadioGroupItem = React23.forwardRef(function RadioGroupItem2({
3687
3644
  className,
3688
3645
  controlClassName,
3689
3646
  description,
@@ -3695,22 +3652,21 @@ var RadioGroupItem = React19.forwardRef(function RadioGroupItem2({
3695
3652
  labelClassName,
3696
3653
  ...props
3697
3654
  }, ref) {
3698
- const generatedId = React19.useId();
3655
+ const generatedId = React23.useId();
3699
3656
  const resolvedId = id ?? generatedId;
3700
3657
  const labelId = label ? `${resolvedId}-label` : void 0;
3701
3658
  const descriptionId = description ? `${resolvedId}-description` : void 0;
3702
3659
  const alignClassName = description ? "items-start" : "items-center";
3703
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
3660
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
3704
3661
  "label",
3705
3662
  {
3706
- className: cn(
3707
- "flex w-fit gap-4",
3663
+ className: selectionControlContainerClasses({
3708
3664
  alignClassName,
3709
- disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer",
3710
- className
3711
- ),
3665
+ className,
3666
+ disabled
3667
+ }),
3712
3668
  children: [
3713
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3669
+ /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3714
3670
  RadioGroupPrimitive.Item,
3715
3671
  {
3716
3672
  ref,
@@ -3720,11 +3676,13 @@ var RadioGroupItem = React19.forwardRef(function RadioGroupItem2({
3720
3676
  "aria-describedby": descriptionId,
3721
3677
  "data-slot": "radio-group-item",
3722
3678
  className: cn(
3723
- "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",
3679
+ "peer mt-0 inline-flex h-5 w-5 shrink-0 items-center justify-center rounded-full text-primary-foreground outline-none",
3680
+ selectionControlControlBaseClasses,
3681
+ "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",
3724
3682
  controlClassName
3725
3683
  ),
3726
3684
  ...props,
3727
- children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(RadioGroupPrimitive.Indicator, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3685
+ children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(RadioGroupPrimitive.Indicator, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3728
3686
  "span",
3729
3687
  {
3730
3688
  "data-slot": "radio-group-indicator",
@@ -3736,13 +3694,13 @@ var RadioGroupItem = React19.forwardRef(function RadioGroupItem2({
3736
3694
  ) })
3737
3695
  }
3738
3696
  ),
3739
- label || description ? /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("span", { className: "grid gap-2", children: [
3740
- label ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3697
+ label || description ? /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("span", { className: selectionControlContentBaseClasses, children: [
3698
+ label ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3741
3699
  "span",
3742
3700
  {
3743
3701
  id: labelId,
3744
3702
  className: cn(
3745
- "text-[color:var(--sofya-text-default)]",
3703
+ selectionControlLabelTextBaseClasses,
3746
3704
  labelClassName
3747
3705
  ),
3748
3706
  children: renderTextContent(label, {
@@ -3752,11 +3710,14 @@ var RadioGroupItem = React19.forwardRef(function RadioGroupItem2({
3752
3710
  })
3753
3711
  }
3754
3712
  ) : null,
3755
- description ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3713
+ description ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3756
3714
  "span",
3757
3715
  {
3758
3716
  id: descriptionId,
3759
- className: cn("text-muted-foreground", descriptionClassName),
3717
+ className: cn(
3718
+ selectionControlDescriptionTextBaseClasses,
3719
+ descriptionClassName
3720
+ ),
3760
3721
  children: renderTextContent(description, {
3761
3722
  as: "span",
3762
3723
  className: "text-muted-foreground",
@@ -3772,12 +3733,12 @@ var RadioGroupItem = React19.forwardRef(function RadioGroupItem2({
3772
3733
  RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
3773
3734
 
3774
3735
  // src/components/scroll-area.tsx
3775
- var React20 = __toESM(require("react"), 1);
3736
+ var React24 = __toESM(require("react"), 1);
3776
3737
  var ScrollAreaPrimitive = __toESM(require("@radix-ui/react-scroll-area"), 1);
3777
- var import_jsx_runtime23 = require("react/jsx-runtime");
3738
+ var import_jsx_runtime26 = require("react/jsx-runtime");
3778
3739
  var scrollAreaOrientationOptions = ["horizontal", "vertical"];
3779
- var ScrollArea = React20.forwardRef(function ScrollArea2({ className, ...props }, ref) {
3780
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
3740
+ var ScrollArea = React24.forwardRef(function ScrollArea2({ className, ...props }, ref) {
3741
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3781
3742
  ScrollAreaPrimitive.Root,
3782
3743
  {
3783
3744
  ref,
@@ -3788,8 +3749,8 @@ var ScrollArea = React20.forwardRef(function ScrollArea2({ className, ...props }
3788
3749
  );
3789
3750
  });
3790
3751
  ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
3791
- var ScrollAreaViewport = React20.forwardRef(function ScrollAreaViewport2({ className, ...props }, ref) {
3792
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
3752
+ var ScrollAreaViewport = React24.forwardRef(function ScrollAreaViewport2({ className, ...props }, ref) {
3753
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3793
3754
  ScrollAreaPrimitive.Viewport,
3794
3755
  {
3795
3756
  ref,
@@ -3803,8 +3764,8 @@ var ScrollAreaViewport = React20.forwardRef(function ScrollAreaViewport2({ class
3803
3764
  );
3804
3765
  });
3805
3766
  ScrollAreaViewport.displayName = ScrollAreaPrimitive.Viewport.displayName;
3806
- var ScrollAreaScrollbar = React20.forwardRef(function ScrollAreaScrollbar2({ className, orientation = "vertical", thumbClassName, ...props }, ref) {
3807
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
3767
+ var ScrollAreaScrollbar = React24.forwardRef(function ScrollAreaScrollbar2({ className, orientation = "vertical", thumbClassName, ...props }, ref) {
3768
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3808
3769
  ScrollAreaPrimitive.Scrollbar,
3809
3770
  {
3810
3771
  ref,
@@ -3815,7 +3776,7 @@ var ScrollAreaScrollbar = React20.forwardRef(function ScrollAreaScrollbar2({ cla
3815
3776
  className
3816
3777
  ),
3817
3778
  ...props,
3818
- children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
3779
+ children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3819
3780
  ScrollAreaPrimitive.Thumb,
3820
3781
  {
3821
3782
  "data-slot": "scroll-area-thumb",
@@ -3829,8 +3790,8 @@ var ScrollAreaScrollbar = React20.forwardRef(function ScrollAreaScrollbar2({ cla
3829
3790
  );
3830
3791
  });
3831
3792
  ScrollAreaScrollbar.displayName = ScrollAreaPrimitive.Scrollbar.displayName;
3832
- var ScrollAreaCorner = React20.forwardRef(function ScrollAreaCorner2({ className, ...props }, ref) {
3833
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
3793
+ var ScrollAreaCorner = React24.forwardRef(function ScrollAreaCorner2({ className, ...props }, ref) {
3794
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
3834
3795
  ScrollAreaPrimitive.Corner,
3835
3796
  {
3836
3797
  ref,
@@ -3843,22 +3804,19 @@ var ScrollAreaCorner = React20.forwardRef(function ScrollAreaCorner2({ className
3843
3804
  ScrollAreaCorner.displayName = ScrollAreaPrimitive.Corner.displayName;
3844
3805
 
3845
3806
  // src/components/select.tsx
3846
- var React21 = __toESM(require("react"), 1);
3807
+ var React25 = __toESM(require("react"), 1);
3847
3808
  var SelectPrimitive = __toESM(require("@radix-ui/react-select"), 1);
3848
- var import_jsx_runtime24 = require("react/jsx-runtime");
3849
- var inheritTypographyStyle2 = {
3850
- color: "inherit",
3851
- fontFamily: "inherit",
3852
- fontSize: "inherit",
3853
- fontWeight: "inherit",
3854
- letterSpacing: "inherit",
3855
- lineHeight: "inherit"
3856
- };
3809
+
3810
+ // src/lib/form-control-classes.ts
3811
+ 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)]";
3812
+
3813
+ // src/components/select.tsx
3814
+ var import_jsx_runtime27 = require("react/jsx-runtime");
3857
3815
  var selectSizeOptions = ["default", "sm"];
3858
3816
  var Select = SelectPrimitive.Root;
3859
3817
  var SelectGroup = SelectPrimitive.Group;
3860
- var SelectValue = React21.forwardRef(function SelectValue2({ className, ...props }, ref) {
3861
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3818
+ var SelectValue = React25.forwardRef(function SelectValue2({ className, ...props }, ref) {
3819
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3862
3820
  Text,
3863
3821
  {
3864
3822
  ref,
@@ -3866,34 +3824,28 @@ var SelectValue = React21.forwardRef(function SelectValue2({ className, ...props
3866
3824
  "data-slot": "select-value",
3867
3825
  className: cn("block truncate text-inherit", className),
3868
3826
  size: "body",
3869
- style: {
3870
- fontFamily: "inherit",
3871
- fontSize: "inherit",
3872
- fontWeight: "inherit",
3873
- lineHeight: "inherit",
3874
- letterSpacing: "inherit",
3875
- color: "inherit"
3876
- },
3877
- children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(SelectPrimitive.Value, { className: "block truncate", ...props })
3827
+ style: inheritedTypographyStyle,
3828
+ children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(SelectPrimitive.Value, { className: "block truncate", ...props })
3878
3829
  }
3879
3830
  );
3880
3831
  });
3881
3832
  SelectValue.displayName = SelectPrimitive.Value.displayName;
3882
- var SelectTrigger = React21.forwardRef(function SelectTrigger2({ className, children, size = "default", ...props }, ref) {
3883
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
3833
+ var SelectTrigger = React25.forwardRef(function SelectTrigger2({ className, children, size = "default", ...props }, ref) {
3834
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
3884
3835
  SelectPrimitive.Trigger,
3885
3836
  {
3886
3837
  ref,
3887
3838
  "data-slot": "select-trigger",
3888
3839
  "data-size": size,
3889
3840
  className: cn(
3890
- "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",
3841
+ formControlBaseClasses,
3842
+ "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",
3891
3843
  className
3892
3844
  ),
3893
3845
  ...props,
3894
3846
  children: [
3895
3847
  children,
3896
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3848
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3897
3849
  Icon,
3898
3850
  {
3899
3851
  name: "caret-down",
@@ -3906,8 +3858,8 @@ var SelectTrigger = React21.forwardRef(function SelectTrigger2({ className, chil
3906
3858
  );
3907
3859
  });
3908
3860
  SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
3909
- var SelectScrollUpButton = React21.forwardRef(function SelectScrollUpButton2({ className, ...props }, ref) {
3910
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3861
+ var SelectScrollUpButton = React25.forwardRef(function SelectScrollUpButton2({ className, ...props }, ref) {
3862
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3911
3863
  SelectPrimitive.ScrollUpButton,
3912
3864
  {
3913
3865
  ref,
@@ -3917,13 +3869,13 @@ var SelectScrollUpButton = React21.forwardRef(function SelectScrollUpButton2({ c
3917
3869
  className
3918
3870
  ),
3919
3871
  ...props,
3920
- children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Icon, { name: "caret-up", size: 12 })
3872
+ children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Icon, { name: "caret-up", size: 12 })
3921
3873
  }
3922
3874
  );
3923
3875
  });
3924
3876
  SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
3925
- var SelectScrollDownButton = React21.forwardRef(function SelectScrollDownButton2({ className, ...props }, ref) {
3926
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3877
+ var SelectScrollDownButton = React25.forwardRef(function SelectScrollDownButton2({ className, ...props }, ref) {
3878
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3927
3879
  SelectPrimitive.ScrollDownButton,
3928
3880
  {
3929
3881
  ref,
@@ -3933,13 +3885,13 @@ var SelectScrollDownButton = React21.forwardRef(function SelectScrollDownButton2
3933
3885
  className
3934
3886
  ),
3935
3887
  ...props,
3936
- children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Icon, { name: "caret-down", size: 12 })
3888
+ children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Icon, { name: "caret-down", size: 12 })
3937
3889
  }
3938
3890
  );
3939
3891
  });
3940
3892
  SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
3941
- var SelectContent = React21.forwardRef(function SelectContent2({ className, children, position = "popper", ...props }, ref) {
3942
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(SelectPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
3893
+ var SelectContent = React25.forwardRef(function SelectContent2({ className, children, position = "popper", ...props }, ref) {
3894
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(SelectPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
3943
3895
  SelectPrimitive.Content,
3944
3896
  {
3945
3897
  ref,
@@ -3952,8 +3904,8 @@ var SelectContent = React21.forwardRef(function SelectContent2({ className, chil
3952
3904
  ),
3953
3905
  ...props,
3954
3906
  children: [
3955
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(SelectScrollUpButton, {}),
3956
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3907
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(SelectScrollUpButton, {}),
3908
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3957
3909
  SelectPrimitive.Viewport,
3958
3910
  {
3959
3911
  "data-slot": "select-viewport",
@@ -3961,14 +3913,14 @@ var SelectContent = React21.forwardRef(function SelectContent2({ className, chil
3961
3913
  children
3962
3914
  }
3963
3915
  ),
3964
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(SelectScrollDownButton, {})
3916
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(SelectScrollDownButton, {})
3965
3917
  ]
3966
3918
  }
3967
3919
  ) });
3968
3920
  });
3969
3921
  SelectContent.displayName = SelectPrimitive.Content.displayName;
3970
- var SelectLabel = React21.forwardRef(function SelectLabel2({ className, ...props }, ref) {
3971
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3922
+ var SelectLabel = React25.forwardRef(function SelectLabel2({ className, ...props }, ref) {
3923
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
3972
3924
  SelectPrimitive.Label,
3973
3925
  {
3974
3926
  ref,
@@ -3990,8 +3942,8 @@ var SelectLabel = React21.forwardRef(function SelectLabel2({ className, ...props
3990
3942
  );
3991
3943
  });
3992
3944
  SelectLabel.displayName = SelectPrimitive.Label.displayName;
3993
- var SelectItem = React21.forwardRef(function SelectItem2({ className, children, ...props }, ref) {
3994
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
3945
+ var SelectItem = React25.forwardRef(function SelectItem2({ className, children, ...props }, ref) {
3946
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
3995
3947
  SelectPrimitive.Item,
3996
3948
  {
3997
3949
  ref,
@@ -4002,20 +3954,20 @@ var SelectItem = React21.forwardRef(function SelectItem2({ className, children,
4002
3954
  ),
4003
3955
  ...props,
4004
3956
  children: [
4005
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(SelectPrimitive.ItemText, { className: "truncate", children: renderTextContent(children, {
3957
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(SelectPrimitive.ItemText, { className: "truncate", children: renderTextContent(children, {
4006
3958
  as: "span",
4007
3959
  className: "block truncate text-[color:var(--sofya-text-default)]",
4008
3960
  size: "body",
4009
- style: inheritTypographyStyle2
3961
+ style: inheritedTypographyStyle
4010
3962
  }) }),
4011
- /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(SelectPrimitive.ItemIndicator, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "absolute right-4 inline-flex h-4 w-4 items-center justify-center text-primary", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Icon, { name: "check", size: 14 }) }) })
3963
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(SelectPrimitive.ItemIndicator, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: "absolute right-4 inline-flex h-4 w-4 items-center justify-center text-primary", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(Icon, { name: "check", size: 14 }) }) })
4012
3964
  ]
4013
3965
  }
4014
3966
  );
4015
3967
  });
4016
3968
  SelectItem.displayName = SelectPrimitive.Item.displayName;
4017
- var SelectSeparator = React21.forwardRef(function SelectSeparator2({ className, ...props }, ref) {
4018
- return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3969
+ var SelectSeparator = React25.forwardRef(function SelectSeparator2({ className, ...props }, ref) {
3970
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4019
3971
  SelectPrimitive.Separator,
4020
3972
  {
4021
3973
  ref,
@@ -4028,11 +3980,11 @@ var SelectSeparator = React21.forwardRef(function SelectSeparator2({ className,
4028
3980
  SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
4029
3981
 
4030
3982
  // src/components/separator.tsx
4031
- var React22 = __toESM(require("react"), 1);
3983
+ var React26 = __toESM(require("react"), 1);
4032
3984
  var SeparatorPrimitive = __toESM(require("@radix-ui/react-separator"), 1);
4033
- var import_jsx_runtime25 = require("react/jsx-runtime");
4034
- var Separator2 = React22.forwardRef(function Separator3({ className, decorative = true, orientation = "horizontal", ...props }, ref) {
4035
- return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
3985
+ var import_jsx_runtime28 = require("react/jsx-runtime");
3986
+ var Separator2 = React26.forwardRef(function Separator3({ className, decorative = true, orientation = "horizontal", ...props }, ref) {
3987
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
4036
3988
  SeparatorPrimitive.Root,
4037
3989
  {
4038
3990
  ref,
@@ -4051,8 +4003,8 @@ var Separator2 = React22.forwardRef(function Separator3({ className, decorative
4051
4003
  Separator2.displayName = SeparatorPrimitive.Root.displayName;
4052
4004
 
4053
4005
  // src/components/slider.tsx
4054
- var React23 = __toESM(require("react"), 1);
4055
- var import_jsx_runtime26 = require("react/jsx-runtime");
4006
+ var React27 = __toESM(require("react"), 1);
4007
+ var import_jsx_runtime29 = require("react/jsx-runtime");
4056
4008
  function clampSliderValue(value, min, max) {
4057
4009
  if (Number.isNaN(value)) {
4058
4010
  return min;
@@ -4077,7 +4029,7 @@ function resolveSliderMeasurement(value, fallback) {
4077
4029
  function isTextValue(value) {
4078
4030
  return typeof value === "string" || typeof value === "number";
4079
4031
  }
4080
- var Slider = React23.forwardRef(function Slider2({
4032
+ var Slider = React27.forwardRef(function Slider2({
4081
4033
  className,
4082
4034
  defaultValue,
4083
4035
  formatValue,
@@ -4100,23 +4052,28 @@ var Slider = React23.forwardRef(function Slider2({
4100
4052
  valueClassName,
4101
4053
  ...props
4102
4054
  }, ref) {
4103
- const resolvedId = React23.useId();
4055
+ const resolvedId = React27.useId();
4104
4056
  const inputId = id ?? resolvedId;
4105
4057
  const safeMin = min;
4106
4058
  const safeMax = resolveSliderMax(safeMin, max);
4107
- const isControlled = value !== void 0;
4108
- const [internalValue, setInternalValue] = React23.useState(
4109
- () => clampSliderValue(defaultValue ?? safeMin, safeMin, safeMax)
4110
- );
4111
- React23.useEffect(() => {
4112
- if (isControlled) {
4059
+ const [controllableValue, setControllableValue, setUncontrolledValue] = useControllableState({
4060
+ defaultValue: clampSliderValue(defaultValue ?? safeMin, safeMin, safeMax),
4061
+ onChange: onValueChange,
4062
+ value
4063
+ });
4064
+ React27.useEffect(() => {
4065
+ if (value !== void 0) {
4113
4066
  return;
4114
4067
  }
4115
- setInternalValue(
4116
- (currentValue2) => clampSliderValue(currentValue2, safeMin, safeMax)
4068
+ setUncontrolledValue(
4069
+ (currentValue2) => clampSliderValue(currentValue2 ?? safeMin, safeMin, safeMax)
4117
4070
  );
4118
- }, [isControlled, safeMax, safeMin]);
4119
- const currentValue = isControlled ? clampSliderValue(value ?? safeMin, safeMin, safeMax) : internalValue;
4071
+ }, [safeMax, safeMin, setUncontrolledValue, value]);
4072
+ const currentValue = clampSliderValue(
4073
+ controllableValue ?? safeMin,
4074
+ safeMin,
4075
+ safeMax
4076
+ );
4120
4077
  const valueRatio = safeMax === safeMin ? 0 : (currentValue - safeMin) / (safeMax - safeMin);
4121
4078
  const valuePercentage = valueRatio * 100;
4122
4079
  const formattedValue = formatValue?.(currentValue) ?? currentValue.toString();
@@ -4148,38 +4105,29 @@ var Slider = React23.forwardRef(function Slider2({
4148
4105
  safeMin,
4149
4106
  safeMax
4150
4107
  );
4151
- if (!isControlled) {
4152
- setInternalValue(nextValue);
4153
- }
4108
+ setControllableValue(nextValue);
4154
4109
  onChange?.(event);
4155
- onValueChange?.(nextValue);
4156
4110
  };
4157
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
4111
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
4158
4112
  "div",
4159
4113
  {
4160
4114
  "data-slot": "slider",
4161
4115
  className: cn("grid w-full gap-2", className),
4162
4116
  children: [
4163
- label || showValue ? /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex items-center justify-between gap-4", children: [
4164
- label ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
4165
- "label",
4117
+ label || showValue ? /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "flex items-center justify-between gap-4", children: [
4118
+ label ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
4119
+ FieldLabel,
4166
4120
  {
4167
4121
  htmlFor: inputId,
4168
4122
  className: cn(
4169
- "min-w-0 text-[color:var(--sofya-text-default)]",
4123
+ "min-w-0",
4170
4124
  labelClassName
4171
4125
  ),
4172
- children: renderTextContent(label, {
4173
- as: "span",
4174
- className: "block text-[color:var(--sofya-text-default)]",
4175
- size: "body",
4176
- style: {
4177
- fontWeight: 500
4178
- }
4179
- })
4126
+ textClassName: "block min-w-0 text-[color:var(--sofya-text-default)]",
4127
+ children: label
4180
4128
  }
4181
- ) : /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", {}),
4182
- showValue ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
4129
+ ) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", {}),
4130
+ showValue ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
4183
4131
  "div",
4184
4132
  {
4185
4133
  className: cn(
@@ -4197,7 +4145,7 @@ var Slider = React23.forwardRef(function Slider2({
4197
4145
  }
4198
4146
  ) : null
4199
4147
  ] }) : null,
4200
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
4148
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
4201
4149
  "div",
4202
4150
  {
4203
4151
  "data-slot": "slider-control",
@@ -4207,7 +4155,7 @@ var Slider = React23.forwardRef(function Slider2({
4207
4155
  ),
4208
4156
  style: controlStyle,
4209
4157
  children: [
4210
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
4158
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
4211
4159
  "input",
4212
4160
  {
4213
4161
  ...props,
@@ -4224,7 +4172,7 @@ var Slider = React23.forwardRef(function Slider2({
4224
4172
  style: inputBoundsStyle
4225
4173
  }
4226
4174
  ),
4227
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
4175
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
4228
4176
  "div",
4229
4177
  {
4230
4178
  "data-slot": "slider-track",
@@ -4235,7 +4183,7 @@ var Slider = React23.forwardRef(function Slider2({
4235
4183
  style: trackBoundsStyle
4236
4184
  }
4237
4185
  ),
4238
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
4186
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
4239
4187
  "div",
4240
4188
  {
4241
4189
  "data-slot": "slider-range",
@@ -4246,7 +4194,7 @@ var Slider = React23.forwardRef(function Slider2({
4246
4194
  style: rangeStyle
4247
4195
  }
4248
4196
  ),
4249
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
4197
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
4250
4198
  "div",
4251
4199
  {
4252
4200
  "data-slot": "slider-thumb",
@@ -4267,10 +4215,10 @@ var Slider = React23.forwardRef(function Slider2({
4267
4215
  Slider.displayName = "Slider";
4268
4216
 
4269
4217
  // src/components/skeleton.tsx
4270
- var React24 = __toESM(require("react"), 1);
4271
- var import_jsx_runtime27 = require("react/jsx-runtime");
4272
- var Skeleton = React24.forwardRef(function Skeleton2({ className, ...props }, ref) {
4273
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
4218
+ var React28 = __toESM(require("react"), 1);
4219
+ var import_jsx_runtime30 = require("react/jsx-runtime");
4220
+ var Skeleton = React28.forwardRef(function Skeleton2({ className, ...props }, ref) {
4221
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4274
4222
  "div",
4275
4223
  {
4276
4224
  ref,
@@ -4285,15 +4233,15 @@ var Skeleton = React24.forwardRef(function Skeleton2({ className, ...props }, re
4285
4233
  Skeleton.displayName = "Skeleton";
4286
4234
 
4287
4235
  // src/components/sonner.tsx
4288
- var React25 = __toESM(require("react"), 1);
4236
+ var React29 = __toESM(require("react"), 1);
4289
4237
  var import_sonner = require("sonner");
4290
- var import_jsx_runtime28 = require("react/jsx-runtime");
4238
+ var import_jsx_runtime31 = require("react/jsx-runtime");
4291
4239
  var notificationVariantOptions = ["default", "success", "error", "warning"];
4292
4240
  function ToastStatusIcon({
4293
4241
  iconName,
4294
4242
  className
4295
4243
  }) {
4296
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
4244
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4297
4245
  "span",
4298
4246
  {
4299
4247
  "aria-hidden": "true",
@@ -4301,7 +4249,7 @@ function ToastStatusIcon({
4301
4249
  "inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-full border shadow-sofya-sm",
4302
4250
  className
4303
4251
  ),
4304
- children: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Icon, { name: iconName, size: 16 })
4252
+ children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Icon, { name: iconName, size: 16 })
4305
4253
  }
4306
4254
  );
4307
4255
  }
@@ -4322,35 +4270,35 @@ var defaultToastClassNames = {
4322
4270
  loading: "border-border bg-card text-foreground"
4323
4271
  };
4324
4272
  var defaultToastIcons = {
4325
- success: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
4273
+ success: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4326
4274
  ToastStatusIcon,
4327
4275
  {
4328
4276
  iconName: "check",
4329
4277
  className: "border-success/15 bg-success/12 text-success"
4330
4278
  }
4331
4279
  ),
4332
- error: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
4280
+ error: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4333
4281
  ToastStatusIcon,
4334
4282
  {
4335
4283
  iconName: "x",
4336
4284
  className: "border-destructive/15 bg-destructive/12 text-destructive"
4337
4285
  }
4338
4286
  ),
4339
- warning: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
4287
+ warning: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4340
4288
  ToastStatusIcon,
4341
4289
  {
4342
4290
  iconName: "question",
4343
4291
  className: "border-warning/20 bg-warning/15 text-foreground"
4344
4292
  }
4345
4293
  ),
4346
- info: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
4294
+ info: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4347
4295
  ToastStatusIcon,
4348
4296
  {
4349
4297
  iconName: "question",
4350
4298
  className: "border-primary/15 bg-primary/10 text-primary"
4351
4299
  }
4352
4300
  ),
4353
- close: /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(Icon, { name: "x", size: 12 })
4301
+ close: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Icon, { name: "x", size: 12 })
4354
4302
  };
4355
4303
  function mergeToastClassNames(overrides) {
4356
4304
  return {
@@ -4358,7 +4306,7 @@ function mergeToastClassNames(overrides) {
4358
4306
  ...overrides
4359
4307
  };
4360
4308
  }
4361
- var Toaster = React25.forwardRef(
4309
+ var Toaster = React29.forwardRef(
4362
4310
  function Toaster2({
4363
4311
  className,
4364
4312
  closeButton = true,
@@ -4370,7 +4318,7 @@ var Toaster = React25.forwardRef(
4370
4318
  visibleToasts = 5,
4371
4319
  ...props
4372
4320
  }, ref) {
4373
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
4321
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4374
4322
  import_sonner.Toaster,
4375
4323
  {
4376
4324
  ref,
@@ -4400,10 +4348,11 @@ var Toaster = React25.forwardRef(
4400
4348
  Toaster.displayName = "Toaster";
4401
4349
 
4402
4350
  // src/components/spinner.tsx
4403
- var React26 = __toESM(require("react"), 1);
4404
- var import_jsx_runtime29 = require("react/jsx-runtime");
4351
+ var React30 = __toESM(require("react"), 1);
4352
+ var import_icons_react6 = require("@tabler/icons-react");
4353
+ var import_jsx_runtime32 = require("react/jsx-runtime");
4405
4354
  var spinnerSizeOptions = ["sm", "default", "lg"];
4406
- var Spinner = React26.forwardRef(function Spinner2({
4355
+ var Spinner = React30.forwardRef(function Spinner2({
4407
4356
  "aria-label": ariaLabelProp,
4408
4357
  "aria-labelledby": ariaLabelledby,
4409
4358
  className,
@@ -4412,15 +4361,12 @@ var Spinner = React26.forwardRef(function Spinner2({
4412
4361
  ...props
4413
4362
  }, ref) {
4414
4363
  const ariaLabel = ariaLabelProp ?? (ariaLabelledby ? void 0 : "Loading");
4415
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
4416
- "svg",
4364
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4365
+ import_icons_react6.IconLoader2,
4417
4366
  {
4418
4367
  ref,
4419
4368
  "data-size": size,
4420
4369
  "data-slot": "spinner",
4421
- viewBox: "0 0 24 24",
4422
- fill: "none",
4423
- xmlns: "http://www.w3.org/2000/svg",
4424
4370
  role,
4425
4371
  "aria-label": ariaLabel,
4426
4372
  "aria-labelledby": ariaLabelledby,
@@ -4428,30 +4374,18 @@ var Spinner = React26.forwardRef(function Spinner2({
4428
4374
  "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",
4429
4375
  className
4430
4376
  ),
4431
- ...props,
4432
- children: [
4433
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("circle", { cx: "12", cy: "12", r: "9", className: "opacity-20", stroke: "currentColor", strokeWidth: "3" }),
4434
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
4435
- "path",
4436
- {
4437
- d: "M21 12A9 9 0 0 0 12 3",
4438
- stroke: "currentColor",
4439
- strokeWidth: "3",
4440
- strokeLinecap: "round"
4441
- }
4442
- )
4443
- ]
4377
+ ...props
4444
4378
  }
4445
4379
  );
4446
4380
  });
4447
4381
  Spinner.displayName = "Spinner";
4448
4382
 
4449
4383
  // src/components/switch.tsx
4450
- var React27 = __toESM(require("react"), 1);
4384
+ var React31 = __toESM(require("react"), 1);
4451
4385
  var SwitchPrimitives = __toESM(require("@radix-ui/react-switch"), 1);
4452
- var import_jsx_runtime30 = require("react/jsx-runtime");
4453
- var Switch = React27.forwardRef(({ className, ...props }, ref) => {
4454
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4386
+ var import_jsx_runtime33 = require("react/jsx-runtime");
4387
+ var Switch = React31.forwardRef(({ className, ...props }, ref) => {
4388
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4455
4389
  SwitchPrimitives.Root,
4456
4390
  {
4457
4391
  className: cn(
@@ -4460,7 +4394,7 @@ var Switch = React27.forwardRef(({ className, ...props }, ref) => {
4460
4394
  ),
4461
4395
  ...props,
4462
4396
  ref,
4463
- children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4397
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4464
4398
  SwitchPrimitives.Thumb,
4465
4399
  {
4466
4400
  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"
@@ -4473,8 +4407,8 @@ Switch.displayName = SwitchPrimitives.Root.displayName;
4473
4407
 
4474
4408
  // src/components/table.tsx
4475
4409
  var import_class_variance_authority8 = require("class-variance-authority");
4476
- var React28 = __toESM(require("react"), 1);
4477
- var import_jsx_runtime31 = require("react/jsx-runtime");
4410
+ var React32 = __toESM(require("react"), 1);
4411
+ var import_jsx_runtime34 = require("react/jsx-runtime");
4478
4412
  var tableCellVariantOptions = ["default", "primary", "muted"];
4479
4413
  var tableStatusToneOptions = [
4480
4414
  "active",
@@ -4524,21 +4458,13 @@ var tableActionButtonVariants = (0, import_class_variance_authority8.cva)(
4524
4458
  }
4525
4459
  }
4526
4460
  );
4527
- var inheritedTextStyle = {
4528
- fontFamily: "inherit",
4529
- fontSize: "inherit",
4530
- fontWeight: "inherit",
4531
- lineHeight: "inherit",
4532
- letterSpacing: "inherit",
4533
- color: "inherit"
4534
- };
4535
- var Table = React28.forwardRef(function Table2({ className, ...props }, ref) {
4536
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4461
+ var Table = React32.forwardRef(function Table2({ className, ...props }, ref) {
4462
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
4537
4463
  "div",
4538
4464
  {
4539
4465
  "data-slot": "table-container",
4540
4466
  className: "relative w-full overflow-x-auto",
4541
- children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4467
+ children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
4542
4468
  "table",
4543
4469
  {
4544
4470
  "data-slot": "table",
@@ -4553,8 +4479,8 @@ var Table = React28.forwardRef(function Table2({ className, ...props }, ref) {
4553
4479
  }
4554
4480
  );
4555
4481
  });
4556
- var TableHeader = React28.forwardRef(function TableHeader2({ className, ...props }, ref) {
4557
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4482
+ var TableHeader = React32.forwardRef(function TableHeader2({ className, ...props }, ref) {
4483
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
4558
4484
  "thead",
4559
4485
  {
4560
4486
  "data-slot": "table-header",
@@ -4567,8 +4493,8 @@ var TableHeader = React28.forwardRef(function TableHeader2({ className, ...props
4567
4493
  }
4568
4494
  );
4569
4495
  });
4570
- var TableBody = React28.forwardRef(function TableBody2({ className, ...props }, ref) {
4571
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4496
+ var TableBody = React32.forwardRef(function TableBody2({ className, ...props }, ref) {
4497
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
4572
4498
  "tbody",
4573
4499
  {
4574
4500
  "data-slot": "table-body",
@@ -4578,8 +4504,8 @@ var TableBody = React28.forwardRef(function TableBody2({ className, ...props },
4578
4504
  }
4579
4505
  );
4580
4506
  });
4581
- var TableFooter = React28.forwardRef(function TableFooter2({ className, ...props }, ref) {
4582
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4507
+ var TableFooter = React32.forwardRef(function TableFooter2({ className, ...props }, ref) {
4508
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
4583
4509
  "tfoot",
4584
4510
  {
4585
4511
  "data-slot": "table-footer",
@@ -4592,8 +4518,8 @@ var TableFooter = React28.forwardRef(function TableFooter2({ className, ...props
4592
4518
  }
4593
4519
  );
4594
4520
  });
4595
- var TableRow = React28.forwardRef(function TableRow2({ className, ...props }, ref) {
4596
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4521
+ var TableRow = React32.forwardRef(function TableRow2({ className, ...props }, ref) {
4522
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
4597
4523
  "tr",
4598
4524
  {
4599
4525
  "data-slot": "table-row",
@@ -4606,8 +4532,8 @@ var TableRow = React28.forwardRef(function TableRow2({ className, ...props }, re
4606
4532
  }
4607
4533
  );
4608
4534
  });
4609
- var TableHead = React28.forwardRef(function TableHead2({ className, children, ...props }, ref) {
4610
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4535
+ var TableHead = React32.forwardRef(function TableHead2({ className, children, ...props }, ref) {
4536
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
4611
4537
  "th",
4612
4538
  {
4613
4539
  "data-slot": "table-head",
@@ -4621,14 +4547,14 @@ var TableHead = React28.forwardRef(function TableHead2({ className, children, ..
4621
4547
  as: "span",
4622
4548
  className: "inline-flex items-center gap-2 text-inherit",
4623
4549
  size: "tiny",
4624
- style: inheritedTextStyle
4550
+ style: inheritedTypographyStyle
4625
4551
  })
4626
4552
  }
4627
4553
  );
4628
4554
  });
4629
- var TableCell = React28.forwardRef(
4555
+ var TableCell = React32.forwardRef(
4630
4556
  function TableCell2({ className, variant, children, ...props }, ref) {
4631
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4557
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
4632
4558
  "td",
4633
4559
  {
4634
4560
  "data-slot": "table-cell",
@@ -4639,14 +4565,14 @@ var TableCell = React28.forwardRef(
4639
4565
  as: "span",
4640
4566
  className: "block text-inherit [&_svg]:h-[1em] [&_svg]:w-[1em] [&_svg]:shrink-0",
4641
4567
  size: "body",
4642
- style: inheritedTextStyle
4568
+ style: inheritedTypographyStyle
4643
4569
  })
4644
4570
  }
4645
4571
  );
4646
4572
  }
4647
4573
  );
4648
- var TableCaption = React28.forwardRef(function TableCaption2({ className, children, ...props }, ref) {
4649
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4574
+ var TableCaption = React32.forwardRef(function TableCaption2({ className, children, ...props }, ref) {
4575
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
4650
4576
  "caption",
4651
4577
  {
4652
4578
  "data-slot": "table-caption",
@@ -4660,7 +4586,7 @@ var TableCaption = React28.forwardRef(function TableCaption2({ className, childr
4660
4586
  as: "span",
4661
4587
  className: "block text-inherit",
4662
4588
  size: "body",
4663
- style: inheritedTextStyle
4589
+ style: inheritedTypographyStyle
4664
4590
  })
4665
4591
  }
4666
4592
  );
@@ -4671,7 +4597,7 @@ function TableStatusBadge({
4671
4597
  children,
4672
4598
  ...props
4673
4599
  }) {
4674
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4600
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
4675
4601
  Badge,
4676
4602
  {
4677
4603
  variant: "pill",
@@ -4681,13 +4607,13 @@ function TableStatusBadge({
4681
4607
  as: "span",
4682
4608
  className: "inline-flex items-center gap-2 text-inherit [&_svg]:h-[1em] [&_svg]:w-[1em] [&_svg]:shrink-0",
4683
4609
  size: "tiny",
4684
- style: inheritedTextStyle
4610
+ style: inheritedTypographyStyle
4685
4611
  })
4686
4612
  }
4687
4613
  );
4688
4614
  }
4689
- var TableActionButton = React28.forwardRef(function TableActionButton2({ className, tone, type = "button", children, ...props }, ref) {
4690
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4615
+ var TableActionButton = React32.forwardRef(function TableActionButton2({ className, tone, type = "button", children, ...props }, ref) {
4616
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
4691
4617
  Button,
4692
4618
  {
4693
4619
  ref,
@@ -4700,13 +4626,13 @@ var TableActionButton = React28.forwardRef(function TableActionButton2({ classNa
4700
4626
  as: "span",
4701
4627
  className: "inline-flex items-center justify-center text-inherit [&_svg]:h-[1em] [&_svg]:w-[1em] [&_svg]:shrink-0",
4702
4628
  size: "body",
4703
- style: inheritedTextStyle
4629
+ style: inheritedTypographyStyle
4704
4630
  })
4705
4631
  }
4706
4632
  );
4707
4633
  });
4708
- var TableActions = React28.forwardRef(function TableActions2({ className, ...props }, ref) {
4709
- return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
4634
+ var TableActions = React32.forwardRef(function TableActions2({ className, ...props }, ref) {
4635
+ return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
4710
4636
  "div",
4711
4637
  {
4712
4638
  ref,
@@ -4727,10 +4653,10 @@ TableActionButton.displayName = "TableActionButton";
4727
4653
  TableActions.displayName = "TableActions";
4728
4654
 
4729
4655
  // src/components/tabs.tsx
4730
- var React29 = __toESM(require("react"), 1);
4656
+ var React33 = __toESM(require("react"), 1);
4731
4657
  var TabsPrimitive = __toESM(require("@radix-ui/react-tabs"), 1);
4732
4658
  var import_react3 = require("motion/react");
4733
- var import_jsx_runtime32 = require("react/jsx-runtime");
4659
+ var import_jsx_runtime35 = require("react/jsx-runtime");
4734
4660
  function resolveDefaultValue(items, defaultValue) {
4735
4661
  if (defaultValue) {
4736
4662
  return defaultValue;
@@ -4749,33 +4675,26 @@ function Tabs({
4749
4675
  ...props
4750
4676
  }) {
4751
4677
  const resolvedDefaultValue = resolveDefaultValue(items, defaultValue);
4752
- const isControlled = value !== void 0;
4753
- const [selectedValue, setSelectedValue] = React29.useState(resolvedDefaultValue);
4754
- const indicatorLayoutId = React29.useId();
4755
- const currentValue = isControlled ? value : selectedValue;
4756
- React29.useEffect(() => {
4757
- if (!isControlled) {
4758
- setSelectedValue(resolvedDefaultValue);
4678
+ const [currentValue, setCurrentValue, setUncontrolledCurrentValue] = useControllableState({
4679
+ defaultValue: resolvedDefaultValue,
4680
+ onChange: onValueChange,
4681
+ value
4682
+ });
4683
+ const indicatorLayoutId = React33.useId();
4684
+ React33.useEffect(() => {
4685
+ if (value === void 0) {
4686
+ setUncontrolledCurrentValue(resolvedDefaultValue);
4759
4687
  }
4760
- }, [isControlled, resolvedDefaultValue]);
4761
- const handleValueChange = React29.useCallback(
4762
- (nextValue) => {
4763
- if (!isControlled) {
4764
- setSelectedValue(nextValue);
4765
- }
4766
- onValueChange?.(nextValue);
4767
- },
4768
- [isControlled, onValueChange]
4769
- );
4770
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
4688
+ }, [resolvedDefaultValue, setUncontrolledCurrentValue, value]);
4689
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
4771
4690
  TabsPrimitive.Root,
4772
4691
  {
4773
4692
  className: cn("w-full", className),
4774
- onValueChange: handleValueChange,
4693
+ onValueChange: setCurrentValue,
4775
4694
  value: currentValue,
4776
4695
  ...props,
4777
4696
  children: [
4778
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4697
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
4779
4698
  TabsPrimitive.List,
4780
4699
  {
4781
4700
  "aria-label": "Subtelas navegaveis",
@@ -4786,7 +4705,7 @@ function Tabs({
4786
4705
  children: items.map((item) => {
4787
4706
  const isUnavailable = item.disabled || item.loading;
4788
4707
  const isActive = item.value === currentValue;
4789
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
4708
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
4790
4709
  TabsPrimitive.Trigger,
4791
4710
  {
4792
4711
  value: item.value,
@@ -4798,7 +4717,7 @@ function Tabs({
4798
4717
  item.triggerClassName
4799
4718
  ),
4800
4719
  children: [
4801
- isActive ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4720
+ isActive ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
4802
4721
  import_react3.motion.span,
4803
4722
  {
4804
4723
  "aria-hidden": "true",
@@ -4808,15 +4727,15 @@ function Tabs({
4808
4727
  transition: { duration: 0.25, ease: "easeInOut" }
4809
4728
  }
4810
4729
  ) : null,
4811
- /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("span", { className: "relative z-10 inline-flex items-center gap-2", children: [
4812
- item.loading ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4730
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("span", { className: "relative z-10 inline-flex items-center gap-2", children: [
4731
+ item.loading ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
4813
4732
  "span",
4814
4733
  {
4815
4734
  "aria-hidden": "true",
4816
4735
  className: "h-4 w-4 animate-spin rounded-full border-2 border-current border-r-transparent"
4817
4736
  }
4818
4737
  ) : null,
4819
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { children: renderTextContent(item.label, {
4738
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { children: renderTextContent(item.label, {
4820
4739
  as: "span",
4821
4740
  className: "block text-inherit",
4822
4741
  size: "h5"
@@ -4830,7 +4749,7 @@ function Tabs({
4830
4749
  }
4831
4750
  ),
4832
4751
  items.map(
4833
- (item) => item.content !== void 0 ? /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
4752
+ (item) => item.content !== void 0 ? /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
4834
4753
  TabsPrimitive.Content,
4835
4754
  {
4836
4755
  value: item.value,
@@ -4853,9 +4772,9 @@ function Tabs({
4853
4772
  Tabs.displayName = "Tabs";
4854
4773
 
4855
4774
  // src/components/textarea.tsx
4856
- var React30 = __toESM(require("react"), 1);
4857
- var import_jsx_runtime33 = require("react/jsx-runtime");
4858
- var Textarea = React30.forwardRef(
4775
+ var React34 = __toESM(require("react"), 1);
4776
+ var import_jsx_runtime36 = require("react/jsx-runtime");
4777
+ var Textarea = React34.forwardRef(
4859
4778
  ({
4860
4779
  className,
4861
4780
  containerClassName,
@@ -4865,10 +4784,10 @@ var Textarea = React30.forwardRef(
4865
4784
  rows = 5,
4866
4785
  ...props
4867
4786
  }, ref) => {
4868
- const generatedId = React30.useId();
4787
+ const generatedId = React34.useId();
4869
4788
  const resolvedId = id ?? generatedId;
4870
4789
  const ariaLabel = props["aria-label"] ?? (typeof label === "string" ? label : void 0);
4871
- const control = /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4790
+ const control = /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
4872
4791
  "textarea",
4873
4792
  {
4874
4793
  className: cn(
@@ -4882,43 +4801,29 @@ var Textarea = React30.forwardRef(
4882
4801
  "aria-label": ariaLabel
4883
4802
  }
4884
4803
  );
4885
- if (!label && !containerClassName) {
4886
- return control;
4887
- }
4888
- return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: cn("grid w-full gap-2", containerClassName), children: [
4889
- label ? /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
4890
- "label",
4891
- {
4892
- className: cn(
4893
- "text-[color:var(--sofya-text-default)]",
4894
- labelClassName
4895
- ),
4896
- htmlFor: resolvedId,
4897
- children: renderTextContent(label, {
4898
- as: "span",
4899
- className: "block text-[color:var(--sofya-text-default)]",
4900
- size: "body",
4901
- style: {
4902
- fontWeight: 500
4903
- }
4904
- })
4905
- }
4906
- ) : null,
4907
- control
4908
- ] });
4804
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
4805
+ FieldShell,
4806
+ {
4807
+ control,
4808
+ containerClassName,
4809
+ label,
4810
+ labelClassName,
4811
+ labelHtmlFor: resolvedId
4812
+ }
4813
+ );
4909
4814
  }
4910
4815
  );
4911
4816
  Textarea.displayName = "Textarea";
4912
4817
 
4913
4818
  // src/components/tooltip.tsx
4914
- var React31 = __toESM(require("react"), 1);
4819
+ var React35 = __toESM(require("react"), 1);
4915
4820
  var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"), 1);
4916
- var import_jsx_runtime34 = require("react/jsx-runtime");
4821
+ var import_jsx_runtime37 = require("react/jsx-runtime");
4917
4822
  var TooltipProvider = TooltipPrimitive.Provider;
4918
4823
  var Tooltip = TooltipPrimitive.Root;
4919
4824
  var TooltipTrigger = TooltipPrimitive.Trigger;
4920
- var TooltipContent = React31.forwardRef(function TooltipContent2({ className, sideOffset = 8, ...props }, ref) {
4921
- return /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(TooltipPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
4825
+ var TooltipContent = React35.forwardRef(function TooltipContent2({ className, sideOffset = 8, ...props }, ref) {
4826
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(TooltipPrimitive.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
4922
4827
  TooltipPrimitive.Content,
4923
4828
  {
4924
4829
  ref,
@@ -4942,9 +4847,9 @@ var TooltipContent = React31.forwardRef(function TooltipContent2({ className, si
4942
4847
  TooltipContent.displayName = TooltipPrimitive.Content.displayName;
4943
4848
 
4944
4849
  // src/theme/provider.tsx
4945
- var React32 = __toESM(require("react"), 1);
4850
+ var React36 = __toESM(require("react"), 1);
4946
4851
  var import_tokens = require("@sofya-ds/tokens");
4947
- var import_jsx_runtime35 = require("react/jsx-runtime");
4852
+ var import_jsx_runtime38 = require("react/jsx-runtime");
4948
4853
  var SOFYA_FONT_LINKS = [
4949
4854
  {
4950
4855
  id: "preconnect-googleapis",
@@ -4964,7 +4869,7 @@ var SOFYA_FONT_LINKS = [
4964
4869
  }
4965
4870
  ];
4966
4871
  function useSofyaFontLinks() {
4967
- React32.useEffect(() => {
4872
+ React36.useEffect(() => {
4968
4873
  if (typeof document === "undefined") {
4969
4874
  return;
4970
4875
  }
@@ -4997,7 +4902,7 @@ function SofyaProvider({
4997
4902
  useSofyaFontLinks();
4998
4903
  const theme = (0, import_tokens.createWhitelabelTheme)(overrides ?? {}, preset);
4999
4904
  const cssVariables = (0, import_tokens.themeToCssVariables)(theme);
5000
- return /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
4905
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
5001
4906
  "div",
5002
4907
  {
5003
4908
  "data-sofya-theme": theme.name,
@@ -5141,6 +5046,7 @@ var import_tokens2 = require("@sofya-ds/tokens");
5141
5046
  hexToHslChannels,
5142
5047
  iconColorOptions,
5143
5048
  iconNames,
5049
+ iconSizeMap,
5144
5050
  iconSizeOptions,
5145
5051
  inputVariantOptions,
5146
5052
  isTextContent,