@photon-ai/pho-ui 2.1.1 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/dist/chunks/IconAlertCircleFilled-VxKU8TYK.js.map +1 -1
  2. package/dist/chunks/IconArrowUpRight-DGgKzQwV.js.map +1 -1
  3. package/dist/chunks/IconCheck-D2WuculQ.js.map +1 -1
  4. package/dist/chunks/IconChevronLeft-CSWMKQ4C.js.map +1 -1
  5. package/dist/chunks/IconInfoCircle-L0zfhg7R.js.map +1 -1
  6. package/dist/chunks/IconX-pZ9vrtSr.js.map +1 -1
  7. package/dist/chunks/animated-height-C2eQstGy.js.map +1 -1
  8. package/dist/chunks/{avatar-CiAvJNNs.js → avatar-BkmGDIqf.js} +3 -3
  9. package/dist/chunks/{avatar-CiAvJNNs.js.map → avatar-BkmGDIqf.js.map} +1 -1
  10. package/dist/chunks/basic-page-CB36yrpL.js +643 -0
  11. package/dist/chunks/basic-page-CB36yrpL.js.map +1 -0
  12. package/dist/chunks/{button-X5wsWvRa.js → button-BmhyLgy5.js} +3 -3
  13. package/dist/chunks/{button-X5wsWvRa.js.map → button-BmhyLgy5.js.map} +1 -1
  14. package/dist/chunks/{card-9cGnv-VD.js → card-DSW3Uhag.js} +2 -2
  15. package/dist/chunks/{card-9cGnv-VD.js.map → card-DSW3Uhag.js.map} +1 -1
  16. package/dist/chunks/{close-button-xadxp0j8.js → close-button-GvqWbLl0.js} +2 -2
  17. package/dist/chunks/{close-button-xadxp0j8.js.map → close-button-GvqWbLl0.js.map} +1 -1
  18. package/dist/chunks/{cn-DTiB6ek_.js → cn-ChIgwEl3.js} +99 -96
  19. package/dist/chunks/{cn-DTiB6ek_.js.map → cn-ChIgwEl3.js.map} +1 -1
  20. package/dist/chunks/{combobox-rLdS6fl-.js → combobox-Dj5m_dDd.js} +2 -2
  21. package/dist/chunks/{combobox-rLdS6fl-.js.map → combobox-Dj5m_dDd.js.map} +1 -1
  22. package/dist/chunks/createReactComponent-BqCmnqfX.js.map +1 -1
  23. package/dist/chunks/{dialog-BC23YRUq.js → dialog-DtFO7oy0.js} +5 -5
  24. package/dist/chunks/{dialog-BC23YRUq.js.map → dialog-DtFO7oy0.js.map} +1 -1
  25. package/dist/chunks/{error-DR6G2LmG.js → error-Da7P5WZi.js} +11 -10
  26. package/dist/chunks/{error-DR6G2LmG.js.map → error-Da7P5WZi.js.map} +1 -1
  27. package/dist/chunks/{input-D3XQcC4J.js → input-QSAUO30c.js} +2 -2
  28. package/dist/chunks/{input-D3XQcC4J.js.map → input-QSAUO30c.js.map} +1 -1
  29. package/dist/chunks/{input-group-D6dlma8k.js → input-group-5AtpIhC_.js} +2 -2
  30. package/dist/chunks/{input-group-D6dlma8k.js.map → input-group-5AtpIhC_.js.map} +1 -1
  31. package/dist/chunks/{menu-BC-9IP29.js → menu-Cgj3lq9z.js} +3 -3
  32. package/dist/chunks/{menu-BC-9IP29.js.map → menu-Cgj3lq9z.js.map} +1 -1
  33. package/dist/chunks/{popover-EL1SE1kj.js → popover-BhBJO346.js} +2 -2
  34. package/dist/chunks/{popover-EL1SE1kj.js.map → popover-BhBJO346.js.map} +1 -1
  35. package/dist/chunks/{scroll-area-CNZVwe7v.js → scroll-area-Cw4JFqNG.js} +2 -2
  36. package/dist/chunks/{scroll-area-CNZVwe7v.js.map → scroll-area-Cw4JFqNG.js.map} +1 -1
  37. package/dist/chunks/{sidebar-DDJC1MeD.js → sidebar-BETMObNj.js} +25 -24
  38. package/dist/chunks/{sidebar-DDJC1MeD.js.map → sidebar-BETMObNj.js.map} +1 -1
  39. package/dist/chunks/{spinner-Cy8bkyJf.js → spinner-BzLUo4Xk.js} +2 -2
  40. package/dist/chunks/{spinner-Cy8bkyJf.js.map → spinner-BzLUo4Xk.js.map} +1 -1
  41. package/dist/chunks/{status-view-CcbctPqR.js → status-view-C8tabjDu.js} +2 -2
  42. package/dist/chunks/{status-view-CcbctPqR.js.map → status-view-C8tabjDu.js.map} +1 -1
  43. package/dist/components/accordion.js +1 -1
  44. package/dist/components/autocomplete.js +1 -1
  45. package/dist/components/avatar.js +1 -1
  46. package/dist/components/badge.js +1 -1
  47. package/dist/components/button.js +2 -2
  48. package/dist/components/card.js +1 -1
  49. package/dist/components/checkbox.js +1 -1
  50. package/dist/components/checkbox.js.map +1 -1
  51. package/dist/components/collapsible.js +1 -1
  52. package/dist/components/combobox.js +1 -1
  53. package/dist/components/command.js +2 -2
  54. package/dist/components/command.js.map +1 -1
  55. package/dist/components/context-menu.js +2 -2
  56. package/dist/components/context-menu.js.map +1 -1
  57. package/dist/components/dialog.js +1 -1
  58. package/dist/components/drawer.js +1 -1
  59. package/dist/components/error.js +1 -1
  60. package/dist/components/field.js +1 -1
  61. package/dist/components/fieldset.js +1 -1
  62. package/dist/components/form.js +1 -1
  63. package/dist/components/input-group.js +1 -1
  64. package/dist/components/input.js +1 -1
  65. package/dist/components/kbd.js +1 -1
  66. package/dist/components/kbd.js.map +1 -1
  67. package/dist/components/menu.js +1 -1
  68. package/dist/components/menubar.js +1 -1
  69. package/dist/components/meter.js +1 -1
  70. package/dist/components/navigation-menu.js +1 -1
  71. package/dist/components/notification.js +1 -1
  72. package/dist/components/notification.js.map +1 -1
  73. package/dist/components/number-field.js +1 -1
  74. package/dist/components/otp-field.js +1 -1
  75. package/dist/components/otp-field.js.map +1 -1
  76. package/dist/components/phone-input.js +2064 -2050
  77. package/dist/components/phone-input.js.map +1 -1
  78. package/dist/components/popover.js +1 -1
  79. package/dist/components/preview-card.js +1 -1
  80. package/dist/components/progress.js +1 -1
  81. package/dist/components/radio-group.js +1 -1
  82. package/dist/components/radio-group.js.map +1 -1
  83. package/dist/components/scroll-area.js +1 -1
  84. package/dist/components/select.js +1 -1
  85. package/dist/components/select.js.map +1 -1
  86. package/dist/components/separator.js +1 -1
  87. package/dist/components/skeleton.js +1 -1
  88. package/dist/components/slider.js +1 -1
  89. package/dist/components/spinner.js +1 -1
  90. package/dist/components/status-view.js +1 -1
  91. package/dist/components/switch.js +1 -1
  92. package/dist/components/switch.js.map +1 -1
  93. package/dist/components/tabs.js +1 -1
  94. package/dist/components/theme-toggle.js +1 -1
  95. package/dist/components/theme-toggle.js.map +1 -1
  96. package/dist/components/toast.js +1 -1
  97. package/dist/components/toggle-group.js +1 -1
  98. package/dist/components/toggle.js +1 -1
  99. package/dist/components/toolbar.js +1 -1
  100. package/dist/components/tooltip.js +1 -1
  101. package/dist/icons.js.map +1 -1
  102. package/dist/index.js +11 -11
  103. package/dist/primitives.js +1 -3
  104. package/dist/sections/basic-page.js +1 -1
  105. package/dist/sections/sidebar.js +1 -1
  106. package/dist/src/components/toast/toast.d.ts +1 -1
  107. package/dist/src/sections/basic-page/basic-page.d.ts +57 -21
  108. package/dist/src/sections/basic-page/index.d.ts +1 -1
  109. package/dist/utils.js +1 -1
  110. package/package.json +21 -20
  111. package/dist/chunks/basic-page-x3aFcSVs.js +0 -482
  112. package/dist/chunks/basic-page-x3aFcSVs.js.map +0 -1
  113. package/dist/primitives.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"IconAlertCircleFilled-VxKU8TYK.js","names":[],"sources":["../../../../node_modules/.pnpm/@tabler+icons-react@3.44.0_react@19.2.7/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertCircleFilled.mjs"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.44.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M12 2c5.523 0 10 4.477 10 10a10 10 0 0 1 -19.995 .324l-.005 -.324l.004 -.28c.148 -5.393 4.566 -9.72 9.996 -9.72zm.01 13l-.127 .007a1 1 0 0 0 0 1.986l.117 .007l.127 -.007a1 1 0 0 0 0 -1.986l-.117 -.007zm-.01 -8a1 1 0 0 0 -.993 .883l-.007 .117v4l.007 .117a1 1 0 0 0 1.986 0l.007 -.117v-4l-.007 -.117a1 1 0 0 0 -.993 -.883z\", \"key\": \"svg-0\" }]];\nconst IconAlertCircleFilled = createReactComponent(\"filled\", \"alert-circle-filled\", \"AlertCircleFilled\", __iconNode);\n\nexport { __iconNode, IconAlertCircleFilled as default };\n//# sourceMappingURL=IconAlertCircleFilled.mjs.map\n"],"x_google_ignoreList":[0],"mappings":";;AASA,IAAM,IAAa,CAAC,CAAC,QAAQ;AAAA,EAAE,GAAK;AAAA,EAAoU,KAAO;AAAQ,CAAC,CAAC,GACnX,IAAwB,EAAqB,UAAU,uBAAuB,qBAAqB,CAAU"}
1
+ {"version":3,"file":"IconAlertCircleFilled-VxKU8TYK.js","names":[],"sources":["../../../../node_modules/.pnpm/@tabler+icons-react@3.46.0_react@19.2.8/node_modules/@tabler/icons-react/dist/esm/icons/IconAlertCircleFilled.mjs"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.46.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M12 2c5.523 0 10 4.477 10 10a10 10 0 0 1 -19.995 .324l-.005 -.324l.004 -.28c.148 -5.393 4.566 -9.72 9.996 -9.72zm.01 13l-.127 .007a1 1 0 0 0 0 1.986l.117 .007l.127 -.007a1 1 0 0 0 0 -1.986l-.117 -.007zm-.01 -8a1 1 0 0 0 -.993 .883l-.007 .117v4l.007 .117a1 1 0 0 0 1.986 0l.007 -.117v-4l-.007 -.117a1 1 0 0 0 -.993 -.883z\", \"key\": \"svg-0\" }]];\nconst IconAlertCircleFilled = createReactComponent(\"filled\", \"alert-circle-filled\", \"AlertCircleFilled\", __iconNode);\n\nexport { __iconNode, IconAlertCircleFilled as default };\n//# sourceMappingURL=IconAlertCircleFilled.mjs.map\n"],"x_google_ignoreList":[0],"mappings":";;AASA,IAAM,IAAa,CAAC,CAAC,QAAQ;AAAA,EAAE,GAAK;AAAA,EAAoU,KAAO;AAAQ,CAAC,CAAC,GACnX,IAAwB,EAAqB,UAAU,uBAAuB,qBAAqB,CAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconArrowUpRight-DGgKzQwV.js","names":[],"sources":["../../../../node_modules/.pnpm/@tabler+icons-react@3.44.0_react@19.2.7/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowUpRight.mjs"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.44.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M17 7l-10 10\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M8 7l9 0l0 9\", \"key\": \"svg-1\" }]];\nconst IconArrowUpRight = createReactComponent(\"outline\", \"arrow-up-right\", \"ArrowUpRight\", __iconNode);\n\nexport { __iconNode, IconArrowUpRight as default };\n//# sourceMappingURL=IconArrowUpRight.mjs.map\n"],"x_google_ignoreList":[0],"mappings":";;AASA,IAAM,IAAa,CAAC,CAAC,QAAQ;AAAA,EAAE,GAAK;AAAA,EAAgB,KAAO;AAAQ,CAAC,GAAG,CAAC,QAAQ;AAAA,EAAE,GAAK;AAAA,EAAgB,KAAO;AAAQ,CAAC,CAAC,GAClH,IAAmB,EAAqB,WAAW,kBAAkB,gBAAgB,CAAU"}
1
+ {"version":3,"file":"IconArrowUpRight-DGgKzQwV.js","names":[],"sources":["../../../../node_modules/.pnpm/@tabler+icons-react@3.46.0_react@19.2.8/node_modules/@tabler/icons-react/dist/esm/icons/IconArrowUpRight.mjs"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.46.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M17 7l-10 10\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M8 7l9 0l0 9\", \"key\": \"svg-1\" }]];\nconst IconArrowUpRight = createReactComponent(\"outline\", \"arrow-up-right\", \"ArrowUpRight\", __iconNode);\n\nexport { __iconNode, IconArrowUpRight as default };\n//# sourceMappingURL=IconArrowUpRight.mjs.map\n"],"x_google_ignoreList":[0],"mappings":";;AASA,IAAM,IAAa,CAAC,CAAC,QAAQ;AAAA,EAAE,GAAK;AAAA,EAAgB,KAAO;AAAQ,CAAC,GAAG,CAAC,QAAQ;AAAA,EAAE,GAAK;AAAA,EAAgB,KAAO;AAAQ,CAAC,CAAC,GAClH,IAAmB,EAAqB,WAAW,kBAAkB,gBAAgB,CAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconCheck-D2WuculQ.js","names":[],"sources":["../../../../node_modules/.pnpm/@tabler+icons-react@3.44.0_react@19.2.7/node_modules/@tabler/icons-react/dist/esm/icons/IconCheck.mjs"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.44.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M5 12l5 5l10 -10\", \"key\": \"svg-0\" }]];\nconst IconCheck = createReactComponent(\"outline\", \"check\", \"Check\", __iconNode);\n\nexport { __iconNode, IconCheck as default };\n//# sourceMappingURL=IconCheck.mjs.map\n"],"x_google_ignoreList":[0],"mappings":";;AASA,IAAM,IAAa,CAAC,CAAC,QAAQ;AAAA,EAAE,GAAK;AAAA,EAAoB,KAAO;AAAQ,CAAC,CAAC,GACnE,IAAY,EAAqB,WAAW,SAAS,SAAS,CAAU"}
1
+ {"version":3,"file":"IconCheck-D2WuculQ.js","names":[],"sources":["../../../../node_modules/.pnpm/@tabler+icons-react@3.46.0_react@19.2.8/node_modules/@tabler/icons-react/dist/esm/icons/IconCheck.mjs"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.46.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M5 12l5 5l10 -10\", \"key\": \"svg-0\" }]];\nconst IconCheck = createReactComponent(\"outline\", \"check\", \"Check\", __iconNode);\n\nexport { __iconNode, IconCheck as default };\n//# sourceMappingURL=IconCheck.mjs.map\n"],"x_google_ignoreList":[0],"mappings":";;AASA,IAAM,IAAa,CAAC,CAAC,QAAQ;AAAA,EAAE,GAAK;AAAA,EAAoB,KAAO;AAAQ,CAAC,CAAC,GACnE,IAAY,EAAqB,WAAW,SAAS,SAAS,CAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconChevronLeft-CSWMKQ4C.js","names":[],"sources":["../../../../node_modules/.pnpm/@tabler+icons-react@3.44.0_react@19.2.7/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronLeft.mjs"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.44.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M15 6l-6 6l6 6\", \"key\": \"svg-0\" }]];\nconst IconChevronLeft = createReactComponent(\"outline\", \"chevron-left\", \"ChevronLeft\", __iconNode);\n\nexport { __iconNode, IconChevronLeft as default };\n//# sourceMappingURL=IconChevronLeft.mjs.map\n"],"x_google_ignoreList":[0],"mappings":";;AASA,IAAM,IAAa,CAAC,CAAC,QAAQ;AAAA,EAAE,GAAK;AAAA,EAAkB,KAAO;AAAQ,CAAC,CAAC,GACjE,IAAkB,EAAqB,WAAW,gBAAgB,eAAe,CAAU"}
1
+ {"version":3,"file":"IconChevronLeft-CSWMKQ4C.js","names":[],"sources":["../../../../node_modules/.pnpm/@tabler+icons-react@3.46.0_react@19.2.8/node_modules/@tabler/icons-react/dist/esm/icons/IconChevronLeft.mjs"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.46.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M15 6l-6 6l6 6\", \"key\": \"svg-0\" }]];\nconst IconChevronLeft = createReactComponent(\"outline\", \"chevron-left\", \"ChevronLeft\", __iconNode);\n\nexport { __iconNode, IconChevronLeft as default };\n//# sourceMappingURL=IconChevronLeft.mjs.map\n"],"x_google_ignoreList":[0],"mappings":";;AASA,IAAM,IAAa,CAAC,CAAC,QAAQ;AAAA,EAAE,GAAK;AAAA,EAAkB,KAAO;AAAQ,CAAC,CAAC,GACjE,IAAkB,EAAqB,WAAW,gBAAgB,eAAe,CAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconInfoCircle-L0zfhg7R.js","names":[],"sources":["../../../../node_modules/.pnpm/@tabler+icons-react@3.44.0_react@19.2.7/node_modules/@tabler/icons-react/dist/esm/icons/IconInfoCircle.mjs"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.44.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M12 9h.01\", \"key\": \"svg-1\" }], [\"path\", { \"d\": \"M11 12h1v4h1\", \"key\": \"svg-2\" }]];\nconst IconInfoCircle = createReactComponent(\"outline\", \"info-circle\", \"InfoCircle\", __iconNode);\n\nexport { __iconNode, IconInfoCircle as default };\n//# sourceMappingURL=IconInfoCircle.mjs.map\n"],"x_google_ignoreList":[0],"mappings":";;AASA,IAAM,IAAa;AAAA,EAAC,CAAC,QAAQ;AAAA,IAAE,GAAK;AAAA,IAAwC,KAAO;AAAA,EAAQ,CAAC;AAAA,EAAG,CAAC,QAAQ;AAAA,IAAE,GAAK;AAAA,IAAa,KAAO;AAAA,EAAQ,CAAC;AAAA,EAAG,CAAC,QAAQ;AAAA,IAAE,GAAK;AAAA,IAAgB,KAAO;AAAA,EAAQ,CAAC;AAAC,GAC1L,IAAiB,EAAqB,WAAW,eAAe,cAAc,CAAU"}
1
+ {"version":3,"file":"IconInfoCircle-L0zfhg7R.js","names":[],"sources":["../../../../node_modules/.pnpm/@tabler+icons-react@3.46.0_react@19.2.8/node_modules/@tabler/icons-react/dist/esm/icons/IconInfoCircle.mjs"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.46.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M12 9h.01\", \"key\": \"svg-1\" }], [\"path\", { \"d\": \"M11 12h1v4h1\", \"key\": \"svg-2\" }]];\nconst IconInfoCircle = createReactComponent(\"outline\", \"info-circle\", \"InfoCircle\", __iconNode);\n\nexport { __iconNode, IconInfoCircle as default };\n//# sourceMappingURL=IconInfoCircle.mjs.map\n"],"x_google_ignoreList":[0],"mappings":";;AASA,IAAM,IAAa;AAAA,EAAC,CAAC,QAAQ;AAAA,IAAE,GAAK;AAAA,IAAwC,KAAO;AAAA,EAAQ,CAAC;AAAA,EAAG,CAAC,QAAQ;AAAA,IAAE,GAAK;AAAA,IAAa,KAAO;AAAA,EAAQ,CAAC;AAAA,EAAG,CAAC,QAAQ;AAAA,IAAE,GAAK;AAAA,IAAgB,KAAO;AAAA,EAAQ,CAAC;AAAC,GAC1L,IAAiB,EAAqB,WAAW,eAAe,cAAc,CAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"IconX-pZ9vrtSr.js","names":[],"sources":["../../../../node_modules/.pnpm/@tabler+icons-react@3.44.0_react@19.2.7/node_modules/@tabler/icons-react/dist/esm/icons/IconX.mjs"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.44.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M18 6l-12 12\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M6 6l12 12\", \"key\": \"svg-1\" }]];\nconst IconX = createReactComponent(\"outline\", \"x\", \"X\", __iconNode);\n\nexport { __iconNode, IconX as default };\n//# sourceMappingURL=IconX.mjs.map\n"],"x_google_ignoreList":[0],"mappings":";;AASA,IAAM,IAAa,CAAC,CAAC,QAAQ;AAAA,EAAE,GAAK;AAAA,EAAgB,KAAO;AAAQ,CAAC,GAAG,CAAC,QAAQ;AAAA,EAAE,GAAK;AAAA,EAAc,KAAO;AAAQ,CAAC,CAAC,GAChH,IAAQ,EAAqB,WAAW,KAAK,KAAK,CAAU"}
1
+ {"version":3,"file":"IconX-pZ9vrtSr.js","names":[],"sources":["../../../../node_modules/.pnpm/@tabler+icons-react@3.46.0_react@19.2.8/node_modules/@tabler/icons-react/dist/esm/icons/IconX.mjs"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.46.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M18 6l-12 12\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M6 6l12 12\", \"key\": \"svg-1\" }]];\nconst IconX = createReactComponent(\"outline\", \"x\", \"X\", __iconNode);\n\nexport { __iconNode, IconX as default };\n//# sourceMappingURL=IconX.mjs.map\n"],"x_google_ignoreList":[0],"mappings":";;AASA,IAAM,IAAa,CAAC,CAAC,QAAQ;AAAA,EAAE,GAAK;AAAA,EAAgB,KAAO;AAAQ,CAAC,GAAG,CAAC,QAAQ;AAAA,EAAE,GAAK;AAAA,EAAc,KAAO;AAAQ,CAAC,CAAC,GAChH,IAAQ,EAAqB,WAAW,KAAK,KAAK,CAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"animated-height-C2eQstGy.js","names":[],"sources":["../../src/utils/animated-height.tsx"],"sourcesContent":["import { useEffect, useRef, type ReactNode } from \"react\";\nimport {\n animate,\n motion,\n useMotionValue,\n useReducedMotion,\n type ValueAnimationTransition,\n} from \"motion/react\";\n\n/**\n * Height spring for container-size transitions — same feel as the onboarding /\n * invite card and BasicPage footer reveal: quick, critically damped (no\n * overshoot that would flash clipped content).\n */\nconst HEIGHT_SPRING = { type: \"spring\", stiffness: 640, damping: 50 } as const;\n\n/**\n * Animates its own height to follow the measured height of `children`, so\n * content swaps (search filtering, skeleton → data) glide instead of jumping.\n * Honors `prefers-reduced-motion` by snapping height with no spring.\n */\nexport function AnimatedHeight({\n className,\n transition,\n children,\n}: {\n className?: string;\n /** Spring override for the height follow. @default the Command spring */\n transition?: ValueAnimationTransition<number | \"auto\">;\n children: ReactNode;\n}) {\n const containerRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const height = useMotionValue<number | \"auto\">(\"auto\");\n const reduceMotion = useReducedMotion();\n\n useEffect(() => {\n const container = containerRef.current;\n const content = contentRef.current;\n if (!container || !content) return;\n\n let animation: ReturnType<typeof animate> | null = null;\n\n const observer = new ResizeObserver((entries) => {\n const box = entries[0]?.borderBoxSize?.[0];\n const next = box ? box.blockSize : content.offsetHeight;\n const current = height.get();\n if (current === \"auto\" || reduceMotion) {\n animation?.stop();\n animation = null;\n height.set(next);\n return;\n }\n if (!animation && Math.abs(current - next) < 0.5) return;\n animation?.stop();\n animation = animate(height, next, {\n ...(transition ?? HEIGHT_SPRING),\n onComplete: () => {\n animation = null;\n },\n });\n });\n observer.observe(content);\n\n return () => {\n observer.disconnect();\n animation?.stop();\n };\n }, [height, reduceMotion, transition]);\n\n return (\n <motion.div\n ref={containerRef}\n // Stack (and other flex parents) set `min-height: auto` on children,\n // which sizes to content and swallows the height spring. Clip and\n // allow shrinking so the measured height can actually animate.\n className=\"min-h-0 overflow-hidden\"\n style={{ height }}\n >\n <div ref={contentRef} className={className}>\n {children}\n </div>\n </motion.div>\n );\n}\n"],"mappings":";;;;AAcA,IAAM,IAAgB;AAAA,EAAE,MAAM;AAAA,EAAU,WAAW;AAAA,EAAK,SAAS;AAAG;AAOpE,SAAgB,EAAe,EAC7B,WAAA,GACA,YAAA,GACA,UAAA,EAAA,GAMC;AACD,QAAM,IAAe,EAAuB,IAAI,GAC1C,IAAa,EAAuB,IAAI,GACxC,IAAS,EAAgC,MAAM,GAC/C,IAAe,EAAiB;AAEtC,SAAA,EAAA,MAAgB;AACd,UAAM,IAAY,EAAa,SACzB,IAAU,EAAW;AAC3B,QAAI,CAAC,KAAa,CAAC,EAAS;AAE5B,QAAI,IAA+C;AAEnD,UAAM,IAAW,IAAI,eAAA,CAAgB,MAAY;AAC/C,YAAM,IAAM,EAAQ,CAAA,GAAI,gBAAgB,CAAA,GAClC,IAAO,IAAM,EAAI,YAAY,EAAQ,cACrC,IAAU,EAAO,IAAI;AAC3B,UAAI,MAAY,UAAU,GAAc;AACtC,QAAA,GAAW,KAAK,GAChB,IAAY,MACZ,EAAO,IAAI,CAAI;AACf;AAAA,MACF;AACA,MAAI,CAAC,KAAa,KAAK,IAAI,IAAU,CAAI,IAAI,QAC7C,GAAW,KAAK,GAChB,IAAY,EAAQ,GAAQ,GAAM;AAAA,QAChC,GAAI,KAAc;AAAA,QAClB,YAAA,MAAkB;AAChB,UAAA,IAAY;AAAA,QACd;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AACD,WAAA,EAAS,QAAQ,CAAO,GAExB,MAAa;AACX,MAAA,EAAS,WAAW,GACpB,GAAW,KAAK;AAAA,IAClB;AAAA,EACF,GAAG;AAAA,IAAC;AAAA,IAAQ;AAAA,IAAc;AAAA,EAAU,CAAC,GAGnC,gBAAA,EAAC,EAAO,KAAR;AAAA,IACE,KAAK;AAAA,IAIL,WAAU;AAAA,IACV,OAAO,EAAE,QAAA,EAAO;AAAA,cAEhB,gBAAA,EAAC,OAAD;AAAA,MAAK,KAAK;AAAA,MAAuB,WAAA;AAAA,MAC9B,UAAA;AAAA,IACE,CAAA;AAAA,EACK,CAAA;AAEhB"}
1
+ {"version":3,"file":"animated-height-C2eQstGy.js","names":[],"sources":["../../src/utils/animated-height.tsx"],"sourcesContent":["import { useEffect, useRef, type ReactNode } from \"react\";\nimport {\n animate,\n motion,\n useMotionValue,\n useReducedMotion,\n type ValueAnimationTransition,\n} from \"motion/react\";\n\n/**\n * Height spring for container-size transitions — same feel as the onboarding /\n * invite card and BasicPage footer reveal: quick, critically damped (no\n * overshoot that would flash clipped content).\n */\nconst HEIGHT_SPRING = { type: \"spring\", stiffness: 640, damping: 50 } as const;\n\n/**\n * Animates its own height to follow the measured height of `children`, so\n * content swaps (search filtering, skeleton → data) glide instead of jumping.\n * Honors `prefers-reduced-motion` by snapping height with no spring.\n */\nexport function AnimatedHeight({\n className,\n transition,\n children,\n}: {\n className?: string;\n /** Spring override for the height follow. @default the Command spring */\n transition?: ValueAnimationTransition<number | \"auto\">;\n children: ReactNode;\n}) {\n const containerRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const height = useMotionValue<number | \"auto\">(\"auto\");\n const reduceMotion = useReducedMotion();\n\n useEffect(() => {\n const container = containerRef.current;\n const content = contentRef.current;\n if (!container || !content) return;\n\n let animation: ReturnType<typeof animate> | null = null;\n\n const observer = new ResizeObserver((entries) => {\n const box = entries[0]?.borderBoxSize?.[0];\n const next = box ? box.blockSize : content.offsetHeight;\n const current = height.get();\n if (current === \"auto\" || reduceMotion) {\n animation?.stop();\n animation = null;\n height.set(next);\n return;\n }\n if (!animation && Math.abs(current - next) < 0.5) return;\n animation?.stop();\n animation = animate(height, next, {\n ...(transition ?? HEIGHT_SPRING),\n onComplete: () => {\n animation = null;\n },\n });\n });\n observer.observe(content);\n\n return () => {\n observer.disconnect();\n animation?.stop();\n };\n }, [height, reduceMotion, transition]);\n\n return (\n <motion.div\n ref={containerRef}\n // Stack (and other flex parents) set `min-height: auto` on children,\n // which sizes to content and swallows the height spring. Clip and\n // allow shrinking so the measured height can actually animate.\n className=\"min-h-0 overflow-hidden\"\n style={{ height }}\n >\n <div ref={contentRef} className={className}>\n {children}\n </div>\n </motion.div>\n );\n}\n"],"mappings":";;;;AAcA,IAAM,IAAgB;AAAA,EAAE,MAAM;AAAA,EAAU,WAAW;AAAA,EAAK,SAAS;AAAG;AAOpE,SAAgB,EAAe,EAC7B,WAAA,GACA,YAAA,GACA,UAAA,EAAA,GAMC;AACD,QAAM,IAAe,EAAuB,IAAI,GAC1C,IAAa,EAAuB,IAAI,GACxC,IAAS,EAAgC,MAAM,GAC/C,IAAe,EAAiB;AAEtC,SAAA,EAAA,MAAgB;AACd,UAAM,IAAY,EAAa,SACzB,IAAU,EAAW;AAC3B,QAAI,CAAC,KAAa,CAAC,EAAS;AAE5B,QAAI,IAA+C;AAEnD,UAAM,IAAW,IAAI,eAAA,CAAgB,MAAY;AAC/C,YAAM,IAAM,EAAQ,CAAA,GAAI,gBAAgB,CAAA,GAClC,IAAO,IAAM,EAAI,YAAY,EAAQ,cACrC,IAAU,EAAO,IAAI;AAC3B,UAAI,MAAY,UAAU,GAAc;AACtC,QAAA,GAAW,KAAK,GAChB,IAAY,MACZ,EAAO,IAAI,CAAI;AACf;AAAA,MACF;AACA,MAAI,CAAC,KAAa,KAAK,IAAI,IAAU,CAAI,IAAI,QAC7C,GAAW,KAAK,GAChB,IAAY,EAAQ,GAAQ,GAAM;AAAA,QAChC,GAAI,KAAc;AAAA,QAClB,YAAA,MAAkB;AAChB,UAAA,IAAY;AAAA,QACd;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AACD,WAAA,EAAS,QAAQ,CAAO,GAExB,MAAa;AACX,MAAA,EAAS,WAAW,GACpB,GAAW,KAAK;AAAA,IAClB;AAAA,EACF,GAAG;AAAA,IAAC;AAAA,IAAQ;AAAA,IAAc;AAAA,EAAU,CAAC,GAGnC,gBAAA,EAAC,EAAO,KAAR;AAAA,IACE,KAAK;AAAA,IAIL,WAAU;AAAA,IACV,OAAO,EAAE,QAAA,EAAO;AAAA,IAEhB,UAAA,gBAAA,EAAC,OAAD;AAAA,MAAK,KAAK;AAAA,MAAuB,WAAA;AAAA,MAC9B,UAAA;AAAA,IACE,CAAA;AAAA,EACK,CAAA;AAEhB"}
@@ -1,7 +1,7 @@
1
1
  "use client";
2
- import { t as n } from "./cn-DTiB6ek_.js";
2
+ import { t as n } from "./cn-ChIgwEl3.js";
3
3
  import { t as x } from "./resolve-variant-CcD8iG5l.js";
4
- import { n as z } from "./spinner-Cy8bkyJf.js";
4
+ import { n as z } from "./spinner-BzLUo4Xk.js";
5
5
  import { t as k } from "./createReactComponent-BqCmnqfX.js";
6
6
  import { forwardRef as N, useEffect as E, useRef as j, useState as R } from "react";
7
7
  import { jsx as s } from "react/jsx-runtime";
@@ -96,4 +96,4 @@ export {
96
96
  _ as t
97
97
  };
98
98
 
99
- //# sourceMappingURL=avatar-CiAvJNNs.js.map
99
+ //# sourceMappingURL=avatar-BkmGDIqf.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"avatar-CiAvJNNs.js","names":[],"sources":["../../../../node_modules/.pnpm/@tabler+icons-react@3.44.0_react@19.2.7/node_modules/@tabler/icons-react/dist/esm/icons/IconPencil.mjs","../../src/components/avatar/avatar.tsx"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.44.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M13.5 6.5l4 4\", \"key\": \"svg-1\" }]];\nconst IconPencil = createReactComponent(\"outline\", \"pencil\", \"Pencil\", __iconNode);\n\nexport { __iconNode, IconPencil as default };\n//# sourceMappingURL=IconPencil.mjs.map\n","import {\n forwardRef,\n useEffect,\n useRef,\n useState,\n type ButtonHTMLAttributes,\n type ComponentProps,\n type ElementType,\n type MouseEvent as ReactMouseEvent,\n type ReactNode,\n} from \"react\";\nimport { Avatar as BaseAvatar } from \"@base-ui/react/avatar\";\nimport { IconPencil } from \"@tabler/icons-react\";\nimport { cn } from \"../../utils/cn\";\nimport { resolveVariant, type VariantMap } from \"../../utils/resolve-variant\";\nimport { Spinner } from \"../spinner/spinner\";\n\n/** Override Base UI's `string | (state) => string` className with plain string. */\ntype StyledProps<T extends ElementType> = Omit<\n ComponentProps<T>,\n \"className\"\n> & {\n className?: string;\n};\n\n/** Size axis — four sizes, no `xl` (Geist-reductive). `md` is default. */\nexport const AVATAR_SIZES = {\n xs: {\n classes: \"size-6 text-[0.625rem]\",\n description: \"Extra small — inline chips and rails\",\n },\n sm: { classes: \"size-8 text-xs\", description: \"Small — dense lists\" },\n md: { classes: \"size-10 text-base\", description: \"Medium — the default\" },\n lg: { classes: \"size-12 text-md\", description: \"Large — profile headers\" },\n} satisfies VariantMap;\n\nexport type AvatarSize = keyof typeof AVATAR_SIZES;\n\ninterface RootProps extends StyledProps<typeof BaseAvatar.Root> {\n /** Size variant. @default \"md\" */\n size?: AvatarSize;\n}\n\nfunction Root({ className, size = \"md\", ...props }: RootProps) {\n return (\n <BaseAvatar.Root\n className={cn(\n // True circle at rest — `squircle` is for interactive chrome (hover /\n // rings), not resting media. `group` drives Avatar.Edit hover reveal.\n \"group bg-pho-secondary text-pho-secondary relative inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full align-middle font-medium select-none\",\n resolveVariant(AVATAR_SIZES, size),\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction Image({ className, ...props }: StyledProps<typeof BaseAvatar.Image>) {\n return (\n <BaseAvatar.Image\n className={cn(\"size-full object-cover\", className)}\n {...props}\n />\n );\n}\n\nfunction Fallback({\n className,\n ...props\n}: StyledProps<typeof BaseAvatar.Fallback>) {\n return (\n <BaseAvatar.Fallback\n className={cn(\"flex size-full items-center justify-center\", className)}\n {...props}\n />\n );\n}\n\nfunction isThenable(value: unknown): value is Promise<unknown> {\n return (\n value != null && typeof (value as { then?: unknown }).then === \"function\"\n );\n}\n\nexport interface EditProps extends Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n \"color\" | \"onClick\"\n> {\n /** Accessible label. @default \"Edit\" */\n label?: string;\n /**\n * Replace the default pencil icon. Pass `IconDots` when this button is a\n * `Menu.Trigger` (change + remove). Custom icons are sized automatically.\n */\n children?: ReactNode;\n /**\n * Declarative loading state (same visual as an in-flight promise).\n * @default false\n */\n loading?: boolean;\n /**\n * Action handler. Return a promise to keep the overlay visible with a\n * spinner until it settles. On rejection the control stays interactive —\n * surface errors inside the handler.\n */\n onClick?: (\n event: ReactMouseEvent<HTMLButtonElement>,\n ) => void | Promise<unknown>;\n}\n\n/**\n * Full-face edit control — overlay + icon that reveals on hover /\n * focus-visible / open menu. Default icon is pencil for a direct action;\n * pass children (e.g. `IconDots`) when composing a Menu. Wire behavior via\n * `onClick` (sync or async) or `Menu.Trigger` — no file input is built in.\n */\nconst Edit = forwardRef<HTMLButtonElement, EditProps>(function Edit(\n {\n label,\n className,\n children,\n onClick,\n loading = false,\n disabled = false,\n ...props\n },\n ref,\n) {\n const [busy, setBusy] = useState(false);\n const mountedRef = useRef(true);\n\n useEffect(() => {\n mountedRef.current = true;\n return () => {\n mountedRef.current = false;\n };\n }, []);\n\n const inert = busy || loading;\n\n function handleClick(event: ReactMouseEvent<HTMLButtonElement>) {\n if (inert || disabled) return;\n const result = onClick?.(event);\n if (!isThenable(result)) return;\n setBusy(true);\n result.then(\n () => {\n if (mountedRef.current) setBusy(false);\n },\n (error: unknown) => {\n if (mountedRef.current) setBusy(false);\n if (\n typeof process !== \"undefined\" &&\n process.env?.NODE_ENV !== \"production\"\n ) {\n console.error(\"Avatar.Edit: async onClick rejected —\", error);\n }\n },\n );\n }\n\n return (\n <button\n ref={ref}\n type=\"button\"\n aria-label={label || \"Edit\"}\n aria-busy={inert || undefined}\n aria-disabled={disabled || inert || undefined}\n disabled={disabled}\n data-loading={inert || undefined}\n {...props}\n onClick={handleClick}\n className={cn(\n // Stay visible while a Menu opened from this trigger is open\n // (`data-popup-open` from Base UI), or while an async action runs.\n \"bg-pho-overlay outline-pho-brand absolute inset-0 z-10 flex cursor-pointer items-center justify-center text-white opacity-0 transition-opacity duration-100 ease-linear group-hover:opacity-100 focus-visible:opacity-100 focus-visible:outline-2 focus-visible:outline-offset-2 data-loading:cursor-wait data-loading:opacity-100 data-[popup-open]:opacity-100\",\n className,\n )}\n >\n {inert ? (\n <Spinner className=\"size-[45%]\" />\n ) : children != null ? (\n <span className=\"flex size-[45%] shrink-0 items-center justify-center [&_svg]:size-full\">\n {children}\n </span>\n ) : (\n <IconPencil aria-hidden=\"true\" className=\"size-[45%] shrink-0\" />\n )}\n </button>\n );\n});\n\n/**\n * Avatar built on Base UI `Avatar`. Compose `Avatar.Image` with an\n * `Avatar.Fallback` (initials or icon) that shows while the image loads or if\n * it fails. Set `size` on `Avatar.Root`. Add `Avatar.Edit` when the avatar\n * itself should open a change-photo action.\n */\nexport const Avatar = { Root, Image, Fallback, Edit };\n"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"avatar-BkmGDIqf.js","names":[],"sources":["../../../../node_modules/.pnpm/@tabler+icons-react@3.46.0_react@19.2.8/node_modules/@tabler/icons-react/dist/esm/icons/IconPencil.mjs","../../src/components/avatar/avatar.tsx"],"sourcesContent":["/**\n * @license @tabler/icons-react v3.46.0 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createReactComponent from '../createReactComponent.mjs';\n\nconst __iconNode = [[\"path\", { \"d\": \"M4 20h4l10.5 -10.5a2.828 2.828 0 1 0 -4 -4l-10.5 10.5v4\", \"key\": \"svg-0\" }], [\"path\", { \"d\": \"M13.5 6.5l4 4\", \"key\": \"svg-1\" }]];\nconst IconPencil = createReactComponent(\"outline\", \"pencil\", \"Pencil\", __iconNode);\n\nexport { __iconNode, IconPencil as default };\n//# sourceMappingURL=IconPencil.mjs.map\n","import {\n forwardRef,\n useEffect,\n useRef,\n useState,\n type ButtonHTMLAttributes,\n type ComponentProps,\n type ElementType,\n type MouseEvent as ReactMouseEvent,\n type ReactNode,\n} from \"react\";\nimport { Avatar as BaseAvatar } from \"@base-ui/react/avatar\";\nimport { IconPencil } from \"@tabler/icons-react\";\nimport { cn } from \"../../utils/cn\";\nimport { resolveVariant, type VariantMap } from \"../../utils/resolve-variant\";\nimport { Spinner } from \"../spinner/spinner\";\n\n/** Override Base UI's `string | (state) => string` className with plain string. */\ntype StyledProps<T extends ElementType> = Omit<\n ComponentProps<T>,\n \"className\"\n> & {\n className?: string;\n};\n\n/** Size axis — four sizes, no `xl` (Geist-reductive). `md` is default. */\nexport const AVATAR_SIZES = {\n xs: {\n classes: \"size-6 text-[0.625rem]\",\n description: \"Extra small — inline chips and rails\",\n },\n sm: { classes: \"size-8 text-xs\", description: \"Small — dense lists\" },\n md: { classes: \"size-10 text-base\", description: \"Medium — the default\" },\n lg: { classes: \"size-12 text-md\", description: \"Large — profile headers\" },\n} satisfies VariantMap;\n\nexport type AvatarSize = keyof typeof AVATAR_SIZES;\n\ninterface RootProps extends StyledProps<typeof BaseAvatar.Root> {\n /** Size variant. @default \"md\" */\n size?: AvatarSize;\n}\n\nfunction Root({ className, size = \"md\", ...props }: RootProps) {\n return (\n <BaseAvatar.Root\n className={cn(\n // True circle at rest — `squircle` is for interactive chrome (hover /\n // rings), not resting media. `group` drives Avatar.Edit hover reveal.\n \"group bg-pho-secondary text-pho-secondary relative inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full align-middle font-medium select-none\",\n resolveVariant(AVATAR_SIZES, size),\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction Image({ className, ...props }: StyledProps<typeof BaseAvatar.Image>) {\n return (\n <BaseAvatar.Image\n className={cn(\"size-full object-cover\", className)}\n {...props}\n />\n );\n}\n\nfunction Fallback({\n className,\n ...props\n}: StyledProps<typeof BaseAvatar.Fallback>) {\n return (\n <BaseAvatar.Fallback\n className={cn(\"flex size-full items-center justify-center\", className)}\n {...props}\n />\n );\n}\n\nfunction isThenable(value: unknown): value is Promise<unknown> {\n return (\n value != null && typeof (value as { then?: unknown }).then === \"function\"\n );\n}\n\nexport interface EditProps extends Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n \"color\" | \"onClick\"\n> {\n /** Accessible label. @default \"Edit\" */\n label?: string;\n /**\n * Replace the default pencil icon. Pass `IconDots` when this button is a\n * `Menu.Trigger` (change + remove). Custom icons are sized automatically.\n */\n children?: ReactNode;\n /**\n * Declarative loading state (same visual as an in-flight promise).\n * @default false\n */\n loading?: boolean;\n /**\n * Action handler. Return a promise to keep the overlay visible with a\n * spinner until it settles. On rejection the control stays interactive —\n * surface errors inside the handler.\n */\n onClick?: (\n event: ReactMouseEvent<HTMLButtonElement>,\n ) => void | Promise<unknown>;\n}\n\n/**\n * Full-face edit control — overlay + icon that reveals on hover /\n * focus-visible / open menu. Default icon is pencil for a direct action;\n * pass children (e.g. `IconDots`) when composing a Menu. Wire behavior via\n * `onClick` (sync or async) or `Menu.Trigger` — no file input is built in.\n */\nconst Edit = forwardRef<HTMLButtonElement, EditProps>(function Edit(\n {\n label,\n className,\n children,\n onClick,\n loading = false,\n disabled = false,\n ...props\n },\n ref,\n) {\n const [busy, setBusy] = useState(false);\n const mountedRef = useRef(true);\n\n useEffect(() => {\n mountedRef.current = true;\n return () => {\n mountedRef.current = false;\n };\n }, []);\n\n const inert = busy || loading;\n\n function handleClick(event: ReactMouseEvent<HTMLButtonElement>) {\n if (inert || disabled) return;\n const result = onClick?.(event);\n if (!isThenable(result)) return;\n setBusy(true);\n result.then(\n () => {\n if (mountedRef.current) setBusy(false);\n },\n (error: unknown) => {\n if (mountedRef.current) setBusy(false);\n if (\n typeof process !== \"undefined\" &&\n process.env?.NODE_ENV !== \"production\"\n ) {\n console.error(\"Avatar.Edit: async onClick rejected —\", error);\n }\n },\n );\n }\n\n return (\n <button\n ref={ref}\n type=\"button\"\n aria-label={label || \"Edit\"}\n aria-busy={inert || undefined}\n aria-disabled={disabled || inert || undefined}\n disabled={disabled}\n data-loading={inert || undefined}\n {...props}\n onClick={handleClick}\n className={cn(\n // Stay visible while a Menu opened from this trigger is open\n // (`data-popup-open` from Base UI), or while an async action runs.\n \"bg-pho-overlay outline-pho-brand absolute inset-0 z-10 flex cursor-pointer items-center justify-center text-white opacity-0 transition-opacity duration-100 ease-linear group-hover:opacity-100 focus-visible:opacity-100 focus-visible:outline-2 focus-visible:outline-offset-2 data-loading:cursor-wait data-loading:opacity-100 data-[popup-open]:opacity-100\",\n className,\n )}\n >\n {inert ? (\n <Spinner className=\"size-[45%]\" />\n ) : children != null ? (\n <span className=\"flex size-[45%] shrink-0 items-center justify-center [&_svg]:size-full\">\n {children}\n </span>\n ) : (\n <IconPencil aria-hidden=\"true\" className=\"size-[45%] shrink-0\" />\n )}\n </button>\n );\n});\n\n/**\n * Avatar built on Base UI `Avatar`. Compose `Avatar.Image` with an\n * `Avatar.Fallback` (initials or icon) that shows while the image loads or if\n * it fails. Set `size` on `Avatar.Root`. Add `Avatar.Edit` when the avatar\n * itself should open a change-photo action.\n */\nexport const Avatar = { Root, Image, Fallback, Edit };\n"],"x_google_ignoreList":[0],"mappings":"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"}